diff --git a/CMakeLists.txt b/CMakeLists.txt index 6056fb62d..23d821e8a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -126,7 +126,12 @@ if(CMAKE_COMPILER_IS_GNUCC) # Set standard flags for GCC set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -funroll-loops") set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -funroll-loops") - add_definitions(-DBOOST_RESULT_OF_USE_DECLTYPE) + + # TODO: remove forcing the old version of optional as soon as the related Spirit bug is fixed: + # https://svn.boost.org/trac/boost/ticket/12349 + # Fix thanks to: https://github.com/freeorion/freeorion/issues/777 + add_definitions(-DBOOST_RESULT_OF_USE_DECLTYPE -DBOOST_OPTIONAL_CONFIG_USE_OLD_IMPLEMENTATION_OF_OPTIONAL) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -pedantic -Wno-deprecated-declarations -Wno-unused-local-typedefs -Wno-unknown-pragmas") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pedantic -Wno-deprecated-declarations") if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0) @@ -188,7 +193,10 @@ else(CLANG) set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") endif() - add_definitions(-DBOOST_RESULT_OF_USE_DECLTYPE) + # TODO: remove forcing the old version of optional as soon as the related Spirit bug is fixed: + # https://svn.boost.org/trac/boost/ticket/12349 + # Fix thanks to: https://github.com/freeorion/freeorion/issues/777 + add_definitions(-DBOOST_RESULT_OF_USE_DECLTYPE -DBOOST_OPTIONAL_CONFIG_USE_OLD_IMPLEMENTATION_OF_OPTIONAL) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -stdlib=${CLANG_STDLIB} -Wall -pedantic -Wno-newline-eof -Wno-mismatched-tags -Wno-unused-local-typedefs -ftemplate-depth=1024 -Wno-parentheses-equality") if(FORCE_COLOR) diff --git a/resources/3rdparty/modernjson/CMakeLists.txt b/resources/3rdparty/modernjson/CMakeLists.txt index 18e9c651f..2c2612a7c 100755 --- a/resources/3rdparty/modernjson/CMakeLists.txt +++ b/resources/3rdparty/modernjson/CMakeLists.txt @@ -1,7 +1,9 @@ cmake_minimum_required(VERSION 3.0) # define the project -project(nlohmann_json VERSION 2.0.0 LANGUAGES CXX) +project(nlohmann_json VERSION 2.0.5 LANGUAGES CXX) + +enable_testing() option(BuildTests "Build the unit tests" ON) diff --git a/resources/3rdparty/modernjson/ChangeLog.md b/resources/3rdparty/modernjson/ChangeLog.md index f0654ea28..041d38395 100755 --- a/resources/3rdparty/modernjson/ChangeLog.md +++ b/resources/3rdparty/modernjson/ChangeLog.md @@ -1,10 +1,54 @@ # Change Log All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). -## [Unreleased](https://github.com/nlohmann/json/tree/HEAD) +## [v2.0.5](https://github.com/nlohmann/json/releases/tag/v2.0.5) (2016-09-14) +[Full Changelog](https://github.com/nlohmann/json/compare/v2.0.4...v2.0.5) -[Full Changelog](https://github.com/nlohmann/json/compare/v1.1.0...HEAD) +- make json\_benchmarks no longer working in 2.0.4 [\#310](https://github.com/nlohmann/json/issues/310) +- \[feature request\]: schema validator and comments [\#311](https://github.com/nlohmann/json/issues/311) + +## [v2.0.4](https://github.com/nlohmann/json/releases/tag/v2.0.4) (2016-09-11) +[Full Changelog](https://github.com/nlohmann/json/compare/v2.0.3...v2.0.4) + +- Parsing fails without space at end of file [\#306](https://github.com/nlohmann/json/issues/306) + +- Unused variable warning [\#304](https://github.com/nlohmann/json/issues/304) + +## [v2.0.3](https://github.com/nlohmann/json/releases/tag/v2.0.3) (2016-08-31) +[Full Changelog](https://github.com/nlohmann/json/compare/v2.0.2...v2.0.3) + +- Support for iterator-range parsing [\#290](https://github.com/nlohmann/json/issues/290) + +- warning C4706: assignment within conditional expression [\#295](https://github.com/nlohmann/json/issues/295) +- Horribly inconsistent behavior between const/non-const reference in operator \[\] \(\) [\#289](https://github.com/nlohmann/json/issues/289) + +- unit-constructor1.cpp: Fix floating point truncation warning [\#300](https://github.com/nlohmann/json/pull/300) ([t-b](https://github.com/t-b)) + +## [v2.0.2](https://github.com/nlohmann/json/releases/tag/v2.0.2) (2016-07-31) +[Full Changelog](https://github.com/nlohmann/json/compare/v2.0.1...v2.0.2) + +- value\(\) does not work with \_json\_pointer types [\#283](https://github.com/nlohmann/json/issues/283) +- Easy serialization of classes [\#280](https://github.com/nlohmann/json/issues/280) + +- Build error for std::int64 [\#282](https://github.com/nlohmann/json/issues/282) + +- hexify\(\) function emits conversion warning [\#270](https://github.com/nlohmann/json/issues/270) + +- let the makefile choose the correct sed [\#279](https://github.com/nlohmann/json/pull/279) ([murinicanor](https://github.com/murinicanor)) +- Update hexify to use array lookup instead of ternary \(\#270\) [\#275](https://github.com/nlohmann/json/pull/275) ([dtoma](https://github.com/dtoma)) + +## [v2.0.1](https://github.com/nlohmann/json/releases/tag/v2.0.1) (2016-06-28) +[Full Changelog](https://github.com/nlohmann/json/compare/v2.0.0...v2.0.1) + +- dump\(\) performance degradation in v2 [\#272](https://github.com/nlohmann/json/issues/272) + +- fixed a tiny typo [\#271](https://github.com/nlohmann/json/pull/271) ([thelostt](https://github.com/thelostt)) + +## [v2.0.0](https://github.com/nlohmann/json/releases/tag/v2.0.0) (2016-06-23) +[Full Changelog](https://github.com/nlohmann/json/compare/v1.1.0...v2.0.0) + +- concatenate objects [\#252](https://github.com/nlohmann/json/issues/252) - Unit test fails when doing a CMake out-of-tree build [\#241](https://github.com/nlohmann/json/issues/241) - Additional integration options [\#237](https://github.com/nlohmann/json/issues/237) - Can't use basic\_json::iterator as a base iterator for std::move\_iterator [\#233](https://github.com/nlohmann/json/issues/233) @@ -14,8 +58,12 @@ All notable changes to this project will be documented in this file. This projec - Add support for afl-fuzz testing [\#207](https://github.com/nlohmann/json/pull/207) ([mykter](https://github.com/mykter)) - Issue \#178 - Extending support to full uint64\_t/int64\_t range and unsigned type \(updated\) [\#193](https://github.com/nlohmann/json/pull/193) ([twelsby](https://github.com/twelsby)) +- json::diff generates incorrect patch when removing multiple array elements. [\#269](https://github.com/nlohmann/json/issues/269) +- -Wconversion warning [\#259](https://github.com/nlohmann/json/issues/259) +- Maybe a bug [\#258](https://github.com/nlohmann/json/issues/258) - -Wconversion warnings [\#239](https://github.com/nlohmann/json/issues/239) - ambiguous overload for 'push\_back' and 'operator+=' [\#235](https://github.com/nlohmann/json/issues/235) +- Incorrect dumping of parsed numbers with exponents, but without decimal places [\#230](https://github.com/nlohmann/json/issues/230) - double values are serialized with commas as decimal points [\#228](https://github.com/nlohmann/json/issues/228) - Move semantics with std::initializer\_list [\#225](https://github.com/nlohmann/json/issues/225) - abort during getline in yyfill [\#223](https://github.com/nlohmann/json/issues/223) @@ -26,11 +74,18 @@ All notable changes to this project will be documented in this file. This projec - Floating point exceptions [\#181](https://github.com/nlohmann/json/issues/181) - In basic\_json::basic\_json\(const CompatibleArrayType& val\), the requirement of CompatibleArrayType is not strict enough. [\#174](https://github.com/nlohmann/json/issues/174) - Implicit assignment to std::string fails [\#144](https://github.com/nlohmann/json/issues/144) +- Fix Issue \#265 [\#266](https://github.com/nlohmann/json/pull/266) ([06needhamt](https://github.com/06needhamt)) - Issue \#195 - update Travis to Trusty due to gcc/clang strtod\(\) bug [\#196](https://github.com/nlohmann/json/pull/196) ([twelsby](https://github.com/twelsby)) +- Compiler Errors With JSON.hpp [\#265](https://github.com/nlohmann/json/issues/265) +- VS2015 compile fail [\#260](https://github.com/nlohmann/json/issues/260) +- Error when using json in g++ [\#254](https://github.com/nlohmann/json/issues/254) +- Update long-term goals [\#246](https://github.com/nlohmann/json/issues/246) +- Error compile Android NDK error: 'strtof' is not a member of 'std' [\#219](https://github.com/nlohmann/json/issues/219) - Conflicting typedef of ssize\_t on Windows 32 bit when using Boost.Python [\#204](https://github.com/nlohmann/json/issues/204) - Integer conversion to unsigned [\#178](https://github.com/nlohmann/json/issues/178) +- Define CMake/CTest tests [\#247](https://github.com/nlohmann/json/pull/247) ([robertmrk](https://github.com/robertmrk)) - Out of tree builds and a few other miscellaneous CMake cleanups. [\#242](https://github.com/nlohmann/json/pull/242) ([ChrisKitching](https://github.com/ChrisKitching)) - Implement additional integration options [\#238](https://github.com/nlohmann/json/pull/238) ([robertmrk](https://github.com/robertmrk)) - make serialization locale-independent [\#232](https://github.com/nlohmann/json/pull/232) ([nlohmann](https://github.com/nlohmann)) diff --git a/resources/3rdparty/modernjson/Makefile b/resources/3rdparty/modernjson/Makefile index 6fdc06b9d..4c96bad7f 100755 --- a/resources/3rdparty/modernjson/Makefile +++ b/resources/3rdparty/modernjson/Makefile @@ -10,18 +10,25 @@ all: json_unit # clean up clean: rm -fr json_unit json_benchmarks fuzz fuzz-testing *.dSYM + rm -fr benchmarks/files/numbers/*.json + $(MAKE) clean -Cdoc + $(MAKE) clean -Ctest ########################################################################## # unit tests ########################################################################## -# additional flags -FLAGS = -Wall -Wextra -pedantic -Weffc++ -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wmissing-declarations -Wmissing-include-dirs -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wsign-conversion -Wsign-promo -Wstrict-overflow=5 -Wswitch -Wundef -Wno-unused -Wnon-virtual-dtor -Wreorder -Wdeprecated -Wfloat-equal +# build unit tests +json_unit: + @$(MAKE) -C test -# build unit tests (TODO: Does this want its own makefile?) -json_unit: test/src/unit.cpp src/json.hpp test/src/catch.hpp - $(CXX) -std=c++11 $(CXXFLAGS) $(FLAGS) $(CPPFLAGS) -I src -I test $< $(LDFLAGS) -o $@ +# run unit tests +check: json_unit + test/json_unit "*" + +check-fast: json_unit + test/json_unit ########################################################################## @@ -30,7 +37,7 @@ json_unit: test/src/unit.cpp src/json.hpp test/src/catch.hpp # compile example files and check output doctest: - make check_output -C doc + $(MAKE) check_output -C doc ########################################################################## @@ -57,8 +64,10 @@ fuzz: test/src/fuzz.cpp src/json.hpp # call cppcheck on the main header file cppcheck: - cppcheck --enable=all --inconclusive --std=c++11 src/json.hpp + cppcheck --enable=warning --inconclusive --force --std=c++11 src/json.hpp --error-exitcode=1 +clang_sanitize: clean + CXX=clang++ CXXFLAGS="-g -O2 -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer" $(MAKE) ########################################################################## # maintainer targets @@ -66,7 +75,7 @@ cppcheck: # create scanner with re2c re2c: src/json.hpp.re2c - $(RE2C) --bit-vectors --nested-ifs --no-debug-info $< | $(SED) '1d' > src/json.hpp + $(RE2C) -W --bit-vectors --nested-ifs --no-debug-info $< | $(SED) '1d' > src/json.hpp # pretty printer pretty: @@ -75,7 +84,8 @@ pretty: --indent-col1-comments --pad-oper --pad-header --align-pointer=type \ --align-reference=type --add-brackets --convert-tabs --close-templates \ --lineend=linux --preserve-date --suffix=none --formatted \ - src/json.hpp src/json.hpp.re2c test/src/unit.cpp test/src/fuzz.cpp benchmarks/benchmarks.cpp doc/examples/*.cpp + src/json.hpp src/json.hpp.re2c test/src/*.cpp \ + benchmarks/benchmarks.cpp doc/examples/*.cpp ########################################################################## @@ -84,7 +94,8 @@ pretty: # benchmarks json_benchmarks: benchmarks/benchmarks.cpp benchmarks/benchpress.hpp benchmarks/cxxopts.hpp src/json.hpp - $(CXX) -std=c++11 $(CXXFLAGS) -O3 -flto -I src -I benchmarks $< $(LDFLAGS) -o $@ + cd benchmarks/files/numbers ; python generate.py + $(CXX) -std=c++11 $(CXXFLAGS) -DNDEBUG -O3 -flto -I src -I benchmarks $< $(LDFLAGS) -o $@ ./json_benchmarks @@ -92,7 +103,9 @@ json_benchmarks: benchmarks/benchmarks.cpp benchmarks/benchpress.hpp benchmarks/ # changelog ########################################################################## +NEXT_VERSION ?= "unreleased" + ChangeLog.md: - github_changelog_generator -o ChangeLog.md --simple-list --release-url https://github.com/nlohmann/json/releases/tag/%s + github_changelog_generator -o ChangeLog.md --simple-list --release-url https://github.com/nlohmann/json/releases/tag/%s --future-release $(NEXT_VERSION) gsed -i 's|https://github.com/nlohmann/json/releases/tag/HEAD|https://github.com/nlohmann/json/tree/HEAD|' ChangeLog.md gsed -i '2i All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).' ChangeLog.md diff --git a/resources/3rdparty/modernjson/README.md b/resources/3rdparty/modernjson/README.md index 0d2cbf45c..5f434e7ce 100755 --- a/resources/3rdparty/modernjson/README.md +++ b/resources/3rdparty/modernjson/README.md @@ -1,13 +1,14 @@ -![JSON for Modern C++](https://raw.githubusercontent.com/nlohmann/json/master/doc/json.gif) +[![JSON for Modern C++](https://raw.githubusercontent.com/nlohmann/json/master/doc/json.gif)](https://github.com/nlohmann/json/releases) [![Build Status](https://travis-ci.org/nlohmann/json.svg?branch=master)](https://travis-ci.org/nlohmann/json) -[![Build Status](https://ci.appveyor.com/api/projects/status/1acb366xfyg3qybk?svg=true)](https://ci.appveyor.com/project/nlohmann/json) +[![Build Status](https://ci.appveyor.com/api/projects/status/1acb366xfyg3qybk/branch/develop?svg=true)](https://ci.appveyor.com/project/nlohmann/json) [![Coverage Status](https://img.shields.io/coveralls/nlohmann/json.svg)](https://coveralls.io/r/nlohmann/json) -[![Try online](https://img.shields.io/badge/try-online-blue.svg)](http://melpon.org/wandbox/permlink/wuiuqYiYqRTdI3rG) -[![Documentation Status](https://img.shields.io/badge/docs-doxygen-blue.svg)](http://nlohmann.github.io/json) +[![Try online](https://img.shields.io/badge/try-online-blue.svg)](http://melpon.org/wandbox/permlink/r3wa3rI5yxgQQcrm) +[![Documentation](https://img.shields.io/badge/docs-doxygen-blue.svg)](http://nlohmann.github.io/json) [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/nlohmann/json/master/LICENSE.MIT) [![Github Releases](https://img.shields.io/github/release/nlohmann/json.svg)](https://github.com/nlohmann/json/releases) [![Github Issues](https://img.shields.io/github/issues/nlohmann/json.svg)](http://github.com/nlohmann/json/issues) +[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/289/badge)](https://bestpractices.coreinfrastructure.org/projects/289) ## Design goals @@ -15,18 +16,19 @@ There are myriads of [JSON](http://json.org) libraries out there, and each may e - **Intuitive syntax**. In languages such as Python, JSON feels like a first class data type. We used all the operator magic of modern C++ to achieve the same feeling in your code. Check out the [examples below](#examples) and you know, what I mean. -- **Trivial integration**. Our whole code consists of a single header file `json.hpp`. That's it. No library, no subproject, no dependencies, no complex build system. The class is written in vanilla C++11. All in all, everything should require no adjustment of your compiler flags or project settings. +- **Trivial integration**. Our whole code consists of a single header file [`json.hpp`](https://github.com/nlohmann/json/blob/develop/src/json.hpp). That's it. No library, no subproject, no dependencies, no complex build system. The class is written in vanilla C++11. All in all, everything should require no adjustment of your compiler flags or project settings. -- **Serious testing**. Our class is heavily [unit-tested](https://github.com/nlohmann/json/blob/master/test/src/unit.cpp) and covers [100%](https://coveralls.io/r/nlohmann/json) of the code, including all exceptional behavior. Furthermore, we checked with [Valgrind](http://valgrind.org) that there are no memory leaks. +- **Serious testing**. Our class is heavily [unit-tested](https://github.com/nlohmann/json/blob/master/test/src/unit.cpp) and covers [100%](https://coveralls.io/r/nlohmann/json) of the code, including all exceptional behavior. Furthermore, we checked with [Valgrind](http://valgrind.org) that there are no memory leaks. To maintain high quality, the project is following the [Core Infrastructure Initiative (CII) best practices](https://bestpractices.coreinfrastructure.org/projects/289). Other aspects were not so important to us: - **Memory efficiency**. Each JSON object has an overhead of one pointer (the maximal size of a union) and one enumeration element (1 byte). The default generalization uses the following C++ data types: `std::string` for strings, `int64_t`, `uint64_t` or `double` for numbers, `std::map` for objects, `std::vector` for arrays, and `bool` for Booleans. However, you can template the generalized class `basic_json` to your needs. -- **Speed**. We currently implement the parser as naive [recursive descent parser](http://en.wikipedia.org/wiki/Recursive_descent_parser) with hand coded string handling. It is fast enough, but a [LALR-parser](http://en.wikipedia.org/wiki/LALR_parser) with a decent regular expression processor should be even faster (but would consist of more files which makes the integration harder). +- **Speed**. We currently implement the parser as naive [recursive descent parser](http://en.wikipedia.org/wiki/Recursive_descent_parser) with hand coded string handling. It is fast enough, but a [LALR-parser](http://en.wikipedia.org/wiki/LALR_parser) may be even faster (but would consist of more files which makes the integration harder). See the [contribution guidelines](https://github.com/nlohmann/json/blob/master/.github/CONTRIBUTING.md#please-dont) for more information. + ## Integration The single required source, file `json.hpp` is in the `src` directory or [released here](https://github.com/nlohmann/json/releases). All you need to do is add @@ -40,49 +42,8 @@ using json = nlohmann::json; to the files you want to use JSON objects. That's it. Do not forget to set the necessary switches to enable C++11 (e.g., `-std=c++11` for GCC and Clang). -## Supported compilers - -Though it's 2016 already, the support for C++11 is still a bit sparse. Currently, the following compilers are known to work: - -- GCC 4.9 - 6.0 (and possibly later) -- Clang 3.4 - 3.9 (and possibly later) -- Microsoft Visual C++ 14.0 RC (and possibly later) - -The code is currently checked with Travis for GCC 4.9, GCC - -I would be happy to learn about other compilers/versions. +:beer: If you are using OS X and [Homebrew](http://brew.sh), just type `brew tap nlohmann/json` and `brew install nlohmann_json` and you're set. If you want the bleeding edge rather than the latest release, use `brew install nlohmann_json --HEAD`. -Please note: - -- GCC 4.8 does not work because of two bugs ([55817](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55817) and [57824](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57824)) in the C++11 support. Note there is a [pull request](https://github.com/nlohmann/json/pull/212) to fix some of the issues. -- Android defaults to using very old compilers and C++ libraries. To fix this, add the following to your `Application.mk`. This will switch to the LLVM C++ library, the Clang compiler, and enable C++11 and other features disabled by default. - - ``` - APP_STL := c++_shared - NDK_TOOLCHAIN_VERSION := clang3.6 - APP_CPPFLAGS += -frtti -fexceptions - ``` - -- For GCC running on MinGW or Android SDK, the error `'to_string' is not a member of 'std'` (or similarly, for `strtod`) may occur. Note this is not an issue with the code, but rather with the compiler itself. On Android, see above to build with a newer environment. For MinGW, please refer to [this site](http://tehsausage.com/mingw-to-string) and [this discussion](https://github.com/nlohmann/json/issues/136) for information on how to fix this bug. - -The following compilers are currently used in [continuous integration](https://travis-ci.org/nlohmann/json): - -| Compiler | Operating System | Version String | -|-----------------|------------------------------|----------------| -| GCC 4.9.3 | Ubuntu 14.04.3 LTS | g++-4.9 (Ubuntu 4.9.3-8ubuntu2~14.04) 4.9.3 | -| GCC 5.3.0 | Ubuntu 14.04.3 LTS | g++-5 (Ubuntu 5.3.0-3ubuntu1~14.04) 5.3.0 20151204 | -| Clang 3.6.2 | Ubuntu 14.04.3 LTS | Ubuntu clang version 3.6.2-svn240577-1~exp1 (branches/release_36) (based on LLVM 3.6.2) | -| Clang 3.7.1 | Ubuntu 14.04.3 LTS | Ubuntu clang version 3.7.1-svn253571-1~exp1 (branches/release_37) (based on LLVM 3.7.1) | -| Clang 3.8.1 | Ubuntu 14.04.3 LTS | clang version 3.8.1-svn265380-1~exp1 (branches/release_38) | -| Clang 3.9.0 | Ubuntu 14.04.3 LTS | clang version 3.9.0-svn267478-1~exp1 (trunk) | -| Clang Xcode 6.1 | Darwin Kernel Version 13.4.0 | Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn) | -| Clang Xcode 6.2 | Darwin Kernel Version 13.4.0 | Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) | -| Clang Xcode 6.3 | Darwin Kernel Version 14.3.0 | Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM 3.6.0svn) | -| Clang Xcode 6.4 | Darwin Kernel Version 14.3.0 | Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn) | -| Clang Xcode 7.1 | Darwin Kernel Version 14.5.0 | Apple LLVM version 7.0.0 (clang-700.1.76) | -| Clang Xcode 7.2 | Darwin Kernel Version 15.0.0 | Apple LLVM version 7.0.2 (clang-700.1.81) | -| Clang Xcode 7.3 | Darwin Kernel Version 14.5.0 | Apple LLVM version 7.3.0 (clang-703.0.29) | -| Visual Studio 14 2015 | Windows Server 2012 R2 (x64) | Microsoft (R) Build Engine version 14.0.25123.0 | ## Examples @@ -165,6 +126,7 @@ json empty_object_explicit = json::object(); json array_not_object = { json::array({"currency", "USD"}), json::array({"value", 42.99}) }; ``` + ### Serialization / Deserialization You can create an object (deserialization) by appending `_json` to a string literal: @@ -173,7 +135,7 @@ You can create an object (deserialization) by appending `_json` to a string lite // create object from string literal json j = "{ \"happy\": true, \"pi\": 3.141 }"_json; -// or even nicer (thanks http://isocpp.org/blog/2015/01/json-for-modern-cpp) +// or even nicer with a raw string literal auto j2 = R"( { "happy": true, @@ -218,6 +180,7 @@ These operators work for any subclasses of `std::istream` or `std::ostream`. Please note that setting the exception bit for `failbit` is inappropriate for this use case. It will result in program termination due to the `noexcept` specifier in use. + ### STL-like access We designed the JSON class to behave just like an STL container. In fact, it satisfies the [**ReversibleContainer**](http://en.cppreference.com/w/cpp/concept/ReversibleContainer) requirement. @@ -285,6 +248,7 @@ int fob_present = o.count("fob"); // 0 o.erase("foo"); ``` + ### Conversion from STL containers Any sequence container (`std::array`, `std::vector`, `std::deque`, `std::forward_list`, `std::list`) whose values can be used to construct JSON types (e.g., integers, floating point numbers, Booleans, string types, or again STL containers described in this section) can be used to create a JSON array. The same holds for similar associative containers (`std::set`, `std::multiset`, `std::unordered_set`, `std::unordered_multiset`), but in these cases the order of the elements of the array depends how the elements are ordered in the respective STL container. @@ -327,7 +291,7 @@ json j_umset(c_umset); // both entries for "one" are used // maybe ["one", "two", "one", "four"] ``` -Likewise, any associative key-value containers (`std::map`, `std::multimap`, `std::unordered_map`, `std::unordered_multimap`) whose keys are can construct an `std::string` and whose values can be used to construct JSON types (see examples above) can be used to to create a JSON object. Note that in case of multimaps only one key is used in the JSON object and the value depends on the internal order of the STL container. +Likewise, any associative key-value containers (`std::map`, `std::multimap`, `std::unordered_map`, `std::unordered_multimap`) whose keys can construct an `std::string` and whose values can be used to construct JSON types (see examples above) can be used to to create a JSON object. Note that in case of multimaps only one key is used in the JSON object and the value depends on the internal order of the STL container. ```cpp std::map c_map { {"one", 1}, {"two", 2}, {"three", 3} }; @@ -347,12 +311,51 @@ json j_ummap(c_ummap); // only one entry for key "three" is used // maybe {"one": true, "two": true, "three": true} ``` +### JSON Pointer and JSON Patch + +The library supports **JSON Pointer** ([RFC 6901](https://tools.ietf.org/html/rfc6901)) as alternative means to address structured values. On top of this, **JSON Patch** ([RFC 6902](https://tools.ietf.org/html/rfc6902)) allows to describe differences between two JSON values - effectively allowing patch and diff operations known from Unix. + +```cpp +// a JSON value +json j_original = R"({ + "baz": ["one", "two", "three"], + "foo": "bar" +})"_json; + +// access members with a JSON pointer (RFC 6901) +j_original["/baz/1"_json_pointer]; +// "two" + +// a JSON patch (RFC 6902) +json j_patch = R"([ + { "op": "replace", "path": "/baz", "value": "boo" }, + { "op": "add", "path": "/hello", "value": ["world"] }, + { "op": "remove", "path": "/foo"} +])"_json; + +// apply the patch +json j_result = j_original.patch(j_patch); +// { +// "baz": "boo", +// "hello": ["world"] +// } + +// calculate a JSON patch from two JSON values +json::diff(j_result, j_original); +// [ +// { "op":" replace", "path": "/baz", "value": ["one", "two", "three"] }, +// { "op": "remove","path": "/hello" }, +// { "op": "add", "path": "/foo", "value": "bar" } +// ] +``` + + ### Implicit conversions The type of the JSON object is determined automatically by the expression to store. Likewise, the stored value is implicitly converted. ```cpp -/// strings +// strings std::string s1 = "Hello, world!"; json js = s1; std::string s2 = js; @@ -380,6 +383,57 @@ int vi = jn.get(); // etc. ``` + +## Supported compilers + +Though it's 2016 already, the support for C++11 is still a bit sparse. Currently, the following compilers are known to work: + +- GCC 4.9 - 6.0 (and possibly later) +- Clang 3.4 - 3.9 (and possibly later) +- Microsoft Visual C++ 2015 / Build Tools 14.0.25123.0 (and possibly later) + +I would be happy to learn about other compilers/versions. + +Please note: + +- GCC 4.8 does not work because of two bugs ([55817](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55817) and [57824](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57824)) in the C++11 support. Note there is a [pull request](https://github.com/nlohmann/json/pull/212) to fix some of the issues. +- Android defaults to using very old compilers and C++ libraries. To fix this, add the following to your `Application.mk`. This will switch to the LLVM C++ library, the Clang compiler, and enable C++11 and other features disabled by default. + + ``` + APP_STL := c++_shared + NDK_TOOLCHAIN_VERSION := clang3.6 + APP_CPPFLAGS += -frtti -fexceptions + ``` + + The code compiles successfully with [Android NDK](https://developer.android.com/ndk/index.html?hl=ml), Revision 9 - 11 (and possibly later) and [CrystaX's Android NDK](https://www.crystax.net/en/android/ndk) version 10. + +- For GCC running on MinGW or Android SDK, the error `'to_string' is not a member of 'std'` (or similarly, for `strtod`) may occur. Note this is not an issue with the code, but rather with the compiler itself. On Android, see above to build with a newer environment. For MinGW, please refer to [this site](http://tehsausage.com/mingw-to-string) and [this discussion](https://github.com/nlohmann/json/issues/136) for information on how to fix this bug. For Android NDK using `APP_STL := gnustl_static`, please refer to [this discussion](https://github.com/nlohmann/json/issues/219). + +The following compilers are currently used in continuous integration at [Travis](https://travis-ci.org/nlohmann/json) and [AppVeyor](https://ci.appveyor.com/project/nlohmann/json): + +| Compiler | Operating System | Version String | +|-----------------|------------------------------|----------------| +| GCC 4.9.3 | Ubuntu 14.04.4 LTS | g++-4.9 (Ubuntu 4.9.3-8ubuntu2~14.04) 4.9.3 | +| GCC 5.3.0 | Ubuntu 14.04.4 LTS | g++-5 (Ubuntu 5.3.0-3ubuntu1~14.04) 5.3.0 20151204 | +| GCC 6.1.1 | Ubuntu 14.04.4 LTS | g++-6 (Ubuntu 6.1.1-3ubuntu11~14.04.1) 6.1.1 20160511 | +| Clang 3.6.0 | Ubuntu 14.04.4 LTS | clang version 3.6.0 (tags/RELEASE_360/final) | +| Clang 3.6.1 | Ubuntu 14.04.4 LTS | clang version 3.6.1 (tags/RELEASE_361/final) | +| Clang 3.6.2 | Ubuntu 14.04.4 LTS | clang version 3.6.2 (tags/RELEASE_362/final) | +| Clang 3.7.0 | Ubuntu 14.04.4 LTS | clang version 3.7.0 (tags/RELEASE_370/final) | +| Clang 3.7.1 | Ubuntu 14.04.4 LTS | clang version 3.7.1 (tags/RELEASE_371/final) | +| Clang 3.8.0 | Ubuntu 14.04.4 LTS | clang version 3.8.0 (tags/RELEASE_380/final) | +| Clang 3.8.1 | Ubuntu 14.04.4 LTS | clang version 3.8.1 (tags/RELEASE_381/final) | +| Clang Xcode 6.1 | Darwin Kernel Version 13.4.0 (OSX 10.9.5) | Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn) | +| Clang Xcode 6.2 | Darwin Kernel Version 13.4.0 (OSX 10.9.5) | Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) | +| Clang Xcode 6.3 | Darwin Kernel Version 14.3.0 (OSX 10.10.3) | Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM 3.6.0svn) | +| Clang Xcode 6.4 | Darwin Kernel Version 14.3.0 (OSX 10.10.3) | Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn) | +| Clang Xcode 7.1 | Darwin Kernel Version 14.5.0 (OSX 10.10.5) | Apple LLVM version 7.0.0 (clang-700.1.76) | +| Clang Xcode 7.2 | Darwin Kernel Version 15.0.0 (OSX 10.10.5) | Apple LLVM version 7.0.2 (clang-700.1.81) | +| Clang Xcode 7.3 | Darwin Kernel Version 15.0.0 (OSX 10.10.5) | Apple LLVM version 7.3.0 (clang-703.0.29) | +| Clang Xcode 8.0 | Darwin Kernel Version 15.6.0 (OSX 10.11.6) | Apple LLVM version 8.0.0 (clang-800.0.38) | +| Visual Studio 14 2015 | Windows Server 2012 R2 (x64) | Microsoft (R) Build Engine version 14.0.25123.0 | + + ## License @@ -388,11 +442,12 @@ The class is licensed under the [MIT License](http://opensource.org/licenses/MIT Copyright © 2013-2016 [Niels Lohmann](http://nlohmann.me) -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + ## Thanks @@ -433,24 +488,31 @@ I deeply appreciate the help of the following people. - [zewt](https://github.com/zewt) added useful notes to the README file about Android. - [Róbert Márki](https://github.com/robertmrk) added a fix to use move iterators and improved the integration via CMake. - [Chris Kitching](https://github.com/ChrisKitching) cleaned up the CMake files. +- [Tom Needham](https://github.com/06needhamt) fixed a subtle bug with MSVC 2015 which was also proposed by [Michael K.](https://github.com/Epidal). +- [Mário Feroldi](https://github.com/thelostt) fixed a small typo. +- [duncanwerner](https://github.com/duncanwerner) found a really embarrassing performance regression in the 2.0.0 release. +- [Damien](https://github.com/dtoma) fixed one of the last conversion warnings. +- [Thomas Braun](https://github.com/t-b) fixed a warning in a test case. +- [Théo DELRIEU](https://github.com/theodelrieu) patiently and constructively oversaw the long way toward [iterator-range parsing](https://github.com/nlohmann/json/issues/290). Thanks a lot for helping out! + ## Notes -- The code contains numerous debug **assertions** which can be switched off by defining the preprocessor macro `NDEBUG`, see the [documentation of `assert`](http://en.cppreference.com/w/cpp/error/assert). +- The code contains numerous debug **assertions** which can be switched off by defining the preprocessor macro `NDEBUG`, see the [documentation of `assert`](http://en.cppreference.com/w/cpp/error/assert). In particular, note [`operator[]`](https://nlohmann.github.io/json/classnlohmann_1_1basic__json_a2e26bd0b0168abb61f67ad5bcd5b9fa1.html#a2e26bd0b0168abb61f67ad5bcd5b9fa1) implements **unchecked access** for const objects: If the given key is not present, the behavior is undefined (think of a dereferenced null pointer) and yields an [assertion failure](https://github.com/nlohmann/json/issues/289) if assertions are switched on. If you are not sure whether an element in an object exists, use checked access with the [`at()` function](https://nlohmann.github.io/json/classnlohmann_1_1basic__json_a674de1ee73e6bf4843fc5dc1351fb726.html#a674de1ee73e6bf4843fc5dc1351fb726). - As the exact type of a number is not defined in the [JSON specification](http://rfc7159.net/rfc7159), this library tries to choose the best fitting C++ number type automatically. As a result, the type `double` may be used to store numbers which may yield [**floating-point exceptions**](https://github.com/nlohmann/json/issues/181) in certain rare situations if floating-point exceptions have been unmasked in the calling code. These exceptions are not caused by the library and need to be fixed in the calling code, such as by re-masking the exceptions prior to calling library functions. + ## Execute unit tests To compile and run the tests, you need to execute ```sh -$ make -$ ./json_unit "*" +$ make check =============================================================================== -All tests passed (5568705 assertions in 31 test cases) +All tests passed (8905161 assertions in 35 test cases) ``` For more information, have a look at the file [.travis.yml](https://github.com/nlohmann/json/blob/master/.travis.yml). diff --git a/resources/3rdparty/modernjson/appveyor.yml b/resources/3rdparty/modernjson/appveyor.yml index 59b9dd15e..3960f4db4 100755 --- a/resources/3rdparty/modernjson/appveyor.yml +++ b/resources/3rdparty/modernjson/appveyor.yml @@ -7,5 +7,4 @@ build_script: - cmake . -G "Visual Studio 14 2015" - cmake --build . --config Release test_script: -- test\Release\json_unit.exe -- test\Release\json_unit.exe "*" +- ctest -C Release -V diff --git a/resources/3rdparty/modernjson/benchmarks/benchmarks.cpp b/resources/3rdparty/modernjson/benchmarks/benchmarks.cpp deleted file mode 100755 index 1f5eb5e33..000000000 --- a/resources/3rdparty/modernjson/benchmarks/benchmarks.cpp +++ /dev/null @@ -1,77 +0,0 @@ -#define BENCHPRESS_CONFIG_MAIN - -#include -#include -#include - -BENCHMARK("parse jeopardy.json", [](benchpress::context* ctx) -{ - for (size_t i = 0; i < ctx->num_iterations(); ++i) - { - std::ifstream input_file("benchmarks/files/jeopardy/jeopardy.json"); - nlohmann::json j; - j << input_file; - } -}) - -BENCHMARK("parse canada.json", [](benchpress::context* ctx) -{ - for (size_t i = 0; i < ctx->num_iterations(); ++i) - { - std::ifstream input_file("benchmarks/files/nativejson-benchmark/canada.json"); - nlohmann::json j; - j << input_file; - } -}) - -BENCHMARK("parse citm_catalog.json", [](benchpress::context* ctx) -{ - for (size_t i = 0; i < ctx->num_iterations(); ++i) - { - std::ifstream input_file("benchmarks/files/nativejson-benchmark/citm_catalog.json"); - nlohmann::json j; - j << input_file; - } -}) - -BENCHMARK("parse twitter.json", [](benchpress::context* ctx) -{ - for (size_t i = 0; i < ctx->num_iterations(); ++i) - { - std::ifstream input_file("benchmarks/files/nativejson-benchmark/twitter.json"); - nlohmann::json j; - j << input_file; - } -}) - -BENCHMARK("dump jeopardy.json", [](benchpress::context* ctx) -{ - std::ifstream input_file("benchmarks/files/jeopardy/jeopardy.json"); - nlohmann::json j; - j << input_file; - std::ofstream output_file("jeopardy.dump.json"); - - ctx->reset_timer(); - for (size_t i = 0; i < ctx->num_iterations(); ++i) - { - output_file << j; - } - - std::remove("jeopardy.dump.json"); -}) - -BENCHMARK("dump jeopardy.json with indent", [](benchpress::context* ctx) -{ - std::ifstream input_file("benchmarks/files/jeopardy/jeopardy.json"); - nlohmann::json j; - j << input_file; - std::ofstream output_file("jeopardy.dump.json"); - - ctx->reset_timer(); - for (size_t i = 0; i < ctx->num_iterations(); ++i) - { - output_file << std::setw(4) << j; - } - - std::remove("jeopardy.dump.json"); -}) diff --git a/resources/3rdparty/modernjson/benchmarks/benchpress.hpp b/resources/3rdparty/modernjson/benchmarks/benchpress.hpp deleted file mode 100755 index d68e4aff3..000000000 --- a/resources/3rdparty/modernjson/benchmarks/benchpress.hpp +++ /dev/null @@ -1,401 +0,0 @@ -/* -* Copyright (C) 2015 Christopher Gilbert. -* -* Permission is hereby granted, free of charge, to any person obtaining a copy -* of this software and associated documentation files (the "Software"), to deal -* in the Software without restriction, including without limitation the rights -* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -* copies of the Software, and to permit persons to whom the Software is -* furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in all -* copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -* SOFTWARE. -*/ -#ifndef BENCHPRESS_HPP -#define BENCHPRESS_HPP - -#include // max, min -#include // atomic_intmax_t -#include // high_resolution_timer, duration -#include // function -#include // setw -#include // cout -#include // regex, regex_match -#include // stringstream -#include // string -#include // thread -#include // vector - -namespace benchpress { - -/* - * The options class encapsulates all options for running benchmarks. - * - * When including benchpress, a main function can be emitted which includes a command-line parser for building an - * options object. However from time-to-time it may be necessary for the developer to have to build their own main - * stub and construct the options object manually. - * - * options opts; - * opts - * .bench(".*") - * .benchtime(1) - * .cpu(4); - */ -class options { - std::string d_bench; - size_t d_benchtime; - size_t d_cpu; -public: - options() - : d_bench(".*") - , d_benchtime(1) - , d_cpu(std::thread::hardware_concurrency()) - {} - options& bench(const std::string& bench) { - d_bench = bench; - return *this; - } - options& benchtime(size_t benchtime) { - d_benchtime = benchtime; - return *this; - } - options& cpu(size_t cpu) { - d_cpu = cpu; - return *this; - } - std::string get_bench() const { - return d_bench; - } - size_t get_benchtime() const { - return d_benchtime; - } - size_t get_cpu() const { - return d_cpu; - } -}; - -class context; - -/* - * The benchmark_info class is used to store a function name / pointer pair. - * - * benchmark_info bi("example", [](benchpress::context* b) { - * // benchmark function - * }); - */ -class benchmark_info { - std::string d_name; - std::function d_func; - -public: - benchmark_info(std::string name, std::function func) - : d_name(name) - , d_func(func) - {} - - std::string get_name() const { return d_name; } - std::function get_func() const { return d_func; } -}; - -/* - * The registration class is responsible for providing a single global point of reference for registering - * benchmark functions. - * - * registration::get_ptr()->register_benchmark(info); - */ -class registration { - static registration* d_this; - std::vector d_benchmarks; - -public: - static registration* get_ptr() { - if (nullptr == d_this) { - d_this = new registration(); - } - return d_this; - } - - void register_benchmark(benchmark_info& info) { - d_benchmarks.push_back(info); - } - - std::vector get_benchmarks() { return d_benchmarks; } -}; - -/* - * The auto_register class is a helper used to register benchmarks. - */ -class auto_register { -public: - auto_register(const std::string& name, std::function func) { - benchmark_info info(name, func); - registration::get_ptr()->register_benchmark(info); - } -}; - -#define CONCAT(x, y) x ## y -#define CONCAT2(x, y) CONCAT(x, y) - -// The BENCHMARK macro is a helper for creating benchmark functions and automatically registering them with the -// registration class. -#define BENCHMARK(x, f) benchpress::auto_register CONCAT2(register_, __LINE__)((x), (f)); - -// This macro will prevent the compiler from removing a redundant code path which has no side-effects. -#define DISABLE_REDUNDANT_CODE_OPT() { asm(""); } - -/* - * The result class is responsible for producing a printable string representation of a benchmark run. - */ -class result { - size_t d_num_iterations; - std::chrono::nanoseconds d_duration; - size_t d_num_bytes; - -public: - result(size_t num_iterations, std::chrono::nanoseconds duration, size_t num_bytes) - : d_num_iterations(num_iterations) - , d_duration(duration) - , d_num_bytes(num_bytes) - {} - - size_t get_ns_per_op() const { - if (d_num_iterations <= 0) { - return 0; - } - return d_duration.count() / d_num_iterations; - } - - double get_mb_per_s() const { - if (d_num_iterations <= 0 || d_duration.count() <= 0 || d_num_bytes <= 0) { - return 0; - } - return ((double(d_num_bytes) * double(d_num_iterations) / double(1e6)) / - double(std::chrono::duration_cast(d_duration).count())); - } - - std::string to_string() const { - std::stringstream tmp; - tmp << std::setw(12) << std::right << d_num_iterations; - size_t npo = get_ns_per_op(); - tmp << std::setw(12) << std::right << npo << std::setw(0) << " ns/op"; - double mbs = get_mb_per_s(); - if (mbs > 0.0) { - tmp << std::setw(12) << std::right << mbs << std::setw(0) << " MB/s"; - } - return std::string(tmp.str()); - } -}; - -/* - * The parallel_context class is responsible for providing a thread-safe context for parallel benchmark code. - */ -class parallel_context { - std::atomic_intmax_t d_num_iterations; -public: - parallel_context(size_t num_iterations) - : d_num_iterations(num_iterations) - {} - - bool next() { - return (d_num_iterations.fetch_sub(1) > 0); - } -}; - -/* - * The context class is responsible for providing an interface for capturing benchmark metrics to benchmark functions. - */ -class context { - bool d_timer_on; - std::chrono::high_resolution_clock::time_point d_start; - std::chrono::nanoseconds d_duration; - std::chrono::seconds d_benchtime; - size_t d_num_iterations; - size_t d_num_threads; - size_t d_num_bytes; - benchmark_info d_benchmark; - -public: - context(const benchmark_info& info, const options& opts) - : d_timer_on(false) - , d_start() - , d_duration() - , d_benchtime(std::chrono::seconds(opts.get_benchtime())) - , d_num_iterations(1) - , d_num_threads(opts.get_cpu()) - , d_num_bytes(0) - , d_benchmark(info) - {} - - size_t num_iterations() const { return d_num_iterations; } - - void set_num_threads(size_t n) { d_num_threads = n; } - size_t num_threads() const { return d_num_threads; } - - void start_timer() { - if (!d_timer_on) { - d_start = std::chrono::high_resolution_clock::now(); - d_timer_on = true; - } - } - void stop_timer() { - if (d_timer_on) { - d_duration += std::chrono::high_resolution_clock::now() - d_start; - d_timer_on = false; - } - } - void reset_timer() { - if (d_timer_on) { - d_start = std::chrono::high_resolution_clock::now(); - } - d_duration = std::chrono::nanoseconds::zero(); - } - - void set_bytes(int64_t bytes) { d_num_bytes = bytes; } - - size_t get_ns_per_op() { - if (d_num_iterations <= 0) { - return 0; - } - return d_duration.count() / d_num_iterations; - } - - void run_n(size_t n) { - d_num_iterations = n; - reset_timer(); - start_timer(); - d_benchmark.get_func()(this); - stop_timer(); - } - - void run_parallel(std::function f) { - parallel_context pc(d_num_iterations); - std::vector threads; - for (size_t i = 0; i < d_num_threads; ++i) { - threads.push_back(std::thread([&pc,&f]() -> void { - f(&pc); - })); - } - for(auto& thread : threads){ - thread.join(); - } - } - - result run() { - size_t n = 1; - run_n(n); - while (d_duration < d_benchtime && n < 1e9) { - size_t last = n; - if (get_ns_per_op() == 0) { - n = 1e9; - } else { - n = d_duration.count() / get_ns_per_op(); - } - n = std::max(std::min(n+n/2, 100*last), last+1); - n = round_up(n); - run_n(n); - } - return result(n, d_duration, d_num_bytes); - } - -private: - template - T round_down_10(T n) { - int tens = 0; - while (n > 10) { - n /= 10; - tens++; - } - int result = 1; - for (int i = 0; i < tens; ++i) { - result *= 10; - } - return result; - } - - template - T round_up(T n) { - T base = round_down_10(n); - if (n < (2 * base)) { - return 2 * base; - } - if (n < (5 * base)) { - return 5 * base; - } - return 10 * base; - } -}; - -/* - * The run_benchmarks function will run the registered benchmarks. - */ -void run_benchmarks(const options& opts) { - std::regex match_r(opts.get_bench()); - auto benchmarks = registration::get_ptr()->get_benchmarks(); - for (auto& info : benchmarks) { - if (std::regex_match(info.get_name(), match_r)) { - context c(info, opts); - auto r = c.run(); - std::cout << std::setw(35) << std::left << info.get_name() << r.to_string() << std::endl; - } - } -} - -} // namespace benchpress - -/* - * If BENCHPRESS_CONFIG_MAIN is defined when the file is included then a main function will be emitted which provides a - * command-line parser and then executes run_benchmarks. - */ -#ifdef BENCHPRESS_CONFIG_MAIN -#include "cxxopts.hpp" -benchpress::registration* benchpress::registration::d_this; -int main(int argc, char** argv) { - std::chrono::high_resolution_clock::time_point bp_start = std::chrono::high_resolution_clock::now(); - benchpress::options bench_opts; - try { - cxxopts::Options cmd_opts(argv[0], " - command line options"); - cmd_opts.add_options() - ("bench", "run benchmarks matching the regular expression", cxxopts::value() - ->default_value(".*")) - ("benchtime", "run enough iterations of each benchmark to take t seconds", cxxopts::value() - ->default_value("1")) - ("cpu", "specify the number of threads to use for parallel benchmarks", cxxopts::value() - ->default_value(std::to_string(std::thread::hardware_concurrency()))) - ("help", "print help") - ; - cmd_opts.parse(argc, argv); - if (cmd_opts.count("help")) { - std::cout << cmd_opts.help({""}) << std::endl; - exit(0); - } - if (cmd_opts.count("bench")) { - bench_opts.bench(cmd_opts["bench"].as()); - } - if (cmd_opts.count("benchtime")) { - bench_opts.benchtime(cmd_opts["benchtime"].as()); - } - if (cmd_opts.count("cpu")) { - bench_opts.cpu(cmd_opts["cpu"].as()); - } - } catch (const cxxopts::OptionException& e) { - std::cout << "error parsing options: " << e.what() << std::endl; - exit(1); - } - benchpress::run_benchmarks(bench_opts); - float duration = std::chrono::duration_cast( - std::chrono::high_resolution_clock::now() - bp_start - ).count() / 1000.f; - std::cout << argv[0] << " " << duration << "s" << std::endl; - return 0; -} -#endif - -#endif // BENCHPRESS_HPP \ No newline at end of file diff --git a/resources/3rdparty/modernjson/benchmarks/cxxopts.hpp b/resources/3rdparty/modernjson/benchmarks/cxxopts.hpp deleted file mode 100755 index 94dd31cad..000000000 --- a/resources/3rdparty/modernjson/benchmarks/cxxopts.hpp +++ /dev/null @@ -1,1312 +0,0 @@ -/* - -Copyright (c) 2014 Jarryd Beck - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -*/ - -#ifndef CXX_OPTS_HPP -#define CXX_OPTS_HPP - -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wnon-virtual-dtor" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -//when we ask cxxopts to use Unicode, help strings are processed using ICU, -//which results in the correct lengths being computed for strings when they -//are formatted for the help output -//it is necessary to make sure that can be found by the -//compiler, and that icu-uc is linked in to the binary. - -#ifdef CXXOPTS_USE_UNICODE -#include - -namespace cxxopts -{ - typedef icu::UnicodeString String; - - inline - String - toLocalString(std::string s) - { - return icu::UnicodeString::fromUTF8(s); - } - - class UnicodeStringIterator : public - std::iterator - { - public: - - UnicodeStringIterator(const icu::UnicodeString* s, int32_t pos) - : s(s) - , i(pos) - { - } - - value_type - operator*() const - { - return s->char32At(i); - } - - bool - operator==(const UnicodeStringIterator& rhs) const - { - return s == rhs.s && i == rhs.i; - } - - bool - operator!=(const UnicodeStringIterator& rhs) const - { - return !(*this == rhs); - } - - UnicodeStringIterator& - operator++() - { - ++i; - return *this; - } - - UnicodeStringIterator - operator+(int32_t v) - { - return UnicodeStringIterator(s, i + v); - } - - private: - const icu::UnicodeString* s; - int32_t i; - }; - - inline - String& - stringAppend(String&s, String a) - { - return s.append(std::move(a)); - } - - inline - String& - stringAppend(String& s, int n, UChar32 c) - { - for (int i = 0; i != n; ++i) - { - s.append(c); - } - - return s; - } - - template - String& - stringAppend(String& s, Iterator begin, Iterator end) - { - while (begin != end) - { - s.append(*begin); - ++begin; - } - - return s; - } - - inline - size_t - stringLength(const String& s) - { - return s.length(); - } - - inline - std::string - toUTF8String(const String& s) - { - std::string result; - s.toUTF8String(result); - - return result; - } -} - -namespace std -{ - cxxopts::UnicodeStringIterator - begin(const icu::UnicodeString& s) - { - return cxxopts::UnicodeStringIterator(&s, 0); - } - - cxxopts::UnicodeStringIterator - end(const icu::UnicodeString& s) - { - return cxxopts::UnicodeStringIterator(&s, s.length()); - } -} - -//ifdef CXXOPTS_USE_UNICODE -#else - -namespace cxxopts -{ - typedef std::string String; - - template - T - toLocalString(T&& t) - { - return t; - } - - inline - size_t - stringLength(const String& s) - { - return s.length(); - } - - inline - String& - stringAppend(String&s, String a) - { - return s.append(std::move(a)); - } - - inline - String& - stringAppend(String& s, size_t n, char c) - { - return s.append(n, c); - } - - template - String& - stringAppend(String& s, Iterator begin, Iterator end) - { - return s.append(begin, end); - } - - template - std::string - toUTF8String(T&& t) - { - return std::forward(t); - } - -} - -//ifdef CXXOPTS_USE_UNICODE -#endif - -namespace cxxopts -{ - class Value : public std::enable_shared_from_this - { - public: - - virtual void - parse(const std::string& text) const = 0; - - virtual void - parse() const = 0; - - virtual bool - has_arg() const = 0; - - virtual bool - has_default() const = 0; - - virtual bool - has_implicit() const = 0; - - virtual std::string - get_default_value() const = 0; - - virtual std::string - get_implicit_value() const = 0; - - virtual std::shared_ptr - default_value(const std::string& value) = 0; - - virtual std::shared_ptr - implicit_value(const std::string& value) = 0; - }; - - class OptionException : public std::exception - { - public: - OptionException(const std::string& message) - : m_message(message) - { - } - - virtual const char* - what() const noexcept - { - return m_message.c_str(); - } - - private: - std::string m_message; - }; - - class OptionSpecException : public OptionException - { - public: - - OptionSpecException(const std::string& message) - : OptionException(message) - { - } - }; - - class OptionParseException : public OptionException - { - public: - OptionParseException(const std::string& message) - : OptionException(message) - { - } - }; - - class option_exists_error : public OptionSpecException - { - public: - option_exists_error(const std::string& option) - : OptionSpecException(u8"Option ‘" + option + u8"’ already exists") - { - } - }; - - class invalid_option_format_error : public OptionSpecException - { - public: - invalid_option_format_error(const std::string& format) - : OptionSpecException(u8"Invalid option format ‘" + format + u8"’") - { - } - }; - - class option_not_exists_exception : public OptionParseException - { - public: - option_not_exists_exception(const std::string& option) - : OptionParseException(u8"Option ‘" + option + u8"’ does not exist") - { - } - }; - - class missing_argument_exception : public OptionParseException - { - public: - missing_argument_exception(const std::string& option) - : OptionParseException(u8"Option ‘" + option + u8"’ is missing an argument") - { - } - }; - - class option_requires_argument_exception : public OptionParseException - { - public: - option_requires_argument_exception(const std::string& option) - : OptionParseException(u8"Option ‘" + option + u8"’ requires an argument") - { - } - }; - - class option_not_has_argument_exception : public OptionParseException - { - public: - option_not_has_argument_exception - ( - const std::string& option, - const std::string& arg - ) - : OptionParseException( - u8"Option ‘" + option + u8"’ does not take an argument, but argument‘" - + arg + "’ given") - { - } - }; - - class option_not_present_exception : public OptionParseException - { - public: - option_not_present_exception(const std::string& option) - : OptionParseException(u8"Option ‘" + option + u8"’ not present") - { - } - }; - - class argument_incorrect_type : public OptionParseException - { - public: - argument_incorrect_type - ( - const std::string& arg - ) - : OptionParseException( - u8"Argument ‘" + arg + u8"’ failed to parse" - ) - { - } - }; - - namespace values - { - template - void - parse_value(const std::string& text, T& value) - { - std::istringstream is(text); - if (!(is >> value)) - { - std::cerr << "cannot parse empty value" << std::endl; - throw argument_incorrect_type(text); - } - - if (is.rdbuf()->in_avail() != 0) - { - throw argument_incorrect_type(text); - } - } - - template - void - parse_value(const std::string& text, std::vector& value) - { - T v; - parse_value(text, v); - value.push_back(v); - } - - inline - void - parse_value(const std::string& /*text*/, bool& value) - { - //TODO recognise on, off, yes, no, enable, disable - //so that we can write --long=yes explicitly - value = true; - } - - inline - void - parse_value(const std::string& text, std::string& value) - { - value = text; - } - - template - struct value_has_arg - { - static constexpr bool value = true; - }; - - template <> - struct value_has_arg - { - static constexpr bool value = false; - }; - - template - class standard_value : public Value - { - public: - standard_value() - : m_result(std::make_shared()) - , m_store(m_result.get()) - { - } - - standard_value(T* t) - : m_store(t) - { - } - - void - parse(const std::string& text) const - { - if (m_implicit && text.empty()) - { - parse_value(m_implicit_value, *m_store); - } - else - { - parse_value(text, *m_store); - } - } - - void - parse() const - { - parse_value(m_default_value, *m_store); - } - - bool - has_arg() const - { - return value_has_arg::value; - } - - bool - has_default() const - { - return m_default; - } - - bool - has_implicit() const - { - return m_implicit; - } - - virtual std::shared_ptr - default_value(const std::string& value){ - m_default = true; - m_default_value = value; - return shared_from_this(); - } - - virtual std::shared_ptr - implicit_value(const std::string& value){ - m_implicit = true; - m_implicit_value = value; - return shared_from_this(); - } - - std::string - get_default_value() const - { - return m_default_value; - } - - std::string - get_implicit_value() const - { - return m_implicit_value; - } - - const T& - get() const - { - if (m_store == nullptr) - { - return *m_result; - } - else - { - return *m_store; - } - } - - protected: - std::shared_ptr m_result; - T* m_store; - bool m_default = false; - std::string m_default_value; - bool m_implicit = false; - std::string m_implicit_value; - }; - } - - template - std::shared_ptr - value() - { - return std::make_shared>(); - } - - template - std::shared_ptr - value(T& t) - { - return std::make_shared>(&t); - } - - class OptionAdder; - - class OptionDetails - { - public: - OptionDetails - ( - const String& description, - std::shared_ptr value - ) - : m_desc(description) - , m_value(value) - , m_count(0) - { - } - - const String& - description() const - { - return m_desc; - } - - bool - has_arg() const - { - return m_value->has_arg(); - } - - void - parse(const std::string& text) - { - m_value->parse(text); - ++m_count; - } - - void - parse_default() - { - m_value->parse(); - ++m_count; - } - - int - count() const - { - return m_count; - } - - const Value& value() const { - return *m_value; - } - - template - const T& - as() const - { -#ifdef CXXOPTS_NO_RTTI - return static_cast&>(*m_value).get(); -#else - return dynamic_cast&>(*m_value).get(); -#endif - } - - private: - String m_desc; - std::shared_ptr m_value; - int m_count; - }; - - struct HelpOptionDetails - { - std::string s; - std::string l; - String desc; - bool has_arg; - bool has_default; - std::string default_value; - bool has_implicit; - std::string implicit_value; - std::string arg_help; - }; - - struct HelpGroupDetails - { - std::string name; - std::string description; - std::vector options; - }; - - class Options - { - public: - - Options(std::string program, std::string help_string = "") - : m_program(std::move(program)) - , m_help_string(toLocalString(std::move(help_string))) - { - } - - inline - void - parse(int& argc, char**& argv); - - inline - OptionAdder - add_options(std::string group = ""); - - inline - void - add_option - ( - const std::string& group, - const std::string& s, - const std::string& l, - std::string desc, - std::shared_ptr value, - std::string arg_help - ); - - int - count(const std::string& o) const - { - auto iter = m_options.find(o); - if (iter == m_options.end()) - { - return 0; - } - - return iter->second->count(); - } - - const OptionDetails& - operator[](const std::string& option) const - { - auto iter = m_options.find(option); - - if (iter == m_options.end()) - { - throw option_not_present_exception(option); - } - - return *iter->second; - } - - //parse positional arguments into the given option - inline - void - parse_positional(std::string option); - - inline - std::string - help(const std::vector& groups = {""}) const; - - inline - const std::vector - groups() const; - - inline - const HelpGroupDetails& - group_help(const std::string& group) const; - - private: - - inline - void - add_one_option - ( - const std::string& option, - std::shared_ptr details - ); - - inline - bool - consume_positional(std::string a); - - inline - void - add_to_option(const std::string& option, const std::string& arg); - - inline - void - parse_option - ( - std::shared_ptr value, - const std::string& name, - const std::string& arg = "" - ); - - inline - void - checked_parse_arg - ( - int argc, - char* argv[], - int& current, - std::shared_ptr value, - const std::string& name - ); - - inline - String - help_one_group(const std::string& group) const; - - std::string m_program; - String m_help_string; - - std::map> m_options; - std::string m_positional; - - //mapping from groups to help options - std::map m_help; - }; - - class OptionAdder - { - public: - - OptionAdder(Options& options, std::string group) - : m_options(options), m_group(std::move(group)) - { - } - - inline - OptionAdder& - operator() - ( - const std::string& opts, - const std::string& desc, - std::shared_ptr value - = ::cxxopts::value(), - std::string arg_help = "" - ); - - private: - Options& m_options; - std::string m_group; - }; - -} - -namespace cxxopts -{ - - namespace - { - - constexpr int OPTION_LONGEST = 30; - constexpr int OPTION_DESC_GAP = 2; - - std::basic_regex option_matcher - ("--([[:alnum:]][-_[:alnum:]]+)(=(.*))?|-([a-zA-Z]+)"); - - std::basic_regex option_specifier - ("(([a-zA-Z]),)?([a-zA-Z0-9][-_a-zA-Z0-9]+)"); - - String - format_option - ( - const HelpOptionDetails& o - ) - { - auto& s = o.s; - auto& l = o.l; - - String result = " "; - - if (s.size() > 0) - { - result += "-" + toLocalString(s) + ","; - } - else - { - result += " "; - } - - if (l.size() > 0) - { - result += " --" + toLocalString(l); - } - - if (o.has_arg) - { - auto arg = o.arg_help.size() > 0 ? toLocalString(o.arg_help) : "arg"; - - if (o.has_implicit) - { - result += " [=" + arg + "(=" + toLocalString(o.implicit_value) + ")]"; - } - else - { - result += " " + arg; - } - } - - return result; - } - - String - format_description - ( - const HelpOptionDetails& o, - size_t start, - size_t width - ) - { - auto desc = o.desc; - - if (o.has_default) - { - desc += toLocalString(" (default:" + o.default_value + ")"); - } - - String result; - - auto current = std::begin(desc); - auto startLine = current; - auto lastSpace = current; - - auto size = size_t{}; - - while (current != std::end(desc)) - { - if (*current == ' ') - { - lastSpace = current; - } - - if (size > width) - { - if (lastSpace == startLine) - { - stringAppend(result, startLine, current + 1); - stringAppend(result, "\n"); - stringAppend(result, start, ' '); - startLine = current + 1; - lastSpace = startLine; - } - else - { - stringAppend(result, startLine, lastSpace); - stringAppend(result, "\n"); - stringAppend(result, start, ' '); - startLine = lastSpace + 1; - } - size = 0; - } - else - { - ++size; - } - - ++current; - } - - //append whatever is left - stringAppend(result, startLine, current); - - return result; - } - } - -OptionAdder -Options::add_options(std::string group) -{ - return OptionAdder(*this, std::move(group)); -} - -OptionAdder& -OptionAdder::operator() -( - const std::string& opts, - const std::string& desc, - std::shared_ptr value, - std::string arg_help -) -{ - std::match_results result; - std::regex_match(opts.c_str(), result, option_specifier); - - if (result.empty()) - { - throw invalid_option_format_error(opts); - } - - const auto& s = result[2]; - const auto& l = result[3]; - - m_options.add_option(m_group, s.str(), l.str(), desc, value, - std::move(arg_help)); - - return *this; -} - -void -Options::parse_option -( - std::shared_ptr value, - const std::string& /*name*/, - const std::string& arg -) -{ - value->parse(arg); -} - -void -Options::checked_parse_arg -( - int argc, - char* argv[], - int& current, - std::shared_ptr value, - const std::string& name -) -{ - if (current + 1 >= argc) - { - if (value->value().has_implicit()) - { - parse_option(value, name, ""); - } - else - { - throw missing_argument_exception(name); - } - } - else - { - if (argv[current + 1][0] == '-' && value->value().has_implicit()) - { - parse_option(value, name, ""); - } - else - { - parse_option(value, name, argv[current + 1]); - ++current; - } - } -} - -void -Options::add_to_option(const std::string& option, const std::string& arg) -{ - auto iter = m_options.find(option); - - if (iter == m_options.end()) - { - throw option_not_exists_exception(option); - } - - parse_option(iter->second, option, arg); -} - -bool -Options::consume_positional(std::string a) -{ - if (m_positional.size() > 0) - { - add_to_option(m_positional, a); - return true; - } - else - { - return false; - } -} - -void -Options::parse_positional(std::string option) -{ - m_positional = std::move(option); -} - -void -Options::parse(int& argc, char**& argv) -{ - int current = 1; - - int nextKeep = 1; - - while (current != argc) - { - std::match_results result; - std::regex_match(argv[current], result, option_matcher); - - if (result.empty()) - { - //not a flag - - //if true is returned here then it was consumed, otherwise it is - //ignored - if (consume_positional(argv[current])) - { - } - else - { - argv[nextKeep] = argv[current]; - ++nextKeep; - } - //if we return from here then it was parsed successfully, so continue - } - else - { - //short or long option? - if (result[4].length() != 0) - { - const std::string& s = result[4]; - - for (std::size_t i = 0; i != s.size(); ++i) - { - std::string name(1, s[i]); - auto iter = m_options.find(name); - - if (iter == m_options.end()) - { - throw option_not_exists_exception(name); - } - - auto value = iter->second; - - //if no argument then just add it - if (!value->has_arg()) - { - parse_option(value, name); - } - else - { - //it must be the last argument - if (i + 1 == s.size()) - { - checked_parse_arg(argc, argv, current, value, name); - } - else if (value->value().has_implicit()) - { - parse_option(value, name, ""); - } - else - { - //error - throw option_requires_argument_exception(name); - } - } - } - } - else if (result[1].length() != 0) - { - const std::string& name = result[1]; - - auto iter = m_options.find(name); - - if (iter == m_options.end()) - { - throw option_not_exists_exception(name); - } - - auto opt = iter->second; - - //equals provided for long option? - if (result[3].length() != 0) - { - //parse the option given - - //but if it doesn't take an argument, this is an error - if (!opt->has_arg()) - { - throw option_not_has_argument_exception(name, result[3]); - } - - parse_option(opt, name, result[3]); - } - else - { - if (opt->has_arg()) - { - //parse the next argument - checked_parse_arg(argc, argv, current, opt, name); - } - else - { - //parse with empty argument - parse_option(opt, name); - } - } - } - - } - - ++current; - } - - for (auto& opt : m_options) - { - auto& detail = opt.second; - auto& value = detail->value(); - - if(!detail->count() && value.has_default()){ - detail->parse_default(); - } - } - - argc = nextKeep; -} - -void -Options::add_option -( - const std::string& group, - const std::string& s, - const std::string& l, - std::string desc, - std::shared_ptr value, - std::string arg_help -) -{ - auto stringDesc = toLocalString(std::move(desc)); - auto option = std::make_shared(stringDesc, value); - - if (s.size() > 0) - { - add_one_option(s, option); - } - - if (l.size() > 0) - { - add_one_option(l, option); - } - - //add the help details - auto& options = m_help[group]; - - options.options.emplace_back(HelpOptionDetails{s, l, stringDesc, - value->has_arg(), - value->has_default(), value->get_default_value(), - value->has_implicit(), value->get_implicit_value(), - std::move(arg_help)}); -} - -void -Options::add_one_option -( - const std::string& option, - std::shared_ptr details -) -{ - auto in = m_options.emplace(option, details); - - if (!in.second) - { - throw option_exists_error(option); - } -} - -String -Options::help_one_group(const std::string& g) const -{ - typedef std::vector> OptionHelp; - - auto group = m_help.find(g); - if (group == m_help.end()) - { - return ""; - } - - OptionHelp format; - - size_t longest = 0; - - String result; - - if (!g.empty()) - { - result += toLocalString(" " + g + " options:\n\n"); - } - - for (const auto& o : group->second.options) - { - auto s = format_option(o); - longest = std::max(longest, stringLength(s)); - format.push_back(std::make_pair(s, String())); - } - - longest = std::min(longest, static_cast(OPTION_LONGEST)); - - //widest allowed description - auto allowed = size_t{76} - longest - OPTION_DESC_GAP; - - auto fiter = format.begin(); - for (const auto& o : group->second.options) - { - auto d = format_description(o, longest + OPTION_DESC_GAP, allowed); - - result += fiter->first; - if (stringLength(fiter->first) > longest) - { - result += "\n"; - result += toLocalString(std::string(longest + OPTION_DESC_GAP, ' ')); - } - else - { - result += toLocalString(std::string(longest + OPTION_DESC_GAP - - stringLength(fiter->first), - ' ')); - } - result += d; - result += "\n"; - - ++fiter; - } - - return result; -} - -std::string -Options::help(const std::vector& groups) const -{ - String result = "Usage:\n " + toLocalString(m_program) + " [OPTION...]" - + m_help_string + "\n\n"; - - for (std::size_t i = 0; i < groups.size(); ++i) - { - result += help_one_group(groups[i]); - if (i < groups.size() - 1) - { - result += "\n"; - } - } - - return toUTF8String(result); -} - -const std::vector -Options::groups() const -{ - std::vector g; - - std::transform( - m_help.begin(), - m_help.end(), - std::back_inserter(g), - [] (const std::map::value_type& pair) - { - return pair.first; - } - ); - - return g; -} - -const HelpGroupDetails& -Options::group_help(const std::string& group) const -{ - return m_help.at(group); -} - -} - -#if defined(__GNU__) -#pragma GCC diagnostic pop -#endif - -#endif //CXX_OPTS_HPP \ No newline at end of file diff --git a/resources/3rdparty/modernjson/benchmarks/files/jeopardy/jeopardy.json.REMOVED.git-id b/resources/3rdparty/modernjson/benchmarks/files/jeopardy/jeopardy.json.REMOVED.git-id deleted file mode 100644 index b44db16f0..000000000 --- a/resources/3rdparty/modernjson/benchmarks/files/jeopardy/jeopardy.json.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -a533fde78ce50a11f6189907f9e0392095222fe2 \ No newline at end of file diff --git a/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/canada.json b/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/canada.json deleted file mode 100755 index 04f63b405..000000000 --- a/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/canada.json +++ /dev/null @@ -1,9 +0,0 @@ -{ "type": "FeatureCollection", - "features": [ -{ - "type": "Feature", -"properties": { "name": "Canada" }, -"geometry": {"type":"Polygon","coordinates":[[[-65.613616999999977,43.420273000000009],[-65.619720000000029,43.418052999999986],[-65.625,43.421379000000059],[-65.636123999999882,43.449714999999969],[-65.633056999999951,43.474709000000132],[-65.611389000000031,43.513054000000068],[-65.605835000000013,43.516105999999979],[-65.598343,43.515830999999935],[-65.566101000000003,43.508331000000055],[-65.561935000000005,43.504439999999988],[-65.55999799999995,43.499718000000087],[-65.573333999999988,43.476379000000065],[-65.593612999999948,43.444153000000028],[-65.613616999999977,43.420273000000009]],[[-59.816947999999911,43.928328999999962],[-59.841667000000029,43.918602000000021],[-59.866393999999957,43.909987999999998],[-59.879722999999956,43.906654000000003],[-59.895835999999974,43.904160000000047],[-59.919448999999929,43.901099999999985],[-59.953330999999991,43.898604999999975],[-60.013617999999951,43.903320000000008],[-60.028609999999958,43.905548000000124],[-60.078338999999914,43.917496000000028],[-60.103888999999981,43.926659000000029],[-60.121666000000005,43.934990000000084],[-60.129997000000003,43.941933000000063],[-60.124167999999997,43.945267000000058],[-60.095000999999968,43.939430000000129],[-60.017776000000026,43.925827000000083],[-59.975554999999986,43.921936000000017],[-59.966942000000017,43.921936000000017],[-59.915000999999961,43.925552000000096],[-59.861945999999989,43.934433000000013],[-59.841385000000002,43.938880999999981],[-59.80972300000002,43.950828999999999],[-59.793334999999956,43.959435000000099],[-59.777221999999938,43.968048000000067],[-59.755279999999971,43.979431000000091],[-59.724716000000001,43.991104000000121],[-59.727775999999949,43.986382000000049],[-59.736389000000031,43.979156000000103],[-59.753615999999965,43.964995999999985],[-59.762504999999919,43.957771000000093],[-59.782501000000025,43.944434999999999],[-59.793059999999969,43.93832400000008],[-59.816947999999911,43.928328999999962]],[[-66.282775999999956,44.289719000000105],[-66.314437999999996,44.250548999999978],[-66.322234999999978,44.252777000000094],[-66.324448000000018,44.25750000000005],[-66.323897999999986,44.263329000000113],[-66.310271999999998,44.289993000000038],[-66.303054999999915,44.300545000000056],[-66.294723999999917,44.310271999999998],[-66.228333000000021,44.385826000000009],[-66.21945199999999,44.394713999999965],[-66.214447000000007,44.397774000000027],[-66.206389999999942,44.395271000000037],[-66.204726999999934,44.384995000000004],[-66.205275999999969,44.379433000000063],[-66.208053999999947,44.372765000000072],[-66.214721999999938,44.36360900000011],[-66.249725000000012,44.327217000000132],[-66.282775999999956,44.289719000000105]],[[-66.886123999999995,44.614440999999999],[-66.900283999999999,44.61332699999997],[-66.904174999999952,44.618049999999982],[-66.904449,44.622489999999971],[-66.884734999999978,44.68332700000002],[-66.858611999999937,44.743050000000039],[-66.837783999999942,44.770827999999995],[-66.833327999999938,44.774994000000049],[-66.803329000000019,44.798881999999992],[-66.798049999999932,44.802490000000091],[-66.786666999999852,44.808044000000109],[-66.779723999999931,44.809158000000082],[-66.772507000000019,44.809158000000082],[-66.767226999999934,44.805549999999982],[-66.764724999999999,44.801102000000014],[-66.757781999999963,44.792496000000085],[-66.734726000000023,44.729156000000103],[-66.736938000000009,44.717209000000139],[-66.740279999999927,44.70777099999998],[-66.761123999999995,44.676102000000128],[-66.765015000000005,44.671378999999945],[-66.875274999999931,44.619438000000059],[-66.886123999999995,44.614440999999999]],[[-61.199996999999996,45.558327000000077],[-61.204720000000009,45.555267000000072],[-61.212775999999963,45.556656000000032],[-61.219993999999986,45.559990000000028],[-61.224167000000023,45.564156000000139],[-61.222220999999934,45.569443000000035],[-61.21416499999998,45.568886000000134],[-61.208610999999962,45.56721500000009],[-61.202498999999989,45.563324000000023],[-61.199996999999996,45.558327000000077]],[[-60.993889000000024,45.45777099999998],[-61.00028199999997,45.455826000000002],[-61.007781999999963,45.457214000000079],[-61.019446999999957,45.463882000000069],[-61.101943999999946,45.523048000000017],[-61.105835000000013,45.526939000000084],[-61.108337000000006,45.540833000000021],[-61.104445999999939,45.546387000000038],[-61.098609999999951,45.549164000000076],[-61.023612999999955,45.574997000000053],[-61.017220000000009,45.575272000000041],[-60.936942999999985,45.576659999999947],[-60.908051,45.576103000000046],[-60.900275999999906,45.575554000000125],[-60.879996999999946,45.560547000000099],[-60.878608999999869,45.555824000000143],[-60.883888000000013,45.550544999999943],[-60.889167999999984,45.548332000000016],[-60.910277999999948,45.546104000000071],[-60.936110999999983,45.539161999999976],[-60.947495000000004,45.533607000000075],[-60.952498999999932,45.529990999999995],[-60.962501999999915,45.519989000000066],[-60.96305799999999,45.514998999999989],[-60.961669999999913,45.510277000000087],[-60.958611000000019,45.505829000000119],[-60.950553999999954,45.497771999999998],[-60.993889000000024,45.45777099999998]],[[-63.246391000000017,46.435547000000042],[-63.25389100000001,46.435265000000129],[-63.26167299999986,46.436378000000047],[-63.269446999999957,46.439713000000097],[-63.285004000000015,46.450829000000056],[-63.27055399999989,46.450271999999984],[-63.245834000000002,46.442764000000125],[-63.240836999999999,46.438599000000124],[-63.246391000000017,46.435547000000042]],[[-71.111114999999984,46.850548000000003],[-71.118606999999997,46.850273000000016],[-71.127486999999917,46.851662000000033],[-71.130279999999914,46.856102000000021],[-71.128326000000015,46.862213000000111],[-71.121383999999978,46.874161000000129],[-71.098891999999978,46.898048000000017],[-71.078339000000028,46.913605000000075],[-70.936935000000005,46.992493000000024],[-70.896666999999866,47.013329000000056],[-70.87222300000002,47.024162000000047],[-70.860001000000011,47.02777100000003],[-70.845276000000013,47.029160000000047],[-70.836394999999982,47.02777100000003],[-70.818893000000003,47.02276599999999],[-70.81361400000003,47.019440000000145],[-70.809158000000025,47.01527400000009],[-70.807495000000017,47.00999500000006],[-70.809432999999956,47.004439999999988],[-70.814437999999996,46.998329000000126],[-70.877212999999983,46.931107000000111],[-70.887512000000015,46.923607000000004],[-70.904174999999952,46.913605000000075],[-71.009170999999924,46.871101000000067],[-71.033324999999934,46.862494999999967],[-71.040832999999964,46.860549999999989],[-71.082229999999925,46.853325000000098],[-71.111114999999984,46.850548000000003]],[[-60.445273999999984,46.861664000000133],[-60.436942999999985,46.861107000000061],[-60.352782999999988,46.861664000000133],[-60.345832999999857,46.862494999999967],[-60.334441999999967,46.868881000000101],[-60.326110999999969,46.868323999999973],[-60.320838999999978,46.864441000000056],[-60.309440999999936,46.851105000000132],[-60.302223000000026,46.837493999999936],[-60.301392000000021,46.831940000000145],[-60.304442999999935,46.815269000000114],[-60.322776999999917,46.736382000000049],[-60.327224999999885,46.724991000000045],[-60.478881999999942,46.389992000000063],[-60.535277999999948,46.321663000000058],[-60.589438999999857,46.25499700000006],[-60.609169000000009,46.201934999999935],[-60.590331999999933,46.207821000000081],[-60.587001999999984,46.209488000000135],[-60.57150299999995,46.228653000000122],[-60.553329000000019,46.248878000000047],[-60.551391999999964,46.25499700000006],[-60.543335000000013,46.266663000000051],[-60.528053,46.278602999999919],[-60.479720999999984,46.311104000000057],[-60.46805599999999,46.316665999999998],[-60.44388600000002,46.326942000000088],[-60.430557000000022,46.33138299999996],[-60.424171000000001,46.331665000000044],[-60.416388999999867,46.328049000000021],[-60.412216000000001,46.31888600000002],[-60.417777999999942,46.285827999999981],[-60.419997999999964,46.279991000000052],[-60.42472099999992,46.27526899999998],[-60.438048999999921,46.270828000000051],[-60.454719999999952,46.262215000000083],[-60.470550999999944,46.251105999999993],[-60.53583100000003,46.192436000000043],[-60.59027900000001,46.138603000000103],[-60.600280999999939,46.130271999999991],[-60.61611199999993,46.120827000000133],[-60.645836000000031,46.106102000000021],[-60.687774999999874,46.088326000000052],[-60.701110999999912,46.08526599999999],[-60.788895000000025,46.066666000000055],[-60.86333499999995,46.052490000000034],[-60.986114999999927,45.982491000000095],[-61.023887999999943,45.969437000000028],[-61.080283999999949,45.951660000000004],[-61.087776000000019,45.95138500000013],[-61.095832999999971,45.952217000000076],[-61.105003000000011,45.954712000000086],[-61.113059999999905,45.955268999999987],[-61.117774999999938,45.950828999999999],[-61.126944999999978,45.928329000000133],[-61.125556999999958,45.923607000000061],[-61.118332000000009,45.923049999999932],[-61.056999000000019,45.931216999999947],[-61.052834000000018,45.931881000000033],[-61.017497999999989,45.940712000000076],[-61.014835000000005,45.943382000000042],[-60.989165999999955,45.95638300000013],[-60.987777999999935,45.962494000000049],[-60.984168999999952,45.967490999999939],[-60.957221999999945,45.984992999999974],[-60.940551999999911,45.994438000000059],[-60.892776000000026,46.01527400000009],[-60.853057999999976,46.03138000000007],[-60.770835999999917,46.057495000000074],[-60.757506999999919,46.060546999999985],[-60.743056999999965,46.061661000000015],[-60.735557999999912,46.058044000000052],[-60.734169000000009,46.05332199999998],[-60.734169000000009,46.047493000000145],[-60.807502999999997,45.931107000000111],[-60.870276999999987,45.910820000000058],[-60.898055999999997,45.906654000000117],[-60.956947000000014,45.903046000000018],[-61.042888999999946,45.891327000000103],[-61.047053999999946,45.890659000000085],[-61.050555999999972,45.888991999999973],[-61.053390999999976,45.886162000000127],[-61.096663999999976,45.860275000000001],[-61.097777999999948,45.854713000000061],[-61.094718999999998,45.850273000000016],[-61.087776000000019,45.847487999999998],[-61.079726999999991,45.84693900000002],[-61.073059000000001,45.84804500000007],[-61.060829000000012,45.852776000000006],[-61.049445999999989,45.858330000000024],[-61.026107999999965,45.86971299999999],[-60.989997999999957,45.881934999999999],[-60.96805599999999,45.883331000000055],[-60.960281000000009,45.880272000000048],[-60.919448999999986,45.857498000000078],[-60.915833000000021,45.852776000000006],[-60.917777999999942,45.847487999999998],[-60.935271999999941,45.825271999999984],[-60.940551999999911,45.821663000000001],[-60.947495000000004,45.820549000000028],[-61.019446999999957,45.809989999999971],[-61.067504999999983,45.791663999999969],[-61.079169999999976,45.786110000000008],[-61.118057000000022,45.763611000000026],[-61.12777699999998,45.755271999999991],[-61.147223999999994,45.704993999999999],[-61.149170000000026,45.699715000000026],[-61.142501999999922,45.696381000000031],[-61.077498999999932,45.688880999999981],[-61.070838999999978,45.689987000000031],[-61.041945999999996,45.704162999999994],[-61.012778999999966,45.718880000000013],[-60.996391000000017,45.727767999999969],[-60.972771000000023,45.738045],[-60.954719999999952,45.745543999999938],[-60.935829000000012,45.751389000000074],[-60.92222599999991,45.75360900000004],[-60.914443999999946,45.75360900000004],[-60.890556000000004,45.751663000000008],[-60.881942999999922,45.750000000000057],[-60.864165999999898,45.744438000000116],[-60.844161999999983,45.735268000000076],[-60.816665999999998,45.722488000000112],[-60.809998000000007,45.719154000000117],[-60.800835000000006,45.71166199999999],[-60.729438999999957,45.778603000000032],[-60.719718999999998,45.788329999999974],[-60.516944999999964,45.920830000000137],[-60.491942999999878,45.929436000000067],[-60.466942000000017,45.938041999999996],[-60.409163999999976,45.979987999999935],[-60.404166999999973,45.984436000000073],[-60.395835999999974,45.99610100000001],[-60.40166499999998,45.994713000000104],[-60.555000000000007,45.946938000000102],[-60.611671000000001,45.924995000000138],[-60.629722999999899,45.917496000000142],[-60.639998999999989,45.91027100000008],[-60.644721999999945,45.905548000000124],[-60.655272999999966,45.898330999999985],[-60.661110000000008,45.895270999999923],[-60.673331999999903,45.890549000000021],[-60.686110999999926,45.886940000000038],[-60.69388600000002,45.886107999999922],[-60.708892999999875,45.887215000000026],[-60.723327999999981,45.893326000000116],[-60.788337999999953,45.929436000000067],[-60.789725999999973,45.934433000000126],[-60.788895000000025,45.939986999999974],[-60.785278000000005,45.946381000000031],[-60.78055599999999,45.950828999999999],[-60.691382999999973,46.001937999999939],[-60.679168999999945,46.006660000000011],[-60.601395000000025,46.039719000000105],[-60.541114999999991,46.065544000000102],[-60.523612999999955,46.075554000000011],[-60.490836999999942,46.094437000000084],[-60.30999799999995,46.206939999999975],[-60.30499999999995,46.210548000000074],[-60.299994999999967,46.214996000000042],[-60.295279999999934,46.226936000000137],[-60.295279999999934,46.232208000000071],[-60.304169000000002,46.233878999999945],[-60.365554999999972,46.224990999999989],[-60.372771999999998,46.223320000000115],[-60.396111000000019,46.213051000000064],[-60.401938999999913,46.21027399999997],[-60.418335000000013,46.199996999999996],[-60.428054999999915,46.192490000000078],[-60.442497000000003,46.17943600000001],[-60.463332999999921,46.163879000000122],[-60.479163999999912,46.152771000000143],[-60.528053,46.121658000000139],[-60.605835000000013,46.074715000000083],[-60.629997000000003,46.065269000000114],[-60.644164999999987,46.063049000000092],[-60.65193899999997,46.063880999999981],[-60.656104999999968,46.067772000000048],[-60.656386999999938,46.073051000000021],[-60.652495999999985,46.079436999999984],[-60.638335999999867,46.093048000000124],[-60.456107999999972,46.241379000000052],[-60.404998999999975,46.279991000000052],[-60.399726999999984,46.283882000000119],[-60.388892999999996,46.291106999999954],[-60.359725999999966,46.304993000000138],[-60.347778000000005,46.310546999999985],[-60.285278000000005,46.321381000000031],[-60.205558999999994,46.240273000000002],[-60.138054000000011,46.246658000000025],[-60.131942999999922,46.248604000000114],[-60.124167999999997,46.248604000000114],[-60.099997999999971,46.246384000000091],[-60.091666999999916,46.244713000000047],[-59.950553999999897,46.201385000000073],[-59.873054999999965,46.17582699999997],[-59.808608999999876,46.111938000000066],[-59.80972300000002,46.106384000000048],[-59.819449999999961,46.097214000000008],[-59.834166999999979,46.084717000000012],[-59.853888999999924,46.00249500000001],[-59.840553,45.938324000000023],[-59.958610999999962,45.901657000000057],[-60.130279999999971,45.867767000000129],[-60.136115999999959,45.864997999999957],[-60.155272999999966,45.846656999999993],[-60.159438999999963,45.841102999999976],[-60.160552999999936,45.835548000000074],[-60.174445999999989,45.76388500000013],[-60.229163999999969,45.705551000000128],[-60.233886999999925,45.701102999999932],[-60.245834000000002,45.69499200000007],[-60.379723000000013,45.644997000000046],[-60.392226999999991,45.641105999999979],[-60.411666999999966,45.636940000000095],[-60.49888599999997,45.620269999999948],[-60.513061999999934,45.618880999999988],[-60.55750299999994,45.618049999999982],[-60.765556000000004,45.594994000000099],[-60.960830999999928,45.599433999999917],[-61.101669000000015,45.564437999999996],[-61.14833799999991,45.555267000000072],[-61.168334999999956,45.551384000000098],[-61.196917999999982,45.583740000000091],[-61.218696999999963,45.580788000000098],[-61.237521999999956,45.581528000000048],[-61.273055999999997,45.561935000000005],[-61.336945000000014,45.573326000000009],[-61.37557599999991,45.622131000000138],[-61.430556999999965,45.665543000000071],[-61.454719999999952,45.705551000000128],[-61.457503999999972,45.71527100000003],[-61.478049999999996,45.803879000000109],[-61.494720000000029,45.846381999999949],[-61.527495999999985,45.98943300000002],[-61.455558999999994,46.137497000000053],[-61.447776999999974,46.149436999999978],[-61.438888999999961,46.159430999999984],[-61.412772999999959,46.178329000000076],[-61.390839000000028,46.191376000000105],[-61.37388599999997,46.200829000000113],[-61.343329999999924,46.212493999999992],[-61.305557000000022,46.224990999999989],[-61.293892000000028,46.230819999999994],[-61.283332999999971,46.238884000000041],[-61.09722099999999,46.44609800000012],[-61.089438999999913,46.458046000000138],[-61.035278000000005,46.555549999999982],[-61.033057999999926,46.561661000000072],[-61.031113000000005,46.572769000000051],[-61.032501000000025,46.577492000000063],[-60.996947999999918,46.634720000000073],[-60.892226999999991,46.77388000000002],[-60.873610999999869,46.793052999999929],[-60.86361699999992,46.801384000000041],[-60.84027900000001,46.813605999999993],[-60.833884999999896,46.815543999999932],[-60.805557000000022,46.820273999999984],[-60.793892000000028,46.825271999999984],[-60.724716000000001,46.874992000000134],[-60.714721999999995,46.88249200000007],[-60.704444999999907,46.891380000000026],[-60.695273999999927,46.901657],[-60.686660999999958,46.912491000000045],[-60.678336999999942,46.930824000000143],[-60.670554999999979,46.953606000000036],[-60.664444000000003,46.966103000000032],[-60.65694400000001,46.978600000000029],[-60.640282000000013,47],[-60.609169000000009,47.024437000000091],[-60.597777999999892,47.031105000000025],[-60.591942000000017,47.033333000000027],[-60.583327999999938,47.031661999999926],[-60.460830999999871,46.999161000000015],[-60.427498000000014,46.965827999999988],[-60.493889000000024,46.902214000000072],[-60.498055000000022,46.896660000000111],[-60.452224999999942,46.864441000000056],[-60.445273999999984,46.861664000000133]],[[-64.039718999999991,46.743324000000086],[-64.031677000000002,46.742767000000015],[-64.016402999999912,46.743607000000054],[-64.009170999999981,46.744156000000032],[-64.005004999999983,46.749718000000144],[-63.999999999999943,46.75360900000004],[-63.991668999999945,46.753052000000139],[-63.979163999999912,46.746383999999978],[-63.974715999999944,46.742493000000081],[-63.832503999999972,46.617210000000057],[-63.831673000000023,46.611938000000123],[-63.865004999999883,46.537498000000085],[-63.868888999999967,46.531937000000084],[-63.840836000000024,46.464438999999913],[-63.828339000000028,46.458046000000138],[-63.780281000000002,46.44499200000007],[-63.742226000000016,46.439430000000129],[-63.733054999999979,46.438881000000038],[-63.709442000000024,46.43749200000002],[-63.703888000000006,46.440544000000102],[-63.698050999999964,46.456383000000073],[-63.698607999999979,46.461662000000047],[-63.700279000000023,46.466385000000002],[-63.722771000000023,46.48054500000012],[-63.738051999999982,46.491378999999995],[-63.739998000000014,46.496101000000067],[-63.723327999999924,46.543610000000058],[-63.716110000000015,46.553879000000109],[-63.709723999999994,46.556099000000131],[-63.676391999999964,46.564156000000082],[-63.662216000000001,46.566382999999973],[-63.647223999999881,46.56721500000009],[-63.618889000000024,46.561104],[-63.497779999999977,46.527771000000143],[-63.315001999999936,46.488602000000071],[-63.271979999999928,46.426926000000094],[-63.240661999999986,46.420456000000001],[-63.216392999999982,46.412209000000132],[-62.942771999999877,46.426941000000113],[-62.862777999999935,46.434715000000097],[-62.698607999999979,46.452492000000007],[-62.692497000000003,46.456100000000106],[-62.686385999999914,46.457497000000046],[-62.665833000000021,46.461104999999975],[-62.595001000000025,46.470825000000048],[-62.477218999999991,46.477768000000026],[-62.455558999999994,46.478600000000142],[-62.182502999999997,46.485824999999977],[-62.166388999999981,46.486107000000061],[-62.133330999999941,46.482764999999915],[-62.058051999999975,46.472762999999986],[-62.014724999999942,46.46527100000003],[-61.979720999999984,46.45915999999994],[-61.970551,46.456940000000145],[-61.965003999999965,46.453323000000012],[-61.968886999999995,46.447768999999994],[-61.973609999999951,46.443047000000092],[-62.013061999999991,46.421104000000128],[-62.101112000000001,46.379715000000033],[-62.173331999999959,46.349433999999974],[-62.215552999999943,46.343605000000139],[-62.279723999999931,46.338043000000027],[-62.309166000000005,46.349998000000085],[-62.326392999999996,46.354996000000085],[-62.342773000000022,46.356102000000135],[-62.357779999999934,46.35582700000009],[-62.355834999999956,46.35083000000003],[-62.348052999999993,46.332214000000022],[-62.334723999999994,46.311935000000062],[-62.361945999999932,46.276657000000057],[-62.419448999999986,46.219986000000119],[-62.424720999999977,46.215546000000074],[-62.453888000000006,46.21443899999997],[-62.507506999999919,46.214157000000114],[-62.603888999999924,46.182495000000131],[-62.603888999999924,46.177215999999987],[-62.54222900000002,46.122490000000028],[-62.507506999999919,46.118881000000044],[-62.5,46.119156000000089],[-62.478333000000021,46.120827000000133],[-62.477218999999991,46.126380999999924],[-62.478881999999999,46.131935000000112],[-62.481667000000016,46.13638300000008],[-62.489998000000014,46.138328999999999],[-62.497222999999963,46.138046000000031],[-62.506110999999976,46.139717000000076],[-62.513892999999996,46.142220000000066],[-62.509726999999998,46.148605000000032],[-62.504448000000025,46.150825999999995],[-62.489166000000012,46.151382000000126],[-62.473052999999993,46.150269000000094],[-62.468886999999995,46.146102999999982],[-62.449164999999937,46.100548000000003],[-62.447494999999947,46.095543000000134],[-62.446945000000028,46.090546000000018],[-62.454720000000009,46.018883000000073],[-62.459166999999979,46.006386000000077],[-62.473609999999951,45.994713000000104],[-62.496947999999975,45.983879000000002],[-62.510001999999929,45.979156000000046],[-62.541671999999949,45.970543000000077],[-62.548614999999927,45.969437000000028],[-62.591667000000029,45.964996000000099],[-62.613891999999964,45.962769000000037],[-62.650276000000019,45.960274000000027],[-62.761115999999959,45.954162999999937],[-62.837776000000019,45.967490999999939],[-62.856667000000016,45.977486000000056],[-62.882773999999984,45.995544000000109],[-62.930283000000031,46.037215999999944],[-62.970832999999971,46.07416500000005],[-62.922500999999954,46.092491000000052],[-62.917220999999984,46.096382000000119],[-62.875274999999931,46.134995000000004],[-62.871940999999936,46.143607999999972],[-62.885276999999974,46.155823000000055],[-62.890839000000028,46.159430999999984],[-63.025276000000019,46.189156000000082],[-63.103614999999991,46.201934999999935],[-63.112777999999992,46.204163000000108],[-63.119445999999868,46.207214000000135],[-63.12222300000002,46.211662000000103],[-63.120276999999987,46.217766000000097],[-63.115836999999942,46.222487999999998],[-63.038895000000025,46.280273000000079],[-63.02416999999997,46.290275999999949],[-63.017776000000026,46.292496000000142],[-63.010284000000013,46.292770000000075],[-63.002228000000002,46.289992999999981],[-62.99610899999999,46.292220999999984],[-62.979438999999957,46.301658999999972],[-62.969161999999983,46.309432999999956],[-62.964721999999881,46.314156000000139],[-62.962775999999963,46.319992000000013],[-62.969443999999953,46.31888600000002],[-63.035277999999892,46.301658999999972],[-63.041388999999981,46.299721000000034],[-63.052779999999927,46.293884000000048],[-63.058608999999933,46.290833000000021],[-63.090836000000024,46.26915699999995],[-63.165001000000018,46.210548000000074],[-63.143332999999984,46.201660000000118],[-63.139167999999984,46.197769000000051],[-63.138610999999912,46.192490000000078],[-63.140556000000004,46.186378000000104],[-63.22444200000001,46.139717000000076],[-63.23860899999994,46.138046000000031],[-63.253615999999965,46.137497000000053],[-63.26167299999986,46.138046000000031],[-63.289169000000015,46.14388299999996],[-63.409163999999919,46.176940999999999],[-63.519722000000002,46.206099999999935],[-63.591942000000017,46.211937000000091],[-63.642775999999913,46.224990999999989],[-63.649726999999928,46.228043000000071],[-63.699722000000008,46.259437999999989],[-63.700553999999954,46.269989000000066],[-63.702224999999999,46.27526899999998],[-63.70666499999993,46.278602999999919],[-63.741942999999935,46.304436000000067],[-63.754447999999968,46.310822000000144],[-63.811110999999926,46.32749200000012],[-63.772223999999937,46.360825000000091],[-63.736945999999932,46.353882000000112],[-63.729163999999969,46.352776000000063],[-63.714721999999995,46.354164000000026],[-63.739166000000012,46.391106000000036],[-63.745002999999997,46.394714000000135],[-63.754447999999968,46.396385000000009],[-63.761672999999917,46.396659999999997],[-63.841109999999958,46.39888000000002],[-63.963615000000004,46.401100000000042],[-63.981941000000006,46.39388300000013],[-63.989165999999898,46.393608000000086],[-64.121933000000013,46.404709000000025],[-64.129989999999964,46.407211000000132],[-64.133057000000008,46.4116590000001],[-64.135009999999909,46.416382000000056],[-64.133057000000008,46.43332700000002],[-64.115828999999962,46.523048000000017],[-64.11332699999997,46.53472099999999],[-64.110000999999954,46.541107000000125],[-64.105559999999969,46.54583000000008],[-64.100280999999882,46.549720999999977],[-64.094161999999926,46.551659000000086],[-64.105559999999969,46.618050000000096],[-64.273894999999982,46.62332200000003],[-64.387511999999958,46.62082700000002],[-64.391952999999944,46.624709999999936],[-64.413895000000025,46.665825000000098],[-64.415558000000033,46.670546999999999],[-64.416655999999932,46.68110699999994],[-64.414718999999991,46.697769000000108],[-64.410277999999948,46.711105000000089],[-64.400283999999942,46.727486000000113],[-64.382492000000013,46.746658000000082],[-64.346953999999982,46.773605000000032],[-64.323897999999929,46.786384999999996],[-64.296386999999982,46.801659000000029],[-64.286117999999931,46.80943300000007],[-64.27305599999994,46.823607999999979],[-64.249724999999955,46.868050000000039],[-64.247771999999941,46.874161000000129],[-64.247222999999906,46.879714999999976],[-64.243880999999988,46.886108000000092],[-64.236389000000031,46.897491000000116],[-64.226943999999946,46.906097000000045],[-64.182770000000005,46.945541000000105],[-64.168610000000001,46.956657000000064],[-64.020844000000011,47.038605000000132],[-63.99500299999994,46.984161000000086],[-63.969993999999986,46.901657],[-63.967498999999862,46.891662999999994],[-64.041381999999999,46.82249500000006],[-64.066100999999946,46.804436000000123],[-64.076401000000033,46.798881999999992],[-64.091674999999952,46.778603000000032],[-64.077498999999932,46.756386000000134],[-64.074448000000018,46.752220000000023],[-64.067504999999926,46.749161000000072],[-64.039718999999991,46.743324000000086]],[[-55.876105999999993,47.260551000000021],[-55.968329999999867,47.257773999999927],[-55.946388000000013,47.273323000000062],[-55.934440999999936,47.279434000000094],[-55.895003999999972,47.290833000000021],[-55.888053999999954,47.292496000000142],[-55.881110999999976,47.293326999999977],[-55.872771999999998,47.292221000000097],[-55.865836999999885,47.287773000000129],[-55.855003000000011,47.269714000000022],[-55.876105999999993,47.260551000000021]],[[-61.380554000000018,47.620270000000119],[-61.493057000000022,47.552490000000091],[-61.498610999999926,47.550270000000069],[-61.535560999999973,47.54583000000008],[-61.54222900000002,47.545547000000113],[-61.547782999999868,47.549164000000076],[-61.549445999999989,47.553879000000109],[-61.545279999999991,47.55943300000007],[-61.520279000000016,47.569160000000011],[-61.513892999999939,47.572495000000117],[-61.477492999999924,47.60054800000006],[-61.473610000000008,47.6055530000001],[-61.471382000000006,47.611382000000106],[-61.470551,47.616936000000123],[-61.479163999999969,47.618599000000017],[-61.534447,47.618881000000101],[-61.541945999999996,47.617210000000057],[-61.559440999999993,47.609161000000029],[-61.653610000000015,47.549995000000081],[-61.855559999999969,47.417213000000061],[-61.849723999999981,47.413605000000132],[-61.841667000000029,47.410820000000115],[-61.833611000000019,47.409987999999998],[-61.789169000000015,47.425827000000083],[-61.777221999999995,47.431664000000069],[-61.766662999999937,47.439156000000025],[-61.714447000000007,47.489989999999977],[-61.691382999999973,47.515548999999965],[-61.701392999999939,47.491936000000067],[-61.740836999999942,47.44499200000007],[-61.843329999999924,47.388603000000046],[-61.90589099999994,47.354935000000012],[-61.925277999999992,47.343605000000139],[-61.93332700000002,47.333327999999938],[-61.962776000000019,47.281662000000097],[-61.965003999999965,47.275551000000007],[-61.964721999999995,47.270271000000093],[-61.961945000000014,47.266106000000093],[-61.957503999999972,47.261940000000038],[-61.938605999999993,47.257217000000026],[-61.827782000000013,47.234161000000029],[-61.819450000000018,47.233330000000024],[-61.807776999999987,47.239159000000029],[-61.799445999999989,47.250274999999931],[-61.794723999999917,47.254714999999976],[-61.783057999999869,47.260551000000021],[-61.782775999999956,47.255272000000048],[-61.789725999999916,47.242493000000024],[-61.793892000000028,47.236938000000123],[-61.799445999999989,47.232764999999972],[-61.810279999999977,47.226654000000053],[-61.816948000000025,47.224709000000075],[-61.84444400000001,47.219436999999971],[-61.859443999999883,47.218047999999953],[-61.955276000000026,47.211662000000047],[-61.979995999999971,47.213608000000136],[-61.996390999999903,47.214996000000042],[-62.004722999999956,47.217766000000097],[-62.010001999999872,47.22137500000008],[-62.013061999999991,47.225821999999994],[-62.014724999999942,47.23054500000012],[-62.015006999999912,47.235825000000034],[-62.013061999999991,47.241661000000079],[-61.948607999999979,47.379432999999949],[-61.941665999999941,47.392219999999952],[-61.937499999999943,47.39777400000014],[-61.928054999999972,47.407211000000075],[-61.922225999999966,47.409987999999998],[-61.908889999999928,47.413879000000065],[-61.736114999999984,47.507216999999969],[-61.705832999999984,47.532494000000099],[-61.684440999999936,47.547492999999974],[-61.662216000000001,47.561661000000072],[-61.616942999999992,47.588042999999914],[-61.571114000000023,47.613608999999997],[-61.553611999999987,47.623046999999985],[-61.53583500000002,47.631659999999954],[-61.529167000000029,47.633606000000043],[-61.521110999999962,47.634437999999989],[-61.425277999999992,47.642769000000044],[-61.407775999999956,47.641105999999922],[-61.388892999999996,47.637771999999984],[-61.381942999999922,47.634437999999989],[-61.377776999999924,47.631103999999993],[-61.376105999999993,47.626380999999981],[-61.380554000000018,47.620270000000119]],[[-54.261391000000003,47.39027400000009],[-54.268889999999999,47.389717000000019],[-54.293059999999969,47.391663000000051],[-54.341385000000002,47.398048000000074],[-54.358054999999979,47.403046000000074],[-54.364448999999979,47.406654000000003],[-54.365554999999915,47.411659000000043],[-54.359726000000023,47.416664000000083],[-54.326392999999996,47.436653000000035],[-54.295279999999991,47.44999700000011],[-54.278053,47.460823000000062],[-54.267220000000009,47.469437000000084],[-54.262222000000008,47.474709000000018],[-54.257781999999963,47.480820000000108],[-54.230552999999986,47.523605000000032],[-54.229996000000028,47.550270000000069],[-54.204719999999952,47.593605000000082],[-54.13527699999986,47.668053000000043],[-54.128882999999973,47.670546999999999],[-54.122771999999998,47.66693900000007],[-54.121940999999993,47.661934000000031],[-54.122222999999963,47.656937000000084],[-54.124999999999943,47.640831000000105],[-54.160827999999981,47.534996000000035],[-54.238892000000021,47.40387700000008],[-54.243331999999953,47.399437000000091],[-54.255004999999983,47.392769000000101],[-54.261391000000003,47.39027400000009]],[[-54.077498999999989,47.479431000000091],[-54.08306099999993,47.474991000000102],[-54.093055999999933,47.483046999999999],[-54.096663999999976,47.487213000000054],[-54.101112000000001,47.496384000000035],[-54.101944000000003,47.501389000000074],[-54.099723999999924,47.558883999999978],[-54.09833500000002,47.589714000000015],[-54.097220999999934,47.605270000000132],[-54.09332999999998,47.631659999999954],[-54.083610999999962,47.679717999999923],[-54.078612999999962,47.684990000000028],[-54.071388000000013,47.685546999999929],[-54.067504999999983,47.681107000000111],[-54.060555000000022,47.651099999999985],[-54.078056000000004,47.563881000000038],[-54.05972300000002,47.532211000000132],[-54.058891000000017,47.527214000000072],[-54.077498999999989,47.479431000000091]],[[-55.901938999999857,47.602493000000038],[-55.923057999999912,47.599434000000088],[-55.947220000000016,47.601936000000137],[-56.013335999999981,47.611664000000019],[-56.097778000000005,47.627487000000031],[-56.105559999999855,47.630821000000026],[-56.109169000000009,47.63499500000006],[-56.113616999999977,47.644714000000022],[-56.112220999999977,47.649719000000118],[-56.106666999999959,47.654709000000139],[-56.100280999999939,47.657211000000018],[-56.005835999999988,47.680274999999995],[-55.941108999999983,47.689156000000139],[-55.933883999999978,47.688324000000023],[-55.92861199999993,47.684432999999956],[-55.927498000000014,47.676658999999972],[-55.934440999999936,47.658882000000119],[-55.934440999999936,47.653877000000023],[-55.932502999999997,47.643883000000017],[-55.930000000000007,47.639435000000049],[-55.926392000000021,47.635268999999994],[-55.914161999999976,47.628326000000015],[-55.889442000000031,47.618881000000101],[-55.876388999999961,47.611664000000019],[-55.882499999999936,47.607773000000122],[-55.901938999999857,47.602493000000038]],[[-64.482773000000009,47.917770000000019],[-64.50167799999997,47.856384000000048],[-64.503615999999909,47.850273000000016],[-64.514724999999999,47.832497000000046],[-64.523055999999997,47.822220000000016],[-64.541106999999954,47.80332199999998],[-64.604995999999971,47.748329000000126],[-64.610549999999989,47.745270000000005],[-64.635833999999988,47.735825000000091],[-64.647507000000019,47.733879000000002],[-64.690551999999968,47.753052000000139],[-64.693328999999949,47.758049000000028],[-64.702788999999939,47.823607999999979],[-64.697768999999994,47.836104999999918],[-64.685546999999985,47.852219000000048],[-64.667496000000028,47.866936000000067],[-64.662215999999944,47.870827000000133],[-64.624160999999958,47.884719999999959],[-64.617767000000015,47.886658000000125],[-64.609160999999972,47.886939999999981],[-64.584166999999923,47.884995000000004],[-64.508057000000008,47.903877000000023],[-64.482773000000009,47.917770000000019]],[[-64.567504999999926,47.899436999999978],[-64.574448000000018,47.89804799999996],[-64.583617999999888,47.899436999999978],[-64.589447000000007,47.902771000000143],[-64.593886999999995,47.90665400000006],[-64.594451999999933,47.911933999999974],[-64.593612999999891,47.918052999999986],[-64.531677000000002,48.016105999999979],[-64.52694699999995,48.02165999999994],[-64.522780999999952,48.025551000000007],[-64.516952999999944,48.028602999999976],[-64.509734999999921,48.029991000000052],[-64.50111400000003,48.027488999999946],[-64.495543999999938,48.023880000000133],[-64.490828999999906,48.019989000000066],[-64.48582499999992,48.013054000000011],[-64.482773000000009,48.008606000000043],[-64.469726999999978,47.969711000000132],[-64.469161999999869,47.96443899999997],[-64.470550999999944,47.953323000000069],[-64.47444200000001,47.947769000000051],[-64.496383999999978,47.933875999999998],[-64.513901000000033,47.924712999999997],[-64.567504999999926,47.899436999999978]],[[-53.712775999999963,48.14888000000002],[-53.689720000000023,48.147217000000126],[-53.682502999999997,48.147774000000027],[-53.667503000000011,48.150542999999971],[-53.647781000000009,48.155265999999926],[-53.615554999999915,48.167496000000028],[-53.583327999999995,48.18082400000003],[-53.571113999999909,48.186104000000114],[-53.564162999999951,48.190543999999932],[-53.553054999999972,48.199158000000011],[-53.539444000000003,48.202217000000132],[-53.53167000000002,48.202774000000034],[-53.516395999999986,48.201935000000105],[-53.509726999999941,48.198326000000066],[-53.509170999999867,48.193321000000026],[-53.510833999999988,48.150826000000109],[-53.512504999999919,48.145271000000037],[-53.530829999999924,48.097771000000023],[-53.536391999999978,48.093323000000055],[-53.549445999999989,48.088600000000099],[-53.56361400000003,48.084991000000116],[-53.598884999999996,48.079437000000098],[-53.634170999999924,48.075272000000098],[-53.823333999999932,48.092765999999983],[-53.83943899999997,48.094437000000084],[-53.856110000000001,48.098044999999956],[-53.871940999999936,48.104713000000118],[-53.876663000000008,48.108604000000014],[-53.93250299999994,48.172767999999962],[-53.935829000000012,48.182495000000131],[-53.932776999999987,48.198326000000066],[-53.929168999999945,48.209434999999985],[-53.922225999999966,48.212493999999936],[-53.906386999999938,48.21027400000014],[-53.898887999999943,48.206657000000007],[-53.860000999999954,48.174438000000123],[-53.855559999999969,48.169991000000095],[-53.712775999999963,48.14888000000002]],[[-123.47444200000001,48.709160000000054],[-123.48277300000001,48.708328000000108],[-123.48999000000003,48.709435000000042],[-123.51306199999993,48.716385000000116],[-123.52471899999989,48.722488000000055],[-123.54943800000001,48.746658000000082],[-123.551941,48.752220000000023],[-123.59277299999991,48.898331000000098],[-123.595551,48.909714000000122],[-123.59612299999998,48.928329000000076],[-123.59665699999994,48.946938000000046],[-123.59361299999995,48.947211999999979],[-123.58056599999992,48.935547000000042],[-123.57721699999996,48.929161000000136],[-123.53611799999999,48.914993000000095],[-123.53028899999998,48.911933999999974],[-123.45749699999993,48.863052000000039],[-123.43388400000003,48.844437000000084],[-123.37027,48.768326000000002],[-123.36888099999993,48.762771999999984],[-123.37165800000002,48.75750000000005],[-123.37638900000002,48.753608999999983],[-123.43195300000002,48.721099999999979],[-123.47444200000001,48.709160000000054]],[[-58.342223999999987,49.066101000000117],[-58.349166999999966,49.064437999999996],[-58.356109999999944,49.065826000000129],[-58.351943999999889,49.071938000000102],[-58.341385000000002,49.07638500000013],[-58.333611000000019,49.077773999999977],[-58.330558999999994,49.073326000000009],[-58.335830999999928,49.068885999999964],[-58.342223999999987,49.066101000000117]],[[-123.32277699999997,48.861107000000004],[-123.3705369999999,48.856384000000048],[-123.37888299999997,48.85694100000012],[-123.38474299999996,48.859993000000031],[-123.54055799999998,48.944992000000127],[-123.66251399999999,49.03527100000008],[-123.70388800000001,49.095268000000033],[-123.70527599999997,49.100273000000072],[-123.70249899999999,49.105552999999986],[-123.695831,49.108047000000113],[-123.68639400000001,49.106659000000036],[-123.68055700000002,49.103607000000068],[-123.674713,49.093048000000067],[-123.65943900000002,49.073608000000036],[-123.60444599999994,49.014717000000132],[-123.58640300000002,49.000549000000092],[-123.52166699999998,48.96027400000014],[-123.49916099999996,48.947211999999979],[-123.487503,48.94110100000006],[-123.45973200000003,48.930549999999982],[-123.43639399999995,48.924438000000009],[-123.42027299999995,48.920547000000113],[-123.38194299999992,48.910819999999944],[-123.32833900000003,48.895827999999938],[-123.32250999999991,48.892768999999987],[-123.31777999999997,48.88888500000013],[-123.31276700000001,48.872765000000072],[-123.3125,48.868050000000039],[-123.31639100000001,48.863327000000027],[-123.32277699999997,48.861107000000004]],[[-125.816101,49.125824000000136],[-125.82028200000002,49.124709999999993],[-125.86028299999998,49.134438000000046],[-125.906387,49.160820000000115],[-125.91027800000001,49.165543000000071],[-125.92582699999991,49.190826000000015],[-125.93360899999993,49.211104999999918],[-125.93306000000001,49.218048000000124],[-125.93055700000002,49.219986000000063],[-125.92610200000001,49.223320000000058],[-125.87888299999992,49.235824999999977],[-125.86749299999997,49.233330000000137],[-125.82917800000001,49.226379000000009],[-125.81806899999987,49.220543000000134],[-125.79915599999998,49.208328000000051],[-125.78888699999993,49.172768000000133],[-125.79583699999995,49.151932000000102],[-125.79833999999994,49.146385000000009],[-125.81249999999994,49.129158000000132],[-125.816101,49.125824000000136]],[[-126.13194299999992,49.393325999999945],[-126.126938,49.390274000000034],[-126.12470999999999,49.390274000000034],[-126.12053699999996,49.388602999999989],[-126.11054999999999,49.382210000000043],[-126.10665899999992,49.378601000000003],[-126.09612300000003,49.368599000000074],[-126.08640300000002,49.358604000000128],[-126.07277699999997,49.34304800000001],[-126.0497279999999,49.265548999999965],[-126.0511019999999,49.260550999999964],[-126.05583200000001,49.256104000000107],[-126.06471299999987,49.250832000000003],[-126.07112100000001,49.248329000000012],[-126.07972699999999,49.246658000000139],[-126.08917199999991,49.246101000000067],[-126.09638999999999,49.24721500000004],[-126.18666100000002,49.263328999999999],[-126.19167299999992,49.265548999999965],[-126.22332799999992,49.279716000000121],[-126.22944599999994,49.282493999999929],[-126.23916600000001,49.289718999999991],[-126.23473399999995,49.374161000000015],[-126.22917200000001,49.378601000000003],[-126.22138999999999,49.380547000000092],[-126.14138800000001,49.39415699999995],[-126.13194299999992,49.393325999999945]],[[-123.37943999999999,49.326941999999974],[-123.39222699999999,49.326103000000046],[-123.41027799999995,49.334159999999997],[-123.42194399999994,49.339714000000015],[-123.42666600000001,49.344154000000003],[-123.42804699999999,49.348877000000016],[-123.42027299999995,49.381660000000011],[-123.41332999999997,49.386107999999979],[-123.3600009999999,49.411658999999986],[-123.35472099999998,49.413322000000107],[-123.327789,49.416664000000083],[-123.31696299999999,49.417496000000142],[-123.31220999999999,49.414992999999981],[-123.30943300000001,49.41137700000013],[-123.31027199999994,49.40526600000004],[-123.31194299999993,49.401932000000045],[-123.327789,49.363052000000096],[-123.33112299999999,49.354996000000028],[-123.34472699999998,49.341934000000037],[-123.36833199999995,49.330275999999969],[-123.37943999999999,49.326941999999974]],[[-54.705276000000026,49.400543000000084],[-54.712776000000019,49.398330999999985],[-54.730277999999998,49.403046000000018],[-54.735557999999969,49.407211000000018],[-54.759726999999941,49.432495000000017],[-54.759170999999981,49.437766999999951],[-54.754723000000013,49.443878000000041],[-54.749442999999928,49.449158000000125],[-54.73833499999995,49.457771000000093],[-54.680556999999908,49.49193600000001],[-54.673057999999912,49.492493000000081],[-54.665001000000018,49.489159000000086],[-54.644164999999987,49.473320000000001],[-54.640281999999956,49.46915400000006],[-54.640838999999971,49.463881999999955],[-54.654716000000008,49.460823000000005],[-54.684440999999993,49.420546999999999],[-54.699164999999994,49.40387700000008],[-54.705276000000026,49.400543000000084]],[[-124.179169,49.441101000000117],[-124.18554699999999,49.439986999999974],[-124.31360599999999,49.456099999999992],[-124.32668299999995,49.460823000000005],[-124.36000099999995,49.474433999999974],[-124.36609599999997,49.477486000000056],[-124.37082699999996,49.481102000000135],[-124.37165799999997,49.483047000000113],[-124.38054699999998,49.506943000000035],[-124.38110399999994,49.511940000000095],[-124.37832599999996,49.515830999999991],[-124.37165799999997,49.518326000000002],[-124.361107,49.519157000000064],[-124.35500299999995,49.517494000000113],[-124.34889199999998,49.514442000000031],[-124.30471799999992,49.512214999999969],[-124.24471999999997,49.501389000000017],[-124.23750299999995,49.498329000000126],[-124.22138999999993,49.491379000000109],[-124.1875,49.474433999999974],[-124.18167099999999,49.471375000000023],[-124.17388900000003,49.45638299999996],[-124.17194399999994,49.446655000000135],[-124.17223399999989,49.444153000000085],[-124.179169,49.441101000000117]],[[-123.33277899999996,49.441101000000117],[-123.36028299999987,49.433051999999918],[-123.37499999999994,49.433327000000133],[-123.442207,49.438599000000067],[-123.448036,49.441658000000018],[-123.45944199999997,49.467209000000082],[-123.45973200000003,49.470543000000077],[-123.45305599999995,49.495544000000109],[-123.44526699999994,49.51527400000009],[-123.43666100000002,49.522217000000069],[-123.38082899999995,49.536110000000122],[-123.37000299999994,49.536110000000122],[-123.360817,49.534995999999978],[-123.3550029999999,49.531936999999971],[-123.33833300000003,49.50610400000005],[-123.33167999999995,49.500832000000116],[-123.32805599999995,49.496383999999978],[-123.32389799999993,49.488602000000014],[-123.319458,49.474708999999962],[-123.31777999999997,49.464157],[-123.319458,49.451934999999992],[-123.32224300000001,49.448043999999925],[-123.32695000000001,49.444153000000085],[-123.33277899999996,49.441101000000117]],[[-55.695548999999971,49.506943000000035],[-55.725829999999974,49.505554000000018],[-55.732497999999964,49.509163000000001],[-55.735001000000011,49.513610999999969],[-55.736114999999984,49.518599999999935],[-55.735832000000016,49.52388000000002],[-55.730277999999942,49.545547000000056],[-55.722771000000023,49.557770000000119],[-55.716110000000015,49.560271999999998],[-55.684998000000007,49.561104000000114],[-55.676948999999979,49.561104000000114],[-55.658332999999971,49.559158000000025],[-55.653052999999886,49.555267000000129],[-55.652221999999938,49.550270000000069],[-55.653885000000002,49.544716000000051],[-55.661384999999939,49.529716000000064],[-55.664444000000003,49.52388000000002],[-55.68111399999998,49.510826000000122],[-55.687499999999943,49.508049000000028],[-55.695548999999971,49.506943000000035]],[[-124.68943799999994,49.480270000000019],[-124.69611399999997,49.477767999999969],[-124.70221700000002,49.478042999999957],[-124.74137899999994,49.488045000000113],[-124.75361599999991,49.491379000000109],[-124.82362399999994,49.539435999999966],[-124.83666999999997,49.554993000000024],[-124.84111000000001,49.562767000000008],[-124.84249899999992,49.578605999999979],[-124.84194899999989,49.58415999999994],[-124.83416699999992,49.607773000000066],[-124.83168000000001,49.610549999999989],[-124.82749899999993,49.608887000000038],[-124.81054699999993,49.589714000000129],[-124.80888400000003,49.586655000000007],[-124.80583200000001,49.585823000000062],[-124.77887699999997,49.568886000000077],[-124.68804899999986,49.483604000000014],[-124.68943799999994,49.480270000000019]],[[-55.693053999999961,49.56749700000006],[-55.709166999999979,49.566383000000087],[-55.716659999999933,49.567214999999976],[-55.720832999999971,49.571381000000088],[-55.723052999999993,49.576102999999989],[-55.722771000000023,49.581383000000073],[-55.705832999999927,49.613883999999985],[-55.684998000000007,49.624992000000134],[-55.673888999999974,49.630547000000035],[-55.659720999999934,49.635551000000021],[-55.653052999999886,49.63638300000008],[-55.572776999999974,49.603881999999999],[-55.567504999999926,49.599998000000141],[-55.573058999999944,49.595543000000134],[-55.586387999999943,49.59137700000008],[-55.608054999999979,49.586104999999975],[-55.671669000000009,49.571381000000088],[-55.693053999999961,49.56749700000006]],[[-54.576667999999984,49.558601000000124],[-54.77305599999994,49.493880999999988],[-54.809440999999993,49.488045000000113],[-54.83916499999998,49.48443600000013],[-54.855835000000013,49.48443600000013],[-54.863060000000019,49.485268000000019],[-54.871940999999936,49.487495000000081],[-54.873055000000022,49.492218000000094],[-54.893616000000009,49.580551000000128],[-54.894447000000014,49.58526599999999],[-54.891945000000021,49.590546000000074],[-54.885276999999974,49.593048000000124],[-54.805556999999965,49.595825000000048],[-54.792228999999963,49.572768999999994],[-54.793335000000013,49.566939999999988],[-54.791671999999892,49.56249200000002],[-54.78833800000001,49.557770000000119],[-54.784172000000012,49.554161000000136],[-54.768607999999972,49.546661000000029],[-54.760001999999986,49.545547000000056],[-54.743889000000024,49.544998000000135],[-54.729720999999984,49.548050000000046],[-54.708611000000019,49.554436000000123],[-54.614722999999969,49.606102000000021],[-54.574722000000008,49.635269000000108],[-54.561942999999928,49.653603000000089],[-54.548889000000031,49.659988000000055],[-54.536117999999931,49.664153999999996],[-54.529723999999987,49.633881000000031],[-54.531669999999963,49.62221500000004],[-54.538054999999986,49.587494000000106],[-54.543334999999956,49.582497000000046],[-54.570557000000008,49.562209999999936],[-54.576667999999984,49.558601000000124]],[[-54.004448000000025,49.647491000000116],[-54.257781999999963,49.566666000000055],[-54.265839000000028,49.566939999999988],[-54.274719000000005,49.569160000000011],[-54.289444000000003,49.576102999999989],[-54.293335000000013,49.580551000000128],[-54.298888999999917,49.609993000000088],[-54.297782999999981,49.651100000000099],[-54.288054999999929,49.71138000000002],[-54.282775999999956,49.716660000000104],[-54.269996999999989,49.722487999999998],[-54.141945000000021,49.75],[-54.102225999999973,49.750274999999988],[-54.093886999999938,49.748878000000047],[-54.085830999999985,49.745544000000052],[-54.081115999999952,49.736381999999935],[-54.040000999999961,49.689987000000087],[-54.003058999999951,49.659988000000055],[-54.004448000000025,49.647491000000116]],[[-124.129707,49.650825999999995],[-124.139183,49.650543000000027],[-124.15361000000001,49.655548000000067],[-124.18694299999993,49.668883999999991],[-124.196663,49.676940999999999],[-124.20195000000001,49.701934999999992],[-124.19943199999989,49.706099999999992],[-124.14750699999996,49.746658000000025],[-124.14277600000003,49.75],[-124.13722199999995,49.752219999999966],[-124.09166699999997,49.767769000000101],[-124.03611799999999,49.777214000000129],[-124.029449,49.778328000000101],[-124.021118,49.77777100000003],[-124.01611299999996,49.775551000000007],[-124.01862299999999,49.77165999999994],[-124.02555799999993,49.767769000000101],[-124.04611199999999,49.756386000000077],[-124.06054699999999,49.744995000000131],[-124.07472200000001,49.733330000000024],[-124.09084300000001,49.715546000000131],[-124.10109699999992,49.700272000000041],[-124.10555999999991,49.689430000000016],[-124.10722399999992,49.677215999999987],[-124.11081699999994,49.664992999999924],[-124.11361699999998,49.659713999999951],[-124.12304699999993,49.651931999999988],[-124.129707,49.650825999999995]],[[-56.80361199999993,49.763329000000056],[-56.827498999999989,49.761107999999979],[-56.83555599999994,49.762771999999984],[-56.83805099999995,49.767494000000056],[-56.832779000000016,49.771934999999985],[-56.826667999999984,49.77526899999998],[-56.792503000000011,49.785552999999993],[-56.782218999999998,49.78694200000001],[-56.78194400000001,49.780822999999941],[-56.790840000000003,49.768326000000002],[-56.796669000000009,49.764999000000046],[-56.80361199999993,49.763329000000056]],[[-124.44611399999991,49.723320000000115],[-124.43749999999994,49.723045000000127],[-124.42887899999994,49.723877000000016],[-124.41000400000001,49.723045000000127],[-124.38137799999998,49.713326000000109],[-124.35138699999999,49.698044000000095],[-124.33277900000002,49.683327000000077],[-124.13474300000001,49.525269000000037],[-124.13221699999991,49.520271000000037],[-124.12416100000002,49.499161000000072],[-124.122772,49.493607000000054],[-124.12748699999997,49.489715999999987],[-124.13417099999992,49.487495000000081],[-124.14167799999996,49.485825000000091],[-124.14916999999997,49.486107000000004],[-124.15527299999985,49.488602000000014],[-124.281387,49.546661000000029],[-124.40583800000002,49.605826999999977],[-124.43804899999998,49.628875999999991],[-124.44220699999994,49.638046000000031],[-124.47666900000002,49.67193600000013],[-124.5396649999999,49.692768000000001],[-124.55249799999996,49.697105000000022],[-124.56167599999998,49.699935999999923],[-124.61416600000001,49.713607999999965],[-124.62721299999993,49.71915400000006],[-124.65416699999997,49.736107000000118],[-124.66082799999992,49.742767000000129],[-124.65666199999993,49.796943999999939],[-124.65110800000002,49.799995000000138],[-124.61945300000002,49.797218000000044],[-124.604446,49.789436000000137],[-124.59944199999995,49.78443900000002],[-124.59028599999999,49.77165999999994],[-124.56234000000001,49.753326000000015],[-124.55933399999998,49.751495000000034],[-124.49472000000003,49.733330000000024],[-124.44611399999991,49.723320000000115]],[[-126.67610199999996,49.583603000000039],[-126.68138099999993,49.583054000000118],[-126.68888899999996,49.583878000000084],[-126.69722000000002,49.585548000000074],[-126.78971899999999,49.612213000000111],[-126.80803699999996,49.61971299999999],[-126.81416299999995,49.622765000000072],[-126.90556300000003,49.685547000000099],[-126.96528599999999,49.726935999999966],[-126.96945199999999,49.731102000000078],[-126.97416699999991,49.740273000000002],[-126.97556299999997,49.75],[-126.94055200000003,49.831383000000017],[-126.890556,49.84777100000008],[-126.79915599999993,49.876099000000011],[-126.77749599999993,49.87971500000009],[-126.76872299999997,49.878616000000079],[-126.74944299999999,49.85694100000012],[-126.73416099999997,49.848045000000013],[-126.67804699999994,49.825272000000098],[-126.64472999999992,49.774162000000047],[-126.636124,49.759437999999989],[-126.63445300000001,49.753883000000087],[-126.61332699999997,49.648330999999985],[-126.61609599999997,49.624435000000062],[-126.62053699999996,49.606102000000021],[-126.62416099999996,49.601386999999988],[-126.63305700000001,49.596100000000035],[-126.66861,49.585548000000074],[-126.67610199999996,49.583603000000039]],[[-62.089721999999881,49.386383000000137],[-62.081389999999999,49.385551000000078],[-62.051665999999955,49.390274000000034],[-62.043616999999927,49.390549000000078],[-62.025276000000019,49.38749700000011],[-61.892226999999934,49.351387000000045],[-61.875557000000015,49.344994000000042],[-61.825835999999924,49.312209999999993],[-61.821114000000023,49.308883999999978],[-61.663329999999917,49.149162000000047],[-61.661666999999966,49.144439999999975],[-61.670837000000006,49.134163000000001],[-61.702224999999942,49.111107000000004],[-61.735557999999969,49.096099999999979],[-61.796111999999937,49.078048999999965],[-62.019996999999989,49.069443000000035],[-62.029167000000029,49.069443000000035],[-62.195549000000028,49.074997000000053],[-62.368057000000022,49.0991590000001],[-62.726105000000018,49.154709000000025],[-62.782218999999884,49.165824999999984],[-62.946662999999944,49.198874999999987],[-63.089995999999985,49.228043000000014],[-63.097778000000005,49.23054500000012],[-63.209442000000024,49.270827999999995],[-63.23082699999992,49.280273000000022],[-63.242774999999938,49.287498000000085],[-63.253059000000007,49.294997999999964],[-63.269996999999989,49.311104],[-63.275832999999977,49.314712999999983],[-63.283332999999914,49.317771999999934],[-63.387221999999952,49.34388000000007],[-63.416945999999882,49.350829999999974],[-63.501296999999965,49.370384000000115],[-63.537223999999867,49.379714999999976],[-63.573058999999944,49.396660000000111],[-63.61611199999993,49.446938000000102],[-63.621940999999879,49.455551000000071],[-63.620833999999945,49.461105000000089],[-63.616660999999908,49.46665999999999],[-63.61333499999995,49.473044999999956],[-63.612502999999947,49.478873999999962],[-63.61611199999993,49.488327000000027],[-63.619720000000029,49.492767000000015],[-63.662772999999959,49.533051],[-63.67888599999992,49.544716000000051],[-63.714446999999893,49.566383000000087],[-63.84194199999996,49.639160000000004],[-63.881942999999978,49.65915700000005],[-63.918334999999956,49.674438000000009],[-64.01556399999987,49.702492000000063],[-64.306945999999925,49.777489000000003],[-64.382216999999969,49.789436000000137],[-64.389998999999932,49.789719000000105],[-64.418335000000013,49.801658999999972],[-64.511123999999995,49.858604000000014],[-64.513901000000033,49.863609000000054],[-64.510283999999956,49.868599000000131],[-64.50111400000003,49.878043999999989],[-64.496108999999876,49.883049000000085],[-64.490828999999906,49.886939999999925],[-64.472778000000005,49.895828000000108],[-64.458618000000001,49.900826000000109],[-64.445540999999992,49.904434000000037],[-64.226943999999946,49.948326000000066],[-64.203613000000018,49.950271999999984],[-64.142775999999969,49.948044000000039],[-64.133057000000008,49.947212000000093],[-64.12388599999997,49.945267000000115],[-64.029175000000009,49.924438000000123],[-63.958892999999932,49.898048000000131],[-63.615836999999942,49.849158999999986],[-63.545006000000001,49.843323000000112],[-63.49222599999996,49.840828000000045],[-63.475272999999959,49.840546000000018],[-63.346946999999943,49.820274000000097],[-63.309722999999963,49.813880999999981],[-63.136115999999959,49.780822999999941],[-63.074447999999961,49.764160000000061],[-62.99610899999999,49.736656000000096],[-62.786667000000023,49.676384000000098],[-62.71055599999994,49.660820000000001],[-62.545554999999979,49.599998000000141],[-62.443610999999919,49.5472180000001],[-62.340553,49.486938000000009],[-62.212218999999948,49.41443600000008],[-62.205832999999984,49.41137700000013],[-62.188889000000017,49.405823000000112],[-62.169166999999959,49.401099999999985],[-62.099167000000023,49.387771999999984],[-62.089721999999881,49.386383000000137]],[[-124.92415599999998,50.05860100000001],[-124.96861299999995,50.035827999999981],[-125.00055699999996,50.056656000000032],[-125.06304899999998,50.103324999999984],[-125.06696299999999,50.107498000000135],[-125.066101,50.113884000000041],[-125.0625,50.118324000000086],[-125.03971899999999,50.130546999999922],[-124.991669,50.168327000000033],[-124.98222399999992,50.176102000000128],[-124.98055999999991,50.18221299999999],[-124.98332199999999,50.225548000000003],[-124.93138099999993,50.171104000000128],[-124.92859599999997,50.166100000000142],[-124.91528299999999,50.141380000000083],[-124.89778100000001,50.077492000000063],[-124.92415599999998,50.05860100000001]],[[-63.859443999999996,50.197768999999937],[-63.873610999999983,50.194434999999999],[-63.890282000000013,50.194709999999986],[-63.899993999999936,50.196098000000063],[-63.908607000000018,50.198601000000053],[-63.916107000000011,50.201660000000004],[-63.920837000000006,50.205551000000071],[-63.930557000000022,50.218597000000045],[-63.931389000000024,50.223877000000073],[-63.930557000000022,50.229431000000091],[-63.926948999999922,50.236107000000004],[-63.922774999999888,50.241661000000022],[-63.916663999999969,50.244713000000104],[-63.909995999999921,50.246658000000139],[-63.90193899999997,50.24721500000004],[-63.889724999999999,50.242218000000094],[-63.865554999999915,50.228325000000041],[-63.859443999999996,50.224709000000018],[-63.854720999999927,50.220824999999991],[-63.852782999999988,50.216103000000089],[-63.853614999999991,50.210548000000017],[-63.855835000000013,50.204437000000098],[-63.859443999999996,50.197768999999937]],[[-125.16777000000002,49.980819999999937],[-125.16999800000002,49.980819999999937],[-125.17111199999994,49.981659000000093],[-125.18582199999997,50.004165999999998],[-125.20722999999998,50.044998000000021],[-125.21417199999996,50.069992000000013],[-125.28167699999989,50.11332700000014],[-125.31777999999986,50.136107999999979],[-125.32362399999994,50.143326000000002],[-125.33999599999993,50.203049000000021],[-125.34916699999997,50.242493000000138],[-125.34973100000002,50.25777400000004],[-125.348343,50.261665000000107],[-125.34554299999996,50.263901000000033],[-125.33999599999993,50.26888300000013],[-125.31082200000003,50.281380000000127],[-125.26334400000002,50.293883999999991],[-125.25472999999988,50.293610000000058],[-125.24638399999998,50.290549999999996],[-125.24333199999995,50.288329999999974],[-125.16722099999987,50.213608000000079],[-125.16111799999999,50.200272000000098],[-125.16000400000001,50.190544000000102],[-125.18666100000002,50.141663000000051],[-125.1536099999999,50.006103999999937],[-125.15416699999997,50.000832000000003],[-125.16416900000002,49.985268000000133],[-125.16777000000002,49.980819999999937]],[[-124.8125,50.111381999999992],[-124.82112100000001,50.111107000000118],[-124.82749899999993,50.111937999999952],[-124.83361799999989,50.114441000000113],[-124.86110699999989,50.136383000000023],[-124.93916299999995,50.207771000000093],[-124.96305799999999,50.236382000000049],[-124.96610999999996,50.246941000000106],[-124.96556099999992,50.251663000000008],[-124.92304999999993,50.296386999999982],[-124.91832699999986,50.29972099999992],[-124.91082799999998,50.299995000000081],[-124.90249599999999,50.29833200000013],[-124.89862099999999,50.293883999999991],[-124.87581599999993,50.28472099999999],[-124.82167099999992,50.239716000000044],[-124.75666799999999,50.178328999999962],[-124.75250199999999,50.167770000000132],[-124.752228,50.161376999999959],[-124.75499699999995,50.156097000000102],[-124.80695300000002,50.113884000000041],[-124.8125,50.111381999999992]],[[-124.73082699999992,50.302215999999987],[-124.72693599999997,50.299164000000019],[-124.72471599999994,50.299164000000019],[-124.69554099999999,50.289436000000023],[-124.68331899999993,50.283333000000084],[-124.67250100000001,50.276100000000042],[-124.66860999999994,50.272491000000059],[-124.66111799999993,50.263054000000125],[-124.65943900000002,50.258330999999941],[-124.65750099999997,50.247772000000111],[-124.65611299999989,50.231377000000009],[-124.65834000000001,50.212212000000022],[-124.66000399999996,50.207496999999989],[-124.66251399999999,50.203323000000125],[-124.695831,50.157494000000042],[-124.70195000000001,50.158600000000092],[-124.70805399999995,50.161376999999959],[-124.79222099999993,50.22526600000009],[-124.79499800000002,50.228874000000019],[-124.78083800000002,50.269440000000031],[-124.77778599999999,50.27748900000006],[-124.74500299999994,50.299437999999952],[-124.74054699999994,50.30193300000002],[-124.73082699999992,50.302215999999987]],[[-125.54387700000001,50.393883000000017],[-125.63583399999999,50.379714999999976],[-125.69360399999999,50.383330999999998],[-125.70333899999991,50.384163000000115],[-125.75527999999997,50.391662999999994],[-125.762787,50.394157000000121],[-125.76363400000002,50.397491000000116],[-125.75527999999997,50.405548000000067],[-125.74416399999996,50.40776800000009],[-125.59528399999999,50.433052000000089],[-125.58640300000002,50.434158000000139],[-125.52390300000002,50.434433000000126],[-125.51889,50.431381000000044],[-125.51806599999998,50.428604000000121],[-125.51777600000003,50.409431000000041],[-125.520554,50.403320000000122],[-125.52500899999995,50.400825999999995],[-125.53639199999998,50.395827999999995],[-125.54387700000001,50.393883000000017]],[[-125.16555800000003,50.374435000000062],[-125.06139400000001,50.240547000000049],[-125.05194099999989,50.226653999999996],[-125.05027799999993,50.221657000000107],[-125.048607,50.207771000000093],[-125.04915599999993,50.193320999999969],[-125.05166599999995,50.190826000000129],[-125.11638599999998,50.136658000000011],[-125.12917299999998,50.126098999999954],[-125.13390400000003,50.122764999999958],[-125.14028899999994,50.121658000000025],[-125.14472999999987,50.12193300000007],[-125.15083299999998,50.12499200000002],[-125.15416699999997,50.133331000000055],[-125.13971699999996,50.159431000000097],[-125.15611299999995,50.239158999999972],[-125.21083099999993,50.313048999999921],[-125.21362299999993,50.316666000000055],[-125.22000099999991,50.318329000000006],[-125.26363400000002,50.323607999999979],[-125.27194199999997,50.323883000000023],[-125.31555199999997,50.318054000000018],[-125.32112099999989,50.316939999999988],[-125.32695000000001,50.313881000000038],[-125.33306900000002,50.304435999999953],[-125.33473200000003,50.29972099999992],[-125.33944699999989,50.29583000000008],[-125.35610999999994,50.290276000000063],[-125.37222300000002,50.289436000000023],[-125.38527699999997,50.289993000000095],[-125.390289,50.29222100000004],[-125.39306599999998,50.29583000000008],[-125.39917000000003,50.311104000000114],[-125.400284,50.320831000000055],[-125.39943699999998,50.331108000000086],[-125.39806399999998,50.333878000000084],[-125.391953,50.340546000000074],[-125.291946,50.433876000000055],[-125.28443899999996,50.435822000000144],[-125.27500900000001,50.433327000000133],[-125.27306399999992,50.431107000000111],[-125.23665599999993,50.415825000000098],[-125.21640000000002,50.404709000000139],[-125.16555800000003,50.374435000000062]],[[-125.42610200000001,50.3555530000001],[-125.45777899999996,50.349434000000088],[-125.46749899999998,50.350273000000016],[-125.52610800000002,50.378875999999991],[-125.52806099999998,50.381660000000124],[-125.51862299999993,50.390274000000034],[-125.47749299999998,50.424164000000133],[-125.47165699999999,50.427489999999977],[-125.465012,50.429993000000138],[-125.37998999999996,50.460823000000005],[-125.37165799999997,50.457771000000037],[-125.37082699999996,50.455826000000059],[-125.36665299999993,50.454162999999937],[-125.34306300000003,50.441658000000018],[-125.33194700000001,50.435547000000099],[-125.33000199999998,50.430824000000143],[-125.33056599999986,50.425270000000125],[-125.33693700000003,50.416664000000026],[-125.38583399999999,50.36971299999999],[-125.39835399999998,50.364159000000029],[-125.42610200000001,50.3555530000001]],[[-125.80721999999997,50.413605000000075],[-125.90695199999993,50.409714000000008],[-125.92194399999988,50.41027100000008],[-125.92804699999999,50.411658999999986],[-125.93110699999988,50.413879000000009],[-125.95111099999997,50.433876000000055],[-125.93943799999988,50.443047000000035],[-125.90583799999996,50.45638300000013],[-125.81416299999995,50.46804800000001],[-125.80777,50.467765999999983],[-125.80359599999997,50.465546000000131],[-125.79055799999998,50.456940000000031],[-125.74109599999997,50.431664000000012],[-125.73805199999998,50.428047000000049],[-125.73805199999998,50.426658999999972],[-125.74276700000001,50.424164000000133],[-125.75834700000001,50.419990999999982],[-125.79110700000001,50.414992999999981],[-125.80721999999997,50.413605000000075]],[[-126.22582999999997,50.555267000000129],[-126.30888399999998,50.528327999999988],[-126.33640299999996,50.521659999999997],[-126.35056299999997,50.52027099999998],[-126.486107,50.515549000000078],[-126.58805799999999,50.521378000000084],[-126.60417199999995,50.52526899999998],[-126.62389400000001,50.533881999999949],[-126.60417199999995,50.539719000000105],[-126.57444800000002,50.546387000000095],[-126.55695300000002,50.548607000000118],[-126.54194599999994,50.549438000000123],[-126.52667200000002,50.548882000000106],[-126.48860200000001,50.553321999999923],[-126.38110399999999,50.574715000000026],[-126.28611799999999,50.598327999999981],[-126.28278399999999,50.597488000000112],[-126.22609699999998,50.564156000000025],[-126.22305299999999,50.560546999999985],[-126.224716,50.556655999999919],[-126.22582999999997,50.555267000000129]],[[-126.46639999999996,50.575829000000056],[-126.47501399999993,50.575554000000011],[-126.47917199999995,50.576385000000016],[-126.53555299999999,50.590546000000018],[-126.54915599999998,50.596382000000062],[-126.55222300000003,50.598602000000085],[-126.554169,50.602776000000119],[-126.55248999999998,50.607498000000021],[-126.55027799999999,50.608604000000071],[-126.54360999999994,50.611382000000049],[-126.52916699999997,50.614998000000128],[-126.45361299999996,50.626937999999996],[-126.40499899999992,50.626099000000067],[-126.385559,50.625549000000035],[-126.37721299999993,50.623877999999934],[-126.364441,50.619438000000116],[-126.36138900000003,50.615829000000133],[-126.36165599999998,50.613052000000039],[-126.36971999999992,50.605826999999977],[-126.38027999999997,50.598602000000085],[-126.38474300000001,50.596100000000035],[-126.39138799999995,50.59276600000004],[-126.39806399999998,50.591103000000089],[-126.46639999999996,50.575829000000056]],[[-59.345832999999971,50.533881999999949],[-59.353888999999924,50.533881999999949],[-59.358337000000006,50.537773000000016],[-59.384170999999924,50.633049000000085],[-59.384170999999924,50.638328999999999],[-59.382773999999984,50.64388300000013],[-59.378051999999911,50.649161999999933],[-59.371940999999993,50.652771000000143],[-59.364448999999979,50.653876999999966],[-59.355003000000011,50.652214000000072],[-59.337775999999906,50.640831000000048],[-59.333610999999905,50.636108000000036],[-59.321670999999981,50.618881000000044],[-59.305556999999965,50.59165999999999],[-59.300277999999992,50.581940000000088],[-59.298339999999939,50.57249500000006],[-59.298339999999939,50.561935000000119],[-59.308891000000017,50.553047000000106],[-59.320557000000008,50.545830000000024],[-59.333060999999873,50.539436000000137],[-59.345832999999971,50.533881999999949]],[[-126.87332200000003,50.663322000000051],[-126.83416699999998,50.634163000000058],[-126.83112299999999,50.629158000000018],[-126.83583099999998,50.625267000000122],[-126.90249599999993,50.613883999999928],[-126.91251399999999,50.61360900000011],[-127.01666299999999,50.638328999999999],[-127.025284,50.639992000000063],[-127.04276999999996,50.637497000000053],[-127.05832700000002,50.632492000000013],[-127.10193600000002,50.627486999999974],[-127.12249800000001,50.62721300000004],[-127.13221699999991,50.628326000000129],[-127.14055599999995,50.62971500000009],[-127.14472999999998,50.633881000000031],[-127.14334100000002,50.63888500000013],[-127.13166799999999,50.652214000000072],[-127.12721299999998,50.656096999999988],[-127.10916099999997,50.665267999999969],[-127.093887,50.669159000000036],[-127.08640300000002,50.669716000000108],[-126.89028899999994,50.667213000000118],[-126.87970699999994,50.666100000000029],[-126.87332200000003,50.663322000000051]],[[-126.64388999999994,50.691933000000006],[-126.65249599999999,50.691376000000105],[-126.65888999999993,50.694435000000055],[-126.662781,50.69860099999994],[-126.66583300000002,50.703323000000012],[-126.69027699999998,50.75499700000006],[-126.68554699999993,50.758888000000127],[-126.66832699999998,50.759163000000115],[-126.60221899999999,50.770828000000051],[-126.58277900000002,50.769714000000022],[-126.54387700000001,50.765831000000105],[-126.53639199999992,50.763611000000083],[-126.53582799999998,50.758606000000043],[-126.63806199999993,50.694992000000127],[-126.64388999999994,50.691933000000006]],[[-55.564720000000023,50.699714999999912],[-55.580001999999922,50.698326000000122],[-55.588889999999992,50.699431999999945],[-55.64527899999996,50.71888000000007],[-55.65166499999998,50.72304500000007],[-55.653052999999886,50.727211000000011],[-55.629439999999931,50.780823000000112],[-55.62471800000003,50.787216000000058],[-55.619163999999955,50.791381999999999],[-55.462775999999963,50.805824000000143],[-55.454444999999964,50.802489999999977],[-55.450554000000011,50.798332000000016],[-55.449722000000008,50.792770000000075],[-55.454720000000009,50.788048000000003],[-55.46694199999996,50.784163999999976],[-55.512504999999976,50.722763000000043],[-55.525001999999972,50.715827999999988],[-55.551392000000021,50.703323000000012],[-55.557502999999997,50.701385000000073],[-55.564720000000023,50.699714999999912]],[[-126.27306399999998,50.652771000000143],[-126.46333300000003,50.641662999999937],[-126.56806899999998,50.648331000000098],[-126.58416699999992,50.650269000000037],[-126.59889199999998,50.654159999999933],[-126.60637699999995,50.657211000000132],[-126.612503,50.659988000000055],[-126.61749299999997,50.664993000000095],[-126.61749299999997,50.667770000000019],[-126.54583700000001,50.726096999999982],[-126.43720999999999,50.783882000000119],[-126.38971699999996,50.806381000000044],[-126.38221699999997,50.808043999999995],[-126.28056299999997,50.828331000000048],[-126.26640299999997,50.827773999999977],[-126.25805699999995,50.824715000000026],[-126.2538909999999,50.821938000000102],[-126.25171699999987,50.818932000000075],[-126.23832699999997,50.811104000000057],[-126.22944599999994,50.803322000000094],[-126.17832900000002,50.750832000000059],[-126.17722299999997,50.748604000000114],[-126.17666600000001,50.743881000000101],[-126.25305200000003,50.699646000000087],[-126.25611900000001,50.661377000000073],[-126.26083399999999,50.657211000000132],[-126.26640299999997,50.654709000000082],[-126.27306399999998,50.652771000000143]],[[-126.73137700000001,50.771934999999985],[-126.79778299999992,50.768883000000017],[-126.807503,50.769989000000066],[-126.85333300000002,50.782767999999919],[-126.86472299999997,50.78943600000008],[-126.90583799999996,50.822769000000108],[-126.90139799999992,50.825272000000098],[-126.88806199999999,50.829162999999994],[-126.88137799999993,50.830276000000026],[-126.64862099999999,50.847214000000122],[-126.64334100000002,50.846939000000134],[-126.63583399999999,50.845268000000033],[-126.62943999999993,50.842490999999995],[-126.58860800000002,50.821381000000031],[-126.56806899999998,50.807770000000062],[-126.56304899999992,50.799995000000138],[-126.56861900000001,50.797493000000088],[-126.73137700000001,50.771934999999985]],[[-127.22693599999991,50.636108000000036],[-126.975281,50.576942000000088],[-126.85472099999993,50.554436000000123],[-126.77639799999997,50.546104000000128],[-126.76806599999998,50.544441000000006],[-126.72138999999999,50.531936999999971],[-126.70527600000003,50.527489000000003],[-126.63999899999999,50.507773999999984],[-126.62332199999992,50.498329000000126],[-126.56388899999996,50.483604000000014],[-126.49388099999993,50.481934000000024],[-126.39472999999998,50.481658999999979],[-126.38694800000002,50.482765000000029],[-126.35582699999998,50.48333000000008],[-126.327789,50.480820000000051],[-126.22112299999998,50.468596999999988],[-126.20500199999992,50.466660000000104],[-126.15471600000001,50.459435000000042],[-126.06916799999999,50.438599000000067],[-126.04611199999994,50.432495000000017],[-126.031387,50.427773000000116],[-126.01889,50.42193600000013],[-125.97609699999992,50.394996999999989],[-125.96250900000001,50.388885000000016],[-125.94776899999994,50.38499500000006],[-125.92859599999997,50.382209999999986],[-125.81696299999999,50.378044000000102],[-125.58000199999987,50.365828999999962],[-125.56416300000001,50.363883999999985],[-125.54860699999989,50.359161000000029],[-125.46305799999993,50.329719999999952],[-125.44972200000001,50.323607999999979],[-125.44055200000003,50.318329000000006],[-125.43554699999999,50.314712999999983],[-125.43167099999999,50.310547000000042],[-125.42887899999994,50.305549999999982],[-125.42722300000003,50.299995000000081],[-125.42666599999995,50.293883999999991],[-125.42722300000003,50.287498000000085],[-125.41500899999994,50.261665000000107],[-125.39362299999999,50.215546000000018],[-125.37777699999998,50.17971799999998],[-125.36277799999993,50.138046000000088],[-125.33084099999996,50.113884000000041],[-125.28694199999995,50.08138300000013],[-125.229446,50.026657],[-125.22165699999999,50.018051000000071],[-125.21611000000001,50.001389000000074],[-125.21417199999996,49.976379000000065],[-125.212784,49.970825000000048],[-125.20722999999998,49.961662000000047],[-125.16860999999994,49.912766000000033],[-125.11221299999994,49.868324000000086],[-124.99305699999991,49.788330000000087],[-124.89806399999998,49.731658999999979],[-124.89138799999989,49.664711000000068],[-124.91639700000002,49.631660000000124],[-124.86028299999992,49.541663999999969],[-124.85305800000003,49.532494000000099],[-124.83306900000002,49.510826000000122],[-124.78943599999991,49.464157],[-124.579453,49.38749700000011],[-124.55110200000001,49.378044000000102],[-124.53555299999999,49.373878000000047],[-124.51917300000002,49.370270000000119],[-124.26083399999993,49.315269000000001],[-124.12193299999996,49.270271000000093],[-123.94304699999992,49.211104999999918],[-123.85637699999995,49.149162000000047],[-123.86028299999992,49.153046000000074],[-123.86638599999998,49.160820000000115],[-123.86805700000002,49.164436000000137],[-123.87110899999988,49.173607000000118],[-123.87138399999998,49.181106999999997],[-123.86638599999998,49.186378000000047],[-123.86165599999993,49.188880999999981],[-123.84999099999999,49.191658000000075],[-123.82444800000002,49.192764000000125],[-123.82055699999995,49.190544000000102],[-123.80722000000003,49.180275000000051],[-123.79444899999993,49.173325000000034],[-123.78859699999998,49.170273000000122],[-123.76944700000001,49.16304800000006],[-123.73805199999993,49.154433999999981],[-123.71112099999999,49.149993999999992],[-123.70417800000001,49.147491000000002],[-123.699432,49.143883000000073],[-123.696663,49.14027400000009],[-123.69638099999997,49.135551000000078],[-123.69915799999995,49.130272000000105],[-123.70388800000001,49.126381000000038],[-123.73137700000001,49.117493000000081],[-123.74166899999989,49.118049999999982],[-123.83750899999995,49.14138000000014],[-123.85056299999997,49.145546000000024],[-123.81027199999994,49.115829000000076],[-123.75195300000001,49.040833000000021],[-123.74944299999999,49.03527100000008],[-123.75028999999989,49.02915999999999],[-123.75695799999994,48.986938000000123],[-123.75862099999989,48.980819999999994],[-123.76334399999996,48.976936000000137],[-123.69193999999993,48.908325000000104],[-123.68222000000003,48.902214000000072],[-123.5911099999999,48.839989000000116],[-123.58277900000002,48.831940000000088],[-123.56555199999997,48.789719000000105],[-123.56304899999998,48.778327999999988],[-123.56471299999993,48.749718000000087],[-123.50945300000001,48.587493999999992],[-123.47666899999996,48.631660000000124],[-123.47083999999995,48.673324999999977],[-123.46916199999993,48.67943600000001],[-123.46444700000001,48.683327000000077],[-123.45973200000003,48.685822000000144],[-123.45140100000003,48.686652999999978],[-123.44193999999999,48.686652999999978],[-123.41639699999996,48.684433000000126],[-123.40110800000002,48.681381000000044],[-123.39639299999999,48.677773000000116],[-123.34973099999996,48.547775000000058],[-123.34834299999994,48.535828000000095],[-123.29527300000001,48.484718000000044],[-123.29167200000001,48.480820000000108],[-123.27861000000001,48.456100000000049],[-123.27610800000002,48.451103000000103],[-123.27694700000001,48.445540999999992],[-123.28694200000001,48.418602000000021],[-123.28971899999999,48.413321999999937],[-123.29444899999993,48.409714000000065],[-123.30082699999997,48.406654000000003],[-123.32055699999989,48.399437000000034],[-123.33640299999996,48.396942000000024],[-123.36028299999987,48.397217000000069],[-123.41665599999999,48.423882000000106],[-123.42138699999992,48.427490000000034],[-123.425003,48.431938000000002],[-123.45973200000003,48.411934000000031],[-123.51334400000002,48.374709999999993],[-123.53694200000001,48.338326000000109],[-123.54250300000001,48.312492000000077],[-123.54611199999999,48.307770000000005],[-123.55166600000001,48.304710000000114],[-123.55915800000002,48.303047000000049],[-123.58332799999994,48.301102000000014],[-123.598343,48.311661000000072],[-123.71444699999995,48.348045000000127],[-123.76251199999996,48.361664000000019],[-123.77166699999998,48.361664000000019],[-123.77999899999998,48.360550000000046],[-123.79499799999996,48.357498000000135],[-123.80888400000003,48.353324999999984],[-123.817497,48.352493000000095],[-123.823624,48.352776000000063],[-123.91610699999995,48.364159000000029],[-123.92415599999998,48.366104000000064],[-123.97609699999998,48.381934999999999],[-124.26363399999997,48.468880000000013],[-124.423607,48.516937000000041],[-124.609444,48.560547000000042],[-124.6885989999999,48.578330999999991],[-124.72083999999995,48.586655000000007],[-124.75917099999998,48.6055530000001],[-124.77111799999994,48.611663999999962],[-124.79499800000002,48.629989999999964],[-124.81777999999997,48.648880000000133],[-124.82277699999997,48.652489000000116],[-124.9225009999999,48.679993000000138],[-125.02887699999997,48.708885000000009],[-125.0625,48.714996000000099],[-125.09500100000002,48.721930999999984],[-125.10221899999993,48.724433999999917],[-125.11389199999996,48.731102000000078],[-125.18443299999996,48.796104000000128],[-125.18499800000001,48.800827000000083],[-125.01722699999999,48.920547000000113],[-124.90862300000003,48.969154000000003],[-124.90306099999998,48.97137500000008],[-124.84750399999996,49.011664999999994],[-124.84277299999985,49.015549000000021],[-124.83556399999998,49.02416199999999],[-124.78083800000002,49.131377999999984],[-124.77944899999994,49.144439999999975],[-124.78083800000002,49.150542999999914],[-124.79695099999998,49.215828000000101],[-124.79972799999996,49.22693600000008],[-124.80499299999997,49.236938000000066],[-124.80776999999995,49.240547000000049],[-124.81555199999997,49.238045],[-124.818893,49.234718000000044],[-124.82444800000002,49.224158999999986],[-124.82501199999996,49.217209000000139],[-124.82333399999993,49.205551000000128],[-124.81723,49.18332700000002],[-124.81610099999995,49.164711000000011],[-124.81806899999998,49.146103000000096],[-124.82611099999997,49.122489999999971],[-124.83139,49.112495000000081],[-124.87832599999996,49.025268999999923],[-124.88194299999998,49.020546000000138],[-124.89472999999998,49.008888000000127],[-124.90055799999993,49.00499700000006],[-124.906113,49.001938000000052],[-124.93694299999999,48.988045000000056],[-124.94999699999994,48.983330000000024],[-124.96278399999994,48.981102000000021],[-125.06916799999999,48.984436000000017],[-125.126938,48.991104000000007],[-125.19888300000002,48.96276899999998],[-125.21000699999996,48.955826000000002],[-125.21665999999988,48.953323000000012],[-125.22416699999991,48.951660000000118],[-125.23137699999995,48.951103000000046],[-125.24194299999988,48.951660000000118],[-125.318893,48.96443899999997],[-125.32721699999996,48.966102999999976],[-125.45722999999992,48.918052999999986],[-125.46472199999988,48.916382000000112],[-125.48361199999999,48.915825000000041],[-125.502228,48.917770000000019],[-125.50723299999999,48.920273000000009],[-125.75110599999994,49.055267000000072],[-125.76806599999998,49.098602000000028],[-125.73805199999998,49.105552999999986],[-125.69304699999992,49.12860100000006],[-125.64167800000001,49.16304800000006],[-125.63722200000001,49.166939000000127],[-125.60888699999998,49.198043999999982],[-125.60582699999992,49.210274000000084],[-125.60749800000002,49.215828000000101],[-125.611107,49.220267999999919],[-125.61638599999998,49.219711000000018],[-125.66443599999991,49.189987000000031],[-125.72083999999995,49.157767999999976],[-125.74694799999997,49.148604999999975],[-125.75334199999998,49.147491000000002],[-125.75611899999996,49.151657000000114],[-125.779449,49.241661000000022],[-125.79666099999992,49.310272000000055],[-125.86609599999991,49.274436999999978],[-125.952789,49.230270000000075],[-125.96501199999989,49.22526599999992],[-125.97028399999999,49.224709000000018],[-125.97444199999995,49.224991000000102],[-125.98137700000001,49.227211000000125],[-125.98750299999989,49.230270000000075],[-126.020554,49.263054000000125],[-126.02333099999993,49.268051000000071],[-126.02223200000003,49.280823000000055],[-126.01862299999993,49.285553000000107],[-126.01306199999999,49.288887000000102],[-126.00666799999993,49.290549999999996],[-125.98029300000002,49.292496000000085],[-125.97361799999999,49.294997999999964],[-125.96916199999998,49.297493000000031],[-125.950287,49.311935000000005],[-125.94554099999999,49.316666000000112],[-125.89750699999996,49.41027100000008],[-125.89584399999995,49.416381999999999],[-125.89695699999993,49.428047000000049],[-125.89972699999998,49.433601000000067],[-125.90471599999995,49.435822000000144],[-125.90915699999988,49.431938000000116],[-125.94722000000002,49.395546000000138],[-125.96250900000001,49.377487000000031],[-125.96501199999989,49.373604000000114],[-125.96528599999999,49.367493000000024],[-125.962219,49.3555530000001],[-125.962784,49.350273000000072],[-125.96610999999996,49.345543000000021],[-125.99527,49.324440000000095],[-126.00195300000001,49.321938000000046],[-126.00945299999989,49.321663000000001],[-126.03916900000002,49.330275999999969],[-126.04638699999987,49.333328000000108],[-126.06111099999998,49.344154000000003],[-126.06500199999999,49.348328000000038],[-126.07556199999999,49.386383000000137],[-126.07389799999999,49.392494000000056],[-126.120003,49.423049999999989],[-126.22556299999991,49.41027100000008],[-126.26390099999998,49.389435000000049],[-126.36527999999998,49.401657000000057],[-126.45916699999998,49.401932000000045],[-126.46167000000003,49.382767000000115],[-126.46611000000001,49.380272000000048],[-126.52667200000002,49.371933000000013],[-126.54222099999993,49.374435000000119],[-126.54723399999995,49.378044000000102],[-126.57778899999988,49.407767999999919],[-126.579453,49.413322000000107],[-126.57917799999996,49.419440999999949],[-126.56973299999999,49.576385000000073],[-126.56610099999995,49.584434999999985],[-126.47028399999999,49.635551000000021],[-126.46167000000003,49.636658000000125],[-126.40416699999997,49.637772000000098],[-126.38417099999992,49.63638300000008],[-126.36749299999997,49.633049000000085],[-126.36028299999998,49.630820999999969],[-126.34137699999997,49.628875999999991],[-126.28472899999997,49.634438000000102],[-126.22389199999998,49.640549000000021],[-126.13417099999998,49.649994000000049],[-126.09445199999988,49.655548000000067],[-126.08693699999998,49.657211000000018],[-126.08750899999995,49.662209000000018],[-126.09028599999999,49.666382000000112],[-126.09416199999993,49.671104000000014],[-126.10305799999998,49.679161000000022],[-126.11028299999992,49.681380999999988],[-126.11972000000003,49.681107000000054],[-126.20944199999991,49.673881999999992],[-126.23444399999994,49.669159000000036],[-126.24638400000003,49.664711000000068],[-126.283073,49.654990999999995],[-126.29833999999994,49.652214000000072],[-126.34084300000001,49.648605000000089],[-126.43110699999994,49.662491000000045],[-126.43831599999993,49.664153999999996],[-126.58500699999996,49.701103000000046],[-126.59028599999994,49.704437000000041],[-126.63027999999997,49.794998000000078],[-126.67971799999998,49.878876000000105],[-126.80444299999988,49.909156999999993],[-126.83917200000002,49.884720000000129],[-126.84555099999989,49.8822100000001],[-126.85221899999993,49.87971500000009],[-126.87609899999995,49.873322000000087],[-126.93943799999994,49.862770000000125],[-126.99416399999996,49.855270000000019],[-127.12111699999997,49.85228699999999],[-127.13249200000001,49.85694100000012],[-127.17749000000003,49.88888500000013],[-127.18554699999999,49.897491000000059],[-127.22444199999995,49.940269000000114],[-127.24137899999999,49.961937000000034],[-127.23889199999996,49.967208999999968],[-127.234444,49.97137500000008],[-127.17999299999991,50.021378000000027],[-127.18277,50.03166200000004],[-127.18360899999999,50.051102000000014],[-127.17666599999995,50.061104],[-127.172234,50.064995000000067],[-127.13027999999997,50.084717000000126],[-127.15833999999995,50.096382000000006],[-127.27055399999995,50.0991590000001],[-127.27500899999995,50.059990000000028],[-127.27749599999993,50.055267000000015],[-127.28388999999999,50.052216000000044],[-127.33000199999998,50.033882000000062],[-127.34500100000002,50.030273000000079],[-127.38054699999998,50.026100000000099],[-127.38999899999993,50.028603000000089],[-127.42331699999994,50.042221000000097],[-127.45195000000001,50.069716999999969],[-127.46916199999993,50.088042999999971],[-127.47193900000002,50.092765999999983],[-127.54804999999993,50.130272000000105],[-127.63276699999994,50.129990000000021],[-127.78028899999993,50.084160000000054],[-127.781387,50.084160000000054],[-127.78362299999998,50.084160000000054],[-127.890556,50.106941000000063],[-127.89584400000001,50.108886999999925],[-127.90083299999998,50.112495000000024],[-127.90695199999999,50.12082700000002],[-127.90666199999998,50.127769000000114],[-127.90334300000001,50.132492000000127],[-127.89222699999988,50.139160000000061],[-127.87917299999998,50.144440000000145],[-127.86805700000002,50.151099999999985],[-127.83721899999995,50.172493000000088],[-127.82833900000003,50.180550000000096],[-127.78888699999999,50.222214000000008],[-127.79915599999993,50.317772000000105],[-127.80444299999994,50.321380999999917],[-127.86389200000002,50.336937000000091],[-127.87138399999998,50.33776899999998],[-127.88110399999999,50.337212000000079],[-127.895554,50.326385000000073],[-127.90778399999999,50.319717000000082],[-127.92166099999997,50.316666000000055],[-127.93138099999993,50.31610100000006],[-127.94833399999993,50.321937999999989],[-127.95249899999993,50.324715000000083],[-127.97860700000001,50.342491000000052],[-127.97944599999994,50.347214000000065],[-127.92610199999996,50.459991000000059],[-127.92388900000003,50.462769000000037],[-127.91722099999993,50.464156999999943],[-127.75666799999993,50.486381999999992],[-127.708054,50.491661000000136],[-127.70028699999995,50.492218000000037],[-127.58416699999998,50.486938000000009],[-127.576683,50.484717999999987],[-127.57140400000003,50.481934000000024],[-127.56331599999999,50.4741590000001],[-127.53278399999999,50.439986999999974],[-127.50750700000003,50.409157000000107],[-127.49527,50.395827999999995],[-127.47444200000001,50.381660000000124],[-127.46193699999998,50.37582400000008],[-127.454453,50.373604000000057],[-127.44695300000001,50.372765000000129],[-127.446663,50.379714999999976],[-127.45249899999988,50.388885000000016],[-127.48665599999993,50.437492000000134],[-127.50583599999999,50.458602999999982],[-127.52027899999996,50.469711000000132],[-127.53083800000002,50.476936000000023],[-127.54750100000001,50.486938000000009],[-127.56388899999996,50.502220000000023],[-127.57000699999998,50.512214999999912],[-127.56749699999995,50.516105999999979],[-127.55027799999999,50.538329999999917],[-127.54472399999997,50.541664000000083],[-127.50361599999997,50.562210000000107],[-127.49694799999992,50.565269000000058],[-127.49027999999993,50.568054000000132],[-127.47501399999999,50.571663000000115],[-127.44360399999999,50.571663000000115],[-127.41972399999992,50.573883000000137],[-127.41416900000002,50.575829000000056],[-127.41166699999997,50.581383000000017],[-127.41139199999992,50.587494000000106],[-127.41944899999999,50.596657000000107],[-127.58168000000001,50.593880000000013],[-127.69138299999997,50.606659000000093],[-127.87332200000003,50.623877999999934],[-127.87666299999995,50.621658000000139],[-127.87361099999993,50.616936000000067],[-127.854446,50.608330000000137],[-127.80055199999998,50.587494000000106],[-127.78666699999997,50.582214000000022],[-127.76834099999996,50.579994000000056],[-127.75110599999999,50.581108000000029],[-127.72501399999993,50.584434999999928],[-127.708618,50.584991000000116],[-127.66251399999999,50.581383000000017],[-127.63445300000001,50.578049000000021],[-127.61028299999998,50.565825999999959],[-127.595551,50.55582400000003],[-127.59166699999997,50.551659000000029],[-127.58972199999999,50.546104000000128],[-127.595551,50.536659000000043],[-127.60109699999998,50.533333000000027],[-127.60888699999987,50.53138000000007],[-128.05142199999995,50.446693000000039],[-128.13363599999997,50.474709000000132],[-128.224152,50.531105000000082],[-128.319458,50.608604000000071],[-128.37527499999993,50.678604000000064],[-128.40695199999999,50.738883999999985],[-128.41473399999995,50.762771999999984],[-128.41665599999999,50.76915699999995],[-128.41305499999993,50.773880000000133],[-128.40863000000002,50.77777100000003],[-128.35583499999996,50.799721000000034],[-128.349152,50.801658999999972],[-128.10693400000002,50.860550000000103],[-128.05306999999999,50.87193300000007],[-127.91832699999998,50.872214999999983],[-127.90972899999991,50.871375999999998],[-127.882767,50.865546999999992],[-127.83332799999999,50.854163999999969],[-127.67749000000003,50.817497000000003],[-127.51471700000002,50.774437000000034],[-127.50723299999993,50.772217000000012],[-127.49582699999996,50.765831000000105],[-127.48750299999995,50.757217000000082],[-127.45916699999992,50.718322999999998],[-127.354446,50.676102000000014],[-127.22693599999991,50.636108000000036]],[[-127.65471599999995,50.837769000000094],[-127.66139199999998,50.834991000000059],[-127.67027300000001,50.835266000000104],[-127.75306699999999,50.852776000000063],[-127.83332799999999,50.879715000000033],[-127.83860799999997,50.881660000000068],[-127.83306899999997,50.884995000000117],[-127.73500100000001,50.909987999999998],[-127.72638699999993,50.908600000000092],[-127.71665999999999,50.90554800000001],[-127.71028099999995,50.901932000000102],[-127.69138299999997,50.887214999999969],[-127.67083699999995,50.86693600000001],[-127.65833999999995,50.854163999999969],[-127.65527299999997,50.849433999999974],[-127.65334299999995,50.843880000000127],[-127.65471599999995,50.837769000000094]],[[-55.555557000000022,50.886383000000023],[-55.563888999999961,50.884995000000117],[-55.571670999999924,50.885826000000122],[-55.581116000000009,50.888046000000145],[-55.604720999999984,50.898048000000074],[-55.615554999999972,50.906097000000102],[-55.619720000000029,50.910271000000137],[-55.636115999999959,50.950829000000056],[-55.635276999999917,50.961380000000133],[-55.629439999999931,50.965546000000018],[-55.565552000000025,50.983046999999999],[-55.558334000000002,50.984436000000017],[-55.550551999999925,50.985268000000076],[-55.54222900000002,50.984993000000088],[-55.535277999999948,50.981377000000009],[-55.531386999999995,50.977211000000125],[-55.529723999999987,50.968323000000112],[-55.549995000000024,50.890830999999991],[-55.555557000000022,50.886383000000023]],[[-55.993889000000024,51.200272000000098],[-55.999999999999943,51.196655000000135],[-56.00111400000003,51.201660000000004],[-55.998055000000022,51.207496999999989],[-55.992774999999995,51.212769000000094],[-55.981383999999935,51.22165700000005],[-55.975554999999986,51.225822000000051],[-55.967772999999966,51.226653999999996],[-55.968329999999867,51.221375000000023],[-55.970550999999944,51.218323000000055],[-55.982498000000021,51.208885000000066],[-55.993889000000024,51.200272000000098]],[[-58.413329999999917,51.238884000000098],[-58.462219000000005,51.216103000000089],[-58.563613999999973,51.228325000000041],[-58.565001999999993,51.23333000000008],[-58.561942999999928,51.239159000000086],[-58.555831999999953,51.242767000000015],[-58.513335999999924,51.264999000000103],[-58.506392999999946,51.268326000000059],[-58.419448999999986,51.274712000000136],[-58.412773000000016,51.267212000000029],[-58.409163999999919,51.256943000000035],[-58.413329999999917,51.238884000000098]],[[-53.756366999999955,48.50326200000012],[-53.997498000000007,48.425552000000039],[-54.011116000000015,48.421660999999972],[-54.025001999999915,48.418602000000021],[-54.048889000000031,48.420546999999999],[-54.057220000000029,48.421936000000017],[-54.072776999999917,48.428604000000007],[-54.081115999999952,48.429992999999968],[-54.094443999999953,48.425827000000083],[-54.100554999999929,48.422493000000088],[-54.147223999999994,48.391380000000083],[-54.138054000000011,48.359161000000029],[-54.134726999999998,48.354438999999957],[-54.12749500000001,48.353324999999984],[-54.118606999999997,48.364998000000014],[-54.088607999999965,48.395545999999968],[-54.075561999999934,48.401932000000102],[-54.069449999999961,48.40387700000008],[-54.054442999999935,48.404160000000047],[-54.045554999999979,48.401932000000102],[-54.029167000000029,48.399437000000034],[-54.021111000000019,48.399162000000047],[-53.998885999999914,48.400826000000052],[-53.99222599999996,48.402489000000003],[-53.97972099999987,48.408042999999964],[-53.913054999999929,48.444153000000085],[-53.756366999999955,48.50326200000012],[-53.674445999999932,48.534164000000089],[-53.647223999999994,48.541107000000068],[-53.631942999999978,48.541382000000056],[-53.623054999999965,48.53916200000009],[-53.586387999999999,48.525269000000037],[-53.574722000000008,48.507216999999969],[-53.558051999999975,48.474709000000018],[-53.588051000000007,48.428047000000106],[-53.562217999999973,48.439155999999969],[-53.533889999999985,48.451935000000049],[-53.48860899999994,48.507216999999969],[-53.461945000000014,48.555266999999958],[-53.46527900000001,48.568603999999993],[-53.465835999999967,48.57416500000005],[-53.465003999999965,48.579436999999984],[-53.437217999999973,48.619987000000094],[-53.424445999999989,48.625549000000035],[-53.345832999999914,48.615828999999962],[-53.33805099999995,48.612494999999967],[-53.313056999999958,48.595267999999976],[-53.305832000000009,48.586655000000007],[-53.303329000000019,48.581940000000145],[-53.226386999999932,48.555549999999926],[-53.216392999999925,48.566939999999988],[-53.153884999999946,48.628601000000003],[-53.079726999999991,48.6988750000001],[-53.072776999999917,48.700272000000041],[-53.067779999999914,48.696380999999974],[-53.02305599999994,48.660820000000001],[-53.018889999999942,48.656380000000013],[-52.978049999999996,48.604439000000127],[-52.976386999999988,48.599159000000043],[-52.976944000000003,48.59388000000007],[-52.987220999999977,48.548050000000046],[-53.053885999999977,48.442764000000068],[-53.075561999999991,48.422493000000088],[-53.097495999999978,48.405266000000097],[-53.1875,48.350829999999974],[-53.194159999999954,48.348602000000028],[-53.201941999999974,48.347488000000055],[-53.209723999999937,48.347771000000023],[-53.218055999999933,48.3491590000001],[-53.24888599999997,48.362770000000069],[-53.261391000000003,48.37082700000002],[-53.266395999999986,48.37499200000002],[-53.345001000000025,48.360275000000058],[-53.388892999999882,48.303879000000109],[-53.615279999999984,48.178046999999935],[-53.621383999999921,48.174712999999997],[-53.634170999999924,48.169991000000095],[-53.662216000000001,48.163321999999994],[-53.668609999999944,48.162490999999989],[-53.676948999999979,48.163879000000065],[-53.694716999999912,48.169158999999979],[-53.71055599999994,48.17582700000014],[-53.892501999999979,48.226936000000137],[-53.901389999999935,48.229156000000103],[-53.934165999999948,48.233330000000137],[-53.940551999999968,48.230819999999937],[-53.945273999999984,48.178879000000052],[-53.944159999999897,48.163879000000065],[-53.917777999999998,48.088043000000027],[-53.912498000000028,48.084160000000054],[-53.904167000000029,48.081940000000088],[-53.823616000000015,48.074439999999981],[-53.793335000000013,48.073608000000092],[-53.77027899999996,48.073326000000009],[-53.733611999999994,48.076103000000103],[-53.718604999999968,48.078049000000021],[-53.696944999999971,48.079162999999994],[-53.689163000000008,48.078880000000026],[-53.692885999999874,48.067993000000001],[-53.688389000000029,48.065989999999999],[-53.685219000000018,48.063660000000141],[-53.683887000000027,48.060822000000144],[-53.684222999999918,48.057822999999985],[-53.687888999999927,48.054825000000108],[-53.691055000000006,48.052658000000065],[-53.698883000000023,48.049328000000003],[-53.736945999999989,48.032767999999976],[-53.763335999999981,48.026382000000012],[-53.799445999999989,48.02165999999994],[-53.836661999999933,48.022217000000012],[-53.852225999999973,48.023048000000074],[-53.876389000000017,48.025826000000052],[-53.893889999999942,48.029991000000052],[-53.90166499999998,48.033607000000075],[-53.909438999999963,48.033882000000119],[-53.916663999999912,48.033332999999971],[-53.923614999999984,48.031662000000097],[-53.924170999999944,48.026657000000057],[-53.919167000000016,48.022490999999945],[-53.911384999999939,48.019157000000007],[-53.893058999999937,48.014442000000145],[-53.794448999999986,47.996384000000091],[-53.779166999999973,47.996658000000025],[-53.695388999999921,48.018218999999988],[-53.69138700000002,48.019215000000145],[-53.668723999999997,48.029880999999989],[-53.650218999999993,48.037884000000133],[-53.607779999999991,48.051102000000071],[-53.605835000000013,48.046387000000038],[-53.619164000000012,47.998878000000047],[-53.622498000000007,47.993050000000096],[-53.723610000000008,47.843880000000013],[-53.737777999999992,47.826660000000061],[-53.787506000000008,47.773048000000074],[-53.793335000000013,47.768599999999935],[-53.801391999999964,47.769989000000123],[-53.807502999999997,47.773604999999975],[-53.825561999999991,47.794998000000078],[-53.852500999999961,47.785271000000137],[-53.850554999999986,47.760551000000135],[-53.837501999999915,47.699432000000058],[-53.760283999999956,47.609993000000145],[-53.631110999999976,47.54332700000009],[-53.550551999999982,47.529159999999933],[-53.545279999999991,47.534439000000134],[-53.542502999999954,47.550270000000069],[-53.541114999999991,47.585266000000047],[-53.497779999999977,47.734717999999987],[-53.495834000000002,47.740273000000059],[-53.461113000000012,47.806655999999975],[-53.434998000000007,47.83776899999998],[-53.30610699999994,47.984161000000029],[-53.290840000000003,47.999435000000119],[-53.274445000000014,48.013329000000056],[-53.170554999999979,48.05360399999995],[-53.110001000000011,48.03943600000008],[-53.101943999999946,48.038048000000003],[-53.095001000000025,48.03943600000008],[-53.053329000000019,48.049721000000034],[-53.041945999999996,48.055824000000143],[-52.996947999999975,48.086380000000077],[-52.974716000000001,48.116385999999977],[-52.959723999999994,48.143051000000014],[-52.956389999999999,48.148605000000032],[-52.926948999999979,48.169991000000095],[-52.919998000000021,48.171379000000002],[-52.902221999999995,48.16304800000006],[-52.886115999999959,48.151100000000042],[-52.881942999999922,48.147491000000059],[-52.83555599999994,48.106383999999991],[-52.831389999999942,48.101661999999919],[-52.832779000000016,48.096939000000134],[-52.838889999999935,48.093605000000139],[-52.871940999999993,48.082214000000022],[-52.880279999999914,48.083327999999995],[-52.898055999999997,48.090546000000018],[-52.904167000000029,48.089714000000072],[-52.911384999999996,48.088043000000027],[-52.917503000000011,48.084716999999955],[-52.928336999999999,48.075553999999954],[-53.058051999999975,47.922493000000031],[-53.05999799999995,47.916939000000013],[-53.059440999999993,47.886658000000125],[-53.075835999999981,47.850830000000087],[-53.158607000000018,47.683052000000089],[-53.178336999999999,47.651382000000012],[-53.183608999999933,47.646385000000123],[-53.201667999999984,47.636383000000137],[-53.221106999999961,47.628601000000003],[-53.240836999999942,47.622489999999914],[-53.259726999999998,47.615829000000019],[-53.265006999999969,47.611664000000019],[-53.267220000000009,47.606102000000078],[-53.261672999999973,47.546386999999982],[-53.175560000000019,47.431381000000101],[-53.128333999999995,47.411102000000142],[-53.121940999999993,47.413321999999994],[-53.111945999999989,47.423607000000118],[-53.083060999999987,47.458327999999995],[-53.065833999999938,47.469986000000063],[-53.013061999999934,47.501389000000074],[-52.995002999999997,47.51138300000008],[-52.951667999999927,47.530823000000055],[-52.919167000000016,47.541663999999969],[-52.907218999999998,47.54833200000013],[-52.896949999999947,47.55860100000001],[-52.849167000000023,47.621101000000124],[-52.842498999999918,47.632767000000115],[-52.840552999999943,47.638329000000056],[-52.837501999999915,47.65415999999999],[-52.838889999999935,47.663879000000009],[-52.841110000000015,47.668602000000021],[-52.841667000000029,47.673324999999977],[-52.840552999999943,47.683876000000055],[-52.798889000000031,47.784164000000033],[-52.791388999999981,47.795547000000056],[-52.78556100000003,47.79972100000009],[-52.779442000000017,47.803047000000106],[-52.770554000000004,47.79972100000009],[-52.704169999999976,47.753882999999973],[-52.700554000000011,47.749435000000005],[-52.657776000000013,47.657493999999986],[-52.614448999999979,47.516662999999937],[-52.620276999999987,47.500275000000101],[-52.625832000000003,47.489158999999972],[-52.653327999999988,47.437767000000008],[-52.718055999999933,47.364998000000014],[-52.787506000000008,47.308043999999938],[-52.818610999999976,47.224159000000043],[-52.849723999999981,47.1616590000001],[-52.845276000000013,47.142493999999942],[-52.843613000000005,47.063880999999981],[-52.844161999999983,47.058601000000067],[-52.852782999999988,47.022491000000002],[-52.884170999999981,46.9741590000001],[-52.909995999999978,46.911658999999986],[-52.92972599999996,46.851662000000033],[-52.932776999999987,46.825554000000068],[-52.934998000000007,46.804993000000024],[-52.938332000000003,46.78916200000009],[-53.090836000000024,46.643326000000002],[-53.102501000000018,46.636658000000011],[-53.161110000000008,46.619986999999981],[-53.169166999999959,46.619713000000047],[-53.192497000000003,46.62332200000003],[-53.207221999999888,46.630272000000105],[-53.213332999999977,46.633881000000088],[-53.315552000000025,46.694709999999986],[-53.354171999999949,46.736938000000009],[-53.361945999999932,46.737495000000081],[-53.384170999999981,46.721375000000023],[-53.410552999999936,46.700828999999999],[-53.426391999999964,46.687210000000107],[-53.451392999999996,46.66137700000013],[-53.463614999999947,46.654160000000047],[-53.521111000000019,46.62082700000002],[-53.532776000000013,46.614159000000029],[-53.561667999999941,46.612770000000069],[-53.569449999999961,46.614159000000029],[-53.577224999999999,46.617493000000024],[-53.607779999999991,46.636107999999979],[-53.613891999999964,46.640274000000034],[-53.617774999999995,46.644157000000007],[-53.635001999999929,46.680823999999973],[-53.643058999999994,46.704437000000098],[-53.64416499999993,46.709160000000111],[-53.648055999999997,46.796661000000029],[-53.647781000000009,46.801932999999963],[-53.645279000000016,46.81249200000002],[-53.639724999999999,46.829163000000051],[-53.636391000000003,46.834717000000069],[-53.594718999999998,46.9447100000001],[-53.64166999999992,46.983879000000002],[-53.633614000000023,47.001105999999993],[-53.577781999999956,47.085265999999933],[-53.55083499999995,47.106659000000036],[-53.539444000000003,47.114158999999972],[-53.591385000000002,47.156096999999988],[-53.646392999999989,47.105270000000075],[-53.703612999999962,47.053047000000106],[-53.823059000000001,46.956657000000064],[-53.894164999999987,46.899994000000106],[-53.945830999999941,46.858887000000038],[-54.053328999999962,46.794998000000135],[-54.097220999999934,46.799438000000123],[-54.17888599999992,46.81610100000006],[-54.187774999999988,46.819160000000011],[-54.18999500000001,46.823607999999979],[-54.190833999999995,46.828605999999979],[-54.196387999999956,46.862494999999967],[-54.196663000000001,46.883330999999998],[-54.193329000000006,46.893607999999972],[-54.160827999999981,46.981934000000024],[-54.131942999999978,47.012496999999996],[-54.11500499999994,47.039719000000105],[-54.092498999999975,47.079437000000098],[-54.066665999999998,47.131104000000107],[-53.993889000000024,47.265274000000034],[-53.964721999999995,47.299721000000034],[-53.928611999999987,47.302773000000116],[-53.921943999999996,47.304161000000022],[-53.879997000000003,47.348045000000127],[-53.875557000000015,47.354163999999969],[-53.867500000000007,47.402771000000087],[-53.879439999999931,47.43082400000003],[-53.900275999999963,47.486107000000061],[-53.891669999999976,47.524711999999965],[-53.885558999999944,47.576941999999974],[-53.894721999999945,47.6055530000001],[-53.896950000000004,47.609993000000145],[-53.983886999999925,47.75777400000004],[-54.003333999999995,47.778877000000136],[-54.033332999999914,47.796661000000029],[-54.195273999999984,47.857498000000021],[-54.194999999999993,47.843048000000124],[-54.197219999999902,47.832214000000079],[-54.212776000000019,47.777771000000087],[-54.219161999999926,47.766106000000036],[-54.223884999999939,47.759995000000117],[-54.259170999999981,47.715271000000143],[-54.337776000000019,47.621658000000025],[-54.435271999999998,47.505554000000075],[-54.468605000000025,47.441658000000075],[-54.477492999999981,47.404991000000052],[-54.472495999999978,47.401099999999985],[-54.477492999999981,47.395828000000051],[-54.482772999999952,47.391663000000051],[-54.511116000000015,47.372765000000015],[-54.517219999999952,47.369438000000059],[-54.601394999999968,47.345268000000033],[-54.611388999999974,47.353049999999996],[-54.613060000000019,47.35833000000008],[-54.61333499999995,47.362770000000069],[-54.606948999999986,47.374434999999949],[-54.601944000000003,47.379715000000033],[-54.596663999999862,47.383880999999917],[-54.559998000000007,47.413879000000065],[-54.529166999999973,47.442214999999976],[-54.489998000000014,47.486382000000049],[-54.417220999999984,47.583603000000096],[-54.410827999999867,47.594994000000042],[-54.413329999999917,47.599715999999944],[-54.418334999999956,47.603607000000011],[-54.430557000000022,47.597771000000137],[-54.440833999999938,47.586937000000091],[-54.508614000000023,47.513328999999999],[-54.53194400000001,47.479987999999992],[-54.539444000000003,47.468048000000124],[-54.563613999999973,47.439987000000031],[-54.578887999999893,47.423882000000106],[-54.604720999999984,47.401932000000102],[-54.621383999999978,47.389992000000007],[-54.700279000000023,47.357773000000009],[-54.719993999999929,47.352218999999991],[-54.727218999999991,47.351387000000045],[-54.818610999999862,47.363609000000054],[-54.819450000000018,47.368599000000074],[-54.803054999999972,47.380546999999979],[-54.793616999999983,47.391936999999984],[-54.786667000000023,47.413879000000065],[-54.787506000000008,47.418884000000105],[-54.796111999999994,47.420830000000024],[-54.856392000000028,47.390549000000078],[-54.980552999999929,47.285552999999936],[-55.039169000000015,47.225821999999994],[-55.043892000000028,47.220825000000048],[-55.045554999999979,47.215271000000087],[-55.043335000000013,47.210548000000074],[-55.05361199999993,47.150826000000109],[-55.065833999999995,47.093323000000112],[-55.069450000000018,47.082214000000022],[-55.100280999999995,47.05471],[-55.149444999999957,47.012215000000083],[-55.154716000000008,47.008049000000028],[-55.193329000000006,46.984993000000145],[-55.225829999999974,46.934433000000126],[-55.230277999999942,46.928329000000076],[-55.236945999999932,46.923607000000004],[-55.246947999999975,46.916939000000013],[-55.258613999999966,46.91027100000008],[-55.358337000000006,46.874161000000129],[-55.384170999999924,46.865829000000133],[-55.399993999999936,46.865829000000133],[-55.456664999999987,46.874710000000107],[-55.463615000000004,46.877486999999974],[-55.468604999999968,46.881660000000124],[-55.471938999999963,46.886383000000137],[-55.626944999999921,46.868881000000101],[-55.634170999999981,46.866661000000079],[-55.689719999999966,46.858329999999967],[-55.803328999999962,46.860549999999989],[-55.845832999999971,46.86971299999999],[-55.915000999999961,46.88749700000011],[-55.923614999999927,46.889717000000076],[-55.931389000000024,46.892769000000044],[-55.946663000000001,46.899436999999978],[-55.966110000000015,46.909988000000112],[-55.98082699999992,46.932213000000104],[-55.982773000000009,46.936652999999978],[-55.984168999999952,46.941658000000018],[-55.983054999999979,46.952492000000063],[-55.980552999999986,46.957771000000037],[-55.96665999999999,46.981377000000123],[-55.952498999999989,46.996383999999921],[-55.886948000000018,47.056099000000017],[-55.87110899999999,47.069160000000124],[-55.865554999999972,47.072768999999937],[-55.775276000000019,47.10193600000008],[-55.768607999999972,47.103325000000041],[-55.745551999999918,47.10443900000007],[-55.738892000000021,47.10443900000007],[-55.723609999999951,47.104164000000026],[-55.715553,47.103050000000053],[-55.698050999999964,47.098045000000013],[-55.68250299999994,47.091377000000023],[-55.674445999999989,47.090270999999973],[-55.586945000000014,47.110275000000115],[-55.573616000000015,47.11360900000011],[-55.493331999999896,47.133880999999974],[-55.487777999999992,47.137214999999969],[-55.329445000000021,47.242493000000024],[-55.298339999999939,47.267211999999972],[-55.290557999999976,47.278328000000101],[-55.285278000000005,47.294998000000021],[-55.28583500000002,47.310272000000111],[-55.286948999999993,47.314995000000067],[-55.286117999999988,47.325554000000125],[-55.269721999999945,47.390830999999991],[-55.266662999999994,47.396659999999997],[-55.262221999999895,47.402771000000087],[-55.256949999999961,47.407211000000075],[-55.202224999999999,47.44609800000012],[-55.179169000000002,47.460548000000017],[-55.172501000000011,47.463882000000012],[-55.107779999999991,47.483604000000071],[-55.100554999999986,47.484160999999972],[-55.083611000000019,47.481101999999964],[-55.075835999999867,47.480820000000108],[-55.040282999999931,47.484993000000031],[-54.951392999999882,47.504997000000003],[-54.868057000000022,47.543883999999991],[-54.845832999999971,47.556938000000059],[-54.841666999999973,47.563324000000136],[-54.841385000000002,47.583603000000096],[-54.845551,47.633881000000088],[-54.949439999999925,47.599715999999944],[-54.956389999999999,47.59804500000007],[-54.970832999999971,47.596656999999993],[-55.019278999999926,47.621101000000124],[-55.028277999999887,47.620766000000117],[-55.033278999999936,47.621601000000112],[-55.036109999999894,47.623936000000015],[-55.037612999999908,47.626601999999991],[-55.037440999999887,47.62977200000006],[-55.03561000000002,47.633269999999982],[-55.029612999999927,47.639598999999976],[-55.013779,47.65310299999993],[-55.00777800000003,47.65943500000003],[-54.956389999999999,47.741379000000109],[-54.947494999999947,47.75360900000004],[-54.938048999999978,47.771103000000096],[-54.936110999999926,47.781661999999983],[-54.943054000000018,47.781105000000082],[-54.948607999999922,47.776657000000114],[-55.011391000000003,47.721374999999966],[-55.021942000000024,47.711661999999933],[-55.025276000000019,47.705268999999987],[-55.027221999999995,47.695267000000058],[-55.03055599999999,47.684158000000139],[-55.033614999999941,47.678329000000133],[-55.119114000000025,47.616936000000123],[-55.122443999999916,47.614269000000093],[-55.126281999999946,47.612774000000002],[-55.130774999999915,47.611938000000123],[-55.135777000000019,47.613605000000007],[-55.262778999999966,47.650543000000084],[-55.349167000000023,47.704437000000098],[-55.34833500000002,47.710274000000027],[-55.357506000000001,47.726097000000095],[-55.365004999999996,47.726379000000122],[-55.379722999999956,47.724991000000045],[-55.427497999999957,47.711661999999933],[-55.432502999999997,47.70638299999996],[-55.461944999999957,47.646103000000039],[-55.464721999999938,47.640274000000034],[-55.467498999999975,47.619155999999919],[-55.46665999999999,47.614159000000029],[-55.461387999999943,47.610275000000001],[-55.454444999999964,47.611107000000118],[-55.446663000000001,47.623046999999985],[-55.436110999999926,47.631659999999954],[-55.430000000000007,47.634163000000115],[-55.423057999999969,47.635826000000066],[-55.415276000000006,47.63249200000007],[-55.407776000000013,47.624161000000015],[-55.400276000000019,47.615547000000106],[-55.398337999999967,47.610275000000001],[-55.389724999999999,47.58638000000002],[-55.400276000000019,47.514717000000076],[-55.406661999999926,47.493050000000039],[-55.40972099999999,47.487213000000054],[-55.414161999999919,47.481101999999964],[-55.429726000000016,47.467209000000139],[-55.43638599999997,47.465546000000018],[-55.498610999999983,47.453880000000026],[-55.505835999999931,47.453322999999955],[-55.526108000000022,47.454436999999928],[-55.555274999999938,47.440269000000058],[-55.560555000000022,47.436104000000057],[-55.565001999999993,47.429993000000024],[-55.587776000000019,47.398604999999975],[-55.625,47.463608000000079],[-55.654167000000029,47.495270000000062],[-55.795279999999991,47.492767000000072],[-55.914443999999946,47.437767000000008],[-55.920279999999934,47.435265000000129],[-55.925560000000019,47.439156000000025],[-55.923889000000031,47.444709999999986],[-55.91972399999986,47.450829000000056],[-55.831673000000023,47.517212000000086],[-55.788895000000025,47.551102000000014],[-55.745834000000002,47.585266000000047],[-55.77305599999994,47.579720000000009],[-55.824172999999973,47.566382999999973],[-55.892226999999991,47.5366590000001],[-55.987777999999992,47.500549000000035],[-56.104172000000005,47.463608000000079],[-56.110557999999855,47.462494000000106],[-56.11860699999994,47.463608000000079],[-56.158889999999928,47.484718000000044],[-56.169167000000016,47.492493000000138],[-56.172500999999897,47.49721500000004],[-56.172500999999897,47.501663000000008],[-56.168059999999969,47.507216999999969],[-56.162498000000028,47.51138300000008],[-56.12027699999993,47.519157000000064],[-56.044448999999986,47.535271000000023],[-55.941939999999931,47.561661000000072],[-55.889998999999932,47.578330999999991],[-55.639998999999989,47.668053000000043],[-55.633330999999998,47.671104000000071],[-55.628333999999995,47.674713000000054],[-55.635001999999986,47.678329000000133],[-55.642501999999979,47.678604000000121],[-55.649993999999992,47.677773000000116],[-55.663886999999932,47.675552000000039],[-55.704169999999976,47.664992999999981],[-55.75,47.649437000000034],[-55.756110999999976,47.646942000000024],[-55.774718999999948,47.638329000000056],[-55.80471799999998,47.624435000000119],[-55.824447999999961,47.618599000000017],[-55.838889999999935,47.617210000000057],[-55.855835000000013,47.620270000000119],[-55.903327999999931,47.645270999999923],[-55.913611999999944,47.653046000000018],[-55.917503000000011,47.657493999999986],[-55.919448999999929,47.667213000000004],[-55.918609999999944,47.673049999999989],[-55.916388999999981,47.678329000000133],[-55.91194200000001,47.684432999999956],[-55.901389999999992,47.693047000000035],[-55.895554000000004,47.696655000000135],[-55.866393999999957,47.713882000000126],[-55.83277899999996,47.742493000000081],[-55.815001999999993,47.772491000000002],[-55.799445999999875,47.799164000000019],[-55.742226000000016,47.923325000000091],[-55.746947999999975,47.93249499999996],[-55.754447999999968,47.94110100000006],[-55.767219999999952,47.953323000000069],[-55.773613000000012,47.956940000000031],[-55.78055599999999,47.95526899999993],[-55.817504999999983,47.886939999999981],[-55.835273999999913,47.850830000000087],[-55.835555999999997,47.845543000000134],[-55.847220999999934,47.806938000000002],[-55.849998000000028,47.801102000000128],[-55.854445999999996,47.794716000000051],[-55.865279999999984,47.786110000000122],[-55.877219999999966,47.778602999999976],[-55.888892999999996,47.773048000000074],[-56.049727999999959,47.699432000000058],[-56.087501999999972,47.736938000000009],[-56.081116000000009,47.739715999999987],[-56.053611999999987,47.77388000000002],[-56.057502999999997,47.778327999999988],[-56.064163000000008,47.776657000000114],[-56.111671000000001,47.763610999999969],[-56.125,47.757216999999969],[-56.185271999999998,47.680274999999995],[-56.160278000000005,47.642220000000123],[-56.154998999999862,47.638329000000056],[-56.161384999999939,47.634163000000115],[-56.173332000000016,47.629714999999976],[-56.187499999999943,47.627213000000097],[-56.358336999999892,47.603324999999984],[-56.394722000000002,47.601105000000132],[-56.410277999999948,47.601387000000045],[-56.418892000000028,47.601936000000137],[-56.443053999999904,47.605827000000033],[-56.546950999999979,47.613883999999985],[-56.615554999999915,47.613327000000083],[-56.644164999999987,47.596100000000092],[-56.641113000000018,47.592216000000064],[-56.639998999999989,47.587212000000079],[-56.644164999999987,47.581108000000086],[-56.65055099999995,47.578330999999991],[-56.774719000000005,47.531937000000028],[-56.840836000000024,47.52137799999997],[-56.902221999999995,47.552490000000091],[-56.924445999999989,47.562209999999993],[-56.956107999999972,47.574996999999996],[-56.96527900000001,47.57777400000009],[-56.992500000000007,47.583878000000141],[-56.999725000000012,47.584717000000069],[-57.014724999999942,47.583878000000141],[-57.096663999999976,47.56610100000006],[-57.118332000000009,47.563881000000038],[-57.126105999999993,47.563881000000038],[-57.134445000000028,47.566382999999973],[-57.150276000000019,47.572769000000051],[-57.163329999999917,47.579720000000009],[-57.204720000000009,47.59304800000001],[-57.530829999999867,47.630821000000026],[-57.657776000000013,47.60305000000011],[-57.779441999999904,47.627487000000031],[-57.882499999999993,47.651382000000012],[-58.027495999999928,47.694153000000028],[-58.036391999999978,47.696098000000063],[-58.359443999999939,47.647217000000012],[-58.690552000000025,47.598877000000016],[-58.771110999999962,47.59137700000008],[-58.861945999999932,47.589157000000114],[-58.885001999999872,47.592766000000097],[-58.894164999999873,47.59388000000007],[-58.937499999999943,47.589989000000003],[-59.076667999999984,47.571663000000001],[-59.102130999999929,47.564251000000127],[-59.11361699999992,47.558327000000077],[-59.118889000000024,47.554710000000114],[-59.135559000000001,47.556380999999988],[-59.161941999999954,47.561661000000072],[-59.297782999999868,47.606658999999979],[-59.304442999999992,47.609993000000145],[-59.305831999999953,47.614998000000014],[-59.309440999999993,47.661102000000085],[-59.309440999999993,47.671379000000059],[-59.30499999999995,47.724991000000045],[-59.3024979999999,47.736107000000004],[-59.325561999999991,47.807213000000047],[-59.329726999999991,47.816383000000087],[-59.369164000000012,47.852775999999949],[-59.40193899999997,47.880271999999991],[-59.40694400000001,47.889717000000076],[-59.404715999999951,47.900269000000094],[-59.400832999999921,47.90665400000006],[-59.39166999999992,47.916664000000026],[-59.378051999999911,47.922493000000031],[-59.365554999999915,47.924995000000081],[-59.328612999999905,47.928879000000109],[-59.321945000000028,47.930549999999982],[-59.31639100000001,47.934158000000082],[-59.31138599999997,47.938881000000094],[-59.267775999999969,47.982208000000071],[-59.265006999999912,47.988045000000056],[-59.262778999999966,47.999435000000119],[-59.246947999999975,48.011940000000038],[-59.230277999999942,48.02276599999999],[-59.218605000000025,48.029160000000047],[-59.091384999999946,48.090271000000143],[-59.053885999999864,48.105552999999986],[-59.041114999999934,48.110275000000058],[-59.020554000000004,48.116385999999977],[-58.958054000000004,48.149993999999992],[-58.75,48.287498000000085],[-58.701392999999996,48.319716999999969],[-58.691108999999983,48.32888000000014],[-58.686385999999914,48.334160000000054],[-58.682502999999997,48.340546000000131],[-58.678336999999999,48.351936000000023],[-58.675835000000006,48.363051999999925],[-58.670279999999991,48.37499200000002],[-58.598884999999939,48.423325000000034],[-58.587775999999963,48.430550000000039],[-58.568892999999889,48.438599000000067],[-58.555831999999953,48.443047000000035],[-58.514724999999999,48.452773999999977],[-58.500556999999958,48.455551000000071],[-58.492774999999995,48.455551000000071],[-58.492774999999995,48.450272000000098],[-58.497779999999977,48.44582400000013],[-58.518889999999999,48.441375999999991],[-58.526108000000022,48.440544000000102],[-58.546394000000021,48.434990000000084],[-58.558891000000017,48.42971799999998],[-58.588889999999935,48.412765999999976],[-58.599998000000028,48.405822999999998],[-58.601112000000001,48.400826000000052],[-58.59194199999996,48.398879999999963],[-58.483611999999994,48.427773000000002],[-58.470832999999971,48.43221299999999],[-58.464721999999995,48.436377999999991],[-58.449439999999925,48.449158000000125],[-58.4183349999999,48.486655999999982],[-58.420279999999991,48.508049000000085],[-58.569449999999961,48.538605000000018],[-58.673614999999984,48.554710000000057],[-58.682502999999997,48.554993000000024],[-58.697219999999959,48.553046999999992],[-58.732215999999994,48.545830000000024],[-58.765556000000004,48.535828000000095],[-58.778052999999886,48.531937000000028],[-58.812499999999943,48.52388000000002],[-58.857506000000001,48.518599999999992],[-58.931389000000024,48.511939999999981],[-58.954720000000009,48.510825999999952],[-58.979163999999969,48.512497000000053],[-58.988335000000006,48.514442000000031],[-59.004722999999956,48.520271000000037],[-59.013335999999924,48.522217000000126],[-59.091667000000029,48.508331000000112],[-59.105559999999969,48.50471500000009],[-59.118889000000024,48.50110600000005],[-59.146392999999875,48.493049999999982],[-59.192771999999991,48.477767999999969],[-59.232497999999964,48.468597000000045],[-59.246947999999975,48.46665999999999],[-59.255279999999971,48.467490999999995],[-59.260558999999944,48.471931000000041],[-59.261115999999959,48.476653999999996],[-59.232773000000009,48.523048000000131],[-59.228881999999999,48.529160000000104],[-59.215003999999965,48.545547000000056],[-59.209998999999925,48.549995000000024],[-59.137504999999976,48.598876999999959],[-59.084166999999866,48.626380999999981],[-59.077782000000013,48.629158000000075],[-59.050277999999935,48.635551000000021],[-59.03055599999999,48.641937000000098],[-59.02416999999997,48.644714000000022],[-58.908889999999985,48.701934999999992],[-58.828888000000006,48.750832000000116],[-58.811667999999941,48.76166500000005],[-58.799727999999959,48.768050999999957],[-58.774719000000005,48.77887700000008],[-58.767775999999969,48.775551000000064],[-58.772498999999982,48.769989000000123],[-58.815001999999936,48.735825000000091],[-58.849723999999867,48.714996000000099],[-58.873885999999914,48.701659999999947],[-58.891113000000018,48.690826000000072],[-58.912773000000016,48.674713000000054],[-58.938605999999879,48.653603000000089],[-58.947776999999917,48.642769000000044],[-58.955832999999984,48.630272000000048],[-58.958610999999962,48.624161000000129],[-58.958610999999962,48.613883999999985],[-58.955832999999984,48.609436000000017],[-58.947494999999947,48.601105000000132],[-58.896950000000004,48.55193300000002],[-58.888335999999924,48.551101999999958],[-58.743057000000022,48.560822000000087],[-58.728332999999964,48.56249200000002],[-58.721381999999949,48.564438000000109],[-58.715003999999965,48.567215000000033],[-58.709442000000024,48.570831000000055],[-58.704445000000021,48.575271999999984],[-58.695549000000028,48.586937000000091],[-58.68332700000002,48.605827000000033],[-58.676666000000012,48.618050000000096],[-58.672501000000011,48.629433000000063],[-58.669998000000021,48.640831000000105],[-58.671386999999925,48.650825999999995],[-58.674171000000001,48.65526600000004],[-58.679442999999992,48.66944100000012],[-58.680832000000009,48.68471500000004],[-58.658051,48.743049999999982],[-58.618331999999896,48.779716000000064],[-58.543892000000028,48.860824999999977],[-58.535834999999963,48.878601000000117],[-58.506667999999934,48.949431999999945],[-58.506667999999934,48.98054499999995],[-58.503333999999995,48.997490000000084],[-58.500838999999928,49.003608999999926],[-58.400832999999864,49.127487000000087],[-58.396110999999962,49.131377999999984],[-58.351943999999889,49.15026899999998],[-58.348884999999996,49.145828000000108],[-58.342967999999985,49.100201000000027],[-58.365634999999997,49.079922000000067],[-58.368019000000004,49.061428000000035],[-58.353702999999939,49.056656000000032],[-58.31075299999992,49.068584000000044],[-58.292857999999967,49.072762000000068],[-58.240554999999972,49.070274000000097],[-58.17832199999998,49.063217000000066],[-58.143726000000015,49.041740000000118],[-58.09833500000002,48.99221799999998],[-58.084723999999937,48.985268000000133],[-58.077781999999956,48.981934000000138],[-58.060279999999921,48.976096999999982],[-58.050551999999982,48.973320000000115],[-57.99610899999999,48.96138000000002],[-57.961387999999999,48.956657000000007],[-57.938605999999993,48.958328000000051],[-57.90166499999998,48.96276899999998],[-57.888054000000011,48.966102999999976],[-57.881667999999991,48.96888000000007],[-57.892226999999934,48.981658999999922],[-57.900551000000007,48.9847180000001],[-57.929442999999992,48.978874000000076],[-57.958611000000019,48.976096999999982],[-57.974716000000001,48.976096999999982],[-58.009223999999961,48.98041500000005],[-58.02777900000001,48.985549999999989],[-58.035834999999963,48.988602000000128],[-58.050551999999982,48.99582700000002],[-58.09332999999998,49.025825999999995],[-58.103888999999924,49.033607000000075],[-58.108054999999922,49.037772999999959],[-58.135276999999974,49.082771000000037],[-58.144447000000014,49.12193300000007],[-58.122612000000004,49.124931000000004],[-58.119281999999998,49.127102000000036],[-58.115608000000009,49.129105000000038],[-58.111110999999994,49.129771999999946],[-58.094775999999968,49.124603000000036],[-58.078776999999945,49.121769000000029],[-58.049445999999932,49.120270000000005],[-57.925559999999962,49.123047000000042],[-57.918610000000001,49.124709999999993],[-57.913329999999974,49.129158000000132],[-57.882773999999927,49.157767999999976],[-57.878882999999973,49.170273000000122],[-57.89805599999994,49.158600000000092],[-57.912215999999944,49.152771000000087],[-57.925834999999893,49.148331000000042],[-57.939437999999996,49.144997000000046],[-57.947494999999947,49.144997000000046],[-58.057220000000029,49.144997000000046],[-58.075558000000001,49.153271000000075],[-58.081054999999992,49.154438000000141],[-58.086055999999928,49.156269000000123],[-58.092555999999945,49.160934000000111],[-58.09589399999993,49.166271000000108],[-58.064055999999994,49.183350000000132],[-58.063057000000015,49.185451999999941],[-58.065455999999983,49.190414000000033],[-58.060622999999964,49.188583000000051],[-58.05495499999995,49.187583999999958],[-58.034957999999904,49.185749000000044],[-58.025459000000012,49.185749000000044],[-58.011292000000026,49.186252999999965],[-58.002456999999993,49.188251000000093],[-57.995621000000028,49.192078000000038],[-57.988785000000007,49.197247000000118],[-57.932219999999973,49.234160999999972],[-57.928054999999972,49.240273000000116],[-57.93638599999997,49.239716000000044],[-57.995162999999991,49.236885000000086],[-58.003330000000005,49.234215000000006],[-58.011662000000001,49.23071299999998],[-58.031001999999944,49.224548000000027],[-58.03566399999994,49.223713000000032],[-58.049331999999936,49.222717000000046],[-58.058829999999944,49.223049000000003],[-58.191939999999931,49.236382000000049],[-58.200835999999867,49.239716000000044],[-58.211945000000014,49.24721500000004],[-58.233886999999982,49.27304799999996],[-58.236663999999905,49.27748900000006],[-58.240836999999942,49.286942000000067],[-58.241942999999992,49.291663999999969],[-58.241942999999992,49.302215999999987],[-58.223327999999924,49.390274000000034],[-58.216392999999982,49.402488999999946],[-58.192497000000003,49.429436000000067],[-58.157776000000013,49.464439000000027],[-58.152221999999995,49.468879999999956],[-58.043892000000028,49.541382000000056],[-58.032218999999941,49.548332000000073],[-58.019164999999873,49.553879000000052],[-57.998336999999992,49.559158000000025],[-57.971107000000018,49.554993000000024],[-57.915112000000022,49.532047000000034],[-57.910609999999963,49.530216000000053],[-57.903445999999974,49.525551000000064],[-57.861445999999944,49.505885999999975],[-57.746947999999918,49.453606000000093],[-57.715004000000022,49.454712000000086],[-57.707503999999915,49.455551000000071],[-57.701110999999969,49.458327999999995],[-57.696388000000013,49.463608000000022],[-57.698883000000023,49.468323000000055],[-57.705832999999984,49.47165700000005],[-57.788895000000025,49.500832000000116],[-57.864222999999981,49.534939000000065],[-57.869389000000012,49.535439000000054],[-57.872719000000018,49.537773000000072],[-57.942223000000013,49.60305000000011],[-57.944716999999969,49.607498000000078],[-57.951110999999912,49.652771000000143],[-57.951110999999912,49.65776800000009],[-57.948333999999932,49.674164000000076],[-57.935271999999998,49.708602999999925],[-57.926391999999964,49.726379000000065],[-57.899993999999992,49.762215000000083],[-57.82916999999992,49.845543000000077],[-57.671111999999937,50.084160000000054],[-57.631667999999934,50.144714000000079],[-57.543334999999956,50.29833200000013],[-57.524445000000014,50.334159999999997],[-57.521384999999952,50.345267999999976],[-57.521111000000019,50.35054800000006],[-57.515555999999947,50.373604000000057],[-57.507224999999949,50.390831000000105],[-57.498336999999992,50.408600000000035],[-57.490836999999999,50.420830000000137],[-57.448607999999979,50.486106999999947],[-57.377220000000023,50.584434999999928],[-57.37249799999995,50.590828000000101],[-57.361114999999927,50.598602000000085],[-57.341667000000029,50.607498000000021],[-57.310059000000024,50.608940000000132],[-57.300220000000024,50.609776000000068],[-57.295559000000026,50.60927200000009],[-57.291224999999997,50.607105000000047],[-57.276222000000018,50.601440000000082],[-57.245276999999987,50.596382000000062],[-57.228049999999939,50.594437000000084],[-57.204444999999964,50.596100000000035],[-57.173614999999927,50.60083000000003],[-57.166945999999996,50.603325000000098],[-57.161384999999996,50.606384000000048],[-57.150832999999921,50.616104000000121],[-57.148055999999997,50.621933000000126],[-57.154715999999951,50.625549000000035],[-57.171943999999996,50.624992000000134],[-57.276442999999915,50.640717000000052],[-57.378608999999926,50.687767000000065],[-57.334166999999923,50.711937000000091],[-57.325004999999919,50.711662000000047],[-57.236945999999989,50.727211000000011],[-57.162498000000028,50.751105999999993],[-57.14833799999991,50.756103999999993],[-57.089438999999913,50.780548000000124],[-57.072501999999986,50.793884000000048],[-56.983054999999979,50.868324000000086],[-56.927498000000014,50.915824999999984],[-56.898055999999997,51.019440000000088],[-56.899170000000026,51.024436999999978],[-56.903327999999988,51.028603000000089],[-56.909995999999978,51.03276800000009],[-56.927223000000026,51.038605000000018],[-56.964721999999995,51.04332700000009],[-56.921669000000009,51.051384000000098],[-56.892226999999991,51.060272000000055],[-56.879996999999946,51.065543999999989],[-56.784446999999943,51.137771999999984],[-56.781386999999995,51.143608000000029],[-56.78194400000001,51.149162000000047],[-56.785278000000005,51.153046000000074],[-56.793334999999956,51.16137700000013],[-56.80972300000002,51.183601000000067],[-56.793892000000028,51.239989999999921],[-56.744164000000012,51.293052999999929],[-56.738608999999997,51.298881999999935],[-56.733330000000024,51.302773000000002],[-56.68250299999994,51.339432000000102],[-56.623885999999914,51.366386000000034],[-56.616942999999935,51.368881000000044],[-56.512504999999976,51.402214000000072],[-56.476661999999919,51.411658999999986],[-56.461945000000014,51.414992999999981],[-56.45416999999992,51.415543000000014],[-56.271384999999952,51.471656999999993],[-56.110557999999855,51.523879999999963],[-56.011391000000003,51.56638300000003],[-55.998336999999992,51.572220000000016],[-55.960281000000009,51.593880000000013],[-55.943329000000006,51.606384000000048],[-55.918609999999944,51.62110100000001],[-55.90555599999999,51.626937999999996],[-55.898055999999997,51.628601000000117],[-55.890282000000013,51.629433000000006],[-55.837775999999963,51.621376000000055],[-55.846389999999928,51.60193600000008],[-55.857779999999991,51.593323000000112],[-55.885001999999929,51.562492000000134],[-55.886664999999937,51.556938000000002],[-55.886948000000018,51.551933000000133],[-55.887222000000008,51.500274999999988],[-55.886116000000015,51.495270000000119],[-55.87777699999998,51.492218000000037],[-55.694442999999978,51.481102000000078],[-55.639998999999989,51.481934000000024],[-55.648612999999955,51.485267999999962],[-55.68360899999999,51.5],[-55.729720999999984,51.543327000000033],[-55.737503000000004,51.552490000000034],[-55.739166000000012,51.556656000000089],[-55.73860899999994,51.567214999999976],[-55.735274999999945,51.573051000000021],[-55.724716000000001,51.583603000000039],[-55.718605000000025,51.587212000000022],[-55.653327999999988,51.590546000000018],[-55.631667999999991,51.569717000000026],[-55.625,51.565544000000102],[-55.598610000000008,51.561377999999991],[-55.589721999999995,51.560271999999941],[-55.581389999999942,51.560271999999941],[-55.574448000000018,51.562767000000008],[-55.547501000000011,51.584991000000116],[-55.515838999999971,51.602219000000048],[-55.458610999999962,51.592216000000008],[-55.411110000000008,51.580826000000116],[-55.40555599999999,51.576942000000088],[-55.404442000000017,51.571938000000102],[-55.405273000000022,51.561661000000129],[-55.40694400000001,51.556099000000017],[-55.454444999999964,51.455268999999987],[-55.492226000000016,51.377769000000058],[-55.508057000000008,51.363327000000083],[-55.597778000000005,51.303604000000064],[-55.612777999999935,51.301102000000128],[-55.62222300000002,51.30332199999998],[-55.702782000000013,51.328049000000078],[-55.820557000000008,51.350830000000087],[-56.030555999999876,51.378600999999946],[-56.078338999999971,51.36971299999999],[-56.085555999999997,51.368323999999973],[-56.096389999999985,51.318329000000006],[-56.025557999999876,51.238327000000027],[-56.012252999999987,51.212337000000048],[-55.992561000000023,51.176575000000128],[-55.959441999999967,51.197487000000081],[-55.851394999999968,51.226936000000023],[-55.837775999999963,51.230545000000063],[-55.769164999999987,51.216934000000094],[-55.760833999999988,51.213881999999955],[-55.726105000000018,51.190544000000045],[-55.712776000000019,51.178047000000049],[-55.709998999999982,51.173607000000061],[-55.719161999999983,51.123047000000042],[-55.732497999999964,51.079994000000113],[-55.735557999999912,51.074165000000107],[-55.751113999999973,51.058327000000077],[-55.756950000000018,51.053879000000109],[-55.796111999999994,51.03916200000009],[-55.805557000000022,51.009163000000058],[-55.859169000000009,50.942490000000021],[-55.999442999999872,50.788605000000075],[-56.068893000000003,50.724434000000088],[-56.092278000000022,50.725716000000091],[-56.097279000000015,50.725880000000018],[-56.101279999999917,50.728045999999949],[-56.125832000000003,50.754166000000055],[-56.130829000000006,50.763329000000056],[-56.133330999999998,50.773048000000017],[-56.128052000000025,50.846382000000062],[-56.12222300000002,50.863884000000098],[-56.119720000000029,50.869156000000032],[-56.116394000000014,50.874992000000077],[-56.107223999999974,50.887214999999969],[-56.103888999999981,50.893326000000002],[-56.103888999999981,50.898331000000042],[-56.107779999999934,50.902771000000087],[-56.12222300000002,50.899437000000091],[-56.143058999999937,50.892494000000113],[-56.155272999999966,50.885551000000135],[-56.172500999999897,50.85582700000009],[-56.157218999999941,50.690826000000072],[-56.141272999999956,50.671047000000101],[-56.135776999999962,50.669884000000138],[-56.163329999999917,50.617767000000072],[-56.258614000000023,50.502777000000094],[-56.323615999999959,50.446380999999974],[-56.423057999999912,50.352776000000006],[-56.421943999999939,50.347771000000137],[-56.422226000000023,50.342491000000052],[-56.423614999999984,50.336937000000091],[-56.426666000000012,50.331108000000086],[-56.462501999999915,50.272217000000126],[-56.501944999999921,50.214439000000084],[-56.511947999999961,50.203606000000093],[-56.555832000000009,50.167496000000028],[-56.635276999999974,50.106383999999991],[-56.743056999999965,50.022766000000104],[-56.767501999999922,49.962212000000079],[-56.778610000000015,49.933875999999998],[-56.78194400000001,49.917496000000028],[-56.775001999999972,49.919158999999979],[-56.726661999999976,49.916100000000029],[-56.759845999999982,49.837275999999974],[-56.82790399999999,49.785000000000082],[-56.866863000000023,49.777602999999999],[-56.90533099999999,49.747520000000122],[-56.820999000000029,49.74209600000006],[-56.784007999999972,49.731243000000006],[-56.782776000000013,49.690826000000072],[-56.815552000000025,49.594994000000042],[-56.818610999999976,49.588882000000012],[-56.848884999999939,49.544441000000006],[-56.843055999999933,49.548050000000046],[-56.826667999999984,49.562767000000008],[-56.782776000000013,49.609993000000088],[-56.763061999999991,49.631378000000041],[-56.749167999999884,49.64916199999999],[-56.735557999999969,49.666939000000013],[-56.712501999999972,49.696380999999974],[-56.677779999999927,49.733604000000128],[-56.598609999999894,49.811935000000062],[-56.56138599999997,49.842215999999951],[-56.477776000000006,49.892220000000009],[-56.464164999999923,49.896385000000009],[-56.431945999999982,49.890549000000135],[-56.412216000000001,49.909714000000122],[-56.388054000000011,49.943047000000092],[-56.385001999999929,49.949158000000011],[-56.330284000000006,50.024994000000106],[-56.324172999999973,50.029990999999995],[-56.237777999999992,50.100273000000072],[-56.220832999999971,50.112495000000024],[-56.208892999999989,50.120270000000119],[-56.160278000000005,50.148048000000074],[-56.153884999999946,50.150543000000084],[-56.132499999999993,50.155548000000124],[-56.12471800000003,50.15638000000007],[-56.116660999999965,50.153046000000074],[-56.067222999999956,50.096382000000006],[-56.065001999999936,50.091377000000136],[-56.005004999999983,50.031380000000013],[-55.938605999999936,50.036385000000053],[-55.905273000000022,50.033882000000062],[-55.896111000000019,50.031937000000084],[-55.881110999999976,50.024994000000106],[-55.853888999999924,50.005554000000075],[-55.846106999999961,49.996940999999936],[-55.845275999999956,49.99221799999998],[-55.845551,49.986938000000066],[-55.844161999999983,49.981934000000138],[-55.840836000000024,49.977211000000125],[-55.830001999999979,49.969154000000003],[-55.755004999999869,49.924164000000019],[-55.746108999999933,49.923050000000046],[-55.587218999999948,49.964157000000057],[-55.55610699999994,49.980270000000132],[-55.543892000000028,49.987213000000111],[-55.527221999999995,50.000275000000101],[-55.491698999999983,50.007309000000021],[-55.463332999999977,49.966933999999981],[-55.460830999999985,49.962212000000079],[-55.459723999999937,49.957497000000046],[-55.460281000000009,49.952216999999962],[-55.465004000000022,49.940826000000015],[-55.475272999999959,49.930275000000108],[-55.492226000000016,49.917213000000061],[-55.511391000000003,49.908882000000006],[-55.659163999999976,49.84777100000008],[-55.843055999999933,49.788330000000087],[-55.98611499999987,49.746940999999993],[-56.115279999999927,49.63999200000012],[-56.124167999999997,49.613327000000083],[-56.050551999999925,49.666382000000112],[-56.044448999999986,49.669990999999925],[-55.963889999999935,49.698600999999996],[-55.957779000000016,49.700272000000041],[-55.893889999999999,49.714157000000114],[-55.833327999999995,49.686652999999922],[-55.880279999999971,49.584990999999945],[-55.935443999999961,49.543991000000119],[-55.945441999999957,49.536159999999995],[-55.953444999999988,49.533660999999995],[-55.971607000000006,49.531826000000024],[-55.980277999999998,49.53049500000003],[-56.035277999999948,49.506660000000068],[-56.080001999999922,49.486938000000009],[-56.12749500000001,49.431107000000111],[-56.129165999999998,49.425552000000039],[-56.122771999999941,49.421379000000115],[-56.073891000000003,49.434432999999956],[-56.06221800000003,49.440544000000045],[-56.025275999999963,49.461105000000089],[-56.02027899999996,49.464995999999928],[-56.005279999999914,49.480820000000051],[-55.999725000000012,49.485268000000019],[-55.96305499999994,49.496155000000044],[-55.91705300000001,49.507496000000117],[-55.874717999999973,49.517212000000029],[-55.827781999999956,49.524162000000103],[-55.783332999999914,49.511940000000095],[-55.775001999999915,49.508605999999929],[-55.724997999999971,49.479431000000091],[-55.720832999999971,49.475822000000051],[-55.725554999999986,49.470543000000077],[-55.722771000000023,49.453880000000026],[-55.678336999999942,49.386940000000038],[-55.673057999999969,49.383049000000142],[-55.664444000000003,49.381934999999999],[-55.656386999999938,49.382210000000043],[-55.650275999999963,49.384162999999944],[-55.639167999999984,49.392769000000044],[-55.636115999999959,49.398604999999918],[-55.637778999999966,49.409157000000107],[-55.637778999999966,49.413605000000075],[-55.636115999999959,49.419159000000093],[-55.589164999999923,49.462494000000049],[-55.560279999999977,49.482490999999925],[-55.55388599999992,49.484993000000031],[-55.546950999999979,49.486381999999992],[-55.53167000000002,49.487770000000125],[-55.523055999999997,49.486655999999925],[-55.522223999999994,49.481934000000024],[-55.566390999999953,49.409157000000107],[-55.572776999999974,49.376656000000025],[-55.573058999999944,49.371658000000025],[-55.570556999999951,49.366936000000123],[-55.566665999999998,49.362770000000012],[-55.559998000000007,49.365273000000002],[-55.554717999999923,49.369713000000047],[-55.539443999999946,49.385551000000078],[-55.529723999999987,49.396942000000024],[-55.528053,49.402488999999946],[-55.528885000000002,49.408043000000134],[-55.529166999999973,49.423324999999977],[-55.526389999999992,49.42860399999995],[-55.49610899999999,49.453880000000026],[-55.441665999999998,49.491104000000064],[-55.430282999999974,49.498878000000104],[-55.37749500000001,49.50360900000004],[-55.369445999999982,49.503326000000072],[-55.349276999999972,49.468159000000014],[-55.332946999999933,49.416489000000126],[-55.33577699999995,49.388161000000025],[-55.333610999999905,49.359161000000029],[-55.338608000000022,49.355270000000132],[-55.336112999999955,49.350829999999974],[-55.315276999999924,49.314437999999939],[-55.310996999999929,49.355937999999981],[-55.306830999999931,49.356772999999976],[-55.274833999999998,49.385605000000055],[-55.267501999999979,49.396603000000027],[-55.264499999999998,49.403435000000059],[-55.264336000000014,49.406441000000086],[-55.266669999999863,49.409103000000073],[-55.269833000000006,49.411438000000032],[-55.280838000000017,49.41443600000008],[-55.28317299999992,49.41693500000008],[-55.310000999999943,49.484772000000021],[-55.310832999999946,49.487770000000125],[-55.305557000000022,49.534439000000077],[-55.261390999999946,49.541107000000068],[-55.149726999999928,49.546387000000095],[-55.141112999999962,49.545273000000122],[-55.137222000000008,49.540833000000134],[-55.123328999999956,49.496941000000049],[-55.124717999999973,49.465271000000143],[-55.221107000000018,49.261939999999981],[-55.231109999999944,49.251389000000074],[-55.237220999999977,49.248046999999929],[-55.296394000000021,49.226379000000009],[-55.315001999999936,49.216933999999924],[-55.365836999999999,49.165268000000083],[-55.369164000000012,49.159431000000097],[-55.369445999999982,49.154160000000047],[-55.360001000000011,49.151382000000069],[-55.347495999999978,49.157211000000075],[-55.339721999999995,49.158600000000092],[-55.331673000000023,49.156654000000003],[-55.323615999999959,49.153602999999976],[-55.319449999999904,49.149162000000047],[-55.307219999999973,49.104996000000085],[-55.307776999999987,49.0991590000001],[-55.317504999999983,49.087769000000037],[-55.323059000000001,49.083327999999938],[-55.383330999999998,49.040833000000021],[-55.345551,49.057770000000062],[-55.272223999999937,49.099998000000085],[-55.277495999999985,49.103882000000112],[-55.282501000000025,49.113051999999982],[-55.283332999999914,49.118049999999982],[-55.288054999999986,49.182495000000074],[-55.288054999999986,49.187210000000107],[-55.285004000000015,49.193047000000092],[-55.280555999999933,49.199157999999954],[-55.275275999999963,49.204436999999984],[-55.148055999999997,49.259995000000004],[-55.081116000000009,49.283882000000062],[-55.081673000000023,49.345825000000104],[-55.081389999999942,49.351105000000132],[-55.078055999999947,49.356941000000006],[-55.069450000000018,49.3555530000001],[-55.010284000000013,49.323883000000023],[-54.989998000000014,49.286942000000067],[-54.990554999999972,49.28166200000004],[-54.824448000000018,49.269157000000064],[-54.817779999999914,49.271660000000054],[-54.787506000000008,49.288605000000018],[-54.78194400000001,49.292770000000019],[-54.67972599999996,49.379990000000021],[-54.658332999999971,49.399162000000047],[-54.648055999999997,49.409431000000041],[-54.641388000000006,49.421104000000071],[-54.643889999999999,49.425827000000083],[-54.579726999999934,49.494713000000104],[-54.541114999999934,49.526657000000114],[-54.528885000000002,49.533333000000027],[-54.521111000000019,49.533882000000006],[-54.474716000000001,49.534995999999978],[-54.431945999999925,49.470824999999991],[-54.430831999999953,49.465828000000045],[-54.450554000000011,49.427773000000116],[-54.483330000000024,49.361938000000123],[-54.49361399999998,49.268051000000071],[-54.492500000000007,49.263611000000026],[-54.486945999999989,49.259719999999959],[-54.480552999999929,49.262215000000026],[-54.474716000000001,49.266662999999994],[-54.406386999999938,49.320831000000112],[-54.400832999999921,49.325272000000041],[-54.399170000000026,49.330551000000014],[-54.410278000000005,49.343605000000082],[-54.412773000000016,49.34804500000007],[-54.413612000000001,49.353049999999939],[-54.407501000000025,49.374710000000107],[-54.404167000000029,49.380547000000092],[-54.395003999999915,49.392769000000044],[-54.380279999999971,49.408882000000119],[-54.36999499999996,49.419159000000093],[-54.364166000000012,49.423607000000061],[-54.358054999999979,49.426941000000056],[-54.325279000000023,49.423882000000049],[-54.24888599999997,49.397490999999945],[-54.186661000000015,49.371101000000124],[-54.17888599999992,49.37082700000002],[-54.166106999999897,49.378044000000102],[-54.161941999999897,49.383606000000043],[-54.15582999999998,49.40526600000004],[-54.153327999999931,49.416100000000085],[-54.151938999999913,49.427216000000044],[-54.148337999999967,49.437492000000134],[-54.145279000000016,49.443320999999969],[-54.139998999999932,49.448601000000053],[-54.133888000000013,49.451934999999992],[-54.048889000000031,49.479431000000091],[-54.041671999999949,49.480820000000051],[-53.919998000000021,49.447769000000108],[-53.775001999999972,49.396103000000039],[-53.673331999999959,49.34304800000001],[-53.511116000000015,49.277214000000072],[-53.48860899999994,49.220543000000134],[-53.588332999999977,49.040833000000021],[-53.593886999999995,49.035552999999993],[-53.66194200000001,49.032211000000018],[-53.714721999999938,49.02915999999999],[-53.804442999999992,49.022217000000012],[-53.785277999999948,49.011107999999922],[-53.731667000000016,49.013329000000056],[-53.725273000000016,49.009720000000016],[-53.736664000000019,49.001105999999993],[-53.742774999999995,48.997771999999998],[-53.749167999999941,48.995270000000119],[-53.77027899999996,48.989433000000133],[-53.803611999999987,48.978043000000071],[-53.813056999999958,48.938881000000038],[-53.974441999999954,48.84777100000008],[-54.021384999999952,48.833327999999995],[-54.096106999999961,48.812210000000107],[-53.920279999999991,48.834991000000116],[-53.899170000000026,48.838043000000027],[-53.875557000000015,48.836937000000034],[-53.829445000000021,48.831383000000017],[-53.820556999999951,48.829436999999928],[-53.800835000000006,48.812767000000008],[-53.802223000000026,48.807770000000062],[-53.845276000000013,48.766936999999984],[-53.867774999999938,48.75],[-53.89055599999989,48.733604000000014],[-53.897223999999937,48.731377000000123],[-53.932219999999973,48.71393599999999],[-53.950554000000011,48.670830000000137],[-53.93250299999994,48.624710000000107],[-53.924445999999989,48.624435000000062],[-53.917220999999927,48.624991999999963],[-53.888610999999969,48.631660000000124],[-53.882773999999927,48.633606000000043],[-53.869163999999955,48.638885000000016],[-53.857223999999974,48.644157000000121],[-53.795554999999922,48.675827000000027],[-53.790001000000018,48.679993000000138],[-53.798889000000031,48.682213000000104],[-53.817779999999971,48.673882000000049],[-53.831389999999999,48.669990999999982],[-53.852782999999931,48.666381999999942],[-53.896950000000004,48.662209000000018],[-53.913054999999929,48.663605000000075],[-53.920836999999949,48.667213000000004],[-53.924445999999989,48.671379000000059],[-53.892058999999904,48.682938000000092],[-53.887225999999941,48.690102000000024],[-53.884051999999997,48.693100000000129],[-53.880554000000018,48.695099000000141],[-53.857558999999981,48.704937000000029],[-53.759170999999981,48.714156999999943],[-53.618056999999965,48.694435000000112],[-53.610001000000011,48.693046999999979],[-53.601943999999946,48.68971300000004],[-53.599723999999924,48.684990000000028],[-53.603888999999924,48.674164000000076],[-53.610001000000011,48.668602000000135],[-53.645835999999974,48.648330999999985],[-53.658607000000018,48.641937000000098],[-53.671943999999939,48.638602999999932],[-53.728881999999942,48.629433000000063],[-53.779998999999975,48.623604000000057],[-53.787780999999995,48.622490000000084],[-53.928336999999942,48.575829000000056],[-53.93332700000002,48.572220000000073],[-53.951392999999996,48.549995000000024],[-53.956107999999915,48.543883999999991],[-53.952498999999932,48.539436000000023],[-53.944159999999897,48.539718999999991],[-53.932219999999973,48.544998000000135],[-53.919998000000021,48.551659000000086],[-53.914444000000003,48.555824000000086],[-53.908332999999914,48.559158000000025],[-53.901389999999935,48.562209999999993],[-53.895003999999858,48.563048999999921],[-53.804169000000002,48.568053999999961],[-53.788054999999929,48.566383000000087],[-53.746391000000017,48.558600999999953],[-53.746947999999918,48.523322999999948],[-53.74888599999997,48.513329000000113],[-53.750838999999985,48.50777400000004],[-53.756366999999955,48.50326200000012]],[[-127.91443599999991,51.410820000000001],[-127.92443799999995,51.41027100000008],[-128.06527700000004,51.464157000000114],[-128.07583599999998,51.470543000000021],[-128.08111599999995,51.474709000000132],[-128.15307599999988,51.601661999999976],[-128.15417499999995,51.605826999999977],[-128.15280199999995,51.638046000000145],[-128.15249600000004,51.641937000000041],[-128.15029899999996,51.647491000000059],[-128.14556900000002,51.653603000000032],[-128.136414,51.6616590000001],[-128.01306199999993,51.72137500000008],[-128.00527999999997,51.723320000000058],[-128,51.720542999999964],[-127.99694799999997,51.714157000000057],[-127.99804699999999,51.711662000000047],[-127.995003,51.705269000000101],[-127.98388699999998,51.682495000000131],[-127.96749899999992,51.651931999999988],[-127.951683,51.633880999999974],[-127.93776699999995,51.621933000000126],[-127.92639199999996,51.608886999999982],[-127.91999800000002,51.600547999999947],[-127.90556300000003,51.55971500000004],[-127.87361099999993,51.464439000000027],[-127.87193300000001,51.451934999999992],[-127.87332200000003,51.447769000000051],[-127.87666299999995,51.443046999999979],[-127.90444899999994,51.414711000000068],[-127.91443599999991,51.410820000000001]],[[-55.367500000000007,51.874161000000015],[-55.37471800000003,51.873878000000047],[-55.382216999999912,51.875267000000065],[-55.428885999999977,51.884163000000001],[-55.430000000000007,51.885826000000122],[-55.431113999999923,51.887771999999984],[-55.430557000000022,51.896659999999997],[-55.42610899999994,51.905822999999998],[-55.423331999999959,51.909431000000097],[-55.387779000000023,51.942764000000125],[-55.353614999999991,51.963608000000079],[-55.301392000000021,51.993050000000039],[-55.283889999999985,52.001389000000074],[-55.277221999999938,52.002495000000067],[-55.269996999999989,52.000549000000035],[-55.268889999999942,51.998604],[-55.267501999999979,51.993881000000044],[-55.274170000000026,51.97693600000008],[-55.274170000000026,51.975548000000003],[-55.28194400000001,51.961937000000034],[-55.295005999999944,51.943321000000026],[-55.302222999999969,51.933326999999963],[-55.332503999999972,51.896384999999952],[-55.342223999999874,51.886383000000023],[-55.354720999999927,51.878043999999989],[-55.360001000000011,51.875824000000136],[-55.367500000000007,51.874161000000015]],[[-128.05389400000001,51.753609000000097],[-128.11972000000003,51.741661000000079],[-128.13192699999996,51.743881000000101],[-128.13613899999996,51.746657999999968],[-128.25445599999995,51.865829000000019],[-128.25308199999995,51.872214999999983],[-128.22222899999997,51.953323000000125],[-128.21749899999998,51.962769000000094],[-128.177795,52.008330999999941],[-128.150848,52.035271000000023],[-128.14529400000004,52.038605000000018],[-128.10775799999999,52.051659000000086],[-128.06082200000003,52.056380999999988],[-127.99582699999996,52.062767000000065],[-127.98332199999993,52.061934999999949],[-127.96028100000001,52.055549999999982],[-127.95472699999999,52.05332199999998],[-127.95121799999998,52.046913000000131],[-127.95140100000003,52.03054800000001],[-127.95472699999999,51.981101999999964],[-128.00723299999993,51.782493999999986],[-128.00945999999999,51.778328000000101],[-128.01306199999993,51.773605000000089],[-128.01861600000001,51.770271000000093],[-128.03582800000004,51.760826000000066],[-128.05389400000001,51.753609000000097]],[[-79.252791999999999,52.071380999999917],[-79.319732999999985,51.969986000000063],[-79.364440999999943,51.942214999999976],[-79.370543999999995,51.938599000000124],[-79.376663000000008,51.936104000000057],[-79.385833999999988,51.935546999999985],[-79.42361499999987,51.936935000000062],[-79.433318999999869,51.93832400000008],[-79.450561999999877,51.942214999999976],[-79.50111400000003,51.942489999999964],[-79.568344000000025,51.935546999999985],[-79.576675000000023,51.934158000000025],[-79.591949,51.922768000000133],[-79.604445999999996,51.916664000000083],[-79.611664000000019,51.914436000000137],[-79.617767000000015,51.917770000000132],[-79.621383999999978,51.9222180000001],[-79.652785999999992,51.981101999999964],[-79.654175000000009,51.986655999999982],[-79.650832999999977,51.991936000000067],[-79.633895999999993,52.017493999999942],[-79.629439999999988,52.022217000000126],[-79.62332200000003,52.025269000000037],[-79.61471599999993,52.023048000000131],[-79.608611999999994,52.01998900000001],[-79.603881999999942,52.016106000000036],[-79.596114999999998,52.013611000000026],[-79.585281000000009,52.012772000000041],[-79.567779999999971,52.014999000000103],[-79.538329999999974,52.023323000000005],[-79.408889999999985,52.071938000000046],[-79.396666999999866,52.077217000000019],[-79.383895999999936,52.090827999999988],[-79.345551,52.108604000000128],[-79.338332999999977,52.110275000000001],[-79.297225999999966,52.091933999999981],[-79.277221999999881,52.090546000000074],[-79.269729999999925,52.08776899999998],[-79.263625999999988,52.083878000000084],[-79.252791999999999,52.071380999999917]],[[-131.01889,51.946098000000063],[-131.02166699999998,51.940825999999959],[-131.02917500000001,51.941375999999991],[-131.03695700000003,51.944434999999999],[-131.04861499999998,51.951385000000016],[-131.07415800000001,51.970543000000134],[-131.09500099999997,51.989989999999977],[-131.10165399999994,52.00277699999998],[-131.120544,52.055549999999982],[-131.12719699999997,52.095543000000021],[-131.126373,52.106941000000006],[-131.12249800000001,52.124710000000107],[-131.11639400000001,52.148048000000017],[-131.11026000000004,52.151099999999929],[-131.10192899999998,52.151932000000045],[-131.08361799999989,52.151382000000012],[-131.07720900000004,52.150268999999923],[-131.00945999999999,52.102776000000006],[-130.99249299999991,52.060822000000087],[-131.00473,52.005829000000062],[-131.01889,51.946098000000063]],[[-127.96278399999989,52.074714999999912],[-128.05111699999992,52.07416500000005],[-128.06222500000001,52.074996999999996],[-128.07638499999996,52.079994000000113],[-128.09387199999998,52.090546000000074],[-128.10583500000001,52.100273000000016],[-128.10888699999992,52.105270000000132],[-128.12081899999998,52.141936999999928],[-128.11471599999987,52.14916199999999],[-128.10693400000002,52.152489000000116],[-128.03167699999995,52.163292000000126],[-128.01583900000003,52.164711000000125],[-127.89111299999996,52.171660999999972],[-127.88110399999999,52.172218000000044],[-127.87917299999998,52.166664000000026],[-127.88971700000002,52.131103999999993],[-127.89334100000002,52.126938000000052],[-127.94360399999999,52.079163000000051],[-127.94721999999996,52.075829000000113],[-127.96278399999989,52.074714999999912]],[[-128.21194499999996,52.015549000000135],[-128.22082499999999,52.014442000000031],[-128.23858599999994,52.014717000000076],[-128.2463679999999,52.016662999999937],[-128.25308199999995,52.019714000000135],[-128.29110699999995,52.101936000000137],[-128.29415899999998,52.113608999999997],[-128.29168700000002,52.118881000000101],[-128.25280799999996,52.171379000000059],[-128.24444600000004,52.179993000000138],[-128.23971599999993,52.184158000000139],[-128.23193399999997,52.187492000000134],[-128.18804899999998,52.193604000000107],[-128.16223100000002,52.196655000000135],[-128.15307599999988,52.195267000000001],[-128.14779699999997,52.191658000000018],[-128.14584399999995,52.186104],[-128.1480709999999,52.183327000000133],[-128.15472399999999,52.159431000000041],[-128.15612799999997,52.153320000000122],[-128.15862999999996,52.11971299999999],[-128.154449,52.108604000000128],[-128.15139799999997,52.103882000000056],[-128.14752199999998,52.092766000000097],[-128.15112299999993,52.081108000000086],[-128.20611600000001,52.01888300000013],[-128.21194499999996,52.015549000000135]],[[-128.42834499999992,52.13749700000011],[-128.44415300000003,52.134163000000115],[-128.44638099999997,52.13499500000006],[-128.50472999999994,52.16027100000008],[-128.50918599999994,52.16443600000008],[-128.51113899999996,52.169990999999982],[-128.50863600000002,52.175552000000039],[-128.50527999999997,52.180274999999995],[-128.50058000000001,52.184158000000139],[-128.45138499999996,52.217209000000082],[-128.448059,52.21915400000006],[-128.43331899999998,52.223320000000001],[-128.41641200000004,52.226379000000122],[-128.40972899999997,52.224991000000045],[-128.40640299999995,52.2227630000001],[-128.40527299999997,52.218596999999988],[-128.4100039999999,52.214714000000072],[-128.40777599999996,52.15277100000003],[-128.408905,52.149437000000034],[-128.41363499999994,52.145270999999923],[-128.42834499999992,52.13749700000011]],[[-128.29998799999998,52.133606000000043],[-128.308044,52.128875999999991],[-128.31362899999999,52.129714999999976],[-128.36499000000003,52.162491000000102],[-128.37304699999999,52.185265000000072],[-128.378601,52.213608000000022],[-128.37832599999996,52.220268000000033],[-128.37719699999991,52.223877000000073],[-128.37027,52.228600000000029],[-128.35665900000004,52.235825000000091],[-128.34527600000001,52.238602000000014],[-128.29724099999999,52.237212999999997],[-128.23721299999994,52.222488000000055],[-128.22943099999998,52.220268000000033],[-128.22720300000003,52.218880000000127],[-128.22610499999996,52.216934000000037],[-128.22747799999996,52.212769000000037],[-128.22997999999995,52.209435000000099],[-128.29998799999998,52.133606000000043]],[[-81.476944000000003,52.249161000000072],[-81.48582499999992,52.248329000000126],[-81.646118000000001,52.251389000000017],[-81.687499999999943,52.254997000000117],[-81.706115999999952,52.258049000000028],[-81.710007000000019,52.262496999999996],[-81.695830999999941,52.267212000000029],[-81.578063999999983,52.294716000000051],[-81.551666000000012,52.298050000000046],[-81.541672000000005,52.296661000000029],[-81.493057000000022,52.283881999999949],[-81.480559999999969,52.277489000000003],[-81.475280999999995,52.27388000000002],[-81.471664000000033,52.268051000000014],[-81.468063000000029,52.263054000000068],[-81.467772999999966,52.256942999999978],[-81.470839999999953,52.252220000000023],[-81.476944000000003,52.249161000000072]],[[-127.924713,52.174164000000133],[-127.93360899999999,52.173049999999932],[-128.036407,52.177489999999977],[-128.05416899999994,52.180550000000039],[-128.07971199999997,52.186377999999934],[-128.08639500000004,52.188599000000067],[-128.09277299999991,52.19221500000009],[-128.16696199999996,52.244713000000104],[-128.17001299999998,52.249718000000144],[-128.15862999999996,52.256386000000077],[-128.06945799999994,52.294716000000051],[-128.0477909999999,52.300545000000056],[-128.04000899999994,52.301659000000029],[-127.97944599999994,52.296661000000029],[-127.97277800000001,52.295273000000122],[-127.96193700000003,52.289436000000137],[-127.95861799999989,52.287498000000028],[-127.95111099999997,52.279716000000064],[-127.90943899999996,52.210274000000027],[-127.90750100000002,52.204712000000086],[-127.90666199999998,52.198600999999996],[-127.91055299999988,52.186377999999934],[-127.91776999999996,52.176940999999999],[-127.924713,52.174164000000133]],[[-128.18444799999992,52.278602999999976],[-128.20361299999996,52.277489000000003],[-128.21026599999993,52.278327999999988],[-128.21362299999998,52.279716000000064],[-128.18917799999986,52.330826000000116],[-128.18307499999997,52.339714000000129],[-128.11471599999987,52.41832700000009],[-128.11111499999998,52.421661000000086],[-128.10443099999992,52.421379000000002],[-128.09997599999991,52.418602000000135],[-128.09359699999999,52.411658999999929],[-128.09249899999998,52.408324999999934],[-128.08526599999999,52.396385000000066],[-128.05917399999998,52.352219000000048],[-128.05694600000004,52.346100000000035],[-128.05526699999996,52.334991000000116],[-128.05667099999994,52.328880000000083],[-128.06140099999999,52.324715000000083],[-128.15194700000001,52.282211000000075],[-128.18444799999992,52.278602999999976]],[[-127.72444199999995,51.97693600000008],[-127.87082699999991,51.944709999999986],[-127.87970699999994,51.94499200000007],[-127.886124,51.947768999999994],[-127.89167800000001,51.951385000000016],[-127.89472999999992,51.956100000000049],[-127.89943700000003,51.973320000000001],[-127.90110799999991,51.985824999999977],[-127.90055799999988,51.999435000000005],[-127.88110399999999,52.078880000000083],[-127.87361099999993,52.094994000000042],[-127.85138699999999,52.141380000000026],[-127.82833900000003,52.175827000000027],[-127.817497,52.191375999999934],[-127.79750100000001,52.213882000000126],[-127.78916899999996,52.221930999999984],[-127.75334199999998,52.245827000000077],[-127.74527,52.247772000000055],[-127.699997,52.257216999999912],[-127.68083199999995,52.258888000000013],[-127.65943900000002,52.259163000000001],[-127.65055799999999,52.260276999999974],[-127.58640300000002,52.281105000000082],[-127.51666299999999,52.304436000000123],[-127.51000999999985,52.306938000000002],[-127.46056399999998,52.345824999999991],[-127.45694700000001,52.350548000000003],[-127.45612299999988,52.362213000000054],[-127.45694700000001,52.368324000000143],[-127.45333900000003,52.373046999999929],[-127.4177699999999,52.385269000000108],[-127.36277799999999,52.403876999999966],[-127.26390100000003,52.436653000000092],[-127.25945300000001,52.435265000000015],[-127.23473399999995,52.416939000000013],[-127.20777899999996,52.344711000000018],[-127.21056399999992,52.33526599999999],[-127.218887,52.325829000000056],[-127.23222399999992,52.313049000000092],[-127.24749800000001,52.301933000000133],[-127.27084399999995,52.288605000000132],[-127.28916899999996,52.279433999999981],[-127.30304699999999,52.274162000000047],[-127.30999800000001,52.271659999999997],[-127.32584400000002,52.268051000000014],[-127.36193800000001,52.264717000000019],[-127.42582699999997,52.24610100000001],[-127.43971299999993,52.240829000000076],[-127.44526699999994,52.23832699999997],[-127.57972699999999,52.177216000000044],[-127.58444199999991,52.173324999999977],[-127.58805799999999,52.167770000000075],[-127.59631300000001,52.151793999999995],[-127.65416700000003,52.123877999999991],[-127.68694299999993,52.074440000000095],[-127.69193999999993,52.06360600000005],[-127.70111099999991,52.041107000000068],[-127.70388800000001,52.028877000000136],[-127.699997,52.017768999999987],[-127.69915799999995,52.01138300000008],[-127.699432,52.00471500000009],[-127.70194999999995,51.998604],[-127.708054,51.988327000000027],[-127.71749899999998,51.980270000000075],[-127.72444199999995,51.97693600000008]],[[-128.66860999999994,52.266388000000063],[-128.67556799999994,52.266388000000063],[-128.72055099999994,52.306938000000002],[-128.724152,52.311378000000047],[-128.72637899999995,52.316101000000003],[-128.74832200000003,52.369156000000089],[-128.76196299999998,52.41832700000009],[-128.76251200000002,52.423325000000091],[-128.76196299999998,52.429160999999965],[-128.759186,52.449432000000002],[-128.75280799999996,52.467766000000097],[-128.74722299999996,52.471656999999993],[-128.68139599999989,52.482208000000071],[-128.67443800000001,52.482208000000071],[-128.65029899999996,52.474434000000088],[-128.63696299999992,52.468597000000102],[-128.624146,52.461662000000103],[-128.61914099999996,52.457771000000037],[-128.615814,52.453606000000036],[-128.61608899999993,52.44860099999994],[-128.61331199999995,52.364441000000056],[-128.61471599999993,52.353325000000098],[-128.61776699999996,52.329994000000056],[-128.61999500000002,52.323883000000137],[-128.62554899999992,52.311378000000047],[-128.62997399999995,52.305550000000096],[-128.66860999999994,52.266388000000063]],[[-128.471924,52.492767000000129],[-128.46777299999991,52.483047000000056],[-128.46499599999993,52.47304500000007],[-128.46417199999996,52.46804800000001],[-128.46499599999993,52.462212000000136],[-128.46722399999999,52.456099999999935],[-128.47082499999993,52.449714999999969],[-128.48055999999991,52.440269000000001],[-128.4869379999999,52.437209999999993],[-128.49414100000001,52.434989999999971],[-128.50945999999999,52.432213000000104],[-128.51806599999998,52.431938000000059],[-128.59553499999998,52.460140000000081],[-128.66314699999987,52.491927999999973],[-128.75500499999998,52.487770000000012],[-128.77557399999995,52.49332400000003],[-128.78472899999991,52.496101000000124],[-128.80944799999997,52.515549000000078],[-128.81304899999992,52.519989000000066],[-128.81390399999998,52.524994000000106],[-128.811127,52.536941999999954],[-128.808899,52.543053000000043],[-128.73889199999996,52.587494000000049],[-128.732483,52.590545999999961],[-128.72470099999998,52.59165999999999],[-128.5781859999999,52.5936430000001],[-128.56750499999998,52.622490000000028],[-128.53527800000001,52.647217000000069],[-128.53167699999995,52.62110100000001],[-128.52890000000002,52.611107000000004],[-128.52194199999997,52.591377000000023],[-128.50085399999995,52.543610000000115],[-128.48889199999991,52.52027099999998],[-128.48526000000004,52.515831000000105],[-128.47970599999996,52.506660000000011],[-128.471924,52.492767000000129]],[[-131.46444700000001,52.627487000000087],[-131.58554099999998,52.585266000000104],[-131.59359699999999,52.585823000000005],[-131.60137900000001,52.588600000000099],[-131.6119379999999,52.596099999999979],[-131.62359600000002,52.608886999999982],[-131.70971700000001,52.705269000000044],[-131.691101,52.724991000000102],[-131.68499799999995,52.728043000000014],[-131.65945399999993,52.730270000000075],[-131.48471099999995,52.736938000000066],[-131.475281,52.736655999999982],[-131.46859699999999,52.733330000000137],[-131.46887200000003,52.73054500000012],[-131.44943199999994,52.714996000000042],[-131.44027699999998,52.706940000000145],[-131.43917799999991,52.701660000000061],[-131.44137599999999,52.684158000000025],[-131.45443699999998,52.636383000000023],[-131.45834399999995,52.630821000000083],[-131.46444700000001,52.627487000000087]],[[-128.43029799999994,52.368050000000039],[-128.44168099999996,52.368050000000039],[-128.45611599999989,52.373046999999929],[-128.46026599999999,52.37721300000004],[-128.46664399999986,52.386939999999981],[-128.46777299999991,52.393051000000071],[-128.43777499999999,52.543610000000115],[-128.44973800000002,52.620827000000077],[-128.45056199999999,52.626937999999996],[-128.44168099999996,52.746941000000106],[-128.43917799999997,52.752220000000079],[-128.43582200000003,52.756943000000092],[-128.39001500000001,52.797493000000031],[-128.383331,52.797493000000031],[-128.37332200000003,52.791107000000125],[-128.36276199999998,52.740272999999945],[-128.35861199999988,52.729156000000103],[-128.32138099999992,52.634720000000129],[-128.275848,52.496101000000124],[-128.27502400000003,52.489990000000034],[-128.28640699999994,52.457771000000037],[-128.31140099999999,52.423881999999992],[-128.365814,52.38220999999993],[-128.37164300000001,52.378875999999991],[-128.386414,52.374992000000134],[-128.40335099999993,52.371658000000139],[-128.43029799999994,52.368050000000039]],[[-128.97442599999999,52.453323000000069],[-128.98275799999999,52.453049000000135],[-129.11471599999993,52.556656000000089],[-129.21081499999997,52.64888000000002],[-129.26333599999998,52.710548000000074],[-129.27056899999997,52.719153999999946],[-129.29196200000001,52.761664999999994],[-129.29278599999998,52.766937000000098],[-129.28140299999995,52.81721500000009],[-129.27722199999988,52.823051000000135],[-129.27084400000001,52.826103000000046],[-129.26223799999997,52.826660000000118],[-129.252228,52.825272000000041],[-129.23111,52.81610100000006],[-129.218323,52.809158000000082],[-129.10415599999999,52.74110399999995],[-129.066101,52.714714000000129],[-128.94695999999993,52.626381000000094],[-128.926941,52.610825000000091],[-128.92333999999994,52.606659000000036],[-128.91973899999999,52.602218999999991],[-128.91861,52.527488999999946],[-128.92251599999997,52.515274000000034],[-128.93640099999999,52.480545000000006],[-128.94360399999999,52.469711000000075],[-128.9491579999999,52.465546000000074],[-128.96166999999997,52.459435000000042],[-128.97442599999999,52.453323000000069]],[[-128.26974499999994,52.596939000000134],[-128.27416999999997,52.595543000000077],[-128.27890000000002,52.595824999999991],[-128.28445399999998,52.598602000000028],[-128.28750600000001,52.602776000000063],[-128.28973399999995,52.60833000000008],[-128.29269399999993,52.661549000000036],[-128.32305899999994,52.74110399999995],[-128.32638499999996,52.771378000000027],[-128.32501199999996,52.776100000000099],[-128.26322900000002,52.784645000000125],[-128.21063200000003,52.798515000000009],[-128.18582199999992,52.826942000000031],[-128.177795,52.826103000000046],[-128.17334,52.823326000000122],[-128.17028799999997,52.817771999999991],[-128.17584199999999,52.787773000000129],[-128.17861899999997,52.776100000000099],[-128.20776399999994,52.704436999999984],[-128.21026599999993,52.698875000000044],[-128.24722299999996,52.620544000000109],[-128.24972500000001,52.616660999999965],[-128.26141399999995,52.604439000000013],[-128.26974499999994,52.596939000000134]],[[-131.63973999999996,52.828049000000135],[-131.64666699999992,52.825829000000113],[-131.64889499999998,52.826103000000046],[-131.66973899999999,52.819160000000068],[-131.70834400000001,52.811378000000104],[-131.72387700000002,52.808327000000077],[-131.73306299999996,52.80860100000001],[-131.81332399999997,52.82027400000004],[-131.82388300000002,52.82777400000009],[-131.83138999999994,52.841934000000037],[-131.83029199999999,52.846656999999993],[-131.82250999999991,52.848045000000127],[-131.74859599999996,52.853324999999984],[-131.72860699999995,52.851387000000045],[-131.644745,52.835548000000131],[-131.636414,52.832497000000103],[-131.63973999999996,52.828049000000135]],[[-128.50527999999997,52.641106000000036],[-128.5125119999999,52.641106000000036],[-128.51611300000002,52.645271000000037],[-128.52029400000004,52.654991000000109],[-128.54000899999994,52.703323000000012],[-128.53500399999996,52.758049000000085],[-128.53362999999996,52.769157000000121],[-128.51391599999999,52.860825000000034],[-128.51028400000001,52.867493000000024],[-128.50613399999992,52.873047000000042],[-128.49887100000001,52.87082700000002],[-128.49194299999994,52.868599000000074],[-128.48553499999997,52.865273000000002],[-128.471924,52.853049999999996],[-128.46832299999994,52.848602000000028],[-128.45083599999992,52.805267000000015],[-128.45361300000002,52.782493999999986],[-128.45443699999998,52.776939000000084],[-128.50167799999991,52.647491000000002],[-128.50527999999997,52.641106000000036]],[[-129.61053500000003,52.954993999999999],[-129.61831699999999,52.953606000000093],[-129.62222299999996,52.958046000000081],[-129.65139799999992,53.013329000000113],[-129.650848,53.01888300000013],[-129.62441999999993,53.02388000000002],[-129.615814,53.024436999999921],[-129.60720800000001,53.022766000000047],[-129.57055699999989,53.013611000000026],[-129.5625,53.010551000000135],[-129.55749499999996,53.006660000000068],[-129.55667099999999,53.001389000000017],[-129.55862400000001,52.997490000000028],[-129.55334500000004,52.984993000000031],[-129.561127,52.970543000000077],[-129.59637499999991,52.959435000000099],[-129.61053500000003,52.954993999999999]],[[-129.531677,53.010551000000135],[-129.53890999999993,53.008049000000085],[-129.546967,53.008888000000013],[-129.58859299999995,53.024162000000103],[-129.64001500000001,53.044158999999979],[-129.63391099999996,53.056099000000074],[-129.56277499999993,53.053046999999992],[-129.52444500000001,53.033606999999961],[-129.51779199999993,53.029991000000109],[-129.51724200000001,53.024993999999992],[-129.52056900000002,53.018326000000059],[-129.531677,53.010551000000135]],[[-55.763061999999991,53.029434000000037],[-55.853333000000021,53.01527399999992],[-55.861945999999989,53.015549000000135],[-55.870834000000002,53.018599999999992],[-55.876388999999961,53.02748900000006],[-55.876105999999993,53.032768000000033],[-55.872771999999998,53.043883999999991],[-55.869719999999973,53.04972100000009],[-55.857779999999991,53.06749700000006],[-55.854445999999996,53.071663000000001],[-55.848609999999951,53.076102999999989],[-55.808333999999945,53.09137700000008],[-55.800551999999982,53.093605000000025],[-55.79222900000002,53.093048000000124],[-55.788612000000001,53.089714000000129],[-55.788337999999953,53.086655000000007],[-55.749167999999997,53.069160000000011],[-55.748885999999914,53.064712999999927],[-55.755004999999869,53.038604999999961],[-55.756667999999991,53.033051],[-55.763061999999991,53.029434000000037]],[[-129.60247799999996,53.057213000000047],[-129.61080899999996,53.056655999999975],[-129.69250499999993,53.075829000000056],[-129.70193499999999,53.078330999999935],[-129.70834399999995,53.08166499999993],[-129.72305299999999,53.099159000000043],[-129.73611500000004,53.12221500000004],[-129.73831200000001,53.12721300000004],[-129.73275799999999,53.131103999999937],[-129.716949,53.133881000000031],[-129.69973800000002,53.134995000000004],[-129.66805999999991,53.136108000000092],[-129.66250600000001,53.135551000000021],[-129.65444899999994,53.132767000000058],[-129.650848,53.130547000000035],[-129.64416499999999,53.12721300000004],[-129.62081899999998,53.112494999999967],[-129.615814,53.108604000000071],[-129.58804299999991,53.084717000000069],[-129.58416699999998,53.08027600000014],[-129.58193999999997,53.075554000000068],[-129.58612099999999,53.069992000000127],[-129.59664900000001,53.061104000000114],[-129.60247799999996,53.057213000000047]],[[-79.909164000000033,53.081940000000145],[-79.919723999999974,53.081940000000145],[-79.926102000000014,53.084991000000002],[-79.92971799999998,53.089432000000102],[-79.932220000000029,53.094436999999971],[-79.938599000000011,53.122490000000084],[-79.938599000000011,53.134995000000004],[-79.93499799999995,53.147774000000084],[-79.930557000000022,53.152489000000116],[-79.906386999999995,53.172768000000076],[-79.897781000000009,53.174438000000009],[-79.887511999999958,53.174438000000009],[-79.877486999999974,53.173050000000103],[-79.866393999999957,53.16944100000012],[-79.858886999999868,53.166939000000013],[-79.846114999999941,53.160545000000013],[-79.795836999999892,53.116386000000034],[-79.789444000000003,53.106941000000006],[-79.787215999999944,53.101936000000137],[-79.789444000000003,53.095825000000048],[-79.796951000000035,53.093605000000025],[-79.835555999999997,53.083878000000084],[-79.843886999999995,53.082214000000079],[-79.909164000000033,53.081940000000145]],[[-129.4324949999999,53.151382000000012],[-129.35278299999993,53.072220000000073],[-129.29000899999988,52.993607000000054],[-129.28750600000001,52.978043000000014],[-129.28945899999985,52.971930999999984],[-129.29583700000001,52.968880000000013],[-129.31222499999996,52.966934000000094],[-129.341095,52.973320000000001],[-129.41418499999997,53.010551000000135],[-129.41915900000004,53.014442000000031],[-129.42138699999998,53.019157000000064],[-129.42471299999994,53.040276000000063],[-129.42916899999994,53.04972100000009],[-129.475281,53.101936000000137],[-129.50527999999997,53.126380999999981],[-129.51196300000004,53.129714999999976],[-129.52194199999985,53.131103999999937],[-129.53750600000001,53.128326000000129],[-129.54473899999994,53.128326000000129],[-129.54724099999993,53.133049000000142],[-129.54806500000001,53.14916199999999],[-129.546967,53.16027100000008],[-129.5386049999999,53.171660999999915],[-129.52166699999992,53.18360100000001],[-129.51446499999997,53.185822000000144],[-129.49859599999996,53.188599000000011],[-129.49026499999997,53.188881000000094],[-129.47997999999995,53.187767000000122],[-129.470551,53.185265000000015],[-129.46276899999992,53.179993000000081],[-129.4324949999999,53.151382000000012]],[[-81.106109999999887,53.199714999999969],[-81.087783999999886,53.17943600000001],[-81.045272999999952,53.148605000000089],[-80.978881999999942,53.113052000000039],[-80.973617999999988,53.109436000000017],[-80.809433000000013,52.97693600000008],[-80.775008999999955,52.944434999999942],[-80.763335999999924,52.931381000000044],[-80.669158999999979,52.776939000000084],[-80.667769999999962,52.771935000000099],[-80.667496000000028,52.759438000000102],[-80.670836999999892,52.745827000000133],[-80.673049999999932,52.740547000000049],[-80.699722000000008,52.69609800000012],[-80.705001999999979,52.692214999999976],[-80.712509000000011,52.689156000000025],[-80.720551,52.688324000000136],[-80.731673999999998,52.688881000000038],[-80.739166000000012,52.691376000000048],[-80.749161000000015,52.698875000000044],[-80.753066999999987,52.703323000000012],[-80.765839000000028,52.709717000000012],[-80.797500999999954,52.719153999999946],[-80.815001999999993,52.723045000000013],[-80.861388999999917,52.731102000000021],[-80.898894999999982,52.737495000000138],[-80.918883999999991,52.740272999999945],[-80.995543999999938,52.746101000000067],[-81.015563999999927,52.748604000000057],[-81.024444999999957,52.750549000000035],[-81.138061999999934,52.788048000000117],[-81.15306099999998,52.793052999999986],[-81.198882999999967,52.814156000000082],[-81.212783999999942,52.819991999999957],[-81.251953000000015,52.832497000000103],[-81.287216000000001,52.83998900000006],[-81.369155999999862,52.856102000000078],[-81.41722099999987,52.863052000000096],[-81.58444199999991,52.889160000000061],[-81.649170000000026,52.907211000000075],[-81.763625999999931,52.937767000000008],[-81.781386999999995,52.941658000000075],[-81.811660999999958,52.945267000000058],[-81.834166999999866,52.946381000000031],[-81.881377999999984,52.954162999999994],[-81.916655999999989,52.96166199999999],[-81.933318999999983,52.965828000000045],[-81.949721999999952,52.971375000000023],[-81.962783999999886,52.97693600000008],[-82.049987999999985,53.014442000000031],[-82.056655999999862,53.017494000000113],[-82.061661000000015,53.021102999999925],[-82.063323999999909,53.026657000000114],[-82.060271999999998,53.031937000000028],[-82.053329000000019,53.041938999999957],[-82.049164000000019,53.046661000000029],[-81.974716000000001,53.113883999999985],[-81.965285999999935,53.12221500000004],[-81.954177999999956,53.129990000000134],[-81.910827999999981,53.158882000000062],[-81.892226999999991,53.168326999999977],[-81.864440999999999,53.178604000000121],[-81.848052999999936,53.181664000000012],[-81.826110999999969,53.181381000000044],[-81.714721999999881,53.188599000000011],[-81.543059999999969,53.209160000000054],[-81.385283999999899,53.224990999999989],[-81.374999999999943,53.224990999999989],[-81.295546999999999,53.217765999999983],[-81.116394000000014,53.200829000000113],[-81.106109999999887,53.199714999999969]],[[-131.76223800000002,53.196655000000078],[-131.6305539999999,53.084159999999997],[-131.595551,53.046103999999957],[-131.59304800000001,53.041382000000056],[-131.59472700000003,53.035271000000023],[-131.60165399999994,53.033051],[-131.61026000000004,53.032211000000132],[-131.62887599999999,53.032494000000099],[-131.63973999999996,53.034439000000077],[-131.73666400000002,53.053879000000052],[-131.75558499999994,53.058601000000124],[-131.77444500000001,53.068886000000077],[-131.78390499999989,53.071381000000088],[-131.79473899999994,53.073051000000078],[-131.81362899999999,53.073607999999979],[-131.82971199999992,53.071381000000088],[-131.94332900000001,53.054993000000024],[-131.96472199999999,53.046386999999925],[-131.91195700000003,53.005271999999991],[-131.90835599999991,53.011108000000036],[-131.89944499999996,53.019714000000135],[-131.88806199999999,53.026939000000027],[-131.87027,53.037498000000028],[-131.85611,53.04222100000004],[-131.84777800000001,53.043052999999929],[-131.83111600000001,53.043052999999929],[-131.81167600000003,53.039718999999991],[-131.662781,53.00777400000004],[-131.644745,53.003882999999973],[-131.62860099999995,52.998328999999956],[-131.61498999999998,52.991661000000022],[-131.609711,52.988045000000113],[-131.59805299999999,52.97526600000009],[-131.59582499999993,52.964714000000072],[-131.59750399999996,52.958602999999982],[-131.61554000000001,52.920273000000066],[-131.662781,52.882210000000043],[-131.66805999999997,52.878043999999932],[-131.68057299999992,52.871658000000025],[-131.68749999999994,52.869155999999975],[-131.70443699999993,52.867767000000129],[-131.80221599999999,52.86471599999993],[-131.80862400000001,52.865829000000019],[-131.833618,52.88499500000006],[-131.849152,52.901932000000102],[-131.87027,52.922768000000076],[-131.88473499999992,52.934433000000013],[-131.89001500000001,52.93832400000008],[-131.898346,52.941100999999946],[-131.906677,52.940269000000058],[-131.93859899999995,52.934990000000084],[-131.94473299999999,52.931664000000012],[-131.982483,52.879715000000033],[-131.97860700000001,52.875549000000092],[-131.96859699999999,52.874435000000119],[-131.95278899999988,52.875267000000065],[-131.94528200000002,52.876938000000109],[-131.93139599999995,52.881660000000011],[-131.85638399999993,52.856102000000078],[-131.77557399999989,52.716660000000047],[-131.767517,52.713882000000012],[-131.73361199999999,52.69860100000011],[-131.72692900000004,52.695541000000048],[-131.72305299999988,52.691101000000003],[-131.683899,52.642220000000009],[-131.68139600000001,52.637496999999996],[-131.65945399999993,52.581665000000044],[-131.57278400000001,52.529991000000052],[-131.56527700000004,52.531662000000097],[-131.55667099999994,52.532211000000018],[-131.54583700000001,52.530273000000079],[-131.48193400000002,52.507773999999984],[-131.46749899999992,52.501389000000131],[-131.42361499999998,52.460823000000119],[-131.42748999999998,52.414993000000095],[-131.39849899999996,52.377827000000025],[-131.39533999999998,52.375492000000122],[-131.39016699999996,52.374660000000006],[-131.36749299999991,52.381827999999985],[-131.36549400000001,52.384491000000025],[-131.36599699999988,52.390986999999996],[-131.36715700000002,52.397160000000042],[-131.357483,52.403320000000065],[-131.35833699999989,52.414153999999996],[-131.35305799999998,52.41832700000009],[-131.32833900000003,52.431107000000054],[-131.31304899999998,52.434158000000082],[-131.27252199999998,52.438881000000038],[-131.25558499999988,52.440269000000001],[-131.23638900000003,52.439156000000082],[-131.23248299999995,52.434714999999983],[-131.24749800000001,52.365829000000133],[-131.25085399999995,52.359160999999972],[-131.25836200000003,52.34777100000008],[-131.26306199999999,52.34276600000004],[-131.30311599999993,52.332100000000025],[-131.31977799999993,52.335106000000053],[-131.33059700000001,52.332770999999923],[-131.33248899999995,52.293610000000001],[-131.32833900000003,52.284995999999978],[-131.32443199999989,52.280822999999998],[-131.27139299999999,52.277771000000087],[-131.259186,52.284164000000033],[-131.25613399999992,52.290833000000077],[-131.24832199999997,52.302216000000101],[-131.17971799999998,52.317772000000048],[-131.17193599999996,52.319442999999922],[-131.136414,52.311378000000047],[-131.09500099999997,52.286110000000122],[-131.01501500000001,52.225548000000117],[-131.00750699999998,52.217209000000082],[-131.00527999999991,52.206657000000064],[-131.01168799999988,52.193604000000107],[-131.01556400000004,52.187767000000122],[-131.024719,52.178047000000049],[-131.030304,52.173882000000049],[-131.036407,52.170830000000137],[-131.04305999999991,52.168326999999977],[-131.11512799999997,52.168289000000016],[-131.16610700000001,52.125549000000092],[-131.18057299999987,52.121658000000025],[-131.26473999999985,52.11971299999999],[-131.29888900000003,52.150268999999923],[-131.36025999999993,52.189156000000139],[-131.36694299999999,52.192490000000134],[-131.38946499999997,52.205826000000059],[-131.41168200000004,52.220543000000077],[-131.55111699999998,52.333878000000084],[-131.57333399999993,52.360824999999977],[-131.58194000000003,52.379990000000134],[-131.582764,52.385269000000108],[-131.58056599999986,52.390548999999965],[-131.57778899999994,52.393607999999972],[-131.57083099999994,52.396102999999982],[-131.54806500000001,52.400543000000027],[-131.53973399999995,52.401100000000099],[-131.52972399999993,52.400269000000094],[-131.52029400000004,52.397774000000027],[-131.56140099999999,52.431664000000126],[-131.66168199999998,52.478324999999984],[-131.67916899999994,52.483604000000128],[-131.70944199999991,52.491104000000007],[-131.76223800000002,52.50499700000006],[-131.77529899999996,52.51166500000005],[-131.89279199999999,52.582771000000093],[-132.01751699999994,52.677490000000034],[-132.08194000000003,52.727485999999942],[-132.08471700000001,52.732208000000014],[-132.060272,52.755272000000048],[-132.01028399999996,52.775269000000094],[-132.00250199999999,52.776939000000084],[-131.993042,52.774436999999978],[-131.97305299999999,52.764717000000076],[-131.96389799999997,52.756660000000124],[-131.94445799999988,52.735549999999989],[-131.93362400000001,52.728043000000014],[-131.92694099999994,52.724709000000075],[-131.91751099999988,52.722487999999942],[-131.91723599999995,52.725822000000107],[-131.93722499999996,52.763611000000083],[-131.93972799999995,52.768326000000116],[-131.95166,52.781105000000139],[-131.96221899999995,52.788605000000018],[-131.96887200000003,52.791939000000013],[-132.03417999999994,52.812767000000122],[-132.06167599999998,52.813881000000094],[-132.05804399999994,52.804161000000022],[-132.05557299999987,52.793610000000058],[-132.10247800000002,52.749435000000062],[-132.11026000000004,52.748046999999985],[-132.12026999999995,52.748877999999991],[-132.12747199999995,52.750832000000003],[-132.21417199999991,52.804710000000114],[-132.21945199999999,52.808327000000077],[-132.22888199999994,52.816382999999973],[-132.31640599999997,52.902214000000129],[-132.34414700000002,52.931664000000012],[-132.34695399999993,52.936377999999991],[-132.34304799999995,52.942214999999976],[-132.32971199999992,52.94582400000013],[-132.31362899999999,52.948043999999982],[-132.25558499999994,52.954711999999915],[-132.24527,52.953880000000026],[-132.23803699999991,52.951935000000049],[-132.16778599999992,52.928047000000106],[-132.15640300000001,52.958885000000066],[-132.11248799999998,52.987770000000125],[-132.11026000000004,52.993049999999982],[-132.11276199999992,52.997772000000055],[-132.11944599999998,53.00110600000005],[-132.25613399999997,53.028877000000136],[-132.26696799999996,53.030823000000055],[-132.29501300000004,53.031105000000082],[-132.41195700000003,53.031937000000028],[-132.47970599999996,53.027214000000015],[-132.49609399999991,53.032768000000033],[-132.50778199999996,53.040549999999996],[-132.51196300000004,53.044716000000051],[-132.55279499999995,53.089714000000129],[-132.55557299999992,53.094436999999971],[-132.56362899999999,53.139160000000004],[-132.56222500000001,53.145271000000093],[-132.55667099999994,53.149436999999978],[-132.54916399999991,53.151100000000099],[-132.53945899999991,53.148880000000077],[-132.52584799999994,53.142220000000066],[-132.50140399999998,53.133881000000031],[-132.48165899999998,53.130820999999969],[-132.45111099999986,53.128044000000102],[-132.41363499999989,53.127486999999974],[-132.378601,53.129433000000063],[-132.21081499999997,53.141662999999994],[-132.07083099999994,53.153877000000023],[-132.06390399999987,53.156380000000013],[-132.05777,53.159714000000008],[-132.03057899999999,53.179993000000081],[-132.00750700000003,53.1947100000001],[-131.92834500000004,53.230545000000006],[-131.92138699999992,53.233047000000056],[-131.811127,53.253608999999983],[-131.80194099999994,53.253326000000015],[-131.794464,53.251388999999961],[-131.79055800000003,53.247214999999926],[-131.76223800000002,53.196655000000078]],[[-55.778052999999943,53.289719000000105],[-55.786667000000023,53.288330000000087],[-55.794448999999929,53.291107000000011],[-55.797226000000023,53.295546999999999],[-55.793334999999956,53.300545],[-55.785003999999958,53.303604000000007],[-55.776108000000022,53.300270000000012],[-55.776389999999992,53.295273000000066],[-55.778052999999943,53.289719000000105]],[[-128.68945299999996,53.16443600000008],[-128.67944299999994,53.163047999999947],[-128.67083700000001,53.163605000000075],[-128.65222199999999,53.16276600000009],[-128.64196799999996,53.161377000000073],[-128.62469499999997,53.155548000000067],[-128.60555999999997,53.145271000000093],[-128.57611099999991,53.105270000000132],[-128.53167699999995,53.021102999999925],[-128.52890000000002,53.011108000000036],[-128.52056900000002,52.959435000000099],[-128.51834099999991,52.943604000000107],[-128.51779199999987,52.927489999999977],[-128.51834099999991,52.911102000000142],[-128.52001999999999,52.899719000000118],[-128.52279699999991,52.888046000000088],[-128.57028199999996,52.691376000000048],[-128.57223499999992,52.685265000000129],[-128.57528699999995,52.679993000000024],[-128.59359699999993,52.659156999999993],[-128.58526599999988,52.659431000000097],[-128.57748400000003,52.65638000000007],[-128.58581499999991,52.6322100000001],[-128.59222399999993,52.613884000000098],[-128.59722899999991,52.609161000000086],[-128.60497999999995,52.607773000000009],[-128.74887099999995,52.597214000000122],[-128.75167799999997,52.60083000000003],[-128.74859600000002,52.748604000000057],[-128.74804699999999,52.754165999999998],[-128.74444600000004,52.760826000000009],[-128.69250499999998,52.856102000000078],[-128.65335099999999,52.892769000000101],[-128.648346,52.89777400000014],[-128.64474499999994,52.904160000000047],[-128.64334099999996,52.915543000000071],[-128.64196799999996,52.948601000000053],[-128.64334099999996,52.958885000000066],[-128.646973,52.963325999999995],[-128.65335099999999,52.96665999999999],[-128.663635,52.968048000000067],[-128.67138699999998,52.96665999999999],[-128.67694099999994,52.962769000000094],[-128.67999299999997,52.957771000000093],[-128.75112899999999,52.835823000000119],[-128.75390600000003,52.830826000000059],[-128.76223800000002,52.810822000000087],[-128.76446499999997,52.804710000000114],[-128.78057899999999,52.739989999999977],[-128.78140299999995,52.734160999999972],[-128.77999899999998,52.72387700000013],[-128.77780200000001,52.718880000000013],[-128.77111799999994,52.704711999999972],[-128.76556400000004,52.695541000000048],[-128.77889999999991,52.66415400000011],[-128.84637499999997,52.653320000000065],[-128.88445999999999,52.648048000000131],[-128.89251699999994,52.64888000000002],[-129,52.697212000000093],[-129.03277600000001,52.719711000000075],[-129.04779099999996,52.731377000000009],[-129.08029199999999,52.772491000000116],[-129.10861199999999,52.812767000000122],[-129.11080899999996,52.817497000000117],[-129.114441,52.821938000000046],[-129.11886600000003,52.83138300000013],[-129.12191799999994,52.852218999999934],[-129.12191799999994,52.863052000000096],[-129.11999500000002,52.869155999999975],[-129.11080899999996,52.877487000000031],[-129.10360699999995,52.879715000000033],[-129.09500100000002,52.880272000000105],[-129.08444199999997,52.878043999999932],[-129.0763849999999,52.87499200000002],[-129.02224699999988,52.905548000000124],[-128.95178199999992,52.973660000000052],[-128.86999499999996,53.021935000000042],[-128.85498000000001,53.025269000000037],[-128.84082000000001,53.029716000000121],[-128.83639499999998,53.03555300000005],[-128.84359699999999,53.044158999999979],[-128.89556899999997,53.08277099999998],[-128.96389799999992,53.121657999999968],[-128.970551,53.124992000000134],[-129.00222799999995,53.136940000000038],[-129.01168799999999,53.139717000000076],[-129.01583900000003,53.133881000000031],[-129.01501499999995,53.128875999999991],[-129.00473,53.109993000000088],[-128.99386599999997,53.097214000000065],[-128.98748799999998,53.095825000000048],[-128.98110999999994,53.09887700000013],[-128.97387700000002,53.101105000000132],[-128.96444699999995,53.100548000000003],[-128.95666499999999,53.097771000000137],[-128.912781,53.073051000000078],[-128.86444099999989,53.038887000000045],[-128.862213,53.034164000000089],[-129.05584699999997,52.909156999999936],[-129.06915299999991,52.90387700000008],[-129.09500100000002,52.902489000000003],[-129.10583500000001,52.904708999999968],[-129.15945399999998,52.919715999999994],[-129.16583299999996,52.923049999999989],[-129.169464,52.927489999999977],[-129.17529300000001,52.936377999999991],[-129.18554700000004,52.955269000000044],[-129.18722499999996,52.965546000000018],[-129.191956,53.00777400000004],[-129.19137599999999,53.013329000000113],[-129.18804899999992,53.024162000000103],[-129.16665599999993,53.06610100000006],[-129.16168200000004,53.0711060000001],[-129.15472399999999,53.073326000000066],[-129.13165300000003,53.078049000000078],[-129.11804199999989,53.079163000000051],[-129.11749299999991,53.073882999999967],[-129.11804199999989,53.068329000000006],[-129.11499000000003,53.064712999999927],[-129.10861199999999,53.067772000000105],[-129.08248899999995,53.089989000000003],[-129.075287,53.10305000000011],[-129.07333399999999,53.109160999999972],[-129.07055700000001,53.131660000000124],[-129.05889899999988,53.231377000000123],[-129.06027199999988,53.241661000000136],[-129.064728,53.251105999999993],[-129.07193000000001,53.25999500000006],[-129.08221400000002,53.267769000000101],[-129.08972199999994,53.287216000000114],[-129.08612099999999,53.293610000000001],[-129.07971199999997,53.296661000000029],[-129.06664999999992,53.300827000000083],[-129.04305999999997,53.30471],[-129.025848,53.305550000000096],[-129.01861600000001,53.305550000000096],[-128.90084799999994,53.290276000000006],[-128.89138799999989,53.287773000000016],[-128.88137800000004,53.279991000000052],[-128.87777699999992,53.275826000000052],[-128.86389199999991,53.263610999999969],[-128.84359699999999,53.248047000000042],[-128.83221399999996,53.240546999999992],[-128.77529900000002,53.208885000000009],[-128.71167000000003,53.173882000000049],[-128.70526099999989,53.170546999999942],[-128.68945299999996,53.16443600000008]],[[-129.15307599999994,53.098328000000038],[-129.16168200000004,53.097771000000137],[-129.25945999999999,53.09804500000007],[-129.28945899999985,53.101936000000137],[-129.31140099999999,53.116936000000067],[-129.32665999999989,53.128601000000003],[-129.33248900000001,53.13749700000011],[-129.33471699999996,53.142493999999999],[-129.33639500000004,53.152770999999973],[-129.33889799999986,53.179161000000022],[-129.3383179999999,53.184990000000028],[-129.33639500000004,53.191101000000117],[-129.32528699999989,53.216103000000032],[-129.27389500000004,53.328049000000021],[-129.26806599999992,53.331940000000088],[-129.26028399999996,53.333327999999995],[-129.250854,53.333054000000061],[-129.22915599999988,53.328880000000026],[-129.22692899999998,53.326102999999932],[-129.20889299999999,53.321937999999932],[-129.19415299999997,53.315544000000102],[-129.18112199999996,53.308601000000067],[-129.17611699999998,53.30471],[-129.16860999999994,53.296104000000128],[-129.14529399999998,53.22165700000005],[-129.13247699999999,53.118599000000017],[-129.13192699999996,53.11360899999994],[-129.1339109999999,53.107498000000078],[-129.13891599999994,53.102493000000038],[-129.15307599999994,53.098328000000038]],[[-79.942764000000011,53.266936999999984],[-80.009170999999924,53.263885000000073],[-80.018065999999862,53.265830999999991],[-80.024445000000014,53.268883000000073],[-80.081679999999949,53.316101000000003],[-80.083892999999989,53.321106000000043],[-80.085281000000009,53.326942000000088],[-80.073333999999988,53.348877000000073],[-80.068892999999946,53.353325000000041],[-80.061385999999914,53.355553000000043],[-79.999724999999955,53.364716000000044],[-79.944716999999969,53.368050000000039],[-79.950561999999934,53.349716000000058],[-79.951949999999954,53.348327999999981],[-79.913054999999986,53.296104000000128],[-79.91194200000001,53.29055000000011],[-79.913329999999917,53.283051000000114],[-79.920836999999949,53.273048000000074],[-79.927215999999987,53.27027099999998],[-79.942764000000011,53.266936999999984]],[[-129.35833700000001,53.304161000000079],[-129.37441999999999,53.301383999999985],[-129.38363600000002,53.301933000000133],[-129.3875119999999,53.306099000000017],[-129.43499799999995,53.378876000000105],[-129.43307500000003,53.384720000000129],[-129.39501999999999,53.410819999999944],[-129.386414,53.40915700000005],[-129.37970000000001,53.40554800000001],[-129.37387100000001,53.400826000000109],[-129.36663799999991,53.398880000000077],[-129.32861300000002,53.377769000000001],[-129.30557299999998,53.335823000000005],[-129.30334499999992,53.331107999999972],[-129.30749500000002,53.31888600000002],[-129.31249999999989,53.313880999999981],[-129.32693499999999,53.309715000000097],[-129.35833700000001,53.304161000000079]],[[-55.787505999999951,53.394157000000064],[-55.793059999999969,53.391663000000108],[-55.801392000000021,53.392493999999942],[-55.949439999999981,53.430275000000108],[-55.958053999999947,53.434158000000082],[-55.971663999999919,53.445824000000016],[-55.978881999999942,53.454712000000029],[-55.979163999999912,53.459159999999997],[-55.976386999999988,53.463051000000064],[-55.958892999999932,53.472487999999998],[-55.945549000000028,53.478600000000142],[-55.931670999999994,53.483879000000115],[-55.923889000000031,53.485549999999989],[-55.916388999999981,53.485825000000034],[-55.883057000000008,53.486382000000106],[-55.878051999999968,53.486656000000039],[-55.811942999999928,53.483879000000115],[-55.757224999999949,53.468322999999998],[-55.740554999999915,53.462212000000079],[-55.729163999999969,53.455269000000101],[-55.729439000000013,53.450271999999984],[-55.787505999999951,53.394157000000064]],[[-128.94250499999998,53.317497000000003],[-129.11138899999997,53.315826000000129],[-129.12222299999996,53.318054000000132],[-129.12582399999991,53.322495000000004],[-129.13891599999994,53.339989000000116],[-129.14334099999996,53.349716000000058],[-129.14416499999993,53.354996000000142],[-129.14306599999986,53.366104000000121],[-129.14083899999997,53.37221500000004],[-129.13445999999993,53.383880999999974],[-129.08270299999998,53.429259999999999],[-129.05406199999999,53.453601999999989],[-129.05883799999998,53.487965000000145],[-129.051941,53.50499700000006],[-129.04779099999996,53.510551000000021],[-129.03778099999988,53.520271000000093],[-129.02194199999997,53.533882000000062],[-129.015289,53.536658999999986],[-128.99941999999987,53.53943600000008],[-128.988586,53.537216000000058],[-128.984711,53.533051000000057],[-128.98416099999997,53.52777100000003],[-128.98553499999997,53.523048000000017],[-128.98611499999998,53.513054000000011],[-128.98611499999998,53.502220000000136],[-128.9844359999999,53.491661000000079],[-128.97555499999987,53.472762999999986],[-128.95361300000002,53.446655000000021],[-128.94137599999993,53.434158000000082],[-128.93612699999994,53.430275000000108],[-128.90335099999993,53.39138000000014],[-128.90112299999998,53.386658000000068],[-128.90029900000002,53.381378000000041],[-128.91805999999997,53.331383000000017],[-128.92251599999997,53.325828999999999],[-128.92806999999999,53.321663000000115],[-128.94250499999998,53.317497000000003]],[[-79.709732000000031,53.508049000000142],[-79.720276000000013,53.507499999999993],[-79.730559999999969,53.508888000000127],[-79.746947999999918,53.513328999999999],[-79.764724999999942,53.523605000000089],[-79.769729999999925,53.527214000000129],[-79.773620999999991,53.531662000000097],[-79.77027899999996,53.536942000000124],[-79.761397999999929,53.546104000000071],[-79.755004999999983,53.543053000000043],[-79.70695499999988,53.515549000000021],[-79.703338999999914,53.511108000000092],[-79.709732000000031,53.508049000000142]],[[-129.93472299999985,53.484161000000029],[-129.94277999999991,53.482764999999972],[-129.95220899999998,53.483047000000056],[-130.01446499999997,53.501938000000052],[-130.02111799999994,53.505272000000048],[-129.98858599999988,53.528603000000089],[-129.94195599999995,53.551102000000071],[-129.93417399999998,53.552489999999977],[-129.92611699999992,53.551658999999972],[-129.89334099999991,53.545546999999999],[-129.88668799999999,53.542221000000097],[-129.88418599999994,53.537216000000058],[-129.88696300000004,53.534163999999976],[-129.894745,53.521934999999928],[-129.89889499999998,53.516388000000006],[-129.913635,53.501938000000052],[-129.92916899999994,53.488327000000083],[-129.93472299999985,53.484161000000029]],[[-129.87942499999991,53.392768999999987],[-129.72915599999993,53.215271000000087],[-129.73028599999992,53.204163000000108],[-129.73220799999996,53.198044000000095],[-129.74249299999997,53.178329000000076],[-129.75085399999989,53.166939000000013],[-129.75585899999993,53.162209000000018],[-129.76223799999997,53.158882000000062],[-129.86416600000001,53.153046000000018],[-129.91223100000002,53.156380000000013],[-129.93167099999999,53.158043000000077],[-129.93695099999997,53.161933999999974],[-130.08804299999991,53.289436000000137],[-130.11111500000004,53.328049000000021],[-130.16500899999988,53.358330000000137],[-130.20333899999997,53.378876000000105],[-130.24249299999997,53.384163000000058],[-130.261414,53.384720000000129],[-130.28695700000003,53.381378000000041],[-130.29638699999998,53.381660000000068],[-130.30584699999997,53.384163000000058],[-130.31640600000003,53.391937000000041],[-130.40194700000001,53.479988000000048],[-130.52722199999999,53.552216000000044],[-130.52999899999998,53.567771999999991],[-130.52944899999994,53.573326000000009],[-130.52224699999994,53.618599000000074],[-130.52029399999998,53.624709999999993],[-130.50836200000003,53.631935000000055],[-130.459991,53.637496999999996],[-130.450287,53.634995000000117],[-130.39584399999995,53.619438000000059],[-130.39111300000002,53.61693600000001],[-130.37554899999992,53.612212999999997],[-130.27529900000002,53.580276000000026],[-130.20220900000004,53.553878999999938],[-130.14083900000003,53.528877000000023],[-129.97720300000003,53.455550999999957],[-129.94415299999991,53.438598999999954],[-129.93222000000003,53.431380999999988],[-129.92056300000002,53.424164000000019],[-129.88418599999994,53.397217000000126],[-129.87942499999991,53.392768999999987]],[[-129.08639500000004,53.446097999999949],[-129.15750099999997,53.392768999999987],[-129.16778599999998,53.593880000000127],[-129.16583299999996,53.610825000000091],[-129.16305499999999,53.622489999999971],[-129.16082799999998,53.62860100000006],[-129.15307599999994,53.638603000000046],[-129.14724699999994,53.642494000000113],[-129.14083899999997,53.645546000000024],[-129.05249000000003,53.681106999999997],[-129.03860499999985,53.686377999999991],[-129.00805699999995,53.693321000000026],[-128.98330699999991,53.696655000000021],[-128.87554899999998,53.709434999999928],[-128.832764,53.712494000000106],[-128.82388299999997,53.713051000000007],[-128.81887800000004,53.709160000000111],[-128.82110599999999,53.703049000000021],[-128.82360799999998,53.700546000000088],[-128.87222299999991,53.661102000000142],[-128.97970599999996,53.58387799999997],[-128.98638900000003,53.580826000000059],[-128.99221799999992,53.576942000000031],[-129.07556199999993,53.514717000000132],[-129.08554100000003,53.50499700000006],[-129.08999599999999,53.499435000000062],[-129.09359699999993,53.492767000000129],[-129.09414699999996,53.487213000000111],[-129.093323,53.481934000000138],[-129.08889799999997,53.472487999999998],[-129.08526599999993,53.468047999999953],[-129.08306899999997,53.463326000000052],[-129.08221400000002,53.458328000000051],[-129.08276399999988,53.452492000000007],[-129.08639500000004,53.446097999999949]],[[-130.09109499999994,53.569443000000035],[-130.09832800000004,53.566940000000102],[-130.10775799999999,53.567497000000003],[-130.14862099999999,53.571938000000102],[-130.21887199999992,53.587212000000136],[-130.22833299999996,53.589431999999988],[-130.32916299999994,53.618049999999982],[-130.34249899999998,53.624709999999993],[-130.39028899999988,53.669991000000039],[-130.40335099999999,53.682495000000074],[-130.39111300000002,53.699432000000058],[-130.29888899999997,53.796944000000053],[-130.2836299999999,53.79833200000013],[-130.27194199999997,53.797775000000058],[-130.26168799999994,53.796386999999982],[-130.24664299999989,53.790276000000063],[-130.23330699999985,53.783607000000018],[-130.11944600000004,53.686653000000035],[-130.11721799999998,53.681938000000002],[-130.09109499999994,53.569443000000035]],[[-56.86721799999998,53.764998999999932],[-56.948607999999979,53.750000000000057],[-56.982773000000009,53.755271999999991],[-57.01139099999989,53.781105000000139],[-57.014450000000011,53.785553000000107],[-57.012222000000008,53.790276000000063],[-57.006667999999991,53.794716000000108],[-57,53.79833200000013],[-56.984726000000023,53.803879000000109],[-56.966942000000017,53.803879000000109],[-56.863060000000019,53.798050000000103],[-56.84444400000001,53.792496000000085],[-56.847518999999977,53.786644000000138],[-56.86721799999998,53.764998999999932]],[[-129.82611099999991,53.724158999999986],[-129.59722899999997,53.550270000000125],[-129.51611300000002,53.488045000000056],[-129.42471299999994,53.411377000000016],[-129.43472299999996,53.401656999999943],[-129.45165999999995,53.379158000000018],[-129.45498699999996,53.372490000000028],[-129.47415199999995,53.289162000000033],[-129.47387700000002,53.239990000000091],[-129.50668299999995,53.216660000000104],[-129.56390399999998,53.207497000000103],[-129.72582999999992,53.340546000000018],[-129.800568,53.380546999999979],[-129.80721999999997,53.384163000000058],[-129.82223499999986,53.401382000000126],[-129.85833700000001,53.456383000000073],[-129.87719699999997,53.50499700000006],[-129.87026999999995,53.518051000000128],[-129.86999500000002,53.534721000000047],[-129.87026999999995,53.545546999999999],[-129.88391100000001,53.579720000000009],[-129.91607699999992,53.601715000000013],[-129.9192349999999,53.604050000000143],[-129.92489599999999,53.605545000000006],[-129.93022199999996,53.605213000000106],[-129.939728,53.603549999999984],[-129.94305399999985,53.601215000000025],[-129.94605999999987,53.598216999999977],[-129.94555700000001,53.59521500000011],[-129.96139500000004,53.594711000000132],[-129.96554600000002,53.589156999999943],[-129.99941999999993,53.574714999999969],[-130.00750699999998,53.573326000000009],[-130.01611300000002,53.572769000000108],[-130.02694699999989,53.574714999999969],[-130.04028299999993,53.58138300000013],[-130.05166600000001,53.594437000000028],[-130.05639599999995,53.603882000000112],[-130.05584699999991,53.609436000000073],[-130.05166600000001,53.615273000000059],[-130.03085299999987,53.622765000000015],[-129.98288000000002,53.641605000000084],[-129.97805799999992,53.642436999999973],[-129.96240199999994,53.643436000000065],[-129.95622300000002,53.642769000000101],[-129.94955400000003,53.641434000000118],[-129.93505900000002,53.636272000000076],[-129.92938199999998,53.634765999999956],[-129.926895,53.636772000000065],[-129.92820699999993,53.639602999999966],[-129.93440199999992,53.644268000000125],[-129.94956999999994,53.646805000000086],[-129.95996100000002,53.649501999999927],[-129.96726999999993,53.650299000000018],[-129.98693799999995,53.658600000000092],[-130.01889,53.653046000000074],[-130.091949,53.677216000000101],[-130.15695199999999,53.721375000000023],[-130.283905,53.83277099999998],[-130.286407,53.837493999999992],[-130.27917499999995,53.856384000000105],[-130.27029400000004,53.875549000000092],[-130.26641799999999,53.881378000000097],[-130.25472999999994,53.889160000000061],[-130.20166,53.912491000000102],[-130.19445799999994,53.914711000000125],[-130.18640099999999,53.916100000000085],[-130.10916099999992,53.885551000000021],[-129.96444699999995,53.805824000000086],[-129.83139,53.728043000000014],[-129.82611099999991,53.724158999999986]],[[-79.864166000000012,53.906380000000013],[-79.873885999999914,53.90415999999999],[-79.906113000000005,53.913879000000009],[-79.918883999999991,53.920273000000066],[-79.922775000000001,53.924713000000054],[-79.925277999999878,53.929717999999923],[-79.926392000000021,53.935265000000072],[-79.915008999999998,53.933876000000055],[-79.867492999999968,53.919715999999994],[-79.862212999999997,53.915825000000098],[-79.860001000000011,53.910820000000058],[-79.864166000000012,53.906380000000013]],[[-130.14974999999998,53.989159000000086],[-130.16805999999997,53.988884000000098],[-130.179169,53.990829000000076],[-130.19415300000003,53.997214999999983],[-130.20306400000004,54.005271999999934],[-130.21499600000004,54.029160000000104],[-130.21694899999994,54.039436000000137],[-130.21640000000002,54.044998000000078],[-130.21304299999997,54.051659000000029],[-130.20278899999994,54.069160000000011],[-130.19360399999999,54.079720000000123],[-130.18640099999999,54.081940000000145],[-130.17834500000004,54.083328000000051],[-130.16861,54.083054000000118],[-130.15917999999994,54.080551000000128],[-130.15557899999999,54.075554000000011],[-130.14889500000004,54.072220000000016],[-130.14361599999995,54.068328999999949],[-130.13973999999996,54.064156000000025],[-130.13247699999999,54.049995000000024],[-130.12249799999995,54.024993999999992],[-130.1213679999999,54.019989000000123],[-130.12249799999995,54.0086060000001],[-130.12441999999999,54.002495000000067],[-130.13528399999996,53.993607000000054],[-130.14974999999998,53.989159000000086]],[[-130.25918599999994,54.004715000000033],[-130.237213,53.984161000000086],[-130.23330699999985,53.979987999999935],[-130.23083499999996,53.975266000000033],[-130.228882,53.964714000000072],[-130.22998000000001,53.953606000000093],[-130.23330699999985,53.946938000000102],[-130.24249299999997,53.936377999999991],[-130.338593,53.839157000000114],[-130.34445199999999,53.835266000000047],[-130.35220299999997,53.833878000000141],[-130.37860099999995,53.831939999999975],[-130.38723800000002,53.831383000000073],[-130.45016499999997,53.864326000000005],[-130.45433000000003,53.866325000000018],[-130.45849599999997,53.882159999999942],[-130.41278099999994,53.958602999999982],[-130.40777600000001,53.963325999999995],[-130.400848,53.965828000000045],[-130.38165300000003,53.965271000000143],[-130.35055499999993,53.961661999999933],[-130.341095,53.961380000000077],[-130.33306899999991,53.962769000000094],[-130.32748400000003,53.966934000000094],[-130.34359699999987,53.984993000000031],[-130.35497999999995,53.993324000000086],[-130.42944299999994,53.983047000000113],[-130.4375,53.981659000000036],[-130.44387800000004,53.978600000000029],[-130.452789,53.968048000000067],[-130.47517400000004,53.944213999999931],[-130.47550999999993,53.940712000000076],[-130.47917199999995,53.926379999999995],[-130.48266599999988,53.915379000000144],[-130.48516799999993,53.912048000000027],[-130.4895019999999,53.910549000000003],[-130.49465900000001,53.910217000000046],[-130.500854,53.910881000000131],[-130.524338,53.914711000000125],[-130.54724099999999,53.903877000000023],[-130.55248999999998,53.907767999999919],[-130.55639599999995,53.911934000000031],[-130.56527699999998,53.925827000000027],[-130.57748400000003,53.93721000000005],[-130.591949,53.949158000000125],[-130.59722899999997,53.953048999999965],[-130.60278299999993,53.956657000000064],[-130.61080900000002,53.959717000000126],[-130.62191799999999,53.961661999999933],[-130.65805099999989,53.964439000000027],[-130.66696200000001,53.963882000000126],[-130.67251599999997,53.959991000000059],[-130.67666600000001,53.954162999999994],[-130.69528200000002,53.91944100000012],[-130.698059,53.914154000000053],[-130.69555700000001,53.909431000000041],[-130.68499799999989,53.901932000000045],[-130.66305499999993,53.892220000000123],[-130.64666699999998,53.886657999999954],[-130.633331,53.879990000000021],[-130.62777700000004,53.876099000000124],[-130.62249799999995,53.872215000000097],[-130.6177669999999,53.862770000000012],[-130.61804199999995,53.857216000000051],[-130.62136799999996,53.85054800000006],[-130.62554899999998,53.844711000000075],[-130.6305539999999,53.839989000000003],[-130.64251699999994,53.83277099999998],[-130.65139799999997,53.834435000000042],[-130.69583099999994,53.844436999999971],[-130.70639,53.851936000000137],[-130.71026599999999,53.856384000000105],[-130.71276899999998,53.861107000000118],[-130.72305299999999,53.917213000000004],[-130.72277799999995,53.922768000000076],[-130.7202759999999,53.93471500000004],[-130.71777299999991,53.939986999999974],[-130.667236,53.986938000000009],[-130.66168200000004,53.990829000000076],[-130.59527600000001,54.026382000000069],[-130.523346,54.059989999999914],[-130.41113300000001,54.100830000000087],[-130.40249600000004,54.101386999999988],[-130.37081899999998,54.087212000000079],[-130.33612099999999,54.06749700000006],[-130.30499299999991,54.045273000000122],[-130.25918599999994,54.004715000000033]],[[-58.518332999999927,54.051659000000029],[-58.526664999999923,54.050545000000056],[-58.536666999999966,54.05082700000014],[-58.545554999999979,54.052216000000101],[-58.556389000000024,54.054710000000057],[-58.56138599999997,54.058044000000052],[-58.56138599999997,54.063880999999981],[-58.55777699999993,54.069160000000011],[-58.552779999999927,54.074440000000038],[-58.53556100000003,54.086654999999951],[-58.503058999999951,54.103050000000053],[-58.468605000000025,54.114716000000044],[-58.450554000000011,54.11721],[-58.437774999999988,54.115547000000049],[-58.378608999999926,54.106659000000093],[-58.373885999999914,54.104164000000083],[-58.378052000000025,54.099998000000141],[-58.407172999999943,54.090561000000037],[-58.426108999999997,54.070831000000055],[-58.43250299999994,54.067214999999976],[-58.440551999999968,54.064713000000097],[-58.456389999999999,54.061661000000015],[-58.518332999999927,54.051659000000029]],[[-132.808044,54.120270000000062],[-132.78890999999999,54.119987000000094],[-132.77999899999998,54.120827000000133],[-132.75723300000004,54.126380999999924],[-132.73580899999996,54.133881000000031],[-132.70306399999993,54.139160000000004],[-132.65835600000003,54.142220000000066],[-132.6480709999999,54.141380000000026],[-132.63946499999997,54.138603000000103],[-132.57528699999995,54.115547000000049],[-132.56973300000004,54.111938000000066],[-132.55777,54.088043000000084],[-132.558899,54.048332000000073],[-132.56054699999999,54.04222100000004],[-132.56664999999992,54.029160000000104],[-132.57583599999998,54.019157000000007],[-132.58139,54.014999000000103],[-132.59387199999998,54.0086060000001],[-132.62554899999992,54.002220000000023],[-132.63275099999993,53.999718000000144],[-132.66418499999997,53.98333000000008],[-132.67999299999997,53.958885000000066],[-132.68167099999999,53.952773999999977],[-132.68029799999999,53.947769000000108],[-132.65890499999989,53.939430000000073],[-132.57223499999992,53.976653999999996],[-132.55584699999997,53.989159000000086],[-132.55029299999995,53.993880999999988],[-132.5477909999999,53.999161000000072],[-132.54888899999997,54.004166000000112],[-132.55306999999999,54.008331000000112],[-132.54833999999994,54.02693899999997],[-132.54528800000003,54.033607000000131],[-132.54055799999998,54.038329999999974],[-132.41665599999999,54.096100000000035],[-132.40972899999997,54.098602000000085],[-132.40167199999985,54.099998000000141],[-132.30111699999998,54.111664000000133],[-132.29055800000003,54.110549999999989],[-132.28582799999998,54.107773000000066],[-132.25280799999996,54.08526599999999],[-132.22833300000002,54.065826000000015],[-132.15029899999996,53.992767000000015],[-132.142517,53.978600000000029],[-132.11111499999998,53.878326000000015],[-132.11721799999992,53.864998000000014],[-132.125,53.853324999999984],[-132.13445999999988,53.843605000000082],[-132.22500600000001,53.780273000000022],[-132.23111,53.776939000000027],[-132.24527,53.772217000000126],[-132.47442599999999,53.707496999999989],[-132.50500499999998,53.700271999999927],[-132.52084399999995,53.697212000000093],[-132.53805499999999,53.695823999999959],[-132.55721999999997,53.695823999999959],[-132.56832899999995,53.697768999999994],[-132.58889799999992,53.699715000000026],[-132.60693399999991,53.698874999999987],[-132.62441999999993,53.697487000000081],[-132.64724699999994,53.69193300000012],[-132.65890499999989,53.684433000000013],[-132.66332999999997,53.679436000000123],[-132.665009,53.673325000000034],[-132.46362299999993,53.612770000000069],[-132.41805999999997,53.606102000000078],[-132.32138099999992,53.663605000000132],[-132.31527699999998,53.666939000000127],[-132.308044,53.669158999999922],[-132.29943799999995,53.669991000000039],[-132.290009,53.669716000000051],[-132.27890000000002,53.6680530000001],[-132.24554399999994,53.662490999999989],[-132.15640300000001,53.716385000000002],[-132.15249600000004,53.812492000000077],[-132.08450299999998,53.872738000000027],[-132.106201,53.917881000000023],[-132.126373,53.979431000000034],[-132.07250999999997,54.022766000000047],[-132.01501499999989,54.021935000000042],[-131.98803699999996,54.023048000000074],[-131.97109999999998,54.025269000000037],[-131.87499999999994,54.052773000000002],[-131.86053500000003,54.057495000000074],[-131.81777999999997,54.071937999999989],[-131.75473,54.094993999999986],[-131.72778299999999,54.106102000000021],[-131.71499599999999,54.112495000000138],[-131.70361299999996,54.120543999999995],[-131.67193599999996,54.146660000000054],[-131.66305499999999,54.152214000000072],[-131.66000399999996,54.131104000000107],[-131.66665599999999,54.079436999999984],[-131.67279099999996,54.044158999999979],[-131.67971799999998,54.019714000000135],[-131.70498699999996,53.966934000000094],[-131.72082499999999,53.943878000000041],[-131.73889199999996,53.923324999999977],[-131.78640699999994,53.874435000000119],[-131.79666099999997,53.865273000000002],[-131.82971199999992,53.841102999999976],[-131.85333300000002,53.816382999999973],[-131.86886600000003,53.79332700000009],[-131.87222299999996,53.786942000000067],[-131.93331899999998,53.615273000000059],[-131.93499800000001,53.609161000000086],[-131.94000199999988,53.519714000000022],[-131.93917799999991,53.508888000000127],[-131.91778599999998,53.399162000000103],[-131.90863000000002,53.357498000000021],[-131.95916699999992,53.276382000000069],[-131.96832299999988,53.266388000000063],[-131.98220799999996,53.251663000000121],[-131.988586,53.248604000000114],[-132.00585899999993,53.247214999999926],[-132.036407,53.25],[-132.0561219999999,53.253326000000015],[-132.08331299999992,53.253052000000082],[-132.17138699999998,53.23832700000014],[-132.19500700000003,53.233879000000002],[-132.21054100000003,53.230545000000006],[-132.21749899999998,53.228324999999984],[-132.27279699999997,53.210274000000027],[-132.27029399999998,53.205551000000014],[-132.26611300000002,53.20138500000013],[-132.25558499999994,53.193877999999984],[-132.23776199999998,53.188881000000094],[-132.22997999999995,53.190544000000045],[-132.21581999999995,53.195267000000001],[-132.20361299999996,53.201659999999947],[-132.19415299999991,53.201659999999947],[-132.14501999999999,53.198325999999952],[-132.13391100000001,53.196655000000078],[-132.12441999999987,53.194153000000028],[-132.12191799999999,53.189430000000016],[-132.158905,53.169990999999982],[-132.18695099999997,53.160545000000013],[-132.19473300000004,53.158882000000062],[-132.390289,53.142769000000044],[-132.40835599999997,53.142220000000066],[-132.44665499999991,53.143607999999972],[-132.45748900000001,53.145271000000093],[-132.506958,53.161102000000085],[-132.53668199999998,53.178879000000109],[-132.56527700000004,53.212769000000037],[-132.57638499999996,53.232208000000128],[-132.58581500000003,53.240273000000059],[-132.59664899999996,53.247489999999971],[-132.61471599999993,53.252777000000094],[-132.64529399999992,53.255553999999961],[-132.66473400000001,53.256386000000077],[-132.68362400000001,53.256660000000011],[-132.67584199999999,53.281661999999926],[-132.61944599999998,53.300270000000012],[-132.55221599999999,53.308043999999995],[-132.54446399999995,53.309433000000013],[-132.53973400000001,53.314438000000052],[-132.53695700000003,53.321106000000043],[-132.53918499999997,53.326385000000016],[-132.54333499999996,53.330551000000071],[-132.54998799999987,53.333878000000027],[-132.55835000000002,53.336655000000121],[-132.56860399999999,53.337494000000106],[-132.67001300000004,53.326942000000088],[-132.72000100000002,53.320830999999998],[-132.73388699999998,53.337212000000022],[-132.709991,53.370270000000005],[-132.70443699999993,53.374435000000005],[-132.69750999999991,53.376937999999996],[-132.52076699999998,53.340160000000026],[-132.51744099999996,53.337990000000104],[-132.41641200000004,53.2972180000001],[-132.41055299999994,53.294715999999994],[-132.406677,53.300545],[-132.40362500000003,53.30721299999999],[-132.40057399999995,53.319443000000092],[-132.40029900000002,53.330826000000116],[-132.40280200000001,53.335548000000017],[-132.406677,53.339714000000072],[-132.41223099999996,53.343604999999968],[-132.52084399999995,53.412209000000132],[-132.54138199999994,53.416382000000112],[-132.73580899999996,53.453323000000012],[-132.85775799999999,53.461104999999975],[-132.86749299999997,53.463608000000136],[-132.87277199999988,53.467209000000025],[-132.97250399999996,53.555824000000143],[-132.991669,53.583054000000004],[-132.9941409999999,53.587769000000037],[-132.98889199999991,53.591934000000037],[-132.96139500000004,53.600273000000072],[-132.95361300000002,53.601936000000023],[-132.94415300000003,53.601936000000023],[-132.93444799999986,53.599716000000001],[-132.91805999999997,53.588600000000042],[-132.90972899999997,53.585823000000005],[-132.89862099999999,53.584160000000054],[-132.89083900000003,53.585548000000131],[-132.88445999999999,53.588882000000126],[-132.88082900000001,53.594711000000132],[-132.8805539999999,53.600273000000072],[-132.88192700000002,53.605552999999986],[-132.8861389999999,53.609717999999987],[-132.92028800000003,53.637214999999912],[-132.935272,53.648604999999975],[-132.95056199999999,53.654709000000025],[-133.00778200000002,53.676383999999985],[-132.95361300000002,53.682770000000119],[-132.95443699999998,53.702774000000034],[-132.9844359999999,53.742767000000072],[-133.02471899999995,53.751389000000074],[-133.03362999999996,53.75277699999998],[-133.09387200000003,53.775551000000121],[-133.10082999999997,53.778603000000032],[-133.10638399999993,53.782494000000099],[-133.10916099999997,53.786942000000067],[-133.13751199999996,53.87499200000002],[-133.13891599999994,53.880272000000048],[-133.14001500000001,53.908043000000134],[-133.13833599999992,53.914154000000053],[-133.13391100000001,53.919159000000093],[-133.11639399999996,53.934158000000139],[-133.09527599999996,53.949432000000058],[-133.09081999999995,53.954162999999994],[-133.04110700000001,54.031661999999983],[-133.03973400000001,54.037773000000072],[-133.04083299999996,54.0430530000001],[-133.05862399999995,54.076102999999989],[-133.07916299999999,54.09777100000008],[-133.08193999999992,54.102492999999981],[-133.07165499999996,54.168883999999991],[-133.06722999999988,54.173881999999992],[-133.04083299999996,54.176102000000014],[-133.03112799999991,54.176102000000014],[-132.94027700000004,54.161377000000073],[-132.93029799999994,54.15915700000005],[-132.92001299999993,54.15248900000006],[-132.90335099999993,54.135826000000009],[-132.82748400000003,54.122490000000084],[-132.808044,54.120270000000062]],[[-130.19555699999995,54.118050000000039],[-130.21166999999997,54.115273000000116],[-130.22109999999998,54.115547000000049],[-130.23220799999996,54.117493000000138],[-130.24581899999993,54.124161000000129],[-130.25112899999999,54.128044000000045],[-130.25500499999998,54.132209999999986],[-130.261414,54.141380000000026],[-130.26364099999995,54.146102999999982],[-130.26473999999996,54.151381999999955],[-130.26306199999993,54.16832700000009],[-130.2611389999999,54.174164000000076],[-130.25778199999996,54.180824000000086],[-130.2528079999999,54.185547000000099],[-130.23971599999999,54.189712999999983],[-130.23083499999996,54.190269000000001],[-130.20944199999985,54.187209999999993],[-130.20999099999989,54.18360100000001],[-130.20166,54.183052000000032],[-130.19223,54.180549999999982],[-130.17861900000003,54.173607000000004],[-130.16113300000001,54.16276600000009],[-130.15585299999992,54.158882000000062],[-130.15194699999995,54.154434000000094],[-130.15112299999998,54.149436999999978],[-130.153076,54.143326000000059],[-130.158051,54.138328999999999],[-130.169464,54.130547000000035],[-130.19555699999995,54.118050000000039]],[[-79.469727000000034,54.167496000000085],[-79.477218999999877,54.165825000000041],[-79.483611999999994,54.169159000000036],[-79.485001000000011,54.174712999999997],[-79.481109999999944,54.187492000000077],[-79.475554999999929,54.191376000000105],[-79.43472300000002,54.200272000000041],[-79.413054999999986,54.191657999999961],[-79.418610000000001,54.187209999999993],[-79.426392000000021,54.183052000000032],[-79.469727000000034,54.167496000000085]],[[-130.64862099999999,54.114441000000056],[-130.67138699999992,54.107773000000066],[-130.69055199999997,54.108330000000137],[-130.69888299999997,54.111107000000061],[-130.77417000000003,54.142220000000066],[-130.78500399999996,54.149994000000049],[-130.79806500000001,54.162208999999962],[-130.800568,54.166939000000013],[-130.79861500000004,54.173050000000103],[-130.78167699999995,54.211662000000103],[-130.77444500000001,54.213882000000069],[-130.76391599999999,54.212769000000037],[-130.75613399999992,54.209159999999997],[-130.74636799999996,54.206657000000064],[-130.72582999999997,54.196655000000078],[-130.64889500000004,54.149719000000061],[-130.64501999999993,54.145271000000093],[-130.64001500000001,54.135826000000009],[-130.63919099999993,54.130820999999969],[-130.63946499999997,54.124992000000134],[-130.64279199999999,54.118599000000017],[-130.64862099999999,54.114441000000056]],[[-130.35555999999991,54.257773999999984],[-130.36663799999991,54.241104000000007],[-130.375,54.244155999999975],[-130.38861099999997,54.250832000000059],[-130.40057400000001,54.258048999999971],[-130.45556599999998,54.295830000000137],[-130.46639999999996,54.303322000000094],[-130.46722399999993,54.308601000000067],[-130.44750999999991,54.325828999999999],[-130.44000199999999,54.328049000000021],[-130.43112199999996,54.328606000000093],[-130.41778599999992,54.326385000000016],[-130.39196799999996,54.312492000000134],[-130.38528400000001,54.308884000000035],[-130.37997399999995,54.305267000000072],[-130.37582399999997,54.300827000000083],[-130.35470599999996,54.269157000000007],[-130.35220299999997,54.264442000000145],[-130.35555999999991,54.257773999999984]],[[-130.26641799999999,54.260551000000078],[-130.32528699999995,54.243050000000096],[-130.33416699999998,54.244713000000047],[-130.33804299999997,54.248878000000047],[-130.355255,54.282211000000075],[-130.35415599999999,54.293326999999977],[-130.350281,54.305550000000039],[-130.34445199999999,54.30971500000004],[-130.29000899999994,54.332214000000022],[-130.27279699999991,54.329720000000066],[-130.26751699999994,54.325828999999999],[-130.25973499999998,54.317497000000003],[-130.25250199999999,54.303047000000049],[-130.25058000000001,54.292770000000075],[-130.25167799999991,54.281380000000013],[-130.255585,54.269440000000145],[-130.25973499999998,54.263610999999912],[-130.26641799999999,54.260551000000078]],[[-130.70416299999994,54.356659000000036],[-130.745544,54.354713000000118],[-130.754456,54.356102000000135],[-130.76391599999999,54.364159000000086],[-130.76724200000001,54.374161000000072],[-130.76834099999991,54.379433000000006],[-130.76779199999987,54.384995000000117],[-130.76446499999992,54.389434999999992],[-130.75805699999995,54.392494000000113],[-130.72943099999986,54.402771000000087],[-130.72222899999991,54.404991000000109],[-130.71417199999996,54.406380000000127],[-130.699432,54.40665400000006],[-130.68890399999998,54.393326000000059],[-130.68331899999998,54.373047000000099],[-130.685272,54.36693600000001],[-130.6894529999999,54.361381999999992],[-130.69610599999999,54.358047000000113],[-130.70416299999994,54.356659000000036]],[[-57.324721999999952,54.498877999999991],[-57.342498999999918,54.498604000000057],[-57.351668999999958,54.500275000000101],[-57.356666999999959,54.502220000000079],[-57.362777999999992,54.506104000000107],[-57.365004999999996,54.511664999999994],[-57.365554999999972,54.516387999999949],[-57.362502999999947,54.527489000000116],[-57.359443999999996,54.533332999999914],[-57.333327999999995,54.565543999999989],[-57.327782000000013,54.570831000000112],[-57.321114000000023,54.574997000000053],[-57.267220000000009,54.585548000000131],[-57.265556000000004,54.580551000000014],[-57.269722000000002,54.574997000000053],[-57.272728000000029,54.572495000000117],[-57.239440999999999,54.522217000000012],[-57.240279999999984,54.517769000000044],[-57.255004999999926,54.513328999999999],[-57.293059999999912,54.503609000000097],[-57.307776999999987,54.500549000000035],[-57.324721999999952,54.498877999999991]],[[-130.95166,54.454711999999972],[-130.95944199999997,54.453323000000012],[-130.96499600000004,54.456940000000145],[-130.96749899999992,54.461662000000047],[-130.96609499999994,54.510826000000009],[-130.96472199999994,54.527771000000143],[-130.96112099999999,54.539992999999981],[-130.93057299999998,54.61471599999993],[-130.92556799999994,54.619438000000059],[-130.88891599999994,54.628876000000048],[-130.88137800000004,54.629158000000132],[-130.754456,54.62943300000012],[-130.74777199999994,54.626099000000124],[-130.74664299999995,54.62082700000002],[-130.74694799999997,54.615273000000059],[-130.7441409999999,54.60166200000009],[-130.745544,54.584717000000126],[-130.74914599999994,54.572769000000051],[-130.75250199999999,54.566101000000117],[-130.75613399999992,54.559433000000126],[-130.76083399999999,54.554710000000114],[-130.76666299999999,54.550545000000113],[-130.84915199999995,54.496941000000106],[-130.85583500000001,54.493881000000044],[-130.93695099999997,54.459434999999985],[-130.95166,54.454711999999972]],[[-79.667220999999927,54.76388500000013],[-79.726944000000003,54.752495000000067],[-79.710281000000009,54.76388500000013],[-79.703613000000018,54.766937000000041],[-79.611114999999984,54.79332700000009],[-79.587218999999948,54.799164000000019],[-79.624435000000005,54.779716000000121],[-79.631103999999993,54.776657000000114],[-79.637786999999946,54.773605000000032],[-79.659728999999913,54.766106000000036],[-79.667220999999927,54.76388500000013]],[[-130.26834099999991,54.714995999999985],[-130.370544,54.692214999999976],[-130.37887599999988,54.695267000000058],[-130.37609899999995,54.700546000000031],[-130.37109399999991,54.705269000000044],[-130.32693499999999,54.739716000000044],[-130.32110599999987,54.743881000000044],[-130.22415199999989,54.803046999999992],[-130.21749899999998,54.806380999999988],[-130.20944199999985,54.807770000000119],[-130.20694000000003,54.803046999999992],[-130.19860800000004,54.783607000000018],[-130.20056199999999,54.77748900000006],[-130.20971699999996,54.760551000000135],[-130.21362299999993,54.748329000000012],[-130.21722399999999,54.741661000000022],[-130.22222899999986,54.736938000000009],[-130.23388699999998,54.728874000000019],[-130.2611389999999,54.717209000000139],[-130.26834099999991,54.714995999999985]],[[-130.51834099999996,54.70249200000012],[-130.52722199999999,54.701935000000049],[-130.5386049999999,54.703880000000026],[-130.56750499999993,54.716934000000094],[-130.57443199999994,54.72026800000009],[-130.58526599999999,54.727767999999969],[-130.60803199999992,54.748329000000012],[-130.61053499999991,54.753052000000139],[-130.61166399999996,54.758049000000085],[-130.60665900000004,54.763054000000125],[-130.48803699999991,54.807495000000131],[-130.47998000000001,54.808883999999921],[-130.46945199999999,54.807770000000119],[-130.458618,54.800270000000069],[-130.44665499999996,54.787216000000001],[-130.44027699999992,54.778327999999988],[-130.43777499999993,54.773605000000032],[-130.43582199999997,54.763329000000113],[-130.43972799999989,54.75110600000005],[-130.45388799999989,54.719154000000117],[-130.45748900000001,54.712769000000094],[-130.46331799999996,54.708603000000039],[-130.51834099999996,54.70249200000012]],[[-57.940833999999938,54.911933999999974],[-57.985832000000016,54.870826999999963],[-57.98860899999994,54.86721],[-57.991942999999935,54.833878000000084],[-57.983886999999868,54.802215999999987],[-57.980277999999942,54.798607000000118],[-57.971663999999976,54.798050000000046],[-57.965553,54.799437999999952],[-57.958892999999989,54.803046999999992],[-57.955558999999994,54.805824000000086],[-57.923888999999974,54.823326000000122],[-57.871666000000005,54.83166499999993],[-57.864723000000026,54.832214000000079],[-57.859726000000023,54.83027600000014],[-57.843613000000005,54.820549000000028],[-57.841110000000015,54.816939999999988],[-57.841667000000029,54.81249200000002],[-57.848334999999963,54.806938000000059],[-57.875,54.79332700000009],[-57.881942999999922,54.790549999999996],[-58.022774000000027,54.755554000000018],[-58.031386999999995,54.753882999999973],[-58.040000999999961,54.75277699999998],[-58.04999499999991,54.753052000000139],[-58.119995000000017,54.755554000000018],[-58.139167999999927,54.757216999999969],[-58.15943900000002,54.76138300000008],[-58.174171000000001,54.767768999999987],[-58.176948999999979,54.770828000000108],[-58.172378999999978,54.797314000000085],[-58.184173999999985,54.808471999999938],[-58.219718999999941,54.825829000000056],[-58.222771000000023,54.83027600000014],[-58.224715999999944,54.83526599999999],[-58.225554999999986,54.850273000000016],[-58.225554999999986,54.862770000000012],[-58.224998000000028,54.866936000000067],[-58.218886999999938,54.875267000000008],[-58.215836000000024,54.878044000000102],[-58.209723999999937,54.877487000000031],[-58.049445999999932,54.893326000000116],[-57.967773000000022,54.919159000000036],[-57.942771999999991,54.924995000000138],[-57.94027699999998,54.923607000000004],[-57.938605999999993,54.918602000000135],[-57.940833999999938,54.911933999999974]],[[-79.125823999999909,54.897217000000012],[-79.134445000000028,54.895827999999995],[-79.235000999999954,54.896660000000111],[-79.515288999999939,54.840546000000074],[-79.660277999999948,54.805549999999926],[-79.763625999999988,54.771660000000054],[-79.774170000000026,54.773048000000131],[-79.776947000000007,54.778046000000131],[-79.773330999999985,54.783333000000084],[-79.768889999999942,54.787773000000072],[-79.725554999999986,54.818886000000077],[-79.714721999999995,54.826385000000073],[-79.686934999999949,54.838326000000052],[-79.656661999999983,54.846656999999993],[-79.467223999999931,54.888328999999999],[-79.458617999999944,54.88999200000012],[-79.430557000000022,54.892769000000044],[-79.419448999999872,54.892769000000044],[-79.339446999999893,54.896941999999967],[-79.164169000000015,54.925552000000039],[-79.053878999999995,54.946655000000078],[-79.041945999999882,54.945824000000073],[-79.015014999999948,54.938324000000023],[-79.015014999999948,54.932213000000104],[-79.027221999999995,54.925270000000125],[-79.05749499999996,54.917770000000075],[-79.102782999999988,54.903877000000023],[-79.125823999999909,54.897217000000012]],[[-58.675277999999992,54.914153999999996],[-58.68360899999999,54.913048000000003],[-58.752501999999993,54.915825000000041],[-58.757225000000005,54.916100000000085],[-58.760558999999887,54.920546999999942],[-58.759170999999981,54.926102000000071],[-58.754723000000013,54.932495000000017],[-58.701667999999927,54.999161000000015],[-58.697495000000004,55.003326000000015],[-58.691108999999983,55.006942999999978],[-58.684722999999906,55.008331000000055],[-58.676391999999908,55.009437999999989],[-58.660277999999948,55.0086060000001],[-58.653609999999901,55.005554000000018],[-58.652778999999953,55.00110600000005],[-58.657500999999968,54.996100999999953],[-58.662772999999902,54.992218000000037],[-58.658332999999971,54.962494000000049],[-58.656661999999983,54.94221500000009],[-58.658607000000018,54.932495000000017],[-58.663054999999986,54.922493000000031],[-58.668892000000028,54.917770000000075],[-58.675277999999992,54.914153999999996]],[[-130.38528400000001,54.769988999999953],[-130.39916999999997,54.764717000000019],[-130.40917999999999,54.767212000000086],[-130.41445899999997,54.770828000000108],[-130.45556599999998,54.813324000000136],[-130.45944199999997,54.81749700000006],[-130.46194499999996,54.822220000000073],[-130.459991,54.828330999999991],[-130.41833499999996,54.853324999999927],[-130.38528400000001,54.868881000000101],[-130.34304800000001,54.894996999999989],[-130.27029400000004,54.950272000000041],[-130.25,54.969711000000132],[-130.22778299999993,54.997214999999983],[-130.2133179999999,55.012496999999996],[-130.20083599999992,55.019714000000079],[-130.18499800000001,55.023323000000119],[-130.17529300000001,55.023048000000074],[-130.16833500000001,55.019714000000079],[-130.16500899999988,55.014160000000118],[-130.16027799999995,55.004439999999988],[-130.146973,54.975822000000051],[-130.14529399999998,54.965271000000143],[-130.14556899999997,54.959717000000126],[-130.14611799999994,54.954163000000108],[-130.14974999999998,54.947487000000024],[-130.16332999999997,54.931381000000044],[-130.27029400000004,54.830826000000002],[-130.38528400000001,54.769988999999953]],[[-82.964721999999995,55.263611000000083],[-82.970000999999968,55.259720000000016],[-83.014450000000011,55.269714000000022],[-83.031951999999876,55.273880000000133],[-83.035278000000005,55.278877000000023],[-83.027495999999928,55.281380000000013],[-83.016953000000001,55.281662000000097],[-82.990279999999984,55.280548000000124],[-82.980835000000013,55.278877000000023],[-82.963332999999977,55.273880000000133],[-82.96166999999997,55.269157000000121],[-82.964721999999995,55.263611000000083]],[[-77.592772999999909,55.435265000000129],[-77.633330999999998,55.424438000000123],[-77.644164999999873,55.425827000000083],[-77.449431999999945,55.533882000000062],[-77.336120999999991,55.604439000000127],[-77.323058999999944,55.610550000000046],[-77.221389999999928,55.653602999999919],[-77.213897999999915,55.65526600000004],[-77.205276000000026,55.65387700000008],[-77.199996999999939,55.65026899999998],[-77.201110999999912,55.64415699999995],[-77.210555999999997,55.639717000000132],[-77.252227999999945,55.618050000000096],[-77.389174999999966,55.546386999999982],[-77.452224999999942,55.512772000000098],[-77.474166999999966,55.498046999999929],[-77.484160999999915,55.489158999999972],[-77.49499499999996,55.481377000000009],[-77.500564999999938,55.478325000000098],[-77.55221599999993,55.453049000000021],[-77.592772999999909,55.435265000000129]],[[-60.970832999999914,55.869437999999946],[-60.98833499999995,55.86721],[-60.998336999999992,55.867767000000072],[-61.008895999999936,55.869156000000089],[-61.016944999999964,55.873046999999985],[-61.051666000000012,55.901100000000099],[-61.056664000000012,55.905823000000055],[-61.059165999999948,55.909988000000055],[-61.070557000000008,55.938599000000011],[-61.065551999999968,55.944153000000028],[-61.047782999999981,55.945541000000105],[-61.036948999999993,55.9447100000001],[-60.96805599999999,55.936652999999922],[-60.948607999999979,55.930549999999982],[-60.908332999999971,55.898330999999985],[-60.906386999999995,55.893326000000116],[-60.911109999999951,55.887772000000098],[-60.917503000000011,55.884163000000115],[-60.970832999999914,55.869437999999946]],[[-60.858611999999994,55.864716000000044],[-60.876105999999993,55.863883999999985],[-60.892501999999979,55.864441000000056],[-60.898612999999955,55.86721],[-60.902221999999995,55.871376000000112],[-60.900551000000007,55.876380999999981],[-60.873610999999869,55.94360400000005],[-60.869995000000017,55.949432000000002],[-60.86500499999994,55.95277400000009],[-60.851944000000003,55.95526899999993],[-60.748336999999935,55.944153000000028],[-60.74138599999992,55.942764000000011],[-60.742500000000007,55.939156000000082],[-60.747498000000007,55.931663999999955],[-60.691939999999875,55.925270000000125],[-60.68638599999997,55.92193600000013],[-60.688048999999978,55.917213000000118],[-60.692771999999991,55.911658999999986],[-60.705001999999979,55.903046000000018],[-60.718604999999911,55.896385000000066],[-60.756393000000003,55.880272000000048],[-60.778610000000015,55.876099000000067],[-60.840836000000024,55.86610399999995],[-60.858611999999994,55.864716000000044]],[[-79.123046999999929,55.789993000000038],[-79.130553999999961,55.788887000000045],[-79.135559000000001,55.789162000000033],[-79.137786999999946,55.790549999999939],[-79.136123999999938,55.794158999999979],[-79.131667999999934,55.799995000000024],[-79.126099000000011,55.803879000000052],[-79.121932999999956,55.808601000000124],[-79.108886999999925,55.823883000000137],[-79.102782999999988,55.833054000000118],[-79.039168999999958,55.952492000000063],[-79.03083799999996,55.968596999999932],[-79.027221999999995,55.976935999999966],[-79.022232000000031,55.996384000000091],[-79.009353999999973,56.063614000000086],[-78.960007000000019,56.083054000000061],[-78.957503999999972,56.083602999999982],[-78.952788999999939,56.080826000000116],[-78.949157999999898,56.071663000000115],[-78.939712999999983,56.02526899999998],[-79.054442999999935,55.865547000000049],[-79.089995999999985,55.816939999999988],[-79.104445999999996,55.80082700000014],[-79.116652999999985,55.792496000000028],[-79.123046999999929,55.789993000000038]],[[-60.943329000000006,56.006660000000011],[-61.040557999999976,56.005272000000105],[-61.0819469999999,56.011382999999967],[-61.141387999999949,56.020545999999968],[-61.17111199999988,56.028602999999976],[-61.18721800000003,56.033882000000119],[-61.215836000000024,56.046387000000038],[-61.220832999999971,56.050827000000083],[-61.228333000000021,56.06332400000008],[-61.232772999999952,56.072769000000108],[-61.233611999999994,56.085548000000017],[-61.232772999999952,56.091103000000089],[-61.226944000000003,56.098045000000013],[-61.217498999999975,56.100547999999947],[-61.211670000000026,56.101387000000102],[-61.08916499999998,56.169991000000095],[-61.059165999999948,56.159714000000122],[-61.045836999999892,56.153877000000136],[-60.944442999999978,56.094993999999986],[-60.943610999999976,56.090271000000143],[-60.934440999999993,56.015830999999935],[-60.934722999999963,56.011382999999967],[-60.943329000000006,56.006660000000011]],[[-61.623610999999983,56.399993999999992],[-61.546668999999952,56.390830999999991],[-61.493057000000022,56.404991000000052],[-61.482773000000009,56.406654000000003],[-61.474716000000001,56.406654000000003],[-61.468329999999924,56.404433999999981],[-61.415275999999949,56.376656000000025],[-61.411667000000023,56.372214999999926],[-61.411109999999951,56.367210000000057],[-61.412216000000001,56.326659999999947],[-61.416106999999954,56.322220000000129],[-61.424171000000001,56.32027400000004],[-61.482773000000009,56.309990000000028],[-61.569449999999904,56.320549000000085],[-61.579726999999991,56.322494999999947],[-61.599723999999924,56.32777399999992],[-61.686385999999857,56.352776000000063],[-61.719993999999986,56.365829000000019],[-61.788895000000025,56.405822999999998],[-61.793335000000013,56.408882000000119],[-61.796111999999937,56.41304800000006],[-61.790557999999919,56.415824999999927],[-61.783889999999872,56.415824999999927],[-61.677779999999927,56.405548000000124],[-61.623610999999983,56.399993999999992]],[[-78.839995999999928,56.129990000000078],[-78.927490000000034,56.113884000000098],[-78.933318999999983,56.115547000000049],[-78.930556999999965,56.128601000000117],[-78.916945999999996,56.172493000000145],[-78.908339999999896,56.182495000000131],[-78.903884999999946,56.187209999999993],[-78.883330999999998,56.201935000000105],[-78.846389999999985,56.2347180000001],[-78.830291999999929,56.253326000000129],[-78.825287000000003,56.262772000000098],[-78.813323999999966,56.304709999999943],[-78.809432999999956,56.338882000000126],[-78.813888999999961,56.343323000000055],[-78.834732000000031,56.345543000000021],[-78.832503999999915,56.350829999999974],[-78.762512000000015,56.424713000000111],[-78.751403999999923,56.432495000000074],[-78.731673999999941,56.440544000000102],[-78.694992000000013,56.443878000000097],[-78.686385999999914,56.443320999999969],[-78.667220999999984,56.439713000000097],[-78.661666999999966,56.436104000000057],[-78.660003999999958,56.430550000000096],[-78.650832999999921,56.289161999999976],[-78.652785999999935,56.241936000000067],[-78.655563000000029,56.223602000000142],[-78.676392000000021,56.181106999999997],[-78.688599000000011,56.172767999999962],[-78.839995999999928,56.129990000000078]],[[-79.626937999999996,56.265273999999977],[-79.635833999999988,56.264998999999989],[-79.636672999999973,56.266388000000006],[-79.636397999999872,56.269157000000121],[-79.609436000000017,56.319716999999969],[-79.538605000000018,56.433051999999975],[-79.53443900000002,56.437491999999963],[-79.523894999999982,56.442764000000068],[-79.511123999999938,56.446381000000031],[-79.496947999999975,56.448601000000053],[-79.492217999999923,56.446937999999932],[-79.490554999999915,56.440826000000129],[-79.510833999999932,56.397491000000002],[-79.557769999999891,56.305267000000015],[-79.561110999999926,56.299164000000076],[-79.565552000000025,56.293884000000048],[-79.569457999999997,56.289992999999981],[-79.619445999999868,56.267211999999972],[-79.626937999999996,56.265273999999977]],[[-79.619995000000017,56.385268999999994],[-79.638061999999991,56.360550000000046],[-79.649444999999957,56.346382000000006],[-79.663329999999974,56.333878000000141],[-79.682495000000017,56.317496999999946],[-79.701110999999969,56.306381000000044],[-79.714447000000007,56.299995000000081],[-79.906661999999926,56.227211000000125],[-79.928328999999962,56.219711000000075],[-79.986114999999984,56.199715000000083],[-80.01916499999993,56.191376000000048],[-80.060546999999985,56.18443300000007],[-80.082503999999915,56.186653000000092],[-80.092223999999987,56.188324000000136],[-80.100554999999986,56.191376000000048],[-80.107497999999907,56.194992000000127],[-80.109726000000023,56.197768999999994],[-80.110275000000001,56.203323000000012],[-80.100280999999995,56.239158999999972],[-80.098617999999874,56.244156000000089],[-80.055267000000015,56.303604000000121],[-80.044448999999929,56.310822000000144],[-80.040558000000033,56.312767000000122],[-80.022506999999962,56.319716999999969],[-79.867492999999968,56.357498000000135],[-79.795546999999942,56.366661000000136],[-79.756667999999991,56.361937999999952],[-79.72444200000001,56.362770000000069],[-79.69888299999991,56.368880999999988],[-79.679169000000002,56.378326000000015],[-79.656386999999995,56.392769000000101],[-79.642501999999979,56.404433999999981],[-79.618880999999931,56.426941000000056],[-79.614440999999999,56.431664000000069],[-79.604171999999949,56.444153000000085],[-79.598052999999936,56.454437000000098],[-79.591384999999946,56.469154000000117],[-79.588333000000034,56.493881000000044],[-79.585281000000009,56.499161000000072],[-79.582503999999915,56.501663000000008],[-79.549728000000016,56.525269000000037],[-79.543334999999956,56.527771000000143],[-79.542770000000019,56.522217000000126],[-79.549438000000009,56.508049000000085],[-79.613891999999964,56.39527099999998],[-79.619995000000017,56.385268999999994]],[[-61.435829000000012,56.541382000000112],[-61.168059999999969,56.474709000000018],[-61.149993999999992,56.445540999999992],[-61.148887999999943,56.441101000000003],[-61.154442000000017,56.438599000000067],[-61.163612000000001,56.436653000000035],[-61.181945999999925,56.435265000000129],[-61.200278999999966,56.435265000000129],[-61.220832999999971,56.435546999999985],[-61.517501999999865,56.446937999999932],[-61.609169000000009,56.46166199999999],[-61.630553999999961,56.465270999999973],[-61.642226999999991,56.486382000000049],[-61.637221999999952,56.489716000000044],[-61.629997000000003,56.490547000000049],[-61.546394000000021,56.488044999999943],[-61.538612000000001,56.485824999999977],[-61.525832999999864,56.478874000000019],[-61.512778999999966,56.474991000000102],[-61.438048999999921,56.476379000000009],[-61.423057999999969,56.479156000000103],[-61.417777999999998,56.483330000000137],[-61.418335000000013,56.488327000000027],[-61.422501000000011,56.490547000000049],[-61.455276000000026,56.496383999999978],[-61.496666000000005,56.500000000000057],[-61.527221999999938,56.501663000000008],[-61.624167999999997,56.503882999999973],[-61.633330999999998,56.506386000000134],[-61.634445000000028,56.512497000000053],[-61.631942999999978,56.51638800000012],[-61.602225999999916,56.552773000000059],[-61.595832999999971,56.556380999999988],[-61.588332999999977,56.558044000000052],[-61.576667999999984,56.557769999999948],[-61.561667999999941,56.554161000000136],[-61.558051999999975,56.55193300000002],[-61.525947999999971,56.550212999999985],[-61.459166999999923,56.54583000000008],[-61.435829000000012,56.541382000000112]],[[-79.021666999999923,56.426941000000056],[-79.009445000000028,56.426383999999985],[-78.98832699999997,56.426941000000056],[-78.949157999999898,56.43082400000003],[-78.943054000000018,56.430550000000096],[-78.93582200000003,56.428878999999995],[-78.928878999999938,56.425827000000083],[-78.92471299999994,56.419441000000006],[-78.922775000000001,56.415268000000026],[-78.921111999999994,56.409714000000065],[-78.920546999999942,56.403320000000008],[-78.923049999999932,56.386940000000095],[-78.93638599999997,56.317496999999946],[-78.943328999999949,56.284996000000035],[-78.949996999999939,56.282493999999986],[-78.955276000000026,56.27915999999999],[-78.961394999999868,56.271378000000027],[-79.029174999999952,56.172493000000145],[-79.06138599999997,56.124435000000005],[-79.071670999999981,56.104996000000085],[-79.085007000000019,56.07749200000012],[-79.094161999999983,56.054993000000138],[-79.129990000000021,55.989432999999963],[-79.175277999999935,55.92332499999992],[-79.195266999999944,55.891937000000098],[-79.203613000000018,55.894157000000121],[-79.166267000000005,55.973881000000006],[-79.122116000000005,56.046715000000006],[-79.061935000000005,56.148605000000032],[-79.022781000000009,56.202492000000007],[-79.008895999999993,56.221656999999936],[-78.990829000000019,56.261664999999994],[-78.985824999999977,56.273605000000089],[-78.972777999999948,56.306656000000032],[-78.970275999999956,56.314156000000082],[-78.967772999999909,56.323608000000036],[-78.966109999999901,56.336105000000032],[-78.970275999999956,56.378043999999989],[-78.97084000000001,56.3836060000001],[-78.977218999999991,56.388602999999989],[-78.983321999999987,56.389716999999962],[-78.998885999999914,56.384163000000001],[-79.043334999999956,56.360550000000046],[-79.055267000000015,56.344437000000028],[-79.062209999999993,56.329720000000009],[-79.089172000000019,56.267769000000044],[-79.091109999999958,56.263054000000011],[-79.093062999999972,56.256943000000092],[-79.092948999999976,56.231716000000006],[-79.095443999999986,56.2190480000001],[-79.093948000000012,56.213717999999972],[-79.092781000000002,56.211551999999983],[-79.089110999999946,56.211884000000111],[-79.083327999999995,56.174164000000019],[-79.212783999999999,55.954163000000108],[-79.236114999999927,55.917496000000085],[-79.259444999999914,55.886108000000092],[-79.275283999999999,55.870270000000062],[-79.283324999999991,55.864441000000056],[-79.286666999999852,55.866661000000079],[-79.286117999999988,55.869987000000094],[-79.278060999999923,55.885551000000021],[-79.267226999999934,55.903046000000018],[-79.226668999999958,55.962493999999992],[-79.183608999999933,56.037497999999971],[-79.139998999999932,56.115273000000116],[-79.133895999999993,56.126656000000082],[-79.132721000000004,56.175770000000057],[-79.138564999999858,56.205269000000101],[-79.139724999999999,56.20776699999999],[-79.143561999999974,56.211266000000137],[-79.15055799999999,56.233046999999999],[-79.160552999999993,56.231377000000066],[-79.170272999999952,56.225548000000003],[-79.205565999999976,56.190826000000015],[-79.243880999999988,56.151100000000042],[-79.256393000000003,56.13110400000005],[-79.270844000000011,56.104712999999947],[-79.277495999999985,56.090828000000045],[-79.284164000000033,56.078049000000021],[-79.299727999999959,56.051658999999972],[-79.309158000000025,56.036385000000109],[-79.323623999999938,56.016936999999984],[-79.358611999999937,55.974434000000088],[-79.452498999999989,55.879990000000134],[-79.479996000000028,55.863883999999985],[-79.493056999999965,55.858887000000038],[-79.500564999999995,55.856659000000093],[-79.510559000000001,55.855553000000043],[-79.520279000000016,55.854713000000004],[-79.532500999999968,55.854996000000142],[-79.567779999999971,55.864716000000044],[-79.593886999999938,55.874435000000062],[-79.604996000000028,55.881660000000124],[-79.78195199999999,55.78804800000006],[-79.763061999999934,55.814156000000025],[-79.598052999999936,55.981658999999979],[-79.486937999999952,56.087212000000022],[-79.474716000000001,56.098327999999981],[-79.470275999999956,56.104439000000013],[-79.470551,56.112770000000125],[-79.472504000000015,56.11693600000001],[-79.478881999999999,56.123322000000087],[-79.497222999999963,56.133605999999986],[-79.513061999999991,56.134995000000117],[-79.523055999999997,56.133880999999974],[-79.537216000000001,56.12971500000009],[-79.550277999999935,56.123322000000087],[-79.567504999999983,56.112770000000125],[-79.59722899999997,56.091377000000023],[-79.645003999999972,56.050545],[-79.819457999999941,55.901100000000099],[-79.831680000000006,55.88999200000012],[-79.846663999999976,55.874161000000129],[-79.858046999999999,55.859993000000088],[-79.863892000000021,55.850830000000087],[-79.865829000000019,55.847214000000008],[-79.909164000000033,55.840546000000074],[-79.985824999999977,55.898048000000017],[-79.961944999999957,55.960274000000027],[-79.774444999999957,56.112213000000054],[-79.668059999999912,56.189987000000031],[-79.648620999999991,56.198326000000066],[-79.642226999999991,56.201385000000073],[-79.587783999999999,56.230270000000132],[-79.536330999999961,56.295052000000055],[-79.526839999999993,56.304214000000115],[-79.516173999999978,56.319881000000066],[-79.494666999999993,56.367214000000047],[-79.48733500000003,56.402714000000117],[-79.458892999999875,56.464157],[-79.458617999999944,56.468323000000112],[-79.458617999999944,56.478600000000085],[-79.466109999999958,56.498878000000104],[-79.474441999999954,56.521102999999982],[-79.471389999999928,56.544441000000063],[-79.466109999999958,56.54833200000013],[-79.456664999999987,56.55332199999998],[-79.448883000000023,56.554435999999953],[-79.445267000000001,56.553604000000064],[-79.441939999999875,56.551384000000041],[-79.438599000000011,56.547775000000058],[-79.418334999999956,56.490829000000076],[-79.419448999999872,56.443603999999937],[-79.443000999999981,56.393436000000008],[-79.474998000000028,56.320438000000138],[-79.531386999999995,56.206940000000145],[-79.514450000000011,56.186378000000047],[-79.461670000000026,56.193321000000026],[-79.438889000000017,56.197212000000093],[-79.427215999999987,56.203049000000078],[-79.416397000000018,56.212212000000079],[-79.413054999999986,56.216660000000047],[-79.309998000000007,56.424163999999962],[-79.301101999999958,56.447212000000036],[-79.298049999999932,56.459435000000099],[-79.293335000000013,56.488044999999943],[-79.291672000000005,56.498878000000104],[-79.286391999999921,56.570273999999984],[-79.139998999999932,56.546386999999982],[-79.133057000000008,56.542770000000019],[-79.129990000000021,56.537773000000072],[-79.125548999999978,56.514159999999947],[-79.121932999999956,56.495543999999938],[-79.119995000000017,56.489989999999977],[-79.111938000000009,56.47526600000009],[-79.099990999999989,56.463051000000007],[-79.091384999999889,56.454437000000098],[-79.075561999999934,56.444153000000085],[-79.055557000000022,56.433876000000112],[-79.038895000000025,56.428878999999995],[-79.021666999999923,56.426941000000056]],[[-79.141952999999944,56.616661000000079],[-79.15194699999995,56.616386000000091],[-79.260009999999966,56.628044000000102],[-79.268889999999999,56.629158000000075],[-79.274719000000005,56.632209999999986],[-79.277495999999985,56.637215000000026],[-79.279998999999975,56.648880000000133],[-79.280288999999982,56.654990999999995],[-79.275009000000011,56.667213000000004],[-79.271941999999967,56.67193600000013],[-79.254729999999881,56.679993000000138],[-79.244155999999919,56.682495000000017],[-79.218886999999938,56.684990000000028],[-79.208892999999989,56.683876000000055],[-79.193603999999937,56.678329000000133],[-79.160004000000015,56.65776800000009],[-79.151108000000022,56.649994000000106],[-79.141678000000013,56.635826000000066],[-79.138061999999991,56.626099000000124],[-79.138901000000033,56.619986999999924],[-79.141952999999944,56.616661000000079]],[[-61.1875,56.586104999999975],[-61.211670000000026,56.581664999999987],[-61.217498999999975,56.58277099999998],[-61.222770999999966,56.588882000000069],[-61.231667000000016,56.611663999999962],[-61.231941000000006,56.61971299999999],[-61.226104999999961,56.626656000000025],[-61.165832999999964,56.684433000000126],[-61.159163999999919,56.688324000000023],[-61.150276000000019,56.689430000000073],[-61.131942999999978,56.68721000000005],[-61.0819469999999,56.678878999999938],[-61.0777819999999,56.674995000000138],[-61.057776999999987,56.628875999999991],[-61.059440999999993,56.626380999999981],[-61.06361400000003,56.624160999999958],[-61.103888999999867,56.606658999999922],[-61.1875,56.586104999999975]],[[-79.560821999999973,56.617767000000129],[-79.567504999999983,56.615273000000002],[-79.573333999999988,56.618881000000101],[-79.583618000000001,56.648048000000017],[-79.583892999999932,56.65277100000003],[-79.589995999999985,56.768326000000002],[-79.587508999999898,56.788886999999988],[-79.581679999999949,56.80721299999999],[-79.578339000000028,56.81249200000002],[-79.57417299999986,56.815825999999959],[-79.567504999999983,56.817772000000048],[-79.516662999999937,56.78555300000005],[-79.496384000000035,56.766936999999984],[-79.476943999999946,56.72165700000005],[-79.474716000000001,56.689156000000139],[-79.486114999999984,56.658043000000134],[-79.488891999999964,56.655548000000067],[-79.560821999999973,56.617767000000129]],[[-79.881942999999978,56.743607000000054],[-79.888610999999969,56.741104000000064],[-79.904723999999987,56.741661000000136],[-79.923889000000031,56.751389000000017],[-79.930831999999953,56.754997000000117],[-79.941101000000003,56.763610999999969],[-79.944442999999922,56.767769000000101],[-79.947494999999947,56.773323000000119],[-79.957229999999925,56.799164000000019],[-79.958892999999932,56.805267000000129],[-79.958618000000001,56.811377999999991],[-79.954726999999934,56.823607999999922],[-79.945830999999998,56.833603000000039],[-79.919158999999922,56.858330000000137],[-79.915008999999998,56.861382000000049],[-79.865829000000019,56.866104000000121],[-79.858046999999999,56.865829000000133],[-79.843886999999995,56.858330000000137],[-79.83444199999991,56.852492999999981],[-79.819457999999941,56.84027100000003],[-79.81639100000001,56.835548000000017],[-79.814712999999927,56.829162999999994],[-79.81361400000003,56.816939999999988],[-79.833892999999989,56.793610000000001],[-79.83805799999999,56.788886999999988],[-79.872222999999906,56.752220000000023],[-79.876663000000008,56.747772000000055],[-79.881942999999978,56.743607000000054]],[[-79.750564999999938,56.905823000000055],[-79.717498999999918,56.813605999999993],[-79.71833799999996,56.80721299999999],[-79.721114999999884,56.802773000000002],[-79.725554999999986,56.798049999999989],[-79.730834999999956,56.794158999999922],[-79.749725000000012,56.783607000000131],[-79.757507000000032,56.781936999999971],[-79.781113000000005,56.784721000000104],[-79.78832999999986,56.785828000000038],[-79.793555999999967,56.795792000000063],[-79.794373000000007,56.832947000000104],[-79.793143999999984,56.859890000000064],[-79.82376899999997,56.895003999999972],[-79.852753000000007,56.885204000000044],[-79.894164999999873,56.881935000000112],[-79.897506999999962,56.884995000000004],[-79.89805599999994,56.891106000000036],[-79.896118000000001,56.897217000000126],[-79.892776000000026,56.90248900000006],[-79.858611999999937,56.938599000000011],[-79.851943999999946,56.940268999999944],[-79.808333999999945,56.948326000000122],[-79.799438000000009,56.949431999999945],[-79.790833000000021,56.947769000000051],[-79.784164000000033,56.940826000000072],[-79.753615999999965,56.910820000000001],[-79.750564999999938,56.905823000000055]],[[-61.429211000000009,56.929707000000008],[-61.397204999999985,56.927715000000035],[-61.37261199999989,56.930972999999994],[-61.354888999999957,56.93639799999994],[-61.343319000000008,56.934227000000078],[-61.340785999999866,56.930248000000006],[-61.355277999999998,56.910820000000001],[-61.400275999999963,56.884720000000129],[-61.404716000000008,56.87971500000009],[-61.399444999999957,56.875824000000023],[-61.378052000000025,56.871658000000139],[-61.360282999999924,56.866104000000121],[-61.352225999999973,56.857773000000066],[-61.355834999999956,56.852776000000119],[-61.361670999999944,56.848045000000013],[-61.375831999999946,56.840546000000018],[-61.443168999999898,56.817719000000125],[-61.48966999999999,56.807549000000108],[-61.563331999999946,56.784721000000104],[-61.570281999999906,56.781661999999983],[-61.576949999999954,56.778046000000074],[-61.585555999999997,56.766388000000063],[-61.584998999999982,56.761383000000023],[-61.58277899999996,56.756660000000011],[-61.575561999999991,56.753052000000082],[-61.564720000000023,56.751663000000121],[-61.555831999999953,56.752777000000094],[-61.540839999999946,56.757773999999984],[-61.526664999999866,56.76527400000009],[-61.515282000000013,56.774712000000079],[-61.497653999999955,56.78694200000001],[-61.488975999999923,56.789295000000038],[-61.476315,56.79019900000003],[-61.434002000000021,56.783688000000097],[-61.393313999999918,56.778988000000027],[-61.386626999999976,56.775913000000003],[-61.382107000000019,56.771393000000103],[-61.373965999999996,56.74390800000009],[-61.368724999999984,56.695988],[-61.368632999999988,56.6857720000001],[-61.370804000000021,56.675282000000038],[-61.378399000000002,56.632607000000007],[-61.379119999999944,56.626820000000066],[-61.39358900000002,56.617779000000041],[-61.409137999999928,56.615608000000009],[-61.444217999999978,56.619587000000081],[-61.484000999999978,56.641647000000091],[-61.521975999999938,56.669857000000093],[-61.561034999999947,56.682513999999969],[-61.588157999999964,56.703853999999978],[-61.605334999999968,56.713798999999995],[-61.635353000000009,56.731518000000051],[-61.644393999999977,56.734775999999954],[-61.644031999999868,56.73802900000004],[-61.634991000000014,56.770938999999998],[-61.624865999999997,56.82591200000013],[-61.632098999999982,56.859547000000077],[-61.588698999999963,56.893539000000089],[-61.534812999999986,56.901859000000002],[-61.522517999999934,56.914879000000099],[-61.5261339999999,56.933323000000087],[-61.523963999999921,56.940193000000079],[-61.499370999999996,56.952849999999955],[-61.473694000000023,56.95900000000006],[-61.460673999999983,56.955021000000045],[-61.446571000000006,56.935131000000126],[-61.429211000000009,56.929707000000008]],[[-76.621108999999933,57.075554000000125],[-76.646956999999986,57.073050999999964],[-76.660278000000005,57.075828999999999],[-76.671386999999925,57.083327999999995],[-76.675551999999925,57.087769000000094],[-76.681106999999997,57.097771000000023],[-76.709732000000031,57.182213000000047],[-76.708617999999944,57.18832400000008],[-76.678329000000019,57.205269000000044],[-76.669998000000021,57.20249199999995],[-76.667496000000028,57.195541000000048],[-76.626099000000011,57.142769000000101],[-76.618880999999988,57.080276000000026],[-76.621108999999933,57.075554000000125]],[[-61.621666000000005,57.335548000000131],[-61.611114999999984,57.334991000000002],[-61.605559999999912,57.335548000000131],[-61.594443999999953,57.334159999999997],[-61.589995999999985,57.330275999999969],[-61.589438999999913,57.325272000000041],[-61.59194199999996,57.321380999999974],[-61.608337000000006,57.308327000000077],[-61.652221999999995,57.290549999999996],[-61.658051,57.290276000000063],[-61.734725999999966,57.290276000000063],[-61.739998000000014,57.291939000000013],[-61.753333999999938,57.302490000000091],[-61.763617999999951,57.311661000000072],[-61.766662999999937,57.315269000000001],[-61.767776000000026,57.319716999999969],[-61.768607999999915,57.324996999999996],[-61.767501999999979,57.328330999999991],[-61.752228000000002,57.360275000000001],[-61.74888599999997,57.365546999999935],[-61.74500299999994,57.369155999999975],[-61.726944000000003,57.374435000000119],[-61.702498999999989,57.372765000000129],[-61.693329000000006,57.368050000000096],[-61.677497999999957,57.357216000000051],[-61.632216999999912,57.337769000000037],[-61.621666000000005,57.335548000000131]],[[-76.715012000000002,57.292770000000019],[-76.72972099999987,57.289718999999991],[-76.734726000000023,57.291382000000112],[-76.740279999999984,57.294441000000063],[-76.744445999999982,57.299438000000009],[-76.793059999999969,57.374709999999936],[-76.821944999999914,57.419715999999994],[-76.823623999999995,57.424713000000111],[-76.821670999999981,57.429436000000067],[-76.812774999999931,57.428329000000133],[-76.78443900000002,57.41693900000007],[-76.761397999999986,57.40387700000008],[-76.735549999999989,57.386383000000137],[-76.731109999999944,57.381934999999999],[-76.725554999999986,57.372765000000129],[-76.721114999999941,57.356658999999979],[-76.708054000000004,57.29583000000008],[-76.715012000000002,57.292770000000019]],[[-61.655273000000022,57.391380000000083],[-61.675003000000004,57.389992000000007],[-61.839721999999995,57.408043000000134],[-61.860000999999954,57.412491000000102],[-61.877494999999954,57.418602000000021],[-61.889998999999989,57.426102000000071],[-61.894446999999957,57.42971799999998],[-61.897780999999952,57.433327000000133],[-61.900275999999963,57.437492000000134],[-61.897498999999982,57.444153000000085],[-61.813003999999921,57.473709000000042],[-61.772738999999945,57.495097999999984],[-61.742774999999995,57.534995999999978],[-61.737220999999977,57.536942000000067],[-61.719993999999986,57.536384999999996],[-61.648055999999997,57.530272999999966],[-61.643889999999999,57.522766000000047],[-61.634726999999998,57.509438000000046],[-61.613616999999977,57.416100000000142],[-61.615279999999984,57.409157000000107],[-61.634170999999924,57.398880000000133],[-61.648337999999967,57.393608000000029],[-61.655273000000022,57.391380000000083]],[[-61.878333999999995,57.46305099999995],[-61.926948999999979,57.45249200000012],[-61.937499999999943,57.453049000000021],[-61.946945000000028,57.454993999999999],[-61.955832999999927,57.458046000000081],[-61.962776000000019,57.462212000000022],[-62.012504999999919,57.508331000000112],[-62.021942000000024,57.521102999999925],[-62.02305599999994,57.534164000000033],[-62.020279000000016,57.540276000000063],[-62.014450000000011,57.549438000000123],[-61.992500000000007,57.569160000000011],[-61.974997999999971,57.581383000000073],[-61.968886999999995,57.584434999999985],[-61.953056000000004,57.59027100000003],[-61.944442999999978,57.590828000000101],[-61.878052000000025,57.584991000000002],[-61.855002999999954,57.580551000000128],[-61.833327999999995,57.574440000000038],[-61.817504999999926,57.567215000000033],[-61.783614999999941,57.550545000000056],[-61.781386999999995,57.548050000000046],[-61.778885000000002,57.543883999999935],[-61.77694699999995,57.52388000000002],[-61.777778999999953,57.518326000000059],[-61.779441999999904,57.513611000000026],[-61.783057999999869,57.508331000000112],[-61.864165999999955,57.466385000000116],[-61.878333999999995,57.46305099999995]],[[-79.797501000000011,57.418884000000048],[-79.801666000000012,57.415825000000098],[-79.805556999999965,57.418053000000043],[-79.835830999999985,57.460274000000084],[-79.826949999999897,57.53804800000006],[-79.808883999999978,57.561661000000015],[-79.792769999999962,57.578880000000083],[-79.749160999999958,57.609718000000044],[-79.740828999999962,57.615547000000106],[-79.734160999999915,57.618881000000044],[-79.727782999999931,57.61721],[-79.723052999999993,57.612770000000012],[-79.706116000000009,57.585548000000074],[-79.70666499999993,57.580826000000002],[-79.704726999999991,57.576660000000061],[-79.698607999999979,57.563324000000136],[-79.695830999999998,57.531661999999983],[-79.698607999999979,57.519989000000123],[-79.705001999999922,57.508605999999929],[-79.712508999999955,57.500548999999978],[-79.797501000000011,57.418884000000048]],[[-61.688605999999936,57.713051000000121],[-61.696105999999929,57.712212000000136],[-61.757506999999976,57.715546000000131],[-61.768889999999999,57.716934000000037],[-61.894164999999987,57.754166000000055],[-61.896950000000004,57.758331000000055],[-61.896110999999962,57.769714000000079],[-61.891669999999976,57.779160000000047],[-61.865836999999999,57.799721000000034],[-61.853614999999934,57.808327000000133],[-61.80889099999996,57.836936999999978],[-61.800551999999925,57.841377000000023],[-61.778885000000002,57.84526800000009],[-61.773055999999997,57.845543000000077],[-61.711113000000012,57.834160000000111],[-61.698607999999922,57.830276000000083],[-61.653610000000015,57.784721000000104],[-61.652221999999995,57.782494000000042],[-61.651664999999923,57.779433999999981],[-61.652495999999928,57.775826000000052],[-61.654166999999916,57.771103000000096],[-61.668609999999887,57.738884000000041],[-61.674171000000001,57.726936000000023],[-61.684440999999936,57.714996000000099],[-61.688605999999936,57.713051000000121]],[[-61.947494999999947,57.787216000000114],[-61.957222000000002,57.78694200000001],[-62.08916499999998,57.808043999999995],[-62.100280999999995,57.816101000000003],[-62.108337000000006,57.824715000000026],[-62.109443999999996,57.829437000000098],[-62.108054999999922,57.837769000000094],[-62.099723999999924,57.846382000000062],[-62.094443999999953,57.850547999999947],[-62.065276999999924,57.870544000000109],[-62.028884999999946,57.892768999999987],[-62.009170999999924,57.904434000000037],[-61.995002999999997,57.90915700000005],[-61.986114999999984,57.910271000000023],[-61.971663999999976,57.911377000000016],[-61.941108999999983,57.909988000000055],[-61.928336999999942,57.908599999999922],[-61.923332000000016,57.906096999999988],[-61.918891999999971,57.90248900000006],[-61.884444999999971,57.86693600000001],[-61.867774999999881,57.84276600000004],[-61.867774999999881,57.838600000000099],[-61.879439999999931,57.816665999999998],[-61.881942999999922,57.812767000000008],[-61.885558999999887,57.809157999999968],[-61.889998999999989,57.806381000000101],[-61.940833999999938,57.788886999999988],[-61.947494999999947,57.787216000000114]],[[-77.678328999999962,58.235549999999932],[-77.687774999999931,58.235268000000076],[-77.702788999999996,58.238884000000098],[-77.761123999999938,58.257499999999936],[-77.946380999999917,58.3211060000001],[-77.950835999999924,58.32416500000005],[-77.947495000000004,58.328605999999979],[-77.940551999999968,58.330551000000014],[-77.932495000000017,58.331383000000073],[-77.917312999999922,58.329369000000042],[-77.829726999999934,58.311378000000047],[-77.80749499999996,58.305267000000015],[-77.801392000000021,58.303046999999992],[-77.702788999999996,58.260277000000031],[-77.689437999999996,58.253882999999973],[-77.670273000000009,58.244156000000032],[-77.668334999999956,58.241936000000067],[-77.668334999999956,58.240547000000049],[-77.678328999999962,58.235549999999932]],[[-67.596114999999998,58.284164000000089],[-67.616394000000014,58.284164000000089],[-67.637786999999946,58.28472099999999],[-67.666106999999954,58.292770000000019],[-67.673888999999917,58.296104000000014],[-67.676666000000012,58.301384000000041],[-67.675827000000027,58.306099000000074],[-67.672775000000001,58.312209999999993],[-67.624435000000005,58.368050000000096],[-67.61999499999996,58.372215000000097],[-67.61082499999992,58.373877999999991],[-67.599166999999909,58.373046999999985],[-67.580565999999976,58.369986999999924],[-67.527221999999995,58.343605000000082],[-67.520844000000011,58.339989000000003],[-67.517501999999979,58.335266000000047],[-67.51916499999993,58.329719999999952],[-67.524445000000014,58.32416500000005],[-67.551102000000014,58.302215999999987],[-67.557220000000029,58.298050000000046],[-67.571670999999867,58.290833000000134],[-67.596114999999998,58.284164000000089]],[[-78.453888000000006,58.539993000000038],[-78.455565999999862,58.537215999999944],[-78.463332999999977,58.537498000000028],[-78.474716000000001,58.541382000000056],[-78.649993999999936,58.601386999999988],[-78.672501000000011,58.610549999999989],[-78.683884000000035,58.620827000000133],[-78.697495000000004,58.678329000000076],[-78.698607999999979,58.688599000000011],[-78.696944999999971,58.690543999999989],[-78.692764000000011,58.691933000000006],[-78.665008999999998,58.674995000000081],[-78.659163999999976,58.669991000000095],[-78.635284000000013,58.618598999999961],[-78.631942999999978,58.616386000000034],[-78.628051999999968,58.614158999999972],[-78.56639100000001,58.586104999999918],[-78.513061999999934,58.563880999999981],[-78.457229999999981,58.542770000000132],[-78.453888000000006,58.539993000000038]],[[-69.194442999999922,59.064712999999983],[-69.18638599999997,59.064437999999996],[-69.180831999999953,59.06721500000009],[-69.178328999999906,59.029715999999951],[-69.227218999999934,58.971931000000041],[-69.320281999999963,58.946381000000088],[-69.327498999999989,58.94499200000007],[-69.338897999999972,58.944434999999999],[-69.350280999999995,58.946381000000088],[-69.355559999999969,58.949715000000083],[-69.360000999999954,58.958603000000039],[-69.357223999999974,58.964714000000129],[-69.318344000000025,59.02555099999995],[-69.319457999999997,59.098045000000127],[-69.353057999999976,59.127213000000097],[-69.357773000000009,59.13499500000006],[-69.357223999999974,59.139717000000132],[-69.345550999999944,59.144714000000079],[-69.339447000000007,59.146103000000039],[-69.282227000000034,59.154433999999981],[-69.275283999999942,59.154991000000052],[-69.198607999999922,59.14527099999998],[-69.18638599999997,59.138329000000056],[-69.18249499999996,59.128601000000003],[-69.194991999999957,59.09415400000006],[-69.199996999999996,59.077217000000019],[-69.200561999999877,59.072495000000117],[-69.198607999999922,59.06721500000009],[-69.194442999999922,59.064712999999983]],[[-80.53443900000002,59.369438000000002],[-80.544158999999979,59.365547000000106],[-80.552215999999873,59.365829000000133],[-80.555832000000009,59.369438000000002],[-80.549437999999952,59.446938000000046],[-80.537506000000008,59.455268999999987],[-80.488051999999982,59.477486000000056],[-80.475554999999929,59.481102000000078],[-80.465011999999945,59.463882000000126],[-80.471389999999928,59.454994000000113],[-80.477218999999934,59.451103000000046],[-80.520844000000011,59.382767000000058],[-80.525283999999942,59.377486999999974],[-80.53443900000002,59.369438000000002]],[[-80.277495999999985,59.618599000000131],[-80.319167999999991,59.612213000000054],[-80.329726999999991,59.612495000000138],[-80.340560999999923,59.614158999999972],[-80.343886999999995,59.619156000000032],[-80.340835999999967,59.625267000000122],[-80.295273000000009,59.678329000000019],[-80.232773000000009,59.725265999999976],[-80.222228999999857,59.723602000000142],[-80.171386999999925,59.715271000000087],[-80.154175000000009,59.709991000000002],[-80.14527899999996,59.705550999999957],[-80.154723999999931,59.682495000000131],[-80.156661999999983,59.678329000000019],[-80.170546999999999,59.673881999999992],[-80.205840999999964,59.665267999999912],[-80.222777999999892,59.660271000000023],[-80.229720999999984,59.656380000000127],[-80.233063000000016,59.651100000000042],[-80.237212999999997,59.639434999999992],[-80.240554999999858,59.634163000000058],[-80.246384000000035,59.629990000000078],[-80.260833999999988,59.623604],[-80.277495999999985,59.618599000000131]],[[-64.019729999999925,59.714713999999958],[-64.124160999999958,59.695267000000115],[-64.134170999999981,59.695541000000048],[-64.146118000000001,59.696655000000021],[-64.157226999999978,59.699715000000083],[-64.16332999999986,59.703605999999979],[-64.204452999999944,59.734436000000017],[-64.192490000000021,59.765549000000021],[-64.121933000000013,59.849433999999974],[-64.115828999999962,59.852776000000063],[-64.107223999999974,59.854996000000085],[-64.067504999999926,59.863884000000041],[-64.061385999999914,59.864440999999943],[-64.052779999999984,59.859992999999974],[-64.049727999999959,59.855270000000019],[-64.047774999999945,59.849433999999974],[-64.055266999999958,59.835266000000104],[-64.054442999999992,59.829437000000041],[-64.042769999999905,59.783882000000062],[-64.020278999999903,59.781104999999968],[-64.002791999999943,59.774712000000022],[-63.959723999999937,59.75638600000002],[-63.959441999999967,59.752220000000136],[-63.99722300000002,59.723602000000142],[-64.011397999999872,59.716385000000059],[-64.019729999999925,59.714713999999958]],[[-80.089721999999938,59.751938000000052],[-80.166945999999996,59.742493000000024],[-80.177779999999984,59.744156000000089],[-80.184158000000025,59.747771999999998],[-80.184722999999963,59.752777000000037],[-80.128875999999991,59.82388300000008],[-80.11500499999994,59.837769000000037],[-80.103057999999976,59.844994000000099],[-80.015015000000005,59.884995000000117],[-80.00778200000002,59.886107999999979],[-79.946944999999914,59.880272000000105],[-79.937774999999931,59.877768999999944],[-79.929992999999911,59.873603999999943],[-79.884170999999924,59.85833000000008],[-79.878875999999991,59.854713000000118],[-79.883621000000005,59.849998000000085],[-79.906661999999926,59.828049000000135],[-79.922226000000023,59.815544000000045],[-79.928054999999972,59.811661000000072],[-80.025283999999942,59.764442000000088],[-80.089721999999938,59.751938000000052]],[[-64.427673000000027,60.372932000000048],[-64.452788999999996,60.357215999999994],[-64.442763999999897,60.309715000000097],[-64.438323999999966,60.305550000000096],[-64.423614999999984,60.282494000000042],[-64.429442999999935,60.281936999999971],[-64.438048999999864,60.282494000000042],[-64.448607999999979,60.284164000000033],[-64.50111400000003,60.301933000000133],[-64.521712999999977,60.310730000000035],[-64.541106999999954,60.324440000000038],[-64.557219999999916,60.331383000000017],[-64.601943999999889,60.350273000000016],[-64.610001000000011,60.353606999999954],[-64.632216999999912,60.357498000000021],[-64.643889999999942,60.357773000000066],[-64.655562999999972,60.357498000000021],[-64.666107000000011,60.356940999999949],[-64.675551999999982,60.355270000000075],[-64.710007000000019,60.358330000000137],[-64.728881999999999,60.363327000000083],[-64.790282999999931,60.391106000000093],[-64.815552000000025,60.406096999999988],[-64.831116000000009,60.419159000000036],[-64.867492999999911,60.450272000000041],[-64.868606999999997,60.453323000000069],[-64.868056999999965,60.458885000000009],[-64.856110000000001,60.473877000000016],[-64.84722899999997,60.478874000000133],[-64.837783999999999,60.482491000000039],[-64.823058999999944,60.485268000000133],[-64.639998999999989,60.4847180000001],[-64.61860699999994,60.477211000000011],[-64.426940999999943,60.401381999999955],[-64.423889000000031,60.397216999999955],[-64.422501000000011,60.391937000000098],[-64.423889000000031,60.383049000000085],[-64.427673000000027,60.372932000000048]],[[-68.25140399999998,60.230820000000051],[-68.310546999999985,60.223045000000127],[-68.340285999999992,60.223320000000001],[-68.361937999999952,60.225822000000051],[-68.376937999999996,60.232491000000095],[-68.387222000000008,60.240829000000076],[-68.393065999999976,60.249161000000072],[-68.394729999999981,60.254440000000045],[-68.395003999999972,60.259995000000117],[-68.393065999999976,60.276100000000042],[-68.384170999999924,60.29972100000009],[-68.37777699999998,60.310271999999998],[-68.314437999999996,60.390273999999977],[-68.175277999999992,60.53443900000002],[-68.129439999999931,60.570549000000085],[-68.119155999999919,60.577217000000076],[-68.092223999999987,60.581665000000044],[-68.081679999999949,60.582496999999989],[-68.035277999999948,60.581107999999972],[-67.999435000000005,60.57749200000012],[-67.956664999999987,60.566100999999946],[-67.948607999999922,60.561377999999991],[-67.887221999999952,60.503883000000087],[-67.862212999999997,60.488045000000056],[-67.839721999999995,60.478043000000071],[-67.831389999999999,60.474990999999989],[-67.821395999999993,60.472487999999998],[-67.808043999999938,60.467209000000025],[-67.803054999999972,60.463051000000064],[-67.79861499999987,60.457497000000103],[-67.794998000000021,60.447769000000051],[-67.795546999999942,60.443877999999984],[-67.79861499999987,60.432213000000104],[-67.806106999999997,60.417496000000085],[-67.815276999999924,60.408043000000077],[-67.836394999999925,60.388603000000103],[-67.841385000000002,60.384438000000102],[-67.853333000000021,60.375266999999951],[-67.885559000000001,60.353606999999954],[-67.898055999999997,60.345267999999919],[-67.934433000000013,60.321662999999944],[-67.965285999999992,60.30832700000002],[-67.97222899999997,60.30582400000003],[-68.167496000000028,60.245544000000109],[-68.17721599999993,60.243049999999982],[-68.205276000000026,60.238045000000113],[-68.25140399999998,60.230820000000051]],[[-64.689986999999917,60.584435000000099],[-64.697220000000016,60.582214000000022],[-64.704452999999944,60.582496999999989],[-64.712783999999942,60.590271000000143],[-64.713897999999915,60.59526800000009],[-64.713057999999876,60.598877000000073],[-64.710830999999985,60.602776000000119],[-64.615554999999858,60.681664000000069],[-64.610274999999945,60.685265000000129],[-64.599166999999966,60.689430000000129],[-64.592772999999909,60.685547000000042],[-64.590835999999967,60.676659000000029],[-64.592498999999975,60.666939000000127],[-64.593886999999995,60.648331000000098],[-64.59584000000001,60.645271000000037],[-64.620543999999995,60.616661000000022],[-64.631667999999991,60.60833000000008],[-64.638061999999934,60.604996000000085],[-64.689986999999917,60.584435000000099]],[[-78.656386999999995,60.702774000000034],[-78.664718999999991,60.702217000000132],[-78.674163999999962,60.704711999999972],[-78.689986999999974,60.712212000000079],[-78.694716999999912,60.716660000000047],[-78.698333999999988,60.721656999999936],[-78.697768999999937,60.724159000000043],[-78.616393999999957,60.771935000000099],[-78.573623999999995,60.784163999999919],[-78.399993999999992,60.809990000000028],[-78.223891999999978,60.830826000000059],[-78.21945199999999,60.823883000000023],[-78.219161999999983,60.817497000000117],[-78.221114999999998,60.814156000000082],[-78.226669000000015,60.808883999999978],[-78.277221999999995,60.769157000000121],[-78.285004000000015,60.766106000000093],[-78.397231999999917,60.743881000000044],[-78.62332200000003,60.705551000000128],[-78.656386999999995,60.702774000000034]],[[-69.977218999999991,60.933051999999975],[-69.983886999999982,60.93110699999994],[-69.995269999999948,60.931381000000101],[-70.003615999999965,60.935265000000072],[-70.007781999999963,60.939155999999969],[-70.026107999999965,60.995827000000077],[-70.025008999999955,61.001937999999996],[-70.021666999999866,61.008605999999986],[-70.016662999999994,61.013611000000026],[-70.009170999999867,61.017768999999987],[-70.003341999999918,61.020828000000108],[-69.982772999999895,61.028327999999988],[-69.964721999999995,61.032768000000033],[-69.954177999999956,61.033882000000006],[-69.943603999999993,61.031380000000127],[-69.931380999999931,61.020271000000037],[-69.929992999999854,61.016663000000108],[-69.929717999999923,61.010825999999952],[-69.930832000000009,61.00471500000009],[-69.933883999999921,60.998047000000099],[-69.977218999999991,60.933051999999975]],[[-64.723891999999921,61.53833000000003],[-64.71665999999999,61.535827999999981],[-64.706954999999994,61.536658999999986],[-64.688323999999909,61.535552999999993],[-64.683318999999869,61.531105000000025],[-64.675277999999992,61.508606000000043],[-64.674164000000019,61.503325999999959],[-64.686935000000005,61.465827999999988],[-64.705276000000026,61.444153000000142],[-64.715012000000002,61.433327000000077],[-64.820557000000008,61.355270000000075],[-64.866942999999992,61.324164999999994],[-64.870833999999945,61.32249500000006],[-64.875274999999988,61.32249500000006],[-64.887222000000008,61.324715000000026],[-64.972503999999958,61.344154000000117],[-64.977492999999924,61.34777100000008],[-64.985000999999954,61.367493000000138],[-65.179168999999945,61.466933999999981],[-65.18582200000003,61.47554800000006],[-65.187499999999943,61.480270000000132],[-65.190552000000025,61.494995000000074],[-65.195267000000001,61.499160999999958],[-65.295272999999895,61.528877000000023],[-65.329453000000001,61.531937000000084],[-65.353333000000021,61.534721000000047],[-65.37249799999995,61.537216000000058],[-65.381103999999993,61.540550000000053],[-65.47444200000001,61.586936999999978],[-65.481109999999887,61.590828000000045],[-65.487777999999935,61.599433999999974],[-65.486938000000009,61.610825000000091],[-65.485000999999954,61.62193300000007],[-65.482223999999974,61.62860100000006],[-65.472228999999857,61.64027400000009],[-65.466400000000021,61.644997000000046],[-65.459441999999854,61.649162000000047],[-65.453063999999983,61.651932000000102],[-65.449158000000011,61.653602999999976],[-65.441375999999934,61.656654000000003],[-65.43582200000003,61.658043000000021],[-65.339721999999938,61.670547000000056],[-65.247498000000007,61.68082400000003],[-65.174438000000009,61.686935000000119],[-65.068343999999968,61.693047000000092],[-65.036391999999921,61.693603999999993],[-65.018889999999885,61.692490000000021],[-65.016112999999962,61.692214999999976],[-64.99499499999996,61.689987000000031],[-64.733062999999959,61.659987999999998],[-64.719161999999983,61.658043000000021],[-64.646392999999932,61.603882000000112],[-64.646118000000001,61.599716000000001],[-64.650833000000034,61.594437000000028],[-64.65972899999997,61.588042999999971],[-64.662780999999995,61.587769000000037],[-64.714172000000019,61.556381000000044],[-64.720275999999956,61.551383999999928],[-64.726104999999961,61.542220999999927],[-64.723891999999921,61.53833000000003]],[[-65.695266999999888,61.776657],[-65.71945199999999,61.754165999999998],[-65.803054999999915,61.755554000000075],[-65.827224999999942,61.758049000000085],[-65.891388000000006,61.76638800000012],[-65.903885000000002,61.768326000000059],[-65.931106999999997,61.778328000000045],[-65.939163000000008,61.782210999999961],[-65.944442999999978,61.785828000000095],[-65.948043999999925,61.790276000000063],[-65.94749499999989,61.796104000000014],[-65.943877999999927,61.799720999999977],[-65.818344000000025,61.860825000000034],[-65.809432999999956,61.86332700000014],[-65.789992999999981,61.865547000000106],[-65.778060999999866,61.865547000000106],[-65.767501999999979,61.862770000000012],[-65.718613000000005,61.841102999999976],[-65.714721999999938,61.836937000000091],[-65.713622999999984,61.824165000000107],[-65.695266999999888,61.776657]],[[-92.963897999999972,61.879158000000075],[-92.995270000000005,61.851105000000132],[-93.00167799999997,61.847214000000065],[-93.051940999999943,61.829437000000041],[-93.07028200000002,61.825272000000041],[-93.079726999999991,61.826941999999974],[-93.086669999999913,61.829437000000041],[-93.115828999999962,61.860275000000001],[-93.120270000000005,61.864441000000113],[-93.126937999999882,61.868599000000074],[-93.135833999999988,61.872489999999914],[-93.14805599999994,61.87582400000008],[-93.179717999999923,61.875549000000092],[-93.189437999999996,61.874161000000015],[-93.211120999999935,61.875267000000008],[-93.218886999999995,61.87943300000012],[-93.223327999999981,61.888329000000056],[-93.226105000000018,61.908325000000048],[-93.223617999999931,61.913048000000003],[-93.218886999999995,61.918884000000048],[-93.20944199999991,61.921104000000071],[-93.072509999999909,61.929993000000138],[-93.062209999999993,61.930550000000039],[-92.96945199999999,61.888329000000056],[-92.962783999999999,61.884162999999944],[-92.963897999999972,61.879158000000075]],[[-64.916106999999954,61.719437000000084],[-64.926940999999943,61.718880000000013],[-64.951950000000011,61.722488000000112],[-65.14805599999994,61.780548000000067],[-65.156661999999926,61.783882000000062],[-65.210555999999883,61.816940000000045],[-65.214721999999881,61.821938000000046],[-65.251953000000015,61.869713000000047],[-65.255843999999968,61.885551000000078],[-65.255004999999926,61.901657000000057],[-65.249435000000005,61.91027100000008],[-65.245270000000005,61.914711000000125],[-65.189712999999983,61.945540999999992],[-65.170273000000009,61.947769000000108],[-65.156951999999876,61.946938000000102],[-65.080291999999929,61.931107000000111],[-65.074448000000018,61.928329000000133],[-65.06806899999998,61.923882000000049],[-65.039169000000015,61.899719000000118],[-64.980834999999956,61.885826000000066],[-64.893341000000021,61.829994000000113],[-64.886948000000018,61.825554000000068],[-64.828887999999893,61.766662999999994],[-64.825835999999981,61.761939999999981],[-64.825287000000003,61.758330999999998],[-64.828887999999893,61.752220000000079],[-64.83555599999994,61.748877999999991],[-64.858046999999942,61.739158999999972],[-64.889449999999954,61.725822000000107],[-64.906112999999948,61.721100000000035],[-64.916106999999954,61.719437000000084]],[[-65.852492999999924,62.084717000000012],[-65.869155999999919,62.079720000000123],[-65.889998999999989,62.080551000000128],[-65.913329999999974,62.084990999999945],[-66.009734999999978,62.116661000000079],[-66.016662999999994,62.120543999999995],[-66.020279000000016,62.124435000000062],[-66.021118000000001,62.128326000000129],[-66.020843999999954,62.131660000000124],[-66.014724999999942,62.136658000000125],[-65.991942999999935,62.141380000000026],[-65.928054999999972,62.151657],[-65.904449,62.152771000000143],[-65.853607000000011,62.131104000000107],[-65.845000999999911,62.124992000000134],[-65.83555599999994,62.115272999999945],[-65.835830999999928,62.099716000000114],[-65.843886999999995,62.088599999999985],[-65.852492999999924,62.084717000000012]],[[-92.223617999999931,62.355552999999986],[-92.306106999999997,62.351661999999919],[-92.339721999999995,62.354712999999947],[-92.34973100000002,62.356659000000036],[-92.371932999999956,62.386939999999925],[-92.372498000000007,62.391937000000041],[-92.354445999999939,62.410820000000115],[-92.347777999999948,62.414436000000023],[-92.319457999999941,62.415268000000083],[-92.308333999999945,62.414436000000023],[-92.162216000000001,62.402214000000015],[-92.139724999999999,62.399719000000005],[-92.141112999999905,62.394714000000135],[-92.15834000000001,62.390549000000135],[-92.223617999999931,62.355552999999986]],[[-79.540558000000033,62.411102000000028],[-79.449996999999939,62.382767000000001],[-79.442764000000011,62.379990000000078],[-79.433883999999978,62.371376000000055],[-79.429168999999945,62.361664000000076],[-79.427215999999987,62.356102000000135],[-79.424438000000009,62.344154000000117],[-79.420546999999942,62.339989000000116],[-79.359160999999972,62.296104000000071],[-79.347228999999913,62.288886999999988],[-79.328613000000018,62.283332999999971],[-79.272780999999952,62.262215000000083],[-79.266112999999962,62.258048999999971],[-79.260833999999988,62.253608999999983],[-79.256393000000003,62.244438000000002],[-79.255568999999923,62.23971599999993],[-79.261397999999929,62.163605000000018],[-79.262222000000008,62.158882000000062],[-79.329726999999991,62.01527400000009],[-79.353881999999999,61.999718000000144],[-79.396392999999932,61.968879999999956],[-79.457229999999925,61.893883000000017],[-79.461944999999957,61.881660000000011],[-79.465560999999923,61.876099000000124],[-79.524445000000014,61.811378000000104],[-79.541320999999925,61.799789000000089],[-79.552779999999927,61.796386999999982],[-79.568344000000025,61.790276000000063],[-79.583618000000001,61.783051],[-79.596664000000033,61.774436999999978],[-79.605269999999962,61.765273999999977],[-79.611114999999984,61.754440000000102],[-79.612777999999992,61.742767000000072],[-79.611938000000009,61.738045],[-79.608336999999949,61.732208000000014],[-79.606110000000001,61.726654000000053],[-79.605559999999969,61.721100000000035],[-79.607498000000021,61.708885000000123],[-79.628875999999934,61.669158999999979],[-79.632216999999969,61.664993000000038],[-79.642226999999991,61.655822999999998],[-79.65695199999999,61.642494000000113],[-79.740828999999962,61.588600000000099],[-79.75389100000001,61.580276000000026],[-79.761397999999929,61.576942000000031],[-79.779449,61.571938000000102],[-79.805831999999896,61.568054000000075],[-79.827788999999939,61.566665999999998],[-79.846114999999941,61.569992000000013],[-79.87110899999999,61.609717999999987],[-79.954178000000013,61.683601000000124],[-80.06806899999998,61.745270000000062],[-80.079453000000001,61.747772000000111],[-80.092223999999987,61.748046999999929],[-80.138610999999912,61.748604000000057],[-80.161941999999954,61.748604000000057],[-80.173324999999977,61.750275000000101],[-80.191665999999884,61.755554000000075],[-80.205276000000026,61.762772000000098],[-80.275283999999999,61.806656000000032],[-80.27806099999998,61.810272000000055],[-80.278884999999946,61.816382999999973],[-80.291381999999942,61.929993000000138],[-80.295273000000009,61.983604000000014],[-80.268616000000009,62.107215999999994],[-80.266662999999994,62.111382000000049],[-80.198607999999979,62.1988750000001],[-80.180283000000031,62.217491000000109],[-80.017501999999979,62.358604000000014],[-80.009445000000028,62.362495000000081],[-79.981383999999935,62.374161000000072],[-79.947220000000016,62.386108000000036],[-79.938048999999978,62.388603000000046],[-79.919723999999974,62.393051000000014],[-79.900283999999999,62.395828000000108],[-79.842772999999909,62.403603000000032],[-79.833617999999944,62.404160000000104],[-79.730834999999956,62.399162000000103],[-79.605559999999969,62.41304800000006],[-79.584166999999979,62.417213000000061],[-79.561934999999892,62.417213000000061],[-79.540558000000033,62.411102000000028]],[[-92.411117999999931,62.39388300000013],[-92.420546999999942,62.391663000000108],[-92.431380999999988,62.391663000000108],[-92.440825999999959,62.393608000000086],[-92.529175000000009,62.378326000000072],[-92.539443999999946,62.377212999999983],[-92.561385999999914,62.377486999999917],[-92.583892999999989,62.379990000000078],[-92.595839999999953,62.382491999999957],[-92.600554999999986,62.386939999999925],[-92.600280999999995,62.392494000000113],[-92.596953999999926,62.397774000000027],[-92.592772999999966,62.40248900000006],[-92.539992999999981,62.428329000000019],[-92.531112999999948,62.431380999999931],[-92.410278000000005,62.408882000000006],[-92.403884999999946,62.404709000000025],[-92.405563000000029,62.399436999999921],[-92.411117999999931,62.39388300000013]],[[-64.653884999999946,62.540833000000021],[-64.580840999999964,62.538605000000075],[-64.559722999999963,62.554161000000022],[-64.559998000000007,62.55860100000001],[-64.555556999999965,62.560822000000144],[-64.549727999999959,62.56221000000005],[-64.397506999999962,62.536385000000053],[-64.389724999999999,62.533882000000062],[-64.385284000000013,62.531105000000139],[-64.382767000000001,62.525825999999995],[-64.382767000000001,62.511383000000137],[-64.39416499999993,62.461379999999963],[-64.477218999999991,62.408043000000021],[-64.528609999999958,62.386658000000068],[-64.59056099999998,62.367210000000114],[-64.598891999999978,62.366385999999977],[-64.653610000000015,62.372490000000028],[-64.772781000000009,62.386383000000023],[-64.87110899999999,62.406380000000127],[-64.926666000000012,62.41832700000009],[-64.937209999999993,62.421103999999957],[-64.945830999999998,62.424438000000123],[-64.952498999999875,62.428329000000019],[-64.953887999999949,62.431380999999931],[-64.965835999999911,62.465827999999931],[-64.846114999999998,62.555267000000015],[-64.815552000000025,62.559714999999983],[-64.797500999999954,62.561378000000104],[-64.766953000000001,62.562767000000122],[-64.753066999999987,62.562492000000077],[-64.741669000000002,62.560822000000144],[-64.653884999999946,62.540833000000021]],[[-78.008347000000015,62.593605000000082],[-77.86721799999998,62.589157000000114],[-77.850554999999986,62.582771000000037],[-77.841674999999952,62.568054000000018],[-77.837783999999999,62.556938000000116],[-77.840835999999911,62.549995000000081],[-77.844726999999978,62.544716000000108],[-77.852782999999988,62.541664000000026],[-77.86221299999994,62.53943600000008],[-77.873046999999985,62.537773000000129],[-77.885009999999966,62.537498000000141],[-77.913054999999929,62.53943600000008],[-78.103333000000021,62.559158000000082],[-78.113051999999925,62.56221000000005],[-78.114440999999943,62.570549000000085],[-78.111664000000019,62.578049000000135],[-78.107772999999952,62.582771000000037],[-78.105835000000013,62.583328000000108],[-78.047500999999897,62.591934000000037],[-78.030838000000017,62.593323000000055],[-78.019164999999987,62.591934000000037],[-78.008347000000015,62.593605000000082]],[[-77.805267000000015,62.592491000000109],[-77.727218999999934,62.585822999999948],[-77.665832999999907,62.586655000000064],[-77.628052000000025,62.588326000000109],[-77.621384000000035,62.584435000000042],[-77.637787000000003,62.570831000000112],[-77.651108000000022,62.563881000000094],[-77.659164000000033,62.560822000000144],[-77.734725999999966,62.535827999999981],[-77.745270000000005,62.534163999999976],[-77.758620999999891,62.535553000000107],[-77.780288999999925,62.539161999999976],[-77.808608999999933,62.546660999999915],[-77.813613999999973,62.551102000000014],[-77.831116000000009,62.590271000000087],[-77.831679999999949,62.595825000000104],[-77.821121000000005,62.596099999999922],[-77.809433000000013,62.59415400000006],[-77.805267000000015,62.592491000000109]],[[-64.983063000000016,62.528046000000018],[-65.007232999999928,62.526382000000012],[-65.096389999999985,62.534996000000035],[-65.119720000000029,62.537498000000141],[-65.131942999999978,62.539719000000048],[-65.138061999999991,62.542770000000075],[-65.141677999999956,62.54694400000011],[-65.137787000000003,62.550544999999943],[-65.022507000000019,62.594994000000099],[-65.00306699999993,62.598877000000016],[-64.972503999999958,62.602493000000095],[-64.909163999999976,62.604438999999957],[-64.892501999999979,62.598877000000016],[-64.884734999999921,62.59415400000006],[-64.843886999999938,62.582771000000037],[-64.839447000000007,62.57777399999992],[-64.860824999999863,62.561378000000104],[-64.866104000000007,62.558044000000109],[-64.874435000000005,62.554709999999943],[-64.965285999999878,62.531380000000013],[-64.972778000000005,62.529716000000008],[-64.983063000000016,62.528046000000018]],[[-91.572783999999956,62.627487000000087],[-91.578612999999962,62.62193300000007],[-91.668059999999912,62.649162000000047],[-91.683059999999955,62.662209000000075],[-91.685546999999985,62.666939000000127],[-91.67582699999997,62.669159000000093],[-91.663329999999974,62.665543000000071],[-91.655272999999909,62.662209000000075],[-91.581954999999994,62.641380000000083],[-91.575561999999934,62.637215000000083],[-91.571121000000005,62.632767000000115],[-91.572783999999956,62.627487000000087]],[[-90.979995999999971,62.657767999999976],[-90.990279999999984,62.656654000000003],[-91.003341999999918,62.657211000000075],[-91.098891999999921,62.654433999999981],[-91.244719999999973,62.669991000000039],[-91.256393000000003,62.671936000000017],[-91.266952999999944,62.675552000000096],[-91.271117999999944,62.679992999999968],[-91.267226999999991,62.685546999999985],[-91.226944000000003,62.691658000000075],[-91.173049999999989,62.691375999999991],[-91.080291999999986,62.686935000000062],[-91.056106999999997,62.681664000000069],[-90.981673999999998,62.661376999999959],[-90.979995999999971,62.657767999999976]],[[-74.347778000000005,62.679436000000067],[-74.309998000000007,62.679161000000079],[-74.285552999999993,62.679992999999968],[-74.25028999999995,62.682495000000074],[-74.216109999999958,62.684990000000084],[-74.181670999999994,62.688880999999981],[-74.158889999999985,62.688880999999981],[-74.145843999999954,62.687767000000008],[-74.015839000000028,62.664993000000038],[-74.009170999999981,62.662490999999932],[-73.959732000000031,62.62082700000002],[-73.958054000000004,62.616661000000136],[-73.958054000000004,62.612495000000024],[-73.962508999999955,62.607772999999952],[-73.969727000000034,62.604163999999969],[-73.988602000000014,62.602218999999991],[-74.128875999999877,62.600829999999974],[-74.154448999999886,62.601105000000018],[-74.169158999999922,62.602218999999991],[-74.183608999999933,62.603882000000056],[-74.333618000000001,62.62943300000012],[-74.541381999999942,62.668327000000033],[-74.551102000000014,62.670829999999967],[-74.586394999999925,62.683051999999975],[-74.617217999999923,62.696098000000063],[-74.639724999999999,62.706383000000017],[-74.64973399999991,62.712769000000094],[-74.651397999999858,62.716934000000094],[-74.645844000000011,62.720824999999991],[-74.537215999999944,62.748878000000104],[-74.526671999999905,62.748878000000104],[-74.519164999999873,62.747772000000111],[-74.482772999999952,62.739716000000044],[-74.392226999999934,62.687210000000107],[-74.379989999999964,62.682495000000074],[-74.374160999999958,62.681381000000101],[-74.347778000000005,62.679436000000067]],[[-70.711670000000026,62.81499500000001],[-70.659728999999913,62.79833200000013],[-70.587783999999999,62.774162000000103],[-70.547500999999954,62.765273999999977],[-70.415557999999976,62.729156000000103],[-70.396956999999986,62.723045000000013],[-70.226104999999961,62.603049999999996],[-70.217772999999966,62.594437000000028],[-70.212218999999948,62.584160000000054],[-70.211120999999991,62.579163000000108],[-70.211945000000014,62.57777399999992],[-70.264724999999999,62.559158000000082],[-70.283324999999991,62.55443600000001],[-70.373610999999926,62.533332999999914],[-70.393065999999976,62.530273000000079],[-70.414444000000003,62.529434000000094],[-70.466659999999933,62.53166200000004],[-70.501113999999973,62.533607000000075],[-70.686385999999914,62.546104000000014],[-70.723891999999978,62.550270000000125],[-70.746383999999978,62.554709999999943],[-70.765015000000005,62.560547000000099],[-70.770844000000011,62.564712999999983],[-70.819732999999985,62.604713000000118],[-70.825011999999958,62.614441000000113],[-70.854445999999939,62.713608000000079],[-70.846663999999976,62.766106000000036],[-70.945540999999935,62.798050000000046],[-71.01916499999993,62.811934999999949],[-71.032500999999968,62.81249200000002],[-71.043334999999956,62.811934999999949],[-71.051665999999955,62.810547000000042],[-71.106383999999935,62.80082700000014],[-71.141113000000018,62.794998000000135],[-71.148620999999935,62.794998000000135],[-71.15834000000001,62.797217999999987],[-71.176101999999958,62.809158000000082],[-71.240554999999972,62.876380999999981],[-71.241378999999995,62.881378000000097],[-71.236389000000031,62.886658000000125],[-71.229445999999882,62.888046000000031],[-71.191100999999946,62.884720000000016],[-71.073897999999929,62.871933000000013],[-70.788054999999929,62.836104999999975],[-70.760283999999956,62.829994000000056],[-70.711670000000026,62.81499500000001]],[[-66.368331999999953,62.83526599999999],[-66.373885999999857,62.833603000000096],[-66.386123999999995,62.834434999999985],[-66.490279999999984,62.855270000000132],[-66.505279999999971,62.861382000000106],[-66.601669000000015,62.906654000000117],[-66.593886999999938,62.911934000000031],[-66.574172999999973,62.913048000000003],[-66.547775000000001,62.910545000000013],[-66.540282999999931,62.907493999999986],[-66.441939999999988,62.871101000000124],[-66.377776999999924,62.843322999999998],[-66.370270000000005,62.839713999999958],[-66.368331999999953,62.83526599999999]],[[-81.87110899999999,62.928329000000133],[-81.865554999999972,62.923324999999977],[-81.864165999999955,62.919990999999982],[-81.90695199999999,62.866386000000091],[-81.926101999999958,62.744156000000032],[-81.924712999999997,62.739158999999972],[-81.923889000000031,62.733046999999942],[-81.924164000000019,62.728325000000041],[-81.926101999999958,62.723602000000085],[-81.929169000000002,62.719437000000084],[-81.938598999999954,62.709991000000116],[-81.958892999999989,62.697768999999937],[-81.973052999999993,62.689713000000097],[-82.102218999999991,62.629158000000132],[-82.1875,62.599433999999917],[-82.277785999999935,62.584160000000054],[-82.286941999999897,62.581664999999987],[-82.315552000000025,62.571663000000058],[-82.369155999999919,62.547493000000031],[-82.381667999999991,62.53943600000008],[-82.387786999999946,62.534721000000047],[-82.40194699999995,62.520546000000138],[-82.40834000000001,62.509720000000016],[-82.408889999999928,62.496657999999968],[-82.414444000000003,62.478043000000071],[-82.425811999999951,62.469986000000063],[-82.442214999999919,62.458603000000096],[-82.449722000000008,62.455269000000101],[-82.499434999999949,62.438599000000124],[-82.533889999999985,62.428604000000064],[-82.551940999999999,62.423881999999992],[-82.583617999999944,62.412766000000033],[-82.621384000000035,62.395271000000037],[-82.641113000000018,62.385269000000051],[-82.647232000000031,62.38110400000005],[-82.670273000000009,62.35943600000013],[-82.688599000000011,62.341103000000089],[-82.713057999999933,62.321381000000031],[-82.731383999999935,62.309990000000084],[-82.743606999999997,62.302489999999977],[-82.769164999999987,62.290276000000006],[-82.985549999999989,62.209717000000126],[-83.001953000000015,62.204437000000041],[-83.087783999999999,62.178879000000109],[-83.121932999999956,62.173050000000103],[-83.136397999999986,62.173050000000103],[-83.143889999999999,62.176659000000086],[-83.150832999999977,62.182770000000005],[-83.15943900000002,62.198600999999996],[-83.168059999999912,62.207497000000103],[-83.176392000000021,62.213051000000064],[-83.198607999999979,62.222214000000065],[-83.249435000000005,62.240829000000019],[-83.275832999999977,62.248604000000114],[-83.308043999999882,62.252777000000037],[-83.322784000000013,62.253052000000082],[-83.337783999999942,62.252219999999966],[-83.359726000000023,62.249718000000087],[-83.405562999999972,62.238884000000041],[-83.471938999999907,62.222763000000043],[-83.480835000000013,62.219986000000119],[-83.498885999999914,62.213326000000109],[-83.513335999999924,62.20638300000013],[-83.539992999999924,62.191933000000006],[-83.57417299999986,62.176384000000098],[-83.639174999999966,62.151100000000099],[-83.653885000000002,62.145827999999995],[-83.672774999999945,62.141106000000093],[-83.683318999999983,62.139717000000076],[-83.703887999999949,62.141662999999994],[-83.709441999999967,62.144440000000088],[-83.713897999999972,62.147216999999955],[-83.71833799999996,62.152214000000072],[-83.722778000000005,62.160271000000023],[-83.722778000000005,62.167213000000118],[-83.718063000000029,62.17943600000001],[-83.711945000000014,62.217209000000025],[-83.711669999999913,62.235825000000034],[-83.721389999999985,62.281662000000097],[-83.722778000000005,62.286385000000109],[-83.725829999999917,62.295273000000066],[-83.731673999999998,62.303604000000007],[-83.738892000000021,62.306937999999946],[-83.756667999999991,62.312492000000134],[-83.783324999999991,62.31888600000002],[-83.806655999999975,62.326385000000016],[-83.824448000000018,62.337212000000022],[-83.902495999999871,62.387497000000053],[-83.918610000000001,62.399162000000103],[-83.933608999999876,62.412209000000132],[-83.942489999999964,62.421661000000029],[-83.945267000000001,62.42721599999993],[-83.946654999999964,62.434158000000025],[-83.946654999999964,62.440269000000114],[-83.945267000000001,62.447212000000093],[-83.939162999999951,62.457497000000046],[-83.914168999999958,62.478600000000142],[-83.908339999999953,62.482764999999972],[-83.869445999999982,62.501105999999936],[-83.853058000000033,62.508049000000142],[-83.814437999999996,62.523880000000077],[-83.741378999999995,62.551658999999916],[-83.704177999999956,62.569443000000035],[-83.698043999999925,62.573051000000135],[-83.570007000000032,62.675270000000012],[-83.559433000000013,62.684157999999968],[-83.550277999999935,62.69999700000011],[-83.545546999999999,62.712212000000022],[-83.545546999999999,62.71776600000004],[-83.551392000000021,62.726653999999996],[-83.555831999999953,62.731659000000036],[-83.558884000000035,62.743881000000044],[-83.533614999999884,62.810272000000055],[-83.527495999999928,62.8211060000001],[-83.523055999999997,62.825271999999984],[-83.516953000000001,62.829994000000056],[-83.400283999999999,62.897491000000116],[-83.374160999999958,62.906937000000084],[-83.31082200000003,62.924438000000066],[-83.298614999999984,62.925827000000027],[-83.211670000000026,62.913605000000075],[-83.204177999999956,62.91027100000008],[-83.198333999999988,62.906654000000117],[-83.193877999999984,62.901932000000045],[-83.182495000000017,62.881378000000097],[-83.178054999999915,62.876380999999981],[-83.156112999999948,62.860549999999989],[-83.142501999999979,62.854439000000127],[-83.124709999999936,62.84804500000007],[-83.108337000000006,62.843322999999998],[-83.087509000000011,62.840271000000087],[-83.061935000000005,62.837493999999992],[-83.041107000000011,62.837212000000079],[-83.021392999999989,62.838599999999985],[-83.001677999999913,62.842491000000052],[-82.982223999999917,62.847771000000137],[-82.857497999999964,62.88999200000012],[-82.825561999999991,62.90277100000003],[-82.793335000000013,62.915543000000014],[-82.759734999999921,62.926940999999999],[-82.751952999999901,62.928878999999938],[-82.694442999999978,62.939430000000073],[-82.652221999999995,62.943878000000041],[-82.62470999999988,62.945540999999935],[-82.606658999999979,62.945540999999935],[-82.573623999999995,62.943878000000041],[-82.540833000000021,62.939430000000073],[-82.507781999999963,62.933601000000067],[-82.461394999999982,62.927489999999977],[-82.436110999999983,62.925270000000125],[-82.420837000000006,62.924995000000138],[-82.398055999999883,62.927489999999977],[-82.381377999999984,62.932770000000005],[-82.378052000000025,62.936377999999934],[-82.376389000000017,62.941101000000117],[-82.379165999999998,62.946655000000135],[-82.383620999999948,62.95138500000013],[-82.379989999999964,62.957497000000103],[-82.37222300000002,62.960274000000027],[-82.292770000000019,62.98333000000008],[-82.266662999999937,62.989159000000086],[-82.239440999999999,62.990273000000059],[-82.185821999999916,62.979988000000105],[-82.121932999999956,62.966660000000104],[-82.008057000000008,62.954993999999942],[-81.94027699999998,62.95387999999997],[-81.911666999999966,62.952217000000076],[-81.905838000000017,62.949997000000053],[-81.87110899999999,62.928329000000133]],[[-66.825561999999991,62.984161000000086],[-66.831389999999999,62.982765000000029],[-66.871384000000035,62.988884000000041],[-66.881942999999978,62.991661000000136],[-66.889450000000011,62.995269999999948],[-67.069457999999997,63.107498000000021],[-67.032776000000013,63.103881999999999],[-66.965285999999992,63.082496999999989],[-66.952224999999999,63.078049000000021],[-66.946105999999872,63.07499700000011],[-66.944442999999922,63.072768999999994],[-66.930557000000022,63.066939999999988],[-66.917496000000028,63.059715000000097],[-66.907501000000025,63.052773000000002],[-66.830001999999922,62.992493000000081],[-66.826950000000011,62.989990000000091],[-66.825011999999958,62.985550000000046],[-66.825561999999991,62.984161000000086]],[[-67.764450000000011,63.162491000000045],[-67.775833000000034,63.1616590000001],[-67.787505999999951,63.163048000000117],[-67.79861499999987,63.165543000000127],[-67.806380999999988,63.168602000000135],[-67.851943999999946,63.191376000000105],[-67.863327000000027,63.199158000000011],[-67.876388999999961,63.211937000000091],[-67.876937999999996,63.216933999999981],[-67.875,63.22304500000007],[-67.866393999999957,63.232491000000039],[-67.852218999999877,63.244438000000002],[-67.84445199999999,63.247215000000097],[-67.839721999999995,63.247215000000097],[-67.831954999999994,63.244155999999919],[-67.821945000000028,63.236656000000039],[-67.822234999999921,63.233330000000024],[-67.816101000000003,63.23054499999995],[-67.791671999999949,63.214996000000042],[-67.769454999999994,63.198326000000122],[-67.746108999999933,63.178879000000109],[-67.744720000000029,63.173050000000103],[-67.746384000000035,63.166939000000013],[-67.764450000000011,63.162491000000045]],[[-67.925003000000004,63.183327000000077],[-67.956116000000009,63.181107000000054],[-67.966949,63.183875999999998],[-68.000838999999985,63.208046000000024],[-68.017226999999991,63.220543000000021],[-68.061385999999914,63.257773999999984],[-68.105834999999956,63.299438000000066],[-68.111663999999962,63.309158000000139],[-68.112212999999997,63.313606000000107],[-68.106383999999991,63.318604000000107],[-68.096953999999926,63.318885999999964],[-68.085555999999997,63.316101000000117],[-68.069167999999877,63.309432999999956],[-68.048889000000031,63.297493000000088],[-68.032227000000034,63.284996000000092],[-68.00028999999995,63.260276999999917],[-67.92582699999997,63.196098000000006],[-67.920546999999999,63.191376000000105],[-67.916945999999939,63.186653000000092],[-67.925003000000004,63.183327000000077]],[[-78.079726999999991,63.469436999999914],[-77.946105999999986,63.468048000000124],[-77.937774999999988,63.471100000000035],[-77.930556999999965,63.474991000000102],[-77.924164000000019,63.47693600000008],[-77.911941999999954,63.476379000000009],[-77.845001000000025,63.472214000000008],[-77.680557000000022,63.434433000000013],[-77.636672999999917,63.402771000000087],[-77.495834000000002,63.274994000000106],[-77.493880999999988,63.269989000000066],[-77.49499499999996,63.265831000000105],[-77.50389100000001,63.252494999999954],[-77.573333999999932,63.200546000000145],[-77.641953000000001,63.171936000000073],[-77.785277999999892,63.121658000000139],[-77.898894999999925,63.09276600000004],[-77.906661999999983,63.09165999999999],[-77.931380999999931,63.090546000000018],[-77.946655000000021,63.091103000000089],[-77.958343999999954,63.093048000000124],[-78.025008999999898,63.11721],[-78.124709999999993,63.165825000000041],[-78.226944000000003,63.221656999999993],[-78.295546999999999,63.25999500000006],[-78.311385999999914,63.272217000000012],[-78.322234999999978,63.281105000000025],[-78.343613000000005,63.29694400000011],[-78.354445999999996,63.303604000000121],[-78.446655000000021,63.350273000000129],[-78.486937999999896,63.364998000000071],[-78.519729999999981,63.370270000000005],[-78.523894999999982,63.372489999999971],[-78.562499999999943,63.395828000000108],[-78.572234999999921,63.434715000000097],[-78.572783999999956,63.440269000000114],[-78.551665999999955,63.44499200000007],[-78.379989999999964,63.476379000000009],[-78.278885000000002,63.489716000000044],[-78.214111000000003,63.496535999999992],[-78.212783999999999,63.496101000000067],[-78.158614999999884,63.482208000000014],[-78.091675000000009,63.470543000000134],[-78.079726999999991,63.469436999999914]],[[-90.653884999999946,63.441101000000003],[-90.697495000000004,63.439713000000097],[-90.708892999999932,63.440544000000102],[-90.719161999999983,63.443603999999993],[-90.72582999999986,63.448043999999982],[-90.755004999999983,63.489716000000044],[-90.757232999999985,63.494438000000116],[-90.748046999999929,63.498329000000012],[-90.737502999999947,63.499161000000129],[-90.645553999999947,63.483330000000137],[-90.620269999999948,63.47693600000008],[-90.602782999999988,63.463882000000012],[-90.598052999999993,63.454436999999984],[-90.602218999999991,63.449158000000011],[-90.611937999999952,63.44609800000012],[-90.621932999999956,63.444153000000142],[-90.653884999999946,63.441101000000003]],[[-78.55749499999996,63.457497000000046],[-78.600554999999929,63.456383000000017],[-78.603333000000021,63.45777099999998],[-78.56138599999997,63.502495000000124],[-78.543334999999956,63.516106000000093],[-78.515839000000028,63.53166200000004],[-78.505004999999869,63.532493999999929],[-78.496108999999933,63.529434000000094],[-78.473327999999981,63.519157000000121],[-78.468063000000029,63.515549000000021],[-78.46166999999997,63.507499999999993],[-78.459166999999979,63.479988000000048],[-78.461945000000014,63.47387700000013],[-78.467223999999987,63.469436999999914],[-78.475554999999986,63.466933999999981],[-78.531113000000005,63.458603000000039],[-78.55749499999996,63.457497000000046]],[[-90.793609999999944,63.494156000000089],[-90.804442999999935,63.493324000000143],[-90.816956000000005,63.495827000000133],[-90.877212999999983,63.514717000000076],[-90.933318999999983,63.534164000000089],[-90.965835999999967,63.54583000000008],[-90.96833799999996,63.550270000000125],[-90.957503999999972,63.551384000000098],[-90.771117999999944,63.55193300000002],[-90.748046999999929,63.550270000000125],[-90.720001000000025,63.543052999999986],[-90.709731999999974,63.539992999999924],[-90.700835999999981,63.536110000000008],[-90.681380999999988,63.52304799999996],[-90.676940999999886,63.518599999999992],[-90.674712999999997,63.513884999999959],[-90.678604000000007,63.508330999999998],[-90.688889000000017,63.50638600000002],[-90.793609999999944,63.494156000000089]],[[-64.851944000000003,63.385826000000122],[-64.856948999999986,63.385826000000122],[-64.882216999999969,63.395546000000024],[-64.904175000000009,63.40638000000007],[-64.918335000000013,63.413879000000065],[-64.942215000000033,63.43082400000003],[-64.950835999999924,63.439156000000025],[-65.026672000000019,63.515549000000021],[-65.035278000000005,63.524436999999978],[-65.053054999999972,63.548331999999959],[-65.051940999999999,63.552215999999987],[-64.977218999999991,63.568329000000062],[-64.967498999999918,63.568329000000062],[-64.954726999999991,63.558883999999978],[-64.954726999999991,63.553879000000109],[-64.93360899999999,63.544716000000108],[-64.912216000000001,63.533333000000084],[-64.909163999999976,63.528603000000089],[-64.867492999999911,63.461662000000047],[-64.860824999999863,63.447212000000093],[-64.847504000000015,63.407494000000042],[-64.844726999999978,63.396942000000081],[-64.847778000000005,63.387496999999996],[-64.851944000000003,63.385826000000122]],[[-72.182495000000017,63.51998900000001],[-72.207503999999972,63.51998900000001],[-72.218886999999995,63.522491000000059],[-72.226943999999946,63.525825999999995],[-72.232772999999895,63.530273000000022],[-72.286666999999909,63.583328000000108],[-72.279174999999952,63.585548000000131],[-72.232223999999917,63.586655000000064],[-72.230285999999978,63.587212000000136],[-72.205276000000026,63.583054000000004],[-72.184432999999956,63.577217000000019],[-72.135559000000001,63.562767000000065],[-72.129165999999998,63.558883999999978],[-72.128052000000025,63.553879000000109],[-72.145003999999972,63.539436000000023],[-72.165833000000021,63.526381999999955],[-72.173614999999984,63.522766000000104],[-72.182495000000017,63.51998900000001]],[[-91.329177999999956,63.559714999999983],[-91.401947000000007,63.549438000000009],[-91.424438000000009,63.550270000000125],[-91.43638599999997,63.55193300000002],[-91.461944999999901,63.558327000000077],[-91.540282999999931,63.601662000000033],[-91.540558000000033,63.606658999999979],[-91.534164000000033,63.611381999999935],[-91.501113999999973,63.611938000000123],[-91.463897999999915,63.6097180000001],[-91.440826000000015,63.608047000000056],[-91.428604000000007,63.606383999999935],[-91.416396999999961,63.603607000000068],[-91.362503000000004,63.590271000000087],[-91.34944200000001,63.586655000000064],[-91.299727999999959,63.567771999999934],[-91.308884000000035,63.563881000000094],[-91.329177999999956,63.559714999999983]],[[-64.092498999999918,63.481659000000093],[-64.101944000000003,63.47943099999992],[-64.109160999999915,63.483046999999999],[-64.169448999999986,63.523605000000089],[-64.180556999999965,63.533051000000057],[-64.184158000000025,63.537216000000058],[-64.209166999999979,63.574996999999996],[-64.216109999999901,63.595268000000033],[-64.216948999999943,63.601105000000132],[-64.215285999999935,63.617493000000024],[-64.212783999999942,63.623604000000114],[-64.199722000000008,63.633331000000055],[-64.191939999999988,63.637215000000083],[-64.182495000000017,63.639435000000105],[-64.17193599999996,63.633606000000043],[-64.09333799999996,63.568329000000062],[-64.078338999999914,63.550545000000113],[-64.077224999999999,63.545273000000009],[-64.077788999999882,63.539718999999991],[-64.086120999999935,63.493050000000039],[-64.087508999999955,63.486655999999982],[-64.092498999999918,63.481659000000093]],[[-68.656386999999938,63.626381000000038],[-68.717772999999909,63.624161000000015],[-68.731109999999944,63.625549000000092],[-68.815552000000025,63.649162000000047],[-68.821670999999981,63.652488999999946],[-68.820007000000032,63.65526600000004],[-68.793059999999969,63.661659000000043],[-68.71444699999995,63.672493000000088],[-68.691665999999941,63.673607000000061],[-68.676940999999999,63.671379000000115],[-68.668883999999935,63.668326999999977],[-68.666397000000018,63.663879000000009],[-68.666259999999966,63.662581999999986],[-68.655272999999966,63.634437999999989],[-68.654449,63.630272000000105],[-68.656386999999938,63.626381000000038]],[[-64.061110999999983,63.270546000000138],[-64.070556999999951,63.268326000000116],[-64.078338999999914,63.268883000000017],[-64.181945999999982,63.29694400000011],[-64.25140399999998,63.320830999999998],[-64.266953000000001,63.326384999999959],[-64.349730999999963,63.392220000000009],[-64.353881999999885,63.395828000000108],[-64.421936000000017,63.471657000000107],[-64.496108999999876,63.6097180000001],[-64.490554999999972,63.620544000000052],[-64.479171999999949,63.636940000000038],[-64.473617999999874,63.640549000000078],[-64.386672999999973,63.675270000000012],[-64.377212999999927,63.677489999999977],[-64.367217999999923,63.675270000000012],[-64.363051999999925,63.671936000000017],[-64.328888000000006,63.644440000000145],[-64.325561999999934,63.637496999999939],[-64.325561999999934,63.59804500000007],[-64.324447999999961,63.588042999999971],[-64.321670999999981,63.577492000000063],[-64.316101000000003,63.562492000000077],[-64.262511999999958,63.421104000000128],[-64.232498000000021,63.388329000000113],[-64.225280999999939,63.384438000000046],[-64.20666499999993,63.384163000000001],[-64.166945999999996,63.369438000000059],[-64.144729999999925,63.355552999999986],[-64.099990999999932,63.322769000000108],[-64.057495000000017,63.278046000000018],[-64.057495000000017,63.273880000000133],[-64.061110999999983,63.270546000000138]],[[-71.799164000000019,63.615546999999935],[-71.806945999999868,63.611938000000123],[-71.845275999999956,63.613608999999997],[-71.855269999999905,63.615829000000019],[-71.863327000000027,63.619438000000002],[-71.865829000000019,63.624435000000119],[-71.865829000000019,63.636383000000137],[-71.864166000000012,63.669440999999949],[-71.830565999999919,63.693878000000041],[-71.821945000000028,63.695267000000058],[-71.789444000000003,63.691375999999991],[-71.779449,63.68832400000008],[-71.775283999999999,63.683051999999918],[-71.777221999999938,63.670830000000137],[-71.791107000000011,63.627213000000097],[-71.799164000000019,63.615546999999935]],[[-76.810546999999985,63.601105000000132],[-76.710555999999997,63.565826000000072],[-76.672225999999966,63.528877000000023],[-76.675551999999925,63.496658000000139],[-76.681609999999978,63.481354000000067],[-76.61332699999997,63.473602000000085],[-76.565551999999911,63.46776600000004],[-76.546111999999994,63.464714000000129],[-76.541945999999939,63.462494000000106],[-76.543883999999991,63.461104999999918],[-76.675002999999947,63.374709999999993],[-76.682219999999973,63.370827000000077],[-76.692214999999976,63.367767000000015],[-76.703338999999971,63.365829000000076],[-76.712783999999942,63.365546999999992],[-76.726105000000018,63.36693600000001],[-76.847778000000005,63.385269000000051],[-76.984160999999915,63.40638000000007],[-77.035277999999948,63.423882000000106],[-77.039443999999946,63.426102000000128],[-77.046111999999994,63.42971799999998],[-77.051391999999964,63.434158000000025],[-77.05360399999995,63.436935000000119],[-77.055556999999965,63.442764000000125],[-77.06138599999997,63.450546000000088],[-77.105834999999956,63.476654000000053],[-77.111663999999962,63.479713000000004],[-77.327788999999996,63.572220000000129],[-77.36721799999998,63.583054000000004],[-77.391388000000006,63.585548000000131],[-77.411666999999966,63.584991000000002],[-77.422226000000023,63.586655000000064],[-77.427779999999984,63.589157000000114],[-77.431945999999982,63.591934000000037],[-77.442215000000033,63.608330000000024],[-77.457229999999981,63.643325999999945],[-77.453887999999949,63.652214000000129],[-77.44027699999998,63.665268000000026],[-77.410277999999948,63.686652999999978],[-77.40055799999999,63.688880999999981],[-77.378051999999968,63.692214999999919],[-77.343338000000017,63.696098000000063],[-77.116942999999935,63.681107000000111],[-77.103332999999964,63.67971799999998],[-77.06138599999997,63.672768000000076],[-77.021392999999932,63.664154000000053],[-76.810546999999985,63.601105000000132]],[[-72.594727000000034,63.642494000000056],[-72.604445999999939,63.641663000000051],[-72.780563000000029,63.659987999999942],[-72.783324999999877,63.66443600000008],[-72.770553999999947,63.669715999999994],[-72.756667999999877,63.672768000000076],[-72.723052999999993,63.67860399999995],[-72.506667999999991,63.707214000000022],[-72.483886999999982,63.708885000000066],[-72.474166999999909,63.705826000000116],[-72.470839999999953,63.702217000000076],[-72.471389999999985,63.700828999999999],[-72.468886999999938,63.699158000000125],[-72.463333000000034,63.689156000000139],[-72.459731999999974,63.679161000000079],[-72.46055599999994,63.672768000000076],[-72.463897999999972,63.668326999999977],[-72.584441999999967,63.644440000000145],[-72.594727000000034,63.642494000000056]],[[-64.032501000000025,63.68971300000004],[-64.161117999999988,63.674438000000066],[-64.181106999999997,63.675827000000083],[-64.200286999999946,63.685546999999985],[-64.208344000000011,63.697487000000081],[-64.21166999999997,63.706383000000017],[-64.212509000000011,63.712212000000022],[-64.208892999999989,63.721930999999984],[-64.180283000000031,63.742218000000094],[-64.17471299999994,63.745270000000005],[-64.166655999999989,63.747772000000055],[-64.083069000000023,63.758331000000112],[-64.078063999999983,63.758331000000112],[-64.075287000000003,63.758049000000028],[-64.073333999999932,63.756386000000134],[-64.054840000000013,63.736595000000079],[-64.043335000000013,63.734161000000086],[-64.030288999999982,63.729713000000118],[-64.025283999999942,63.70249200000012],[-64.025283999999942,63.697487000000081],[-64.026397999999915,63.693878000000041],[-64.032501000000025,63.68971300000004]],[[-72.667769999999962,63.69582400000013],[-72.6949919999999,63.690269000000058],[-72.703613000000018,63.692490000000134],[-72.734160999999972,63.710823000000005],[-72.738891999999908,63.714439000000084],[-72.741669000000002,63.719711000000018],[-72.743880999999874,63.730270000000019],[-72.739989999999977,63.736107000000004],[-72.719727000000034,63.76388500000013],[-72.715560999999923,63.766106000000036],[-72.705841000000021,63.767494000000113],[-72.693877999999984,63.765830999999991],[-72.682495000000017,63.762214999999969],[-72.664718999999934,63.755554000000018],[-72.642226999999934,63.745270000000005],[-72.635833999999988,63.741379000000109],[-72.626663000000008,63.732207999999957],[-72.625823999999966,63.727486000000056],[-72.626389000000017,63.721099999999979],[-72.634170999999981,63.709160000000054],[-72.649993999999992,63.701385000000016],[-72.667769999999962,63.69582400000013]],[[-64.28443900000002,63.708602999999982],[-64.286391999999978,63.708046000000081],[-64.311110999999926,63.709991000000116],[-64.329178000000013,63.71665999999999],[-64.336394999999925,63.719986000000006],[-64.348617999999988,63.728042999999957],[-64.356948999999986,63.736938000000009],[-64.363616999999977,63.746383999999978],[-64.381103999999993,63.807495000000131],[-64.35943599999996,63.803879000000052],[-64.339721999999938,63.796943999999996],[-64.331954999999994,63.791663999999969],[-64.302779999999927,63.78054800000001],[-64.278610000000015,63.770828000000108],[-64.275008999999955,63.766663000000108],[-64.255279999999971,63.729713000000118],[-64.255004999999926,63.72526600000009],[-64.260833999999875,63.719711000000018],[-64.28443900000002,63.708602999999982]],[[-64.170273000000009,63.856384000000105],[-64.180831999999896,63.785270999999966],[-64.195267000000001,63.778603000000032],[-64.203338999999971,63.776382000000126],[-64.234435999999903,63.771378000000141],[-64.245834000000002,63.771378000000141],[-64.256957999999997,63.774162000000103],[-64.325561999999934,63.80582400000003],[-64.398346000000004,63.845543000000134],[-64.39916999999997,63.849434000000031],[-64.397780999999895,63.851386999999988],[-64.396117999999944,63.851936000000137],[-64.353881999999885,63.861107000000061],[-64.334091000000001,63.852081000000055],[-64.325561999999934,63.850273000000016],[-64.31082200000003,63.848328000000038],[-64.268340999999907,63.846100000000035],[-64.215012000000002,63.850273000000016],[-64.208344000000011,63.852776000000006],[-64.200286999999946,63.859718000000044],[-64.186661000000015,63.86721],[-64.179992999999911,63.865547000000106],[-64.175827000000027,63.861938000000066],[-64.170273000000009,63.856384000000105]],[[-92.954178000000013,63.871101000000067],[-92.96055599999994,63.866386000000034],[-92.972778000000005,63.867767000000072],[-92.998610999999983,63.873046999999985],[-93.068619000000012,63.888046000000031],[-93.093886999999995,63.899994000000049],[-93.094451999999933,63.904990999999995],[-93.087783999999999,63.908882000000062],[-93.070007000000032,63.909713999999951],[-93.002791999999943,63.911377000000073],[-92.990829000000019,63.910820000000001],[-92.978333000000021,63.908324999999991],[-92.97444200000001,63.901657],[-92.955275999999969,63.880820999999969],[-92.952498999999989,63.876099000000067],[-92.954178000000013,63.871101000000067]],[[-64.576110999999855,63.780822999999998],[-64.525832999999977,63.771378000000141],[-64.467772999999966,63.771378000000141],[-64.461945000000014,63.774712000000136],[-64.452498999999989,63.777214000000015],[-64.432769999999948,63.779434000000037],[-64.426102000000014,63.777771000000087],[-64.394729999999981,63.745827000000077],[-64.387511999999958,63.737495000000081],[-64.386123999999938,63.73443600000013],[-64.386123999999938,63.701660000000004],[-64.389998999999932,63.696381000000031],[-64.404175000000009,63.687492000000134],[-64.419158999999979,63.67971799999998],[-64.436385999999914,63.673324999999977],[-64.450561999999934,63.671660999999972],[-64.459441999999967,63.672768000000076],[-64.47444200000001,63.679161000000079],[-64.496947999999918,63.690826000000129],[-64.661666999999909,63.754997000000117],[-64.802215999999987,63.764442000000031],[-64.813323999999966,63.767212000000029],[-64.890288999999939,63.789435999999966],[-64.90055799999999,63.793883999999935],[-64.906386999999995,63.797493000000145],[-64.916396999999904,63.806380999999931],[-64.918335000000013,63.815269000000114],[-64.920272999999952,63.824715000000083],[-64.917769999999905,63.831108000000029],[-64.910277999999948,63.837212000000079],[-64.896392999999989,63.845267999999976],[-64.811660999999958,63.87721300000004],[-64.710555999999997,63.908882000000062],[-64.682494999999903,63.91443600000008],[-64.660278000000005,63.916382000000112],[-64.647231999999974,63.916100000000085],[-64.557219999999916,63.909988000000112],[-64.553054999999915,63.906380000000013],[-64.549437999999952,63.895271000000093],[-64.571121000000005,63.870827000000133],[-64.585555999999997,63.844994000000042],[-64.576110999999855,63.780822999999998]],[[-77.743880999999931,63.926658999999916],[-77.753341999999975,63.925551999999982],[-77.948607999999979,63.950829000000113],[-77.956954999999937,63.95388000000014],[-77.966948999999886,63.959160000000054],[-77.978881999999999,63.96915400000006],[-77.982497999999964,63.97554800000006],[-77.982497999999964,63.983047000000056],[-77.976105000000018,63.990273000000059],[-77.957503999999972,64.004715000000033],[-77.950287000000003,64.009155000000021],[-77.943603999999993,64.011107999999979],[-77.923889000000031,64.014999000000046],[-77.889998999999989,64.019989000000066],[-77.774445000000014,64.031662000000097],[-77.753890999999953,64.032761000000107],[-77.648620999999991,64.032486000000063],[-77.591110000000015,64.030272999999966],[-77.557219999999973,64.028046000000074],[-77.549727999999959,64.025543000000084],[-77.544448999999986,64.021927000000062],[-77.545273000000009,64.018600000000106],[-77.623610999999983,63.997214999999926],[-77.623885999999914,63.99582700000002],[-77.628052000000025,63.991104000000064],[-77.639450000000011,63.981934000000024],[-77.68638599999997,63.954437000000041],[-77.728606999999954,63.932213000000104],[-77.737212999999883,63.928329000000076],[-77.743880999999931,63.926658999999916]],[[-89.808884000000035,64.056366000000082],[-89.817229999999938,64.054703000000131],[-89.828887999999893,64.055816999999934],[-89.839447000000007,64.058868000000132],[-89.847778000000005,64.063034000000073],[-89.861114999999984,64.071655000000135],[-89.869995000000017,64.080826000000116],[-89.871933000000013,64.085541000000148],[-89.867767000000015,64.095824999999991],[-89.857498000000021,64.0977630000001],[-89.831679999999892,64.091094999999939],[-89.828063999999927,64.088318000000072],[-89.819732999999928,64.080276000000083],[-89.80471799999998,64.0619200000001],[-89.808884000000035,64.056366000000082]],[[-64.962783999999999,64.110809000000074],[-64.948607999999979,64.109710999999947],[-64.903609999999901,64.111099000000081],[-64.87110899999999,64.099152000000117],[-64.869445999999982,64.096649000000127],[-64.869995000000017,64.093323000000112],[-64.87332200000003,64.090820000000122],[-64.884445000000028,64.086655000000121],[-64.905563000000029,64.082214000000022],[-64.946655000000021,64.078872999999987],[-64.988892000000021,64.081375000000037],[-65.002228000000002,64.083878000000027],[-65.02305599999994,64.089432000000045],[-65.045546999999942,64.099426000000051],[-65.055556999999965,64.108596999999975],[-65.057495000000017,64.11303700000002],[-65.056380999999931,64.117203000000075],[-65.05221599999993,64.121093999999971],[-65.039718999999934,64.124985000000038],[-65.025009000000011,64.127472000000125],[-65.015563999999927,64.126922999999977],[-64.995270000000005,64.12303199999991],[-64.989990000000034,64.118590999999981],[-64.980834999999956,64.115265000000136],[-64.962783999999999,64.110809000000074]],[[-64.491104000000007,64.109146000000123],[-64.499999999999943,64.10803199999998],[-64.511397999999929,64.108321999999987],[-64.587508999999955,64.147491000000059],[-64.592498999999975,64.151931999999988],[-64.595276000000013,64.15498400000007],[-64.59584000000001,64.156647000000021],[-64.567779999999971,64.163605000000018],[-64.554169000000002,64.166931000000034],[-64.524444999999957,64.167206000000022],[-64.518111999999917,64.166214000000025],[-64.50111400000003,64.163314999999955],[-64.453339000000028,64.146942000000081],[-64.450287000000003,64.130264000000011],[-64.491104000000007,64.109146000000123]],[[-73.176940999999999,64.200271999999984],[-73.282776000000013,64.143326000000059],[-73.291945999999939,64.14387499999998],[-73.386397999999872,64.158874999999966],[-73.396956999999986,64.161102000000028],[-73.401672000000019,64.165543000000127],[-73.394729999999925,64.187759000000085],[-73.393065999999919,64.192474000000118],[-73.385559000000001,64.196365000000014],[-73.309433000000013,64.194977000000108],[-73.206664999999987,64.213882000000069],[-73.189986999999917,64.212203999999929],[-73.178054999999972,64.209991000000002],[-73.17332499999992,64.205261000000121],[-73.176940999999999,64.200271999999984]],[[-81.471389999999985,64.188873000000058],[-81.493606999999997,64.188309000000118],[-81.516112999999962,64.190536000000009],[-81.527785999999992,64.194137999999953],[-81.536666999999852,64.208603000000096],[-81.538054999999929,64.218048000000124],[-81.532226999999921,64.223038000000031],[-81.470000999999911,64.239426000000094],[-81.458618000000001,64.238876000000062],[-81.413329999999974,64.233322000000044],[-81.390288999999939,64.229155999999932],[-81.378601000000003,64.22554000000008],[-81.375823999999909,64.220825000000048],[-81.374999999999943,64.215820000000008],[-81.378875999999934,64.211929000000112],[-81.388901000000033,64.204987000000017],[-81.405272999999909,64.19470200000012],[-81.471389999999985,64.188873000000058]],[[-64.52027899999996,64.220261000000107],[-64.576401000000033,64.210541000000035],[-64.601668999999958,64.212493999999992],[-64.611938000000009,64.215820000000008],[-64.619445999999925,64.219711000000075],[-64.646956999999986,64.244141000000127],[-64.647781000000009,64.250000000000114],[-64.643616000000009,64.255829000000119],[-64.637512000000015,64.259995000000004],[-64.629715000000033,64.261658000000125],[-64.571670999999924,64.264998999999989],[-64.557525999999996,64.264862000000051],[-64.553054999999915,64.263321000000076],[-64.55221599999993,64.261658000000125],[-64.552490000000034,64.256653000000085],[-64.468062999999972,64.243316999999934],[-64.464721999999938,64.240814],[-64.462218999999948,64.237487999999928],[-64.464447000000007,64.234420999999998],[-64.471114999999998,64.231659000000093],[-64.52027899999996,64.220261000000107]],[[-75.551392000000021,64.303863999999976],[-75.691939999999988,64.302475000000129],[-75.702224999999999,64.305817000000104],[-75.708892999999989,64.315262000000132],[-75.705840999999964,64.341934000000037],[-75.696655000000021,64.351089000000115],[-75.686385999999914,64.353317000000061],[-75.665008999999998,64.350815000000011],[-75.578887999999949,64.346099999999979],[-75.572784000000013,64.344985999999949],[-75.502501999999936,64.319716999999969],[-75.493606999999997,64.316376000000105],[-75.50111400000003,64.313309000000004],[-75.511123999999938,64.311096000000077],[-75.551392000000021,64.303863999999976]],[[-64.938598999999954,64.235535000000027],[-64.989165999999955,64.209152000000017],[-65.00306699999993,64.21026599999999],[-65.048614999999984,64.218322999999998],[-65.052779999999984,64.219436999999971],[-65.059997999999894,64.223312000000135],[-65.065551999999968,64.227478000000019],[-65.073059000000001,64.240540000000067],[-65.102492999999981,64.296371000000136],[-65.109160999999972,64.310806000000071],[-65.113892000000021,64.323608000000036],[-65.114715999999987,64.329437000000041],[-65.114166000000012,64.334991000000059],[-65.112503000000004,64.339706000000092],[-65.110001000000011,64.343596999999988],[-65.101669000000015,64.346374999999966],[-65.08944699999995,64.349716000000001],[-65.028884999999889,64.361099000000024],[-65.021392999999932,64.362487999999985],[-65.010283999999956,64.361649000000057],[-65.006393000000003,64.360535000000084],[-65.001952999999958,64.356934000000024],[-64.99888599999997,64.354431000000034],[-64.982223999999974,64.333054000000004],[-64.884734999999921,64.28776600000009],[-64.886123999999938,64.283051000000057],[-64.890838999999971,64.276382000000012],[-64.926940999999943,64.242477000000065],[-64.938598999999954,64.235535000000027]],[[-73.876389000000017,64.301376000000005],[-73.883620999999948,64.298874000000069],[-73.951674999999966,64.304977000000008],[-73.96556099999998,64.30664100000007],[-73.972503999999958,64.309707999999944],[-73.97444200000001,64.313309000000004],[-73.960281000000009,64.362197999999978],[-73.95666499999993,64.368317000000047],[-73.952498999999932,64.370819000000097],[-73.942214999999919,64.372757000000036],[-73.932219999999916,64.37359600000002],[-73.918335000000013,64.371918000000051],[-73.909438999999963,64.369980000000112],[-73.889175000000023,64.359711000000118],[-73.879165999999941,64.351928999999984],[-73.874160999999958,64.343323000000055],[-73.87332200000003,64.305252000000053],[-73.876389000000017,64.301376000000005]],[[-73.69776899999988,64.269989000000066],[-73.704726999999934,64.268875000000037],[-73.72084000000001,64.272765999999933],[-73.75389100000001,64.28276100000005],[-73.776671999999962,64.294708000000014],[-73.823333999999988,64.324707000000046],[-73.833618000000001,64.331665000000044],[-73.781386999999995,64.405547999999953],[-73.776108000000022,64.407486000000119],[-73.765563999999983,64.409424000000058],[-73.749161000000015,64.410262999999986],[-73.744445999999982,64.405822999999998],[-73.730835000000013,64.386383000000023],[-73.729172000000005,64.386107999999979],[-73.726944000000003,64.383331000000055],[-73.724441999999954,64.377472000000068],[-73.702498999999989,64.322769000000108],[-73.699157999999954,64.314147999999989],[-73.690552000000025,64.276932000000045],[-73.691665999999998,64.273605000000089],[-73.694442999999922,64.271103000000039],[-73.69776899999988,64.269989000000066]],[[-64.849730999999963,64.307479999999998],[-64.861388999999974,64.307479999999998],[-64.877212999999983,64.313309000000004],[-64.888061999999991,64.321105999999986],[-64.937774999999988,64.361649000000057],[-64.944992000000013,64.37052900000009],[-64.955565999999976,64.383880999999917],[-64.959732000000031,64.397217000000069],[-64.958618000000001,64.405822999999998],[-64.951674999999909,64.411376999999959],[-64.946655000000021,64.413605000000132],[-64.932495000000017,64.417480000000126],[-64.925277999999992,64.418594000000098],[-64.910004000000015,64.416655999999989],[-64.902495999999985,64.412766000000147],[-64.897507000000019,64.408600000000092],[-64.820007000000032,64.379425000000026],[-64.771941999999967,64.348877000000016],[-64.770553999999947,64.345825000000104],[-64.773055999999997,64.34248400000007],[-64.849730999999963,64.307479999999998]],[[-74.27194199999991,64.413605000000132],[-74.285004000000015,64.41304000000008],[-74.357497999999964,64.421097000000088],[-74.377212999999983,64.424423000000104],[-74.423324999999977,64.443863000000079],[-74.437209999999936,64.450271999999927],[-74.439437999999996,64.453323000000125],[-74.338608000000022,64.49470500000001],[-74.331679999999949,64.496933000000126],[-74.31040999999999,64.49884000000003],[-74.285277999999948,64.481659000000036],[-74.228607000000011,64.451096000000064],[-74.205841000000021,64.44747899999993],[-74.183060000000012,64.443039000000113],[-74.17332499999992,64.439148000000046],[-74.174712999999997,64.434981999999991],[-74.178328999999962,64.433867999999961],[-74.27194199999991,64.413605000000132]],[[-73.744995000000017,64.426086000000055],[-73.758346999999958,64.425537000000077],[-73.77806099999998,64.428314],[-73.781386999999995,64.431931000000134],[-73.782776000000013,64.437484999999924],[-73.782500999999968,64.442474000000061],[-73.776108000000022,64.495818999999983],[-73.773894999999982,64.501937999999996],[-73.773330999999928,64.503326000000072],[-73.746917999999937,64.508513999999991],[-73.736664000000019,64.507216999999969],[-73.729172000000005,64.505264000000068],[-73.724166999999852,64.50221300000004],[-73.673049999999989,64.469711000000018],[-73.668610000000001,64.464432000000045],[-73.668334999999956,64.460265999999933],[-73.671936000000017,64.455826000000116],[-73.67971799999998,64.452208999999982],[-73.727218999999934,64.431091000000094],[-73.735001000000011,64.428040000000067],[-73.744995000000017,64.426086000000055]],[[-74.212783999999999,64.483046999999999],[-74.223327999999981,64.480270000000075],[-74.229171999999949,64.481369000000029],[-74.307495000000017,64.516098000000113],[-74.331116000000009,64.526656999999943],[-74.337508999999955,64.531096999999988],[-74.357773000000009,64.546936000000073],[-74.357773000000009,64.551086000000112],[-74.353881999999999,64.553589000000045],[-74.345550999999944,64.555251999999996],[-74.253066999999987,64.548035000000084],[-74.240554999999972,64.546371000000079],[-74.236114999999984,64.545532000000094],[-74.169723999999974,64.523880000000077],[-74.169448999999929,64.519714000000135],[-74.206664999999987,64.486374000000069],[-74.212783999999999,64.483046999999999]],[[-73.557495000000017,64.312758999999971],[-73.577788999999939,64.309982000000105],[-73.601669000000015,64.310257000000092],[-73.626388999999904,64.312758999999971],[-73.650283999999999,64.31721500000009],[-73.655563000000029,64.320267000000001],[-73.658339999999953,64.334991000000059],[-73.669532999999888,64.426849000000118],[-73.610442999999975,64.470489999999984],[-73.68249499999996,64.509720000000129],[-73.679992999999911,64.526093000000003],[-73.677779999999927,64.532211000000132],[-73.666655999999875,64.535538000000088],[-73.577224999999999,64.559982000000048],[-73.537215999999944,64.567764000000011],[-73.527785999999992,64.566940000000045],[-73.521118000000001,64.56303400000013],[-73.509170999999981,64.552475000000072],[-73.504729999999938,64.542480000000012],[-73.50306699999993,64.53414900000007],[-73.489165999999955,64.463318000000072],[-73.488051999999982,64.453598],[-73.48832699999997,64.443863000000079],[-73.490279999999927,64.439148000000046],[-73.555266999999958,64.314697000000137],[-73.557495000000017,64.312758999999971]],[[-65.492767000000015,64.517761000000007],[-65.658339999999953,64.509720000000129],[-65.669448999999929,64.510269000000108],[-65.67971799999998,64.512207000000046],[-65.686110999999926,64.515273999999977],[-65.689712999999983,64.51998900000001],[-65.690276999999924,64.524155000000064],[-65.689712999999983,64.52998400000007],[-65.686935000000005,64.538879000000122],[-65.672500999999954,64.56053200000008],[-65.660278000000005,64.573883000000023],[-65.651108000000022,64.580551000000014],[-65.615829000000019,64.599152000000004],[-65.563323999999909,64.615540000000067],[-65.554442999999992,64.618591000000094],[-65.546951000000035,64.622481999999991],[-65.449158000000011,64.678863999999976],[-65.443877999999927,64.684708000000001],[-65.43582200000003,64.696365000000128],[-65.381942999999922,64.716934000000037],[-65.292495999999971,64.735535000000084],[-65.256957999999941,64.709991000000059],[-65.252501999999936,64.706375000000037],[-65.258057000000008,64.700821000000019],[-65.266402999999912,64.6933140000001],[-65.249999999999886,64.663605000000075],[-65.208054000000004,64.639708999999982],[-65.208618000000001,64.631363000000079],[-65.213897999999915,64.626083000000051],[-65.228057999999919,64.6202550000001],[-65.309433000000013,64.60054000000008],[-65.420272999999952,64.55442800000003],[-65.452788999999939,64.532760999999994],[-65.450835999999924,64.528320000000065],[-65.453613000000018,64.524428999999998],[-65.460555999999997,64.521102999999982],[-65.468886999999995,64.519150000000025],[-65.492767000000015,64.517761000000007]],[[-63.353333000000021,64.994980000000112],[-63.349167000000023,64.991652999999985],[-63.34722099999999,64.991927999999973],[-63.330558999999994,64.986923000000104],[-63.257506999999976,64.92942800000003],[-63.256392999999889,64.926376000000118],[-63.258895999999936,64.921097000000145],[-63.27305599999994,64.918045000000063],[-63.281386999999938,64.918320000000051],[-63.37777699999998,64.940811000000053],[-63.385276999999974,64.944138000000009],[-63.393889999999942,64.951096000000007],[-63.417220999999984,64.97137499999991],[-63.420279999999934,64.976089000000059],[-63.420279999999934,64.978317000000004],[-63.418892000000028,64.982483000000116],[-63.415549999999996,64.986923000000104],[-63.395279000000016,64.995529000000033],[-63.376105999999993,64.998871000000008],[-63.363616999999977,64.997208000000057],[-63.353333000000021,64.994980000000112]],[[-63.243613999999923,65.254990000000134],[-63.251395999999943,65.253875999999991],[-63.256667999999991,65.256104000000107],[-63.310554999999965,65.290542999999957],[-63.313331999999946,65.293869000000029],[-63.311667999999941,65.298035000000084],[-63.306663999999898,65.302475000000129],[-63.257781999999963,65.320831000000112],[-63.244445999999925,65.322769000000051],[-63.236663999999962,65.321655000000078],[-63.227218999999991,65.313873000000115],[-63.166388999999924,65.286102000000085],[-63.165833000000021,65.282486000000006],[-63.166663999999969,65.27915999999999],[-63.235274999999888,65.256943000000092],[-63.243613999999923,65.254990000000134]],[[-66.92471299999994,65.284424000000115],[-66.933883999999978,65.283324999999991],[-66.962509000000011,65.283599999999979],[-66.976943999999946,65.284424000000115],[-66.989166000000012,65.286377000000073],[-66.99110399999995,65.288878999999952],[-67.011123999999938,65.319153000000028],[-67.011948000000018,65.323044000000095],[-67.010559000000001,65.333328000000108],[-67.005004999999926,65.339706000000092],[-66.992217999999923,65.346100000000092],[-66.974441999999954,65.350540000000137],[-66.932494999999903,65.358032000000094],[-66.920273000000009,65.358597000000088],[-66.910827999999867,65.356933999999967],[-66.908614999999998,65.355255],[-66.908050999999944,65.351089000000059],[-66.90943900000002,65.346100000000092],[-66.91194200000001,65.342209000000025],[-66.920273000000009,65.294434000000024],[-66.921386999999982,65.289703000000088],[-66.92471299999994,65.284424000000115]],[[-89.005568999999923,65.385544000000039],[-89.017501999999979,65.385544000000039],[-89.030288999999982,65.387496999999939],[-89.076110999999969,65.394714000000079],[-89.100280999999882,65.400818000000072],[-89.099990999999932,65.405822999999941],[-89.091674999999952,65.408325000000048],[-89.06806899999998,65.408325000000048],[-89.03195199999999,65.407211000000075],[-89.018615999999952,65.403320000000008],[-89.009445000000028,65.399155000000007],[-89.005279999999914,65.395538000000045],[-89.003066999999987,65.390549000000078],[-89.005568999999923,65.385544000000039]],[[-88.430282999999918,65.455261000000064],[-88.465011999999888,65.453597999999943],[-88.489990000000034,65.456650000000081],[-88.503615999999909,65.460541000000148],[-88.510284000000013,65.464995999999985],[-88.512222000000008,65.469711000000018],[-88.507506999999976,65.474991000000045],[-88.496383999999978,65.476928999999984],[-88.485001000000011,65.477767999999969],[-88.461120999999991,65.477478000000133],[-88.424163999999962,65.474426000000051],[-88.398620999999878,65.47026100000005],[-88.39416499999993,65.465820000000122],[-88.399733999999967,65.461380000000077],[-88.421386999999982,65.456940000000088],[-88.430282999999918,65.455261000000064]],[[-62.795005999999887,65.519988999999953],[-62.804442999999992,65.519150000000025],[-62.819450000000018,65.524155000000064],[-62.826950000000011,65.528046000000131],[-62.893889999999942,65.581100000000106],[-62.895553999999947,65.585541000000035],[-62.895553999999947,65.589981000000023],[-62.889724999999942,65.599152000000004],[-62.884444999999971,65.60554500000012],[-62.87471800000003,65.613602000000071],[-62.8663939999999,65.617477000000065],[-62.856392000000028,65.61914100000007],[-62.849723999999981,65.618866000000082],[-62.842773000000022,65.616378999999995],[-62.838051000000007,65.613602000000071],[-62.834998999999925,65.606644000000131],[-62.834998999999925,65.604705999999965],[-62.830001999999979,65.593048000000124],[-62.824448000000018,65.58526599999999],[-62.817504999999926,65.578598],[-62.810279999999977,65.574706999999933],[-62.785560999999973,65.564148000000102],[-62.765006999999969,65.557480000000112],[-62.750838999999985,65.551376000000062],[-62.788894999999968,65.523315000000025],[-62.795005999999887,65.519988999999953]],[[-83.882766999999944,65.666931000000091],[-83.893889999999942,65.664703000000145],[-83.906386999999938,65.666931000000091],[-83.937499999999943,65.677199999999914],[-83.943054000000018,65.681931000000077],[-83.942214999999976,65.686920000000043],[-83.93638599999997,65.691925000000083],[-83.928328999999962,65.69720500000011],[-83.896118000000001,65.710266000000047],[-83.884734999999978,65.712769000000037],[-83.872771999999941,65.712203999999986],[-83.864440999999943,65.707763999999997],[-83.868880999999988,65.696930000000123],[-83.871384000000035,65.686920000000043],[-83.876937999999939,65.672210999999947],[-83.882766999999944,65.666931000000091]],[[-67.472504000000015,65.705261000000007],[-67.55972300000002,65.702209000000096],[-67.584731999999974,65.703598000000113],[-67.640563999999927,65.696091000000138],[-67.691375999999934,65.685806000000014],[-67.701401000000033,65.686096000000077],[-67.706954999999937,65.688034000000016],[-67.713897999999858,65.696640000000116],[-67.715835999999967,65.701659999999947],[-67.713332999999921,65.705551000000014],[-67.695830999999885,65.720825000000104],[-67.658614999999998,65.725266000000033],[-67.577498999999989,65.731658999999979],[-67.529175000000009,65.734985000000052],[-67.499999999999943,65.734985000000052],[-67.48971599999993,65.734985000000052],[-67.424438000000009,65.735260000000039],[-67.446944999999914,65.718596999999988],[-67.472504000000015,65.705261000000007]],[[-62.268332999999984,65.701659999999947],[-62.259445000000028,65.699707000000046],[-62.238051999999982,65.702484000000084],[-62.221107000000018,65.708038000000101],[-62.20416999999992,65.711655000000064],[-62.186385999999914,65.711928999999998],[-62.167777999999942,65.70277399999992],[-62.131667999999934,65.678863999999976],[-62.128333999999938,65.674149000000114],[-62.131942999999978,65.657211000000018],[-62.135276999999974,65.651382000000012],[-62.142226999999991,65.64498900000001],[-62.194999999999993,65.612762000000032],[-62.202498999999989,65.610259999999982],[-62.215004000000022,65.609984999999938],[-62.22444200000001,65.611098999999967],[-62.296950999999979,65.624985000000095],[-62.455001999999979,65.659988000000112],[-62.466109999999958,65.663879000000009],[-62.483886999999925,65.721099999999922],[-62.484443999999939,65.726928999999984],[-62.483611999999994,65.731658999999979],[-62.480552999999873,65.737761999999918],[-62.473609999999951,65.74192800000003],[-62.46832999999998,65.744140999999956],[-62.461944999999957,65.745254999999986],[-62.283889999999928,65.74443100000002],[-62.27194199999991,65.744140999999956],[-62.260283999999956,65.74331699999999],[-62.252501999999993,65.74192800000003],[-62.251396,65.739151000000106],[-62.258613999999909,65.728592000000049],[-62.27027899999996,65.723038000000088],[-62.297501000000011,65.708602999999982],[-62.268332999999984,65.701659999999947]],[[-83.283889999999928,65.834152000000131],[-83.292220999999927,65.828872999999987],[-83.30360399999995,65.826385000000016],[-83.315551999999968,65.826096000000064],[-83.327498999999932,65.82748399999997],[-83.347777999999892,65.832489000000066],[-83.395279000000016,65.8316650000001],[-83.406661999999983,65.830276000000083],[-83.418059999999969,65.827774000000034],[-83.429168999999945,65.824432000000058],[-83.439986999999917,65.819153000000085],[-83.456389999999999,65.808867999999961],[-83.473327999999981,65.800262000000032],[-83.485274999999945,65.800812000000064],[-83.498046999999929,65.804152999999928],[-83.529723999999987,65.817489999999964],[-83.559157999999968,65.831100000000049],[-83.575561999999934,65.839980999999966],[-83.581679999999892,65.844711000000018],[-83.585007000000019,65.849426000000051],[-83.586120999999991,65.854156000000103],[-83.580291999999986,65.859420999999941],[-83.571670999999981,65.862488000000042],[-83.560271999999941,65.864990000000148],[-83.525283999999886,65.868317000000104],[-83.478058000000033,65.870255000000043],[-83.442490000000021,65.870818999999983],[-83.36999499999996,65.866653000000042],[-83.345551,65.863876000000005],[-83.333069000000023,65.860260000000096],[-83.291106999999954,65.843597000000045],[-83.285277999999948,65.838882000000012],[-83.283889999999928,65.834152000000131]],[[-65.645843999999954,65.813034000000073],[-65.656386999999995,65.812759000000028],[-65.660278000000005,65.819717000000026],[-65.654998999999918,65.869431000000077],[-65.651671999999962,65.876647999999989],[-65.647781000000009,65.879974000000004],[-65.636123999999882,65.88638300000008],[-65.623885999999914,65.891373000000101],[-65.583069000000023,65.902771000000143],[-65.542769999999962,65.908035000000098],[-65.531676999999945,65.908874999999966],[-65.516112999999962,65.906371999999976],[-65.511397999999929,65.903046000000131],[-65.512221999999895,65.894440000000031],[-65.513335999999981,65.890548999999965],[-65.52806099999998,65.859420999999941],[-65.559433000000013,65.834717000000012],[-65.645843999999954,65.813034000000073]],[[-85.480559999999969,65.791930999999977],[-85.468062999999972,65.790817000000004],[-85.456389999999942,65.791367000000037],[-85.445266999999944,65.793869000000086],[-85.424164000000019,65.801926000000094],[-85.413895000000025,65.807480000000055],[-85.40834000000001,65.812485000000095],[-85.404998999999975,65.817489999999964],[-85.404175000000009,65.822495000000004],[-85.393065999999862,65.832764000000054],[-85.381942999999978,65.835265999999933],[-85.369995000000017,65.834991000000116],[-85.333327999999995,65.832214000000022],[-85.313613999999916,65.830276000000083],[-85.288605000000018,65.826660000000004],[-85.263061999999991,65.821106000000043],[-85.213622999999984,65.808029000000033],[-85.202788999999939,65.803588999999988],[-85.18582200000003,65.794708000000071],[-85.162505999999894,65.78137200000009],[-85.156386999999938,65.776657000000057],[-85.049164000000019,65.621643000000006],[-85.047774999999945,65.616928000000144],[-85.048614999999984,65.611923000000104],[-85.051666000000012,65.606934000000138],[-85.067504999999926,65.59637500000008],[-85.08805799999999,65.585541000000035],[-85.120270000000005,65.574996999999996],[-85.142226999999934,65.569992000000127],[-85.175827000000027,65.563309000000118],[-85.232223999999917,65.554703000000018],[-85.24360699999994,65.55386400000009],[-85.267776000000026,65.555542000000003],[-85.280563000000029,65.55802900000009],[-85.291945999999882,65.557205000000124],[-85.302490000000034,65.552765000000079],[-85.307770000000005,65.547760000000039],[-85.311110999999926,65.542479999999955],[-85.311935000000005,65.537766000000033],[-85.308043999999995,65.533051],[-85.295836999999949,65.52388000000002],[-85.271118000000001,65.511658000000068],[-85.240829000000019,65.498322000000087],[-85.204178000000013,65.485809000000017],[-85.165557999999976,65.474991000000045],[-85.127776999999924,65.466095000000109],[-85.088608000000022,65.453597999999943],[-85.043609999999944,65.436371000000122],[-85.02694699999995,65.427475000000015],[-85.015015000000005,65.418319999999937],[-85.011123999999938,65.413605000000075],[-85.002791999999943,65.401382000000069],[-85.001403999999923,65.396652000000017],[-85.005004999999983,65.37692300000009],[-85.011672999999973,65.352203000000031],[-84.930557000000022,65.214157000000057],[-84.924712999999997,65.209717000000012],[-84.912216000000001,65.206375000000094],[-84.900283999999942,65.206100000000106],[-84.832503999999972,65.212494000000106],[-84.821395999999879,65.213882000000012],[-84.810271999999998,65.216385000000002],[-84.800277999999992,65.221649000000014],[-84.792496000000028,65.226929000000041],[-84.748046999999985,65.292755000000056],[-84.746947999999975,65.297485000000052],[-84.749724999999899,65.307204999999954],[-84.755004999999869,65.316666000000112],[-84.762221999999952,65.326096000000007],[-84.761123999999995,65.331099999999992],[-84.758056999999951,65.336105000000032],[-84.754729999999938,65.341095000000053],[-84.745834000000002,65.351379000000065],[-84.740279999999984,65.356368999999972],[-84.595839999999953,65.475540000000024],[-84.58555599999994,65.481093999999985],[-84.573623999999995,65.481659000000036],[-84.561934999999949,65.481093999999985],[-84.549437999999952,65.47886699999998],[-84.440276999999924,65.456650000000081],[-84.432220000000029,65.453323000000125],[-84.426392000000021,65.448593000000074],[-84.424712999999997,65.443863000000079],[-84.42582699999997,65.438873000000001],[-84.314437999999996,65.381653000000142],[-84.291945999999996,65.37692300000009],[-84.161391999999921,65.341934000000037],[-84.151107999999908,65.338593000000003],[-84.147507000000019,65.333878000000141],[-84.153060999999923,65.328598000000056],[-84.194153000000028,65.297485000000052],[-84.201950000000011,65.292206000000078],[-84.220839999999953,65.284713999999951],[-84.228881999999999,65.279434000000094],[-84.230834999999956,65.269440000000088],[-84.229720999999984,65.264708999999982],[-84.141388000000006,65.219986000000063],[-84.088333000000034,65.203873000000044],[-83.899993999999992,65.165543000000071],[-83.876098999999954,65.162766000000033],[-83.852782999999931,65.161652000000004],[-83.666945999999939,65.160811999999964],[-83.620543999999938,65.160811999999964],[-83.540282999999931,65.16415400000011],[-83.52806099999998,65.161925999999937],[-83.408614999999998,65.135544000000095],[-83.388061999999934,65.126647999999932],[-83.378875999999991,65.117203000000075],[-83.33805799999999,65.074707000000046],[-83.334732000000031,65.069992000000013],[-83.335830999999928,65.064986999999974],[-83.339447000000007,65.059982000000105],[-83.343063000000029,65.045258000000047],[-83.340835999999967,65.035537999999974],[-83.330840999999964,65.021378000000084],[-83.319457999999941,65.012207000000103],[-83.208053999999947,64.945526000000086],[-83.198043999999868,64.941086000000098],[-83.190552000000025,64.939423000000147],[-83.156386999999995,64.939972000000068],[-83.005004999999926,64.913039999999967],[-82.992766999999901,64.909714000000122],[-82.865828999999962,64.873596000000077],[-82.855834999999956,64.86914100000007],[-82.848052999999993,64.864426000000037],[-82.842498999999918,64.859985000000108],[-82.829726999999991,64.840819999999951],[-82.828613000000018,64.836104999999918],[-82.825287000000003,64.831375000000094],[-82.816390999999953,64.821930000000009],[-82.800277999999992,64.808868000000018],[-82.770003999999972,64.795532000000037],[-82.75778200000002,64.791092000000049],[-82.709166999999979,64.776382000000069],[-82.697220000000016,64.77388000000002],[-82.569732999999928,64.763885000000073],[-82.361388999999974,64.763610999999969],[-82.34944200000001,64.760269000000051],[-82.211944999999957,64.718323000000055],[-82.202224999999885,64.713608000000022],[-82.203339000000028,64.708602999999982],[-82.209166999999979,64.703598000000113],[-82.217498999999975,64.698593000000074],[-82.203612999999962,64.684417999999994],[-82.064437999999996,64.648605000000089],[-81.932495000000017,64.584427000000062],[-81.763061999999991,64.501099000000067],[-81.753890999999953,64.486923000000047],[-81.75140399999998,64.472488000000112],[-81.753066999999987,64.355820000000051],[-81.764174999999966,64.341095000000109],[-81.770003999999972,64.336105000000032],[-81.777221999999995,64.326096000000007],[-81.778885000000002,64.321105999999986],[-81.777221999999995,64.31164600000011],[-81.77416999999997,64.30664100000007],[-81.74888599999997,64.273605000000089],[-81.727218999999934,64.258330999999998],[-81.712783999999999,64.250000000000114],[-81.702788999999996,64.2452550000001],[-81.669723999999974,64.232758000000103],[-81.646118000000001,64.22554000000008],[-81.622498000000007,64.216660000000047],[-81.613051999999982,64.212203999999929],[-81.600280999999939,64.20277400000009],[-81.594451999999933,64.193313999999987],[-81.590835999999967,64.183594000000085],[-81.589995999999928,64.17886400000009],[-81.602492999999981,64.129974000000004],[-81.610824999999977,64.125809000000004],[-81.717772999999966,64.099426000000051],[-81.758621000000005,64.089432000000045],[-81.76916499999993,64.088043000000027],[-81.824447999999961,64.086380000000077],[-81.879165999999941,64.080826000000116],[-81.955840999999964,64.0619200000001],[-81.964171999999962,64.0577550000001],[-81.970000999999968,64.052765000000022],[-81.973617999999931,64.047759999999982],[-81.999160999999958,64.003326000000015],[-81.996384000000035,63.998604000000114],[-81.986938000000009,63.994155999999975],[-81.975005999999951,63.990546999999992],[-81.963897999999972,63.988884000000041],[-81.952498999999932,63.98832700000014],[-81.930556999999965,63.988045000000056],[-81.897507000000019,63.989990000000091],[-81.875823999999909,63.991661000000136],[-81.56082200000003,64.029433999999981],[-81.44027699999998,64.067764000000068],[-81.383620999999948,64.090546000000018],[-81.287780999999882,64.080276000000083],[-81.276397999999972,64.07748399999997],[-81.270003999999915,64.072495000000004],[-81.264174999999966,64.062759000000028],[-81.256957999999997,64.059143000000006],[-81.245543999999995,64.055542000000116],[-80.964721999999938,63.991936000000123],[-80.942489999999964,63.990546999999992],[-80.931670999999994,63.991936000000123],[-80.920837000000006,63.994995000000131],[-80.910277999999892,63.999161000000015],[-80.906661999999926,64.004166000000055],[-80.903335999999967,64.013885000000073],[-80.909163999999976,64.023315000000139],[-80.914168999999958,64.028046000000074],[-80.92582699999997,64.032761000000107],[-80.948607999999979,64.038879000000065],[-80.967498999999918,64.04803499999997],[-80.972778000000005,64.052765000000022],[-80.975554999999986,64.0577550000001],[-80.973891999999978,64.062485000000095],[-80.935821999999973,64.111923000000047],[-80.890838999999971,64.11554000000001],[-80.812209999999993,64.091094999999939],[-80.777495999999871,64.079437000000098],[-80.734726000000023,64.054153000000099],[-80.566100999999946,63.994155999999975],[-80.543335000000013,63.987770000000069],[-80.531677000000002,63.983330000000024],[-80.522507000000019,63.978600000000029],[-80.517501999999979,63.973877000000016],[-80.488327000000027,63.910545000000013],[-80.49221799999998,63.905548000000067],[-80.503066999999987,63.902489000000116],[-80.567504999999926,63.889435000000049],[-80.453063999999927,63.859436000000017],[-80.363051999999925,63.841102999999976],[-80.217223999999987,63.809989999999971],[-80.194480999999996,63.804474000000084],[-80.189986999999974,63.799995000000024],[-80.174712999999883,63.780822999999998],[-80.172225999999966,63.776100000000042],[-80.171660999999972,63.771102999999925],[-80.178878999999881,63.756660000000068],[-80.184998000000007,63.751663000000121],[-80.195830999999885,63.748604],[-80.346953999999982,63.728042999999957],[-80.357772999999952,63.728600000000085],[-80.369155999999975,63.73333000000008],[-80.380279999999971,63.734993000000031],[-80.391387999999949,63.734993000000031],[-80.402221999999995,63.734717999999987],[-80.434433000000013,63.731102000000135],[-80.454178000000013,63.727767999999969],[-80.485275000000001,63.715546000000018],[-80.493606999999997,63.710274000000084],[-80.504729999999995,63.690826000000129],[-80.506393000000003,63.685822000000144],[-80.510009999999966,63.681107000000111],[-80.52194199999991,63.671104000000071],[-80.587783999999999,63.635826000000066],[-80.608886999999982,63.628326000000015],[-80.774445000000014,63.573326000000122],[-80.912216000000001,63.526381999999955],[-80.922501000000011,63.521378000000027],[-80.930557000000022,63.516106000000093],[-80.936385999999914,63.511108000000092],[-80.938048999999864,63.50638600000002],[-80.9375,63.501389000000074],[-80.934433000000013,63.496658000000139],[-80.930557000000022,63.482208000000014],[-80.930282999999974,63.477486000000113],[-80.9375,63.467491000000052],[-80.958053999999947,63.458328000000051],[-80.968613000000005,63.455269000000044],[-80.989440999999999,63.450829000000056],[-81.011123999999995,63.449158000000011],[-81.032775999999956,63.44860100000011],[-81.054442999999992,63.449158000000011],[-81.076401000000033,63.451385000000016],[-81.110000999999954,63.458328000000051],[-81.386123999999938,63.526381999999955],[-81.694153000000028,63.607498000000135],[-81.734160999999972,63.625549000000092],[-81.757232999999985,63.634720000000073],[-81.768889999999999,63.638046000000088],[-81.779998999999975,63.639717000000132],[-81.801940999999943,63.641105999999979],[-81.823623999999995,63.639435000000105],[-81.855270000000019,63.63249200000007],[-81.876662999999951,63.629990000000021],[-81.887512000000015,63.62943300000012],[-81.909728999999913,63.631934999999999],[-81.995270000000005,63.661102000000142],[-82.01167299999986,63.667213000000004],[-82.026397999999972,63.676383999999985],[-82.031386999999938,63.681107000000111],[-82.041107000000011,63.685822000000144],[-82.052490000000034,63.689156000000139],[-82.06361400000003,63.690826000000129],[-82.107772999999952,63.692214999999919],[-82.129439999999988,63.691658000000018],[-82.214172000000019,63.687766999999951],[-82.224715999999887,63.686377999999991],[-82.285552999999993,63.678047000000049],[-82.296111999999937,63.674713000000111],[-82.299437999999952,63.669715999999994],[-82.298889000000031,63.664992999999981],[-82.302215999999987,63.659987999999942],[-82.307769999999948,63.654991000000052],[-82.318344000000025,63.651657000000057],[-82.328887999999949,63.65026899999998],[-82.339995999999871,63.650826000000052],[-82.351395000000025,63.653320000000008],[-82.472228999999913,63.680275000000051],[-82.483886999999982,63.68471500000004],[-82.491103999999893,63.689156000000139],[-82.535278000000005,63.726378999999952],[-82.545836999999949,63.735550000000103],[-82.549728000000016,63.745270000000005],[-82.550827000000027,63.750000000000057],[-82.546951000000035,63.764717000000019],[-82.543334999999956,63.769714000000135],[-82.532226999999978,63.779991000000109],[-82.514450000000011,63.790276000000063],[-82.504456000000005,63.795547000000056],[-82.484160999999972,63.804993000000024],[-82.473617999999931,63.80832700000002],[-82.431945999999982,63.820273999999984],[-82.420837000000006,63.820831000000055],[-82.40972899999997,63.819160000000011],[-82.398055999999883,63.815826000000015],[-82.386672999999973,63.814156000000025],[-82.376389000000017,63.81749700000006],[-82.372771999999998,63.82249500000006],[-82.353881999999942,63.852219000000105],[-82.351395000000025,63.861938000000066],[-82.358336999999949,63.900543000000027],[-82.361388999999974,63.905265999999983],[-82.368880999999988,63.909988000000112],[-82.378325999999959,63.91443600000008],[-82.413894999999968,63.926940999999999],[-82.525833000000034,63.966103000000032],[-82.548888999999974,63.96915400000006],[-82.828613000000018,63.979431000000034],[-82.967223999999987,63.965546000000131],[-82.978058000000033,63.963051000000121],[-83.064162999999951,63.951934999999992],[-83.086944999999957,63.954994000000113],[-83.098891999999921,63.959160000000054],[-83.12388599999997,63.972763000000043],[-83.129165999999941,63.977486000000056],[-83.145279000000016,64.001099000000124],[-83.139724999999999,64.006103999999993],[-83.095550999999887,64.028320000000008],[-83.029449,64.074707000000103],[-83.016113000000018,64.084991000000116],[-82.996947999999975,64.10026600000009],[-82.980285999999978,64.11554000000001],[-82.97084000000001,64.125534000000016],[-82.961944999999901,64.135818000000029],[-82.960555999999997,64.140548999999965],[-82.96166999999997,64.145538000000101],[-82.964721999999995,64.150269000000037],[-83.008346999999958,64.187484999999981],[-83.019729999999981,64.188873000000058],[-83.072783999999956,64.186646000000053],[-83.105269999999962,64.181655999999975],[-83.126388999999961,64.175811999999951],[-83.157227000000034,64.163040000000137],[-83.339447000000007,64.134720000000129],[-83.488327000000027,64.122482000000048],[-83.519729999999981,64.11442599999998],[-83.530288999999925,64.111099000000081],[-83.548339999999996,64.102478000000133],[-83.673324999999977,64.017212000000029],[-83.682220000000029,64.007217000000082],[-83.683318999999983,64.002212999999927],[-83.676666000000012,63.992766999999958],[-83.665833000000021,63.983603999999957],[-83.642501999999979,63.969986000000119],[-83.626099000000011,63.956099999999992],[-83.608611999999994,63.937492000000077],[-83.605559999999969,63.932770000000005],[-83.604171999999949,63.928047000000049],[-83.595839999999896,63.825829000000056],[-83.596664000000033,63.820831000000055],[-83.623046999999929,63.781661999999983],[-83.631942999999865,63.771659999999997],[-83.637222000000008,63.766388000000063],[-83.647507000000019,63.763054000000125],[-83.658614999999941,63.763611000000026],[-83.670272999999952,63.766937000000041],[-83.694442999999978,63.775826000000109],[-83.718613000000005,63.779991000000109],[-83.740554999999972,63.779991000000109],[-83.750838999999985,63.776657000000114],[-83.824172999999973,63.747490000000028],[-84.007232999999985,63.668053000000043],[-84.012786999999889,63.662765999999976],[-84.021117999999944,63.65277100000003],[-84.027495999999928,63.642769000000044],[-84.050277999999935,63.626938000000109],[-84.069457999999997,63.616386000000091],[-84.079453000000001,63.611938000000123],[-84.089447000000007,63.607773000000122],[-84.09973100000002,63.605270000000132],[-84.110000999999954,63.603607000000068],[-84.121383999999978,63.604163999999969],[-84.132767000000001,63.606658999999979],[-84.144729999999925,63.610825000000034],[-84.162216000000001,63.619713000000047],[-84.174164000000019,63.623047000000042],[-84.196380999999917,63.62499200000002],[-84.261123999999995,63.62082700000002],[-84.286117999999988,63.615546999999935],[-84.388061999999991,63.559158000000082],[-84.395279000000016,63.553879000000109],[-84.40055799999999,63.548607000000004],[-84.446380999999974,63.488045],[-84.449431999999888,63.483046999999999],[-84.452224999999942,63.472488000000112],[-84.447220000000016,63.453323000000012],[-84.449157999999954,63.443603999999993],[-84.477492999999981,63.3836060000001],[-84.563323999999966,63.337494000000049],[-84.754456000000005,63.264160000000061],[-84.774170000000026,63.257217000000082],[-84.793883999999991,63.250274999999988],[-84.823059000000001,63.237213000000111],[-84.841949,63.227211000000011],[-84.870834000000002,63.214157000000114],[-84.890563999999983,63.207214000000079],[-85.143341000000021,63.139992000000063],[-85.224166999999966,63.120827000000133],[-85.244995000000017,63.118598999999961],[-85.266402999999968,63.117493000000138],[-85.288054999999986,63.118324000000143],[-85.343338000000017,63.122765000000072],[-85.375823999999909,63.123877999999934],[-85.396956999999929,63.122765000000072],[-85.449158000000011,63.116661000000022],[-85.482223999999974,63.118598999999961],[-85.493331999999953,63.119987000000094],[-85.505004999999983,63.123046999999929],[-85.536391999999921,63.134995000000004],[-85.543883999999935,63.138328999999999],[-85.577788999999939,63.165543000000127],[-85.589171999999962,63.174712999999997],[-85.592498999999975,63.17943600000001],[-85.638061999999934,63.244995000000074],[-85.639175000000023,63.249718000000087],[-85.648345999999947,63.33554799999996],[-85.653884999999946,63.408882000000006],[-85.650833000000034,63.428604000000007],[-85.644454999999994,63.443603999999993],[-85.635833999999988,63.458603000000039],[-85.626098999999897,63.468880000000013],[-85.618057000000022,63.479156000000103],[-85.60722399999986,63.494438000000116],[-85.604995999999971,63.509163000000058],[-85.591110000000015,63.617493000000024],[-85.59333799999996,63.631934999999999],[-85.596114999999941,63.641380000000083],[-85.607497999999964,63.665268000000026],[-85.61332699999997,63.669715999999994],[-85.717498999999975,63.716103000000089],[-85.879439999999988,63.704711999999915],[-85.98582499999992,63.693320999999969],[-86.017226999999934,63.68832400000008],[-86.183608999999933,63.653046000000074],[-86.224441999999954,63.642769000000044],[-86.244995000000017,63.639435000000105],[-86.266952999999944,63.638046000000088],[-86.300277999999935,63.639717000000132],[-86.346114999999998,63.645546000000138],[-86.381377999999984,63.652214000000129],[-86.450286999999889,63.660545000000013],[-86.552779999999871,63.670273000000066],[-86.56361400000003,63.670546999999999],[-86.596114999999941,63.668602000000021],[-86.626937999999996,63.661659000000043],[-86.666397000000018,63.648331000000042],[-86.694442999999922,63.633606000000043],[-86.733886999999982,63.606658999999979],[-86.759170999999981,63.590271000000087],[-86.778060999999923,63.581108000000086],[-86.807495000000017,63.571380999999974],[-86.837783999999999,63.563323999999966],[-86.847778000000005,63.560822000000087],[-86.879165999999998,63.555549999999982],[-86.922225999999966,63.552773000000059],[-87.050551999999982,63.549720999999977],[-87.083618000000001,63.550270000000125],[-87.095275999999956,63.551384000000098],[-87.118606999999997,63.555824000000086],[-87.141388000000006,63.563881000000094],[-87.14973399999991,63.568329000000062],[-87.188048999999864,63.589989000000003],[-87.217223999999987,63.622215000000097],[-87.222778000000005,63.631660000000011],[-87.226394999999968,63.641105999999979],[-87.225280999999995,63.651099999999985],[-87.22193900000002,63.665825000000098],[-87.218886999999938,63.675827000000083],[-87.210830999999985,63.691100999999946],[-87.200835999999867,63.706657000000121],[-87.186661000000015,63.722213999999951],[-87.161117999999931,63.743607000000054],[-86.943877999999927,63.900543000000027],[-86.934432999999956,63.906097000000045],[-86.915282999999988,63.91443600000008],[-86.875823999999966,63.928604000000121],[-86.784163999999976,63.956940000000031],[-86.763625999999988,63.962212000000136],[-86.700287000000003,63.972214000000122],[-86.668609999999887,63.978324999999984],[-86.503890999999896,64.018326000000002],[-86.41361999999998,64.048598999999967],[-86.255004999999926,64.076096000000064],[-86.233611999999994,64.079437000000098],[-86.223327999999981,64.081940000000088],[-86.213333000000034,64.085541000000148],[-86.203888000000006,64.091094999999939],[-86.189437999999882,64.101653999999996],[-86.178328999999962,64.121918000000107],[-86.178878999999995,64.131653000000028],[-86.182220000000029,64.141373000000101],[-86.212219000000005,64.178589000000045],[-86.253066999999987,64.200546000000088],[-86.273894999999982,64.208878000000084],[-86.300551999999982,64.221924000000058],[-86.308884000000035,64.226379000000065],[-86.3125,64.230819999999994],[-86.354720999999984,64.289978000000133],[-86.384170999999981,64.36442599999998],[-86.401672000000019,64.436645999999996],[-86.401107999999965,64.441649999999925],[-86.383620999999948,64.564987000000087],[-86.368880999999988,64.629424999999969],[-86.315552000000025,64.701096000000064],[-86.272506999999962,64.768051000000014],[-86.24888599999997,64.793868999999916],[-86.238891999999964,64.804152999999985],[-86.231383999999935,64.809418000000051],[-86.221114999999998,64.813034000000073],[-86.210280999999952,64.814697000000024],[-86.198607999999922,64.81442300000009],[-86.187209999999993,64.815262000000018],[-86.176665999999955,64.817764000000125],[-86.171660999999915,64.823043999999982],[-86.152495999999928,64.918045000000063],[-86.151947000000007,64.923035000000084],[-86.153335999999911,64.927765000000136],[-86.157226999999978,64.932479999999998],[-86.181106999999997,64.955551000000014],[-86.187209999999993,64.959991000000002],[-86.212509000000011,64.966385000000059],[-86.22084000000001,64.970535000000041],[-86.226394999999968,64.979980000000126],[-86.227782999999988,64.983871000000022],[-86.225829999999974,64.998596000000134],[-86.225006000000008,65.003601000000003],[-86.212219000000005,65.03387500000008],[-86.206389999999885,65.043869000000086],[-86.198333999999988,65.054153000000099],[-86.189986999999917,65.064423000000033],[-86.18472300000002,65.069717000000026],[-86.165282999999931,65.080551000000071],[-86.144729999999981,65.08859300000006],[-86.138335999999924,65.094437000000028],[-86.138061999999991,65.099425999999994],[-86.135558999999944,65.1827550000001],[-86.137221999999952,65.197753999999975],[-86.141953000000001,65.212204000000099],[-86.146118000000001,65.216660000000047],[-86.151397999999972,65.226379000000009],[-86.164168999999958,65.250000000000114],[-86.170546999999942,65.269150000000081],[-86.171660999999915,65.278869999999984],[-86.153335999999911,65.384720000000073],[-86.149733999999967,65.394714000000079],[-86.111937999999952,65.494141000000013],[-86.097777999999948,65.529160000000104],[-86.013900999999976,65.709152000000074],[-86.010009999999909,65.714996000000099],[-85.993880999999988,65.730545000000006],[-85.982773000000009,65.740814000000057],[-85.975280999999882,65.746094000000085],[-85.888335999999981,65.799987999999928],[-85.832503999999915,65.832489000000066],[-85.791381999999999,65.853317000000118],[-85.770554000000004,65.862198000000035],[-85.728333000000021,65.879425000000083],[-85.696654999999907,65.891937000000041],[-85.621108999999933,65.917480000000012],[-85.56527699999998,65.930267000000015],[-85.542496000000028,65.933319000000097],[-85.506667999999991,65.934418000000051],[-85.493880999999988,65.932205000000124],[-85.491013000000009,65.931060999999943],[-85.482773000000009,65.927765000000079],[-85.476944000000003,65.923309000000017],[-85.468886999999938,65.913879000000122],[-85.469726999999978,65.908874999999966],[-85.473891999999978,65.898880000000077],[-85.488892000000021,65.878586000000098],[-85.511123999999995,65.857758000000047],[-85.520554000000004,65.84275800000006],[-85.523620999999991,65.823043999999982],[-85.520554000000004,65.813309000000061],[-85.516662999999994,65.808594000000028],[-85.510559000000001,65.804152999999928],[-85.493331999999953,65.795258000000103],[-85.480559999999969,65.791930999999977]],[[-62.136664999999937,65.851379000000009],[-62.141669999999976,65.849716000000058],[-62.154442000000017,65.850815000000068],[-62.162216000000001,65.854156000000103],[-62.210830999999985,65.880539000000056],[-62.296950999999979,65.927765000000079],[-62.296669000000009,65.938583000000051],[-62.281386999999995,65.946365000000014],[-62.265006999999969,65.946930000000066],[-62.230552999999986,65.943862999999965],[-62.167220999999984,65.932754999999986],[-62.137779000000023,65.925811999999951],[-62.139724999999999,65.913040000000137],[-62.118606999999997,65.881087999999977],[-62.129996999999889,65.859146000000123],[-62.136664999999937,65.851379000000009]],[[-67.138335999999981,65.92692599999998],[-67.145844000000011,65.926376000000118],[-67.154448999999943,65.92886400000009],[-67.161117999999988,65.932205000000124],[-67.185271999999941,65.948317999999972],[-67.209166999999923,65.978867000000037],[-67.211945000000014,65.982758000000103],[-67.208892999999989,65.984421000000054],[-67.199158000000011,65.986373999999955],[-67.181380999999874,65.987198000000092],[-67.166945999999939,65.984984999999995],[-67.153885000000002,65.978591999999992],[-67.152785999999992,65.974990999999989],[-67.152602999999885,65.970733999999993],[-67.134445000000028,65.933044000000052],[-67.134734999999921,65.930267000000015],[-67.138335999999981,65.92692599999998]],[[-83.576950000000011,65.983047000000056],[-83.588607999999965,65.981658999999922],[-83.60082999999986,65.983322000000044],[-83.604445999999996,65.987762000000089],[-83.60082999999986,65.993042000000116],[-83.588897999999972,66.003052000000025],[-83.570007000000032,66.013611000000083],[-83.547500999999954,66.019440000000088],[-83.511397999999986,66.019989000000066],[-83.498885999999914,66.01748699999996],[-83.493056999999965,66.012771999999927],[-83.50140399999998,66.00749200000007],[-83.510009999999966,66.003325999999959],[-83.554442999999935,65.988876000000062],[-83.576950000000011,65.983047000000056]],[[-84.722777999999948,65.546097000000088],[-84.733886999999982,65.544708000000128],[-84.746108999999933,65.545822000000101],[-84.78472899999997,65.556640999999956],[-84.803604000000007,65.565536000000009],[-84.828612999999962,65.578873000000044],[-84.840835999999967,65.588043000000084],[-84.848052999999879,65.597487999999998],[-84.853333000000021,65.606934000000138],[-84.852218999999934,65.611923000000104],[-84.857772999999952,65.645827999999995],[-84.858886999999925,65.650818000000072],[-84.866393999999957,65.659988000000112],[-84.878601000000003,65.669144000000074],[-84.900283999999942,65.67804000000001],[-85.028609999999958,65.711655000000064],[-85.063048999999921,65.723312000000021],[-85.073897999999986,65.727768000000083],[-85.082229999999981,65.732208000000128],[-85.106948999999929,65.750548999999921],[-85.118057000000022,65.764709000000039],[-85.181945999999982,65.945526000000086],[-85.173049999999932,65.994705000000067],[-85.143889999999942,66.021103000000039],[-85.137222000000008,66.023315000000082],[-85.081679999999949,66.026657],[-85.057495000000017,66.02609300000006],[-84.9375,66.010543999999982],[-84.924712999999997,66.008040999999992],[-84.910277999999892,66.000000000000114],[-84.887221999999952,65.945526000000086],[-84.883330999999885,65.940811000000053],[-84.807770000000005,65.895828000000108],[-84.755004999999869,65.853317000000118],[-84.716110000000015,65.817215000000147],[-84.714171999999962,65.807205000000067],[-84.712783999999942,65.802200000000028],[-84.707779000000016,65.792755000000113],[-84.637222000000008,65.712203999999986],[-84.597503999999958,65.696640000000116],[-84.586670000000026,65.692200000000071],[-84.574172999999917,65.639160000000004],[-84.576110999999969,65.629150000000095],[-84.585006999999962,65.61914100000007],[-84.598617999999931,65.608597000000032],[-84.667769999999962,65.560532000000023],[-84.722777999999948,65.546097000000088]],[[-83.608611999999994,66.044144000000074],[-83.642226999999991,66.034988000000112],[-83.652221999999995,66.036652000000117],[-83.653609999999901,66.04136699999998],[-83.647507000000019,66.046646000000123],[-83.644164999999987,66.051650999999993],[-83.626099000000011,66.066940000000102],[-83.618056999999965,66.072220000000129],[-83.607223999999974,66.07748400000014],[-83.597778000000005,66.078873000000101],[-83.583618000000001,66.070540999999935],[-83.577788999999996,66.06581100000011],[-83.570847000000015,66.056366000000025],[-83.574447999999961,66.051376000000005],[-83.58555599999994,66.048035000000141],[-83.59722899999997,66.046646000000123],[-83.608611999999994,66.044144000000074]],[[-85.019164999999987,66.05720500000001],[-85.135558999999944,66.044434000000081],[-85.147781000000009,66.045821999999987],[-85.149170000000026,66.05053700000002],[-85.107773000000009,66.084427000000119],[-85.09973100000002,66.089706000000092],[-85.063323999999966,66.087769000000037],[-85.038604999999961,66.086105000000032],[-85.016112999999905,66.079712000000086],[-85.008620999999948,66.070540999999935],[-85.006957999999941,66.065536000000066],[-85.010283999999956,66.060531999999967],[-85.019164999999987,66.05720500000001]],[[-83.649444999999901,66.083602999999982],[-83.661117999999988,66.081940000000031],[-83.673614999999984,66.083327999999938],[-83.692490000000021,66.091370000000097],[-83.696105999999986,66.096099999999979],[-83.689986999999974,66.111099000000024],[-83.685271999999941,66.121093999999914],[-83.678878999999995,66.125259000000142],[-83.606658999999979,66.124146000000053],[-83.593886999999938,66.121643000000063],[-83.587783999999999,66.117203000000075],[-83.591674999999896,66.112197999999978],[-83.604445999999996,66.105820000000051],[-83.610549999999932,66.10165399999994],[-83.638061999999991,66.086928999999998],[-83.649444999999901,66.083602999999982]],[[-83.921386999999982,66.009720000000016],[-83.730834999999956,65.947754000000032],[-83.705840999999964,65.934143000000063],[-83.694152999999972,65.924697999999978],[-83.683318999999983,65.910538000000088],[-83.680832000000009,65.901093000000003],[-83.689163000000008,65.866653000000042],[-83.699721999999952,65.851379000000009],[-83.713897999999972,65.841094999999939],[-83.724715999999944,65.836929000000055],[-83.73582499999992,65.833603000000039],[-83.727492999999924,65.799713000000111],[-83.525008999999955,65.737761999999918],[-83.360001000000011,65.727478000000076],[-83.348052999999993,65.726928999999984],[-83.25111400000003,65.716934000000037],[-83.226944000000003,65.714157000000114],[-83.214447000000007,65.710541000000092],[-83.210830999999871,65.705826000000059],[-83.25111400000003,65.654709000000139],[-83.259445000000028,65.649429000000055],[-83.288894999999968,65.632750999999985],[-83.299727999999959,65.629424999999969],[-83.311110999999983,65.627196999999967],[-83.345000999999968,65.62081900000004],[-83.379165999999998,65.615540000000067],[-83.391387999999949,65.617203000000131],[-83.399170000000026,65.62081900000004],[-83.406113000000005,65.630264000000068],[-83.41194200000001,65.634720000000016],[-83.419998000000021,65.639435000000049],[-83.430557000000022,65.643875000000037],[-83.443328999999949,65.648041000000148],[-83.468612999999948,65.654984000000127],[-83.493056999999965,65.65776100000005],[-83.505004999999926,65.658324999999991],[-83.528610000000015,65.658324999999991],[-83.598891999999978,65.656372000000033],[-83.660277999999948,65.647217000000012],[-83.829726999999991,65.64498900000001],[-83.842772999999909,65.649155000000121],[-83.846114999999941,65.653869999999984],[-83.84973100000002,65.668320000000108],[-83.846389999999985,65.673309000000074],[-83.840560999999866,65.678589000000102],[-83.794158999999979,65.719437000000028],[-83.785827999999981,65.724700999999982],[-83.775009000000011,65.728043000000127],[-83.740828999999962,65.733322000000101],[-83.695266999999944,65.741089000000045],[-83.684158000000025,65.74443100000002],[-83.682769999999948,65.749419999999986],[-83.688888999999961,65.754166000000055],[-83.785278000000005,65.788879000000065],[-83.797501000000011,65.789429000000098],[-83.808883999999978,65.78804000000008],[-83.84973100000002,65.780548000000124],[-83.90583799999996,65.767487000000017],[-83.927490000000034,65.759720000000073],[-83.938048999999978,65.74443100000002],[-83.948607999999922,65.740265000000079],[-83.960007000000019,65.737761999999918],[-83.971664000000033,65.737198000000149],[-83.983886999999925,65.738586000000055],[-84.071121000000005,65.75],[-84.120543999999938,65.758331000000055],[-84.133330999999941,65.760817999999972],[-84.143615999999952,65.764160000000061],[-84.145003999999972,65.769149999999968],[-84.141388000000006,65.774155000000007],[-84.11721799999998,65.789703000000031],[-84.111388999999974,65.794983000000059],[-84.103333000000021,65.809981999999934],[-84.101105000000018,65.819717000000026],[-84.123610999999926,65.900269000000037],[-84.189437999999996,65.968322999999998],[-84.198043999999925,65.973038000000031],[-84.208617999999888,65.977203000000031],[-84.286391999999978,65.999145999999996],[-84.299438000000009,66.002487000000031],[-84.31138599999997,66.003052000000025],[-84.323333999999988,66.002487000000031],[-84.358046999999999,65.997756999999979],[-84.369995000000017,65.997208000000057],[-84.382766999999944,66.000549000000092],[-84.424163999999962,66.028046000000018],[-84.436110999999926,66.037201000000096],[-84.464447000000007,66.060257000000092],[-84.468062999999972,66.064986999999974],[-84.469161999999983,66.069992000000013],[-84.470001000000025,66.089431999999988],[-84.471114999999998,66.128311000000053],[-84.470275999999956,66.133331000000112],[-84.464447000000007,66.138321000000133],[-84.455841000000021,66.141663000000051],[-84.433060000000012,66.138885000000073],[-84.381103999999993,66.129149999999981],[-84.368056999999908,66.125808999999947],[-84.240279999999927,66.098328000000095],[-84.146392999999875,66.081099999999992],[-84.039443999999946,66.076934999999992],[-84.00167799999997,66.033600000000035],[-83.921386999999982,66.009720000000016]],[[-84.579726999999991,66.141373000000044],[-84.627486999999917,66.139160000000118],[-84.639998999999989,66.140549000000078],[-84.648346000000004,66.144989000000123],[-84.654449,66.149429000000112],[-84.675827000000027,66.173035000000027],[-84.678604000000007,66.182480000000055],[-84.667220999999927,66.184981999999991],[-84.618880999999988,66.176651000000049],[-84.59333799999996,66.171097000000088],[-84.589447000000007,66.166382000000056],[-84.574448000000018,66.147491000000002],[-84.579726999999991,66.141373000000044]],[[-84.265288999999996,66.177765000000022],[-84.276947000000007,66.175262000000089],[-84.289169000000015,66.175537000000077],[-84.301391999999964,66.176926000000094],[-84.313889000000017,66.179428000000144],[-84.353333000000021,66.190262000000018],[-84.361937999999952,66.194702000000063],[-84.364440999999943,66.204436999999928],[-84.363616999999977,66.209427000000005],[-84.360001000000011,66.214432000000045],[-84.348343,66.215820000000122],[-84.335830999999985,66.214432000000045],[-84.30972300000002,66.207764000000054],[-84.299164000000019,66.203322999999955],[-84.27305599999994,66.196640000000002],[-84.264450000000011,66.192199999999957],[-84.258347000000015,66.187759000000085],[-84.256957999999997,66.1827550000001],[-84.265288999999996,66.177765000000022]],[[-62.183883999999864,66.237198000000092],[-62.199164999999994,66.216933999999924],[-62.404998999999862,66.218597000000045],[-62.415276000000006,66.219147000000078],[-62.421668999999952,66.222214000000008],[-62.42999999999995,66.229156000000103],[-62.426665999999898,66.233046999999999],[-62.419167000000016,66.237762000000032],[-62.319450000000018,66.269440000000031],[-62.301940999999999,66.274994000000049],[-62.287223999999924,66.278046000000131],[-62.278336000000024,66.279709000000082],[-62.261672999999973,66.280273000000022],[-62.24888599999997,66.278595000000109],[-62.243057000000022,66.276931999999988],[-62.231383999999935,66.269440000000031],[-62.183883999999864,66.237198000000092]],[[-83.067229999999881,66.255554000000075],[-83.054992999999911,66.254990000000134],[-83.043059999999969,66.255264000000068],[-83.031113000000005,66.256653000000028],[-83.019454999999994,66.259155000000135],[-82.996947999999975,66.265823000000069],[-82.960830999999985,66.272491000000059],[-82.937209999999936,66.275269000000037],[-82.91332999999986,66.276093000000003],[-82.902495999999985,66.271652000000131],[-82.904175000000009,66.266662999999937],[-82.910278000000005,66.261658000000068],[-82.918610000000001,66.257492000000013],[-82.92971799999998,66.25221300000004],[-82.935546999999929,66.251389000000074],[-82.990279999999984,66.203598],[-82.996384000000035,66.19859300000013],[-83.00778200000002,66.195250999999985],[-83.019729999999981,66.194977000000051],[-83.080291999999986,66.196640000000002],[-83.093062999999972,66.198868000000118],[-83.263335999999981,66.247208000000001],[-83.287216000000001,66.256104000000107],[-83.293335000000013,66.260544000000095],[-83.296660999999972,66.265273999999977],[-83.297775000000001,66.270263999999997],[-83.298339999999882,66.313873000000115],[-83.285004000000015,66.329163000000108],[-83.273055999999997,66.339432000000102],[-83.264175000000023,66.343597000000102],[-83.252228000000002,66.344986000000119],[-83.226944000000003,66.33998100000008],[-83.216110000000015,66.335541000000035],[-83.204726999999934,66.316666000000112],[-83.173889000000031,66.288589000000115],[-83.168059999999912,66.283874999999966],[-83.067229999999881,66.255554000000075]],[[-66.62332200000003,66.280823000000055],[-66.641952999999944,66.279434000000037],[-66.656951999999933,66.280273000000022],[-66.667495999999971,66.282760999999994],[-66.678878999999995,66.286925999999994],[-66.701400999999976,66.297760000000039],[-66.741942999999878,66.316376000000105],[-66.843063000000029,66.362487999999985],[-66.905837999999903,66.376648000000046],[-66.916107000000011,66.379974000000118],[-66.944716999999969,66.394989000000066],[-66.956115999999952,66.401932000000045],[-66.958617999999944,66.40637200000009],[-66.958344000000011,66.411926000000051],[-66.955276000000026,66.413605000000075],[-66.944442999999922,66.413879000000009],[-66.851943999999946,66.402205999999978],[-66.829726999999991,66.398330999999985],[-66.823059000000001,66.392761000000121],[-66.820846999999958,66.388046000000088],[-66.801101999999958,66.375534000000073],[-66.782227000000034,66.369141000000127],[-66.726944000000003,66.354980000000126],[-66.705565999999976,66.349715999999944],[-66.678329000000019,66.345535000000041],[-66.662216000000001,66.343597000000102],[-66.650283999999942,66.34304800000001],[-66.639724999999999,66.340546000000074],[-66.62388599999997,66.335266000000047],[-66.584441999999967,66.320541000000105],[-66.575012000000015,66.313873000000115],[-66.573623999999995,66.310806000000014],[-66.591675000000009,66.293593999999985],[-66.605269999999962,66.286652000000061],[-66.62332200000003,66.280823000000055]],[[-66.998336999999935,66.493042000000003],[-66.990279999999984,66.489150999999936],[-66.976104999999961,66.489150999999936],[-66.963332999999977,66.487198000000035],[-66.873321999999973,66.468596999999988],[-66.868880999999988,66.464431999999988],[-66.871384000000035,66.460541000000092],[-66.878052000000025,66.458327999999995],[-66.936110999999926,66.445525999999973],[-66.948883000000023,66.444702000000007],[-66.987212999999997,66.445250999999928],[-67.030288999999925,66.45248400000014],[-67.036666999999966,66.456099999999992],[-67.038329999999974,66.472488000000055],[-67.038054999999986,66.478043000000127],[-67.035278000000005,66.484711000000118],[-67.025008999999955,66.489975000000129],[-67.006957999999884,66.493042000000003],[-66.998336999999935,66.493042000000003]],[[-107.92304999999993,66.850540000000024],[-107.93499799999989,66.849152000000117],[-107.94611399999991,66.851089000000115],[-107.94554099999993,66.856934000000024],[-107.837784,67.003875999999991],[-107.83029199999993,67.008606000000043],[-107.81696299999993,67.009155000000135],[-107.80666400000001,67.005829000000119],[-107.79499800000002,66.997208000000001],[-107.79110699999995,66.988312000000064],[-107.78971899999999,66.985259999999982],[-107.79055800000003,66.979705999999965],[-107.82389799999999,66.901093000000003],[-107.83000199999992,66.895538000000101],[-107.89499699999999,66.860809000000017],[-107.90360999999996,66.856934000000024],[-107.92304999999993,66.850540000000024]],[[-108.01445000000001,66.897766000000047],[-108.025284,66.895538000000101],[-108.03859699999998,66.897217000000126],[-108.04444899999993,66.901382000000126],[-108.09638999999993,66.967484000000013],[-108.09777800000001,66.972762999999986],[-108.10659799999996,67.026001000000065],[-108.06360599999988,67.001099000000067],[-107.93831599999999,66.946930000000066],[-107.95944199999991,66.931655999999975],[-107.96665999999993,66.926651000000106],[-108.00583599999987,66.901931999999931],[-108.01445000000001,66.897766000000047]],[[-63.059166000000005,66.957764000000111],[-63.083327999999995,66.954987000000017],[-63.095550999999944,66.955826000000002],[-63.116942999999992,66.963043000000084],[-63.136391000000003,66.974701000000096],[-63.163054999999929,66.995255000000043],[-63.165549999999996,66.999145999999939],[-63.166106999999954,67.004990000000134],[-63.159163999999976,67.015549000000021],[-63.154166999999973,67.021378000000027],[-63.144446999999957,67.028869999999984],[-63.127494999999954,67.033599999999979],[-63.123055000000022,67.034713999999951],[-63.110831999999903,67.033875000000023],[-63.101668999999902,67.029709000000082],[-63.098052999999936,67.027205999999978],[-63.097778000000005,67.023315000000082],[-63.021111000000019,66.996643000000006],[-63.011672999999973,66.992477000000065],[-63.003890999999953,66.988585999999998],[-62.999999999999886,66.984420999999998],[-62.999442999999985,66.978591999999992],[-63.002228000000002,66.97554000000008],[-63.020835999999974,66.966385000000002],[-63.040000999999961,66.960815000000139],[-63.059166000000005,66.957764000000111]],[[-62.918334999999956,67.009720000000016],[-62.938048999999978,67.005829000000119],[-62.977775999999949,67.006653000000085],[-63.009726999999998,67.009995000000004],[-63.037780999999939,67.015823000000125],[-63.068335999999988,67.025543000000027],[-63.092772999999966,67.035812000000078],[-63.12388599999997,67.049149000000114],[-63.135559000000001,67.054703000000075],[-63.138892999999996,67.059418000000107],[-63.138054000000011,67.065262000000132],[-63.135833999999988,67.069716999999969],[-63.130279999999914,67.074158000000068],[-63.11721799999998,67.078873000000101],[-63.110557999999969,67.080276000000026],[-63.100081999999929,67.079712000000086],[-63.002228000000002,67.069443000000035],[-62.978333000000021,67.062759000000142],[-62.961112999999955,67.054703000000075],[-62.941108999999926,67.043593999999985],[-62.922500999999954,67.031097000000045],[-62.914444000000003,67.023041000000148],[-62.912215999999944,67.014708999999982],[-62.918334999999956,67.009720000000016]],[[-62.64416499999993,67.057479999999998],[-62.646949999999947,67.049988000000042],[-62.65166499999998,67.04693600000013],[-62.752501999999993,67.010543999999982],[-62.764449999999954,67.009155000000135],[-62.782775999999956,67.009430000000009],[-62.813056999999958,67.016937000000098],[-62.832222000000002,67.024429000000055],[-62.899445000000014,67.058318999999983],[-62.894599999999969,67.059113000000082],[-62.865004999999996,67.057479999999998],[-62.82028200000002,67.055817000000047],[-62.810279999999977,67.05693100000002],[-62.806664000000012,67.05914300000012],[-62.702869000000021,67.128685000000075],[-62.652221999999995,67.166091999999992],[-62.641945000000021,67.174149],[-62.631942999999865,67.176926000000037],[-62.547782999999924,67.186096000000134],[-62.533889999999985,67.187195000000088],[-62.425277999999992,67.191085999999984],[-62.418059999999969,67.19081099999994],[-62.37888299999986,67.169708000000071],[-62.375274999999931,67.165817000000004],[-62.376105999999936,67.164429000000098],[-62.388054000000011,67.157486000000063],[-62.443610999999919,67.135817999999972],[-62.451942000000031,67.132751000000042],[-62.472495999999978,67.126083000000051],[-62.504172999999923,67.119430999999963],[-62.538612000000001,67.113876000000062],[-62.569449999999961,67.105819999999994],[-62.580001999999979,67.102203000000088],[-62.596106999999961,67.092209000000025],[-62.631667999999934,67.069991999999957],[-62.638610999999912,67.063873000000115],[-62.64416499999993,67.057479999999998]],[[-107.40778399999999,67.083054000000004],[-107.49054699999999,67.071380999999974],[-107.50639299999995,67.072495000000117],[-107.51750199999987,67.074706999999989],[-107.52778599999999,67.078048999999965],[-107.54972800000002,67.08998100000008],[-107.56500199999999,67.103317000000061],[-107.57444799999996,67.112198000000149],[-107.58389299999988,67.121368000000018],[-107.59110999999996,67.130813999999987],[-107.62917299999992,67.18331900000004],[-107.63054699999992,67.188582999999994],[-107.62970699999988,67.194138000000066],[-107.62666300000001,67.200272000000098],[-107.62053700000001,67.206100000000049],[-107.60833700000001,67.20748900000001],[-107.59777799999995,67.204162999999994],[-107.58168000000001,67.196365000000128],[-107.57584400000002,67.192200000000128],[-107.56194299999987,67.183868000000132],[-107.51000999999991,67.15637200000009],[-107.47778299999993,67.140823000000012],[-107.46193700000003,67.133331000000055],[-107.44360399999999,67.126083000000051],[-107.412781,67.115814000000057],[-107.40055799999993,67.113037000000134],[-107.40778399999999,67.083054000000004]],[[-95.361663999999962,67.197754000000145],[-95.373610999999926,67.196365000000128],[-95.400557999999933,67.197204999999997],[-95.415282999999988,67.199707000000103],[-95.430831999999896,67.202773999999977],[-95.527495999999928,67.223037999999974],[-95.543334999999956,67.226379000000009],[-95.551392000000021,67.230270000000075],[-95.552779999999927,67.235260000000096],[-95.542220999999984,67.238585999999941],[-95.391112999999962,67.263046000000145],[-95.377776999999924,67.262772000000041],[-95.317229999999995,67.255554000000018],[-95.307220000000029,67.252486999999917],[-95.305832000000009,67.247757000000092],[-95.309432999999956,67.242203000000075],[-95.314712999999927,67.238585999999941],[-95.336669999999913,67.212769000000094],[-95.342772999999966,67.206940000000088],[-95.361663999999962,67.197754000000145]],[[-107.66278099999994,67.22026100000005],[-107.675003,67.218872000000033],[-107.73029300000002,67.289978000000076],[-107.73306300000002,67.300261999999918],[-107.73029300000002,67.306366000000139],[-107.72501399999993,67.31303400000013],[-107.71083099999998,67.319153000000142],[-107.67777999999993,67.311919999999986],[-107.66944899999993,67.30802900000009],[-107.66000399999996,67.298874000000012],[-107.64472999999998,67.269150000000025],[-107.64028899999994,67.253601000000117],[-107.63945000000001,67.242752000000053],[-107.64250199999992,67.236649000000114],[-107.64778100000001,67.229980000000012],[-107.65416699999997,67.224426000000051],[-107.66278099999994,67.22026100000005]],[[-63.366393999999957,67.287766000000033],[-63.396111000000019,67.269988999999953],[-63.417777999999998,67.26638800000012],[-63.456107999999972,67.264434999999992],[-63.507506999999976,67.269440000000031],[-63.541945999999939,67.272491000000059],[-63.55972300000002,67.273041000000092],[-63.578339000000028,67.273315000000025],[-63.62027699999993,67.269150000000025],[-63.763618000000008,67.272491000000059],[-63.81361400000003,67.279160000000104],[-63.829726999999878,67.28414900000007],[-63.819449999999961,67.289978000000076],[-63.796668999999952,67.299987999999985],[-63.688331999999889,67.341660000000047],[-63.666663999999969,67.345535000000041],[-63.646110999999962,67.348038000000031],[-63.605559999999969,67.352203000000031],[-63.585830999999871,67.353317000000004],[-63.485001000000011,67.341094999999996],[-63.369164000000012,67.302475000000072],[-63.357779999999991,67.293868999999972],[-63.366393999999957,67.287766000000033]],[[-107.91082799999998,67.310532000000023],[-107.93443300000001,67.306640999999956],[-107.94803599999995,67.308319000000097],[-108.08444199999997,67.381363000000079],[-108.076683,67.424698000000035],[-108.07389799999993,67.430817000000104],[-108.06861899999996,67.437485000000038],[-108.06111099999993,67.442200000000071],[-107.94748700000002,67.479980000000012],[-107.91776999999996,67.48942599999998],[-107.90306099999992,67.489151000000106],[-107.89472999999992,67.485535000000084],[-107.88722200000001,67.476089000000115],[-107.88276699999989,67.462494000000049],[-107.89806399999998,67.319717000000082],[-107.90110799999997,67.313598999999954],[-107.91082799999998,67.310532000000023]],[[-108.36833200000001,67.467209000000082],[-108.38194299999998,67.466660000000104],[-108.39806399999998,67.467758000000003],[-108.43388399999998,67.47665400000011],[-108.44444299999992,67.479980000000012],[-108.45278899999994,67.483871000000079],[-108.45889299999988,67.488037000000134],[-108.49249299999997,67.519714000000079],[-108.49638400000003,67.524429000000112],[-108.49582700000002,67.529984000000013],[-108.49137899999999,67.563034000000073],[-108.48137700000001,67.566375999999991],[-108.45777899999996,67.568054000000132],[-108.33583099999993,67.565810999999997],[-108.29750100000001,67.557205000000067],[-108.28582799999998,67.54304500000012],[-108.28443899999996,67.537766000000147],[-108.29527299999995,67.49693300000007],[-108.30166600000001,67.491089000000045],[-108.35722399999986,67.469437000000028],[-108.36833200000001,67.467209000000082]],[[-108.14111300000002,67.449997000000053],[-108.16944899999993,67.449707000000046],[-108.23665599999993,67.456650000000025],[-108.25167799999997,67.458878000000141],[-108.26222200000001,67.462204000000042],[-108.26806599999992,67.466660000000104],[-108.27194199999991,67.471374999999966],[-108.275284,67.481658999999979],[-108.22556299999997,67.565536000000122],[-108.21916199999987,67.571106000000043],[-108.20638999999994,67.570540999999992],[-108.19833399999999,67.566665999999998],[-108.17360699999995,67.552475000000015],[-108.1661069999999,67.54304500000012],[-108.13137799999993,67.481934000000024],[-108.12970699999994,67.47665400000011],[-108.12888299999997,67.465820000000065],[-108.12943999999999,67.460266000000047],[-108.13249200000001,67.454163000000108],[-108.14111300000002,67.449997000000053]],[[-108.32277699999997,67.589980999999966],[-108.32362399999994,67.586655000000121],[-108.33944700000001,67.587769000000094],[-108.42027300000001,67.599426000000051],[-108.48222399999992,67.631363000000022],[-108.48388699999992,67.636658000000068],[-108.475281,67.640548999999965],[-108.46389799999992,67.643051000000071],[-108.44803599999995,67.641937000000041],[-108.41832699999992,67.63638300000008],[-108.40334299999995,67.634155000000135],[-108.390289,67.631088000000034],[-108.379707,67.627762000000132],[-108.37138400000003,67.62414600000011],[-108.33416699999992,67.604156000000103],[-108.32277699999997,67.589980999999966]],[[-63.881942999999978,67.503326000000015],[-63.935555000000022,67.501938000000109],[-63.979163999999912,67.503052000000082],[-63.99500299999994,67.504166000000055],[-64.005279999999914,67.505263999999954],[-64.025283999999942,67.510544000000039],[-64.029723999999874,67.513885000000073],[-64.031677000000002,67.518600000000106],[-64.034728999999913,67.52887000000004],[-64.038054999999872,67.542755000000113],[-64.034438999999907,67.558594000000028],[-63.981110000000001,67.644150000000025],[-63.976944000000003,67.649428999999998],[-63.969993999999986,67.653595000000109],[-63.962775999999963,67.65554800000001],[-63.952498999999989,67.654434000000037],[-63.945549000000028,67.651382000000126],[-63.93721800000003,67.645263999999997],[-63.926392000000021,67.633330999999941],[-63.922226000000023,67.624985000000038],[-63.915549999999996,67.617203000000131],[-63.904442000000017,67.60803199999998],[-63.875556999999958,67.593048000000067],[-63.853888999999924,67.585541000000148],[-63.815276999999924,67.566665999999998],[-63.787223999999981,67.550537000000077],[-63.769996999999989,67.537766000000147],[-63.763618000000008,67.529709000000025],[-63.758056999999951,67.520538000000045],[-63.760833999999988,67.51527400000009],[-63.769447000000014,67.513321000000133],[-63.818335999999988,67.5086060000001],[-63.842223999999931,67.506377999999984],[-63.881942999999978,67.503326000000015]],[[-108.05999799999995,67.475266000000033],[-108.08972199999994,67.465546000000131],[-108.10333300000002,67.467209000000082],[-108.109444,67.471374999999966],[-108.11332700000003,67.476089000000115],[-108.14389,67.530547999999953],[-108.14277600000003,67.541655999999989],[-108.13362099999989,67.628036000000066],[-108.13221699999997,67.639434999999992],[-108.11776699999996,67.669982999999945],[-108.11361699999998,67.675261999999975],[-108.10109699999992,67.676651000000106],[-108.087219,67.674988000000042],[-108.01418299999995,67.662491000000045],[-108.00361599999997,67.65914900000007],[-107.99553700000001,67.655258000000003],[-107.98944099999994,67.651093000000003],[-107.98332199999999,67.644714000000135],[-107.92832900000002,67.561645999999996],[-107.92304999999993,67.551651000000049],[-107.92138699999992,67.54664600000001],[-107.922234,67.540817000000004],[-107.92749000000003,67.534424000000058],[-108.05999799999995,67.475266000000033]],[[-97.502791999999943,67.624420000000043],[-97.515563999999927,67.623871000000065],[-97.530288999999982,67.624985000000038],[-97.541381999999999,67.628860000000032],[-97.549437999999952,67.638045999999974],[-97.551391999999964,67.642761000000007],[-97.553054999999915,67.647766000000104],[-97.560546999999929,67.692748999999992],[-97.40055799999999,67.731658999999922],[-97.387786999999889,67.732208000000071],[-97.360001000000011,67.731658999999922],[-97.346389999999928,67.728317000000004],[-97.337783999999999,67.724152000000004],[-97.337783999999999,67.721100000000092],[-97.33277899999996,67.70637499999998],[-97.327224999999999,67.681655999999975],[-97.33277899999996,67.675812000000008],[-97.341675000000009,67.670532000000094],[-97.370543999999882,67.657760999999994],[-97.433608999999933,67.637497000000053],[-97.478881999999942,67.627472000000125],[-97.502791999999943,67.624420000000043]],[[-109.11221299999994,67.763321000000076],[-109.12581599999987,67.76249700000011],[-109.14111299999996,67.764998999999989],[-109.195267,67.775543000000027],[-109.20612299999993,67.778869999999984],[-109.20777900000002,67.783875000000023],[-109.16944899999999,67.797759999999926],[-109.15943899999996,67.801085999999998],[-109.135559,67.802764999999965],[-109.0933379999999,67.803863999999976],[-109.07584400000002,67.802199999999971],[-109.06054699999999,67.799713000000054],[-109.03916899999996,67.793320000000108],[-109.04083299999996,67.788315000000068],[-109.05277999999993,67.782486000000063],[-109.08000199999987,67.771103000000039],[-109.08972199999994,67.768051000000128],[-109.11221299999994,67.763321000000076]],[[-96.170546999999999,67.773041000000148],[-96.182769999999948,67.77165199999996],[-96.192490000000021,67.773605000000089],[-96.196380999999917,67.778046000000018],[-96.185821999999973,67.794708000000014],[-96.179992999999968,67.800262000000032],[-96.171386999999925,67.806366000000025],[-96.098617999999988,67.832213999999965],[-96.077224999999942,67.838882000000126],[-96.065552000000025,67.841095000000109],[-96.053328999999962,67.842758000000003],[-96.040282999999931,67.843323000000055],[-96.02806099999998,67.841659999999933],[-95.997498000000007,67.820830999999998],[-95.996384000000035,67.81581100000011],[-96.004729999999995,67.809708000000001],[-96.016113000000018,67.807479999999998],[-96.040832999999964,67.804428000000087],[-96.170546999999999,67.773041000000148]],[[-114.11501299999998,67.883880999999974],[-114.08222999999998,67.883041000000105],[-114.02223200000003,67.884155000000078],[-114.00583599999999,67.8836060000001],[-113.95500199999998,67.881362999999965],[-113.92138699999998,67.878036000000009],[-113.925003,67.874694999999974],[-113.94138299999986,67.875259000000142],[-113.98638899999997,67.874419999999986],[-113.99999999999994,67.873306000000014],[-114.01027699999992,67.871368000000075],[-114.05166600000001,67.870254999999986],[-114.08306900000002,67.87052900000009],[-114.195267,67.872482000000048],[-114.22972099999987,67.874146000000053],[-114.25250199999999,67.879974000000004],[-114.29638699999998,67.892212000000029],[-114.29695100000004,67.895263999999941],[-114.27555799999999,67.900542999999914],[-114.25110599999994,67.904433999999981],[-114.21972700000003,67.904160000000047],[-114.20612299999993,67.901932000000102],[-114.17388899999997,67.892487000000074],[-114.14862099999999,67.887206999999989],[-114.13305700000001,67.885269000000051],[-114.11501299999998,67.883880999999974]],[[-97.856383999999935,67.850539999999967],[-97.866942999999992,67.846939000000134],[-97.924164000000019,67.849991000000045],[-97.954453000000001,67.856368999999972],[-97.963333000000034,67.860260000000039],[-97.970001000000025,67.86442599999998],[-97.974166999999909,67.869141000000013],[-97.973327999999924,67.874146000000053],[-97.976944000000003,67.884155000000078],[-97.97444200000001,67.904984000000013],[-97.961120999999991,67.90554800000001],[-97.933318999999983,67.89888000000002],[-97.920272999999952,67.893600000000106],[-97.91361999999998,67.889160000000118],[-97.895554000000004,67.881362999999965],[-97.86221299999994,67.859985000000052],[-97.858046999999942,67.855255],[-97.856383999999935,67.850539999999967]],[[-108.64695699999999,67.86943100000002],[-108.66082799999998,67.868865999999969],[-108.66915899999998,67.872482000000048],[-108.64666699999998,67.887206999999989],[-108.58500700000002,67.915543000000071],[-108.56610099999989,67.922759999999982],[-108.54472399999997,67.928314],[-108.531113,67.928864000000033],[-108.38027999999997,67.922484999999995],[-108.37082699999996,67.919708000000071],[-108.36444099999994,67.915543000000071],[-108.36110699999989,67.905257999999947],[-108.35944399999994,67.899993999999992],[-108.41221599999994,67.885817999999972],[-108.64695699999999,67.86943100000002]],[[-113.390289,67.897766000000047],[-113.46389799999997,67.895828000000108],[-113.52694699999995,67.896378000000141],[-113.55972300000002,67.897491000000002],[-113.59416199999993,67.899428999999941],[-113.60333299999991,67.903046000000074],[-113.59750399999996,67.906647000000135],[-113.58528100000001,67.908600000000092],[-113.41972399999997,67.925262000000089],[-113.39111300000002,67.926651000000049],[-113.34750400000001,67.928040000000067],[-113.27390299999996,67.929977000000122],[-113.25723299999993,67.929428000000144],[-113.25029000000001,67.925262000000089],[-113.24694799999997,67.914429000000098],[-113.25361599999997,67.909424000000058],[-113.27778599999999,67.905822999999998],[-113.297234,67.904433999999981],[-113.33444199999991,67.901092999999946],[-113.390289,67.897766000000047]],[[-112.93055700000002,67.916655999999989],[-112.98361199999999,67.915268000000083],[-112.99999999999989,67.916092000000049],[-113.06027199999994,67.915268000000083],[-113.13110399999999,67.911652000000004],[-113.14750700000002,67.912200999999982],[-113.14750700000002,67.915817000000004],[-113.13806199999999,67.919144000000131],[-112.94304699999998,67.931091000000094],[-112.89639299999999,67.93081699999999],[-112.88722199999995,67.927200000000028],[-112.890289,67.921921000000054],[-112.90110800000002,67.919144000000131],[-112.93055700000002,67.916655999999989]],[[-111.07167099999998,67.847488000000055],[-111.08666999999997,67.847488000000055],[-111.0911099999999,67.852203000000088],[-111.08693700000003,67.858871000000079],[-111.07028200000002,67.867203000000075],[-110.84889199999998,67.954711999999972],[-110.83917200000002,67.958037999999988],[-110.82668299999995,67.959717000000012],[-110.81388900000002,67.959152000000017],[-110.80722000000003,67.954987000000017],[-110.80943300000001,67.948867999999948],[-110.81696299999999,67.940262000000018],[-110.86221299999994,67.894989000000123],[-110.86945300000002,67.889984000000084],[-110.88027999999991,67.887496999999996],[-111.05943300000001,67.849152000000061],[-111.07167099999998,67.847488000000055]],[[-114.21916199999998,67.945250999999985],[-114.29583699999995,67.944702000000063],[-114.30999799999995,67.945816000000036],[-114.31722999999988,67.949707000000103],[-114.31082200000003,67.954711999999972],[-114.30027799999988,67.957489000000066],[-114.25446299999987,67.963318000000072],[-114.17138699999992,67.969147000000078],[-114.13999899999999,67.96887200000009],[-114.12416099999996,67.967209000000139],[-114.12110899999993,67.961929000000055],[-114.12332199999992,67.958037999999988],[-114.16332999999986,67.949142000000052],[-114.20388800000001,67.945816000000036],[-114.21916199999998,67.945250999999985]],[[-108.13806199999999,67.872482000000048],[-108.15167199999996,67.871918000000107],[-108.24553699999996,67.878036000000009],[-108.25418100000002,67.881927000000076],[-108.25556899999992,67.887206999999989],[-108.23916599999995,67.920258000000103],[-108.236107,67.926376000000062],[-108.23111,67.933044000000052],[-108.22471599999994,67.938873000000058],[-108.198036,67.950821000000076],[-108.14723200000003,67.96665999999999],[-108.12581599999999,67.972214000000008],[-108.114441,67.974426000000051],[-108.10056299999997,67.974991000000102],[-108.08416699999998,67.97387700000013],[-108.07140399999992,67.971100000000035],[-108.06054699999999,67.967758000000117],[-108.05444299999988,67.963318000000072],[-108.05055199999998,67.958603000000039],[-108.048607,67.949142000000052],[-108.05139200000002,67.926651000000049],[-108.06331599999993,67.902206000000035],[-108.06833599999999,67.895538000000045],[-108.07501200000002,67.889709000000039],[-108.08249699999999,67.884995000000117],[-108.09137699999985,67.880814000000044],[-108.11277799999999,67.87553400000013],[-108.13806199999999,67.872482000000048]],[[-113.72000099999997,67.973312000000078],[-113.72778299999993,67.969147000000078],[-113.73998999999998,67.967209000000139],[-113.75361599999997,67.966094999999996],[-113.79750099999995,67.964705999999978],[-113.99305699999996,67.961104999999918],[-113.99109599999997,67.964995999999985],[-113.98249800000002,67.967209000000139],[-113.97250400000001,67.968597000000045],[-113.91639700000002,67.972214000000008],[-113.88639799999999,67.972762999999986],[-113.83833299999998,67.971924000000001],[-113.81111099999993,67.97387700000013],[-113.78527800000001,67.976929000000041],[-113.77223199999997,67.980270000000075],[-113.74082899999996,67.979980000000069],[-113.72501399999999,67.978043000000014],[-113.72000099999997,67.973312000000078]],[[-109.195267,67.989974999999959],[-109.04998799999993,67.958328000000051],[-109.03028899999993,67.966933999999924],[-108.99082900000002,67.976379000000009],[-108.97693599999997,67.976929000000041],[-108.95111099999991,67.973312000000078],[-108.89723199999997,67.956940000000088],[-108.88445300000001,67.94859300000013],[-108.86554699999999,67.905822999999998],[-108.86609599999991,67.90026899999998],[-108.87943999999999,67.875259000000142],[-108.88806199999999,67.871093999999971],[-108.90055799999999,67.869705000000124],[-108.916946,67.87052900000009],[-109.04888900000003,67.90387000000004],[-109.10305799999998,67.920258000000103],[-109.135559,67.930267000000129],[-109.16972399999992,67.945250999999985],[-109.18888899999996,67.957764000000054],[-109.195267,67.962204000000099],[-109.19888299999997,67.972488000000112],[-109.198036,67.983871000000136],[-109.195267,67.989974999999959]],[[-110.33444199999997,68.011658000000125],[-110.39362299999993,68.011108000000092],[-110.41000400000001,68.011932000000058],[-110.42111199999994,68.014998999999932],[-110.42083700000001,68.020827999999995],[-110.41055299999999,68.024704000000042],[-110.32640099999992,68.047760000000096],[-110.317497,68.049712999999997],[-110.31082199999992,68.045532000000094],[-110.30888400000003,68.037491000000045],[-110.316101,68.019150000000025],[-110.32333399999999,68.014160000000004],[-110.33444199999997,68.011658000000125]],[[-98.951401000000033,67.979980000000069],[-98.963622999999927,67.978317000000118],[-98.979445999999939,67.980270000000075],[-99.005004999999983,67.987198000000092],[-99.014450000000011,67.991088999999988],[-99.028335999999911,67.999420000000043],[-99.078612999999905,68.045592999999997],[-99.051392000000021,68.055817000000047],[-98.990554999999858,68.078323000000069],[-98.975554999999986,68.077209000000039],[-98.968886999999995,68.073044000000039],[-98.964721999999995,68.064987000000087],[-98.934432999999956,67.99664300000012],[-98.934998000000007,67.991363999999976],[-98.942763999999954,67.985259999999926],[-98.951401000000033,67.979980000000069]],[[-65.397232000000031,68.039978000000133],[-65.409163999999976,68.039428999999984],[-65.500290000000007,68.046097000000145],[-65.510833999999988,68.04942299999999],[-65.516662999999994,68.05442800000003],[-65.519729999999981,68.067490000000078],[-65.518065999999976,68.072220000000073],[-65.505279999999971,68.076385000000073],[-65.43582200000003,68.088042999999971],[-65.394454999999994,68.08998100000008],[-65.386397999999929,68.088318000000129],[-65.390288999999996,68.078323000000069],[-65.383057000000008,68.053314000000057],[-65.383330999999941,68.048599000000024],[-65.387222000000008,68.043320000000051],[-65.397232000000031,68.039978000000133]],[[-108.50611900000001,68.034714000000122],[-108.51862299999993,68.033324999999934],[-108.53388999999999,68.035538000000088],[-108.54028299999993,68.039978000000133],[-108.53751399999999,68.046097000000145],[-108.45472699999999,68.090546000000074],[-108.44748700000002,68.087769000000037],[-108.44583099999994,68.082489000000123],[-108.44611399999991,68.074706999999989],[-108.45140100000003,68.068054000000018],[-108.46665999999999,68.058319000000097],[-108.49722299999996,68.038879000000122],[-108.50611900000001,68.034714000000122]],[[-109.32167099999998,67.981094000000041],[-109.33556399999992,67.980270000000075],[-109.35193600000002,67.981369000000086],[-109.37805199999991,67.986923000000047],[-109.432503,68.003052000000025],[-109.49804699999993,68.022766000000104],[-109.50666799999993,68.026382000000126],[-109.53888699999999,68.047485000000052],[-109.54305999999991,68.052200000000084],[-109.50473,68.088882000000069],[-109.49749799999989,68.093597000000102],[-109.484734,68.095260999999937],[-109.44722000000002,68.092209000000025],[-109.41055299999999,68.071930000000066],[-109.32167099999998,68.039978000000133],[-109.31527699999987,68.035812000000021],[-109.3116609999999,68.025543000000027],[-109.31111099999987,67.997756999999922],[-109.3116609999999,67.991928000000087],[-109.31416299999995,67.985809000000074],[-109.32167099999998,67.981094000000041]],[[-108.36054999999999,68.049712999999997],[-108.37444299999993,68.048874000000069],[-108.38751200000002,68.05192599999998],[-108.40638699999994,68.064697000000081],[-108.40805099999994,68.069716999999969],[-108.40167200000002,68.075546000000145],[-108.38221699999991,68.092758000000003],[-108.37444299999993,68.095535000000041],[-108.36193800000001,68.096939000000077],[-108.32000699999992,68.098877000000016],[-108.306107,68.099425999999937],[-108.29444899999999,68.097214000000065],[-108.297234,68.091095000000053],[-108.29778299999998,68.085541000000035],[-108.30082700000003,68.079437000000041],[-108.30860899999999,68.074706999999989],[-108.34916699999997,68.05192599999998],[-108.36054999999999,68.049712999999997]],[[-110.21362299999998,68.038039999999967],[-110.23998999999998,68.035812000000021],[-110.25639299999995,68.036652000000061],[-110.25862100000001,68.041931000000034],[-110.25,68.046097000000145],[-110.22165699999994,68.056641000000013],[-110.18195300000002,68.069716999999969],[-109.93276999999989,68.131927000000076],[-109.92166099999997,68.134155000000021],[-109.89639299999999,68.13749700000011],[-109.88583399999993,68.136383000000137],[-109.87721299999993,68.12692300000009],[-109.87748699999997,68.121368000000018],[-109.882767,68.114151000000106],[-109.88527699999997,68.108032000000037],[-109.88999899999993,68.101379000000065],[-109.89584399999995,68.095535000000041],[-109.90334300000001,68.090546000000074],[-109.92111199999994,68.081664999999987],[-109.93222000000003,68.079163000000108],[-110.08721899999995,68.053314000000057],[-110.21362299999998,68.038039999999967]],[[-112.78056299999997,68.131088000000091],[-112.79276999999996,68.129424999999969],[-112.88999899999999,68.137207000000103],[-112.9058379999999,68.139160000000061],[-112.91722099999998,68.142211999999972],[-112.922234,68.146652000000017],[-112.91832699999992,68.153594999999996],[-112.91306299999997,68.159424000000001],[-112.90638699999994,68.164429000000041],[-112.89835399999998,68.168869000000086],[-112.88861099999997,68.172211000000004],[-112.87638900000002,68.173874000000126],[-112.86110699999995,68.174149000000114],[-112.76722699999993,68.166656000000103],[-112.75167799999997,68.164703000000145],[-112.74973299999994,68.158034999999984],[-112.74472000000003,68.153594999999996],[-112.74638399999998,68.147490999999945],[-112.75334199999998,68.142211999999972],[-112.76139799999993,68.138046000000088],[-112.78056299999997,68.131088000000091]],[[-74.21556099999998,68.117751999999939],[-74.164718999999991,68.065536000000066],[-73.974716000000001,68.041092000000106],[-73.736388999999974,68.013611000000026],[-73.655471999999975,68.007705999999985],[-73.643340999999907,68.012207000000046],[-73.619995000000017,68.014998999999932],[-73.608886999999868,68.015548999999965],[-73.578063999999983,68.014434999999992],[-73.567504999999983,68.013046000000031],[-73.543883999999935,68.008330999999998],[-73.439986999999974,67.985535000000141],[-73.428329000000019,67.982208000000014],[-73.418883999999991,67.97886699999998],[-73.411666999999966,67.974991000000102],[-73.409728999999913,67.970534999999984],[-73.348617999999988,67.828048999999965],[-73.361664000000019,67.810257000000092],[-73.377776999999867,67.793869000000029],[-73.383330999999941,67.789429000000041],[-73.404175000000009,67.774994000000106],[-73.411391999999921,67.770537999999988],[-73.418609999999944,67.766388000000006],[-73.429442999999992,67.762771999999927],[-73.449431999999945,67.76249700000011],[-73.664168999999958,67.774704000000099],[-73.932219999999916,67.78637700000013],[-73.993057000000022,67.788040000000024],[-74.038329999999917,67.788589000000002],[-74.083892999999875,67.788315000000068],[-74.113327000000027,67.787201000000096],[-74.168059999999855,67.78276100000005],[-74.228881999999942,67.775268999999923],[-74.251952999999901,67.772491000000116],[-74.263061999999991,67.77165199999996],[-74.305832000000009,67.768600000000049],[-74.32028200000002,67.768875000000094],[-74.388610999999969,67.775268999999923],[-74.400833000000034,67.776657000000057],[-74.481109999999944,67.789429000000041],[-74.535278000000005,67.804703000000131],[-74.564162999999951,67.814423000000033],[-74.581680000000006,67.821381000000031],[-74.59722899999997,67.828598000000113],[-74.640838999999971,67.852203000000088],[-74.659728999999913,67.864700000000084],[-74.684433000000013,67.881927000000076],[-74.758895999999993,67.950271999999984],[-74.772232000000031,67.963318000000072],[-74.775557999999876,67.969147000000078],[-74.777221999999995,67.97387700000013],[-74.778060999999923,68.006104000000107],[-74.777495999999985,68.017761000000064],[-74.773055999999997,68.029984000000127],[-74.760009999999966,68.05442800000003],[-74.754181000000017,68.06053200000008],[-74.748610999999926,68.065536000000066],[-74.731948999999872,68.070831000000112],[-74.718613000000005,68.072220000000073],[-74.629990000000021,68.078598000000056],[-74.615279999999984,68.078323000000069],[-74.436661000000015,68.097487999999998],[-74.363892000000021,68.166381999999999],[-74.355834999999956,68.172759999999982],[-74.346953999999926,68.176376000000005],[-74.339447000000007,68.177199999999971],[-74.322509999999909,68.173035000000141],[-74.268889999999999,68.154984000000013],[-74.239440999999999,68.144989000000066],[-74.231673999999941,68.141936999999984],[-74.216399999999965,68.134155000000021],[-74.212509000000011,68.130538999999942],[-74.210830999999985,68.124984999999981],[-74.21556099999998,68.117751999999939]],[[-65.642226999999991,68.159424000000001],[-65.56639100000001,68.152205999999978],[-65.512787000000003,68.15277100000003],[-65.502791999999999,68.151093000000117],[-65.497771999999941,68.14776599999999],[-65.494445999999925,68.142487000000017],[-65.495543999999995,68.128310999999997],[-65.500838999999985,68.121918000000051],[-65.516953000000001,68.113037000000077],[-65.525283999999999,68.109711000000061],[-65.675551999999982,68.096100000000092],[-65.686935000000005,68.095825000000104],[-65.696105999999929,68.098877000000016],[-65.709731999999974,68.106094000000098],[-65.713897999999972,68.112762000000089],[-65.721938999999963,68.164429000000041],[-65.716949,68.175812000000064],[-65.711670000000026,68.180267000000072],[-65.701400999999976,68.181366000000082],[-65.67582699999997,68.179977000000065],[-65.656661999999926,68.175262000000032],[-65.648345999999947,68.168594000000041],[-65.646666999999923,68.163605000000075],[-65.642226999999991,68.159424000000001]],[[-107.47361799999993,68.144714000000079],[-107.48500100000001,68.142487000000017],[-107.50140399999998,68.143600000000049],[-107.55499299999991,68.160537999999974],[-107.55416899999994,68.166091999999992],[-107.54499800000002,68.169983000000059],[-107.5038909999999,68.182480000000055],[-107.49472000000003,68.18664600000011],[-107.48444399999994,68.189697000000137],[-107.46806300000003,68.188582999999994],[-107.46193700000003,68.184142999999949],[-107.46028100000001,68.179153000000099],[-107.45935800000001,68.175629000000015],[-107.45667299999997,68.174423000000047],[-107.45527600000003,68.169144000000074],[-107.45584099999996,68.163605000000075],[-107.46694899999994,68.15026899999998],[-107.47361799999993,68.144714000000079]],[[-104.453056,68.102203000000031],[-104.48277299999995,68.079712000000029],[-104.497772,68.080275999999969],[-104.50334199999992,68.084717000000069],[-104.55304699999999,68.140274000000034],[-104.55610699999994,68.145264000000111],[-104.55695299999996,68.15026899999998],[-104.55387899999999,68.161651999999947],[-104.54666099999997,68.164992999999981],[-104.42639200000002,68.199997000000053],[-104.41555799999998,68.202773999999977],[-104.391953,68.206940000000088],[-104.37721299999998,68.199707000000046],[-104.36860699999994,68.190536000000122],[-104.370003,68.184982000000105],[-104.37416100000002,68.178863999999976],[-104.40499899999992,68.139435000000049],[-104.453056,68.102203000000031]],[[-107.38890100000003,68.172211000000004],[-107.40278599999999,68.171645999999953],[-107.41111799999999,68.17553700000002],[-107.44167299999992,68.196929999999952],[-107.445267,68.201660000000004],[-107.43998699999997,68.208327999999995],[-107.42944299999999,68.211380000000077],[-107.41443599999997,68.211105000000089],[-107.30972300000002,68.209152000000131],[-107.295547,68.20748900000001],[-107.29167200000001,68.202773999999977],[-107.31054699999999,68.196091000000024],[-107.38890100000003,68.172211000000004]],[[-111.83332799999999,68.181931000000077],[-111.84722899999997,68.180817000000104],[-111.860817,68.183594000000028],[-111.86554699999999,68.188034000000016],[-111.83222999999998,68.204987000000131],[-111.81416300000001,68.212494000000049],[-111.79194599999994,68.21775800000006],[-111.77944899999994,68.219437000000028],[-111.764183,68.219437000000028],[-111.75499699999995,68.215820000000122],[-111.75945299999995,68.209152000000131],[-111.76666299999994,68.206375000000037],[-111.79194599999994,68.193588000000034],[-111.81111099999998,68.186920000000043],[-111.83332799999999,68.181931000000077]],[[-98.650283999999999,68.180267000000072],[-98.674438000000009,68.173874000000126],[-98.704453000000001,68.176085999999998],[-98.702788999999996,68.191650000000095],[-98.693328999999949,68.213608000000022],[-98.684433000000013,68.218872000000033],[-98.672226000000023,68.220534999999927],[-98.657226999999978,68.219437000000028],[-98.643065999999976,68.216095000000109],[-98.638610999999969,68.211655000000121],[-98.636672999999917,68.206650000000025],[-98.643065999999976,68.201660000000004],[-98.650283999999999,68.180267000000072]],[[-74.062774999999988,68.151657000000057],[-74.073623999999938,68.150818000000072],[-74.138335999999924,68.170258000000047],[-74.169723999999974,68.195525999999973],[-74.176392000000021,68.204162999999994],[-74.171386999999982,68.208602999999982],[-74.15583799999996,68.217484000000127],[-74.138061999999991,68.225815000000011],[-74.117217999999923,68.232207999999957],[-74.105835000000013,68.235260000000096],[-74.097228999999913,68.236649000000057],[-74.086944999999957,68.235260000000096],[-74.079726999999991,68.232483000000002],[-74.075286999999946,68.227767999999969],[-74.073059000000001,68.223877000000073],[-74.063323999999909,68.203049000000021],[-74.055557000000022,68.172485000000108],[-74.054442999999992,68.159988000000112],[-74.057219999999973,68.154984000000013],[-74.062774999999988,68.151657000000057]],[[-108.59028599999999,68.214431999999988],[-108.63944999999995,68.151382000000012],[-108.6499859999999,68.152481000000023],[-108.65862299999998,68.156097000000045],[-108.67748999999998,68.168869000000086],[-108.67360699999995,68.186371000000122],[-108.67194399999994,68.191085999999984],[-108.63500999999997,68.228592000000106],[-108.62748699999992,68.233597000000145],[-108.60555999999997,68.23692299999999],[-108.56610099999989,68.240540000000124],[-108.55972300000002,68.236099000000024],[-108.59028599999999,68.214431999999988]],[[-109.78388999999999,68.13749700000011],[-109.81166099999996,68.136107999999979],[-109.828056,68.136932000000115],[-109.84137699999997,68.139708999999982],[-109.84999099999999,68.143325999999945],[-109.85665899999998,68.14776599999999],[-109.85417200000001,68.153869999999984],[-109.845551,68.158034999999984],[-109.77194199999997,68.188309000000061],[-109.676941,68.224152000000061],[-109.64417300000002,68.232207999999957],[-109.58889799999997,68.245254999999986],[-109.57749899999988,68.247482000000048],[-109.56806899999998,68.247208000000114],[-109.57055699999995,68.241089000000102],[-109.57695000000001,68.232483000000002],[-109.58194700000001,68.225815000000011],[-109.59416199999993,68.214431999999988],[-109.67388899999997,68.173309000000074],[-109.7625119999999,68.143325999999945],[-109.77250699999991,68.139984000000027],[-109.78388999999999,68.13749700000011]],[[-66.31361400000003,68.14776599999999],[-66.326950000000011,68.147490999999945],[-66.354995999999971,68.153319999999951],[-66.381103999999937,68.158600000000035],[-66.396392999999932,68.161102000000085],[-66.468612999999948,68.171097000000032],[-66.527785999999878,68.177765000000022],[-66.570847000000015,68.181366000000082],[-66.601944000000003,68.182480000000055],[-66.607223999999974,68.217209000000082],[-66.5,68.239700000000084],[-66.299437999999952,68.254440000000045],[-66.221938999999963,68.241089000000102],[-66.256667999999991,68.163605000000075],[-66.269729999999925,68.158600000000035],[-66.301391999999964,68.149154999999951],[-66.31361400000003,68.14776599999999]],[[-96.384170999999924,68.200821000000019],[-96.422775000000001,68.198318000000086],[-96.436935000000005,68.198593000000074],[-96.448607999999922,68.20248400000014],[-96.454726999999934,68.206650000000025],[-96.462783999999999,68.216095000000109],[-96.456664999999987,68.221649000000127],[-96.375,68.254715000000033],[-96.364166000000012,68.258041000000105],[-96.350829999999974,68.258605999999929],[-96.344451999999933,68.254166000000112],[-96.317504999999926,68.231934000000024],[-96.324448000000018,68.221099999999979],[-96.338897999999915,68.212204000000042],[-96.348891999999864,68.208037999999988],[-96.360001000000011,68.204712000000086],[-96.384170999999924,68.200821000000019]],[[-78.571670999999981,68.200272000000098],[-78.655563000000029,68.187759000000028],[-78.662216000000001,68.189147999999989],[-78.660277999999892,68.196365000000128],[-78.643065999999976,68.218323000000055],[-78.607223999999917,68.248322000000087],[-78.593886999999881,68.255554000000018],[-78.581115999999952,68.258880999999974],[-78.550277999999992,68.263610999999969],[-78.548049999999989,68.263046000000145],[-78.545273000000009,68.25],[-78.525283999999999,68.233597000000145],[-78.517226999999934,68.223312000000021],[-78.522506999999905,68.21775800000006],[-78.532226999999978,68.213043000000027],[-78.558883999999978,68.203049000000021],[-78.571670999999981,68.200272000000098]],[[-86.426391999999964,68.069152999999972],[-86.397507000000019,68.021652000000131],[-86.378325999999959,67.993317000000104],[-86.376662999999951,67.988585999999998],[-86.368606999999997,67.954711999999972],[-86.370833999999945,67.939972000000012],[-86.396117999999944,67.859711000000118],[-86.403609999999958,67.848877000000073],[-86.465012000000002,67.786652000000117],[-86.47084000000001,67.78137200000009],[-86.489989999999977,67.770537999999988],[-86.571945000000028,67.728867000000037],[-86.583617999999944,67.725266000000147],[-86.596663999999976,67.72554000000008],[-86.676665999999955,67.731658999999922],[-86.690552000000025,67.733871000000022],[-86.858336999999949,67.79693599999996],[-86.879439999999931,67.810257000000092],[-86.883895999999936,67.814986999999974],[-86.910278000000005,67.8477630000001],[-86.918610000000001,67.86192299999999],[-86.926940999999999,67.876373000000115],[-86.945830999999941,67.909424000000058],[-86.951949999999897,67.923874000000012],[-86.948607999999979,67.928864000000033],[-86.940551999999968,67.934418000000051],[-86.926101999999958,67.931366000000082],[-86.913329999999974,67.931931000000134],[-86.854445999999882,67.954163000000051],[-86.84333799999996,67.958603000000039],[-86.838897999999972,67.986374000000126],[-86.836945000000014,68.001099000000067],[-86.840835999999911,68.010818000000029],[-86.847503999999958,68.020263999999997],[-86.851944000000003,68.024994000000049],[-86.863892000000021,68.029159999999933],[-86.878325999999959,68.032210999999961],[-86.904175000000009,68.030548000000067],[-86.932495000000017,68.035812000000021],[-86.942214999999976,68.040267999999969],[-86.986664000000019,68.061646000000053],[-86.992766999999901,68.066666000000112],[-86.991942999999935,68.071655000000078],[-86.98832699999997,68.081664999999987],[-86.978881999999999,68.096939000000077],[-86.906386999999938,68.180267000000072],[-86.89805599999994,68.185531999999967],[-86.742492999999911,68.282760999999937],[-86.711944999999957,68.299149],[-86.700561999999934,68.303589000000045],[-86.675003000000004,68.306091000000094],[-86.646666999999923,68.301651000000106],[-86.602782999999988,68.291367000000037],[-86.538605000000018,68.270538000000101],[-86.487503000000004,68.24859600000002],[-86.458617999999888,68.235535000000084],[-86.411117999999988,68.208878000000027],[-86.406661999999983,68.204162999999994],[-86.402785999999992,68.194427000000019],[-86.434998000000007,68.162491000000102],[-86.433884000000035,68.098601999999971],[-86.432495000000017,68.088882000000069],[-86.426391999999964,68.069152999999972]],[[-111.71028100000001,68.220534999999927],[-111.72556299999997,68.220260999999994],[-111.74221799999998,68.221099999999979],[-111.75583599999993,68.223602000000028],[-111.76500699999997,68.227203000000088],[-111.77194199999991,68.231369000000029],[-111.77639799999992,68.236099000000024],[-111.77887699999997,68.241089000000102],[-111.77916699999997,68.246933000000126],[-111.77722199999999,68.253052000000139],[-111.77166699999998,68.258880999999974],[-111.71501199999994,68.296936000000073],[-111.70388799999989,68.299422999999933],[-111.52887699999991,68.310806000000127],[-111.51363400000002,68.311096000000134],[-111.49944299999993,68.296936000000073],[-111.50446299999999,68.292480000000126],[-111.52861000000001,68.290543000000071],[-111.55777,68.289429000000098],[-111.58277899999996,68.286101999999971],[-111.60526999999996,68.281096999999932],[-111.61361699999998,68.276657000000114],[-111.62777699999998,68.266663000000108],[-111.633331,68.260818000000029],[-111.63305699999995,68.249709999999993],[-111.63054699999992,68.24443100000002],[-111.63249200000001,68.238312000000008],[-111.63945000000001,68.23332199999993],[-111.64943700000003,68.229980000000012],[-111.67166099999997,68.224701000000039],[-111.696663,68.221375000000023],[-111.71028100000001,68.220534999999927]],[[-75.582779000000016,68.300262000000089],[-75.5625,68.294433999999967],[-75.453888000000006,68.266663000000108],[-75.42971799999998,68.262206999999989],[-75.386672999999917,68.258041000000105],[-75.263061999999934,68.247208000000114],[-75.228881999999942,68.24552900000009],[-75.199158000000011,68.24552900000009],[-75.183059999999955,68.243866000000025],[-75.158614999999941,68.239975000000129],[-75.134734999999864,68.234711000000118],[-75.121933000000013,68.229156000000046],[-75.030563000000029,68.167205999999965],[-75.011948000000018,68.14776599999999],[-75.003066999999987,68.132202000000063],[-75,68.119690000000105],[-75.002227999999945,68.114426000000094],[-75.049163999999962,68.041367000000093],[-75.052490000000034,68.036652000000061],[-75.063323999999966,68.027206000000092],[-75.091675000000009,68.009995000000004],[-75.148055999999997,67.974426000000051],[-75.153609999999901,67.969437000000084],[-75.164443999999946,67.954163000000051],[-75.164443999999946,67.949417000000096],[-75.162780999999939,67.943863000000079],[-75.113891999999964,67.86192299999999],[-75.104445999999996,67.847488000000055],[-75.064162999999951,67.782486000000063],[-75.025008999999955,67.625534000000016],[-75.025283999999999,67.619431000000077],[-75.068892999999889,67.542755000000113],[-75.071944999999971,67.538879000000065],[-75.133620999999948,67.481658999999979],[-75.161117999999988,67.463882000000126],[-75.198607999999979,67.443314000000044],[-75.388061999999934,67.354705999999965],[-75.395843999999954,67.353043000000071],[-75.553603999999893,67.333603000000096],[-75.662506000000008,67.305251999999996],[-75.84445199999999,67.264159999999947],[-75.946105999999929,67.251937999999996],[-76.116652999999928,67.255554000000018],[-76.226943999999946,67.260818000000029],[-76.30860899999999,67.253601000000117],[-76.490829000000019,67.236374000000069],[-76.66361999999998,67.219986000000006],[-76.693053999999961,67.221099999999979],[-76.978057999999976,67.245529000000147],[-77.026672000000019,67.254990000000078],[-77.044723999999917,67.260544000000095],[-77.057219999999916,67.267212000000086],[-77.074448000000018,67.280823000000055],[-77.101395000000025,67.30581699999999],[-77.246947999999975,67.451934999999992],[-77.247222999999963,67.457214000000135],[-77.236937999999952,67.495254999999986],[-77.224441999999954,67.535538000000031],[-77.225829999999974,67.543869000000086],[-77.230285999999978,67.554428000000144],[-77.242217999999923,67.569153000000085],[-77.275008999999955,67.614699999999971],[-77.312209999999993,67.676376000000118],[-77.320847000000015,67.691649999999981],[-77.322509999999909,67.698029000000076],[-77.319167999999991,67.71138000000002],[-77.258346999999958,67.816375999999934],[-77.251953000000015,67.82638500000013],[-77.243332000000009,67.837494000000049],[-77.233062999999959,67.848877000000073],[-77.228333000000021,67.853867000000093],[-77.220551,67.86192299999999],[-77.203888000000006,67.876373000000115],[-76.865554999999972,68.15776100000005],[-76.858886999999925,68.161651999999947],[-76.726105000000018,68.238876000000118],[-76.702498999999932,68.24859600000002],[-76.673888999999974,68.259155000000078],[-76.635009999999909,68.271927000000062],[-76.606948999999929,68.279434000000037],[-76.28195199999999,68.332764000000111],[-76.267226999999934,68.332764000000111],[-76.258346999999901,68.3316650000001],[-76.251953000000015,68.328598],[-76.25,68.323044000000039],[-76.25306699999993,68.313599000000124],[-76.249161000000015,68.307480000000112],[-76.235824999999977,68.303314],[-76.221663999999976,68.301376000000062],[-76.116104000000007,68.296646000000067],[-76.083327999999995,68.295257999999933],[-76.060546999999985,68.296936000000073],[-76.052779999999984,68.298598999999967],[-76.032227000000034,68.304703000000018],[-76.000564999999995,68.316939999999988],[-75.985001000000011,68.324432000000115],[-75.966399999999965,68.331100000000106],[-75.954178000000013,68.333878000000084],[-75.930831999999953,68.336929000000112],[-75.917495999999915,68.338318000000072],[-75.887511999999958,68.339705999999978],[-75.818068999999866,68.336655000000007],[-75.756667999999991,68.332489000000066],[-75.726105000000018,68.33027600000014],[-75.695540999999878,68.326935000000105],[-75.667496000000028,68.322768999999994],[-75.62249799999995,68.313034000000073],[-75.602492999999868,68.307480000000112],[-75.582779000000016,68.300262000000089]],[[-79.020553999999947,68.169144000000074],[-79.032500999999911,68.165268000000026],[-79.075012000000015,68.168320000000108],[-79.089721999999938,68.170258000000047],[-79.101669000000015,68.175262000000032],[-79.171386999999868,68.205261000000064],[-79.176940999999943,68.209427000000119],[-79.179992999999968,68.215545999999961],[-79.188323999999966,68.247208000000114],[-79.191100999999946,68.319442999999978],[-79.151671999999962,68.346649000000014],[-79.141952999999944,68.34887700000013],[-79.125548999999978,68.350266000000147],[-79.099441999999954,68.348602000000142],[-79.044997999999964,68.343322999999941],[-78.929992999999911,68.338882000000012],[-78.826110999999969,68.295532000000037],[-78.809998000000007,68.287490999999989],[-78.804717999999923,68.283051],[-78.801666000000012,68.279160000000104],[-78.80221599999993,68.272491000000002],[-78.805266999999958,68.266663000000108],[-78.815551999999911,68.255554000000018],[-78.823333999999932,68.250548999999978],[-78.841948999999886,68.240540000000124],[-79.020553999999947,68.169144000000074]],[[-100.07472200000001,68.349716000000114],[-100.08640299999996,68.296097000000088],[-100.09166700000003,68.284987999999998],[-100.09944200000001,68.278595000000053],[-100.11221299999994,68.276382000000069],[-100.12832600000002,68.278320000000065],[-100.14028899999994,68.281661999999983],[-100.16443600000002,68.288589000000059],[-100.20056199999999,68.299149],[-100.22693600000002,68.316086000000041],[-100.23082699999992,68.319717000000082],[-100.21556099999998,68.318603999999993],[-100.20249899999988,68.319717000000082],[-100.19110099999995,68.322220000000073],[-100.1183319999999,68.347214000000008],[-100.11000100000001,68.352478000000019],[-100.08583099999998,68.368866000000082],[-100.07668299999989,68.359711000000004],[-100.07444799999996,68.354980000000069],[-100.07472200000001,68.349716000000114]],[[-82.05999799999995,68.306091000000094],[-82.072509999999966,68.303040000000067],[-82.271117999999944,68.338593000000117],[-82.312774999999988,68.349151999999947],[-82.326675000000023,68.353591999999992],[-82.33805799999999,68.358322000000044],[-82.344451999999876,68.362762000000032],[-82.345550999999944,68.36775200000011],[-82.333327999999995,68.371917999999994],[-82.230559999999969,68.385543999999982],[-82.216949,68.384155000000135],[-82.135558999999944,68.372756999999979],[-82.012512000000015,68.350815000000068],[-82.001113999999973,68.34637500000008],[-81.99722300000002,68.34137000000004],[-82.010009999999909,68.332764000000111],[-82.05999799999995,68.306091000000094]],[[-111.11444099999994,68.405823000000055],[-111.12832600000002,68.404984000000127],[-111.13751199999996,68.408599999999979],[-111.141953,68.413315000000011],[-111.14890300000002,68.428863999999919],[-111.14917000000003,68.439972000000125],[-111.141953,68.444976999999994],[-111.13054699999992,68.447479000000044],[-111.11527999999998,68.447754000000089],[-111.09861799999999,68.446930000000123],[-111.08249699999993,68.44470200000012],[-111.07611099999991,68.436919999999986],[-111.08416699999998,68.424988000000042],[-111.10582699999998,68.409988000000055],[-111.11444099999994,68.405823000000055]],[[-99.045273000000009,68.423874000000069],[-99.054992999999911,68.408324999999991],[-99.147781000000009,68.442200000000071],[-99.154723999999987,68.446365000000071],[-99.159163999999919,68.451096000000007],[-99.149733999999853,68.455261000000007],[-99.12110899999999,68.454987000000074],[-99.105269999999962,68.453048999999965],[-99.087219000000005,68.449416999999983],[-99.045273000000009,68.423874000000069]],[[-74.162216000000001,68.246093999999971],[-74.190552000000025,68.242477000000008],[-74.20777899999996,68.243317000000047],[-74.221114999999998,68.247208000000114],[-74.228881999999942,68.250823999999966],[-74.244155999999862,68.261383000000023],[-74.260559000000001,68.273314999999968],[-74.388610999999969,68.398330999999985],[-74.399733999999967,68.42025799999999],[-74.402221999999938,68.427765000000136],[-74.400283999999999,68.43414300000012],[-74.393065999999919,68.445251000000098],[-74.376937999999882,68.459717000000126],[-74.360275000000001,68.463882000000126],[-74.340835999999911,68.462493999999992],[-74.307769999999948,68.461655000000064],[-74.293883999999991,68.460541000000092],[-74.279448999999943,68.458328000000108],[-74.269729999999868,68.454712000000029],[-74.217498999999862,68.426086000000112],[-74.198043999999982,68.414992999999924],[-74.079452999999944,68.338593000000117],[-74.074722000000008,68.330825999999945],[-74.077498999999989,68.325546000000088],[-74.144454999999937,68.254440000000045],[-74.149733999999853,68.25],[-74.162216000000001,68.246093999999971]],[[-100.71056399999998,68.402480999999966],[-100.72416699999997,68.401657],[-100.78943599999997,68.409988000000055],[-100.88971699999996,68.45277400000009],[-100.88027999999997,68.457214000000135],[-100.84889199999992,68.464996000000099],[-100.83029199999999,68.468596999999932],[-100.79332699999986,68.468872000000147],[-100.78611799999999,68.464706000000092],[-100.71806300000003,68.411926000000051],[-100.71305799999999,68.407486000000006],[-100.71056399999998,68.402480999999966]],[[-110.86250299999995,68.474152000000061],[-110.92610199999996,68.465820000000065],[-111.05444299999999,68.469711000000132],[-111.08833299999998,68.473311999999964],[-111.09750400000001,68.477203000000031],[-111.09750400000001,68.482757999999933],[-111.09249899999998,68.487198000000149],[-111.08528099999995,68.492203000000018],[-111.07528699999995,68.495529000000033],[-110.984734,68.515549000000078],[-110.82167099999998,68.54803499999997],[-110.80332899999996,68.546371000000136],[-110.79222099999998,68.543319999999937],[-110.76390100000003,68.533600000000035],[-110.74582700000002,68.526382000000069],[-110.69833399999999,68.491364000000033],[-110.69611399999991,68.486374000000012],[-110.70889299999988,68.484711000000061],[-110.72833300000002,68.484421000000054],[-110.79499799999996,68.479980000000126],[-110.86250299999995,68.474152000000061]],[[-110.58693700000003,68.524155000000007],[-110.625,68.519440000000145],[-110.6600039999999,68.521927000000005],[-110.72112299999998,68.531097000000102],[-110.73249800000002,68.534149000000014],[-110.74610899999999,68.542480000000069],[-110.75974300000001,68.55664100000007],[-110.76194800000002,68.561645999999939],[-110.75473,68.566665999999998],[-110.63861099999997,68.569443000000092],[-110.62832600000002,68.559143000000006],[-110.52971600000001,68.54803499999997],[-110.520554,68.544144000000074],[-110.51834100000002,68.539154000000053],[-110.52722199999988,68.534987999999942],[-110.53859699999992,68.532486000000063],[-110.58693700000003,68.524155000000007]],[[-104.54527300000001,68.396102999999982],[-104.58667000000003,68.394440000000088],[-104.64666699999998,68.395827999999995],[-104.69332900000001,68.402480999999966],[-104.708618,68.40525800000006],[-104.75974299999996,68.418045000000063],[-104.88305699999995,68.449996999999996],[-104.91915899999992,68.459991000000059],[-104.9375,68.46748400000007],[-105.08167999999995,68.546371000000136],[-105.04415899999998,68.562759000000028],[-105.024719,68.570540999999992],[-105.01390100000003,68.573318000000086],[-104.98999000000003,68.57748400000014],[-104.93859900000001,68.583327999999995],[-104.91000399999996,68.583878000000027],[-104.76167299999997,68.582764000000054],[-104.74610899999993,68.582214000000022],[-104.71193699999998,68.578597999999943],[-104.682503,68.57388300000008],[-104.55332899999996,68.537201000000096],[-104.52999899999992,68.530548000000124],[-104.50917099999992,68.523315000000139],[-104.48277299999995,68.511658000000011],[-104.46916199999998,68.503326000000015],[-104.46362299999998,68.498871000000008],[-104.44915799999995,68.485260000000039],[-104.44055200000003,68.476089000000059],[-104.42777999999987,68.456940000000031],[-104.42527799999999,68.441360000000032],[-104.426941,68.435806000000014],[-104.43083199999995,68.429703000000075],[-104.43499799999995,68.423599000000024],[-104.44138299999997,68.417206000000078],[-104.45111099999991,68.413315000000011],[-104.48332199999999,68.404709000000082],[-104.51917299999997,68.398330999999985],[-104.54527300000001,68.396102999999982]],[[-105.139183,68.53637700000013],[-105.12609900000001,68.533325000000048],[-105.11305199999998,68.534424000000001],[-105.10109699999998,68.536652000000004],[-105.08693699999998,68.536926000000108],[-105.07861300000002,68.533051000000114],[-105.06639099999995,68.519149999999968],[-105.05972300000002,68.509430000000066],[-105.05888400000003,68.504166000000055],[-105.06833599999999,68.500274999999988],[-105.08612099999999,68.502777000000037],[-105.11193800000001,68.508881000000088],[-105.23361199999994,68.541091999999992],[-105.24416400000001,68.544708000000071],[-105.29110700000001,68.576935000000049],[-105.29222099999998,68.582214000000022],[-105.28138699999994,68.584991000000116],[-105.25611900000001,68.588318000000015],[-105.24305700000002,68.589705999999978],[-105.228882,68.589980999999966],[-105.21112099999993,68.587769000000094],[-105.18582200000003,68.580826000000116],[-105.18611099999998,68.576660000000004],[-105.18167099999994,68.566665999999998],[-105.17832900000002,68.561645999999939],[-105.139183,68.53637700000013]],[[-113.78611799999999,68.582764000000054],[-113.80166599999995,68.58248900000001],[-113.85249299999998,68.584152000000131],[-113.88945000000001,68.586929000000055],[-113.93138099999999,68.593872000000033],[-113.95259099999987,68.597389000000078],[-113.95966299999998,68.603195000000142],[-113.96611000000001,68.611099000000081],[-113.95667300000002,68.614699999999914],[-113.94248999999996,68.615814000000114],[-113.91388699999999,68.615814000000114],[-113.89972699999998,68.616928000000087],[-113.83693700000003,68.608871000000079],[-113.80027799999999,68.606093999999985],[-113.78611799999999,68.60386699999998],[-113.77667200000002,68.60026600000009],[-113.76194800000002,68.592209000000082],[-113.761124,68.586655000000121],[-113.77223199999997,68.583878000000027],[-113.78611799999999,68.582764000000054]],[[-100.74054699999999,68.596375000000023],[-100.78388999999993,68.594437000000084],[-100.86805699999991,68.603043000000014],[-100.88249200000001,68.611374000000069],[-100.87666300000001,68.616379000000109],[-100.86527999999998,68.619141000000013],[-100.85305800000003,68.620818999999983],[-100.83972199999999,68.62164300000012],[-100.81388900000002,68.619141000000013],[-100.75556899999992,68.607758000000047],[-100.74082899999996,68.604706000000078],[-100.73361199999994,68.600540000000024],[-100.74054699999999,68.596375000000023]],[[-78.468886999999995,68.563873000000001],[-78.474441999999897,68.55831900000004],[-78.482223999999917,68.553313999999943],[-78.503066999999987,68.545532000000037],[-78.530837999999903,68.541091999999992],[-78.545836999999949,68.540817000000004],[-78.562209999999993,68.541930999999977],[-78.599227999999925,68.550644000000034],[-78.614554999999939,68.553650000000061],[-78.638901000000033,68.558028999999976],[-78.654723999999987,68.558594000000028],[-78.668883999999991,68.554153000000099],[-78.724715999999944,68.521927000000005],[-78.715835999999911,68.515823000000012],[-78.691375999999991,68.509155000000021],[-78.674438000000009,68.509720000000073],[-78.653335999999967,68.512496999999939],[-78.636123999999938,68.513046000000088],[-78.621947999999975,68.509720000000073],[-78.617615000000001,68.507217000000082],[-78.610275000000001,68.502213000000097],[-78.610824999999977,68.498032000000023],[-78.618056999999965,68.492203000000018],[-78.705565999999976,68.451660000000118],[-78.716110000000015,68.447754000000089],[-78.743057000000022,68.442748999999992],[-78.776672000000019,68.439147999999989],[-78.795272999999952,68.438583000000108],[-78.813048999999921,68.438873000000115],[-78.828063999999983,68.440811000000053],[-78.861663999999962,68.446365000000071],[-78.876389000000017,68.450546000000145],[-78.959732000000031,68.474700999999982],[-78.946105999999986,68.508041000000048],[-78.943328999999949,68.511932000000115],[-78.936935000000005,68.516388000000006],[-78.822784000000013,68.547759999999982],[-78.809432999999956,68.550537000000077],[-78.791672000000005,68.550262000000032],[-78.759170999999981,68.54803499999997],[-78.743880999999988,68.546097000000032],[-78.723891999999978,68.547484999999938],[-78.704177999999899,68.554703000000131],[-78.698883000000023,68.558028999999976],[-78.688889000000017,68.564697000000137],[-78.670837000000006,68.578872999999987],[-78.668609999999944,68.583327999999995],[-78.672774999999945,68.58859300000006],[-78.680557000000022,68.593323000000112],[-78.693054000000018,68.596939000000134],[-78.705841000000021,68.600540000000024],[-78.784163999999976,68.618590999999981],[-78.851395000000025,68.634155000000078],[-78.894454999999994,68.646378000000141],[-78.89805599999994,68.64888000000002],[-78.889724999999942,68.652771000000087],[-78.863892000000021,68.659714000000122],[-78.837783999999886,68.661102000000028],[-78.720001000000025,68.657211000000132],[-78.689437999999939,68.653320000000065],[-78.495834000000002,68.627762000000132],[-78.481948999999929,68.624985000000038],[-78.469451999999933,68.621093999999971],[-78.460555999999997,68.617203000000075],[-78.467223999999987,68.569153000000085],[-78.468886999999995,68.563873000000001]],[[-74.768889999999999,68.673874000000012],[-74.756667999999991,68.672760000000039],[-74.65583799999996,68.65498400000007],[-74.648346000000004,68.652206000000092],[-74.522231999999974,68.565262000000018],[-74.518340999999907,68.558594000000028],[-74.531951999999876,68.552765000000022],[-74.551392000000021,68.550537000000077],[-74.586944999999957,68.548874000000126],[-74.726668999999902,68.556091000000038],[-74.742767000000015,68.557480000000055],[-74.807219999999916,68.563599000000067],[-74.821945000000028,68.56581099999994],[-74.833892999999989,68.569717000000026],[-74.84333799999996,68.575821000000076],[-74.870543999999995,68.598877000000073],[-74.883056999999894,68.61303700000002],[-74.890288999999996,68.624985000000038],[-74.805832000000009,68.668868999999972],[-74.796111999999994,68.671646000000067],[-74.787216000000001,68.673035000000027],[-74.779998999999975,68.673874000000012],[-74.77194199999991,68.673035000000027],[-74.768889999999999,68.673874000000012]],[[-114.04723399999995,68.613602000000014],[-114.06139399999995,68.612488000000042],[-114.075287,68.614699999999914],[-114.10193600000002,68.625809000000004],[-114.12666299999995,68.637206999999989],[-114.14890299999996,68.649428999999998],[-114.16166699999991,68.658035000000098],[-114.18998699999986,68.680266999999958],[-114.18639400000001,68.683594000000085],[-114.15387699999991,68.679703000000018],[-114.141953,68.676925999999924],[-114.14111299999996,68.671097000000088],[-114.05638099999987,68.635818000000029],[-114.04888900000003,68.631927000000132],[-114.04167200000001,68.627762000000132],[-114.03778099999994,68.616928000000087],[-114.04723399999995,68.613602000000014]],[[-74.811385999999914,68.320541000000048],[-74.817504999999926,68.318603999999993],[-75,68.333344000000125],[-75.002227999999945,68.333603000000039],[-75.008346999999958,68.337204000000099],[-75.010284000000013,68.346649000000014],[-75.005004999999926,68.353591999999992],[-75.002791999999999,68.35914600000001],[-75.00140399999998,68.366378999999995],[-75.015014999999948,68.379700000000128],[-75.029174999999952,68.390549000000021],[-75.037505999999951,68.394714000000022],[-75.081679999999892,68.404984000000127],[-75.10943599999996,68.406937000000084],[-75.138061999999991,68.409988000000055],[-75.153060999999866,68.413040000000024],[-75.241378999999995,68.436371000000065],[-75.263900999999919,68.444976999999994],[-75.294723999999974,68.457763999999997],[-75.369995000000017,68.489700000000028],[-75.396118000000001,68.503601000000003],[-75.416397000000018,68.518051000000128],[-75.416397000000018,68.524429000000112],[-75.396956999999873,68.611099000000081],[-75.389175000000023,68.62303200000008],[-75.307770000000005,68.694702000000063],[-75.299727999999959,68.700546000000088],[-75.280562999999972,68.709717000000069],[-75.254729999999881,68.717484000000013],[-75.239440999999999,68.718048000000124],[-75.014450000000011,68.677200000000028],[-75,68.672241000000099],[-74.942764000000011,68.576096000000064],[-74.938323999999909,68.571655000000135],[-74.931380999999931,68.566665999999998],[-74.836945000000014,68.511658000000011],[-74.801940999999999,68.501099000000124],[-74.785004000000015,68.494705000000067],[-74.780288999999982,68.490265000000079],[-74.772232000000031,68.479980000000126],[-74.768341000000021,68.473311999999964],[-74.776397999999915,68.410537999999917],[-74.811385999999914,68.320541000000048]],[[-84.808043999999938,68.763885000000016],[-84.821395999999879,68.763611000000083],[-84.835830999999985,68.766662999999994],[-84.939163000000008,68.793594000000041],[-84.907776000000013,68.803589000000102],[-84.895279000000016,68.80720500000001],[-84.882492000000013,68.809707999999944],[-84.855835000000013,68.810806000000014],[-84.841385000000002,68.807479999999998],[-84.837219000000005,68.802765000000136],[-84.837783999999999,68.79693600000013],[-84.801665999999955,68.769150000000081],[-84.808043999999938,68.763885000000016]],[[-68.110275000000001,68.78276100000005],[-67.807494999999903,68.733597000000032],[-67.781676999999945,68.729155999999932],[-67.679169000000002,68.711379999999963],[-67.668335000000013,68.707214000000079],[-67.661391999999921,68.701935000000105],[-67.662216000000001,68.698317999999972],[-67.676666000000012,68.695816000000093],[-67.850554999999929,68.697754000000032],[-67.869720000000029,68.69859299999996],[-67.897781000000009,68.704987000000017],[-67.918609999999887,68.712493999999936],[-67.951400999999976,68.721649000000014],[-68.039169000000015,68.738037000000077],[-68.188323999999909,68.763885000000016],[-68.306106999999997,68.779434000000094],[-68.323623999999995,68.779984000000127],[-68.339995999999985,68.778594999999939],[-68.352492999999981,68.775543000000027],[-68.367492999999854,68.774994000000106],[-68.433608999999933,68.781097000000045],[-68.451400999999976,68.783875000000023],[-68.457779000000016,68.785812000000078],[-68.459441999999967,68.791092000000106],[-68.455275999999969,68.802199999999914],[-68.450835999999867,68.80720500000001],[-68.439163000000008,68.812485000000038],[-68.428328999999962,68.813034000000016],[-68.418899999999894,68.810257000000092],[-68.375548999999921,68.808029000000147],[-68.241942999999935,68.798874000000069],[-68.224716000000001,68.797485000000108],[-68.110275000000001,68.78276100000005]],[[-101.83112299999999,68.566940000000102],[-101.84555099999989,68.566665999999998],[-101.86028299999998,68.569717000000026],[-101.88527699999986,68.576385000000016],[-101.90527299999991,68.583878000000027],[-102.00583599999999,68.613875999999948],[-102.112213,68.62359600000002],[-102.23000300000001,68.64027399999992],[-102.254997,68.646942000000081],[-102.31639100000001,68.672211000000061],[-102.3125,68.688583000000051],[-102.21665999999999,68.718322999999998],[-102.14862099999999,68.734984999999938],[-102.13639799999993,68.736923000000104],[-102.11389200000002,68.742477000000065],[-102.09249899999998,68.748871000000122],[-102.073059,68.756943000000092],[-102.05638099999993,68.768051000000071],[-102.05166600000001,68.773880000000077],[-102.04943799999995,68.779434000000094],[-102.04972799999996,68.784714000000008],[-102.05555699999996,68.794434000000081],[-102.05555699999996,68.799713000000054],[-102.05082700000003,68.805542000000059],[-102.04276999999996,68.811096000000077],[-102.02306399999992,68.819443000000035],[-101.99833699999999,68.823044000000095],[-101.98500099999995,68.824158000000068],[-101.95612299999999,68.824158000000068],[-101.93943799999994,68.822494999999947],[-101.9119419999999,68.816086000000098],[-101.77861000000001,68.783875000000023],[-101.69387799999993,68.768051000000071],[-101.69999699999994,68.737762000000032],[-101.68055699999996,68.672484999999995],[-101.68250299999994,68.661652000000061],[-101.701683,68.637772000000041],[-101.83112299999999,68.566940000000102]],[[-102.60082999999997,68.813309000000004],[-102.60749799999996,68.80914300000012],[-102.69695299999995,68.813034000000016],[-102.70722999999992,68.816666000000112],[-102.68888900000002,68.833328000000108],[-102.67859599999997,68.836928999999998],[-102.64055599999995,68.841934000000037],[-102.61277799999993,68.84304800000001],[-102.59889199999986,68.841095000000053],[-102.60221899999999,68.834152000000074],[-102.60082999999997,68.813309000000004]],[[-89.944442999999978,68.662200999999982],[-89.956389999999942,68.661652000000061],[-89.974166999999966,68.705826000000002],[-89.999160999999958,68.730819999999937],[-90.017226999999934,68.740540000000067],[-90.022507000000019,68.74581900000004],[-90.027495999999985,68.752486999999974],[-90.027785999999992,68.758606000000043],[-90.025557999999933,68.771927000000005],[-90.00306699999993,68.806641000000013],[-89.958618000000001,68.838042999999971],[-89.944442999999978,68.847488000000055],[-89.931945999999982,68.852203000000088],[-89.921935999999903,68.853867000000093],[-89.914443999999946,68.853043000000127],[-89.781677000000002,68.766662999999994],[-89.784163999999919,68.760818000000086],[-89.791381999999999,68.752486999999974],[-89.808884000000035,68.733322000000044],[-89.857498000000021,68.700546000000088],[-89.877486999999917,68.690810999999997],[-89.944442999999978,68.662200999999982]],[[-114.35082999999997,68.871643000000063],[-114.37917299999992,68.86943100000002],[-114.39639299999999,68.869705000000124],[-114.429169,68.87359600000002],[-114.45333900000003,68.879425000000026],[-114.46305799999999,68.882751000000042],[-114.468613,68.887206999999989],[-114.47165699999999,68.892487000000017],[-114.46056399999998,68.895264000000111],[-114.44444299999998,68.896103000000096],[-114.424713,68.896942000000024],[-114.37609899999995,68.893600000000106],[-114.34084300000001,68.890549000000078],[-114.32888800000001,68.887496999999996],[-114.32333399999999,68.883041000000048],[-114.32861299999996,68.87692300000009],[-114.33805799999993,68.87359600000002],[-114.35082999999997,68.871643000000063]],[[-67.847777999999948,68.851928999999984],[-67.863891999999964,68.849425999999994],[-67.883056999999951,68.849990999999989],[-67.897232000000031,68.853043000000127],[-67.908051,68.857208000000128],[-67.956389999999942,68.915268000000026],[-67.96055599999994,68.922484999999995],[-67.96055599999994,68.929977000000065],[-67.954726999999934,68.935806000000127],[-67.946654999999964,68.940810999999997],[-67.938048999999978,68.944427000000019],[-67.923889000000031,68.94859300000013],[-67.892226999999991,68.951660000000004],[-67.876388999999961,68.949417000000096],[-67.869445999999982,68.944138000000066],[-67.83944699999995,68.911926000000108],[-67.831389999999999,68.875809000000118],[-67.833068999999909,68.861374000000012],[-67.837509000000011,68.856368999999972],[-67.847777999999948,68.851928999999984]],[[-85.341675000000009,68.983596999999975],[-85.351669000000015,68.981094000000041],[-85.379165999999941,68.981934000000081],[-85.407227000000034,68.984420999999941],[-85.437209999999993,68.991928000000087],[-85.446944999999971,68.996368000000075],[-85.451400999999976,69.001099000000011],[-85.453063999999983,69.005829000000062],[-85.44387799999987,69.010269000000108],[-85.418883999999991,69.009430000000123],[-85.369995000000017,69.001937999999996],[-85.354720999999927,68.997757000000092],[-85.342223999999931,68.993317000000104],[-85.337783999999999,68.988585999999941],[-85.341675000000009,68.983596999999975]],[[-89.90834000000001,68.917755000000113],[-89.915008999999998,68.913315000000125],[-89.952498999999875,68.926376000000062],[-89.978332999999964,68.933867999999961],[-90,68.937575999999979],[-90.03195199999999,68.943039000000113],[-90.075561999999991,68.948028999999963],[-90.070557000000008,68.981934000000081],[-89.946380999999917,69.010269000000108],[-89.93360899999999,69.011658000000068],[-89.920837000000006,69.010269000000108],[-89.914169000000015,69.006943000000035],[-89.910277999999948,69.003052000000139],[-89.906661999999983,68.922484999999995],[-89.90834000000001,68.917755000000113]],[[-100.17555199999987,68.794708000000014],[-100.22083999999995,68.764435000000049],[-100.25446299999999,68.769150000000081],[-100.26917300000002,68.772217000000012],[-100.28555299999994,68.774155000000121],[-100.29915599999998,68.773315000000082],[-100.30860899999999,68.768875000000037],[-100.31639100000001,68.76249700000011],[-100.35749799999996,68.71527100000003],[-100.36694299999994,68.710541000000035],[-100.40722699999998,68.708038000000045],[-100.423607,68.709991000000002],[-100.61332700000003,68.758040999999992],[-100.62304699999999,68.761932000000058],[-100.62805199999997,68.766388000000006],[-100.632767,68.77609300000006],[-100.62581599999999,68.912490999999932],[-100.59999099999999,69.000548999999978],[-100.56111099999993,69.025818000000015],[-100.54360999999994,69.036652000000061],[-100.52916699999997,69.036652000000061],[-100.497772,69.034714000000122],[-100.41610700000001,69.026382000000126],[-100.38110399999994,69.020828000000108],[-100.35082999999997,69.014709000000096],[-100.34111000000001,69.010818000000029],[-100.33361799999994,69.006653000000028],[-100.32861300000002,69.00221300000004],[-100.32362399999994,68.996093999999971],[-100.32888800000001,68.989975000000129],[-100.33168000000001,68.984420999999941],[-100.33168000000001,68.979431000000091],[-100.326683,68.974701000000039],[-100.31276700000001,68.965820000000122],[-100.23889200000002,68.924149],[-100.22888199999994,68.920258000000103],[-100.21665999999988,68.916930999999977],[-100.20361300000002,68.915543000000071],[-100.16027799999995,68.915268000000026],[-100.14362299999993,68.913315000000125],[-100.13110399999999,68.909987999999998],[-100.12638899999996,68.905548000000124],[-100.17194399999994,68.799423000000047],[-100.17555199999987,68.794708000000014]],[[-85.119445999999925,69.014709000000096],[-85.132216999999855,69.013045999999974],[-85.166107000000011,69.031096999999988],[-85.170273000000009,69.035812000000021],[-85.155562999999972,69.056090999999981],[-85.14555399999989,69.058319000000097],[-85.095551,69.048035000000084],[-85.068343999999968,69.041367000000093],[-85.061385999999914,69.036652000000061],[-85.075835999999924,69.031096999999988],[-85.119445999999925,69.014709000000096]],[[-85.265288999999996,69.072495000000117],[-85.343886999999938,69.06303400000013],[-85.357773000000009,69.063598999999954],[-85.373046999999929,69.067763999999954],[-85.392776000000026,69.076660000000118],[-85.397232000000031,69.081374999999923],[-85.398894999999982,69.086104999999975],[-85.392501999999979,69.09137000000004],[-85.380279999999914,69.095825000000048],[-85.301392000000021,69.104155999999989],[-85.287780999999882,69.104706000000022],[-85.258895999999993,69.100266000000147],[-85.248885999999914,69.095825000000048],[-85.241942999999992,69.09137000000004],[-85.245543999999995,69.086104999999975],[-85.246658000000025,69.081374999999923],[-85.253066999999987,69.07609599999995],[-85.265288999999996,69.072495000000117]],[[-99.999434999999949,68.943588000000034],[-100.006958,68.939423000000033],[-100.021118,68.939696999999967],[-100.03778099999988,68.941360000000088],[-100.12000299999994,68.950821000000076],[-100.16166699999997,68.961380000000133],[-100.18138099999999,68.968872000000033],[-100.19860799999998,68.976929000000041],[-100.20612299999988,68.981094000000041],[-100.23693800000001,69.008605999999986],[-100.25666799999999,69.026656999999943],[-100.25890399999992,69.031661999999983],[-100.25862099999995,69.041931000000034],[-100.23693800000001,69.081374999999923],[-100.23194899999993,69.087203999999986],[-100.21333300000003,69.097214000000065],[-100.12970699999994,69.130264000000125],[-100.09555099999994,69.117477000000122],[-100.05304699999999,69.102478000000019],[-100.03333299999991,69.094711000000075],[-100.02834299999995,69.090271000000087],[-99.978881999999999,69.01388500000013],[-99.976943999999946,69.003876000000105],[-99.999434999999949,68.943588000000034]],[[-90.124709999999993,69.04942299999999],[-90.12721299999987,69.044982999999945],[-90.138061999999991,69.04525799999999],[-90.231948999999986,69.065536000000009],[-90.247498000000007,69.070267000000115],[-90.279175000000009,69.098328000000038],[-90.276397999999858,69.125809000000061],[-90.263335999999924,69.141936999999928],[-90.262511999999958,69.142761000000064],[-90.253890999999953,69.142761000000064],[-90.147231999999974,69.103591999999992],[-90.125,69.055542000000003],[-90.124709999999993,69.04942299999999]],[[-101.66416900000002,69.083603000000096],[-101.67749000000003,69.082764000000111],[-101.69027699999998,69.086104999999975],[-101.69554099999993,69.090546000000074],[-101.69833399999993,69.095261000000107],[-101.71806300000003,69.178588999999931],[-101.71584300000001,69.189147999999989],[-101.71112099999993,69.195251000000098],[-101.70361300000002,69.201660000000004],[-101.695267,69.206940000000031],[-101.68443300000001,69.210815000000025],[-101.65834000000001,69.213608000000022],[-101.60166899999996,69.215546000000131],[-101.55860899999999,69.216660000000104],[-101.53527799999995,69.209427000000119],[-101.5202789999999,69.197479000000101],[-101.497772,69.170258000000047],[-101.49500299999994,69.165543000000014],[-101.49500299999994,69.160262999999929],[-101.49999999999994,69.154434000000094],[-101.55555699999991,69.105255000000113],[-101.56360599999999,69.099990999999989],[-101.65139799999997,69.085541000000035],[-101.66416900000002,69.083603000000096]],[[-90.512512000000015,69.20248400000014],[-90.575561999999991,69.198593000000074],[-90.613327000000027,69.207763999999997],[-90.777221999999995,69.272491000000002],[-90.778609999999901,69.317215000000147],[-90.775832999999977,69.32998699999996],[-90.762512000000015,69.345534999999984],[-90.757232999999985,69.349426000000051],[-90.740829000000019,69.357483000000059],[-90.692215000000033,69.37164300000012],[-90.67332499999992,69.373871000000065],[-90.655272999999966,69.374695000000031],[-90.638610999999969,69.373871000000065],[-90.608046999999999,69.36970500000001],[-90.595001000000025,69.365264999999965],[-90.582503999999972,69.359711000000004],[-90.559433000000013,69.347214000000008],[-90.548614999999984,69.339981000000023],[-90.47193900000002,69.281097000000102],[-90.460830999999928,69.267487000000017],[-90.455565999999976,69.234711000000118],[-90.454452999999887,69.226379000000122],[-90.457503999999972,69.222763000000043],[-90.512512000000015,69.20248400000014]],[[-78.412215999999887,69.379700000000128],[-78.396392999999932,69.377761999999962],[-78.338608000000022,69.3808140000001],[-78.305832000000009,69.377761999999962],[-78.291381999999999,69.374985000000095],[-78.279723999999987,69.370255000000043],[-78.270844000000011,69.364150999999993],[-78.211394999999925,69.299987999999985],[-78.210830999999985,69.294434000000138],[-78.214447000000007,69.288315000000125],[-78.318344000000025,69.238312000000008],[-78.396118000000001,69.210541000000092],[-78.472504000000015,69.191360000000032],[-78.551392000000021,69.089157000000057],[-78.556655999999919,69.083603000000096],[-78.572234999999921,69.073317999999972],[-78.601943999999946,69.066086000000041],[-78.62777699999998,69.058593999999914],[-78.707229999999981,69.014709000000096],[-78.715011999999945,69.009720000000129],[-78.718062999999972,69.003601000000117],[-78.71665999999999,68.99664300000012],[-78.712783999999999,68.984985000000108],[-78.716110000000015,68.979156000000103],[-78.725280999999995,68.968872000000033],[-78.735000999999954,68.963608000000079],[-78.830291999999929,68.91304000000008],[-78.840285999999935,68.908600000000092],[-78.867492999999968,68.900543000000084],[-78.934433000000013,68.888596000000121],[-78.978881999999999,68.882477000000108],[-79.033614999999998,68.877197000000024],[-79.095275999999956,68.872757000000036],[-79.185271999999941,68.853317000000061],[-79.194152999999972,68.849425999999994],[-79.197219999999902,68.839157000000114],[-79.204726999999991,68.833878000000141],[-79.216949,68.829987000000074],[-79.238892000000021,68.827484000000084],[-79.287216000000001,68.83137499999998],[-79.353332999999964,68.844147000000021],[-79.366103999999893,68.847763000000043],[-79.386948000000018,68.856093999999985],[-79.392501999999865,68.860535000000084],[-79.396392999999932,68.864990000000091],[-79.400283999999999,68.871918000000051],[-79.402221999999938,68.923598999999967],[-79.379439999999931,68.931656000000089],[-79.353881999999999,68.943863000000079],[-79.330565999999976,68.958327999999995],[-79.309432999999956,68.973602000000085],[-79.303878999999938,68.978317000000118],[-79.292769999999962,68.995818999999983],[-79.283065999999963,69.012772000000041],[-79.238892000000021,69.066376000000048],[-79.227218999999991,69.076385000000073],[-79.216949,69.081100000000106],[-79.146117999999944,69.093597000000102],[-79.049438000000009,69.102203000000031],[-78.985824999999977,69.099990999999989],[-78.974441999999954,69.100266000000147],[-78.960280999999952,69.102478000000019],[-78.864165999999955,69.141098],[-78.855834999999956,69.145537999999988],[-78.749160999999901,69.261107999999979],[-78.721938999999963,69.310532000000023],[-78.726668999999902,69.318603999999993],[-78.724715999999944,69.331100000000049],[-78.722778000000005,69.336105000000089],[-78.716110000000015,69.34027100000003],[-78.606948999999986,69.371368000000132],[-78.577498999999989,69.377197000000137],[-78.568618999999956,69.378860000000032],[-78.489989999999977,69.391098000000113],[-78.47084000000001,69.392212000000086],[-78.458617999999944,69.38998400000014],[-78.412215999999887,69.379700000000128]],[[-135.28890999999993,69.309418000000051],[-135.29751599999997,69.304977000000122],[-135.33138999999989,69.322768999999994],[-135.34805299999994,69.330551000000128],[-135.38613899999996,69.344986000000063],[-135.39779699999997,69.348037999999974],[-135.44000199999999,69.355820000000108],[-135.48693800000001,69.362198000000092],[-135.51501500000001,69.367477000000065],[-135.52694699999995,69.370529000000147],[-135.55999800000001,69.380264000000068],[-135.56527700000004,69.384995000000004],[-135.56555199999997,69.390548999999965],[-135.55999800000001,69.396652000000131],[-135.54998799999998,69.399994000000049],[-135.52444499999996,69.403595000000109],[-135.50723300000004,69.403046000000131],[-135.42028799999997,69.397491000000059],[-135.365814,69.393599999999992],[-135.33776899999992,69.388596000000064],[-135.32806400000004,69.384995000000004],[-135.27224699999988,69.358321999999987],[-135.27139299999999,69.346938999999963],[-135.27722199999999,69.328322999999955],[-135.28332499999988,69.315262000000018],[-135.28890999999993,69.309418000000051]],[[-76.950835999999867,69.395263999999997],[-76.923614999999984,69.393599999999992],[-76.902221999999995,69.394713999999965],[-76.804168999999945,69.400269000000037],[-76.787780999999995,69.402480999999966],[-76.779174999999952,69.403870000000097],[-76.760833999999875,69.40914900000007],[-76.75140399999998,69.412766000000033],[-76.744445999999982,69.416931000000034],[-76.732772999999952,69.422760000000039],[-76.723327999999981,69.423599000000024],[-76.716400000000021,69.422211000000118],[-76.705840999999964,69.418868999999972],[-76.652221999999938,69.38638300000008],[-76.644729999999925,69.381363000000022],[-76.643889999999942,69.374420000000043],[-76.646666999999979,69.336929000000055],[-76.648894999999925,69.331940000000088],[-76.676391999999964,69.306091000000094],[-76.706389999999999,69.303588999999988],[-76.718886999999995,69.301651000000049],[-76.736937999999952,69.296371000000022],[-76.799438000000009,69.272491000000002],[-76.926392000000021,69.21748400000007],[-76.933608999999933,69.213882000000126],[-76.939986999999974,69.209152000000074],[-76.945830999999998,69.203598000000113],[-76.949431999999945,69.197479000000101],[-76.950561999999934,69.1933140000001],[-76.958892999999989,69.14248699999996],[-77.118057000000022,69.119431000000134],[-77.137787000000003,69.116652999999928],[-77.171660999999915,69.117202999999961],[-77.213622999999984,69.125809000000061],[-77.238601999999958,69.132750999999985],[-77.25778200000002,69.139984000000027],[-77.285827999999924,69.153594999999996],[-77.301392000000021,69.164153999999996],[-77.320281999999963,69.181366000000025],[-77.381942999999865,69.247482000000048],[-77.384170999999981,69.263610999999969],[-77.383330999999941,69.270538000000045],[-77.359725999999966,69.392761000000064],[-77.356383999999935,69.396652000000131],[-77.348342999999943,69.401657],[-77.288329999999917,69.417755],[-77.259170999999924,69.424698000000035],[-77.189162999999951,69.438309000000004],[-77.153610000000015,69.444427000000076],[-77.129989999999964,69.445251000000042],[-77.113616999999977,69.441650000000038],[-77.075561999999991,69.428314000000057],[-77.043335000000013,69.417206000000078],[-77.006957999999997,69.406372000000033],[-76.978332999999907,69.399994000000049],[-76.950835999999867,69.395263999999997]],[[-90.329453000000001,69.235809000000017],[-90.34722899999997,69.234711000000118],[-90.361388999999974,69.238312000000008],[-90.506392999999946,69.329162999999994],[-90.510009999999909,69.334717000000012],[-90.514450000000011,69.363876000000005],[-90.501113999999973,69.372482000000105],[-90.491669000000002,69.376647999999989],[-90.301940999999943,69.434418000000107],[-90.205275999999913,69.445816000000093],[-90.200835999999981,69.444427000000076],[-90.199722000000008,69.439148000000102],[-90.195267000000001,69.416931000000034],[-90.178604000000007,69.409988000000055],[-90.149733999999967,69.375534000000016],[-90.148345999999947,69.370255000000043],[-90.154723999999987,69.350815000000068],[-90.15972899999997,69.34526100000005],[-90.271666999999923,69.255554000000018],[-90.288605000000018,69.249419999999986],[-90.329453000000001,69.235809000000017]],[[-135.59222399999999,69.482208000000071],[-135.574432,69.446640000000059],[-135.61999499999996,69.468597000000102],[-135.62942499999991,69.472214000000065],[-135.66528299999999,69.481368999999916],[-135.69360399999999,69.486649],[-135.74081399999994,69.493041999999946],[-135.77835099999999,69.496094000000085],[-135.81054700000004,69.497756999999979],[-135.81555200000003,69.502487000000031],[-135.8125,69.508041000000048],[-135.79528799999997,69.516663000000051],[-135.78555299999999,69.519989000000066],[-135.77389500000004,69.52276599999999],[-135.76113899999996,69.524429000000055],[-135.74526999999995,69.524704000000099],[-135.66610700000001,69.505828999999949],[-135.59942599999999,69.486098999999967],[-135.59222399999999,69.482208000000071]],[[-101.05304699999999,69.504439999999988],[-101.00611900000001,69.486923000000104],[-101.00862099999995,69.450272000000041],[-101.12526700000001,69.401382000000126],[-101.21861299999989,69.371368000000132],[-101.23029299999996,69.368591000000038],[-101.24305700000002,69.371917999999994],[-101.26888999999994,69.378860000000032],[-101.27916700000003,69.382476999999994],[-101.271118,69.385818000000029],[-101.256958,69.386658000000068],[-101.24526999999995,69.389434999999992],[-101.2369379999999,69.394713999999965],[-101.23166699999996,69.400818000000015],[-101.18888899999996,69.469711000000075],[-101.18639400000001,69.475265999999976],[-101.22749299999992,69.495529000000033],[-101.23805199999998,69.499145999999996],[-101.2538909999999,69.500274999999988],[-101.266953,69.49832200000003],[-101.31749699999995,69.511107999999922],[-101.38445300000001,69.53276100000005],[-101.38722199999995,69.53776600000009],[-101.35833700000001,69.566940000000102],[-101.34973099999996,69.572495000000004],[-101.34056099999992,69.574707000000046],[-101.27555799999993,69.580826000000059],[-101.26167299999992,69.581665000000044],[-101.07305899999994,69.534988000000112],[-101.06276699999995,69.53137200000009],[-101.05999800000001,69.526382000000012],[-101.05304699999999,69.504439999999988]],[[-96.663054999999929,69.569717000000026],[-96.563323999999966,69.564147999999989],[-96.461120999999991,69.564147999999989],[-96.401671999999905,69.562759000000028],[-96.373610999999983,69.560806000000071],[-96.358886999999868,69.55720500000001],[-96.351943999999946,69.55304000000001],[-96.345275999999899,69.548599000000081],[-96.343886999999995,69.543594000000041],[-96.335555999999997,69.534424000000001],[-96.328613000000018,69.529983999999956],[-96.31639100000001,69.526382000000012],[-96.291671999999892,69.531097000000045],[-96.218063000000029,69.546371000000136],[-96.207229999999981,69.55053700000002],[-96.198333999999875,69.55664100000007],[-96.194442999999978,69.561920000000043],[-96.184432999999956,69.56721500000009],[-96.169723999999917,69.566940000000102],[-96.152221999999995,69.563599000000067],[-96.139998999999932,69.559982000000105],[-96.133330999999941,69.555542000000059],[-96.134445000000028,69.550262000000032],[-96.136397999999986,69.546097000000032],[-96.104171999999949,69.49832200000003],[-96.101104999999961,69.493041999999946],[-96.097778000000005,69.483322000000044],[-96.096114999999998,69.46804800000001],[-96.098617999999988,69.457763999999941],[-96.143065999999919,69.351379000000009],[-96.146666999999979,69.345824999999991],[-96.163329999999974,69.348037999999974],[-96.233886999999982,69.359711000000004],[-96.248610999999926,69.36303700000002],[-96.270003999999972,69.370818999999983],[-96.288604999999961,69.378860000000032],[-96.304992999999911,69.387497000000053],[-96.325286999999946,69.400269000000037],[-96.333617999999944,69.409714000000122],[-96.348343,69.423035000000084],[-96.382216999999912,69.44470200000012],[-96.401108000000022,69.453048999999908],[-96.430557000000022,69.459717000000069],[-96.461944999999957,69.462493999999992],[-96.507232999999985,69.464432000000102],[-96.524719000000005,69.467484000000013],[-96.548889000000031,69.474990999999989],[-96.630828999999949,69.512207000000103],[-96.654175000000009,69.524994000000106],[-96.736663999999962,69.576660000000004],[-96.735549999999989,69.581940000000031],[-96.721663999999919,69.58248900000001],[-96.691665999999884,69.581940000000031],[-96.676940999999999,69.578323000000125],[-96.663054999999929,69.569717000000026]],[[-67.310546999999929,69.549149000000114],[-67.324172999999973,69.533875000000023],[-67.331680000000006,69.53137200000009],[-67.351105000000018,69.530823000000112],[-67.388610999999969,69.533051000000057],[-67.473052999999936,69.533875000000023],[-67.492766999999958,69.533051000000057],[-67.53083799999996,69.52915999999999],[-67.545272999999895,69.525818000000072],[-67.552489999999977,69.523041000000148],[-67.549437999999896,69.519714000000022],[-67.507232999999985,69.514998999999989],[-67.499999999999943,69.512833000000057],[-67.49888599999997,69.51249700000011],[-67.489990000000034,69.508606000000043],[-67.481673999999941,69.500000000000114],[-67.492492999999854,69.495529000000033],[-67.50778200000002,69.494980000000112],[-67.573623999999995,69.506653000000085],[-67.58555599999994,69.50749200000007],[-67.598891999999978,69.506378000000097],[-67.626662999999951,69.500549000000092],[-67.642226999999878,69.500274999999988],[-67.731948999999929,69.513611000000083],[-67.744445999999925,69.515822999999955],[-67.749725000000012,69.521103000000039],[-67.739440999999943,69.540817000000118],[-67.730834999999956,69.544434000000081],[-67.723052999999993,69.545258000000047],[-67.707229999999981,69.544434000000081],[-67.686661000000015,69.541091999999992],[-67.674712999999883,69.540268000000026],[-67.663329999999974,69.54193099999992],[-67.578063999999983,69.559708000000001],[-67.550277999999935,69.565536000000122],[-67.541381999999999,69.569153000000028],[-67.531386999999995,69.576384999999959],[-67.527221999999995,69.581940000000031],[-67.48443599999996,69.590271000000143],[-67.425002999999947,69.588882000000126],[-67.394454999999994,69.584991000000059],[-67.367217999999923,69.578323000000125],[-67.321395999999993,69.560531999999967],[-67.314437999999996,69.55664100000007],[-67.309433000000013,69.552765000000022],[-67.310546999999929,69.549149000000114]],[[-96.760558999999944,69.54553199999998],[-96.770003999999915,69.543594000000041],[-96.786666999999909,69.54553199999998],[-96.868880999999874,69.555817000000104],[-96.883895999999993,69.55914300000012],[-96.888061999999991,69.563873000000001],[-96.902221999999995,69.5977630000001],[-96.900283999999999,69.602203000000088],[-96.870543999999995,69.601379000000122],[-96.851395000000025,69.599425999999994],[-96.840835999999967,69.597488000000055],[-96.81639100000001,69.590271000000143],[-96.809433000000013,69.585815000000025],[-96.766402999999968,69.554977000000065],[-96.761947999999961,69.55053700000002],[-96.760558999999944,69.54553199999998]],[[-91.110001000000011,69.549423000000047],[-91.119155999999975,69.548324999999977],[-91.140288999999939,69.560806000000071],[-91.142501999999922,69.564986999999974],[-91.136397999999986,69.575546000000031],[-91.121384000000035,69.593048000000067],[-91.108886999999925,69.602203000000088],[-91.037215999999944,69.614990000000091],[-90.969161999999926,69.618317000000047],[-90.959732000000031,69.61943100000002],[-90.937499999999943,69.616379000000109],[-90.923049999999932,69.611374000000069],[-90.920272999999952,69.608032000000094],[-90.919158999999979,69.606093999999985],[-90.930832000000009,69.599152000000061],[-91.110001000000011,69.549423000000047]],[[-133.93222000000003,69.560256999999922],[-133.948059,69.560256999999922],[-133.96304299999997,69.561371000000122],[-133.98611499999998,69.565536000000122],[-134.01196299999992,69.571381000000031],[-134.01666299999994,69.576096000000064],[-134.01419099999998,69.58248900000001],[-134.01028400000001,69.585541000000092],[-133.94528199999996,69.613312000000008],[-133.93362399999995,69.616089000000102],[-133.89446999999996,69.621093999999971],[-133.87997399999995,69.621918000000107],[-133.86581399999994,69.619141000000013],[-133.84472700000003,69.600815000000011],[-133.84695399999998,69.588882000000126],[-133.868042,69.56721500000009],[-133.87719699999997,69.565261999999962],[-133.93222000000003,69.560256999999922]],[[-95.488892000000021,69.565536000000122],[-95.452498999999932,69.550262000000032],[-95.375548999999978,69.517761000000121],[-95.366104000000007,69.513611000000083],[-95.359726000000023,69.509155000000021],[-95.362212999999997,69.498870999999951],[-95.402495999999985,69.383330999999998],[-95.515839000000028,69.330826000000116],[-95.527221999999995,69.327484000000027],[-95.539718999999991,69.325271999999927],[-95.606383999999935,69.319153000000085],[-95.620270000000005,69.318603999999993],[-95.634170999999924,69.318329000000119],[-95.692489999999964,69.319153000000085],[-95.706954999999994,69.319442999999922],[-95.722778000000005,69.320831000000055],[-95.736938000000009,69.324432000000058],[-95.741104000000007,69.329162999999994],[-95.741668999999945,69.334717000000012],[-95.731673999999941,69.373031999999967],[-95.727782999999874,69.378585999999927],[-95.716949,69.382750999999928],[-95.693877999999984,69.389434999999992],[-95.669158999999979,69.394150000000025],[-95.657776000000013,69.397217000000126],[-95.648346000000004,69.403320000000065],[-95.666397000000018,69.497756999999979],[-95.669158999999979,69.50749200000007],[-95.694442999999978,69.540268000000026],[-95.708053999999947,69.548874000000126],[-95.720001000000025,69.552765000000022],[-95.736663999999905,69.554977000000065],[-95.815826000000015,69.562759000000028],[-95.827498999999932,69.559708000000001],[-95.831680000000006,69.554153000000099],[-95.822784000000013,69.514435000000049],[-95.817504999999926,69.504990000000021],[-95.809432999999956,69.495529000000033],[-95.797225999999966,69.481658999999979],[-95.862212999999997,69.348037999999974],[-95.87222300000002,69.34275800000006],[-95.899445000000014,69.340820000000122],[-95.961670000000026,69.346375000000023],[-95.978881999999999,69.349426000000051],[-95.990829000000019,69.353317000000118],[-96.011123999999882,69.478043000000071],[-96.009734999999978,69.483047000000056],[-95.919998000000021,69.595260999999994],[-95.909164000000033,69.599425999999994],[-95.789443999999946,69.634155000000078],[-95.773894999999925,69.632751000000098],[-95.625548999999921,69.616089000000102],[-95.61221299999994,69.61442599999998],[-95.488892000000021,69.565536000000122]],[[-138.86721799999992,69.588318000000015],[-138.87332200000003,69.583054000000061],[-138.88305699999995,69.579437000000098],[-138.91000399999996,69.576096000000064],[-138.945831,69.57887299999993],[-138.97720300000003,69.583054000000061],[-138.99609399999997,69.584152000000131],[-139.02307099999996,69.580826000000059],[-139.03417999999999,69.578048999999965],[-139.05306999999999,69.570540999999992],[-139.12109399999997,69.52915999999999],[-139.137787,69.530823000000112],[-139.33248899999995,69.566085999999927],[-139.32998699999996,69.571655000000135],[-139.32223499999992,69.576096000000064],[-139.26779199999993,69.605820000000051],[-139.24221799999992,69.618317000000047],[-139.23275799999999,69.621918000000107],[-139.19973800000002,69.630538999999999],[-139.14416499999999,69.644989000000123],[-139.13305700000001,69.647766000000047],[-139.12027,69.649993999999992],[-139.10333299999996,69.648041000000035],[-139.02029399999998,69.633331000000112],[-138.95611600000001,69.619705000000124],[-138.92111199999994,69.610535000000084],[-138.88055399999996,69.596939000000134],[-138.872772,69.59275800000006],[-138.86721799999992,69.588318000000015]],[[-135.51724199999995,69.569153000000028],[-135.54305999999997,69.565536000000122],[-135.55721999999997,69.568054000000075],[-135.57138099999997,69.576934999999992],[-135.58111600000001,69.580551000000071],[-135.5883179999999,69.584717000000126],[-135.591095,69.589980999999966],[-135.58944699999989,69.596099999999979],[-135.58612099999993,69.601653999999996],[-135.57888800000001,69.606644000000017],[-135.55471799999992,69.620254999999986],[-135.51196299999998,69.641663000000108],[-135.50030500000003,69.644439999999975],[-135.43972799999995,69.65248100000008],[-135.42388900000003,69.65248100000008],[-135.40972899999991,69.649993999999992],[-135.39779699999997,69.646942000000081],[-135.40917999999999,69.634995000000117],[-135.4655459999999,69.585541000000092],[-135.474152,69.581375000000037],[-135.505585,69.571655000000135],[-135.51724199999995,69.569153000000028]],[[-67.920273000000009,69.521927000000005],[-67.935271999999941,69.518875000000094],[-68.002228000000002,69.526657000000057],[-68.049437999999952,69.533875000000023],[-68.238892000000021,69.570267000000058],[-68.248885999999914,69.596649000000127],[-68.078339000000028,69.665268000000083],[-67.970839999999896,69.701935000000049],[-67.959731999999974,69.704987000000017],[-67.946380999999974,69.706375000000094],[-67.895553999999947,69.708603000000039],[-67.889724999999999,69.708328000000051],[-67.869720000000029,69.700821000000076],[-67.821120999999948,69.676376000000062],[-67.831680000000006,69.601928999999984],[-67.910278000000005,69.526657000000057],[-67.920273000000009,69.521927000000005]],[[-134.26058999999987,68.733535999999958],[-134.23248299999989,68.706100000000106],[-134.22778299999993,68.701385000000073],[-134.22726399999999,68.696426000000088],[-134.23580900000002,68.694977000000108],[-134.26779199999999,68.695816000000093],[-134.35693400000002,68.703049000000078],[-134.38861099999997,68.707214000000079],[-134.436127,68.713608000000136],[-134.45748899999995,68.719147000000135],[-134.46194499999996,68.72387700000013],[-134.49554399999994,68.75221300000004],[-134.53640699999994,68.786926000000051],[-134.66946399999989,68.894440000000145],[-134.741669,68.935531999999967],[-134.75500499999987,68.944427000000019],[-134.76696799999991,68.953323000000125],[-134.78306599999996,68.965355000000045],[-134.82583599999998,68.97886699999998],[-134.85278299999999,68.976379000000009],[-134.89224200000001,68.971924000000001],[-134.90472399999999,68.969986000000006],[-134.91473400000001,68.96665999999999],[-134.92028799999997,68.960815000000082],[-134.91973899999994,68.949417000000096],[-134.91723599999995,68.944138000000066],[-134.91641199999998,68.926926000000094],[-134.92028799999997,68.914703000000031],[-134.92584199999999,68.908600000000092],[-134.93307499999997,68.903594999999996],[-134.94137599999999,68.899429000000112],[-134.96112099999999,68.892487000000017],[-134.97500599999995,68.891663000000051],[-134.99999999999994,68.892082000000073],[-135.00750699999998,68.892212000000029],[-135.12609900000001,68.899429000000112],[-135.14196800000002,68.901382000000069],[-135.167236,68.907211000000075],[-135.17083699999995,68.911102000000142],[-135.17806999999999,68.920822000000044],[-135.18084699999997,68.926085999999998],[-135.20165999999995,68.9327550000001],[-135.23330699999991,68.934708000000001],[-135.262787,68.933594000000028],[-135.36111500000004,68.926651000000049],[-135.39196799999996,68.926651000000049],[-135.42138699999987,68.928864000000033],[-135.444458,68.934981999999934],[-135.45388799999995,68.938582999999994],[-135.46081499999997,68.942749000000106],[-135.76916499999993,68.896378000000084],[-135.808044,68.895264000000111],[-135.843323,68.897217000000069],[-135.88247699999999,68.905258000000117],[-135.90585299999992,68.911376999999959],[-135.94805899999994,68.924698000000092],[-135.99527,68.942474000000061],[-136.00250199999999,68.946640000000002],[-136.00527999999997,68.951935000000049],[-135.98916599999995,69.029160000000104],[-135.98525999999998,69.035812000000021],[-135.97833299999996,69.040817000000061],[-135.96859699999999,69.044434000000024],[-135.95443699999998,69.045532000000094],[-135.88861099999991,69.026093000000003],[-135.85012800000004,69.007401000000129],[-135.83389299999993,68.998322000000144],[-135.82888799999989,68.993591000000038],[-135.80248999999992,68.989426000000037],[-135.77001999999999,68.989150999999993],[-135.64889499999998,68.991928000000087],[-135.63473499999998,68.993042000000059],[-135.57861300000002,69.006104000000107],[-135.52557399999995,69.021102999999982],[-135.51779199999999,69.023880000000077],[-135.529449,69.026931999999988],[-135.72082499999999,69.046097000000145],[-135.91583300000002,69.088318000000129],[-135.92748999999998,69.09137000000004],[-135.93472299999996,69.095535000000041],[-135.95138499999996,69.142761000000064],[-135.96582000000001,69.197754000000089],[-135.96722399999999,69.214706000000092],[-135.95944199999997,69.228317000000061],[-135.94695999999993,69.23942599999998],[-135.92611699999998,69.254715000000033],[-135.915009,69.257492000000127],[-135.89862099999999,69.255554000000018],[-135.89138800000001,69.251389000000017],[-135.82138099999986,69.215271000000143],[-135.75140399999998,69.179428000000087],[-135.74194299999999,69.175812000000064],[-135.66610700000001,69.146941999999967],[-135.65667699999995,69.143600000000049],[-135.56750499999993,69.11775200000011],[-135.55279499999989,69.116652999999928],[-135.48693800000001,69.113312000000121],[-135.49581899999993,69.124145999999996],[-135.60720799999996,69.145264000000054],[-135.6305539999999,69.151382000000012],[-135.64001499999995,69.154984000000127],[-135.81082199999997,69.242751999999996],[-135.83999600000004,69.259430000000066],[-135.85220300000003,69.268051000000014],[-135.85498000000001,69.273315000000139],[-135.8558349999999,69.284714000000065],[-135.85415599999999,69.290817000000004],[-135.84860199999997,69.296936000000017],[-135.8416749999999,69.301926000000094],[-135.83331299999998,69.306366000000082],[-135.80389400000001,69.316666000000055],[-135.79251099999999,69.319442999999922],[-135.57192999999995,69.33859300000006],[-135.5561219999999,69.338882000000012],[-135.48580900000002,69.33526599999999],[-135.44860799999998,69.332214000000022],[-135.41332999999997,69.323043999999982],[-135.39196799999996,69.309981999999991],[-135.38723800000002,69.30525200000011],[-135.379974,69.301086000000055],[-135.37027,69.297484999999995],[-135.32333399999999,69.285262999999986],[-135.25778200000002,69.271378000000084],[-135.24386599999997,69.268600000000106],[-135.22970599999996,69.266098000000056],[-135.18554699999993,69.258880999999917],[-135.17056300000002,69.257766999999944],[-135.16223099999996,69.261931999999945],[-135.15805099999994,69.268600000000106],[-135.15835599999997,69.274429000000112],[-135.16500899999994,69.279160000000047],[-135.17443800000001,69.283051000000114],[-135.23971599999987,69.3316650000001],[-135.28695699999992,69.413605000000018],[-135.28723100000002,69.419144000000017],[-135.28527800000001,69.425537000000134],[-135.278076,69.430542000000003],[-135.26834099999996,69.434143000000063],[-135.16082800000004,69.473602000000142],[-135.15084799999994,69.476929000000098],[-135.137787,69.478592000000049],[-134.99664300000001,69.48414600000001],[-134.91528299999993,69.485259999999982],[-134.69473300000004,69.481658999999979],[-134.67749000000003,69.480819999999994],[-134.64251699999988,69.477203000000031],[-134.62832599999996,69.474426000000108],[-134.60861199999988,69.468597000000102],[-134.570831,69.453873000000044],[-134.55917399999987,69.450821000000133],[-134.53112799999997,69.445526000000086],[-134.49609399999997,69.441925000000026],[-134.48165900000004,69.442748999999992],[-134.46859699999993,69.444427000000076],[-134.43832399999997,69.454712000000029],[-134.42083699999995,69.463042999999914],[-134.413635,69.468322999999998],[-134.40777600000001,69.474152000000004],[-134.40557899999993,69.480270000000132],[-134.40835600000003,69.491364000000033],[-134.41778599999992,69.500549000000092],[-134.43667600000003,69.508041000000048],[-134.44833399999999,69.511107999999922],[-134.46887200000003,69.542755000000056],[-134.40167199999996,69.638321000000133],[-134.40249600000004,69.649719000000005],[-134.406677,69.654434000000037],[-134.44277999999997,69.68081699999999],[-134.48580899999996,69.706100000000049],[-134.49054000000001,69.710815000000082],[-134.49304199999995,69.715819999999951],[-134.49108899999993,69.722214000000008],[-134.47637900000001,69.723037999999974],[-134.30972299999996,69.715819999999951],[-134.20388799999995,69.668868999999972],[-134.17748999999998,69.64027400000009],[-134.19638099999992,69.621093999999971],[-134.20388799999995,69.616089000000102],[-134.24026500000002,69.585815000000025],[-134.24472000000003,69.579162999999994],[-134.24472000000003,69.573318000000029],[-134.24221799999998,69.568054000000075],[-134.11331200000001,69.538879000000009],[-134.09860199999997,69.539978000000019],[-134.08111600000001,69.548324999999977],[-134.06195099999997,69.555817000000104],[-134.03750600000001,69.560256999999922],[-134.02001999999999,69.559417999999994],[-134.00836200000003,69.556091000000038],[-134.00140399999998,69.551926000000037],[-133.97778299999999,69.528594999999996],[-133.96112099999999,69.509155000000021],[-133.94723499999992,69.506378000000097],[-133.91833499999996,69.508331000000055],[-133.87914999999998,69.513321000000076],[-133.86749299999997,69.515822999999955],[-133.86026000000004,69.520828000000051],[-133.82250999999997,69.555252000000053],[-133.823151,69.5600740000001],[-133.81973300000004,69.564986999999974],[-133.801941,69.573608000000092],[-133.79168699999997,69.576934999999992],[-133.77835099999993,69.576384999999959],[-133.75057999999996,69.547485000000108],[-133.74832199999992,69.542205999999965],[-133.79861500000004,69.481094000000098],[-133.81805399999996,69.464157000000114],[-133.85055499999999,69.445816000000093],[-133.87692300000003,69.433044000000109],[-133.92083699999995,69.412201000000039],[-133.94137599999999,69.405258000000003],[-133.96444699999995,69.400269000000037],[-134.08554100000003,69.340546000000018],[-134.21112099999993,69.276092999999946],[-134.21832299999988,69.271103000000096],[-134.27557400000001,69.226089000000115],[-134.27999899999986,69.219437000000028],[-134.28222699999998,69.213318000000015],[-134.28195199999999,69.20748900000001],[-134.27722199999994,69.202773999999977],[-134.27471899999995,69.197754000000089],[-134.27444500000001,69.186096000000077],[-134.28030399999994,69.180267000000072],[-134.287781,69.175262000000032],[-134.38363599999997,69.11831699999999],[-134.39779699999997,69.117477000000122],[-134.44888300000002,69.119705000000067],[-134.47720300000003,69.118042000000116],[-134.53112799999997,69.112762000000089],[-134.5680539999999,69.106644000000131],[-134.58526599999999,69.098038000000031],[-134.67361500000004,69.017761000000007],[-134.67584199999993,69.01138300000008],[-134.675568,69.005829000000062],[-134.66973899999999,68.9727630000001],[-134.67166099999997,68.966385000000002],[-134.66665599999999,68.956100000000049],[-134.65280200000001,68.947754000000145],[-134.60665900000004,68.935256999999979],[-134.58831799999996,68.928040000000067],[-134.51419099999987,68.887496999999996],[-134.50723300000004,68.883041000000048],[-134.48858599999994,68.870254999999986],[-134.47470099999998,68.856093999999985],[-134.46417199999991,68.84248400000007],[-134.45693999999997,68.826934999999992],[-134.44750999999991,68.811920000000043],[-134.44027700000004,68.80192599999998],[-134.43112199999996,68.792755000000056],[-134.417236,68.784423999999944],[-134.39889499999998,68.777205999999978],[-134.37609899999995,68.770827999999995],[-134.3511049999999,68.764998999999989],[-134.29666099999992,68.754440000000102],[-134.28750599999995,68.75082400000008],[-134.28057899999999,68.746643000000006],[-134.26058999999987,68.733535999999958]],[[-102.14527900000002,69.648604999999975],[-102.16027800000001,69.648331000000042],[-102.17832900000002,69.651093000000003],[-102.21028099999995,69.662200999999982],[-102.22609699999992,69.670258000000103],[-102.23166700000002,69.674698000000149],[-102.24305699999996,69.694138000000123],[-102.243607,69.704436999999984],[-102.24137899999999,69.71026599999999],[-102.23416099999997,69.716660000000047],[-102.22556299999991,69.721924000000001],[-102.21584300000001,69.726654000000053],[-102.15778399999999,69.736099000000081],[-102.13474300000001,69.724701000000096],[-102.12943999999993,69.72026100000005],[-102.12332199999997,69.71276899999998],[-102.12026999999989,69.708038000000045],[-102.11721799999998,69.697753999999975],[-102.11554699999999,69.666655999999989],[-102.11805700000002,69.660812000000135],[-102.12277199999994,69.65498400000007],[-102.13221699999991,69.650542999999971],[-102.14527900000002,69.648604999999975]],[[-77.946655000000021,69.646652000000074],[-77.944992000000013,69.639709000000039],[-77.946105999999986,69.633331000000112],[-77.965835999999967,69.624985000000038],[-78.07028200000002,69.59275800000006],[-78.169997999999964,69.570540999999992],[-78.311934999999949,69.54304500000012],[-78.397780999999952,69.520828000000051],[-78.505004999999869,69.488876000000062],[-78.576401000000033,69.501663000000065],[-78.588057999999933,69.506103999999993],[-78.611388999999917,69.509430000000009],[-78.626098999999954,69.50999500000006],[-78.646117999999888,69.50999500000006],[-78.664443999999889,69.50749200000007],[-78.685271999999941,69.49832200000003],[-78.698043999999982,69.489151000000049],[-78.718886999999938,69.479980000000126],[-78.756957999999941,69.467484000000013],[-78.801940999999943,69.455826000000002],[-78.817504999999926,69.45277400000009],[-78.838608000000022,69.451385000000073],[-78.853058000000033,69.454163000000108],[-78.861938000000009,69.457489000000123],[-78.868331999999953,69.460541000000035],[-78.873885999999857,69.464706000000035],[-78.880279999999971,69.476929000000098],[-78.87860099999989,69.479980000000126],[-78.874160999999958,69.486923000000104],[-78.865004999999996,69.494980000000112],[-78.841385000000002,69.508041000000048],[-78.826110999999969,69.511657999999954],[-78.809722999999963,69.514160000000061],[-78.783324999999991,69.521103000000039],[-78.764175000000023,69.527205999999978],[-78.717772999999966,69.544708000000014],[-78.695266999999944,69.556931000000077],[-78.674438000000009,69.568329000000062],[-78.652785999999935,69.581940000000031],[-78.628051999999968,69.608597000000145],[-78.615554999999915,69.617477000000008],[-78.586394999999925,69.631927000000132],[-78.575835999999981,69.636383000000023],[-78.522506999999905,69.648331000000042],[-78.499724999999899,69.650542999999971],[-78.482772999999895,69.649428999999941],[-78.400283999999999,69.643326000000002],[-78.260833999999932,69.659987999999998],[-78.245270000000005,69.663605000000132],[-78.229445999999996,69.67164600000001],[-78.228057999999976,69.677475000000072],[-78.236938000000009,69.688583000000051],[-78.244995000000017,69.693313999999987],[-78.256957999999941,69.705825999999945],[-78.263625999999931,69.713608000000079],[-78.26916499999993,69.728043000000014],[-78.268615999999952,69.732208000000014],[-78.265838999999971,69.733871000000136],[-78.180557000000022,69.75221300000004],[-78.164168999999958,69.752486999999974],[-78.154174999999952,69.750549000000035],[-78.141953000000001,69.742477000000065],[-78.080001999999979,69.72943099999992],[-78.018341000000021,69.708328000000051],[-77.992767000000015,69.699417000000096],[-77.982773000000009,69.694702000000063],[-77.973891999999978,69.688583000000051],[-77.966110000000015,69.681655999999975],[-77.955565999999976,69.668319999999994],[-77.946655000000021,69.646652000000074]],[[-82.507781999999963,69.704987000000017],[-82.542770000000019,69.704163000000051],[-82.678878999999995,69.726379000000009],[-82.720001000000025,69.733321999999987],[-82.865004999999996,69.770827999999995],[-82.877776999999924,69.774994000000049],[-82.879439999999931,69.778595000000109],[-82.856383999999991,69.800261999999975],[-82.846664000000033,69.803040000000124],[-82.839171999999962,69.80386400000009],[-82.811661000000015,69.806090999999981],[-82.803054999999915,69.805817000000047],[-82.796111999999994,69.805251999999996],[-82.776108000000022,69.804153000000042],[-82.677779999999927,69.794707999999957],[-82.629990000000021,69.789153999999996],[-82.563889000000017,69.778595000000109],[-82.460281000000009,69.761658000000125],[-82.453063999999983,69.720534999999984],[-82.455001999999922,69.714432000000045],[-82.467223999999987,69.709990999999945],[-82.507781999999963,69.704987000000017]],[[-79.423049999999989,69.784988000000055],[-79.331680000000006,69.713318000000072],[-79.328338999999971,69.707214000000079],[-79.329452999999944,69.701385000000016],[-79.333892999999989,69.697478999999987],[-79.354720999999984,69.688034000000073],[-79.482223999999917,69.646103000000096],[-79.544997999999964,69.626647999999932],[-79.571670999999981,69.61943100000002],[-79.600280999999995,69.612761999999975],[-79.631667999999934,69.608871000000079],[-79.957503999999972,69.619979999999998],[-79.963333000000034,69.626373000000115],[-79.974166999999852,69.631652999999972],[-79.994995000000017,69.638596000000007],[-80.02194199999991,69.643599999999935],[-80.038054999999986,69.645263999999941],[-80.059432999999899,69.64387499999998],[-80.065552000000025,69.641663000000108],[-80.081954999999994,69.630538999999999],[-80.082779000000016,69.626923000000147],[-80.078887999999949,69.622208000000114],[-80.032776000000013,69.587204000000042],[-79.991378999999938,69.568878000000041],[-79.937774999999931,69.531937000000084],[-79.935546999999985,69.527205999999978],[-79.93638599999997,69.523604999999918],[-79.940276999999924,69.518875000000094],[-79.974441999999954,69.502213000000097],[-79.993880999999931,69.494431000000134],[-80.011948000000018,69.491652999999985],[-80.021117999999944,69.49275200000011],[-80.046111999999937,69.497756999999979],[-80.200561999999991,69.530823000000112],[-80.214721999999995,69.586655000000064],[-80.353606999999954,69.614700000000084],[-80.461944999999957,69.656372000000147],[-80.492767000000015,69.664993000000038],[-80.577788999999996,69.667480000000126],[-80.74360699999994,69.666092000000049],[-80.761123999999995,69.666930999999977],[-80.793334999999956,69.670258000000103],[-80.804442999999878,69.675537000000077],[-80.809433000000013,69.683044000000052],[-80.809433000000013,69.68942300000009],[-80.801392000000021,69.701096000000121],[-80.730835000000013,69.746368000000132],[-80.725006000000008,69.74914600000011],[-80.720275999999899,69.750549000000035],[-80.649733999999967,69.748596000000077],[-80.520003999999972,69.720825000000048],[-80.498610999999983,69.759719999999959],[-80.50111400000003,69.762497000000053],[-80.502791999999943,69.76638800000012],[-80.504455999999948,69.774994000000049],[-80.503066999999987,69.779984000000127],[-80.499999999999943,69.783324999999991],[-80.490554999999972,69.788589000000115],[-80.46665999999999,69.791931000000091],[-80.388901000000033,69.799988000000042],[-80.371384000000035,69.799149000000057],[-80.340285999999992,69.794707999999957],[-80.338607999999908,69.790542999999957],[-80.343063000000029,69.784149000000127],[-80.34445199999999,69.776931999999988],[-80.329726999999991,69.774155000000121],[-80.314712999999983,69.778045999999961],[-80.289444000000003,69.786652000000061],[-80.264175000000023,69.79525799999999],[-80.246657999999968,69.798599000000024],[-80.232773000000009,69.79942299999999],[-80.20666499999993,69.798035000000084],[-80.191665999999884,69.79525799999999],[-80.182769999999948,69.792755000000056],[-80.129165999999941,69.765549000000021],[-80.073058999999944,69.74971000000005],[-79.972778000000005,69.723312000000078],[-79.862777999999935,69.741088999999988],[-79.768065999999976,69.75277699999998],[-79.756392999999889,69.778869999999927],[-79.752501999999993,69.783599999999979],[-79.744720000000029,69.788589000000115],[-79.687209999999993,69.814697000000081],[-79.678329000000019,69.814423000000147],[-79.512787000000003,69.80693100000002],[-79.476943999999946,69.803589000000102],[-79.453888000000006,69.798874000000069],[-79.442489999999907,69.794983000000002],[-79.431670999999938,69.789703000000088],[-79.423049999999989,69.784988000000055]],[[-83.674437999999952,69.719986000000063],[-83.688598999999954,69.719436999999914],[-83.717772999999966,69.723312000000078],[-83.776947000000007,69.732758000000047],[-83.806945999999982,69.739426000000037],[-83.898894999999982,69.764434999999992],[-83.908614999999998,69.769150000000025],[-83.917220999999984,69.778595000000109],[-83.913054999999986,69.793320000000051],[-83.900833000000034,69.808318999999926],[-83.886948000000018,69.81860400000005],[-83.873885999999914,69.823044000000095],[-83.860274999999945,69.824432000000002],[-83.832503999999972,69.825272000000041],[-83.577498999999989,69.797760000000096],[-83.533324999999934,69.791366999999923],[-83.529174999999952,69.786652000000061],[-83.542220999999984,69.783324999999991],[-83.576675000000023,69.780823000000055],[-83.601944000000003,69.779984000000127],[-83.695830999999998,69.763884999999959],[-83.708618000000001,69.759429999999952],[-83.712783999999999,69.754440000000102],[-83.705840999999964,69.750000000000057],[-83.693329000000006,69.745529000000147],[-83.662506000000008,69.736923000000047],[-83.655838000000017,69.732208000000014],[-83.654175000000009,69.727203000000145],[-83.661117999999988,69.722214000000008],[-83.674437999999952,69.719986000000063]],[[-82.429442999999992,69.782210999999961],[-82.444153000000028,69.778320000000122],[-82.470551,69.781372000000033],[-82.513335999999867,69.788315000000011],[-82.526107999999965,69.790542999999957],[-82.551392000000021,69.796646000000123],[-82.564437999999996,69.800812000000008],[-82.688599000000011,69.850815000000125],[-82.674438000000009,69.874984999999981],[-82.673049999999989,69.875809000000118],[-82.660552999999993,69.876083000000051],[-82.636397999999986,69.871094000000085],[-82.555831999999953,69.860809000000131],[-82.517226999999934,69.854155999999989],[-82.446105999999986,69.822220000000129],[-82.436661000000015,69.817490000000078],[-82.428878999999938,69.812195000000031],[-82.426666000000012,69.799988000000042],[-82.425827000000027,69.793045000000063],[-82.426101999999958,69.786925999999994],[-82.429442999999992,69.782210999999961]],[[-91.520003999999915,69.731369000000086],[-91.535278000000005,69.726929000000041],[-91.549438000000009,69.727203000000145],[-91.560271999999884,69.728316999999947],[-91.725280999999995,69.784149000000127],[-91.735549999999989,69.789153999999996],[-91.733321999999873,69.791931000000091],[-91.475829999999974,69.875534000000073],[-91.449432000000002,69.879149999999981],[-91.433883999999978,69.880538999999942],[-91.419448999999986,69.879974000000118],[-91.409164000000033,69.874984999999981],[-91.456664999999987,69.774994000000049],[-91.463332999999977,69.763611000000026],[-91.470551,69.755554000000075],[-91.520003999999915,69.731369000000086]],[[-91.819167999999934,69.821655000000078],[-91.833892999999989,69.821105999999929],[-91.844727000000034,69.822220000000129],[-91.860001000000011,69.838593000000003],[-91.864166000000012,69.844146999999964],[-91.860549999999989,69.848877000000016],[-91.84944200000001,69.858871000000022],[-91.821120999999891,69.868042000000003],[-91.782501000000025,69.877762000000075],[-91.763901000000033,69.880264000000125],[-91.745543999999995,69.881653000000142],[-91.728607000000011,69.880813999999987],[-91.71305799999999,69.878310999999997],[-91.701110999999969,69.875259000000085],[-91.644454999999937,69.859421000000054],[-91.639724999999999,69.854980000000126],[-91.651671999999962,69.851089000000059],[-91.666397000000018,69.847487999999998],[-91.819167999999934,69.821655000000078]],[[-97.397781000000009,69.685532000000023],[-97.41194200000001,69.684708000000057],[-97.441939999999931,69.685532000000023],[-97.455841000000021,69.684708000000057],[-97.468338000000017,69.682480000000112],[-97.479720999999984,69.678864000000033],[-97.489440999999999,69.673874000000012],[-97.490279999999871,69.668594000000098],[-97.476944000000003,69.654709000000025],[-97.398346000000004,69.597488000000055],[-97.391388000000006,69.593323000000055],[-97.378875999999934,69.592484000000127],[-97.372771999999998,69.598328000000095],[-97.351943999999946,69.631362999999965],[-97.350829999999974,69.636658000000068],[-97.347504000000015,69.642212000000029],[-97.329726999999878,69.669708000000071],[-97.31639100000001,69.686645999999996],[-97.303878999999938,69.698317999999915],[-97.289168999999958,69.69802900000002],[-97.273894999999982,69.694702000000063],[-97.226395000000025,69.675537000000077],[-97.206954999999937,69.667480000000126],[-97.113892000000021,69.622208000000114],[-97.106948999999929,69.617751999999996],[-97.103607000000011,69.614150999999936],[-97.101944000000003,69.609146000000067],[-97.102782999999931,69.603867000000093],[-97.09944200000001,69.594147000000021],[-97.09056099999998,69.584991000000059],[-97.064437999999939,69.572769000000108],[-96.955565999999976,69.523315000000082],[-96.879165999999998,69.491364000000033],[-96.866942999999992,69.487762000000089],[-96.637786999999946,69.437194999999974],[-96.502501999999936,69.409714000000122],[-96.32028200000002,69.354705999999965],[-96.301391999999964,69.346648999999957],[-96.208892999999989,69.306931000000134],[-96.202224999999942,69.302765000000022],[-96.189986999999974,69.288879000000065],[-96.172226000000023,69.26527400000009],[-96.170546999999999,69.260544000000039],[-96.171935999999903,69.255264000000011],[-96.175551999999925,69.249709999999993],[-96.193329000000006,69.237488000000042],[-96.203339000000028,69.232482999999945],[-96.209732000000031,69.22665399999994],[-96.21305799999999,69.211105000000032],[-96.223617999999931,69.141936999999928],[-96.235000999999954,69.064148000000102],[-96.23361199999988,69.059418000000051],[-96.229720999999984,69.054703000000018],[-96.225554999999986,69.049987999999985],[-96.218886999999995,69.045822000000101],[-96.195266999999944,69.038315000000011],[-96.166396999999904,69.031371999999976],[-96.1324919999999,69.024994000000049],[-96.118880999999931,69.025542999999971],[-96.115279999999984,69.030823000000055],[-96.113891999999964,69.036102000000028],[-96.129990000000021,69.054703000000018],[-96.152221999999995,69.103043000000071],[-96.15695199999999,69.163315000000068],[-96.155838000000017,69.168594000000041],[-96.149444999999901,69.174423000000047],[-96.073623999999995,69.231658999999979],[-96.05972300000002,69.232208000000128],[-96.047774999999888,69.228317000000061],[-96.041107000000011,69.223877000000073],[-95.955565999999919,69.141936999999928],[-95.951675000000023,69.13749700000011],[-95.924438000000009,69.089432000000102],[-95.925827000000027,69.084427000000062],[-95.93472300000002,69.078323000000012],[-95.953612999999905,69.067215000000033],[-95.971389999999928,69.054976999999951],[-95.977782999999988,69.049149000000057],[-95.978881999999999,69.043868999999972],[-95.97084000000001,69.034714000000122],[-95.938599000000011,69.003876000000105],[-95.925551999999982,68.995255000000043],[-95.843886999999995,68.923035000000027],[-95.82028200000002,68.870254999999986],[-95.770554000000004,68.891098000000056],[-95.756957999999997,68.891373000000044],[-95.745833999999945,68.888596000000121],[-95.674163999999962,68.869980000000112],[-95.670272999999895,68.865540000000124],[-95.668609999999944,68.860535000000084],[-95.667495999999971,68.855545000000006],[-95.671386999999982,68.850266000000033],[-95.667220999999984,68.835266000000047],[-95.663329999999974,68.830826000000059],[-95.654175000000009,68.826659999999947],[-95.626098999999954,68.826659999999947],[-95.575835999999981,68.830276000000026],[-95.550277999999878,68.833054000000004],[-95.528335999999911,68.840271000000087],[-95.510284000000013,68.852478000000076],[-95.489989999999977,68.861649000000057],[-95.446655000000021,68.879149999999981],[-95.42471299999994,68.886658000000011],[-95.389998999999989,68.895264000000111],[-95.378052000000025,68.89776599999999],[-95.365004999999996,68.899155000000007],[-95.351395000000025,68.899429000000112],[-95.335555999999997,68.897217000000069],[-95.321395999999993,68.893600000000106],[-95.240279999999984,68.86692800000003],[-95.228881999999942,68.863037000000134],[-95.21055599999994,68.854706000000022],[-95.206954999999994,68.850266000000033],[-95.210830999999985,68.844711000000132],[-95.263061999999991,68.802765000000136],[-95.273055999999997,68.797485000000108],[-95.476395000000025,68.711929000000112],[-95.543610000000001,68.702484000000027],[-95.539992999999924,68.708038000000045],[-95.538895000000025,68.713318000000129],[-95.538895000000025,68.723312000000135],[-95.546386999999982,68.732483000000059],[-95.559433000000013,68.741364000000033],[-95.568344000000025,68.745529000000033],[-95.593886999999938,68.752777000000037],[-95.608046999999885,68.753326000000129],[-95.621932999999956,68.752777000000037],[-95.790558000000033,68.737198000000092],[-95.801666000000012,68.733870999999965],[-95.848343,68.669983000000116],[-95.859726000000023,68.653320000000065],[-95.988891999999964,68.62164300000012],[-96.000838999999928,68.61943100000002],[-96.14973399999991,68.55720500000001],[-96.256393000000003,68.503326000000015],[-96.262512000000015,68.497481999999991],[-96.264724999999885,68.487198000000149],[-96.270844000000011,68.481368999999972],[-96.291381999999942,68.473038000000031],[-96.30221599999993,68.469711000000132],[-96.313888999999961,68.467209000000025],[-96.503615999999909,68.446091000000138],[-96.530563000000029,68.444976999999994],[-96.717498999999918,68.474990999999989],[-96.768341000000021,68.485260000000039],[-96.913895000000025,68.518051000000128],[-96.928328999999962,68.521378000000084],[-97.094451999999876,68.539154000000053],[-97.095550999999944,68.534149000000014],[-97.098891999999978,68.528594999999996],[-97.11999499999996,68.520828000000051],[-97.130828999999949,68.517487000000017],[-97.142501999999979,68.514999000000046],[-97.154175000000009,68.512771999999984],[-97.181106999999997,68.511382999999967],[-97.460007000000019,68.534149000000014],[-97.475005999999951,68.535537999999974],[-97.506118999999956,68.541930999999977],[-97.553329000000019,68.55664100000007],[-97.574172999999917,68.564148000000046],[-97.583618000000001,68.568054000000075],[-97.667220999999927,68.60386699999998],[-97.727218999999991,68.63220199999995],[-97.918609999999944,68.675537000000134],[-98.020554000000004,68.693588000000091],[-98.035552999999936,68.694702000000063],[-98.049987999999985,68.694977000000108],[-98.062774999999988,68.693588000000091],[-98.078338999999971,68.683319000000097],[-98.083892999999989,68.677475000000072],[-98.09333799999996,68.672211000000061],[-98.104995999999971,68.669708000000128],[-98.11999499999996,68.670822000000101],[-98.129715000000033,68.674698000000149],[-98.240279999999984,68.720825000000048],[-98.261123999999938,68.733597000000032],[-98.281677000000002,68.746368000000132],[-98.290558000000033,68.755554000000075],[-98.292495999999971,68.760543999999982],[-98.291945999999939,68.765823000000125],[-98.286117999999931,68.771652000000131],[-98.269729999999981,68.783875000000023],[-98.260833999999932,68.789153999999996],[-98.249161000000015,68.800812000000008],[-98.243056999999965,68.811920000000043],[-98.244155999999975,68.822220000000129],[-98.263061999999991,68.829987000000074],[-98.275283999999886,68.833602999999982],[-98.369719999999973,68.857483000000116],[-98.383330999999941,68.859985000000052],[-98.408051,68.855820000000051],[-98.418609999999944,68.852478000000076],[-98.425003000000004,68.841370000000097],[-98.415282999999988,68.815262000000132],[-98.40194699999995,68.801650999999993],[-98.393615999999952,68.787201000000039],[-98.394729999999925,68.776932000000045],[-98.400283999999942,68.770827999999995],[-98.408614999999941,68.764708999999982],[-98.418609999999944,68.760543999999982],[-98.451110999999969,68.750000000000114],[-98.476395000000025,68.746933000000013],[-98.489990000000034,68.746094000000028],[-98.519454999999994,68.747481999999934],[-98.724715999999887,68.791092000000106],[-98.84722899999997,68.825546000000145],[-98.859436000000017,68.829163000000108],[-98.866394000000014,68.833328000000108],[-98.875548999999978,68.84248400000007],[-98.879714999999976,68.852203000000088],[-98.879165999999941,68.857483000000116],[-98.86999499999996,68.874146000000053],[-98.864440999999999,68.879974000000118],[-98.856383999999991,68.886383000000023],[-98.847503999999958,68.891663000000051],[-98.826675000000023,68.899429000000112],[-98.817504999999869,68.904709000000025],[-98.811934999999949,68.910538000000031],[-98.811385999999914,68.915817000000004],[-98.820556999999951,68.924987999999928],[-98.827498999999989,68.929152999999928],[-98.84944200000001,68.933594000000028],[-98.965835999999967,68.949417000000096],[-98.981109999999944,68.950546000000031],[-98.993057000000022,68.947754000000145],[-99.077498999999989,68.918319999999994],[-99.09584000000001,68.899429000000112],[-99.076401000000033,68.891663000000051],[-99.062209999999936,68.883041000000048],[-99.043883999999935,68.864990000000091],[-99.044158999999866,68.859711000000118],[-99.176102000000014,68.825821000000019],[-99.188599000000011,68.824158000000068],[-99.21055599999994,68.831664999999987],[-99.236664000000019,68.848877000000016],[-99.24610899999999,68.852768000000083],[-99.267226999999991,68.859146000000067],[-99.311385999999914,68.868866000000139],[-99.413329999999974,68.884155000000021],[-99.428054999999972,68.887206999999989],[-99.437774999999988,68.891098000000056],[-99.444992000000013,68.895538000000045],[-99.449722000000008,68.899993999999992],[-99.454178000000013,68.909714000000065],[-99.451110999999912,68.915268000000026],[-99.447768999999994,68.926085999999998],[-99.448882999999967,68.936645999999996],[-99.450835999999981,68.941650000000095],[-99.460555999999997,68.950821000000076],[-99.489166000000012,68.967484000000127],[-99.523330999999871,68.983596999999975],[-99.562499999999943,68.99914600000011],[-99.589721999999881,69.011108000000036],[-99.594161999999983,69.015823000000069],[-99.596389999999928,69.020538000000101],[-99.596114999999998,69.025818000000015],[-99.593338000000017,69.031371999999976],[-99.579880000000003,69.043930000000046],[-99.513625999999874,69.101929000000098],[-99.492217999999866,69.1202550000001],[-99.485824999999977,69.125259000000028],[-99.476943999999946,69.13081399999993],[-99.466659999999933,69.13499500000006],[-99.311385999999914,69.158875000000023],[-99.296660999999972,69.158600000000035],[-99.238051999999982,69.149719000000061],[-99.168334999999956,69.138321000000076],[-99.035278000000005,69.135818000000086],[-99.006957999999997,69.136383000000137],[-98.798049999999989,69.17053199999998],[-98.774445000000014,69.17553700000002],[-98.730559999999969,69.189423000000033],[-98.720275999999956,69.193863000000022],[-98.711120999999991,69.199141999999995],[-98.702788999999996,69.205261000000007],[-98.699722000000008,69.210815000000025],[-98.701110999999969,69.220825000000104],[-98.705275999999969,69.230820000000051],[-98.615554999999915,69.294708000000071],[-98.533889999999928,69.291367000000037],[-98.441375999999877,69.298035000000027],[-98.415558000000033,69.301086000000055],[-98.403335999999967,69.303588999999988],[-98.393341000000021,69.308029000000033],[-98.387512000000015,69.313873000000058],[-98.384170999999981,69.319442999999922],[-98.388061999999991,69.329162999999994],[-98.397232000000031,69.338318000000072],[-98.44027699999998,69.363876000000005],[-98.457229999999981,69.371917999999994],[-98.476944000000003,69.379974000000061],[-98.488892000000021,69.383605999999986],[-98.523330999999985,69.388321000000019],[-98.535552999999936,69.391937000000098],[-98.555556999999965,69.399994000000049],[-98.562499999999943,69.404159999999933],[-98.598052999999993,69.430542000000003],[-98.611937999999952,69.444138000000009],[-98.608886999999868,69.449706999999989],[-98.591675000000009,69.467484000000013],[-98.585555999999997,69.473312000000135],[-98.577224999999999,69.479430999999977],[-98.563323999999909,69.477203000000031],[-98.553329000000019,69.473312000000135],[-98.540833000000021,69.469711000000075],[-98.508347000000015,69.463318000000129],[-98.477492999999924,69.461928999999941],[-98.447768999999994,69.461655000000007],[-98.422501000000011,69.465820000000008],[-98.419448999999986,69.47137499999991],[-98.424164000000019,69.475815000000125],[-98.44888299999991,69.483047000000056],[-98.463897999999972,69.486374000000012],[-98.549438000000009,69.501389000000131],[-98.564712999999927,69.504715000000147],[-98.577224999999999,69.508331000000055],[-98.586944999999901,69.512207000000103],[-98.601669000000015,69.520828000000051],[-98.605559999999912,69.530548000000124],[-98.604995999999971,69.535812000000078],[-98.601943999999946,69.541091999999992],[-98.592772999999909,69.552765000000022],[-98.575561999999991,69.570267000000058],[-98.566955999999948,69.576384999999959],[-98.556655999999862,69.580826000000059],[-98.531386999999938,69.584991000000059],[-98.501403999999923,69.584427000000119],[-98.485549999999989,69.583327999999995],[-98.433318999999983,69.575546000000031],[-98.385559000000001,69.566085999999927],[-98.357773000000009,69.55914300000012],[-98.350554999999929,69.554703000000131],[-98.338897999999972,69.546097000000032],[-98.334166999999979,69.54136699999998],[-98.322509999999909,69.532486000000063],[-98.310821999999973,69.523880000000133],[-98.28443900000002,69.506378000000097],[-98.248610999999983,69.484984999999995],[-98.092498999999975,69.424988000000042],[-98.078613000000018,69.422760000000039],[-98.049727999999959,69.423035000000084],[-98.036666999999852,69.424698000000035],[-98.024719000000005,69.427200000000084],[-98.00389100000001,69.435806000000014],[-97.997771999999998,69.441650000000038],[-97.99722300000002,69.446930000000066],[-98.006957999999997,69.450821000000133],[-98.071395999999993,69.468872000000147],[-98.157226999999978,69.4994200000001],[-98.166945999999996,69.503326000000015],[-98.188599000000011,69.516098],[-98.211394999999925,69.538879000000009],[-98.255843999999968,69.574707000000046],[-98.263061999999991,69.57887299999993],[-98.295837000000006,69.585266000000104],[-98.330291999999986,69.590271000000143],[-98.360549999999932,69.596649000000127],[-98.367767000000015,69.601089000000115],[-98.321670999999981,69.713608000000079],[-98.314163000000008,69.722214000000008],[-98.281951999999933,69.751663000000008],[-98.230285999999978,69.788879000000122],[-98.211120999999991,69.79942299999999],[-98.199722000000008,69.802765000000136],[-98.187209999999936,69.805251999999996],[-98.143889999999942,69.806366000000025],[-98.118057000000022,69.81053200000008],[-98.107772999999895,69.814697000000081],[-98.088608000000022,69.825272000000041],[-98.079726999999991,69.83137499999998],[-98.061661000000015,69.848877000000016],[-98.058333999999888,69.854431000000034],[-98.049164000000019,69.865814],[-98.043059999999969,69.871643000000006],[-98.034164000000033,69.878036000000009],[-98.012222000000008,69.885817999999972],[-97.999725000000012,69.888046000000088],[-97.974166999999909,69.892211999999972],[-97.945540999999992,69.893600000000106],[-97.930557000000022,69.893325999999945],[-97.913329999999974,69.891098],[-97.880279999999914,69.88499500000006],[-97.755004999999926,69.851379000000065],[-97.691101000000003,69.819992000000127],[-97.689162999999951,69.815262000000132],[-97.682219999999973,69.810806000000014],[-97.660004000000015,69.803314000000057],[-97.610000999999954,69.788589000000115],[-97.579726999999991,69.781937000000028],[-97.449158000000011,69.760269000000108],[-97.341109999999958,69.706375000000094],[-97.33944699999995,69.701385000000016],[-97.348052999999879,69.695251000000042],[-97.358611999999994,69.690810999999997],[-97.37110899999999,69.688583000000051],[-97.397781000000009,69.685532000000023]],[[-97.325012000000015,69.889160000000061],[-97.315276999999924,69.888046000000088],[-97.301665999999955,69.889709000000039],[-97.289992999999924,69.893051000000128],[-97.276947000000007,69.894440000000145],[-97.267775999999969,69.894440000000145],[-97.25,69.891373000000044],[-97.237503000000004,69.887771999999984],[-97.230559999999912,69.883331000000055],[-97.226943999999946,69.873596000000134],[-97.230559999999912,69.868042000000003],[-97.236937999999896,69.862198000000149],[-97.243880999999988,69.857483000000116],[-97.269164999999987,69.852478000000076],[-97.283889999999985,69.852768000000083],[-97.299163999999905,69.856094000000098],[-97.308883999999978,69.860260000000039],[-97.317779999999914,69.869431000000134],[-97.418334999999956,69.893600000000106],[-97.448883000000023,69.894149999999911],[-97.465835999999911,69.896378000000084],[-97.480285999999921,69.898880000000133],[-97.488892000000021,69.908035000000041],[-97.492767000000015,69.917755000000113],[-97.488602000000014,69.943863000000079],[-97.485000999999954,69.949417000000039],[-97.476105000000018,69.955551000000071],[-97.466399999999965,69.960815000000082],[-97.453612999999962,69.963043000000027],[-97.4375,69.961929000000055],[-97.350829999999974,69.949417000000039],[-97.335555999999997,69.946091000000024],[-97.328339000000028,69.941650000000095],[-97.327498999999989,69.931656000000089],[-97.346114999999998,69.917205999999965],[-97.349730999999963,69.911651999999947],[-97.351669000000015,69.901382000000012],[-97.347228999999913,69.896652000000017],[-97.337509000000011,69.892761000000121],[-97.325012000000015,69.889160000000061]],[[-100.84973099999991,69.925537000000077],[-100.86389199999991,69.924698000000092],[-100.87444299999999,69.928588999999988],[-100.87999000000002,69.933043999999995],[-100.87999000000002,69.938309000000061],[-100.85861199999994,69.977767999999969],[-100.85333300000002,69.983597000000145],[-100.84333800000002,69.98803700000002],[-100.83112299999993,69.990814000000057],[-100.81500199999994,69.989700000000084],[-100.80695300000002,69.985809000000017],[-100.80526700000001,69.980270000000019],[-100.80721999999997,69.97526600000009],[-100.80721999999997,69.969986000000006],[-100.81249999999994,69.958878000000027],[-100.83112299999993,69.935531999999967],[-100.83999599999999,69.929977000000065],[-100.84973099999991,69.925537000000077]],[[-87.091385000000002,70.150269000000094],[-87.06361400000003,70.147766000000104],[-87.051665999999955,70.141937000000098],[-87.02555799999999,70.135543999999982],[-87.020843999999954,70.131927000000019],[-87.023894999999982,70.127762000000018],[-87.021941999999967,70.121094000000028],[-87.009170999999924,70.116378999999995],[-86.994155999999975,70.113602000000071],[-86.922501000000011,70.104156000000103],[-86.905562999999972,70.103043000000071],[-86.87388599999997,70.09887700000013],[-86.856658999999922,70.097762999999986],[-86.825835999999924,70.092758000000117],[-86.798889000000031,70.087204000000099],[-86.778060999999923,70.089706000000035],[-86.761123999999938,70.093597000000102],[-86.688599000000011,70.115265000000022],[-86.670273000000009,70.118042000000116],[-86.639724999999999,70.116653000000099],[-86.611664000000019,70.111923000000104],[-86.598617999999988,70.108597000000032],[-86.586670000000026,70.104430999999977],[-86.545546999999942,70.081375000000094],[-86.549728000000016,70.07249500000006],[-86.550551999999982,70.066376000000048],[-86.536666999999909,70.062484999999981],[-86.511123999999995,70.053040000000067],[-86.505004999999983,70.048035000000027],[-86.503615999999965,70.036925999999994],[-86.505844000000025,70.028595000000053],[-86.50556899999998,70.023315000000025],[-86.502501999999993,70.020828000000108],[-86.487503000000004,70.017761000000007],[-86.47193900000002,70.015823000000069],[-86.460555999999997,70.012206999999989],[-86.45666499999993,70.007491999999957],[-86.460006999999962,70.00471500000009],[-86.468886999999995,69.999709999999993],[-86.489715999999987,69.983871000000079],[-86.502791999999999,69.980545000000063],[-86.523620999999991,69.978042999999957],[-86.542496000000028,69.977478000000133],[-86.662216000000001,69.967484000000127],[-86.714447000000007,69.966934000000094],[-86.747771999999998,69.969437000000084],[-86.76556399999987,69.969711000000018],[-86.833069000000023,69.974426000000051],[-86.864440999999999,69.978592000000106],[-86.881377999999984,69.979706000000078],[-86.89805599999994,69.982207999999957],[-86.926391999999964,69.989150999999993],[-86.938599000000011,69.993317000000047],[-86.962219000000005,70.00471500000009],[-86.985274999999945,70.01388500000013],[-87.002227999999945,70.014999000000103],[-87.016113000000018,70.010544000000095],[-87.021941999999967,70.005264000000011],[-87.029449,70.000824000000023],[-87.037215999999944,69.99664300000012],[-87.050277999999878,69.991653000000042],[-87.066665999999998,69.989150999999993],[-87.086394999999925,69.987761999999975],[-87.104172000000005,69.987761999999975],[-87.135009999999966,69.992752000000053],[-87.148055999999997,69.997482000000048],[-87.168883999999991,70.008605999999929],[-87.182769999999948,70.01388500000013],[-87.195830999999998,70.017212000000029],[-87.21362299999987,70.017487000000074],[-87.229445999999996,70.019440000000031],[-87.240828999999906,70.021378000000141],[-87.255004999999983,70.025269000000037],[-87.274444999999957,70.034987999999998],[-87.277495999999985,70.038879000000065],[-87.27694699999995,70.044983000000116],[-87.273620999999991,70.050812000000121],[-87.272507000000019,70.054703000000018],[-87.272780999999952,70.059981999999991],[-87.278335999999967,70.067490000000021],[-87.288329999999974,70.073317999999972],[-87.295837000000006,70.077484000000027],[-87.307495000000017,70.080826000000002],[-87.319457999999884,70.083328000000051],[-87.335555999999997,70.085541000000035],[-87.34973100000002,70.086104999999975],[-87.363892000000021,70.088593000000117],[-87.376937999999939,70.093322999999941],[-87.378325999999959,70.096100000000035],[-87.376099000000011,70.099426000000108],[-87.371384000000035,70.103867000000037],[-87.355834999999956,70.107208000000071],[-87.341948999999886,70.108597000000032],[-87.307495000000017,70.107208000000071],[-87.277785999999992,70.114699999999971],[-87.267226999999878,70.113312000000064],[-87.265609999999924,70.113556000000017],[-87.254729999999995,70.112198000000092],[-87.222503999999901,70.111374000000126],[-87.187774999999931,70.108322000000044],[-87.180557000000022,70.109420999999998],[-87.173049999999989,70.112198000000092],[-87.164443999999946,70.117203000000131],[-87.156112999999891,70.11914100000007],[-87.130829000000006,70.120255000000043],[-87.118332000000009,70.11914100000007],[-87.102782999999988,70.12081900000004],[-87.099730999999963,70.123596000000077],[-87.100554999999929,70.125534000000073],[-87.143065999999976,70.139435000000049],[-87.145279000000016,70.142761000000064],[-87.141388000000006,70.146378000000027],[-87.128326000000015,70.149719000000061],[-87.113891999999964,70.148880000000077],[-87.091385000000002,70.150269000000094]],[[-125.05695299999996,70.118317000000104],[-125.08500700000002,70.116333000000111],[-125.10221899999993,70.118072999999981],[-125.11971999999997,70.124954000000002],[-125.122772,70.130066000000056],[-125.12332200000003,70.13546800000006],[-125.12110899999999,70.141372999999987],[-125.11277799999999,70.14697300000006],[-125.10333300000002,70.151688000000092],[-125.08332799999999,70.159973000000093],[-125.07055700000001,70.16187999999994],[-125,70.162933000000066],[-124.97693600000002,70.167206000000078],[-124.96305799999999,70.168320000000051],[-124.95500199999998,70.164153999999996],[-124.98832700000003,70.134430000000009],[-124.99777199999994,70.129974000000061],[-125.04415899999992,70.120315999999946],[-125.05695299999996,70.118317000000104]],[[-124.67944299999994,70.161652000000117],[-124.69444299999998,70.161377000000073],[-124.73750299999995,70.174149000000114],[-124.75361599999991,70.182479999999998],[-124.75917099999998,70.186919999999986],[-124.76194799999996,70.191925000000083],[-124.75890400000003,70.196640000000116],[-124.74471999999997,70.197754000000089],[-124.55110200000001,70.208602999999925],[-124.53611799999987,70.208602999999925],[-124.51888999999994,70.206940000000031],[-124.51055899999994,70.20277399999992],[-124.50527999999997,70.198318000000029],[-124.50750700000003,70.192749000000049],[-124.53694200000001,70.18193100000002],[-124.67944299999994,70.161652000000117]],[[-112.65527299999991,70.266098],[-112.67223399999995,70.266098],[-112.69193999999999,70.267487000000017],[-112.72193900000002,70.272491000000002],[-112.74722300000002,70.278594999999996],[-112.75499699999995,70.282761000000107],[-112.76027699999992,70.287201000000096],[-112.76306199999993,70.292480000000069],[-112.76139799999993,70.298598999999967],[-112.75389100000001,70.303588999999988],[-112.73111,70.309708000000001],[-112.71611000000001,70.310531999999967],[-112.699997,70.309417999999994],[-112.6875,70.306366000000082],[-112.67971799999992,70.302475000000015],[-112.67859599999991,70.300812000000064],[-112.64334099999996,70.28137200000009],[-112.64277600000003,70.275818000000129],[-112.64472999999987,70.269714000000079],[-112.65527299999991,70.266098]],[[-112.96972700000003,70.28137200000009],[-113.00306699999999,70.281097000000102],[-113.104446,70.281936999999971],[-113.14083899999997,70.283325000000048],[-113.15834000000001,70.285262999999986],[-113.20361300000002,70.292480000000069],[-113.16972399999992,70.306931000000134],[-113.15750100000002,70.309708000000001],[-113.12888299999997,70.312485000000095],[-113.11054999999993,70.3119200000001],[-112.993607,70.299423000000104],[-112.97609699999992,70.297484999999938],[-112.96362299999998,70.294434000000138],[-112.95333900000003,70.290817000000004],[-112.94554099999999,70.286652000000004],[-112.95612299999999,70.283325000000048],[-112.96972700000003,70.28137200000009]],[[-100.765289,70.25],[-100.78083800000002,70.25],[-100.7938769999999,70.253326000000015],[-100.84166699999997,70.278320000000008],[-100.86305199999993,70.291091999999992],[-100.86833200000001,70.295532000000037],[-100.85193600000002,70.323883000000137],[-100.83889799999992,70.325546000000031],[-100.80943300000001,70.324158000000125],[-100.77639799999997,70.322495000000004],[-100.75890399999997,70.320540999999992],[-100.74804699999999,70.316940000000102],[-100.74082899999996,70.310531999999967],[-100.75890399999997,70.254990000000021],[-100.765289,70.25]],[[-116.80526699999996,70.509430000000009],[-116.78971899999993,70.507217000000026],[-116.75418100000002,70.50749200000007],[-116.63390400000003,70.493591000000094],[-116.60722399999997,70.488037000000077],[-116.59638999999993,70.484984999999995],[-116.56833599999999,70.473876999999959],[-116.57305899999989,70.467758000000117],[-116.70111099999997,70.468597000000102],[-116.71916199999993,70.470261000000107],[-116.787781,70.483597000000032],[-116.814438,70.488876000000062],[-116.82055700000001,70.493591000000094],[-116.82861300000002,70.503601000000003],[-116.82224300000001,70.508881000000031],[-116.80526699999996,70.509430000000009]],[[-116.287781,70.553314000000114],[-116.26027699999992,70.549988000000042],[-116.24333199999995,70.550261999999975],[-116.18943799999994,70.54553199999998],[-116.140556,70.538589000000002],[-116.12748699999997,70.535812000000078],[-116.13110399999999,70.532486000000006],[-116.29110699999995,70.515549000000021],[-116.32333399999993,70.513611000000083],[-116.44611399999991,70.508881000000031],[-116.46472199999999,70.509154999999964],[-116.47778299999999,70.511932000000058],[-116.495003,70.519989000000066],[-116.49582700000002,70.522765999999933],[-116.47000099999997,70.538040000000024],[-116.30304699999988,70.552199999999971],[-116.287781,70.553314000000114]],[[-116.56304899999998,70.534424000000001],[-116.57833900000003,70.533051000000057],[-116.596947,70.533324999999991],[-116.75028999999995,70.539153999999996],[-116.76363400000002,70.541931000000091],[-116.77443700000003,70.545258000000047],[-116.766953,70.548324999999977],[-116.75527999999991,70.551085999999941],[-116.72361799999987,70.556366000000025],[-116.71193699999998,70.559417999999937],[-116.68167099999999,70.561920000000043],[-116.66471899999999,70.562485000000038],[-116.64611799999994,70.562195000000031],[-116.54305999999997,70.559707999999944],[-116.52278100000001,70.558593999999971],[-116.50945300000001,70.556091000000038],[-116.50778200000002,70.550261999999975],[-116.51806599999998,70.546646000000123],[-116.56304899999998,70.534424000000001]],[[-115.92054699999989,70.54136699999998],[-115.95445299999994,70.540267999999969],[-115.99333200000001,70.541656000000103],[-116.051941,70.54553199999998],[-116.06111099999993,70.548324999999977],[-116.04250299999995,70.552199999999971],[-115.98388699999998,70.560806000000071],[-115.97222899999991,70.563599000000011],[-115.91972399999997,70.572494999999947],[-115.87917299999998,70.578598000000113],[-115.86389200000002,70.579987000000074],[-115.82501199999996,70.578323000000069],[-115.81416300000001,70.574997000000053],[-115.80803700000001,70.570541000000105],[-115.81082199999997,70.564986999999974],[-115.81916799999999,70.560806000000071],[-115.84111000000001,70.554153000000042],[-115.86638599999998,70.549423000000047],[-115.92054699999989,70.54136699999998]],[[-116.87943999999993,70.547485000000108],[-116.88945000000001,70.543869000000029],[-116.923317,70.542755000000056],[-117.03611799999993,70.546371000000136],[-117.18331899999998,70.537491000000102],[-117.20195000000001,70.53776600000009],[-117.22000099999997,70.539153999999996],[-117.27555799999993,70.550261999999975],[-117.28888699999993,70.55304000000001],[-117.29778299999998,70.556931000000077],[-117.30166600000001,70.561920000000043],[-117.29778299999998,70.571380999999974],[-117.26083399999999,70.584717000000126],[-117.25140399999992,70.587204000000042],[-117.23805199999998,70.589156999999943],[-117.21640000000002,70.591095000000109],[-117.19943199999994,70.591660000000104],[-117.16332999999997,70.588593000000003],[-116.89444700000001,70.556091000000038],[-116.88362100000001,70.552765000000136],[-116.87943999999993,70.547485000000108]],[[-128.08612099999999,70.605545000000006],[-128.10415599999999,70.595825000000104],[-128.1201779999999,70.597214000000122],[-128.11444099999994,70.591934000000037],[-128.11721799999992,70.580551000000014],[-128.12387100000001,70.57388300000008],[-128.13275099999993,70.569153000000028],[-128.34054599999996,70.539153999999996],[-128.34167499999995,70.542205999999908],[-128.252228,70.646378000000084],[-128.24581899999998,70.653046000000074],[-128.23416099999986,70.656097000000102],[-128.21639999999996,70.654709000000025],[-128.18832399999997,70.648604999999975],[-128.11498999999998,70.628036000000009],[-128.10360699999995,70.624419999999986],[-128.09472700000003,70.62052900000009],[-128.0883179999999,70.616089000000045],[-128.08499099999995,70.611099000000024],[-128.08612099999999,70.605545000000006]],[[-100.23082699999992,70.451660000000061],[-100.24333199999995,70.449142000000109],[-100.26000999999985,70.449996999999996],[-100.27610799999997,70.453049000000078],[-100.47250400000001,70.496367999999961],[-100.49916100000002,70.503326000000129],[-100.63054699999998,70.543320000000108],[-100.662781,70.554703000000075],[-100.67083700000001,70.558868000000075],[-100.67639199999996,70.563309000000004],[-100.68138099999993,70.573044000000095],[-100.68138099999993,70.583602999999982],[-100.67832900000002,70.594147000000021],[-100.66443599999991,70.637771999999984],[-100.65194699999995,70.669708000000071],[-100.51194800000002,70.676376000000062],[-100.49500299999988,70.675262000000089],[-100.48000300000001,70.673309000000131],[-100.46916199999998,70.669434000000138],[-100.46112099999999,70.659987999999998],[-100.451683,70.651932000000102],[-100.44360399999999,70.64776599999999],[-100.34722899999991,70.608032000000094],[-100.33640300000002,70.604431000000034],[-100.31945799999994,70.603317000000061],[-100.21833799999996,70.564422999999977],[-100.22444200000001,70.456649999999968],[-100.23082699999992,70.451660000000061]],[[-103.17777999999993,70.622482000000048],[-103.19360399999994,70.622208000000114],[-103.24833699999994,70.622757000000036],[-103.26640299999991,70.624146000000053],[-103.27500900000001,70.628311000000053],[-103.28111299999995,70.632751000000042],[-103.281387,70.638046000000088],[-103.26834099999996,70.666382000000056],[-103.22582999999986,70.676376000000062],[-103.21000700000002,70.676651000000049],[-103.19415299999997,70.673035000000027],[-103.173607,70.6336060000001],[-103.17304999999999,70.628586000000041],[-103.17777999999993,70.622482000000048]],[[-103.35082999999992,70.687195000000088],[-103.36416599999995,70.685256999999979],[-103.38110399999988,70.685806000000127],[-103.39499699999999,70.689148000000046],[-103.42887899999994,70.69999700000011],[-103.43776700000001,70.703872999999987],[-103.44638099999997,70.708037999999988],[-103.45249899999993,70.712494000000106],[-103.45889299999999,70.722214000000008],[-103.46278399999994,70.732208000000014],[-103.45694700000001,70.737198000000035],[-103.44360399999999,70.739150999999993],[-103.42777999999998,70.739426000000037],[-103.39917000000003,70.737198000000035],[-103.36361699999992,70.727767999999969],[-103.34111000000001,70.72026100000005],[-103.33500699999996,70.716094999999996],[-103.33444199999997,70.710815000000082],[-103.33860800000002,70.699417000000096],[-103.34333799999996,70.693588000000091],[-103.35082999999992,70.687195000000088]],[[-71.471664000000033,71.012772000000041],[-71.428878999999995,71.012206999999989],[-71.389175000000023,71.013885000000073],[-71.371108999999933,71.011931999999945],[-71.357497999999964,71.009720000000073],[-71.344727000000034,71.005554000000018],[-71.339171999999962,70.998322000000087],[-71.339721999999995,70.99136400000009],[-71.343063000000029,70.984985000000052],[-71.386672999999917,70.922485000000108],[-71.392226999999991,70.916656000000103],[-71.402495999999871,70.911926000000051],[-71.415557999999976,70.90776100000005],[-71.433060000000012,70.904709000000139],[-71.451110999999912,70.903046000000018],[-71.474441999999954,70.902481000000023],[-71.495543999999938,70.90277100000003],[-71.654448999999943,70.890822999999955],[-71.733063000000016,70.874984999999924],[-71.933884000000035,70.833328000000051],[-71.937774999999931,70.824706999999989],[-71.946380999999974,70.820831000000112],[-71.955565999999976,70.818329000000006],[-71.991668999999945,70.814697000000081],[-72.038605000000018,70.811371000000008],[-72.081954999999994,70.809708000000114],[-72.096664000000033,70.809708000000114],[-72.112212999999997,70.811371000000008],[-72.198607999999979,70.882750999999985],[-72.223327999999981,70.916931000000091],[-72.225280999999939,70.924423000000047],[-72.226395000000025,70.930542000000059],[-72.213897999999915,70.934708000000001],[-72.202224999999999,70.93664600000011],[-72.166655999999989,70.938034000000016],[-72.148894999999925,70.936371000000065],[-72.136672999999973,70.933594000000028],[-72.133620999999948,70.931656000000032],[-72.145554000000004,70.926085999999998],[-72.149170000000026,70.921097000000032],[-72.136123999999995,70.916931000000091],[-72.117492999999911,70.917205999999965],[-72.097778000000005,70.919708000000014],[-72.078339000000028,70.923599000000081],[-72.057769999999948,70.933043999999995],[-72.044723999999917,70.944426999999962],[-72.039443999999946,70.950272000000098],[-72.033324999999934,70.963042999999971],[-72.026672000000019,70.98275799999999],[-72.019729999999868,71.034424000000058],[-72.021392999999989,71.041930999999977],[-72.008620999999948,71.049713000000111],[-71.916107000000011,71.06442300000009],[-71.884170999999924,71.068878000000097],[-71.851669000000015,71.072220000000016],[-71.831680000000006,71.071106000000043],[-71.794723999999974,71.053040000000067],[-71.730834999999956,71.045532000000037],[-71.644454999999994,71.034987999999998],[-71.546950999999979,71.018600000000106],[-71.471664000000033,71.012772000000041]],[[-96.563323999999966,71.292205999999965],[-96.546950999999979,71.289154000000053],[-96.535552999999993,71.28276100000005],[-96.472504000000015,71.232208000000071],[-96.470275999999956,71.226089000000059],[-96.480835000000013,71.208878000000141],[-96.487503000000004,71.203598000000056],[-96.561110999999983,71.208328000000108],[-96.578063999999983,71.210541000000035],[-96.628601000000003,71.220260999999937],[-96.638610999999912,71.226089000000059],[-96.641678000000013,71.231368999999972],[-96.642776000000026,71.234421000000054],[-96.652495999999985,71.287201000000096],[-96.649170000000026,71.29304500000012],[-96.610549999999989,71.290543000000014],[-96.581116000000009,71.293594000000041],[-96.563323999999966,71.292205999999965]],[[-98.895554000000004,71.27777100000003],[-98.90834000000001,71.273040999999978],[-98.97444200000001,71.284714000000008],[-98.989715999999987,71.290543000000014],[-99.000290000000007,71.297211000000004],[-99.00556899999998,71.301926000000037],[-99.008621000000005,71.308029000000147],[-99.008895999999936,71.313873000000001],[-99.00306699999993,71.319443000000092],[-98.963622999999927,71.352203000000088],[-98.955840999999964,71.352203000000088],[-98.930283000000031,71.342209000000082],[-98.923324999999977,71.337769000000094],[-98.914443999999946,71.331665000000044],[-98.895554000000004,71.27777100000003]],[[-73.120543999999995,71.479705999999965],[-73.129439999999931,71.450821000000076],[-73.077498999999932,71.466385000000002],[-73.043335000000013,71.47886699999998],[-73.035552999999936,71.48414600000001],[-73.016402999999968,71.500000000000114],[-73.005844000000025,71.511658000000125],[-72.998046999999985,71.517211999999915],[-72.985275000000001,71.521378000000027],[-72.97222899999997,71.521378000000027],[-72.962508999999955,71.51998900000001],[-72.934157999999968,71.509155000000135],[-72.827498999999989,71.454987000000017],[-72.820281999999963,71.449707000000103],[-72.817504999999983,71.444977000000108],[-72.823333999999988,71.439697000000024],[-72.831954999999994,71.435806000000127],[-72.849730999999963,71.4327550000001],[-72.872497999999894,71.43081699999999],[-72.921660999999972,71.428314],[-72.992767000000015,71.419433999999967],[-73.010009999999966,71.415543000000071],[-73.022780999999952,71.411101999999971],[-73.031112999999948,71.406646999999964],[-73.028885000000002,71.399155000000064],[-73.007507000000032,71.352203000000088],[-72.978881999999942,71.329712000000086],[-72.974166999999909,71.324997000000053],[-72.97193900000002,71.317490000000134],[-72.973617999999874,71.313309000000061],[-72.983886999999982,71.308594000000028],[-72.996657999999911,71.304153000000099],[-73.025283999999999,71.297485000000108],[-73.060546999999929,71.294708000000014],[-73.089446999999893,71.313873000000001],[-73.163329999999917,71.33248900000001],[-73.198607999999922,71.336380000000077],[-73.244995000000017,71.348877000000073],[-73.265288999999939,71.357483000000002],[-73.272506999999962,71.36192299999999],[-73.275008999999955,71.365814000000057],[-73.276397999999972,71.379150000000038],[-73.265015000000005,71.396378000000141],[-73.255004999999926,71.408874999999966],[-73.254729999999995,71.415268000000083],[-73.293609999999887,71.454711999999972],[-73.301392000000021,71.459717000000012],[-73.320556999999894,71.469711000000075],[-73.347504000000015,71.477768000000026],[-73.362502999999947,71.481094000000041],[-73.374160999999901,71.485809000000074],[-73.379990000000021,71.519714000000022],[-73.377212999999983,71.522766000000104],[-73.366942999999992,71.527480999999966],[-73.189986999999917,71.565536000000066],[-73.176940999999999,71.566376000000105],[-73.147507000000019,71.564423000000147],[-73.132216999999912,71.561371000000065],[-73.090285999999935,71.546371000000079],[-73.081116000000009,71.542206000000078],[-73.073623999999938,71.536926000000051],[-73.074722000000008,71.531372000000033],[-73.11332699999997,71.485809000000074],[-73.120543999999995,71.479705999999965]],[[-72.760833999999875,71.531937000000084],[-72.786391999999978,71.530273000000022],[-72.830841000000021,71.531096999999988],[-72.848891999999921,71.532211000000018],[-72.867492999999911,71.533875000000023],[-72.949996999999996,71.547211000000118],[-72.982497999999907,71.553589000000102],[-73.008895999999879,71.56109600000002],[-73.020554000000004,71.565811000000053],[-73.030562999999916,71.571655000000078],[-73.035277999999948,71.575546000000145],[-73.039992999999981,71.579987000000074],[-73.037506000000008,71.587203999999986],[-73.034164000000033,71.592209000000025],[-72.968062999999972,71.636658000000011],[-72.948607999999979,71.644714000000079],[-72.924712999999997,71.649429000000112],[-72.806655999999919,71.659149000000014],[-72.781113000000005,71.660812000000135],[-72.745269999999948,71.659987999999942],[-72.726669000000015,71.658325000000048],[-72.709166999999979,71.655258000000117],[-72.695830999999941,71.651093000000117],[-72.684433000000013,71.642761000000121],[-72.662215999999944,71.604431000000034],[-72.660552999999936,71.598038000000031],[-72.671111999999994,71.585815000000025],[-72.682495000000017,71.574706999999989],[-72.701110999999912,71.557479999999998],[-72.712783999999942,71.547211000000118],[-72.718886999999995,71.542755000000056],[-72.727492999999981,71.538589000000115],[-72.742492999999968,71.534149000000127],[-72.760833999999875,71.531937000000084]],[[-73.370270000000005,71.554428000000087],[-73.394454999999937,71.554428000000087],[-73.406661999999983,71.556366000000025],[-73.418335000000013,71.56109600000002],[-73.42860399999995,71.566940000000045],[-73.436934999999949,71.573318000000029],[-73.450561999999991,71.584152000000074],[-73.449721999999952,71.58998100000008],[-73.448043999999925,71.594146999999964],[-73.441939999999988,71.598877000000016],[-73.388610999999912,71.634155000000021],[-73.348342999999943,71.658325000000048],[-73.276108000000022,71.691924999999912],[-73.243332000000009,71.696639999999945],[-73.213332999999977,71.698593000000074],[-73.209166999999979,71.698868000000118],[-73.190552000000025,71.697204999999997],[-73.167496000000028,71.692200000000128],[-73.155562999999972,71.687195000000088],[-73.148894999999982,71.679977000000065],[-73.149993999999992,71.674423000000104],[-73.170546999999942,71.668319999999937],[-73.221114999999998,71.660262999999986],[-73.249434999999949,71.652481000000023],[-73.262511999999958,71.648041000000035],[-73.282776000000013,71.637771999999984],[-73.303604000000007,71.621918000000051],[-73.320281999999963,71.605545000000006],[-73.325012000000015,71.599152000000061],[-73.331679999999949,71.588042999999971],[-73.338607999999965,71.571105999999929],[-73.339721999999938,71.565262000000132],[-73.352492999999981,71.557479999999998],[-73.370270000000005,71.554428000000087]],[[-96.958892999999932,71.704437000000098],[-96.99888599999997,71.701096000000064],[-97.036391999999921,71.701385000000016],[-97.050277999999935,71.704162999999994],[-97.049727999999902,71.709991000000116],[-97.040282999999988,71.72026100000005],[-97.02416999999997,71.731093999999985],[-96.99888599999997,71.741363999999919],[-96.991668999999945,71.743042000000059],[-96.990829000000019,71.743866000000025],[-96.96945199999999,71.74859600000002],[-96.963897999999972,71.752212999999983],[-96.924163999999962,71.755554000000018],[-96.886397999999986,71.755264000000011],[-96.866942999999992,71.753601000000117],[-96.850554999999872,71.749419999999986],[-96.84445199999999,71.744141000000013],[-96.851104999999905,71.738875999999948],[-96.86860699999994,71.728592000000106],[-96.881377999999927,71.723312000000078],[-96.896956999999929,71.718323000000112],[-96.915832999999964,71.713608000000079],[-96.958892999999932,71.704437000000098]],[[-95.339995999999928,71.731369000000029],[-95.39805599999994,71.729431000000091],[-95.43582200000003,71.729980000000012],[-95.471114999999941,71.733597000000145],[-95.483062999999902,71.736923000000047],[-95.48832699999997,71.740814000000114],[-95.488051999999868,71.745529000000147],[-95.450286999999946,71.818877999999927],[-95.44027699999998,71.824158000000011],[-95.420836999999892,71.828873000000044],[-95.384170999999981,71.836104999999975],[-95.348891999999978,71.840546000000074],[-95.328613000000018,71.842208999999968],[-95.301666000000012,71.844147000000135],[-95.286666999999966,71.843048000000124],[-95.275832999999977,71.84027100000003],[-95.265838999999971,71.836655000000007],[-95.261672999999973,71.833328000000051],[-95.259734999999921,71.827484000000027],[-95.310546999999929,71.737198000000035],[-95.324721999999952,71.732758000000047],[-95.339995999999928,71.731369000000029]],[[-134.49554399999994,68.75221300000004],[-134.48803699999991,68.736649],[-134.48803699999991,68.731094000000098],[-134.48306299999996,68.720535000000041],[-134.47387700000002,68.711379999999963],[-134.46472199999994,68.707489000000066],[-134.44638099999997,68.700271999999984],[-134.40112299999993,68.687759000000085],[-134.37387100000001,68.682480000000112],[-134.33999599999999,68.67886400000009],[-134.30804399999994,68.678040000000124],[-134.28277600000001,68.681366000000139],[-134.24636799999996,68.687484999999981],[-134.23071299999998,68.692841000000101],[-134.22692899999998,68.694138000000123],[-134.22332800000004,68.699706999999933],[-134.26058999999987,68.733535999999958],[-134.26251200000002,68.736374000000126],[-134.28750599999995,68.753601000000003],[-134.30835000000002,68.766097999999943],[-134.32638499999996,68.773605000000089],[-134.42306500000001,68.831664999999987],[-134.54168700000002,68.919708000000071],[-134.558044,68.933043999999995],[-134.614441,68.983321999999987],[-134.62387099999995,68.992752000000053],[-134.62887599999999,69.003052000000139],[-134.62914999999992,69.008880999999974],[-134.62469499999992,69.015548999999965],[-134.56222499999996,69.082764000000111],[-134.55499299999997,69.08776899999998],[-134.53750600000001,69.09387200000009],[-134.49194299999999,69.104155999999989],[-134.46362299999998,69.106094000000098],[-134.44805899999989,69.106094000000098],[-134.36303699999996,69.102203000000031],[-134.34887700000002,69.103043000000071],[-134.33889799999992,69.106369000000086],[-134.22747800000002,69.174988000000099],[-134.22305299999999,69.181656000000032],[-134.22082499999993,69.188034000000016],[-134.22137499999997,69.216385000000116],[-134.21694899999989,69.223038000000088],[-134.162781,69.254715000000033],[-134.15389999999996,69.258880999999917],[-134.142517,69.261383000000023],[-134.12832599999996,69.262206999999989],[-134.06915299999997,69.262771999999984],[-134.05471799999998,69.263610999999969],[-134.02917500000001,69.266936999999984],[-133.92861899999991,69.282211000000075],[-133.90557899999988,69.287490999999989],[-133.89529400000004,69.290817000000004],[-133.88668799999999,69.294983000000116],[-133.87914999999998,69.299987999999985],[-133.87332199999997,69.30581699999999],[-133.86859100000004,69.312484999999924],[-133.86886599999997,69.318329000000119],[-133.87332199999997,69.323043999999982],[-133.87582399999997,69.328322999999955],[-133.86972000000003,69.33415199999996],[-133.67028799999997,69.386658000000068],[-133.65863000000002,69.389160000000004],[-133.55056799999994,69.405823000000055],[-133.40777600000001,69.414703000000088],[-133.37222299999991,69.412201000000039],[-133.35583499999996,69.409988000000055],[-133.32806400000004,69.404709000000082],[-133.30972299999996,69.402771000000143],[-133.23443599999996,69.397217000000126],[-133.21749899999992,69.39637799999997],[-133.20584099999991,69.398880000000077],[-133.073059,69.434982000000048],[-132.99941999999999,69.481934000000138],[-132.966095,69.511657999999954],[-132.95220899999998,69.563309000000061],[-132.95193499999999,69.569153000000028],[-132.95666499999993,69.57388300000008],[-132.96581999999995,69.57748400000014],[-132.98638900000003,69.590271000000143],[-132.988586,69.595260999999994],[-132.98361199999994,69.602203000000088],[-132.97747800000002,69.608032000000094],[-132.92251599999997,69.642212000000029],[-132.904449,69.650542999999971],[-132.89388999999994,69.65387000000004],[-132.86471599999999,69.658325000000104],[-132.82110599999999,69.660538000000031],[-132.78778099999994,69.659714000000065],[-132.66229199999998,69.651206999999999],[-132.628784,69.648048000000074],[-132.62028499999997,69.646378000000141],[-132.61479199999991,69.644043000000011],[-132.606628,69.639046000000121],[-132.55279499999995,69.631362999999965],[-132.53527800000001,69.630264000000011],[-132.41751099999993,69.635544000000039],[-132.39389,69.64027400000009],[-132.372772,69.646942000000081],[-132.34527600000001,69.659424000000058],[-132.33248900000001,69.671097000000088],[-132.32748399999997,69.677765000000079],[-132.333618,69.682480000000112],[-132.441101,69.702484000000027],[-132.45748900000001,69.704711999999972],[-132.46777299999991,69.701385000000016],[-132.51779199999999,69.68331900000004],[-132.54823299999998,69.685310000000129],[-132.55523700000003,69.683823000000018],[-132.57455400000003,69.683983000000126],[-132.582718,69.685654],[-132.586884,69.688148000000126],[-132.58673099999993,69.691649999999981],[-132.54833999999994,69.735809000000074],[-132.54055799999998,69.740814000000114],[-132.52749600000004,69.742477000000065],[-132.47305299999999,69.747756999999922],[-132.39974999999998,69.751663000000008],[-132.28918499999992,69.724991000000102],[-132.21304299999997,69.690810999999997],[-132.19888300000002,69.688034000000073],[-132.16305499999999,69.685256999999979],[-132.14697299999995,69.685256999999979],[-132.12304700000004,69.713608000000079],[-132.11663799999991,69.719436999999914],[-132.10720800000001,69.723602000000085],[-132.08331299999992,69.728591999999992],[-131.95443699999998,69.75471500000009],[-131.87469499999992,69.763884999999959],[-131.85861199999999,69.763611000000026],[-131.84527600000001,69.765273999999977],[-131.8347169999999,69.768599999999992],[-131.76556400000004,69.794707999999957],[-131.75891100000001,69.800536999999963],[-131.75836200000003,69.806366000000025],[-131.76028400000001,69.811646000000053],[-131.7647399999999,69.816376000000105],[-131.76666299999994,69.821655000000078],[-131.76000999999997,69.827484000000084],[-131.75058000000001,69.83137499999998],[-131.64501999999999,69.864990000000034],[-131.62359600000002,69.871368000000018],[-131.44778400000001,69.918594000000041],[-131.42639199999991,69.947479000000101],[-131.42111199999994,69.954162999999994],[-131.41027799999995,69.957214000000022],[-131.34887700000002,69.95248400000014],[-131.26916499999993,69.937759000000028],[-131.24609399999991,69.931091000000038],[-131.237213,69.927199999999971],[-131.23055999999991,69.923035000000141],[-131.20916699999998,69.899155000000007],[-131.20333899999997,69.889160000000061],[-131.20138499999996,69.883881000000088],[-131.20193499999999,69.878036000000009],[-131.2049869999999,69.871918000000051],[-131.21054099999998,69.865265000000079],[-131.21722399999987,69.859421000000054],[-131.22164899999996,69.854155999999989],[-131.22222899999991,69.848328000000038],[-131.220551,69.84304800000001],[-131.21194499999996,69.833603000000096],[-131.20526100000001,69.829437000000041],[-131.19638099999997,69.825546000000145],[-131.18499799999995,69.824158000000068],[-131.08056599999998,69.88499500000006],[-131.07501199999996,69.891663000000051],[-131.03140299999995,69.949417000000039],[-131.01028399999996,69.98692299999999],[-131.01278699999995,70.023315000000025],[-131.01947000000001,70.027771000000087],[-130.93029799999999,70.083054000000118],[-130.89224200000001,70.099152000000004],[-130.74832199999997,70.081940000000145],[-130.65612799999991,70.108597000000032],[-130.554169,70.165267999999969],[-130.54305999999991,70.168320000000051],[-130.48721299999994,70.173309000000017],[-130.47222899999997,70.173874000000069],[-130.46771200000001,70.170089999999959],[-130.47271699999993,70.167099000000121],[-130.48388699999998,70.164992999999981],[-130.51141399999995,70.162201000000039],[-130.52224699999994,70.158875000000023],[-130.54724099999999,70.127472000000012],[-130.54806499999995,70.121643000000006],[-130.54638699999992,70.116378999999995],[-130.54223599999995,70.111648999999943],[-130.53555299999999,70.107483000000059],[-130.52416999999997,70.103867000000037],[-130.5102839999999,70.101089000000002],[-130.49527,70.101654000000053],[-130.48416099999992,70.104705999999965],[-130.43237299999998,70.125870000000134],[-130.40722700000003,70.140533000000119],[-130.35360699999995,70.132202000000007],[-130.33084099999996,70.110809000000074],[-130.32250999999997,70.101379000000009],[-130.18472299999996,70.053589000000045],[-130.16861,70.053314],[-129.97555499999993,70.069442999999978],[-129.96304299999997,70.071655000000021],[-129.92611699999992,70.078598],[-129.89083900000003,70.092758000000117],[-129.86444099999994,70.126923000000033],[-129.84609999999986,70.154984000000127],[-129.8324889999999,70.195525999999916],[-129.79000899999994,70.219986000000119],[-129.73138399999999,70.253052000000082],[-129.69778400000001,70.262496999999996],[-129.68667600000003,70.265549000000078],[-129.67306499999995,70.266936999999984],[-129.64724699999999,70.251663000000065],[-129.60916099999992,70.213042999999971],[-129.45916699999998,70.147491000000116],[-129.40472399999999,70.123031999999967],[-129.40335099999999,70.11775200000011],[-129.40527299999997,70.106369000000086],[-129.40640300000001,70.10054000000008],[-129.4100039999999,70.094436999999971],[-129.433899,70.068054000000132],[-129.49749800000001,70.020538000000101],[-129.57360799999998,69.997757000000092],[-129.59555099999994,69.991363999999919],[-129.88946499999992,69.917205999999965],[-129.99304199999989,69.892487000000017],[-130.22805800000003,69.840546000000131],[-130.49581899999998,69.78166200000004],[-130.55999800000001,69.737198000000092],[-130.56140099999999,69.725815000000068],[-130.56472799999995,69.719711000000018],[-130.57028200000002,69.713043000000084],[-130.57833900000003,69.708038000000045],[-130.62136799999996,69.695251000000042],[-130.64697299999989,69.691360000000145],[-130.70416299999994,69.688309000000118],[-130.75750700000003,69.682480000000112],[-130.78030399999994,69.676926000000094],[-130.78973400000001,69.672760000000039],[-130.83639500000004,69.6336060000001],[-130.83944699999995,69.627472000000068],[-130.84081999999995,69.616089000000102],[-130.83667000000003,69.611099000000024],[-130.83749399999999,69.605545000000063],[-130.84414699999996,69.599716000000001],[-130.91915899999998,69.56721500000009],[-130.92861899999997,69.563309000000061],[-130.94473299999999,69.565536000000122],[-131.02667199999996,69.593048000000067],[-131.03973399999995,69.601653999999996],[-131.04168699999997,69.606934000000024],[-131.04083300000002,69.612761999999975],[-131.05306999999999,69.637206999999989],[-131.16332999999992,69.627762000000132],[-131.18859900000001,69.623871000000065],[-131.32861299999996,69.579987000000131],[-131.40750099999997,69.586655000000064],[-131.58694500000001,69.567490000000134],[-131.69168100000002,69.551650999999993],[-131.70498699999996,69.560256999999922],[-131.71389799999992,69.563873000000001],[-131.72778299999999,69.566940000000102],[-131.74108899999993,69.567490000000134],[-131.75585899999999,69.566940000000102],[-131.99722299999991,69.53137200000009],[-132.00640899999996,69.527205999999978],[-132.03890999999999,69.508331000000055],[-132.04666099999992,69.503326000000015],[-132.0799869999999,69.480819999999994],[-132.14169300000003,69.412766000000033],[-132.13305699999995,69.403320000000065],[-132.12164299999995,69.399994000000049],[-132.09750399999996,69.396057000000098],[-132.08526599999999,69.390823000000069],[-132.08084099999996,69.386108000000036],[-132.07888800000001,69.3808140000001],[-132.08166499999999,69.374695000000031],[-132.09472700000003,69.362762000000032],[-132.11663799999991,69.357208000000014],[-132.32916299999999,69.31442300000009],[-132.52417000000003,69.277771000000087],[-132.53195199999999,69.280547999999953],[-132.54556300000002,69.283325000000048],[-132.56167599999998,69.285812000000135],[-132.57998699999996,69.287490999999989],[-132.59222399999993,69.287200999999982],[-132.70611600000001,69.26887499999998],[-132.71777299999997,69.266388000000063],[-132.739441,69.260817999999972],[-132.76028399999996,69.254166000000112],[-132.76779199999999,69.249146000000053],[-132.90722699999998,69.1244200000001],[-132.90722699999998,69.118866000000082],[-132.90527299999997,69.042755],[-132.94610599999999,69.037491000000045],[-133.05084199999999,69.054703000000018],[-133.10638399999993,69.050537000000134],[-133.1719359999999,69.043320000000051],[-133.18331899999998,69.040817000000061],[-133.19332900000001,69.037491000000045],[-133.20083599999987,69.032485999999949],[-133.20556599999998,69.025818000000015],[-133.21499600000004,69.006653000000028],[-133.21664399999997,69.001937999999996],[-133.21444700000001,68.99664300000012],[-133.209991,68.991928000000087],[-133.20333900000003,68.987761999999975],[-133.19860799999998,68.983046999999942],[-133.19888300000002,68.977203000000145],[-133.21304299999991,68.938034000000073],[-133.22610499999996,68.913605000000132],[-133.23361199999999,68.908600000000092],[-133.31332399999985,68.871918000000051],[-133.32333399999993,68.868590999999924],[-133.33471699999996,68.866089000000045],[-133.34887699999996,68.865265000000079],[-133.36331200000001,68.866652999999985],[-133.37692300000003,68.869140999999956],[-133.38583399999999,68.873032000000023],[-133.39944500000001,68.881362999999965],[-133.40167199999991,68.886658000000011],[-133.39529400000004,68.89027400000009],[-133.37969999999996,68.89027400000009],[-133.36694299999994,68.891936999999984],[-133.359711,68.896942000000024],[-133.35360700000001,68.90277100000003],[-133.35803199999992,68.907486000000063],[-133.36944599999993,68.910538000000031],[-133.38275099999998,68.911102000000142],[-133.39556899999997,68.909424000000058],[-133.46112099999999,68.892761000000121],[-133.466095,68.888321000000133],[-133.484711,68.850266000000033],[-133.493042,68.826659999999947],[-133.49081399999994,68.821655000000078],[-133.48416099999997,68.81164600000011],[-133.47082499999999,68.797485000000108],[-133.46389799999992,68.793320000000108],[-133.4549869999999,68.789703000000145],[-133.40557899999999,68.772217000000012],[-133.32138099999992,68.746368000000132],[-133.16418499999992,68.707214000000079],[-133.08999599999999,68.694977000000108],[-133.05416899999994,68.691360000000145],[-133.03750599999995,68.690536000000009],[-133.02334599999995,68.691360000000145],[-133.01083399999987,68.693038999999999],[-132.98803699999996,68.697754000000032],[-132.95861799999994,68.69859299999996],[-132.94305399999996,68.696365000000014],[-132.91833500000001,68.690262000000075],[-132.92056299999996,68.695526000000029],[-132.9336239999999,68.709717000000069],[-132.94250499999998,68.713318000000129],[-132.95471199999997,68.71527100000003],[-133.00723299999999,68.719711000000075],[-133.02252199999998,68.719711000000075],[-133.03527800000001,68.718048000000124],[-133.04583699999995,68.711379999999963],[-133.11248799999998,68.714996000000042],[-133.142517,68.718597000000102],[-133.15249599999993,68.720825000000048],[-133.25500499999998,68.758606000000043],[-133.25945999999999,68.763321000000076],[-133.26611299999996,68.778869999999984],[-133.26141399999995,68.785537999999974],[-133.24999999999994,68.788040000000024],[-133.23416099999992,68.785812000000078],[-133.225281,68.782211000000018],[-133.22082499999999,68.777480999999966],[-133.22082499999999,68.771652000000131],[-133.21664399999997,68.766937000000098],[-133.20306399999998,68.764160000000004],[-133.16168200000004,68.75749200000007],[-133.14752199999998,68.758330999999998],[-133.13891599999994,68.76249700000011],[-133.1397399999999,68.766937000000098],[-133.21139499999998,68.790817000000118],[-133.23498499999999,68.795821999999987],[-133.250854,68.798035000000141],[-133.28178399999996,68.794426000000101],[-133.28863499999989,68.793097999999986],[-133.30145300000004,68.789429000000041],[-133.32556199999999,68.787491000000045],[-133.33554099999992,68.789703000000145],[-133.34445199999993,68.793594000000041],[-133.35665899999992,68.801085999999941],[-133.35888699999998,68.806366000000025],[-133.35415599999993,68.832214000000135],[-133.332764,68.843872000000147],[-133.27722199999988,68.856934000000024],[-133.26583900000003,68.859421000000054],[-133.23776199999998,68.861099000000024],[-133.22192399999994,68.858871000000022],[-133.18804899999986,68.849152000000061],[-133.16778599999998,68.836655000000064],[-133.15917999999999,68.827209000000096],[-133.15222199999999,68.823044000000095],[-133.12191799999994,68.805817000000047],[-133.10833700000001,68.80304000000001],[-133.09167500000001,68.802199999999914],[-133.06222500000001,68.802765000000136],[-133.00527999999997,68.815262000000132],[-132.95803799999993,68.835541000000092],[-132.962219,68.846099999999922],[-132.9619449999999,68.85165400000011],[-132.95193499999999,68.854979999999955],[-132.93667599999998,68.854979999999955],[-132.86749299999997,68.846099999999922],[-132.85611,68.842758000000003],[-132.78594999999996,68.818428000000097],[-132.75363199999998,68.802765000000136],[-132.49194299999994,68.801085999999941],[-132.48055999999991,68.803589000000102],[-132.47027600000001,68.806931000000077],[-132.40557899999999,68.842758000000003],[-132.40029900000002,68.847214000000122],[-132.39529400000004,68.853867000000093],[-132.39279199999999,68.859985000000052],[-132.396973,68.864700000000084],[-132.49249299999997,68.90637200000009],[-132.50363200000004,68.909714000000065],[-132.55334499999998,68.916091999999992],[-132.56750499999998,68.915268000000026],[-132.57638499999996,68.911102000000142],[-132.574432,68.906097000000102],[-132.56777999999991,68.901657000000057],[-132.54055799999998,68.896103000000096],[-132.55557299999992,68.878311000000053],[-132.66528299999993,68.841934000000037],[-132.67806999999993,68.840271000000087],[-132.69360399999994,68.840546000000131],[-132.76229899999998,68.857491000000095],[-132.77094999999997,68.858147000000031],[-132.77778599999999,68.860153000000082],[-132.78027299999991,68.862983999999983],[-132.833618,68.917755000000113],[-132.85998499999988,68.989150999999993],[-132.868042,69.021378000000141],[-132.87191799999999,69.056641000000013],[-132.86944600000004,69.062759000000085],[-132.86553999999995,69.068329000000006],[-132.81527699999998,69.08638000000002],[-132.80526699999996,69.089432000000102],[-132.77111799999994,69.085541000000035],[-132.75418100000002,69.084717000000069],[-132.68917799999991,69.082489000000123],[-132.67501800000002,69.083328000000051],[-132.66332999999997,69.085815000000139],[-132.54083300000002,69.135268999999994],[-132.46081500000003,69.124695000000088],[-132.46472199999999,69.119141000000127],[-132.46749899999998,69.107208000000071],[-132.45916699999992,69.108032000000037],[-132.42861900000003,69.11775200000011],[-132.40777599999996,69.1244200000001],[-132.38500999999997,69.139160000000061],[-132.37887599999999,69.145264000000054],[-132.36886600000003,69.158600000000035],[-132.36138899999997,69.171371000000136],[-132.343323,69.203323000000069],[-132.34249899999992,69.220260999999994],[-132.33972199999994,69.22665399999994],[-132.33056599999998,69.230820000000051],[-132.32055699999995,69.233871000000079],[-132.30612199999996,69.234711000000118],[-132.22360199999997,69.213608000000022],[-132.2225039999999,69.141662999999994],[-132.16805999999997,69.213882000000126],[-132.11694299999999,69.242203000000075],[-132.05804399999994,69.242203000000075],[-131.99600199999998,69.251632999999913],[-131.96389799999997,69.256942999999978],[-131.87527499999999,69.279709000000025],[-131.86499000000003,69.283051000000114],[-131.8052669999999,69.316375999999991],[-131.79751599999986,69.321381000000088],[-131.79110700000001,69.327208999999982],[-131.71444699999995,69.397766000000104],[-131.72555499999993,69.401093000000003],[-131.73416099999997,69.400542999999971],[-131.80667099999999,69.39137299999993],[-131.950287,69.395827999999938],[-131.96499600000004,69.397217000000126],[-131.97277800000001,69.400269000000037],[-131.97000099999997,69.406372000000033],[-131.65222199999994,69.471924000000058],[-131.63919099999998,69.473602000000142],[-131.60748299999995,69.473312000000135],[-131.59136999999993,69.470825000000048],[-131.45889299999999,69.449141999999938],[-131.44528200000002,69.446365000000071],[-131.432953,69.437194999999974],[-131.42910799999993,69.434700000000134],[-131.43160999999998,69.431365999999969],[-131.43710299999992,69.429031000000066],[-131.45193499999999,69.420532000000094],[-131.46221899999995,69.417206000000078],[-131.47164900000001,69.413039999999967],[-131.47943099999998,69.408035000000098],[-131.48611500000004,69.402206000000092],[-131.53472899999997,69.333327999999995],[-131.52584799999994,69.329436999999928],[-131.49941999999999,69.332489000000066],[-131.42083700000001,69.361649000000114],[-131.41278099999994,69.366653000000099],[-131.40750099999997,69.373306000000071],[-131.38989300000003,69.404159999999933],[-131.377228,69.427483000000052],[-131.32193000000001,69.49331699999999],[-131.27166699999992,69.501099000000124],[-131.25723299999999,69.501663000000065],[-131.24581899999998,69.49832200000003],[-131.23330699999991,69.48414600000001],[-131.22387700000002,69.463608000000136],[-131.22027599999996,69.453323000000012],[-131.21664399999992,69.442748999999992],[-131.21276899999992,69.422202999999968],[-131.21093799999989,69.4125370000001],[-131.21026599999999,69.406044000000065],[-131.21304299999997,69.387497000000053],[-131.22360200000003,69.384430000000123],[-131.23330699999991,69.384720000000129],[-131.24526999999995,69.382202000000007],[-131.26641799999993,69.375809000000061],[-131.31777999999997,69.358871000000136],[-131.39529399999998,69.318603999999993],[-131.40307599999994,69.313873000000058],[-131.415009,69.301376000000062],[-131.41445899999997,69.296936000000017],[-131.33526599999993,69.316666000000055],[-131.32470699999999,69.31999200000007],[-131.19332899999995,69.365264999999965],[-131.18859900000001,69.368317000000104],[-131.16650400000003,69.404930000000093],[-131.16223099999996,69.490540000000067],[-131.16418499999997,69.495529000000033],[-131.23123199999992,69.543892000000028],[-131.25385999999997,69.571846000000107],[-131.22546399999999,69.580719000000101],[-131.20681799999994,69.55720500000001],[-131.15046699999994,69.518600000000049],[-131.13006599999994,69.516388000000006],[-131.11053499999997,69.485329000000036],[-131.130157,69.429375000000107],[-131.14851399999992,69.403534000000036],[-131.1458439999999,69.374695000000031],[-131.13583399999999,69.359985000000108],[-131.12832599999996,69.361923000000047],[-131.10122699999999,69.393921000000091],[-131.08525099999991,69.440514000000007],[-131.06085199999995,69.470688000000109],[-131.06617699999993,69.491096000000084],[-131.06394999999998,69.512389999999982],[-131.08924899999994,69.531914000000143],[-131.10920699999997,69.543449000000123],[-131.127838,69.554543000000024],[-131.14781199999993,69.561195000000112],[-131.16599999999988,69.567856000000006],[-131.18832399999991,69.574707000000046],[-131.19473300000004,69.57887299999993],[-131.19665499999991,69.584152000000131],[-131.19610599999999,69.589980999999966],[-131.19055199999997,69.596649000000127],[-131.183899,69.602478000000133],[-131.17471299999994,69.606369000000029],[-131.13833599999998,69.614150999999936],[-131.12359600000002,69.614700000000084],[-131.10748299999989,69.612488000000042],[-131.09359699999999,69.609421000000111],[-131.087219,69.605255],[-131.08306900000002,69.600539999999967],[-131.04577599999999,69.524429000000055],[-131.02999899999998,69.485809000000131],[-131.02780200000001,69.463882000000069],[-131.03390499999995,69.429153000000042],[-131.03695700000003,69.423035000000084],[-131.07028200000002,69.367477000000065],[-131.10803199999992,69.33526599999999],[-131.11331200000001,69.328598],[-131.11639400000001,69.32249500000006],[-131.10888699999998,69.321655000000021],[-131.09973100000002,69.325821000000076],[-131.05084199999993,69.354431000000091],[-131.02667199999996,69.383865000000128],[-130.98999000000003,69.449141999999938],[-130.99121099999996,69.50104500000009],[-130.9922029999999,69.504203999999959],[-130.99026500000002,69.539429000000041],[-130.98083499999996,69.543594000000041],[-130.96887200000003,69.545821999999987],[-130.952789,69.543320000000108],[-130.94638099999992,69.539154000000053],[-130.94222999999994,69.534148999999957],[-130.94055200000003,69.52915999999999],[-130.9244379999999,69.448593000000017],[-130.93971299999998,69.421486000000016],[-130.94154400000002,69.417816000000073],[-130.94555699999995,69.414314000000047],[-130.95039399999996,69.411324000000093],[-130.98580900000002,69.383040999999935],[-131.02583299999998,69.347878000000037],[-131.02984600000002,69.344368000000088],[-131.03317300000003,69.340377999999987],[-131.03199799999999,69.337212000000022],[-131.03668200000004,69.310532000000023],[-131.02780200000001,69.306641000000127],[-131.01696800000002,69.307480000000055],[-131.01419099999993,69.313873000000058],[-131.01333599999998,69.319442999999922],[-131.010559,69.325546000000088],[-131.00500499999998,69.332214000000022],[-130.99832200000003,69.338043000000027],[-130.95693999999997,69.371917999999994],[-130.93194599999998,69.38348400000001],[-130.92710899999992,69.386490000000038],[-130.91844200000003,69.386818000000005],[-130.91177400000004,69.384818999999993],[-130.90928599999995,69.381980999999996],[-130.89611799999994,69.380539000000056],[-130.89889500000004,69.352768000000026],[-130.90249600000004,69.340820000000122],[-130.90640300000001,69.328872999999987],[-130.91427599999992,69.318313999999987],[-130.93194599999998,69.304977000000122],[-130.93972799999995,69.299987999999985],[-130.96362299999987,69.285262999999986],[-131.00057999999996,69.256653000000142],[-131.024719,69.209717000000126],[-131.01806599999992,69.141936999999928],[-131.01419099999993,69.136932000000058],[-130.99832200000003,69.134720000000016],[-130.9372249999999,69.134430000000009],[-130.92861899999997,69.145264000000054],[-130.93112199999996,69.222488000000055],[-130.93276999999995,69.227767999999912],[-130.93917799999991,69.232208000000128],[-130.9513849999999,69.246368000000075],[-130.950287,69.257766999999944],[-130.94723499999998,69.264160000000118],[-130.94168100000002,69.270538000000045],[-130.93499800000001,69.276382000000069],[-130.82110599999993,69.374695000000031],[-130.81304899999998,69.379700000000128],[-130.77139299999999,69.398880000000077],[-130.76055899999994,69.402206000000092],[-130.73165899999998,69.403320000000065],[-130.71472199999999,69.402206000000092],[-130.70028699999995,69.402771000000143],[-130.689728,69.406096999999988],[-130.66027800000001,69.42942800000003],[-130.65472399999993,69.43609600000002],[-130.64529400000004,69.454712000000029],[-130.65280200000001,69.457763999999941],[-130.667236,69.457214000000079],[-130.74777199999994,69.449141999999938],[-130.71499599999993,69.462203999999986],[-130.52502400000003,69.543594000000041],[-130.50723300000004,69.552474999999959],[-130.47860700000001,69.574707000000046],[-130.392517,69.645828000000108],[-130.385559,69.651657000000114],[-130.36248799999998,69.673874000000012],[-130.36608899999987,69.686371000000008],[-130.28112799999991,69.700271999999984],[-130.03308099999998,69.731934000000081],[-129.691956,69.784424000000115],[-129.67251599999992,69.792480000000012],[-129.65307599999994,69.800536999999963],[-129.624146,69.812485000000038],[-129.60220300000003,69.818877999999984],[-129.41332999999992,69.838042999999971],[-129.31555199999997,69.84664900000007],[-129.24276699999984,69.849990999999989],[-129.17999299999997,69.849152000000004],[-129.14862099999993,69.849990999999989],[-129.09942599999994,69.858871000000022],[-129.05889899999988,69.873871000000008],[-129.04196199999996,69.883606000000043],[-129.02722199999999,69.895264000000111],[-129.01501499999995,69.908325000000048],[-129.00058000000001,69.933043999999995],[-128.98831199999995,69.946091000000024],[-128.97360200000003,69.95748900000001],[-128.96527100000003,69.962494000000049],[-128.95526100000001,69.966385000000116],[-128.94415300000003,69.969437000000084],[-128.93194600000004,69.971649000000127],[-128.90084799999994,69.971924000000115],[-128.88723799999997,69.968872000000033],[-128.86471599999999,69.961655000000121],[-128.85610999999989,69.957764000000054],[-128.85470599999996,69.954711999999915],[-128.93444799999992,69.844146999999964],[-128.94665499999991,69.841934000000037],[-128.96417199999996,69.843322999999998],[-129.03805499999999,69.851929000000098],[-129.08248899999995,69.850540000000137],[-129.10971099999989,69.847763000000043],[-129.134186,69.843322999999998],[-129.14529399999998,69.840271000000087],[-129.15612799999997,69.836928999999998],[-129.163635,69.83137499999998],[-129.169464,69.824706999999989],[-129.16027799999995,69.715819999999951],[-129.15390000000002,69.700271999999984],[-129.14999399999994,69.695526000000029],[-129.14138800000001,69.691649999999981],[-129.13027999999991,69.688034000000073],[-128.97747800000002,69.674698000000149],[-128.96304299999997,69.675262000000089],[-128.92501799999997,69.68081699999999],[-128.78613300000001,69.760818000000086],[-128.64001500000001,69.84304800000001],[-128.54473899999999,69.885268999999994],[-128.44195599999989,69.921920999999998],[-128.32415800000001,69.948318000000086],[-128.31054700000004,69.958327999999995],[-128.30862400000001,70.008041000000105],[-128.31222499999996,70.012772000000041],[-128.349152,70.03915400000011],[-128.35638399999999,70.048874000000012],[-128.36138900000003,70.058868000000018],[-128.36972000000003,70.095825000000048],[-128.36831699999988,70.101654000000053],[-128.36193800000001,70.108322000000044],[-128.35333299999996,70.113037000000077],[-128.34304799999995,70.116928000000144],[-128.31054700000004,70.126923000000033],[-128.24414099999996,70.146378000000027],[-128.10916099999997,70.182204999999954],[-128.09414700000002,70.182479999999998],[-128.05667099999994,70.178039999999953],[-128.01055899999994,70.178314000000114],[-127.99472000000003,70.179428000000087],[-127.96833799999996,70.182754999999986],[-127.84861799999999,70.208878000000141],[-127.61501299999992,70.228867000000093],[-127.58500699999996,70.229431000000034],[-127.54998799999998,70.22665400000011],[-127.51500699999985,70.22164900000007],[-127.51750199999998,70.225540000000137],[-127.55082700000003,70.236374000000012],[-127.578056,70.242751999999996],[-127.61305199999987,70.247757000000036],[-127.71665999999999,70.259720000000073],[-127.73166700000002,70.261382999999967],[-127.79194599999994,70.25999500000006],[-127.85833699999995,70.263046000000088],[-127.87581599999987,70.264435000000105],[-128.02835099999993,70.28637700000013],[-128.03695700000003,70.290543000000071],[-128.06664999999987,70.307205000000067],[-128.07611099999991,70.343597000000045],[-128.07843000000003,70.346436000000097],[-128.07144199999988,70.348267000000078],[-128.0616149999999,70.347923000000037],[-128.05343599999998,70.346092000000056],[-128.04661599999986,70.343933000000106],[-128.02711499999998,70.340766999999971],[-127.98889200000002,70.345824999999991],[-127.97250399999996,70.34526100000005],[-127.96000699999996,70.347488000000112],[-127.94860799999998,70.350540000000024],[-127.94082600000002,70.356094000000041],[-127.90194699999995,70.393326000000059],[-127.91555800000003,70.396652000000074],[-127.93195300000002,70.396942000000081],[-127.95417799999996,70.39387499999998],[-127.97693600000002,70.387772000000041],[-127.987213,70.383880999999974],[-128.02166699999998,70.374695000000031],[-128.06500199999994,70.377312000000018],[-128.13833599999992,70.37598400000013],[-128.15183999999994,70.380310000000122],[-128.15933199999995,70.385483000000022],[-128.19665499999996,70.391937000000041],[-128.19888300000002,70.40248100000008],[-128.19055200000003,70.436646000000053],[-128.17749000000003,70.460815000000139],[-128.16055299999999,70.491364000000033],[-128.15249600000004,70.503601000000003],[-128.13583399999993,70.523041000000148],[-128.006958,70.588593000000003],[-127.99665799999997,70.590546000000131],[-127.97138999999999,70.583878000000141],[-127.90360999999996,70.562485000000038],[-127.83556399999998,70.540817000000118],[-127.68028300000003,70.486098999999967],[-127.51583900000003,70.426086000000055],[-127.42859599999991,70.393326000000059],[-127.27471899999995,70.326096000000064],[-127.24889399999995,70.314148000000046],[-127.18831599999999,70.280548000000124],[-127.173607,70.272217000000069],[-127.125,70.237198000000149],[-127.07640100000003,70.196365000000071],[-127.05499299999997,70.178039999999953],[-127.03443899999996,70.148880000000077],[-126.89334099999996,70.008880999999974],[-126.87888299999997,70.000548999999978],[-126.81276700000001,69.910537999999974],[-126.81194299999993,69.905258000000117],[-126.80526700000001,69.895538000000045],[-126.74388099999999,69.813873000000115],[-126.71472199999999,69.775269000000094],[-126.70584099999996,69.766098000000113],[-126.69999699999994,69.76138300000008],[-126.6808319999999,69.748031999999967],[-126.67250100000001,69.743866000000082],[-126.62053699999996,69.719986000000063],[-126.60166899999996,69.712479000000144],[-126.45944199999997,69.644149999999968],[-126.29055799999998,69.558594000000028],[-126.26777599999997,69.540817000000118],[-126.26722699999993,69.535537999999974],[-126.25583599999999,69.526657000000057],[-126.11221299999994,69.469436999999971],[-126.08860800000002,69.462493999999992],[-126.0497279999999,69.45277400000009],[-126.03666699999997,69.449706999999989],[-125.98889199999996,69.430542000000003],[-125.96806299999997,69.423035000000084],[-125.95749699999999,69.419434000000024],[-125.91055299999999,69.405548000000067],[-125.88474300000001,69.399155000000064],[-125.83972199999999,69.389160000000004],[-125.55110200000001,69.33718900000008],[-125.42639200000002,69.312180000000126],[-125.41528299999987,69.313019000000054],[-125.37249800000001,69.33580000000012],[-125.36554699999999,69.342468000000054],[-125.39083900000003,69.370513999999957],[-125.40110800000002,69.374130000000036],[-125.37748699999997,69.396087999999963],[-125.21000699999996,69.381912],[-125.16528299999999,69.381638000000066],[-125.14167800000001,69.38638300000008],[-125.13249200000001,69.391098000000113],[-125.12554899999998,69.397491000000059],[-125.11193800000001,69.415817000000061],[-125.08944700000001,69.449706999999989],[-125.11277799999999,69.464157000000114],[-125.12304699999993,69.468032999999991],[-125.462784,69.452469000000065],[-125.53056300000003,69.435242000000073],[-125.609444,69.415253000000121],[-125.62249799999995,69.418593999999985],[-125.61805700000002,69.42442299999999],[-125.57805599999995,69.471649000000014],[-125.48832700000003,69.50749200000007],[-125.47721899999993,69.510268999999994],[-125.46472199999988,69.512207000000103],[-125.449997,69.51249700000011],[-125.30695300000002,69.499984999999981],[-125.14723200000003,69.485519000000124],[-125.13166799999993,69.484694999999988],[-125.11805699999996,69.485793999999942],[-125.12082700000002,69.490798999999981],[-125.13137799999993,69.49441500000006],[-125.18554699999987,69.507202000000063],[-125.21640000000002,69.513031000000069],[-125.25499699999995,69.523026000000016],[-125.265556,69.526917000000083],[-125.41000399999996,69.628036000000066],[-125.41306299999997,69.633041000000105],[-125.41361999999992,69.638321000000133],[-125.41166699999991,69.64387499999998],[-125.37805200000003,69.678589000000045],[-125.36554699999999,69.690262000000075],[-125.35527000000002,69.694138000000123],[-125.079453,69.742752000000053],[-125.06555200000003,69.743591000000038],[-125.04972800000002,69.743042000000116],[-125.016953,69.740524000000107],[-125,69.738190000000088],[-124.98581699999994,69.734711000000004],[-124.97528099999994,69.730820000000108],[-124.96749899999998,69.726929000000041],[-124.93554699999999,69.678314],[-124.92500299999995,69.644714000000135],[-124.90638699999994,69.65387000000004],[-124.88166799999999,69.670532000000037],[-124.82195300000001,69.714995999999985],[-124.82972699999999,69.719147000000078],[-124.86165599999993,69.735809000000074],[-124.88555899999994,69.748031999999967],[-124.89750700000002,69.750549000000035],[-125.01418299999995,69.750534000000016],[-125.22805799999998,69.759140000000116],[-125.24137899999999,69.760254000000089],[-125.25890399999992,69.784103000000016],[-125.27639799999997,69.808243000000061],[-125.225281,69.839676000000054],[-125.20638999999994,69.849120999999968],[-125.19611399999997,69.853026999999997],[-125.18443299999996,69.855804000000091],[-125.16750300000001,69.85414099999997],[-125.16194199999995,69.849700999999982],[-125.15722700000003,69.823563000000036],[-125.15666199999998,69.818283000000122],[-125.17083700000001,69.805496000000119],[-125.170547,69.800216999999975],[-125.165009,69.795502000000113],[-125.15055799999999,69.793564000000003],[-125.05666399999996,69.795242000000087],[-125.03222700000003,69.817200000000071],[-125.00945300000001,69.845520000000079],[-124.94748700000002,69.910537999999974],[-124.94027699999987,69.916930999999977],[-124.89334100000002,69.940262000000018],[-124.76444999999995,69.970824999999991],[-124.79527299999995,70.008880999999974],[-124.82695000000001,70.012496999999996],[-124.88694799999996,70.011932000000002],[-124.99027999999998,70.00610400000005],[-125.025284,69.998000999999988],[-125.04695100000004,69.989990000000091],[-125.08640299999996,69.968535999999915],[-125.10722399999997,69.953522000000078],[-125.10759699999994,69.947975000000099],[-125.11138899999997,69.941940000000102],[-125.12389400000001,69.939956999999993],[-125.19082600000002,69.932433999999944],[-125.20667299999991,69.933228000000099],[-125.21721599999995,69.936905000000081],[-125.21777299999997,69.942337000000066],[-125.20221699999991,69.998581000000058],[-125.19748700000002,70.004501000000118],[-125.18831599999999,70.009033000000102],[-125.016953,70.076218000000097],[-125,70.079987000000017],[-124.98972300000003,70.078598],[-124.98166700000002,70.074432000000115],[-124.97556299999991,70.064697000000024],[-124.97528099999994,70.059418000000051],[-124.98194899999999,70.047760000000039],[-124.98665599999998,70.041655999999989],[-124.99610899999999,70.036925999999994],[-124.99768799999998,70.036925999999994],[-125,70.036925999999994],[-125.03999299999992,70.029068000000109],[-125.04804999999999,70.023041000000092],[-125.04527300000001,70.017990000000111],[-125.03443900000002,70.013931000000014],[-125.01999699999993,70.011993000000075],[-124.90139799999997,70.021378000000141],[-124.86332699999997,70.027206000000092],[-124.85527000000002,70.03054800000001],[-124.86972000000003,70.032760999999994],[-124.93916299999995,70.02748100000008],[-124.95500199999998,70.028320000000065],[-124.95694699999996,70.032211000000132],[-124.93916299999995,70.042480000000126],[-124.92859599999997,70.046097000000088],[-124.81416300000001,70.061645999999996],[-124.71444700000001,70.069153000000142],[-124.67527799999993,70.071930000000066],[-124.64527900000002,70.071930000000066],[-124.63474300000001,70.068329000000006],[-124.63417099999992,70.057754999999929],[-124.60333300000002,70.019714000000135],[-124.59777799999995,70.01527400000009],[-124.58473199999992,70.011932000000002],[-124.56861899999996,70.011108000000036],[-124.55583199999995,70.013046000000145],[-124.45754999999997,70.035706000000118],[-124.45172100000002,70.038376000000028],[-124.44672400000002,70.0417020000001],[-124.423607,70.056366000000139],[-124.44138299999997,70.076096000000121],[-124.449432,70.08027600000014],[-124.506958,70.100266000000147],[-124.51999699999999,70.103867000000037],[-124.54888899999997,70.109984999999938],[-124.58556399999992,70.115265000000022],[-124.59944199999995,70.114151000000049],[-124.62053700000001,70.106644000000074],[-124.63221699999997,70.103867000000037],[-124.68138099999999,70.094436999999971],[-124.71972699999998,70.088593000000117],[-124.735817,70.089432000000102],[-124.73889200000002,70.094436999999971],[-124.75195299999996,70.116378999999995],[-124.75250199999999,70.121643000000006],[-124.74388099999999,70.127197000000137],[-124.734444,70.131927000000019],[-124.70472699999993,70.14498900000001],[-124.69415299999997,70.148605000000089],[-124.68028299999997,70.149719000000061],[-124.43611099999998,70.15109300000006],[-124.39138800000001,70.134155000000135],[-124.35861199999988,70.068603999999993],[-124.36945299999996,70.034987999999998],[-124.37193300000001,70.029434000000037],[-124.38394199999993,70.017761000000007],[-124.41776999999996,69.98942599999998],[-124.42610199999996,69.983871000000079],[-124.45944199999991,69.956375000000037],[-124.42971799999992,69.849425999999937],[-124.44249000000002,69.832763999999997],[-124.45722999999998,69.819716999999969],[-124.47972099999998,69.803589000000102],[-124.50167799999991,69.784424000000115],[-124.50361599999997,69.730820000000108],[-124.5005569999999,69.725815000000068],[-124.49526999999995,69.72137500000008],[-124.487503,69.717209000000139],[-124.45916699999998,69.710815000000082],[-124.36138900000003,69.701096000000121],[-124.29499800000002,69.695251000000042],[-124.28111299999995,69.696091000000081],[-124.26862299999993,69.69802900000002],[-124.2433319999999,69.714705999999978],[-124.23388699999998,69.719147000000078],[-124.21305799999993,69.726654000000053],[-124.20140099999998,69.72943099999992],[-124.1875,69.73054500000012],[-124.06973299999987,69.723602000000085],[-124.04083300000002,69.701385000000016],[-124.05526700000001,69.670532000000037],[-124.21193699999998,69.586380000000077],[-124.24054699999994,69.550262000000032],[-124.24999999999994,69.54553199999998],[-124.28028899999998,69.533600000000035],[-124.33444199999997,69.516936999999984],[-124.37777699999992,69.496933000000013],[-124.39527899999996,69.486923000000104],[-124.51888999999994,69.404159999999933],[-124.51390099999998,69.399428999999998],[-124.48000300000001,69.378036000000066],[-124.47222899999991,69.37414600000011],[-124.44666299999994,69.367203000000131],[-124.32584399999996,69.351929000000041],[-124.26363399999997,69.348602000000085],[-124.21888699999994,69.347762999999929],[-124.16194200000001,69.349152000000117],[-124.12026999999995,69.351379000000009],[-124.09528399999999,69.354980000000069],[-124.01640299999997,69.379150000000095],[-123.962219,69.383040999999935],[-123.83138999999994,69.38888500000013],[-123.81696299999999,69.38888500000013],[-123.73055999999997,69.377472000000125],[-123.702789,69.371094000000028],[-123.69776899999988,69.366378999999995],[-123.69748699999997,69.361099000000081],[-123.69248999999996,69.356644000000074],[-123.67999299999991,69.353317000000118],[-123.66639700000002,69.354156000000103],[-123.502792,69.377197000000137],[-123.47778299999993,69.381088000000034],[-123.46611000000001,69.383881000000031],[-123.41915899999998,69.404434000000037],[-123.40750100000002,69.416092000000106],[-123.43276999999995,69.423035000000084],[-123.44027699999998,69.427200000000084],[-123.45084399999996,69.446930000000066],[-123.45084399999996,69.452209000000039],[-123.44833399999993,69.457763999999941],[-123.44332900000001,69.463882000000069],[-123.43611099999998,69.470261000000107],[-123.42859599999991,69.476379000000065],[-123.39998599999996,69.490265000000079],[-123.36527999999998,69.49832200000003],[-123.33999599999999,69.502213000000097],[-123.30110200000001,69.506653000000085],[-123.27306399999998,69.507767000000115],[-123.26139799999999,69.504990000000021],[-123.26287799999994,69.500267000000008],[-123.25723299999999,69.496094000000085],[-123.19275699999997,69.490814],[-123.17999299999991,69.492477000000122],[-123.16861,69.4952550000001],[-123.16332999999992,69.501389000000131],[-123.13166799999999,69.559708000000001],[-123.12666300000001,69.571105999999986],[-123.09638999999999,69.670532000000037],[-123.09612299999998,69.686371000000008],[-123.10637700000001,69.743042000000116],[-123.10888699999998,69.747756999999922],[-123.11665299999993,69.75221300000004],[-123.10527000000002,69.77915999999999],[-123.01583900000003,69.818329000000062],[-122.97083999999995,69.830826000000002],[-122.95916699999992,69.833603000000096],[-122.94332900000001,69.832763999999997],[-122.90499899999998,69.822220000000129],[-122.876938,69.810257000000092],[-122.85388199999994,69.803040000000124],[-122.82584400000002,69.796371000000079],[-122.80803699999996,69.793593999999985],[-122.79332699999992,69.793593999999985],[-122.779449,69.794707999999957],[-122.76666299999999,69.796371000000079],[-122.754997,69.799149000000057],[-122.74610899999999,69.80442800000003],[-122.66443599999997,69.818054000000018],[-122.61554699999999,69.812195000000031],[-122.58833300000003,69.807479999999998],[-122.47778299999999,69.802765000000136],[-122.45805399999995,69.802475000000129],[-122.24333200000001,69.802200000000084],[-122.12777699999992,69.802475000000129],[-122.06220999999999,69.813309000000004],[-122.04415899999998,69.813599000000011],[-121.89639299999999,69.805542000000059],[-121.71916199999993,69.79582199999993],[-121.68388400000003,69.793593999999985],[-121.44304699999998,69.765549000000021],[-121.41639700000002,69.760818000000086],[-121.38054699999992,69.75221300000004],[-121.33332799999994,69.740814000000114],[-121.28611799999999,69.729156000000103],[-121.18305999999995,69.702484000000027],[-121.12027,69.6827550000001],[-121.08667000000003,69.673598999999967],[-121.03555299999999,69.663315000000125],[-121.00890400000003,69.658325000000104],[-120.93415800000002,69.648604999999975],[-120.88110399999994,69.638885000000073],[-120.82556199999999,69.62359600000002],[-120.79638699999992,69.613036999999963],[-120.760559,69.598328000000095],[-120.73999000000003,69.585266000000104],[-120.73528299999992,69.580276000000026],[-120.72860700000001,69.575821000000019],[-120.70111099999997,69.558594000000028],[-120.67859599999991,69.546097000000032],[-120.61609599999997,69.520264000000054],[-120.39334100000002,69.439697000000081],[-120.27528399999994,69.404159999999933],[-120.23166700000002,69.391662999999937],[-119.98222399999986,69.344711000000018],[-119.93499800000001,69.339705999999978],[-119.91776999999996,69.338318000000072],[-119.63527699999997,69.315810999999997],[-119.46140300000002,69.303314],[-119.33500700000002,69.301926000000094],[-119.31582599999996,69.301086000000055],[-119.23000300000001,69.294434000000138],[-118.94082600000002,69.259430000000066],[-118.85555999999997,69.252487000000087],[-118.84056099999992,69.250548999999978],[-118.79998799999993,69.243317000000047],[-118.69360399999999,69.223602000000028],[-118.65527299999997,69.215820000000065],[-118.64472999999998,69.212494000000049],[-118.63639799999993,69.20887799999997],[-118.58168000000001,69.180267000000072],[-118.55248999999998,69.163605000000075],[-118.53999299999998,69.154984000000127],[-118.502228,69.134720000000016],[-118.48554999999999,69.12692300000009],[-118.45777900000002,69.117477000000122],[-118.432503,69.112198000000092],[-118.18611099999998,69.063873000000115],[-118.08167999999995,69.031371999999976],[-118.03555299999999,69.019714000000135],[-118.010559,69.014434999999992],[-117.87053700000001,68.985535000000141],[-117.83693700000003,68.982483000000002],[-117.74221799999998,68.978043000000014],[-117.63390400000003,68.973602000000085],[-117.59612300000003,68.971649000000127],[-117.5625,68.968597000000045],[-117.41583299999996,68.953598],[-117.26917300000002,68.915268000000026],[-117.19110099999995,68.893874999999923],[-117.15387699999997,68.885544000000039],[-117.13667299999997,68.885544000000039],[-116.978882,68.899993999999992],[-116.96639999999996,68.902206000000035],[-116.96056399999992,68.907211000000075],[-116.93907899999994,68.911003000000107],[-116.88667299999992,68.90887500000008],[-116.74445299999996,68.880538999999999],[-116.515289,68.858032000000094],[-116.50029000000001,68.857208000000128],[-116.43611099999998,68.858597000000088],[-116.42054699999994,68.859146000000067],[-116.41111799999999,68.862761999999918],[-116.40666199999998,68.868590999999924],[-116.40943899999996,68.879974000000118],[-116.39862099999999,68.882751000000042],[-116.38137799999998,68.882477000000108],[-116.36472300000003,68.880813999999987],[-116.34028599999994,68.875259000000085],[-116.28555299999999,68.859711000000118],[-116.22721899999993,68.839157000000114],[-116.22138999999999,68.834427000000119],[-116.21362299999998,68.830551000000014],[-116.12304699999993,68.818329000000062],[-116.10637700000001,68.816666000000112],[-115.99388099999999,68.806641000000013],[-115.96000699999996,68.804703000000075],[-115.94915800000001,68.807479999999998],[-115.94138299999997,68.811920000000043],[-115.94471699999997,68.816940000000045],[-115.95249899999993,68.820831000000112],[-116.12193299999996,68.872481999999991],[-116.31639099999995,68.94747899999993],[-116.32417299999992,68.951660000000004],[-116.33000199999992,68.956100000000049],[-116.325287,68.961929000000055],[-116.31610099999995,68.965546000000018],[-116.30526699999996,68.968597000000045],[-116.26139799999987,68.979980000000069],[-116.239441,68.985535000000141],[-116.20500199999987,68.984985000000108],[-116.19027699999998,68.982758000000047],[-116.068893,68.960541000000148],[-116.00750700000003,68.946365000000128],[-115.96833799999996,68.938582999999994],[-115.88417099999998,68.924698000000092],[-115.86749299999991,68.922759999999982],[-115.77806099999987,68.936371000000122],[-115.76695299999994,68.939148000000046],[-115.77500900000001,68.943039000000113],[-115.80943299999996,68.952208999999982],[-115.83332799999999,68.992477000000008],[-115.59306300000003,68.971649000000127],[-115.44638099999992,68.937759000000028],[-115.06471299999993,68.867476999999951],[-115.05055199999993,68.868866000000139],[-115.03500400000001,68.869140999999956],[-115.01640299999997,68.868042000000003],[-114.98999000000003,68.862761999999918],[-114.97805800000003,68.859146000000067],[-114.82167099999998,68.809707999999944],[-114.79194599999994,68.799423000000047],[-114.77916699999992,68.77915999999999],[-114.77055399999995,68.769440000000088],[-114.74916100000002,68.751389000000074],[-114.729446,68.744431000000134],[-114.71528599999999,68.742203000000131],[-114.69666299999994,68.740814],[-114.66555799999998,68.741653000000099],[-114.57833899999997,68.728043000000071],[-114.54250300000001,68.719436999999971],[-114.44833399999999,68.689697000000024],[-114.44055200000003,68.685805999999957],[-114.46028100000001,68.670532000000094],[-114.46528599999999,68.664428999999927],[-114.46221899999995,68.659424000000058],[-114.45667300000002,68.654709000000025],[-114.40471600000001,68.614990000000148],[-114.39499699999993,68.611374000000069],[-114.30444299999988,68.586929000000055],[-114.23361199999994,68.569443000000092],[-114.12165799999997,68.517487000000017],[-114.10665899999992,68.509430000000066],[-114.08889799999997,68.496368000000018],[-114.07055699999995,68.477478000000076],[-114.064438,68.467209000000025],[-114.06054699999993,68.456650000000025],[-114.01112399999994,68.250275000000045],[-114.01390100000003,68.244979999999998],[-114.02333099999998,68.24136400000009],[-114.03582799999998,68.23942599999998],[-114.28806299999997,68.228866999999923],[-114.32000700000003,68.229156000000046],[-114.33805799999993,68.230545000000063],[-114.35166900000002,68.233597000000145],[-114.37053700000001,68.240540000000124],[-114.37805199999997,68.24443100000002],[-114.38305700000001,68.248871000000065],[-114.390556,68.253052000000139],[-114.41166699999997,68.259430000000066],[-114.42555199999998,68.261932000000002],[-114.44167299999987,68.263610999999969],[-114.47361799999987,68.26388500000013],[-114.70249899999999,68.250275000000045],[-114.75527999999997,68.189697000000137],[-114.76471699999996,68.186096000000077],[-114.861107,68.153594999999996],[-114.87193300000001,68.151093000000117],[-114.89639299999999,68.146942000000024],[-114.92971799999992,68.14776599999999],[-114.97749299999992,68.153319999999951],[-115.00750700000003,68.157211000000018],[-115.076683,68.168869000000086],[-115.17054699999994,68.180542000000116],[-115.22501399999993,68.184142999999949],[-115.23721299999988,68.18220500000001],[-115.24194299999999,68.176376000000005],[-115.24388099999993,68.041367000000093],[-115.24054699999994,68.036377000000073],[-115.23528299999998,68.03166200000004],[-115.220551,68.023880000000077],[-115.204453,68.021927000000119],[-115.17138699999998,68.021102999999982],[-115.15638699999994,68.021652000000131],[-115.12526699999995,68.020263999999997],[-115.11389200000002,68.017487000000131],[-115.11054999999999,68.012207000000046],[-115.11665299999999,68.007217000000026],[-115.12581599999999,68.003601000000117],[-115.20472699999993,67.978043000000014],[-115.216949,67.976089000000002],[-115.34221599999995,67.958037999999988],[-115.50334199999986,67.934418000000051],[-115.52749599999999,67.930267000000129],[-115.53639199999998,67.926651000000049],[-115.5425029999999,67.92164600000001],[-115.53694200000001,67.905257999999947],[-115.53388999999993,67.899993999999992],[-115.52834299999995,67.895538000000045],[-115.521118,67.891663000000108],[-115.50723299999993,67.889435000000105],[-115.281387,67.866379000000109],[-115.27610800000002,67.861649000000057],[-115.20028699999995,67.821930000000123],[-115.19082599999996,67.818329000000062],[-115.11361699999998,67.798599000000081],[-115.1036069999999,67.796646000000123],[-115.02887699999985,67.786652000000117],[-115.01251200000002,67.78637700000013],[-114.99916099999996,67.787491000000102],[-114.93611099999998,67.79553199999998],[-114.88667299999997,67.802764999999965],[-114.84916699999991,67.807755000000043],[-114.80999800000001,67.812195000000031],[-114.78307299999989,67.814423000000033],[-114.75334199999992,67.814986999999974],[-114.73693799999995,67.814697000000137],[-114.718887,67.813309000000061],[-114.70749699999999,67.810531999999967],[-114.6866609999999,67.804153000000099],[-114.67722299999997,67.800812000000064],[-114.65527299999997,67.788879000000009],[-114.64499699999999,67.779709000000139],[-114.637787,67.775543000000027],[-114.29778299999992,67.718597000000102],[-114.28362300000003,67.717484000000013],[-114.27139299999999,67.719436999999971],[-114.25029000000001,67.724700999999982],[-114.24109599999991,67.728317000000004],[-114.22000099999997,67.733871000000022],[-114.19583099999994,67.737762000000089],[-114.1808319999999,67.738037000000077],[-114.14835399999993,67.736923000000104],[-114.11472300000003,67.733871000000022],[-113.99694799999992,67.723038000000031],[-113.98332199999999,67.720535000000041],[-113.94943199999994,67.711655000000007],[-113.89250199999992,67.696930000000066],[-113.84584000000001,67.691359999999975],[-113.76862299999999,67.691086000000041],[-113.70889299999999,67.691925000000026],[-113.55082699999997,67.698029000000076],[-113.25583599999999,67.704436999999984],[-113.24082899999996,67.704436999999984],[-113.20694700000001,67.702484000000084],[-113.17804699999988,67.698029000000076],[-113.15556300000003,67.692200000000014],[-113.11916399999996,67.678040000000124],[-113.10777300000001,67.674988000000042],[-113.06777999999997,67.667480000000012],[-113.04998799999993,67.666092000000106],[-112.965012,67.669708000000128],[-112.73972300000003,67.669434000000024],[-112.3958439999999,67.679153000000042],[-112.370003,67.68193100000002],[-112.348343,67.687194999999974],[-112.34056099999998,67.691359999999975],[-112.33361799999989,67.696365000000014],[-112.18331899999993,67.727768000000083],[-111.912781,67.754166000000055],[-111.88305700000001,67.754439999999988],[-111.79972799999996,67.75082400000008],[-111.66000399999996,67.733322000000044],[-111.57277699999992,67.744431000000134],[-111.45861799999989,67.763046000000088],[-111.37082699999991,67.781097000000045],[-111.32250999999991,67.806931000000077],[-111.31276699999995,67.810531999999967],[-111.29083299999996,67.815536000000066],[-111.200287,67.834152000000131],[-111.17582699999991,67.837494000000049],[-111.15943900000002,67.836655000000064],[-111.14835399999998,67.833602999999982],[-111.14388999999994,67.82887299999993],[-111.146118,67.822769000000108],[-111.12082700000002,67.780823000000112],[-111.03443899999996,67.764160000000061],[-111.01834100000002,67.763321000000076],[-111.00583599999999,67.764998999999989],[-110.84056099999998,67.800262000000032],[-110.83222999999998,67.804428000000087],[-110.80972300000002,67.818604000000107],[-110.78859699999998,67.833602999999982],[-110.78278399999994,67.839431999999988],[-110.75890400000003,67.852767999999969],[-110.74221799999992,67.861099000000024],[-110.73249800000002,67.86442599999998],[-110.41443600000002,67.947754000000145],[-110.33999599999999,67.965546000000018],[-110.1991579999999,67.972214000000008],[-110.17999299999991,67.994431000000077],[-110.1725009999999,67.999420000000043],[-110.162781,68.00277699999998],[-110.15167200000002,68.005264000000068],[-110.13054699999998,68.008040999999992],[-110.11694299999994,68.008881000000031],[-110.08389299999999,68.006943000000092],[-110.07084699999996,68.004165999999998],[-110.04888900000003,67.997756999999922],[-110.00110599999999,67.979705999999965],[-109.979446,67.967483999999956],[-109.97083999999995,67.958037999999988],[-109.96888699999994,67.953049000000021],[-109.96749899999992,67.941360000000145],[-109.97028399999999,67.929703000000018],[-109.97749299999987,67.911377000000016],[-109.99166899999994,67.891373000000044],[-110.00110599999999,67.872482000000048],[-110.00361599999991,67.866379000000109],[-110.00361599999991,67.860535000000084],[-109.99749799999995,67.850815000000011],[-109.98889200000002,67.841370000000097],[-109.98249800000002,67.837204000000042],[-109.97389199999998,67.833602999999982],[-109.96305799999993,67.830276000000026],[-109.948036,67.830276000000026],[-109.93554699999999,67.831940000000031],[-109.92582699999997,67.835266000000104],[-109.91722099999998,67.839157],[-109.91251399999999,67.845824999999934],[-109.912216,67.85165399999994],[-109.91639700000002,67.856093999999985],[-109.94888300000002,67.877197000000081],[-109.95305599999995,67.881927000000076],[-109.94193999999993,67.884430000000066],[-109.89028899999994,67.879974000000004],[-109.86193799999995,67.874985000000038],[-109.823059,67.866089000000102],[-109.81416299999995,67.862198000000035],[-109.80777,67.858032000000094],[-109.76722699999993,67.827773999999977],[-109.73082699999998,67.791931000000091],[-109.72917200000001,67.767761000000121],[-109.73581699999994,67.74275200000011],[-109.74553700000001,67.739426000000094],[-109.75167799999991,67.733597000000088],[-109.74973299999994,67.728592000000049],[-109.7369379999999,67.720261000000107],[-109.72609699999998,67.716933999999981],[-109.55222300000003,67.687759000000142],[-109.53472899999991,67.685806000000014],[-109.52250700000002,67.687484999999981],[-109.51139799999999,67.689697000000081],[-109.50279199999994,67.693862999999965],[-109.48805199999993,67.703873000000044],[-109.37026999999995,67.729155999999989],[-109.25361599999997,67.731934000000138],[-109.21028100000001,67.732208000000071],[-109.15915699999999,67.727478000000019],[-109.06582600000002,67.714157000000114],[-109.05972300000002,67.709991000000002],[-109.01471699999996,67.676651000000106],[-109.00279199999994,67.662491000000045],[-108.91915899999992,67.535812000000135],[-108.921944,67.529709000000025],[-108.95388800000001,67.511932000000115],[-108.96362299999998,67.5086060000001],[-108.99665800000002,67.501389000000017],[-109.00119000000001,67.5],[-109.00666799999993,67.498322000000087],[-109.01528899999994,67.494141000000013],[-109.02139299999999,67.488311999999951],[-109.02528399999994,67.483322000000101],[-109.01806599999998,67.462494000000049],[-109.002228,67.443587999999977],[-108.98554999999993,67.436096000000077],[-108.84999099999993,67.388596000000064],[-108.83112299999993,67.353591999999992],[-108.82501200000002,67.349426000000108],[-108.81276700000001,67.348876999999959],[-108.80416899999994,67.352768000000026],[-108.79666099999986,67.357758000000103],[-108.79055799999998,67.363602000000128],[-108.76611299999996,67.396378000000027],[-108.75834700000001,67.409149000000127],[-108.75583599999999,67.415267999999969],[-108.74445299999996,67.445525999999973],[-108.74109599999997,67.457214000000135],[-108.73638900000003,67.481093999999985],[-108.735817,67.486649000000057],[-108.734734,67.547759999999982],[-108.735817,67.558594000000028],[-108.73777799999993,67.563873000000058],[-108.73889200000002,67.574707000000103],[-108.73916599999995,67.596938999999963],[-108.73638900000003,67.603043000000014],[-108.73000299999995,67.608597000000032],[-108.71472199999999,67.61914100000007],[-108.70612299999988,67.623306000000071],[-108.69611399999997,67.626373000000001],[-108.67027299999995,67.628586000000098],[-108.65527299999991,67.62831100000011],[-108.62053700000001,67.624695000000031],[-108.6100009999999,67.621093999999971],[-108.58500700000002,67.609985000000108],[-108.57888799999989,67.605545000000063],[-108.516953,67.497482000000048],[-108.51139799999999,67.487487999999985],[-108.510559,67.47665400000011],[-108.51334399999996,67.470535000000098],[-108.52333099999993,67.45748900000001],[-108.52390300000002,67.451659999999947],[-108.52278100000001,67.44081100000011],[-108.49804699999993,67.363037000000077],[-108.49027999999998,67.353591999999992],[-108.48416099999997,67.349426000000108],[-108.47138999999993,67.346649000000014],[-108.458054,67.347214000000065],[-108.43720999999994,67.352768000000026],[-108.42971799999998,67.357483000000059],[-108.42471299999994,67.364151000000049],[-108.421944,67.3702550000001],[-108.42944299999999,67.379700000000128],[-108.43554699999999,67.383881000000031],[-108.439438,67.388596000000064],[-108.44275699999997,67.399155000000121],[-108.43998699999992,67.427475000000129],[-108.43472300000002,67.431656000000032],[-108.39388999999994,67.443587999999977],[-108.38166799999999,67.445251000000098],[-108.36694299999994,67.444976999999994],[-108.34361299999989,67.438582999999937],[-108.33556399999998,67.434982000000105],[-108.32112100000001,67.426926000000037],[-108.30750299999988,67.413040000000024],[-108.301941,67.403320000000122],[-108.30027799999999,67.398041000000148],[-108.29666099999997,67.393326000000116],[-108.28832999999997,67.389435000000049],[-108.13417099999992,67.329163000000051],[-108.06360599999988,67.305251999999996],[-108.02583300000003,67.296371000000022],[-108.015289,67.293045000000006],[-107.98554999999999,67.271927000000119],[-107.94471699999997,67.236374000000069],[-107.94082600000002,67.231659000000036],[-107.875,67.140823000000012],[-107.87526700000001,67.052765000000136],[-107.88054699999998,67.04832499999992],[-107.89362299999999,67.047760000000096],[-107.90499899999998,67.049713000000054],[-107.95028699999995,67.062195000000031],[-108.00834699999996,67.077484000000084],[-108.02084399999995,67.080551000000014],[-108.03666699999991,67.081664999999987],[-108.14862099999993,67.076660000000118],[-108.15722700000003,67.072769000000051],[-108.18916300000001,67.054977000000008],[-108.19304699999986,67.049713000000054],[-108.192207,67.038878999999952],[-108.19082600000002,67.033599999999979],[-108.19138299999992,67.028046000000018],[-108.19526699999994,67.022766000000104],[-108.20388799999995,67.018875000000037],[-108.21611000000001,67.017211999999915],[-108.23277300000001,67.019150000000081],[-108.24527,67.022217000000012],[-108.45028699999995,67.083328000000108],[-108.46056399999992,67.086928999999998],[-108.495003,67.102203000000088],[-108.51722699999999,67.113876000000062],[-108.541382,67.130813999999987],[-108.55555700000002,67.138885000000073],[-108.58029199999999,67.15026899999998],[-108.59056099999998,67.153594999999996],[-108.6063769999999,67.154708999999968],[-108.61971999999997,67.15387000000004],[-108.622772,67.149993999999936],[-108.53028899999993,67.042480000000012],[-108.52416999999997,67.038315000000011],[-108.51611300000002,67.034423999999944],[-108.50140399999998,67.032211000000018],[-108.491669,67.0352630000001],[-108.48554999999988,67.041092000000106],[-108.48500100000001,67.046646000000123],[-108.48665599999998,67.05192599999998],[-108.49054699999988,67.056641000000013],[-108.48944099999994,67.067764000000011],[-108.48194899999999,67.072769000000051],[-108.468887,67.073318000000029],[-108.45612299999999,67.070541000000105],[-108.44193999999999,67.062485000000038],[-108.39222699999993,67.028869999999984],[-108.35637700000001,67.003326000000129],[-108.34665699999994,66.994431000000077],[-108.33056599999998,66.986923000000104],[-108.31806899999998,66.983871000000136],[-108.28971899999993,66.979980000000069],[-108.25862099999995,66.977768000000026],[-108.22860700000001,66.976654000000053],[-108.19695300000001,66.972214000000008],[-108.16639700000002,66.962204000000099],[-108.14998600000001,66.954436999999984],[-108.11472299999997,66.928864000000033],[-107.98528299999998,66.828598000000113],[-107.94138299999997,66.788315000000068],[-107.93831599999999,66.778046000000074],[-107.93971299999993,66.766663000000051],[-107.94193999999999,66.749709999999936],[-107.94471699999997,66.743591000000094],[-107.94803599999995,66.731933999999967],[-107.949432,66.720535000000098],[-107.94583099999994,66.715820000000065],[-107.89444699999996,66.671646000000123],[-107.88276699999989,66.663315000000011],[-107.87082699999996,66.662491000000045],[-107.86444099999989,66.668320000000051],[-107.86389200000002,66.673874000000069],[-107.86776700000001,66.71138000000002],[-107.88474299999996,66.750823999999909],[-107.88834400000002,66.755554000000132],[-107.88194299999992,66.759155000000021],[-107.86776700000001,66.758881000000088],[-107.85333299999996,66.756378000000097],[-107.829453,66.744980000000112],[-107.81777999999997,66.736374000000012],[-107.76500699999997,66.686919999999986],[-107.72416699999991,66.629700000000128],[-107.64750699999996,66.574707000000103],[-107.62805199999997,66.562194999999974],[-107.60082999999997,66.546097000000088],[-107.56945799999994,66.53054800000001],[-107.55721999999997,66.527771000000087],[-107.43305999999995,66.453598000000113],[-107.2911069999999,66.36831699999999],[-107.26027699999986,66.353043000000071],[-107.24804699999993,66.349990999999989],[-107.23500100000001,66.348602000000142],[-107.22222899999997,66.349152000000004],[-107.21140299999996,66.351379000000065],[-107.203056,66.355254999999943],[-107.196663,66.360809000000131],[-107.195831,66.366379000000052],[-107.19722000000002,66.371643000000006],[-107.20056199999993,66.376373000000058],[-107.23554999999993,66.407486000000063],[-107.34221599999995,66.461655000000064],[-107.43888899999996,66.513046000000145],[-107.56220999999994,66.591369999999984],[-107.56582599999996,66.596100000000035],[-107.56861899999996,66.606644000000074],[-107.56777999999991,66.612198000000092],[-107.56916799999999,66.617477000000065],[-107.57055700000001,66.622482000000105],[-107.57417299999997,66.627471999999955],[-107.62416100000002,66.660812000000021],[-107.64943700000003,66.693862999999965],[-107.69387799999998,66.755829000000006],[-107.74665800000002,66.922760000000039],[-107.68861399999997,66.977097000000128],[-107.63806199999999,67.024429000000055],[-107.66665599999993,67.063034000000016],[-107.66805999999985,67.068329000000062],[-107.66166699999997,67.073883000000023],[-107.65083299999992,67.076096000000007],[-107.63612399999994,67.073883000000023],[-107.60777299999995,67.063309000000004],[-107.58361799999994,67.051650999999993],[-107.52390300000002,67.020264000000054],[-107.51666299999999,67.010543999999982],[-107.48388699999998,66.924149],[-107.48473399999995,66.918593999999928],[-107.49694799999997,66.917206000000022],[-107.57972699999988,66.916382000000056],[-107.59445199999999,66.918868999999972],[-107.60221899999988,66.922760000000039],[-107.608047,66.926926000000094],[-107.62332200000003,66.940262000000075],[-107.626938,66.944977000000108],[-107.632767,66.949417000000096],[-107.64083899999997,66.953049000000078],[-107.647064,66.942711000000031],[-107.65521999999999,66.943710000000067],[-107.66238399999997,66.942879000000062],[-107.66754900000001,66.940376000000072],[-107.67138699999998,66.937035000000037],[-107.67038700000001,66.933868000000018],[-107.63527699999997,66.892212000000029],[-107.57028199999991,66.837769000000094],[-107.564438,66.833602999999982],[-107.51306199999993,66.822220000000016],[-107.42832900000002,66.804703000000131],[-107.41610699999995,66.806091000000038],[-107.40888999999993,66.811096000000077],[-107.39111299999996,66.891373000000101],[-107.39584400000001,66.901382000000126],[-107.422234,66.939697000000024],[-107.42944299999999,66.949142000000109],[-107.43888899999996,66.958328000000051],[-107.44471699999997,66.962493999999936],[-107.44387799999993,66.968048000000124],[-107.435272,66.972214000000008],[-107.421944,66.972762999999986],[-107.40611299999995,66.97137500000008],[-107.37943999999993,66.966094999999996],[-107.35916099999992,66.959427000000005],[-107.23388699999992,66.902206000000092],[-107.21806299999997,66.894714000000135],[-107.21028099999995,66.890823000000069],[-107.1875,66.87359600000002],[-107.15750099999991,66.846939000000134],[-107.15055799999999,66.837494000000049],[-107.14916999999991,66.832214000000022],[-107.137787,66.823608000000092],[-107.12554899999992,66.820540999999992],[-107.09472700000003,66.818329000000119],[-107.08361799999994,66.820540999999992],[-107.15527299999997,66.899719000000005],[-107.20388800000001,66.944702000000063],[-107.22666900000002,66.961655000000007],[-107.24027999999998,66.969986000000063],[-107.29750100000001,67.001938000000052],[-107.3052669999999,67.005829000000119],[-107.31139399999995,67.127197000000024],[-107.38806199999993,67.144440000000145],[-107.43083200000001,67.158325000000048],[-107.44915800000001,67.165543000000071],[-107.47332799999992,67.176926000000037],[-107.48137700000001,67.180816999999934],[-107.50306699999993,67.192749000000106],[-107.53250100000002,67.214157],[-107.64862099999993,67.359984999999995],[-107.57694999999995,67.475540000000137],[-107.57389799999993,67.481658999999979],[-107.57528699999995,67.48692299999999],[-107.57888800000001,67.491652999999985],[-107.58277899999996,67.496368000000018],[-107.58860799999991,67.500823999999966],[-107.71833800000002,67.573318000000086],[-107.74054699999994,67.585265999999933],[-107.77362099999999,67.600540000000024],[-107.81331599999999,67.614426000000037],[-107.84472700000003,67.624420000000043],[-107.89055599999989,67.642487000000074],[-107.96916199999998,67.676651000000106],[-107.98972300000003,67.688873000000115],[-107.99944299999999,67.698029000000076],[-108.006958,67.707489000000123],[-108.01334399999996,67.728317000000004],[-108.01445000000001,67.73414600000001],[-108.015289,67.744980000000055],[-108.01390099999998,67.756103999999993],[-108.00805699999995,67.768326000000116],[-107.99249299999997,67.788040000000024],[-107.94833399999993,67.841095000000109],[-107.94193999999999,67.846939000000134],[-107.93415800000002,67.85165399999994],[-107.92278299999998,67.853867000000093],[-107.890289,67.85165399999994],[-107.87777699999992,67.853317000000061],[-107.85527000000002,67.85775799999999],[-107.75666799999993,67.880814000000044],[-107.71472199999994,67.892487000000074],[-107.70472699999993,67.895828000000108],[-107.674713,67.916092000000049],[-107.66166699999997,67.927475000000015],[-107.65110800000002,67.940535999999952],[-107.65499899999992,67.945250999999985],[-107.66555800000003,67.94859300000013],[-107.77050800000001,67.96526300000005],[-107.81133999999992,67.971596000000034],[-107.91027800000001,67.988585999999998],[-107.91639699999996,67.993042000000059],[-107.91999800000002,67.997756999999922],[-107.89055599999989,68.081664999999987],[-107.88527699999997,68.088318000000129],[-107.87888299999997,68.093872000000147],[-107.86332699999997,68.103592000000049],[-107.85166899999996,68.106094000000098],[-107.837784,68.104430999999977],[-107.72112300000003,68.082763999999941],[-107.69943199999994,68.075821000000133],[-107.69360399999994,68.071655000000078],[-107.69776899999994,68.066376000000105],[-107.70667300000002,68.062485000000038],[-107.72721899999993,68.056090999999981],[-107.73860200000001,68.05386400000009],[-107.77250700000002,68.05693100000002],[-107.78778099999994,68.057205000000124],[-107.80027799999999,68.055817000000047],[-107.80943299999996,68.051650999999936],[-107.83332799999988,68.013046000000031],[-107.83389299999999,68.007217000000026],[-107.82778899999988,68.003052000000025],[-107.8038479999999,68.004264999999975],[-107.78733799999998,67.997597000000042],[-107.77900699999998,67.996765000000096],[-107.763847,67.998428000000047],[-107.75699599999996,67.999771000000123],[-107.75426500000003,68.006812999999966],[-107.73306300000002,68.020827999999995],[-107.72501399999993,68.025818000000015],[-107.69027699999992,68.042480000000012],[-107.67999299999997,68.04582199999993],[-107.61028299999998,68.058593999999971],[-107.58583099999998,68.059982000000048],[-107.57084700000001,68.059708000000114],[-107.53806299999997,68.057479999999998],[-107.45028699999989,68.047211000000118],[-107.38890100000003,68.04525799999999],[-107.36221299999994,68.04693600000013],[-107.34944200000001,68.048599000000024],[-107.32640099999998,68.053040000000124],[-107.28778099999994,68.064987000000087],[-107.25140399999998,68.080826000000002],[-107.22638699999993,68.094436999999971],[-107.154449,68.12692300000009],[-107.141953,68.128310999999997],[-107.11028299999998,68.12692300000009],[-107.10665899999998,68.122208000000057],[-107.11888099999987,68.084717000000069],[-106.96556099999998,68.113312000000121],[-106.95278899999988,68.114700000000028],[-106.85611,68.116927999999973],[-106.84111000000001,68.116379000000052],[-106.80194099999994,68.197479000000101],[-106.80943300000001,68.207214000000022],[-106.80610699999994,68.213043000000027],[-106.80027799999993,68.217484000000127],[-106.79110700000001,68.221375000000023],[-106.62748699999997,68.246643000000063],[-106.61444099999994,68.24803200000008],[-106.5994419999999,68.247482000000048],[-106.58860800000002,68.244141000000013],[-106.468613,68.190536000000122],[-106.45777900000002,68.176376000000005],[-106.45417799999996,68.160812000000078],[-106.45056199999999,68.155823000000112],[-106.44471699999991,68.151657000000057],[-106.43195300000002,68.153046000000018],[-106.42138699999987,68.156097000000045],[-106.35056299999997,68.179153000000099],[-106.34472699999998,68.183318999999983],[-106.35056299999997,68.187759000000028],[-106.35888699999992,68.191650000000095],[-106.39277600000003,68.201660000000004],[-106.42083700000001,68.207214000000022],[-106.468887,68.214431999999988],[-106.48194899999993,68.217484000000127],[-106.48999000000003,68.221375000000023],[-106.49582699999996,68.225540000000024],[-106.49722300000002,68.230820000000051],[-106.46833799999996,68.329711999999972],[-106.46501199999994,68.335815000000139],[-106.45667299999991,68.340820000000008],[-106.44748700000002,68.344711000000075],[-106.42639200000002,68.350815000000068],[-106.25611900000001,68.387772000000098],[-106.24416400000001,68.38998400000014],[-106.21833800000002,68.392487000000131],[-106.203056,68.392211999999915],[-106.185272,68.38998400000014],[-106.17471299999994,68.386658000000125],[-106.16665599999999,68.382750999999985],[-106.15471599999989,68.373871000000122],[-105.79638699999998,68.422211000000118],[-105.79055799999998,68.418045000000063],[-105.78222699999998,68.413878999999952],[-105.76583900000003,68.41276600000009],[-105.75167799999991,68.413040000000024],[-105.73972300000003,68.415267999999969],[-105.73029300000002,68.419144000000017],[-105.72305299999999,68.424698000000035],[-105.70111099999991,68.469711000000132],[-105.69721999999996,68.486649],[-105.69833399999993,68.49192800000003],[-105.70278899999994,68.501938000000109],[-105.71444699999995,68.510544000000039],[-105.74305700000002,68.564697000000137],[-105.724716,68.574158000000125],[-105.64499699999999,68.633880999999974],[-105.65083300000003,68.638046000000145],[-105.66639699999996,68.638596000000007],[-105.90222199999999,68.635269000000051],[-105.92832899999996,68.632476999999994],[-106.02944899999994,68.619704999999954],[-106.041382,68.617477000000008],[-106.04972799999996,68.612761999999975],[-106.04750100000001,68.602203000000145],[-106.05332900000002,68.595824999999991],[-106.06416300000001,68.59275800000006],[-106.2077789999999,68.567764000000068],[-106.23638900000003,68.566665999999998],[-106.37027,68.545258000000103],[-106.51083399999999,68.518326000000002],[-106.54387700000001,68.511932000000115],[-106.62470999999999,68.46748400000007],[-106.63166799999999,68.461928999999998],[-106.62888299999992,68.45138500000013],[-106.62165799999997,68.441925000000026],[-106.61582899999996,68.437759000000142],[-106.59528399999994,68.425261999999975],[-106.58473200000003,68.421646000000123],[-106.57167099999992,68.418593999999985],[-106.55387899999994,68.416656000000046],[-106.52194199999997,68.414992999999924],[-106.50446299999999,68.41276600000009],[-106.493607,68.409424000000115],[-106.48777799999988,68.404984000000127],[-106.48055999999997,68.395537999999988],[-106.52722199999994,68.300812000000121],[-106.53415699999999,68.295257999999933],[-106.54332699999998,68.291367000000037],[-106.556107,68.289978000000076],[-106.57277699999986,68.291092000000049],[-106.58444199999991,68.293319999999994],[-106.59500099999997,68.296646000000067],[-106.60109699999998,68.301086000000055],[-106.6119379999999,68.315262000000075],[-106.6383439999999,68.343048000000124],[-106.64444700000001,68.347487999999942],[-106.77887699999997,68.408034999999984],[-106.78971899999999,68.411652000000117],[-106.80277999999993,68.414428999999984],[-107.01363400000002,68.369431000000077],[-107.02166699999998,68.364699999999971],[-107.02027899999996,68.359420999999998],[-107.01666299999999,68.354705999999965],[-107.01750199999998,68.349151999999947],[-107.03138699999994,68.33776899999998],[-107.13221699999991,68.283325000000104],[-107.24610899999999,68.261383000000023],[-107.25890400000003,68.259995000000117],[-107.26500699999997,68.264160000000118],[-107.274719,68.273314999999968],[-107.28611799999993,68.287490999999989],[-107.29611199999994,68.296646000000067],[-107.30194099999994,68.300812000000121],[-107.32721699999991,68.312484999999981],[-107.33805799999999,68.315810999999997],[-107.54666099999992,68.347487999999942],[-107.56082200000003,68.349151999999947],[-107.81331599999999,68.342484000000013],[-107.82611099999997,68.341094999999996],[-107.83640300000002,68.338043000000084],[-107.84973100000002,68.326385000000073],[-107.85500299999995,68.31999200000007],[-107.88527699999997,68.26887499999998],[-107.88362100000001,68.263610999999969],[-107.879707,68.258880999999974],[-107.85417199999995,68.247482000000048],[-107.83029199999993,68.241089000000102],[-107.74194299999999,68.216934000000094],[-107.61332700000003,68.178588999999988],[-107.60249299999998,68.175262000000032],[-107.59861799999999,68.17053199999998],[-107.60305800000003,68.165268000000026],[-107.61582900000002,68.163879000000009],[-107.63221699999997,68.164992999999981],[-107.68998699999997,68.174423000000047],[-107.78639199999992,68.183868000000132],[-107.80027799999999,68.183318999999983],[-107.82584399999996,68.180542000000116],[-107.87193300000001,68.171371000000136],[-108.03388999999999,68.168594000000041],[-108.16139199999986,68.172759999999982],[-108.18694299999999,68.169983000000059],[-108.19695300000001,68.166656000000103],[-108.22028399999999,68.152205999999978],[-108.24944299999993,68.141663000000051],[-108.30055199999993,68.125809000000118],[-108.33222999999998,68.117203000000018],[-108.37026999999989,68.112762000000089],[-108.38555899999994,68.113037000000077],[-108.40306099999998,68.114990000000034],[-108.41388699999993,68.11831699999999],[-108.42250099999995,68.122208000000057],[-108.43277,68.131088000000091],[-108.43611099999987,68.141373000000044],[-108.43306000000001,68.147490999999945],[-108.42804699999994,68.154160000000047],[-108.40888999999999,68.16137700000013],[-108.39750700000002,68.163605000000075],[-108.36694299999994,68.161102000000085],[-108.36277799999993,68.15637200000009],[-108.36582899999996,68.15026899999998],[-108.37361099999993,68.145264000000111],[-108.37998999999996,68.139708999999982],[-108.37832599999996,68.134430000000009],[-108.36527999999993,68.133606000000043],[-108.34612299999998,68.140823000000012],[-108.33860800000002,68.145828000000051],[-108.33332799999994,68.152205999999978],[-108.33056599999998,68.158600000000035],[-108.32695000000001,68.170258000000047],[-108.32444800000002,68.192749000000049],[-108.32945299999989,68.208327999999995],[-108.3958439999999,68.289978000000076],[-108.40222199999994,68.294144000000131],[-108.44360399999999,68.308029000000033],[-108.46000700000002,68.309143000000006],[-108.484444,68.305251999999939],[-108.504997,68.298874000000012],[-108.55999800000001,68.275542999999971],[-108.56500199999999,68.26887499999998],[-108.56806899999992,68.262772000000041],[-108.57444799999996,68.257216999999969],[-108.58444199999997,68.253876000000105],[-108.71556099999998,68.231369000000029],[-108.72944599999988,68.230820000000051],[-108.74610899999993,68.231934000000024],[-108.756958,68.235260000000096],[-108.765556,68.238876000000118],[-108.81527699999998,68.262206999999989],[-108.81916799999993,68.266663000000108],[-108.81416299999989,68.273314999999968],[-108.74889400000001,68.33776899999998],[-108.74109599999997,68.342758000000117],[-108.71417199999996,68.354705999999965],[-108.70417799999996,68.35803199999998],[-108.69387799999993,68.361098999999911],[-108.67083700000001,68.365813999999943],[-108.63999899999993,68.375534000000016],[-108.62082700000002,68.382750999999985],[-108.61193800000001,68.386658000000125],[-108.58112299999999,68.406372000000033],[-108.56667299999998,68.416931000000091],[-108.53443900000002,68.445526000000086],[-108.52916699999992,68.452209000000096],[-108.52278100000001,68.458038000000101],[-108.43167099999994,68.538315000000068],[-108.40416700000003,68.560256999999979],[-108.383331,68.576660000000004],[-108.36888099999999,68.587204000000042],[-108.34528399999994,68.601928999999984],[-108.31416300000001,68.611374000000069],[-108.27916700000003,68.618317000000047],[-108.25195299999996,68.620529000000147],[-108.1702729999999,68.626647999999989],[-107.93331899999998,68.64027399999992],[-107.80499299999997,68.645538000000101],[-107.63834399999996,68.665543000000127],[-107.43167099999994,68.690536000000009],[-107.23137700000001,68.71887200000009],[-107.10833700000001,68.748596000000134],[-106.96140300000002,68.783051000000057],[-106.93859899999995,68.788315000000011],[-106.82084700000001,68.811371000000065],[-106.79444899999993,68.813872999999944],[-106.765556,68.814986999999917],[-106.63500999999991,68.818329000000062],[-106.31555200000003,68.892761000000121],[-106.27250699999996,68.904709000000025],[-106.262787,68.90887500000008],[-106.25446299999993,68.913605000000132],[-106.24833699999988,68.919983000000059],[-106.24472000000003,68.926085999999998],[-106.24360699999994,68.931656000000089],[-106.23998999999998,68.937759000000028],[-106.22917200000001,68.940810999999997],[-106.21472199999999,68.941360000000088],[-106.20140100000003,68.940536000000122],[-106.14943699999998,68.933594000000028],[-106.08084099999996,68.918869000000086],[-105.81360599999988,68.881927000000076],[-105.79804999999999,68.879425000000026],[-105.77639799999997,68.872481999999991],[-105.71806300000003,68.844985999999949],[-105.48693800000001,68.729430999999977],[-105.475281,68.720535000000041],[-105.47165699999999,68.715820000000008],[-105.47833300000002,68.69859299999996],[-105.48194899999999,68.692474000000118],[-105.4891659999999,68.68691999999993],[-105.49889400000001,68.683044000000052],[-105.49944299999999,68.621368000000075],[-105.41443600000002,68.528594999999996],[-105.38082900000001,68.486649],[-105.40888999999999,68.492477000000122],[-105.42304999999999,68.49192800000003],[-105.43388400000003,68.489151000000106],[-105.44360399999994,68.485260000000039],[-105.52944899999994,68.450272000000041],[-105.53806299999991,68.445526000000086],[-105.54387700000001,68.439147999999989],[-105.54778299999998,68.433044000000109],[-105.54888900000003,68.427475000000129],[-105.54804999999999,68.422211000000118],[-105.54110699999995,68.41276600000009],[-105.53307299999994,68.408599999999979],[-105.51777600000003,68.406096999999988],[-105.41639700000002,68.406937000000084],[-105.39028899999988,68.409424000000115],[-105.34528399999999,68.384155000000135],[-105.34889199999992,68.378036000000122],[-105.350281,68.372482000000105],[-105.34472700000003,68.368042000000116],[-105.29499800000002,68.339157000000057],[-105.28694200000001,68.33526599999999],[-105.10082999999992,68.266098000000056],[-105.07305899999994,68.260269000000051],[-105.05555700000002,68.258041000000105],[-105.02639799999992,68.257767000000001],[-105.00894900000003,68.264938000000029],[-105.00661500000001,68.268599999999935],[-105.00578300000001,68.272094999999922],[-105.00666799999993,68.278595000000053],[-105.01695299999994,68.282211000000132],[-105.02610800000002,68.309418000000051],[-104.88474300000001,68.339705999999978],[-104.86416600000001,68.332489000000066],[-104.84805299999999,68.324707000000103],[-104.83917200000002,68.315536000000009],[-104.83583099999998,68.310806000000127],[-104.83416699999998,68.300262000000089],[-104.83944699999995,68.288589000000059],[-104.84584000000001,68.282211000000132],[-104.85305800000003,68.276657000000114],[-104.86277799999993,68.272766000000047],[-104.87332199999997,68.269714000000135],[-104.94554099999999,68.258041000000105],[-104.952789,68.252487000000087],[-104.95194999999995,68.247482000000048],[-104.94055200000003,68.238586000000112],[-104.924713,68.230545000000063],[-104.91443600000002,68.227203000000088],[-104.900284,68.22526600000009],[-104.88639799999999,68.225540000000024],[-104.87332199999997,68.226928999999984],[-104.79750100000001,68.24443100000002],[-104.73111,68.250275000000045],[-104.68776699999995,68.250275000000045],[-104.63999899999999,68.246933000000126],[-104.609734,68.24136400000009],[-104.59889199999998,68.232483000000002],[-104.59722899999997,68.222214000000122],[-104.61277799999999,68.198029000000133],[-104.61888099999993,68.191650000000095],[-104.6324919999999,68.179428000000087],[-104.65471600000001,68.162766000000147],[-104.66722099999993,68.149994000000106],[-104.67027299999995,68.138596000000121],[-104.59221599999989,68.083603000000096],[-104.50778200000002,68.035812000000021],[-104.5,68.031937000000028],[-104.48638900000003,68.029984000000127],[-104.45722999999992,68.029709000000082],[-104.36694299999994,68.034149000000127],[-104.21472199999994,68.024155000000064],[-104.199997,68.021378000000027],[-104.16665599999993,68.017487000000131],[-104.12470999999994,68.018326000000059],[-104.11193800000001,68.019440000000031],[-104.06471299999998,68.027480999999966],[-104.01139799999999,68.042206000000078],[-103.99944299999999,68.044144000000017],[-103.98554999999999,68.044434000000024],[-103.97084000000001,68.043869000000029],[-103.94082600000002,68.038315000000011],[-103.92832900000002,68.034988000000055],[-103.89806399999998,68.024155000000064],[-103.88362100000001,68.021378000000027],[-103.87082699999996,68.020263999999997],[-103.84306300000003,68.020827999999995],[-103.791382,68.025269000000094],[-103.76695299999994,68.028320000000065],[-103.55526700000001,68.057205000000124],[-103.54444899999987,68.059982000000048],[-103.53694200000001,68.065536000000066],[-103.53278399999999,68.071655000000078],[-103.53333299999991,68.076660000000118],[-103.53639199999998,68.081664999999987],[-103.54472399999997,68.090820000000008],[-103.55526700000001,68.099715999999944],[-103.55803699999996,68.104430999999977],[-103.55304699999999,68.109711000000061],[-103.52139299999999,68.130813999999987],[-103.50389099999995,68.140274000000034],[-103.49526999999995,68.144714000000079],[-103.46694899999994,68.156936999999914],[-103.45722999999998,68.160537999999974],[-103.42166099999997,68.166656000000103],[-103.40416700000003,68.164154000000053],[-103.38971700000002,68.16137700000013],[-103.38194299999992,68.157211000000018],[-103.36888099999999,68.148880000000133],[-103.34416199999993,68.121094000000085],[-103.34137699999991,68.116089000000045],[-103.34028599999988,68.105819999999994],[-103.341949,68.100265999999976],[-103.37249799999995,68.06860400000005],[-103.36916399999996,68.010818000000029],[-103.36609599999997,68.005829000000062],[-103.25418100000002,67.966385000000002],[-103.22084000000001,67.962204000000099],[-103.20612299999999,67.961380000000133],[-103.17832899999996,67.961929000000055],[-103.14943699999998,67.961380000000133],[-103.13694800000002,67.958037999999988],[-103.12943999999999,67.953872999999987],[-103.12416100000002,67.949707000000103],[-103.11277799999999,67.930267000000129],[-103.1052699999999,67.926086000000055],[-103.09306300000003,67.923035000000027],[-103.01471700000002,67.913605000000132],[-103.00083899999998,67.913879000000065],[-102.99082899999996,67.917480000000126],[-102.98222399999997,67.922211000000061],[-102.97250399999996,67.925812000000121],[-102.95944199999985,67.926926000000094],[-102.94972199999995,67.923309000000131],[-102.94444299999998,67.918868999999916],[-102.939438,67.914429000000098],[-102.92111199999999,67.896378000000141],[-102.82972699999993,67.831940000000031],[-102.80027799999993,67.820830999999998],[-102.68639400000001,67.804703000000131],[-102.67054699999994,67.80304000000001],[-102.53611799999999,67.795258000000047],[-102.50446299999999,67.791931000000091],[-102.47083999999995,67.786926000000051],[-102.446663,67.780273000000079],[-102.39306599999992,67.76249700000011],[-102.33972199999994,67.744705000000067],[-102.25110599999999,67.725266000000147],[-102.22444199999995,67.733871000000022],[-102.21556099999992,67.738312000000121],[-102.15139799999997,67.765549000000021],[-102.1416779999999,67.769150000000081],[-101.92610200000001,67.760268999999994],[-101.76471699999991,67.723312000000135],[-101.671944,67.691649999999981],[-101.54250300000001,67.67942800000003],[-101.51500699999997,67.67942800000003],[-101.446663,67.732483000000116],[-101.43388400000003,67.733322000000044],[-101.10582699999992,67.741928000000144],[-101.09889199999998,67.737762000000089],[-101.01278699999995,67.742477000000122],[-100.99973299999999,67.74331699999999],[-100.92749000000003,67.753325999999959],[-100.90387699999991,67.756942999999922],[-100.89277600000003,67.759720000000016],[-100.81139400000001,67.794708000000014],[-100.72028399999994,67.834427000000119],[-100.58167999999995,67.834152000000131],[-100.39555399999995,67.847488000000055],[-100.18415799999997,67.843048000000067],[-100.16832699999998,67.841095000000109],[-100.156387,67.837769000000037],[-100.14723200000003,67.828598000000113],[-100.135559,67.825272000000098],[-100.083618,67.814986999999974],[-99.820006999999919,67.795821999999987],[-99.618606999999997,67.789153999999996],[-99.607772999999952,67.791931000000091],[-99.589172000000019,67.800812000000064],[-99.577788999999996,67.803314000000114],[-99.500564999999938,67.799713000000054],[-99.412215999999887,67.788315000000068],[-99.403060999999923,67.784424000000001],[-99.398620999999991,67.779983999999956],[-99.396666999999979,67.774994000000106],[-99.387787000000003,67.765822999999955],[-99.378325999999959,67.761932000000058],[-99.236114999999984,67.713608000000136],[-99.21055599999994,67.706940000000145],[-98.986938000000009,67.718322999999998],[-98.813613999999973,67.741928000000144],[-98.528884999999889,67.777481000000023],[-98.385833999999988,67.785812000000078],[-98.363327000000027,67.790817000000118],[-98.354445999999996,67.796097000000032],[-98.358046999999942,67.805817000000104],[-98.442490000000021,67.861374000000069],[-98.449431999999945,67.865814000000057],[-98.463333000000034,67.868865999999969],[-98.475554999999986,67.867203000000075],[-98.486114999999927,67.863876000000118],[-98.49888599999997,67.863312000000008],[-98.514724999999942,67.865265000000136],[-98.540282999999988,67.872208000000114],[-98.65583799999996,67.916382000000056],[-98.665008999999998,67.920258000000103],[-98.696944999999914,67.936645999999996],[-98.719726999999921,67.948867999999948],[-98.724166999999852,67.953598],[-98.746947999999975,68.047760000000096],[-98.732772999999952,68.070267000000001],[-98.615554999999915,68.074706999999989],[-98.544998000000021,68.061371000000065],[-98.336945000000014,67.96026599999999],[-98.321121000000005,67.952208999999982],[-98.266952999999887,67.923309000000131],[-98.233321999999987,67.901932000000102],[-98.171111999999994,67.843323000000055],[-98.169158999999922,67.838593000000003],[-98.122771999999941,67.788040000000024],[-98.094451999999933,67.766098],[-97.956664999999873,67.727768000000083],[-97.799438000000009,67.68553200000008],[-97.66194200000001,67.643051000000071],[-97.650283999999999,67.639434999999992],[-97.637512000000015,67.6308140000001],[-97.626099000000011,67.618042000000059],[-97.613051999999982,67.609420999999998],[-97.603881999999999,67.605255000000056],[-97.592772999999852,67.601653999999996],[-97.576674999999966,67.598602000000085],[-97.561385999999914,67.596649000000127],[-97.547501000000011,67.596375000000023],[-97.509734999999921,67.599152000000117],[-97.48582499999992,67.602203000000145],[-97.415008999999998,67.613312000000064],[-97.392226999999991,67.618042000000059],[-97.381942999999978,67.621368000000132],[-97.353058000000033,67.634430000000123],[-97.33444199999991,67.643875000000037],[-97.316665999999941,67.654434000000037],[-97.295546999999942,67.661102000000028],[-97.283324999999991,67.662491000000045],[-97.167220999999927,67.675537000000134],[-97.138900999999919,67.674149000000057],[-97.116942999999878,67.777481000000023],[-97.115828999999962,67.78276100000005],[-97.119155999999919,67.792480000000069],[-97.127212999999983,67.801650999999993],[-97.240279999999984,67.926086000000055],[-97.254180999999903,67.929428000000144],[-97.263061999999934,67.924149],[-97.268889999999942,67.918319999999994],[-97.27305599999994,67.907761000000107],[-97.273620999999991,67.90248100000008],[-97.277221999999938,67.896942000000081],[-97.282776000000013,67.891098000000056],[-97.291107000000011,67.884995000000117],[-97.301392000000021,67.881652999999972],[-97.324447999999961,67.876648000000102],[-97.336670000000026,67.875259000000142],[-97.362503000000004,67.873871000000008],[-97.376388999999961,67.874146000000053],[-97.392226999999991,67.876373000000115],[-97.403335999999967,67.879974000000004],[-97.412216000000001,67.884155000000078],[-97.416397000000018,67.888596000000007],[-97.41972399999986,67.898331000000042],[-97.428054999999858,67.907761000000107],[-97.434433000000013,67.911926000000108],[-97.449996999999996,67.920258000000103],[-97.643616000000009,68.008330999999998],[-97.652495999999985,68.012207000000046],[-97.683060000000012,68.018599999999992],[-97.695267000000001,68.017212000000086],[-97.705001999999979,68.012772000000098],[-97.708344000000011,68.007217000000026],[-97.710555999999997,67.991653000000099],[-97.87777699999998,67.963608000000079],[-97.996657999999911,67.950271999999984],[-98.009734999999921,67.949707000000103],[-98.029998999999975,67.941924999999969],[-98.045837000000006,67.929428000000144],[-98.051391999999964,67.923598999999967],[-98.057495000000017,67.912490999999989],[-98.060271999999998,67.891663000000108],[-98.063888999999961,67.829162999999937],[-98.078613000000018,67.830276000000026],[-98.095276000000013,67.833327999999938],[-98.106658999999979,67.836928999999998],[-98.115828999999962,67.840820000000065],[-98.176392000000021,67.873871000000008],[-98.189437999999996,67.882476999999938],[-98.194716999999969,67.897217000000069],[-98.200835999999981,67.906647000000135],[-98.213622999999984,67.920532000000037],[-98.224716000000001,67.929428000000144],[-98.25140399999998,67.946365000000014],[-98.283324999999934,67.962768999999923],[-98.319732999999928,67.978591999999992],[-98.34056099999998,67.986099000000081],[-98.378051999999968,67.996368000000132],[-98.398620999999991,68.004165999999998],[-98.412216000000001,68.012497000000053],[-98.581115999999952,68.139984000000027],[-98.587509000000011,68.149429000000112],[-98.58444199999991,68.154984000000013],[-98.485275000000001,68.184417999999994],[-98.473891999999978,68.186920000000043],[-98.459732000000031,68.183594000000028],[-98.450561999999991,68.179703000000131],[-98.432495000000017,68.166656000000103],[-98.428054999999915,68.162201000000096],[-98.424437999999952,68.152205999999978],[-98.425551999999925,68.141936999999984],[-98.428329000000019,68.136383000000137],[-98.434158000000025,68.130538999999942],[-98.44027699999998,68.119431000000134],[-98.441100999999946,68.10914600000001],[-98.439437999999996,68.104155999999989],[-98.430556999999908,68.094986000000119],[-98.417220999999927,68.08638000000002],[-98.408051,68.082489000000123],[-98.393889999999999,68.079163000000108],[-98.379990000000021,68.079163000000108],[-98.367767000000015,68.080551000000014],[-98.358886999999982,68.085814999999968],[-98.350829999999917,68.092209000000025],[-98.339721999999938,68.103867000000037],[-98.321670999999981,68.136932000000115],[-98.317779999999971,68.14776599999999],[-98.317229999999938,68.153046000000018],[-98.317504999999983,68.162201000000096],[-98.326110999999969,68.171371000000136],[-98.333068999999966,68.17553700000002],[-98.342223999999931,68.179428000000087],[-98.377486999999917,68.190262000000018],[-98.40834000000001,68.196640000000116],[-98.439712999999927,68.200821000000019],[-98.469727000000034,68.203049000000021],[-98.485275000000001,68.204987000000131],[-98.501113999999973,68.208602999999982],[-98.531113000000005,68.22526600000009],[-98.537780999999995,68.229431000000091],[-98.542220999999927,68.234146000000123],[-98.561110999999983,68.27388000000002],[-98.607772999999952,68.293319999999994],[-98.704178000000013,68.352768000000026],[-98.710830999999985,68.356934000000081],[-98.715285999999992,68.361648999999943],[-98.717223999999931,68.366378999999995],[-98.71444699999995,68.372208000000001],[-98.704726999999934,68.376373000000001],[-98.680557000000022,68.380539000000113],[-98.667496000000028,68.381363000000079],[-98.637221999999952,68.379150000000095],[-98.606383999999991,68.372756999999979],[-98.594161999999983,68.36914100000007],[-98.580565999999919,68.360809000000074],[-98.571670999999981,68.351654000000053],[-98.548614999999984,68.339157000000057],[-98.532501000000025,68.331100000000106],[-98.521392999999932,68.328323000000012],[-98.511397999999929,68.329711999999972],[-98.470839999999953,68.348327999999981],[-98.462218999999948,68.353591999999992],[-98.461394999999982,68.358871000000136],[-98.471389999999985,68.373596000000077],[-98.491942999999935,68.38638300000008],[-98.503615999999965,68.38998400000014],[-98.49499499999996,68.409424000000115],[-98.319457999999997,68.358871000000136],[-98.30972300000002,68.354980000000069],[-98.298889000000031,68.346100000000035],[-98.294448999999929,68.34137000000004],[-98.292495999999971,68.336655000000007],[-98.288329999999974,68.331940000000145],[-98.281386999999995,68.327774000000034],[-98.225554999999929,68.304152999999985],[-98.213897999999915,68.300537000000134],[-98.199722000000008,68.300262000000089],[-98.187499999999943,68.301926000000094],[-98.096663999999976,68.317764000000125],[-98.073897999999986,68.334990999999945],[-97.905838000000017,68.384155000000135],[-97.894118999999932,68.386459000000002],[-97.86471599999993,68.384995000000004],[-97.849166999999909,68.383040999999992],[-97.777785999999878,68.366378999999995],[-97.761123999999995,68.363312000000064],[-97.748885999999914,68.364699999999971],[-97.743056999999908,68.370528999999976],[-97.75140399999998,68.379700000000128],[-97.764174999999909,68.393600000000049],[-97.768616000000009,68.398041000000148],[-97.781951999999933,68.406647000000021],[-97.79611199999988,68.409988000000055],[-97.81138599999997,68.411377000000073],[-97.869719999999973,68.414153999999996],[-97.885559000000001,68.416382000000112],[-97.899993999999936,68.419707999999957],[-97.906386999999995,68.423874000000069],[-98.009734999999921,68.498032000000023],[-98.011397999999929,68.503052000000082],[-98.010833999999988,68.508041000000048],[-97.999725000000012,68.535262999999986],[-97.994155999999919,68.541091999999992],[-97.852492999999981,68.542480000000069],[-97.836394999999925,68.540268000000026],[-97.723891999999921,68.523041000000035],[-97.692764000000011,68.516663000000051],[-97.665008999999941,68.504715000000033],[-97.658339999999896,68.500549000000092],[-97.654174999999896,68.496094000000085],[-97.650557999999933,68.486098999999967],[-97.653884999999946,68.480545000000006],[-97.655272999999966,68.470260999999994],[-97.650283999999999,68.455551000000014],[-97.646118000000001,68.450820999999962],[-97.639175000000023,68.446640000000059],[-97.611663999999962,68.434708000000114],[-97.537780999999995,68.418320000000051],[-97.523055999999997,68.416931000000091],[-97.511123999999938,68.419434000000024],[-97.502228000000002,68.424698000000035],[-97.49888599999997,68.430267000000015],[-97.500564999999995,68.434982000000048],[-97.509170999999981,68.444427000000132],[-97.520554000000004,68.448029000000076],[-97.535552999999993,68.449141999999995],[-97.547501000000011,68.446640000000059],[-97.573333999999932,68.444427000000132],[-97.589171999999962,68.446640000000059],[-97.603332999999964,68.449996999999996],[-97.615004999999996,68.453598000000056],[-97.619155999999919,68.458328000000108],[-97.617767000000015,68.462493999999992],[-97.597778000000005,68.483597000000088],[-97.578613000000018,68.493042000000003],[-97.567779999999971,68.496368000000018],[-97.544448999999986,68.501389000000131],[-97.531112999999948,68.501938000000109],[-97.516952999999944,68.501663000000065],[-97.385559000000001,68.495254999999929],[-97.353606999999954,68.491089000000045],[-97.282776000000013,68.474152000000061],[-97.259170999999867,68.466660000000104],[-97.160278000000005,68.389435000000049],[-97.053329000000019,68.353316999999947],[-97.058334000000002,68.302765000000079],[-97.070007000000032,68.300262000000089],[-97.075835999999924,68.294433999999967],[-97.091110000000015,68.268051000000014],[-97.089447000000007,68.263320999999962],[-97.080291999999929,68.259155000000078],[-96.939162999999951,68.239700000000084],[-96.925003000000004,68.239150999999993],[-96.912505999999951,68.240814000000057],[-96.817779999999914,68.258331000000112],[-96.806380999999931,68.260818000000029],[-96.799438000000009,68.265548999999965],[-96.767775999999969,68.270263999999997],[-96.693877999999927,68.280272999999966],[-96.680556999999965,68.280822999999998],[-96.669158999999979,68.276931999999931],[-96.625274999999874,68.251663000000121],[-96.553328999999962,68.273605000000032],[-96.533066000000019,68.281936999999971],[-96.47084000000001,68.305542000000003],[-96.448883000000023,68.312194999999974],[-96.437209999999993,68.314697000000024],[-96.42471299999994,68.316086000000041],[-96.410552999999993,68.315536000000009],[-96.404174999999952,68.311371000000008],[-96.496947999999975,68.207764000000054],[-96.508895999999993,68.196365000000128],[-96.525832999999977,68.184142999999949],[-96.623046999999985,68.115540000000067],[-96.690551999999968,68.079987000000074],[-96.702224999999999,68.077484000000084],[-96.730285999999921,68.078323000000069],[-96.743057000000022,68.07777400000009],[-96.75556899999998,68.076096000000007],[-96.778884999999946,68.071380999999974],[-96.797225999999966,68.06109600000002],[-96.808883999999978,68.04942299999999],[-96.812209999999936,68.043869000000029],[-96.813323999999909,68.038589000000115],[-96.811660999999901,68.033599999999979],[-96.801940999999999,68.025818000000015],[-96.789169000000015,68.017212000000086],[-96.77305599999994,68.013884999999959],[-96.722778000000005,68.009719999999959],[-96.708343999999954,68.008605999999986],[-96.676101999999958,68.018599999999992],[-96.556655999999975,68.033324999999934],[-96.540282999999931,68.030273000000022],[-96.52806099999998,68.03166200000004],[-96.466399999999965,68.038879000000122],[-96.450835999999981,68.053040000000124],[-96.479996000000028,68.090271000000087],[-96.49110399999995,68.094147000000135],[-96.505004999999926,68.094436999999971],[-96.516113000000018,68.091095000000053],[-96.53443900000002,68.080826000000002],[-96.546950999999979,68.079437000000041],[-96.548339999999996,68.084152000000074],[-96.547501000000011,68.089432000000102],[-96.535277999999892,68.101089000000059],[-96.510009999999966,68.119431000000134],[-96.482498000000021,68.134720000000016],[-96.463057999999933,68.144149999999911],[-96.432220000000029,68.156097000000045],[-96.31082200000003,68.192200000000128],[-96.288329999999974,68.197754000000089],[-96.171386999999925,68.221649000000127],[-96.136123999999938,68.228592000000106],[-95.980285999999978,68.254715000000033],[-95.968338000000017,68.230820000000051],[-96.043334999999956,68.179428000000087],[-96.069167999999991,68.16137700000013],[-96.075012000000015,68.155548000000124],[-96.078612999999962,68.149994000000106],[-96.077498999999989,68.144989000000066],[-96.073623999999995,68.140274000000034],[-96.045837000000006,68.133331000000055],[-96.03443900000002,68.129700000000014],[-96.02806099999998,68.125259000000085],[-96.020553999999947,68.116089000000045],[-96.01916499999993,68.111098999999967],[-96.020279000000016,68.106094000000098],[-96.083618000000001,68.00221300000004],[-96.144164999999987,67.923598999999967],[-96.211669999999913,67.829162999999937],[-96.215285999999878,67.823608000000036],[-96.217223999999987,67.813309000000061],[-96.221389999999985,67.697754000000032],[-96.220000999999911,67.693038999999999],[-96.212508999999955,67.683868000000075],[-96.206116000000009,67.67942800000003],[-96.195540999999992,67.682754999999986],[-96.186934999999949,67.688873000000115],[-96.179717999999923,67.692748999999992],[-96.168335000000013,67.694977000000108],[-96.166655999999989,67.690262000000075],[-96.174712999999997,67.643051000000071],[-96.185271999999941,67.626373000000001],[-96.191939999999988,67.62164300000012],[-96.203339000000028,67.61914100000007],[-96.216400000000021,67.618591000000038],[-96.230834999999956,67.619979999999998],[-96.246657999999968,67.623306000000071],[-96.257781999999963,67.626923000000033],[-96.266402999999968,67.631088000000034],[-96.329726999999991,67.610260000000096],[-96.437774999999931,67.541367000000037],[-96.461394999999925,67.508880999999917],[-96.464721999999881,67.503326000000015],[-96.469161999999983,67.492751999999996],[-96.464721999999881,67.478043000000127],[-96.461120999999991,67.473312000000021],[-96.451675000000023,67.471374999999966],[-96.441939999999931,67.475540000000137],[-96.363892000000021,67.478043000000127],[-96.294158999999979,67.444702000000007],[-96.222778000000005,67.421920999999941],[-96.210006999999962,67.419144000000074],[-96.196380999999917,67.418869000000029],[-96.185821999999973,67.422211000000004],[-96.158051,67.43664600000011],[-96.141388000000006,67.448868000000061],[-96.135559000000001,67.454712000000086],[-96.118880999999931,67.466660000000104],[-96.107498000000021,67.469147000000021],[-96.09722899999997,67.464706000000092],[-96.069457999999997,67.433593999999971],[-96.070281999999963,67.428314000000114],[-96.124161000000015,67.377196999999967],[-96.166655999999989,67.341660000000047],[-96.177215999999873,67.336929000000112],[-96.208618000000001,67.326935000000105],[-96.218613000000005,67.322768999999994],[-96.226944000000003,67.316666000000055],[-96.251113999999916,67.25277699999998],[-96.252228000000002,67.247482000000048],[-96.243606999999884,67.243317000000047],[-96.129990000000021,67.21665999999999],[-96.114440999999999,67.213318000000072],[-96.102492999999981,67.214705999999978],[-96.091384999999946,67.217209000000139],[-95.921111999999994,67.278595000000053],[-95.817504999999926,67.331940000000145],[-95.756393000000003,67.367477000000065],[-95.739990000000034,67.376648000000046],[-95.603057999999919,67.383330999999998],[-95.58944699999995,67.383040999999992],[-95.576949999999954,67.380264000000068],[-95.565825999999959,67.376648000000046],[-95.549163999999962,67.368316999999934],[-95.53472899999997,67.359984999999995],[-95.528610000000015,67.35554500000012],[-95.525008999999955,67.351089000000059],[-95.553328999999962,67.313309000000118],[-95.561660999999958,67.307205000000124],[-95.618056999999965,67.278320000000065],[-95.638061999999991,67.270828000000108],[-95.677489999999977,67.254166000000112],[-95.696654999999964,67.244979999999998],[-95.763061999999877,67.212769000000094],[-95.807495000000017,67.186096000000134],[-95.823897999999986,67.174149],[-95.829726999999991,67.168319999999937],[-95.833327999999938,67.162766000000147],[-95.821670999999924,67.161102000000142],[-95.796951000000035,67.16304000000008],[-95.774719000000005,67.167755000000113],[-95.74221799999998,67.176651000000049],[-95.712218999999948,67.188309000000061],[-95.651397999999915,67.198868000000118],[-95.568893000000003,67.210541000000148],[-95.544158999999922,67.212494000000106],[-95.515839000000028,67.209717000000012],[-95.501113999999973,67.20748900000001],[-95.435546999999929,67.193863000000079],[-95.379439999999931,67.154708999999968],[-95.326110999999969,67.027205999999978],[-95.328613000000018,67.016937000000098],[-95.337218999999948,66.99054000000001],[-95.34333799999996,66.974701000000096],[-95.350280999999882,66.963882000000069],[-95.357773000000009,66.959991000000002],[-95.416396999999961,66.951935000000105],[-95.53472899999997,66.941086000000041],[-95.597778000000005,66.948868000000004],[-95.614166000000012,66.970261000000107],[-95.721114999999998,66.964706000000035],[-95.743331999999953,66.959991000000002],[-95.839171999999962,66.94802900000002],[-95.876099000000011,66.945816000000036],[-95.902495999999985,66.946640000000002],[-95.928054999999972,66.952484000000027],[-95.93638599999997,66.956649999999968],[-95.990279999999984,67.004990000000134],[-95.993880999999931,67.009720000000016],[-95.990554999999915,67.014998999999989],[-95.978881999999999,67.026657],[-95.961120999999991,67.043869000000029],[-95.93638599999997,67.065262000000132],[-95.932219999999973,67.069716999999969],[-95.946945000000028,67.072220000000129],[-95.958344000000011,67.069716999999969],[-95.967772999999909,67.065536000000066],[-96.004456000000005,67.045821999999987],[-96.046111999999937,67.016387999999949],[-96.051665999999955,67.010818000000086],[-96.053878999999995,67.000275000000101],[-96.046660999999972,66.991088999999988],[-96.040558000000033,66.986648999999943],[-96.023620999999935,66.978591999999992],[-96.025008999999955,66.973312000000135],[-96.033066000000019,66.967484000000013],[-96.042770000000019,66.963043000000084],[-96.110549999999932,66.950821000000133],[-96.12332200000003,66.950271999999984],[-96.138610999999912,66.953598],[-96.240828999999962,66.983597000000032],[-96.262512000000015,66.991088999999988],[-96.279175000000009,66.999145999999939],[-96.285278000000005,67.003600999999946],[-96.286941999999954,67.008606000000043],[-96.285827999999981,67.013611000000083],[-96.274170000000026,67.025269000000094],[-96.265288999999996,67.030548000000067],[-96.261947999999961,67.035812000000078],[-96.261123999999995,67.041092000000106],[-96.263625999999988,67.051086000000112],[-96.268889999999885,67.06053200000008],[-96.288054999999929,67.068329000000062],[-96.37721299999987,67.084717000000126],[-96.392226999999991,67.086928999999998],[-96.403884999999946,67.085541000000092],[-96.452498999999989,67.068329000000062],[-96.460555999999883,67.062195000000031],[-96.456664999999987,67.057754999999986],[-96.403884999999946,67.008330999999998],[-96.273620999999991,66.950271999999984],[-96.146392999999989,66.894714000000135],[-96.128051999999968,66.881653000000028],[-96.11721799999998,66.867752000000053],[-96.115829000000019,66.862761999999975],[-96.11721799999998,66.857483000000002],[-96.116652999999985,66.847488000000055],[-96.115554999999972,66.842484000000127],[-96.114165999999898,66.837494000000049],[-96.108886999999982,66.832764000000054],[-96.100554999999929,66.828598000000113],[-96.006667999999934,66.794434000000081],[-95.980559999999912,66.787491000000102],[-95.956115999999952,66.782211000000075],[-95.912215999999944,66.775543000000084],[-95.883621000000005,66.768875000000094],[-95.862212999999997,66.761107999999979],[-95.848052999999993,66.752777000000037],[-95.841948999999943,66.74832200000003],[-95.784728999999913,66.674149000000057],[-95.777495999999985,66.654984000000127],[-95.777221999999881,66.644714000000022],[-95.780838000000017,66.629150000000095],[-95.741378999999938,66.638046000000031],[-95.656386999999995,66.6602630000001],[-95.646666999999979,66.664428999999984],[-95.629714999999976,66.675536999999963],[-95.627486999999974,66.68609600000002],[-95.648894999999982,66.724152000000004],[-95.652221999999995,66.728592000000049],[-95.660552999999993,66.732757999999933],[-95.674437999999896,66.734146000000067],[-95.784728999999913,66.737198000000149],[-95.993056999999965,66.84275800000006],[-96.087783999999999,66.907486000000119],[-96.091674999999896,66.911925999999994],[-96.092772999999966,66.916931000000034],[-96.091674999999896,66.922211000000061],[-96.08555599999994,66.926926000000094],[-96.066956000000005,66.936371000000008],[-96.047500999999954,66.944702000000063],[-96.037216000000001,66.94802900000002],[-96.026108000000022,66.950271999999984],[-96.000290000000007,66.950546000000088],[-95.902495999999985,66.946640000000002],[-95.814437999999996,66.941360000000145],[-95.785004000000015,66.93691999999993],[-95.772780999999952,66.932754999999929],[-95.766662999999994,66.928314],[-95.763061999999877,66.923874000000012],[-95.760559000000001,66.913879000000065],[-95.756957999999997,66.90914900000007],[-95.75111400000003,66.90498400000007],[-95.738051999999982,66.901382000000126],[-95.724715999999944,66.900817999999958],[-95.516662999999994,66.902206000000092],[-95.493057000000022,66.90498400000007],[-95.472228999999913,66.911652000000061],[-95.389175000000023,66.911102000000028],[-95.336669999999913,66.893051000000014],[-95.323623999999882,66.889434999999992],[-95.311385999999914,66.889984000000084],[-95.300827000000027,66.893326000000059],[-95.291672000000005,66.898331000000098],[-95.267501999999979,66.91415400000011],[-95.259170999999981,66.920257999999933],[-95.220839999999896,66.968322999999941],[-95.21945199999999,66.973602000000142],[-95.226394999999968,66.982758000000103],[-95.232223999999974,66.987198000000092],[-95.289443999999946,67.024994000000049],[-95.345000999999968,67.084427000000119],[-95.352218999999991,67.148331000000042],[-95.346389999999985,67.15387000000004],[-95.266112999999905,67.212769000000094],[-95.166107000000011,67.276931999999988],[-95.162216000000001,67.282211000000132],[-95.163329999999974,67.287200999999982],[-95.171936000000017,67.291367000000093],[-95.18249499999996,67.29525799999999],[-95.217223999999931,67.306366000000139],[-95.279723999999874,67.319442999999978],[-95.306380999999874,67.326660000000061],[-95.314712999999927,67.330550999999957],[-95.332779000000016,67.34387200000009],[-95.336394999999982,67.348328000000038],[-95.384170999999981,67.444138000000009],[-95.339995999999928,67.499709999999993],[-95.331679999999949,67.505829000000006],[-95.324172999999917,67.516663000000051],[-95.321670999999924,67.527206000000035],[-95.323058999999944,67.531936999999971],[-95.330001999999922,67.541367000000037],[-95.343613000000005,67.554977000000122],[-95.34973100000002,67.559417999999994],[-95.466400000000021,67.637207000000046],[-95.492492999999968,67.643326000000059],[-95.535003999999958,67.646652000000074],[-95.548339999999996,67.649994000000049],[-95.693054000000018,67.704436999999984],[-95.707779000000016,67.723038000000031],[-95.709166999999923,67.727768000000083],[-95.708053999999947,67.733047000000056],[-95.704453000000001,67.738586000000055],[-95.698333999999988,67.744431000000134],[-95.68110699999994,67.756378000000097],[-95.671936000000017,67.761657999999954],[-95.64973399999991,67.767211999999972],[-95.637511999999958,67.768600000000049],[-95.626388999999961,67.771927000000005],[-95.577498999999989,67.787491000000102],[-95.558883999999978,67.797759999999926],[-95.550277999999878,67.803863999999976],[-95.544158999999922,67.809708000000001],[-95.53443900000002,67.820830999999998],[-95.525833000000034,67.836928999999998],[-95.522231999999974,67.852767999999969],[-95.527221999999995,67.872208000000114],[-95.452224999999999,67.981094000000041],[-95.416945999999996,68.027771000000143],[-95.42721599999993,68.032486000000006],[-95.47193900000002,68.054977000000008],[-95.475280999999939,68.058319000000097],[-95.472777999999948,68.06053200000008],[-95.461394999999868,68.063873000000115],[-95.404175000000009,68.069443000000035],[-95.34973100000002,68.074432000000002],[-95.343063000000029,68.074432000000002],[-95.075561999999877,68.068877999999984],[-95.071120999999948,68.063599000000011],[-95.065276999999924,68.060257000000036],[-95.054992999999911,68.055251999999996],[-95.043883999999935,68.051376000000118],[-95.023620999999991,68.04582199999993],[-95.008895999999936,68.044434000000024],[-94.86721799999998,68.034149000000127],[-94.839721999999938,68.034149000000127],[-94.788054999999986,68.040543000000127],[-94.72222899999997,68.054977000000008],[-94.714172000000019,68.059418000000107],[-94.707503999999972,68.065811000000053],[-94.696654999999964,68.078598000000056],[-94.693877999999984,68.083328000000108],[-94.604995999999971,68.139708999999982],[-94.37249799999995,68.221375000000023],[-94.210555999999997,68.262772000000041],[-94.199157999999954,68.267761000000007],[-94.193603999999993,68.272217000000069],[-94.192214999999976,68.276382000000069],[-94.191665999999941,68.281372000000147],[-94.192489999999907,68.292206000000022],[-94.193603999999993,68.298325000000034],[-94.205275999999913,68.313309000000118],[-94.209166999999979,68.323607999999979],[-94.210280999999952,68.328049000000078],[-94.210830999999985,68.361374000000126],[-94.208054000000004,68.366088999999988],[-94.203888000000006,68.370255000000043],[-94.123046999999985,68.416931000000091],[-94.104720999999984,68.424149000000057],[-94.00028999999995,68.460815000000025],[-93.968063000000029,68.468596999999932],[-93.953613000000018,68.471924000000058],[-93.936661000000015,68.474700999999982],[-93.922774999999945,68.475540000000137],[-93.893615999999952,68.474700999999982],[-93.875823999999909,68.477203000000031],[-93.81138599999997,68.488037000000134],[-93.661391999999978,68.520828000000051],[-93.656661999999983,68.523315000000139],[-93.619155999999975,68.544144000000074],[-93.553329000000019,68.586380000000077],[-93.559722999999963,68.611649000000114],[-93.621933000000013,68.624419999999986],[-93.647507000000019,68.626923000000147],[-93.65306099999998,68.626373000000115],[-93.705276000000026,68.657211000000132],[-93.697220000000016,68.749145999999939],[-93.695267000000001,68.751938000000052],[-93.639450000000011,68.780548000000067],[-93.571670999999924,68.834152000000074],[-93.567504999999926,68.839706000000092],[-93.566100999999946,68.849425999999994],[-93.634444999999971,68.959152000000131],[-93.642226999999934,68.963882000000012],[-93.666945999999996,68.972214000000008],[-93.731383999999991,68.974991000000102],[-93.925551999999868,68.974701000000039],[-94.030838000000017,68.918594000000098],[-94.039169000000015,68.914154000000053],[-94.055832000000009,68.901932000000102],[-94.068893000000003,68.891098000000056],[-94.079726999999991,68.847488000000055],[-94.071120999999891,68.843596999999988],[-94.034164000000033,68.833328000000108],[-94.021118000000001,68.836105000000032],[-93.933884000000035,68.855255],[-93.852492999999981,68.879149999999981],[-93.838607999999965,68.885268999999994],[-93.837783999999999,68.886383000000023],[-93.824722000000008,68.891373000000044],[-93.813889000000017,68.893050999999957],[-93.80999799999995,68.890549000000078],[-93.813889000000017,68.88499500000006],[-93.829726999999934,68.876083000000051],[-93.934157999999968,68.824997000000053],[-94.085006999999962,68.761108000000092],[-94.095276000000013,68.758040999999992],[-94.108046999999999,68.755264000000068],[-94.15972899999997,68.747756999999979],[-94.385559000000001,68.729155999999932],[-94.490828999999962,68.728867000000037],[-94.625,68.761383000000137],[-94.608886999999925,68.819443000000035],[-94.588897999999915,68.841370000000097],[-94.583327999999938,68.845825000000104],[-94.570847000000015,68.850266000000033],[-94.561661000000015,68.855255],[-94.556106999999997,68.859985000000052],[-94.553054999999972,68.864425999999924],[-94.545273000000009,68.884720000000073],[-94.548049999999932,68.888885000000073],[-94.557495000000017,68.893050999999957],[-94.569457999999941,68.893600000000106],[-94.577224999999999,68.896652000000017],[-94.585555999999997,68.903046000000074],[-94.589995999999985,68.908325000000048],[-94.605835000000013,68.951096000000064],[-94.604172000000005,68.961929000000055],[-94.599166999999966,68.965546000000018],[-94.587219000000005,68.968872000000033],[-94.553329000000019,68.973877000000073],[-94.37388599999997,69.003052000000139],[-94.224166999999966,69.027771000000143],[-94.163054999999986,69.052200000000084],[-94.151397999999972,69.057205000000124],[-94.072784000000013,69.126648000000046],[-94.072509999999966,69.144989000000066],[-94.137511999999901,69.131927000000019],[-94.22084000000001,69.1202550000001],[-94.235001000000011,69.119431000000134],[-94.248336999999935,69.120529000000033],[-94.312209999999993,69.144989000000066],[-94.323058999999944,69.149994000000106],[-94.327498999999989,69.15525800000006],[-94.329177999999899,69.16137700000013],[-94.309433000000013,69.294144000000131],[-94.306655999999975,69.300262000000089],[-94.303328999999962,69.304977000000122],[-94.291672000000005,69.313873000000058],[-94.284163999999976,69.318878000000097],[-94.259170999999924,69.326660000000061],[-94.166655999999989,69.342483999999956],[-94.043335000000013,69.357483000000059],[-94.025009000000011,69.359711000000004],[-93.955276000000026,69.362762000000032],[-93.736664000000019,69.399994000000049],[-93.626937999999939,69.432479999999941],[-93.574721999999952,69.441650000000038],[-93.562774999999988,69.442748999999992],[-93.526397999999915,69.438309000000004],[-93.532501000000025,69.429977000000008],[-93.547774999999945,69.420532000000094],[-93.67971799999998,69.347762999999929],[-93.691665999999941,69.34275800000006],[-93.741378999999995,69.324432000000058],[-93.753066999999987,69.320540999999992],[-93.764174999999966,69.320540999999992],[-93.828612999999962,69.265549000000078],[-93.856110000000001,69.176926000000037],[-93.856658999999979,69.172211000000004],[-93.845001000000025,69.164992999999981],[-93.837218999999891,69.164429000000041],[-93.634734999999978,69.251663000000121],[-93.467498999999918,69.317490000000021],[-93.456664999999987,69.323043999999982],[-93.362777999999992,69.37164300000012],[-93.365279999999984,69.376082999999994],[-93.379439999999988,69.376373000000001],[-93.459166999999866,69.359711000000004],[-93.470001000000025,69.356644000000074],[-93.478057999999976,69.353317000000118],[-93.498046999999985,69.349152000000117],[-93.511947999999961,69.349426000000051],[-93.565001999999936,69.367752000000053],[-93.560546999999929,69.383881000000031],[-93.538054999999929,69.410538000000088],[-93.527221999999995,69.421646000000067],[-93.515839000000028,69.425537000000134],[-93.503066999999874,69.427475000000072],[-93.488892000000021,69.434982000000048],[-93.439437999999939,69.475265999999976],[-93.441375999999991,69.48054499999995],[-93.487777999999992,69.502777000000037],[-93.509734999999921,69.513046000000088],[-93.532501000000025,69.521103000000039],[-93.540833000000021,69.523315000000082],[-93.587219000000005,69.528046000000018],[-93.621933000000013,69.527205999999978],[-93.683883999999978,69.522217000000012],[-93.709732000000031,69.516098],[-93.808884000000035,69.488876000000062],[-93.869719999999973,69.451660000000118],[-94.045272999999952,69.439148000000102],[-94.279175000000009,69.440262000000075],[-94.299728000000016,69.443038999999999],[-94.313048999999978,69.446640000000059],[-94.343886999999938,69.459152000000074],[-94.451674999999966,69.518600000000049],[-94.502501999999993,69.556366000000025],[-94.591948999999943,69.637206999999989],[-94.629439999999988,69.683044000000052],[-94.670273000000009,69.677475000000072],[-94.712783999999999,69.67164600000001],[-94.749435000000005,69.663605000000132],[-94.755004999999926,69.661652000000004],[-94.764174999999966,69.65498400000007],[-94.766662999999937,69.651093000000003],[-94.762222000000008,69.644714000000135],[-94.742217999999923,69.628311000000053],[-94.724441999999954,69.61442599999998],[-94.725554999999929,69.608597000000145],[-94.730835000000013,69.602767999999969],[-94.740279999999984,69.597488000000055],[-94.769729999999981,69.583054000000061],[-94.801101999999901,69.572219999999959],[-94.820007000000032,69.56721500000009],[-94.831116000000009,69.56581100000011],[-94.846664000000033,69.565536000000122],[-94.862777999999878,69.566940000000102],[-94.951950000000011,69.584427000000119],[-95.010558999999944,69.603043000000127],[-95,69.618865999999969],[-95.009444999999971,69.621643000000063],[-95.021118000000001,69.621643000000063],[-95.078612999999962,69.616379000000109],[-95.168609999999887,69.630538999999999],[-95.396118000000001,69.678864000000033],[-95.40834000000001,69.681931000000134],[-95.423049999999932,69.686096000000134],[-95.544997999999964,69.726929000000041],[-95.648055999999997,69.780273000000022],[-95.71556099999998,69.791366999999923],[-95.724715999999944,69.789978000000133],[-95.728332999999907,69.789153999999996],[-95.738892000000021,69.786102000000028],[-95.757232999999928,69.777205999999921],[-95.758620999999948,69.772766000000104],[-95.86332699999997,69.772216999999955],[-95.960830999999985,69.778045999999961],[-95.975554999999929,69.781937000000028],[-96.020279000000016,69.80442800000003],[-96.035827999999924,69.813873000000115],[-96.074447999999961,69.841934000000037],[-96.087783999999999,69.869141000000127],[-96.082229999999925,69.873596000000134],[-96.085007000000019,69.91137700000013],[-96.097778000000005,69.946639999999945],[-96.116104000000007,69.953872999999987],[-96.177215999999873,69.964705999999921],[-96.195540999999992,69.965546000000018],[-96.198607999999979,69.964995999999985],[-96.209441999999967,69.961655000000121],[-96.217223999999987,69.958327999999995],[-96.220550999999944,69.95748900000001],[-96.235000999999954,69.95748900000001],[-96.246947999999918,69.958878000000027],[-96.257232999999928,69.963043000000027],[-96.272780999999952,69.971099999999979],[-96.38137799999987,70.02748100000008],[-96.402495999999871,70.039978000000076],[-96.459441999999967,70.075546000000088],[-96.500290000000007,70.101379000000009],[-96.509170999999924,70.108597000000032],[-96.525283999999942,70.122756999999979],[-96.531677000000002,70.131088000000034],[-96.55610699999994,70.191925000000083],[-96.568892999999946,70.224425999999994],[-96.571670999999867,70.234421000000054],[-96.570281999999963,70.251099000000124],[-96.568619000000012,70.268600000000106],[-96.562774999999931,70.300262000000032],[-96.558608999999933,70.3119200000001],[-96.555557000000022,70.317490000000134],[-96.548339999999996,70.328872999999987],[-96.535003999999958,70.344147000000078],[-96.294723999999974,70.522491000000116],[-96.232773000000009,70.562195000000031],[-96.078887999999893,70.587494000000049],[-96.069732999999928,70.587769000000037],[-96.045273000000009,70.584152000000074],[-96.041107000000011,70.576934999999992],[-96.033324999999934,70.572769000000108],[-95.995269999999948,70.559707999999944],[-95.93499799999995,70.547485000000108],[-95.92332499999992,70.545258000000047],[-95.806106999999997,70.528869999999984],[-95.797225999999966,70.529434000000094],[-95.789443999999946,70.536652000000117],[-95.791381999999999,70.542755000000056],[-95.799164000000019,70.549149000000114],[-95.855834999999956,70.553314000000114],[-95.914168999999902,70.559417999999937],[-95.931670999999938,70.562195000000031],[-95.96444699999995,70.568878000000041],[-96.000564999999995,70.579987000000074],[-96.049987999999928,70.600266000000033],[-96.058334000000002,70.605820000000051],[-96.061385999999857,70.617203000000018],[-96.055557000000022,70.643050999999957],[-96.048339999999996,70.646942000000024],[-95.952498999999989,70.679702999999961],[-95.848343,70.706940000000088],[-95.815551999999968,70.70915199999996],[-95.817779999999971,70.710265999999933],[-95.901947000000007,70.707764000000054],[-95.932770000000005,70.701096000000064],[-96.115554999999972,70.656097000000102],[-96.138061999999991,70.646378000000084],[-96.149993999999936,70.637206999999989],[-96.152785999999935,70.632477000000108],[-96.154723999999987,70.624694999999974],[-96.153885000000002,70.621643000000063],[-96.158051,70.617476999999951],[-96.160277999999948,70.616379000000052],[-96.16361999999998,70.615540000000124],[-96.202788999999996,70.621643000000063],[-96.376098999999954,70.673035000000027],[-96.385284000000013,70.677765000000022],[-96.394729999999981,70.683594000000028],[-96.401108000000022,70.690536000000122],[-96.410003999999958,70.702484000000027],[-96.415557999999976,70.71527100000003],[-96.422500999999954,70.726089000000002],[-96.43472300000002,70.737198000000035],[-96.446654999999964,70.741928000000087],[-96.53694200000001,70.763321000000019],[-96.580565999999976,70.777480999999909],[-96.603881999999942,70.788040000000137],[-96.611938000000009,70.794434000000024],[-96.61500499999994,70.80442800000003],[-96.61361699999992,70.8211060000001],[-96.601944000000003,70.849990999999989],[-96.591674999999952,70.866928000000144],[-96.578613000000018,70.878035999999952],[-96.571121000000005,70.883040999999992],[-96.545272999999895,70.904983999999956],[-96.53083799999996,70.921371000000136],[-96.52416999999997,70.931656000000032],[-96.513061999999991,70.949707000000046],[-96.510833999999932,70.955826000000059],[-96.503066999999987,70.99693300000007],[-96.495833999999888,71.040268000000083],[-96.481673999999884,71.043319999999994],[-96.450286999999946,71.044983000000116],[-96.414444000000003,71.053589000000045],[-96.406661999999926,71.058594000000085],[-96.369995000000017,71.089981000000023],[-96.371108999999933,71.093048000000124],[-96.375823999999966,71.098037999999974],[-96.40943900000002,71.119431000000077],[-96.417770000000019,71.113602000000071],[-96.420273000000009,71.107208000000014],[-96.412215999999944,71.095824999999991],[-96.410003999999958,71.089705999999978],[-96.413619999999923,71.084152000000017],[-96.421111999999994,71.0816650000001],[-96.440825999999959,71.079163000000051],[-96.461394999999925,71.080551000000128],[-96.476669000000015,71.08526599999999],[-96.50556899999998,71.097214000000008],[-96.538329999999974,71.11303700000002],[-96.552215999999987,71.119980000000055],[-96.560546999999985,71.126373000000001],[-96.559433000000013,71.1308140000001],[-96.553878999999995,71.136932000000058],[-96.548614999999927,71.140548999999965],[-96.467223999999931,71.165267999999969],[-96.457992999999988,71.195564000000047],[-96.462203999999986,71.255501000000038],[-96.504455999999891,71.276093000000117],[-96.503890999999953,71.277205999999978],[-96.488891999999964,71.286102000000085],[-96.278060999999923,71.326384999999959],[-96.24499499999996,71.353866999999923],[-96.21833799999996,71.375809000000004],[-96.193329000000006,71.389984000000084],[-96.168335000000013,71.399993999999992],[-96.134170999999981,71.409714000000065],[-96.046386999999982,71.418045000000006],[-96.027785999999935,71.417755],[-95.926392000000021,71.400542999999971],[-95.893889999999942,71.390823000000069],[-95.882766999999944,71.384155000000078],[-95.878875999999991,71.378586000000098],[-95.878052000000025,71.37303200000008],[-95.878875999999991,71.367203000000075],[-95.859160999999972,71.354980000000012],[-95.830001999999922,71.343048000000067],[-95.792220999999927,71.328049000000021],[-95.673049999999989,71.287491000000102],[-95.658889999999985,71.285537999999974],[-95.551102000000014,71.289978000000019],[-95.535278000000005,71.290816999999947],[-95.455276000000026,71.367751999999996],[-95.451401000000033,71.375809000000004],[-95.547775000000001,71.487762000000032],[-95.779998999999975,71.503875999999991],[-95.832779000000016,71.515823000000125],[-95.936660999999901,71.546646000000123],[-95.943054000000018,71.553589000000102],[-95.908339999999953,71.600540000000137],[-95.895003999999915,71.610535000000027],[-95.889998999999989,71.613312000000121],[-95.877212999999983,71.61831699999999],[-95.863892000000021,71.619430999999963],[-95.812209999999936,71.621918000000051],[-95.744719999999973,71.624145999999996],[-95.678878999999995,71.646378000000084],[-95.539718999999991,71.703597999999943],[-95.399733999999967,71.718597000000045],[-95.301620000000014,71.721099999999979],[-95.289443999999946,71.753601000000117],[-95.289443999999946,71.757491999999957],[-95.288054999999872,71.761932000000002],[-95.285827999999981,71.767212000000086],[-95.239440999999999,71.82249500000006],[-95.226944000000003,71.826660000000061],[-95.073059000000001,71.84137000000004],[-94.890288999999996,71.844711000000075],[-94.856383999999991,71.843322999999998],[-94.838897999999972,71.841094999999996],[-94.795272999999952,71.833328000000051],[-94.744155999999975,71.823044000000039],[-94.73443599999996,71.823317999999972],[-94.716399999999965,71.826096000000121],[-94.653884999999946,71.845261000000107],[-94.612503000000004,71.859711000000004],[-94.606658999999979,71.863312000000064],[-94.607772999999952,71.866378999999995],[-94.615279999999984,71.868866000000082],[-94.629715000000033,71.866928000000144],[-94.65583799999996,71.861923000000104],[-94.706115999999952,71.848038000000031],[-94.743056999999965,71.839432000000102],[-94.756957999999941,71.837493999999936],[-94.775283999999942,71.838882000000069],[-94.783066000000019,71.84137000000004],[-94.826110999999969,71.847487999999998],[-94.853607000000011,71.849426000000108],[-94.903885000000002,71.850266000000147],[-95.102492999999981,71.851089000000002],[-95.119155999999975,71.850266000000147],[-95.157227000000034,71.845825000000048],[-95.179992999999968,71.843048000000124],[-95.180557000000022,71.842208999999968],[-95.192489999999964,71.84137000000004],[-95.213333000000034,71.843048000000124],[-95.231110000000001,71.849152000000004],[-95.240829000000019,71.853867000000037],[-95.25167799999997,71.86053499999997],[-95.256667999999934,71.866928000000144],[-95.255004999999983,71.895537999999988],[-95.222778000000005,71.942200000000071],[-95.217498999999862,71.944976999999994],[-95.201400999999976,71.94720500000011],[-94.97193900000002,71.975814999999955],[-94.741104000000007,71.99192800000003],[-94.698043999999982,71.993590999999924],[-94.661666999999966,71.994980000000112],[-94.579726999999991,71.99693300000007],[-94.56361400000003,71.99693300000007],[-94.530288999999982,71.99443100000002],[-94.499435000000005,71.988037000000134],[-94.487212999999997,71.983322000000101],[-94.393615999999952,71.938309000000004],[-94.387222000000008,71.933868000000075],[-94.388610999999912,71.924149000000114],[-94.460555999999997,71.849426000000108],[-94.47222899999997,71.847214000000065],[-94.506667999999991,71.847762999999986],[-94.521118000000001,71.849990999999932],[-94.539444000000003,71.851379000000065],[-94.562499999999943,71.849990999999932],[-94.574448000000018,71.84693900000002],[-94.64416499999993,71.818329000000006],[-94.61860699999994,71.753326000000072],[-94.611937999999952,71.74971000000005],[-94.599730999999906,71.744704999999954],[-94.594161999999983,71.743317000000047],[-94.569457999999941,71.744979999999998],[-94.555831999999896,71.750000000000057],[-94.538604999999961,71.758331000000112],[-94.536391999999978,71.761108000000036],[-94.528609999999958,71.771378000000141],[-94.519729999999925,71.78915400000011],[-94.497498000000007,71.818329000000006],[-94.48832699999997,71.824158000000011],[-94.484726000000023,71.824706999999933],[-94.392226999999991,71.81442300000009],[-94.366104000000007,71.802475000000072],[-94.356658999999866,71.796371000000022],[-94.354720999999984,71.792479999999955],[-94.389998999999989,71.71775800000006],[-94.419448999999986,71.667205999999965],[-94.423889000000031,71.66137700000013],[-94.418335000000013,71.659987999999942],[-94.40695199999999,71.660812000000135],[-94.368880999999988,71.675262000000032],[-94.267226999999991,71.730820000000051],[-94.258895999999993,71.741928000000087],[-94.255843999999968,71.753876000000105],[-94.242766999999958,71.770828000000108],[-94.228058000000033,71.781661999999983],[-94.207229999999925,71.789428999999927],[-94.194442999999922,71.791931000000034],[-94.181670999999994,71.791931000000034],[-94.036941999999954,71.787200999999982],[-94.023620999999991,71.785812000000021],[-94.014724999999885,71.781096999999988],[-94.008347000000015,71.774993999999992],[-94.006393000000003,71.763321000000019],[-93.993880999999988,71.753052000000139],[-93.972503999999958,71.745818999999983],[-93.942490000000021,71.743590999999981],[-93.909728999999913,71.744979999999998],[-93.888061999999991,71.748322000000087],[-93.871383999999978,71.753052000000139],[-93.850280999999995,71.763321000000019],[-93.830841000000021,71.771652000000074],[-93.818892999999889,71.774703999999986],[-93.802215999999987,71.775542999999971],[-93.784164000000033,71.774155000000064],[-93.741942999999992,71.769150000000025],[-93.726669000000015,71.76638800000012],[-93.71166999999997,71.761383000000023],[-93.707229999999925,71.754990000000078],[-93.694153000000028,71.716095000000109],[-93.696655000000021,71.710815000000082],[-93.704452999999944,71.705261000000064],[-93.737777999999992,71.689423000000033],[-93.764724999999999,71.679703000000131],[-93.811110999999926,71.657486000000063],[-93.818618999999956,71.651932000000102],[-93.81138599999997,71.645538000000045],[-93.797226000000023,71.639435000000105],[-93.658339999999896,71.581940000000031],[-93.618057000000022,71.56860400000005],[-93.589447000000007,71.561371000000065],[-93.513061999999877,71.544707999999957],[-93.494994999999903,71.541656000000046],[-93.476944000000003,71.540267999999969],[-93.428328999999962,71.534149000000127],[-93.412216000000001,71.530823000000055],[-93.230835000000013,71.473602000000142],[-93.214171999999962,71.467209000000139],[-93.201401000000033,71.461380000000133],[-93.18638599999997,71.435806000000127],[-93.18638599999997,71.430267000000129],[-93.18998699999986,71.423874000000012],[-93.193877999999927,71.419433999999967],[-93.195540999999935,71.413605000000132],[-93.190551999999968,71.408035000000098],[-93.180556999999965,71.401093000000003],[-93.142501999999979,71.374985000000038],[-93.128875999999991,71.368866000000025],[-93.101944000000003,71.367477000000008],[-93.062774999999988,71.36943100000002],[-93.045272999999952,71.367751999999996],[-93.029175000000009,71.36442599999998],[-92.997222999999963,71.353866999999923],[-92.985824999999863,71.348877000000073],[-92.977218999999934,71.343872000000033],[-92.973891999999978,71.340820000000122],[-92.941939999999931,71.288879000000009],[-92.938599000000011,71.270538000000045],[-92.936110999999926,71.247481999999991],[-92.931945999999925,71.220535000000041],[-92.930831999999953,71.214432000000102],[-92.923889000000031,71.207763999999941],[-92.854445999999996,71.151382000000126],[-92.862777999999992,71.139434999999992],[-92.869155999999975,71.128036000000122],[-92.888610999999969,71.074707000000103],[-92.889998999999932,71.065810999999997],[-92.906951999999933,70.912491000000102],[-93.030838000000017,70.878860000000088],[-93.040833000000021,70.877762000000018],[-93.048339999999996,70.873870999999951],[-93.046111999999937,70.867203000000018],[-93.042769999999905,70.863876000000062],[-93.027495999999985,70.852768000000083],[-92.982498000000021,70.825546000000145],[-92.958618000000001,70.817490000000078],[-92.928328999999962,70.811371000000008],[-92.911391999999978,70.809982000000048],[-92.813048999999978,70.805817000000047],[-92.688598999999954,70.775542999999971],[-92.676666000000012,70.771652000000074],[-92.641112999999962,70.71527100000003],[-92.639449999999954,70.709991000000116],[-92.642501999999979,70.706375000000094],[-92.621933000000013,70.683594000000028],[-92.592772999999966,70.685806000000127],[-92.430557000000022,70.666091999999992],[-92.418059999999969,70.66304000000008],[-92.208053999999947,70.610260000000039],[-92.199158000000011,70.606644000000017],[-92.169158999999979,70.590271000000143],[-92.159163999999976,70.584152000000074],[-92.157501000000025,70.579163000000108],[-92.156661999999983,70.573044000000095],[-92.168335000000013,70.569992000000013],[-92.196105999999986,70.571105999999986],[-92.228607000000011,70.573608000000036],[-92.245543999999995,70.571380999999974],[-92.25,70.569716999999969],[-92.265014999999892,70.551926000000037],[-92.265014999999892,70.548035000000141],[-92.25,70.501389000000131],[-92.238051999999982,70.487198000000092],[-92.116652999999985,70.470825000000048],[-92.110000999999897,70.468322999999998],[-91.996947999999975,70.390823000000069],[-91.987777999999992,70.355820000000108],[-91.992492999999968,70.320540999999992],[-91.995269999999948,70.316665999999998],[-91.985549999999932,70.289703000000031],[-91.959732000000031,70.2586060000001],[-91.952224999999999,70.255264000000125],[-91.946945000000028,70.258041000000048],[-91.942214999999976,70.263610999999969],[-91.920273000000009,70.296370999999965],[-91.900283999999999,70.330826000000116],[-91.903610000000015,70.337204000000042],[-91.904449,70.343323000000112],[-91.89805599999994,70.349152000000117],[-91.890288999999996,70.354431000000091],[-91.878052000000025,70.358321999999987],[-91.867492999999968,70.360260000000096],[-91.853058000000033,70.361374000000069],[-91.73721299999994,70.358596999999975],[-91.729720999999984,70.356934000000081],[-91.703887999999949,70.34526100000005],[-91.698883000000023,70.342484000000127],[-91.69387799999987,70.336380000000077],[-91.636123999999938,70.231658999999979],[-91.565276999999924,70.200546000000145],[-91.524169999999913,70.179153000000042],[-91.513625999999931,70.167206000000078],[-91.511948000000018,70.158875000000023],[-91.511397999999986,70.152771000000143],[-91.516953000000001,70.146378000000027],[-91.529174999999952,70.142487000000131],[-91.542495999999915,70.140823000000125],[-91.578063999999927,70.13749700000011],[-91.916655999999989,70.119980000000055],[-91.953339000000028,70.118317000000104],[-91.972228999999913,70.118591000000038],[-92.003890999999953,70.121368000000132],[-92.021392999999989,70.123596000000077],[-92.036117999999931,70.126923000000033],[-92.049438000000009,70.132202000000007],[-92.05749499999996,70.136932000000058],[-92.234436000000017,70.212203999999986],[-92.268341000000021,70.208878000000141],[-92.393065999999976,70.150543000000027],[-92.450287000000003,70.0711060000001],[-92.432220000000029,70.075546000000088],[-92.285278000000005,70.089706000000035],[-92.268341000000021,70.090546000000074],[-92.177489999999977,70.088318000000072],[-92.129990000000021,70.084991000000002],[-92.087508999999898,70.079711999999972],[-92.026397999999972,70.066376000000048],[-91.993056999999965,70.058594000000085],[-91.985274999999945,70.053864000000033],[-91.939712999999983,70.020263999999997],[-91.946654999999907,70.015823000000069],[-92.114440999999999,69.956375000000037],[-92.148894999999925,69.946639999999945],[-92.203887999999949,69.92053199999998],[-92.369445999999982,69.847763000000043],[-92.543335000000013,69.780548000000067],[-92.658614999999998,69.761108000000092],[-92.778610000000015,69.722214000000008],[-92.775283999999999,69.706375000000094],[-92.565552000000025,69.71276899999998],[-92.551392000000021,69.712494000000106],[-92.535004000000015,69.709427000000005],[-92.535277999999948,69.705261000000121],[-92.709732000000031,69.673874000000012],[-92.728881999999999,69.67164600000001],[-92.743805000000009,69.671951000000035],[-92.777221999999938,69.676086000000055],[-92.858046999999999,69.6827550000001],[-92.871384000000035,69.682480000000112],[-92.908889999999985,69.680541999999946],[-92.922774999999888,69.679427999999973],[-92.923614999999927,69.678314],[-92.920273000000009,69.669708000000071],[-92.897506999999962,69.665543000000071],[-92.836120999999991,69.655822999999998],[-92.827498999999989,69.655822999999998],[-92.694442999999978,69.656372000000147],[-92.634726999999998,69.671088999999938],[-92.629378999999972,69.673592000000099],[-92.619056999999998,69.675758000000087],[-92.5625,69.687484999999981],[-92.523620999999935,69.692749000000106],[-92.506957999999941,69.693588000000091],[-92.340835999999967,69.694138000000123],[-92.305831999999896,69.665817000000004],[-92.205276000000026,69.645538000000101],[-92.091110000000015,69.624695000000031],[-92.088333000000034,69.62303200000008],[-92.088607999999965,69.618865999999969],[-92.090835999999911,69.616089000000102],[-92.110549999999932,69.613036999999963],[-92.122771999999998,69.612198000000035],[-92.134170999999981,69.612488000000042],[-92.243606999999884,69.630264000000011],[-92.28195199999999,69.639984000000084],[-92.291107000000011,69.641373000000101],[-92.300551999999925,69.641663000000108],[-92.297501000000011,69.636932000000002],[-92.124709999999936,69.554977000000065],[-92.084166999999979,69.544708000000014],[-91.938323999999909,69.517761000000121],[-91.803329000000019,69.498870999999951],[-91.804168999999888,69.504990000000021],[-91.798339999999939,69.513885000000016],[-91.497498000000007,69.658600000000092],[-91.485001000000011,69.663315000000125],[-91.475280999999939,69.664429000000098],[-91.450835999999981,69.65887499999991],[-91.418883999999935,69.65554800000001],[-91.314163000000008,69.652771000000087],[-91.221114999999998,69.653320000000008],[-91.202224999999942,69.655258000000003],[-91.188599000000011,69.65387000000004],[-91.097777999999948,69.638321000000133],[-91.094161999999983,69.636108000000036],[-91.091949,69.631652999999972],[-91.095275999999956,69.626647999999932],[-91.101943999999946,69.620819000000097],[-91.105835000000013,69.619141000000013],[-91.334441999999967,69.552765000000022],[-91.36082499999992,69.54553199999998],[-91.380554000000018,69.542480000000069],[-91.396118000000001,69.541091999999992],[-91.460555999999997,69.539703000000145],[-91.494720000000029,69.537201000000096],[-91.514450000000011,69.534148999999957],[-91.562774999999931,69.522491000000116],[-91.570281999999963,69.520264000000054],[-91.56639100000001,69.514708999999982],[-91.557770000000005,69.508041000000048],[-91.553878999999995,69.505554000000132],[-91.402221999999938,69.522217000000012],[-91.333618000000001,69.534988000000112],[-91.321670999999924,69.538879000000009],[-91.192215000000033,69.562759000000028],[-91.17971799999998,69.558868000000132],[-91.160277999999892,69.546097000000032],[-91.15055799999999,69.537201000000096],[-91.146666999999923,69.531662000000097],[-91.143616000000009,69.525268999999923],[-91.138610999999855,69.519150000000081],[-91.128326000000015,69.514160000000061],[-91.114166000000012,69.510817999999915],[-91.102782999999988,69.508881000000088],[-90.969727000000034,69.511383000000137],[-90.830001999999922,69.484984999999995],[-90.758620999999948,69.482758000000103],[-90.751953000000015,69.487198000000149],[-90.751403999999866,69.49275200000011],[-90.758057000000008,69.501389000000131],[-90.755843999999968,69.507217000000082],[-90.754181000000017,69.509155000000021],[-90.716109999999958,69.539429000000041],[-90.698607999999922,69.539429000000041],[-90.651108000000022,69.534424000000001],[-90.536666999999909,69.513885000000016],[-90.493332000000009,69.504166000000055],[-90.436661000000015,69.489700000000028],[-90.318619000000012,69.454437000000041],[-90.307769999999948,69.450272000000041],[-90.307769999999948,69.44720500000011],[-90.319457999999997,69.440536000000009],[-90.34445199999999,69.432205000000124],[-90.358046999999942,69.429703000000075],[-90.396392999999875,69.428589000000102],[-90.411391999999921,69.431365999999969],[-90.427489999999977,69.440811000000053],[-90.43360899999999,69.444976999999938],[-90.438323999999966,69.448029000000076],[-90.450561999999991,69.450272000000041],[-90.463332999999921,69.448593000000017],[-90.493332000000009,69.440811000000053],[-90.555556999999965,69.422485000000052],[-90.613891999999908,69.451096000000007],[-90.621932999999956,69.453323000000012],[-90.703612999999962,69.453598000000056],[-90.704453000000001,69.451385000000073],[-90.698607999999922,69.446091000000138],[-90.636948000000018,69.429703000000075],[-90.585830999999985,69.419144000000017],[-90.582229999999925,69.416931000000034],[-90.584732000000031,69.41415399999994],[-90.600829999999974,69.408599999999979],[-90.694991999999957,69.389709000000096],[-90.705275999999969,69.387772000000098],[-90.718613000000005,69.387772000000098],[-90.741378999999938,69.382750999999928],[-90.790282999999988,69.362762000000032],[-90.809432999999956,69.342209000000139],[-90.813048999999921,69.338318000000072],[-90.815826000000015,69.333327999999995],[-90.818619000000012,69.298598999999967],[-90.815001999999993,69.293319999999994],[-90.80860899999999,69.287490999999989],[-90.805557000000022,69.282761000000107],[-90.803878999999995,69.259720000000073],[-90.804717999999923,69.255829000000006],[-90.809432999999956,69.253326000000015],[-90.822234999999978,69.251663000000121],[-90.903885000000002,69.246368000000075],[-90.920837000000006,69.246368000000075],[-90.931380999999931,69.247482000000048],[-91.081115999999952,69.266936999999984],[-91.214721999999938,69.290268000000083],[-91.296386999999925,69.3119200000001],[-91.345276000000013,69.328049000000021],[-91.355834999999956,69.332214000000022],[-91.426391999999964,69.350540000000024],[-91.438599000000011,69.352768000000026],[-91.447220000000016,69.352768000000026],[-91.446655000000021,69.349716000000058],[-91.431945999999982,69.33859300000006],[-91.335281000000009,69.304428000000144],[-91.130553999999961,69.24192800000003],[-91.031386999999938,69.218323000000055],[-90.918883999999935,69.160812000000078],[-90.895003999999972,69.150818000000072],[-90.815001999999993,69.133606000000043],[-90.664718999999991,69.083328000000051],[-90.654998999999918,69.078049000000078],[-90.654174999999952,69.07609599999995],[-90.654449,69.070541000000048],[-90.660552999999993,69.059982000000048],[-90.669448999999929,69.049987999999985],[-90.583892999999989,68.928864000000033],[-90.544998000000021,68.911102000000142],[-90.528884999999946,68.908600000000092],[-90.47444200000001,68.890549000000078],[-90.436385999999914,68.874419999999986],[-90.419448999999986,68.840820000000065],[-90.446105999999986,68.779709000000139],[-90.449158000000011,68.77609300000006],[-90.454177999999956,68.773605000000089],[-90.464721999999995,68.770827999999995],[-90.478332999999964,68.768326000000116],[-90.492492999999968,68.767761000000064],[-90.497498000000007,68.768326000000116],[-90.501113999999973,68.770827999999995],[-90.513900999999976,68.759155000000135],[-90.526672000000019,68.744431000000134],[-90.527785999999992,68.736649],[-90.522507000000019,68.729980000000069],[-90.506957999999997,68.724990999999932],[-90.480285999999921,68.707764000000111],[-90.479172000000005,68.705826000000002],[-90.47444200000001,68.530822999999941],[-90.509734999999978,68.495254999999929],[-90.519454999999994,68.487487999999985],[-90.528335999999911,68.483322000000101],[-90.557770000000005,68.474700999999982],[-90.584732000000031,68.465546000000131],[-90.603881999999999,68.455826000000059],[-90.607772999999952,68.451096000000007],[-90.606658999999979,68.446091000000138],[-90.603881999999999,68.439697000000081],[-90.601395000000025,68.436371000000065],[-90.55999799999995,68.423599000000024],[-90.523894999999982,68.414428999999984],[-90.466948999999886,68.403869999999984],[-90.361938000000009,68.384155000000135],[-90.332779000000016,68.378036000000122],[-90.317504999999983,68.373306000000071],[-90.315001999999993,68.369980000000055],[-90.319167999999991,68.368317000000104],[-90.343886999999938,68.365265000000022],[-90.367492999999911,68.345261000000107],[-90.271392999999989,68.238876000000118],[-90.255004999999926,68.23275799999999],[-90.232772999999952,68.230270000000019],[-90.207229999999925,68.231093999999985],[-90.178604000000007,68.235809000000017],[-90.144454999999994,68.243866000000025],[-90.132216999999912,68.24859600000002],[-90.122771999999941,68.25360100000006],[-90.119720000000029,68.257216999999969],[-90.118057000000022,68.262206999999989],[-90.038604999999961,68.352202999999975],[-89.985275000000001,68.396102999999982],[-89.912216000000001,68.467209000000025],[-89.893065999999919,68.543319999999937],[-89.911666999999966,68.547484999999938],[-89.919998000000021,68.553588999999988],[-89.927779999999984,68.563599000000067],[-89.948607999999979,68.599426000000051],[-89.950561999999991,68.60386699999998],[-89.949721999999952,68.607758000000047],[-89.894729999999868,68.65248100000008],[-89.80972300000002,68.71026599999999],[-89.802489999999921,68.712203999999929],[-89.789168999999958,68.71026599999999],[-89.780563000000029,68.705826000000002],[-89.763335999999924,68.690536000000009],[-89.757507000000032,68.684708000000057],[-89.746947999999975,68.669708000000128],[-89.729172000000005,68.699142000000109],[-89.693328999999949,68.763885000000016],[-89.68472300000002,68.810257000000092],[-89.687499999999943,68.819716999999969],[-89.689986999999917,68.824707000000046],[-89.714721999999995,68.846939000000077],[-89.733886999999925,68.881653000000142],[-89.739166000000012,68.892761000000121],[-89.756957999999884,68.939972000000012],[-89.75556899999998,68.954162999999994],[-89.753066999999987,68.958327999999995],[-89.71665999999999,69.006104000000107],[-89.707229999999925,69.014709000000096],[-89.700561999999991,69.019150000000025],[-89.684433000000013,69.028870000000097],[-89.666107000000011,69.038315000000011],[-89.644164999999987,69.048325000000091],[-89.582779000000016,69.06860400000005],[-89.56082200000003,69.077209000000039],[-89.529357999999945,69.090606999999977],[-89.489990000000034,69.110535000000027],[-89.482497999999907,69.115540000000067],[-89.458618000000001,69.133606000000043],[-89.402221999999995,69.178863999999976],[-89.398620999999935,69.182479999999998],[-89.394454999999937,69.193039000000056],[-89.394454999999937,69.199141999999995],[-89.396956999999929,69.208602999999982],[-89.394454999999937,69.214431999999988],[-89.389998999999932,69.219147000000021],[-89.322234999999921,69.247208000000114],[-89.306655999999919,69.251389000000017],[-89.258621000000005,69.259995000000117],[-89.220551,69.266663000000051],[-89.174164000000019,69.273315000000139],[-89.134170999999981,69.275542999999914],[-89.114440999999886,69.27526899999998],[-89.09056099999998,69.271927000000062],[-89.049987999999985,69.264435000000105],[-89.038054999999872,69.261931999999945],[-88.999435000000005,69.251389000000017],[-88.968886999999938,69.24136400000009],[-88.942489999999964,69.229980000000012],[-88.938048999999978,69.226928999999984],[-88.935546999999985,69.222214000000122],[-88.93472300000002,69.219986000000006],[-88.9375,69.214156999999943],[-88.936660999999958,69.209152000000074],[-88.929992999999968,69.198029000000133],[-88.870269999999948,69.148605000000089],[-88.85943599999996,69.142211999999972],[-88.782501000000025,69.103043000000071],[-88.772507000000019,69.098876999999959],[-88.62388599999997,69.042755],[-88.480285999999978,68.998871000000065],[-88.457229999999925,68.992752000000053],[-88.406113000000005,68.982758000000047],[-88.270844000000011,68.934981999999934],[-88.208618000000001,68.911652000000004],[-88.197768999999994,68.906647000000135],[-88.115829000000019,68.860535000000084],[-88.082229999999981,68.841370000000097],[-88.052215999999987,68.823044000000095],[-88.038329999999974,68.814147999999989],[-87.971664000000033,68.766097999999943],[-87.96444699999995,68.760543999999982],[-87.947768999999994,68.731659000000093],[-87.921660999999915,68.673035000000027],[-87.916655999999989,68.656372000000147],[-87.917496000000028,68.647491000000059],[-87.925002999999947,68.632476999999994],[-87.93499799999995,68.61943100000002],[-87.942489999999907,68.610809000000017],[-87.947768999999994,68.605255000000056],[-87.933883999999978,68.576935000000049],[-87.924163999999905,68.559708000000001],[-87.883621000000005,68.494430999999963],[-87.881377999999984,68.491089000000045],[-87.841675000000009,68.432479999999998],[-87.835555999999997,68.42442299999999],[-87.817504999999926,68.417206000000078],[-87.798614999999984,68.40525800000006],[-87.791672000000005,68.398330999999985],[-87.789718999999934,68.391937000000098],[-87.789444000000003,68.386658000000125],[-87.792220999999927,68.334427000000005],[-87.800551999999925,68.3119200000001],[-87.845276000000013,68.247757000000092],[-87.848891999999864,68.244141000000013],[-87.929168999999945,68.197204999999997],[-87.93582200000003,68.195815999999979],[-87.946945000000028,68.198593000000074],[-88.106658999999866,68.242751999999996],[-88.22193900000002,68.36554000000001],[-88.384445000000028,68.291092000000049],[-88.392226999999991,68.287490999999989],[-88.395553999999947,68.285263000000043],[-88.401671999999962,68.280272999999966],[-88.403335999999911,68.275542999999971],[-88.402785999999878,68.270263999999997],[-88.398345999999947,68.260544000000095],[-88.380829000000006,68.24552900000009],[-88.361937999999952,68.233871000000079],[-88.342498999999975,68.223602000000028],[-88.334732000000031,68.217484000000127],[-88.330841000000021,68.213043000000027],[-88.279723999999931,68.118041999999946],[-88.277495999999985,68.111649],[-88.277785999999992,68.105545000000006],[-88.283065999999963,68.099990999999989],[-88.315551999999968,68.086104999999975],[-88.331680000000006,68.076385000000073],[-88.338332999999977,68.070541000000105],[-88.341109999999901,68.064987000000087],[-88.347777999999948,68.037201000000039],[-88.366942999999992,68.03166200000004],[-88.381103999999993,68.025269000000094],[-88.372771999999941,67.96887200000009],[-88.370834000000002,67.959152000000017],[-88.36860699999994,67.954436999999984],[-88.285278000000005,67.81721500000009],[-88.276397999999972,67.80304000000001],[-88.269164999999987,67.793594000000041],[-88.160552999999993,67.682479999999941],[-88.151107999999908,67.673309000000017],[-88.139449999999954,67.664428999999984],[-88.124999999999943,67.65554800000001],[-88.095839999999953,67.642487000000074],[-88.066100999999946,67.634720000000129],[-88.009170999999924,67.622757000000092],[-87.979996000000028,67.615814000000114],[-87.965285999999992,67.611649000000114],[-87.955841000000021,67.607483000000002],[-87.881377999999984,67.568054000000132],[-87.841385000000002,67.536102000000142],[-87.827224999999999,67.527206000000035],[-87.789169000000015,67.505263999999954],[-87.623046999999929,67.412491000000102],[-87.606383999999935,67.403869999999984],[-87.585007000000019,67.395264000000054],[-87.53694200000001,67.378860000000088],[-87.460830999999985,67.344147000000135],[-87.357773000000009,67.262207000000046],[-87.359160999999972,67.247482000000048],[-87.361938000000009,67.242203000000075],[-87.429168999999945,67.208603000000039],[-87.440551999999968,67.204987000000131],[-87.486664000000019,67.194138000000066],[-87.497771999999941,67.190536000000122],[-87.50556899999998,67.185256999999979],[-87.511397999999986,67.174988000000099],[-87.511948000000018,67.169983000000059],[-87.516953000000001,67.115540000000124],[-87.510284000000013,67.112198000000149],[-87.497498000000007,67.115265000000079],[-87.322784000000013,67.162766000000147],[-87.240828999999906,67.216094999999939],[-87.117766999999958,67.212769000000094],[-87.069732999999928,67.219437000000084],[-86.968612999999948,67.245255000000043],[-86.96305799999999,67.250548999999978],[-86.967498999999975,67.255264000000011],[-87.008895999999936,67.282211000000132],[-87.075561999999934,67.327209000000039],[-87.086670000000026,67.336379999999963],[-87.090560999999923,67.345825000000048],[-87.089995999999985,67.350815000000125],[-87.081389999999999,67.354430999999977],[-86.874435000000005,67.404984000000127],[-86.804169000000002,67.420821999999987],[-86.79222099999987,67.422485000000108],[-86.779175000000009,67.422211000000004],[-86.765288999999939,67.419144000000074],[-86.709731999999974,67.388046000000031],[-86.689163000000008,67.3744200000001],[-86.68472300000002,67.369980000000055],[-86.675551999999982,67.365540000000067],[-86.647232000000031,67.358322000000044],[-86.592498999999975,67.345261000000107],[-86.579726999999991,67.344986000000063],[-86.543883999999935,67.344986000000063],[-86.53195199999999,67.346649000000014],[-86.523620999999991,67.352203000000031],[-86.518065999999976,67.357208000000071],[-86.509170999999981,67.36775200000011],[-86.50306699999993,67.377762000000018],[-86.473891999999978,67.468596999999988],[-86.472777999999892,67.478592000000049],[-86.47444200000001,67.483322000000101],[-86.49499499999996,67.49693300000007],[-86.485001000000011,67.516936999999984],[-86.452224999999999,67.592484000000127],[-86.451401000000033,67.597488000000112],[-86.455840999999964,67.601929000000041],[-86.465285999999935,67.606369000000029],[-86.479720999999984,67.610535000000141],[-86.488892000000021,67.614699999999971],[-86.521392999999932,67.671921000000111],[-86.525283999999999,67.681366000000139],[-86.508056999999894,67.69720500000011],[-86.359160999999915,67.827773999999977],[-86.350554999999986,67.833327999999938],[-86.286941999999897,67.869979999999941],[-86.098052999999993,67.978043000000014],[-86.041381999999942,68.000549000000035],[-86.029723999999931,68.004990000000134],[-86.005004999999983,68.008330999999998],[-85.99221799999998,68.009155000000135],[-85.979995999999915,68.011658000000125],[-85.898346000000004,68.046097000000145],[-85.892501999999979,68.051376000000118],[-85.890838999999971,68.061371000000065],[-85.912506000000008,68.084717000000069],[-85.916396999999961,68.094147000000135],[-85.914443999999946,68.104155999999989],[-85.888061999999991,68.189697000000137],[-85.842772999999966,68.317214999999976],[-85.839172000000019,68.321381000000088],[-85.712783999999942,68.411652000000117],[-85.726943999999946,68.486374000000012],[-85.733321999999987,68.598602000000085],[-85.675277999999992,68.711104999999975],[-85.663619999999923,68.726929000000098],[-85.645843999999954,68.737488000000099],[-85.633895999999936,68.741928000000144],[-85.620269999999948,68.741653000000099],[-85.606383999999991,68.740265000000022],[-85.591675000000009,68.737198000000092],[-85.569457999999941,68.728317000000004],[-85.558043999999938,68.726089000000002],[-85.494445999999925,68.736923000000104],[-85.481948999999929,68.739426000000037],[-85.466171000000031,68.749992000000134],[-85.464164999999923,68.752991000000122],[-85.464721999999938,68.759720000000016],[-85.507781999999963,68.766662999999994],[-85.550827000000027,68.773315000000082],[-85.562774999999988,68.776657],[-85.55360399999995,68.781097000000045],[-85.540833000000021,68.78276100000005],[-85.514175000000023,68.783875000000023],[-85.458053999999947,68.777770999999973],[-85.415008999999998,68.770827999999995],[-85.371383999999978,68.762207000000103],[-85.361664000000019,68.757767000000058],[-85.368056999999965,68.752486999999974],[-85.379439999999988,68.747208000000001],[-85.388335999999981,68.741928000000144],[-85.384170999999981,68.737198000000092],[-85.328612999999962,68.724990999999932],[-85.314162999999951,68.722762999999986],[-85.228881999999999,68.71026599999999],[-85.215835999999967,68.710815000000139],[-85.209166999999979,68.714996000000042],[-85.210830999999985,68.719711000000075],[-85.21945199999999,68.729155999999932],[-85.226669000000015,68.733597000000032],[-85.148345999999947,68.750000000000114],[-85.067504999999926,68.749710000000107],[-84.912780999999939,68.746933000000013],[-84.898055999999997,68.742477000000065],[-84.883895999999993,68.740265000000022],[-84.801102000000014,68.73414600000001],[-84.787215999999944,68.733597000000032],[-84.775283999999999,68.737198000000092],[-84.767501999999922,68.747208000000001],[-84.760009999999909,68.757217000000026],[-84.752791999999999,68.767487000000131],[-84.754180999999903,68.772217000000012],[-84.761123999999995,68.776932000000045],[-84.834732000000031,68.820541000000105],[-84.846664000000033,68.82388300000008],[-84.860824999999977,68.825272000000041],[-84.899993999999936,68.820541000000105],[-84.912216000000001,68.818054000000018],[-84.976944000000003,68.809418000000107],[-85.003615999999909,68.808318999999983],[-85.031677000000002,68.810806000000014],[-85.131942999999922,68.826934999999992],[-85.143889999999942,68.830276000000026],[-85.163054999999929,68.839157000000114],[-85.17721599999993,68.848328000000095],[-85.184158000000025,68.853043000000127],[-85.192764000000011,68.862198000000149],[-85.194442999999865,68.867203000000018],[-85.190826000000015,68.872208000000057],[-85.177779999999984,68.87359600000002],[-85.15306099999998,68.873032000000023],[-85.125,68.870254999999986],[-85.053329000000019,68.858871000000022],[-85.039992999999981,68.859421000000054],[-85.005568999999923,68.877472000000068],[-85.001952999999958,68.882477000000108],[-84.99749799999995,68.925812000000064],[-85.007232999999871,68.930267000000129],[-85.021117999999944,68.931656000000089],[-85.046660999999972,68.926651000000049],[-85.059998000000007,68.925812000000064],[-85.08805799999999,68.928588999999988],[-85.116942999999935,68.93331900000004],[-85.129439999999931,68.937485000000095],[-85.136123999999995,68.942200000000128],[-85.140563999999927,68.946640000000002],[-85.136947999999961,68.951935000000049],[-85.127776999999924,68.956100000000049],[-85.115004999999996,68.958603000000039],[-85.087508999999955,68.958037999999988],[-84.973785000000021,68.946869000000106],[-84.914718999999991,68.938034000000073],[-84.818893000000003,68.927765000000022],[-84.805831999999953,68.929152999999928],[-84.796386999999982,68.933594000000028],[-84.791381999999942,68.94331399999993],[-84.793334999999956,68.948318000000086],[-84.799987999999871,68.952774000000034],[-84.809433000000013,68.957214000000022],[-84.821945000000028,68.961655000000121],[-84.837219000000005,68.965820000000122],[-84.851394999999968,68.968323000000112],[-84.865554999999915,68.969711000000018],[-84.906951999999933,68.971649000000127],[-84.921386999999982,68.973877000000073],[-84.936110999999926,68.977203000000145],[-84.986922999999933,68.999511999999982],[-84.981673999999941,69.007492000000013],[-84.957779000000016,69.017487000000074],[-84.944442999999978,69.018051000000014],[-84.836394999999925,69.012772000000041],[-84.720000999999968,69.006943000000035],[-84.591674999999952,68.994431000000077],[-84.578063999999983,68.993866000000025],[-84.565552000000025,68.997482000000105],[-84.541381999999999,69.007216999999969],[-84.532227000000034,69.012497000000053],[-84.528335999999967,69.017487000000074],[-84.535277999999948,69.022217000000126],[-84.563613999999973,69.025818000000015],[-84.745543999999995,69.039703000000088],[-84.953887999999949,69.085815000000139],[-85.108337000000006,69.113312000000121],[-85.020554000000004,69.160262999999929],[-85.006957999999941,69.160812000000078],[-84.994155999999919,69.163315000000068],[-84.987502999999947,69.168594000000041],[-84.994719999999973,69.173035000000141],[-85.008895999999993,69.174423000000047],[-85.064712999999927,69.176926000000037],[-85.143775999999946,69.167091000000028],[-85.151778999999976,69.166091999999935],[-85.159110999999996,69.164101000000073],[-85.163276999999994,69.161598000000083],[-85.155272999999966,69.153107000000091],[-85.176665999999898,69.143600000000049],[-85.197494999999947,69.132750999999985],[-85.210555999999997,69.130264000000125],[-85.223617999999988,69.128860000000088],[-85.236937999999952,69.128036000000122],[-85.25140399999998,69.130264000000125],[-85.266662999999994,69.133606000000043],[-85.308334000000002,69.143600000000049],[-85.315552000000025,69.148041000000148],[-85.317504999999983,69.15277100000003],[-85.308043999999995,69.158034999999984],[-85.29611199999988,69.162491000000102],[-85.283324999999877,69.165267999999969],[-85.235001000000011,69.174698000000035],[-85.227501000000018,69.176872000000003],[-85.226836999999989,69.179870999999991],[-85.231162999999981,69.182541000000072],[-85.240829000000019,69.192474000000004],[-85.254729999999995,69.192749000000049],[-85.337783999999999,69.193863000000022],[-85.383057000000008,69.205551000000071],[-85.392776000000026,69.209991000000059],[-85.473327999999924,69.271927000000062],[-85.477782999999874,69.276382000000069],[-85.50306699999993,69.31442300000009],[-85.508057000000008,69.395263999999997],[-85.506957999999997,69.400269000000037],[-85.503341999999975,69.405258000000003],[-85.494155999999919,69.410812000000021],[-85.481948999999929,69.415267999999969],[-85.467498999999918,69.417206000000078],[-85.453339000000028,69.416931000000034],[-85.424437999999952,69.413315000000011],[-85.396117999999944,69.411652000000061],[-85.383330999999941,69.415267999999969],[-85.339172000000019,69.438873000000115],[-85.343613000000005,69.443587999999977],[-85.353606999999954,69.448029000000076],[-85.378875999999934,69.456649999999968],[-85.39416499999993,69.460815000000139],[-85.422774999999945,69.462493999999992],[-85.436385999999914,69.460815000000139],[-85.445830999999998,69.45637499999998],[-85.465011999999945,69.440811000000053],[-85.477218999999991,69.436371000000008],[-85.491378999999995,69.436646000000053],[-85.500838999999985,69.439148000000102],[-85.510833999999988,69.443587999999977],[-85.525283999999999,69.45277400000009],[-85.538894999999968,69.466933999999981],[-85.542496000000028,69.476379000000065],[-85.547775000000001,69.647217000000069],[-85.546951000000035,69.652206000000035],[-85.514724999999999,69.768051000000071],[-85.450287000000003,69.784714000000122],[-85.423324999999977,69.788879000000122],[-85.409163999999976,69.788589000000115],[-85.393889999999999,69.7852630000001],[-85.389174999999966,69.780548000000067],[-85.389998999999932,69.775818000000015],[-85.39416499999993,69.770537999999988],[-85.406951999999933,69.760269000000108],[-85.410827999999981,69.755264000000068],[-85.406386999999995,69.750549000000035],[-85.391952999999944,69.750275000000101],[-85.379165999999941,69.753601000000117],[-85.366652999999985,69.758040999999992],[-85.342498999999975,69.768875000000037],[-85.333068999999966,69.774155000000121],[-85.331954999999994,69.77915999999999],[-85.34445199999999,69.813033999999959],[-85.349166999999909,69.817490000000078],[-85.361938000000009,69.821930000000066],[-85.377212999999927,69.824158000000068],[-85.433608999999933,69.823608000000036],[-85.461394999999982,69.822495000000117],[-85.489990000000034,69.823044000000095],[-85.518615999999952,69.823608000000036],[-85.56138599999997,69.824706999999989],[-85.586394999999982,69.826934999999935],[-85.582229999999981,69.845825000000104],[-85.578613000000018,69.850815000000125],[-85.571945000000028,69.856094000000098],[-85.561935000000005,69.859421000000054],[-85.548049999999932,69.859984999999995],[-85.377212999999927,69.851089000000059],[-85.361938000000009,69.848877000000016],[-85.315552000000025,69.838042999999971],[-85.274169999999913,69.825272000000041],[-85.222504000000015,69.80802900000009],[-85.212509000000011,69.803589000000102],[-85.199432000000002,69.799149000000057],[-85.170836999999949,69.790542999999957],[-85.093886999999995,69.773315000000025],[-85.079177999999956,69.771102999999982],[-85.064437999999996,69.76998900000001],[-84.871658000000025,69.816086000000098],[-84.86471599999993,69.821105999999929],[-84.854172000000005,69.83137499999998],[-84.574172999999917,69.857483000000116],[-84.546386999999868,69.859421000000054],[-84.476669000000015,69.862198000000149],[-84.433608999999933,69.861098999999967],[-84.375823999999966,69.857483000000116],[-84.346663999999976,69.854706000000022],[-84.331680000000006,69.852203000000031],[-84.169448999999986,69.822220000000129],[-84.125823999999909,69.809418000000107],[-84.118606999999997,69.804703000000075],[-84.114165999999955,69.799988000000042],[-84.112220999999977,69.793593999999985],[-84.104171999999949,69.785812000000021],[-84.091674999999952,69.781372000000033],[-83.971938999999963,69.74971000000005],[-83.941665999999998,69.743042000000116],[-83.748610999999926,69.708878000000084],[-83.733886999999982,69.706649999999911],[-83.705001999999922,69.703598],[-83.603881999999942,69.693588000000091],[-83.589447000000007,69.692200000000014],[-83.360549999999989,69.676376000000062],[-83.346389999999985,69.676086000000055],[-83.333069000000023,69.678314],[-83.306380999999931,69.693862999999908],[-83.293610000000001,69.699142000000109],[-83.280562999999916,69.702484000000027],[-83.253341999999975,69.705261000000121],[-83.238892000000021,69.704711999999972],[-83.180557000000022,69.694977000000108],[-83.122771999999998,69.689148000000046],[-83.021941999999967,69.679703000000018],[-83.008056999999951,69.679152999999985],[-82.826950000000011,69.688873000000058],[-82.696654999999964,69.695816000000036],[-82.541007999999977,69.674477000000138],[-82.539672999999937,69.671593000000087],[-82.536162999999874,69.668823000000032],[-82.527328000000011,69.666153000000122],[-82.509505999999874,69.661979999999971],[-82.500671000000011,69.660491999999977],[-82.483329999999967,69.657990000000098],[-82.457503999999972,69.655327],[-82.291672000000005,69.639984000000084],[-82.263335999999981,69.638046000000145],[-82.254729999999995,69.636383000000023],[-82.307495000000017,69.622208000000114],[-82.334731999999974,69.61943100000002],[-82.390288999999996,69.618865999999969],[-82.47066499999994,69.62303200000008],[-82.476333999999952,69.625870000000077],[-82.483664999999974,69.628539999999987],[-82.492500000000007,69.630043000000001],[-82.552337999999963,69.635376000000008],[-82.560836999999992,69.635704000000146],[-82.56899999999996,69.634872000000087],[-82.577002999999991,69.632874000000129],[-82.653885000000002,69.62303200000008],[-82.654723999999987,69.568604000000107],[-82.612503000000004,69.566940000000102],[-82.600280999999995,69.562485000000095],[-82.535278000000005,69.534988000000112],[-82.489989999999977,69.507217000000082],[-82.476668999999958,69.497756999999979],[-82.486937999999896,69.493591000000094],[-82.500564999999938,69.492203000000018],[-82.528884999999946,69.4952550000001],[-82.74221799999998,69.50999500000006],[-82.897507000000019,69.518875000000094],[-82.939712999999927,69.521378000000084],[-82.982223999999917,69.524154999999951],[-83.067779999999914,69.533051000000057],[-83.125548999999921,69.539978000000019],[-83.154175000000009,69.543869000000086],[-83.228057999999976,69.538589000000002],[-83.082503999999972,69.514160000000061],[-83.025283999999999,69.508041000000048],[-82.954726999999991,69.503601000000003],[-82.870270000000005,69.500274999999988],[-82.856658999999922,69.50082400000008],[-82.842498999999918,69.500274999999988],[-82.785277999999948,69.494141000000127],[-82.68472300000002,69.479706000000022],[-82.324172999999917,69.418868999999972],[-82.295272999999952,69.413879000000122],[-82.23721299999994,69.400818000000015],[-82.225280999999995,69.39637799999997],[-82.221389999999928,69.391662999999937],[-82.231673999999941,69.387497000000053],[-82.289718999999991,69.251663000000121],[-82.291381999999999,69.246643000000063],[-82.273055999999997,69.237488000000042],[-82.258620999999948,69.233871000000079],[-82.244995000000017,69.233322000000101],[-82.217223999999931,69.233047000000113],[-82.203612999999962,69.233597000000145],[-82.054442999999992,69.24136400000009],[-82.041107000000011,69.242751999999996],[-82.027785999999992,69.244979999999941],[-81.99129499999998,69.25470700000011],[-81.914718999999877,69.269440000000145],[-81.70777899999996,69.264709000000039],[-81.693877999999984,69.263046000000145],[-81.67971799999998,69.260544000000039],[-81.650283999999999,69.251663000000121],[-81.512222000000008,69.20138500000013],[-81.416396999999904,69.208038000000101],[-81.402221999999995,69.207214000000135],[-81.388335999999981,69.204712000000086],[-81.359725999999966,69.196640000000116],[-81.347778000000005,69.191925000000083],[-81.338897999999972,69.187485000000038],[-81.332503999999858,69.182479999999998],[-81.299438000000009,69.1202550000001],[-81.330841000000021,69.095261000000107],[-81.57028200000002,68.992477000000008],[-81.59584000000001,68.984146000000123],[-81.71665999999999,68.949142000000052],[-81.75556899999998,68.941360000000088],[-81.809433000000013,68.9327550000001],[-81.888061999999991,68.919144000000131],[-81.914169000000015,68.914429000000098],[-81.966110000000015,68.904433999999981],[-82.005004999999983,68.895538000000045],[-82.043059999999969,68.883881000000088],[-82.055556999999965,68.878586000000041],[-82.057219999999973,68.873871000000008],[-82.043335000000013,68.872208000000057],[-82.00306699999993,68.874146000000053],[-81.977218999999991,68.879700000000014],[-81.833068999999966,68.907211000000075],[-81.819457999999997,68.908600000000092],[-81.68638599999997,68.905258000000117],[-81.673049999999989,68.904433999999981],[-81.66194200000001,68.90277100000003],[-81.650283999999999,68.899155000000007],[-81.58805799999999,68.869705000000124],[-81.581954999999937,68.864990000000091],[-81.438323999999966,68.874984999999981],[-81.424712999999997,68.87553400000013],[-81.382767000000001,68.866652999999985],[-81.354171999999892,68.857483000000116],[-81.238051999999925,68.774704000000042],[-81.23443599999996,68.76998900000001],[-81.232772999999952,68.760268999999937],[-81.252227999999945,68.653046000000131],[-81.255843999999911,68.643051000000014],[-81.260558999999944,68.638046000000145],[-81.267501999999922,68.633041000000105],[-81.357773000000009,68.599152000000117],[-81.560271999999998,68.541656000000103],[-81.687209999999993,68.509430000000066],[-81.798889000000031,68.489700000000028],[-81.816390999999896,68.469711000000132],[-81.830291999999986,68.459717000000126],[-81.842498999999918,68.455551000000014],[-81.958053999999947,68.423309000000017],[-81.970839999999953,68.421097000000145],[-81.997771999999941,68.423035000000084],[-82.011947999999961,68.427765000000136],[-82.024444999999957,68.436919999999986],[-82.027785999999992,68.441650000000038],[-82.028884999999946,68.446640000000059],[-82.033324999999991,68.456099999999992],[-82.038054999999929,68.465820000000065],[-82.041671999999949,68.470535000000098],[-82.062209999999936,68.494430999999963],[-82.068618999999899,68.499145999999996],[-82.077498999999932,68.503601000000003],[-82.091675000000009,68.507217000000082],[-82.229445999999996,68.531662000000097],[-82.256393000000003,68.533600000000035],[-82.269454999999937,68.532486000000063],[-82.271117999999944,68.527481000000023],[-82.267226999999991,68.52276599999999],[-82.254729999999995,68.513321000000133],[-82.243056999999965,68.508881000000088],[-82.229171999999892,68.505264000000125],[-82.1875,68.495819000000097],[-82.175826999999913,68.491364000000033],[-82.17332499999992,68.485808999999961],[-82.175002999999947,68.481093999999928],[-82.179169000000002,68.476089000000059],[-82.183608999999933,68.471100000000092],[-82.190552000000025,68.466095000000053],[-82.202498999999989,68.460815000000025],[-82.215011999999888,68.457489000000123],[-82.228057999999976,68.455261000000007],[-82.25418099999996,68.454437000000041],[-82.382767000000001,68.466934000000037],[-82.393889999999999,68.468322999999998],[-82.448882999999967,68.478592000000049],[-82.476943999999946,68.485535000000027],[-82.500290000000007,68.494430999999963],[-82.532501000000025,68.508041000000048],[-82.545273000000009,68.517487000000017],[-82.549163999999905,68.522217000000069],[-82.557770000000005,68.526932000000102],[-82.571395999999993,68.526382000000069],[-82.583892999999875,68.524155000000007],[-82.608886999999925,68.517487000000017],[-82.62110899999999,68.512206999999933],[-82.634734999999978,68.502213000000097],[-82.638901000000033,68.497208000000057],[-82.635284000000013,68.492203000000018],[-82.491103999999893,68.453873000000101],[-82.490554999999915,68.402205999999921],[-82.363051999999982,68.35054000000008],[-82.356658999999922,68.345825000000048],[-82.353057999999976,68.341094999999996],[-82.351105000000018,68.331375000000094],[-82.352492999999924,68.326660000000061],[-82.356658999999922,68.321655000000021],[-82.369445999999925,68.318329000000006],[-82.381942999999922,68.316939999999988],[-82.39527899999996,68.316666000000055],[-82.422225999999966,68.318603999999993],[-82.448607999999979,68.320831000000055],[-82.475006000000008,68.321106000000043],[-82.500838999999985,68.317490000000021],[-82.507781999999963,68.313309000000118],[-82.50140399999998,68.308594000000085],[-82.483611999999937,68.299422999999933],[-82.426101999999958,68.276657000000114],[-82.400557999999933,68.26887499999998],[-82.386947999999961,68.266388000000063],[-82.37388599999997,68.265548999999965],[-82.36082499999992,68.266937000000041],[-82.311661000000015,68.283051],[-82.286941999999897,68.289703000000031],[-82.273330999999928,68.288879000000065],[-82.264724999999999,68.284424000000058],[-82.260009999999966,68.274993999999992],[-82.259170999999981,68.269989000000123],[-82.258620999999948,68.255554000000018],[-82.264449999999897,68.24552900000009],[-82.270279000000016,68.235535000000084],[-82.278610000000015,68.225540000000024],[-82.289443999999946,68.215545999999961],[-82.300551999999868,68.205551000000071],[-82.321121000000005,68.190262000000018],[-82.330291999999872,68.185256999999922],[-82.337218999999948,68.180267000000072],[-82.345550999999944,68.170258000000047],[-82.34722899999997,68.165268000000026],[-82.345839999999953,68.160537999999974],[-82.337218999999948,68.155823000000112],[-82.314437999999939,68.146652000000017],[-82.272506999999962,68.133331000000055],[-82.230835000000013,68.121918000000051],[-82.206115999999952,68.115814],[-82.192489999999964,68.112487999999985],[-82.179169000000002,68.111649],[-82.166397000000018,68.114151000000106],[-82.145781999999997,68.125488000000018],[-82.099166999999966,68.154984000000013],[-82.080565999999919,68.179703000000131],[-82.06361400000003,68.199707000000046],[-82.056945999999982,68.204712000000086],[-82.047500999999897,68.209716999999955],[-82.037505999999894,68.213881999999955],[-82.025009000000011,68.216095000000109],[-82.01167299999986,68.214705999999921],[-81.997771999999941,68.211105000000089],[-81.988892000000021,68.206650000000025],[-81.985549999999989,68.201660000000004],[-81.984726000000023,68.196929999999952],[-81.993057000000022,68.172485000000108],[-82.008895999999936,68.14776599999999],[-82.019164999999987,68.132751000000042],[-82.027221999999938,68.122756999999979],[-82.034164000000033,68.117751999999939],[-82.043610000000001,68.112762000000089],[-82.056106999999997,68.109421000000054],[-82.114502000000016,68.082870000000014],[-82.173889000000031,68.002486999999974],[-82.175551999999982,67.997482000000105],[-82.102782999999988,67.907211000000075],[-82.096663999999976,67.90248100000008],[-82.079452999999944,67.893326000000002],[-82.070557000000008,67.888596000000007],[-81.837783999999999,67.783875000000023],[-81.727218999999934,67.740814],[-81.707503999999972,67.731658999999922],[-81.690552000000025,67.722487999999998],[-81.678328999999906,67.713042999999914],[-81.666397000000018,67.703598000000056],[-81.65972899999997,67.694138000000009],[-81.653884999999946,67.689423000000147],[-81.636672999999917,67.679977000000008],[-81.592498999999975,67.661652000000061],[-81.538329999999974,67.643599999999992],[-81.498046999999985,67.631927000000132],[-81.457779000000016,67.620529000000147],[-81.433059999999955,67.611374000000069],[-81.416396999999904,67.601929000000041],[-81.248885999999914,67.479706000000078],[-81.243056999999908,67.474991000000045],[-81.239715999999873,67.470260999999994],[-81.237212999999997,67.455551000000014],[-81.237503000000004,67.441086000000098],[-81.239166000000012,67.436096000000077],[-81.245269999999948,67.426376000000005],[-81.256392999999946,67.416381999999942],[-81.293610000000001,67.396103000000039],[-81.300551999999982,67.391098],[-81.30471799999998,67.386108000000092],[-81.347778000000005,67.292755],[-81.366394000000014,67.238875999999948],[-81.373610999999983,67.204711999999972],[-81.376099000000011,67.189972000000012],[-81.375274999999988,67.185256999999979],[-81.380279999999914,67.170532000000037],[-81.413895000000025,67.091370000000097],[-81.432220000000029,67.066666000000112],[-81.496657999999911,67.004715000000147],[-81.50306699999993,66.999710000000107],[-81.512512000000015,66.99470500000001],[-81.524170000000026,66.99054000000001],[-81.536117999999988,66.988312000000064],[-81.699722000000008,66.970261000000107],[-81.711944999999957,66.969986000000063],[-81.750838999999928,66.978591999999992],[-81.763901000000033,66.983046999999999],[-81.772232000000031,66.987762000000032],[-81.783066000000019,66.992477000000065],[-81.796111999999937,66.996933000000013],[-81.809157999999968,66.998321999999973],[-81.833618000000001,66.997756999999979],[-81.929717999999923,66.978591999999992],[-81.952498999999932,66.968048000000124],[-81.988892000000021,66.949706999999933],[-82.026947000000007,66.926086000000055],[-82.179992999999968,66.768875000000094],[-82.183884000000035,66.764160000000061],[-82.369720000000029,66.725815000000125],[-82.481109999999944,66.669707999999957],[-82.556380999999988,66.623871000000122],[-82.562774999999874,66.618866000000082],[-82.566665999999941,66.613876000000005],[-82.571670999999981,66.60386699999998],[-82.577498999999989,66.584427000000005],[-82.576675000000023,66.579436999999984],[-82.579452999999944,66.569717000000082],[-82.585555999999997,66.564697000000024],[-82.596953999999982,66.560256999999979],[-82.694442999999978,66.558029000000033],[-82.78195199999999,66.566666000000055],[-82.86999499999996,66.567490000000021],[-83.018065999999976,66.539978000000076],[-83.012787000000003,66.515823000000069],[-83.015288999999996,66.50610400000005],[-83.019164999999873,66.501099000000011],[-83.025283999999999,66.495819000000097],[-83.049987999999928,66.475539999999967],[-83.058608999999933,66.470260999999994],[-83.357497999999964,66.353043000000071],[-83.368332000000009,66.348877000000016],[-83.402221999999938,66.347487999999998],[-83.450561999999991,66.346649000000014],[-83.515288999999882,66.353867000000037],[-83.567504999999983,66.367477000000122],[-83.652785999999935,66.40776100000005],[-83.654175000000009,66.412491000000102],[-83.639449999999954,66.437195000000088],[-83.630828999999949,66.442200000000128],[-83.618331999999896,66.44081100000011],[-83.607773000000009,66.436371000000122],[-83.597778000000005,66.426926000000037],[-83.601669000000015,66.412201000000096],[-83.597778000000005,66.407486000000063],[-83.545273000000009,66.381363000000079],[-83.53472899999997,66.378035999999952],[-83.579726999999934,66.431656000000089],[-83.672501000000011,66.520538000000101],[-83.68110699999994,66.524993999999992],[-83.70695499999988,66.530822999999998],[-83.732497999999964,66.534714000000065],[-83.795273000000009,66.541930999999977],[-83.82028200000002,66.542754999999943],[-83.832229999999981,66.542206000000022],[-83.857497999999964,66.544144000000131],[-83.968886999999881,66.577484000000027],[-83.977492999999981,66.582214000000079],[-83.985001000000011,66.591660000000047],[-84.011397999999986,66.663605000000018],[-84.014174999999966,66.673309000000017],[-84.015563999999983,66.687759000000142],[-84.014450000000011,66.692748999999992],[-84.006119000000012,66.698029000000076],[-83.994719999999973,66.70138500000013],[-83.982772999999952,66.70277400000009],[-83.945540999999992,66.702484000000084],[-83.891113000000018,66.804153000000099],[-83.886123999999995,66.813873000000001],[-83.883895999999936,66.82388300000008],[-83.884170999999924,66.833602999999982],[-83.890288999999996,66.85775799999999],[-83.901671999999905,66.871918000000107],[-83.907776000000013,66.876647999999989],[-83.916397000000018,66.881087999999977],[-83.928878999999995,66.86303700000002],[-83.938323999999909,66.823608000000092],[-83.945540999999992,66.813599000000067],[-84.104996000000028,66.708328000000108],[-84.116394000000014,66.704987000000074],[-84.140288999999996,66.701934999999935],[-84.152785999999992,66.702484000000084],[-84.165558000000033,66.703873000000101],[-84.260284000000013,66.716385000000059],[-84.27305599999994,66.718596999999932],[-84.286666999999909,66.723038000000031],[-84.295273000000009,66.727478000000076],[-84.43638599999997,66.818329000000119],[-84.427779999999927,66.961104999999975],[-84.415008999999998,66.960815000000139],[-84.390288999999882,66.961929000000112],[-84.378600999999946,66.964157000000057],[-84.367492999999968,66.968597000000102],[-84.370834000000002,66.97137500000008],[-84.436110999999926,66.981369000000086],[-84.488051999999925,66.988876000000005],[-84.618057000000022,67.006378000000041],[-84.694153000000028,67.009720000000016],[-84.733063000000016,67.014708999999982],[-84.837783999999999,67.029434000000094],[-84.850829999999974,67.03166200000004],[-84.87332200000003,67.039428999999984],[-84.881942999999978,67.043869000000029],[-84.886123999999938,67.048599000000081],[-84.892501999999922,67.053314000000114],[-84.901397999999858,67.057754999999986],[-84.915008999999998,67.060806000000014],[-84.926940999999943,67.059418000000107],[-84.936110999999926,67.056090999999981],[-84.880279999999971,66.989426000000037],[-84.871658000000025,66.984984999999938],[-84.857772999999952,66.981659000000093],[-84.84584000000001,66.982208000000071],[-84.833892999999932,66.984711000000004],[-84.811110999999926,66.991653000000099],[-84.789444000000003,67.002486999999974],[-84.778335999999911,67.006653000000085],[-84.765563999999983,67.006378000000041],[-84.699996999999939,66.99581900000004],[-84.645844000000011,66.981659000000093],[-84.639724999999885,66.978043000000071],[-84.651397999999972,66.97554000000008],[-84.712783999999942,66.972762999999986],[-84.885833999999932,66.966660000000047],[-84.960007000000019,66.964157000000057],[-85.010009999999966,66.964706000000035],[-85.048339999999996,66.963318000000072],[-85.059722999999963,66.959717000000069],[-85.142775999999969,66.930267000000129],[-85.228333000000021,66.878311000000053],[-85.228881999999999,66.873306000000014],[-85.222777999999948,66.868866000000025],[-85.196105999999986,66.855255000000056],[-85.184433000000013,66.851089000000115],[-85.146118000000001,66.839431999999988],[-85.133057000000008,66.836929000000055],[-85.11999499999996,66.835541000000148],[-84.948607999999979,66.858597000000145],[-84.94027699999998,66.863876000000118],[-84.904556000000014,66.897202000000107],[-84.901053999999988,66.900375000000111],[-84.904892000000018,66.903037999999981],[-84.912888000000009,66.905044999999973],[-84.920546999999999,66.905373000000111],[-84.935225999999886,66.904540999999995],[-84.943061999999941,66.905373000000111],[-84.951050000000009,66.907378999999992],[-84.95788600000003,66.909874000000002],[-84.961730999999986,66.912704000000019],[-84.956389999999942,66.915367000000117],[-84.86233500000003,66.939835000000073],[-84.855164000000002,66.940666000000078],[-84.767775999999969,66.952209000000039],[-84.755279999999971,66.951660000000061],[-84.602218999999991,66.935806000000127],[-84.562209999999993,66.901382000000126],[-84.573897999999986,66.89888000000002],[-84.61082499999992,66.89387499999998],[-84.62332200000003,66.893326000000059],[-84.650283999999999,66.900817999999958],[-84.675827000000027,66.902771000000087],[-84.688323999999909,66.903046000000131],[-84.746384000000035,66.897491000000059],[-84.706389999999999,66.888596000000007],[-84.58555599999994,66.858871000000079],[-84.558334000000002,66.850540000000024],[-84.523330999999985,66.836929000000055],[-84.505843999999968,66.827773999999977],[-84.504729999999995,66.823043999999982],[-84.516113000000018,66.820540999999992],[-84.541381999999999,66.821381000000031],[-84.580565999999976,66.828323000000125],[-84.634170999999981,66.84165999999999],[-84.660278000000005,66.846375000000023],[-84.672501000000011,66.845824999999991],[-84.684432999999956,66.844147000000021],[-84.690551999999968,66.839980999999966],[-84.684432999999956,66.835266000000104],[-84.675551999999925,66.830826000000116],[-84.664444000000003,66.82748400000014],[-84.651107999999965,66.824158000000125],[-84.466949,66.787766000000147],[-84.434433000000013,66.725540000000137],[-84.445266999999888,66.720260999999937],[-84.448607999999922,66.715271000000087],[-84.442489999999964,66.710814999999968],[-84.429442999999935,66.708328000000108],[-84.404174999999952,66.705551000000014],[-84.343063000000029,66.699416999999983],[-84.203887999999949,66.691360000000032],[-84.153060999999923,66.685806000000014],[-84.144454999999994,66.681366000000025],[-84.136672999999973,66.662201000000039],[-84.138061999999877,66.657210999999961],[-84.142501999999979,66.647216999999955],[-84.146117999999944,66.642212000000086],[-84.180556999999965,66.606644000000074],[-84.186385999999914,66.601379000000009],[-84.128325999999959,66.554703000000018],[-83.967223999999931,66.473877000000073],[-83.916397000000018,66.446640000000116],[-83.89805599999994,66.432755000000043],[-83.888061999999991,66.423599000000081],[-83.871108999999933,66.394989000000066],[-83.867492999999968,66.380539000000113],[-83.804717999999923,66.307205000000124],[-83.773620999999991,66.289703000000088],[-83.774719000000005,66.275269000000037],[-83.772231999999974,66.265548999999965],[-83.768615999999952,66.260818000000029],[-83.762787000000003,66.256104000000107],[-83.728881999999999,66.23803700000002],[-83.71833799999996,66.233597000000032],[-83.684722999999906,66.215546000000018],[-83.68110699999994,66.210815000000082],[-83.67860399999995,66.201096000000121],[-83.684432999999956,66.196091000000024],[-83.693053999999961,66.190810999999997],[-83.767898999999943,66.168639999999982],[-83.789718999999934,66.163315000000125],[-83.835830999999928,66.154709000000025],[-83.847777999999948,66.153320000000008],[-83.855559999999912,66.155822999999998],[-83.977782999999988,66.199417000000096],[-84.118057000000022,66.25471500000009],[-84.135283999999956,66.26388500000013],[-84.141112999999962,66.268326000000059],[-84.148620999999991,66.277771000000143],[-84.149993999999992,66.282760999999994],[-84.150283999999942,66.292480000000012],[-84.148894999999925,66.297485000000052],[-84.152495999999985,66.302200000000084],[-84.158614999999998,66.306641000000013],[-84.167220999999927,66.31109600000002],[-84.178329000000019,66.315536000000009],[-84.190826000000015,66.318054000000018],[-84.216400000000021,66.321655000000078],[-84.228332999999964,66.3211060000001],[-84.317229999999995,66.299712999999997],[-84.426940999999886,66.363037000000077],[-84.441939999999931,66.372208000000057],[-84.506393000000003,66.402205999999978],[-84.516952999999944,66.404709000000139],[-84.528885000000002,66.40415999999999],[-84.550551999999868,66.394440000000088],[-84.558884000000035,66.389160000000061],[-84.619155999999919,66.349715999999944],[-84.626937999999882,66.343597000000102],[-84.635559000000001,66.334991000000002],[-84.636123999999995,66.328873000000044],[-84.625,66.319152999999972],[-84.527221999999995,66.278595000000109],[-84.424438000000009,66.224701000000096],[-84.407500999999968,66.215546000000018],[-84.401397999999972,66.211105000000089],[-84.389998999999932,66.196930000000009],[-84.386397999999986,66.192199999999957],[-84.37777699999998,66.178040000000067],[-84.372498000000007,66.168319999999994],[-84.374709999999993,66.158600000000092],[-84.448607999999922,66.158600000000092],[-84.46055599999994,66.159149000000014],[-84.473327999999981,66.161377000000016],[-84.483886999999925,66.164703000000031],[-84.509445000000028,66.178314],[-84.641112999999962,66.216094999999996],[-84.869155999999975,66.266662999999937],[-84.881942999999978,66.268051000000071],[-84.90583799999996,66.266937000000098],[-84.927489999999977,66.258881000000031],[-84.943877999999984,66.248322000000144],[-84.954726999999934,66.243866000000025],[-84.96665999999999,66.244431000000077],[-84.979720999999984,66.24664300000012],[-85.00167799999997,66.255264000000068],[-85.131942999999922,66.291931000000034],[-85.178329000000019,66.262207000000046],[-85.190276999999867,66.260544000000095],[-85.202498999999932,66.260818000000029],[-85.214721999999995,66.262207000000046],[-85.227782999999988,66.264434999999992],[-85.252227999999945,66.273041000000092],[-85.269729999999981,66.281937000000028],[-85.301392000000021,66.304703000000075],[-85.306655999999919,66.314148000000102],[-85.339721999999938,66.399154999999951],[-85.345550999999887,66.447754000000089],[-85.346114999999998,66.45748900000001],[-85.341675000000009,66.482208000000128],[-85.343338000000017,66.48692299999999],[-85.351394999999968,66.496093999999971],[-85.457503999999915,66.573883000000137],[-85.466400000000021,66.578323000000012],[-85.479720999999984,66.581375000000094],[-85.491942999999878,66.581940000000145],[-85.55221599999993,66.577774000000034],[-85.575561999999991,66.574707000000103],[-85.598617999999931,66.569442999999978],[-85.710555999999997,66.536101999999971],[-85.845276000000013,66.499419999999986],[-85.857773000000009,66.499709999999993],[-85.868880999999931,66.504166000000112],[-85.875548999999978,66.5086060000001],[-85.888901000000033,66.511932000000002],[-85.995543999999995,66.508041000000105],[-86.007507000000032,66.507216999999969],[-86.078888000000006,66.49693300000007],[-86.103333000000021,66.496643000000063],[-86.128326000000015,66.49803200000008],[-86.141113000000018,66.499419999999986],[-86.256667999999934,66.513321000000133],[-86.283324999999934,66.518599999999935],[-86.578888000000006,66.530272999999966],[-86.580001999999979,66.520538000000101],[-86.587783999999942,66.51527400000009],[-86.599730999999963,66.511108000000036],[-86.611389000000031,66.508331000000112],[-86.622771999999998,66.506652999999972],[-86.635009999999966,66.50610400000005],[-86.65972899999997,66.506377999999984],[-86.672500999999954,66.507767000000001],[-86.685546999999985,66.509720000000073],[-86.698883000000023,66.513046000000145],[-86.726944000000003,66.521103000000096],[-86.738051999999982,66.525269000000037],[-86.75167799999997,66.528320000000008],[-86.764174999999966,66.528595000000053],[-86.775283999999942,66.526093000000003],[-86.780838000000017,66.520828000000108],[-86.781386999999995,66.515823000000069],[-86.777221999999995,66.511108000000036],[-86.743880999999931,66.488586000000112],[-86.701110999999969,66.466659999999933],[-86.662780999999939,66.449417000000039],[-86.639998999999932,66.441085999999927],[-86.633621000000005,66.436371000000122],[-86.641677999999956,66.431931000000077],[-86.678604000000007,66.432755000000043],[-86.730559999999969,66.436920000000043],[-86.756957999999941,66.441360000000088],[-86.783614999999941,66.447479000000101],[-86.796386999999925,66.448593000000074],[-86.807495000000017,66.446091000000024],[-86.811110999999983,66.441925000000083],[-86.809158000000025,66.437195000000088],[-86.804992999999968,66.432480000000055],[-86.651671999999962,66.324158000000011],[-86.638335999999924,66.315262000000075],[-86.612777999999992,66.311646000000053],[-86.49722300000002,66.29942299999999],[-86.396117999999944,66.289703000000088],[-86.30610699999994,66.276382000000126],[-86.142226999999991,66.239699999999971],[-86.076110999999912,66.22387700000013],[-85.927489999999977,66.186370999999951],[-85.913895000000025,66.182205000000067],[-85.901108000000022,66.173035000000027],[-85.897232000000031,66.168319999999994],[-85.977492999999924,66.077773999999977],[-85.975829999999917,66.073044000000095],[-85.973891999999978,66.038879000000009],[-85.974716000000001,66.033875000000023],[-85.979995999999915,66.028594999999996],[-85.990554999999972,66.024155000000121],[-86.077224999999999,65.99581900000004],[-86.121384000000035,65.984421000000054],[-86.217498999999975,65.957489000000123],[-86.22084000000001,65.952209000000039],[-86.231383999999935,65.941925000000026],[-86.239166000000012,65.936646000000053],[-86.249435000000005,65.93193100000002],[-86.326400999999976,65.90498400000007],[-86.348617999999874,65.899719000000005],[-86.360275000000001,65.899155000000064],[-86.420272999999952,65.892487000000074],[-86.472228999999857,65.839980999999966],[-86.496947999999975,65.808029000000033],[-86.49499499999996,65.803314],[-86.486389000000031,65.799149],[-86.464171999999962,65.790543000000071],[-86.455276000000026,65.786102000000142],[-86.453888000000006,65.78137200000009],[-86.451110999999855,65.747208000000057],[-86.454177999999956,65.742203000000018],[-86.530288999999868,65.695525999999916],[-86.716109999999958,65.617477000000065],[-86.819457999999997,65.560532000000023],[-86.829726999999991,65.55581699999999],[-86.84056099999998,65.553314000000057],[-86.852782999999931,65.55442800000003],[-86.865828999999962,65.557480000000112],[-86.878052000000025,65.557754999999929],[-86.888610999999969,65.555251999999996],[-86.953888000000006,65.53915400000011],[-86.972777999999948,65.520263999999997],[-87.017226999999991,65.486923000000047],[-87.024445000000014,65.481659000000036],[-87.035278000000005,65.479156000000046],[-87.05471799999998,65.486649000000114],[-87.067504999999983,65.488875999999948],[-87.077788999999996,65.484985000000052],[-87.087783999999999,65.479431000000091],[-87.095001000000025,65.474152000000117],[-87.110275000000001,65.458602999999982],[-87.118606999999997,65.4433140000001],[-87.119155999999975,65.438309000000061],[-87.11500499999994,65.433594000000028],[-87.101944000000003,65.429703000000131],[-87.111664000000019,65.390274000000034],[-87.351105000000018,65.327209000000096],[-87.361938000000009,65.324432000000002],[-87.372771999999941,65.322769000000051],[-87.395843999999897,65.321380999999974],[-87.430831999999953,65.320831000000112],[-87.833327999999938,65.323883000000023],[-87.869155999999975,65.325272000000041],[-87.893065999999976,65.326660000000118],[-87.941939999999875,65.330826000000059],[-87.96665999999999,65.333054000000004],[-88.004456000000005,65.339157000000114],[-88.030288999999925,65.345260999999994],[-88.070281999999963,65.356093999999928],[-88.09445199999999,65.363312000000121],[-88.212783999999886,65.40277100000003],[-88.221389999999985,65.407211000000075],[-88.234726000000023,65.416091999999992],[-88.243331999999953,65.425262000000032],[-88.245270000000005,65.429977000000065],[-88.25389100000001,65.439148000000046],[-88.31361400000003,65.479156000000046],[-88.333617999999944,65.492477000000008],[-88.548614999999984,65.582764000000111],[-88.55972300000002,65.586929000000112],[-88.573058999999944,65.589706000000035],[-88.58555599999994,65.590820000000008],[-88.633330999999998,65.591094999999996],[-88.645554000000004,65.592208999999968],[-88.658889999999928,65.594986000000063],[-88.68582200000003,65.601929000000098],[-88.829726999999878,65.641372999999987],[-88.828888000000006,65.644150000000081],[-88.756667999999991,65.642761000000064],[-88.62249799999995,65.637207000000103],[-88.49888599999997,65.626923000000033],[-88.513335999999981,65.644440000000088],[-88.779723999999987,65.676085999999941],[-88.949721999999895,65.68664600000011],[-88.962783999999999,65.688583000000108],[-89.000838999999985,65.698593000000017],[-89.09944200000001,65.725266000000033],[-89.124435000000005,65.733322000000101],[-89.133895999999936,65.737487999999985],[-89.140563999999927,65.74192800000003],[-89.14527899999996,65.746368000000018],[-89.147507000000019,65.751388999999961],[-89.147231999999974,65.761107999999979],[-89.149444999999957,65.765823000000012],[-89.156386999999938,65.770264000000111],[-89.174438000000009,65.778594999999996],[-89.379990000000021,65.846375000000023],[-89.525283999999999,65.886932000000002],[-89.597228999999857,65.910812000000021],[-89.664718999999934,65.934982000000048],[-89.671660999999915,65.939423000000147],[-89.70944199999991,65.942200000000014],[-89.967223999999987,65.948593000000017],[-89.991104000000007,65.947478999999987],[-90,65.944359000000134],[-89.964171999999962,65.936919999999986],[-89.939163000000008,65.93609600000002],[-89.926391999999908,65.934143000000063],[-89.89916999999997,65.928589000000045],[-89.87110899999999,65.921097000000145],[-89.834166999999979,65.910263000000043],[-89.799438000000009,65.898331000000098],[-89.740829000000019,65.873306000000071],[-89.731673999999998,65.86914100000007],[-89.726943999999946,65.839980999999966],[-89.729172000000005,65.834717000000012],[-89.736389000000031,65.829162999999994],[-89.746947999999975,65.826385000000016],[-89.76916499999993,65.822495000000004],[-89.793334999999956,65.822495000000004],[-89.818892999999889,65.825546000000031],[-89.832229999999925,65.828323000000125],[-89.843886999999938,65.832214000000022],[-89.89056399999987,65.853043000000014],[-89.902221999999995,65.857208000000014],[-90.048614999999984,65.888321000000019],[-90.073623999999938,65.890273999999977],[-90.085555999999997,65.889159999999947],[-90.119995000000017,65.883880999999974],[-90.162780999999995,65.872207999999944],[-90.207229999999925,65.864426000000037],[-90.241942999999992,65.861374000000069],[-90.265838999999971,65.860535000000141],[-90.315001999999993,65.862198000000035],[-90.404448999999943,65.871093999999971],[-90.418335000000013,65.87414600000011],[-90.427489999999977,65.878036000000066],[-90.432495000000017,65.882751000000098],[-90.425551999999925,65.888321000000019],[-90.393065999999919,65.896102999999982],[-90.357773000000009,65.898041000000092],[-90.333327999999995,65.897217000000126],[-90.272781000000009,65.897491000000059],[-90.225554999999929,65.900542999999971],[-90.215560999999923,65.904434000000037],[-90.213333000000034,65.909424000000115],[-90.213333000000034,65.914428999999984],[-90.220551,65.918868999999972],[-90.234725999999966,65.922485000000052],[-90.258895999999993,65.922485000000052],[-90.293335000000013,65.918593999999985],[-90.360275000000001,65.907760999999994],[-90.418883999999878,65.901093000000003],[-90.574172999999973,65.896652000000074],[-90.596114999999941,65.896652000000074],[-90.708618000000001,65.902480999999909],[-90.733886999999925,65.904160000000104],[-90.850280999999995,65.915267999999912],[-91.068344000000025,65.940262000000075],[-91.316390999999953,65.969986000000119],[-91.328613000000018,65.969986000000119],[-91.340285999999935,65.96887200000009],[-91.429168999999945,65.95109599999995],[-91.444442999999865,65.930817000000047],[-91.362777999999935,65.893599999999992],[-91.353332999999964,65.889434999999992],[-91.341385000000002,65.885818000000029],[-91.328063999999983,65.883880999999974],[-91.189437999999939,65.853043000000014],[-91.06082200000003,65.813309000000061],[-91.046660999999915,65.809417999999994],[-91.020553999999947,65.806091000000094],[-91.008621000000005,65.806091000000094],[-91.004180999999903,65.811371000000122],[-91.013900999999976,65.820540999999992],[-91.05471799999998,65.846649000000127],[-91.108337000000006,65.891373000000101],[-91.123046999999929,65.904709000000082],[-91.125823999999852,65.909714000000122],[-91.121384000000035,65.914993000000095],[-91.099730999999963,65.919982999999945],[-91.088057999999933,65.921097000000145],[-91.063889000000017,65.921097000000145],[-90.990279999999984,65.919982999999945],[-90.976943999999946,65.918045000000006],[-90.948607999999979,65.910812000000021],[-90.921386999999925,65.905258000000003],[-90.90834000000001,65.903595000000109],[-90.741942999999992,65.887772000000041],[-90.692489999999964,65.886108000000036],[-90.531676999999945,65.880539000000056],[-90.078063999999983,65.812485000000095],[-90.013900999999919,65.800262000000032],[-90,65.797400999999923],[-89.986938000000009,65.794708000000071],[-89.960006999999962,65.788879000000065],[-89.932220000000029,65.78137200000009],[-89.744995000000017,65.724700999999982],[-89.720275999999956,65.713042999999971],[-89.660278000000005,65.683318999999983],[-89.653335999999911,65.678863999999976],[-89.428328999999962,65.529434000000037],[-89.308883999999978,65.469437000000084],[-89.146118000000001,65.400543000000084],[-89.065551999999911,65.333054000000004],[-89.054442999999992,65.328873000000101],[-89.044448999999986,65.32777400000009],[-88.771118000000001,65.307754999999986],[-88.733886999999982,65.306090999999981],[-88.710281000000009,65.306090999999981],[-88.698607999999979,65.30693100000002],[-88.676940999999999,65.31053200000008],[-88.606948999999929,65.30693100000002],[-88.490279999999984,65.293320000000051],[-88.389174999999909,65.277205999999921],[-88.364715999999873,65.274994000000049],[-88.215012000000002,65.277205999999921],[-88.133330999999941,65.278320000000122],[-88.109725999999966,65.278046000000018],[-88.096664000000033,65.274994000000049],[-88.061660999999958,65.258881000000031],[-88.021117999999888,65.274704000000042],[-88.011123999999938,65.278320000000122],[-87.978058000000033,65.283599999999979],[-87.943603999999993,65.286102000000085],[-87.731383999999991,65.290267999999969],[-87.673049999999989,65.291366999999923],[-87.602218999999934,65.290542999999957],[-87.357773000000009,65.270827999999995],[-87.21055599999994,65.254165999999998],[-87.075012000000015,65.236648999999943],[-86.957779000000016,65.165817000000004],[-86.944992000000013,65.156936999999971],[-86.936935000000005,65.147766000000047],[-86.933318999999983,65.138046000000145],[-86.967498999999975,65.059417999999994],[-86.970275999999899,65.054428000000087],[-86.977492999999981,65.048874000000126],[-86.997771999999941,65.040816999999947],[-87.040557999999976,65.031097000000045],[-87.110001000000011,64.999145999999996],[-87.430283000000031,64.711928999999998],[-87.521666999999923,64.621094000000085],[-87.571944999999971,64.573607999999979],[-87.579178000000013,64.568054000000018],[-87.586120999999991,64.562759000000142],[-87.595550999999944,64.557205000000124],[-87.698043999999925,64.527206000000092],[-87.764419999999973,64.520904999999914],[-87.786391999999921,64.51998900000001],[-87.797225999999966,64.518051000000071],[-87.807219999999973,64.514434999999992],[-87.855270000000019,64.43942300000009],[-87.855835000000013,64.429428000000144],[-87.863616999999977,64.379700000000014],[-87.8663939999999,64.369705000000124],[-87.983886999999925,64.191086000000041],[-87.990829000000019,64.185805999999957],[-88.113327000000027,64.136108000000036],[-88.12332200000003,64.133605999999986],[-88.285552999999936,64.106369000000029],[-88.551666000000012,64.025543000000084],[-88.553878999999995,64.020538000000045],[-88.674437999999952,63.980269999999962],[-88.684432999999956,63.977486000000056],[-88.736663999999962,63.968323000000055],[-88.759444999999971,63.969437000000028],[-88.993880999999931,63.998604000000114],[-89.077788999999882,64.026093000000117],[-89.110000999999954,64.03804000000008],[-89.127212999999983,64.04664600000001],[-89.150833000000034,64.059417999999994],[-89.182770000000005,64.081375000000037],[-89.198043999999982,64.094711000000018],[-89.202224999999999,64.099426000000051],[-89.208617999999944,64.108871000000079],[-89.210555999999997,64.118317000000047],[-89.210555999999997,64.123306000000014],[-89.212783999999942,64.128036000000066],[-89.22084000000001,64.137207000000046],[-89.244720000000029,64.15498400000007],[-89.251113999999973,64.159424000000115],[-89.260833999999875,64.160538000000088],[-89.284164000000033,64.141937000000041],[-89.286391999999978,64.136658000000068],[-89.182495000000017,64.036652000000004],[-89.096664000000033,63.973877000000016],[-89.061661000000015,63.960823000000119],[-89.051101999999958,63.961936999999921],[-89.040833000000021,63.958602999999925],[-89.023620999999991,63.950272000000041],[-89.028609999999958,63.946098000000006],[-89.039443999999946,63.944991999999957],[-89.050551999999925,63.944991999999957],[-89.246657999999968,63.959717000000126],[-89.254729999999938,63.963051000000121],[-89.321395999999936,63.996658000000025],[-89.396117999999944,64.038589000000002],[-89.507232999999928,64.070540999999992],[-89.551101999999958,64.07748399999997],[-89.55860899999999,64.073883000000137],[-89.56082200000003,64.068878000000041],[-89.56527699999998,64.019149999999968],[-89.563323999999852,64.009430000000066],[-89.554442999999992,64.000274999999988],[-89.548049999999932,63.996101000000124],[-89.530838000000017,63.987770000000069],[-89.517775999999913,63.978874000000133],[-89.489990000000034,63.956657000000064],[-89.485549999999989,63.951934999999992],[-89.483321999999873,63.947211999999979],[-89.485549999999989,63.94221500000009],[-89.49722300000002,63.943046999999979],[-89.521117999999944,63.955826000000059],[-89.527495999999985,63.960274000000027],[-89.577224999999999,63.995544000000052],[-89.585555999999997,64.004439999999988],[-89.589995999999928,64.014160000000061],[-89.594161999999926,64.018600000000106],[-89.637787000000003,64.049423000000104],[-89.644164999999987,64.053864000000033],[-89.699722000000008,64.076385000000016],[-89.712219000000005,64.079437000000098],[-89.719161999999983,64.074707000000103],[-89.726943999999946,64.047484999999938],[-89.785552999999993,64.076935000000049],[-89.818068999999923,64.098602000000085],[-89.822509999999909,64.103317000000118],[-89.822783999999956,64.10803199999998],[-89.820557000000008,64.113312000000008],[-89.80972300000002,64.128860000000032],[-89.802215999999987,64.132476999999994],[-89.780563000000029,64.134430000000123],[-89.757507000000032,64.133605999999986],[-89.746947999999975,64.135544000000095],[-89.738051999999925,64.14027399999992],[-89.735824999999977,64.145263999999997],[-89.75111400000003,64.218048000000124],[-89.75556899999998,64.227478000000019],[-89.760009999999966,64.232208000000071],[-89.773055999999997,64.240814],[-89.784163999999919,64.244705000000067],[-89.794158999999922,64.241928000000144],[-89.801102000000014,64.237487999999928],[-89.805557000000022,64.227203000000031],[-89.803328999999962,64.222487999999998],[-89.803054999999972,64.20277400000009],[-89.81639100000001,64.148041000000092],[-89.823623999999995,64.144440000000031],[-89.845550999999944,64.142761000000007],[-89.879439999999988,64.142487000000074],[-89.892226999999991,64.145538000000101],[-89.909728999999913,64.158599999999922],[-89.922501000000011,64.161377000000016],[-89.967498999999918,64.161377000000016],[-89.986938000000009,64.159714000000122],[-90.124161000000015,64.128586000000098],[-90.118057000000022,64.125259000000142],[-90.104995999999971,64.121368000000075],[-90.05860899999999,64.109710999999947],[-89.950561999999991,64.086929000000055],[-89.946105999999986,64.057480000000055],[-89.904175000000009,64.015823000000012],[-89.866942999999992,63.98971599999993],[-89.841674999999896,63.983879000000002],[-89.831116000000009,63.979988000000105],[-89.824447999999961,63.97554800000006],[-89.820281999999963,63.971099999999922],[-89.813613999999973,63.946938000000046],[-89.813613999999973,63.93721000000005],[-89.815552000000025,63.931938000000116],[-89.821944999999971,63.926384000000098],[-89.828612999999962,63.921104000000014],[-89.838057999999933,63.917212999999947],[-89.938888999999961,63.909713999999951],[-89.951400999999976,63.912491000000045],[-89.989440999999999,63.92193600000013],[-89.998336999999992,63.926102000000014],[-89.995270000000005,63.929161000000022],[-89.974715999999944,63.933052000000089],[-89.964721999999995,63.935822000000087],[-89.955276000000026,63.939712999999983],[-89.948607999999979,63.945267000000001],[-89.946655000000021,63.950546000000145],[-89.946655000000021,63.960274000000027],[-89.946655000000021,63.965271000000087],[-89.94888299999991,63.969986000000119],[-89.955565999999976,63.9741590000001],[-89.968613000000005,63.978043000000127],[-90,63.984043000000042],[-90.18249499999996,64.0086060000001],[-90.194153000000028,64.009430000000066],[-90.249435000000005,64.007492000000127],[-90.271392999999989,64.006377999999927],[-90.279175000000009,64.00360100000006],[-90.275009000000011,63.999161000000015],[-90.262786999999889,63.997214999999926],[-90.227492999999981,63.994438000000059],[-90.214721999999881,63.990829000000019],[-90.196944999999914,63.982491000000095],[-90.113892000000021,63.930824000000086],[-89.975005999999951,63.825829000000056],[-89.966400000000021,63.816939999999988],[-89.964171999999962,63.811935000000119],[-89.964171999999962,63.80221599999993],[-89.966110000000015,63.79222100000004],[-89.96833799999996,63.782211000000132],[-89.972503999999958,63.776657000000114],[-89.981673999999998,63.773048000000131],[-90.057770000000005,63.744438000000059],[-90.089995999999928,63.698874999999987],[-90.148894999999982,63.629158000000075],[-90.156386999999938,63.626656000000025],[-90.205275999999913,63.61221299999994],[-90.236388999999917,63.607216000000051],[-90.258620999999891,63.607216000000051],[-90.429442999999992,63.615829000000019],[-90.461394999999982,63.640549000000078],[-90.468613000000005,63.652309000000002],[-90.488051999999982,63.672493000000088],[-90.501113999999973,63.676383999999985],[-90.611937999999952,63.70249200000012],[-90.623885999999914,63.704162999999994],[-90.634445000000028,63.703049000000021],[-90.64416499999993,63.700272000000098],[-90.701400999999976,63.662209000000075],[-90.699157999999954,63.657494000000042],[-90.686660999999958,63.654709000000139],[-90.677779999999927,63.654433999999981],[-90.655563000000029,63.654709000000139],[-90.623610999999983,63.657767999999976],[-90.613891999999908,63.660545000000013],[-90.60972599999991,63.665825000000098],[-90.610001000000011,63.675827000000083],[-90.602782999999988,63.679436000000067],[-90.590285999999992,63.676658999999972],[-90.55972300000002,63.659714000000008],[-90.555556999999965,63.65526600000004],[-90.553329000000019,63.650543000000084],[-90.541381999999942,63.617210000000057],[-90.541381999999942,63.61221299999994],[-90.545273000000009,63.606941000000006],[-90.551391999999964,63.601387000000045],[-90.56082200000003,63.597487999999998],[-90.571120999999948,63.595543000000021],[-90.733886999999925,63.573883000000023],[-90.828063999999983,63.561661000000072],[-90.84944200000001,63.559714999999983],[-90.930556999999965,63.564156000000082],[-90.942763999999954,63.566666000000112],[-90.978881999999999,63.576103000000046],[-90.989440999999943,63.579994000000113],[-91.035003999999958,63.5991590000001],[-91.137786999999889,63.630821000000026],[-91.158051,63.635551000000078],[-91.188599000000011,63.62943300000012],[-91.198883000000023,63.628601000000003],[-91.210281000000009,63.628326000000015],[-91.233321999999987,63.629990000000021],[-91.375823999999966,63.659157000000107],[-91.399733999999967,63.666664000000083],[-91.406386999999938,63.671104000000071],[-91.406661999999983,63.676102000000071],[-91.402785999999992,63.681381000000044],[-91.393616000000009,63.685265000000072],[-91.371384000000035,63.685546999999985],[-91.34973100000002,63.677772999999945],[-91.336945000000014,63.675270000000012],[-91.329453000000001,63.677772999999945],[-91.333892999999989,63.682495000000017],[-91.34056099999998,63.686652999999978],[-91.34944200000001,63.690826000000129],[-91.362503000000004,63.694435000000112],[-91.411666999999909,63.707214000000022],[-91.529174999999952,63.729987999999992],[-91.540558000000033,63.730820000000051],[-91.551392000000021,63.729713000000118],[-91.560821999999916,63.726653999999996],[-91.569457999999997,63.721930999999984],[-91.575561999999934,63.716385000000116],[-91.584166999999979,63.711380000000077],[-91.595550999999887,63.711380000000077],[-91.910552999999936,63.740546999999992],[-92.06639100000001,63.74193600000001],[-92.136123999999938,63.745544000000109],[-92.148620999999991,63.748047000000099],[-92.175003000000004,63.755271999999991],[-92.186110999999983,63.758888000000013],[-92.434433000000013,63.804993000000024],[-92.482772999999952,63.811935000000119],[-92.471664000000033,63.80832700000002],[-92.437774999999931,63.79222100000004],[-92.428328999999962,63.783051],[-92.425551999999982,63.778603000000032],[-92.422500999999954,63.748878000000104],[-92.415832999999964,63.744713000000104],[-92.406661999999926,63.740546999999992],[-92.395553999999947,63.736938000000009],[-92.382766999999944,63.734161000000086],[-92.348891999999921,63.733879000000059],[-92.306380999999931,63.738602000000014],[-92.263061999999934,63.741379000000109],[-92.251113999999973,63.740546999999992],[-92.148055999999997,63.716934000000094],[-92.103881999999942,63.701660000000004],[-92.101669000000015,63.696938000000102],[-92.105559999999969,63.691658000000018],[-92.204177999999956,63.638046000000088],[-92.252501999999993,63.623878000000047],[-92.262512000000015,63.62193300000007],[-92.385009999999909,63.592491000000109],[-92.48971599999993,63.567215000000033],[-92.493056999999965,63.540832999999964],[-92.480835000000013,63.527214000000072],[-92.429168999999945,63.546944000000053],[-92.336394999999868,63.556938000000059],[-92.279998999999975,63.556099000000131],[-92.20666499999993,63.606102000000078],[-92.202788999999882,63.611381999999935],[-92.193877999999927,63.615273000000002],[-92.165282999999988,63.624435000000119],[-91.971114999999998,63.679993000000138],[-91.830291999999929,63.712212000000022],[-91.820006999999976,63.714157],[-91.809432999999956,63.715271000000143],[-91.776107999999965,63.715828000000045],[-91.763335999999981,63.713325999999995],[-91.695266999999944,63.690544000000045],[-91.670837000000006,63.678047000000049],[-91.617492999999911,63.648880000000133],[-91.613051999999925,63.644440000000145],[-91.611388999999974,63.639160000000061],[-91.61250299999989,63.629158000000075],[-91.618056999999965,63.613608999999997],[-91.617217999999923,63.603882000000056],[-91.607498000000021,63.584991000000002],[-91.600829999999974,63.580551000000014],[-91.39805599999994,63.524994000000049],[-91.274170000000026,63.502495000000124],[-91.133056999999951,63.478043000000014],[-90.945540999999935,63.440269000000114],[-90.854720999999984,63.408600000000092],[-90.915557999999919,63.41054500000007],[-90.932770000000005,63.418602000000078],[-90.945540999999935,63.422493000000145],[-90.956954999999937,63.423325000000034],[-90.96833799999996,63.423050000000046],[-90.975006000000008,63.419441000000006],[-90.972777999999948,63.414711000000011],[-90.957503999999972,63.401382000000069],[-90.942214999999976,63.393051000000014],[-90.931380999999931,63.389160000000118],[-90.918883999999935,63.386383000000023],[-90.816665999999998,63.369156000000032],[-90.741942999999992,63.360825000000091],[-90.690825999999959,63.228324999999984],[-90.627486999999974,63.059433000000013],[-90.649169999999913,63.036385000000109],[-90.739990000000034,62.962212000000136],[-90.775832999999977,62.941933000000006],[-90.785004000000015,62.938041999999939],[-90.794998000000021,62.936104],[-90.825835999999924,62.933052000000089],[-90.847778000000005,62.932770000000005],[-90.870270000000005,62.934433000000126],[-90.929442999999992,62.944435000000112],[-90.940551999999968,62.945267000000001],[-91.017226999999934,62.946380999999974],[-91.038329999999917,62.944153000000028],[-91.048049999999989,62.94221500000009],[-91.173049999999989,62.908600000000035],[-91.18249499999996,62.905823000000112],[-91.190825999999959,62.900825999999995],[-91.196654999999964,62.895271000000093],[-91.200561999999934,62.88999200000012],[-91.199721999999895,62.870270000000062],[-91.207229999999981,62.8597180000001],[-91.213333000000034,62.854164000000083],[-91.356383999999991,62.788605000000018],[-91.366652999999928,62.787498000000085],[-91.440276999999867,62.782768000000033],[-91.46166999999997,62.782494000000099],[-91.579178000000013,62.799995000000081],[-91.840285999999935,62.826385000000073],[-91.990279999999984,62.84693900000002],[-92.087508999999898,62.818886000000077],[-92.214721999999995,62.824715000000083],[-92.223052999999993,62.828880000000083],[-92.236114999999927,62.832214000000079],[-92.339995999999985,62.843605000000025],[-92.361937999999952,62.844154000000003],[-92.382766999999944,62.841660000000047],[-92.392501999999922,62.839713999999958],[-92.402221999999995,62.837493999999992],[-92.420836999999949,62.831383000000073],[-92.438323999999966,62.823607999999979],[-92.455275999999969,62.814712999999983],[-92.459441999999967,62.810272000000055],[-92.458618000000001,62.800270000000069],[-92.455841000000021,62.79583000000008],[-92.451400999999919,62.791107000000068],[-92.333617999999944,62.709991000000116],[-92.232773000000009,62.673049999999989],[-92.188598999999954,62.659156999999993],[-92.178329000000019,62.65638000000007],[-92.067779999999971,62.651657000000057],[-92.034728999999857,62.65026899999998],[-91.971389999999928,62.653320000000008],[-91.948883000000023,62.651932000000102],[-91.925827000000027,62.644440000000145],[-91.908614999999998,62.636383000000023],[-91.882766999999944,62.624161000000015],[-91.880554000000018,62.619438000000059],[-91.883330999999998,62.604438999999957],[-91.885009999999909,62.5991590000001],[-91.890288999999996,62.588600000000042],[-91.941375999999991,62.534996000000035],[-91.948043999999982,62.531380000000013],[-92.053328999999962,62.526657],[-92.153060999999923,62.598045000000127],[-92.163329999999974,62.600829999999974],[-92.186110999999983,62.603324999999984],[-92.196655000000021,62.603049999999996],[-92.266112999999962,62.595268000000033],[-92.275009000000011,62.591377000000136],[-92.271399999999971,62.578049000000135],[-92.275557999999933,62.560272000000111],[-92.325561999999991,62.540833000000021],[-92.365004999999996,62.533332999999914],[-92.384734999999978,62.529990999999995],[-92.396118000000001,62.530823000000112],[-92.430831999999953,62.535827999999981],[-92.468062999999972,62.54444100000012],[-92.539169000000015,62.532493999999986],[-92.606110000000001,62.464996000000042],[-92.617767000000015,62.466660000000047],[-92.710006999999962,62.465827999999931],[-92.726105000000018,62.444153000000142],[-92.729720999999984,62.438599000000124],[-92.731109999999944,62.433601000000124],[-92.730834999999956,62.428604000000064],[-92.724716000000001,62.358604000000014],[-92.714721999999995,62.343880000000013],[-92.665833000000021,62.332771000000093],[-92.628052000000025,62.322220000000016],[-92.606658999999922,62.31471300000004],[-92.598052999999936,62.310821999999973],[-92.585006999999905,62.302216000000044],[-92.584441999999967,62.297493000000088],[-92.585830999999871,62.292220999999984],[-92.601668999999958,62.265549000000078],[-92.610275000000001,62.261382999999967],[-92.603995999999938,62.236324000000138],[-92.573058999999944,62.196098000000006],[-92.568619000000012,62.191657999999961],[-92.561934999999949,62.187492000000077],[-92.536666999999966,62.175551999999982],[-92.486388999999974,62.161377000000073],[-92.478057999999919,62.157493999999986],[-92.47001599999993,62.146614],[-92.477782999999988,62.143883000000017],[-92.48721299999994,62.144157000000121],[-92.592223999999987,62.154990999999995],[-92.603881999999942,62.156379999999956],[-92.625823999999909,62.191657999999961],[-92.64044199999995,62.209098999999924],[-92.638435000000015,62.212273000000039],[-92.638275000000021,62.215103000000056],[-92.639938000000029,62.217770000000087],[-92.700561999999991,62.265549000000078],[-92.741103999999893,62.28694200000001],[-92.747498000000007,62.289993000000038],[-92.845551,62.309433000000013],[-93.075561999999991,62.332214000000022],[-93.12222300000002,62.334991000000116],[-92.904174999999952,62.262215000000083],[-92.892226999999991,62.259720000000073],[-92.866393999999957,62.263054000000068],[-92.839995999999985,62.260276999999974],[-92.828612999999905,62.257217000000082],[-92.780288999999868,62.236938000000123],[-92.765288999999996,62.224434000000088],[-92.764724999999942,62.219437000000028],[-92.790282999999988,62.177489999999921],[-92.795836999999949,62.172768000000019],[-92.800963999999965,62.172905000000014],[-92.840285999999992,62.174438000000009],[-92.851943999999946,62.175827000000027],[-92.862503000000004,62.17943600000001],[-92.954453000000001,62.192764000000011],[-93.06806899999998,62.174995000000081],[-93.076674999999909,62.17193600000013],[-93.110000999999954,62.156654000000117],[-93.114440999999999,62.15415999999999],[-93.119720000000029,62.148330999999985],[-93.126937999999882,62.132492000000013],[-93.124160999999958,62.128044000000045],[-93.119445999999925,62.123604000000057],[-93.081389999999942,62.10443900000007],[-93.069167999999877,62.103607000000011],[-93.059722999999906,62.105826999999977],[-93.037506000000008,62.121658000000139],[-93.028885000000002,62.12471000000005],[-93.019164999999987,62.126099000000067],[-93.008057000000008,62.125549000000035],[-92.940552000000025,62.115547000000049],[-92.933060000000012,62.11360900000011],[-92.930557000000022,62.109160999999972],[-92.931380999999988,62.104164000000083],[-92.936935000000005,62.099159000000043],[-92.968338000000017,62.077217000000132],[-92.991104000000007,62.067772000000105],[-93.140839000000028,62.009720000000129],[-93.237212999999997,62.02693899999997],[-93.246384000000035,62.033333000000027],[-93.277495999999871,62.042770000000132],[-93.302779999999927,62.049438000000123],[-93.325286999999946,62.051384000000041],[-93.411391999999978,62.03138000000007],[-93.413054999999986,62.025551000000064],[-93.39416499999993,62.013610999999969],[-93.385559000000001,62.009995000000117],[-93.373610999999983,62.007500000000107],[-93.361937999999952,62.00610400000005],[-93.342223999999931,62.004997000000117],[-93.318893000000003,61.998047000000099],[-93.244445999999982,61.969437000000028],[-93.235549999999989,61.965545999999961],[-93.222228999999913,61.957496999999989],[-93.218338000000017,61.95249200000012],[-93.217223999999987,61.947769000000108],[-93.281951999999876,61.891380000000083],[-93.299728000000016,61.885826000000066],[-93.309157999999911,61.883606000000043],[-93.330565999999919,61.886383000000137],[-93.442489999999964,61.915268000000026],[-93.461670000000026,61.922493000000088],[-93.616104000000007,61.939986999999974],[-93.600280999999939,61.879158000000075],[-93.61721799999998,61.861938000000123],[-93.556945999999982,61.847771000000137],[-93.435821999999973,61.808883999999978],[-93.282776000000013,61.788887000000102],[-93.248610999999983,61.78472099999999],[-93.237777999999935,61.777214000000072],[-93.242492999999968,61.767493999999999],[-93.25556899999998,61.742493000000138],[-93.356948999999986,61.707214000000022],[-93.449431999999945,61.682213000000047],[-93.542769999999962,61.663321999999994],[-93.594161999999926,61.648048000000074],[-93.654998999999862,61.629158000000132],[-93.856658999999979,61.549164000000133],[-93.984726000000023,61.456100000000106],[-93.985275000000001,61.454163000000051],[-93.968613000000005,61.396660000000054],[-93.932495000000017,61.387214999999969],[-93.921935999999903,61.385269000000108],[-93.911666999999966,61.385826000000009],[-93.906386999999995,61.387497000000053],[-93.895003999999972,61.389160000000004],[-93.884734999999864,61.389717000000076],[-93.868056999999965,61.389160000000004],[-93.857498000000021,61.385551000000135],[-93.820281999999963,61.355826999999977],[-93.817504999999983,61.351386999999932],[-93.819167999999991,61.347214000000008],[-93.839447000000007,61.319443000000092],[-93.84445199999999,61.316101000000003],[-93.858046999999942,61.312767000000008],[-93.932220000000029,61.296661000000029],[-93.940552000000025,61.294998000000078],[-94.057219999999973,61.178329000000076],[-94.14805599999994,61.043610000000058],[-94.226943999999946,60.942764000000068],[-94.349166999999909,60.858603999999957],[-94.353333000000021,60.853607000000068],[-94.391112999999905,60.798882000000049],[-94.415282999999988,60.762215000000026],[-94.415008999999998,60.756660000000124],[-94.451674999999966,60.671104000000128],[-94.505004999999983,60.549995000000138],[-94.509444999999971,60.544159000000093],[-94.563048999999978,60.522217000000012],[-94.575835999999981,60.52027099999998],[-94.611389000000031,60.52777100000003],[-94.67332499999992,60.522490999999945],[-94.671660999999915,60.466103000000032],[-94.629439999999988,60.41832700000009],[-94.626388999999961,60.413605000000018],[-94.614715999999873,60.38999200000012],[-94.613891999999908,60.380547000000035],[-94.615004999999996,60.375266999999951],[-94.620834000000002,60.363883999999985],[-94.681945999999925,60.224158999999929],[-94.673614999999927,60.191101000000117],[-94.704726999999934,60.091933999999981],[-94.707503999999972,60.083603000000096],[-94.711394999999925,60.078330999999991],[-94.714721999999938,60.075272000000041],[-94.728333000000021,60.071380999999974],[-94.746658000000025,60.069992000000127],[-94.752791999999943,60.06860400000005],[-94.766402999999912,60.061378000000104],[-94.771117999999944,60.055549999999982],[-94.803878999999995,60.008330999999998],[-94.803878999999995,60.003609000000097],[-94.800430000000006,59.999565000000132],[-94.819167999999991,59.964714000000129],[-94.821670999999924,59.959160000000111],[-94.822509999999909,59.954162999999994],[-94.820556999999951,59.944434999999999],[-94.803329000000019,59.877768999999944],[-94.803329000000019,59.711104999999975],[-94.819167999999991,59.63638300000008],[-94.788605000000018,59.51527400000009],[-94.735275000000001,59.426384000000098],[-94.680557000000022,59.357215999999994],[-94.715285999999992,59.323326000000066],[-94.770003999999972,59.29833200000013],[-94.775009000000011,59.29332700000009],[-94.781386999999995,59.263611000000026],[-94.782227000000034,59.258331000000112],[-94.789718999999991,59.092216000000064],[-94.681670999999994,58.975822000000107],[-94.679992999999968,58.97137500000008],[-94.676392000000021,58.93443300000007],[-94.597777999999948,58.878326000000072],[-94.586394999999868,58.874992000000077],[-94.486938000000009,58.815269000000058],[-94.482223999999974,58.811104000000057],[-94.477782999999931,58.806656000000089],[-94.474716000000001,58.802216000000044],[-94.457503999999915,58.774162000000047],[-94.453338999999914,58.765274000000034],[-94.452788999999882,58.759720000000016],[-94.453338999999914,58.750549000000092],[-94.448607999999979,58.736382000000106],[-94.446105999999986,58.731658999999979],[-94.43720999999988,58.72304500000007],[-94.421660999999972,58.716385000000059],[-94.410552999999993,58.714157000000114],[-94.361388999999974,58.712769000000037],[-94.343613000000005,58.715546000000074],[-94.326950000000011,58.721656999999993],[-94.291107000000011,58.743606999999997],[-94.279175000000009,58.771103000000039],[-94.228881999999999,58.784996000000092],[-94.234725999999966,58.714714000000015],[-94.252228000000002,58.649994000000049],[-94.285277999999892,58.512496999999996],[-94.287216000000001,58.438041999999996],[-94.289168999999958,58.427773000000116],[-94.291672000000005,58.422218000000044],[-94.296660999999972,58.415825000000098],[-94.326400999999976,58.349159000000043],[-94.348617999999988,58.2866590000001],[-94.351668999999902,58.276656999999943],[-94.363892000000021,58.22387700000013],[-94.363327000000027,58.218880000000013],[-94.360275000000001,58.220543000000134],[-94.3558349999999,58.226097000000095],[-94.259445000000028,58.351386999999988],[-94.231110000000001,58.390549000000021],[-94.228606999999954,58.396103000000039],[-94.226943999999946,58.406380000000013],[-94.231110000000001,58.430824000000143],[-94.238891999999964,58.494155999999975],[-94.24610899999999,58.576385000000016],[-94.24610899999999,58.586654999999951],[-94.245269999999948,58.59165999999999],[-94.242766999999958,58.597214000000008],[-94.143889999999942,58.763610999999912],[-94.113892000000021,58.762215000000083],[-93.995833999999945,58.760826000000066],[-93.949158000000011,58.76249700000011],[-93.843886999999938,58.767769000000044],[-93.798614999999927,58.773604999999918],[-93.728058000000033,58.783882000000119],[-93.709732000000031,58.785827999999981],[-93.673049999999932,58.780823000000112],[-93.575561999999991,58.763885000000016],[-93.475554999999986,58.732491000000039],[-93.350554999999929,58.74582700000002],[-93.343886999999881,58.750832000000059],[-93.327788999999996,58.757217000000082],[-93.319167999999991,58.758606000000043],[-93.236664000000019,58.766936999999984],[-93.216659999999933,58.764160000000061],[-93.196380999999974,58.758331000000055],[-93.155562999999972,58.740273000000002],[-93.152221999999938,58.737770000000012],[-93.141112999999962,58.691933000000006],[-93.139724999999885,58.653876999999966],[-93.126937999999882,58.532494000000042],[-93.126099000000011,58.527771000000087],[-93.118057000000022,58.508888000000013],[-93.095276000000013,58.467209000000082],[-93.035277999999948,58.37082700000002],[-92.964721999999938,58.261108000000036],[-92.93110699999994,58.21166199999999],[-92.868880999999931,58.143050999999957],[-92.811660999999901,58.071663000000058],[-92.803329000000019,58.057213000000104],[-92.799987999999985,58.042221000000097],[-92.805557000000022,58.011940000000038],[-92.805557000000022,58.00638600000002],[-92.80471799999998,57.997490000000084],[-92.795273000000009,57.96888000000007],[-92.753615999999965,57.85083000000003],[-92.724716000000001,57.801383999999985],[-92.672501000000011,57.733047000000056],[-92.621108999999876,57.670547000000113],[-92.450835999999981,57.442490000000134],[-92.446380999999974,57.433051999999918],[-92.418883999999991,57.337493999999992],[-92.418334999999956,57.332497000000103],[-92.418883999999991,57.323326000000122],[-92.427215999999987,57.263053999999954],[-92.430283000000031,57.252220000000079],[-92.441101000000003,57.23054500000012],[-92.549437999999896,57.08554799999996],[-92.563889000000017,57.068885999999964],[-92.576400999999976,57.056938000000116],[-92.695267000000001,56.961662000000047],[-92.708617999999888,56.951660000000118],[-92.715835999999967,56.947487000000137],[-92.723327999999924,56.944435000000055],[-92.73832699999997,56.94110100000006],[-92.771392999999932,56.93804200000011],[-92.837219000000005,56.924438000000009],[-92.868056999999965,56.91415399999994],[-92.877212999999927,56.90915700000005],[-92.876098999999954,56.907494000000099],[-92.868332000000009,56.90665400000006],[-92.850554999999929,56.907211000000132],[-92.831680000000006,56.908599999999979],[-92.790557999999976,56.913879000000122],[-92.756957999999997,56.918602000000135],[-92.731383999999991,56.922492999999974],[-92.691101000000003,56.93360100000001],[-92.660277999999948,56.945266999999944],[-92.652221999999881,56.949158000000011],[-92.61721799999998,56.96888000000007],[-92.610000999999954,56.974709000000075],[-92.589171999999905,56.986382000000106],[-92.552779999999984,57.004714999999976],[-92.514450000000011,57.023604999999918],[-92.492217999999923,57.032493999999986],[-92.475280999999995,57.037498000000141],[-92.443054000000018,57.044715999999994],[-92.40055799999999,57.052216000000044],[-92.376098999999954,57.056381000000044],[-92.253615999999965,57.065544000000045],[-92.235549999999989,57.066101000000117],[-92.226105000000018,57.065544000000045],[-92.217223999999987,57.063049000000035],[-92.212218999999948,57.058043999999995],[-92.218932999999993,57.052779999999984],[-92.337509000000011,56.981377000000066],[-92.344727000000034,56.977485999999999],[-92.352218999999991,56.974159000000043],[-92.368332000000009,56.969711000000075],[-92.385558999999944,56.967209000000025],[-92.394454999999994,56.966933999999981],[-92.418610000000001,56.961937000000091],[-92.432220000000029,56.955826000000002],[-92.46945199999999,56.934989999999971],[-92.466399999999965,56.932495000000131],[-92.375,56.949714999999912],[-92.303054999999972,56.967491000000109],[-92.287215999999944,56.974434000000088],[-92.281113000000005,56.978874000000076],[-92.268616000000009,56.990829000000019],[-92.261947999999961,56.99582700000002],[-92.235275000000001,57.012771999999984],[-92.220276000000013,57.018883000000017],[-92.204453000000001,57.02416199999999],[-92.180282999999974,57.030823000000112],[-92.155272999999909,57.036658999999986],[-92.146666999999979,57.037772999999959],[-92.129165999999941,57.03943600000008],[-92.093062999999972,57.040833000000021],[-92.057769999999891,57.043884000000048],[-92.031677000000002,57.046660999999972],[-91.987503000000004,57.052489999999977],[-91.952224999999999,57.05721299999999],[-91.828888000000006,57.087211999999965],[-91.779998999999975,57.100273000000129],[-91.241104000000007,57.222214000000008],[-91.15583799999996,57.239989999999977],[-91.08944699999995,57.251106000000107],[-91.05471799999998,57.256104000000107],[-91.036391999999978,57.258049000000085],[-91.001677999999913,57.26138300000008],[-90.992767000000015,57.26138300000008],[-90.834166999999923,57.257217000000026],[-90.81527699999998,57.255829000000119],[-90.795546999999999,57.24971800000003],[-90.779175000000009,57.243324000000143],[-90.758895999999993,57.237769999999955],[-90.738051999999925,57.232490999999982],[-90.71945199999999,57.228043000000014],[-90.709441999999967,57.226379000000009],[-90.563323999999909,57.212212000000079],[-90.451110999999969,57.193878000000097],[-90.408614999999998,57.181664000000069],[-90.391678000000013,57.176102000000128],[-90.387786999999946,57.171378999999945],[-90.310821999999973,57.134995000000117],[-90.225554999999929,57.104439000000013],[-90.025009000000011,57.031380000000013],[-90.005004999999983,57.01915699999995],[-90,57.016369000000054],[-89.990554999999972,57.011107999999922],[-89.970276000000013,57.004166000000055],[-89.833068999999966,56.978324999999984],[-89.715285999999992,56.957214000000079],[-89.521392999999932,56.92943600000001],[-89.439163000000008,56.923881999999992],[-89.132941999999957,56.864852999999982],[-89.06806899999998,56.852219000000048],[-89.015288999999939,56.84777100000008],[-88.950287000000003,56.843048000000124],[-88.94261199999994,56.844269000000054],[-88.815001999999993,56.824440000000038],[-88.742767000000015,56.764442000000145],[-88.67193599999996,56.709435000000042],[-88.654723999999931,56.696380999999974],[-88.639998999999989,56.688599000000067],[-88.631377999999984,56.68471500000004],[-88.584166999999923,56.670546999999999],[-88.440552000000025,56.603607000000011],[-88.415008999999998,56.58638000000002],[-88.365829000000019,56.561661000000015],[-88.324172999999973,56.542770000000019],[-88.218886999999995,56.504440000000045],[-88.149444999999957,56.486938000000009],[-88.103057999999976,56.476097000000095],[-88.069732999999928,56.468880000000013],[-88.048889000000031,56.465546000000018],[-88.028885000000002,56.459991000000116],[-88.018616000000009,56.456100000000049],[-87.982772999999952,56.441658000000075],[-87.975554999999929,56.437491999999963],[-87.841110000000015,56.315269000000001],[-87.723891999999978,56.203880000000083],[-87.719161999999926,56.198875000000044],[-87.715011999999945,56.189987000000031],[-87.71556099999998,56.169716000000051],[-87.713897999999972,56.164993000000095],[-87.708053999999947,56.156096999999988],[-87.702788999999996,56.151931999999988],[-87.548614999999927,56.049995000000138],[-87.478881999999999,56.029160000000047],[-87.368880999999988,56.000832000000059],[-87.351943999999889,55.992767000000129],[-87.345276000000013,55.988602000000128],[-87.343613000000005,55.983879000000002],[-87.348343,55.973320000000115],[-87.355270000000019,55.962769000000037],[-87.198333999999988,55.940269000000001],[-87.110001000000011,55.92943600000001],[-87.091675000000009,55.927489999999921],[-87.057220000000029,55.926940999999999],[-87.031676999999945,55.929718000000094],[-86.996947999999975,55.931663999999955],[-86.979445999999939,55.931663999999955],[-86.970000999999968,55.929718000000094],[-86.881942999999922,55.907211000000018],[-86.837783999999999,55.891380000000026],[-86.616942999999992,55.838882000000012],[-86.572783999999956,55.83027600000014],[-86.544448999999986,55.824440000000038],[-86.486663999999962,55.811378000000047],[-86.477782999999931,55.808884000000091],[-86.448607999999979,55.799995000000024],[-86.398620999999991,55.784164000000033],[-86.372771999999998,55.774993999999992],[-86.346114999999998,55.763054000000068],[-86.332779000000016,55.754715000000033],[-86.321944999999971,55.745544000000109],[-86.31527699999998,55.741104000000064],[-86.277221999999995,55.728873999999962],[-86.267776000000026,55.726936000000023],[-85.86721799999998,55.657493999999986],[-85.740829000000019,55.638046000000088],[-85.731673999999998,55.636940000000038],[-85.71444699999995,55.631660000000011],[-85.569457999999941,55.55860100000001],[-85.556655999999975,55.550270000000069],[-85.532227000000034,55.528045999999961],[-85.525833000000034,55.51888299999996],[-85.516662999999994,55.500000000000057],[-85.515015000000005,55.495270000000062],[-85.515288999999996,55.490273000000116],[-85.509170999999981,55.481102000000021],[-85.499435000000005,55.472214000000008],[-85.474166999999909,55.454711999999972],[-85.393340999999964,55.408881999999949],[-85.383620999999948,55.404991000000109],[-85.272232000000031,55.374709999999993],[-85.234726000000023,55.364715999999987],[-85.224716000000001,55.364159000000086],[-85.208617999999944,55.365273000000059],[-85.182219999999973,55.365273000000059],[-85.164444000000003,55.361664000000076],[-85.146118000000001,55.354996000000085],[-85.128875999999991,55.346382000000006],[-85.123885999999857,55.341934000000037],[-85.121933000000013,55.337769000000037],[-85.116652999999928,55.323050999999964],[-85.116394000000014,55.313606000000107],[-85.118331999999953,55.308601000000067],[-85.121933000000013,55.303322000000094],[-85.129165999999998,55.297775000000115],[-85.144164999999987,55.290276000000119],[-85.215285999999935,55.268600000000049],[-85.275283999999999,55.216660000000047],[-85.398055999999997,55.10083000000003],[-85.399993999999936,55.095824999999991],[-85.397506999999962,55.090546000000018],[-85.383620999999948,55.06749700000006],[-85.398055999999997,55.0472180000001],[-85.419448999999986,55.010826000000122],[-85.425003000000004,55.000274999999988],[-85.425003000000004,54.995544000000052],[-85.423889000000031,54.990546999999992],[-85.414443999999946,54.991104000000064],[-85.407500999999968,54.993324000000086],[-85.400283999999942,54.997772000000055],[-85.386123999999938,55.008049000000028],[-85.370543999999938,55.024437000000091],[-85.366942999999992,55.029716000000064],[-85.36250299999989,55.04055000000011],[-85.347778000000005,55.080826000000116],[-85.33555599999994,55.101661999999976],[-85.318344000000025,55.127486999999974],[-85.313048999999978,55.132767000000001],[-85.220275999999956,55.224434000000088],[-85.194153000000028,55.244155999999919],[-85.17971799999998,55.253608999999926],[-85.156113000000005,55.264160000000061],[-85.139998999999989,55.270270999999923],[-85.116652999999928,55.276657000000057],[-85.06806899999998,55.287498000000141],[-85.043883999999878,55.292770000000075],[-85.001952999999958,55.296660999999972],[-84.974715999999944,55.295830000000137],[-84.869445999999982,55.279716000000008],[-84.75140399999998,55.256103999999993],[-84.723617999999931,55.249718000000087],[-84.712783999999942,55.247771999999998],[-84.688048999999921,55.245270000000119],[-84.635559000000001,55.24221799999998],[-84.599166999999909,55.241661000000079],[-84.566390999999953,55.244155999999919],[-84.541381999999999,55.247490000000084],[-84.444716999999855,55.267769000000044],[-84.428878999999995,55.273048000000017],[-84.388610999999969,55.282493999999986],[-84.322783999999956,55.289992999999981],[-84.206954999999937,55.295546999999999],[-84.198607999999979,55.295273000000066],[-84.189437999999996,55.294159000000093],[-84.170837000000006,55.283051000000057],[-84.159438999999963,55.278328000000101],[-84.149170000000026,55.275551000000007],[-84.12222300000002,55.272217000000012],[-84.113892000000021,55.271934999999928],[-84.092223999999987,55.271660000000111],[-84.076110999999969,55.276099999999929],[-84.049987999999928,55.286110000000065],[-84.006393000000003,55.301383999999928],[-83.968886999999881,55.313881000000094],[-83.951675000000023,55.317497000000003],[-83.93249499999996,55.319443000000035],[-83.920273000000009,55.319160000000068],[-83.897506999999905,55.316940000000102],[-83.658386000000007,55.237324000000058],[-83.65439600000002,55.235493000000076],[-83.651732999999922,55.232985999999983],[-83.570281999999963,55.18804200000011],[-83.567229999999938,55.183052000000032],[-83.570007000000032,55.177773000000059],[-83.58555599999994,55.166100000000029],[-83.591674999999896,55.154434000000037],[-83.589721999999938,55.149719000000005],[-83.574447999999961,55.138045999999974],[-83.561935000000005,55.130820999999969],[-83.556655999999919,55.134163000000058],[-83.556655999999919,55.17943600000001],[-83.558608999999933,55.184989999999971],[-83.579505999999867,55.221157000000005],[-83.588057999999933,55.233330000000024],[-83.593886999999938,55.236938000000123],[-83.60082999999986,55.239990000000034],[-83.620833999999945,55.242767000000129],[-83.643889999999999,55.242767000000129],[-83.654448999999943,55.243881000000101],[-83.670837000000006,55.248604000000057],[-83.684432999999956,55.254439999999988],[-83.696105999999986,55.261664999999994],[-83.706116000000009,55.269714000000022],[-83.708892999999989,55.274437000000034],[-83.706116000000009,55.279990999999995],[-83.698607999999979,55.283051000000057],[-83.688888999999961,55.281937000000084],[-83.57417299999986,55.262215000000026],[-83.533324999999934,55.250549000000092],[-83.519454999999937,55.243881000000101],[-83.498885999999914,55.235549999999989],[-83.489440999999943,55.233879000000115],[-83.179717999999866,55.197211999999979],[-83.168609999999944,55.197487000000137],[-83.150283999999942,55.200271999999984],[-83.128051999999968,55.207497000000046],[-83.120270000000005,55.210823000000119],[-83.089721999999938,55.226654000000053],[-83.074447999999961,55.231658999999922],[-83.037505999999951,55.238327000000083],[-83.029174999999952,55.238883999999985],[-83.006392999999946,55.238602000000128],[-82.985001000000011,55.236382000000106],[-82.964721999999995,55.233604000000128],[-82.948607999999865,55.228874000000076],[-82.941665999999941,55.225821999999994],[-82.930556999999965,55.218322999999998],[-82.91332999999986,55.201385000000073],[-82.906113000000005,55.191932999999949],[-82.896956999999986,55.177215999999987],[-82.874435000000005,55.154434000000037],[-82.838333000000034,55.146660000000054],[-82.809998000000007,55.142220000000009],[-82.786117999999988,55.141106000000036],[-82.775283999999942,55.14137999999997],[-82.76556399999987,55.142493999999942],[-82.73971599999993,55.147491000000059],[-82.708618000000001,55.156380000000127],[-82.700835999999981,55.159714000000122],[-82.669723999999974,55.168052999999986],[-82.661117999999931,55.169716000000108],[-82.650283999999886,55.169716000000108],[-82.508346999999901,55.152771000000143],[-82.449432000000002,55.133049000000085],[-82.412506000000008,55.112770000000125],[-82.40972899999997,55.108046999999999],[-82.400833000000034,55.082771000000093],[-82.33555599999994,55.071014000000048],[-82.307495000000017,55.115829000000133],[-82.308043999999995,55.121933000000126],[-82.309432999999899,55.127486999999974],[-82.3125,55.132492000000013],[-82.323623999999995,55.139992000000063],[-82.337218999999948,55.146102999999982],[-82.345276000000013,55.148331000000098],[-82.355559999999969,55.162491000000045],[-82.349990999999875,55.166382000000112],[-82.34056099999998,55.164711000000011],[-82.333618000000001,55.1616590000001],[-82.307769999999948,55.148880000000077],[-82.25418099999996,55.111382000000049],[-82.245833999999945,55.102776000000119],[-82.244995000000017,55.09027100000003],[-82.246947999999861,55.084160000000111],[-82.253341999999975,55.073608000000092],[-82.25778200000002,55.06888600000002],[-82.273620999999935,55.05721299999999],[-82.282227000000034,55.048049999999989],[-82.285277999999948,55.042770000000132],[-82.287216000000001,55.036659000000043],[-82.287216000000001,55.030273000000136],[-82.270844000000011,54.931381000000044],[-82.267226999999991,54.920273000000009],[-82.255279999999914,54.894157000000121],[-82.246947999999861,54.879433000000063],[-82.241378999999938,54.874991999999963],[-82.231948999999986,54.873877999999991],[-82.221114999999998,54.787498000000085],[-82.320846999999958,54.571380999999974],[-82.403885000000002,54.410820000000115],[-82.419158999999979,54.384163000000058],[-82.431670999999938,54.370270000000005],[-82.436935000000005,54.366385999999977],[-82.441101000000003,54.361664000000076],[-82.441665999999941,54.330826000000116],[-82.434158000000025,54.209435000000042],[-82.421660999999972,54.197211999999979],[-82.389998999999989,54.16832700000009],[-82.362777999999878,54.143607999999972],[-82.301392000000021,54.103050000000053],[-82.283889999999985,54.092491000000052],[-82.253341999999975,54.076102999999989],[-82.248046999999929,54.072220000000016],[-82.243880999999931,54.068054000000132],[-82.238327000000027,54.057495000000074],[-82.160278000000005,53.898880000000133],[-82.131942999999978,53.817772000000105],[-82.130553999999961,53.793052999999986],[-82.129715000000033,53.774436999999978],[-82.130553999999961,53.767493999999999],[-82.136672999999917,53.749161000000129],[-82.148894999999982,53.727768000000026],[-82.189986999999917,53.674164000000019],[-82.194152999999915,53.669441000000006],[-82.203063999999927,53.653320000000008],[-82.208344000000011,53.641936999999984],[-82.212783999999999,53.622765000000015],[-82.21665999999999,53.603882000000112],[-82.211944999999957,53.536110000000065],[-82.208618000000001,53.524994000000106],[-82.198883000000023,53.504714999999976],[-82.190552000000025,53.489716000000101],[-82.172500999999954,53.460548000000074],[-82.165558000000033,53.451385000000073],[-82.158614999999998,53.442215000000033],[-82.147781000000009,53.421661000000086],[-82.138061999999991,53.38888500000013],[-82.125823999999966,53.344154000000117],[-82.119445999999982,53.315826000000129],[-82.115829000000019,53.298332000000073],[-82.113891999999908,53.286659000000043],[-82.113891999999908,53.280273000000136],[-82.114715999999873,53.273604999999975],[-82.117766999999958,53.268050999999957],[-82.121932999999956,53.263610999999969],[-82.141387999999949,53.254715000000033],[-82.21055599999994,53.220268000000033],[-82.248336999999935,53.193877999999984],[-82.269454999999937,53.163879000000009],[-82.27555799999999,53.153320000000122],[-82.279448999999943,53.141106000000093],[-82.300277999999935,53.060271999999998],[-82.301392000000021,53.05332199999998],[-82.301666000000012,53.041663999999969],[-82.296660999999972,53.018599999999992],[-82.273894999999982,52.956383000000017],[-82.261397999999986,52.937210000000107],[-82.257506999999976,52.932770000000062],[-82.235824999999977,52.924164000000133],[-82.196380999999974,52.913321999999937],[-82.136123999999995,52.894714000000079],[-82.120543999999995,52.889717000000132],[-82.101669000000015,52.879990000000021],[-82.050551999999982,52.84304800000001],[-82.025833000000034,52.823883000000023],[-82.001113999999973,52.804710000000114],[-81.977782999999931,52.784996000000035],[-81.973617999999931,52.780548000000067],[-81.951401000000033,52.736938000000066],[-81.733611999999994,52.549995000000138],[-81.719161999999983,52.538330000000087],[-81.714172000000019,52.534721000000047],[-81.697494999999947,52.524162000000047],[-81.639175000000023,52.490547000000106],[-81.621384000000035,52.480819999999994],[-81.607497999999964,52.475265999999976],[-81.577224999999999,52.465271000000087],[-81.569457999999941,52.462212000000136],[-81.558043999999938,52.456099999999935],[-81.554168999999888,52.451660000000118],[-81.551391999999964,52.446655000000078],[-81.549987999999985,52.44110100000006],[-81.542496000000028,52.338882000000012],[-81.56138599999997,52.316383000000087],[-81.663054999999986,52.292220999999984],[-81.822509999999909,52.254440000000045],[-81.850829999999917,52.244995000000131],[-81.863051999999982,52.238884000000041],[-81.865829000000019,52.23333000000008],[-81.883620999999948,52.187492000000134],[-81.874160999999901,52.188324000000023],[-81.841949,52.194992000000013],[-81.826950000000011,52.19887499999993],[-81.805557000000022,52.206099999999992],[-81.795546999999999,52.213882000000126],[-81.792495999999971,52.21915400000006],[-81.788605000000018,52.223877000000073],[-81.779448999999943,52.232208000000128],[-81.765015000000005,52.237770000000069],[-81.758346999999958,52.23943300000002],[-81.74888599999997,52.240273000000059],[-81.718886999999881,52.240829000000076],[-81.554992999999854,52.237495000000081],[-81.521392999999932,52.235825000000091],[-81.50167799999997,52.23333000000008],[-81.478881999999942,52.225822000000051],[-81.472778000000005,52.221930999999984],[-81.460006999999962,52.210274000000027],[-81.443603999999937,52.192764000000068],[-81.440552000000025,52.188599000000067],[-81.434432999999956,52.179161000000022],[-81.431670999999994,52.174164000000133],[-81.430557000000022,52.168053000000043],[-81.418335000000013,52.149437000000034],[-81.414443999999946,52.144996999999989],[-81.405838000000017,52.136940000000038],[-81.365279999999984,52.107216000000051],[-81.352782999999988,52.101105000000132],[-81.337783999999999,52.096100000000092],[-81.310546999999985,52.091102999999976],[-81.290832999999964,52.088599999999985],[-81.264724999999999,52.08277099999998],[-81.212509000000011,52.065543999999989],[-81.186110999999869,52.053604000000064],[-81.167496000000028,52.044158999999979],[-81.118057000000022,52.045547000000113],[-80.994445999999925,52.01138300000008],[-80.988327000000027,52.008049000000085],[-80.978333000000021,52.000832000000003],[-80.97444200000001,51.996384000000035],[-80.973052999999936,51.990829000000133],[-80.972778000000005,51.978325000000098],[-80.929992999999968,51.924163999999962],[-80.918609999999944,51.910271000000137],[-80.899993999999936,51.89527099999998],[-80.894729999999981,51.891663000000051],[-80.80972300000002,51.857498000000135],[-80.698607999999979,51.794715999999937],[-80.615279999999927,51.730270000000132],[-80.610275000000001,51.726379000000065],[-80.589171999999962,51.699715000000083],[-80.589171999999962,51.693321000000026],[-80.590285999999878,51.686653000000092],[-80.589995999999928,51.674164000000019],[-80.586120999999878,51.663605000000018],[-80.578887999999949,51.648605000000032],[-80.571395999999993,51.633605999999986],[-80.515015000000005,51.524437000000034],[-80.507506999999976,51.515830999999935],[-80.497771999999998,51.508331000000055],[-80.462218999999891,51.488601999999958],[-80.457229999999925,51.484993000000145],[-80.442489999999964,51.473602000000028],[-80.438889000000017,51.46915400000006],[-80.436385999999857,51.464157000000114],[-80.434998000000007,51.458602999999925],[-80.424438000000009,51.36360899999994],[-80.426392000000021,51.358887000000038],[-80.430557000000022,51.354164000000083],[-80.442489999999964,51.34804500000007],[-80.471664000000033,51.339714000000129],[-80.502791999999943,51.331940000000145],[-80.540558000000033,51.323326000000066],[-80.568619000000012,51.314156000000025],[-80.652495999999985,51.278327999999988],[-80.691939999999988,51.247490000000028],[-80.706954999999937,51.235550000000103],[-80.831680000000006,51.155822999999941],[-80.952498999999989,51.079720000000009],[-80.959441999999967,51.077492000000063],[-80.965285999999992,51.074440000000095],[-80.981110000000001,51.06360600000005],[-80.994994999999903,51.051384000000098],[-81.004181000000017,51.043052999999986],[-81.012222000000008,51.033882000000062],[-81.015015000000005,51.028328000000045],[-81.005279999999914,51.028603000000089],[-80.928054999999915,51.04583000000008],[-80.888335999999924,51.082771000000037],[-80.875274999999988,51.103324999999984],[-80.862212999999883,51.116104000000007],[-80.850280999999995,51.122489999999971],[-80.835280999999952,51.126938000000109],[-80.820557000000008,51.130272000000105],[-80.793610000000001,51.132767000000115],[-80.765014999999948,51.133606000000043],[-80.748046999999985,51.136658000000011],[-80.740829000000019,51.138885000000073],[-80.694442999999978,51.156097000000045],[-80.688599000000011,51.159157000000107],[-80.610000999999954,51.214157],[-80.567779999999971,51.258331000000112],[-80.562774999999988,51.262214999999969],[-80.541381999999999,51.276657000000114],[-80.530563000000029,51.283606999999961],[-80.512512000000015,51.292769999999962],[-80.480285999999865,51.307213000000047],[-80.414444000000003,51.332497000000046],[-80.400283999999886,51.337212000000079],[-80.392226999999991,51.338599999999985],[-80.371658000000025,51.336655000000007],[-80.330291999999986,51.326385000000073],[-80.219727000000034,51.301659000000029],[-80.190551999999968,51.297493000000145],[-80.129989999999907,51.297775000000001],[-80.120270000000005,51.296387000000095],[-80.016952999999944,51.263054000000125],[-79.996383999999921,51.25471500000009],[-79.800277999999992,51.156097000000045],[-79.788054999999929,51.149719000000118],[-79.741104000000007,51.123604000000114],[-79.736389000000031,51.119713000000047],[-79.729171999999949,51.110825000000034],[-79.716515000000015,51.081715000000031],[-79.685103999999967,51.045361000000014],[-79.612777999999992,51.008049000000085],[-79.537612999999908,50.958397000000048],[-79.519729999999981,50.929993000000024],[-79.516113000000018,50.926384000000041],[-79.466109999999958,50.889434999999935],[-79.450561999999877,50.87860100000006],[-79.438599000000011,50.872214999999983],[-79.415008999999941,50.846939000000134],[-79.411391999999978,50.842490999999995],[-79.352782999999931,50.748329000000069],[-79.350280999999939,50.736938000000123],[-79.348052999999993,50.731934000000138],[-79.343612999999891,50.728324999999984],[-79.337509000000011,50.724990999999989],[-79.332229999999981,50.723877000000016],[-79.330001999999922,50.758331000000055],[-79.330001999999922,50.764442000000088],[-79.332229999999981,50.775826000000052],[-79.420836999999949,50.879715000000033],[-79.439986999999917,50.894997000000103],[-79.464721999999995,50.913321999999994],[-79.515015000000005,50.95665699999995],[-79.537353999999993,50.983765000000062],[-79.571121000000005,51.00277699999998],[-79.660004000000015,51.045273000000009],[-79.673049999999876,51.050827000000027],[-79.678054999999915,51.054710000000114],[-79.698333999999932,51.075554000000068],[-79.705276000000026,51.084435000000042],[-79.749435000000005,51.168326999999977],[-79.751952999999958,51.178878999999995],[-79.752227999999889,51.184433000000013],[-79.751113999999973,51.197487000000081],[-79.745543999999995,51.208885000000066],[-79.742492999999968,51.214157],[-79.720551,51.243607000000054],[-79.703887999999949,51.261665000000107],[-79.699431999999945,51.266937000000041],[-79.688888999999961,51.281937000000028],[-79.682495000000017,51.292496000000028],[-79.680556999999908,51.298050000000046],[-79.679442999999992,51.304710000000057],[-79.668609999999944,51.398605000000089],[-79.593886999999938,51.449158000000068],[-79.581679999999949,51.455268999999987],[-79.574721999999895,51.457497000000103],[-79.547103999999877,51.460129000000109],[-79.533614999999941,51.50499700000006],[-79.474166999999966,51.579162999999994],[-79.376389000000017,51.642494000000113],[-79.353881999999999,51.656096999999988],[-79.331680000000006,51.661933999999917],[-79.322234999999978,51.662766000000033],[-79.239715999999987,51.634994999999947],[-79.236114999999927,51.630820999999912],[-79.235000999999954,51.624992000000077],[-79.23721299999994,51.619156000000032],[-79.251952999999958,51.60694100000012],[-79.275283999999999,51.577773999999977],[-79.285277999999948,51.562492000000134],[-79.285277999999948,51.556381000000101],[-79.274719000000005,51.530548000000124],[-79.271118000000001,51.525551000000064],[-79.267226999999934,51.521659999999997],[-79.202498999999989,51.518883000000073],[-79.183318999999983,51.519714000000079],[-79.175277999999935,51.521103000000096],[-79.161117999999931,51.525551000000064],[-79.154998999999975,51.528602999999976],[-79.144454999999937,51.536110000000065],[-79.137512000000015,51.538330000000087],[-79.12748699999986,51.538048000000003],[-79.120270000000005,51.535552999999993],[-79.024445000000014,51.476379000000122],[-79.020553999999947,51.473320000000115],[-79.012221999999952,51.464996000000099],[-79.005004999999926,51.449997000000053],[-78.963332999999977,51.353325000000098],[-78.950286999999946,51.29222100000004],[-78.955276000000026,51.256660000000068],[-78.95944199999991,51.252220000000023],[-78.962783999999942,51.246941000000049],[-78.962783999999942,51.240546999999992],[-78.958344000000011,51.230545000000063],[-78.951401000000033,51.215546000000018],[-78.937209999999936,51.197769000000108],[-78.928878999999938,51.18971300000004],[-78.924164000000019,51.185822000000144],[-78.912215999999944,51.179436000000067],[-78.906113000000005,51.176658999999972],[-78.853332999999964,51.165543000000014],[-78.914718999999934,51.22165700000005],[-78.918335000000013,51.226097000000095],[-78.920546999999942,51.231102000000135],[-78.921660999999915,51.237495000000081],[-78.920273000000009,51.249718000000144],[-78.890563999999927,51.390549000000021],[-78.888335999999981,51.396660000000111],[-78.883057000000008,51.401100000000099],[-78.832229999999981,51.438599000000011],[-78.779175000000009,51.474990999999989],[-78.82028200000002,51.513054000000068],[-78.823897999999986,51.517494000000056],[-78.826110999999969,51.522491000000002],[-78.824448000000018,51.541664000000083],[-78.820846999999958,51.554436000000067],[-78.80860899999999,51.576385000000016],[-78.791672000000005,51.603881999999942],[-78.796386999999925,51.608604000000014],[-78.859160999999972,51.634163000000058],[-78.944153000000028,51.670547000000056],[-79.03472899999997,51.764717000000132],[-79.035552999999993,51.770271000000093],[-79.033324999999877,51.776382000000012],[-79.029174999999952,51.781380000000013],[-79.008346999999958,51.795830000000137],[-78.995834000000002,51.801658999999972],[-78.985824999999977,51.801658999999972],[-78.976104999999905,51.799720999999977],[-78.961394999999868,51.794998000000021],[-78.944442999999865,51.790833000000021],[-78.918059999999969,51.79444100000012],[-78.910827999999981,51.796660999999972],[-78.903609999999958,51.799438000000009],[-78.879989999999964,51.811378000000104],[-78.851944000000003,51.828606000000036],[-78.846389999999985,51.832497000000103],[-78.836945000000014,51.841377000000136],[-78.833618000000001,51.845825000000104],[-78.832229999999981,51.852776000000063],[-78.834441999999967,51.857772999999952],[-78.841674999999952,51.866661000000136],[-78.846389999999985,51.870269999999948],[-78.858611999999937,51.876938000000109],[-78.86361699999992,51.880821000000083],[-78.89555399999989,51.926659000000029],[-78.896392999999932,51.932495000000074],[-78.894164999999987,51.93832400000008],[-78.881942999999922,51.944434999999999],[-78.860274999999888,51.951102999999932],[-78.851944000000003,51.95249200000012],[-78.810546999999929,51.958885000000066],[-78.769454999999994,51.966103000000089],[-78.747771999999998,51.973320000000001],[-78.736664000000019,51.979431000000091],[-78.695830999999998,52.008049000000085],[-78.579452999999944,52.111382000000106],[-78.537505999999951,52.180824000000143],[-78.501113999999973,52.255829000000006],[-78.524445000000014,52.311104000000114],[-78.516953000000001,52.367767000000072],[-78.507232999999985,52.454437000000041],[-78.506957999999997,52.460548000000074],[-78.545273000000009,52.514717000000132],[-78.564712999999983,52.530273000000079],[-78.577224999999999,52.536658999999986],[-78.585555999999997,52.538605000000075],[-78.59584000000001,52.538886999999988],[-78.654448999999943,52.54694400000011],[-78.684433000000013,52.551383999999985],[-78.763335999999981,52.564438000000052],[-78.761123999999938,52.570549000000085],[-78.755568999999923,52.574164999999994],[-78.721114999999998,52.586655000000121],[-78.691939999999931,52.596099999999979],[-78.713333000000034,52.628876000000105],[-78.753066999999874,52.683875999999941],[-78.790833000000021,52.737495000000138],[-78.796950999999979,52.773880000000077],[-78.765015000000005,52.777489000000116],[-78.731948999999986,52.783333000000084],[-78.724715999999944,52.785553000000107],[-78.722503999999901,52.791664000000026],[-78.725554999999986,52.819443000000035],[-78.738327000000027,52.872215000000097],[-78.794448999999986,52.861381999999935],[-78.856109999999887,52.877769000000114],[-78.880829000000006,52.896942000000024],[-78.881942999999922,52.90277100000003],[-78.87860099999989,52.908043000000134],[-78.864715999999987,52.963608000000079],[-78.915833000000021,53.000000000000057],[-78.923049999999932,53.068886000000077],[-78.888061999999934,53.224709000000132],[-78.894454999999994,53.259720000000073],[-78.895844000000011,53.26527400000009],[-78.942490000000021,53.384994999999947],[-78.949722000000008,53.399994000000049],[-78.991721999999925,53.434048000000018],[-78.994720000000029,53.436378000000047],[-79.004554999999925,53.439216999999928],[-79.009551999999928,53.438213000000019],[-79.044723999999974,53.439430000000016],[-79.053054999999972,53.438042000000053],[-79.063323999999966,53.439430000000016],[-79.068068999999923,53.443321000000083],[-79.090285999999992,53.470543000000021],[-79.093062999999972,53.474709000000075],[-79.107773000000009,53.497215000000097],[-79.110275000000001,53.502495000000124],[-79.103606999999954,53.513054000000011],[-79.084166999999979,53.522491000000116],[-79.054442999999935,53.531380000000013],[-79.035552999999993,53.53276800000009],[-79.012787000000003,53.531104999999968],[-79.031386999999995,53.529716000000008],[-79.038054999999986,53.526657],[-79.043334999999956,53.523048000000017],[-79.042495999999915,53.511108000000092],[-79.041381999999999,53.505554000000132],[-79.036391999999978,53.501663000000065],[-79.014838999999938,53.498940000000005],[-79.011002000000019,53.496937000000003],[-79.005675999999937,53.49577000000005],[-79.000678999999934,53.496609000000035],[-78.962783999999942,53.508888000000127],[-78.919158999999979,53.555267000000072],[-78.915833000000021,53.560547000000099],[-78.918335000000013,53.565544000000045],[-78.92193599999996,53.569992000000013],[-78.950561999999991,53.599716000000001],[-79.003341999999918,53.641663000000051],[-79.089721999999938,53.691658000000075],[-79.145003999999972,53.701660000000061],[-79.151397999999915,53.704994000000056],[-79.152221999999995,53.710548000000017],[-79.052490000000034,53.831939999999975],[-79.046951000000035,53.835548000000074],[-79.039444000000003,53.83776899999998],[-79.029723999999987,53.839157000000114],[-79.011123999999995,53.839989000000003],[-78.988891999999908,53.838882000000069],[-78.979995999999971,53.836104999999975],[-78.966109999999901,53.83027600000014],[-78.948333999999932,53.820831000000112],[-78.932770000000005,53.815543999999989],[-78.910827999999981,53.814437999999939],[-78.901397999999972,53.815268999999944],[-78.902221999999938,53.821380999999974],[-78.906386999999938,53.825272000000041],[-78.917769999999962,53.832214000000079],[-78.924164000000019,53.835548000000074],[-78.969727000000034,53.851387000000045],[-78.988891999999908,53.854713000000061],[-79.011948000000018,53.856658999999979],[-79.056655999999919,53.873046999999985],[-79.101104999999961,53.901657000000057],[-79.106110000000001,53.905548000000124],[-79.072509999999852,53.999161000000072],[-79.066956000000005,54.002777000000094],[-79.051102000000014,54.006660000000068],[-79.041381999999999,54.00777400000004],[-79.031676999999945,54.00777400000004],[-79.021392999999989,54.006386000000134],[-79.001098999999954,53.999992000000077],[-78.964950999999928,53.99716200000006],[-78.961623999999972,53.999992000000077],[-78.960280999999952,54.001389000000017],[-78.962783999999942,54.006386000000134],[-78.966659999999933,54.010826000000122],[-78.976669000000015,54.018326000000002],[-78.984160999999972,54.021659999999997],[-79.119445999999982,54.078605999999979],[-79.116393999999957,54.103050000000053],[-79.106383999999935,54.111382000000049],[-79.046386999999982,54.178329000000076],[-79.048889000000031,54.183327000000077],[-79.060546999999985,54.184158000000082],[-79.173324999999977,54.174995000000081],[-79.191665999999998,54.172768000000019],[-79.198043999999868,54.169716000000108],[-79.196944999999971,54.163605000000018],[-79.198333999999988,54.157210999999961],[-79.205840999999907,54.154990999999995],[-79.238051999999982,54.158882000000062],[-79.276397999999915,54.166939000000013],[-79.345276000000013,54.199432000000002],[-79.419998000000021,54.274437000000034],[-79.430557000000022,54.290275999999949],[-79.476669000000015,54.368599000000131],[-79.505004999999926,54.42582700000014],[-79.488051999999925,54.452217000000132],[-79.488051999999925,54.458603000000039],[-79.521392999999989,54.587212000000136],[-79.525283999999886,54.591377000000136],[-79.531677000000002,54.594711000000132],[-79.565552000000025,54.609993000000145],[-79.618880999999931,54.623878000000047],[-79.675551999999925,54.625824000000136],[-79.686110999999983,54.627212999999927],[-79.760833999999988,54.648048000000074],[-79.764449999999954,54.652214000000129],[-79.761123999999995,54.658325000000048],[-79.631667999999934,54.702773999999977],[-79.494155999999975,54.744713000000104],[-79.463622999999984,54.75360900000004],[-79.457229999999925,54.750275000000045],[-79.447494999999947,54.75110600000005],[-79.337783999999942,54.772491000000059],[-79.315826000000015,54.779991000000109],[-79.101104999999961,54.827216999999962],[-78.976669000000015,54.843048000000124],[-78.968886999999995,54.845267999999976],[-78.956664999999987,54.851936000000137],[-78.945540999999935,54.859436000000017],[-78.912505999999894,54.884163000000115],[-78.838608000000022,54.91443600000008],[-78.732773000000009,54.931107000000111],[-78.561110999999926,54.977767999999912],[-78.37388599999997,55.030273000000136],[-78.256118999999899,55.082214000000022],[-78.207672000000002,55.111655999999982],[-78.182220000000029,55.125267000000122],[-78.119445999999982,55.149994000000049],[-77.972778000000005,55.204994000000113],[-77.87249799999995,55.243606999999997],[-77.748610999999983,55.300827000000027],[-77.62222300000002,55.382766999999944],[-77.416655999999989,55.486107000000061],[-77.225829999999974,55.588326000000109],[-77.214721999999995,55.595267999999976],[-77.137221999999895,55.654160000000047],[-77.115279999999927,55.674164000000133],[-77.104720999999984,55.683876000000055],[-77.088332999999921,55.699432000000058],[-77.086120999999935,55.705551000000071],[-77.085555999999997,55.708046000000081],[-77.087783999999942,55.709716999999955],[-77.068343999999968,55.754715000000033],[-77.013061999999877,55.803046999999935],[-76.81138599999997,55.971100000000092],[-76.751953000000015,55.997771999999998],[-76.737503000000004,56.001663000000065],[-76.718886999999995,56.008048999999971],[-76.702498999999932,56.017494000000056],[-76.689162999999894,56.027489000000003],[-76.681945999999982,56.033882000000119],[-76.67721599999993,56.038605000000075],[-76.670836999999892,56.045830000000137],[-76.658050999999944,56.060821999999973],[-76.650833000000034,56.071938000000102],[-76.626662999999951,56.118049999999982],[-76.538329999999974,56.297775000000115],[-76.532227000000034,56.315269000000001],[-76.531112999999948,56.322220000000129],[-76.518889999999999,56.406097000000102],[-76.517501999999979,56.423325000000034],[-76.517501999999979,56.43582200000003],[-76.519164999999987,56.464714000000072],[-76.525832999999977,56.492767000000072],[-76.527221999999995,56.503052000000139],[-76.526397999999915,56.605827000000033],[-76.506957999999941,56.710823000000005],[-76.505004999999983,56.733879000000002],[-76.504455999999948,56.771934999999985],[-76.505568999999923,56.784995999999921],[-76.505279999999914,56.791382000000056],[-76.505568999999923,56.803047000000106],[-76.509445000000028,56.819717000000026],[-76.530838000000017,56.90665400000006],[-76.554442999999992,57.005828999999949],[-76.554717999999923,57.010826000000066],[-76.555832000000009,57.034996000000092],[-76.553329000000019,57.053322000000094],[-76.549164000000019,57.06221000000005],[-76.545272999999952,57.068885999999964],[-76.535552999999993,57.077773999999977],[-76.531112999999948,57.087211999999965],[-76.529175000000009,57.09665700000005],[-76.529723999999874,57.10582700000009],[-76.564437999999996,57.207214000000079],[-76.591384999999946,57.274436999999978],[-76.599990999999932,57.293610000000058],[-76.604445999999882,57.302773000000059],[-76.653060999999923,57.401382000000012],[-76.65834000000001,57.406653999999946],[-76.688048999999978,57.430550000000039],[-76.732223999999917,57.490273000000059],[-76.740829000000019,57.503326000000072],[-76.81138599999997,57.624710000000107],[-76.809433000000013,57.634720000000016],[-76.807770000000005,57.641662999999994],[-76.805557000000022,57.647774000000084],[-76.861937999999952,57.71915400000006],[-76.923049999999989,57.786110000000065],[-77.147231999999974,58.022765999999933],[-77.246658000000025,58.07388300000008],[-77.279723999999987,58.084435000000042],[-77.317504999999983,58.091934000000037],[-77.34944200000001,58.101936000000023],[-77.444442999999978,58.152489000000003],[-77.451110999999969,58.171379000000115],[-77.446655000000021,58.173882000000106],[-77.441100999999946,58.182770000000062],[-77.444152999999972,58.187767000000008],[-77.454453000000001,58.196381000000031],[-77.467223999999987,58.203323000000125],[-77.487777999999935,58.212769000000094],[-77.571670999999981,58.248047000000099],[-77.645843999999954,58.278603000000032],[-77.81527699999998,58.327217000000019],[-77.851944000000003,58.334991000000002],[-77.883895999999993,58.339989000000003],[-77.914443999999946,58.345543000000021],[-77.939163000000008,58.35305000000011],[-77.955276000000026,58.358604000000128],[-78.012512000000015,58.378601000000003],[-78.024445000000014,58.384163000000115],[-78.02806099999998,58.386940000000038],[-78.031386999999938,58.391380000000026],[-78.062682999999993,58.417309000000103],[-78.130553999999961,58.462769000000037],[-78.355559999999969,58.601661999999976],[-78.397231999999917,58.620827000000133],[-78.419998000000021,58.62721300000004],[-78.425277999999992,58.626099000000067],[-78.428329000000019,58.623604000000057],[-78.427779999999984,58.611107000000061],[-78.426101999999958,58.606102000000021],[-78.347778000000005,58.536659000000043],[-78.389724999999885,58.544716000000051],[-78.549163999999905,58.603881999999999],[-78.563889000000017,58.609993000000088],[-78.568618999999956,58.614441000000056],[-78.573897999999929,58.630547000000035],[-78.574722000000008,58.635269000000108],[-78.570006999999976,58.673050000000103],[-78.563889000000017,58.676940999999999],[-78.555831999999953,58.677773000000059],[-78.543883999999991,58.678046999999992],[-78.514724999999942,58.67943600000001],[-78.469727000000034,58.695541000000105],[-78.467223999999987,58.701660000000118],[-78.48832699999997,58.786385000000053],[-78.50556899999998,58.835266000000104],[-78.511672999999917,58.839157],[-78.516402999999968,58.843323000000055],[-78.538605000000018,58.886940000000095],[-78.571395999999879,58.957214000000079],[-78.570557000000008,58.961380000000133],[-78.561935000000005,58.965828000000101],[-78.552215999999987,58.968048000000124],[-78.396392999999932,58.964714000000129],[-78.361663999999962,58.958603000000039],[-78.352492999999924,58.956657000000007],[-78.346389999999985,58.953605999999979],[-78.344451999999876,58.949432000000115],[-78.344726999999978,58.946655000000021],[-78.345276000000013,58.944710000000043],[-78.348342999999943,58.942214999999976],[-78.366394000000014,58.920273000000122],[-78.363892000000021,58.912490999999989],[-78.357773000000009,58.910270999999966],[-78.345839999999953,58.909714000000065],[-78.338333000000034,58.912766000000033],[-78.310821999999973,58.927216000000101],[-78.304717999999923,58.931106999999997],[-78.205565999999976,59.050545000000113],[-78.127486999999974,59.108330000000024],[-78.08666999999997,59.156654000000003],[-78.093886999999995,59.193047000000035],[-78.098617999999988,59.196655000000135],[-78.101943999999946,59.200828999999999],[-78.103881999999999,59.205826000000116],[-78.092772999999909,59.214995999999985],[-77.961120999999935,59.258331000000112],[-77.949721999999952,59.261939999999925],[-77.930283000000031,59.26527399999992],[-77.884445000000028,59.271935000000042],[-77.860000999999954,59.272217000000126],[-77.843613000000005,59.275551000000121],[-77.828887999999949,59.281105000000082],[-77.824448000000018,59.283606999999961],[-77.68499799999995,59.393326000000116],[-77.677215999999987,59.399994000000106],[-77.678328999999962,59.401932000000045],[-77.779175000000009,59.426102000000014],[-77.787216000000001,59.426658999999916],[-77.798049999999989,59.426384000000098],[-77.831389999999942,59.414711000000068],[-77.880279999999914,59.39916199999999],[-77.887512000000015,59.397491000000116],[-77.896956999999986,59.397217000000012],[-77.902221999999995,59.398880000000077],[-77.905838000000017,59.401100000000099],[-77.910277999999948,59.405548000000067],[-77.912506000000008,59.415267999999969],[-77.910552999999879,59.425551999999982],[-77.872771999999998,59.491935999999953],[-77.867492999999911,59.5],[-77.86111499999987,59.503883000000087],[-77.84056099999998,59.513054000000068],[-77.798889000000031,59.524993999999992],[-77.779175000000009,59.52887700000008],[-77.769454999999937,59.529160000000047],[-77.749999999999886,59.532211000000075],[-77.721389999999928,59.539719000000105],[-77.724716000000001,59.593880000000013],[-77.755004999999926,59.628326000000072],[-77.762786999999889,59.631378000000041],[-77.767501999999922,59.634994999999947],[-77.797774999999945,59.670272999999952],[-77.801102000000014,59.675270000000069],[-77.798614999999927,59.679993000000081],[-77.773894999999982,59.709717000000069],[-77.761672999999973,59.709991000000002],[-77.731948999999986,59.70777099999998],[-77.710555999999883,59.704712000000029],[-77.585228000000029,59.66921200000013],[-77.53988599999991,59.653381000000138],[-77.535392999999942,59.651379000000077],[-77.524390999999923,59.644714000000135],[-77.518889999999885,59.639381000000128],[-77.513229000000024,59.630546999999979],[-77.513725000000022,59.620215999999971],[-77.514893000000029,59.614044000000035],[-77.464721999999995,59.587212000000022],[-77.460006999999962,59.582771000000093],[-77.454177999999956,59.579162999999994],[-77.444992000000013,59.576385000000016],[-77.426940999999943,59.571381000000031],[-77.353607000000011,59.563605999999936],[-77.322509999999909,59.562767000000008],[-77.313889000000017,59.564995000000124],[-77.311935000000005,59.566939999999931],[-77.316956000000005,59.56999200000007],[-77.344161999999983,59.576942000000088],[-77.427994000000012,59.619049000000075],[-77.433334000000002,59.620543999999938],[-77.441665999999998,59.624717999999973],[-77.502335000000016,59.678215000000023],[-77.542496000000028,59.747490000000084],[-77.541945999999996,59.750274999999931],[-77.533065999999963,59.754714999999976],[-77.432769999999948,59.784163999999976],[-77.412780999999939,59.787773000000129],[-77.389449999999954,59.788886999999932],[-77.333618000000001,59.78527100000008],[-77.311660999999958,59.785552999999936],[-77.30471799999998,59.787216000000058],[-77.298889000000031,59.789719000000048],[-77.293609999999887,59.793610000000115],[-77.296111999999937,59.801933000000076],[-77.301392000000021,59.811104],[-77.363616999999863,59.890830999999991],[-77.368056999999965,59.894714000000079],[-77.378051999999968,59.901382000000069],[-77.385559000000001,59.904433999999981],[-77.427489999999977,59.914710999999954],[-77.206954999999994,60.042770000000019],[-77.070006999999919,60.064156000000082],[-76.848052999999936,60.099159000000043],[-76.775833000000034,60.131659999999954],[-76.770843999999954,60.136383000000137],[-76.758895999999993,60.159157000000107],[-76.808608999999933,60.159714000000008],[-76.828339000000028,60.157493999999986],[-76.846114999999998,60.152214000000129],[-76.852492999999981,60.148330999999985],[-76.857772999999952,60.143883000000017],[-76.860549999999932,60.137771999999984],[-76.857498000000021,60.132767000000115],[-76.854172000000005,60.121658000000025],[-76.85943599999996,60.116936000000123],[-76.866942999999992,60.113883999999985],[-76.889724999999999,60.112495000000024],[-76.924437999999896,60.111664000000019],[-76.950561999999934,60.112213000000111],[-76.962783999999999,60.113608999999997],[-77.00389100000001,60.121933000000013],[-77.031386999999881,60.129714999999976],[-77.055556999999965,60.138602999999989],[-77.074172999999973,60.142769000000044],[-77.111938000000009,60.146942000000024],[-77.173888999999974,60.150268999999923],[-77.187499999999943,60.150826000000052],[-77.199996999999939,60.150826000000052],[-77.199722000000008,60.145270999999923],[-77.194716999999969,60.129158000000075],[-77.232498000000021,60.053879000000109],[-77.272781000000009,60.039993000000095],[-77.315825999999959,60.030548000000067],[-77.519164999999987,60.044159000000036],[-77.540282999999988,60.048050000000103],[-77.557219999999973,60.052773000000059],[-77.592223999999987,60.064156000000082],[-77.600280999999939,60.108604000000128],[-77.595275999999899,60.112495000000024],[-77.581680000000006,60.118881000000101],[-77.558043999999938,60.126656000000025],[-77.549164000000019,60.129158000000075],[-77.496947999999918,60.156097000000045],[-77.470276000000013,60.213325999999995],[-77.473617999999931,60.216934000000094],[-77.602782999999931,60.329994000000056],[-77.639724999999942,60.362213000000054],[-77.647506999999905,60.365273000000116],[-77.658339999999953,60.368050000000039],[-77.683060000000012,60.367767000000072],[-77.692489999999964,60.369438000000116],[-77.708344000000011,60.375824000000023],[-77.743606999999997,60.393326000000059],[-77.747222999999963,60.396942000000138],[-77.747756999999922,60.408134000000132],[-77.740829000000019,60.423607000000004],[-77.736937999999952,60.428879000000109],[-77.71945199999999,60.447211999999979],[-77.691939999999931,60.466660000000104],[-77.567504999999926,60.529716000000008],[-77.479995999999915,60.54055000000011],[-77.430832000000009,60.540275999999949],[-77.419723999999917,60.541107000000011],[-77.413329999999974,60.544159000000093],[-77.436385999999914,60.554436000000067],[-77.464447000000007,60.561935000000062],[-77.486114999999927,60.56638300000003],[-77.521666999999979,60.570274000000097],[-77.549438000000009,60.571381000000031],[-77.573623999999938,60.570549000000085],[-77.598617999999931,60.563606000000107],[-77.631942999999978,60.551933000000076],[-77.640563999999983,60.550270000000012],[-77.65055799999999,60.548882000000049],[-77.670273000000009,60.549721000000034],[-77.680831999999953,60.552216000000044],[-77.704453000000001,60.561661000000129],[-77.787216000000001,60.59665700000005],[-77.829453000000001,60.633605999999929],[-77.833892999999932,60.639434999999992],[-77.831679999999949,60.644714000000135],[-77.821670999999867,60.651931999999931],[-77.775832999999977,60.671104000000128],[-77.722504000000015,60.69193300000012],[-77.716399999999965,60.694434999999999],[-77.610001000000011,60.755554000000075],[-77.515839000000028,60.830551000000014],[-77.512512000000015,60.833602999999925],[-77.511672999999973,60.83638000000002],[-77.53195199999999,60.835266000000047],[-77.571670999999981,60.828330999999991],[-77.708054000000004,60.795547000000113],[-77.856383999999935,60.764442000000088],[-77.920546999999999,60.791382000000112],[-77.903885000000002,60.812492000000077],[-77.889998999999989,60.818886000000134],[-77.883330999999941,60.823325999999952],[-77.887222000000008,60.825829000000113],[-77.896392999999875,60.828049000000135],[-77.909163999999976,60.82888000000014],[-77.975280999999939,60.822769000000051],[-78.078612999999905,60.806099000000131],[-78.116942999999992,60.798050000000103],[-78.125823999999966,60.795547000000113],[-78.172500999999954,60.787216000000058],[-78.17971799999998,60.786942000000124],[-78.18638599999997,60.788047999999947],[-78.190552000000025,60.788887000000102],[-78.192764000000011,60.790833000000021],[-78.171660999999915,60.854713000000061],[-78.15943900000002,60.867210000000057],[-77.954726999999991,61.000831999999946],[-77.925551999999925,61.01888300000013],[-77.889175000000023,61.038048000000117],[-77.873610999999926,61.045547000000056],[-77.858046999999942,61.051101999999958],[-77.853881999999942,61.052215999999987],[-77.846664000000033,61.052490000000091],[-77.701675000000023,61.217491000000109],[-77.724441999999954,61.254439999999988],[-77.739990000000034,61.298607000000061],[-77.746658000000025,61.337494000000106],[-77.761123999999938,61.410271000000023],[-77.678878999999995,61.461104999999975],[-77.620834000000002,61.462493999999992],[-77.56361400000003,61.466660000000047],[-77.560546999999929,61.468047999999953],[-77.542496000000028,61.479430999999977],[-77.543335000000013,61.483047000000056],[-77.548339999999939,61.486107000000118],[-77.613892000000021,61.504166000000055],[-77.596114999999941,61.555824000000143],[-77.572784000000013,61.549995000000138],[-77.517226999999934,61.539719000000048],[-77.478607000000011,61.536385000000053],[-77.475005999999951,61.539161999999976],[-77.474715999999944,61.541664000000026],[-77.480285999999921,61.548882000000049],[-77.581389999999999,61.600548000000117],[-77.589171999999962,61.604439000000013],[-77.616500999999971,61.606327000000078],[-77.627997999999991,61.605995000000121],[-77.667496000000028,61.603049999999996],[-77.690825999999959,61.602218999999991],[-77.702498999999989,61.602776000000063],[-77.710555999999883,61.60582700000009],[-77.744155999999975,61.64027400000009],[-77.816665999999998,61.684989999999914],[-77.884445000000028,61.68582200000003],[-77.898894999999925,61.686378000000047],[-77.931380999999931,61.69193300000012],[-77.975829999999974,61.702774000000034],[-77.982223999999974,61.70665699999995],[-77.992492999999968,61.714714000000129],[-78.00306699999993,61.728325000000098],[-78.006119000000012,61.733046999999999],[-78.011947999999961,61.748604000000057],[-78.074447999999904,61.917213000000004],[-78.077498999999989,61.940544000000045],[-78.081389999999999,61.951103000000103],[-78.091675000000009,61.965271000000143],[-78.110001000000011,61.984161000000086],[-78.120269999999948,61.99193600000001],[-78.137787000000003,62.009163000000001],[-78.141387999999949,62.020546000000024],[-78.143616000000009,62.03138000000007],[-78.15943900000002,62.149994000000049],[-78.161666999999966,62.169159000000036],[-78.157776000000013,62.267494000000056],[-78.15583799999996,62.278328000000101],[-78.149733999999967,62.287216000000114],[-78.103058000000033,62.337494000000049],[-78.085007000000019,62.353325000000041],[-78.023894999999982,62.393326000000059],[-78.016402999999968,62.39388300000013],[-78.008056999999894,62.390549000000135],[-77.996657999999968,62.388046000000145],[-77.983063000000016,62.388329000000113],[-77.96305799999999,62.392768999999987],[-77.711394999999925,62.468048000000124],[-77.687209999999993,62.476654000000053],[-77.555556999999965,62.536110000000008],[-77.535278000000005,62.54694400000011],[-77.508347000000015,62.561661000000072],[-77.354996000000028,62.558044000000109],[-77.073623999999938,62.534163999999976],[-76.92582699999997,62.526382000000012],[-76.756957999999997,62.506943000000092],[-76.746947999999975,62.504997000000003],[-76.655562999999972,62.469986000000063],[-76.498610999999869,62.44110100000006],[-76.401947000000007,62.427490000000091],[-76.317779999999914,62.412209000000132],[-76.143065999999919,62.379158000000018],[-75.709732000000031,62.296387000000038],[-75.719214999999963,62.242493000000024],[-75.739562999999919,62.236160000000041],[-75.819884999999999,62.205657999999971],[-75.878875999999991,62.168602000000135],[-75.891113000000018,62.161933999999974],[-75.895003999999915,62.158599999999979],[-75.890839000000028,62.156937000000084],[-75.835830999999985,62.158043000000077],[-75.826949999999954,62.158882000000062],[-75.772399999999948,62.177215999999987],[-75.770720999999924,62.180049999999994],[-75.765052999999909,62.184718999999973],[-75.760887000000025,62.187050000000113],[-75.756057999999882,62.188713000000007],[-75.705062999999996,62.203216999999995],[-75.656882999999993,62.216544999999996],[-75.579177999999899,62.242218000000037],[-75.573897999999929,62.244155999999975],[-75.556945999999925,62.252777000000037],[-75.552779999999927,62.256660000000011],[-75.550277999999935,62.260826000000066],[-75.539443999999889,62.268326000000002],[-75.493606999999997,62.293326999999977],[-75.486937999999952,62.296387000000038],[-75.478881999999999,62.298607000000061],[-75.472777999999948,62.299438000000066],[-75.402221999999938,62.306381000000044],[-75.356383999999991,62.310546999999985],[-75.321945000000028,62.311104000000057],[-75.307495000000017,62.310271999999941],[-75.184432999999956,62.292220999999984],[-75.015563999999983,62.264999000000046],[-75,62.262245000000064],[-74.938323999999909,62.250274999999988],[-74.918610000000001,62.245544000000052],[-74.89805599999994,62.240273000000002],[-74.889998999999989,62.237495000000024],[-74.882216999999912,62.233604000000128],[-74.873885999999857,62.226097000000038],[-74.767226999999878,62.161102000000085],[-74.700835999999867,62.131104000000107],[-74.693054000000018,62.127769000000058],[-74.668883999999991,62.119156000000089],[-74.620833999999888,62.107215999999994],[-74.598052999999936,62.104164000000083],[-74.571670999999981,62.10305000000011],[-74.556380999999988,62.104713000000004],[-74.553054999999972,62.106102000000021],[-74.553878999999995,62.108046999999999],[-74.558608999999876,62.111938000000066],[-74.618880999999931,62.132492000000013],[-74.662216000000001,62.146660000000054],[-74.686110999999983,62.155823000000055],[-74.700287000000003,62.16276600000009],[-74.75111400000003,62.19110100000006],[-74.758895999999993,62.199158000000068],[-74.759734999999921,62.20138500000013],[-74.759734999999921,62.20638300000013],[-74.756393000000003,62.212212000000136],[-74.725829999999917,62.244995000000131],[-74.717498999999918,62.247771999999998],[-74.700287000000003,62.250832000000059],[-74.678328999999962,62.253608999999983],[-74.645844000000011,62.253608999999983],[-74.579453000000001,62.251938000000109],[-74.525833000000034,62.246940999999993],[-74.473617999999931,62.24332400000003],[-74.461394999999982,62.243880999999931],[-74.428878999999938,62.247771999999998],[-74.410004000000015,62.251389000000131],[-74.383895999999936,62.2586060000001],[-74.141677999999956,62.326660000000004],[-73.981383999999991,62.377769000000001],[-73.97444200000001,62.386108000000036],[-73.969727000000034,62.390830999999991],[-73.94027699999998,62.412209000000132],[-73.888901000000033,62.440543999999932],[-73.83805799999999,62.457497000000046],[-73.688048999999978,62.479988000000048],[-73.678878999999995,62.479988000000048],[-73.65972899999997,62.475265999999976],[-73.648345999999947,62.468322999999998],[-73.642501999999922,62.463608000000136],[-73.502791999999999,62.386658000000068],[-73.369995000000017,62.363609000000054],[-73.227218999999877,62.318054000000075],[-73.211394999999925,62.312767000000008],[-73.206664999999987,62.308884000000035],[-73.204178000000013,62.303878999999995],[-73.202788999999996,62.298882000000106],[-73.207229999999925,62.285828000000038],[-73.210280999999952,62.281936999999971],[-73.210830999999985,62.275826000000052],[-73.209732000000031,62.270828000000051],[-73.204178000000013,62.261382999999967],[-73.191939999999875,62.253608999999983],[-73.178054999999972,62.246101000000124],[-73.131942999999978,62.225266000000033],[-73.070006999999976,62.197487000000024],[-72.899445000000014,62.138328999999999],[-72.723891999999921,62.142220000000066],[-72.626663000000008,62.115547000000049],[-72.61721799999998,62.108604000000071],[-72.596114999999884,62.049164000000019],[-72.618713000000014,61.974212999999963],[-72.619888000000003,61.970878999999968],[-72.665717999999913,61.928382999999997],[-72.689986999999917,61.891936999999984],[-72.748610999999983,61.856384000000105],[-72.724716000000001,61.845267999999976],[-72.612503000000004,61.804993000000081],[-72.602782999999931,61.804160999999965],[-72.596114999999884,61.805549999999982],[-72.591674999999952,61.809989999999971],[-72.587783999999886,61.82027400000004],[-72.622771999999941,61.861382000000106],[-72.628875999999991,61.873047000000042],[-72.609557999999993,61.88771400000013],[-72.610893000000033,61.893714999999986],[-72.611397000000011,61.900047000000086],[-72.610222000000022,61.905380000000093],[-72.607551999999998,61.910049000000015],[-72.597548999999958,61.920211999999992],[-72.593886999999995,61.92321400000003],[-72.587226999999984,61.924376999999993],[-72.581222999999966,61.923378000000127],[-72.519729999999925,61.920546999999999],[-72.448607999999979,61.901382000000012],[-72.396666999999923,61.889435000000049],[-72.386948000000018,61.887771999999984],[-72.345551,61.884437999999989],[-72.321945000000028,61.883881000000088],[-72.256957999999997,61.876938000000109],[-72.235001000000011,61.872215000000097],[-72.205840999999964,61.86332700000014],[-72.200835999999924,61.860275000000001],[-72.041381999999999,61.722488000000112],[-72.01005600000002,61.675270000000012],[-72.038054999999986,61.624709999999993],[-72.080565999999976,61.601936000000023],[-72.087783999999999,61.598877000000073],[-72.095839999999953,61.596099999999979],[-72.113892000000021,61.595543000000077],[-72.12388599999997,61.596382000000006],[-72.160004000000015,61.605270000000019],[-72.194153000000028,61.615829000000076],[-72.227492999999981,61.619987000000037],[-72.236663999999962,61.619438000000059],[-72.254456000000005,61.615546999999992],[-72.271118000000001,61.609161000000086],[-72.303328999999906,61.570830999999998],[-72.303878999999938,61.568885999999964],[-72.303328999999906,61.56721500000009],[-72.083618000000001,61.582496999999933],[-72.057220000000029,61.586655000000064],[-71.980285999999978,61.599998000000085],[-71.978333000000021,61.601387000000102],[-71.967772999999966,61.609436000000073],[-71.940825999999959,61.648331000000042],[-71.936660999999958,61.65554800000001],[-71.933608999999933,61.663605000000132],[-71.933060000000012,61.668602000000078],[-71.933884000000035,61.674164000000019],[-71.936660999999958,61.677773000000002],[-71.941375999999991,61.681106999999997],[-71.946884000000011,61.688380999999993],[-71.950385999999867,61.688713000000121],[-71.953888000000006,61.690716000000123],[-71.956557999999916,61.693047000000092],[-71.956885999999884,61.694213999999988],[-71.956054999999935,61.698883000000137],[-71.950546000000031,61.701218000000097],[-71.948883000000023,61.701549999999997],[-71.945221000000004,61.701714000000095],[-71.928878999999995,61.705826000000116],[-71.819457999999941,61.688599000000124],[-71.795273000000009,61.682213000000047],[-71.644729999999925,61.639435000000105],[-71.575011999999901,61.608604000000014],[-71.571670999999867,61.605552999999986],[-71.545546999999999,61.571938000000102],[-71.546111999999937,61.566940000000102],[-71.549437999999896,61.558884000000035],[-71.560271999999941,61.557212999999933],[-71.629714999999976,61.548607000000061],[-71.635009999999966,61.545830000000137],[-71.652221999999995,61.543053000000043],[-71.663054999999929,61.54193900000007],[-71.751113999999973,61.538048000000003],[-71.789444000000003,61.521934999999928],[-71.746384000000035,61.47137500000008],[-71.746947999999975,61.465827999999988],[-71.802779999999984,61.446938000000046],[-71.817504999999983,61.442764000000011],[-71.875548999999921,61.436103999999943],[-71.885558999999944,61.432769999999948],[-71.887787000000003,61.430824000000086],[-71.887511999999958,61.428046999999992],[-71.879439999999988,61.422492999999974],[-71.873046999999929,61.419716000000108],[-71.853333000000021,61.414436000000023],[-71.700561999999991,61.405823000000055],[-71.684722999999963,61.404990999999939],[-71.676101999999958,61.37221500000004],[-71.67193599999996,61.330551000000128],[-71.598891999999978,61.254166000000055],[-71.53083799999996,61.213608000000022],[-71.389998999999989,61.137772000000098],[-71.295836999999892,61.148605000000089],[-71.286666999999909,61.149719000000061],[-71.279175000000009,61.151100000000099],[-71.174712999999997,61.13999200000012],[-71.011397999999986,61.121657999999968],[-70.966948999999943,61.113883999999985],[-70.945830999999941,61.108887000000095],[-70.928329000000019,61.102493000000038],[-70.921936000000017,61.09693900000002],[-70.921386999999982,61.09137700000008],[-70.773330999999985,61.08166499999993],[-70.656386999999995,61.050545000000056],[-70.553054999999972,61.024994000000049],[-70.539718999999991,61.055824000000086],[-70.535278000000005,61.05943300000007],[-70.419998000000021,61.08526599999999],[-70.41361999999998,61.086655000000007],[-70.315551999999911,61.094994000000042],[-70.165008999999998,61.088043000000084],[-70.146117999999888,61.084717000000069],[-70.141387999999949,61.08277099999998],[-70.107223999999917,61.064438000000109],[-70.085830999999985,60.954993999999999],[-70.088057999999876,60.89777400000014],[-69.927490000000034,60.807770000000005],[-69.914444000000003,60.80860100000001],[-69.901107999999965,60.81221000000005],[-69.888061999999934,60.819160000000068],[-69.856383999999991,60.838326000000109],[-69.850554999999986,60.841934000000037],[-69.84973100000002,60.846656999999993],[-69.851395000000025,60.849716000000001],[-69.858886999999982,60.851936000000023],[-69.869445999999925,60.850829999999974],[-69.883620999999948,60.845268000000033],[-69.894729999999925,60.855552999999929],[-69.833327999999995,60.889992000000007],[-69.826110999999969,60.893326000000002],[-69.778885000000002,60.91137700000013],[-69.756957999999941,60.918884000000105],[-69.750838999999928,60.919715999999994],[-69.741104000000007,60.9180530000001],[-69.738051999999925,60.915543000000071],[-69.743332000000009,60.906936999999971],[-69.75140399999998,60.898879999999963],[-69.750564999999995,60.894440000000145],[-69.74610899999999,60.884720000000073],[-69.740554999999972,60.881377999999927],[-69.71055599999994,60.873878000000047],[-69.688599000000011,60.871658000000025],[-69.677215999999987,60.871101000000124],[-69.658614999999998,60.876938000000109],[-69.649993999999879,60.8836060000001],[-69.645843999999954,60.893051000000128],[-69.643889999999942,60.903320000000008],[-69.649169999999913,60.913879000000065],[-69.655563000000029,60.9222180000001],[-69.671660999999915,60.934433000000013],[-69.680831999999953,60.943047000000035],[-69.688599000000011,60.951660000000004],[-69.689437999999882,60.956100000000049],[-69.689712999999983,60.96166199999999],[-69.680557000000022,61.014159999999947],[-69.679442999999935,61.019440000000031],[-69.676665999999955,61.025551000000121],[-69.656661999999926,61.053604000000064],[-69.653884999999946,61.056938000000059],[-69.613051999999925,61.079163000000051],[-69.599990999999989,61.081940000000145],[-69.554168999999945,61.080550999999957],[-69.528609999999958,61.076385000000073],[-69.519729999999925,61.073326000000122],[-69.514450000000011,61.069442999999978],[-69.511397999999929,61.06610100000006],[-69.508347000000015,61.060822000000087],[-69.492767000000015,61.031937000000028],[-69.468886999999995,60.994995000000017],[-69.465285999999935,60.990273000000116],[-69.453613000000018,60.974991000000045],[-69.368057000000022,60.903046000000074],[-69.368606999999997,60.811104],[-69.371933000000013,60.80443600000001],[-69.380554000000018,60.794716000000108],[-69.386672999999973,60.790550000000053],[-69.404448999999943,60.783332999999914],[-69.421386999999925,60.778046000000018],[-69.438598999999954,60.774994000000049],[-69.496657999999968,60.764442000000088],[-69.533065999999963,60.757217000000026],[-69.591675000000009,60.739158999999972],[-69.615829000000019,60.730270000000075],[-69.708618000000001,60.686935000000119],[-69.716109999999958,60.682770000000119],[-69.71055599999994,60.675270000000069],[-69.705001999999979,60.671936000000073],[-69.695830999999998,60.663879000000065],[-69.656386999999995,60.595543000000077],[-69.654174999999952,60.584991000000116],[-69.654174999999952,60.581383000000017],[-69.656951999999933,60.574715000000026],[-69.6875,60.551383999999985],[-69.693603999999937,60.54694400000011],[-69.702224999999885,60.544440999999949],[-69.748610999999983,60.539719000000048],[-69.797774999999945,60.53443900000002],[-69.813888999999904,60.530548000000124],[-69.822234999999978,60.52777100000003],[-69.826110999999969,60.525551000000007],[-69.824448000000018,60.522490999999945],[-69.787506000000008,60.480545000000006],[-69.78443900000002,60.478043000000071],[-69.778335999999967,60.475266000000033],[-69.762222000000008,60.470268000000033],[-69.74888599999997,60.461662000000103],[-69.721664000000033,60.368881000000044],[-69.722504000000015,60.364158999999972],[-69.727782999999988,60.35193600000008],[-69.744445999999982,60.340546000000018],[-69.751953000000015,60.336380000000133],[-69.756667999999934,60.331940000000145],[-69.764724999999999,60.323607999999979],[-69.766952999999944,60.318328999999949],[-69.768065999999862,60.312210000000107],[-69.764724999999999,60.307495000000074],[-69.758895999999993,60.304710000000057],[-69.696380999999974,60.278877000000136],[-69.606383999999991,60.232765000000029],[-69.605269999999905,60.2227630000001],[-69.605835000000013,60.218596999999988],[-69.610001000000011,60.208327999999995],[-69.614166000000012,60.202492000000063],[-69.636977999999999,60.179047000000025],[-69.601943999999946,60.183052000000089],[-69.594161999999983,60.180824000000143],[-69.593886999999995,60.175827000000027],[-69.603606999999954,60.10305000000011],[-69.624709999999993,60.067497000000117],[-69.636948000000018,60.065268999999944],[-69.706664999999987,60.057495000000131],[-69.837218999999948,60.019713999999965],[-69.892226999999934,59.99971800000003],[-70.217223999999931,60.007216999999969],[-70.296393999999907,60.011196000000041],[-70.336120999999935,60.004440000000102],[-70.488051999999868,59.993607000000111],[-70.505004999999926,59.992493000000138],[-70.53472899999997,59.991936000000067],[-70.556945999999925,59.992767000000072],[-70.579726999999934,59.994712999999933],[-70.593062999999972,59.996658000000139],[-70.770844000000011,60.028046000000131],[-70.945830999999941,60.063048999999978],[-70.900283999999999,60.040276000000063],[-70.631103999999993,59.985824999999977],[-70.610549999999932,59.980820000000108],[-70.585007000000019,59.971931000000041],[-70.566955999999948,59.968597000000045],[-70.507232999999985,59.96665999999999],[-70.475829999999974,59.968323000000112],[-70.33805799999999,59.976379000000009],[-70.236938000000009,59.986938000000066],[-70.227218999999934,59.986655999999982],[-70.218613000000005,59.984160999999972],[-70.197495000000004,59.974158999999986],[-70.164718999999991,59.962494000000106],[-70.112503000000004,59.949715000000026],[-70.086120999999991,59.946381000000088],[-70.06138599999997,59.94499200000007],[-70.049987999999871,59.945267000000058],[-70.030837999999903,59.948043999999982],[-69.947768999999994,59.958885000000123],[-69.758895999999993,59.96776600000004],[-69.726944000000003,59.963608000000079],[-69.718886999999938,59.959717000000012],[-69.600554999999872,59.833054000000004],[-69.605559999999912,59.777214000000129],[-69.610001000000011,59.728600000000142],[-69.540833000000021,59.671104000000014],[-69.604995999999971,59.588325999999995],[-69.61332699999997,59.588325999999995],[-69.62777699999998,59.583878000000027],[-69.658889999999985,59.572495000000004],[-69.679442999999935,59.563605999999936],[-69.698043999999982,59.553047000000106],[-69.718613000000005,59.537773000000016],[-69.729720999999927,59.52777100000003],[-69.748336999999935,59.50999500000006],[-69.759445000000028,59.493880999999988],[-69.761123999999938,59.484161000000086],[-69.759445000000028,59.481102000000078],[-69.756393000000003,59.478600000000029],[-69.728333000000021,59.479713000000118],[-69.703888000000006,59.481934000000024],[-69.698607999999922,59.481377000000123],[-69.697495000000004,59.480545000000006],[-69.669448999999929,59.455551000000014],[-69.665832999999964,59.451659999999947],[-69.649445000000014,59.428879000000109],[-69.645279000000016,59.419159000000036],[-69.631667999999877,59.377769000000058],[-69.631377999999927,59.374992000000134],[-69.639998999999875,59.361107000000061],[-69.646392999999989,59.358887000000038],[-69.677779999999927,59.356941000000006],[-69.736664000000019,59.345267999999976],[-69.744155999999975,59.343322999999998],[-69.75778200000002,59.330826000000002],[-69.758347000000015,59.320273999999984],[-69.75111400000003,59.311104000000114],[-69.746947999999861,59.307770000000119],[-69.738601999999958,59.305266999999958],[-69.645003999999915,59.29833200000013],[-69.631103999999993,59.298881999999992],[-69.626663000000008,59.29972100000009],[-69.616393999999957,59.304436000000123],[-69.550277999999992,59.329720000000123],[-69.445830999999998,59.35443900000007],[-69.43582200000003,59.3555530000001],[-69.412506000000008,59.354995999999971],[-69.259445000000028,59.326660000000061],[-69.249724999999955,59.323607999999979],[-69.238327000000027,59.259720000000129],[-69.235001000000011,59.23943300000002],[-69.234725999999966,59.233879000000059],[-69.238051999999925,59.229431000000091],[-69.244445999999982,59.224433999999974],[-69.285827999999924,59.208327999999995],[-69.366394000000014,59.190826000000129],[-69.37388599999997,59.189430000000073],[-69.404998999999975,59.190269000000058],[-69.419158999999979,59.192490000000134],[-69.420272999999952,59.196098000000063],[-69.417496000000028,59.202217000000076],[-69.414443999999946,59.212494000000049],[-69.416655999999989,59.219711000000018],[-69.420837000000006,59.223045000000013],[-69.429717999999923,59.224709000000018],[-69.439437999999996,59.224433999999974],[-69.448607999999979,59.2227630000001],[-69.470276000000013,59.213882000000012],[-69.512222000000008,59.192764000000068],[-69.530562999999972,59.18221299999999],[-69.537505999999894,59.172493000000088],[-69.540282999999988,59.166381999999999],[-69.541107000000011,59.161659000000043],[-69.537215999999944,59.123047000000042],[-69.533065999999963,59.110825000000034],[-69.527785999999992,59.106658999999979],[-69.52055399999989,59.104439000000127],[-69.511397999999929,59.103324999999984],[-69.505568999999923,59.104163999999969],[-69.49499499999996,59.109993000000145],[-69.484436000000017,59.121375999999998],[-69.474716000000001,59.128043999999932],[-69.46305799999999,59.12943300000012],[-69.453887999999949,59.128326000000015],[-69.384170999999981,59.118880999999931],[-69.367492999999911,59.116386000000091],[-69.359725999999966,59.112770000000069],[-69.349166999999909,59.104996000000028],[-69.345276000000013,59.095543000000021],[-69.344161999999983,59.091103000000032],[-69.352782999999988,59.080826000000059],[-69.431945999999982,59.025269000000094],[-69.466110000000015,59.044159000000036],[-69.493331999999953,59.037498000000085],[-69.475280999999939,58.971931000000041],[-69.457503999999915,58.915824999999984],[-69.454726999999991,58.90638000000007],[-69.453887999999949,58.895828000000108],[-69.454177999999956,58.892220000000009],[-69.456389999999999,58.884163000000001],[-69.460006999999962,58.878876000000105],[-69.547500999999897,58.808043999999995],[-69.557495000000017,58.80360399999995],[-69.587783999999942,58.796660999999972],[-69.611114999999984,58.792220999999984],[-69.656386999999995,58.787773000000016],[-69.670836999999949,58.792220999999984],[-69.680831999999953,58.800269999999955],[-69.711944999999957,58.848877000000073],[-69.714721999999938,58.85833000000008],[-69.716109999999958,58.864715999999987],[-69.702788999999996,58.876381000000094],[-69.672226000000023,58.89138000000014],[-69.668610000000001,58.899437000000091],[-69.668334999999956,58.902771000000087],[-69.668334999999956,58.92582700000014],[-69.671660999999915,58.930550000000096],[-69.709441999999967,58.972762999999986],[-69.848342999999943,59.047217999999987],[-69.865279999999927,59.052773000000059],[-69.869155999999919,59.053046999999992],[-69.872771999999998,59.050827000000027],[-69.87388599999997,59.041107000000125],[-69.874160999999958,59.034163999999919],[-69.87388599999997,59.02915999999999],[-69.865554999999972,58.977768000000026],[-69.832779000000016,58.951660000000061],[-69.815826000000015,58.82388300000008],[-69.972777999999892,58.808601000000067],[-70.153610000000015,58.777488999999946],[-70.158889999999985,58.761107999999979],[-70.049728000000016,58.743606999999997],[-69.974716000000001,58.755554000000132],[-69.931106999999997,58.733047000000056],[-69.910552999999936,58.68804200000011],[-69.864440999999999,58.617493000000138],[-69.861663999999962,58.614998000000128],[-69.818892999999946,58.588599999999985],[-69.813048999999921,58.589157000000057],[-69.799437999999952,58.59887700000013],[-69.793335000000013,58.603881999999999],[-69.724441999999954,58.668883999999991],[-69.625,58.743881000000101],[-69.608046999999999,58.754714999999976],[-69.581680000000006,58.765831000000105],[-69.570847000000015,58.769440000000145],[-69.544723999999974,58.773323000000062],[-69.507507000000032,58.774712000000079],[-69.498885999999857,58.778602999999919],[-69.445540999999878,58.808327000000133],[-69.418883999999878,58.825553999999954],[-69.411666999999966,58.830276000000026],[-69.410277999999948,58.83998900000006],[-69.405838000000017,58.850273000000129],[-69.394729999999925,58.856659000000036],[-69.381942999999922,58.861381999999992],[-69.348891999999978,58.871658000000082],[-69.279175000000009,58.888046000000145],[-69.153884999999946,58.899993999999992],[-69.129989999999964,58.901657000000114],[-69.098343,58.899162000000103],[-69.031676999999888,58.893326000000002],[-68.99221799999998,58.883880999999974],[-68.841675000000009,58.891106000000036],[-68.756957999999997,58.912490999999989],[-68.656386999999938,58.900269000000037],[-68.637512000000015,58.896659999999997],[-68.601668999999958,58.885826000000122],[-68.396392999999989,58.816101000000117],[-68.390686000000017,58.811707000000013],[-68.360549999999932,58.781936999999914],[-68.355835000000013,58.774437000000034],[-68.357772999999952,58.764717000000132],[-68.360275000000001,58.759437999999989],[-68.366393999999957,58.687492000000077],[-68.34584000000001,58.626937999999996],[-68.323059000000001,58.58526599999999],[-68.290832999999907,58.541107000000011],[-68.216659999999933,58.490829000000076],[-68.209732000000031,58.462494000000049],[-68.204726999999991,58.453323000000069],[-68.203063999999983,58.441658000000018],[-68.204178000000013,58.436935000000062],[-68.226943999999946,58.376380999999981],[-68.244720000000029,58.33776899999998],[-68.256667999999991,58.323607999999979],[-68.285827999999924,58.294998000000135],[-68.289992999999924,58.28916200000009],[-68.309157999999911,58.253326000000072],[-68.322509999999966,58.22693600000008],[-68.34584000000001,58.169991000000039],[-68.348052999999936,58.159714000000065],[-68.347777999999948,58.15387700000008],[-68.344161999999983,58.141663000000051],[-68.341385000000002,58.133331000000055],[-68.344161999999983,58.127487000000087],[-68.350554999999929,58.12193300000007],[-68.46665999999999,58.045546999999942],[-68.477218999999934,58.039992999999981],[-68.503615999999909,58.031380000000013],[-68.528609999999958,58.029434000000094],[-68.729889000000014,57.99971800000003],[-68.874161000000015,57.969154000000003],[-69.127212999999983,57.899436999999921],[-69.135009999999909,57.896942000000081],[-69.181380999999988,57.878044000000045],[-69.202498999999989,57.868599000000131],[-69.221389999999928,57.858886999999982],[-69.262511999999958,57.833603000000039],[-69.357773000000009,57.774162000000047],[-69.369048999999961,57.765251000000092],[-69.363892000000021,57.765830999999935],[-69.339721999999938,57.773323000000062],[-69.304992999999968,57.786659000000043],[-69.298339999999996,57.789436000000137],[-69.210280999999952,57.829437000000098],[-69.190825999999959,57.840546000000018],[-69.172775000000001,57.851661999999976],[-69.111937999999896,57.885825999999952],[-68.965285999999878,57.933875999999998],[-68.904175000000009,57.949715000000083],[-68.695723999999984,57.987713000000099],[-68.678894000000014,57.989716000000101],[-68.667388999999957,57.990383000000008],[-68.634720000000016,57.988879999999995],[-68.62239099999988,57.989379999999983],[-68.545272999999952,58.000549000000035],[-68.495833999999945,58.013328999999999],[-68.416945999999939,58.034439000000134],[-68.404175000000009,58.039719000000048],[-68.31361400000003,58.103049999999996],[-68.308883999999978,58.108047000000113],[-68.304992999999911,58.113884000000041],[-68.302490000000034,58.119155999999975],[-68.299987999999928,58.127487000000087],[-68.300277999999878,58.132492000000127],[-68.30471799999998,58.146384999999952],[-68.305557000000022,58.149993999999992],[-68.307220000000029,58.164436000000137],[-68.306106999999997,58.181106999999997],[-68.305267000000015,58.186104000000057],[-68.301102000000014,58.198043999999982],[-68.295273000000009,58.209991000000116],[-68.284164000000033,58.219986000000063],[-68.230835000000013,58.26888300000013],[-68.18582200000003,58.360549999999989],[-68.168335000000013,58.414711000000125],[-68.166655999999989,58.424438000000066],[-68.166945999999996,58.435822000000144],[-68.169998000000021,58.446655000000135],[-68.172775000000001,58.454993999999999],[-68.178054999999972,58.469711000000132],[-68.178329000000019,58.480270000000019],[-68.171386999999925,58.489990000000091],[-68.139175000000023,58.521103000000096],[-68.135009999999852,58.524162000000047],[-68.013061999999991,58.573607999999922],[-68.003341999999975,58.576385000000016],[-67.983321999999987,58.573051000000021],[-67.969161999999983,58.565826000000015],[-67.959166999999979,58.558044000000052],[-67.896118000000001,58.500548999999978],[-67.893889999999999,58.496658000000082],[-67.892226999999991,58.491379000000109],[-67.891953000000001,58.483604000000014],[-67.895003999999915,58.476936000000023],[-67.901108000000022,58.467209000000082],[-67.908051,58.458046000000081],[-67.914444000000003,58.453323000000069],[-67.919448999999929,58.445540999999935],[-67.920837000000006,58.439430000000073],[-67.924163999999962,58.41276600000009],[-67.92332499999992,58.403046000000018],[-67.908339999999953,58.360825000000034],[-67.906113000000005,58.356941000000006],[-67.903610000000015,58.353607000000011],[-67.893340999999964,58.346656999999993],[-67.868056999999965,58.332214000000079],[-67.864166000000012,58.328880000000083],[-67.857498000000021,58.320273999999984],[-67.894500999999934,58.287163000000078],[-67.896659999999883,58.281158000000062],[-67.90449499999994,58.26766200000003],[-67.913329999999917,58.25616100000002],[-67.919341999999972,58.250159999999994],[-67.926330999999948,58.245491000000015],[-67.934829999999977,58.241161000000034],[-67.946999000000005,58.235992000000124],[-67.974990999999989,58.220993000000021],[-68.047501000000011,58.170547000000056],[-68.065826000000015,58.159431000000097],[-68.095839999999953,58.138602999999989],[-68.101105000000018,58.133049000000028],[-68.127486999999917,58.084717000000126],[-68.129989999999964,58.07888000000014],[-68.128325999999959,58.073608000000036],[-68.125548999999978,58.071105999999986],[-68.115828999999962,58.071938000000046],[-68.101105000000018,58.077773999999977],[-68.006667999999934,58.131935000000055],[-67.991668999999945,58.146103000000096],[-67.978333000000021,58.163605000000132],[-67.876944999999978,58.243050000000039],[-67.801392000000021,58.296661000000086],[-67.815551999999968,58.308883999999978],[-67.823897999999872,58.317215000000033],[-67.829178000000013,58.326385000000073],[-67.830565999999919,58.331383000000073],[-67.828888000000006,58.349716000000114],[-67.819732999999871,58.393608000000029],[-67.817229999999995,58.40526600000004],[-67.813323999999909,58.416100000000085],[-67.787505999999951,58.464439000000027],[-67.783066000000019,58.468048000000067],[-67.775008999999898,58.471099999999979],[-67.764450000000011,58.470543000000077],[-67.723891999999978,58.458885000000066],[-67.669448999999986,58.431938000000116],[-67.667496000000028,58.427489999999977],[-67.669998000000021,58.42193599999996],[-67.679992999999968,58.41276600000009],[-67.691939999999988,58.404433999999924],[-67.696945000000028,58.399437000000034],[-67.704726999999991,58.389160000000061],[-67.737212999999997,58.326942000000145],[-67.738892000000021,58.320831000000112],[-67.737212999999997,58.315543999999989],[-67.732497999999964,58.311661000000015],[-67.698043999999925,58.284995999999978],[-67.660827999999981,58.264442000000031],[-67.646117999999944,58.253326000000072],[-67.642775999999913,58.248604],[-67.652495999999985,58.214714000000129],[-67.654175000000009,58.210548000000017],[-67.728607000000011,57.976654000000053],[-67.713897999999858,57.923050000000046],[-67.710281000000009,57.97554800000006],[-67.708343999999954,57.982491000000039],[-67.659438999999963,58.110275000000058],[-67.653609999999958,58.122765000000015],[-67.64527899999996,58.134437999999989],[-67.591949,58.200828999999999],[-67.578339000000028,58.21527100000003],[-67.566100999999946,58.223602000000085],[-67.481383999999935,58.273880000000077],[-67.46665999999999,58.279716000000121],[-67.332779000000016,58.31610100000006],[-67.17222599999991,58.376380999999981],[-67.168609999999944,58.378044000000102],[-67.15194699999995,58.376656000000025],[-67.137512000000015,58.373046999999985],[-67.116652999999985,58.363327000000083],[-67.106948999999986,58.3555530000001],[-67.095550999999944,58.348877000000016],[-67.09056099999998,58.35054800000006],[-66.995834000000002,58.439430000000073],[-66.991669000000002,58.445267000000001],[-66.989989999999977,58.45138500000013],[-66.986664000000019,58.458046000000081],[-66.978881999999999,58.468323000000055],[-66.951401000000033,58.498603999999943],[-66.944153000000028,58.501937999999939],[-66.928054999999972,58.501663000000121],[-66.887221999999952,58.485550000000103],[-66.876937999999939,58.479156000000046],[-66.875548999999864,58.473877000000073],[-66.878052000000025,58.468596999999988],[-66.801101999999958,58.473602000000028],[-66.629714999999976,58.50360900000004],[-66.651671999999962,58.542770000000132],[-66.551940999999999,58.71138000000002],[-66.469727000000034,58.81638300000003],[-66.465012000000002,58.819992000000013],[-66.388610999999969,58.850548000000117],[-66.366652999999928,58.848044999999956],[-66.357773000000009,58.846099999999979],[-66.349990999999932,58.843048000000067],[-66.350280999999939,58.837212000000022],[-66.348891999999978,58.831940000000088],[-66.344161999999926,58.827773999999977],[-66.11471599999993,58.699714999999969],[-66.106110000000001,58.684989999999971],[-66.077224999999999,58.654434000000094],[-66.072234999999921,58.650825999999995],[-66.067779999999914,58.648880000000077],[-66.054168999999945,58.646102999999982],[-65.945540999999935,58.616936000000067],[-65.938888999999961,58.613883999999928],[-65.93582200000003,58.609718000000044],[-65.93582200000003,58.604713000000004],[-65.938598999999954,58.594437000000084],[-65.941939999999988,58.582770999999923],[-66.021941999999967,58.486938000000009],[-66.08944699999995,58.365273000000002],[-66.091385000000002,58.358887000000095],[-66.091385000000002,58.354164000000083],[-66.073059000000001,58.327217000000019],[-66.065552000000025,58.320273999999984],[-66.058883999999978,58.320273999999984],[-66.052779999999927,58.34693900000002],[-66.051392000000021,58.352493000000038],[-66.045546999999942,58.363052000000096],[-66.041671999999949,58.368050000000096],[-66.030562999999972,58.376380999999981],[-66.02305599999994,58.379714999999976],[-66.015014999999948,58.381934999999999],[-65.988051999999982,58.384437999999989],[-65.979172000000005,58.386107999999922],[-65.972777999999948,58.388046000000088],[-65.965012000000002,58.391936999999928],[-65.960280999999895,58.396103000000039],[-65.920272999999952,58.44582400000013],[-65.920837000000006,58.449432000000002],[-65.926666000000012,58.456099999999992],[-65.932219999999973,58.458885000000066],[-65.94027699999998,58.461661999999933],[-65.96166999999997,58.464714000000072],[-65.980559999999912,58.470268000000033],[-65.982497999999964,58.4741590000001],[-65.981948999999929,58.480545000000006],[-65.980559999999912,58.483047000000113],[-65.887512000000015,58.577774000000034],[-65.884170999999981,58.580826000000116],[-65.876937999999882,58.581940000000088],[-65.879989999999964,58.62721300000004],[-65.945540999999935,58.665267999999969],[-66.032226999999978,58.710548000000074],[-66.101394999999968,58.771103000000039],[-66.103881999999999,58.773604999999918],[-66.081954999999994,58.80971500000004],[-66.037215999999944,58.85166200000009],[-65.990111999999954,58.852661000000012],[-65.984954999999957,58.851494000000059],[-65.952277999999865,58.836822999999981],[-65.845839999999953,58.826660000000004],[-65.839721999999995,58.827217000000076],[-65.797501000000011,58.847488000000055],[-65.792770000000019,58.853325000000041],[-65.790282999999988,58.857773000000009],[-65.789443999999946,58.861938000000009],[-65.791381999999999,58.865829000000076],[-65.794998000000021,58.86693600000001],[-65.80610699999994,58.866660999999965],[-65.833327999999995,58.864715999999987],[-65.861938000000009,58.863327000000027],[-65.880279999999914,58.864440999999999],[-65.940445000000011,58.879105000000038],[-65.952606000000003,58.88126799999992],[-65.958115000000021,58.882935000000032],[-65.964775000000031,58.887440000000083],[-65.968276999999887,58.893440000000055],[-65.988602000000014,58.903603000000032],[-65.885559000000001,59.001938000000052],[-65.777495999999985,59.029990999999995],[-65.695266999999888,59.043610000000058],[-65.673049999999989,59.046104000000014],[-65.660278000000005,59.044159000000036],[-65.654174999999952,59.042496000000085],[-65.634673999999904,59.033217999999977],[-65.632492000000013,59.031216000000086],[-65.614166000000012,59.019440000000088],[-65.565001999999936,58.993607000000111],[-65.514450000000011,58.984718000000044],[-65.5,58.983330000000137],[-65.49499499999996,58.984718000000044],[-65.493332000000009,58.987495000000138],[-65.49499499999996,58.991936000000067],[-65.509444999999971,59.008330999999998],[-65.516402999999968,59.010826000000009],[-65.533614999999998,59.014717000000076],[-65.543059999999969,59.015549000000021],[-65.553054999999972,59.017493999999999],[-65.56082200000003,59.020827999999995],[-65.571388000000013,59.039108000000112],[-65.572891000000027,59.044106000000113],[-65.570221000000004,59.045772999999997],[-65.568054000000018,59.046776000000023],[-65.532776000000013,59.063881000000094],[-65.518616000000009,59.066666000000112],[-65.510284000000013,59.066940000000045],[-65.506392999999946,59.066382999999973],[-65.492492999999968,59.061378000000104],[-65.454726999999991,59.042221000000097],[-65.340285999999992,59.03833000000003],[-65.330565999999976,59.038048000000117],[-65.324721999999952,59.038887000000102],[-65.317504999999983,59.041382000000112],[-65.319732999999985,59.047217999999987],[-65.333618000000001,59.059990000000028],[-65.344726999999978,59.064712999999983],[-65.354171999999949,59.067497000000117],[-65.533553999999924,59.077663000000143],[-65.53687999999994,59.074665000000095],[-65.546721999999988,59.071831000000088],[-65.564383999999961,59.070163999999977],[-65.577056999999968,59.069996000000117],[-65.58406100000002,59.070999000000143],[-65.586563000000012,59.072159000000056],[-65.651947000000007,59.079163000000108],[-65.715011999999945,59.148331000000042],[-65.718062999999972,59.153046000000074],[-65.740829000000019,59.214714000000072],[-65.742492999999911,59.219437000000084],[-65.743056999999965,59.228043000000014],[-65.744995000000017,59.259720000000129],[-65.744719999999973,59.263054000000125],[-65.743056999999965,59.265830999999991],[-65.731948999999986,59.269066000000009],[-65.706664999999987,59.268326000000059],[-65.685271999999884,59.264442000000031],[-65.676102000000014,59.261108000000036],[-65.646118000000001,59.244713000000104],[-65.587509000000011,59.20249200000012],[-65.612503000000004,59.237495000000081],[-65.614715999999873,59.243607000000054],[-65.614166000000012,59.246941000000049],[-65.581680000000006,59.37721300000004],[-65.572509999999966,59.378601000000003],[-65.570006999999976,59.378326000000129],[-65.551940999999999,59.372765000000072],[-65.499160999999958,59.352219000000105],[-65.48332199999993,59.345542999999964],[-65.476105000000018,59.338882000000069],[-65.471114999999941,59.327492000000007],[-65.453338999999971,59.316939999999988],[-65.383895999999993,59.281661999999983],[-65.372771999999998,59.276657000000114],[-65.366652999999872,59.274993999999992],[-65.36111499999987,59.274712000000136],[-65.357223999999974,59.277214000000015],[-65.356658999999922,59.282768000000033],[-65.437774999999988,59.393883000000017],[-65.495269999999891,59.433876000000055],[-65.559433000000013,59.481658999999979],[-65.56138599999997,59.486107000000118],[-65.557495000000017,59.487770000000069],[-65.549438000000009,59.48943300000002],[-65.542220999999984,59.489990000000091],[-65.360000999999954,59.481658999999979],[-65.347778000000005,59.480820000000051],[-65.260559000000001,59.466385000000116],[-65.19766199999998,59.450493000000051],[-65.195830999999998,59.447659000000044],[-65.176940999999999,59.440269000000001],[-65.170273000000009,59.434433000000126],[-65.141953000000001,59.415825000000041],[-65.126663000000008,59.40776800000009],[-65.119995000000017,59.40526600000004],[-65.060271999999998,59.384438000000102],[-65.041381999999942,59.378601000000003],[-65.017775999999969,59.373046999999985],[-65.005844000000025,59.371933000000013],[-64.995543999999995,59.372490000000084],[-64.98332199999993,59.376380999999981],[-65.031386999999938,59.392769000000044],[-65.075835999999981,59.408043000000077],[-65.111114999999984,59.420546999999942],[-65.118880999999988,59.423882000000049],[-65.141113000000018,59.434433000000126],[-65.147231999999974,59.43804200000011],[-65.151397999999972,59.443046999999979],[-65.156386999999938,59.451659999999947],[-65.158996999999886,59.460827000000108],[-65.16194200000001,59.466660000000104],[-65.168059999999969,59.470543000000021],[-65.22084000000001,59.48832700000014],[-65.290832999999964,59.506660000000011],[-65.308608999999933,59.50999500000006],[-65.330001999999865,59.509437999999989],[-65.388901000000033,59.50750000000005],[-65.411666999999966,59.509437999999989],[-65.419998000000021,59.516936999999984],[-65.462783999999886,59.578049000000021],[-65.494155999999975,59.626937999999996],[-65.501677999999913,59.63888500000013],[-65.527785999999992,59.716933999999981],[-65.501952999999958,59.747215000000097],[-65.433318999999983,59.798049999999932],[-65.374999999999943,59.828049000000135],[-65.33555599999994,59.84665700000005],[-65.333892999999932,59.847214000000122],[-65.323623999999995,59.845543000000077],[-65.236114999999984,59.819381999999962],[-65.21945199999999,59.814377000000093],[-65.205947999999978,59.808548000000087],[-65.203444999999931,59.806881000000033],[-65.198775999999953,59.802879000000019],[-65.195281999999963,59.797218000000044],[-65.158614999999998,59.782211000000018],[-65.152785999999992,59.779990999999995],[-65.136123999999995,59.776657],[-65.053054999999972,59.763611000000083],[-65.033065999999963,59.761383000000137],[-65.006667999999991,59.760277000000087],[-64.988602000000014,59.761940000000038],[-64.983886999999982,59.762771999999927],[-64.983063000000016,59.764160000000061],[-64.989165999999955,59.765831000000105],[-65.055556999999965,59.778328000000101],[-65.132766999999944,59.79694400000011],[-65.161391999999978,59.817490000000134],[-65.199393999999927,59.835659000000078],[-65.202713000000017,59.837326000000019],[-65.206054999999992,59.840492000000097],[-65.230835000000013,59.880546999999979],[-65.231948999999986,59.885826000000122],[-65.226104999999961,59.888603000000046],[-65.206389999999999,59.888603000000046],[-65.143340999999907,59.94999700000011],[-65.126098999999954,60.011108000000036],[-65.110001000000011,60.043052999999986],[-65.029723999999931,60.077217000000019],[-64.921111999999937,60.194992000000013],[-64.834166999999979,60.323051000000078],[-64.832229999999925,60.328605999999979],[-64.834441999999967,60.334434999999985],[-64.846389999999928,60.345543000000134],[-64.858336999999949,60.352492999999981],[-64.857223999999974,60.359436000000017],[-64.854445999999996,60.361107000000061],[-64.846114999999998,60.362769999999955],[-64.83555599999994,60.363327000000083],[-64.65306099999998,60.34693900000002],[-64.641677999999899,60.344711000000018],[-64.610274999999945,60.336380000000133],[-64.576674999999966,60.322768999999994],[-64.533249000000012,60.302498000000014],[-64.475600999999983,60.281609000000003],[-64.466919000000019,60.278602999999976],[-64.431090999999981,60.258105999999941],[-64.432593999999995,60.255608000000052],[-64.43460099999993,60.255108000000064],[-64.446091000000024,60.254771999999946],[-64.453093999999908,60.256271000000027],[-64.462424999999939,60.259273999999948],[-64.477591999999959,60.265609999999981],[-64.477218999999991,60.260551000000135],[-64.557495000000017,60.281105000000082],[-64.580291999999929,60.286110000000122],[-64.613051999999982,60.289436000000137],[-64.643065999999976,60.287498000000028],[-64.721114999999941,60.261108000000036],[-64.725829999999974,60.258331000000112],[-64.758056999999951,60.235825000000091],[-64.759445000000028,60.231102000000135],[-64.752501999999879,60.228600000000029],[-64.745269999999948,60.228325000000041],[-64.736937999999952,60.230545000000063],[-64.685546999999985,60.250832000000116],[-64.646118000000001,60.265830999999991],[-64.634170999999981,60.268883000000073],[-64.596389999999985,60.266937000000041],[-64.574448000000018,60.264999000000103],[-64.554169000000002,60.262772000000041],[-64.536391999999921,60.2586060000001],[-64.421676999999988,60.215656000000024],[-64.419501999999966,60.213661000000002],[-64.376937999999996,60.160545000000013],[-64.465011999999945,60.084991000000002],[-64.469161999999869,60.08277099999998],[-64.476944000000003,60.079720000000009],[-64.491378999999938,60.074714999999912],[-64.504455999999948,60.072495000000117],[-64.515015000000005,60.071938000000046],[-64.654998999999918,60.053604000000064],[-64.80471799999998,60.007216999999969],[-64.8125,60.004165999999998],[-64.823333999999988,59.997772000000111],[-64.826675000000023,59.994712999999933],[-64.827498999999989,59.986382000000049],[-64.820007000000032,59.979431000000091],[-64.811935000000005,59.978325000000098],[-64.796660999999972,59.980270000000075],[-64.735274999999945,60.001106000000107],[-64.490828999999906,60.05943300000007],[-64.410277999999948,60.111107000000118],[-64.396392999999989,60.121933000000013],[-64.392226999999991,60.124161000000015],[-64.385833999999932,60.125267000000008],[-64.379990000000021,60.125267000000008],[-64.37388599999997,60.123604000000114],[-64.367766999999958,60.119713000000047],[-64.366104000000007,60.117493000000024],[-64.36500499999994,60.109993000000145],[-64.374611000000016,60.033829000000082],[-64.375281999999856,60.028324000000055],[-64.394729999999981,59.941658000000075],[-64.396956999999929,59.937767000000008],[-64.408889999999985,59.932495000000074],[-64.450561999999934,59.925270000000012],[-64.462218999999948,59.922493000000088],[-64.491942999999992,59.913605000000132],[-64.506957999999997,59.907211000000075],[-64.514724999999999,59.901932000000102],[-64.513901000000033,59.896103000000096],[-64.506393000000003,59.891936999999984],[-64.499435000000005,59.891663000000051],[-64.481948999999872,59.894714000000079],[-64.376098999999954,59.9180530000001],[-64.367766999999958,59.920273000000122],[-64.363327000000027,59.922493000000088],[-64.360549999999932,59.924995000000024],[-64.320281999999963,60.004107999999974],[-64.322112999999945,60.006439000000114],[-64.324119999999994,60.011604000000091],[-64.32428699999997,60.014107000000024],[-64.322112999999945,60.024605000000008],[-64.320449999999937,60.027270999999985],[-64.317443999999909,60.028103000000044],[-64.265014999999948,60.048050000000103],[-64.216659999999933,60.039993000000095],[-64.173614999999984,60.028328000000045],[-64.166945999999996,60.024994000000049],[-64.160827999999981,60.01638800000012],[-64.150283999999999,59.985268000000076],[-64.150283999999999,59.982208000000014],[-64.165833000000021,59.850548000000117],[-64.17721599999993,59.785552999999936],[-64.180831999999896,59.781662000000097],[-64.193053999999961,59.775825999999995],[-64.202498999999932,59.77416199999999],[-64.220000999999968,59.77416199999999],[-64.236664000000019,59.779716000000008],[-64.244720000000029,59.784996000000035],[-64.25140399999998,59.787498000000141],[-64.257507000000032,59.78943600000008],[-64.261948000000018,59.789161999999976],[-64.264450000000011,59.787498000000141],[-64.266662999999994,59.77915999999999],[-64.261123999999995,59.764717000000132],[-64.255004999999926,59.756660000000124],[-64.21305799999999,59.717766000000097],[-64.197768999999994,59.705269000000101],[-64.173888999999974,59.688598999999954],[-64.163894999999968,59.684158000000082],[-64.151672000000019,59.680824000000086],[-64.129989999999964,59.676659000000086],[-64.057769999999948,59.625267000000122],[-64.116942999999935,59.517494000000056],[-64.047501000000011,59.549721000000034],[-64.040833000000021,59.553604000000007],[-64.033324999999991,59.563880999999981],[-64.034438999999907,59.573608000000092],[-64.034438999999907,59.582771000000093],[-64.029723999999874,59.599433999999974],[-64.024719000000005,59.609993000000031],[-64.019454999999937,59.618599000000131],[-64.011123999999938,59.624992000000077],[-64.004729999999995,59.626381000000094],[-63.99722300000002,59.626656000000139],[-63.90055099999995,59.619987000000037],[-63.885559000000001,59.618881000000044],[-63.876105999999993,59.615829000000076],[-63.865554999999915,59.609993000000031],[-63.731666999999959,59.526099999999985],[-63.724166999999966,59.517769000000101],[-63.722495999999978,59.513885000000073],[-63.723884999999996,59.506660000000011],[-63.785278000000005,59.426102000000014],[-63.807837999999947,59.420437000000106],[-63.810172999999963,59.41944100000012],[-63.814502999999945,59.418101999999976],[-63.866393999999957,59.421104000000014],[-63.90694400000001,59.421660999999915],[-63.947776999999974,59.419716000000108],[-64.000564999999995,59.41443600000008],[-64.018341000000021,59.410545000000013],[-64.033324999999991,59.406654000000117],[-64.050277999999992,59.399994000000106],[-64.061110999999983,59.393883000000017],[-64.065826000000015,59.388046000000031],[-64.062209999999993,59.38249200000007],[-64.052779999999984,59.379433000000063],[-63.805167999999924,59.368164000000093],[-63.790145999999993,59.370293000000004],[-63.786652000000004,59.371792000000084],[-63.78264999999999,59.374126000000103],[-63.751395999999943,59.37582400000008],[-63.748111999999935,59.333878000000084],[-63.75644699999998,59.30838],[-63.768280000000004,59.28788000000003],[-63.77044699999999,59.284381999999994],[-63.773444999999981,59.282215000000122],[-63.780944999999974,59.278213999999991],[-63.814162999999951,59.249435000000005],[-63.824722000000008,59.24610100000001],[-63.825499999999977,59.244377000000043],[-63.82527899999991,59.243324000000086],[-63.813889000000017,59.240829000000076],[-63.777942999999993,59.263938999999993],[-63.76677699999999,59.264275000000055],[-63.760940999999946,59.265434000000027],[-63.755942999999945,59.266773000000001],[-63.739112999999975,59.273605000000032],[-63.730441999999925,59.280769000000021],[-63.723777999999925,59.287436999999954],[-63.718776999999932,59.293941000000075],[-63.716113999999891,59.300934000000098],[-63.71527900000001,59.303768000000105],[-63.71527900000001,59.306438000000071],[-63.71594199999987,59.309437000000059],[-63.713775999999996,59.315605000000005],[-63.710608999999863,59.318107999999995],[-63.658332999999971,59.358046999999999],[-63.649993999999992,59.362494999999967],[-63.543059999999912,59.34804500000007],[-63.535277999999948,59.344436999999971],[-63.393332999999927,59.264999000000103],[-63.357506000000001,59.208046000000081],[-63.356392000000028,59.204993999999999],[-63.358054999999922,59.198043999999982],[-63.366661000000022,59.186377999999991],[-63.412773000000016,59.135826000000066],[-63.425560000000019,59.126381000000038],[-63.441108999999926,59.119438000000002],[-63.476944000000003,59.104439000000127],[-63.563613999999973,59.073326000000122],[-63.580001999999922,59.067497000000117],[-63.589721999999938,59.065543999999989],[-63.731392000000028,59.056270999999981],[-63.741055000000017,59.055770999999993],[-63.74872199999993,59.056934000000126],[-63.753890999999896,59.058266000000003],[-63.760222999999939,59.062767000000122],[-63.812217999999973,59.065826000000072],[-63.934440999999936,59.081108000000086],[-63.948333999999988,59.07888000000014],[-63.966110000000015,59.074714999999969],[-63.98833499999995,59.068329000000062],[-64.045546999999999,59.02416199999999],[-64.04722599999991,59.019440000000088],[-64.043883999999991,59.015273999999977],[-64.039443999999946,59.013885000000016],[-63.912216000000001,59.000549000000035],[-63.801719999999989,59.013992000000144],[-63.798388999999986,59.011329999999987],[-63.766395999999986,59.012772000000098],[-63.759444999999971,59.012497000000053],[-63.734443999999939,59.014998999999989],[-63.508057000000008,59.052773000000059],[-63.381667999999877,59.098045000000127],[-63.372771999999941,59.101104999999961],[-63.365554999999915,59.101104999999961],[-63.309440999999993,59.09415400000006],[-63.293335000000013,59.091377000000136],[-63.134170999999981,59.058327000000077],[-63.124999999999943,59.055267000000015],[-63.121940999999993,59.051384000000098],[-63.122771999999998,59.045547000000113],[-63.126944999999921,59.041382000000112],[-63.133330999999941,59.038048000000117],[-63.159438999999907,59.029990999999995],[-63.175277999999992,59.026939000000084],[-63.185271999999998,59.026381999999955],[-63.216942000000017,59.027489000000116],[-63.238892000000021,59.030548000000067],[-63.323333999999932,59.027771000000143],[-63.336112999999955,59.024994000000049],[-63.335555999999997,59.021935000000099],[-63.264450000000011,58.985549999999989],[-63.213889999999992,58.977211000000125],[-63.195273999999984,58.979713000000004],[-63.185271999999998,58.980270000000075],[-63.173057999999912,58.979713000000004],[-63.167503000000011,58.970825000000048],[-63.160552999999993,58.926384000000041],[-63.163054999999929,58.920273000000122],[-63.236389000000031,58.876937999999996],[-63.313331999999946,58.861107000000004],[-63.325004999999976,58.85582700000009],[-63.312774999999988,58.853049999999996],[-63.294723999999974,58.85083000000003],[-63.19027699999998,58.854996000000085],[-63.112777999999992,58.878043999999989],[-63.033332999999971,58.873878000000104],[-62.924170999999944,58.821381000000031],[-62.918334999999956,58.817497000000003],[-62.90694400000001,58.80471],[-62.904167000000029,58.799995000000138],[-62.847495999999978,58.690543999999989],[-62.845276000000013,58.684989999999971],[-62.842223999999987,58.669991000000095],[-62.843612999999948,58.659430999999984],[-62.847777999999948,58.653045999999961],[-62.915832999999907,58.600272999999959],[-62.974998000000028,58.576660000000061],[-63.169167000000016,58.503052000000139],[-63.334109999999896,58.455768999999975],[-63.334609999999941,58.45227100000011],[-63.337108999999941,58.448437000000126],[-63.373444000000006,58.417435000000069],[-63.38528100000002,58.41027100000008],[-63.39910900000001,58.405273000000079],[-63.486388999999974,58.37082700000002],[-63.522498999999982,58.361107000000118],[-63.537506000000008,58.354164000000083],[-63.583060999999987,58.311378000000047],[-63.587776000000019,58.305549999999982],[-63.58943899999997,58.30082700000014],[-63.584998999999925,58.298881999999992],[-63.579726999999991,58.298606999999947],[-63.571670999999924,58.299995000000081],[-63.555274999999938,58.305267000000015],[-63.533057999999983,58.314438000000109],[-63.428223000000003,58.369049000000132],[-63.392386999999928,58.388381999999979],[-63.378558999999939,58.399044000000004],[-63.364219999999932,58.410049000000015],[-63.351555000000019,58.418716000000018],[-63.286391999999978,58.456657000000064],[-63.28082999999998,58.459160000000054],[-63.264724999999942,58.463051000000121],[-63.241669000000002,58.466385000000116],[-63.213615000000004,58.469437000000028],[-63.148612999999955,58.476379000000122],[-63.13277399999987,58.477211000000068],[-63.124442999999872,58.475266000000033],[-63.096947,58.461936999999978],[-63.089721999999938,58.458327999999938],[-63.086113000000012,58.454993999999999],[-63.037506000000008,58.453048999999965],[-62.763335999999981,58.480820000000051],[-62.636664999999937,58.501389000000017],[-62.620551999999975,58.504997000000117],[-62.610001000000011,58.503882999999973],[-62.58943899999997,58.499718000000144],[-62.573615999999959,58.493880999999988],[-62.566108999999926,58.490546999999992],[-62.56138599999997,58.487495000000081],[-62.557502999999997,58.482491000000095],[-62.556389000000024,58.478043000000127],[-62.619719999999973,58.376938000000052],[-62.619445999999982,58.310272000000055],[-62.623054999999965,58.30443600000001],[-62.634170999999981,58.297775000000058],[-62.708611000000019,58.276100000000042],[-62.77666499999998,58.268599999999992],[-62.828056000000004,58.252220000000079],[-62.661666999999966,58.26998900000001],[-62.658607000000018,58.270271000000037],[-62.654442000000017,58.270271000000037],[-62.609725999999966,58.256660000000068],[-62.597778000000005,58.251663000000008],[-62.592772999999966,58.248604],[-62.582503999999858,58.23443600000013],[-62.581116000000009,58.221931000000041],[-62.58277899999996,58.216934000000094],[-62.584441999999967,58.214439000000084],[-62.631942999999865,58.185265000000129],[-62.638054000000011,58.181938000000002],[-62.653053,58.175270000000012],[-62.661384999999996,58.173049999999989],[-62.689163000000008,58.169991000000039],[-62.719718999999941,58.169715999999994],[-62.740279999999927,58.171936000000017],[-62.773887999999886,58.176941000000056],[-62.783889999999928,58.176659000000029],[-62.822226999999998,58.174713000000111],[-62.841666999999973,58.1722180000001],[-62.965004000000022,58.15387700000008],[-63.012221999999952,58.135551000000078],[-63.016662999999937,58.126098999999954],[-63.023887999999999,58.118880999999988],[-63.045279999999934,58.108886999999982],[-63.126944999999921,58.086936999999978],[-63.205558999999994,58.065826000000072],[-63.21166999999997,58.062492000000077],[-63.211387999999999,58.060272000000111],[-63.208892999999989,58.057770000000005],[-63.19027699999998,58.053047000000049],[-63.140838999999971,58.048882000000049],[-63.146998999999994,58.036831000000006],[-63.15582999999998,58.026939000000084],[-63.167777999999942,58.021103000000039],[-63.193329000000006,58.014717000000132],[-63.267220000000009,58.007217000000026],[-63.275275999999963,58.005554000000132],[-63.30471799999998,57.996940999999936],[-63.341666999999973,57.981102000000021],[-63.340835999999967,57.979988000000048],[-63.329726999999991,57.980270000000132],[-63.15166499999998,57.993606999999997],[-63.128882999999973,57.997771999999998],[-63.107779999999991,58.007774000000097],[-63.101944000000003,58.01249700000011],[-63.098884999999939,58.017769000000044],[-63.097778000000005,58.019714000000022],[-63.09833500000002,58.026939000000084],[-63.099998000000028,58.033051000000057],[-63.101944000000003,58.036942000000124],[-63.101668999999902,58.044159000000036],[-63.097778000000005,58.052216000000044],[-63.094718999999941,58.057495000000017],[-63.089164999999866,58.06221000000005],[-62.946662999999944,58.124161000000015],[-62.940276999999924,58.125824000000136],[-62.886390999999946,58.137496999999996],[-62.838051000000007,58.144997000000046],[-62.832222000000002,58.14527099999998],[-62.829445000000021,58.143326000000002],[-62.77277399999997,58.129158000000132],[-62.652221999999995,58.118599000000074],[-62.646111000000019,58.119155999999975],[-62.643058999999994,58.119986999999981],[-62.612502999999947,58.137771999999984],[-62.59944200000001,58.145546000000024],[-62.560828999999956,58.156654000000003],[-62.515838999999914,58.169158999999922],[-62.491942999999992,58.174163999999962],[-62.46665999999999,58.175552000000096],[-62.452781999999956,58.175270000000012],[-62.448051000000021,58.1722180000001],[-62.446388000000013,58.168327000000033],[-62.447776999999917,58.164154000000053],[-62.463000999999963,58.151047000000062],[-62.469666000000018,58.145718000000045],[-62.478333000000021,58.141212000000053],[-62.486168000000021,58.136547000000064],[-62.503890999999953,58.123604000000114],[-62.519447000000014,58.111937999999952],[-62.529166999999916,58.102776000000063],[-62.531386999999995,58.095268000000033],[-62.514450000000011,58.057495000000017],[-62.506392999999946,58.055267000000072],[-62.498054999999908,58.057213000000104],[-62.49138599999992,58.061378000000104],[-62.486664000000019,58.066940000000045],[-62.484443999999939,58.072220000000129],[-62.485557999999912,58.081107999999915],[-62.488051999999925,58.086105000000032],[-62.488891999999908,58.091103000000032],[-62.488051999999925,58.09665700000005],[-62.482772999999952,58.100273000000072],[-62.444827999999916,58.106720000000053],[-62.413054999999929,58.110825000000091],[-62.375,58.112770000000069],[-62.368889000000024,58.111664000000019],[-62.363892000000021,58.108604000000014],[-62.317779999999971,58.052489999999977],[-62.307502999999883,58.039161999999976],[-62.306945999999982,58.031104999999968],[-62.309722999999963,58.028603000000089],[-62.38144699999998,58.008327000000065],[-62.394112000000007,58.003658000000087],[-62.406280999999979,58.002827000000082],[-62.41311300000001,58.003658000000087],[-62.437613999999883,58.010159000000101],[-62.450443000000007,58.011993000000132],[-62.500838999999928,58.008049000000142],[-62.51916499999993,58.006943000000092],[-62.528335999999967,58.005554000000132],[-62.545279999999934,58.000549000000035],[-62.648055999999997,57.958328000000051],[-62.655273000000022,57.953605999999979],[-62.65972099999999,57.94860100000011],[-62.672774999999945,57.929993000000024],[-62.664443999999946,57.928604000000064],[-62.655273000000022,57.929993000000024],[-62.640838999999971,57.935264999999958],[-62.636116000000015,57.938598999999954],[-62.620833999999945,57.947487000000137],[-62.611670999999944,57.951660000000061],[-62.577498999999989,57.962212000000079],[-62.537780999999882,57.971100000000092],[-62.512504999999919,57.972487999999998],[-62.455165999999963,57.968212000000051],[-62.448001999999974,57.967708999999957],[-62.325004999999919,57.956100000000106],[-62.268332999999984,57.948875000000044],[-62.200278999999966,57.935822000000087],[-62.148887999999999,57.974990999999932],[-62.145279000000016,57.974159000000043],[-62.12749500000001,57.968048000000124],[-62.116111999999987,57.962493999999992],[-62.083610999999962,57.944992000000127],[-62.079726999999934,57.942763999999954],[-62.072226999999998,57.931107000000054],[-62.05972300000002,57.897774000000027],[-62.060828999999956,57.889992000000063],[-62.062774999999931,57.886658000000068],[-62.115279999999984,57.854164000000026],[-62.131942999999978,57.84276600000004],[-62.138053999999954,57.835823000000005],[-62.139167999999927,57.831940000000088],[-62.125274999999988,57.806938000000002],[-62.120833999999888,57.800827000000083],[-62.119995000000017,57.799994999999967],[-62.107779999999991,57.789719000000105],[-62.08916499999998,57.780548000000124],[-62.085830999999985,57.779433999999981],[-62.079169999999976,57.779433999999981],[-62.061110999999926,57.781936999999971],[-62.046394000000021,57.785828000000038],[-62.033332999999914,57.787216000000114],[-62.018058999999937,57.783607000000131],[-61.996666000000005,57.772217000000069],[-61.99138599999992,57.767769000000101],[-61.889998999999989,57.666382000000112],[-61.883330999999998,57.645546000000081],[-61.883057000000008,57.63749700000011],[-61.884444999999971,57.626938000000052],[-61.888610999999969,57.622490000000084],[-61.89805599999994,57.616386000000034],[-62.071670999999981,57.563605999999993],[-62.192222999999899,57.535828000000095],[-62.30860899999999,57.490546999999992],[-62.421386999999982,57.482207999999957],[-62.431945999999868,57.484717999999987],[-62.531113000000005,57.506943000000035],[-62.541388999999981,57.507500000000107],[-62.544723999999974,57.504440000000045],[-62.545279999999934,57.50110600000005],[-62.533332999999914,57.492218000000094],[-62.520553999999947,57.484993000000031],[-62.46444699999995,57.454437000000098],[-62.457222000000002,57.451103000000103],[-62.377220000000023,57.421936000000017],[-62.365279999999927,57.419715999999994],[-62.353888999999981,57.418326999999977],[-62.335830999999928,57.419440999999949],[-62.230552999999986,57.443604000000107],[-62.173331999999959,57.463608000000022],[-62.167220999999984,57.464439000000084],[-62.060828999999956,57.456383000000017],[-62.039725999999973,57.453323000000125],[-61.891388000000006,57.411934000000031],[-61.816948000000025,57.376938000000109],[-61.803054999999915,57.369155999999975],[-61.801391999999908,57.363052000000096],[-61.803054999999915,57.358887000000095],[-61.863892000000021,57.285553000000107],[-61.894164999999987,57.269440000000088],[-61.937499999999943,57.252220000000079],[-61.944999999999936,57.250832000000003],[-61.953888000000006,57.249435000000062],[-61.997779999999977,57.25638600000002],[-62.017219999999952,57.256943000000092],[-62.026389999999992,57.255829000000119],[-62.023613000000012,57.251663000000008],[-62.015839000000028,57.243050000000039],[-62.005004999999869,57.236655999999982],[-61.858894000000021,57.167770000000132],[-61.852500999999961,57.165268000000083],[-61.664444000000003,57.143883000000073],[-61.65555599999999,57.143051000000014],[-61.565551999999968,57.149719000000005],[-61.515555999999947,57.15638000000007],[-61.490836999999999,57.159431000000097],[-61.478881999999999,57.159431000000097],[-61.458892999999989,57.154709000000025],[-61.441665999999884,57.148604999999975],[-61.39305899999988,57.124709999999993],[-61.380279999999914,57.117210000000114],[-61.363892000000021,57.097214000000122],[-61.358336999999949,57.087494000000049],[-61.355559999999969,57.016388000000006],[-61.370833999999945,56.978600000000142],[-61.378052000000025,56.982208000000071],[-61.393332999999984,56.983047000000056],[-61.479720999999984,56.983604000000128],[-61.487777999999935,56.981658999999979],[-61.495551999999861,56.979430999999977],[-61.516395999999929,56.970267999999976],[-61.535560999999973,56.961104999999975],[-61.546668999999952,56.954437000000041],[-61.639998999999932,56.883881000000031],[-61.645003999999915,56.878326000000129],[-61.648337999999967,56.873046999999929],[-61.650832999999921,56.866936000000067],[-61.65277900000001,56.855826999999977],[-61.65277900000001,56.845543000000134],[-61.65055099999995,56.840828000000101],[-61.646111000000019,56.826942000000088],[-61.646111000000019,56.821106000000043],[-61.650276000000019,56.816666000000055],[-61.661384999999996,56.809433000000013],[-61.676392000000021,56.802773000000002],[-61.782391000000018,56.794441000000006],[-61.799224999999922,56.792937999999992],[-61.816886999999952,56.793610000000001],[-61.823558999999989,56.794441000000006],[-61.834556999999961,56.796108000000117],[-61.844559000000004,56.798943000000008],[-61.892226999999934,56.798607000000118],[-61.906386999999938,56.795273000000122],[-61.908606999999961,56.789162000000033],[-61.902221999999938,56.714156999999943],[-61.899993999999992,56.707214000000135],[-61.897223999999937,56.703049000000135],[-61.889998999999989,56.698044000000095],[-61.886115999999959,56.698044000000095],[-61.877776999999924,56.713051000000121],[-61.87027699999993,56.726936000000023],[-61.833667999999932,56.741993000000093],[-61.830832999999927,56.745327000000088],[-61.824996999999996,56.746826000000112],[-61.811504000000014,56.746826000000112],[-61.793335000000013,56.746826000000112],[-61.780498999999963,56.745658999999989],[-61.772834999999986,56.744160000000136],[-61.76266899999996,56.741325000000074],[-61.716392999999925,56.738045000000113],[-61.702498999999989,56.730820000000051],[-61.696944999999971,56.724709000000132],[-61.701667999999984,56.713325999999938],[-61.71055599999994,56.705551000000071],[-61.721106999999961,56.701103000000103],[-61.734443999999996,56.697212000000036],[-61.75417299999998,56.697487000000024],[-61.765006999999969,56.6988750000001],[-61.773055999999997,56.701103000000103],[-61.798339999999996,56.710823000000005],[-61.808334000000002,56.712212000000136],[-61.821670999999924,56.709717000000126],[-61.825004999999919,56.706657000000064],[-61.821670999999924,56.701660000000004],[-61.799171000000001,56.682770000000005],[-61.792503000000011,56.680824000000143],[-61.732215999999937,56.663322000000107],[-61.681670999999994,56.653603000000089],[-61.674445999999932,56.653046000000018],[-61.658889999999985,56.647774000000084],[-61.649726999999984,56.641662999999994],[-61.649993999999936,56.635268999999994],[-61.658607000000018,56.627487000000031],[-61.672500999999954,56.619986999999924],[-61.680557000000022,56.618050000000096],[-61.688889000000017,56.617210000000057],[-61.699164999999994,56.617767000000129],[-61.835555999999997,56.631660000000124],[-61.911667000000023,56.642769000000044],[-61.992774999999938,56.66027100000008],[-62.010001999999872,56.664153999999996],[-62.066947999999911,56.678604000000121],[-62.311110999999983,56.735550000000046],[-62.479995999999971,56.77388000000002],[-62.498885999999914,56.779716000000064],[-62.504448000000025,56.783607000000131],[-62.505004999999926,56.788886999999988],[-62.501944999999978,56.791939000000127],[-62.486114999999984,56.796104000000128],[-62.468886999999995,56.798607000000118],[-62.326392999999996,56.812767000000008],[-62.227492999999868,56.816666000000055],[-62.18999500000001,56.81332400000008],[-62.138335999999924,56.81082200000003],[-62.068335999999988,56.817214999999976],[-62.059440999999879,56.818603999999993],[-62.051665999999955,56.820549000000142],[-62.042502999999954,56.826942000000088],[-62.043334999999956,56.829994000000056],[-62.049445999999875,56.832496999999989],[-62.066947999999911,56.834434999999928],[-62.234726000000023,56.836937000000034],[-62.381667999999991,56.830276000000083],[-62.478606999999954,56.846657000000107],[-62.488891999999908,56.849434000000031],[-62.498885999999914,56.850548000000003],[-62.508338999999921,56.849998000000141],[-62.517219999999952,56.848045000000013],[-62.53194400000001,56.843605000000025],[-62.543892000000028,56.837212000000022],[-62.546950999999922,56.834717000000012],[-62.570281999999963,56.798607000000118],[-62.57389099999989,56.792770000000132],[-62.538337999999953,56.775551000000064],[-62.503058999999951,56.762214999999912],[-62.356109999999887,56.722214000000122],[-62.162773000000016,56.672768000000076],[-62.02277399999997,56.627487000000031],[-62.005279999999971,56.616936000000123],[-62.117500000000007,56.623046999999985],[-62.175003000000004,56.623877999999991],[-62.235557999999969,56.623604000000057],[-62.241111999999873,56.62332200000003],[-62.239722999999969,56.617210000000057],[-62.224715999999944,56.609161000000029],[-62.192222999999899,56.602493000000038],[-62.105003000000011,56.59693900000002],[-62.046394000000021,56.595825000000048],[-62.036117999999874,56.595267999999976],[-61.901389999999935,56.58776899999998],[-61.729439000000013,56.574440000000095],[-61.715004000000022,56.572220000000073],[-61.70805399999989,56.568886000000077],[-61.701110999999969,56.560822000000087],[-61.690833999999995,56.548050000000046],[-61.666663999999969,56.540549999999996],[-61.658332999999971,56.537498000000085],[-61.655273000000022,56.533882000000006],[-61.653327999999931,56.53054800000001],[-61.652221999999995,56.526100000000042],[-61.653327999999931,56.520546000000081],[-61.656661999999926,56.510826000000009],[-61.662216000000001,56.506104000000107],[-61.680282999999974,56.496658000000139],[-61.689163000000008,56.494713000000104],[-61.754723000000013,56.484993000000031],[-61.773055999999997,56.484718000000044],[-61.80388599999992,56.487770000000125],[-61.878052000000025,56.497772000000111],[-61.951942000000031,56.505554000000075],[-62.038612000000001,56.505271999999991],[-62.046950999999922,56.50471500000009],[-62.05471799999998,56.502495000000067],[-62.061667999999997,56.499435000000005],[-62.075561999999934,56.49193600000001],[-62.08306099999993,56.486938000000009],[-62.085273999999913,56.483046999999942],[-62.082222000000002,56.481659000000036],[-62.076667999999984,56.479987999999992],[-62.070838999999978,56.481102000000135],[-62.024170000000026,56.48443600000013],[-61.976386999999988,56.483330000000137],[-61.965278999999896,56.481934000000081],[-61.952224999999999,56.475822000000107],[-61.946945000000028,56.471100000000035],[-61.956164999999942,56.464050000000043],[-61.958831999999973,56.461048000000005],[-61.961333999999965,56.459717000000012],[-61.966003000000001,56.458549000000005],[-61.979835999999978,56.455551000000071],[-61.999724999999955,56.44999700000011],[-62.010284000000013,56.44999700000011],[-62.019996999999989,56.451102999999932],[-62.048888999999974,56.457214000000022],[-62.05972300000002,56.458603000000039],[-62.069999999999993,56.459160000000111],[-62.124999999999886,56.457214000000022],[-62.139998999999932,56.452217000000132],[-62.143058999999994,56.449158000000125],[-62.139167999999927,56.444709999999986],[-62.124999999999886,56.43832400000008],[-62.117500000000007,56.435546999999985],[-62.083327999999995,56.423325000000034],[-62.073059000000001,56.420546999999999],[-61.984726000000023,56.415268000000026],[-61.963717999999972,56.415657000000067],[-61.956889999999987,56.417823999999939],[-61.909720999999934,56.413879000000065],[-61.798057999999912,56.39527099999998],[-61.790840000000003,56.392494000000056],[-61.661384999999996,56.270271000000093],[-61.678332999999952,56.269161000000111],[-61.679169000000002,56.267993999999987],[-61.686835999999971,56.266994000000011],[-61.702834999999993,56.265327000000127],[-61.749999999999943,56.261329999999987],[-61.760665999999958,56.261662000000115],[-61.772166999999968,56.263493000000096],[-61.777167999999961,56.265327000000127],[-61.779671000000008,56.267493999999999],[-61.778335999999967,56.268661000000122],[-61.775001999999972,56.268826000000104],[-61.765166999999963,56.268162000000018],[-61.756667999999934,56.266994000000011],[-61.746001999999919,56.267493999999999],[-61.741000999999926,56.269161000000111],[-61.753616000000022,56.273048000000017],[-61.753059000000007,56.277770999999973],[-61.769996999999933,56.284163999999976],[-61.800835000000006,56.28943600000008],[-61.878608999999926,56.298607000000004],[-61.888610999999969,56.299164000000076],[-62.029723999999987,56.305267000000015],[-62.074447999999961,56.296386999999982],[-62.080001999999979,56.293610000000115],[-62.080832999999984,56.292496000000142],[-62.076110999999912,56.284996000000035],[-62.016395999999986,56.238883999999985],[-62.011672999999917,56.235825000000034],[-62.003890999999953,56.233604000000071],[-61.956947000000014,56.220825000000048],[-61.938331999999946,56.215827999999931],[-61.919448999999986,56.212212000000079],[-61.910278000000005,56.212493999999936],[-61.802054999999939,56.216381000000069],[-61.769889999999975,56.218048000000124],[-61.575004999999976,56.216933999999981],[-61.575561999999991,56.211937000000034],[-61.578612999999905,56.206940000000145],[-61.579726999999991,56.199158000000011],[-61.575279000000023,56.19609800000012],[-61.560279999999921,56.194434999999999],[-61.53583500000002,56.196381000000088],[-61.450553999999954,56.204994000000056],[-61.411941999999954,56.214714000000129],[-61.40444199999996,56.217491000000052],[-61.380279999999914,56.22304500000007],[-61.361670999999944,56.223602000000142],[-61.350837999999953,56.222214000000065],[-61.345550999999944,56.218322999999998],[-61.33083299999987,56.181938000000059],[-61.330284000000006,56.176659000000029],[-61.33555599999994,56.172767999999962],[-61.343329999999924,56.170547000000056],[-61.377220000000023,56.168602000000078],[-61.383613999999909,56.164711000000011],[-61.397223999999881,56.155823000000055],[-61.406104999999911,56.146102999999925],[-61.452498999999932,56.062767000000008],[-61.452224999999999,56.056937999999946],[-61.448607999999979,56.052772999999945],[-61.413886999999932,56.037773000000016],[-61.411384999999882,56.037497999999971],[-61.397498999999982,56.041107000000011],[-61.382773999999927,56.047493000000088],[-61.356391999999971,56.058327000000133],[-61.346663999999919,56.061377999999991],[-61.34027900000001,56.063049000000035],[-61.324721999999952,56.065269000000058],[-61.315552000000025,56.065544000000045],[-61.24361399999998,56.047493000000088],[-61.239722999999969,56.045273000000066],[-61.23750299999989,56.042770000000075],[-61.240554999999972,56.040276000000006],[-61.265838999999971,56.02276599999999],[-61.273613000000012,56.020828000000051],[-61.282500999999968,56.019714000000079],[-61.310279999999977,56.018600000000106],[-61.357223999999974,56.018600000000106],[-61.388610999999912,56.021934999999985],[-61.419167000000016,56.027214000000129],[-61.438605999999993,56.027489000000003],[-61.489997999999957,56.02027099999998],[-61.501395999999943,56.014442000000145],[-61.503890999999896,56.010551000000078],[-61.503615999999965,56.006942999999978],[-61.421943999999996,55.963882000000126],[-61.415001000000018,55.960274000000027],[-61.399170000000026,55.958602999999925],[-61.389998999999989,55.958885000000009],[-61.38138600000002,55.960274000000027],[-61.328055999999947,55.964157000000114],[-61.254722999999956,55.967491000000109],[-61.154442000000017,55.971375000000137],[-61.143616000000009,55.970543000000021],[-61.125556999999958,55.968596999999932],[-61.117774999999938,55.966103000000032],[-61.113616999999977,55.962493999999992],[-61.074448000000018,55.928329000000076],[-61.073891000000003,55.923050000000103],[-61.076667999999984,55.906937000000084],[-61.094111999999939,55.895606999999984],[-61.156386999999995,55.891937000000098],[-61.165276000000006,55.892220000000066],[-61.181670999999994,55.89916199999999],[-61.194999999999993,55.892220000000066],[-61.201667999999984,55.884163000000115],[-61.198607999999922,55.876380999999981],[-61.192771999999934,55.869437999999946],[-61.104445999999939,55.845543000000134],[-61.095275999999899,55.843880000000013],[-61.085274000000027,55.843322999999941],[-61.077224999999999,55.843880000000013],[-61.068061999999998,55.845543000000134],[-61.039665000000014,55.850937000000044],[-61.035999000000004,55.853271000000063],[-61.027168000000017,55.857273000000077],[-60.946105999999986,55.865829000000133],[-60.917220999999927,55.864441000000056],[-60.782500999999968,55.854164000000083],[-60.762221999999952,55.851386999999988],[-60.755561999999998,55.849434000000031],[-60.741669000000002,55.843048000000124],[-60.729720999999927,55.829436999999984],[-60.729163999999969,55.824440000000038],[-60.730826999999977,55.808044000000052],[-60.734443999999996,55.801212000000021],[-60.736941999999999,55.797382000000027],[-60.74222599999996,55.790549999999939],[-60.774719000000005,55.772491000000002],[-60.80777699999993,55.755271999999934],[-60.880554000000018,55.749161000000072],[-60.879439999999988,55.732765000000029],[-60.765006999999969,55.728042999999957],[-60.756393000000003,55.729431000000091],[-60.746947999999975,55.731659000000036],[-60.740279999999984,55.734161000000086],[-60.727218999999877,55.739990000000091],[-60.721663999999976,55.744713000000104],[-60.7016109999999,55.763443000000109],[-60.668891999999971,55.795830000000024],[-60.656386999999938,55.812767000000008],[-60.647223999999937,55.822768999999994],[-60.639998999999989,55.825554000000011],[-60.631667999999991,55.826660000000061],[-60.623885999999914,55.824996999999939],[-60.615279999999927,55.821937999999989],[-60.601943999999946,55.814713000000097],[-60.597777999999892,55.80943300000007],[-60.598052999999993,55.804436000000123],[-60.605835000000013,55.733879000000059],[-60.615836999999999,55.686935000000062],[-60.629722999999899,55.638329000000056],[-60.668059999999969,55.589432000000102],[-60.655555999999933,55.584435000000042],[-60.606109999999944,55.622489999999914],[-60.60222599999986,55.626656000000025],[-60.59027900000001,55.644714000000079],[-60.544167000000016,55.726936000000023],[-60.527221999999881,55.760551000000135],[-60.527495999999985,55.765830999999991],[-60.525557999999933,55.77693899999997],[-60.519446999999957,55.78804800000006],[-60.514449999999954,55.793610000000001],[-60.503059000000007,55.803046999999935],[-60.487777999999878,55.808601000000124],[-60.483611999999994,55.809158000000025],[-60.339995999999985,55.786384999999939],[-60.334998999999982,55.784439000000077],[-60.328888000000006,55.781661999999983],[-60.327224999999885,55.772766000000047],[-60.329444999999964,55.761383000000023],[-60.337775999999963,55.748604],[-60.380553999999961,55.691933000000063],[-60.406386999999995,55.674713000000054],[-60.463218999999924,55.666046000000108],[-60.472720999999979,55.663212000000101],[-60.493889000000024,55.658043000000134],[-60.499999999999943,55.654160000000047],[-60.50389100000001,55.648330999999985],[-60.525001999999972,55.610550000000046],[-60.531112999999948,55.597214000000065],[-60.532218999999884,55.591660000000104],[-60.531859999999938,55.588195999999982],[-60.515006999999969,55.599715999999944],[-60.506110999999919,55.611664000000019],[-60.495002999999997,55.621101000000124],[-60.481383999999991,55.627769000000114],[-60.440334000000007,55.620216000000084],[-60.426167000000021,55.618217000000072],[-60.420334000000025,55.616379000000052],[-60.415501000000006,55.61454800000007],[-60.322776999999917,55.578330999999991],[-60.31639100000001,55.573883000000023],[-60.31639100000001,55.57027400000004],[-60.319449999999961,55.530823000000055],[-60.321670999999981,55.509995000000004],[-60.426318999999978,55.448204000000089],[-60.442210999999986,55.427696000000026],[-60.437774999999988,55.399437000000091],[-60.478332999999907,55.347488000000055],[-60.472771000000023,55.347771000000023],[-60.451392999999939,55.357216000000108],[-60.42610899999994,55.376656000000082],[-60.420837000000006,55.382210000000043],[-60.418335000000013,55.386107999999979],[-60.415275999999949,55.394714000000079],[-60.417777999999942,55.402771000000087],[-60.422501000000011,55.407211000000075],[-60.425003000000004,55.411377000000016],[-60.423614999999984,55.421378999999945],[-60.418335000000013,55.427490000000034],[-60.413054999999986,55.431664000000069],[-60.349167000000023,55.475822000000107],[-60.331673000000023,55.486655999999982],[-60.319449999999961,55.491378999999995],[-60.268607999999972,55.502495000000124],[-60.253890999999953,55.503052000000025],[-60.213889999999992,55.489433000000076],[-60.203613000000018,55.483604000000071],[-60.201667999999984,55.478600000000085],[-60.195548999999971,55.431381000000101],[-60.265839000000028,55.409156999999993],[-60.274169999999913,55.408043000000021],[-60.284171999999955,55.408600000000092],[-60.295279999999934,55.411102000000142],[-60.305274999999881,55.411659000000043],[-60.313332000000003,55.411102000000142],[-60.354720999999927,55.394997000000046],[-60.468886999999938,55.285827999999981],[-60.49888599999997,55.253325999999959],[-60.538054999999929,55.200546000000145],[-60.499999999999943,55.218047999999953],[-60.488892000000021,55.227210999999954],[-60.482215999999994,55.231658999999922],[-60.476386999999988,55.2347180000001],[-60.468329999999924,55.237495000000024],[-60.37388599999997,55.260551000000021],[-60.365836999999942,55.260826000000066],[-60.355277999999998,55.259437999999989],[-60.348610000000008,55.255829000000119],[-60.348052999999936,55.250549000000092],[-60.353057999999976,55.244995000000074],[-60.512222000000008,55.120543999999938],[-60.587776000000019,55.088599999999929],[-60.616660999999965,55.077217000000132],[-60.636116000000015,55.066665999999998],[-60.670554999999979,55.044715999999994],[-60.681113999999923,55.004715000000033],[-60.683326999999906,54.994995000000131],[-60.592773000000022,55.058884000000091],[-60.475273000000016,55.124435000000005],[-60.266395999999986,55.240547000000106],[-60.259170999999924,55.244155999999919],[-60.252501999999993,55.246384000000091],[-60.176108999999997,55.270827999999995],[-60.079781000000025,55.249602999999979],[-60.073776000000009,55.247940000000028],[-60.072776999999974,55.245106000000021],[-60.110778999999923,55.199268000000075],[-60.123610999999926,55.156380000000127],[-60.146392999999932,55.137214999999969],[-60.157218999999941,55.128601000000117],[-60.187217999999973,55.108046999999999],[-60.204445000000021,55.107498000000021],[-60.212776000000019,55.108604000000071],[-60.220551,55.106384000000048],[-60.282776000000013,55.057770000000062],[-60.288337999999953,55.053321999999923],[-60.295006000000001,55.041382000000056],[-60.296950999999922,55.03443900000002],[-60.296668999999952,55.024993999999992],[-60.293892000000028,55.019440000000145],[-60.284171999999955,55.024437000000091],[-60.152495999999985,55.102776000000119],[-60.124442999999928,55.120270000000005],[-60.09944200000001,55.136658000000068],[-60.088332999999921,55.145827999999938],[-60.083884999999952,55.152214000000072],[-60.051223999999934,55.182381000000134],[-60.04571900000002,55.193046999999979],[-60.044723999999917,55.196711999999991],[-60.042721000000029,55.199883],[-60.039718999999877,55.203213000000005],[-60.036057000000028,55.206383000000073],[-60.021888999999987,55.218547999999942],[-60.015223999999989,55.221546000000046],[-60.009224000000017,55.221214000000089],[-59.964721999999938,55.235549999999989],[-59.939437999999939,55.233047000000056],[-59.922774999999945,55.233047000000056],[-59.916945999999939,55.233879000000115],[-59.912497999999971,55.238883999999985],[-59.890838999999971,55.265549000000021],[-59.868332000000009,55.291381999999999],[-59.863891999999964,55.296104000000071],[-59.851394999999968,55.303047000000049],[-59.80750299999994,55.324164999999937],[-59.795279999999991,55.327492000000063],[-59.779167000000029,55.329720000000066],[-59.776108000000022,55.329162999999937],[-59.715003999999965,55.276099999999929],[-59.711945000000014,55.269714000000022],[-59.713332999999977,55.256103999999993],[-59.729439000000013,55.205269000000101],[-59.732497999999964,55.197211999999979],[-59.735832000000016,55.194153000000142],[-59.742774999999938,55.191376000000048],[-59.831389999999999,55.162491000000045],[-59.847495999999978,55.158043000000077],[-59.863891999999964,55.154160000000104],[-59.897781000000009,55.151382000000126],[-59.918334999999956,55.155265999999983],[-59.94027699999998,55.162766000000033],[-59.950553999999897,55.164436000000023],[-59.962775999999963,55.161102000000028],[-59.967215999999951,55.158599999999979],[-59.970832999999914,55.15554800000001],[-59.973327999999867,55.147491000000059],[-59.968055999999933,55.119156000000032],[-59.963615000000004,55.110275000000115],[-59.80083499999995,55.108887000000038],[-59.795279999999991,55.109160999999972],[-59.615836999999999,55.13638300000008],[-59.57028200000002,55.159988000000055],[-59.531386999999995,55.181380999999988],[-59.487777999999992,55.181380999999988],[-59.430557000000022,55.151931999999988],[-59.428336999999999,55.149719000000005],[-59.427223000000026,55.139992000000063],[-59.427779999999927,55.135826000000009],[-59.431945999999925,55.129433000000006],[-59.438605999999936,55.123604],[-59.49610899999999,55.078331000000105],[-59.539169000000015,55.049163999999962],[-59.593886999999995,55.020828000000051],[-59.610831999999959,55.012771999999984],[-59.716659999999933,54.955826000000059],[-59.802165999999943,54.887268000000006],[-59.823996999999963,54.851105000000132],[-59.939163000000008,54.758888000000013],[-59.944160000000011,54.755554000000018],[-59.945549000000028,54.753052000000139],[-59.944160000000011,54.749718000000144],[-59.938605999999936,54.746383999999978],[-59.919166999999959,54.741379000000109],[-59.90943900000002,54.740829000000076],[-59.888610999999855,54.743324000000143],[-59.882499999999936,54.744995000000017],[-59.797500999999954,54.781661999999983],[-59.791114999999991,54.78555300000005],[-59.788612000000001,54.789436000000023],[-59.790282999999874,54.794158999999979],[-59.79099999999994,54.822658999999987],[-59.794166999999959,54.828159000000142],[-59.79466599999995,54.830994000000032],[-59.793830999999898,54.839992999999993],[-59.79099999999994,54.846825000000024],[-59.784339999999929,54.857658000000015],[-59.772002999999927,54.869492000000037],[-59.754722999999899,54.897491000000116],[-59.729995999999971,54.907493999999986],[-59.703888000000006,54.910545000000013],[-59.688888999999961,54.913605000000075],[-59.674445999999989,54.919990999999982],[-59.618331999999953,54.948600999999996],[-59.411110000000008,55.056381000000101],[-59.293891999999971,55.169716000000108],[-59.165275999999949,55.234993000000088],[-59.161384999999996,55.236938000000123],[-59.154716000000008,55.235549999999989],[-59.144164999999987,55.228043000000071],[-59.139442000000031,55.223877000000016],[-59.131110999999919,55.215546000000074],[-59.127494999999954,55.205826000000002],[-59.124999999999943,55.196380999999917],[-59.124442999999872,55.186103999999943],[-59.149440999999911,55.16182699999996],[-59.15060799999992,55.158992999999953],[-59.155276999999955,55.152156999999931],[-59.161277999999982,55.146823999999924],[-59.168609999999944,55.141827000000035],[-59.176608999999985,55.137989000000061],[-59.205276000000026,55.13116100000002],[-59.20911000000001,55.129822000000047],[-59.240279999999927,55.111382000000049],[-59.25278499999996,55.102492999999981],[-59.363335000000006,55.015830999999991],[-59.37471800000003,55.006386000000077],[-59.383056999999951,54.998047000000042],[-59.386390999999946,54.993049999999982],[-59.391113000000018,54.982208000000128],[-59.391387999999949,54.980270000000019],[-59.388610999999969,54.97665400000011],[-59.384170999999924,54.973319999999944],[-59.37471800000003,54.972763000000043],[-59.369164000000012,54.975266000000033],[-59.275001999999915,55.021659999999997],[-59.262504999999862,55.028327999999988],[-59.250838999999985,55.035828000000038],[-59.237220999999977,55.048332000000073],[-59.242500000000007,55.061104000000057],[-59.243057000000022,55.06638300000003],[-59.240836999999999,55.071106000000043],[-59.236663999999962,55.07749200000012],[-59.133330999999941,55.120491000000015],[-59.051666000000012,55.153320000000065],[-59.035277999999892,55.156937000000028],[-59.023613000000012,55.15665400000006],[-58.960555999999883,55.134995000000004],[-58.956107999999915,55.130271999999991],[-58.955832999999984,55.126381000000094],[-58.955832999999984,55.10083000000003],[-58.958336000000031,55.09165999999999],[-58.961670000000026,55.085265999999933],[-58.971106999999961,55.071106000000043],[-58.980277999999998,55.059990000000084],[-59.005561999999998,55.032767999999976],[-59.001944999999978,55.017769000000101],[-58.972495999999978,54.995544000000052],[-58.947220000000016,54.985550000000046],[-58.907218999999941,54.963882000000126],[-58.896950000000004,54.95638300000013],[-58.894164999999873,54.952773999999977],[-58.895279000000016,54.947769000000108],[-58.90055099999995,54.943878000000041],[-58.90694400000001,54.940269000000001],[-58.964721999999881,54.917496000000142],[-59.013061999999991,54.896103000000039],[-59.015556000000004,54.892220000000066],[-59.013618000000008,54.889717000000132],[-58.904167000000029,54.844711000000075],[-58.838332999999977,54.832497000000046],[-58.832503999999972,54.831940000000145],[-58.824172999999973,54.834434999999985],[-58.694442999999978,54.820549000000028],[-58.685271999999941,54.815543999999989],[-58.560828999999956,54.776100000000042],[-58.443610999999919,54.77388000000002],[-58.398887999999943,54.78472099999999],[-58.391944999999964,54.787498000000085],[-58.379997000000003,54.789993000000095],[-58.328056000000004,54.792496000000085],[-58.243331999999953,54.794716000000051],[-58.196663000000001,54.795272999999952],[-58.191108999999983,54.794158999999979],[-58.188332000000003,54.792496000000085],[-58.18721800000003,54.788605000000018],[-58.188605999999936,54.783051],[-58.19388600000002,54.777771000000087],[-58.196944999999971,54.773322999999948],[-58.198607999999979,54.767768999999987],[-58.184166000000005,54.751662999999951],[-58.173332000000016,54.745544000000109],[-58.145554000000004,54.739716000000044],[-58.110001000000011,54.737213000000054],[-58.001395999999943,54.73333000000008],[-57.945548999999971,54.739989999999977],[-57.935554999999965,54.741104000000121],[-57.910552999999936,54.74193600000001],[-57.855002999999954,54.737495000000081],[-57.847495999999921,54.735550000000103],[-57.842498999999918,54.731377000000009],[-57.831947000000014,54.71776600000004],[-57.789725999999916,54.68221299999999],[-57.78556100000003,54.679161000000079],[-57.713057999999933,54.643051000000128],[-57.700835999999981,54.637215000000083],[-57.693610999999976,54.634720000000073],[-57.676392000000021,54.630272000000105],[-57.660278000000005,54.628043999999932],[-57.642226999999991,54.628043999999932],[-57.626388999999961,54.629990000000021],[-57.577781999999956,54.638885000000073],[-57.574172999999973,54.640274000000034],[-57.569725000000005,54.644440000000145],[-57.567223000000013,54.648331000000042],[-57.559165999999948,54.655822999999998],[-57.545836999999949,54.661659000000043],[-57.539168999999902,54.662209000000075],[-57.456389999999999,54.650826000000052],[-57.450553999999954,54.649993999999936],[-57.444716999999969,54.647217000000069],[-57.355834999999956,54.590271000000087],[-57.352782999999874,54.587493999999992],[-57.347495999999921,54.579437000000041],[-57.346947,54.574714999999969],[-57.348610000000008,54.566940000000045],[-57.380828999999949,54.507499999999993],[-57.385276999999917,54.503326000000129],[-57.396949999999947,54.495827000000133],[-57.427222999999969,54.487770000000012],[-57.484726000000023,54.482491000000039],[-57.493057000000022,54.483330000000137],[-57.519447000000014,54.483879000000115],[-57.590836000000024,54.484160999999972],[-57.618056999999965,54.483604000000071],[-57.672774999999888,54.479988000000048],[-57.694999999999993,54.475548000000003],[-57.702224999999942,54.47304500000007],[-57.704169999999976,54.470543000000134],[-57.705275999999969,54.466933999999981],[-57.700554000000011,54.45915999999994],[-57.686942999999928,54.458885000000123],[-57.658332999999971,54.463051000000007],[-57.587775999999963,54.467208999999968],[-57.487777999999935,54.47304500000007],[-57.47222099999999,54.473602000000142],[-57.449996999999939,54.467491000000052],[-57.442497000000003,54.464996000000042],[-57.425277999999992,54.45915999999994],[-57.421111999999994,54.455826000000002],[-57.421669000000009,54.453605999999979],[-57.523330999999985,54.417213000000061],[-57.621666000000005,54.383605999999929],[-57.629439999999988,54.381660000000068],[-57.660827999999924,54.376937999999996],[-57.678336999999999,54.375267000000122],[-57.695273999999927,54.374992000000077],[-57.715552999999943,54.376937999999996],[-57.743056999999965,54.380821000000083],[-57.783332999999971,54.388329000000113],[-57.797226000000023,54.38888500000013],[-57.876105999999936,54.386658000000068],[-57.910278000000005,54.385269000000051],[-58.050277999999878,54.377487000000087],[-58.146392999999989,54.365273000000059],[-58.154166999999973,54.363327000000027],[-58.172501000000011,54.357498000000021],[-58.185271999999941,54.351661999999919],[-58.248055000000022,54.320274000000097],[-58.259726999999998,54.312766999999951],[-58.261947999999961,54.311104000000057],[-58.259170999999981,54.30971500000004],[-58.253333999999995,54.308884000000035],[-58.221107000000018,54.311661000000129],[-58.197495000000004,54.31638300000003],[-58.108337000000006,54.328049000000021],[-58.098609999999951,54.327217000000076],[-58.095832999999971,54.325828999999999],[-58.233886999999982,54.254166000000055],[-58.24722300000002,54.252777000000037],[-58.344161999999926,54.244438000000002],[-58.383056999999894,54.241104000000007],[-58.410278000000005,54.241661000000136],[-58.417220999999984,54.242493000000024],[-58.431388999999967,54.242218000000037],[-58.453888000000006,54.23721299999994],[-58.566108999999926,54.204163000000108],[-58.579169999999976,54.199996999999996],[-58.601394999999968,54.186104],[-58.611945999999989,54.178329000000076],[-58.628882999999973,54.169716000000108],[-58.6444469999999,54.165267999999969],[-58.692771999999991,54.151657],[-58.724715999999944,54.145271000000093],[-58.756949999999961,54.141106000000093],[-58.771110999999962,54.13999200000012],[-58.797782999999981,54.139717000000076],[-58.833611000000019,54.145827999999995],[-58.842773000000022,54.145827999999995],[-58.860001000000011,54.144714000000022],[-58.915276000000006,54.138603000000103],[-58.928336999999942,54.13638300000008],[-59.114165999999955,54.103881999999999],[-59.190551999999968,54.087212000000079],[-59.248336999999992,54.071937999999989],[-59.27944199999996,54.064438000000109],[-59.376105999999993,54.046943999999996],[-59.434440999999936,54.0472180000001],[-59.470275999999956,54.051659000000029],[-59.510001999999929,54.059433000000013],[-59.534446999999943,54.05832700000002],[-59.561385999999914,54.05332199999998],[-59.575561999999991,54.049438000000123],[-59.582221999999945,54.046387000000095],[-59.586945000000014,54.0430530000001],[-59.588608000000022,54.040549999999939],[-59.584723999999994,54.035271000000137],[-59.517220000000009,53.997214999999983],[-59.509726999999998,53.995544000000109],[-59.494445999999982,53.996383999999978],[-59.265839000000028,54.023048000000074],[-59.049445999999932,54.057495000000074],[-58.877220000000023,54.094993999999986],[-58.703055999999947,54.124161000000129],[-58.431113999999923,54.217209000000025],[-58.426392000000021,54.221931000000097],[-58.417502999999954,54.228043000000071],[-58.406386999999938,54.229713000000061],[-58.379439999999931,54.229988000000105],[-58.371940999999936,54.228043000000071],[-58.374442999999928,54.224434000000088],[-58.449722000000008,54.154434000000094],[-58.605003000000011,54.044158999999979],[-58.610282999999981,54.041663999999912],[-58.632499999999936,54.035271000000137],[-58.654998999999975,54.031661999999983],[-58.678054999999915,54.029160000000104],[-58.704445000000021,54.027214000000015],[-58.721663999999919,54.027489000000003],[-58.749167999999997,54.031105000000082],[-58.759170999999981,54.032767999999976],[-58.768058999999937,54.034995999999978],[-58.779723999999931,54.037773000000072],[-58.80750299999994,54.043327000000033],[-58.835830999999928,54.0472180000001],[-58.879997000000003,54.044998000000078],[-58.937499999999943,54.041663999999912],[-59.002501999999936,54.032494000000042],[-59.038611999999944,54.02693899999997],[-59.041388999999981,54.026100000000042],[-59.042777999999942,54.022766000000047],[-59.040557999999862,54.021751000000052],[-59.006950000000018,54.018051000000014],[-58.951942000000031,54.014717000000019],[-58.944159999999954,54.01527400000009],[-58.92583499999995,54.014717000000019],[-58.922500999999954,54.013885000000073],[-58.919448999999929,54.010826000000122],[-58.923057999999969,54.007216999999969],[-58.954169999999976,53.983879000000002],[-58.963057999999933,53.977767999999969],[-58.980826999999977,53.966385000000116],[-59.008338999999921,53.955268999999987],[-59.015838999999971,53.953323000000125],[-59.047782999999981,53.948326000000009],[-59.072226999999941,53.947487000000024],[-59.115279999999871,53.946381000000031],[-59.12222300000002,53.945267000000058],[-59.172774999999945,53.934990000000028],[-59.201392999999996,53.927489999999977],[-59.331946999999957,53.888329000000056],[-59.345551,53.883049000000142],[-59.363891999999908,53.872215000000097],[-59.369445999999982,53.867493000000024],[-59.393616000000009,53.8555530000001],[-59.43638599999997,53.837493999999992],[-59.463332999999977,53.830551000000014],[-59.480277999999998,53.82777400000009],[-59.527221999999995,53.822495000000117],[-59.543892000000028,53.8211060000001],[-59.596107000000018,53.819160000000011],[-59.62388599999997,53.82027400000004],[-59.635833999999988,53.820831000000112],[-59.698607999999979,53.829437000000041],[-59.716659999999933,53.831939999999975],[-59.728049999999996,53.835266000000047],[-59.755561999999941,53.838600000000042],[-59.798339999999939,53.843322999999998],[-59.807776999999874,53.84388000000007],[-59.825835999999981,53.842766000000097],[-59.852782999999988,53.839432000000102],[-59.872498000000007,53.833603000000096],[-59.877219999999966,53.83027600000014],[-59.880553999999961,53.825272000000041],[-59.989165999999955,53.779716000000121],[-60.082779000000016,53.762497000000053],[-60.121108999999933,53.625267000000065],[-60.11999499999996,53.611381999999992],[-60.11361699999992,53.602493000000095],[-60.110000999999954,53.598877000000073],[-60.105002999999954,53.594711000000132],[-60.087501999999915,53.583602999999982],[-60.068061999999998,53.573326000000009],[-60.064444999999978,53.569716999999969],[-60.063332000000003,53.565826000000072],[-60.064444999999978,53.560272000000111],[-60.069724999999949,53.555550000000039],[-60.075004999999919,53.553047000000049],[-60.133888000000013,53.528328000000101],[-60.138335999999981,53.528603000000089],[-60.347495999999978,53.626938000000109],[-60.358611999999994,53.634438000000046],[-60.361670999999944,53.639717000000019],[-60.364448999999979,53.648331000000042],[-60.368056999999965,53.652771000000087],[-60.382499999999936,53.662490999999989],[-60.390556000000004,53.665543000000071],[-60.503059000000007,53.705826000000116],[-60.511115999999959,53.708327999999995],[-60.560279999999977,53.718323000000112],[-60.648613000000012,53.737376999999981],[-60.670612000000006,53.740047000000061],[-60.705115999999975,53.744881000000021],[-60.75894900000003,53.761718999999971],[-60.769943000000012,53.765381000000104],[-60.856948999999986,53.792770000000019],[-60.887222000000008,53.751389000000074],[-60.880279999999914,53.713051000000007],[-60.834723999999937,53.721375000000023],[-60.757724999999994,53.713768000000016],[-60.747222999999963,53.71276499999999],[-60.654891999999961,53.698768999999913],[-60.644225999999946,53.696937999999989],[-60.537223999999924,53.678329000000019],[-60.511947999999961,53.669716000000051],[-60.446563999999967,53.644852000000128],[-60.431670999999994,53.639160000000118],[-60.360282999999981,53.606658999999979],[-60.354445999999996,53.603882000000112],[-60.342223999999931,53.596099999999979],[-60.334166999999979,53.589156999999943],[-60.323333999999988,53.581665000000044],[-60.298614999999927,53.568054000000075],[-60.278884999999946,53.558601000000067],[-60.253616000000022,53.549995000000138],[-60.103614999999934,53.500549000000092],[-60.106392000000028,53.457497000000046],[-60.123328999999956,53.456100000000106],[-60.138054000000011,53.453605999999979],[-60.202224999999999,53.433600999999953],[-60.40582999999998,53.364158999999972],[-60.413329999999974,53.357773000000009],[-60.412216000000001,53.349716000000058],[-60.404998999999975,53.334160000000111],[-60.395835999999974,53.331383000000017],[-60.391113000000018,53.331107999999972],[-60.301392000000021,53.336380000000133],[-60.230826999999977,53.343323000000112],[-60.216109999999901,53.345824999999991],[-60.203888000000006,53.349716000000058],[-60.198607999999865,53.350548000000003],[-60.188605999999993,53.350548000000003],[-60.18332700000002,53.349433999999974],[-60.176665999999898,53.346382000000062],[-60.175002999999947,53.343048000000067],[-60.174720999999977,53.338043000000027],[-60.180831999999896,53.329993999999999],[-60.190833999999938,53.321937999999932],[-60.202224999999999,53.313605999999936],[-60.208892999999989,53.310546999999985],[-60.283332999999914,53.289436000000137],[-60.295836999999949,53.286659000000043],[-60.333885000000009,53.280548000000124],[-60.367217999999923,53.27777100000003],[-60.389724999999999,53.27693899999997],[-60.418335000000013,53.269440000000145],[-60.416663999999969,53.268326000000002],[-60.398055999999997,53.265549000000078],[-60.316108999999926,53.264160000000061],[-60.289444000000003,53.263885000000073],[-60.133613999999966,53.283607000000131],[-60.024719000000005,53.354996000000142],[-59.953887999999949,53.406937000000028],[-59.931945999999925,53.42582700000014],[-59.84194199999996,53.476379000000065],[-59.821670999999981,53.471656999999993],[-59.806106999999997,53.471100000000092],[-59.798057999999969,53.472214000000065],[-59.789168999999958,53.474434000000088],[-59.785003999999958,53.477210999999954],[-59.783614999999998,53.481102000000021],[-59.78472899999997,53.485268000000133],[-59.799170999999944,53.491378999999995],[-59.823615999999959,53.49332400000003],[-59.858611999999994,53.496101000000124],[-59.89916999999997,53.516936999999928],[-59.901108000000022,53.519714000000022],[-59.898337999999967,53.52416199999999],[-59.893058999999994,53.528603000000089],[-59.875556999999958,53.534996000000035],[-59.855835000000013,53.536942000000124],[-59.847495999999978,53.536658999999986],[-59.80999799999995,53.529716000000008],[-59.773613000000012,53.517769000000044],[-59.763061999999934,53.515274000000034],[-59.755561999999941,53.514998999999989],[-59.740279999999984,53.515831000000105],[-59.621108999999933,53.527214000000129],[-59.605834999999956,53.529716000000008],[-59.560829000000012,53.540550000000053],[-59.53082999999998,53.548882000000049],[-59.517501999999979,53.553878999999938],[-59.478333000000021,53.572769000000108],[-59.329726999999991,53.65387700000008],[-59.162216000000001,53.671379000000115],[-59.079726999999934,53.680550000000096],[-59.074172999999917,53.683051999999975],[-59.023887999999999,53.713882000000012],[-59.01916499999993,53.719154000000117],[-59.010833999999932,53.744438000000116],[-59.010559000000001,53.746658000000139],[-59.018889999999999,53.749161000000129],[-59.035003999999958,53.74721500000004],[-59.041388999999981,53.748604],[-59.046111999999937,53.75277699999998],[-59.06527699999998,53.791107000000068],[-59.066390999999896,53.794998000000135],[-59.058334000000002,53.803322000000037],[-59.049445999999932,53.810822000000087],[-59.042777999999942,53.81499500000001],[-58.870276999999987,53.904709000000139],[-58.550277999999935,54.009163000000001],[-58.326110999999969,54.046271999999988],[-58.216942000000017,54.071770000000129],[-58.204612999999995,54.074604000000136],[-58.19377499999996,54.075939000000062],[-58.180446999999958,54.075436000000025],[-58.156780000000026,54.071434000000011],[-58.15060799999992,54.069438999999988],[-58.028610000000015,54.079720000000123],[-57.951942000000031,54.070831000000055],[-57.938605999999993,54.070273999999984],[-57.815552000000025,54.066101000000003],[-57.797501000000011,54.066101000000003],[-57.789443999999946,54.068603999999993],[-57.786391999999921,54.071662999999944],[-57.786117999999988,54.075271999999984],[-57.789443999999946,54.079720000000123],[-57.805556999999908,54.086654999999951],[-57.851668999999958,54.100273000000016],[-57.869720000000029,54.103050000000053],[-58.07650000000001,54.124489000000096],[-58.152495999999928,54.129158000000018],[-58.167163999999957,54.127827000000025],[-58.181503000000021,54.124660000000006],[-58.195830999999998,54.120159000000115],[-58.210834999999918,54.113995000000102],[-58.214668000000017,54.111828000000003],[-58.216994999999997,54.110493000000076],[-58.223000000000013,54.103992000000062],[-58.226832999999942,54.101826000000074],[-58.229831999999931,54.100822000000107],[-58.236834999999928,54.099327000000073],[-58.245166999999981,54.099158999999986],[-58.254332999999974,54.101322000000096],[-58.415276000000006,54.135269000000108],[-58.4183349999999,54.139717000000076],[-58.417220999999984,54.143051000000071],[-58.383613999999966,54.189712999999983],[-58.379439999999931,54.193877999999984],[-58.373885999999914,54.198326000000122],[-58.367500000000007,54.201934999999935],[-58.355559999999912,54.20638300000013],[-58.203613000000018,54.234161000000029],[-58.177779999999984,54.236938000000123],[-58.030829999999924,54.235550000000046],[-58.003058999999951,54.233879000000002],[-57.99361399999998,54.230819999999994],[-57.973609999999951,54.221656999999993],[-57.961112999999898,54.217766000000097],[-57.935271999999998,54.211662000000103],[-57.866660999999965,54.197769000000051],[-57.856392000000028,54.196098000000006],[-57.659163999999919,54.199432000000002],[-57.468329999999924,54.193877999999984],[-57.428336999999885,54.18249499999996],[-57.384170999999981,54.150543000000027],[-57.385559000000001,54.145827999999995],[-57.389998999999989,54.141106000000093],[-57.383613999999966,54.128875999999991],[-57.370833999999945,54.106384000000048],[-57.367774999999995,54.10193600000008],[-57.323333999999988,54.039719000000105],[-57.221106999999961,53.918326999999977],[-57.115279999999984,53.838600000000042],[-57.092773000000022,53.831664999999987],[-57.083611000000019,53.828605999999979],[-57.079726999999991,53.826660000000118],[-57.076392999999996,53.823051000000078],[-57.077498999999932,53.819442999999978],[-57.151389999999992,53.735824999999977],[-57.302498000000014,53.679161000000079],[-57.314720000000023,53.676383999999985],[-57.387504999999976,53.658325000000048],[-57.429169000000002,53.647491000000002],[-57.484169000000009,53.631660000000011],[-57.49111199999993,53.628876000000048],[-57.52305599999994,53.612495000000081],[-57.538894999999968,53.602218999999991],[-57.544448999999986,53.597771000000023],[-57.549995000000024,53.591934000000037],[-57.550551999999982,53.587494000000049],[-57.545279999999991,53.584717000000126],[-57.541114999999991,53.585266000000104],[-57.533332999999914,53.587494000000049],[-57.52777900000001,53.591377000000136],[-57.49361399999998,53.609436000000073],[-57.479720999999984,53.61332700000014],[-57.458054000000004,53.617493000000081],[-57.444716999999969,53.618599000000074],[-57.373610999999926,53.606658999999979],[-57.316665999999998,53.579720000000009],[-57.313613999999973,53.573608000000036],[-57.303054999999915,53.530823000000112],[-57.302498000000014,53.526382000000012],[-57.303329000000019,53.509437999999932],[-57.305557000000022,53.49971800000003],[-57.306664000000012,53.496384000000091],[-57.317779999999971,53.47554800000006],[-57.328887999999949,53.461937000000091],[-57.332503999999915,53.458328000000051],[-57.345832999999914,53.450546000000088],[-57.336945000000014,53.440269000000114],[-57.316390999999953,53.435822000000087],[-57.303329000000019,53.43332700000002],[-57.297501000000011,53.433052000000032],[-57.289169000000015,53.433875999999998],[-57.283332999999971,53.438598999999954],[-57.293616999999983,53.467766000000097],[-57.285277999999948,53.477485999999999],[-57.281386999999995,53.479430999999977],[-57.248610999999983,53.494156000000089],[-57.23750299999989,53.498604000000057],[-57.130279999999971,53.593880000000127],[-57.111389000000031,53.621658000000082],[-57.06138599999997,53.671379000000115],[-57.014724999999942,53.711380000000133],[-56.973610000000008,53.724434000000031],[-56.959442000000024,53.728325000000098],[-56.926391999999964,53.730270000000075],[-56.916663999999969,53.728600000000085],[-56.860832000000016,53.722488000000112],[-56.797226000000023,53.719986000000063],[-56.660827999999924,53.720543000000134],[-56.62222300000002,53.733604000000071],[-56.628608999999983,53.741936000000067],[-56.628333999999995,53.744156000000032],[-56.626105999999936,53.745827000000133],[-56.603332999999964,53.759163000000058],[-56.483611999999994,53.782494000000099],[-56.464691000000016,53.782272000000034],[-56.448333999999988,53.777771000000143],[-56.431670999999994,53.764442000000031],[-56.426948999999979,53.757216999999969],[-56.413886999999988,53.727768000000026],[-56.414443999999946,53.721931000000041],[-56.415275999999949,53.720543000000134],[-56.421669000000009,53.716933999999924],[-56.429169000000002,53.71527100000003],[-56.438048999999921,53.71527100000003],[-56.446944999999971,53.716933999999924],[-56.482773000000009,53.718048000000124],[-56.506393000000003,53.716933999999924],[-56.521666999999979,53.714714000000129],[-56.544448999999986,53.709717000000012],[-56.662215999999944,53.679993000000024],[-56.680283000000031,53.672768000000133],[-56.627220000000023,53.650826000000052],[-56.618057000000022,53.647491000000002],[-56.340552999999943,53.588325999999938],[-56.320281999999963,53.585266000000104],[-56.225554999999872,53.577217000000076],[-56.21665999999999,53.577217000000076],[-56.205832999999984,53.581665000000044],[-56.15582999999998,53.591660000000104],[-56.078613000000018,53.58387799999997],[-56.069167999999934,53.582771000000037],[-56.031386999999995,53.57638500000013],[-56.027221999999995,53.575272000000041],[-55.991385999999977,53.552216000000044],[-55.978881999999942,53.542221000000097],[-55.990836999999942,53.510277000000087],[-55.996947999999918,53.505272000000048],[-56.008780999999942,53.503666000000067],[-56.01294699999994,53.503993999999977],[-56.017444999999952,53.505996999999979],[-56.018611999999962,53.508495000000096],[-56.021110999999962,53.513054000000011],[-56.022498999999982,53.516388000000006],[-56.047501000000011,53.533607000000075],[-56.063332000000003,53.540833000000021],[-56.145836000000031,53.553047000000049],[-56.208892999999989,53.559433000000126],[-56.242500000000007,53.559990000000028],[-56.258338999999921,53.559158000000139],[-56.264724999999999,53.555550000000039],[-56.266113000000018,53.549995000000138],[-56.263335999999924,53.540276000000119],[-56.259170999999924,53.537773000000129],[-56.145553999999947,53.500000000000114],[-56.115279999999927,53.491936000000123],[-56.077498999999932,53.483330000000024],[-56.037780999999995,53.461655000000007],[-56.027442999999948,53.454326999999978],[-55.965552999999943,53.40915700000005],[-55.965836000000024,53.40554800000001],[-55.96944400000001,53.400542999999971],[-56.00417299999998,53.388045999999974],[-56.025275999999963,53.37971500000009],[-56.03167000000002,53.376099000000011],[-56.03833800000001,53.367493000000138],[-56.029998999999975,53.365273000000116],[-56.020835999999974,53.364158999999972],[-56.013061999999991,53.364440999999999],[-56.001396,53.366661000000022],[-55.988051999999982,53.369713000000104],[-55.981383999999935,53.373047000000099],[-55.969497999999874,53.380775000000028],[-55.959723999999937,53.390273999999977],[-55.953132999999923,53.392441000000019],[-55.938605999999936,53.395271000000037],[-55.925116999999943,53.396133000000134],[-55.912216000000001,53.394997000000103],[-55.893616000000009,53.389717000000076],[-55.881385999999964,53.382767000000001],[-55.808051999999975,53.340546000000018],[-55.807456999999943,53.284966000000111],[-55.745834000000002,53.249435000000119],[-55.747498000000007,53.143607999999972],[-55.749442999999985,53.139717000000076],[-55.754172999999923,53.134995000000004],[-55.833312999999919,53.097931000000017],[-55.879856000000018,53.073795000000018],[-55.91194200000001,53.028327999999988],[-55.926666000000012,53.023323000000119],[-55.934440999999936,53.021660000000054],[-55.943329000000006,53.021102999999925],[-55.964447000000007,53.021660000000054],[-55.990836999999942,53.024162000000103],[-56.008338999999978,53.02748900000006],[-56.025001999999972,53.033606999999961],[-56.034172000000012,53.036110000000122],[-56.056106999999997,53.038329999999974],[-56.160278000000005,53.033606999999961],[-56.165833000000021,53.032768000000033],[-56.166945999999996,53.029434000000037],[-56.165276000000006,53.024993999999992],[-56.040840000000003,53.005829000000062],[-55.958611000000019,52.99610100000001],[-55.949439999999981,52.994995000000017],[-55.889442000000031,52.969154000000117],[-55.885276999999974,52.966384999999946],[-55.834166999999979,52.921936000000017],[-55.80471799999998,52.877213000000097],[-55.803328999999962,52.839431999999931],[-55.803885999999977,52.831940000000031],[-55.808051999999975,52.82638500000013],[-55.841109999999958,52.827217000000019],[-55.879165999999941,52.824165000000107],[-55.973610000000008,52.810547000000099],[-55.987777999999992,52.806099000000131],[-56.060829000000012,52.766106000000093],[-55.964721999999938,52.681664000000069],[-55.96055599999994,52.679161000000136],[-55.950553999999897,52.677216000000101],[-55.933608999999933,52.675552000000096],[-55.918335000000013,52.677490000000034],[-55.874717999999973,52.68332700000002],[-55.786948999999993,52.683601000000124],[-55.779167000000029,52.682495000000074],[-55.77305599999994,52.679161000000136],[-55.768889999999942,52.674995000000024],[-55.740836999999999,52.646385000000009],[-55.73860899999994,52.64276899999993],[-55.739998000000014,52.639434999999935],[-55.757506999999919,52.614440999999999],[-55.769447000000014,52.608047000000113],[-55.792777999999998,52.60166200000009],[-55.888892999999996,52.608047000000113],[-55.898613000000012,52.609993000000031],[-55.939940999999976,52.628268999999989],[-55.958777999999995,52.635604999999941],[-56.032775999999956,52.654709000000025],[-56.048889000000031,52.656096999999932],[-56.075004999999919,52.655822999999998],[-56.108611999999937,52.655266000000097],[-56.122771999999941,52.651100000000042],[-56.123885999999857,52.647491000000002],[-56.119720000000029,52.643326000000002],[-56.112007000000006,52.641036999999983],[-56.099060000000009,52.641006000000118],[-56.071945000000028,52.644714000000135],[-56.06361400000003,52.644714000000135],[-56.054442999999992,52.643608000000086],[-55.982773000000009,52.622490000000028],[-55.974998000000028,52.619713000000104],[-55.970832999999914,52.615546999999992],[-55.972770999999966,52.610825000000091],[-55.985275000000001,52.602218999999991],[-56.039169000000015,52.584991000000059],[-56.155777,52.557438000000104],[-56.172611000000018,52.553608000000111],[-56.186110999999983,52.550938000000031],[-56.200779000000011,52.550938000000031],[-56.253058999999951,52.543884000000048],[-56.297500999999954,52.563606000000107],[-56.315552000000025,52.572219999999959],[-56.322501999999986,52.574715000000026],[-56.333327999999995,52.576942000000088],[-56.356391999999971,52.580276000000026],[-56.456389999999942,52.592765999999983],[-56.478607000000011,52.594437000000028],[-56.496871999999939,52.594147000000021],[-56.452782000000013,52.56888600000002],[-56.444160000000011,52.565826000000129],[-56.28055599999999,52.534996000000092],[-56.262221999999952,52.531662000000097],[-56.19755600000002,52.525105000000053],[-56.153556999999921,52.526103999999918],[-55.988892000000021,52.506386000000077],[-55.829726999999934,52.51249700000011],[-55.761390999999946,52.498878000000047],[-55.751395999999943,52.496101000000124],[-55.746947999999975,52.493881000000101],[-55.743057000000022,52.490829000000019],[-55.735001000000011,52.478599999999972],[-55.734169000000009,52.474709000000075],[-55.735832000000016,52.469154000000003],[-55.764450000000011,52.45388000000014],[-55.767501999999922,52.451103000000046],[-55.766395999999986,52.447769000000051],[-55.732772999999952,52.442215000000033],[-55.706107999999915,52.441658000000132],[-55.676666000000012,52.441658000000132],[-55.656661999999983,52.441933000000006],[-55.648612999999955,52.439712999999983],[-55.645554000000004,52.437492000000077],[-55.642775999999969,52.432770000000005],[-55.642775999999969,52.427773000000059],[-55.641669999999976,52.368881000000044],[-55.641944999999964,52.363883999999928],[-55.643332999999984,52.358330000000137],[-55.647780999999952,52.354164000000026],[-55.65444199999996,52.351661999999976],[-55.782501000000025,52.334160000000111],[-55.825004999999976,52.343048000000124],[-55.92861199999993,52.369438000000116],[-56.068335999999931,52.407210999999961],[-56.173614999999984,52.438881000000038],[-56.180556999999965,52.440826000000072],[-56.194442999999922,52.442215000000033],[-56.196945000000028,52.439987000000087],[-56.195273999999984,52.435822000000087],[-56.191382999999973,52.431107000000054],[-56.181388999999967,52.423050000000103],[-56.169448999999986,52.416100000000029],[-55.956664999999987,52.350272999999959],[-55.857779999999991,52.325271999999984],[-55.707222000000002,52.248329000000126],[-55.677222999999969,52.208327999999938],[-55.68638599999997,52.109436000000017],[-55.696945000000028,52.088326000000052],[-55.701667999999927,52.082214000000079],[-55.896666999999923,51.950828999999999],[-56.023330999999985,51.901932000000102],[-56.203330999999935,51.793326999999977],[-56.209723999999994,51.789719000000048],[-56.235832000000016,51.783607000000075],[-56.346663999999976,51.759720000000016],[-56.468886999999995,51.709434999999985],[-56.689720000000023,51.592216000000008],[-56.764450000000011,51.548607000000061],[-56.804169000000002,51.507773999999984],[-56.805832000000009,51.502219999999966],[-56.808891000000017,51.496384000000091],[-56.813613999999973,51.491661000000136],[-56.942771999999991,51.427489999999921],[-56.949721999999952,51.424713000000054],[-56.956947000000014,51.423050000000103],[-57.005561999999941,51.41944100000012],[-57.078056000000004,51.41443600000008],[-57.104239999999947,51.412674000000095],[-57.142226999999991,51.424164000000076],[-57.232215999999937,51.498604000000114],[-57.237777999999992,51.502219999999966],[-57.247222999999963,51.504166000000055],[-57.255561999999998,51.504439999999988],[-57.263617999999894,51.503608999999983],[-57.421386999999925,51.480545000000006],[-57.437774999999988,51.461105000000032],[-57.43638599999997,51.45638300000013],[-57.440833999999938,51.449997000000053],[-57.447495000000004,51.447487000000024],[-57.454720000000009,51.445541000000105],[-57.58666199999999,51.429718000000094],[-57.602225999999916,51.428047000000049],[-57.676665999999955,51.429993000000081],[-57.685828999999956,51.430824000000086],[-57.688605999999936,51.435547000000099],[-57.692497000000003,51.455268999999987],[-57.691939999999931,51.461105000000032],[-57.689437999999939,51.466385000000059],[-57.705275999999969,51.469437000000028],[-57.730826999999863,51.471099999999922],[-57.748054999999965,51.472214000000122],[-57.883888000000013,51.392493999999999],[-57.889998999999989,51.388885000000016],[-57.942771999999991,51.356102000000021],[-57.954720000000009,51.34804500000007],[-57.966110000000015,51.338599999999985],[-57.975554999999986,51.328330999999935],[-57.986664000000019,51.319442999999978],[-58.006950000000018,51.31249200000002],[-58.021384999999952,51.308884000000091],[-58.211387999999943,51.271659999999997],[-58.297225999999966,51.268599999999992],[-58.305556999999965,51.268599999999992],[-58.324448000000018,51.272217000000126],[-58.407776000000013,51.295547000000056],[-58.620551999999975,51.277214000000015],[-58.628051999999968,51.275551000000064],[-58.675003000000004,51.255271999999991],[-58.680000000000007,51.250000000000057],[-58.680556999999908,51.244156000000032],[-58.680000000000007,51.234161000000086],[-58.678336999999999,51.229431000000091],[-58.675559999999905,51.224991000000045],[-58.671111999999937,51.220824999999991],[-58.665549999999996,51.216934000000094],[-58.635833999999932,51.197769000000108],[-58.621383999999978,51.191100999999946],[-58.592223999999931,51.18471500000004],[-58.61333499999995,51.157494000000042],[-58.618606999999997,51.153046000000074],[-58.630554000000018,51.145828000000051],[-58.713615000000004,51.106102000000078],[-58.726944000000003,51.099998000000028],[-58.733329999999967,51.09804500000007],[-58.785278000000005,51.088042999999971],[-58.914718999999991,51.052490000000091],[-58.928054999999972,51.048607000000004],[-58.990836999999885,51.021935000000099],[-59.003333999999938,51.015549000000021],[-59.006110999999976,51.009719999999959],[-59.003616000000022,51.004440000000102],[-58.99888599999997,51.001106000000107],[-58.990279999999984,50.998046999999985],[-58.981383999999935,50.99721500000004],[-58.975272999999959,51.000832000000003],[-58.96832999999998,51.002495000000124],[-58.959441999999967,51.001663000000008],[-58.954720000000009,50.996658000000139],[-58.952498999999989,50.992493000000138],[-58.946662999999944,50.833878000000027],[-58.948051000000021,50.828331000000048],[-59.010559000000001,50.754166000000055],[-59.015282000000013,50.748604000000114],[-59.041672000000005,50.751389000000131],[-59.061385999999914,50.755554000000132],[-59.068335999999988,50.759163000000115],[-59.087218999999948,50.775268999999923],[-59.093055999999933,50.78943600000008],[-59.09444400000001,50.799438000000066],[-59.094718999999941,50.815269000000058],[-59.118889000000024,50.803604000000121],[-59.15582999999998,50.771103000000039],[-59.186385999999914,50.74221799999998],[-59.228881999999999,50.738327000000083],[-59.397223999999994,50.657211000000132],[-59.454444999999964,50.621933000000126],[-59.459723999999937,50.61721],[-59.51916499999993,50.552773000000002],[-59.570556999999951,50.493607000000054],[-59.580001999999922,50.482765000000029],[-59.585274000000027,50.478043000000127],[-59.591667000000029,50.475266000000033],[-59.598610000000008,50.473602000000028],[-59.733611999999937,50.444992000000013],[-59.778336000000024,50.438881000000094],[-59.803885999999977,50.438881000000094],[-59.810555000000022,50.437492000000134],[-59.816108999999926,50.433876000000055],[-59.821670999999981,50.429436000000067],[-59.872222999999963,50.381103999999993],[-59.881667999999934,50.371658000000025],[-59.881667999999934,50.366386000000091],[-59.858893999999964,50.329436999999984],[-59.853888999999924,50.326102999999989],[-59.844718999999998,50.324440000000095],[-59.837775999999963,50.326102999999989],[-59.834723999999881,50.338043000000084],[-59.834998999999982,50.343322999999998],[-59.830832999999984,50.349434000000088],[-59.824722000000008,50.351662000000033],[-59.815001999999993,50.349159000000043],[-59.813331999999946,50.344154000000003],[-59.817223000000013,50.33277099999998],[-59.827498999999989,50.323607999999979],[-59.833885000000009,50.319160000000011],[-59.860282999999981,50.310547000000042],[-59.905273000000022,50.291107000000068],[-60.005004999999983,50.248878000000104],[-60.114448999999922,50.233046999999942],[-60.147781000000009,50.274162000000103],[-60.184440999999993,50.279716000000121],[-60.236945999999989,50.268051000000014],[-60.291671999999949,50.245270000000005],[-60.298614999999927,50.243324000000143],[-60.324447999999961,50.244713000000104],[-60.360001000000011,50.250831999999946],[-60.404442000000017,50.251389000000074],[-60.458892999999989,50.251106000000107],[-60.48332999999991,50.250831999999946],[-60.491668999999945,50.250548999999978],[-60.498610999999926,50.248604],[-60.511672999999973,50.242493000000138],[-60.522223999999881,50.234718000000044],[-60.52694699999995,50.229156000000103],[-60.583611000000019,50.208327999999995],[-60.591666999999973,50.208046000000138],[-60.674445999999989,50.219986000000006],[-60.710555999999997,50.2227630000001],[-60.838607999999965,50.214995999999985],[-61.052222999999969,50.215546000000018],[-61.289443999999946,50.199158000000125],[-61.427779999999984,50.171379000000115],[-61.505561999999941,50.152489000000003],[-61.583610999999905,50.132492000000127],[-61.650832999999921,50.109993000000145],[-61.720832999999914,50.091934000000037],[-61.731612999999982,50.101936000000023],[-61.742106999999976,50.105270000000019],[-61.746277000000021,50.107269000000031],[-61.748280000000022,50.109940000000051],[-61.712104999999951,50.12226899999996],[-61.703780999999992,50.124771000000067],[-61.699443999999971,50.125435000000095],[-61.694442999999922,50.125435000000095],[-61.671386999999982,50.136940000000095],[-61.620551999999918,50.147491000000002],[-61.593055999999876,50.155266000000097],[-61.579726999999991,50.160820000000058],[-61.574447999999904,50.165543000000071],[-61.571945000000028,50.171661000000029],[-61.573891000000003,50.181664000000069],[-61.577224999999999,50.186104000000057],[-61.58916499999998,50.188880999999981],[-61.593612999999948,50.185546999999985],[-61.602225999999916,50.174438000000066],[-61.607779999999991,50.170829999999967],[-61.622222999999963,50.166100000000142],[-61.731833999999935,50.144268000000125],[-61.746997999999905,50.144431999999995],[-61.757503999999983,50.14527099999998],[-61.761832999999967,50.147269999999992],[-61.763663999999949,50.149768999999992],[-61.762999999999977,50.153271000000018],[-61.760665999999958,50.157097000000078],[-61.794448999999986,50.159431000000097],[-61.795279999999991,50.169991000000039],[-61.796950999999979,50.174713000000111],[-61.804442999999992,50.183326999999963],[-61.848884999999996,50.222488000000112],[-61.864723000000026,50.228600000000085],[-61.898338000000024,50.233604000000071],[-61.907218999999941,50.234160999999972],[-61.963332999999977,50.236107000000004],[-61.977218999999991,50.231934000000081],[-61.989723000000026,50.226379000000009],[-61.996666000000005,50.224158999999986],[-62.004172999999923,50.223045000000013],[-62.202498999999989,50.23443600000013],[-62.268889999999999,50.259720000000129],[-62.317779999999971,50.281380000000127],[-62.328056000000004,50.283882000000006],[-62.397498999999982,50.294441000000063],[-62.404167000000029,50.29222100000004],[-62.415549999999939,50.28472099999999],[-62.425560000000019,50.275269000000037],[-62.42999999999995,50.269714000000135],[-62.439994999999954,50.260551000000135],[-62.446105999999986,50.257500000000107],[-62.572226999999941,50.274712000000136],[-62.746947999999918,50.28472099999999],[-63.112502999999947,50.291382000000112],[-63.158332999999971,50.260277000000031],[-63.159163999999976,50.25471500000009],[-63.228607000000011,50.234718000000044],[-63.236663999999962,50.23443600000013],[-63.371940999999993,50.236655999999982],[-63.469443999999953,50.257216999999969],[-63.565552000000025,50.264159999999947],[-63.616660999999908,50.266663000000108],[-63.649726999999928,50.272766000000047],[-63.687499999999886,50.282494000000099],[-63.693885999999964,50.291939000000013],[-63.698607999999979,50.295272999999952],[-63.707503999999972,50.297775000000058],[-63.803328999999906,50.311661000000015],[-63.821388000000013,50.312209999999993],[-63.976104999999961,50.305549999999982],[-64.067229999999995,50.29222100000004],[-64.127776999999924,50.271935000000042],[-64.140563999999927,50.266937000000041],[-64.154175000000009,50.262497000000053],[-64.162215999999944,50.262214999999969],[-64.215285999999935,50.264999000000103],[-64.234726000000023,50.266937000000041],[-64.262787000000003,50.271660000000054],[-64.365279999999984,50.29222100000004],[-64.37388599999997,50.294998000000135],[-64.402221999999995,50.307495000000131],[-64.417770000000019,50.313048999999921],[-64.436661000000015,50.317772000000105],[-64.446105999999986,50.319160000000011],[-64.455001999999922,50.319442999999978],[-64.46305799999999,50.319160000000011],[-64.470839999999953,50.317772000000105],[-64.510009999999966,50.303046999999992],[-64.611938000000009,50.281380000000127],[-64.628052000000025,50.279160000000104],[-64.659438999999963,50.277214000000015],[-64.725006000000008,50.274436999999978],[-64.899993999999936,50.270828000000108],[-65.180557000000022,50.28555300000005],[-65.189986999999917,50.2866590000001],[-65.222777999999948,50.297775000000058],[-65.237503000000004,50.303879000000052],[-65.242492999999854,50.307769999999948],[-65.275009000000011,50.308044000000052],[-65.464447000000007,50.299437999999952],[-65.486663999999962,50.295272999999952],[-65.521666999999979,50.285828000000095],[-65.589995999999985,50.275269000000037],[-65.690552000000025,50.261108000000036],[-65.747771999999998,50.256943000000035],[-65.829453000000001,50.253326000000072],[-65.845839999999953,50.258888000000013],[-65.864440999999999,50.26888300000013],[-65.876389000000017,50.276382000000126],[-65.898055999999883,50.284995999999978],[-65.918059999999969,50.288329999999974],[-65.952498999999932,50.288887000000045],[-65.974166999999966,50.283882000000006],[-65.986937999999896,50.278328000000045],[-65.993057000000022,50.275269000000037],[-66.004180999999903,50.268326000000059],[-66.024718999999948,50.251389000000074],[-66.043334999999956,50.222214000000008],[-66.083327999999995,50.193603999999937],[-66.089721999999881,50.191375999999991],[-66.163329999999974,50.197212000000036],[-66.314163000000008,50.209717000000012],[-66.406386999999938,50.239989999999977],[-66.40695199999999,50.245270000000005],[-66.412215999999944,50.260551000000135],[-66.416945999999996,50.264442000000031],[-66.423049999999932,50.267768999999987],[-66.433318999999983,50.269714000000135],[-66.441665999999941,50.269157000000064],[-66.456389999999999,50.26638800000012],[-66.469727000000034,50.261939999999981],[-66.494720000000029,50.249435000000005],[-66.511948000000018,50.239158999999972],[-66.700835999999924,50.102493000000095],[-66.723327999999924,50.078331000000048],[-66.861937999999896,50.022491000000116],[-66.882492000000013,50.016662999999994],[-66.896118000000001,50.011940000000038],[-66.920273000000009,50.000275000000101],[-66.942489999999907,49.985825000000034],[-66.958617999999944,49.974709000000075],[-66.963622999999984,49.969154000000003],[-66.966399999999965,49.963326000000052],[-66.975280999999995,49.943603999999993],[-66.975829999999974,49.937767000000065],[-66.965560999999923,49.919441000000063],[-66.963332999999977,49.914711000000011],[-67.016402999999855,49.854712999999947],[-67.061385999999857,49.841377000000023],[-67.065276999999924,49.845543000000077],[-67.073897999999929,49.848045000000013],[-67.095839999999896,49.843605000000139],[-67.115829000000019,49.836655000000121],[-67.121658000000025,49.833327999999995],[-67.137222000000008,49.821381000000031],[-67.146666999999979,49.812492000000134],[-67.151397999999915,49.806937999999946],[-67.162216000000001,49.79055000000011],[-67.174164000000019,49.764717000000132],[-67.238892000000021,49.590546000000074],[-67.240828999999962,49.578880000000083],[-67.241378999999995,49.56749700000006],[-67.240828999999962,49.556655999999975],[-67.239990000000034,49.551659000000029],[-67.235000999999954,49.53555300000005],[-67.228881999999999,49.510277000000031],[-67.229171999999949,49.483047000000113],[-67.230834999999956,49.476936000000023],[-67.233886999999982,49.47026800000009],[-67.369155999999975,49.332771000000037],[-67.375,49.327217000000019],[-67.386123999999995,49.322220000000073],[-67.402785999999878,49.3211060000001],[-67.420273000000009,49.321663000000001],[-67.438599000000011,49.324440000000095],[-67.473617999999988,49.326660000000118],[-67.569732999999985,49.329994000000113],[-67.577498999999989,49.329163000000108],[-67.706389999999999,49.312767000000065],[-67.939163000000008,49.287773000000129],[-67.975280999999995,49.284996000000035],[-68.119720000000029,49.271660000000054],[-68.127212999999983,49.269440000000031],[-68.131942999999922,49.266106000000093],[-68.136397999999929,49.260550999999964],[-68.138900999999919,49.25471500000009],[-68.140563999999927,49.248604000000057],[-68.143889999999885,49.23054500000012],[-68.180832000000009,49.12193300000007],[-68.184997999999894,49.116104000000064],[-68.189712999999927,49.112212999999997],[-68.194992000000013,49.10833000000008],[-68.201110999999912,49.105552999999986],[-68.221663999999976,49.100273000000072],[-68.369445999999982,49.069443000000035],[-68.442489999999964,49.095543000000077],[-68.571395999999993,49.061104],[-68.59056099999998,49.054161000000022],[-68.606948999999929,49.042496000000142],[-68.626099000000011,49.023880000000133],[-68.696380999999974,48.939987000000087],[-68.876937999999996,48.85193600000008],[-69.047775000000001,48.773048000000074],[-69.06082200000003,48.767494000000056],[-69.064437999999996,48.762496999999996],[-69.084732000000031,48.72165700000005],[-69.089446999999893,48.709435000000042],[-69.093612999999948,48.691933000000006],[-69.096114999999941,48.674995000000138],[-69.099441999999897,48.663322000000107],[-69.106109999999944,48.644996999999989],[-69.111937999999896,48.63249200000007],[-69.123885999999914,48.614716000000101],[-69.142501999999922,48.594994000000042],[-69.14805599999994,48.591102999999976],[-69.15972899999997,48.58526599999999],[-69.166397000000018,48.583328000000051],[-69.184158000000025,48.584717000000069],[-69.201675000000023,48.588599999999985],[-69.218612999999948,48.589713999999958],[-69.226669000000015,48.588882000000069],[-69.231383999999935,48.585548000000074],[-69.236388999999917,48.581108000000029],[-69.265288999999939,48.541663999999969],[-69.279448999999943,48.515831000000048],[-69.282776000000013,48.504166000000112],[-69.283324999999934,48.493049999999982],[-69.282500999999968,48.482490999999982],[-69.292770000000019,48.457771000000093],[-69.301102000000014,48.446655000000135],[-69.432769999999948,48.307770000000005],[-69.437774999999988,48.303047000000049],[-69.454726999999991,48.291939000000013],[-69.597777999999948,48.207497000000046],[-69.672775000000001,48.14388300000013],[-69.683884000000035,48.137772000000041],[-69.691375999999991,48.137496999999996],[-69.80082699999997,48.153603000000032],[-69.810271999999941,48.155822999999998],[-69.734725999999966,48.113609000000054],[-69.730285999999978,48.10943600000013],[-69.732498000000021,48.103607000000125],[-69.786391999999864,47.994713000000047],[-69.839447000000007,47.907210999999961],[-69.925827000000027,47.773048000000074],[-69.93582200000003,47.764441999999974],[-70.002227999999945,47.711936999999978],[-70.015563999999983,47.702773999999977],[-70.071945000000028,47.674713000000054],[-70.077498999999989,47.672493000000088],[-70.091109999999958,47.669159000000093],[-70.132767000000001,47.644996999999989],[-70.179992999999968,47.608330000000024],[-70.190276999999924,47.599159000000043],[-70.202498999999989,47.583053999999947],[-70.206116000000009,47.576660000000118],[-70.208343999999897,47.570549000000028],[-70.209441999999967,47.553879000000109],[-70.207503999999915,47.533051],[-70.208618000000001,47.527214000000072],[-70.217223999999931,47.508330999999998],[-70.225554999999929,47.496384000000035],[-70.2308349999999,47.492493000000138],[-70.299727999999959,47.466933999999924],[-70.341674999999952,47.460548000000017],[-70.461944999999901,47.429993000000024],[-70.502501999999993,47.390830999999991],[-70.555831999999953,47.322769000000108],[-70.56639100000001,47.304161000000022],[-70.568618999999956,47.298049999999932],[-70.571120999999948,47.281104999999968],[-70.574172999999973,47.274437000000034],[-70.586120999999991,47.257773999999927],[-70.699431999999945,47.126099000000011],[-70.721664000000033,47.101387000000102],[-70.733063000000016,47.095543000000134],[-70.792496000000028,47.068329000000119],[-70.817504999999926,47.058884000000035],[-70.823623999999938,47.056938000000002],[-70.866942999999935,47.051383999999985],[-70.893341000000021,47.045273000000066],[-70.923049999999932,47.032211000000075],[-70.973617999999988,47.003326000000015],[-71.113616999999863,46.912491000000045],[-71.182495000000017,46.864158999999972],[-71.197495000000004,46.852493000000038],[-71.198607999999979,46.846382000000119],[-71.299164000000019,46.742218000000094],[-71.291945999999996,46.744156000000032],[-71.279723999999931,46.749161000000072],[-71.209441999999967,46.782494000000099],[-71.19888299999991,46.788887000000045],[-71.188888999999961,46.796661000000029],[-71.184432999999956,46.802773000000059],[-71.178329000000019,46.815269000000114],[-71.166396999999904,46.831108000000029],[-71.156112999999948,46.838882000000069],[-71.149993999999936,46.842491000000052],[-71.143615999999952,46.844711000000075],[-71.130554000000018,46.847487999999998],[-71.115279999999984,46.84887700000013],[-71.100280999999995,46.84887700000013],[-71.083327999999995,46.847487999999998],[-70.986937999999952,46.854164000000083],[-70.772232000000031,46.915825000000041],[-70.766402999999912,46.918884000000048],[-70.755004999999983,46.936652999999978],[-70.744445999999925,46.943320999999912],[-70.737502999999947,46.946098000000006],[-70.638061999999991,46.981658999999979],[-70.618880999999931,46.988045000000056],[-70.604996000000028,46.990273000000059],[-70.575012000000015,46.993324000000086],[-70.553328999999962,46.998047000000042],[-70.541381999999942,47.00249500000001],[-70.530288999999925,47.007773999999984],[-70.506957999999997,47.02027099999998],[-70.486389000000031,47.033607000000131],[-70.461120999999935,47.053604000000007],[-70.334166999999923,47.15554800000001],[-70.310271999999941,47.176659000000086],[-70.273055999999997,47.213608000000136],[-70.111114999999984,47.340546000000131],[-70.078888000000006,47.361106999999947],[-70.048888999999974,47.386107999999979],[-70.044158999999922,47.390830999999991],[-70.040833000000021,47.397217000000069],[-70.039992999999868,47.402771000000087],[-69.967498999999975,47.505829000000062],[-69.90194699999995,47.537216000000001],[-69.896392999999932,47.541107000000068],[-69.805832000000009,47.613052000000096],[-69.65943900000002,47.744713000000104],[-69.639998999999875,47.762772000000041],[-69.593063000000029,47.808884000000091],[-69.556655999999862,47.856384000000048],[-69.556380999999931,47.866661000000022],[-69.544158999999979,47.883605999999986],[-69.526672000000019,47.90415999999999],[-69.508057000000008,47.924438000000009],[-69.498885999999857,47.933875999999998],[-69.469727000000034,47.961937000000091],[-69.450561999999991,47.979155999999989],[-69.429169000000002,47.995270000000119],[-69.418335000000013,48.001389000000131],[-69.411666999999966,48.003326000000015],[-69.275283999999942,48.067772000000048],[-69.11610399999995,48.178604000000064],[-69.101943999999946,48.192764000000125],[-69.08666999999997,48.204994000000056],[-69.054168999999888,48.228600000000142],[-69.016402999999968,48.254165999999998],[-68.968613000000005,48.279990999999995],[-68.940552000000025,48.294998000000021],[-68.831679999999892,48.344711000000132],[-68.695267000000001,48.396385000000123],[-68.541381999999999,48.451385000000016],[-68.529448999999943,48.457214000000022],[-68.519164999999987,48.464157],[-68.513061999999877,48.469437000000084],[-68.496947999999918,48.490273000000116],[-68.473891999999978,48.515549000000135],[-68.469161999999869,48.520271000000037],[-68.453613000000018,48.532494000000099],[-68.434433000000013,48.541663999999969],[-68.422501000000011,48.545272999999952],[-68.407776000000013,48.548050000000046],[-68.375823999999852,48.546386999999925],[-68.368606999999997,48.547493000000145],[-68.354445999999996,48.551384000000041],[-68.348342999999886,48.554161000000136],[-68.336670000000026,48.561661000000015],[-68.283324999999991,48.600273000000016],[-68.236937999999952,48.625549000000035],[-68.211120999999935,48.636658000000125],[-68.193328999999892,48.643051000000071],[-68.179168999999945,48.646660000000111],[-68.15695199999999,48.64916199999999],[-68.125548999999978,48.648330999999985],[-68.111938000000009,48.651382000000012],[-67.973617999999988,48.695541000000105],[-67.709441999999854,48.793884000000105],[-67.531386999999995,48.859160999999972],[-67.209732000000031,48.935822000000087],[-67.087783999999999,48.960823000000119],[-67.067504999999983,48.966933999999981],[-67.015838999999971,48.986938000000123],[-66.991669000000002,48.999160999999958],[-66.960830999999985,49.011940000000038],[-66.922775000000001,49.026657000000057],[-66.916397000000018,49.028877000000023],[-66.722503999999958,49.08998900000006],[-66.421660999999915,49.162765999999976],[-66.306106999999997,49.186935000000119],[-66.225005999999951,49.200829000000056],[-66.089172000000019,49.218597000000045],[-66.074172999999973,49.219711000000018],[-65.832503999999915,49.231377000000009],[-65.678328999999962,49.245543999999995],[-65.496947999999975,49.261664999999994],[-65.447219999999959,49.262215000000026],[-65.394454999999994,49.259719999999959],[-65.359726000000023,49.256660000000124],[-64.996947999999918,49.220267999999919],[-64.916655999999989,49.20665699999995],[-64.825561999999934,49.187767000000008],[-64.805831999999953,49.18332700000002],[-64.795273000000009,49.176102000000128],[-64.791945999999939,49.171661000000029],[-64.774718999999948,49.159987999999998],[-64.763335999999924,49.154160000000047],[-64.748885999999914,49.148048000000074],[-64.731948999999986,49.142220000000009],[-64.660827999999867,49.123047000000042],[-64.641112999999962,49.118880999999988],[-64.606658999999922,49.117210000000114],[-64.58805799999999,49.112212999999997],[-64.376388999999961,48.997771999999998],[-64.235549999999989,48.910271000000023],[-64.221663999999976,48.898331000000098],[-64.21444699999995,48.889434999999992],[-64.208892999999989,48.880547000000035],[-64.152221999999938,48.764999000000046],[-64.152495999999985,48.759995000000117],[-64.158050999999944,48.75610400000005],[-64.167769999999962,48.758331000000055],[-64.208892999999989,48.782767999999976],[-64.213332999999977,48.786659000000043],[-64.229995999999971,48.797493000000088],[-64.244155999999975,48.803604000000007],[-64.290282999999931,48.821106000000043],[-64.298889000000031,48.823883000000137],[-64.315552000000025,48.828880000000026],[-64.377212999999927,48.846382000000062],[-64.395844000000011,48.851105000000075],[-64.512222000000008,48.87471000000005],[-64.530562999999916,48.87721300000004],[-64.548888999999917,48.878326000000072],[-64.543335000000013,48.873604],[-64.532775999999956,48.866936000000067],[-64.464447000000007,48.824440000000038],[-64.374161000000015,48.787773000000016],[-64.266662999999994,48.713326000000109],[-64.256957999999997,48.706099999999992],[-64.173049999999932,48.639435000000049],[-64.16194200000001,48.627487000000031],[-64.160004000000015,48.622765000000129],[-64.166945999999996,48.621376000000112],[-64.193053999999961,48.623604000000057],[-64.24110399999995,48.622215000000097],[-64.255004999999926,48.618599000000017],[-64.260833999999875,48.615828999999962],[-64.265288999999996,48.610825000000034],[-64.269729999999981,48.604713000000061],[-64.274718999999948,48.592766000000097],[-64.280563000000029,48.575271999999984],[-64.282500999999911,48.569160000000011],[-64.283324999999877,48.563605999999993],[-64.279174999999952,48.554161000000136],[-64.273330999999928,48.550545000000056],[-64.264174999999909,48.549164000000019],[-64.245834000000002,48.546661000000086],[-64.219161999999983,48.528327999999988],[-64.246384000000035,48.488044999999943],[-64.322509999999852,48.437210000000107],[-64.426392000000021,48.404160000000047],[-64.493057000000022,48.394440000000145],[-64.506667999999991,48.391663000000051],[-64.586945000000014,48.36832400000003],[-64.68638599999997,48.338326000000109],[-64.731383999999878,48.274712000000022],[-64.750290000000007,48.245827000000133],[-64.753890999999953,48.239989999999977],[-64.760559000000001,48.227211000000125],[-64.768065999999976,48.202774000000034],[-64.771392999999989,48.196381000000088],[-64.778610000000015,48.19499200000007],[-64.87332200000003,48.180550000000096],[-64.931670999999994,48.171661000000029],[-64.972503999999958,48.135269000000051],[-65.15306099999998,48.052216000000044],[-65.196654999999964,48.033607000000075],[-65.202788999999996,48.031380000000013],[-65.270003999999972,48.012771999999984],[-65.305832000000009,48.005554000000132],[-65.326950000000011,48.002220000000136],[-65.455565999999976,48.000274999999988],[-65.463897999999972,48.002777000000037],[-65.472778000000005,48.011383000000137],[-65.478607000000011,48.019714000000079],[-65.484726000000023,48.033882000000119],[-65.491104000000007,48.042496000000142],[-65.504181000000017,48.048882000000049],[-65.689162999999951,48.093879999999956],[-65.764449999999897,48.109993000000031],[-65.888900999999919,48.199158000000011],[-65.904175000000009,48.205826000000002],[-65.949996999999939,48.191101000000003],[-65.956389999999999,48.188881000000038],[-66.006957999999997,48.159156999999993],[-66.024718999999948,48.139160000000118],[-66.129714999999919,48.107216000000108],[-66.242767000000015,48.109161000000086],[-66.396392999999932,48.114998000000071],[-66.406386999999938,48.116385999999977],[-66.432495000000017,48.118599000000131],[-66.47084000000001,48.119438000000059],[-66.477782999999988,48.118049999999982],[-66.484160999999972,48.115546999999992],[-66.495543999999995,48.10943600000013],[-66.506392999999946,48.102218999999991],[-66.52555799999999,48.085548000000017],[-66.529998999999918,48.080551000000071],[-66.667220999999984,48.028328000000101],[-66.673614999999984,48.026099999999985],[-66.763717999999983,48.00622599999997],[-66.843703999999946,47.996650999999986],[-66.842498999999975,47.992218000000037],[-66.83666999999997,47.988884000000041],[-66.828888000000006,47.98721299999994],[-66.749999999999943,47.979988000000105],[-66.728881999999942,47.984436000000073],[-66.610824999999977,48.011107999999979],[-66.584731999999974,48.019440000000145],[-66.573333999999988,48.025826000000052],[-66.540558000000033,48.036385000000109],[-66.434433000000013,48.067497000000003],[-66.420273000000009,48.070549000000085],[-66.364165999999955,48.073326000000009],[-66.356658999999922,48.073326000000009],[-66.350829999999917,48.069717000000026],[-66.349990999999932,48.06471300000004],[-66.259170999999981,47.999435000000119],[-66.042220999999984,47.935822000000087],[-65.988892000000021,47.923881999999992],[-65.970276000000013,47.92083000000008],[-65.936935000000005,47.92083000000008],[-65.922225999999966,47.922768000000019],[-65.90695199999999,47.923325000000091],[-65.880279999999914,47.920547000000113],[-65.843886999999995,47.911377000000073],[-65.818619000000012,47.903877000000023],[-65.811385999999914,47.900825999999995],[-65.793609999999944,47.890831000000048],[-65.772780999999952,47.876380999999924],[-65.757506999999976,47.865273000000116],[-65.746383999999978,47.852775999999949],[-65.725005999999894,47.82749199999995],[-65.718613000000005,47.818886000000077],[-65.714447000000007,47.809433000000013],[-65.713622999999984,47.804161000000079],[-65.696944999999971,47.733047000000113],[-65.671936000000017,47.645828000000051],[-65.667770000000019,47.641380000000083],[-65.634734999999978,47.62082700000002],[-65.628326000000015,47.623046999999985],[-65.389998999999989,47.736107000000004],[-65.332779000000016,47.766937000000041],[-65.253890999999953,47.801659000000029],[-65.240829000000019,47.806655999999975],[-65.202788999999996,47.818603999999993],[-65.167496000000028,47.825271999999984],[-65.044723999999974,47.844436999999914],[-65.020844000000011,47.844993999999986],[-64.985000999999954,47.84137700000008],[-64.815552000000025,47.811104000000114],[-64.805557000000022,47.808884000000091],[-64.797226000000023,47.806381000000101],[-64.719161999999983,47.764441999999974],[-64.713332999999977,47.761108000000036],[-64.676665999999955,47.735550000000103],[-64.670273000000009,47.726936000000023],[-64.67332499999992,47.720268000000033],[-64.679442999999992,47.716659999999933],[-64.703612999999905,47.706940000000031],[-64.803328999999962,47.630547000000092],[-64.859725999999966,47.576660000000118],[-64.870093999999995,47.536293000000057],[-64.87110899999999,47.515831000000048],[-64.870270000000005,47.510826000000009],[-64.875548999999978,47.460823000000062],[-64.880828999999949,47.432495000000074],[-64.886397999999986,47.414154000000053],[-64.910004000000015,47.353049999999996],[-65.138061999999991,47.192215000000033],[-65.226944000000003,47.140831000000048],[-65.238327000000027,47.134720000000129],[-65.263335999999924,47.124435000000005],[-65.339721999999938,47.099433999999974],[-65.364165999999955,47.089714000000072],[-65.369994999999903,47.086655000000121],[-65.365279999999871,47.082771000000093],[-65.218886999999881,47.053604000000007],[-65.101105000000018,47.076942000000088],[-65.017226999999934,47.091377000000023],[-64.805557000000022,47.083054000000061],[-64.798614999999927,47.079993999999999],[-64.802779999999927,46.993049999999926],[-64.803328999999962,46.987495000000024],[-64.807220000000029,46.981658999999979],[-64.812209999999993,46.977768000000083],[-64.818068999999923,46.9741590000001],[-64.835830999999985,46.965827999999988],[-64.857223999999974,46.95277399999992],[-64.871933000000013,46.939430000000016],[-64.880279999999914,46.930549999999982],[-64.892226999999991,46.91443600000008],[-64.896117999999944,46.908882000000062],[-64.89916999999997,46.902489000000116],[-64.904998999999975,46.883606000000043],[-64.906386999999995,46.872490000000084],[-64.904998999999975,46.851105000000132],[-64.903609999999901,46.840827999999931],[-64.877212999999983,46.791107000000068],[-64.863891999999964,46.774436999999921],[-64.818068999999923,46.72165700000005],[-64.748610999999983,46.702773999999977],[-64.740279999999984,46.70249200000012],[-64.726394999999911,46.696381000000031],[-64.72084000000001,46.693047000000035],[-64.713332999999977,46.684158000000139],[-64.711120999999991,46.679993000000138],[-64.708617999999944,46.669991000000039],[-64.705001999999979,46.638329000000056],[-64.67332499999992,46.500832000000003],[-64.66194200000001,46.468048000000124],[-64.650833000000034,46.460548000000074],[-64.621933000000013,46.427216000000101],[-64.613616999999977,46.414435999999966],[-64.611938000000009,46.409714000000065],[-64.615004999999996,46.392494000000113],[-64.613051999999982,46.366104000000064],[-64.504181000000017,46.240273000000002],[-64.402221999999995,46.233047000000056],[-64.237503000000004,46.229155999999989],[-64.116942999999935,46.181938000000059],[-64.035552999999993,46.182213000000104],[-63.970832999999914,46.180549999999982],[-63.954444999999964,46.178046999999992],[-63.830283999999949,46.146385000000066],[-63.822226999999998,46.14388299999996],[-63.776389999999935,46.121101000000067],[-63.77305599999994,46.117493000000138],[-63.771111000000019,46.112769999999955],[-63.772498999999868,46.108046999999999],[-63.776947000000007,46.103325000000098],[-63.783057999999983,46.099716000000058],[-63.799445999999989,46.091377000000023],[-63.805557000000022,46.089157000000057],[-63.886391000000003,46.06082200000003],[-63.892501999999922,46.058884000000091],[-63.919448999999929,46.053047000000106],[-63.926948999999922,46.052490000000034],[-63.988608999999997,46.051933000000133],[-64.023330999999985,46.057495000000074],[-64.06806899999998,46.059433000000013],[-64.072509999999966,46.054710000000057],[-64.093886999999995,46.021659999999997],[-64.065001999999879,46.004715000000033],[-64.042785999999978,45.991898000000049],[-64.012512000000015,46.005829000000006],[-64.005279999999914,46.005554000000018],[-63.913054999999986,45.979987999999935],[-63.864166000000012,45.961105000000032],[-63.859443999999996,45.951934999999992],[-63.861389000000031,45.94582400000013],[-63.846106999999961,45.930824000000143],[-63.714721999999995,45.840546000000074],[-63.669998000000021,45.818054000000018],[-63.664161999999976,45.815268999999944],[-63.645836000000031,45.833328000000051],[-63.631667999999991,45.859436000000017],[-63.600280999999995,45.869986999999924],[-63.580558999999937,45.874435000000119],[-63.482498000000021,45.877213000000097],[-63.474441999999954,45.876938000000052],[-63.457221999999888,45.874160999999958],[-63.420279999999934,45.864997999999957],[-63.406661999999926,45.858887000000095],[-63.403884999999946,45.854439000000127],[-63.42861199999993,45.823607999999979],[-63.434440999999936,45.820831000000112],[-63.441108999999926,45.819442999999978],[-63.456107999999972,45.818886000000077],[-63.488051999999925,45.820831000000112],[-63.513335999999981,45.82416500000005],[-63.520835999999974,45.823883000000023],[-63.525832999999977,45.819992000000127],[-63.52666499999998,45.814438000000109],[-63.523612999999898,45.809989999999971],[-63.515556000000004,45.807213000000047],[-63.506950000000018,45.805824000000086],[-63.433608999999933,45.799438000000009],[-63.425560000000019,45.799164000000076],[-63.34332999999998,45.797492999999974],[-63.328338999999971,45.79833200000013],[-63.287223999999981,45.805549999999982],[-63.281113000000005,45.807769999999948],[-63.274170000000026,45.808883999999978],[-63.251113999999973,45.809714999999983],[-63.235000999999954,45.80860100000001],[-63.229439000000013,45.804993000000081],[-63.233329999999967,45.799438000000009],[-63.238892000000021,45.796386999999982],[-63.313889000000017,45.769440000000031],[-63.319725000000005,45.768051000000071],[-63.355835000000013,45.764442000000031],[-63.372222999999906,45.76638800000012],[-63.379997000000003,45.766106000000036],[-63.381942999999978,45.759995000000004],[-63.376663000000008,45.755829000000062],[-63.361114999999984,45.745543999999938],[-63.354445999999939,45.742493000000138],[-63.31361400000003,45.736938000000066],[-63.282501000000025,45.733330000000137],[-63.189719999999966,45.73443600000013],[-63.120833999999945,45.759438000000102],[-63.090552999999943,45.790276000000063],[-63.082779000000016,45.80332199999998],[-62.993888999999967,45.796386999999982],[-62.985275000000001,45.794998000000135],[-62.958336000000031,45.788887000000045],[-62.723610000000008,45.764160000000004],[-62.677779999999984,45.764160000000004],[-62.557220000000029,45.674713000000111],[-62.503890999999953,45.627487000000087],[-62.461944999999957,45.612495000000081],[-62.250281999999913,45.708327999999995],[-62.092772999999966,45.781105000000139],[-62.035003999999958,45.820831000000112],[-62.015006999999912,45.836655000000007],[-61.973327999999981,45.867210000000057],[-61.931388999999967,45.884720000000016],[-61.925559999999962,45.886107999999922],[-61.917503000000011,45.885551000000021],[-61.903052999999886,45.87943300000012],[-61.89805599999994,45.875267000000008],[-61.896110999999962,45.871101000000124],[-61.89805599999994,45.865273000000002],[-61.903327999999988,45.861382000000106],[-61.914718999999934,45.8555530000001],[-61.919448999999986,45.851105000000132],[-61.923332000000016,45.845543000000021],[-61.925559999999962,45.839432000000102],[-61.925277999999992,45.834434999999985],[-61.889998999999989,45.701385000000016],[-61.885558999999887,45.690544000000102],[-61.88138600000002,45.686653000000035],[-61.792228999999907,45.639160000000118],[-61.783332999999971,45.636658000000011],[-61.735000999999897,45.623322000000087],[-61.724998000000028,45.62082700000002],[-61.618056999999965,45.610550000000046],[-61.603888999999924,45.635269000000051],[-61.569999999999936,45.669991000000039],[-61.565001999999936,45.673882000000106],[-61.559165999999948,45.676659000000029],[-61.546111999999994,45.681106999999997],[-61.526107999999965,45.685265000000129],[-61.504447999999968,45.686935000000062],[-61.488892000000021,45.686935000000062],[-61.471382000000006,45.682495000000074],[-61.466110000000015,45.678878999999995],[-61.396392999999932,45.626656000000082],[-61.386947999999961,45.618880999999988],[-61.353427999999951,45.56971400000009],[-61.316146999999944,45.533173000000033],[-61.260001999999929,45.510277000000087],[-61.232356999999979,45.46119299999998],[-61.294167000000016,45.434714999999926],[-61.36500499999994,45.404160000000104],[-61.368057000000022,45.413879000000122],[-61.374717999999973,45.416938999999957],[-61.388610999999912,45.41415400000011],[-61.400832999999977,45.410820000000115],[-61.413329999999974,45.406937000000028],[-61.462219000000005,45.384438000000046],[-61.477492999999924,45.373047000000099],[-61.481666999999959,45.367767000000015],[-61.478881999999999,45.363327000000027],[-61.463889999999992,45.346939000000134],[-61.457222000000002,45.343605000000139],[-61.226386999999932,45.344154000000117],[-61.153327999999874,45.348327999999981],[-61.139441999999974,45.348877000000073],[-61.131667999999991,45.348327999999981],[-61.047225999999966,45.335548000000017],[-60.996391000000017,45.32749200000012],[-60.980552999999986,45.324440000000038],[-60.970551,45.321663000000115],[-60.966110000000015,45.318329000000119],[-60.964721999999995,45.313049000000035],[-60.96527900000001,45.295546999999999],[-60.970276000000013,45.269714000000079],[-61.050834999999893,45.231102000000078],[-61.0777819999999,45.219437000000028],[-61.090278999999953,45.215546000000131],[-61.109726000000023,45.210823000000119],[-61.123329000000012,45.208602999999925],[-61.139724999999942,45.210823000000119],[-61.142226999999991,45.215271000000087],[-61.222220999999934,45.23832700000014],[-61.267501999999979,45.246384000000091],[-61.313056999999901,45.242766999999958],[-61.323890999999946,45.236107000000118],[-61.360000999999954,45.209991000000059],[-61.373610999999926,45.196380999999974],[-61.373328999999956,45.191101000000117],[-61.365554999999972,45.188324000000023],[-61.349723999999981,45.186935000000005],[-61.340836000000024,45.184433000000126],[-61.344161999999869,45.178047000000049],[-61.34944200000001,45.174438000000009],[-61.355002999999954,45.171660999999915],[-61.384445000000028,45.15915700000005],[-61.397498999999982,45.156097000000045],[-61.450835999999924,45.145546000000081],[-61.458611000000019,45.144714000000022],[-61.543891999999971,45.141662999999994],[-61.638053999999954,45.120270000000062],[-61.724715999999944,45.091660000000047],[-61.898338000000024,45.024993999999992],[-62.026664999999923,44.984717999999987],[-62.087775999999963,44.97026800000009],[-62.286391999999921,44.928047000000049],[-62.391944999999964,44.908325000000048],[-62.476386999999875,44.895546000000138],[-62.521942000000024,44.850829999999974],[-62.546111999999937,44.821663000000001],[-62.641388000000006,44.809158000000082],[-62.795005999999887,44.780548000000067],[-62.801108999999997,44.778603000000089],[-62.813888999999961,44.750832000000003],[-62.809998000000007,44.734718000000044],[-62.851111999999944,44.718323000000112],[-62.928611999999873,44.733879000000115],[-63.012779000000023,44.773323000000005],[-63.020554000000004,44.773880000000077],[-63.055557000000022,44.772766000000104],[-63.0625,44.771378000000027],[-63.061942999999928,44.76638800000012],[-63.060279999999977,44.761664999999994],[-63.057502999999997,44.757217000000026],[-63.043616999999927,44.739989999999977],[-63.017776000000026,44.722488000000112],[-63.012504999999919,44.713326000000052],[-63.011948000000018,44.708046000000138],[-63.013618000000008,44.702774000000034],[-63.018332999999927,44.697487000000081],[-63.048339999999996,44.676102000000128],[-63.05471799999998,44.673325000000034],[-63.104445999999996,44.746658000000139],[-63.115279999999871,44.731377000000009],[-63.118331999999953,44.724991000000102],[-63.138335999999981,44.693047000000092],[-63.142776000000026,44.688599000000124],[-63.283057999999926,44.627212999999983],[-63.439994999999954,44.590828000000045],[-63.448883000000023,44.593048000000067],[-63.49500299999994,44.614715999999987],[-63.526336999999955,44.63610099999994],[-63.535167999999999,44.642769000000101],[-63.545334000000025,44.652107000000058],[-63.556999000000019,44.66160600000012],[-63.615836999999942,44.70249199999995],[-63.635001999999986,44.711380000000133],[-63.642775999999913,44.714157000000057],[-63.651107999999965,44.715546000000018],[-63.658332999999971,44.714995999999985],[-63.660552999999936,44.708328000000051],[-63.649444999999957,44.686104000000114],[-63.640556000000004,44.673050000000046],[-63.635559000000001,44.668884000000105],[-63.627776999999924,44.666382000000056],[-63.606110000000001,44.668884000000105],[-63.598610000000008,44.667770000000132],[-63.591942000000017,44.664711000000011],[-63.583611000000019,44.656936999999971],[-63.564223999999911,44.620769999999993],[-63.558220000000006,44.613266000000124],[-63.555388999999934,44.607769000000019],[-63.546059000000014,44.588604000000032],[-63.520835999999974,44.512771999999984],[-63.520279000000016,44.507773999999984],[-63.525276000000019,44.495270000000119],[-63.533332999999971,44.484993000000145],[-63.542777999999942,44.476379000000065],[-63.553054999999915,44.469711000000075],[-63.570838999999921,44.461937000000091],[-63.631110999999919,44.435822000000087],[-63.638610999999912,44.436935000000005],[-63.90694400000001,44.495270000000119],[-63.913611999999887,44.498604000000114],[-63.924171000000001,44.506103999999993],[-63.932502999999997,44.513329000000056],[-63.935555000000022,44.517494000000056],[-63.94388600000002,44.536110000000065],[-63.938605999999936,44.616104000000064],[-63.937774999999931,44.621658000000082],[-63.928054999999858,44.642220000000009],[-63.919166999999959,44.651657000000114],[-63.914443999999889,44.65554800000001],[-63.908607000000018,44.678047000000106],[-64.008347000000015,44.647491000000002],[-64.045272999999952,44.635826000000122],[-64.055266999999958,44.619438000000059],[-64.065551999999911,44.595268000000033],[-64.063888999999961,44.590545999999961],[-64.059158000000025,44.581665000000044],[-64.054992999999968,44.577773999999977],[-64.039443999999946,44.572495000000004],[-64.033614999999941,44.563049000000035],[-64.009170999999981,44.513329000000056],[-64.010009999999966,44.507773999999984],[-64.083069000000023,44.466660000000047],[-64.091949,44.46888000000007],[-64.110549999999989,44.478324999999984],[-64.121657999999968,44.485268000000133],[-64.125548999999978,44.510551000000021],[-64.123610999999926,44.527489000000116],[-64.119720000000029,44.53943600000008],[-64.121657999999968,44.544159000000093],[-64.127486999999917,44.552773000000116],[-64.135833999999988,44.560546999999929],[-64.146118000000001,44.568329000000062],[-64.170273000000009,44.586105000000032],[-64.200835999999981,44.576384999999959],[-64.305267000000015,44.533332999999971],[-64.337509000000011,44.411933999999974],[-64.346664000000033,44.362495000000138],[-64.346114999999998,44.357215999999994],[-64.329726999999934,44.328880000000026],[-64.311110999999926,44.319159999999954],[-64.303328999999962,44.316666000000055],[-64.295273000000009,44.316101000000003],[-64.290557999999976,44.31999200000007],[-64.292220999999984,44.324715000000026],[-64.299987999999928,44.32749200000012],[-64.305557000000022,44.330826000000116],[-64.309433000000013,44.335548000000017],[-64.307770000000005,44.340828000000101],[-64.301102000000014,44.341933999999924],[-64.273620999999878,44.330276000000083],[-64.260558999999944,44.324164999999994],[-64.239440999999943,44.294158999999922],[-64.253341999999918,44.27526899999998],[-64.258056999999951,44.269989000000123],[-64.283324999999877,44.253052000000082],[-64.319457999999997,44.264717000000019],[-64.355835000000013,44.273323000000119],[-64.391113000000018,44.253326000000015],[-64.428054999999915,44.228325000000041],[-64.432220000000029,44.223602000000028],[-64.444716999999912,44.190269000000001],[-64.616394000000014,44.133049000000142],[-64.61860699999994,44.071937999999989],[-64.666397000000018,43.990273000000116],[-64.671386999999982,43.986382000000049],[-64.732223999999917,43.951660000000004],[-64.738051999999925,43.949432000000058],[-64.745269999999948,43.948874999999987],[-64.776397999999972,43.950828999999999],[-64.80610699999994,43.950546000000031],[-64.812774999999931,43.949432000000058],[-64.818068999999923,43.946381000000031],[-64.832229999999925,43.926102000000128],[-64.881103999999993,43.838882000000126],[-64.906386999999995,43.800544999999943],[-65.030562999999972,43.704163000000051],[-65.066665999999941,43.696381000000088],[-65.242217999999923,43.679161000000136],[-65.325835999999867,43.674995000000024],[-65.375274999999874,43.575272000000098],[-65.449158000000011,43.55971500000004],[-65.453338999999971,43.554993000000138],[-65.475829999999974,43.505829000000006],[-65.481383999999991,43.464439000000027],[-65.496947999999975,43.490829000000019],[-65.548049999999932,43.556099000000017],[-65.559433000000013,43.568054000000075],[-65.568618999999956,43.570274000000097],[-65.575561999999991,43.569717000000026],[-65.584732000000031,43.560271999999941],[-65.591385000000002,43.549721000000034],[-65.603881999999999,43.534721000000104],[-65.612212999999997,43.526099999999985],[-65.617492999999968,43.523604999999975],[-65.646118000000001,43.511940000000038],[-65.67332499999992,43.506103999999993],[-65.712783999999999,43.498604000000114],[-65.720550999999944,43.499161000000015],[-65.72582999999986,43.50249500000001],[-65.777221999999995,43.562492000000134],[-65.783324999999934,43.571106000000043],[-65.783889999999985,43.576385000000016],[-65.781951999999933,43.587769000000094],[-65.778885000000002,43.599998000000085],[-65.773055999999997,43.612770000000125],[-65.771117999999944,43.624435000000005],[-65.769454999999937,43.64138000000014],[-65.768065999999919,43.658043000000021],[-65.768340999999964,43.668883999999991],[-65.769729999999868,43.679161000000136],[-65.77555799999999,43.688324000000136],[-65.868880999999988,43.786385000000053],[-65.907775999999956,43.821663000000058],[-65.912215999999887,43.825272000000041],[-65.918610000000001,43.828331000000048],[-65.932770000000005,43.827217000000019],[-65.938888999999961,43.824997000000053],[-65.942490000000021,43.819443000000035],[-65.956115999999895,43.776100000000099],[-65.968886999999995,43.719436999999971],[-65.971663999999976,43.71276899999998],[-65.975006000000008,43.707214000000079],[-65.983063000000016,43.697768999999994],[-66.013335999999867,43.691658000000132],[-66.020553999999947,43.69110100000006],[-66.029449,43.731659000000093],[-66.030562999999972,43.736107000000061],[-66.033614999999998,43.740273000000002],[-66.042220999999984,43.748046999999985],[-66.080841000000021,43.768051000000071],[-66.088607999999965,43.768326000000116],[-66.09445199999999,43.766106000000093],[-66.107772999999952,43.753326000000129],[-66.121658000000025,43.762215000000026],[-66.135559000000001,43.78943600000008],[-66.166945999999939,43.858603999999957],[-66.168059999999912,43.863051999999925],[-66.168059999999912,43.895546000000024],[-66.167495999999971,43.901382000000069],[-66.165832999999964,43.907211000000075],[-66.151947000000007,43.919159000000093],[-66.150283999999942,43.925270000000012],[-66.149993999999936,43.93082400000003],[-66.14916999999997,44.001106000000107],[-66.14973399999991,44.011108000000036],[-66.181945999999925,44.067497000000117],[-66.204453000000001,44.086655000000007],[-66.190552000000025,44.150543000000027],[-66.187774999999931,44.161934000000031],[-66.118606999999997,44.338043000000027],[-66.093886999999881,44.367493000000138],[-66.089995999999985,44.371658000000139],[-66.037505999999951,44.423325000000091],[-65.976943999999946,44.477485999999999],[-65.967223999999987,44.486107000000118],[-65.95666499999993,44.491661000000079],[-65.950286999999946,44.493050000000096],[-65.944442999999978,44.489716000000101],[-65.938048999999921,44.491104000000007],[-65.865828999999962,44.538886999999988],[-65.841674999999952,44.568604000000107],[-65.841384999999946,44.574164999999994],[-65.844451999999876,44.578331000000048],[-65.848891999999978,44.582213999999965],[-65.855270000000019,44.585823000000005],[-65.862777999999878,44.586936999999978],[-65.931106999999997,44.582213999999965],[-65.943053999999961,44.577773999999977],[-65.958617999999944,44.567497000000003],[-66.004456000000005,44.535827999999981],[-66.03472899999997,44.514717000000132],[-66.12332200000003,44.448875000000044],[-66.177779999999927,44.396660000000054],[-66.185821999999973,44.387214999999969],[-66.190552000000025,44.383330999999998],[-66.197220000000016,44.386108000000036],[-66.198607999999979,44.412766000000033],[-66.191100999999946,44.423325000000091],[-66.103058000000033,44.500000000000114],[-66.068068999999923,44.524994000000106],[-65.971663999999976,44.591934000000094],[-65.820220999999947,44.654434000000037],[-65.816726999999958,44.655768999999964],[-65.808722999999929,44.651936000000092],[-65.802895000000035,44.644604000000072],[-65.796394000000021,44.624268000000029],[-65.796897999999942,44.617603000000145],[-65.797897000000034,44.613937000000021],[-65.756957999999941,44.615273000000059],[-65.756393000000003,44.609993000000031],[-65.753066999999987,44.60582700000009],[-65.745270000000005,44.605552999999986],[-65.697220000000016,44.612495000000081],[-65.690276999999924,44.614440999999999],[-65.68499799999995,44.61693600000001],[-65.625274999999988,44.658882000000006],[-65.522507000000019,44.737769999999955],[-65.548614999999984,44.733879000000115],[-65.682616999999937,44.693156999999928],[-65.686278999999956,44.691825999999935],[-65.690276999999924,44.691162000000077],[-65.695441999999957,44.691825999999935],[-65.704116999999997,44.69499200000007],[-65.706116000000009,44.697654999999997],[-65.707114999999988,44.700489000000005],[-65.707450999999992,44.703487000000052],[-65.705947999999978,44.707489000000066],[-65.700942999999938,44.713157999999964],[-65.697937000000024,44.71549200000004],[-65.717772999999966,44.721931000000041],[-65.658339999999953,44.758605999999986],[-65.646956999999929,44.765273999999977],[-65.299987999999928,44.928329000000133],[-65.202498999999989,44.973877000000073],[-65.114166000000012,45.011665000000107],[-64.934158000000025,45.100273000000016],[-64.918059999999912,45.111107000000061],[-64.879439999999988,45.130820999999969],[-64.861938000000009,45.139717000000076],[-64.814712999999983,45.158043000000077],[-64.808608999999933,45.16027100000008],[-64.777221999999995,45.169990999999982],[-64.744995000000017,45.178329000000076],[-64.710830999999985,45.183876000000055],[-64.590285999999935,45.208046000000024],[-64.550551999999925,45.216660000000104],[-64.468886999999938,45.242766999999958],[-64.451400999999976,45.249435000000119],[-64.434432999999899,45.25750000000005],[-64.417770000000019,45.266663000000051],[-64.397506999999962,45.281105000000025],[-64.393889999999999,45.28694200000001],[-64.391952999999944,45.292770000000132],[-64.391113000000018,45.298332000000073],[-64.393065999999862,45.303322000000094],[-64.401671999999962,45.311104000000057],[-64.406951999999933,45.314438000000052],[-64.413895000000025,45.317497000000003],[-64.430832000000009,45.322220000000016],[-64.454726999999934,45.323608000000092],[-64.462218999999948,45.323051000000021],[-64.470839999999953,45.324440000000038],[-64.488051999999982,45.329162999999994],[-64.494719999999973,45.332214000000022],[-64.489165999999955,45.335266000000104],[-64.465835999999911,45.334717000000012],[-64.440552000000025,45.331665000000044],[-64.353057999999919,45.316101000000003],[-64.338333000000034,45.310271999999941],[-64.327498999999989,45.303322000000094],[-64.321395999999936,45.294715999999994],[-64.317779999999914,45.285271000000137],[-64.317229999999881,45.280273000000136],[-64.317779999999914,45.274437000000034],[-64.321944999999914,45.269714000000079],[-64.327498999999989,45.266936999999984],[-64.343062999999972,45.256103999999993],[-64.353333000000021,45.239159000000029],[-64.385833999999932,45.145546000000081],[-64.380279999999857,45.131104000000107],[-64.363891999999964,45.101386999999988],[-64.359725999999966,45.097487999999942],[-64.352218999999934,45.09804500000007],[-64.346953999999982,45.101105000000075],[-64.337219000000005,45.108604000000071],[-64.333892999999932,45.115272999999945],[-64.334441999999967,45.120270000000062],[-64.333327999999995,45.131660000000124],[-64.329178000000013,45.13638300000008],[-64.324387000000002,45.139343000000054],[-64.31138599999997,45.141380000000026],[-64.295836999999949,45.141380000000026],[-64.244155999999975,45.123877999999991],[-64.221114999999941,45.110549999999989],[-64.210280999999952,45.103607000000011],[-64.157226999999978,45.056938000000002],[-64.146956999999986,45.044441000000063],[-64.14555399999989,45.034720999999934],[-64.154449,44.98443600000013],[-64.156386999999938,44.978325000000041],[-64.116942999999935,45.009163000000058],[-64.114165999999955,45.046661000000029],[-64.121933000000013,45.058044000000052],[-64.136397999999929,45.074440000000038],[-64.141678000000013,45.078605999999979],[-64.162505999999894,45.092216000000008],[-64.188323999999909,45.104713000000004],[-64.192490000000021,45.108604000000071],[-64.198607999999865,45.11721],[-64.198882999999967,45.122490000000084],[-64.195830999999941,45.150543000000027],[-64.16361999999998,45.185265000000015],[-64.152785999999992,45.192764000000011],[-64.118331999999953,45.208885000000009],[-64.106110000000001,45.213326000000109],[-64.099990999999932,45.215271000000087],[-64.065826000000015,45.222214000000122],[-64.008057000000008,45.236381999999992],[-63.982215999999937,45.243049999999926],[-63.956664999999987,45.251388999999961],[-63.805831999999953,45.301933000000133],[-63.596107000000018,45.315544000000102],[-63.470832999999857,45.321663000000115],[-63.384170999999924,45.35083000000003],[-63.371940999999993,45.354996000000142],[-63.365554999999915,45.357773000000009],[-63.360832000000016,45.360824999999977],[-63.36860699999994,45.36360900000011],[-63.738892000000021,45.396660000000054],[-63.755561999999941,45.398048000000131],[-63.797226000000023,45.392768999999987],[-63.837775999999963,45.385551000000135],[-63.988051999999982,45.384438000000046],[-64.040558000000033,45.401100000000042],[-64.044998000000021,45.404434000000037],[-64.061110999999983,45.409714000000122],[-64.069732999999985,45.410271000000023],[-64.083618000000001,45.409430999999984],[-64.16332999999986,45.403877000000136],[-64.214721999999995,45.399719000000005],[-64.312774999999931,45.39138000000014],[-64.357772999999952,45.38110400000005],[-64.529998999999975,45.408043000000021],[-64.674164000000019,45.383049000000085],[-64.815825999999959,45.348602000000085],[-64.929442999999992,45.324440000000038],[-64.937209999999993,45.326942000000088],[-64.938048999999921,45.332214000000022],[-64.936661000000015,45.343323000000112],[-64.933318999999983,45.355553000000043],[-64.917769999999905,45.408599999999922],[-64.909163999999976,45.418052999999986],[-64.831389999999942,45.479155999999932],[-64.765563999999983,45.505554000000132],[-64.699157999999954,45.531104999999968],[-64.568893000000003,45.604163999999969],[-64.470550999999944,45.670273000000122],[-64.430282999999974,45.715546000000018],[-64.332229999999925,45.76888300000013],[-64.331680000000006,45.763611000000026],[-64.326110999999969,45.749435000000005],[-64.296660999999915,45.763328999999942],[-64.283066000000019,45.776656999999943],[-64.27555799999999,45.799995000000081],[-64.27305599999994,45.811661000000015],[-64.270003999999915,45.828880000000083],[-64.272933999999964,45.835754000000065],[-64.273620999999878,45.838599999999985],[-64.276671999999962,45.842766000000097],[-64.324722000000008,45.879990000000021],[-64.33277899999996,45.882767000000058],[-64.347778000000005,45.881934999999999],[-64.361388999999974,45.879158000000075],[-64.366942999999992,45.876380999999981],[-64.367766999999958,45.870544000000052],[-64.363327000000027,45.866661000000079],[-64.354720999999927,45.865547000000106],[-64.357498000000021,45.851105000000132],[-64.418059999999912,45.796104000000014],[-64.478332999999907,45.750549000000035],[-64.49722300000002,45.783882000000006],[-64.489990000000034,45.794998000000135],[-64.488051999999982,45.801102000000014],[-64.489165999999955,45.811378000000047],[-64.49221799999998,45.815543999999989],[-64.597335999999984,45.922104000000047],[-64.681945999999868,46.021659999999997],[-64.686935000000005,46.041382000000056],[-64.690551999999968,46.050827000000083],[-64.694991999999957,46.054710000000057],[-64.736937999999952,46.083878000000084],[-64.747498000000007,46.090546000000018],[-64.754456000000005,46.089157000000057],[-64.764450000000011,46.083054000000118],[-64.706389999999999,45.994713000000104],[-64.701949999999954,45.990829000000076],[-64.648009999999942,45.933047999999928],[-64.631171999999992,45.922718000000032],[-64.628998000000024,45.920383000000072],[-64.601180999999997,45.881550000000118],[-64.601180999999997,45.877384000000006],[-64.601340999999991,45.873881999999981],[-64.602844000000005,45.86721399999999],[-64.604507000000012,45.863552000000084],[-64.583069000000023,45.826942000000145],[-64.756392999999946,45.622489999999971],[-64.772506999999962,45.609993000000145],[-64.778335999999967,45.607216000000051],[-64.785827999999924,45.610275000000058],[-64.791381999999999,45.613609000000054],[-64.796660999999972,45.622489999999971],[-64.801665999999955,45.626381000000038],[-64.808334000000002,45.629715000000033],[-64.817229999999938,45.632492000000127],[-64.825287000000003,45.633331000000055],[-64.847504000000015,45.633331000000055],[-64.884445000000028,45.631660000000011],[-64.904175000000009,45.627769000000114],[-64.941375999999991,45.602218999999991],[-64.947219999999959,45.598045000000127],[-64.961945000000014,45.586105000000032],[-64.976395000000025,45.572494999999947],[-64.986663999999962,45.564437999999996],[-64.99722300000002,45.557213000000104],[-65.015015000000005,45.548882000000049],[-65.047501000000011,45.539161999999976],[-65.104445999999939,45.524994000000106],[-65.138335999999924,45.517769000000044],[-65.152221999999938,45.516106000000093],[-65.164444000000003,45.513054000000011],[-65.220551,45.493881000000101],[-65.326675000000023,45.457497000000046],[-65.339447000000007,45.452216999999962],[-65.368057000000022,45.437767000000065],[-65.394454999999994,45.419441000000063],[-65.421386999999925,45.402771000000087],[-65.53195199999999,45.342490999999995],[-65.883620999999948,45.209160000000054],[-65.889998999999989,45.207497000000103],[-65.903609999999958,45.205551000000014],[-65.910827999999981,45.205268999999987],[-65.918883999999935,45.206099999999992],[-65.98332199999993,45.219711000000132],[-65.989989999999977,45.223045000000127],[-66.09060699999992,45.295657999999946],[-66.092940999999939,45.297989000000086],[-66.094611999999984,45.300659000000053],[-66.091605999999956,45.303824999999961],[-66.083892999999932,45.34276600000004],[-66.078063999999927,45.345543000000077],[-66.05749499999996,45.348602000000085],[-66.045273000000009,45.353325000000041],[-66.029449,45.364158999999916],[-66.015288999999996,45.377769000000001],[-66.003066999999987,45.394997000000103],[-66.000838999999985,45.401100000000042],[-65.99722300000002,45.417770000000019],[-65.994445999999982,45.455550999999957],[-65.994445999999982,45.460823000000062],[-66.002501999999993,45.461662000000047],[-66.008346999999901,45.458885000000123],[-66.19027699999998,45.339432000000045],[-66.193329000000006,45.333603000000039],[-66.193329000000006,45.328331000000105],[-66.190552000000025,45.323883000000137],[-66.179169000000002,45.305823999999973],[-66.176102000000014,45.301933000000133],[-66.145279000000016,45.279160000000047],[-66.14166999999992,45.259769000000006],[-66.137000999999941,45.259270000000129],[-66.113997999999981,45.25877400000013],[-66.113509999999906,45.237770000000069],[-66.147232000000031,45.19221500000009],[-66.205565999999976,45.163878999999952],[-66.21665999999999,45.15915700000005],[-66.427779999999984,45.084991000000002],[-66.459732000000031,45.106102000000021],[-66.459732000000031,45.111382000000106],[-66.461120999999935,45.116104000000007],[-66.468063000000029,45.129714999999976],[-66.488891999999908,45.149994000000049],[-66.496384000000035,45.149719000000061],[-66.531386999999995,45.147217000000012],[-66.537505999999951,45.145271000000093],[-66.55999799999995,45.133330999999998],[-66.571395999999936,45.126656000000139],[-66.586120999999991,45.116936000000067],[-66.608046999999942,45.104164000000083],[-66.642226999999991,45.086380000000133],[-66.648055999999997,45.083603000000039],[-66.754729999999881,45.055550000000096],[-66.792496000000028,45.055267000000129],[-66.77694699999995,45.086380000000133],[-66.776107999999965,45.09137700000008],[-66.777785999999992,45.096100000000035],[-66.783065999999963,45.099716000000114],[-66.965560999999923,45.17943600000001],[-67.021941999999854,45.170273000000009],[-67.027221999999995,45.168052999999986],[-67.046386999999982,45.126938000000052],[-67.129439999999988,45.172217999999987],[-67.186934999999949,45.19221500000009],[-67.206542999999897,45.18303700000007],[-67.236114999999927,45.193877999999984],[-67.25306699999993,45.199432000000002],[-67.261123999999995,45.201103000000046],[-67.267775999999969,45.200546000000145],[-67.275009000000011,45.1988750000001],[-67.287215999999944,45.194153000000028],[-67.290557999999976,45.182770000000005],[-67.290282999999988,45.177489999999921],[-67.292220999999927,45.166100000000085],[-67.296386999999925,45.160820000000001],[-67.301391999999964,45.156937000000084],[-67.306655999999862,45.153320000000122],[-67.318893000000003,45.148605000000089],[-67.325561999999991,45.147491000000116],[-67.333069000000023,45.147491000000116],[-67.341948999999943,45.149994000000049],[-67.354172000000005,45.156097000000045],[-67.403884999999946,45.194435000000055],[-67.408050999999944,45.198325999999952],[-67.422500999999954,45.214996000000099],[-67.455275999999969,45.263054000000068],[-67.462783999999999,45.276099999999985],[-67.465011999999888,45.281105000000025],[-67.465285999999992,45.286385000000109],[-67.464172000000019,45.29193900000007],[-67.450561999999934,45.333054000000061],[-67.485001000000011,45.489159000000029],[-67.485275000000001,45.494438000000002],[-67.482772999999952,45.500274999999931],[-67.478881999999885,45.504439999999931],[-67.467772999999966,45.510826000000066],[-67.43638599999997,45.521378000000027],[-67.421936000000017,45.523323000000005],[-67.415832999999964,45.525269000000094],[-67.410827999999924,45.529990999999995],[-67.406951999999876,45.578049000000135],[-67.408889999999985,45.582214000000135],[-67.412505999999951,45.586936999999978],[-67.424163999999962,45.594711000000132],[-67.453888000000006,45.612495000000081],[-67.462219000000005,45.614715999999987],[-67.46945199999999,45.613051999999982],[-67.486114999999984,45.603607000000068],[-67.499999999999943,45.60166200000009],[-67.515015000000005,45.601105000000018],[-67.573897999999986,45.611664000000019],[-67.656661999999983,45.630546999999922],[-67.664443999999946,45.6336060000001],[-67.791107000000011,45.693047000000092],[-67.796660999999915,45.696098000000063],[-67.799164000000019,45.701102999999932],[-67.804442999999992,45.731377000000009],[-67.806380999999988,45.78472099999999],[-67.786666999999909,45.888329000000056],[-67.772507000000019,45.957496999999933],[-67.779174999999952,46.283332999999971],[-67.788894999999968,46.787773000000072],[-67.791671999999949,46.921379000000059],[-67.794998000000021,47.06999200000007],[-67.85972599999991,47.097488000000112],[-67.874161000000015,47.103607000000125],[-67.892226999999991,47.114440999999999],[-67.948607999999922,47.166382000000112],[-67.951400999999976,47.17083000000008],[-67.955841000000021,47.179993000000081],[-67.957229999999925,47.184989999999971],[-67.961944999999957,47.194153000000142],[-67.968886999999938,47.20277400000009],[-68.18582200000003,47.332771000000037],[-68.208617999999944,47.341660000000104],[-68.244995000000017,47.351936000000023],[-68.306655999999919,47.364440999999943],[-68.323059000000001,47.365829000000076],[-68.337219000000005,47.363609000000054],[-68.348891999999921,47.359992999999974],[-68.367766999999958,47.351105000000018],[-68.373046999999929,47.347214000000122],[-68.564712999999927,47.289719000000048],[-68.761948000000018,47.232764999999972],[-68.787505999999951,47.224709000000075],[-68.831679999999892,47.208884999999952],[-68.887786999999946,47.188042000000053],[-68.895279000000016,47.189987000000087],[-68.958618000000001,47.217209000000025],[-68.965285999999878,47.220543000000021],[-69.023894999999925,47.250274999999931],[-69.036117999999988,47.257217000000026],[-69.044998000000021,47.264442000000088],[-69.049164000000019,47.274437000000034],[-69.053054999999972,47.28943600000008],[-69.053588999999931,47.293777000000091],[-69.054992999999854,47.299438000000066],[-69.055266999999958,47.30471],[-69.056106999999997,47.336655000000064],[-69.055556999999965,47.347488000000055],[-69.052490000000034,47.380546999999979],[-69.049437999999952,47.392219999999952],[-69.045837000000006,47.398604999999975],[-69.043610000000001,47.404709000000025],[-69.039444000000003,47.416939000000127],[-69.038329999999974,47.422493000000088],[-69.039992999999981,47.427490000000034],[-69.048614999999984,47.435546999999985],[-69.055556999999965,47.438599000000124],[-69.123885999999914,47.458327999999995],[-69.132766999999944,47.459991000000116],[-69.232498000000021,47.471375000000023],[-69.239623999999992,47.464413000000093],[-69.305267000000015,47.40026899999998],[-69.423614999999984,47.283332999999971],[-69.653884999999946,47.055267000000129],[-69.712509000000011,46.996940999999993],[-69.84722899999997,46.862213000000111],[-69.992767000000015,46.715828000000045],[-70.009170999999867,46.698043999999982],[-70.026947000000007,46.587493999999992],[-70.038605000000018,46.509995000000004],[-70.044158999999922,46.474991000000102],[-70.047775000000001,46.453880000000083],[-70.050551999999982,46.438599000000124],[-70.06361400000003,46.424164000000019],[-70.068893000000003,46.419716000000051],[-70.075286999999946,46.417770000000132],[-70.081389999999999,46.417770000000132],[-70.088057999999876,46.414993000000038],[-70.119155999999975,46.393608000000086],[-70.200287000000003,46.336380000000077],[-70.242492999999911,46.279160000000047],[-70.287780999999939,46.203049000000135],[-70.305556999999908,46.078880000000083],[-70.3125,45.985825000000091],[-70.309722999999963,45.980820000000051],[-70.303329000000019,45.977767999999969],[-70.293883999999991,45.975548000000117],[-70.278335999999967,45.975266000000033],[-70.260559000000001,45.971374999999966],[-70.253615999999909,45.968323000000055],[-70.248336999999935,45.964714000000072],[-70.23971599999993,45.956657000000064],[-70.238051999999982,45.951934999999992],[-70.255004999999983,45.913048000000003],[-70.258895999999993,45.907493999999986],[-70.263335999999981,45.90277100000003],[-70.393889999999942,45.778046000000131],[-70.466659999999933,45.711937000000034],[-70.555267000000015,45.672768000000133],[-70.576949999999954,45.660820000000058],[-70.631942999999978,45.627769000000114],[-70.693054000000018,45.571938000000046],[-70.720276000000013,45.528328000000101],[-70.725280999999995,45.49971800000003],[-70.724715999999944,45.49471299999999],[-70.712783999999999,45.477768000000026],[-70.704726999999934,45.469154000000003],[-70.689437999999939,45.458046000000024],[-70.86860699999994,45.246101000000124],[-70.873046999999985,45.241379000000052],[-70.878600999999946,45.238601999999958],[-70.886123999999995,45.238045000000056],[-71.021118000000001,45.326660000000004],[-71.085128999999995,45.307708999999988],[-71.139998999999932,45.253052000000082],[-71.146392999999989,45.25249500000001],[-71.170272999999952,45.253883000000087],[-71.189163000000008,45.257773999999984],[-71.211669999999913,45.266105999999979],[-71.233063000000016,45.274993999999936],[-71.239715999999987,45.278046000000074],[-71.264449999999954,45.290833000000077],[-71.280562999999972,45.301933000000133],[-71.288604999999961,45.304436000000067],[-71.302779999999984,45.303047000000106],[-71.314712999999927,45.299438000000066],[-71.327498999999932,45.294441000000006],[-71.424438000000009,45.25],[-71.408614999999998,45.223045000000127],[-71.402221999999938,45.21915400000006],[-71.398894999999982,45.215546000000131],[-71.396118000000001,45.210548000000131],[-71.395843999999954,45.205268999999987],[-71.398620999999991,45.199432000000002],[-71.43249499999996,45.130272000000048],[-71.436110999999926,45.125267000000008],[-71.459166999999979,45.102776000000006],[-71.482772999999952,45.083878000000084],[-71.493056999999965,45.075271999999984],[-71.496383999999921,45.068886000000077],[-71.49888599999997,45.057213000000047],[-71.497222999999963,45.041663999999969],[-71.494155999999975,45.020546000000024],[-71.55471799999998,45.019989000000123],[-71.892776000000026,45.019157000000064],[-72.049987999999985,45.019440000000031],[-72.271652000000017,45.018775999999946],[-72.459166999999866,45.017494000000113],[-72.510283999999956,45.017212000000029],[-72.778884999999946,45.020828000000108],[-72.956389999999942,45.018326000000059],[-73.337173000000007,45.01186400000006],[-73.346114999999998,45.011383000000023],[-73.352997000000016,45.009421999999972],[-73.359267999999986,45.010063000000059],[-73.376662999999951,45.011108000000036],[-73.622771999999941,45.006660000000068],[-73.91164399999991,45.000000000000057],[-74.249161000000015,44.992218000000094],[-74.682021999999904,45.006714000000102],[-74.75111400000003,45.002220000000023],[-74.769729999999925,45.006386000000134],[-74.785827999999981,45.011383000000023],[-74.81220999999988,45.01776899999993],[-74.828887999999949,45.019157000000064],[-74.850280999999939,45.016663000000108],[-74.990829000000019,44.986655999999925],[-75.00140399999998,44.980545000000063],[-75.170546999999999,44.898604999999975],[-75.278060999999923,44.857216000000051],[-75.301666000000012,44.846656999999993],[-75.317779999999857,44.837212000000136],[-75.395843999999954,44.785827999999924],[-75.537216000000001,44.691376000000048],[-75.5625,44.673882000000106],[-75.618057000000022,44.634995000000117],[-75.628051999999968,44.627769000000001],[-75.682495000000017,44.588043000000027],[-75.736114999999927,44.546387000000038],[-75.801940999999999,44.491104000000007],[-75.81138599999997,44.483047000000056],[-75.820557000000008,44.474990999999989],[-75.824722000000008,44.469986000000119],[-75.828338999999971,44.446655000000078],[-75.834166999999979,44.43443300000007],[-75.841109999999901,44.423050000000103],[-75.849441999999954,44.414711000000068],[-75.864166000000012,44.402771000000143],[-75.879990000000021,44.393326000000059],[-75.904449,44.384995000000004],[-75.966109999999958,44.364158999999972],[-75.982177999999919,44.358864000000096],[-75.997771999999998,44.355270000000075],[-76.019454999999937,44.353325000000098],[-76.034728999999913,44.353050000000053],[-76.046950999999979,44.349716000000058],[-76.057769999999948,44.344993999999986],[-76.064437999999939,44.341377000000023],[-76.363373000000024,44.150992999999971],[-76.410278000000005,44.121101000000124],[-76.43472300000002,44.104713000000061],[-76.439986999999974,44.099434000000088],[-76.531386999999995,43.983046999999942],[-76.569457999999997,43.934157999999968],[-76.583618000000001,43.915824999999927],[-76.697494999999947,43.768600000000049],[-76.801940999999999,43.633605999999986],[-76.816955999999948,43.633049000000085],[-76.974166999999909,43.634438000000046],[-77.288329999999917,43.636658000000068],[-77.582779000000016,43.638603000000046],[-77.729996000000028,43.639160000000118],[-77.857773000000009,43.639434999999992],[-77.887222000000008,43.639434999999992],[-78.388061999999934,43.638329000000113],[-78.663054999999986,43.637497000000053],[-78.724715999999944,43.629433000000006],[-78.938323999999909,43.553878999999995],[-79.02806099999998,43.521934999999985],[-79.095275999999956,43.497771999999998],[-79.18472300000002,43.465546000000131],[-79.132216999999969,43.382492000000013],[-79.066787999999974,43.279400000000066],[-79.054169000000002,43.262496999999996],[-79.053328999999962,43.256660000000068],[-79.044997999999964,43.165543000000014],[-79.044723999999974,43.160545000000013],[-79.045836999999949,43.148880000000133],[-79.049438000000009,43.143883000000017],[-79.05972300000002,43.137215000000083],[-79.063613999999916,43.132210000000043],[-79.081115999999952,43.085548000000074],[-79.043334999999956,43.011664999999994],[-79.040832999999964,43.007774000000097],[-79.021666999999923,42.987213000000054],[-79.005843999999911,42.977211000000125],[-78.978606999999954,42.961380000000133],[-78.97193900000002,42.958046000000138],[-78.962783999999942,42.956383000000017],[-78.946655000000021,42.955551000000128],[-78.938599000000011,42.953322999999955],[-78.932770000000005,42.950829000000056],[-78.927490000000034,42.946937999999989],[-78.920273000000009,42.939156000000025],[-78.918335000000013,42.934715000000097],[-78.915282999999988,42.924164000000019],[-78.917220999999927,42.904991000000109],[-78.918335000000013,42.89888000000002],[-78.926665999999898,42.880546999999979],[-78.932219999999973,42.868324000000086],[-78.935271999999998,42.862495000000081],[-78.942490000000021,42.852493000000095],[-78.965835999999967,42.833602999999982],[-78.986937999999952,42.819992000000013],[-79.12110899999999,42.769157000000121],[-79.154448999999943,42.757217000000026],[-79.299437999999952,42.702492000000007],[-79.56645199999997,42.600708000000054],[-79.763427999999919,42.524703999999986],[-79.776672000000019,42.52027099999998],[-80.086120999999991,42.399994000000106],[-80.096953999999926,42.396385000000066],[-80.510283999999899,42.329163000000051],[-80.528548999999998,42.326617999999996],[-80.869155999999975,42.279160000000104],[-81.249161000000015,42.224991000000045],[-81.424437999999952,42.144997000000046],[-81.623610999999983,42.052773000000116],[-81.822234999999978,41.96027400000014],[-82.218062999999972,41.774437000000034],[-82.238891999999964,41.763885000000073],[-82.425277999999992,41.675551999999982],[-82.462783999999942,41.676102000000014],[-82.649993999999936,41.681938000000059],[-82.696654999999964,41.683875999999998],[-83.071944999999914,41.859717999999987],[-83.080841000000021,41.874992000000077],[-83.117415999999878,41.946194000000048],[-83.130828999999892,41.970543000000134],[-83.150283999999942,42.008330999999998],[-83.168609999999944,42.046104000000014],[-83.168335000000013,42.048050000000103],[-83.137222000000008,42.201385000000016],[-83.132492000000013,42.220824999999991],[-83.12332200000003,42.245827000000077],[-83.118056999999965,42.25777400000004],[-83.107772999999952,42.272766000000047],[-83.086959999999976,42.300545000000056],[-83.062209999999993,42.318603999999993],[-83.051940999999999,42.324715000000083],[-83.027221999999995,42.331940000000145],[-83.002227999999945,42.339157000000057],[-82.975829999999974,42.344711000000075],[-82.940551999999968,42.357498000000078],[-82.841384999999946,42.396941999999967],[-82.808884000000035,42.413322000000107],[-82.793609999999944,42.422768000000076],[-82.775283999999942,42.43721000000005],[-82.763061999999991,42.448600999999996],[-82.729996000000028,42.48333000000008],[-82.704453000000001,42.508331000000055],[-82.670273000000009,42.539993000000038],[-82.665282999999931,42.544158999999922],[-82.659103000000016,42.548195000000078],[-82.650756999999942,42.553642000000139],[-82.644973999999991,42.556411999999966],[-82.630553999999961,42.557495000000074],[-82.622222999999963,42.556656000000089],[-82.614166000000012,42.554710000000057],[-82.605835000000013,42.554161000000079],[-82.586394999999925,42.558601000000124],[-82.571670999999981,42.56888600000002],[-82.535827999999867,42.599434000000031],[-82.521392999999932,42.618881000000044],[-82.513335999999867,42.63638300000008],[-82.484726000000023,42.719154000000003],[-82.474716000000001,42.751663000000065],[-82.471114999999941,42.769989000000066],[-82.470551,42.782493999999986],[-82.47193900000002,42.793053000000043],[-82.473327999999924,42.797493000000031],[-82.480559999999912,42.812492000000134],[-82.481948999999929,42.823326000000009],[-82.481109999999944,42.829437000000098],[-82.464446999999893,42.898048000000074],[-82.462509000000011,42.904709000000025],[-82.418776999999977,43.018639000000064],[-82.404175000000009,43.049164000000076],[-82.322234999999978,43.21054799999996],[-82.252791999999943,43.346382000000119],[-82.228881999999942,43.391380000000026],[-82.146118000000001,43.553047000000106],[-82.130279999999971,43.585266000000104],[-82.214447000000007,43.952217000000132],[-82.331679999999949,44.460823000000119],[-82.430556999999965,44.882767000000115],[-82.543059999999969,45.355826999999977],[-82.629990000000021,45.396102999999982],[-82.665008999999998,45.411933999999917],[-82.954178000000013,45.54193900000007],[-83.050826999999913,45.585266000000047],[-83.11221299999994,45.612770000000069],[-83.270844000000011,45.683326999999963],[-83.500290000000007,45.784995999999978],[-83.597778000000005,45.827217000000019],[-83.523894999999982,45.918053000000043],[-83.487777999999992,45.961661999999933],[-83.447768999999994,46.011940000000095],[-83.474716000000001,46.036385000000109],[-83.483321999999987,46.043884000000105],[-83.566665999999998,46.098602000000085],[-83.577498999999989,46.105270000000075],[-83.596114999999998,46.114158999999972],[-83.610549999999932,46.119156000000089],[-83.627776999999867,46.123046999999929],[-83.663054999999872,46.126099000000067],[-83.830565999999862,46.126099000000067],[-83.846114999999941,46.124992000000134],[-83.883895999999936,46.102776000000119],[-83.888031000000012,46.096161000000109],[-83.892257999999913,46.092346000000134],[-83.898009999999942,46.08718900000008],[-83.917998999999952,46.073303000000124],[-83.923003999999935,46.070250999999985],[-83.936004999999966,46.065383999999995],[-83.942840999999987,46.066101000000003],[-83.952788999999996,46.068603999999993],[-83.958892999999932,46.071663000000115],[-83.962783999999999,46.075554000000011],[-84.076675000000023,46.203049000000135],[-84.089721999999938,46.220267999999976],[-84.099166999999909,46.232764999999972],[-84.105834999999956,46.247771999999998],[-84.15695199999999,46.391663000000108],[-84.15834000000001,46.396659999999997],[-84.160277999999948,46.424995000000024],[-84.154448999999943,46.445267000000115],[-84.149170000000026,46.457214000000079],[-84.139998999999989,46.474159000000043],[-84.121933000000013,46.498877999999991],[-84.118057000000022,46.512497000000053],[-84.118331999999953,46.518051000000071],[-84.119994999999903,46.523323000000005],[-84.12249799999995,46.527771000000143],[-84.126389000000017,46.531937000000084],[-84.132491999999957,46.53472099999999],[-84.192763999999954,46.546661000000086],[-84.408614999999884,46.508605999999986],[-84.428328999999962,46.503052000000025],[-84.434433000000013,46.500275000000101],[-84.454453000000001,46.486938000000066],[-84.459441999999967,46.482764999999915],[-84.463897999999972,46.478325000000098],[-84.474715999999944,46.463608000000079],[-84.479996000000028,46.46027400000014],[-84.486388999999974,46.458885000000123],[-84.494719999999973,46.458046000000138],[-84.512512000000015,46.45915999999994],[-84.529998999999975,46.461380000000133],[-84.565001999999993,46.466385000000002],[-84.775008999999955,46.653046000000074],[-84.787780999999995,46.68971300000004],[-84.806945999999925,46.748328999999956],[-84.825561999999877,46.806938000000059],[-84.83277899999996,46.829163000000051],[-84.856948999999986,46.902214000000072],[-84.872222999999963,46.909431000000041],[-84.917495999999971,46.928604000000121],[-85.354445999999996,47.111664000000076],[-85.464171999999905,47.157211000000132],[-85.738891999999964,47.270827999999995],[-85.839721999999938,47.31221000000005],[-86.014724999999942,47.383880999999917],[-86.051391999999964,47.39888000000002],[-86.466659999999933,47.567215000000033],[-86.568893000000003,47.608330000000024],[-86.884444999999971,47.734717999999987],[-87.201400999999976,47.860275000000115],[-87.341674999999952,47.915542999999957],[-87.444716999999969,47.955826000000002],[-88.188323999999966,48.244156000000089],[-88.368056999999908,48.31221000000005],[-88.645554000000004,48.264160000000004],[-88.691665999999941,48.255554000000075],[-88.974166999999909,48.139160000000118],[-89.323333999999988,47.993050000000096],[-89.356658999999979,47.979713000000061],[-89.447768999999937,48.003326000000015],[-89.493125999999961,48.003166000000078],[-89.556655999999975,48.001389000000131],[-89.573059000000001,48.001663000000065],[-89.57887299999993,48.00262500000008],[-89.583069000000023,48.003326000000015],[-89.598617999999931,48.006660000000011],[-89.603881999999999,48.00999500000006],[-89.608337000000006,48.014160000000061],[-89.614715999999987,48.016663000000051],[-89.750564999999995,48.029160000000047],[-89.760559000000001,48.029991000000052],[-89.838897999999972,48.01166500000005],[-89.862502999999947,48.000832000000059],[-89.888061999999991,47.991936000000123],[-89.895554000000004,47.989990000000034],[-89.903885000000002,47.989159000000029],[-89.911666999999966,47.991379000000052],[-89.982223999999974,48.016105999999979],[-89.993057000000022,48.02276599999999],[-90,48.030204999999967],[-90.000838999999985,48.031105000000025],[-90.032775999999956,48.069717000000026],[-90.056106999999997,48.100548000000117],[-90.059432999999956,48.104996000000085],[-90.065001999999936,48.10833000000008],[-90.081680000000006,48.111938000000009],[-90.12721299999987,48.119156000000032],[-90.146118000000001,48.121658000000082],[-90.156386999999938,48.122490000000028],[-90.279998999999975,48.113051999999982],[-90.740829000000019,48.090828000000045],[-90.758895999999993,48.094711000000018],[-90.769454999999937,48.099998000000085],[-90.778335999999967,48.107498000000021],[-90.838608000000022,48.184158000000025],[-90.841674999999952,48.191658000000132],[-90.843063000000029,48.205826000000002],[-90.83805799999999,48.208603000000039],[-90.833625999999924,48.209099000000094],[-90.829726999999991,48.212493999999936],[-90.829192999999975,48.214638000000093],[-90.828887999999949,48.221656999999936],[-90.830291999999929,48.225548000000003],[-90.832503999999915,48.227211000000125],[-90.849166999999909,48.233879000000115],[-90.868606999999997,48.237495000000138],[-90.898055999999883,48.236656000000039],[-90.928329000000019,48.228600000000142],[-90.969161999999926,48.214714000000129],[-91.126098999999954,48.154991000000109],[-91.14916999999997,48.144157000000064],[-91.192489999999964,48.114998000000071],[-91.232223999999974,48.087769000000094],[-91.24888599999997,48.079437000000098],[-91.269454999999994,48.07388300000008],[-91.283324999999991,48.071381000000031],[-91.311661000000015,48.069160000000124],[-91.325561999999991,48.069717000000026],[-91.34722899999997,48.068054000000075],[-91.381377999999984,48.061661000000129],[-91.392226999999934,48.056099000000017],[-91.418335000000013,48.041107000000011],[-91.462783999999942,48.057770000000062],[-91.573623999999995,48.093048000000067],[-91.645142000000021,48.098343000000114],[-91.6875,48.144714000000135],[-91.729720999999984,48.187209999999936],[-91.734160999999915,48.190543999999932],[-91.739715999999987,48.193321000000026],[-91.756957999999997,48.194434999999999],[-91.776107999999965,48.194153000000142],[-91.791672000000005,48.195267000000115],[-91.850554999999986,48.203880000000083],[-91.940276999999924,48.23054500000012],[-91.956589000000008,48.23663300000004],[-91.97084000000001,48.244437999999946],[-91.985824999999977,48.255829000000119],[-91.997771999999998,48.266662999999994],[-92.007232999999985,48.27915999999999],[-92.008895999999993,48.28276800000009],[-92.011123999999938,48.292496000000085],[-92.011672999999917,48.297493000000031],[-92.013335999999924,48.304993000000081],[-92.020554000000004,48.322769000000051],[-92.02806099999998,48.336105000000032],[-92.035552999999993,48.343605000000082],[-92.041945999999939,48.347771000000023],[-92.051940999999943,48.353882000000056],[-92.141678000000013,48.357216000000051],[-92.162216000000001,48.356658999999979],[-92.257232999999928,48.346939000000077],[-92.265014999999892,48.343605000000082],[-92.276107999999965,48.337493999999992],[-92.280288999999982,48.332771000000037],[-92.285827999999981,48.326103000000046],[-92.300551999999925,48.304993000000081],[-92.300827000000027,48.298050000000103],[-92.297225999999966,48.28943600000008],[-92.288604999999961,48.276100000000099],[-92.283614999999998,48.263885000000016],[-92.283065999999963,48.256660000000124],[-92.285552999999936,48.250549000000035],[-92.290282999999988,48.246658000000139],[-92.306716999999935,48.241592000000026],[-92.331680000000006,48.234160999999972],[-92.351943999999946,48.228325000000098],[-92.356658999999979,48.228600000000142],[-92.361664000000019,48.231102000000021],[-92.369155999999975,48.238883999999985],[-92.426392000000021,48.311661000000072],[-92.455275999999969,48.394157000000007],[-92.582229999999981,48.441375999999991],[-92.697768999999994,48.485268000000076],[-92.715285999999935,48.541382000000056],[-92.943054000000018,48.621101000000067],[-92.953063999999927,48.62332200000003],[-92.966109999999958,48.624991999999963],[-93.244995000000017,48.640549000000021],[-93.308883999999978,48.630272000000048],[-93.322509999999966,48.628044000000102],[-93.40834000000001,48.608604000000128],[-93.449996999999996,48.597214000000065],[-93.456664999999987,48.594994000000042],[-93.458618000000001,48.592491000000052],[-93.458618000000001,48.589432000000102],[-93.456116000000009,48.583054000000118],[-93.452788999999996,48.579436999999984],[-93.449721999999952,48.570549000000028],[-93.449996999999996,48.56749700000006],[-93.454177999999899,48.559714999999926],[-93.46055599999994,48.55332199999998],[-93.465835999999911,48.54972099999992],[-93.476394999999968,48.544158999999979],[-93.489440999999999,48.539718999999991],[-93.503066999999874,48.537498000000085],[-93.65695199999999,48.51527399999992],[-93.664444000000003,48.514999000000103],[-93.724166999999966,48.51388500000013],[-93.778610000000015,48.51638800000012],[-93.793059999999969,48.517768999999987],[-93.800277999999935,48.520271000000037],[-93.803604000000007,48.524712000000136],[-93.805557000000022,48.532211000000132],[-93.80972300000002,48.550270000000069],[-93.817779999999971,48.581940000000145],[-93.820007000000032,48.590546000000074],[-93.830001999999979,48.612770000000012],[-93.833327999999995,48.616386000000034],[-93.842498999999975,48.623604000000057],[-93.851944000000003,48.626938000000052],[-93.865554999999972,48.630272000000048],[-93.880553999999961,48.630272000000048],[-93.885283999999899,48.630272000000048],[-94.063888999999961,48.638046000000031],[-94.111937999999896,48.641106000000093],[-94.134170999999867,48.642769000000044],[-94.235275000000001,48.653046000000018],[-94.250564999999995,48.656097000000045],[-94.252791999999886,48.65776800000009],[-94.25418099999996,48.660545000000013],[-94.252228000000002,48.671379000000059],[-94.252228000000002,48.679993000000138],[-94.256667999999934,48.687767000000122],[-94.263061999999991,48.694153000000028],[-94.271117999999888,48.699158000000068],[-94.278610000000015,48.702492000000063],[-94.291107000000011,48.706099999999992],[-94.305832000000009,48.708328000000108],[-94.390563999999927,48.711105000000032],[-94.406112999999948,48.711105000000032],[-94.414169000000015,48.709991000000059],[-94.433318999999983,48.701934999999992],[-94.453613000000018,48.695824000000073],[-94.460555999999997,48.694435000000112],[-94.476395000000025,48.693878000000041],[-94.500838999999985,48.696938000000046],[-94.523894999999925,48.701934999999992],[-94.605835000000013,48.724433999999917],[-94.637221999999952,48.739159000000086],[-94.643616000000009,48.743049999999982],[-94.689986999999917,48.774712000000079],[-94.699996999999996,48.782767999999976],[-94.706664999999987,48.79055000000011],[-94.709441999999967,48.803047000000106],[-94.711120999999991,48.846382000000062],[-94.710007000000019,48.855270000000075],[-94.709075999999982,48.857948000000135],[-94.705001999999979,48.862770000000125],[-94.700287000000003,48.868881000000044],[-94.699722000000008,48.871101000000067],[-94.700287000000003,48.895271000000037],[-94.701675000000023,48.909714000000122],[-94.704178000000013,48.924438000000009],[-94.707503999999972,48.941932999999949],[-94.71665999999999,48.970543000000021],[-94.720550999999887,48.978874000000076],[-94.727218999999934,48.99221799999998],[-94.732773000000009,49.001663000000065],[-94.745270000000005,49.028603000000089],[-94.766952999999944,49.075554000000125],[-94.797774999999945,49.155822999999998],[-94.798889000000031,49.159156999999993],[-94.804717999999866,49.17971799999998],[-94.806655999999975,49.193603999999993],[-94.81527699999998,49.29332700000009],[-94.815552000000025,49.306099000000131],[-94.818344000000025,49.309989999999971],[-94.821944999999971,49.312767000000065],[-94.922775000000001,49.355827000000033],[-94.935927999999933,49.360297999999943],[-94.946380999999974,49.36221299999994],[-94.958617999999944,49.361664000000019],[-94.96556099999998,49.360275000000001],[-94.998610999999983,49.357498000000078],[-95.025833000000034,49.357498000000078],[-95.078063999999927,49.359161000000029],[-95.085662999999954,49.360023000000126],[-95.120834000000002,49.364998000000014],[-95.142501999999922,49.371658000000025],[-95.152785999999935,49.376656000000025],[-95.154174999999952,49.366386000000091],[-95.154448999999886,49.333328000000108],[-95.153960999999981,49.173332000000073],[-95.154174999999952,48.999435000000119],[-95.26655599999998,48.999977000000001],[-97.219940000000008,48.999718000000087],[-97.502791999999943,48.999435000000119],[-97.635833999999988,48.999435000000119],[-97.801940999999999,49.000000000000114],[-97.969161999999926,49.000274999999988],[-98.26916499999993,49.000274999999988],[-98.502227999999889,48.999435000000119],[-98.868606999999997,49.000000000000114],[-99.335555999999997,48.999435000000119],[-99.835555999999997,49.000000000000114],[-100.00222799999995,49.000000000000114],[-100.50195300000001,48.999718000000087],[-101.06916799999999,49.000000000000114],[-101.30222299999997,49.000274999999988],[-101.367233,48.998787000000107],[-101.46888699999994,48.999435000000119],[-102.16887699999995,49.000000000000114],[-102.33556399999998,48.999435000000119],[-102.53555299999994,49.000274999999988],[-102.76834099999996,48.999435000000119],[-103.03527800000001,48.999435000000119],[-103.16832699999992,48.999435000000119],[-103.26889,49.000000000000114],[-103.43554699999993,49.000274999999988],[-103.53527800000001,48.999435000000119],[-103.73528299999987,48.999435000000119],[-104.033096,49.000251999999989],[-104.13527699999986,48.999718000000087],[-104.33500699999996,48.999435000000119],[-104.83500700000002,48.999435000000119],[-105.00140399999998,48.999435000000119],[-105.26834100000002,49.000000000000114],[-105.70221699999996,48.999435000000119],[-105.93554699999999,48.999435000000119],[-106.03472899999991,48.999435000000119],[-106.13527699999997,48.999435000000119],[-106.26862299999993,48.999435000000119],[-106.46806300000003,48.999435000000119],[-106.73554999999993,48.999435000000119],[-107.33528100000001,49.000000000000114],[-107.43499800000001,49.000000000000114],[-107.63474300000001,48.999435000000119],[-107.73554999999993,48.999435000000119],[-107.80110199999996,48.999435000000119],[-108.16887700000001,48.999435000000119],[-108.33500699999996,48.999435000000119],[-108.53472899999997,48.999435000000119],[-108.6677699999999,48.999435000000119],[-108.83473200000003,48.999435000000119],[-109.33473200000003,48.999435000000119],[-109.63474299999996,48.999435000000119],[-109.801941,48.999435000000119],[-109.96777299999997,48.999718000000087],[-109.99965700000001,49.000603000000126],[-110.10138699999999,48.999435000000119],[-110.20111099999991,48.999435000000119],[-110.30166599999995,49.000000000000114],[-110.36776699999996,49.000000000000114],[-110.50110599999988,49.000000000000114],[-110.66777000000002,49.000000000000114],[-110.76862299999993,48.999435000000119],[-111.36833199999995,48.999435000000119],[-111.80110199999996,48.999435000000119],[-112.03472899999997,48.999435000000119],[-112.16832699999998,48.999435000000119],[-112.234734,49.000000000000114],[-112.33500699999996,49.000000000000114],[-112.43499799999995,49.000000000000114],[-112.53500399999996,49.000000000000114],[-112.60166900000002,49.000000000000114],[-112.93472300000002,49.000000000000114],[-113.03443900000002,49.000000000000114],[-113.23416099999997,48.999435000000119],[-113.36833200000001,48.999435000000119],[-113.567497,48.999435000000119],[-114.03443899999991,48.999435000000119],[-114.05985999999996,49.000603000000126],[-114.33500700000002,48.999435000000119],[-114.46749899999992,48.999435000000119],[-114.53472899999991,49.000000000000114],[-114.63390399999997,49.000000000000114],[-114.90110800000002,48.999435000000119],[-115.03415699999999,48.999435000000119],[-115.16750299999995,48.999435000000119],[-115.36805700000002,49.000000000000114],[-115.46806300000003,49.000000000000114],[-115.56723,49.000000000000114],[-115.60138699999987,48.999435000000119],[-115.734444,48.999435000000119],[-116.04833999999994,48.999718000000087],[-117.00140399999998,48.999718000000087],[-117.03662099999997,49.003128000000117],[-117.06722999999994,48.999718000000087],[-117.20084399999996,48.999435000000119],[-117.234734,49.000000000000114],[-117.30055199999993,49.000000000000114],[-117.567497,49.000000000000114],[-117.83444199999991,49.000000000000114],[-117.86749299999997,48.999435000000119],[-118.00083899999998,48.999435000000119],[-118.13417099999998,48.999435000000119],[-118.36805699999996,48.999435000000119],[-118.76777600000003,48.999435000000119],[-118.96749899999992,48.999435000000119],[-119.13417099999987,48.999435000000119],[-119.26722699999999,48.999435000000119],[-119.46777299999985,48.999435000000119],[-119.86749299999991,48.999435000000119],[-119.93415800000002,48.999435000000119],[-120.03415699999999,48.999435000000119],[-120.53472899999997,48.999435000000119],[-121.08497599999993,48.999718000000087],[-122.10056299999997,49.000000000000114],[-122.33389299999993,49.000000000000114],[-122.43360899999993,49.000000000000114],[-122.56667299999992,49.000000000000114],[-122.69999699999994,49.000000000000114],[-122.76030000000003,48.999435000000119],[-122.81360599999994,49.005272000000048],[-122.83112299999999,49.008606000000043],[-122.86250299999989,49.022217000000012],[-122.87777699999998,49.032211000000018],[-122.87970699999994,49.034438999999963],[-122.88110399999999,49.038605000000075],[-122.87748699999986,49.049438000000066],[-122.87609900000001,49.051383999999928],[-122.87249799999989,49.054436000000067],[-122.86416600000001,49.061661000000129],[-122.85888699999992,49.067497000000003],[-122.85804699999994,49.072769000000108],[-122.859444,49.077217000000076],[-122.86638599999998,49.081107999999972],[-122.87444299999999,49.083602999999982],[-122.89998600000001,49.087211999999965],[-122.91887700000001,49.087211999999965],[-122.94167299999992,49.082496999999933],[-123.02194199999997,49.051658999999972],[-123.03916900000002,49.042496000000142],[-123.04666099999997,49.033332999999971],[-123.048607,49.027214000000129],[-123.04833999999994,49.022491000000116],[-123.04778299999998,49.018326000000116],[-123.03916900000002,49.005272000000048],[-123.03431699999999,48.999435000000119],[-123.09374999999994,48.999435000000119],[-123.11332699999997,49.036658999999986],[-123.13890099999998,49.107216000000108],[-123.14835399999998,49.10833000000008],[-123.20500199999998,49.123603999999943],[-123.20973200000003,49.127212999999983],[-123.247772,49.265273999999977],[-123.24889399999995,49.273605000000032],[-123.24749800000001,49.275551000000121],[-123.09449799999993,49.283938999999975],[-123.00933800000001,49.281944000000067],[-122.94332900000001,49.284164000000089],[-122.92360699999995,49.28833000000003],[-122.91251399999999,49.29332700000009],[-122.87917299999998,49.339157000000114],[-122.87499999999994,49.351387000000045],[-122.85388199999994,49.429993000000138],[-122.85278299999999,49.436104000000057],[-122.85333300000002,49.438880999999924],[-122.86054999999993,49.447487000000024],[-122.87082700000002,49.457214000000022],[-122.87638899999996,49.455551000000071],[-122.87832600000002,49.449432000000058],[-122.876938,49.429993000000138],[-122.87721299999993,49.414992999999981],[-122.88110399999999,49.40277100000003],[-122.88583399999993,49.391936999999984],[-122.90139799999992,49.360550000000046],[-122.91555800000003,49.342216000000064],[-122.93138099999999,49.328049000000135],[-123.00538599999999,49.319549999999992],[-123.03671999999989,49.313217000000009],[-123.04521899999992,49.312550000000044],[-123.06339299999996,49.313217000000009],[-123.08023100000003,49.315547999999978],[-123.23638900000003,49.338882000000069],[-123.25418099999996,49.384720000000016],[-123.25666799999993,49.512772000000041],[-123.25334199999992,49.523048000000131],[-123.24722299999996,49.534995999999978],[-123.20162199999999,49.615715000000137],[-123.1558379999999,49.676102000000014],[-123.15416700000003,49.67943600000001],[-123.15222199999994,49.685547000000099],[-123.15361000000001,49.690269000000001],[-123.15972899999997,49.699158000000068],[-123.16471899999993,49.702217000000019],[-123.16777000000002,49.702217000000019],[-123.17027300000001,49.701103000000046],[-123.24194299999999,49.660544999999956],[-123.24804699999993,49.648605000000089],[-123.24804699999993,49.639717000000076],[-123.26677699999999,49.617378000000031],[-123.26594499999999,49.610382000000129],[-123.265106,49.607880000000023],[-123.26494600000001,49.603713999999968],[-123.26576999999997,49.598381000000131],[-123.26812000000001,49.595551000000114],[-123.27095799999995,49.593215999999984],[-123.27977799999991,49.590050000000019],[-123.34333800000002,49.561378000000047],[-123.38110399999999,49.556655999999975],[-123.39444699999996,49.551933000000133],[-123.43028299999997,49.538329999999974],[-123.48306300000002,49.516663000000108],[-123.49249299999997,49.509720000000129],[-123.495003,49.506943000000035],[-123.49610899999993,49.500275000000045],[-123.49416399999996,49.468596999999988],[-123.491669,49.463608000000022],[-123.48777799999993,49.46054799999996],[-123.47778299999993,49.455268999999987],[-123.47416699999997,49.450828999999999],[-123.47332799999992,49.441101000000117],[-123.47609699999998,49.421936000000017],[-123.47666899999996,49.419159000000093],[-123.48194899999993,49.409988000000112],[-123.48665599999993,49.406097000000045],[-123.506958,49.389435000000049],[-123.512787,49.386383000000137],[-123.51944699999996,49.383881000000088],[-123.52694700000001,49.382210000000043],[-123.53555299999994,49.381378000000097],[-123.54499800000002,49.383331000000055],[-123.60109699999987,49.397490999999945],[-123.60610999999994,49.399994000000106],[-123.67555199999998,49.425269999999955],[-123.77500900000001,49.458327999999995],[-123.85500299999995,49.468879999999956],[-123.86165599999993,49.46665999999999],[-123.88082899999995,49.466385000000116],[-123.88890100000003,49.468048000000067],[-123.89611799999994,49.470543000000077],[-123.95973200000003,49.510551000000135],[-123.96362299999993,49.513329000000113],[-123.98860200000001,49.541663999999969],[-124.06806899999992,49.633881000000031],[-124.07055700000001,49.638046000000031],[-124.07112099999995,49.644440000000088],[-124.07028199999991,49.649719000000061],[-124.05915800000002,49.671104000000014],[-124.03250100000002,49.713882000000126],[-124.02861000000001,49.71915400000006],[-124.021118,49.726379000000065],[-124.00527999999997,49.735825000000034],[-123.99833699999999,49.738884000000041],[-123.987213,49.743050000000096],[-123.97528099999994,49.745270000000119],[-123.95694700000001,49.746101000000124],[-123.94748700000002,49.744995000000131],[-123.94055199999997,49.742493000000024],[-123.93443299999996,49.739432999999963],[-123.92971799999992,49.735825000000034],[-123.876938,49.683327000000077],[-123.83306900000002,49.627486999999974],[-123.82917799999996,49.616936000000067],[-123.82444800000002,49.595825000000048],[-123.82277699999997,49.585548000000074],[-123.82333399999999,49.581383000000073],[-123.82224300000001,49.573051000000078],[-123.79972800000002,49.519440000000031],[-123.79444899999993,49.510277000000031],[-123.78971899999999,49.506660000000068],[-123.78250099999997,49.504166000000112],[-123.77639799999992,49.503882999999973],[-123.76972999999998,49.504715000000033],[-123.76640299999991,49.506660000000068],[-123.76390100000003,49.509438000000046],[-123.76139799999999,49.513329000000113],[-123.75389100000001,49.537773000000072],[-123.76862299999993,49.561935000000119],[-123.77139299999999,49.572220000000073],[-123.77223200000003,49.581940000000145],[-123.77027900000002,49.588043000000084],[-123.74017300000003,49.602599999999995],[-123.73733500000003,49.605270000000075],[-123.73517599999991,49.606937000000016],[-123.69599899999997,49.623604000000057],[-123.68683599999997,49.625603000000069],[-123.67283599999996,49.625271000000112],[-123.63890099999998,49.634995000000004],[-123.61501299999992,49.639160000000004],[-123.56331599999999,49.667213000000118],[-123.54695100000004,49.677215999999987],[-123.53751399999993,49.684990000000028],[-123.53362300000003,49.689712999999983],[-123.53167699999995,49.695541000000105],[-123.53222699999998,49.700546000000145],[-123.53388999999993,49.701934999999992],[-123.54167199999989,49.701103000000046],[-123.54998799999998,49.693877999999984],[-123.56054699999993,49.686935000000005],[-123.57195299999995,49.680824000000086],[-123.58556399999992,49.676102000000014],[-123.67578100000003,49.653046000000018],[-123.69061299999993,49.651051000000109],[-123.73978399999999,49.645882000000029],[-123.75010700000001,49.64521400000001],[-123.79666099999997,49.638328999999999],[-123.80387899999999,49.640831000000048],[-123.8125,49.647491000000116],[-123.93499800000001,49.768326000000002],[-123.93749999999989,49.77276599999999],[-123.93582200000003,49.778046000000074],[-123.93055699999996,49.785271000000137],[-123.91999800000002,49.792495999999971],[-123.88890100000003,49.819717000000026],[-123.88500999999997,49.823608000000092],[-123.88249199999996,49.82749200000012],[-123.87970699999994,49.832771000000093],[-123.87638900000002,49.842215999999951],[-123.87332200000003,49.864158999999916],[-123.87249799999995,49.87110100000001],[-123.872772,49.877212999999983],[-123.88500999999997,49.914993000000095],[-123.889183,49.922767999999962],[-123.89417300000002,49.92721599999993],[-123.90139799999992,49.928879000000052],[-123.91082799999998,49.930275000000108],[-123.920547,49.928604000000064],[-123.92999299999997,49.929718000000037],[-123.93720999999994,49.932213000000047],[-123.94193999999999,49.936104000000114],[-123.94860799999998,49.943877999999927],[-123.95472699999999,49.953049000000078],[-123.95889299999999,49.962212000000079],[-123.929779,49.985321000000056],[-123.929283,49.989493999999979],[-123.92544599999997,49.994156000000089],[-123.92044099999998,49.997325999999987],[-123.88160700000003,50.01499600000011],[-123.87343599999986,50.018326000000116],[-123.860771,50.021660000000111],[-123.85294299999998,50.022995000000037],[-123.84310199999999,50.023659000000123],[-123.80832699999996,50.040276000000119],[-123.79611199999994,50.04444100000012],[-123.75334199999998,50.07638500000013],[-123.74861099999998,50.080276000000026],[-123.74445300000002,50.086936999999921],[-123.74944299999999,50.09665700000005],[-123.82140399999997,50.152213999999958],[-123.83056599999998,50.156936999999971],[-123.846947,50.163321999999994],[-123.97778299999993,50.213882000000012],[-123.98500100000001,50.216103000000089],[-123.99054699999999,50.215828000000101],[-123.99109599999986,50.21166199999999],[-123.98832699999997,50.207496999999989],[-123.96056399999998,50.180550000000096],[-123.94695300000001,50.169441000000006],[-123.93720999999994,50.163321999999994],[-123.92388899999992,50.158600000000092],[-123.90583800000002,50.15638000000007],[-123.88806199999988,50.152489000000003],[-123.882767,50.150826000000052],[-123.87165800000002,50.145546000000024],[-123.80915799999997,50.099998000000085],[-123.8125,50.090546000000131],[-123.81639099999995,50.086105000000032],[-123.85716200000002,50.066883000000132],[-123.86933099999993,50.058048000000099],[-123.87499999999994,50.054214000000115],[-123.87899799999997,50.052380000000085],[-123.916,50.039883000000088],[-123.95465899999988,50.029217000000074],[-123.99526999999989,50.011664999999994],[-123.99916099999996,50.00638600000002],[-124,50.000275000000101],[-123.99916099999996,49.990547000000106],[-123.99526999999989,49.961662000000047],[-123.99249299999997,49.942764000000125],[-123.99109599999986,49.937209999999993],[-123.98860200000001,49.931664000000126],[-123.97972099999998,49.916663999999969],[-123.96721600000001,49.906380000000127],[-123.95140100000003,49.895828000000108],[-123.91972399999992,49.877769000000001],[-123.91471899999993,49.873878000000104],[-123.91111799999999,49.869713000000104],[-123.922234,49.834435000000099],[-123.92639199999996,49.825828999999999],[-123.97277799999989,49.80471],[-123.97833299999996,49.803047000000106],[-123.98581699999994,49.802772999999945],[-123.99194299999994,49.804436000000067],[-124.00418100000002,49.810546999999985],[-124.01012400000002,49.834602000000075],[-124.00862100000001,49.841938000000084],[-124.00728600000002,49.856769999999983],[-124.01806599999998,49.909156999999993],[-124.02166699999987,49.91415400000011],[-124.029449,49.920547000000056],[-124.037781,49.922493000000145],[-124.04222099999998,49.921379000000002],[-124.04472399999997,49.917496000000028],[-124.068893,49.878876000000105],[-124.07195299999995,49.873322000000087],[-124.07028199999991,49.869156000000032],[-124.06261399999988,49.846328999999912],[-124.05877700000002,49.841991000000007],[-124.05860899999999,49.838325999999995],[-124.06028000000003,49.835158999999976],[-124.08444199999991,49.799164000000133],[-124.09028599999999,49.795830000000137],[-124.14555399999995,49.779716000000008],[-124.17694099999989,49.773604999999975],[-124.18582199999997,49.77276599999999],[-124.2702789999999,49.768051000000128],[-124.40416700000003,49.763329000000056],[-124.41361999999998,49.763610999999969],[-124.42916899999994,49.766388000000006],[-124.43639400000001,49.768883000000073],[-124.51194800000002,49.796104000000071],[-124.52166699999992,49.804161000000079],[-124.52443699999998,49.808327000000133],[-124.52583300000003,49.813880999999981],[-124.52583300000003,49.831665000000044],[-124.52749599999987,49.837212000000022],[-124.53278399999999,49.844437000000084],[-124.57195299999995,49.874435000000005],[-124.59137699999997,49.883049000000085],[-124.63221699999997,49.899436999999921],[-124.702789,49.934989999999971],[-124.74194299999999,49.958328000000051],[-124.77306399999992,49.985825000000034],[-124.80332900000002,50.020271000000093],[-124.82556199999999,50.051384000000098],[-124.82972699999999,50.061935000000005],[-124.828056,50.066666000000112],[-124.82140400000003,50.069160000000068],[-124.81304899999992,50.067496999999946],[-124.80695300000002,50.06360600000005],[-124.76722699999988,50.036385000000053],[-124.70333900000003,49.995543999999995],[-124.66805999999991,50.07027400000004],[-124.61694299999999,50.179161000000079],[-124.60193599999997,50.234993000000031],[-124.60138699999993,50.238884000000098],[-124.60417200000001,50.243881000000044],[-124.63110399999999,50.279716000000121],[-124.63890100000003,50.286942000000067],[-124.665009,50.303879000000052],[-124.708618,50.318329000000006],[-124.71362299999987,50.321937999999989],[-124.71501199999994,50.327492000000007],[-124.65778399999994,50.386108000000092],[-124.65194699999989,50.389160000000061],[-124.62609899999995,50.398330999999985],[-124.60193599999997,50.40277100000003],[-124.58055100000001,50.399990000000116],[-124.57555400000001,50.39899400000013],[-124.57122800000002,50.397495000000106],[-124.54998799999993,50.393883000000017],[-124.53362300000003,50.395827999999995],[-124.51999699999999,50.399994000000106],[-124.43415800000002,50.431664000000012],[-124.42054699999994,50.43721000000005],[-124.39862099999999,50.450545999999974],[-124.38305700000001,50.462212000000136],[-124.36138900000003,50.479713000000118],[-124.35193600000002,50.487495000000081],[-124.34805299999999,50.492218000000037],[-124.34528399999988,50.497489999999971],[-124.34777800000001,50.50249500000001],[-124.35527000000002,50.504997000000117],[-124.36389200000002,50.503882999999917],[-124.378601,50.499161000000015],[-124.38445299999995,50.49610100000001],[-124.39388999999989,50.488884000000041],[-124.39778099999995,50.484161000000086],[-124.40055799999993,50.478874000000133],[-124.404449,50.4741590000001],[-124.40915699999999,50.470268000000033],[-124.42749000000003,50.462212000000136],[-124.51834099999991,50.432212999999933],[-124.58383199999997,50.414051000000029],[-124.58833300000003,50.41338300000001],[-124.59999800000003,50.413048000000003],[-124.71167000000003,50.375549000000092],[-124.73916599999995,50.351936000000137],[-124.80332900000002,50.317772000000105],[-124.81582600000002,50.312209999999993],[-124.83000199999992,50.30943300000007],[-124.85056299999991,50.309714999999983],[-124.93916299999995,50.325271999999984],[-125.06388900000002,50.317772000000105],[-125.07224299999996,50.319442999999978],[-125.07833900000003,50.322495000000117],[-125.08416699999998,50.329719999999952],[-125.08889799999997,50.346382000000119],[-125.08750900000001,50.357215999999994],[-125.05666399999996,50.476936000000023],[-125.05194099999989,50.480820000000051],[-125.04499799999996,50.48333000000008],[-125.02667199999996,50.483047000000113],[-125.01806599999998,50.484161000000086],[-124.97112299999998,50.498047000000042],[-124.96528599999999,50.50110600000005],[-124.88082900000001,50.560546999999985],[-124.85973399999989,50.585823000000062],[-124.858047,50.590546000000018],[-124.85444599999994,50.691376000000105],[-124.86888099999999,50.764998999999989],[-124.87805200000003,50.811377999999991],[-124.86749299999997,50.817771999999991],[-124.78943599999991,50.88110400000005],[-124.78694199999995,50.884438000000046],[-124.78751399999993,50.889160000000118],[-124.79998799999998,50.91304800000006],[-124.80277999999998,50.9180530000001],[-124.80583200000001,50.920830000000024],[-124.81916799999993,50.926384000000041],[-124.84999099999993,50.935265000000129],[-124.85417200000001,50.935547000000042],[-124.86138900000003,50.928879000000052],[-124.92443800000001,50.834717000000126],[-124.9449919999999,50.775268999999923],[-124.91221599999994,50.699431999999945],[-124.90139799999997,50.630271999999991],[-124.90194700000001,50.62471000000005],[-124.90361000000001,50.619987000000094],[-124.91111799999999,50.611382000000049],[-124.92887899999994,50.596382000000062],[-125.02694700000001,50.540833000000077],[-125.09944200000001,50.5],[-125.10417199999989,50.496941000000049],[-125.11277799999999,50.487495000000081],[-125.11694299999999,50.478043000000127],[-125.118607,50.471930999999984],[-125.11193800000001,50.452492000000063],[-125.11138899999997,50.447769000000108],[-125.11221299999994,50.44221500000009],[-125.11472299999997,50.436935000000005],[-125.11945300000002,50.432770000000005],[-125.12526700000001,50.429718000000094],[-125.17027299999995,50.412491000000102],[-125.17777999999998,50.41137700000013],[-125.1875,50.412491000000102],[-125.195831,50.414711000000068],[-125.20221699999991,50.417213000000004],[-125.20722999999998,50.420830000000137],[-125.24610899999993,50.462212000000136],[-125.33612099999993,50.479713000000118],[-125.40361000000001,50.473602000000028],[-125.42166099999992,50.465271000000143],[-125.44275699999997,50.459435000000042],[-125.46028099999995,50.457214000000135],[-125.48832700000003,50.45638300000013],[-125.54444899999993,50.490379000000132],[-125.54811099999995,50.492050000000006],[-125.54928599999994,50.494549000000006],[-125.54961399999996,50.497547000000054],[-125.54911799999996,50.501545000000135],[-125.53222700000003,50.62721300000004],[-125.51944700000001,50.647217000000126],[-125.51194800000002,50.657211000000132],[-125.50723299999999,50.661102000000028],[-125.50055699999996,50.663048000000117],[-125.48194899999999,50.664993000000095],[-125.46749899999998,50.668602000000135],[-125.45612299999999,50.674995000000081],[-125.45140100000003,50.678879000000109],[-125.42804699999999,50.705551000000014],[-125.42555199999998,50.710823000000119],[-125.43277,50.713882000000069],[-125.44360399999999,50.714157000000114],[-125.45889299999993,50.713608000000136],[-125.46639999999996,50.713051000000064],[-125.47332799999998,50.709159999999997],[-125.53778099999994,50.669991000000095],[-125.54723399999995,50.661933999999974],[-125.55832699999996,50.648048000000131],[-125.56388900000002,50.637214999999969],[-125.56806899999998,50.62721300000004],[-125.57167099999998,50.611382000000049],[-125.57224300000001,50.605270000000075],[-125.5849,50.571323000000064],[-125.58206899999999,50.56582300000008],[-125.58039099999996,50.563656000000037],[-125.5800549999999,50.559994000000074],[-125.58623499999999,50.536659000000043],[-125.610229,50.489326000000062],[-125.61238900000001,50.486492000000055],[-125.63722200000001,50.445540999999935],[-125.65167200000002,50.441375999999934],[-125.69249000000002,50.429993000000138],[-125.700287,50.428047000000049],[-125.70584099999996,50.427773000000116],[-125.71611000000001,50.432212999999933],[-125.84665699999994,50.502777000000094],[-125.86472300000003,50.495269999999948],[-125.93028299999992,50.473602000000028],[-125.95221700000002,50.468880000000127],[-125.968613,50.468880000000127],[-126.06331599999999,50.470825000000104],[-126.15915699999999,50.484992999999974],[-126.19332900000001,50.490273000000059],[-126.26777599999997,50.504997000000117],[-126.27500899999995,50.50750000000005],[-126.27916700000003,50.51166500000005],[-126.2808379999999,50.515830999999991],[-126.279449,50.520546000000024],[-126.27694700000001,50.524712000000079],[-126.22670699999998,50.536285000000021],[-126.18665299999998,50.548405000000059],[-126.18559999999997,50.566322000000014],[-126.23805199999998,50.591377000000023],[-126.25167799999991,50.609718000000044],[-126.26418299999995,50.615547000000049],[-126.27500899999995,50.627486999999974],[-126.27471899999995,50.631660000000068],[-126.266953,50.634720000000129],[-126.02006499999999,50.66188000000011],[-126.014725,50.662048000000141],[-125.90856200000002,50.664046999999982],[-125.73832699999997,50.682213000000104],[-125.69387799999993,50.704712000000029],[-125.62249799999995,50.750000000000114],[-125.61776700000001,50.754166000000055],[-125.54305999999991,50.863884000000098],[-125.53778099999994,50.87193300000007],[-125.51000999999997,50.921661000000029],[-125.50723299999999,50.926941000000113],[-125.50556899999998,50.93332700000002],[-125.50666799999993,50.945541000000048],[-125.50834699999996,50.951102999999989],[-125.55166600000001,51.042221000000097],[-125.56555200000003,51.056380999999988],[-125.58167999999995,51.072220000000129],[-125.59306299999997,51.07888000000014],[-125.610817,51.087769000000037],[-125.63390400000003,51.096939000000077],[-125.63722200000001,51.096382000000006],[-125.63890100000003,51.090271000000087],[-125.639183,51.077217000000019],[-125.63806199999999,51.06610100000006],[-125.58332799999999,50.974709000000018],[-125.61028299999987,50.89888000000002],[-125.69110099999995,50.771378000000084],[-125.73110999999989,50.735550000000046],[-125.81527699999987,50.707214000000079],[-125.96383700000001,50.688660000000084],[-126.12516799999997,50.678989000000115],[-126.13100400000002,50.678658000000098],[-126.133667,50.678825000000074],[-126.13799999999998,50.681827999999996],[-126.13917500000002,50.683495000000107],[-126.22222899999991,50.69110100000006],[-126.21362299999993,50.70388000000014],[-126.20889299999999,50.70777099999998],[-126.20333899999997,50.711104999999975],[-126.11165599999993,50.753883000000087],[-126.19888299999997,50.85582700000009],[-126.26944700000001,50.858047000000113],[-126.37609899999995,50.855270000000019],[-126.39750699999996,50.848602000000028],[-126.40306099999998,50.845268000000033],[-126.42166099999997,50.829437000000098],[-126.42748999999992,50.826103000000103],[-126.43415799999997,50.823608000000092],[-126.44304699999998,50.821663000000058],[-126.49333199999995,50.81638300000003],[-126.55277999999998,50.834717000000126],[-126.55695300000002,50.838882000000126],[-126.55972299999996,50.843880000000127],[-126.557503,50.876656000000082],[-126.55359599999991,50.881377999999984],[-126.53611799999999,50.898048000000074],[-126.531387,50.901932000000102],[-126.50110599999999,50.916099999999972],[-126.49445300000002,50.9180530000001],[-126.48332199999999,50.919158999999979],[-126.47471599999994,50.917496000000028],[-126.468613,50.914436000000137],[-126.46444700000001,50.910271000000137],[-126.45805399999995,50.907211000000075],[-126.36833200000001,50.901932000000102],[-126.35833700000001,50.901382000000069],[-126.24638400000003,50.898604999999975],[-126.22582999999997,50.898604999999975],[-126.21028100000001,50.902771000000087],[-126.20445299999994,50.90554800000001],[-126.18388399999992,50.918602000000078],[-126.17555199999993,50.92582700000014],[-126.17027299999995,50.936653000000035],[-126.17166099999997,50.946381000000088],[-126.17471299999988,50.950546000000088],[-126.17777999999998,50.951385000000016],[-126.181107,50.950829000000056],[-126.18888899999996,50.948875000000044],[-126.20028699999989,50.942490000000021],[-126.20500199999992,50.93832400000008],[-126.21556099999998,50.931106999999997],[-126.228882,50.926102000000128],[-126.24553700000001,50.923325000000034],[-126.30860899999999,50.925270000000012],[-126.412216,50.936104000000114],[-126.42639200000002,50.938599000000124],[-126.5625,50.907767999999976],[-126.56833599999993,50.903877000000136],[-126.58084099999996,50.898604999999975],[-126.66139199999998,50.868049999999982],[-126.67777999999998,50.866385999999977],[-126.72165699999994,50.876099000000011],[-126.80638099999999,50.909156999999993],[-126.81916799999999,50.915824999999984],[-126.90261799999996,50.905098000000066],[-126.90595199999996,50.90410200000008],[-126.91711399999997,50.903439000000105],[-127.01471700000002,50.903877000000136],[-127.04804999999993,50.910271000000137],[-127.08556399999998,50.921378999999945],[-127.112213,50.931106999999997],[-127.1641689999999,50.932495000000074],[-127.17639200000002,50.929161000000079],[-127.17999299999991,50.92582700000014],[-127.17804699999994,50.920273000000122],[-127.17166099999992,50.917496000000028],[-127.06276699999995,50.885269000000051],[-127.01883700000002,50.868267000000003],[-127.00765999999993,50.867939000000035],[-126.976158,50.870438000000036],[-126.97166400000003,50.869938000000047],[-126.96916999999991,50.869105999999931],[-126.96599600000002,50.86693600000001],[-126.96681999999998,50.864101000000062],[-127.01471700000002,50.819443000000092],[-127.02250700000002,50.817497000000003],[-127.03333299999997,50.817771999999991],[-127.047234,50.821663000000058],[-127.05776999999995,50.828048999999965],[-127.06166100000002,50.832213999999965],[-127.06696299999993,50.835823000000005],[-127.07333399999993,50.838882000000126],[-127.13276699999994,50.862212999999997],[-127.243607,50.896659999999997],[-127.33444199999997,50.906936999999971],[-127.39862099999993,50.926384000000041],[-127.43055699999991,50.940544000000102],[-127.53527800000001,51.000549000000035],[-127.53832999999997,51.005554000000075],[-127.53806299999997,51.008330999999998],[-127.502792,51.097487999999998],[-127.495003,51.0991590000001],[-127.47749299999992,51.097487999999998],[-127.43582199999997,51.082771000000037],[-127.40888999999987,51.071938000000046],[-127.39306599999992,51.064712999999983],[-127.38137799999998,51.059714999999983],[-127.3683319999999,51.055267000000015],[-127.354446,51.051659000000086],[-127.33056599999998,51.048331999999959],[-127.24249299999997,51.041382000000112],[-127.23610699999995,51.041107000000125],[-127.21861299999995,51.040832999999964],[-127.09612299999998,51.043883999999991],[-126.99873400000001,51.058883999999978],[-126.97956099999999,51.062881000000118],[-126.94840199999999,51.067050999999992],[-126.87339800000001,51.072883999999988],[-126.86672999999996,51.072716000000128],[-126.82656899999995,51.067050999999992],[-126.81689499999987,51.064716000000033],[-126.69167299999998,51.110550000000046],[-126.68694299999999,51.114716000000101],[-126.65278599999999,51.149994000000106],[-126.65139799999997,51.153320000000008],[-126.65110799999997,51.157494000000042],[-126.654449,51.185822000000144],[-126.65527299999997,51.187766999999951],[-126.65834000000001,51.192764000000068],[-126.66251399999993,51.194992000000013],[-126.67582700000003,51.193878000000041],[-126.67916899999994,51.192764000000068],[-126.68167099999994,51.188599000000067],[-126.68250299999994,51.176383999999985],[-126.68167099999994,51.172768000000076],[-126.68331899999998,51.165268000000026],[-126.68831599999999,51.157211000000075],[-126.69666299999994,51.14777400000014],[-126.71749899999998,51.132767000000115],[-126.84055299999989,51.094936000000075],[-126.84654999999992,51.093105000000094],[-126.85589599999997,51.092102000000068],[-126.927887,51.084938000000079],[-127.14111299999996,51.060272000000055],[-127.19249000000002,51.057213000000104],[-127.20667300000002,51.056380999999988],[-127.23832700000003,51.056938000000059],[-127.32668299999995,51.059714999999983],[-127.34084299999989,51.060822000000087],[-127.35916099999992,51.063323999999966],[-127.38861099999991,51.068054000000018],[-127.49273700000003,51.114883000000077],[-127.50985000000003,51.117359000000135],[-127.53376000000003,51.108082000000138],[-127.556107,51.099998000000028],[-127.63194299999998,51.091934000000037],[-127.64943699999998,51.092216000000064],[-127.66665599999988,51.095268000000033],[-127.67944299999988,51.101105000000132],[-127.78999299999992,51.165543000000014],[-127.79611199999994,51.197212000000036],[-127.79583700000001,51.202217000000076],[-127.787216,51.226097000000095],[-127.78472899999991,51.231376999999952],[-127.76194800000002,51.249435000000005],[-127.59973100000002,51.289435999999966],[-127.59306300000003,51.290833000000134],[-127.56555199999997,51.293052999999929],[-127.53999299999998,51.294441000000063],[-127.45140099999998,51.291939000000127],[-127.4036099999999,51.282494000000099],[-127.37554899999998,51.274437000000091],[-127.36472299999997,51.274162000000103],[-127.23110999999994,51.286110000000122],[-127.22222899999991,51.287216000000001],[-127.21444699999995,51.290549999999996],[-127.20388800000001,51.298607000000118],[-127.14334100000002,51.318329000000006],[-127.13305699999989,51.325554000000068],[-127.12693799999994,51.334991000000002],[-127.11776700000001,51.357498000000078],[-127.11110699999989,51.37721300000004],[-127.10973399999995,51.383330999999998],[-127.11028299999992,51.389717000000076],[-127.11582899999996,51.391662999999994],[-127.12249800000001,51.389160000000004],[-127.13054699999998,51.381934999999942],[-127.13417099999998,51.37721300000004],[-127.14417300000002,51.358046999999999],[-127.18250299999994,51.326942000000145],[-127.18804899999998,51.323607999999979],[-127.20834400000001,51.315826000000015],[-127.24749800000001,51.306380999999931],[-127.28056300000003,51.301102000000128],[-127.29055800000003,51.300545000000056],[-127.36749299999991,51.298881999999935],[-127.39584400000001,51.30221599999993],[-127.45221699999996,51.315826000000015],[-127.462784,51.341660000000047],[-127.55444299999999,51.332497000000046],[-127.57000699999998,51.328605999999979],[-127.75499699999989,51.319442999999978],[-127.76390100000003,51.319442999999978],[-127.77250699999996,51.3211060000001],[-127.77887699999997,51.324715000000083],[-127.78415699999994,51.333054000000118],[-127.78778099999994,51.34887700000013],[-127.78307299999994,51.356941000000006],[-127.77834300000001,51.361107000000061],[-127.74109599999997,51.380272000000048],[-127.72749299999998,51.385551000000021],[-127.69332899999995,51.390831000000048],[-127.68443300000001,51.390831000000048],[-127.65055799999999,51.408043000000077],[-127.55166600000001,51.468323000000055],[-127.51583900000003,51.519157000000007],[-127.51306199999993,51.529991000000052],[-127.512787,51.535552999999993],[-127.515289,51.5472180000001],[-127.521118,51.563880999999981],[-127.51640299999997,51.587769000000094],[-127.51500699999985,51.593880000000013],[-127.50890399999997,51.604712999999947],[-127.50055700000001,51.61360900000011],[-127.48805199999998,51.619438000000116],[-127.44444299999998,51.629990000000078],[-127.37609900000001,51.644997000000103],[-127.32584400000002,51.651382000000126],[-127.23332199999999,51.662490999999989],[-127.09584000000001,51.668052999999986],[-126.95344499999999,51.658325000000104],[-126.94693799999993,51.657657999999969],[-126.93778199999997,51.655327000000057],[-126.88377400000002,51.649494000000061],[-126.708054,51.641937000000041],[-126.66332999999986,51.64888000000002],[-126.65527299999997,51.651382000000126],[-126.620003,51.679993000000024],[-126.60694899999993,51.706940000000145],[-126.60527000000002,51.713051000000064],[-126.60582699999992,51.719436999999971],[-126.60777300000001,51.724990999999932],[-126.63555899999989,51.769714000000022],[-126.63944999999995,51.773880000000133],[-126.66027800000001,51.792221000000097],[-126.66528299999999,51.772491000000116],[-126.66665599999999,51.766388000000006],[-126.66251399999993,51.747215000000097],[-126.65387699999991,51.732491000000039],[-126.64362299999999,51.719154000000003],[-126.63999899999999,51.709991000000002],[-126.64138800000001,51.705269000000101],[-126.64388999999994,51.701102999999989],[-126.64750700000002,51.697768999999994],[-126.69304699999998,51.664711000000011],[-126.703056,51.664436000000023],[-126.91521499999999,51.682438000000047],[-126.96421799999996,51.686604000000102],[-126.97788199999997,51.690605000000062],[-127.05387899999988,51.697768999999994],[-127.07501199999996,51.697768999999994],[-127.14055599999995,51.694435000000055],[-127.27416999999997,51.68332700000002],[-127.3999859999999,51.669716000000051],[-127.41583300000002,51.665824999999984],[-127.42582699999997,51.666663999999969],[-127.43222000000003,51.66832700000009],[-127.43554699999987,51.671103999999957],[-127.43971299999993,51.674712999999997],[-127.44167299999992,51.680275000000108],[-127.42748999999998,51.731934000000138],[-127.364441,51.768326000000116],[-127.36193800000001,51.771660000000111],[-127.359444,51.777214000000072],[-127.33917200000002,51.839156999999943],[-127.33721899999989,51.851387000000045],[-127.33999599999999,51.861106999999947],[-127.34555099999994,51.864159000000086],[-127.35109699999992,51.863609000000054],[-127.35694899999999,51.860275000000058],[-127.44833399999987,51.777214000000072],[-127.57195299999989,51.706940000000145],[-127.58556399999986,51.677773000000059],[-127.54638699999992,51.627486999999917],[-127.55860899999999,51.543884000000105],[-127.56111099999998,51.538605000000132],[-127.57417299999997,51.518883000000073],[-127.58139,51.509437999999989],[-127.63583399999999,51.460548000000131],[-127.640289,51.458602999999925],[-127.65915699999999,51.457497000000103],[-127.70639,51.45638300000013],[-127.71639999999996,51.457214000000135],[-127.72389199999992,51.459435000000042],[-127.73029300000002,51.463051000000121],[-127.75473,51.479988000000105],[-127.75917099999992,51.484161000000029],[-127.76083399999993,51.48971599999993],[-127.75974300000001,51.494438000000059],[-127.74416400000001,51.498329000000126],[-127.712784,51.504439999999988],[-127.787216,51.560271999999941],[-127.87416099999996,51.663322000000051],[-127.87805200000003,51.673881999999992],[-127.88999899999999,51.798332000000016],[-127.88944999999995,51.807770000000005],[-127.886124,51.852218999999991],[-127.88474299999996,51.858604000000014],[-127.86971999999997,51.89527099999998],[-127.86609599999997,51.899993999999992],[-127.86165599999987,51.904160000000047],[-127.83306899999997,51.919991000000039],[-127.82055699999995,51.926659000000029],[-127.79638699999998,51.938599000000124],[-127.78971899999999,51.941101000000003],[-127.76611300000002,51.946937999999932],[-127.73805199999993,51.949715000000026],[-127.66443600000002,51.953880000000026],[-127.65527299999997,52.040276000000063],[-127.65387699999991,52.046386999999982],[-127.65139799999997,52.051659000000086],[-127.64527900000002,52.061934999999949],[-127.62943999999999,52.088326000000052],[-127.62581599999999,52.093047999999953],[-127.61749299999997,52.101936000000137],[-127.58029199999993,52.129158000000075],[-127.52555799999993,52.147217000000012],[-127.49944299999993,52.151657000000057],[-127.48055999999997,52.151099999999929],[-127.47721899999999,52.150543000000027],[-127.46528599999988,52.143883000000017],[-127.46140300000002,52.133049000000142],[-127.46250899999995,52.112495000000024],[-127.46611000000001,52.107773000000122],[-127.47556299999997,52.099716000000114],[-127.48249799999996,52.09693900000002],[-127.49833699999999,52.093322999999998],[-127.50834700000001,52.093322999999998],[-127.51834100000002,52.094436999999971],[-127.52722199999994,52.095825000000048],[-127.53500400000001,52.098877000000016],[-127.55277999999998,52.101105000000132],[-127.56276700000001,52.100829999999917],[-127.57167099999998,52.098877000000016],[-127.58444199999991,52.093605000000082],[-127.58889799999992,52.089714000000015],[-127.61416600000001,52.035828000000095],[-127.61332699999997,52.032494000000099],[-127.59416199999998,52.035553000000107],[-127.58612099999993,52.038048000000117],[-127.42083700000001,52.120270000000119],[-127.43360899999999,52.131659999999954],[-127.45056199999999,52.169159000000093],[-127.45249899999988,52.173882000000049],[-127.45305599999995,52.179993000000138],[-127.44972199999995,52.182770000000062],[-127.37609900000001,52.216934000000037],[-127.35417199999995,52.224709000000132],[-127.33138999999994,52.230270000000019],[-127.30027799999993,52.228325000000041],[-127.29110700000001,52.229431000000034],[-127.28443900000002,52.231934000000024],[-127.24526999999995,52.248878000000104],[-127.23944099999994,52.252220000000023],[-127.19304699999998,52.290833000000077],[-127.18582200000003,52.300270000000012],[-127.17749000000003,52.309715000000097],[-127.17166099999992,52.31249200000002],[-127.16361999999987,52.314156000000025],[-127.04276999999996,52.309158000000025],[-127.01251200000002,52.306381000000101],[-127.00499699999995,52.303604000000007],[-126.99861099999993,52.298607000000118],[-126.96444700000001,52.271659999999997],[-126.94526699999994,52.25610400000005],[-126.93804899999986,52.246941000000049],[-126.93611099999998,52.241379000000109],[-126.93554699999999,52.235268000000019],[-126.82749899999999,52.128044000000102],[-126.75195300000001,52.078605999999979],[-126.71193700000003,52.044441000000063],[-126.69415300000003,52.028877000000136],[-126.691101,52.023880000000077],[-126.68388399999998,51.999717999999973],[-126.67804699999994,51.990547000000049],[-126.67388899999997,51.986382000000049],[-126.66944899999999,51.983604000000071],[-126.66832699999998,51.985549999999932],[-126.66776999999996,51.991104000000121],[-126.66583300000002,52.031380000000127],[-126.66665599999999,52.036384999999996],[-126.66972399999997,52.041939000000013],[-126.73805199999987,52.113052000000096],[-126.76363399999991,52.13249200000007],[-126.81722999999988,52.166100000000085],[-126.83112299999999,52.17193599999996],[-126.85555999999997,52.178047000000049],[-126.86305199999993,52.181107000000111],[-126.88027999999986,52.190544000000045],[-126.90055799999999,52.205268999999987],[-126.90666199999993,52.215271000000143],[-126.94082600000002,52.303879000000052],[-126.94027699999998,52.31082200000003],[-126.93611099999998,52.32249500000006],[-126.932503,52.327217000000132],[-126.92083700000001,52.333603000000039],[-126.87361099999998,52.350830000000087],[-126.82084700000001,52.363883999999928],[-126.81416299999995,52.365273000000116],[-126.78888699999999,52.369987000000094],[-126.77667199999996,52.370270000000062],[-126.76194800000002,52.370543999999995],[-126.73638900000003,52.366386000000034],[-126.73166700000002,52.367767000000072],[-126.73249800000002,52.373877999999991],[-126.73665599999998,52.378044000000045],[-126.75167799999991,52.388328999999999],[-126.76363399999991,52.393326000000059],[-126.79277000000002,52.395546000000081],[-126.91027799999995,52.373877999999991],[-126.92610200000001,52.370827000000133],[-126.94110099999995,52.366386000000034],[-126.948036,52.363883999999928],[-126.95973199999997,52.357215999999994],[-126.96972699999998,52.34165999999999],[-126.97444200000001,52.337768999999923],[-126.98137699999995,52.33526599999999],[-127.00279199999994,52.334991000000116],[-127.08249699999993,52.334991000000116],[-127.14111299999996,52.348045000000013],[-127.15778399999999,52.352492999999981],[-127.18639400000001,52.380820999999969],[-127.22805800000003,52.453049000000135],[-127.23610699999995,52.505554000000132],[-127.23665599999998,52.51166500000005],[-127.23416099999997,52.517211999999972],[-127.19695299999995,52.549995000000138],[-127.18639400000001,52.557770000000062],[-127.08112299999993,52.613051999999982],[-127.07417299999997,52.616385999999977],[-127.05915800000002,52.620827000000077],[-127.00446299999999,52.626937999999996],[-126.99638399999998,52.62860100000006],[-126.989441,52.631935000000055],[-126.97972099999998,52.639434999999935],[-126.97609699999998,52.64388300000013],[-126.924713,52.714714000000129],[-126.92223399999995,52.718880000000013],[-126.92166099999997,52.725822000000107],[-126.92250100000001,52.731102000000021],[-126.966949,52.828606000000036],[-126.97112300000003,52.832771000000037],[-126.975281,52.835548000000131],[-126.98332199999987,52.837769000000037],[-127.01777599999991,52.845543000000021],[-127.02139299999993,52.82777400000009],[-127.01834100000002,52.823608000000036],[-127.00778199999996,52.808883999999978],[-126.98082699999992,52.724434000000031],[-126.98111,52.717491000000052],[-126.98528299999992,52.707497000000046],[-127.04250300000001,52.64777399999997],[-127.04737899999992,52.643462999999997],[-127.05561799999998,52.641815000000065],[-127.13445300000001,52.60943600000013],[-127.24054699999988,52.557770000000062],[-127.25723299999999,52.545830000000137],[-127.28083799999996,52.509162999999944],[-127.28222700000003,52.503052000000082],[-127.28028899999993,52.497489999999914],[-127.27610800000002,52.49332400000003],[-127.26528899999988,52.485550000000046],[-127.25805699999995,52.477211000000011],[-127.25834699999996,52.47304500000007],[-127.26194800000002,52.467491000000109],[-127.26666299999988,52.464157000000114],[-127.33345800000001,52.433895000000007],[-127.40082599999994,52.424431000000141],[-127.46541599999995,52.395477000000085],[-127.48935699999987,52.362072000000126],[-127.61165599999998,52.294716000000051],[-127.61833200000001,52.291939000000127],[-127.72138999999993,52.274712000000079],[-127.73055999999997,52.273604999999975],[-127.739441,52.27388000000002],[-127.74610899999999,52.276657000000114],[-127.75029000000001,52.281661999999983],[-127.80471799999998,52.248878000000104],[-127.84277299999997,52.2241590000001],[-127.84528399999999,52.219437000000028],[-127.85249299999987,52.209991000000059],[-127.85833699999995,52.206657000000064],[-127.86389200000002,52.207496999999933],[-127.86916399999996,52.211105000000032],[-127.87110899999999,52.216385000000116],[-127.87304699999999,52.223320000000001],[-127.90527299999991,52.27887700000008],[-127.86776700000001,52.494995000000074],[-127.86776700000001,52.500549000000092],[-127.86971999999997,52.506103999999993],[-127.87499999999994,52.510276999999917],[-127.88166799999999,52.51249700000011],[-127.89195299999994,52.513329000000056],[-127.89998599999996,52.50999500000006],[-127.92488899999995,52.443886000000134],[-127.92971799999992,52.427547000000004],[-127.92854299999999,52.424213000000009],[-127.92588000000001,52.421215000000132],[-127.916718,52.414879000000099],[-127.90905800000002,52.407382999999982],[-127.90589099999988,52.401549999999986],[-127.90538800000002,52.39788400000009],[-127.95694700000001,52.324440000000038],[-127.96389799999997,52.321663000000115],[-127.97277800000001,52.323326000000066],[-127.995003,52.330551000000128],[-128.00805699999989,52.336937000000034],[-128.01251200000002,52.341102999999919],[-128.05721999999997,52.394713999999965],[-128.05917399999998,52.400269000000094],[-128.06832899999995,52.447769000000051],[-128.06695599999995,52.45388000000014],[-128.05944799999992,52.470267999999976],[-128.05111699999992,52.478874000000076],[-128.0419619999999,52.487770000000012],[-128.03250100000002,52.495270000000119],[-128.00945999999999,52.508606000000043],[-127.97721899999999,52.519714000000079],[-127.96916199999993,52.521660000000111],[-127.96140300000002,52.519440000000145],[-127.95612299999993,52.515831000000105],[-127.89611799999994,52.542220999999984],[-127.89138800000001,52.546387000000038],[-127.88778699999995,52.551102000000071],[-127.87998999999991,52.574164999999994],[-127.87970699999994,52.579720000000066],[-127.88751200000002,52.577773999999977],[-128.0291749999999,52.541664000000083],[-128.04083300000002,52.535827999999981],[-128.09973099999991,52.503052000000082],[-128.1049349999999,52.492382000000077],[-128.11831699999999,52.465546000000074],[-128.14834599999995,52.422217999999987],[-128.22500599999989,52.330826000000116],[-128.23330699999997,52.321937999999989],[-128.27862499999998,52.280822999999998],[-128.28332499999993,52.276657000000114],[-128.28890999999999,52.273323000000119],[-128.29583700000001,52.270828000000108],[-128.30499299999997,52.269439999999975],[-128.39388999999989,52.291382000000056],[-128.32971199999992,52.380271999999991],[-128.29751599999992,52.400543000000027],[-128.29083300000002,52.401657],[-128.28085299999992,52.400825999999995],[-128.27416999999997,52.39804799999996],[-128.267517,52.396660000000054],[-128.260559,52.399161999999933],[-128.25585899999999,52.403320000000065],[-128.22442599999994,52.459717000000069],[-128.22192399999989,52.465271000000087],[-128.22055099999994,52.471375000000137],[-128.22109999999992,52.484436000000073],[-128.22860700000001,52.523048000000017],[-128.23055999999997,52.528328000000101],[-128.23831200000001,52.536658999999986],[-128.24221799999998,52.547775000000115],[-128.24194299999999,52.55471],[-128.23916600000001,52.566940000000102],[-128.18527199999988,52.671104000000128],[-128.14584399999995,52.719986000000063],[-128.120544,52.757217000000026],[-128.13165300000003,52.876381000000038],[-128.17001299999998,52.856658999999979],[-128.17501800000002,52.851935999999966],[-128.22305299999994,52.812492000000077],[-128.22888199999994,52.80860100000001],[-128.23525999999993,52.805824000000086],[-128.24972500000001,52.801384000000098],[-128.2744449999999,52.799438000000009],[-128.30029300000001,52.800270000000125],[-128.33999600000004,52.805549999999982],[-128.42611699999998,52.817497000000117],[-128.43612699999994,52.818886000000134],[-128.441101,52.822769000000051],[-128.48776199999986,52.873604000000114],[-128.49359100000004,52.882767000000115],[-128.495544,52.887496999999939],[-128.49887100000001,52.903602999999976],[-128.50640899999996,52.96305099999995],[-128.51556399999998,53.019988999999953],[-128.53973400000001,53.131934999999942],[-128.62554899999992,53.202217000000019],[-128.66140699999994,53.202217000000019],[-128.66082799999992,53.196938000000046],[-128.66305499999999,53.190826000000072],[-128.66723599999995,53.187492000000077],[-128.67666600000001,53.187767000000122],[-128.68527199999994,53.189430000000016],[-128.70111099999997,53.195541000000105],[-128.78832999999997,53.239715999999987],[-128.79473899999999,53.243324000000086],[-128.84887699999996,53.275826000000052],[-128.85888699999998,53.283607000000131],[-128.86639400000001,53.292220999999984],[-128.86944600000004,53.2972180000001],[-128.87832599999996,53.31638300000003],[-128.88558999999998,53.374378000000092],[-128.88798499999996,53.424965000000043],[-128.92186000000004,53.453601999999989],[-128.95916699999998,53.502777000000037],[-128.97332799999998,53.547493000000031],[-128.97277799999995,53.553047000000049],[-128.966095,53.556099000000131],[-128.80499299999997,53.569992000000013],[-128.79501300000004,53.568604000000107],[-128.78832999999997,53.564995000000067],[-128.78332499999999,53.561104],[-128.77972399999987,53.556938000000116],[-128.69250499999998,53.485268000000133],[-128.55862399999995,53.413879000000122],[-128.52362099999999,53.396660000000054],[-128.44601399999999,53.413158000000124],[-128.44517499999995,53.415993000000071],[-128.42950399999989,53.429824999999994],[-128.18972799999989,53.459991000000002],[-128.15945399999993,53.455826000000002],[-128.14862099999993,53.453605999999979],[-128.13192699999996,53.448875000000044],[-128.105255,53.440543999999989],[-128.09387199999998,53.433052000000032],[-128.07081600000004,53.394114999999942],[-128.03488200000004,53.369289000000038],[-128.00598099999996,53.34705699999995],[-127.95195000000001,53.326102999999932],[-127.94999699999988,53.321381000000031],[-127.951683,53.309990000000084],[-127.95388799999995,53.304161000000079],[-127.95694700000001,53.28138000000007],[-127.95527600000003,53.265830999999991],[-127.95111099999997,53.256386000000077],[-127.94611399999985,53.252220000000023],[-127.87526700000001,53.224433999999917],[-127.87027,53.222763000000043],[-127.868607,53.233879000000002],[-127.86776700000001,53.239715999999987],[-127.87138399999998,53.244155999999975],[-127.92259999999993,53.273685],[-127.93297599999994,53.293323999999927],[-127.92408,53.318153000000109],[-127.92593399999993,53.330750000000023],[-127.98805199999998,53.353881999999942],[-128.07165499999991,53.431380999999988],[-128.09387199999998,53.451935000000105],[-128.12692300000003,53.481102000000021],[-128.16528299999993,53.483879000000115],[-128.18331899999993,53.484161000000029],[-128.30139199999991,53.478324999999927],[-128.45187399999992,53.50332300000008],[-128.45339999999999,53.499656999999956],[-128.45640600000002,53.496822000000066],[-128.48156700000004,53.487987999999916],[-128.49021900000002,53.485325000000046],[-128.53340100000003,53.478324999999927],[-128.54457100000002,53.478992000000062],[-128.54937699999994,53.480823999999927],[-128.81304899999992,53.619155999999975],[-128.81664999999998,53.623322000000087],[-128.81805399999996,53.644714000000079],[-128.81750499999993,53.65026899999998],[-128.81390399999998,53.656936999999971],[-128.808899,53.661659000000043],[-128.78417999999988,53.675552000000096],[-128.77279699999997,53.733330000000137],[-128.79388399999988,53.764998999999932],[-128.79333500000001,53.770546000000081],[-128.79110699999995,53.776657],[-128.77056899999991,53.79583000000008],[-128.67767300000003,53.839775000000088],[-128.67384300000003,53.84160600000007],[-128.66551200000004,53.844608000000107],[-128.66067499999997,53.845439999999996],[-128.65583799999996,53.843605000000082],[-128.64482099999987,53.837105000000122],[-128.64166299999994,53.834770000000049],[-128.60360699999995,53.842216000000064],[-128.59387199999998,53.839714000000015],[-128.47720299999997,53.828605999999979],[-128.47137499999997,53.832497000000046],[-128.47555499999999,53.842216000000064],[-128.48275799999999,53.850829999999917],[-128.48944099999994,53.854163999999912],[-128.49887100000001,53.856941000000006],[-128.51000999999991,53.859161000000029],[-128.53030399999994,53.861664000000019],[-128.53832999999992,53.860275000000001],[-128.54501299999998,53.857216000000051],[-128.55306999999988,53.856102000000078],[-128.61726399999992,53.868546000000094],[-128.65962199999996,53.882885000000101],[-128.662598,53.885216000000014],[-128.66461200000003,53.888218000000109],[-128.67903099999995,53.907524000000024],[-128.67869599999995,53.910857999999962],[-128.66686999999996,53.92285900000013],[-128.66072099999997,53.928524000000095],[-128.6480709999999,53.949432000000058],[-128.63946499999997,53.96054799999996],[-128.59832799999998,54.02693899999997],[-128.60055499999993,54.031661999999983],[-128.60916099999997,54.03138000000007],[-128.61663799999997,54.029160000000104],[-128.67861899999997,54.00360900000004],[-128.68527199999994,54.000832000000116],[-128.68890399999998,53.994156000000032],[-128.69555699999989,53.976097000000095],[-128.72283899999991,53.944046000000071],[-128.72499099999999,53.940216000000078],[-128.72766100000001,53.936710000000062],[-128.73100299999993,53.933547999999917],[-128.79943799999995,53.87499200000002],[-128.91528299999999,53.787216000000001],[-128.93194600000004,53.774711999999965],[-128.98361199999994,53.762214999999969],[-129.10497999999995,53.72026800000009],[-129.11804199999989,53.714157000000057],[-129.12359599999996,53.710274000000084],[-129.21749899999992,53.64027400000009],[-129.232483,53.625824000000136],[-129.23803699999991,53.61332700000014],[-129.239441,53.601936000000023],[-129.23693800000001,53.537216000000058],[-129.23138399999999,53.500832000000059],[-129.23443599999996,53.461937000000091],[-129.23498499999999,53.456100000000106],[-129.23748799999993,53.433600999999953],[-129.27279699999997,53.379158000000018],[-129.30334499999992,53.384994999999947],[-129.33389299999999,53.397491000000059],[-129.35360700000001,53.407768000000033],[-129.51861600000001,53.514998999999989],[-129.62914999999987,53.587769000000037],[-129.686127,53.630272000000105],[-129.83084099999996,53.74721500000004],[-129.86111499999998,53.765273999999977],[-129.912781,53.79833200000013],[-130.04501300000004,53.883049000000142],[-130.05029300000001,53.886940000000038],[-130.099152,53.941933000000063],[-130.10137899999995,53.946655000000135],[-130.09136999999987,54.066101000000003],[-130.09082000000001,54.071662999999944],[-130.07693499999993,54.114441000000056],[-130.07333399999999,54.120827000000133],[-130.06500199999999,54.132209999999986],[-130.05166600000001,54.148605000000089],[-130.04666099999997,54.153320000000122],[-129.86361699999998,54.213051000000064],[-129.84887700000002,54.217491000000109],[-129.83194000000003,54.219436999999971],[-129.78205899999995,54.210601999999938],[-129.72637899999995,54.200771000000088],[-129.69738799999993,54.194435000000055],[-129.68756099999996,54.19093300000003],[-129.64416499999999,54.181938000000059],[-129.63333099999994,54.179993000000081],[-129.6141659999999,54.178917000000069],[-129.591949,54.185822000000087],[-129.47082499999999,54.235825000000034],[-129.47000100000002,54.23721299999994],[-129.47442599999999,54.239990000000034],[-129.48275799999988,54.243050000000096],[-129.51141399999989,54.244155999999975],[-129.51889,54.241936000000123],[-129.56140099999993,54.226935999999966],[-129.56777999999997,54.223877000000016],[-129.68238799999995,54.221602999999959],[-129.68823199999997,54.223099000000104],[-129.77654999999993,54.234767999999974],[-129.83666999999997,54.23832700000014],[-129.8549799999999,54.238045000000056],[-129.87136799999996,54.235268000000133],[-129.966949,54.206940000000031],[-129.97997999999995,54.200829000000113],[-129.99166899999989,54.192764000000011],[-130.03750600000001,54.173050000000103],[-130.10443099999998,54.154434000000094],[-130.11331200000001,54.153877000000023],[-130.122772,54.154434000000094],[-130.13110399999999,54.157210999999961],[-130.19168099999996,54.193321000000083],[-130.22805800000003,54.258606000000043],[-130.238586,54.294998000000078],[-130.2611389999999,54.342765999999983],[-130.27584799999994,54.349716000000058],[-130.28250100000002,54.346382000000062],[-130.332764,54.329720000000066],[-130.34887700000002,54.326942000000088],[-130.39138799999995,54.330276000000083],[-130.45166,54.336655000000121],[-130.45916699999998,54.338600000000099],[-130.48111,54.364715999999987],[-130.48388699999998,54.401657000000114],[-130.47637899999989,54.430550000000096],[-130.47360199999997,54.43582200000003],[-130.43362400000001,54.496658000000139],[-130.42999299999997,54.562492000000077],[-130.43972799999989,54.612212999999997],[-130.44055200000003,54.617493000000024],[-130.43859900000001,54.623604000000114],[-130.43277,54.627487000000031],[-130.42556799999994,54.629715000000033],[-130.41665599999993,54.630272000000105],[-130.40750099999997,54.62860100000006],[-130.39779699999997,54.626381000000038],[-130.38946499999992,54.62332200000003],[-130.37554899999992,54.616661000000136],[-130.33215299999995,54.578552000000002],[-130.28167699999995,54.528381000000024],[-130.22277799999989,54.471931000000041],[-130.06304899999986,54.339989000000116],[-130.05776999999995,54.336105000000089],[-130.03723100000002,54.326103000000103],[-130.02084400000001,54.319992000000013],[-129.99304199999989,54.31221000000005],[-129.98275799999993,54.311104000000057],[-129.96581999999995,54.313049000000035],[-129.95916699999998,54.316100999999946],[-129.95584099999985,54.322495000000004],[-129.95971700000001,54.326942000000088],[-129.96722399999993,54.328880000000026],[-129.98165900000004,54.324439999999981],[-129.99054000000001,54.32388300000008],[-130.02362099999993,54.335548000000017],[-130.0386049999999,54.341934000000094],[-130.04388399999999,54.345824999999991],[-130.14779699999997,54.44193300000012],[-130.31382799999994,54.586269000000073],[-130.36721799999992,54.635268999999994],[-130.37222299999996,54.644714000000079],[-130.374146,54.654991000000052],[-130.36859100000004,54.667770000000132],[-130.35861199999999,54.677490000000034],[-130.35278299999999,54.681381000000101],[-130.33972199999999,54.687492000000134],[-130.32501200000002,54.692214999999976],[-130.24386599999997,54.707771000000093],[-130.23553499999997,54.709160000000111],[-130.22582999999997,54.708885000000066],[-130.17193599999996,54.703606000000093],[-130.16195700000003,54.701103000000103],[-130.15362500000003,54.698326000000009],[-130.10110499999996,54.671660999999972],[-130.075287,54.657767999999976],[-130.06887800000004,54.648604999999975],[-130.06500199999999,54.644440000000145],[-130.054169,54.636658000000011],[-130.02694699999989,54.623047000000042],[-130.00058000000001,54.61471599999993],[-129.98083500000001,54.609993000000145],[-129.959991,54.607498000000135],[-129.91027800000001,54.605552999999929],[-129.968323,54.62193300000007],[-130.00445599999989,54.632767000000115],[-130.02807599999994,54.641936999999984],[-130.19473299999999,54.723320000000001],[-130.20166,54.72693600000008],[-130.20111099999986,54.732490999999982],[-130.17388899999992,54.846656999999993],[-130.17111199999999,54.851662000000033],[-130.16583300000002,54.856659000000093],[-130.16082799999998,54.861382000000106],[-130.05835000000002,54.952773999999977],[-130.04583700000001,54.959991000000059],[-130.03195199999993,54.965271000000143],[-129.94694499999991,54.970490000000098],[-129.9362789999999,54.971153000000072],[-129.92394999999993,54.970322000000067],[-129.91810599999985,54.968826000000092],[-129.90977499999997,54.964661000000092],[-129.90745500000003,54.962158000000102],[-129.65444899999994,54.980545000000006],[-129.646973,54.982765000000029],[-129.64028899999994,54.985825000000091],[-129.62249799999995,54.997772000000055],[-129.62499999999994,55.00249500000001],[-129.79998799999998,55.006942999999978],[-129.86608899999999,55.006660000000011],[-129.87527499999999,55.00610400000005],[-129.883331,55.004715000000033],[-129.90585299999998,54.997772000000055],[-129.91390999999993,54.996383999999921],[-129.96487400000001,55.003436999999963],[-129.97171000000003,55.004608000000076],[-129.97905000000003,55.008938000000057],[-129.98138399999993,55.011608000000138],[-129.98104899999993,55.014938000000143],[-129.9963679999999,55.024162000000047],[-129.97555499999993,55.066939999999931],[-129.96139500000004,55.093323000000112],[-129.95638999999989,55.098045000000013],[-129.84750399999996,55.210548000000074],[-129.72665399999988,55.338600000000099],[-129.66300999999999,55.412212000000011],[-129.64334099999996,55.434158000000025],[-129.63723800000002,55.438042000000053],[-129.62222299999996,55.442490000000021],[-129.60525499999994,55.445267000000115],[-129.58471700000001,55.443878000000097],[-129.54110700000001,55.438042000000053],[-129.52389500000004,55.439987000000031],[-129.50863599999997,55.444434999999999],[-129.48831199999995,55.453605999999922],[-129.47610499999996,55.461380000000133],[-129.47164899999996,55.467209000000139],[-129.47109999999992,55.472762999999986],[-129.47500600000001,55.47693600000008],[-129.48416099999997,55.478600000000085],[-129.62027,55.459434999999985],[-129.63696299999998,55.45665699999995],[-129.679123,55.473156000000131],[-129.68611099999998,55.467491000000052],[-129.69662500000004,55.45399100000003],[-129.69979899999993,55.450993000000096],[-129.70428500000003,55.449661000000049],[-129.70979299999993,55.450657000000035],[-129.71211199999999,55.453327000000115],[-129.71362299999993,55.456161000000122],[-129.78695700000003,55.566666000000112],[-129.78582800000004,55.50277699999998],[-129.779449,55.493607000000111],[-129.77224699999999,55.47943099999992],[-129.78030399999994,55.359717999999987],[-129.78250100000002,55.353607000000068],[-129.81390399999987,55.289719000000048],[-129.81750499999998,55.283332999999971],[-129.90695199999988,55.168052999999986],[-129.911407,55.162491000000045],[-129.92083699999995,55.151931999999988],[-130.02835099999999,55.036385000000109],[-130.06832900000001,54.996941000000049],[-130.07443199999994,54.992767000000015],[-130.08166499999999,54.990546999999992],[-130.09082000000001,54.989990000000091],[-130.10055499999999,54.990546999999992],[-130.10833699999995,54.992493000000081],[-130.11361699999992,54.996383999999921],[-130.12777700000004,55.013885000000073],[-130.16027799999995,55.069717000000026],[-130.16223099999996,55.079993999999999],[-130.1600039999999,55.086105000000089],[-130.11859099999998,55.142493999999942],[-130.11416599999995,55.148331000000098],[-130.08084099999991,55.184714999999983],[-130.06390399999998,55.195266999999944],[-130.04528799999997,55.204163000000051],[-130.03918499999992,55.208046000000024],[-129.948059,55.276382000000012],[-129.94387799999998,55.282211000000018],[-129.94473300000004,55.287216000000058],[-129.94888300000002,55.295830000000137],[-129.96054100000003,55.308884000000035],[-130.00863599999997,55.370827000000077],[-130.101654,55.556380999999988],[-130.10360700000001,55.566666000000112],[-130.12887599999999,55.722214000000122],[-130.12942499999997,55.732765000000029],[-130.12887599999999,55.738602000000014],[-130.12609900000001,55.750275000000045],[-130.12191799999994,55.762496999999996],[-130.11639400000001,55.774993999999992],[-130.11276199999998,55.781661999999983],[-130.10833699999995,55.787216000000001],[-130.09109499999994,55.799995000000024],[-130.07916299999999,55.808044000000052],[-130.06722999999994,55.815826000000015],[-130.0552669999999,55.823883000000137],[-130.03945899999997,55.838326000000052],[-129.96664399999992,55.912209000000018],[-129.962219,55.917770000000019],[-129.96417199999991,55.928329000000076],[-129.97137499999985,55.931663999999955],[-129.97970599999985,55.932213000000104],[-129.99499500000002,55.927773000000059],[-130.0019529999999,55.924713000000054],[-130.00500499999993,55.921661000000086],[-130.01507600000002,55.909179999999992],[-130.01419099999998,56.023880000000133],[-130.0147399999999,56.025826000000052],[-130.0538939999999,56.075554000000011],[-130.08859299999995,56.118049999999982],[-130.22915599999993,56.090271000000143],[-130.36526499999991,56.123878000000104],[-130.44750999999991,56.206383000000073],[-130.46194499999996,56.235268000000133],[-130.48471099999995,56.239433000000133],[-130.53277599999996,56.246384000000035],[-130.5607149999999,56.250000000000114],[-130.62719699999997,56.258606000000043],[-130.720551,56.325554000000125],[-130.75585899999999,56.353049999999996],[-130.77444500000001,56.366104000000064],[-130.84722899999997,56.374435000000119],[-130.92001300000004,56.382492000000127],[-131.05499299999997,56.398048000000074],[-131.07055699999995,56.403602999999976],[-131.12582399999997,56.424163999999962],[-131.1444699999999,56.434715000000097],[-131.16473400000001,56.445267000000058],[-131.20526100000001,56.465828000000101],[-131.22137499999997,56.472488000000112],[-131.290009,56.500548999999978],[-131.31445299999996,56.509994999999947],[-131.53945899999991,56.596656999999993],[-131.55777,56.602219000000105],[-131.57888800000001,56.603324999999927],[-131.61111499999998,56.602219000000105],[-131.81610099999995,56.594994000000042],[-131.82415800000001,56.59693900000002],[-131.82861299999996,56.600830000000087],[-131.85803199999987,56.718880000000127],[-131.86361699999992,56.786110000000122],[-131.86053500000003,56.797775000000001],[-131.86138899999997,56.79972100000009],[-132.10305800000003,56.866661000000022],[-132.09194899999994,56.893607999999972],[-132.06195100000002,56.959717000000069],[-132.03668199999993,57.013054000000011],[-132.02749600000004,57.036385000000053],[-132.22109999999992,57.068054000000075],[-132.316956,57.083878000000027],[-132.33694500000001,57.088325999999995],[-132.32611099999997,57.100548000000117],[-132.26806599999986,57.16304800000006],[-132.25473,57.17471299999994],[-132.226654,57.204711999999972],[-132.35415599999988,57.354439000000127],[-132.36972000000003,57.37082700000002],[-132.37914999999992,57.37943300000012],[-132.45111099999986,57.435265000000072],[-132.471924,57.451103000000103],[-132.4927669999999,57.46665999999999],[-132.50363200000004,57.474158999999986],[-132.61944599999998,57.583328000000051],[-132.75250199999994,57.709435000000042],[-132.76113899999996,57.717765999999926],[-132.76889,57.72665400000011],[-132.78222700000003,57.745270000000119],[-132.79110699999995,57.7586060000001],[-132.79583700000001,57.768883000000073],[-132.79611199999999,57.773879999999963],[-132.80722000000003,57.787773000000016],[-132.81362899999988,57.795546999999999],[-132.82138099999992,57.804436000000067],[-132.87304699999999,57.855270000000075],[-132.88165299999997,57.86360900000011],[-132.92861900000003,57.90554800000001],[-132.93777499999999,57.913322000000051],[-132.96472199999999,57.93332700000002],[-132.99499500000002,57.951660000000061],[-133.03332499999988,57.978874000000076],[-133.04388399999999,57.986938000000066],[-133.05306999999993,57.99471299999999],[-133.058044,57.999435000000062],[-133.070831,58.012215000000026],[-133.08749399999999,58.033332999999971],[-133.09500100000002,58.047775000000115],[-133.10415599999999,58.073051000000135],[-133.10720800000001,58.083328000000108],[-133.11111500000004,58.093323000000055],[-133.13696299999998,58.135826000000122],[-133.18472299999991,58.176102000000128],[-133.19500700000003,58.184158000000025],[-133.21139499999998,58.196381000000031],[-133.23361199999999,58.211380000000133],[-133.3061219999999,58.257216999999969],[-133.36111499999993,58.28054800000001],[-133.43029799999994,58.359993000000088],[-133.408905,58.400268999999923],[-133.38790899999998,58.4120640000001],[-133.42999299999991,58.459160000000054],[-133.55889899999994,58.528046000000074],[-133.73580900000002,58.644713999999965],[-133.80834999999996,58.709991000000002],[-133.82693499999999,58.726097000000038],[-134.08749399999999,58.808327000000133],[-134.23110999999989,58.851936000000023],[-134.245544,58.856941000000063],[-134.32000699999998,58.916099999999972],[-134.32556199999999,58.920830000000024],[-134.33221400000002,58.929718000000037],[-134.33221400000002,58.935265000000129],[-134.32556199999999,58.971100000000035],[-134.37942499999991,59.049164000000076],[-134.38613899999996,59.058044000000109],[-134.45556599999998,59.122489999999971],[-134.46139499999992,59.126656000000025],[-134.47500599999989,59.1336060000001],[-134.53222700000003,59.132210000000043],[-134.56640599999997,59.130547000000092],[-134.65084799999994,59.185546999999985],[-134.67166099999997,59.200272000000098],[-134.67529300000001,59.214714000000072],[-134.68804899999992,59.243324000000086],[-134.73889199999991,59.250275000000045],[-134.95193499999993,59.279991000000109],[-135.09167499999995,59.426940999999999],[-135.07971199999992,59.4447100000001],[-135.06332399999997,59.458046000000081],[-135.03973399999995,59.466934000000037],[-135.03057899999999,59.46804800000001],[-135.02111799999994,59.471099999999922],[-135.01779199999999,59.498878000000047],[-135.01501500000001,59.54055000000011],[-135.01446499999997,59.567497000000003],[-135.09722899999997,59.621376000000055],[-135.12027,59.621658000000139],[-135.13275099999998,59.622765000000072],[-135.1541749999999,59.62721300000004],[-135.17749000000003,59.636939999999981],[-135.33612099999999,59.726654000000053],[-135.47360199999997,59.801933000000076],[-135.50613399999997,59.793884000000048],[-135.82333399999999,59.705550999999957],[-135.94915800000001,59.669158999999979],[-136.07138099999997,59.657494000000099],[-136.12081899999998,59.651656999999943],[-136.16000399999996,59.646660000000054],[-136.20776399999988,59.639434999999992],[-136.31054700000004,59.612495000000138],[-136.34387200000003,59.602776000000119],[-136.34637499999991,59.600548000000003],[-136.29834,59.583603000000039],[-136.23916600000001,59.561377999999991],[-136.23388699999992,59.525826000000052],[-136.29305999999991,59.476097000000038],[-136.29998799999993,59.471099999999922],[-136.37164300000001,59.452492000000063],[-136.46362299999993,59.469711000000132],[-136.46417199999996,59.414153999999996],[-136.46249399999994,59.37221500000004],[-136.46249399999994,59.302490000000091],[-136.46276899999998,59.289436000000023],[-136.48083499999996,59.261939999999925],[-136.49221799999998,59.249718000000144],[-136.55835000000002,59.186377999999991],[-136.58389299999988,59.163321999999937],[-136.61138900000003,59.164711000000125],[-136.71972699999998,59.165268000000026],[-136.80889899999994,59.165268000000026],[-136.88833599999998,59.131934999999999],[-136.94195599999995,59.109436000000073],[-136.96972700000003,59.098328000000095],[-137.03308100000004,59.077492000000063],[-137.25167799999997,59.006104000000107],[-137.29611199999999,58.989989999999977],[-137.31417799999997,58.981102000000021],[-137.33889799999997,58.965546000000074],[-137.39279199999999,58.928329000000019],[-137.42028800000003,58.91415400000011],[-137.42749000000003,58.911377000000016],[-137.44500699999998,58.907494000000099],[-137.46554600000002,58.906096999999932],[-137.47805800000003,58.907211000000132],[-137.48803699999996,58.909156999999993],[-137.49581899999998,58.911934000000088],[-137.50167799999991,58.916382000000056],[-137.50500499999993,58.920273000000122],[-137.50750700000003,58.925552000000096],[-137.50723299999999,58.937767000000008],[-137.50527999999997,58.944153000000142],[-137.49722299999996,58.964157000000057],[-137.48776199999992,58.982490999999982],[-137.47970599999996,58.998046999999985],[-137.49914599999994,59.041382000000112],[-137.54528799999997,59.143051000000128],[-137.566101,59.186935000000062],[-137.59082000000001,59.238602000000014],[-137.91027800000001,59.408043000000077],[-138.11776699999996,59.516663000000051],[-138.30361900000003,59.613052000000039],[-138.49108899999993,59.708328000000051],[-138.5386049999999,59.732208000000071],[-138.615814,59.77416199999999],[-138.64724699999999,59.805550000000039],[-138.65472399999993,59.81471300000004],[-138.66363499999989,59.829162999999937],[-138.66610699999995,59.834435000000042],[-138.66915900000004,59.844994000000099],[-138.67501799999997,59.86693600000001],[-138.69027700000004,59.906936999999971],[-138.97192399999994,59.978600000000085],[-139.04779099999996,59.997490000000028],[-139.11639400000001,60.041382000000112],[-139.161407,60.07027400000004],[-139.18890399999987,60.088882000000069],[-139.183899,60.102219000000105],[-139.15527299999997,60.154991000000052],[-139.13363600000002,60.194435000000112],[-139.12527499999993,60.207771000000093],[-139.08221399999996,60.287498000000028],[-139.06500199999988,60.330276000000083],[-139.06640600000003,60.344153999999946],[-139.06805399999996,60.352219000000048],[-139.51947000000001,60.344711000000018],[-139.67666599999995,60.340546000000018],[-139.77166699999992,60.292496000000028],[-139.86639400000001,60.244438000000059],[-139.91305499999987,60.220824999999934],[-139.97943099999998,60.187767000000122],[-140.005585,60.193878000000041],[-140.45083599999992,60.309715000000097],[-140.471924,60.283882000000006],[-140.493042,60.25777400000004],[-140.50195299999996,60.244713000000104],[-140.52139299999993,60.222214000000122],[-140.94638099999997,60.297775000000001],[-140.995544,60.307213000000047],[-141.00058000000001,60.366661000000022],[-141.00112899999999,60.399436999999978],[-141.00030500000003,60.933051999999975],[-141.00167799999991,60.966384999999946],[-141.00030500000003,62.733046999999942],[-141.00140399999998,63.099998000000141],[-141.00195299999996,63.83277099999998],[-141.00030500000003,63.966385000000059],[-141.00030500000003,64.199706999999989],[-141.00195299999996,65.132751000000098],[-141.00030500000003,65.166092000000049],[-141.00030500000003,65.232758000000047],[-141.00195299999996,65.699416999999983],[-141.00195299999996,66.099425999999994],[-141.00167799999991,66.499419999999986],[-141.00085399999995,66.666382000000112],[-141.00058000000001,66.866089000000102],[-141.00167799999991,67.066376000000105],[-141.00222799999995,67.299149000000057],[-141.00058000000001,67.532486000000119],[-141,67.732758000000103],[-141.00195299999996,67.865814000000057],[-141.00195299999996,68.065811000000053],[-141.00195299999996,68.23275799999999],[-141.00167799999991,68.532761000000107],[-141.00085399999995,68.965546000000018],[-141.00058000000001,69.432479999999941],[-141.00085399999995,69.532211000000018],[-141.00299100000001,69.642365000000098],[-140.98220800000001,69.642761000000007],[-140.90945399999998,69.639160000000118],[-140.83306900000002,69.635269000000051],[-140.81610099999995,69.6336060000001],[-140.79528799999997,69.627197000000081],[-140.77001999999999,69.621643000000063],[-140.73831200000001,69.617751999999996],[-140.61554000000001,69.60832199999993],[-140.48831200000001,69.599425999999994],[-140.39611799999994,69.596099999999979],[-140.26141399999995,69.596649000000127],[-140.21887200000003,69.600815000000011],[-140.17944299999988,69.606369000000029],[-140.12914999999998,69.614990000000091],[-140.10055499999999,69.617477000000008],[-140.08471700000001,69.618042000000003],[-139.94387800000004,69.618865999999969],[-139.92639199999991,69.618590999999981],[-139.88833599999998,69.616653000000042],[-139.81054699999999,69.606644000000017],[-139.78112799999997,69.602203000000088],[-139.605255,69.575546000000031],[-139.57611099999986,69.570830999999998],[-139.67001299999998,69.579162999999994],[-139.68472299999996,69.581375000000037],[-139.77639799999997,69.599716000000001],[-139.7647399999999,69.590820000000065],[-139.75668299999995,69.586655000000064],[-139.73165899999998,69.581099999999992],[-139.60665899999992,69.559417999999994],[-139.573059,69.556091000000038],[-139.5350039999999,69.553863999999976],[-139.351654,69.53637700000013],[-139.14306599999998,69.510817999999915],[-139.11639400000001,69.505554000000132],[-139.10833699999995,69.501663000000065],[-139.10137899999995,69.491364000000033],[-139.09222399999999,69.481658999999979],[-139.069458,69.463318000000129],[-139.05584699999991,69.454987000000074],[-139.04806499999995,69.450821000000133],[-138.975281,69.414993000000095],[-138.95748900000001,69.407486000000006],[-138.93945299999996,69.399994000000049],[-138.88275099999993,69.384720000000129],[-138.83361799999994,69.373306000000071],[-138.79916399999991,69.364150999999993],[-138.76916499999999,69.35386699999998],[-138.75140399999998,69.346375000000023],[-138.64389,69.291367000000037],[-138.62164300000001,69.273041000000035],[-138.61639400000001,69.268326000000002],[-138.60720799999996,69.2586060000001],[-138.60498000000001,69.247482000000048],[-138.44998199999992,69.229156000000046],[-138.26916499999999,69.196365000000071],[-138.25390599999997,69.188309000000004],[-138.21887200000003,69.173309000000074],[-138.17721599999993,69.159988000000112],[-138.14334099999996,69.150818000000072],[-138.06332399999997,69.129424999999969],[-138.03945899999997,69.123596000000134],[-138.00112899999993,69.115265000000022],[-137.69638099999992,69.049712999999997],[-137.59445199999999,69.027771000000143],[-137.41915900000004,68.988876000000005],[-137.25500499999998,68.948318000000086],[-137.22610499999996,68.944977000000051],[-137.19222999999994,68.943863000000079],[-137.13027999999986,68.944977000000051],[-136.9786069999999,68.931931000000134],[-136.97332799999998,68.927200000000028],[-136.966095,68.923309000000131],[-136.95416299999994,68.920258000000103],[-136.78973399999995,68.881927000000076],[-136.74554399999994,68.875259000000085],[-136.68249499999996,68.871918000000051],[-136.65972899999997,68.874984999999981],[-136.64279199999993,68.878036000000009],[-136.63751199999996,68.884155000000021],[-136.63082900000001,68.889160000000061],[-136.61999500000002,68.891936999999984],[-136.52224699999999,68.909149000000014],[-136.50836199999998,68.910262999999986],[-136.47747800000002,68.910812000000135],[-136.42059299999994,68.9015500000001],[-136.39306599999992,68.897217000000069],[-136.35861199999999,68.893874999999923],[-136.25585899999999,68.889435000000105],[-136.14501999999999,68.885817999999972],[-136.09722899999991,68.88220200000012],[-136.02780199999989,68.873032000000023],[-135.98666399999996,68.864990000000091],[-135.85879499999993,68.838974000000064],[-135.83166499999999,68.831940000000031],[-135.54055799999992,68.752486999999974],[-135.519745,68.74581900000004],[-135.49194299999988,68.735259999999982],[-135.48498499999999,68.731094000000098],[-135.45388799999995,68.709427000000062],[-135.40695199999993,68.679977000000122],[-135.36554000000001,68.675812000000121],[-135.21054099999998,68.661377000000016],[-135.1600039999999,68.657211000000132],[-135.14752199999998,68.658874999999966],[-135.14639299999993,68.663879000000122],[-135.21444699999995,68.693038999999999],[-135.25363200000004,68.706940000000145],[-135.34359699999993,68.737762000000032],[-135.48193400000002,68.809418000000107],[-135.50613399999997,68.832488999999953],[-135.500854,68.838593000000003],[-135.48666399999996,68.839431999999988],[-135.45306399999998,68.838042999999971],[-135.43917799999991,68.835541000000092],[-135.40499899999998,68.831940000000031],[-135.341949,68.831664999999987],[-135.33804299999997,68.834991000000059],[-135.34973099999996,68.838042999999971],[-135.42166099999997,68.848877000000016],[-135.49472000000003,68.854979999999955],[-135.52835099999993,68.856368999999972],[-135.56054700000004,68.860260000000039],[-135.59527600000001,68.86943100000002],[-135.60443099999998,68.873032000000023],[-135.61886599999997,68.881362999999965],[-135.62359600000002,68.886107999999979],[-135.61389199999991,68.889435000000105],[-135.33581499999997,68.917755000000113],[-135.241669,68.926926000000094],[-135.22720299999997,68.925537000000077],[-135.21554600000002,68.922484999999995],[-135.20861799999994,68.918319999999994],[-135.19665499999991,68.909714000000065],[-135.19168100000002,68.904984000000013],[-135.18695100000002,68.90026899999998],[-135.12191799999999,68.893326000000002],[-134.97747799999996,68.878311000000053],[-134.95111099999997,68.88108799999992],[-134.91723599999995,68.898041000000035],[-134.89474499999994,68.912490999999932],[-134.87777700000004,68.920822000000044],[-134.85803199999998,68.927765000000022],[-134.845551,68.929428000000144],[-134.81723,68.925812000000064],[-134.80334499999998,68.923035000000027],[-134.74581899999998,68.907486000000063],[-134.70889299999999,68.892761000000121],[-134.66946399999989,68.873305999999957],[-134.64169299999992,68.856644000000017],[-134.49554399999994,68.75221300000004]],[[-93.519729999999925,63.839432000000102],[-93.339995999999985,63.80832700000002],[-93.329726999999934,63.809715000000097],[-93.217498999999975,63.838599999999985],[-93.216110000000015,63.843605000000025],[-93.225006000000008,63.847771000000137],[-93.236389000000031,63.847487999999942],[-93.267501999999922,63.84276600000004],[-93.278884999999946,63.842491000000052],[-93.291671999999949,63.844994000000042],[-93.333892999999932,63.859160999999972],[-93.343338000000017,63.863052000000039],[-93.357498000000021,63.871376000000112],[-93.441939999999931,63.921660999999915],[-93.448883000000023,63.925827000000027],[-93.449721999999952,63.930824000000086],[-93.452498999999989,63.954437000000041],[-93.451110999999969,63.959717000000126],[-93.443329000000006,63.965546000000131],[-93.433884000000035,63.968596999999988],[-93.423614999999927,63.970825000000104],[-93.413054999999986,63.971930999999927],[-93.389998999999932,63.971656999999993],[-93.36471599999993,63.967491000000109],[-93.27305599999994,63.928047000000049],[-93.12222300000002,63.892493999999999],[-92.960281000000009,63.855826999999977],[-92.841675000000009,63.83526599999999],[-92.65194699999995,63.787498000000028],[-92.549728000000016,63.81082200000003],[-92.540558000000033,63.814713000000097],[-92.530563000000029,63.816939999999988],[-92.507506999999976,63.816383000000087],[-92.583892999999989,63.829436999999984],[-92.606948999999872,63.829720000000123],[-92.619155999999919,63.831383000000073],[-92.669158999999979,63.839989000000003],[-92.706954999999937,63.846656999999936],[-92.935546999999985,63.904990999999995],[-92.942489999999964,63.90915700000005],[-92.956116000000009,63.932770000000005],[-92.965285999999992,63.936652999999922],[-93.218886999999995,63.979431000000034],[-93.266113000000018,63.981934000000024],[-93.276397999999972,63.979713000000061],[-93.288054999999986,63.980545000000006],[-93.301102000000014,63.983047000000056],[-93.436661000000015,64.015274000000034],[-93.612212999999997,64.093048000000067],[-93.627212999999983,64.106369000000029],[-93.635009999999909,64.115265000000136],[-93.635833999999988,64.120255000000043],[-93.689986999999917,64.156096999999988],[-93.751677999999913,64.188873000000058],[-93.761123999999882,64.192748999999992],[-93.773055999999997,64.19358799999992],[-93.779723999999987,64.189697000000024],[-93.776947000000007,64.184981999999991],[-93.665008999999941,64.087204000000042],[-93.660004000000015,64.083054000000061],[-93.604172000000005,64.044434000000138],[-93.654723999999931,63.992493000000024],[-93.731673999999998,63.987212999999997],[-93.759170999999924,63.984161000000029],[-93.770553999999947,63.957771000000037],[-93.654449,63.896660000000111],[-93.59973100000002,63.870270000000062],[-93.55360399999995,63.850548000000003],[-93.533324999999991,63.84276600000004],[-93.519729999999925,63.839432000000102]],[[-70.783065999999963,48.380547000000092],[-70.782501000000025,48.348045000000127],[-70.768065999999919,48.35054800000006],[-70.548049999999989,48.356383999999991],[-70.498885999999914,48.353324999999984],[-70.464172000000019,48.3491590000001],[-70.383057000000008,48.331108000000086],[-70.332229999999981,48.316666000000112],[-70.272780999999952,48.298332000000016],[-70.237777999999992,48.282493999999986],[-70.210007000000019,48.269714000000022],[-70.198607999999979,48.26249700000011],[-70.06138599999997,48.239989999999977],[-70.040833000000021,48.244437999999946],[-70.025833000000034,48.246101000000067],[-70.017501999999865,48.245270000000062],[-69.995543999999995,48.239989999999977],[-69.936935000000005,48.221931000000041],[-69.920546999999885,48.216385000000002],[-69.828339000000028,48.166382000000056],[-69.838333000000034,48.173881999999935],[-69.84722899999997,48.181938000000002],[-69.861938000000009,48.198875000000044],[-69.871933000000013,48.212493999999936],[-69.879439999999931,48.220825000000048],[-69.884170999999981,48.224159000000043],[-69.95944199999991,48.269440000000088],[-69.977218999999991,48.274436999999978],[-69.985549999999989,48.274994000000049],[-69.993332000000009,48.274712000000022],[-70.043610000000001,48.267211999999915],[-70.099990999999989,48.267211999999915],[-70.131942999999978,48.269714000000022],[-70.151108000000022,48.274436999999978],[-70.167770000000019,48.279990999999995],[-70.272507000000019,48.325554000000125],[-70.420273000000009,48.361381999999992],[-70.427779999999984,48.361107000000118],[-70.635009999999966,48.390549000000078],[-70.727782999999874,48.415825000000098],[-70.739165999999955,48.423049999999989],[-70.751952999999958,48.42849300000006],[-70.761397999999929,48.431938000000002],[-70.779998999999975,48.435546999999985],[-70.954726999999991,48.459717000000012],[-70.980559999999912,48.462212000000022],[-71.012221999999952,48.46166199999999],[-71.025283999999886,48.457496999999989],[-71.048614999999927,48.445267000000058],[-71.047774999999888,48.444434999999942],[-71.031386999999995,48.443320999999969],[-70.906386999999938,48.423325000000034],[-70.799987999999985,48.401657000000057],[-70.785552999999879,48.395828000000051],[-70.781386999999881,48.391936999999984],[-70.779449,48.386940000000095],[-70.783065999999963,48.380547000000092]],[[-108.13890100000003,71.981658999999979],[-108.15583799999996,71.980820000000051],[-108.17415599999998,71.983322000000101],[-108.18720999999999,71.986649000000057],[-108.18916300000001,71.99192800000003],[-108.19972199999995,72.050537000000077],[-108.19027699999998,72.055542000000116],[-108.1702729999999,72.064423000000033],[-108.16027799999995,72.062759000000028],[-108.13417099999992,72.056091000000094],[-108.07444799999996,72.034149000000014],[-108.06416299999995,72.030272999999966],[-108.06220999999999,72.02526899999998],[-108.06304899999998,72.019440000000145],[-108.069458,72.013046000000088],[-108.07721700000002,72.007217000000082],[-108.10526999999996,71.992751999999996],[-108.12526700000001,71.983871000000022],[-108.13890100000003,71.981658999999979]],[[-85.84722899999997,72.294144000000074],[-85.837218999999948,72.288879000000009],[-85.837218999999948,72.262771999999927],[-85.851669000000015,72.241364000000033],[-85.877486999999917,72.221649000000014],[-85.889175000000023,72.218047999999953],[-85.90834000000001,72.217758000000117],[-85.981110000000001,72.236373999999955],[-86.005844000000025,72.243591000000094],[-86.061110999999983,72.261658000000125],[-86.096389999999985,72.276382000000012],[-86.107223999999917,72.283875000000023],[-86.110001000000011,72.289703000000145],[-86.101395000000025,72.293594000000041],[-86.093338000000017,72.294708000000014],[-86.067229999999995,72.293869000000029],[-86.005004999999983,72.296646000000123],[-85.863891999999964,72.297211000000004],[-85.84722899999997,72.294144000000074]],[[-78.735000999999954,72.365540000000124],[-78.75389100000001,72.363312000000008],[-78.81220999999988,72.365265000000079],[-78.830840999999964,72.364990000000091],[-78.854172000000005,72.362197999999978],[-78.874435000000005,72.358871000000079],[-78.889450000000011,72.354706000000078],[-78.91332999999986,72.345535000000098],[-78.920836999999949,72.341370000000097],[-78.93499799999995,72.336380000000077],[-78.950286999999946,72.334991000000059],[-79.053054999999972,72.360809000000017],[-79.075561999999934,72.403046000000074],[-79.075012000000015,72.409714000000065],[-79.070847000000015,72.414993000000038],[-79.066665999999998,72.420258000000103],[-79.044448999999929,72.426651000000049],[-79.00140399999998,72.438309000000118],[-78.97084000000001,72.445250999999985],[-78.955565999999919,72.444427000000019],[-78.950561999999991,72.442199999999957],[-78.946655000000021,72.440262000000018],[-78.939986999999917,72.435806000000127],[-78.846953999999926,72.415543000000071],[-78.833892999999989,72.411926000000108],[-78.740829000000019,72.374419999999986],[-78.731673999999941,72.36943100000002],[-78.735000999999954,72.365540000000124]],[[-79.508056999999951,72.348602000000028],[-79.533889999999985,72.346099999999979],[-79.555832000000009,72.346939000000077],[-79.572234999999978,72.349152000000061],[-79.581954999999994,72.35165399999994],[-79.59445199999999,72.356934000000024],[-79.609436000000017,72.36692800000003],[-79.624160999999901,72.379425000000026],[-79.683318999999983,72.430542000000116],[-79.586120999999991,72.453872999999987],[-79.576675000000023,72.456100000000049],[-79.552489999999921,72.451096000000121],[-79.541381999999999,72.444977000000051],[-79.529174999999952,72.439697000000024],[-79.502791999999886,72.429977000000122],[-79.46945199999999,72.423035000000027],[-79.43638599999997,72.418319999999994],[-79.42971799999998,72.411652000000004],[-79.440552000000025,72.37052900000009],[-79.446654999999907,72.364990000000091],[-79.455565999999919,72.359985000000052],[-79.470275999999956,72.355545000000006],[-79.508056999999951,72.348602000000028]],[[-79.993606999999997,72.413315000000125],[-80.009445000000028,72.410538000000031],[-80.022232000000031,72.413605000000132],[-80.124435000000005,72.506653000000028],[-80.130554000000018,72.512497000000053],[-80.133330999999941,72.519440000000031],[-80.129989999999907,72.523041000000092],[-80.11999499999996,72.526931999999988],[-80.112502999999947,72.526931999999988],[-80.063613999999973,72.523880000000077],[-80.036941999999897,72.51638800000012],[-79.921936000000017,72.463318000000072],[-79.916397000000018,72.458037999999988],[-79.926940999999999,72.447754000000145],[-79.939162999999951,72.436645999999996],[-79.956954999999994,72.426086000000055],[-79.978881999999885,72.417755000000113],[-79.993606999999997,72.413315000000125]],[[-110.46916199999993,72.569152999999972],[-110.48137699999995,72.565811000000053],[-110.54415899999998,72.569152999999972],[-110.57195300000001,72.575546000000145],[-110.58833299999998,72.583878000000141],[-110.593887,72.588592999999946],[-110.593887,72.594147000000135],[-110.576683,72.594986000000119],[-110.53888699999993,72.594986000000119],[-110.51666299999999,72.593322999999998],[-110.50446299999999,72.590820000000008],[-110.48249799999991,72.583603000000096],[-110.47444200000001,72.579437000000041],[-110.46888699999994,72.574706999999989],[-110.46916199999993,72.569152999999972]],[[-110.35582699999998,72.601929000000098],[-110.37304699999993,72.601379000000065],[-110.39499699999993,72.603043000000071],[-110.46417199999991,72.613312000000121],[-110.49472000000003,72.619141000000127],[-110.46916199999993,72.621368000000018],[-110.450287,72.621368000000018],[-110.39862099999993,72.618041999999946],[-110.35888699999992,72.614990000000034],[-110.34500100000002,72.611923000000104],[-110.34500100000002,72.606094000000098],[-110.35582699999998,72.601929000000098]],[[-108.510559,72.602768000000083],[-108.51999699999993,72.598038000000031],[-108.53778099999994,72.599426000000108],[-108.593613,72.61775200000011],[-108.604446,72.621643000000006],[-108.61221299999994,72.625809000000118],[-108.6141659999999,72.631088000000091],[-108.61361699999986,72.636657999999954],[-108.60388199999994,72.639435000000049],[-108.51722699999999,72.642487000000017],[-108.49665800000002,72.641372999999987],[-108.49194299999999,72.636657999999954],[-108.49416400000001,72.631927000000019],[-108.510559,72.602768000000083]],[[-110.30722000000003,72.630813999999987],[-110.36389199999996,72.630813999999987],[-110.39695699999993,72.636383000000137],[-110.41082799999998,72.639435000000049],[-110.40028399999994,72.643600000000049],[-110.36000100000001,72.648880000000133],[-110.31500199999999,72.651932000000045],[-110.28083799999996,72.642211999999972],[-110.281113,72.636383000000137],[-110.28999299999992,72.631653000000085],[-110.30722000000003,72.630813999999987]],[[-109.215012,72.790268000000083],[-109.22749299999992,72.787200999999982],[-109.24833699999999,72.788040000000137],[-109.37277199999994,72.806091000000094],[-109.41694599999988,72.815262000000075],[-109.41944899999993,72.820541000000048],[-109.37832600000002,72.828598],[-109.33389299999999,72.834990999999945],[-109.32028200000002,72.8316650000001],[-109.31220999999994,72.827484000000027],[-109.22444200000001,72.811096000000134],[-109.21056399999998,72.8077550000001],[-109.21166999999997,72.796371000000022],[-109.215012,72.790268000000083]],[[-95.735000999999954,72.798874000000012],[-95.753615999999909,72.796097000000088],[-95.771392999999932,72.799149],[-95.835555999999997,72.831100000000049],[-95.854172000000005,72.853591999999992],[-95.850829999999974,72.858321999999987],[-95.810546999999929,72.876647999999989],[-95.791106999999954,72.880264000000068],[-95.774170000000026,72.880264000000068],[-95.769164999999987,72.878036000000122],[-95.763061999999877,72.872482000000105],[-95.735275000000001,72.859985000000108],[-95.720550999999944,72.848037999999974],[-95.716949,72.84387200000009],[-95.714171999999905,72.838593000000117],[-95.71362299999987,72.832214000000079],[-95.718886999999938,72.809418000000051],[-95.725005999999951,72.803314],[-95.735000999999954,72.798874000000012]],[[-96.754181000000017,72.721374999999966],[-96.77027899999996,72.719710999999961],[-96.955275999999969,72.734146000000067],[-96.96945199999999,72.737761999999975],[-96.977782999999988,72.745254999999986],[-97.011123999999938,72.775818000000129],[-97.010283999999899,72.776657000000114],[-96.921386999999982,72.835815000000082],[-96.911117999999931,72.841094999999996],[-96.798614999999984,72.881363000000022],[-96.757232999999928,72.892761000000064],[-96.737212999999997,72.895264000000054],[-96.725554999999986,72.89498900000001],[-96.713332999999921,72.893326000000059],[-96.688323999999966,72.883330999999998],[-96.692215000000033,72.862762000000032],[-96.666945999999996,72.811096000000134],[-96.651672000000019,72.804152999999985],[-96.642501999999979,72.797760000000039],[-96.639998999999989,72.791655999999989],[-96.639998999999989,72.786652000000004],[-96.641388000000006,72.782211000000075],[-96.728058000000033,72.730545000000063],[-96.741378999999995,72.725539999999967],[-96.754181000000017,72.721374999999966]],[[-95.756957999999997,72.892487000000131],[-95.777495999999985,72.891937000000098],[-95.795272999999952,72.89498900000001],[-95.808334000000002,72.907210999999961],[-95.824721999999952,72.965271000000087],[-95.786666999999966,73.012496999999939],[-95.761672999999973,73.004714999999976],[-95.757232999999928,73.001663000000065],[-95.756118999999956,72.998596000000134],[-95.743606999999997,72.987762000000089],[-95.702498999999989,72.933593999999971],[-95.708343999999954,72.917206000000078],[-95.735549999999989,72.900543000000027],[-95.744445999999925,72.895827999999995],[-95.756957999999997,72.892487000000131]],[[-95.733886999999982,73.128860000000032],[-95.718062999999972,73.118042000000059],[-95.715835999999911,73.11192299999999],[-95.71556099999998,73.105545000000063],[-95.717772999999966,73.10026600000009],[-95.726395000000025,73.088881999999955],[-95.729171999999949,73.071105999999986],[-95.724715999999944,73.059142999999949],[-95.728332999999907,73.054428000000144],[-95.745543999999938,73.049423000000047],[-95.775283999999999,73.05525200000011],[-95.787216000000001,73.061920000000043],[-95.799437999999952,73.072769000000108],[-95.822509999999966,73.083054000000061],[-95.859726000000023,73.090820000000122],[-95.893341000000021,73.095824999999991],[-95.893065999999976,73.100815000000011],[-95.891112999999962,73.101089000000115],[-95.885009999999909,73.104706000000078],[-95.881942999999978,73.108597000000145],[-95.874709999999993,73.114150999999993],[-95.865279999999927,73.119979999999998],[-95.863051999999982,73.125259000000142],[-95.865279999999927,73.131363000000022],[-95.868332000000009,73.136383000000023],[-95.868880999999988,73.140548999999965],[-95.854995999999971,73.140548999999965],[-95.840835999999967,73.136658000000068],[-95.828888000000006,73.129974000000004],[-95.822509999999966,73.124695000000031],[-95.818343999999968,73.125533999999959],[-95.814163000000008,73.131087999999977],[-95.807495000000017,73.135544000000095],[-95.790833000000021,73.139434999999992],[-95.776397999999915,73.140548999999965],[-95.763335999999981,73.139709000000096],[-95.74499499999996,73.136658000000068],[-95.738892000000021,73.133880999999974],[-95.733886999999982,73.128860000000032]],[[-96.808333999999945,72.926376000000118],[-96.915282999999931,72.917755000000056],[-96.955275999999969,72.920531999999923],[-96.968338000000017,72.923874000000069],[-96.990554999999972,72.931090999999981],[-97.017776000000026,72.940536000000066],[-97.032227000000034,72.946640000000059],[-97.061385999999914,72.963318000000129],[-97.089721999999995,72.981658999999979],[-97.105834999999956,72.99832200000003],[-97.111938000000009,73.004714999999976],[-97.136947999999961,73.045822000000044],[-97.139724999999885,73.051926000000037],[-97.141953000000001,73.064148000000046],[-97.142775999999969,73.075272000000098],[-97.141112999999962,73.085541000000148],[-97.127776999999924,73.095824999999991],[-97.069732999999985,73.136932000000002],[-97.059432999999956,73.142212000000029],[-97.045546999999999,73.147491000000059],[-97.003341999999975,73.159714000000065],[-96.946944999999971,73.172484999999995],[-96.904449,73.179977000000122],[-96.848052999999993,73.187484999999981],[-96.809433000000013,73.189148000000102],[-96.786391999999978,73.18803400000013],[-96.771941999999967,73.181655999999975],[-96.755279999999971,73.175812000000121],[-96.653060999999923,73.136383000000023],[-96.602218999999934,73.099152000000117],[-96.580841000000021,73.081100000000049],[-96.575011999999901,73.074997000000053],[-96.568619000000012,73.062195000000088],[-96.565826000000015,73.056091000000038],[-96.564712999999983,73.050537000000077],[-96.565552000000025,73.044708000000014],[-96.573623999999995,73.033325000000048],[-96.636672999999973,72.965820000000065],[-96.643341000000021,72.96138000000002],[-96.65834000000001,72.954163000000108],[-96.697219999999959,72.941650000000038],[-96.743057000000022,72.933593999999971],[-96.765014999999948,72.930817000000047],[-96.808333999999945,72.926376000000118]],[[-96.90583799999996,73.220825000000048],[-96.924712999999997,73.218048000000124],[-96.944991999999957,73.218322999999941],[-96.984725999999966,73.220535000000041],[-97.040833000000021,73.228591999999992],[-97.079177999999956,73.235259999999982],[-97.106948999999929,73.242203000000131],[-97.117767000000015,73.249145999999939],[-97.115279999999927,73.253052000000025],[-97.090285999999878,73.261932000000058],[-97.058043999999995,73.269150000000081],[-97.035004000000015,73.272766000000104],[-96.977492999999981,73.273880000000077],[-96.967772999999966,73.273315000000082],[-96.968338000000017,73.267487000000131],[-96.951400999999976,73.239426000000037],[-96.909164000000033,73.238312000000064],[-96.896118000000001,73.237762000000032],[-96.886672999999917,73.231094000000041],[-96.889174999999966,73.224991000000102],[-96.90583799999996,73.220825000000048]],[[-113.99749799999995,72.799423000000104],[-114.01112399999994,72.79664600000001],[-114.06806899999998,72.795822000000044],[-114.15167200000002,72.798035000000027],[-114.20861799999994,72.796936000000073],[-114.22416699999997,72.794983000000116],[-114.23581699999994,72.791655999999989],[-114.35138699999993,72.747482000000048],[-114.35749800000002,72.74136400000009],[-114.35637700000001,72.735809000000017],[-114.33444199999997,72.693588000000034],[-114.327789,72.688873000000001],[-114.36582900000002,72.66276600000009],[-114.45168299999995,72.623032000000023],[-114.46501199999994,72.6202550000001],[-114.49553699999996,72.616379000000052],[-114.53138699999988,72.614990000000034],[-114.576683,72.60914600000001],[-114.58999599999993,72.606368999999916],[-114.60472099999998,72.60165400000011],[-114.55832700000002,72.560806000000014],[-114.42666600000001,72.556090999999981],[-114.38527699999986,72.555251999999996],[-114.35138699999993,72.557479999999941],[-114.33999599999999,72.560806000000014],[-114.33029199999999,72.565262000000075],[-114.32584400000002,72.571930000000066],[-114.12805200000003,72.626083000000051],[-114.10305800000003,72.632202000000063],[-114.06276699999995,72.640274000000034],[-113.99027999999998,72.651382000000012],[-113.91027800000001,72.659148999999957],[-113.89306599999998,72.660262999999986],[-113.88333099999988,72.657486000000063],[-113.89046499999995,72.648048000000017],[-113.89222699999999,72.640822999999955],[-113.88054699999992,72.637207000000103],[-113.858047,72.635817999999915],[-113.80666399999996,72.639160000000061],[-113.76222199999995,72.646103000000039],[-113.70834400000001,72.656937000000084],[-113.67138699999992,72.666656000000103],[-113.61277799999988,72.683868000000132],[-113.58750899999995,72.689971999999955],[-113.54666099999997,72.698029000000133],[-113.51611300000002,72.701934999999992],[-113.50611900000001,72.699141999999995],[-113.52084400000001,72.688034000000016],[-113.55055199999987,72.675262000000032],[-113.57250999999991,72.667480000000069],[-113.61945299999996,72.653594999999996],[-113.64277599999991,72.646652000000017],[-113.68776699999995,72.631927000000019],[-113.70944199999991,72.624145999999996],[-113.72917200000001,72.615540000000067],[-113.73082699999998,72.609421000000054],[-113.72193900000002,72.60554499999995],[-113.69972200000001,72.604155999999989],[-113.68443299999996,72.606094000000098],[-113.65750100000002,72.611374000000012],[-113.46639999999996,72.665268000000026],[-113.44275700000003,72.672211000000004],[-113.43639400000001,72.67804000000001],[-113.43167099999999,72.684708000000001],[-113.41000399999996,72.729431000000034],[-113.41332999999992,72.734711000000118],[-113.41972399999997,72.739150999999936],[-113.43138099999999,72.742751999999996],[-113.44860799999992,72.744979999999998],[-113.53527799999995,72.748871000000065],[-113.58029199999987,72.751663000000121],[-113.59750399999996,72.754166000000112],[-113.60637699999995,72.758331000000112],[-113.60804699999994,72.769439999999975],[-113.59889199999998,72.782760999999937],[-113.58249699999999,72.793045000000006],[-113.38694800000002,72.907486000000006],[-113.33139,72.935257000000092],[-113.30277999999998,72.948868000000061],[-113.26862299999999,72.960266000000047],[-113.14862099999999,72.994705000000067],[-113.06276699999989,73.00749200000007],[-113.02806099999998,73.009430000000009],[-113.00695799999994,73.008881000000088],[-112.823059,72.998871000000008],[-112.81139400000001,72.9952550000001],[-112.79472399999997,72.982208000000071],[-112.78582799999998,72.978317000000004],[-112.77139299999993,72.975266000000033],[-112.75418100000002,72.972763000000043],[-112.708618,72.969711000000132],[-112.64362299999993,72.966934000000037],[-112.60082999999986,72.963607999999965],[-112.56360599999994,72.959152000000074],[-112.51500699999991,72.951096000000007],[-112.5,72.947922000000119],[-112.47165699999994,72.941925000000026],[-112.44583099999994,72.935257000000092],[-112.41388699999993,72.924149000000057],[-112.387787,72.911102000000028],[-112.37638900000002,72.907760999999994],[-112.36193800000001,72.904709000000082],[-112.34472700000003,72.902205999999921],[-112.27944899999994,72.896941999999967],[-112.23777799999999,72.895537999999988],[-112.14195299999994,72.896378000000027],[-112.09834299999989,72.894150000000025],[-112.06166099999996,72.889434999999992],[-111.94776899999999,72.870529000000147],[-111.78333299999997,72.834717000000012],[-111.67582699999997,72.814697000000024],[-111.65888999999999,72.8119200000001],[-111.59416199999998,72.806641000000127],[-111.54055799999998,72.799423000000104],[-111.52639799999997,72.796371000000022],[-111.23693799999995,72.726379000000122],[-111.22582999999997,72.7227630000001],[-111.22000100000002,72.718323000000055],[-111.20249899999999,72.67053199999998],[-111.20527599999997,72.664429000000041],[-111.26278699999995,72.579163000000108],[-111.27694699999989,72.567490000000078],[-111.45221699999996,72.477768000000026],[-111.52778599999999,72.44999700000011],[-111.65110800000002,72.40887500000008],[-111.675003,72.402206000000035],[-111.736107,72.395264000000111],[-111.76999699999993,72.393600000000106],[-111.78527799999995,72.391936999999984],[-111.81220999999999,72.386658000000011],[-111.859734,72.373306000000014],[-111.890289,72.360535000000084],[-111.89890299999996,72.355545000000006],[-111.90556299999997,72.349716000000001],[-111.90167200000002,72.346099999999979],[-111.86250299999995,72.330551000000071],[-111.85138699999999,72.326934999999992],[-111.66388699999999,72.276382000000012],[-111.50446299999999,72.311920000000043],[-111.44499200000001,72.328873000000101],[-111.42443799999995,72.337204000000042],[-111.41915899999998,72.343871999999976],[-111.43305999999995,72.346939000000077],[-111.45140100000003,72.346939000000077],[-111.487213,72.336655000000064],[-111.51944700000001,72.334152000000074],[-111.5616609999999,72.336655000000064],[-111.578056,72.339156999999943],[-111.58917200000002,72.342758000000003],[-111.60582699999998,72.350815000000011],[-111.61165599999998,72.361099000000024],[-111.609444,72.367203000000075],[-111.58833299999998,72.376373000000115],[-111.37444299999993,72.446640000000002],[-111.350281,72.453322999999955],[-111.3094329999999,72.460815000000082],[-111.29387700000001,72.462768999999923],[-111.26583899999997,72.465546000000018],[-111.24889400000001,72.466385000000002],[-111.22860699999995,72.465546000000018],[-111.20249899999999,72.46026599999999],[-111.21333300000003,72.446930000000009],[-111.23277299999995,72.4369200000001],[-111.24500299999994,72.433594000000085],[-111.27223200000003,72.428588999999988],[-111.30139200000002,72.404160000000047],[-111.27749599999993,72.369979999999941],[-111.11277799999993,72.335266000000104],[-111.09528399999994,72.379700000000014],[-111.09137699999997,72.401932000000102],[-111.00446299999999,72.46527100000003],[-110.8691639999999,72.473312000000078],[-110.82444799999996,72.479156000000103],[-110.80304699999999,72.485259999999926],[-110.82501200000002,72.503875999999934],[-110.83332799999999,72.519150000000025],[-110.827789,72.525818000000015],[-110.73805199999993,72.565536000000009],[-110.72749299999998,72.569716999999912],[-110.71528599999999,72.573044000000039],[-110.70140100000003,72.575546000000145],[-110.68083199999995,72.574706999999989],[-110.66610700000001,72.573044000000039],[-110.53527799999995,72.546646000000067],[-110.52639799999992,72.526931999999988],[-110.57501199999996,72.51388500000013],[-110.59445199999993,72.50471500000009],[-110.60166899999996,72.498871000000065],[-110.60193600000002,72.493317000000104],[-110.59361299999989,72.489150999999993],[-110.55249000000003,72.47387700000013],[-110.53083800000002,72.46665999999999],[-110.35056299999997,72.428040000000067],[-110.32861299999996,72.426086000000055],[-110.30999799999995,72.426086000000055],[-110.30387899999999,72.430542000000116],[-110.31194299999993,72.434708000000057],[-110.41027799999995,72.462204000000099],[-110.50334199999998,72.484985000000108],[-110.514183,72.488585999999998],[-110.52250700000002,72.492752000000053],[-110.52778599999999,72.497482000000105],[-110.53056299999992,72.502486999999974],[-110.52333099999998,72.508330999999998],[-110.39639299999999,72.552200000000084],[-110.38417099999998,72.555542000000003],[-110.36527999999998,72.555542000000003],[-110.34333800000002,72.55386400000009],[-110.32389799999993,72.551650999999936],[-110.31304899999998,72.547760000000039],[-110.22028399999994,72.51388500000013],[-110.20140100000003,72.505829000000062],[-110.15527299999997,72.480270000000075],[-110.06139399999995,72.437484999999924],[-110.05055199999993,72.433868000000018],[-110.03999299999998,72.438034000000073],[-110.02194199999991,72.447754000000145],[-109.99889400000001,72.455261000000121],[-109.97112300000003,72.46026599999999],[-109.95249899999999,72.459991000000116],[-109.91972399999986,72.454711999999972],[-109.81388900000002,72.428314],[-109.79666099999992,72.426926000000094],[-109.78278399999999,72.429428000000144],[-109.77806099999998,72.434708000000057],[-109.78582799999992,72.438873000000058],[-109.80583199999995,72.445526000000029],[-109.83029199999999,72.452208999999982],[-110.04250300000001,72.50471500000009],[-110.22305299999999,72.545822000000101],[-110.23665599999998,72.548874000000069],[-110.24777199999994,72.552765000000136],[-110.25583599999987,72.55693100000002],[-110.252792,72.56303400000013],[-110.24221799999992,72.566940000000045],[-110.22165699999994,72.566086000000041],[-110.12082699999996,72.560257000000036],[-110.10417200000001,72.557754999999986],[-110.09056099999998,72.55442800000003],[-110.06889299999995,72.546936000000073],[-110.03888699999987,72.535538000000088],[-110.02278099999995,72.527206000000092],[-110.00361599999991,72.519440000000031],[-109.97112300000003,72.508330999999998],[-109.90499899999998,72.487198000000092],[-109.88861099999986,72.484711000000004],[-109.80943300000001,72.491653000000099],[-109.79527300000001,72.49414100000007],[-109.78472899999997,72.498322000000144],[-109.78278399999999,72.503051999999968],[-109.94275700000003,72.604155999999989],[-109.95889299999993,72.612762000000089],[-110.09306300000003,72.65637200000009],[-110.11332699999997,72.657211000000018],[-110.17111199999999,72.648330999999985],[-110.18666100000002,72.646652000000017],[-110.22112299999998,72.645264000000054],[-110.241669,72.646103000000039],[-110.25556899999998,72.649429000000055],[-110.26666299999999,72.653046000000018],[-110.283073,72.66137700000013],[-110.28832999999992,72.666091999999992],[-110.29110700000001,72.671097000000032],[-110.20973200000003,72.71775800000006],[-110.20056199999999,72.7227630000001],[-110.18831599999999,72.726089000000115],[-110.17083699999995,72.726928999999984],[-110.078079,72.727065999999979],[-110.04167200000001,72.722488000000055],[-110.03056300000003,72.718596999999988],[-109.99804699999999,72.701934999999992],[-109.98693800000001,72.698318000000029],[-109.85221899999993,72.665817000000118],[-109.83277899999996,72.663315000000068],[-109.81723,72.664992999999981],[-109.77084399999995,72.716385000000116],[-109.77027900000002,72.722214000000122],[-109.78138699999994,72.725815000000011],[-109.80082700000003,72.728043000000127],[-109.81973299999993,72.728043000000127],[-110.03111299999995,72.747757000000036],[-110.17887899999994,72.769149999999968],[-110.17138699999998,72.774993999999992],[-110.16832699999986,72.781097000000102],[-110.17083699999995,72.786101999999971],[-110.17639199999996,72.790817000000004],[-110.21166999999997,72.818328999999949],[-110.24526999999995,72.823607999999979],[-110.32640099999992,72.826385000000016],[-110.36638599999998,72.827208999999982],[-110.47666899999996,72.834990999999945],[-110.493607,72.83776899999998],[-110.53555299999994,72.847214000000008],[-110.54666099999997,72.850815000000068],[-110.56331599999999,72.859145999999953],[-110.74276699999996,72.957214000000135],[-110.75389099999995,72.966385000000059],[-110.75666799999993,72.971374999999966],[-110.75389099999995,72.977768000000083],[-110.74804699999993,72.984421000000054],[-110.74082900000002,72.989975000000072],[-110.73166700000002,72.994980000000112],[-110.70834400000001,73.002487000000031],[-110.69415300000003,73.004990000000021],[-110.67832899999991,73.006653000000142],[-110.61860699999994,73.011383000000137],[-110.51139799999993,73.015274000000034],[-110.432503,73.014435000000105],[-110.39083899999997,73.012496999999939],[-110.16610700000001,72.996094000000085],[-110.05110199999996,72.984711000000061],[-109.91887700000001,72.96804800000001],[-109.65943899999996,72.924988000000042],[-109.63445299999995,72.918045000000063],[-109.61805700000002,72.909424000000115],[-109.618607,72.903869999999927],[-109.62943999999993,72.899719000000061],[-109.66111799999999,72.896652000000131],[-109.69471699999997,72.894440000000088],[-109.724716,72.890549000000021],[-109.73889200000002,72.888046000000031],[-109.75,72.883881000000031],[-109.75472999999994,72.878585999999984],[-109.74665799999997,72.874420000000043],[-109.65862300000003,72.844711000000018],[-109.379707,72.770538000000101],[-109.22778299999993,72.761658000000068],[-109.05110200000001,72.680267000000072],[-109.02999899999998,72.647217000000012],[-109.04915599999993,72.604155999999989],[-109.045547,72.572495000000117],[-109.04332699999998,72.567490000000078],[-109.02861000000001,72.565536000000009],[-108.88249200000001,72.564423000000147],[-108.86527999999998,72.564987000000087],[-108.85109699999998,72.567490000000078],[-108.84194899999994,72.572495000000117],[-108.81916799999993,72.591095000000053],[-108.72277800000001,72.582763999999941],[-108.70361300000002,72.58027600000014],[-108.67666600000001,72.573883000000023],[-108.64472999999987,72.562485000000038],[-108.62138399999998,72.549988000000042],[-108.61638599999998,72.54525799999999],[-108.58805799999993,72.505554000000075],[-108.58944700000001,72.494431000000077],[-108.59638999999993,72.482208000000014],[-108.60278299999999,72.475540000000024],[-108.61054999999993,72.469986000000063],[-108.62470999999994,72.457489000000066],[-108.63722200000001,72.444427000000019],[-108.64499699999993,72.426651000000049],[-108.65055799999999,72.403595000000053],[-108.66361999999998,72.362761999999975],[-108.66278099999994,72.346374999999966],[-108.65834000000001,72.336105000000032],[-108.52416999999997,72.199706999999989],[-108.45500199999998,72.157211000000132],[-108.44415300000003,72.161102000000028],[-108.42832900000002,72.158325000000104],[-108.41805999999997,72.154434000000037],[-108.404449,72.14694199999991],[-108.40222199999994,72.141663000000108],[-108.39890300000002,72.113602000000071],[-108.39472999999998,72.042755000000113],[-108.39527900000002,72.036926000000108],[-108.396118,72.03137200000009],[-108.31639099999995,71.984146000000067],[-108.20417799999996,71.963882000000126],[-108.19138299999992,71.960541000000092],[-108.18666100000002,71.955826000000059],[-108.18276999999995,71.945525999999916],[-108.18971299999998,71.933318999999983],[-108.19611399999997,71.92692599999998],[-108.23361199999999,71.899719000000061],[-108.28639199999992,71.860809000000131],[-108.28278399999999,71.792206000000022],[-108.28083800000002,71.786925999999994],[-108.24276700000001,71.718597000000045],[-108.23805199999998,71.713882000000012],[-108.23082699999992,71.709426999999948],[-108.22055099999994,71.705826000000116],[-108.20777900000002,71.70248400000014],[-108.19248999999996,71.699707000000046],[-108.17748999999998,71.701096000000064],[-108.14111300000002,71.710541000000148],[-108.13054699999992,71.714432000000045],[-108.10333300000002,71.719147000000078],[-108.08693700000003,71.719711000000018],[-108.066101,71.71775800000006],[-108.03639199999998,71.705826000000116],[-108.02194199999997,71.697204999999997],[-107.98805199999987,71.675537000000077],[-107.97609699999987,71.666381999999999],[-107.96694899999994,71.656936999999971],[-107.96777299999991,71.651382000000069],[-107.91583300000002,71.624984999999981],[-107.84528399999994,71.603867000000093],[-107.82888799999995,71.604431000000034],[-107.75334199999998,71.610260000000039],[-107.74109599999997,71.613312000000121],[-107.73194899999999,71.618042000000003],[-107.72416699999991,71.623871000000008],[-107.72609699999998,71.629149999999981],[-107.74054699999994,71.637496999999939],[-107.75028999999995,71.641373000000044],[-107.77583299999998,71.648041000000035],[-107.82472199999995,71.672759999999982],[-107.83194700000001,71.676926000000037],[-107.83640300000002,71.681656000000089],[-107.83833300000003,71.686920000000043],[-107.83750899999995,71.692474000000061],[-107.82305899999994,71.716934000000094],[-107.81527699999998,71.7227630000001],[-107.80444299999999,71.726653999999996],[-107.78943600000002,71.728043000000014],[-107.7519529999999,71.726653999999996],[-107.73665599999998,71.723602000000085],[-107.63027999999997,71.732208000000014],[-107.49472000000003,71.786377000000016],[-107.451683,71.857483000000059],[-107.36361699999992,71.871917999999994],[-107.34555099999994,71.871643000000006],[-107.29695099999998,71.874145999999939],[-107.28333299999997,71.876373000000001],[-107.27084400000001,71.879424999999969],[-107.26139799999999,71.884155000000135],[-107.25334199999998,71.889708999999982],[-107.25250199999994,71.895537999999988],[-107.25695799999994,71.900269000000094],[-107.264183,71.904434000000094],[-107.41805999999997,71.953873000000101],[-107.59638999999993,72.004439999999988],[-107.61389199999996,72.012496999999996],[-107.62581599999999,72.021652000000017],[-107.63027999999997,72.026382000000069],[-107.65139799999997,72.061096000000134],[-107.65334300000001,72.066375999999991],[-107.64943700000003,72.072495000000004],[-107.63999899999993,72.077208999999982],[-107.62609899999995,72.079437000000098],[-107.61389199999996,72.082764000000054],[-107.61000100000001,72.08859300000006],[-107.61193799999995,72.093872000000033],[-107.63527699999997,72.121917999999937],[-107.68138099999999,72.136108000000036],[-107.699997,72.138596000000007],[-107.729446,72.137207000000046],[-107.74333199999995,72.134994999999947],[-107.76027699999992,72.134430000000123],[-107.77887699999997,72.136658000000068],[-107.78083800000002,72.141937000000041],[-107.787216,72.184708000000114],[-107.77806099999992,72.208038000000045],[-107.843887,72.354156000000046],[-107.87748699999992,72.424423000000104],[-107.88639799999993,72.519713999999965],[-107.87693799999994,72.524428999999998],[-107.87165799999997,72.529709000000082],[-107.87666299999995,72.567215000000033],[-107.88054699999998,72.577484000000084],[-107.88555899999989,72.586655000000007],[-107.91555799999998,72.597214000000065],[-107.92887899999994,72.60054000000008],[-107.99082900000002,72.612487999999985],[-108.00418099999996,72.615814],[-108.01194800000002,72.619980000000112],[-108.025284,72.666091999999992],[-108.02639799999997,72.676926000000037],[-108.02667199999996,72.719986000000006],[-108.05110200000001,72.781372000000147],[-108.05803699999996,72.791092000000049],[-108.11193799999995,72.890823000000125],[-108.15194699999989,72.971100000000092],[-108.16528299999993,73.010817999999972],[-108.26363400000002,73.091934000000094],[-108.29361,73.120254999999986],[-108.29998799999998,73.135544000000095],[-108.295547,73.147491000000059],[-108.291946,73.153595000000053],[-108.28527799999995,73.159987999999998],[-108.26862299999999,73.171371000000022],[-108.23029299999996,73.187484999999981],[-108.18110699999994,73.201660000000061],[-108.16639700000002,73.203873000000044],[-108.13390400000003,73.206940000000145],[-108.11582900000002,73.207489000000066],[-108.07389799999993,73.205261000000121],[-108.02390300000002,73.201096000000121],[-107.93443300000001,73.187484999999981],[-107.91471899999993,73.184981999999991],[-107.89388999999994,73.183868000000018],[-107.87416099999996,73.183594000000085],[-107.86416599999995,73.188583000000051],[-107.87222300000002,73.192748999999935],[-107.90471600000001,73.204163000000051],[-107.94611399999991,73.214157000000057],[-108.01027699999997,73.226089000000002],[-108.05166599999995,73.236098999999911],[-108.08444199999997,73.247482000000105],[-108.11638599999992,73.264435000000049],[-108.15361000000001,73.302475000000129],[-108.08444199999997,73.349990999999989],[-108.07140399999992,73.353317000000061],[-108.05332899999996,73.353867000000093],[-107.99109599999991,73.351379000000122],[-107.94722000000002,73.348328000000095],[-107.77139299999999,73.323883000000023],[-107.675003,73.323318000000029],[-107.63110399999999,73.319991999999957],[-107.614441,73.31721500000009],[-107.40334300000001,73.270537999999988],[-107.33583099999987,73.248031999999967],[-107.24999999999994,73.217484000000013],[-107.21028099999995,73.201660000000061],[-107.18888900000002,73.194138000000123],[-107.172234,73.191086000000041],[-107.10582699999998,73.17942800000003],[-107.06973299999999,73.173874000000012],[-107.05027799999999,73.173598999999967],[-107.03694200000001,73.176651000000106],[-107.025284,73.180542000000003],[-107.01666299999999,73.186095999999964],[-107.01083399999999,73.191360000000145],[-107.02027899999996,73.200821000000133],[-107.05249000000003,73.212493999999936],[-107.09028599999994,73.223037999999974],[-107.11081699999994,73.231369000000086],[-107.11860699999994,73.23553499999997],[-107.12361099999998,73.240265000000022],[-107.11945300000002,73.246368000000132],[-107.03028899999998,73.29553199999998],[-107.01862299999999,73.299423000000047],[-106.88249199999996,73.312195000000031],[-106.86138899999997,73.310806000000014],[-106.76139799999999,73.293045000000063],[-106.75083899999993,73.289153999999996],[-106.74610899999999,73.284423999999944],[-106.74109599999991,73.268875000000037],[-106.72721899999993,73.254715000000147],[-106.69666299999994,73.237488000000099],[-106.66471899999999,73.226089000000002],[-106.65110800000002,73.222487999999942],[-106.63474300000001,73.219711000000075],[-106.60305800000003,73.216660000000047],[-106.58222999999998,73.21527100000003],[-106.39862099999993,73.149155000000064],[-106.24027999999998,73.085815000000082],[-106.06388899999996,73.047759999999982],[-106.04750100000001,73.044708000000014],[-106.02834300000001,73.044434000000081],[-105.94888300000002,73.053313999999943],[-105.91027799999989,73.058868000000132],[-105.87638899999996,73.058318999999983],[-105.85555999999997,73.056931000000077],[-105.84221600000001,73.053588999999988],[-105.83194699999996,73.049713000000111],[-105.82472200000001,73.045258000000047],[-105.82195299999995,73.034987999999942],[-105.82333399999999,73.029433999999981],[-105.83249699999999,73.017211999999972],[-105.82972699999993,73.006942999999978],[-105.82224299999996,73.002487000000031],[-105.80471799999998,72.994431000000134],[-105.79444899999993,72.990265000000079],[-105.76083399999999,72.976929000000098],[-105.737503,72.969436999999971],[-105.69776899999999,72.959152000000074],[-105.67859599999997,72.95637499999998],[-105.62917299999998,72.939972000000125],[-105.56220999999999,72.913040000000024],[-105.445831,72.838318000000072],[-105.32611099999991,72.746368000000075],[-105.32195299999995,72.741653000000042],[-105.32055700000001,72.736649000000057],[-105.32528699999995,72.730545000000063],[-105.33693700000003,72.726653999999996],[-105.35610999999994,72.727203000000088],[-105.37777699999998,72.729431000000034],[-105.39778100000001,72.737198000000035],[-105.41194200000001,72.745819000000097],[-105.41915899999992,72.750275000000045],[-105.42748999999992,72.759720000000073],[-105.43472300000002,72.764160000000118],[-105.46472199999994,72.775818000000129],[-105.47778299999999,72.779434000000037],[-105.49833699999994,72.780822999999998],[-105.51000999999997,72.776932000000102],[-105.45722999999992,72.702773999999977],[-105.44722000000002,72.698868000000061],[-105.38249200000001,72.681366000000025],[-105.35665899999998,72.674423000000047],[-105.29472399999997,72.631927000000019],[-105.23110999999994,72.543320000000051],[-105.19583099999988,72.482483000000059],[-105.19972199999995,72.460541000000148],[-105.20140100000003,72.454711999999972],[-105.20612299999993,72.448868000000118],[-105.21777299999991,72.444977000000051],[-105.23194899999993,72.447205000000054],[-105.26167299999992,72.458878000000027],[-105.27722199999994,72.462204000000099],[-105.29305999999997,72.460815000000082],[-105.301941,72.455261000000121],[-105.29778299999987,72.450546000000088],[-105.24137899999999,72.399718999999948],[-105.23029299999996,72.390549000000078],[-105.21665999999993,72.381927000000076],[-105.18998699999997,72.369705000000124],[-105.16055299999988,72.35775799999999],[-105.13999899999999,72.344711000000132],[-105.04415899999998,72.248032000000023],[-105.03639199999986,72.238586000000055],[-105.03362299999998,72.234711000000061],[-105.02443700000003,72.219986000000119],[-104.99166899999989,72.203323000000012],[-104.95749699999999,72.181366000000139],[-104.95527599999997,72.171097000000145],[-104.95722999999992,72.165543000000127],[-104.96167000000003,72.159424000000115],[-104.96916199999998,72.153046000000131],[-104.97805799999992,72.147491000000059],[-104.98805199999993,72.142761000000007],[-104.99973299999999,72.13888500000013],[-105.02999899999998,72.124695000000031],[-105.03751399999999,72.118317000000104],[-105.03639199999986,72.11303700000002],[-105.01862299999993,72.066939999999931],[-104.92944299999988,72.034149000000014],[-104.87193299999996,71.989975000000072],[-104.82917800000001,71.937195000000031],[-104.82444800000002,71.927475000000129],[-104.82028200000002,71.906647000000078],[-104.82556199999999,71.889708999999982],[-104.82250999999997,71.874145999999939],[-104.8186189999999,71.86914100000007],[-104.78999299999998,71.84137000000004],[-104.78333299999986,71.836929000000112],[-104.771118,71.833603000000096],[-104.70056199999999,71.829987000000017],[-104.68554699999993,71.826935000000105],[-104.67331699999994,71.823317999999972],[-104.66000400000001,71.81442300000009],[-104.53472899999986,71.719711000000018],[-104.37638900000002,71.598038000000031],[-104.36638600000003,71.588882000000126],[-104.35527000000002,71.574432000000002],[-104.35916099999997,71.563309000000004],[-104.36361699999998,71.557204999999954],[-104.37581599999993,71.544707999999957],[-104.383331,71.538315000000011],[-104.40167200000002,71.514435000000049],[-104.40361000000001,71.508605999999986],[-104.40194700000001,71.498322000000144],[-104.34416199999993,71.410811999999964],[-104.33332799999994,71.396378000000141],[-104.35722399999986,71.357483000000002],[-104.37165799999997,71.360809000000017],[-104.38918299999995,71.363602000000014],[-104.40805099999994,71.364990000000091],[-104.43804899999998,71.362761999999975],[-104.45056199999988,71.359711000000118],[-104.46167000000003,71.355820000000051],[-104.47138999999993,71.351089000000115],[-104.48860199999996,71.339980999999966],[-104.49333200000001,71.334152000000131],[-104.49694799999997,71.322769000000108],[-104.49500299999988,71.312485000000095],[-104.49137899999988,71.307480000000055],[-104.46250900000001,71.281097000000045],[-104.44972200000001,71.272217000000012],[-104.43888900000002,71.257767000000115],[-104.43971299999998,71.246933000000013],[-104.44055200000003,71.236098999999967],[-104.44444299999992,71.224990999999989],[-104.44888300000002,71.218872000000147],[-104.470551,71.199706999999989],[-104.49610899999999,71.183044000000109],[-104.52555799999999,71.168869000000029],[-104.55610699999994,71.155548000000067],[-104.57805599999995,71.148041000000092],[-104.59056099999998,71.145263999999997],[-104.62361099999987,71.133605999999986],[-104.64862099999999,71.11914100000007],[-104.60472099999998,71.079711999999972],[-104.58583099999998,71.066666000000055],[-104.57028199999996,71.05831900000004],[-104.53666699999997,71.044144000000131],[-104.48916600000001,71.024703999999986],[-104.45667300000002,71.013610999999969],[-104.33778399999994,70.979706000000078],[-104.23805199999998,70.964996000000099],[-104.22389199999998,70.961928999999998],[-104.122772,70.914703000000145],[-104.11665299999999,70.910262999999929],[-104.09999099999999,70.891372999999987],[-104.07640099999992,70.863037000000077],[-104.05277999999993,70.834427000000062],[-104.04583699999995,70.824996999999996],[-104.04277000000002,70.804153000000042],[-104.02887699999991,70.784988000000055],[-104.01583900000003,70.770827999999938],[-104.00029000000001,70.757216999999969],[-103.99416400000001,70.75277699999998],[-103.98528299999998,70.748871000000065],[-103.97138999999987,70.745529000000147],[-103.95472699999999,70.742752000000053],[-103.94027699999987,70.741653000000099],[-103.92443800000001,70.741928000000087],[-103.806107,70.723037999999974],[-103.73111,70.691649999999925],[-103.64083899999997,70.646652000000017],[-103.63417099999992,70.637206999999989],[-103.62470999999994,70.628036000000009],[-103.59889199999992,70.615814000000057],[-103.55638099999999,70.600815000000011],[-103.52333099999987,70.59304800000001],[-103.506958,70.590271000000143],[-103.49027999999998,70.587494000000049],[-103.47305299999999,70.586928999999998],[-103.44193999999999,70.587204000000042],[-103.39835399999993,70.590546000000131],[-103.34277299999997,70.59664900000007],[-103.32721699999991,70.59664900000007],[-103.30915799999997,70.595260999999994],[-103.26500699999997,70.581665000000044],[-103.239441,70.569443000000035],[-103.20472699999993,70.548035000000141],[-103.14972699999998,70.513885000000016],[-103.13276699999994,70.505829000000119],[-103.12165800000002,70.501938000000052],[-103.095551,70.498031999999967],[-103.01194799999996,70.492202999999961],[-102.97693600000002,70.489975000000015],[-102.96056399999998,70.489151000000049],[-102.93055699999996,70.490540000000067],[-102.92027299999995,70.494980000000055],[-102.91443599999991,70.500000000000114],[-102.915009,70.505264000000068],[-102.91832699999998,70.510268999999937],[-102.92388900000003,70.514435000000049],[-102.93250299999988,70.518600000000049],[-102.95722999999998,70.525543000000027],[-102.97528099999994,70.527205999999978],[-103.03028899999998,70.534988000000112],[-103.05526700000001,70.541931000000091],[-103.09973099999991,70.55664100000007],[-103.10833700000001,70.56053199999991],[-103.12609899999995,70.57388300000008],[-103.13999899999993,70.609421000000111],[-103.15556300000003,70.654984000000013],[-103.156113,70.659987999999998],[-103.15387699999997,70.665817000000004],[-103.14916999999991,70.67164600000001],[-103.13667299999992,70.674423000000104],[-103.12110899999999,70.674698000000092],[-103.10417200000001,70.673873999999955],[-103.08583099999998,70.672484999999995],[-103.06667299999998,70.669983000000059],[-103.0250089999999,70.660262999999986],[-103.00250199999999,70.652771000000087],[-102.85665899999992,70.597763000000043],[-102.84834299999994,70.593871999999976],[-102.84528399999999,70.588882000000126],[-102.83833300000003,70.574158000000068],[-102.83583099999998,70.548035000000141],[-102.74445300000002,70.494705000000067],[-102.61501299999992,70.460541000000035],[-102.60138699999999,70.457214000000079],[-102.52027899999996,70.438309000000118],[-102.45749699999988,70.426376000000118],[-102.40862299999998,70.417479999999955],[-102.33332799999999,70.397766000000047],[-102.281387,70.384155000000078],[-102.11749299999997,70.339432000000045],[-101.99610899999988,70.287201000000096],[-101.97972099999998,70.279160000000047],[-101.92555199999998,70.260544000000039],[-101.89334099999996,70.254439999999988],[-101.87666300000001,70.25360100000006],[-101.86138899999997,70.253876000000048],[-101.84916699999985,70.256653000000142],[-101.83805799999993,70.260268999999994],[-101.828056,70.264709000000039],[-101.82195299999995,70.269714000000079],[-101.81722999999988,70.281097000000102],[-101.81749699999995,70.286102000000142],[-101.80972300000002,70.297759999999982],[-101.79972800000002,70.302199999999971],[-101.71472199999999,70.308868000000132],[-101.69803599999995,70.308029000000033],[-101.68195300000002,70.304977000000065],[-101.59944200000001,70.275818000000129],[-101.58860800000002,70.271927000000062],[-101.58029199999993,70.267761000000121],[-101.58029199999993,70.262771999999984],[-101.58556399999998,70.256653000000142],[-101.60555999999997,70.247757000000036],[-101.63417099999998,70.233047000000056],[-101.64306599999998,70.227768000000083],[-101.65083300000003,70.221374999999966],[-101.65055799999993,70.210815000000025],[-101.64222699999993,70.196365000000071],[-101.62249799999995,70.162491000000045],[-101.61416599999995,70.153046000000018],[-101.55999800000001,70.113602000000071],[-101.55194099999994,70.109420999999998],[-101.53971899999999,70.106934000000138],[-101.52667200000002,70.108597000000032],[-101.39723200000003,70.139435000000049],[-101.39222699999999,70.150543000000027],[-101.37581599999999,70.177765000000136],[-101.358047,70.176086000000112],[-101.28666699999991,70.152480999999966],[-101.265289,70.14498900000001],[-101.25723299999999,70.140823000000125],[-101.25195300000001,70.13638300000008],[-101.23889200000002,70.133040999999992],[-101.22222899999991,70.131927000000019],[-101.14499699999999,70.15525800000006],[-101.13500999999997,70.159713999999951],[-101.12721299999998,70.166092000000106],[-101.12193300000001,70.171921000000111],[-101.11665299999993,70.183044000000109],[-101.12193300000001,70.192749000000049],[-101.11193800000001,70.19720500000011],[-101.09555099999994,70.196365000000071],[-101.03971899999999,70.183044000000109],[-100.99973299999999,70.172760000000096],[-100.98388699999992,70.164703000000145],[-100.97332799999998,70.155548000000067],[-100.97332799999998,70.145264000000054],[-100.97609699999992,70.134430000000009],[-100.96028099999995,70.053040000000067],[-100.92194399999988,69.965271000000143],[-100.88694800000002,69.884155000000021],[-100.870003,69.814423000000147],[-100.870003,69.788315000000011],[-100.87805200000003,69.771652000000131],[-100.89998600000001,69.753875999999991],[-100.92555199999998,69.721100000000035],[-100.92027300000001,69.711380000000133],[-100.92027300000001,69.701096000000121],[-100.92832899999996,69.684143000000006],[-100.93859900000001,69.672484999999995],[-100.94748699999997,69.666930999999977],[-100.95722999999992,69.662490999999989],[-100.96916199999998,69.659714000000065],[-101.06443799999994,69.648604999999975],[-101.28362300000003,69.663879000000065],[-101.31777999999991,69.667480000000126],[-101.32972699999988,69.669983000000116],[-101.34028599999999,69.678864000000033],[-101.43831599999993,69.769714000000022],[-101.45472699999993,69.798874000000069],[-101.46806299999997,69.823044000000095],[-101.47332799999998,69.832763999999997],[-101.468613,69.838882000000069],[-101.458618,69.843322999999998],[-101.43998699999997,69.853317000000004],[-101.43472300000002,69.859146000000067],[-101.41610700000001,69.886932000000115],[-101.41860999999989,69.891936999999984],[-101.42944299999994,69.906097000000045],[-101.44526699999994,69.909149000000014],[-101.45638999999994,69.905548000000124],[-101.46888699999994,69.893051000000128],[-101.47917199999995,69.881362999999908],[-101.51972999999992,69.828323000000069],[-101.53999299999998,69.79942299999999],[-101.54750100000001,69.78776600000009],[-101.55972299999996,69.764998999999989],[-101.56220999999999,69.754165999999998],[-101.56194299999999,69.74914600000011],[-101.564438,69.743317000000104],[-101.569458,69.737488000000099],[-101.60777300000001,69.705825999999945],[-101.65249599999999,69.6827550000001],[-101.69193999999999,69.680267000000129],[-101.69722000000002,69.684708000000057],[-101.75805699999995,69.717758000000117],[-101.76611300000002,69.721924000000001],[-101.77916700000003,69.725266000000147],[-101.85637700000001,69.743042000000116],[-101.87000299999994,69.74414100000007],[-101.88722200000001,69.733321999999987],[-101.89916999999997,69.73054500000012],[-101.91416900000002,69.73054500000012],[-101.92999299999997,69.733597000000032],[-101.94055200000003,69.737198000000092],[-101.94860799999998,69.741363999999976],[-101.962784,69.753052000000025],[-102.02306399999992,69.817764000000011],[-102.06555199999997,69.850540000000137],[-102.20667300000002,69.91304000000008],[-102.21749899999998,69.916930999999977],[-102.23029300000002,69.917205999999965],[-102.24082900000002,69.913315000000068],[-102.37581599999999,69.809418000000107],[-102.51027699999992,69.758040999999992],[-102.57640100000003,69.737488000000099],[-102.59249899999998,69.738312000000064],[-102.60582699999998,69.741653000000099],[-102.61638600000003,69.745255000000043],[-102.64890300000002,69.761658000000125],[-102.65972899999997,69.765273999999977],[-102.673317,69.76638800000012],[-102.68055700000002,69.759995000000004],[-102.67443800000001,69.750275000000101],[-102.65805099999994,69.736923000000047],[-102.60028099999994,69.69802900000002],[-102.59221600000001,69.693862999999908],[-102.57640100000003,69.691086000000041],[-102.55943299999996,69.68942300000009],[-102.53138699999994,69.691360000000145],[-102.52084400000001,69.695251000000042],[-102.50917099999998,69.69802900000002],[-102.49194299999994,69.696365000000014],[-102.48361199999988,69.692200000000014],[-102.47805800000003,69.682480000000112],[-102.49777199999988,69.595260999999994],[-102.50778199999996,69.564147999999989],[-102.51500699999985,69.559982000000105],[-102.525284,69.556366000000025],[-102.60305800000003,69.538315000000068],[-102.81304899999986,69.529709000000139],[-102.82861300000002,69.53276100000005],[-102.94387799999993,69.559417999999994],[-103.08528099999995,69.597214000000122],[-103.18666099999996,69.629425000000026],[-103.20556599999998,69.636932000000002],[-103.22471599999994,69.644714000000135],[-103.23277300000001,69.648604999999975],[-103.260559,69.665543000000071],[-103.27166699999998,69.674423000000104],[-103.32195300000001,69.692200000000014],[-103.41639699999996,69.706375000000094],[-103.43055699999996,69.705261000000121],[-103.47693600000002,69.693588000000091],[-103.48665599999998,69.684708000000057],[-103.50723299999999,69.617751999999996],[-103.5041809999999,69.613036999999963],[-103.33528100000001,69.574997000000053],[-103.08917200000002,69.521927000000005],[-103.07528699999995,69.523041000000148],[-103.05695300000002,69.520537999999988],[-103.04638699999998,69.516936999999984],[-103.03806299999997,69.512771999999984],[-103.03278399999999,69.508331000000055],[-103.02333099999998,69.493866000000082],[-103.01390099999998,69.474152000000004],[-102.99137899999999,69.424698000000035],[-102.99082899999996,69.419434000000024],[-103.00778199999996,69.326935000000049],[-103.01917300000002,69.282761000000107],[-103.02306399999998,69.271652000000017],[-103.04444899999999,69.252487000000087],[-103.07195299999995,69.238586000000112],[-103.11332700000003,69.223602000000028],[-103.12444299999999,69.220825000000104],[-103.16000399999996,69.213042999999971],[-103.17250099999995,69.211380000000077],[-103.19415299999997,69.204712000000086],[-103.204453,69.200821000000019],[-103.21140299999996,69.194427000000132],[-103.21444700000001,69.189697000000137],[-103.21777299999997,69.137207000000103],[-103.208618,69.122756999999979],[-103.20305599999989,69.11831699999999],[-103.19499199999996,69.114426000000094],[-103.18222000000003,69.111098999999967],[-103.141953,69.15776100000005],[-103.13390400000003,69.163315000000068],[-103.12444299999999,69.167755000000056],[-103.10500300000001,69.176085999999998],[-103.07417299999997,69.187485000000038],[-103.03721599999994,69.205826000000059],[-103.021118,69.216934000000037],[-103.00611900000001,69.228592000000106],[-102.99889399999989,69.234985000000052],[-102.98082699999992,69.259155000000078],[-102.96916199999993,69.271378000000084],[-102.95056199999999,69.290268000000083],[-102.94360399999999,69.29664600000001],[-102.87249799999995,69.360535000000141],[-102.84084299999995,69.383330999999998],[-102.829453,69.386108000000036],[-102.817497,69.383881000000031],[-102.80666400000001,69.379974000000061],[-102.79360999999994,69.376923000000033],[-102.76083399999993,69.374420000000043],[-102.74694799999997,69.375534000000016],[-102.72277799999995,69.380264000000068],[-102.51083399999999,69.439697000000081],[-102.50862100000001,69.445526000000086],[-102.48972300000003,69.469436999999971],[-102.47193900000002,69.479430999999977],[-102.46028100000001,69.482208000000071],[-102.31304899999998,69.49832200000003],[-102.29804999999999,69.498596000000134],[-102.09306300000003,69.487762000000089],[-102.05750299999988,69.483597000000088],[-102.04750100000001,69.479980000000126],[-101.95527599999997,69.43553200000008],[-101.94748699999997,69.431365999999969],[-101.93694299999999,69.422485000000052],[-101.93138099999999,69.412766000000033],[-101.93110699999994,69.407486000000006],[-101.93611099999998,69.401657],[-102.03527799999995,69.287200999999982],[-102.14890300000002,69.270264000000111],[-102.15943899999996,69.27388000000002],[-102.18776700000001,69.280272999999966],[-102.20140100000003,69.279160000000047],[-102.21278399999994,69.276382000000069],[-102.22972099999993,69.265549000000078],[-102.23194899999999,69.259720000000073],[-102.21721600000001,69.225266000000033],[-102.11972000000003,69.183043999999938],[-102.10665899999992,69.179703000000131],[-102.09361299999989,69.178588999999931],[-102.08112299999993,69.180267000000072],[-102.07167099999992,69.184982000000105],[-102.06416300000001,69.191360000000032],[-102.05943299999996,69.19720499999994],[-102.05721999999992,69.202773999999977],[-102.05750299999988,69.208038000000101],[-102.05444299999999,69.214431999999988],[-102.04499800000002,69.226089000000115],[-102.03666699999997,69.231658999999979],[-102.01666299999999,69.239975000000072],[-102.00611899999996,69.243590999999981],[-101.96305799999999,69.257216999999912],[-101.95140099999998,69.259995000000117],[-101.9385989999999,69.261931999999945],[-101.92194399999994,69.260269000000051],[-101.78500399999996,69.196365000000071],[-101.77055399999995,69.189147999999989],[-101.75472999999994,69.175812000000064],[-101.75195300000001,69.165543000000014],[-101.75167799999991,69.160537999999974],[-101.75389099999995,69.149719000000061],[-101.80638099999999,69.003876000000105],[-101.80860899999993,68.99803199999991],[-101.81806899999992,68.993591000000038],[-101.85138699999993,68.984420999999941],[-101.89916999999997,68.97526600000009],[-101.94888300000002,68.96775800000006],[-101.962784,68.96665999999999],[-101.97693600000002,68.96665999999999],[-101.993607,68.968323000000112],[-102.00140399999992,68.972488000000112],[-102.02223200000003,68.990265000000136],[-102.03250100000002,68.99414100000007],[-102.04778299999998,68.996933000000126],[-102.06220999999994,68.996933000000126],[-102.09665699999994,68.988585999999941],[-102.11305199999998,68.977767999999969],[-102.12609900000001,68.966385000000002],[-102.13082900000001,68.960265999999933],[-102.14502699999997,68.94766199999998],[-102.15638699999994,68.944702000000063],[-102.16972399999997,68.946091000000024],[-102.323624,68.937195000000088],[-102.38612399999994,68.925537000000077],[-102.38583399999993,68.920258000000103],[-102.39028899999994,68.914429000000098],[-102.39835399999987,68.90887500000008],[-102.48554999999999,68.871368000000018],[-102.53582799999998,68.864425999999924],[-102.58972199999999,68.860535000000084],[-102.60417200000001,68.860260000000039],[-102.61972000000003,68.861099000000024],[-102.63500999999991,68.863876000000118],[-102.64527900000002,68.867751999999996],[-102.76306199999999,68.877762000000075],[-102.81889299999995,68.834152000000074],[-102.89472999999992,68.799988000000042],[-102.99054699999999,68.794434000000081],[-103.00583599999999,68.795258000000047],[-103.047234,68.809707999999944],[-103.146118,68.840546000000131],[-103.16416899999996,68.84304800000001],[-103.19499199999996,68.844437000000028],[-103.208618,68.843596999999988],[-103.32084699999996,68.829712000000086],[-103.34111000000001,68.822220000000129],[-103.36000099999995,68.813872999999944],[-103.36805700000002,68.808318999999983],[-103.40306099999992,68.777205999999978],[-103.50917099999987,68.801375999999948],[-103.83583099999993,68.83638000000002],[-104.09472699999992,68.856644000000017],[-104.11028299999998,68.859421000000054],[-104.13834399999996,68.865540000000124],[-104.287781,68.901932000000102],[-104.40249599999999,68.931091000000094],[-104.43083199999995,68.9369200000001],[-104.445267,68.938873000000001],[-104.45749699999999,68.936645999999996],[-104.46167000000003,68.930542000000116],[-104.46305799999988,68.924987999999928],[-104.46250900000001,68.919708000000071],[-104.47444199999995,68.901657000000057],[-104.487503,68.888885000000073],[-104.50279199999989,68.877762000000075],[-104.51167299999992,68.873032000000023],[-104.52139299999999,68.869140999999956],[-104.54360999999989,68.863311999999951],[-104.583618,68.859711000000118],[-104.84999099999993,68.870254999999986],[-105.12917299999998,68.896378000000084],[-105.14472999999992,68.899155000000007],[-105.16610699999995,68.906097000000102],[-105.19332900000001,68.917480000000126],[-105.24889399999989,68.945526000000029],[-105.18305999999995,68.988312000000008],[-105.173317,68.991928000000087],[-105.14666699999998,68.992477000000008],[-105.128601,68.989975000000129],[-105.06471299999998,68.986923000000047],[-105.03916900000002,68.990265000000136],[-104.93639400000001,69.03054800000001],[-104.92887899999999,69.036102000000028],[-104.91610700000001,69.048874000000012],[-104.91166699999991,69.065811000000053],[-104.915009,69.070541000000048],[-104.92304999999999,69.074706999999989],[-104.93388399999998,69.078323000000012],[-105.06500199999999,69.104155999999989],[-105.08332799999999,69.106369000000086],[-105.09665699999999,69.105255000000113],[-105.122772,69.091095000000053],[-105.16027799999995,69.071930000000066],[-105.47361799999999,69.106934000000138],[-105.48055999999997,69.116652999999928],[-105.49249299999991,69.125259000000028],[-105.50695799999994,69.133606000000043],[-105.51528899999994,69.13749700000011],[-105.55387899999999,69.152480999999966],[-105.58056599999998,69.156372000000033],[-105.61694299999994,69.160812000000078],[-105.76806599999998,69.171371000000136],[-105.83029199999999,69.172211000000004],[-105.87416100000002,69.171097000000032],[-105.90222199999999,69.169144000000074],[-105.91443600000002,69.167205999999965],[-105.92555199999998,69.164153999999996],[-106.03888699999993,69.153869999999984],[-106.17777999999998,69.144150000000081],[-106.19360399999999,69.144714000000022],[-106.256958,69.154984000000127],[-106.28888699999999,69.160262999999929],[-106.39611799999994,69.17804000000001],[-106.40611299999995,69.180542000000059],[-106.41471899999999,69.184417999999937],[-106.41471899999999,69.195251000000098],[-106.41027799999995,69.217758000000003],[-106.40666199999998,69.223877000000073],[-106.3944469999999,69.23692299999999],[-106.38612399999994,69.241653000000042],[-106.37638899999996,69.24552900000009],[-106.30777,69.262206999999989],[-106.28832999999992,69.269989000000123],[-106.27362099999993,69.281372000000147],[-106.26777600000003,69.292206000000022],[-106.26889,69.297211000000061],[-106.31639100000001,69.386658000000068],[-106.49527,69.474426000000108],[-106.52139299999993,69.486098999999967],[-106.54138199999989,69.49331699999999],[-106.55499299999985,69.496368000000018],[-106.57112099999989,69.498870999999951],[-106.60221899999999,69.498870999999951],[-106.61444099999994,69.496643000000006],[-106.62554899999986,69.493591000000094],[-106.73306299999996,69.441650000000038],[-106.74027999999998,69.435806000000014],[-106.74388099999993,69.429703000000075],[-106.74553700000001,69.407760999999994],[-106.86277799999999,69.36914100000007],[-106.93083200000001,69.361649000000114],[-106.95500199999992,69.357208000000014],[-106.96611000000001,69.354156000000103],[-106.98554999999999,69.346100000000035],[-106.99249299999997,69.340546000000018],[-106.99722300000002,69.33526599999999],[-106.99833699999999,69.329711999999972],[-106.99694799999997,69.324432000000058],[-106.96528599999994,69.303040000000067],[-106.95749699999993,69.293319999999994],[-106.925003,69.23942599999998],[-106.92223399999995,69.228867000000093],[-106.929169,69.216660000000104],[-106.93611099999998,69.211105000000032],[-106.94444299999998,69.206375000000037],[-106.96362299999993,69.198318000000029],[-107.03999299999998,69.181091000000038],[-107.12832600000002,69.154434000000094],[-107.13806199999999,69.150543000000027],[-107.16221599999994,69.134430000000009],[-107.19167299999998,69.112487999999928],[-107.22666900000002,69.084152000000017],[-107.24889400000001,69.068054000000018],[-107.264183,69.057480000000112],[-107.27944899999994,69.046936000000073],[-107.304169,69.032485999999949],[-107.31360599999994,69.028595000000109],[-107.34221599999995,69.01887499999998],[-107.37444299999993,69.009430000000123],[-107.43167099999994,68.996368000000075],[-107.50334199999992,68.982758000000047],[-107.55387899999994,68.975540000000024],[-107.64611799999989,68.965546000000018],[-107.67388900000003,68.963608000000079],[-107.74610899999999,68.960815000000082],[-107.93749999999994,68.934981999999934],[-107.95584099999996,68.931046000000094],[-107.97693600000002,68.930542000000116],[-108.17555199999998,68.931091000000094],[-108.20944199999997,68.93331900000004],[-108.26444999999995,68.939148000000046],[-108.29833999999988,68.941360000000088],[-108.42804699999994,68.945816000000036],[-108.49221799999992,68.94747899999993],[-108.521118,68.946365000000128],[-108.53443900000002,68.944702000000063],[-108.54611199999994,68.942474000000061],[-108.56331599999993,68.933594000000028],[-108.56388900000002,68.927765000000022],[-108.55082699999997,68.919434000000138],[-108.54194599999994,68.915543000000071],[-108.53555299999999,68.911376999999959],[-108.531387,68.906647000000135],[-108.52971599999995,68.901382000000069],[-108.53028899999993,68.895828000000051],[-108.53555299999999,68.889160000000061],[-108.55139200000002,68.879425000000026],[-108.59722899999997,68.859146000000067],[-108.67443799999995,68.829437000000041],[-108.926941,68.744431000000134],[-108.93749999999994,68.741088999999988],[-108.97250400000001,68.733870999999965],[-109.10472099999998,68.710541000000035],[-109.19138299999992,68.697205000000054],[-109.23416099999997,68.694977000000108],[-109.26390099999998,68.694427000000076],[-109.31194299999999,68.695816000000093],[-109.345551,68.697754000000032],[-109.37416100000002,68.696365000000014],[-109.39998600000001,68.693313999999987],[-109.43472300000002,68.686095999999964],[-109.49137899999994,68.673308999999961],[-109.52306399999992,68.664993000000095],[-109.55359599999991,68.655258000000003],[-109.59722899999997,68.64387499999998],[-109.64362299999999,68.634430000000123],[-109.65638699999994,68.632751000000098],[-109.68331899999998,68.630539000000056],[-109.756958,68.628586000000098],[-109.97028399999999,68.627197000000081],[-110.12416099999996,68.627197000000081],[-110.16055299999994,68.630539000000056],[-110.19167299999998,68.630814000000044],[-110.22000099999997,68.629150000000038],[-110.24416400000001,68.625259000000142],[-110.26306199999999,68.617752000000053],[-110.27194199999997,68.613602000000014],[-110.27916700000003,68.608597000000145],[-110.295547,68.599426000000051],[-110.32917800000001,68.582214000000022],[-110.33917200000002,68.578872999999987],[-110.35082999999997,68.576385000000016],[-110.36361699999998,68.574707000000046],[-110.37777699999998,68.574158000000125],[-110.39138800000001,68.576660000000004],[-110.39806399999986,68.580826000000116],[-110.42027299999995,68.604156000000046],[-110.42722300000003,68.608321999999987],[-110.44082600000002,68.611099000000081],[-110.45889299999999,68.612761999999975],[-110.56111099999998,68.616653000000042],[-110.576683,68.616653000000042],[-110.58944699999989,68.614990000000148],[-110.60944399999994,68.608321999999987],[-110.61694299999994,68.603592000000106],[-110.63417099999987,68.59526100000005],[-110.65695199999999,68.590271000000143],[-110.68138099999999,68.586105000000089],[-110.89666699999998,68.55720500000001],[-110.92223399999995,68.553863999999976],[-110.950287,68.551926000000037],[-111.01363400000002,68.552765000000022],[-111.03195199999999,68.554428000000144],[-111.03859699999992,68.558594000000028],[-111.03500400000001,68.563873000000001],[-110.98332199999993,68.577773999999977],[-110.97193900000002,68.580276000000083],[-110.95777900000002,68.581100000000049],[-110.92555199999993,68.580276000000083],[-110.89723200000003,68.581940000000088],[-110.87165800000002,68.585266000000104],[-110.86028299999987,68.587769000000094],[-110.850281,68.591095000000109],[-110.84306299999997,68.596099999999979],[-110.84306299999997,68.601653999999996],[-110.84973099999996,68.605820000000051],[-110.86361699999992,68.608597000000145],[-111.01750199999998,68.598327999999981],[-111.03028899999998,68.596649000000127],[-111.05888399999998,68.585815000000082],[-111.068893,68.58248900000001],[-111.08029199999999,68.579987000000131],[-111.09306300000003,68.578323000000125],[-111.13527699999997,68.575821000000076],[-111.16639700000002,68.575821000000076],[-111.23249800000002,68.578049000000021],[-111.26750199999998,68.580551000000071],[-111.28362299999998,68.582764000000054],[-111.32000700000003,68.585815000000082],[-111.33693699999998,68.586655000000121],[-111.37917299999998,68.584152000000131],[-111.39195299999994,68.58248900000001],[-111.41166699999997,68.575546000000031],[-111.41665599999999,68.571106000000043],[-111.40527299999997,68.568054000000075],[-111.389183,68.56581099999994],[-111.29804999999999,68.557755000000043],[-111.25028999999989,68.55720500000001],[-111.23194899999999,68.555542000000116],[-111.21833800000002,68.552765000000022],[-111.20916699999998,68.549148999999943],[-111.204453,68.544708000000071],[-111.204453,68.538879000000009],[-111.21112099999999,68.526093000000117],[-111.21556099999992,68.519440000000145],[-111.22556299999997,68.516098],[-111.23805199999993,68.514435000000105],[-111.25361599999991,68.514435000000105],[-111.35861199999999,68.521652000000017],[-111.37470999999999,68.523604999999975],[-111.38834400000002,68.526382000000069],[-111.46806300000003,68.536926000000108],[-111.52278100000001,68.541656000000103],[-111.60056299999991,68.543594000000041],[-111.85109699999998,68.534149000000014],[-112.060272,68.523041000000035],[-112.21000700000002,68.513610999999969],[-112.23665599999987,68.510817999999972],[-112.35916099999997,68.501938000000109],[-112.40110799999997,68.499145999999996],[-112.50917099999992,68.498032000000023],[-112.63527699999992,68.483047000000056],[-112.63694800000002,68.476928999999927],[-112.64527900000002,68.472763000000043],[-112.67027299999995,68.469146999999964],[-112.72749299999992,68.465820000000065],[-112.77390299999996,68.465546000000131],[-112.80750299999994,68.466660000000104],[-113.05166600000001,68.464157000000114],[-113.091949,68.460266000000047],[-113.220551,68.45277400000009],[-113.25140399999992,68.452209000000096],[-113.26944699999996,68.453873000000101],[-113.297234,68.458602999999925],[-113.30444299999999,68.462769000000037],[-113.30943300000001,68.467209000000025],[-113.310272,68.473038000000031],[-113.30638099999993,68.479706000000022],[-113.29972800000002,68.484711000000061],[-113.29138199999994,68.489151000000106],[-113.26944699999996,68.494430999999963],[-113.256958,68.496094000000085],[-113.19360399999999,68.496368000000018],[-113.05166600000001,68.487487999999985],[-113.03778099999994,68.488312000000121],[-113.03388999999999,68.494980000000112],[-113.04360999999994,68.504166000000055],[-113.07250999999991,68.520538000000045],[-113.11805700000002,68.544434000000138],[-113.14138800000001,68.550537000000077],[-113.19721999999996,68.560256999999979],[-113.21333300000003,68.562195000000088],[-113.26888999999994,68.572220000000016],[-113.33416699999998,68.585541000000148],[-113.35777299999995,68.591369999999984],[-113.36721799999992,68.594986000000006],[-113.38166799999988,68.603043000000014],[-113.44304699999998,68.640548999999965],[-113.44833399999999,68.645263999999997],[-113.45111099999997,68.650269000000037],[-113.45249899999999,68.661652000000061],[-113.45084400000002,68.667755],[-113.52443700000003,68.724990999999932],[-113.66665599999999,68.802199999999914],[-113.676941,68.811096000000077],[-113.67887899999994,68.894714000000079],[-113.67722299999997,68.900818000000129],[-113.671944,68.906647000000135],[-113.62389400000001,68.93331900000004],[-113.60694899999993,68.942474000000061],[-113.58444199999997,68.948028999999963],[-113.57472199999995,68.951385000000016],[-113.569458,68.957214000000022],[-113.54583700000001,69.043045000000006],[-113.54499799999996,69.048035000000084],[-113.55471799999987,69.051376000000118],[-113.61501299999998,69.066376000000048],[-113.63221699999997,69.073883000000023],[-113.64723199999992,69.081940000000145],[-113.65778399999999,69.091095000000053],[-113.69611399999991,69.154709000000139],[-113.69220699999994,69.189423000000033],[-113.68083200000001,69.191925000000083],[-113.66583300000002,69.191086000000098],[-113.65583800000002,69.187485000000038],[-113.62193300000001,69.17804000000001],[-113.53888699999999,69.168594000000041],[-113.51972999999998,69.167205999999965],[-113.50862099999995,69.169708000000014],[-113.51363399999997,69.174423000000047],[-113.52111799999994,69.178588999999931],[-113.55359599999991,69.187195000000031],[-113.58000199999992,69.192474000000004],[-113.62332200000003,69.199707000000046],[-113.90888999999999,69.24192800000003],[-114.27555799999999,69.281936999999971],[-114.31139400000001,69.284987999999998],[-114.32888800000001,69.285538000000031],[-114.39277600000003,69.284149000000014],[-114.42138699999998,69.281936999999971],[-114.4472199999999,69.278046000000074],[-114.49249299999991,69.267212000000029],[-114.51834100000002,69.263321000000133],[-114.66972399999997,69.255829000000006],[-114.764183,69.252212999999983],[-115.08889799999992,69.244705000000124],[-115.25361599999991,69.245254999999986],[-115.40083299999998,69.256942999999978],[-115.64472999999998,69.273315000000139],[-115.79527299999995,69.282761000000107],[-115.92138699999992,69.290268000000083],[-115.95584099999996,69.292206000000022],[-115.96833799999996,69.294983000000116],[-115.9786069999999,69.298598999999967],[-115.98665599999998,69.302475000000015],[-116.00029000000001,69.310806000000127],[-116.00611900000001,69.315262000000018],[-116.016953,69.322220000000016],[-116.02694700000001,69.325546000000088],[-116.05638099999999,69.32998699999996],[-116.17527799999993,69.34165999999999],[-116.21945199999999,69.348327999999981],[-116.52583300000003,69.407486000000006],[-116.53859699999998,69.4102630000001],[-116.54888900000003,69.413605000000018],[-116.56527699999992,69.421371000000079],[-116.62970699999994,69.458878000000141],[-116.63137799999993,69.464706000000035],[-116.62666299999989,69.470535000000041],[-116.61888099999993,69.474990999999989],[-116.60777300000001,69.478043000000071],[-116.569458,69.48414600000001],[-116.56139400000001,69.488586000000055],[-116.55860899999993,69.4952550000001],[-116.57556199999993,69.555817000000104],[-116.58138999999989,69.560531999999967],[-116.591949,69.563873000000001],[-116.60472099999993,69.566665999999998],[-116.63667299999997,69.570267000000058],[-116.73388699999998,69.575546000000031],[-116.74999999999994,69.574997000000053],[-116.75945299999995,69.571381000000031],[-116.76611299999996,69.565177999999946],[-116.78138699999988,69.55720500000001],[-116.89750700000002,69.587494000000049],[-116.88054699999986,69.608871000000079],[-116.85193600000002,69.619705000000124],[-116.84612299999998,69.643051000000014],[-116.84750399999996,69.648604999999975],[-116.858047,69.651932000000102],[-116.96193700000003,69.679427999999973],[-116.987503,69.684981999999991],[-117.01777600000003,69.68942300000009],[-117.03500399999996,69.690810999999997],[-117.05027799999993,69.693038999999942],[-117.07584400000002,69.69859300000013],[-117.11805699999996,69.711654999999951],[-117.23889200000002,69.753052000000025],[-117.24749799999995,69.756943000000092],[-117.26917300000002,69.78166200000004],[-117.27278100000001,69.792755000000056],[-117.30777,69.844436999999971],[-117.36721799999992,69.919983000000059],[-117.42250099999995,69.972488000000055],[-117.43499799999995,69.981369000000029],[-117.43666099999996,69.98692299999999],[-117.43611099999993,69.993042000000059],[-117.41528299999993,70.009995000000117],[-117.38527699999997,70.028595000000053],[-117.35637700000001,70.039703000000031],[-117.32584400000002,70.049987999999985],[-117.28362300000003,70.063309000000118],[-117.25140399999992,70.072768999999994],[-117.23999000000003,70.075821000000133],[-117.19444299999998,70.087493999999936],[-117.16999800000002,70.092484000000013],[-117.12082700000002,70.102478000000019],[-117.08167999999995,70.108871000000136],[-117.01083399999993,70.116928000000144],[-116.87721299999998,70.129150000000095],[-116.58306899999997,70.156937000000084],[-116.236107,70.191360000000032],[-116.16639700000002,70.199997000000053],[-116.09999099999999,70.210266000000047],[-116.07167099999998,70.213608000000022],[-115.90834000000001,70.228867000000093],[-115.80194099999994,70.236649000000057],[-115.69360399999994,70.243866000000139],[-115.64695699999993,70.246643000000063],[-115.49665799999997,70.250549000000092],[-115.44833399999993,70.252487000000031],[-115.31471299999998,70.264160000000061],[-115.30139200000002,70.266388000000063],[-115.229446,70.273879999999963],[-115.16750299999995,70.27777100000003],[-115.08389299999999,70.279708999999968],[-115.03028899999998,70.279984000000013],[-114.86721799999998,70.28387500000008],[-114.80194099999989,70.286102000000142],[-114.74137899999999,70.290817000000004],[-114.71305799999988,70.293869000000086],[-114.65888999999999,70.301651000000049],[-114.61694299999994,70.30664100000007],[-114.58833299999992,70.309708000000001],[-114.54305999999997,70.313309000000061],[-114.511124,70.314696999999967],[-114.323624,70.316665999999998],[-114.254997,70.317215000000147],[-114.21833800000002,70.316085999999984],[-114.17832900000002,70.313599000000067],[-114.16082799999998,70.311645999999939],[-114.13527699999997,70.305816999999934],[-114.111107,70.293869000000086],[-114.09028599999994,70.286926000000108],[-114.057503,70.282486000000063],[-113.84166700000003,70.269440000000145],[-113.68388399999992,70.263046000000088],[-113.65055799999993,70.263610999999969],[-113.59166700000003,70.268600000000106],[-113.54943799999995,70.273315000000139],[-113.50556899999998,70.277481000000023],[-113.46000700000002,70.280548000000124],[-113.42804699999999,70.281662000000097],[-113.39138799999995,70.280548000000124],[-113.33332799999994,70.277206000000035],[-113.29611199999999,70.273879999999963],[-113.16832699999998,70.259155000000021],[-113.09084299999995,70.247481999999991],[-112.66665599999993,70.203873000000101],[-112.56471299999998,70.198318000000029],[-112.54804999999999,70.198593000000017],[-112.53278399999994,70.199416999999983],[-112.52084399999995,70.202209000000096],[-112.51722699999999,70.207488999999953],[-112.52749599999993,70.211105000000032],[-112.56304899999998,70.213608000000022],[-112.577789,70.216095000000053],[-112.58084100000002,70.221374999999966],[-112.57501200000002,70.227203000000088],[-112.56582599999996,70.231368999999972],[-112.55526700000001,70.234984999999995],[-112.54332699999992,70.237487999999985],[-112.295547,70.266663000000051],[-112.212784,70.265823000000012],[-112.195831,70.265823000000012],[-112.16388699999999,70.266936999999984],[-112.13834399999996,70.271378000000084],[-112.14584400000001,70.275543000000084],[-112.16306299999991,70.277481000000023],[-112.24249299999991,70.283600000000035],[-112.29695099999998,70.289154000000053],[-112.30471799999992,70.293319999999937],[-112.29723399999995,70.298325000000034],[-112.28333299999997,70.299988000000099],[-112.26666299999999,70.300262000000032],[-112.24833699999999,70.299423000000104],[-112.23111,70.297484999999938],[-112.10888699999992,70.277481000000023],[-111.92639199999996,70.252212999999927],[-111.91583300000002,70.255553999999961],[-111.90805099999989,70.260544000000039],[-111.89917000000003,70.264709000000039],[-111.88054699999998,70.270264000000111],[-111.86527999999993,70.271378000000084],[-111.84861799999993,70.271378000000084],[-111.743607,70.269440000000145],[-111.55555700000002,70.269714000000079],[-111.53888699999993,70.269989000000066],[-111.46806300000003,70.278320000000008],[-111.45445299999989,70.279984000000013],[-111.445267,70.284149000000014],[-111.44275699999992,70.290268000000026],[-111.487213,70.336929000000055],[-111.49472000000003,70.341094999999939],[-111.50723299999993,70.344147000000078],[-111.53694200000001,70.349426000000051],[-111.63110399999999,70.358321999999987],[-111.66471899999999,70.35803199999998],[-111.69387799999998,70.355545000000063],[-111.73528299999998,70.35026600000009],[-111.75055700000001,70.349426000000051],[-111.80387899999999,70.350815000000011],[-111.98055999999991,70.370818999999983],[-112.00083899999987,70.378036000000066],[-112.05387899999999,70.401093000000003],[-112.06166099999996,70.405258000000003],[-112.06973299999993,70.414993000000095],[-112.07250999999997,70.42025799999999],[-112.073059,70.431655999999975],[-112.07584400000002,70.436646000000053],[-112.08917200000002,70.451096000000121],[-112.11527999999998,70.474152000000004],[-112.14611799999994,70.490540000000067],[-112.156387,70.494141000000127],[-112.16915899999998,70.497208000000001],[-112.19915800000001,70.502213000000097],[-112.42722299999997,70.526382000000012],[-112.49553700000001,70.515274000000034],[-112.5,70.514740000000074],[-112.50945300000001,70.513611000000083],[-112.52806099999998,70.514160000000004],[-112.58612099999999,70.524994000000106],[-112.62193300000001,70.534424000000001],[-112.65278599999994,70.545258000000047],[-112.67083700000001,70.552765000000136],[-112.67859599999991,70.556931000000077],[-112.70973199999997,70.567490000000078],[-112.72805799999998,70.568329000000062],[-112.81471299999993,70.568054000000075],[-112.84861799999993,70.567764000000011],[-112.85610999999994,70.562758999999971],[-112.93749999999994,70.56721500000009],[-113.00083899999993,70.576659999999947],[-113.01611300000002,70.579163000000108],[-113.14222699999999,70.606093999999985],[-113.30304699999994,70.641936999999984],[-113.49221799999992,70.677200000000028],[-113.51112399999994,70.677765000000022],[-113.51999699999993,70.673598999999967],[-113.51917299999997,70.667755000000113],[-113.5227809999999,70.655547999999953],[-113.52834300000001,70.649719000000118],[-113.54055800000003,70.646942000000024],[-113.55444299999994,70.644989000000123],[-113.57140399999997,70.644714000000079],[-113.59166700000003,70.646103000000096],[-113.60722399999997,70.648604999999975],[-113.63054699999998,70.654984000000013],[-113.64917000000003,70.662766000000147],[-113.66528299999999,70.670822000000044],[-113.68388399999992,70.678314],[-113.72860700000001,70.691649999999925],[-113.76194800000002,70.696091000000024],[-113.88221699999997,70.710265999999933],[-113.93831599999993,70.71527100000003],[-113.97416699999991,70.715546000000018],[-113.98972299999997,70.714432000000045],[-114.015556,70.709991000000116],[-114.06833599999993,70.692474000000061],[-114.08944700000001,70.685256999999979],[-114.12082699999996,70.674698000000092],[-114.14362299999999,70.668594000000098],[-114.17111199999999,70.664703000000031],[-114.20834400000001,70.665817000000004],[-114.26194800000002,70.671371000000022],[-114.323059,70.675262000000089],[-114.37748699999997,70.675812000000121],[-114.40834000000001,70.673598999999967],[-114.4202729999999,70.670822000000044],[-114.43083200000001,70.667206000000022],[-114.44833399999999,70.658600000000092],[-114.45889299999999,70.655258000000117],[-114.49500299999994,70.646942000000024],[-114.54527299999995,70.636107999999979],[-114.57112100000001,70.631362999999965],[-114.64111299999996,70.622482000000048],[-114.98916599999995,70.603867000000093],[-115.13694800000002,70.598038000000088],[-115.25250199999994,70.601379000000122],[-115.38054699999998,70.604706000000078],[-115.39943700000003,70.604980000000012],[-115.88971700000002,70.595260999999994],[-115.921944,70.593596999999988],[-115.97609699999998,70.585266000000047],[-116.05555700000002,70.572220000000129],[-116.08556399999992,70.587769000000037],[-116.16251399999999,70.62303200000008],[-116.17111199999994,70.626923000000147],[-116.26363400000002,70.634720000000073],[-116.36389200000002,70.639160000000118],[-116.38082900000001,70.638885000000073],[-116.52999899999992,70.632477000000108],[-116.63221699999997,70.614990000000091],[-116.65583800000002,70.609146000000067],[-116.66915899999998,70.607208000000128],[-116.71501199999994,70.603043000000127],[-116.90110799999997,70.597214000000122],[-116.91972399999997,70.597488000000055],[-117.05972300000002,70.601379000000122],[-117.10056299999997,70.603317000000061],[-117.34584000000001,70.614990000000091],[-117.34973100000002,70.619980000000112],[-117.35861199999994,70.623871000000008],[-117.37666300000001,70.62553400000013],[-117.50556899999998,70.61692800000003],[-117.51528899999994,70.613311999999951],[-117.51806599999986,70.606368999999972],[-117.51862299999993,70.600266000000033],[-117.52500900000001,70.594985999999949],[-117.54360999999994,70.595260999999994],[-117.5594329999999,70.597214000000122],[-117.61305199999998,70.608597000000145],[-117.67111199999999,70.624419999999986],[-117.70472699999999,70.634155000000021],[-117.724716,70.641373000000044],[-117.73777799999993,70.65026899999998],[-117.74194299999994,70.655258000000117],[-117.741669,70.661376999999959],[-117.73944099999994,70.666930999999977],[-117.73473399999995,70.673035000000027],[-117.72222899999986,70.68331900000004],[-117.71417199999996,70.688034000000073],[-117.70944199999985,70.693863000000079],[-117.71140300000002,70.699707000000103],[-117.71806300000003,70.703872999999987],[-117.73581699999994,70.711655000000121],[-117.74694799999997,70.714995999999985],[-117.89806399999998,70.756104000000107],[-117.94554099999999,70.768599999999992],[-118.00890400000003,70.783051],[-118.04750100000001,70.791656000000046],[-118.09277299999997,70.804703000000075],[-118.13583399999999,70.818054000000018],[-118.16750300000001,70.828598000000056],[-118.18776700000001,70.836104999999975],[-118.20584099999996,70.843872000000147],[-118.26445000000001,70.871918000000051],[-118.28028899999993,70.879974000000118],[-118.30972300000002,70.897217000000012],[-118.31639100000001,70.901657000000057],[-118.32972699999993,70.910537999999974],[-118.40862299999998,70.970260999999994],[-118.41750300000001,70.980270000000019],[-118.41972399999986,70.985809000000017],[-118.41944899999993,70.99192800000003],[-118.415009,70.99803200000008],[-118.40862299999998,71.003326000000072],[-118.40055799999999,71.007766999999944],[-118.37082700000002,71.019149999999968],[-118.33944699999995,71.029433999999981],[-118.27250699999991,71.048874000000012],[-117.98055999999997,71.124420000000043],[-117.84973099999996,71.156937000000028],[-117.79666099999992,71.166382000000112],[-117.728882,71.169708000000128],[-117.69055199999997,71.169434000000024],[-117.640289,71.171921000000111],[-117.54305999999991,71.178589000000102],[-117.49445300000002,71.18193100000002],[-117.41665599999988,71.188873000000115],[-117.38722199999995,71.192474000000004],[-117.28859699999992,71.206649999999968],[-116.98528299999998,71.236098999999967],[-116.83666999999997,71.269149999999911],[-116.83332799999994,71.276093000000117],[-116.82472200000001,71.280548000000124],[-116.80055199999993,71.286102000000085],[-116.71333300000003,71.297211000000004],[-116.66972399999992,71.302765000000022],[-116.60166900000002,71.313873000000001],[-116.51777600000003,71.326384999999959],[-116.40583800000002,71.343048000000067],[-116.20889299999993,71.364150999999993],[-116.17722300000003,71.366653000000042],[-116.14195299999989,71.367751999999996],[-116.08556399999992,71.367477000000008],[-116.077789,71.365814000000057],[-116.05249000000003,71.356093999999985],[-115.81027199999994,71.362761999999975],[-115.77667200000002,71.36442599999998],[-115.76083399999993,71.365814000000057],[-115.74638399999998,71.368317000000047],[-115.73416099999986,71.371368000000075],[-115.72693599999997,71.376373000000115],[-115.72666900000002,71.381362999999965],[-115.73306299999996,71.385818000000029],[-115.74416400000001,71.389160000000118],[-115.75805700000001,71.391937000000041],[-115.79055800000003,71.396378000000141],[-115.84166700000003,71.394440000000031],[-115.85582699999992,71.392212000000029],[-115.885559,71.389160000000118],[-115.91915899999998,71.387206999999989],[-115.93360899999999,71.38888500000013],[-116.01777599999997,71.411101999999971],[-116.06471299999998,71.438583000000051],[-115.82805599999995,71.483046999999999],[-115.76306199999999,71.490265000000022],[-115.62082700000002,71.498596000000077],[-115.60472099999993,71.496094000000028],[-115.58444199999991,71.488876000000005],[-115.58416699999998,71.485259999999982],[-115.53555299999994,71.470261000000107],[-115.41555800000003,71.449707000000103],[-115.37832599999996,71.449707000000103],[-115.20028699999995,71.479430999999977],[-115.17527799999988,71.484985000000108],[-115.06667299999998,71.518600000000049],[-115.05750299999994,71.523041000000148],[-115.06194299999999,71.526657],[-115.08168000000001,71.527205999999921],[-115.11361699999998,71.524704000000042],[-115.15638699999994,71.518875000000037],[-115.17054699999994,71.516662999999994],[-115.24553700000001,71.500000000000114],[-115.26000999999997,71.498031999999967],[-115.32224300000001,71.492477000000065],[-115.44275699999992,71.488037000000077],[-115.45973200000003,71.489151000000049],[-115.53859699999998,71.50082400000008],[-115.54998799999998,71.504440000000102],[-115.55860899999999,71.508330999999998],[-115.55583199999995,71.513611000000083],[-115.54332699999986,71.516662999999994],[-115.53083800000002,71.519440000000088],[-115.51666299999999,71.521378000000027],[-115.51222199999989,71.53776600000009],[-115.61888099999987,71.555252000000053],[-115.65499899999992,71.55802900000009],[-115.70638999999994,71.555817000000047],[-115.79194599999994,71.543593999999985],[-115.87638900000002,71.53276100000005],[-115.965012,71.522216999999955],[-116.16027799999989,71.49971000000005],[-116.20805399999995,71.495818999999983],[-116.28250100000002,71.495528999999976],[-116.33389299999999,71.493317000000104],[-116.41361999999998,71.486648999999943],[-116.44360399999999,71.483322000000044],[-116.806107,71.436096000000134],[-116.98610699999995,71.427200000000028],[-117.17666600000001,71.404709000000025],[-117.20111099999997,71.398331000000098],[-117.21528599999994,71.396378000000141],[-117.328056,71.386108000000036],[-117.35944399999994,71.383331000000112],[-117.37721299999987,71.382751000000098],[-117.39835399999998,71.383880999999974],[-117.41221599999994,71.386383000000023],[-117.41665599999988,71.391373000000101],[-117.41610700000001,71.397766000000047],[-117.41306299999997,71.404434000000037],[-117.39083900000003,71.435257000000036],[-117.38110399999994,71.447205000000054],[-117.37832600000002,71.454163000000051],[-117.44776899999988,71.47387700000013],[-117.49445300000002,71.486923000000047],[-117.51750199999998,71.493317000000104],[-117.54583700000001,71.498871000000122],[-117.56276699999995,71.49971000000005],[-117.628601,71.467758000000117],[-117.63333099999994,71.461929000000112],[-117.63166799999999,71.456375000000094],[-117.62470999999999,71.451935000000105],[-117.61305199999998,71.44859300000013],[-117.59665699999999,71.446365000000014],[-117.55583200000001,71.445251000000042],[-117.5369419999999,71.443862999999908],[-117.506393,71.439148000000102],[-117.48332199999999,71.432480000000112],[-117.47888199999989,71.427475000000072],[-117.48194899999999,71.420532000000037],[-117.51722699999999,71.379425000000026],[-117.52749599999993,71.375809000000004],[-117.53943600000002,71.372757000000092],[-117.59416199999987,71.371643000000063],[-117.68138099999993,71.379700000000071],[-117.75666799999999,71.376083000000108],[-117.79444899999999,71.368042000000059],[-117.82749899999999,71.372208000000114],[-117.94833399999999,71.377762000000132],[-118.01500699999997,71.37303200000008],[-118.03278399999994,71.372482000000048],[-118.09084299999995,71.372757000000092],[-118.112213,71.37359600000002],[-118.18536399999999,71.379791000000125],[-118.24388099999999,71.389984000000084],[-118.25556899999998,71.393326000000002],[-118.28362300000003,71.404709000000025],[-118.29750099999995,71.413605000000132],[-118.31111099999993,71.428589000000045],[-118.31527699999992,71.439697000000024],[-118.31471299999998,71.452209000000039],[-118.30943300000001,71.465820000000008],[-118.28999299999992,71.481659000000093],[-118.28195199999988,71.486098999999911],[-118.2633439999999,71.49414100000007],[-118.21250900000001,71.513046000000031],[-118.20221699999996,71.516662999999994],[-118.19027699999998,71.519714000000022],[-118.17804699999994,71.522766000000104],[-118.12609900000001,71.533051000000057],[-118.08612099999988,71.540267999999969],[-118.05444299999999,71.543045000000063],[-117.83583099999998,71.554703000000075],[-117.70722999999998,71.54942299999999],[-117.68720999999994,71.549988000000042],[-117.675003,71.552765000000136],[-117.658051,71.561646000000053],[-117.65139799999992,71.566940000000045],[-117.65583800000002,71.571930000000123],[-117.66999800000002,71.574706999999989],[-117.87304699999993,71.611649],[-117.88722199999995,71.614151000000106],[-117.90888999999999,71.614990000000034],[-117.86361699999998,71.639435000000105],[-117.718887,71.659714000000008],[-117.70694700000001,71.662491000000102],[-117.69638099999992,71.666091999999992],[-117.70084399999996,71.671371000000136],[-117.715012,71.673874000000126],[-117.73665599999993,71.674988000000099],[-118.01000999999997,71.672484999999938],[-118.02778599999994,71.67164600000001],[-118.11665299999993,71.65277100000003],[-118.12693799999988,71.648880000000133],[-118.17278299999998,71.628036000000009],[-118.17749000000003,71.621918000000051],[-118.16388699999993,71.606933999999967],[-118.16639699999996,71.599990999999989],[-118.17666600000001,71.596374999999966],[-118.19082600000002,71.594146999999964],[-118.29998799999993,71.583328000000108],[-118.31777999999991,71.582763999999997],[-118.33444199999997,71.584717000000126],[-118.36527999999998,71.589431999999931],[-118.38639799999999,71.613602000000128],[-118.38612399999994,71.619705000000067],[-118.45500199999987,71.650818000000072],[-118.485817,71.655548000000124],[-118.56639099999995,71.662766000000147],[-118.60527000000002,71.664154000000053],[-118.84166700000003,71.664702999999975],[-118.85555999999997,71.662491000000102],[-118.86389199999996,71.658035000000041],[-118.90387699999997,71.614700000000028],[-118.90387699999997,71.608322000000101],[-118.88971699999996,71.599716000000001],[-118.88027999999991,71.595825000000104],[-118.86609599999997,71.586928999999998],[-118.8683319999999,71.580276000000026],[-118.88054699999998,71.577209000000096],[-118.89778099999995,71.57777400000009],[-118.90972899999991,71.581099999999992],[-119.05027799999999,71.626648000000102],[-119.07472200000001,71.644149999999968],[-119.08416699999998,71.654160000000047],[-119.10582699999998,71.685806000000071],[-119.12470999999999,71.730545000000063],[-119.13445300000001,71.76527399999992],[-119.13445300000001,71.783874999999966],[-119.10555999999991,71.876648000000046],[-119.10305800000003,71.883330999999998],[-119.09194899999994,71.902205999999978],[-119.08750900000001,71.908324999999991],[-118.945831,71.99136400000009],[-118.929169,72.000548999999921],[-118.86694299999999,72.023879999999963],[-118.84249899999998,72.029709000000025],[-118.80166599999995,72.037200999999925],[-118.76471699999996,72.046370999999965],[-118.73361199999999,72.057480000000055],[-118.72501399999987,72.0619200000001],[-118.71665999999999,72.066665999999998],[-118.71028099999995,72.071930000000009],[-118.70556599999992,72.077774000000034],[-118.703056,72.084717000000012],[-118.70749699999999,72.095824999999991],[-118.715012,72.10026600000009],[-118.71972700000003,72.105255000000056],[-118.71945199999999,72.111374000000069],[-118.71749899999998,72.116928000000087],[-118.69193999999999,72.130539000000056],[-118.58860800000002,72.176086000000112],[-118.57640100000003,72.179152999999985],[-118.56194299999999,72.181366000000139],[-118.545547,72.182754999999986],[-118.44248999999996,72.181655999999975],[-118.40583799999996,72.183044000000052],[-118.38945000000001,72.184708000000114],[-118.15722699999992,72.217758000000117],[-118.12832599999996,72.222214000000065],[-118.11945299999996,72.226654000000053],[-118.11277799999993,72.231934000000138],[-118.108047,72.237762000000089],[-118.10527000000002,72.244705000000067],[-118.10417199999995,72.263321000000076],[-118.12138400000003,72.308029000000147],[-118.13082899999995,72.318054000000075],[-118.14527899999996,72.326934999999992],[-118.16471899999993,72.334427000000119],[-118.176941,72.337769000000037],[-118.19193999999999,72.340546000000131],[-118.20916699999998,72.34248400000007],[-118.25140399999998,72.344711000000132],[-118.27166699999992,72.344711000000132],[-118.28832999999992,72.343323000000055],[-118.32528699999995,72.341934000000037],[-118.36416600000001,72.341370000000097],[-118.40695199999993,72.34248400000007],[-118.446663,72.345260999999994],[-118.49109599999997,72.353043000000127],[-118.52306399999992,72.363876000000118],[-118.55499299999997,72.380814000000044],[-118.56973299999999,72.389709000000039],[-118.58194700000001,72.399155000000007],[-118.58860800000002,72.416655999999989],[-118.58805799999999,72.435256999999979],[-118.58528100000001,72.441924999999969],[-118.573059,72.460815000000082],[-118.56833599999993,72.46665999999999],[-118.55027799999999,72.483321999999987],[-118.53694199999995,72.493866000000025],[-118.51972999999992,72.50277699999998],[-118.20722999999998,72.618591000000094],[-118.12554899999998,72.642487000000017],[-118.08306900000002,72.649719000000118],[-117.90361000000001,72.689697000000137],[-117.89083899999991,72.692749000000049],[-117.86888099999993,72.699997000000053],[-117.63305700000001,72.784987999999998],[-117.60193600000002,72.796936000000073],[-117.51944700000001,72.828873000000044],[-117.48999000000003,72.841369999999984],[-117.48111,72.845825000000048],[-117.46472199999994,72.85554500000012],[-117.43611099999993,72.876373000000001],[-117.42054699999994,72.894440000000088],[-117.40222199999999,72.903320000000122],[-117.37999000000002,72.910538000000088],[-117.35360699999995,72.916382000000112],[-117.32333399999993,72.92082199999993],[-117.30638099999993,72.921921000000111],[-117.24916099999996,72.923874000000069],[-117.12721299999998,72.932479999999998],[-116.95639,72.954163000000108],[-116.94138299999997,72.95637499999998],[-116.89972699999998,72.964157000000114],[-116.862503,72.972214000000065],[-116.83805799999999,72.978592000000049],[-116.775284,72.9952550000001],[-116.70722999999998,73.017211999999972],[-116.65972899999991,73.031097000000045],[-116.58750900000001,73.051376000000005],[-116.57417299999997,73.054153000000099],[-116.54167199999995,73.057480000000055],[-116.52416999999991,73.058868000000132],[-116.31916799999993,73.09165999999999],[-116.24221799999998,73.110260000000096],[-116.20195000000001,73.118590999999981],[-116.15556300000003,73.124695000000031],[-115.90055799999993,73.154160000000104],[-115.60973399999995,73.194138000000123],[-115.44082600000002,73.22387700000013],[-115.34638999999999,73.253326000000129],[-115.32305899999994,73.260269000000108],[-115.30915799999997,73.263046000000031],[-115.14917000000003,73.288315000000011],[-115.10221899999999,73.294144000000017],[-115.01418299999989,73.299988000000042],[-114.95111099999997,73.307754999999986],[-114.89417299999997,73.318054000000018],[-114.86638599999998,73.323608000000036],[-114.83056599999998,73.334152000000074],[-114.81054699999999,73.342758000000003],[-114.70722999999992,73.368042000000003],[-114.67555199999998,73.371918000000051],[-114.65778399999999,73.373032000000023],[-114.56166100000002,73.37553400000013],[-114.54083300000002,73.373595999999964],[-114.50527999999991,73.368866000000139],[-114.337784,73.343323000000055],[-114.30499299999991,73.338042999999971],[-114.27500899999995,73.332214000000135],[-114.22609699999987,73.318329000000062],[-114.19776899999999,73.306366000000025],[-114.16306299999997,73.289703000000145],[-114.11054999999999,73.263885000000016],[-114.05610699999994,73.233597000000032],[-114.01666299999994,73.206375000000094],[-113.96167000000003,73.153046000000131],[-113.95694700000001,73.142487000000074],[-113.95388799999989,73.125533999999959],[-113.95749699999999,73.113312000000008],[-113.99582700000002,73.077773999999977],[-114.00499699999995,73.064423000000033],[-114.03555299999999,73.004990000000021],[-114.04750100000001,72.954987000000074],[-114.05499299999997,72.883605999999986],[-114.05277999999998,72.872208000000001],[-114.04915599999998,72.867203000000131],[-114.0427699999999,72.862762000000032],[-114.02722199999999,72.854156000000103],[-113.98166700000002,72.834152000000017],[-113.96888699999994,72.82499700000011],[-113.96777299999997,72.819442999999978],[-113.96945199999999,72.813034000000073],[-113.97582999999992,72.807205000000067],[-113.985817,72.803040000000067],[-113.99749799999995,72.799423000000104]],[[-95.669723999999917,73.604980000000126],[-95.688598999999897,73.603317000000004],[-95.702498999999989,73.60554500000012],[-95.711670000000026,73.612198000000092],[-95.703887999999949,73.617477000000065],[-95.684157999999968,73.6202550000001],[-95.669997999999964,73.620529000000033],[-95.655563000000029,73.616652999999928],[-95.654998999999975,73.609984999999995],[-95.669723999999917,73.604980000000126]],[[-107.89555399999989,73.541367000000093],[-107.93055699999996,73.539428999999984],[-107.9519499999999,73.540268000000083],[-107.97193900000002,73.542755],[-108.00917099999992,73.548035000000084],[-108.02306399999998,73.551376000000118],[-108.07472200000001,73.576385000000073],[-108.08277899999996,73.580826000000002],[-108.08500700000002,73.585815000000139],[-108.08332799999999,73.597214000000065],[-108.07640099999992,73.603591999999992],[-108.066101,73.608597000000032],[-108.05444299999988,73.612487999999928],[-108.04083299999996,73.615540000000067],[-108.00750700000003,73.618591000000094],[-107.89943699999992,73.622756999999979],[-107.86277799999993,73.624145999999996],[-107.82444800000002,73.6244200000001],[-107.80444299999999,73.624145999999996],[-107.68110699999994,73.621367999999961],[-107.61472299999991,73.614700000000028],[-107.60056299999997,73.611374000000126],[-107.58944699999995,73.607758000000103],[-107.58473200000003,73.603043000000071],[-107.58249699999999,73.597762999999986],[-107.58473200000003,73.586655000000007],[-107.59194899999994,73.579987000000017],[-107.60221899999988,73.575271999999984],[-107.64527900000002,73.570267000000115],[-107.65722700000003,73.568603999999993],[-107.7491609999999,73.55581699999999],[-107.89555399999989,73.541367000000093]],[[-124.307503,73.556366000000139],[-124.33167999999995,73.556366000000139],[-124.343613,73.559981999999991],[-124.35193600000002,73.5711060000001],[-124.35861199999988,73.630264000000068],[-124.34612300000003,73.633606000000043],[-124.33138999999994,73.636383000000137],[-124.307503,73.632202000000063],[-124.30332900000002,73.626648000000046],[-124.29387700000001,73.622481999999934],[-124.28222700000003,73.618866000000082],[-124.26806599999992,73.616088999999988],[-124.21028100000001,73.611374000000126],[-124.19360399999994,73.60914600000001],[-124.17944299999994,73.606369000000086],[-124.16777000000002,73.603043000000071],[-124.14916999999997,73.594711000000075],[-124.12666300000001,73.580826000000002],[-124.11972000000003,73.575821000000133],[-124.11554699999988,73.570541000000048],[-124.11389199999996,73.564148000000102],[-124.12638899999996,73.560805999999957],[-124.307503,73.556366000000139]],[[-124.58473199999992,73.679153000000042],[-124.59944199999995,73.676376000000005],[-124.62361099999998,73.676650999999993],[-124.640556,73.678863999999976],[-124.70056199999993,73.689422999999977],[-124.72917199999995,73.694976999999994],[-124.73361199999999,73.700545999999974],[-124.72582999999992,73.705261000000007],[-124.71584299999995,73.709152000000074],[-124.70111099999997,73.711928999999998],[-124.68167099999999,73.713042999999971],[-124.66471899999999,73.710815000000025],[-124.66278099999994,73.706099999999992],[-124.64835399999998,73.704712000000086],[-124.61694299999999,73.699707000000046],[-124.57140399999992,73.691925000000083],[-124.564438,73.687195000000031],[-124.57224299999996,73.682479999999998],[-124.58473199999992,73.679153000000042]],[[-105.08944700000001,73.735260000000039],[-104.96028099999995,73.688582999999937],[-104.84306300000003,73.650818000000072],[-104.71140300000002,73.63081399999993],[-104.69167299999992,73.628310999999997],[-104.675003,73.624985000000095],[-104.58084100000002,73.600266000000147],[-104.53056300000003,73.581374999999923],[-104.51306199999999,73.573044000000039],[-104.49445300000002,73.559418000000051],[-104.49027999999998,73.554703000000018],[-104.48528299999998,73.544708000000128],[-104.48306299999996,73.534424000000115],[-104.512787,73.493042000000059],[-104.55583200000001,73.403320000000008],[-104.56639100000001,73.334717000000126],[-104.56833599999999,73.329163000000108],[-104.57333399999999,73.323044000000095],[-104.58138999999994,73.316666000000112],[-104.60193599999997,73.306366000000025],[-104.64916999999997,73.280823000000112],[-104.69499200000001,73.25221300000004],[-104.76000999999991,73.203873000000044],[-104.76500699999985,73.197754000000032],[-104.76390099999998,73.192474000000118],[-104.79415899999998,73.168045000000006],[-104.86805700000002,73.136658000000068],[-104.97556299999997,73.085266000000104],[-104.98332199999999,73.078872999999987],[-104.98805199999993,73.073043999999982],[-104.98388699999992,73.068054000000075],[-104.97749299999998,73.05304000000001],[-104.97361799999999,73.031662000000097],[-104.97860699999995,73.025543000000084],[-104.984734,73.020538000000045],[-104.99527,73.015823000000012],[-105.031677,73.004166000000055],[-105.0750119999999,72.997208000000057],[-105.08833300000003,72.994141000000127],[-105.13639799999993,72.978867000000037],[-105.14695699999999,72.974152000000004],[-105.22582999999997,72.933044000000109],[-105.30304699999994,72.951096000000007],[-105.31916799999999,72.954163000000108],[-105.33972199999999,72.955551000000014],[-105.354446,72.953323000000069],[-105.35610999999994,72.947754000000032],[-105.33139,72.910538000000088],[-105.32417299999997,72.906096999999988],[-105.279449,72.885543999999925],[-105.25361599999997,72.878585999999984],[-105.237503,72.875534000000016],[-105.21140300000002,72.868591000000038],[-105.20417799999996,72.864151000000049],[-105.26222199999989,72.848602000000085],[-105.27555799999993,72.845534999999984],[-105.28999299999987,72.847762999999986],[-105.38305699999995,72.866653000000099],[-105.43611099999993,72.896652000000131],[-105.44332900000001,72.90109300000006],[-105.45612299999999,72.915267999999969],[-105.458618,72.925536999999963],[-105.45694699999996,72.931366000000025],[-105.45834400000001,72.936371000000065],[-105.46250900000001,72.941360000000032],[-105.57472199999995,72.984421000000054],[-105.73277299999995,73.047759999999982],[-105.91388699999999,73.145538000000101],[-105.94638099999992,73.160263000000043],[-106.09249899999992,73.199706999999933],[-106.08194700000001,73.241088999999988],[-106.32195300000001,73.338882000000126],[-106.44776899999994,73.393051000000128],[-106.45556599999998,73.397491000000002],[-106.46611000000001,73.401382000000069],[-106.72028399999999,73.44999700000011],[-106.88137799999998,73.463318000000072],[-106.89806399999992,73.461929000000055],[-106.91610699999995,73.461380000000077],[-106.9375,73.462494000000106],[-107,73.469711000000018],[-107.016953,73.4727630000001],[-107.02749599999999,73.476379000000009],[-107.03555299999994,73.480820000000108],[-107.03415699999999,73.486374000000069],[-107.02583300000003,73.498596000000077],[-107.01834100000002,73.504990000000078],[-107.00974299999996,73.510544000000095],[-106.97112299999992,73.531661999999983],[-106.92944299999999,73.550537000000134],[-106.89334100000002,73.562484999999981],[-106.74526999999995,73.648041000000148],[-106.70028699999995,73.676085999999941],[-106.65805099999994,73.695251000000098],[-106.64584399999995,73.699141999999995],[-106.61833200000001,73.705261000000007],[-106.57224300000001,73.711928999999998],[-106.32721700000002,73.72665400000011],[-106.18554699999999,73.733597000000145],[-106.03916900000002,73.731368999999972],[-105.80055199999998,73.726928999999984],[-105.72666900000002,73.728592000000049],[-105.68028300000003,73.734985000000052],[-105.66639699999996,73.737761999999918],[-105.637787,73.74443100000002],[-105.61277799999993,73.752212999999983],[-105.58473200000003,73.758041000000048],[-105.569458,73.760269000000051],[-105.53527799999995,73.762771999999984],[-105.51666299999994,73.763321000000133],[-105.30387899999994,73.762206999999989],[-105.28388999999999,73.761658000000011],[-105.16999800000002,73.755554000000018],[-105.14862099999999,73.754166000000055],[-105.10749799999991,73.743590999999981],[-105.08944700000001,73.735260000000039]],[[-80.142226999999878,73.696640000000116],[-80.108611999999994,73.693863000000022],[-80.074448000000018,73.697479000000044],[-79.901397999999972,73.698318000000029],[-79.625548999999978,73.670821999999987],[-79.586120999999991,73.66276600000009],[-79.523055999999997,73.646652000000131],[-79.493056999999965,73.637772000000098],[-79.476394999999911,73.634154999999964],[-79.451949999999954,73.630539000000113],[-79.373610999999983,73.63081399999993],[-78.96166999999997,73.632750999999985],[-78.946105999999986,73.634720000000016],[-78.934433000000013,73.638596000000064],[-78.931106999999997,73.642487000000131],[-78.928878999999938,73.647491000000116],[-78.924164000000019,73.650269000000094],[-78.912505999999894,73.653869999999984],[-78.887787000000003,73.656647000000078],[-78.861389000000031,73.658324999999991],[-78.64416499999993,73.656647000000078],[-78.40834000000001,73.661652000000117],[-78.206664999999987,73.667755000000056],[-78.166397000000018,73.668045000000063],[-78.12777699999998,73.664703000000145],[-78.113327000000027,73.663040000000024],[-78.064437999999996,73.651932000000045],[-78.009734999999978,73.63749700000011],[-77.965285999999935,73.628310999999997],[-77.823058999999944,73.603867000000037],[-77.738601999999958,73.591933999999981],[-77.608046999999999,73.574158000000011],[-77.535004000000015,73.565536000000009],[-77.453887999999949,73.559708000000057],[-77.424437999999952,73.554703000000018],[-77.395554000000004,73.545822000000101],[-77.373046999999929,73.529709000000082],[-77.363327000000027,73.524703999999986],[-77.351394999999968,73.519988999999953],[-77.338333000000034,73.516663000000108],[-77.294723999999974,73.512772000000041],[-77.237212999999997,73.509994999999947],[-77.203063999999927,73.505554000000018],[-77.191939999999988,73.501389000000017],[-77.148620999999991,73.476379000000009],[-77.153610000000015,73.468048000000067],[-77.157226999999978,73.458603000000039],[-77.055266999999958,73.366379000000052],[-77.048888999999917,73.36192299999999],[-76.999435000000005,73.345825000000104],[-76.969726999999978,73.337203999999986],[-76.91361999999998,73.324432000000002],[-76.893340999999964,73.321105999999986],[-76.884170999999924,73.321655000000078],[-76.878875999999934,73.324158000000068],[-76.858611999999994,73.32638500000013],[-76.837219000000005,73.327209000000096],[-76.736389000000031,73.324706999999989],[-76.72193900000002,73.322495000000117],[-76.708054000000004,73.317764000000011],[-76.579726999999991,73.219711000000075],[-76.577498999999932,73.205551000000128],[-76.585006999999962,73.194427000000076],[-76.601944000000003,73.183319000000097],[-76.619720000000029,73.175812000000121],[-76.605270000000019,73.15914900000007],[-76.586945000000014,73.146378000000141],[-76.582229999999981,73.14387499999998],[-76.510559000000001,73.120254999999986],[-76.495543999999938,73.116928000000087],[-76.487502999999947,73.116089000000102],[-76.381942999999978,73.106093999999985],[-76.31361400000003,73.100540000000024],[-76.312499999999943,73.067490000000134],[-76.318068999999923,73.062759000000028],[-76.319457999999941,73.058318999999983],[-76.333068999999909,72.963607999999965],[-76.323059000000001,72.957214000000135],[-76.309433000000013,72.952484000000084],[-76.291671999999949,72.948868000000061],[-76.275283999999999,72.946640000000059],[-76.211945000000014,72.945526000000086],[-76.162216000000001,72.946365000000071],[-76.118606999999997,72.940262000000132],[-76.103607000000011,72.936371000000065],[-76.077224999999942,72.924988000000042],[-76.071670999999924,72.921097000000145],[-76.062209999999993,72.906937000000028],[-76.059432999999899,72.900818000000015],[-76.086394999999982,72.863602000000071],[-76.093886999999938,72.85803199999998],[-76.103881999999942,72.853043000000014],[-76.115279999999927,72.849426000000051],[-76.13110399999988,72.845534999999984],[-76.149993999999992,72.842209000000139],[-76.25140399999998,72.826385000000016],[-76.315552000000025,72.817214999999976],[-76.339721999999995,72.814987000000031],[-76.5625,72.812484999999981],[-76.581679999999949,72.812484999999981],[-76.601944000000003,72.813873000000058],[-76.618606999999884,72.816939999999988],[-76.634170999999981,72.820541000000048],[-76.662780999999995,72.829163000000051],[-76.681380999999931,72.831375000000094],[-76.72193900000002,72.833878000000084],[-76.740829000000019,72.833878000000084],[-76.767501999999922,72.833878000000084],[-76.891952999999944,72.830825999999945],[-76.937209999999993,72.830825999999945],[-77.084754999999973,72.839684000000148],[-77.101668999999958,72.84027100000003],[-77.143889999999942,72.841933999999981],[-77.226943999999946,72.846100000000035],[-77.265838999999914,72.849426000000051],[-77.314437999999939,72.85554500000012],[-77.365829000000019,72.864426000000037],[-77.40055799999999,72.870818999999983],[-77.416106999999954,72.874695000000088],[-77.447219999999959,72.879974000000061],[-77.522780999999952,72.886108000000092],[-77.704178000000013,72.897216999999955],[-77.723327999999981,72.896941999999967],[-77.860000999999954,72.893051000000071],[-77.904175000000009,72.891662999999994],[-77.997771999999941,72.888321000000019],[-78.107223999999917,72.88638300000008],[-78.236358999999993,72.893005000000016],[-78.273055999999997,72.890549000000021],[-78.297226000000023,72.887772000000098],[-78.486114999999984,72.86554000000001],[-78.62388599999997,72.848037999999974],[-78.865828999999962,72.804427999999973],[-79.047775000000001,72.771378000000141],[-79.161941999999897,72.750548999999978],[-79.209166999999923,72.744979999999998],[-79.296111999999994,72.737761999999975],[-79.359160999999972,72.733597000000145],[-79.382492000000013,72.733047000000113],[-79.400283999999999,72.733597000000145],[-79.429168999999945,72.735809000000017],[-79.543334999999956,72.74859600000002],[-79.62388599999997,72.763321000000133],[-79.927779999999927,72.842484000000013],[-79.972778000000005,72.854705999999965],[-79.998610999999983,72.86303700000002],[-80.009170999999924,72.872756999999922],[-80.120833999999945,72.978867000000037],[-80.151672000000019,73.011932000000115],[-80.181380999999931,73.043869000000086],[-80.181106999999997,73.050262000000032],[-80.164169000000015,73.061920000000043],[-80.147232000000031,73.071381000000031],[-80.134734999999921,73.084716999999955],[-80.131667999999991,73.08859300000006],[-80.128875999999991,73.09526100000005],[-80.122771999999998,73.11442599999998],[-80.110000999999954,73.179703000000018],[-80.114440999999999,73.186371000000008],[-80.134445000000028,73.209152000000017],[-80.143065999999919,73.216933999999981],[-80.15194699999995,73.222487999999942],[-80.216948999999943,73.243317000000104],[-80.238051999999982,73.24414100000007],[-80.415282999999931,73.24414100000007],[-80.61999499999996,73.264160000000004],[-80.760009999999909,73.274704000000042],[-80.797500999999954,73.276932000000045],[-80.876098999999954,73.32777399999992],[-80.876098999999954,73.338593000000003],[-80.872498000000007,73.424988000000099],[-80.820281999999963,73.489150999999993],[-80.80999799999995,73.644440000000088],[-80.857772999999952,73.74192800000003],[-80.771666999999923,73.749709999999993],[-80.683318999999983,73.755829000000006],[-80.560546999999872,73.76776099999995],[-80.434998000000007,73.766098000000056],[-80.37332200000003,73.761658000000011],[-80.353058000000033,73.759720000000073],[-80.320847000000015,73.753876000000048],[-80.30860899999999,73.75],[-80.29861499999987,73.745819000000097],[-80.265288999999996,73.730270000000019],[-80.223327999999924,73.715820000000065],[-80.192763999999954,73.707214000000135],[-80.15834000000001,73.699417000000039],[-80.142226999999878,73.696640000000116]],[[-73.354674999999929,68.329215999999974],[-73.328170999999998,68.328208999999958],[-73.31617,68.328712000000053],[-73.306830999999988,68.330544000000089],[-73.211670000000026,68.376923000000033],[-73.230559999999912,68.384155000000135],[-73.253066999999987,68.390823000000125],[-73.279448999999886,68.39498900000001],[-73.302779999999927,68.396102999999982],[-73.31806899999998,68.393051000000071],[-73.357498000000021,68.371368000000132],[-73.359725999999966,68.364989999999977],[-73.357773000000009,68.357483000000059],[-73.353057999999976,68.352478000000019],[-73.349166999999909,68.344986000000063],[-73.34722899999997,68.337494000000106],[-73.34944200000001,68.331100000000106],[-73.354674999999929,68.329215999999974],[-73.506667999999991,68.291367000000037],[-73.589721999999995,68.254715000000033],[-73.597777999999948,68.251937999999996],[-73.620834000000002,68.246093999999971],[-73.632216999999912,68.246643000000063],[-73.639724999999942,68.249709999999993],[-73.851668999999958,68.342209000000139],[-73.855834999999956,68.346649000000014],[-73.896117999999944,68.392211999999915],[-73.889449999999954,68.44470200000012],[-73.877486999999917,68.481093999999928],[-73.873610999999926,68.487762000000089],[-73.86721799999998,68.493042000000003],[-73.856110000000001,68.497481999999991],[-73.823623999999995,68.503326000000015],[-73.806655999999975,68.503876000000048],[-73.749999999999943,68.510817999999972],[-73.738891999999964,68.514999000000046],[-73.730285999999978,68.519989000000066],[-73.725829999999974,68.525818000000072],[-73.704726999999934,68.656647000000021],[-73.75389100000001,68.683594000000085],[-73.761397999999986,68.686371000000008],[-73.774719000000005,68.689697000000024],[-73.865828999999906,68.705826000000002],[-73.893889999999999,68.707764000000111],[-74.094161999999983,68.719986000000063],[-74.106109999999944,68.690536000000009],[-73.99221799999998,68.624695000000031],[-73.888061999999877,68.561645999999939],[-73.881667999999991,68.55664100000007],[-73.881667999999991,68.549713000000111],[-73.903609999999958,68.52777100000003],[-73.921386999999925,68.511932000000115],[-73.941939999999988,68.504715000000033],[-73.990279999999927,68.492751999999996],[-74.028335999999911,68.513610999999969],[-74.171660999999972,68.521652000000017],[-74.221114999999998,68.52526899999998],[-74.351395000000025,68.536926000000108],[-74.366104000000007,68.539154000000053],[-74.379439999999931,68.542205999999965],[-74.391112999999962,68.546371000000136],[-74.514175000000023,68.599991000000045],[-74.526397999999972,68.610809000000017],[-74.532776000000013,68.62164300000012],[-74.531676999999945,68.626373000000115],[-74.598891999999921,68.681930999999963],[-74.701950000000011,68.71887200000009],[-74.712218999999948,68.723038000000031],[-74.726105000000018,68.730270000000132],[-74.728333000000021,68.737198000000092],[-74.724715999999944,68.766097999999943],[-74.71945199999999,68.770537999999988],[-74.664168999999958,68.774155000000121],[-74.620833999999888,68.782486000000006],[-74.591949,68.788879000000009],[-74.576949999999954,68.793045000000063],[-74.565276999999924,68.802199999999914],[-74.546386999999982,68.822494999999947],[-74.548049999999989,68.828598000000113],[-74.551392000000021,68.830551000000014],[-74.604172000000005,68.841660000000104],[-74.634170999999924,68.846374999999966],[-74.648055999999997,68.847214000000122],[-74.666655999999932,68.845825000000104],[-74.678328999999962,68.842758000000003],[-74.687377999999967,68.835991000000035],[-74.718718999999965,68.824821000000043],[-74.723052999999936,68.822318999999993],[-74.721221999999955,68.821152000000041],[-74.71421799999996,68.82098400000001],[-74.705222999999933,68.821655000000078],[-74.689437999999939,68.819716999999969],[-74.671660999999972,68.818877999999984],[-74.660277999999892,68.81581100000011],[-74.639724999999999,68.807479999999998],[-74.633330999999941,68.79693600000013],[-74.635009999999966,68.793320000000108],[-74.648055999999997,68.789429000000041],[-74.665832999999964,68.786652000000117],[-74.771666999999979,68.774155000000121],[-74.917769999999962,68.801375999999948],[-74.913894999999968,68.81721500000009],[-74.837508999999955,68.840820000000065],[-74.787780999999995,68.854431000000034],[-74.764167999999984,68.872040000000027],[-74.74017299999997,68.872710999999981],[-74.72222899999997,68.934143000000006],[-74.862945999999909,68.954178000000013],[-74.872779999999977,68.955001999999979],[-74.887610999999993,68.954178000000013],[-74.898108999999977,68.952515000000062],[-74.920113000000015,68.946671000000038],[-74.935944000000006,68.942001000000005],[-75,68.937607000000071],[-75.005004999999926,68.929977000000065],[-75.033614999999884,68.926085999999998],[-75.042770000000019,68.928314],[-75.041945999999882,68.930267000000129],[-75.021118000000001,68.953049000000021],[-74.962340999999981,68.972824000000003],[-74.953002999999967,68.978484999999978],[-74.915337000000022,68.992821000000049],[-74.907668999999885,68.993988000000002],[-74.764724999999999,69.019440000000031],[-74.748336999999992,69.021378000000141],[-74.735000999999954,69.021927000000119],[-74.729445999999996,69.019440000000031],[-74.758057000000008,69.008880999999974],[-74.752228000000002,69.002486999999974],[-74.675003000000004,69.006943000000035],[-74.65834000000001,69.008330999999941],[-74.642776000000026,69.011658000000068],[-74.638061999999991,69.016098000000113],[-74.641113000000018,69.021378000000141],[-74.652495999999928,69.040267999999912],[-74.785827999999981,69.076385000000073],[-74.820846999999958,69.082214000000079],[-74.834166999999923,69.081664999999987],[-74.845839999999953,69.078598000000056],[-74.948607999999922,69.048874000000012],[-75.043334999999956,69.013321000000019],[-75.051940999999886,69.008605999999986],[-75.036117999999931,68.992203000000075],[-75.037780999999882,68.985809000000074],[-75.071395999999936,68.921097000000032],[-75.075561999999934,68.915817000000004],[-75.109160999999858,68.894989000000123],[-75.116394000000014,68.890823000000012],[-75.124161000000015,68.888046000000088],[-75.139724999999999,68.884720000000073],[-75.169998000000021,68.886383000000023],[-75.192490000000021,68.891663000000051],[-75.201950000000011,68.894440000000145],[-75.315826000000015,68.942200000000128],[-75.373885999999914,68.968872000000033],[-75.383330999999998,68.974426000000051],[-75.400283999999999,68.985535000000141],[-75.422500999999954,69.001937999999996],[-75.445830999999941,69.016937000000041],[-75.454452999999944,69.021102999999982],[-75.466399999999965,69.021378000000141],[-75.478881999999999,69.019714000000135],[-75.494155999999975,69.01638800000012],[-75.528335999999967,69.005829000000062],[-75.565552000000025,68.993591000000038],[-75.573623999999995,68.988585999999941],[-75.578612999999962,68.984146000000123],[-75.580841000000021,68.975540000000024],[-75.574172999999917,68.968323000000112],[-75.537780999999939,68.951096000000064],[-75.506957999999941,68.939696999999967],[-75.499724999999955,68.934708000000001],[-75.494995000000017,68.930267000000129],[-75.534163999999976,68.90387000000004],[-75.542770000000019,68.898879999999963],[-75.56527699999998,68.891373000000044],[-75.603881999999942,68.879700000000014],[-75.647780999999952,68.869140999999956],[-75.809158000000025,68.836928999999998],[-75.976104999999961,68.791092000000106],[-75.979445999999996,68.787201000000039],[-75.985001000000011,68.783875000000023],[-75.995543999999938,68.779434000000094],[-76.008620999999948,68.775543000000027],[-76.049437999999952,68.764435000000049],[-76.227218999999991,68.721100000000035],[-76.327224999999999,68.697478999999987],[-76.376098999999954,68.687484999999981],[-76.420546999999999,68.679152999999985],[-76.436385999999857,68.677200000000028],[-76.456664999999987,68.675262000000089],[-76.540282999999988,68.673308999999961],[-76.559432999999956,68.673035000000027],[-76.575561999999991,68.674149000000057],[-76.59056099999998,68.676376000000062],[-76.628875999999991,68.68691999999993],[-76.660827999999981,68.699416999999926],[-76.674164000000019,68.71026599999999],[-76.680283000000031,68.716094999999996],[-76.688599000000011,68.733597000000032],[-76.689437999999996,68.740540000000067],[-76.688048999999978,68.746933000000013],[-76.678604000000007,68.758330999999998],[-76.666945999999996,68.769150000000081],[-76.636947999999961,68.78166200000004],[-76.608611999999937,68.794144000000074],[-76.577498999999932,68.808318999999983],[-76.561385999999914,68.818054000000018],[-76.546111999999994,68.833054000000004],[-76.537216000000001,68.842209000000082],[-76.523055999999997,68.863876000000118],[-76.521666999999979,68.870254999999986],[-76.523894999999925,68.876373000000058],[-76.532775999999956,68.880538999999999],[-76.544158999999979,68.883041000000048],[-76.559432999999956,68.88499500000006],[-76.576674999999966,68.88499500000006],[-76.59333799999996,68.883331000000055],[-76.606658999999922,68.883041000000048],[-76.610000999999954,68.884720000000073],[-76.644164999999987,68.911102000000142],[-76.655562999999972,68.924698000000092],[-76.655562999999972,68.930542000000116],[-76.642775999999969,69.003876000000105],[-76.640563999999927,69.009155000000078],[-76.625548999999978,69.018326000000059],[-76.603607000000011,69.025818000000015],[-76.578338999999914,69.032211000000132],[-76.543335000000013,69.038315000000011],[-76.501403999999923,69.042755],[-76.422500999999954,69.050537000000134],[-76.368606999999997,69.055251999999996],[-76.348891999999921,69.054976999999951],[-76.33277899999996,69.05442800000003],[-76.240279999999927,69.048325000000091],[-76.208054000000004,69.044144000000017],[-76.140563999999927,69.034714000000122],[-76.124435000000005,69.031096999999988],[-76.114165999999955,69.027771000000143],[-76.091674999999952,69.011658000000068],[-76.080001999999922,69.006378000000041],[-76.068619000000012,69.003876000000105],[-75.996932999999956,69.003036000000066],[-75.969161999999983,69.010269000000108],[-75.904998999999918,69.036925999999994],[-75.813889000000017,69.067763999999954],[-75.655838000000017,69.080550999999957],[-75.637786999999946,69.079987000000017],[-75.619155999999919,69.081374999999923],[-75.6058349999999,69.08526599999999],[-75.598891999999978,69.089432000000102],[-75.593886999999938,69.099716000000114],[-75.569732999999928,69.15277100000003],[-75.569457999999997,69.158324999999991],[-75.571121000000005,69.163879000000009],[-75.591674999999952,69.22164900000007],[-75.603057999999976,69.238876000000118],[-75.619719999999973,69.249419999999986],[-75.669723999999917,69.271103000000096],[-75.759734999999978,69.304977000000122],[-75.783324999999991,69.313599000000124],[-75.956389999999885,69.366088999999931],[-75.970275999999956,69.36914100000007],[-76.168610000000001,69.411377000000073],[-76.202498999999932,69.413879000000122],[-76.241942999999935,69.413315000000011],[-76.298049999999989,69.407760999999994],[-76.417770000000019,69.44720500000011],[-76.607497999999964,69.529709000000139],[-76.637787000000003,69.546645999999953],[-76.641112999999962,69.554153000000099],[-76.641678000000013,69.557480000000055],[-76.626662999999951,69.581375000000037],[-76.61999499999996,69.586380000000077],[-76.611663999999962,69.591095000000109],[-76.489165999999898,69.648331000000042],[-76.477782999999988,69.652206000000035],[-76.459166999999979,69.654434000000037],[-76.442215000000033,69.653046000000074],[-76.347777999999948,69.64027400000009],[-76.261397999999986,69.626647999999932],[-76.226943999999946,69.637206999999989],[-76.186110999999983,69.659714000000065],[-76.182495000000017,69.663605000000132],[-76.187774999999988,69.665268000000083],[-76.226105000000018,69.664703000000031],[-76.295546999999942,69.660263000000043],[-76.376388999999961,69.671371000000022],[-76.388335999999924,69.673874000000012],[-76.397506999999962,69.678040000000067],[-76.399733999999853,69.684143000000006],[-76.450561999999934,69.690262000000075],[-76.537780999999939,69.696091000000081],[-76.551666000000012,69.695526000000029],[-76.634170999999981,69.683594000000085],[-76.641953000000001,69.679977000000122],[-76.638900999999976,69.673309000000131],[-76.631942999999922,69.669708000000071],[-76.616394000000014,69.667480000000126],[-76.581679999999949,69.666930999999977],[-76.557769999999948,69.673309000000131],[-76.542769999999905,69.674698000000149],[-76.530838000000017,69.672211000000061],[-76.517776000000026,69.662765999999976],[-76.522780999999952,69.65248100000008],[-76.535004000000015,69.638596000000007],[-76.553329000000019,69.625259000000142],[-76.561661000000015,69.620254999999986],[-76.683883999999978,69.56581100000011],[-76.691939999999988,69.563034000000016],[-76.707503999999972,69.559417999999994],[-76.730285999999978,69.560256999999922],[-76.844726999999921,69.576096000000064],[-77.136947999999961,69.626373000000115],[-77.18582200000003,69.637496999999996],[-77.191665999999941,69.639709000000039],[-77.200561999999991,69.646103000000096],[-77.200561999999991,69.64888000000002],[-77.194442999999922,69.657211000000075],[-77.164444000000003,69.676086000000055],[-77.155562999999972,69.680541999999946],[-77.144454999999994,69.682205000000067],[-76.949431999999945,69.695526000000029],[-76.939437999999939,69.679703000000018],[-76.929992999999968,69.677765000000079],[-76.896666999999979,69.679152999999985],[-76.868056999999965,69.684708000000057],[-76.829726999999934,69.695816000000036],[-76.820281999999963,69.699417000000096],[-76.80471799999998,69.708603000000039],[-76.793883999999991,69.718597000000045],[-76.791945999999996,69.721649000000014],[-76.781386999999995,69.743042000000116],[-76.781386999999995,69.748596000000077],[-76.835280999999952,69.815811000000053],[-76.851944000000003,69.813599000000011],[-76.933059999999898,69.809708000000114],[-77.026672000000019,69.811919999999986],[-77.150283999999999,69.816086000000098],[-77.293059999999855,69.828873000000101],[-77.308884000000035,69.830826000000002],[-77.310546999999985,69.835814999999968],[-77.307770000000005,69.840271000000087],[-77.297774999999888,69.851089000000059],[-77.28472899999997,69.860535000000027],[-77.25418099999996,69.87692300000009],[-77.243056999999965,69.881362999999908],[-77.208344000000011,69.886658000000011],[-77.116652999999928,69.901382000000012],[-76.992767000000015,69.927199999999971],[-76.981673999999941,69.931656000000089],[-76.974715999999944,69.935806000000071],[-76.980559999999969,69.938034000000016],[-76.992767000000015,69.940536000000122],[-77.002791999999943,69.940536000000122],[-77.125274999999931,69.925812000000064],[-77.141112999999962,69.922485000000108],[-77.164444000000003,69.915268000000026],[-77.188323999999909,69.906097000000045],[-77.226943999999946,69.894989000000066],[-77.260284000000013,69.887496999999939],[-77.438048999999921,69.857208000000071],[-77.508347000000015,69.826660000000118],[-77.455565999999976,69.798325000000091],[-77.444442999999978,69.789428999999984],[-77.449158000000011,69.784714000000122],[-77.551391999999964,69.747756999999922],[-77.559158000000025,69.744980000000055],[-77.574722000000008,69.741363999999976],[-77.597777999999948,69.739151000000049],[-77.608611999999937,69.740265000000022],[-77.615829000000019,69.741653000000099],[-77.626388999999904,69.744980000000055],[-77.637787000000003,69.753875999999991],[-77.645279000000016,69.760818000000086],[-77.649993999999992,69.769714000000022],[-77.668059999999969,69.836655000000064],[-77.691939999999931,69.963043000000027],[-77.695267000000001,69.98803700000002],[-77.694442999999922,70.000275000000045],[-77.693054000000018,70.00610400000005],[-77.68582200000003,70.023041000000092],[-77.678604000000007,70.034987999999998],[-77.672500999999954,70.045532000000094],[-77.669723999999974,70.052200000000028],[-77.667220999999984,70.062194999999974],[-77.665008999999941,70.088043000000084],[-77.665557999999976,70.106934000000138],[-77.668334999999956,70.113037000000077],[-77.673888999999974,70.11970500000001],[-77.671936000000017,70.177199999999914],[-77.672500999999954,70.180542000000059],[-77.678328999999962,70.187759000000142],[-77.685271999999998,70.191360000000032],[-77.810821999999973,70.24552900000009],[-77.884170999999981,70.2586060000001],[-77.892226999999878,70.258041000000048],[-78.133621000000005,70.215271000000087],[-78.239166000000012,70.203873000000101],[-78.345000999999911,70.19720500000011],[-78.351395000000025,70.197479000000044],[-78.364715999999987,70.201096000000007],[-78.401672000000019,70.212493999999992],[-78.405272999999966,70.214157000000114],[-78.480835000000013,70.288589000000002],[-78.406113000000005,70.326935000000049],[-78.396118000000001,70.328049000000021],[-78.389175000000023,70.332214000000022],[-78.398894999999925,70.336380000000077],[-78.425827000000027,70.3477630000001],[-78.436661000000015,70.351088999999945],[-78.486389000000031,70.356934000000081],[-78.504180999999903,70.35803199999998],[-78.521118000000001,70.357758000000047],[-78.536391999999978,70.356369000000029],[-78.55749499999996,70.351379000000009],[-78.573623999999995,70.345534999999984],[-78.579726999999878,70.343048000000067],[-78.583327999999995,70.336929000000055],[-78.581115999999952,70.334152000000131],[-78.569167999999991,70.325546000000031],[-78.564712999999983,70.320267000000058],[-78.56138599999997,70.314148000000046],[-78.564712999999983,70.310256999999979],[-78.578888000000006,70.309708000000001],[-78.655272999999909,70.346939000000134],[-78.662506000000008,70.350540000000024],[-78.704726999999934,70.374695000000031],[-78.74749799999995,70.438873000000058],[-78.858337000000006,70.453873000000044],[-78.903335999999911,70.449416999999926],[-78.944442999999865,70.450271999999984],[-79.031951999999933,70.454987000000017],[-79.070557000000008,70.469711000000075],[-79.095550999999887,70.493042000000116],[-79.100280999999995,70.49832200000003],[-79.081680000000006,70.529984000000127],[-79.068068999999923,70.536377000000073],[-78.893616000000009,70.590546000000131],[-78.879989999999964,70.594711000000132],[-78.860274999999888,70.59664900000007],[-78.832779000000016,70.594437000000028],[-78.821945000000028,70.589706000000092],[-78.815551999999911,70.57748400000014],[-78.816100999999946,70.573318000000029],[-78.815001999999879,70.571930000000123],[-78.806655999999975,70.564986999999974],[-78.788054999999929,70.556091000000038],[-78.766112999999905,70.550261999999975],[-78.733321999999987,70.547211000000004],[-78.718886999999938,70.547760000000096],[-78.720276000000013,70.549149000000114],[-78.84056099999998,70.634995000000117],[-78.851944000000003,70.638046000000088],[-78.861938000000009,70.637206999999989],[-78.868331999999953,70.63220200000012],[-78.867492999999968,70.628586000000041],[-78.868057000000022,70.624419999999986],[-78.871933000000013,70.621918000000051],[-78.879989999999964,70.621093999999914],[-78.912215999999944,70.621368000000018],[-78.965285999999935,70.632751000000042],[-78.976943999999946,70.635817999999972],[-78.994155999999975,70.643326000000002],[-78.999161000000015,70.651382000000069],[-79.000838999999928,70.662766000000147],[-78.994720000000029,70.672484999999995],[-79.000564999999995,70.676926000000094],[-79.009445000000028,70.679702999999961],[-79.025283999999999,70.680267000000129],[-79.041107000000011,70.678588999999988],[-79.057220000000029,70.672759999999982],[-79.152221999999995,70.627762000000075],[-79.158051,70.622208000000114],[-79.155838000000017,70.617476999999951],[-79.14973399999991,70.613037000000134],[-79.136948000000018,70.610809000000017],[-79.097778000000005,70.610260000000039],[-79.068068999999923,70.615540000000124],[-79.143889999999999,70.453873000000044],[-79.159728999999913,70.43803400000013],[-79.174164000000019,70.428040000000124],[-79.18472300000002,70.423599000000024],[-79.209731999999974,70.418045000000006],[-79.223891999999978,70.419434000000024],[-79.23582499999992,70.423309000000017],[-79.268889999999999,70.436371000000008],[-79.291106999999954,70.446930000000066],[-79.290557999999919,70.453598000000056],[-79.291945999999996,70.459717000000069],[-79.30221599999993,70.473602000000142],[-79.308333999999888,70.480270000000132],[-79.388061999999934,70.49275200000011],[-79.403610000000015,70.493316999999934],[-79.412780999999995,70.491652999999928],[-79.420546999999942,70.488876000000062],[-79.575561999999934,70.42942800000003],[-79.58555599999994,70.421371000000022],[-79.591110000000015,70.413605000000018],[-79.591384999999946,70.40914900000007],[-79.588897999999972,70.399428999999998],[-79.575835999999981,70.389984000000084],[-79.563613999999973,70.385544000000095],[-79.42361499999987,70.355820000000108],[-79.420546999999942,70.359710999999947],[-79.416107000000011,70.363602000000014],[-79.406661999999869,70.367477000000008],[-79.386948000000018,70.37164300000012],[-79.371657999999968,70.371093999999971],[-79.357772999999895,70.36970500000001],[-79.317229999999995,70.360260000000096],[-79.295837000000006,70.353043000000014],[-79.286666999999852,70.349716000000058],[-79.266112999999962,70.341094999999939],[-79.252791999999999,70.333327999999995],[-79.243057000000022,70.324707000000103],[-79.233321999999873,70.318603999999937],[-79.224715999999944,70.316085999999984],[-79.209441999999967,70.313309000000061],[-79.125823999999909,70.304703000000131],[-79.108886999999925,70.304977000000065],[-79.099730999999963,70.308594000000028],[-79.086670000000026,70.317764000000068],[-79.088333000000034,70.324707000000103],[-79.090560999999923,70.329437000000098],[-79.085830999999985,70.33859300000006],[-79.070847000000015,70.340820000000122],[-79.056655999999919,70.341369999999984],[-79.038895000000025,70.340546000000018],[-79.027221999999995,70.339432000000045],[-78.98832699999997,70.331375000000037],[-78.966659999999933,70.323318000000086],[-78.939162999999951,70.311096000000134],[-78.921660999999915,70.300812000000064],[-78.790558000000033,70.205551000000014],[-78.777221999999995,70.194976999999994],[-78.763061999999991,70.183593999999971],[-78.753066999999874,70.169434000000081],[-78.74888599999997,70.162201000000039],[-78.737502999999947,70.114989999999977],[-78.688599000000011,70.054977000000122],[-78.683060000000012,70.046371000000022],[-78.680282999999974,70.040268000000083],[-78.664168999999958,70.004166000000112],[-78.662506000000008,69.983047000000113],[-78.662506000000008,69.973037999999917],[-78.665008999999998,69.961380000000077],[-78.676392000000021,69.945250999999985],[-78.687774999999931,69.934417999999994],[-78.704177999999899,69.924148999999943],[-78.791945999999996,69.891098],[-78.84973100000002,69.886107999999979],[-79.06639100000001,69.878310999999997],[-79.17860399999995,69.883881000000088],[-79.200287000000003,69.884430000000009],[-79.37777699999998,69.886107999999979],[-79.408050999999944,69.88499500000006],[-79.474716000000001,69.878586000000041],[-79.526947000000007,69.871918000000051],[-79.540832999999964,69.868866000000139],[-79.553604000000007,69.864700000000028],[-79.563889000000017,69.859984999999995],[-79.576950000000011,69.855819999999994],[-79.604996000000028,69.849990999999989],[-79.636123999999938,69.848038000000031],[-79.682495000000017,69.848877000000016],[-79.694992000000013,69.851089000000059],[-79.707229999999981,69.855545000000006],[-79.773620999999991,69.885544000000039],[-79.780288999999982,69.890549000000078],[-79.786391999999978,69.897217000000012],[-79.796386999999925,69.908325000000048],[-79.801101999999958,69.915543000000014],[-79.800277999999992,69.917205999999965],[-79.803329000000019,69.927475000000015],[-79.833617999999944,69.949417000000039],[-79.891387999999949,69.973877000000073],[-80.053054999999915,69.997208000000114],[-80.168059999999969,70.006377999999984],[-80.196945000000028,70.008041000000105],[-80.232497999999964,70.007767000000001],[-80.263061999999934,70.002487000000087],[-80.27305599999994,69.999709999999993],[-80.292496000000028,69.98692299999999],[-80.307770000000005,69.981093999999985],[-80.31361400000003,69.980270000000019],[-80.326110999999912,69.980270000000019],[-80.336120999999991,69.982207999999957],[-80.434998000000007,70.004990000000078],[-80.45777899999996,70.013320999999962],[-80.466399999999965,70.018051000000014],[-80.47444200000001,70.024428999999998],[-80.485549999999932,70.029434000000037],[-80.547774999999945,70.04414399999996],[-80.561110999999983,70.046936000000073],[-80.577498999999875,70.048874000000012],[-80.597778000000005,70.048035000000027],[-80.652221999999938,70.038879000000065],[-80.669998000000021,70.039978000000076],[-80.787505999999951,70.050537000000134],[-80.906386999999995,70.070831000000055],[-81.06220999999988,70.085541000000035],[-81.225829999999974,70.09693900000002],[-81.285552999999993,70.095261000000107],[-81.378051999999968,70.092484000000013],[-81.429992999999968,70.093597000000102],[-81.462508999999955,70.09637500000008],[-81.603058000000033,70.113876000000005],[-81.698607999999922,70.128585999999984],[-81.711670000000026,70.130539000000113],[-81.728333000000021,70.132202000000007],[-81.745834000000002,70.1308140000001],[-81.756119000000012,70.12831099999994],[-81.763335999999924,70.123031999999967],[-81.761948000000018,70.117477000000065],[-81.737503000000004,70.093597000000102],[-81.718886999999881,70.079163000000051],[-81.709732000000031,70.074432000000115],[-81.687774999999874,70.067764000000125],[-81.670546999999942,70.065262000000075],[-81.625823999999966,70.062759000000085],[-81.558333999999888,70.056930999999963],[-81.539718999999934,70.053314],[-81.531113000000005,70.050812000000121],[-81.464721999999995,70.024703999999986],[-81.313613999999973,70.032211000000132],[-81.262221999999952,70.016388000000063],[-81.188599000000011,69.991089000000102],[-81.169723999999974,69.982483000000002],[-81.153335999999911,69.969986000000006],[-81.15306099999998,69.963608000000022],[-81.154174999999896,69.958327999999995],[-81.150283999999999,69.945815999999979],[-81.142775999999969,69.938034000000016],[-81.136123999999995,69.933043999999995],[-81.126389000000017,69.927765000000022],[-81.089721999999995,69.913879000000009],[-81.028335999999967,69.893600000000106],[-80.999999999999943,69.886107999999979],[-80.939986999999974,69.862762000000089],[-80.791381999999942,69.790542999999957],[-80.769164999999873,69.778045999999961],[-80.764175000000023,69.770537999999988],[-80.763061999999991,69.767212000000086],[-80.763061999999991,69.760818000000086],[-80.77555799999999,69.75221300000004],[-80.826110999999912,69.733597000000032],[-80.835555999999883,69.730270000000075],[-80.849441999999954,69.727203000000145],[-80.938889000000017,69.714705999999978],[-80.952498999999989,69.713882000000012],[-80.952224999999942,69.732758000000047],[-80.955841000000021,69.734420999999998],[-81.014449999999954,69.745529000000147],[-81.023055999999997,69.746094000000028],[-81.038054999999929,69.748596000000077],[-81.074172999999917,69.758040999999992],[-81.093063000000029,69.764434999999992],[-81.103058000000033,69.768326000000059],[-81.115554999999858,69.776931999999988],[-81.129439999999931,69.797760000000096],[-81.145843999999897,69.812485000000038],[-81.166945999999996,69.821380999999974],[-81.178878999999938,69.824996999999996],[-81.21665999999999,69.833603000000096],[-81.354445999999996,69.880264000000125],[-81.433059999999955,69.91304000000008],[-81.480559999999969,69.926926000000037],[-81.491942999999878,69.929703000000131],[-81.598891999999864,69.95248400000014],[-81.68249499999996,69.964431999999988],[-81.795273000000009,69.988586000000112],[-81.945540999999878,70.039978000000076],[-81.953887999999949,70.043868999999972],[-81.957229999999981,70.047211000000061],[-81.958618000000001,70.052765000000079],[-81.966659999999933,70.060532000000023],[-82.065001999999936,70.095825000000048],[-82.101104999999905,70.108032000000037],[-82.214447000000007,70.134995000000004],[-82.361663999999962,70.161377000000073],[-82.446655000000021,70.174988000000042],[-82.475006000000008,70.179428000000087],[-82.610001000000011,70.207214000000135],[-82.739165999999898,70.237762000000089],[-82.913894999999968,70.282761000000107],[-82.938888999999961,70.292205999999965],[-82.952224999999999,70.296370999999965],[-82.977782999999988,70.301926000000037],[-82.992766999999901,70.303588999999988],[-83.006957999999997,70.304703000000131],[-83.048049999999989,70.306931000000134],[-82.897781000000009,70.248595999999964],[-82.822234999999978,70.220825000000104],[-82.683608999999933,70.189972000000125],[-82.573623999999995,70.171646000000123],[-82.493880999999988,70.158875000000023],[-82.415282999999988,70.143051000000071],[-82.299727999999902,70.118866000000082],[-82.103058000000033,70.065262000000075],[-81.976395000000025,70.012206999999989],[-81.841674999999952,69.963318000000015],[-81.773330999999928,69.954162999999994],[-81.758056999999951,69.951660000000004],[-81.725006000000008,69.944138000000066],[-81.720001000000025,69.941085999999984],[-81.710830999999985,69.934142999999949],[-81.738327000000027,69.876083000000051],[-81.741378999999881,69.872757000000036],[-81.854171999999949,69.855545000000006],[-81.880279999999914,69.852478000000076],[-81.960281000000009,69.844146999999964],[-81.962783999999886,69.844711000000132],[-81.963333000000034,69.847487999999998],[-81.962508999999955,69.852768000000083],[-81.963333000000034,69.857757999999933],[-81.972503999999958,69.862487999999985],[-81.995270000000005,69.872481999999991],[-82.001677999999856,69.874694999999974],[-82.011123999999995,69.875809000000118],[-82.020003999999858,69.873871000000008],[-82.061661000000015,69.859421000000054],[-82.118880999999874,69.814697000000081],[-82.11860699999994,69.81053200000008],[-82.126098999999954,69.784988000000055],[-82.129715000000033,69.782486000000006],[-82.143340999999964,69.781372000000033],[-82.189986999999917,69.790267999999969],[-82.243606999999997,69.801650999999993],[-82.271392999999989,69.82638500000013],[-82.241668999999945,69.828048999999965],[-82.224441999999954,69.823608000000036],[-82.210280999999952,69.826096000000007],[-82.206664999999987,69.828598000000056],[-82.215011999999888,69.832763999999997],[-82.303054999999915,69.856644000000131],[-82.314163000000008,69.857483000000116],[-82.403609999999958,69.860260000000039],[-82.417769999999962,69.857757999999933],[-82.526397999999972,69.860809000000131],[-82.575012000000015,69.87081900000004],[-82.64416499999993,69.892487000000017],[-82.741378999999938,69.910248000000138],[-83.035278000000005,69.98803700000002],[-83.040832999999964,69.993042000000059],[-83.044448999999929,70.004166000000112],[-83.051392000000021,70.008605999999929],[-83.066665999999998,70.010818000000029],[-83.150283999999942,70.009720000000129],[-83.238892000000021,69.998871000000065],[-83.339171999999962,69.979431000000091],[-83.345276000000013,69.977203000000088],[-83.613891999999964,69.948868000000118],[-83.654175000000009,69.946365000000128],[-83.715285999999878,69.947754000000145],[-83.898620999999991,69.960815000000082],[-83.944716999999969,69.965820000000122],[-84.00167799999997,69.974152000000117],[-84.010833999999932,69.976653999999996],[-84.041672000000005,69.981369000000029],[-84.082779000000016,69.985260000000096],[-84.161666999999966,69.984985000000052],[-84.314162999999951,69.979706000000078],[-84.560546999999872,69.993866000000025],[-84.65695199999999,70.002487000000087],[-84.728606999999897,70.010269000000051],[-84.783889999999985,70.01887499999998],[-85.163054999999929,70.09137000000004],[-85.176102000000014,70.093048000000124],[-85.335280999999952,70.102478000000019],[-85.353881999999942,70.103317000000004],[-85.369155999999975,70.103591999999992],[-85.666397000000018,70.104705999999965],[-85.719727000000034,70.103591999999992],[-85.752501999999936,70.101929000000041],[-85.84722899999997,70.088882000000069],[-85.869445999999868,70.085541000000035],[-85.874999999999943,70.083328000000051],[-85.878051999999968,70.076935000000105],[-85.876099000000011,70.071930000000066],[-85.854720999999984,70.040817000000061],[-85.851669000000015,70.038315000000125],[-85.838333000000034,70.041931000000034],[-85.826950000000011,70.046371000000022],[-85.801940999999943,70.05442800000003],[-85.785278000000005,70.058319000000097],[-85.732772999999952,70.066939999999988],[-85.691665999999941,70.070541000000048],[-85.636397999999986,70.071930000000066],[-85.618057000000022,70.070831000000055],[-85.585555999999997,70.067490000000021],[-85.468833999999902,70.049263000000053],[-85.376937999999996,70.032211000000132],[-85.350280999999995,70.026382000000126],[-85.25140399999998,69.998322000000087],[-85.243056999999908,69.994979999999998],[-85.236114999999984,69.989150999999993],[-85.239440999999943,69.986649000000057],[-85.244995000000017,69.984421000000111],[-85.25778200000002,69.983871000000079],[-85.41339099999999,69.997429000000125],[-85.441230999999959,70.00093099999998],[-85.451224999999965,70.001769999999908],[-85.577498999999932,70.009995000000117],[-85.613892000000021,70.009995000000117],[-85.635009999999909,70.007491999999957],[-85.651947000000007,70.00360100000006],[-85.678328999999906,69.995254999999986],[-85.695267000000001,69.991363999999919],[-85.726943999999946,69.990539999999953],[-85.808334000000002,69.99859600000002],[-85.823333999999988,70.000275000000045],[-85.851944000000003,70.005554000000018],[-86.093063000000029,70.062484999999981],[-86.230835000000013,70.098602000000142],[-86.255004999999926,70.10554500000012],[-86.301940999999943,70.121643000000006],[-86.326400999999976,70.132202000000007],[-86.551940999999999,70.234984999999995],[-86.556106999999997,70.244705000000124],[-86.581115999999952,70.356934000000081],[-86.577224999999999,70.36554000000001],[-86.55860899999999,70.386932000000002],[-86.541945999999996,70.401382000000126],[-86.524170000000026,70.411652000000061],[-86.512787000000003,70.416382000000056],[-86.481109999999944,70.424698000000149],[-86.448333999999932,70.431655999999975],[-86.373046999999985,70.445816000000093],[-86.313048999999864,70.46276899999998],[-86.294997999999964,70.472762999999986],[-86.287506000000008,70.484420999999998],[-86.297774999999945,70.494141000000127],[-86.313889000000017,70.502777000000037],[-86.334441999999967,70.511658000000125],[-86.353607000000011,70.519440000000088],[-86.36221299999994,70.522765999999933],[-86.374709999999993,70.525269000000094],[-86.390839000000028,70.522217000000012],[-86.389998999999989,70.519989000000066],[-86.383895999999879,70.513611000000083],[-86.375548999999978,70.508881000000031],[-86.367767000000015,70.504715000000147],[-86.350280999999995,70.49832200000003],[-86.339721999999938,70.491652999999928],[-86.339447000000007,70.486374000000126],[-86.34056099999998,70.483870999999965],[-86.363327000000027,70.474152000000004],[-86.37388599999997,70.470261000000107],[-86.407501000000025,70.459991000000002],[-86.51568599999996,70.433640000000025],[-86.565001999999936,70.425537000000134],[-86.578338999999971,70.422211000000118],[-86.589721999999995,70.417479999999955],[-86.62777699999998,70.395538000000101],[-86.651397999999972,70.374695000000031],[-86.662216000000001,70.361099000000081],[-86.65943900000002,70.357208000000014],[-86.638335999999924,70.324432000000058],[-86.647232000000031,70.319443000000092],[-86.655563000000029,70.318878000000041],[-86.839721999999995,70.320267000000058],[-86.861938000000009,70.322220000000016],[-86.876099000000011,70.326096000000064],[-86.881103999999937,70.329711999999972],[-86.990554999999915,70.431655999999975],[-86.988892000000021,70.435532000000023],[-86.982497999999964,70.438873000000058],[-86.953613000000018,70.442474000000118],[-86.936935000000005,70.443313999999987],[-86.92471299999994,70.446091000000081],[-86.922775000000001,70.447754000000032],[-86.921386999999925,70.451660000000061],[-86.92193599999996,70.455550999999957],[-86.928329000000019,70.460541000000035],[-86.937209999999936,70.463608000000136],[-86.953338999999971,70.467209000000025],[-86.967772999999909,70.468048000000124],[-86.996384000000035,70.467484000000013],[-87.034164000000033,70.464157000000057],[-87.072509999999966,70.457489000000123],[-87.08944699999995,70.453323000000012],[-87.132767000000001,70.439148000000102],[-87.140563999999983,70.434981999999991],[-87.182220000000029,70.399428999999998],[-87.184998000000007,70.388596000000007],[-87.05749499999996,70.381653000000028],[-87.043883999999991,70.379974000000004],[-87.031676999999945,70.377472000000125],[-87.010558999999944,70.37164300000012],[-86.991378999999995,70.364150999999993],[-86.981109999999944,70.35803199999998],[-86.972777999999948,70.351929000000041],[-86.976395000000025,70.284714000000065],[-86.985824999999977,70.281662000000097],[-86.999434999999949,70.280548000000124],[-87.009170999999924,70.281097000000102],[-87.107498000000021,70.28804000000008],[-87.184433000000013,70.295532000000037],[-87.255004999999983,70.30664100000007],[-87.5625,70.322768999999937],[-87.673614999999984,70.319153000000085],[-87.669998000000021,70.298598999999967],[-87.643889999999999,70.295822000000044],[-87.628601000000003,70.29304500000012],[-87.61721799999998,70.289429000000098],[-87.610275000000001,70.284714000000065],[-87.613327000000027,70.281936999999971],[-87.62388599999997,70.278046000000074],[-87.704177999999956,70.257217000000082],[-87.77694699999995,70.24331699999999],[-87.796951000000035,70.240265000000079],[-87.833892999999989,70.238037000000134],[-87.8663939999999,70.238876000000062],[-87.914444000000003,70.24136400000009],[-87.923049999999989,70.242751999999996],[-87.935546999999985,70.24693300000007],[-88.012825000000021,70.277267000000109],[-88.088165000000004,70.285095000000126],[-88.138610999999912,70.296097000000032],[-88.250564999999938,70.321381000000031],[-88.263061999999934,70.325272000000098],[-88.264724999999942,70.328049000000021],[-88.256957999999997,70.333878000000027],[-88.214171999999962,70.351379000000009],[-88.20666499999993,70.352478000000133],[-88.061774999999955,70.329544000000055],[-88.05494699999997,70.327369999999974],[-88.050109999999904,70.325042999999994],[-88.038283999999919,70.315536000000122],[-88.030784999999923,70.314033999999992],[-88.02427699999987,70.313202000000103],[-87.994445999999982,70.31203499999998],[-87.916397000000018,70.301926000000037],[-87.901671999999905,70.304428000000144],[-87.888610999999969,70.308029000000033],[-87.879989999999964,70.311371000000122],[-87.882492000000013,70.316375999999991],[-87.889998999999989,70.321930000000009],[-87.914718999999991,70.331665000000044],[-88.083618000000001,70.378036000000066],[-88.111938000000009,70.384155000000078],[-88.166945999999996,70.394440000000031],[-88.374434999999949,70.432205000000124],[-88.439986999999917,70.438583000000051],[-88.579177999999956,70.450271999999984],[-88.670272999999952,70.453598000000056],[-88.679442999999992,70.453598000000056],[-88.693053999999961,70.455261000000121],[-88.797775000000001,70.489700000000028],[-88.897506999999962,70.53276100000005],[-88.914443999999889,70.546096999999975],[-88.985824999999863,70.608322000000101],[-89.00389100000001,70.624984999999981],[-89.009170999999981,70.636383000000023],[-88.999999999999943,70.645538000000045],[-88.999725000000012,70.651657000000057],[-89.005279999999914,70.656936999999971],[-89.076674999999966,70.696930000000009],[-89.105834999999956,70.707489000000066],[-89.118880999999988,70.711380000000133],[-89.143889999999942,70.717209000000139],[-89.203888000000006,70.737198000000035],[-89.261123999999995,70.759720000000129],[-89.285278000000005,70.769714000000135],[-89.330565999999919,70.791931000000034],[-89.369719999999973,70.814697000000081],[-89.374161000000015,70.819153000000142],[-89.448333999999988,70.902481000000023],[-89.447219999999902,70.906647000000078],[-89.443603999999937,70.910262999999929],[-89.432495000000017,70.915268000000026],[-89.416397000000018,70.918594000000041],[-89.371658000000025,70.925812000000064],[-89.298614999999927,70.933043999999995],[-89.222777999999948,70.935531999999967],[-89.20944199999991,70.939147999999989],[-89.205840999999964,70.942749000000049],[-89.188599000000011,70.960815000000025],[-89.195267000000001,70.968323000000055],[-89.205565999999919,70.973602000000028],[-89.270279000000016,70.983597000000145],[-89.315276999999924,70.991653000000042],[-89.340560999999923,70.997482000000048],[-89.354720999999927,71.001937999999939],[-89.49499499999996,71.0577550000001],[-89.549727999999959,71.088593000000117],[-89.491378999999938,71.092209000000139],[-89.469726999999978,71.091933999999924],[-89.228333000000021,71.072768999999994],[-89.216948999999943,71.06999200000007],[-89.208617999999944,71.063034000000073],[-89.215285999999935,71.056641000000127],[-89.218063000000029,71.050812000000121],[-89.212509000000011,71.045532000000037],[-89.203063999999983,71.03804000000008],[-89.196655000000021,71.035263000000043],[-89.178604000000007,71.031372000000147],[-89.134444999999971,71.026932000000102],[-89.117767000000015,71.026657000000114],[-89.100829999999917,71.027771000000087],[-89.076110999999969,71.030272999999966],[-89.039443999999946,71.035263000000043],[-88.979996000000028,71.041092000000049],[-88.904723999999987,71.045258000000103],[-88.689163000000008,71.046936000000017],[-88.617767000000015,71.044434000000138],[-88.490279999999984,71.031097000000102],[-88.478881999999942,71.029709000000025],[-88.43249499999996,71.021927000000062],[-88.380279999999971,71.011931999999945],[-88.369155999999975,71.007492000000127],[-88.365829000000019,71.001937999999939],[-88.36332699999997,70.99552900000009],[-88.362503000000004,70.990265000000136],[-88.362777999999992,70.984146000000067],[-88.360274999999945,70.977767999999969],[-88.356948999999986,70.972214000000122],[-88.343612999999948,70.961380000000077],[-88.332503999999972,70.957213999999965],[-88.318618999999899,70.95387299999993],[-88.289718999999934,70.950272000000098],[-88.260833999999988,70.947754000000089],[-88.025283999999942,70.930542000000059],[-87.999999999999886,70.929153000000099],[-87.968886999999881,70.928588999999931],[-87.930557000000022,70.929428000000087],[-87.912780999999995,70.931366000000025],[-87.857772999999895,70.941360000000032],[-87.798049999999932,70.949707000000046],[-87.752791999999999,70.953598000000113],[-87.699996999999996,70.955551000000071],[-87.664443999999946,70.954712000000086],[-87.62748699999986,70.95138500000013],[-87.610549999999932,70.949417000000039],[-87.559433000000013,70.947479000000101],[-87.43582200000003,70.944976999999994],[-87.371216000000004,70.944725000000119],[-87.353607000000011,70.945250999999928],[-87.345551,70.949417000000039],[-87.343063000000029,70.954162999999937],[-87.343613000000005,70.959427000000119],[-87.337783999999886,70.969986000000006],[-87.329177999999956,70.980545000000006],[-87.30860899999999,70.99552900000009],[-87.298889000000031,71],[-87.286117999999988,71.004166000000112],[-87.267226999999878,71.006942999999978],[-87.246947999999918,71.009155000000078],[-87.212508999999955,71.007492000000127],[-87.151397999999858,71],[-87.141388000000006,70.997757000000036],[-87.11610399999995,70.994705000000124],[-87.051392000000021,70.987761999999975],[-87.033614999999998,70.986649000000057],[-87.017501999999922,70.986649000000057],[-87.004180999999903,70.990265000000136],[-87.003066999999987,70.991089000000102],[-87.002791999999999,70.994141000000013],[-87.009734999999978,70.996093999999971],[-87.039444000000003,71.000823999999966],[-87.135009999999966,71.011383000000023],[-87.166397000000018,71.014435000000105],[-87.184433000000013,71.01527400000009],[-87.279175000000009,71.026932000000102],[-87.385833999999988,71.041930999999977],[-87.394729999999981,71.043594000000098],[-87.404723999999931,71.047211000000061],[-87.410827999999981,71.053314],[-87.472777999999948,71.074157999999954],[-87.572783999999956,71.09526100000005],[-87.701400999999976,71.123306000000071],[-87.712783999999999,71.126082999999994],[-87.760283999999956,71.143051000000071],[-87.848891999999864,71.184982000000048],[-87.851943999999946,71.191925000000026],[-87.852492999999981,71.19720500000011],[-87.848343,71.202209000000039],[-87.825286999999946,71.217209000000025],[-87.823059000000001,71.223601999999971],[-87.816665999999941,71.254714999999976],[-87.821945000000028,71.258331000000055],[-87.829452999999944,71.261932000000115],[-87.844161999999926,71.264160000000061],[-87.900283999999999,71.268600000000049],[-87.911666999999909,71.266936999999984],[-87.971938999999963,71.250274999999988],[-88.019729999999981,71.236098999999967],[-88.034163999999976,71.231658999999979],[-88.041945999999939,71.228867000000037],[-88.131103999999993,71.219147000000135],[-88.321670999999981,71.228592000000049],[-88.583618000000001,71.234984999999995],[-88.70666499999993,71.247756999999979],[-88.849990999999989,71.259720000000016],[-89.058043999999995,71.276382000000012],[-89.20666499999993,71.283325000000048],[-89.299163999999962,71.287491000000102],[-89.42860399999995,71.294434000000081],[-89.703888000000006,71.31581100000011],[-89.816665999999998,71.324997000000053],[-89.830001999999979,71.328872999999987],[-89.89973399999991,71.351379000000122],[-89.907227000000034,71.354706000000078],[-89.964721999999995,71.411377000000016],[-89.968613000000005,71.416931000000034],[-89.983063000000016,71.446930000000009],[-90.010558999999887,71.57777400000009],[-90.013061999999934,71.600266000000033],[-90.004729999999938,71.630813999999987],[-90.00306699999993,71.635817999999972],[-89.99722300000002,71.641373000000044],[-89.964721999999995,71.655822999999941],[-89.932769999999948,71.667755000000113],[-89.896117999999944,71.679977000000065],[-89.884734999999921,71.684708000000001],[-89.817504999999983,71.724701000000039],[-89.808334000000002,71.747757000000092],[-89.821395999999936,71.760269000000051],[-89.831389999999942,71.760269000000051],[-89.836120999999991,71.761658000000068],[-89.843062999999972,71.764434999999992],[-89.893615999999952,71.789428999999927],[-89.954453000000001,71.820541000000048],[-89.960281000000009,71.824158000000011],[-90.026672000000019,71.892761000000064],[-90.048614999999984,71.953873000000101],[-90.001113999999916,72.063034000000073],[-89.993057000000022,72.070540999999992],[-89.962783999999999,72.07748399999997],[-89.812209999999993,72.111923000000047],[-89.750838999999928,72.12303199999991],[-89.738891999999964,72.124985000000038],[-89.725829999999974,72.124695000000031],[-89.718886999999995,72.121917999999937],[-89.715835999999967,72.118591000000038],[-89.704726999999991,72.113312000000008],[-89.691665999999941,72.109985000000108],[-89.682494999999903,72.110535000000141],[-89.664718999999934,72.113312000000008],[-89.597503999999958,72.148331000000098],[-89.579726999999991,72.158874999999966],[-89.574721999999952,72.163605000000018],[-89.576674999999966,72.169144000000017],[-89.584732000000031,72.175811999999951],[-89.598891999999978,72.178040000000124],[-89.618057000000022,72.17886400000009],[-89.676665999999955,72.17692599999998],[-89.705841000000021,72.174697999999978],[-89.724716000000001,72.172485000000052],[-89.738891999999964,72.168593999999985],[-89.759445000000028,72.159988000000055],[-89.770553999999947,72.157485999999949],[-89.780563000000029,72.157485999999949],[-89.802489999999921,72.161925999999994],[-89.892226999999991,72.186919999999986],[-89.897232000000031,72.188583000000051],[-89.901397999999915,72.194137999999953],[-89.939437999999939,72.261932000000058],[-89.954177999999956,72.304977000000065],[-89.957503999999915,72.316086000000098],[-89.95666499999993,72.321655000000135],[-89.913329999999974,72.422211000000061],[-89.907500999999968,72.432205000000067],[-89.89056399999987,72.444977000000051],[-89.87249799999995,72.449142000000052],[-89.860275000000001,72.451096000000121],[-89.813613999999973,72.456650000000081],[-89.799438000000009,72.46026599999999],[-89.793609999999887,72.462768999999923],[-89.777221999999995,72.493866000000025],[-89.775283999999886,72.498596000000077],[-89.772506999999962,72.51998900000001],[-89.772781000000009,72.526093000000003],[-89.786666999999966,72.559982000000048],[-89.753890999999953,72.60554499999995],[-89.736937999999952,72.616652999999985],[-89.699996999999939,72.625259000000085],[-89.678329000000019,72.629424999999969],[-89.65695199999999,72.630264000000125],[-89.643616000000009,72.62692300000009],[-89.614715999999987,72.616089000000045],[-89.597503999999958,72.614700000000028],[-89.572784000000013,72.616928000000144],[-89.560546999999929,72.621918000000051],[-89.470550999999944,72.666091999999992],[-89.473617999999874,72.672485000000108],[-89.511947999999961,72.688873000000001],[-89.525283999999999,72.693863000000022],[-89.549164000000019,72.691085999999927],[-89.567504999999926,72.693039000000056],[-89.574721999999952,72.698868000000061],[-89.580001999999922,72.711105000000032],[-89.581389999999999,72.71775800000006],[-89.574721999999952,72.785263000000043],[-89.569457999999941,72.786925999999937],[-89.479445999999996,72.779709000000025],[-89.446380999999917,72.775542999999971],[-89.36471599999993,72.762206999999989],[-89.330565999999919,72.755829000000006],[-89.294158999999922,72.797211000000061],[-89.333327999999995,72.950546000000145],[-89.358337000000006,72.965271000000087],[-89.361388999999974,72.991652999999985],[-89.308883999999978,73.048324999999977],[-89.228333000000021,73.125809000000004],[-89.043335000000013,73.252486999999974],[-89.035827999999981,73.257492000000013],[-89.00028999999995,73.278320000000122],[-88.990554999999972,73.283599999999979],[-88.856948999999986,73.336105000000032],[-88.695830999999941,73.411926000000108],[-88.68360899999999,73.417480000000069],[-88.468062999999972,73.491928000000087],[-88.433318999999926,73.514159999999947],[-88.409164000000033,73.523605000000032],[-88.286391999999978,73.566939999999988],[-88.263061999999934,73.573883000000023],[-88.074721999999895,73.627762000000018],[-87.974441999999954,73.654709000000139],[-87.92332499999992,73.667755000000056],[-87.817229999999995,73.694427000000132],[-87.780288999999982,73.703048999999965],[-87.739990000000034,73.711380000000077],[-87.539444000000003,73.746643000000063],[-87.456664999999987,73.760269000000051],[-87.183608999999933,73.792755000000113],[-87.049438000000009,73.80831900000004],[-86.71665999999999,73.840820000000122],[-86.596663999999976,73.84526100000005],[-86.493057000000022,73.844437000000084],[-86.401397999999915,73.845824999999991],[-86.239440999999999,73.849152000000117],[-86.208618000000001,73.849991000000102],[-86.109160999999972,73.849991000000102],[-85.747771999999998,73.836380000000133],[-85.706664999999987,73.832214000000022],[-85.553054999999972,73.820830999999998],[-85.520003999999972,73.81999200000007],[-85.462508999999955,73.820830999999998],[-85.421936000000017,73.824158000000125],[-85.307770000000005,73.821106000000043],[-85.16332999999986,73.813309000000061],[-85.121108999999933,73.809981999999991],[-85.104995999999971,73.808029000000033],[-85.069457999999884,73.801926000000094],[-85.034728999999913,73.794708000000071],[-84.970001000000025,73.777771000000087],[-84.837783999999999,73.741652999999985],[-84.842772999999966,73.735809000000017],[-84.865554999999915,73.713318000000015],[-84.922501000000011,73.680267000000072],[-84.931380999999988,73.67553700000002],[-84.956116000000009,73.665267999999969],[-84.985000999999954,73.655823000000112],[-85.340835999999854,73.556366000000139],[-85.596389999999985,73.486649000000114],[-85.766402999999855,73.425262000000032],[-85.851104999999961,73.391098],[-85.930282999999974,73.355255],[-86.046660999999858,73.287201000000039],[-86.137787000000003,73.228867000000037],[-86.292220999999984,73.103317000000118],[-86.296386999999982,73.097488000000055],[-86.294448999999929,73.091095000000109],[-86.288895000000025,73.087204000000042],[-86.28443900000002,73.08248900000001],[-86.284163999999976,73.077208999999982],[-86.287216000000001,73.072495000000004],[-86.328339000000028,73.036651999999947],[-86.454452999999887,72.963607999999965],[-86.474716000000001,72.953323000000069],[-86.495269999999891,72.943314000000044],[-86.50556899999998,72.938309000000004],[-86.571120999999948,72.908875000000023],[-86.627212999999927,72.883605999999986],[-86.647506999999962,72.873306000000071],[-86.653610000000015,72.868866000000082],[-86.658339999999953,72.863602000000071],[-86.695540999999992,72.819153000000142],[-86.696654999999964,72.816666000000055],[-86.732773000000009,72.716095000000109],[-86.703339000000028,72.659148999999957],[-86.698333999999988,72.652205999999978],[-86.686935000000005,72.644714000000022],[-86.662216000000001,72.631653000000085],[-86.638335999999924,72.620529000000033],[-86.611389000000031,72.60914600000001],[-86.504181000000017,72.56860400000005],[-86.479720999999984,72.56053200000008],[-86.466110000000015,72.556365999999969],[-86.451401000000033,72.553040000000124],[-86.414443999999946,72.541656000000046],[-86.397232000000031,72.534988000000055],[-86.353057999999976,72.511658000000068],[-86.33805799999999,72.503051999999968],[-86.283066000000019,72.468323000000112],[-86.275832999999977,72.463318000000072],[-86.267776000000026,72.456375000000094],[-86.255004999999926,72.443588000000091],[-86.240829000000019,72.420258000000103],[-86.240829000000019,72.406647000000135],[-86.24610899999999,72.394989000000123],[-86.258057000000008,72.384430000000066],[-86.275283999999942,72.373871000000008],[-86.308043999999995,72.359146000000067],[-86.350829999999917,72.339156999999943],[-86.377776999999924,72.323608000000036],[-86.396117999999944,72.30914300000012],[-86.428054999999915,72.281937000000084],[-86.43582200000003,72.270264000000054],[-86.455276000000026,72.207214000000079],[-86.434432999999956,72.049987999999928],[-86.432495000000017,72.043319999999994],[-86.425827000000027,72.024993999999992],[-86.420546999999999,72.012771999999984],[-86.336670000000026,71.951934999999992],[-86.166107000000011,71.824996999999996],[-86.132766999999944,71.795822000000101],[-86.110549999999989,71.783051],[-86.078613000000018,71.775542999999971],[-86.051666000000012,71.771652000000074],[-86.024444999999957,71.765823000000069],[-85.947219999999959,71.726928999999984],[-85.905563000000029,71.699707000000046],[-85.871933000000013,71.676926000000037],[-85.500838999999985,71.511108000000092],[-85.391952999999944,71.481659000000093],[-85.374161000000015,71.47886699999998],[-85.228606999999954,71.465546000000074],[-84.948607999999979,71.421646000000067],[-84.93472300000002,71.418319999999994],[-84.929992999999968,71.414429000000098],[-84.859160999999972,71.321105999999986],[-84.838057999999933,71.29193099999992],[-84.834166999999979,71.285262999999986],[-84.83277899999996,71.278869999999984],[-84.833892999999932,71.274154999999951],[-84.835555999999997,71.271652000000017],[-84.848343,71.269440000000145],[-84.868606999999997,71.268875000000094],[-84.921660999999972,71.270828000000051],[-85.041945999999996,71.278594999999996],[-85.172500999999897,71.272490999999945],[-85.173888999999974,71.269989000000066],[-85.178329000000019,71.266388000000006],[-85.389998999999932,71.196640000000059],[-85.399993999999936,71.193862999999965],[-85.50028999999995,71.177200000000084],[-85.514724999999999,71.176086000000112],[-85.532501000000025,71.177200000000084],[-85.663054999999986,71.194427000000132],[-85.761397999999986,71.192200000000071],[-85.838333000000034,71.187485000000038],[-85.932769999999948,71.17886400000009],[-85.966659999999933,71.171097000000145],[-86.170836999999949,71.106934000000081],[-86.210830999999985,71.09387200000009],[-86.21444699999995,71.089705999999978],[-86.206954999999994,71.083878000000084],[-86.206115999999952,71.078049000000021],[-86.212783999999999,71.072768999999994],[-86.24888599999997,71.058594000000085],[-86.288605000000018,71.052200000000028],[-86.408051,71.035263000000043],[-86.450835999999924,71.031372000000147],[-86.517775999999969,71.031661999999983],[-86.643889999999999,71.019439999999975],[-86.749999999999943,71.007766999999944],[-86.770278999999903,71.004166000000112],[-86.785552999999993,71.000275000000045],[-86.798614999999984,70.996368000000075],[-86.819167999999877,70.98942599999998],[-86.820007000000032,70.988586000000112],[-86.806655999999975,70.983871000000079],[-86.75778200000002,70.97665399999994],[-86.713057999999933,70.974152000000061],[-86.601943999999946,70.97164900000007],[-86.547500999999954,70.978867000000093],[-86.430283000000031,70.988876000000118],[-86.292220999999984,71.000275000000045],[-86.270279000000016,71.002777000000094],[-86.224166999999852,71.014435000000105],[-86.026947000000007,71.071381000000088],[-85.832503999999915,71.127197000000137],[-85.802215999999987,71.135818000000029],[-85.779174999999952,71.139160000000004],[-85.670273000000009,71.148880000000077],[-85.650283999999999,71.149428999999998],[-85.505004999999983,71.158034999999927],[-85.411666999999966,71.17442299999999],[-85.391678000000013,71.174988000000042],[-85.288605000000018,71.159149000000127],[-85.274169999999913,71.15525800000006],[-85.110549999999989,71.161652000000061],[-85.042220999999927,71.181656000000032],[-85.037216000000001,71.183044000000109],[-84.99888599999997,71.187485000000038],[-84.961670000000026,71.188583000000108],[-84.944152999999972,71.187195000000031],[-84.875274999999988,71.172760000000096],[-84.849990999999989,71.154709000000082],[-84.84584000000001,71.147766000000104],[-84.87110899999999,71.073607999999922],[-84.875823999999852,71.06999200000007],[-84.879714999999919,71.069442999999922],[-84.904175000000009,71.078049000000021],[-84.935821999999973,71.092483999999956],[-84.950561999999934,71.09693900000002],[-84.966110000000015,71.10026600000009],[-84.9808349999999,71.101089000000002],[-85.00111400000003,71.100815000000068],[-85.142226999999934,71.086380000000133],[-85.146956999999986,71.082764000000054],[-85.112777999999935,71.079163000000051],[-85.061385999999914,71.076385000000016],[-84.99221799999998,71.077484000000027],[-84.976668999999902,71.075821000000076],[-84.960281000000009,71.072220000000016],[-84.92971799999998,71.004440000000045],[-84.926940999999943,70.988037000000134],[-84.930282999999974,70.981659000000036],[-84.941375999999991,70.970535000000098],[-84.950835999999981,70.965546000000131],[-84.963333000000034,70.955826000000059],[-84.975280999999995,70.945250999999928],[-84.976105000000018,70.933318999999983],[-84.970839999999953,70.927474999999959],[-84.964721999999938,70.922485000000108],[-84.958618000000001,70.919434000000081],[-84.941100999999946,70.918045000000063],[-84.814162999999951,70.919434000000081],[-84.798888999999974,70.921646000000123],[-84.793610000000001,70.926650999999993],[-84.748336999999992,70.975539999999967],[-84.748046999999985,70.988037000000134],[-84.771118000000001,71.037490999999989],[-84.803604000000007,71.047211000000061],[-84.819167999999991,71.057480000000112],[-84.827788999999996,71.068328999999949],[-84.829726999999878,71.073317999999915],[-84.828888000000006,71.079987000000017],[-84.826675000000023,71.085541000000148],[-84.801392000000021,71.148605000000032],[-84.766662999999994,71.197479000000044],[-84.770843999999954,71.254990000000021],[-84.781386999999938,71.261932000000115],[-84.786666999999909,71.267761000000121],[-84.793059999999969,71.278046000000018],[-84.796660999999915,71.297485000000108],[-84.797226000000023,71.303314000000114],[-84.762511999999901,71.406646999999964],[-84.749434999999949,71.416655999999989],[-84.731948999999929,71.424698000000149],[-84.720551,71.428314],[-84.693053999999961,71.434143000000006],[-84.678329000000019,71.435257000000036],[-84.660004000000015,71.431655999999975],[-84.653060999999923,71.431931000000134],[-84.571670999999924,71.440810999999997],[-84.557495000000017,71.444138000000123],[-84.547774999999945,71.447478999999987],[-84.539169000000015,71.451660000000061],[-84.531951999999933,71.456940000000145],[-84.526108000000022,71.46887200000009],[-84.526397999999915,71.478316999999947],[-84.530563000000029,71.492477000000065],[-84.533614999999941,71.502486999999974],[-84.546660999999972,71.527480999999966],[-84.554717999999923,71.541092000000106],[-84.561385999999914,71.549988000000042],[-84.564437999999939,71.552475000000129],[-84.610275000000001,71.562759000000142],[-84.636397999999929,71.570541000000105],[-84.648620999999991,71.57638500000013],[-84.65834000000001,71.583878000000141],[-84.654998999999975,71.608871000000022],[-84.653060999999923,71.612762000000089],[-84.642501999999979,71.622757000000036],[-84.625548999999978,71.633041000000048],[-84.610549999999989,71.641663000000051],[-84.604445999999996,71.646103000000039],[-84.606658999999922,71.649429000000112],[-84.625,71.665817000000004],[-84.628052000000025,71.668319999999937],[-84.635559000000001,71.670258000000103],[-84.649733999999967,71.672211000000004],[-84.710830999999928,71.676085999999998],[-84.77305599999994,71.678588999999988],[-84.782776000000013,71.678863999999976],[-84.827498999999989,71.675262000000032],[-84.867217999999923,71.66804500000012],[-84.886200000000031,71.654251000000102],[-84.926666000000012,71.636107999999979],[-84.975280999999995,71.644440000000145],[-85.097503999999958,71.655258000000117],[-85.176940999999999,71.656647000000135],[-85.196655000000021,71.655822999999941],[-85.230835000000013,71.659987999999942],[-85.263900999999976,71.665543000000071],[-85.279723999999987,71.668594000000041],[-85.291381999999999,71.672211000000004],[-85.570846999999958,71.77998400000007],[-85.579726999999991,71.784988000000055],[-85.573623999999938,71.790817000000061],[-85.557770000000005,71.79525799999999],[-85.543883999999935,71.795532000000094],[-85.458892999999989,71.79414399999996],[-85.449721999999952,71.796097000000088],[-85.436934999999949,71.800812000000121],[-85.432769999999948,71.806366000000139],[-85.431945999999982,71.814697000000024],[-85.434432999999899,71.818053999999961],[-85.551666000000012,71.896378000000027],[-85.559722999999963,71.900543000000027],[-85.744995000000017,71.941360000000032],[-85.845839999999896,71.962494000000049],[-85.900832999999977,71.969147000000021],[-85.939986999999974,71.973038000000088],[-85.963333000000034,71.974425999999994],[-86.002501999999993,71.978043000000127],[-86.022781000000009,71.980545000000006],[-86.026672000000019,71.981658999999979],[-86.039169000000015,71.988876000000118],[-86.043610000000001,71.99552900000009],[-86.050827000000027,72.011107999999979],[-86.047501000000011,72.013885000000073],[-85.981110000000001,72.028594999999996],[-85.778885000000002,72.026932000000102],[-85.538329999999974,72.059143000000006],[-85.509444999999914,72.068054000000132],[-85.495270000000005,72.078872999999987],[-85.440552000000025,72.132751000000098],[-85.449158000000011,72.158325000000104],[-85.481948999999929,72.173309000000017],[-85.50167799999997,72.184143000000063],[-85.502501999999993,72.251663000000065],[-85.49749799999995,72.255264000000125],[-85.48721299999994,72.260268999999994],[-85.291945999999882,72.25999500000006],[-85.271941999999967,72.259720000000016],[-85.029175000000009,72.25082400000008],[-85.013335999999981,72.250000000000114],[-84.936385999999914,72.235809000000131],[-84.919997999999964,72.232758000000103],[-84.867766999999958,72.220825000000048],[-84.861388999999917,72.217758000000117],[-84.847504000000015,72.205550999999957],[-84.839172000000019,72.194137999999953],[-84.815276999999924,72.181366000000139],[-84.803328999999906,72.177765000000079],[-84.710555999999997,72.151656999999943],[-84.612212999999997,72.141098000000113],[-84.595839999999953,72.137772000000041],[-84.512222000000008,72.114150999999993],[-84.286391999999978,72.028594999999996],[-84.275557999999933,72.023879999999963],[-84.269454999999994,72.020828000000051],[-84.261123999999995,72.016098000000056],[-84.258056999999894,72.011932000000115],[-84.25,71.998322000000087],[-84.239989999999921,71.973877000000016],[-84.236389000000031,71.961655000000064],[-84.230559999999855,71.95138500000013],[-84.225006000000008,71.945525999999916],[-84.218886999999995,71.940262000000132],[-84.208617999999888,71.93414300000012],[-84.194442999999978,71.930817000000047],[-84.184722999999963,71.930542000000059],[-84.178329000000019,71.932755000000043],[-84.172774999999945,71.937759000000142],[-84.168883999999878,71.944138000000009],[-84.158614999999998,71.977203000000088],[-84.164718999999877,72.021103000000096],[-84.171111999999994,72.024155000000007],[-84.218063000000029,72.044144000000131],[-84.270003999999915,72.051085999999998],[-84.285827999999981,72.054152999999928],[-84.319732999999871,72.0619200000001],[-84.346663999999976,72.069717000000026],[-84.357772999999952,72.076385000000016],[-84.379990000000021,72.108321999999987],[-84.380553999999961,72.123596000000077],[-84.456116000000009,72.133605999999986],[-84.473327999999981,72.135818000000029],[-84.613326999999913,72.163605000000018],[-84.652221999999938,72.17886400000009],[-84.72193900000002,72.213043000000084],[-84.933318999999926,72.284424000000001],[-84.935271999999941,72.289429000000041],[-84.917495999999971,72.299713000000054],[-84.829452999999944,72.348328000000095],[-84.816101000000003,72.352767999999912],[-84.801392000000021,72.354706000000078],[-84.769729999999981,72.356368999999972],[-84.715012000000002,72.355820000000051],[-84.661941999999954,72.354156000000046],[-84.565001999999993,72.348877000000073],[-84.521117999999944,72.350540000000137],[-84.500838999999928,72.353867000000093],[-84.48443599999996,72.358032000000094],[-84.436110999999926,72.374984999999981],[-84.433060000000012,72.378311000000053],[-84.442215000000033,72.383041000000048],[-84.453339000000028,72.382477000000108],[-84.471389999999928,72.379425000000026],[-84.571670999999924,72.361374000000012],[-84.864166000000012,72.36692800000003],[-84.872771999999998,72.36943100000002],[-84.876098999999954,72.372208000000114],[-84.875548999999921,72.394989000000123],[-84.870834000000002,72.400818000000129],[-84.857772999999952,72.405547999999953],[-84.836670000000026,72.408035000000041],[-84.817504999999983,72.406647000000135],[-84.800277999999992,72.406647000000135],[-84.786666999999909,72.40887500000008],[-84.768341000000021,72.444427000000019],[-84.767226999999934,72.447478999999987],[-84.768341000000021,72.451935000000049],[-84.771118000000001,72.457489000000066],[-84.776947000000007,72.458327999999995],[-84.791945999999996,72.45498699999996],[-84.918609999999944,72.425262000000089],[-85.008347000000015,72.399429000000112],[-85.021666999999979,72.394714000000079],[-85.144729999999925,72.359421000000111],[-85.339019999999948,72.406418000000031],[-85.370270000000005,72.414703000000031],[-85.515288999999996,72.458878000000027],[-85.535277999999948,72.469711000000018],[-85.610001000000011,72.53166200000004],[-85.618057000000022,72.540817000000061],[-85.61721799999998,72.545532000000094],[-85.613892000000021,72.550261999999975],[-85.598617999999931,72.555251999999996],[-85.508347000000015,72.561371000000008],[-85.486114999999927,72.564987000000087],[-85.478057999999976,72.568329000000006],[-85.473052999999993,72.571930000000066],[-85.475554999999986,72.575272000000041],[-85.481110000000001,72.577484000000084],[-85.499999999999943,72.58027600000014],[-85.559998000000007,72.582489000000123],[-85.623885999999914,72.586928999999941],[-85.641953000000001,72.592757999999947],[-85.654174999999952,72.598038000000031],[-85.664718999999934,72.60554499999995],[-85.703063999999927,72.634155000000021],[-85.705276000000026,72.637771999999984],[-85.70777899999996,72.646378000000084],[-85.70944199999991,72.73692299999999],[-85.688048999999978,72.893599999999992],[-85.68472300000002,72.898330999999928],[-85.679442999999992,72.903595000000109],[-85.592223999999987,72.959152000000074],[-85.581680000000006,72.964157000000114],[-85.570557000000008,72.966934000000037],[-85.549164000000019,72.969711000000132],[-85.499725000000012,72.974152000000004],[-85.481948999999929,72.974152000000004],[-85.378875999999934,72.971100000000092],[-85.283066000000019,72.964431999999931],[-85.257507000000032,72.960814999999968],[-85.127486999999974,72.940262000000132],[-85.077498999999932,72.929977000000008],[-85.015015000000005,72.916092000000106],[-84.96665999999999,72.904984000000127],[-84.93249499999996,72.896378000000027],[-84.874434999999949,72.885543999999925],[-84.819457999999997,72.880264000000068],[-84.707503999999972,72.869980000000055],[-84.668610000000001,72.867477000000065],[-84.61082499999992,72.861649000000114],[-84.504455999999948,72.846100000000035],[-84.437209999999993,72.833603000000039],[-84.404998999999918,72.826096000000121],[-84.389450000000011,72.822220000000016],[-84.320847000000015,72.800812000000121],[-84.291107000000011,72.791655999999989],[-84.257507000000032,72.785263000000043],[-84.188323999999966,72.774428999999941],[-83.991378999999938,72.745819000000097],[-83.97222899999997,72.744141000000013],[-83.958054000000004,72.746643000000063],[-83.955275999999913,72.748322000000087],[-83.953063999999927,72.752487000000087],[-83.956389999999999,72.754990000000078],[-83.989440999999999,72.76887499999998],[-84.040832999999964,72.77748100000008],[-84.073623999999995,72.781661999999983],[-84.108046999999942,72.785263000000043],[-84.218613000000005,72.794983000000116],[-84.246947999999975,72.79971299999994],[-84.291381999999942,72.812484999999981],[-84.311935000000005,72.820267000000115],[-84.335280999999952,72.829987000000017],[-84.419158999999922,72.853316999999947],[-84.528885000000002,72.882477000000051],[-84.577224999999942,72.892212000000086],[-84.652495999999985,72.899429000000055],[-84.706389999999999,72.905823000000055],[-84.74360699999994,72.910812000000021],[-84.760558999999944,72.914153999999996],[-84.791107000000011,72.921371000000079],[-84.855835000000013,72.937485000000038],[-84.870269999999948,72.942200000000071],[-85.059998000000007,72.996643000000006],[-85.223609999999951,73.014984000000027],[-85.513901000000033,73.019149999999911],[-85.535277999999948,73.021927000000005],[-85.537216000000001,73.028320000000008],[-85.47193900000002,73.098037999999917],[-85.447768999999937,73.120254999999986],[-85.44027699999998,73.125533999999959],[-85.429442999999935,73.130539000000056],[-85.415832999999964,73.135269000000051],[-85.406951999999933,73.136383000000023],[-85.395554000000004,73.135544000000095],[-85.379990000000021,73.133605999999929],[-85.37332200000003,73.130814000000044],[-85.369995000000017,73.128311000000053],[-85.363891999999964,73.120818999999926],[-85.35943599999996,73.113876000000118],[-85.358046999999942,73.109711000000118],[-85.333618000000001,73.092484000000127],[-85.300277999999935,73.078049000000021],[-85.256888999999944,73.071487000000104],[-85.248061999999948,73.068649000000107],[-85.240891000000033,73.066818000000126],[-85.188057000000015,73.059814000000074],[-85.175887999999986,73.058655000000101],[-85.166388999999981,73.060654000000113],[-85.171393999999964,73.066315000000088],[-85.152495999999985,73.072769000000108],[-85.186935000000005,73.096939000000134],[-85.226943999999946,73.115814000000057],[-85.229172000000005,73.12303200000008],[-85.227782999999988,73.129150000000038],[-85.223052999999993,73.134720000000129],[-85.213622999999984,73.13888500000013],[-85.191939999999988,73.141663000000108],[-85.148345999999947,73.141663000000108],[-85.089171999999962,73.137496999999996],[-85.053329000000019,73.13220200000012],[-85.003066999999874,73.121918000000107],[-84.988602000000014,73.116928000000087],[-84.921386999999982,73.098327999999924],[-84.904175000000009,73.09526100000005],[-84.829726999999878,73.085541000000148],[-84.772781000000009,73.081100000000049],[-84.556655999999975,73.064423000000033],[-84.212508999999955,73.040268000000026],[-84.077224999999942,73.03387500000008],[-83.92332499999992,73.033600000000035],[-83.867766999999901,73.029709000000139],[-83.84973100000002,73.027481000000023],[-83.832503999999972,73.024155000000007],[-83.761397999999929,73.006378000000097],[-83.718886999999995,72.989151000000106],[-83.634445000000028,72.982483000000116],[-83.633330999999941,72.983322000000101],[-83.634445000000028,72.986374000000012],[-83.648346000000004,72.991364000000033],[-83.692490000000021,73.005554000000132],[-83.776672000000019,73.031097000000045],[-83.879715000000033,73.051926000000037],[-83.913619999999923,73.058318999999983],[-83.93472300000002,73.061096000000077],[-83.955841000000021,73.06164600000011],[-83.974716000000001,73.060806000000071],[-84.039718999999991,73.056366000000082],[-84.05972300000002,73.056366000000082],[-84.095001000000025,73.058318999999983],[-84.197495000000004,73.068604000000107],[-84.236938000000009,73.081100000000049],[-84.248046999999985,73.083327999999995],[-84.275283999999999,73.086929000000055],[-84.433884000000035,73.106093999999985],[-84.531112999999948,73.110260000000096],[-84.547501000000011,73.111374000000069],[-84.584441999999967,73.115814000000057],[-84.736389000000031,73.137206999999989],[-84.789444000000003,73.145828000000108],[-84.865004999999883,73.163604999999961],[-84.912780999999939,73.175537000000134],[-84.942215000000033,73.181655999999975],[-84.985275000000001,73.190536000000009],[-85.020003999999972,73.196930000000066],[-85.058334000000002,73.200546000000088],[-85.100554999999986,73.201385000000073],[-85.138061999999934,73.204436999999984],[-85.170546999999942,73.210815000000139],[-85.17721599999993,73.213882000000069],[-85.184433000000013,73.21887200000009],[-85.188599000000011,73.223602000000142],[-85.188599000000011,73.228867000000037],[-85.138900999999976,73.299988000000042],[-85.134170999999981,73.305542000000059],[-85.115828999999962,73.314423000000147],[-85.077788999999882,73.329437000000041],[-85.017226999999991,73.348328000000095],[-84.979996000000028,73.35664399999996],[-84.808043999999938,73.388321000000133],[-84.78694200000001,73.388046000000088],[-84.756392999999946,73.381088000000091],[-84.741669000000002,73.376083000000051],[-84.72193900000002,73.362198000000149],[-84.712783999999942,73.348602000000028],[-84.694992000000013,73.326934999999992],[-84.685271999999998,73.319991999999957],[-84.654998999999975,73.305542000000059],[-84.424712999999997,73.232483000000059],[-84.408889999999985,73.228591999999992],[-84.392501999999922,73.226089000000002],[-84.377212999999927,73.224152000000004],[-84.355269999999905,73.223037999999974],[-84.33944699999995,73.226089000000002],[-84.347777999999948,73.232483000000059],[-84.413054999999986,73.272217000000012],[-84.451110999999969,73.288588999999945],[-84.460830999999985,73.291931000000091],[-84.48971599999993,73.299713000000054],[-84.563613999999973,73.313873000000115],[-84.576674999999909,73.317764000000011],[-84.586945000000014,73.323044000000095],[-84.597778000000005,73.330826000000059],[-84.653609999999958,73.387206999999933],[-84.656113000000005,73.390549000000078],[-84.652221999999938,73.393326000000002],[-84.642226999999934,73.397217000000069],[-84.625,73.401382000000069],[-84.583892999999989,73.409149000000014],[-84.434157999999968,73.435256999999979],[-84.284438999999963,73.461105000000089],[-84.229172000000005,73.47026100000005],[-84.194442999999978,73.474701000000039],[-84.171386999999925,73.47526600000009],[-84.113892000000021,73.469147000000078],[-83.751923000000033,73.427490000000034],[-83.724715999999944,73.41304000000008],[-83.717772999999966,73.405822999999998],[-83.719726999999978,73.399719000000118],[-83.724715999999944,73.393875000000094],[-83.728058000000033,73.381088000000091],[-83.720550999999944,73.365814000000057],[-83.712218999999948,73.351928999999927],[-83.702498999999875,73.339157000000114],[-83.689437999999939,73.323608000000036],[-83.665833000000021,73.307754999999986],[-83.657500999999968,73.303589000000102],[-83.648055999999997,73.300261999999975],[-83.630828999999949,73.297210999999947],[-83.613891999999964,73.296097000000145],[-83.600554999999929,73.297485000000052],[-83.593062999999972,73.301375999999948],[-83.590835999999911,73.307204999999954],[-83.591109999999958,73.313309000000004],[-83.594161999999983,73.325272000000041],[-83.624999999999943,73.415268000000026],[-83.633330999999941,73.428864000000033],[-83.642501999999979,73.439696999999967],[-83.652495999999985,73.445250999999985],[-83.663895000000025,73.449707000000103],[-83.679717999999923,73.453872999999987],[-83.696945000000028,73.457214000000022],[-83.754456000000005,73.463318000000072],[-83.810546999999929,73.470534999999984],[-83.954726999999934,73.492752000000053],[-83.978606999999954,73.49664300000012],[-83.993606999999997,73.500275000000045],[-84.00418099999996,73.504166000000112],[-84.006957999999941,73.509720000000129],[-83.996947999999975,73.51388500000013],[-83.979172000000005,73.518051000000014],[-83.740828999999962,73.567763999999954],[-83.577498999999989,73.59637500000008],[-83.445267000000001,73.615814],[-83.219161999999869,73.656647000000078],[-83.085280999999952,73.65776100000005],[-83.018340999999907,73.666091999999935],[-82.931106999999997,73.690536000000066],[-82.902221999999938,73.700272000000041],[-82.889998999999989,73.705261000000007],[-82.872771999999884,73.715546000000131],[-82.869720000000029,73.721099999999979],[-82.86332699999997,73.726089000000115],[-82.852782999999931,73.730270000000019],[-82.840835999999967,73.73275799999999],[-82.820846999999958,73.733597000000145],[-82.636123999999938,73.727767999999912],[-82.529998999999918,73.722214000000122],[-82.475006000000008,73.719985999999949],[-82.413894999999968,73.718871999999976],[-82.367492999999911,73.719147000000021],[-82.21945199999999,73.725266000000033],[-81.990828999999962,73.731368999999972],[-81.618057000000022,73.721099999999979],[-81.572509999999966,73.719711000000132],[-81.553878999999938,73.717209000000082],[-81.536666999999852,73.713882000000126],[-81.476105000000018,73.698029000000076],[-81.457229999999981,73.691086000000098],[-81.282500999999968,73.58027600000014],[-81.239715999999873,73.546936000000073],[-81.228881999999999,73.535538000000088],[-81.21945199999999,73.521378000000141],[-81.197494999999947,73.477203000000145],[-81.188323999999909,73.389709000000039],[-81.21166999999997,73.326096000000007],[-81.216109999999958,73.314697000000081],[-81.215835999999967,73.303863999999919],[-81.214172000000019,73.291931000000091],[-81.20944199999991,73.272766000000104],[-81.204726999999991,73.266662999999994],[-81.192490000000021,73.260543999999982],[-81.177490000000034,73.256378000000041],[-81.101668999999958,73.238312000000064],[-81.074448000000018,73.232208000000071],[-80.900283999999942,73.209427000000005],[-80.712783999999942,73.180267000000129],[-80.664718999999934,73.171097000000088],[-80.640839000000028,73.165543000000127],[-80.61721799999998,73.157760999999994],[-80.596389999999985,73.148041000000092],[-80.557769999999948,73.111374000000069],[-80.547501000000011,73.098037999999917],[-80.547774999999945,73.091369999999984],[-80.549437999999952,73.081940000000088],[-80.59333799999996,73.025818000000072],[-80.617492999999968,73.005554000000132],[-80.641388000000006,72.996094000000085],[-80.647507000000019,72.990540000000067],[-80.652221999999938,72.974700999999982],[-80.650833000000034,72.969146999999964],[-80.633895999999936,72.940536000000066],[-80.642501999999979,72.93553200000008],[-80.642775999999969,72.92886400000009],[-80.638335999999981,72.922760000000096],[-80.537216000000001,72.851089000000002],[-80.513901000000033,72.838882000000012],[-80.487777999999992,72.828598],[-80.440552000000025,72.818603999999993],[-80.405563000000029,72.813309000000118],[-80.349166999999966,72.806366000000139],[-80.333327999999938,72.803040000000067],[-80.319457999999941,72.799149],[-80.299987999999985,72.788040000000137],[-80.283614999999998,72.77748100000008],[-80.247498000000007,72.730545000000063],[-80.258056999999894,72.724425999999994],[-80.332229999999925,72.712494000000049],[-80.361664000000019,72.706099999999992],[-80.444991999999957,72.673599000000081],[-80.464721999999938,72.665268000000026],[-80.541381999999999,72.628860000000145],[-80.55610699999994,72.6202550000001],[-80.556380999999874,72.607208000000071],[-80.648620999999991,72.554977000000008],[-80.676391999999964,72.547211000000118],[-80.765288999999996,72.516937000000098],[-80.942489999999964,72.455261000000121],[-80.953887999999949,72.450546000000088],[-80.988327000000027,72.429703000000018],[-81.186935000000005,72.299149000000114],[-81.192490000000021,72.293594000000041],[-81.199722000000008,72.289153999999996],[-81.222504000000015,72.281662000000097],[-81.239166000000012,72.27777100000003],[-81.30471799999998,72.268326000000116],[-81.379439999999988,72.241652999999928],[-81.365279999999984,72.241652999999928],[-81.301392000000021,72.246094000000028],[-81.285827999999924,72.247208000000057],[-81.253066999999987,72.251938000000052],[-81.241942999999992,72.254439999999931],[-81.229720999999927,72.258606000000043],[-81.164169000000015,72.287201000000096],[-81.037506000000008,72.351089000000115],[-80.929442999999935,72.40026899999998],[-80.821670999999981,72.439148000000046],[-80.715012000000002,72.473037999999974],[-80.600554999999986,72.506653000000028],[-80.580291999999929,72.509995000000004],[-80.554442999999992,72.512497000000053],[-80.539443999999946,72.511658000000068],[-80.52555799999999,72.508040999999935],[-80.516402999999912,72.503875999999934],[-80.508895999999993,72.49664300000012],[-80.503066999999987,72.484985000000108],[-80.495270000000005,72.464157000000057],[-80.492767000000015,72.453049000000021],[-80.493606999999997,72.447205000000054],[-80.514174999999966,72.379700000000014],[-80.525009000000011,72.374146000000053],[-80.54222099999987,72.37052900000009],[-80.564437999999939,72.366653000000042],[-80.603058000000033,72.363037000000134],[-80.655562999999972,72.351928999999984],[-80.669158999999979,72.347214000000122],[-80.680556999999965,72.342209000000082],[-80.783324999999991,72.290267999999969],[-80.794158999999922,72.284714000000008],[-80.808333999999945,72.274155000000121],[-80.854172000000005,72.235535000000027],[-80.896956999999929,72.194427000000076],[-80.905563000000029,72.180542000000003],[-80.816665999999998,72.150542999999971],[-80.769454999999994,72.141663000000108],[-80.753890999999953,72.140548999999965],[-80.709732000000031,72.131927000000132],[-80.580840999999964,72.094437000000084],[-80.569457999999997,72.088318000000072],[-80.567229999999995,72.077208999999982],[-80.567229999999995,72.072768999999937],[-80.574172999999917,72.068329000000119],[-80.588333000000034,72.064148000000046],[-80.630554000000018,72.062195000000088],[-80.646118000000001,72.063309000000061],[-80.686661000000015,72.073043999999982],[-80.741942999999935,72.094147000000078],[-80.941100999999946,72.087494000000106],[-81.080291999999929,72.051651000000049],[-81.08666999999997,72.04664600000001],[-81.083327999999938,72.045532000000037],[-81.065001999999936,72.041655999999932],[-81.046660999999972,72.039978000000019],[-80.990554999999972,72.037766000000147],[-80.927215999999987,72.037766000000147],[-80.906386999999995,72.039978000000019],[-80.892226999999991,72.044144000000131],[-80.886397999999986,72.049713000000111],[-80.879439999999988,72.054152999999928],[-80.866652999999985,72.0577550000001],[-80.84722899999997,72.056641000000127],[-80.792770000000019,72.02777100000003],[-80.794158999999922,72.022491000000002],[-80.821395999999879,71.95637499999998],[-80.833327999999995,71.945815999999979],[-80.849441999999954,71.934707999999944],[-80.886123999999938,71.920821999999987],[-80.933318999999926,71.908875000000023],[-80.975005999999951,71.895827999999995],[-80.980834999999956,71.890273999999977],[-80.983611999999994,71.886383000000137],[-80.971664000000033,71.881653000000085],[-80.950287000000003,71.881088000000034],[-80.926392000000021,71.882750999999985],[-80.903610000000015,71.885268999999937],[-80.868056999999965,71.893051000000071],[-80.767226999999991,71.929428000000087],[-80.756119000000012,71.93414300000012],[-80.750290000000007,71.939697000000081],[-80.746947999999975,71.945251000000098],[-80.744720000000029,71.951934999999992],[-80.745834000000002,71.957488999999953],[-80.75556899999998,71.971099999999922],[-80.758346999999958,71.977768000000083],[-80.746947999999975,71.982483000000116],[-80.659164000000033,72.003052000000082],[-80.639449999999954,72.006377999999927],[-80.620543999999995,72.006103999999993],[-80.535277999999948,72.016098000000056],[-80.448883000000023,72.029160000000047],[-80.410552999999993,72.039429000000098],[-80.385009999999966,72.048325000000034],[-80.350554999999929,72.069153000000085],[-80.347777999999948,72.075272000000098],[-80.346663999999976,72.081100000000049],[-80.347228999999913,72.088318000000072],[-80.352492999999981,72.095534999999984],[-80.358611999999994,72.101379000000009],[-80.370269999999948,72.10803199999998],[-80.383056999999951,72.113312000000008],[-80.410278000000005,72.121368000000075],[-80.433884000000035,72.132751000000098],[-80.445540999999992,72.139709000000096],[-80.455275999999969,72.146652000000074],[-80.478607000000011,72.168593999999985],[-80.483321999999987,72.175261999999918],[-80.486938000000009,72.183044000000052],[-80.486664000000019,72.189423000000147],[-80.468062999999972,72.191925000000026],[-80.426940999999886,72.191086000000041],[-80.408614999999884,72.189148000000102],[-80.393616000000009,72.177200000000084],[-80.376663000000008,72.17442299999999],[-80.355559999999912,72.17442299999999],[-80.331389999999999,72.176086000000112],[-80.241103999999893,72.197754000000032],[-80.235274999999945,72.203323000000012],[-80.244445999999925,72.209717000000069],[-80.27305599999994,72.219147000000135],[-80.279723999999931,72.22554000000008],[-80.301665999999955,72.248596000000134],[-80.306380999999988,72.255264000000125],[-80.295546999999942,72.274429000000055],[-80.289718999999934,72.279984000000127],[-80.272231999999974,72.290267999999969],[-80.260833999999988,72.294983000000002],[-80.24221799999998,72.297485000000108],[-80.22444200000001,72.296371000000136],[-80.194153000000028,72.28776600000009],[-80.155838000000017,72.273605000000089],[-80.134734999999921,72.262771999999927],[-80.113051999999982,72.244141000000127],[-80.08555599999994,72.226654000000053],[-80.021392999999989,72.189697000000081],[-79.991668999999888,72.176651000000106],[-79.962783999999999,72.168868999999972],[-79.947220000000016,72.165267999999912],[-79.899733999999967,72.15554800000001],[-79.840285999999935,72.145263999999997],[-79.790557999999976,72.137772000000041],[-79.761123999999995,72.134155000000078],[-79.685546999999929,72.126372999999944],[-79.674437999999952,72.126647999999989],[-79.672501000000011,72.129700000000071],[-79.691665999999998,72.141663000000108],[-79.719161999999926,72.148331000000098],[-79.789992999999981,72.155823000000055],[-79.811110999999983,72.160263000000043],[-79.854995999999971,72.171097000000145],[-79.923889000000031,72.190536000000009],[-79.941101000000003,72.195816000000093],[-80.045546999999999,72.242477000000122],[-80.15194699999995,72.310531999999967],[-80.166396999999961,72.322220000000129],[-80.164443999999946,72.32748400000014],[-80.155562999999916,72.336928999999998],[-80.133620999999948,72.349716000000001],[-80.115279999999927,72.359421000000111],[-80.076400999999976,72.378859999999975],[-80.064712999999983,72.3836060000001],[-80.052215999999987,72.387771999999984],[-79.991942999999992,72.402771000000087],[-79.957229999999925,72.408325000000048],[-79.874434999999949,72.470534999999984],[-79.870834000000002,72.483046999999999],[-79.86332699999997,72.489699999999971],[-79.836944999999901,72.498596000000077],[-79.820847000000015,72.501389000000074],[-79.799164000000019,72.501389000000074],[-79.780562999999972,72.499420000000043],[-79.770844000000011,72.49664300000012],[-79.734160999999915,72.484420999999998],[-79.700561999999991,72.472488000000112],[-79.692215000000033,72.466933999999924],[-79.768638999999894,72.411766],[-79.687865999999985,72.384392000000105],[-79.595550999999944,72.334717000000126],[-79.638901000000033,72.289153999999996],[-79.668059999999912,72.280823000000112],[-79.705565999999976,72.273605000000089],[-79.720000999999968,72.269440000000088],[-79.731673999999998,72.264708999999982],[-79.759734999999921,72.250549000000092],[-79.768616000000009,72.2452550000001],[-79.774718999999891,72.239700000000028],[-79.775283999999999,72.233322000000044],[-79.769729999999925,72.225815000000125],[-79.75,72.215546000000074],[-79.732773000000009,72.212203999999986],[-79.712783999999999,72.211104999999975],[-79.701110999999969,72.215820000000008],[-79.565825999999959,72.275269000000094],[-79.485001000000011,72.325545999999974],[-79.355559999999912,72.399155000000007],[-79.342498999999975,72.40026899999998],[-79.329726999999991,72.397217000000069],[-79.243331999999953,72.374419999999986],[-79.182495000000017,72.358322000000101],[-79.146666999999979,72.345825000000104],[-79.113327000000027,72.331099999999992],[-79.082229999999925,72.313873000000001],[-79.012787000000003,72.273880000000133],[-78.945540999999935,72.199996999999996],[-78.943603999999993,72.193038999999999],[-78.946945000000028,72.186919999999986],[-79.036391999999978,72.069443000000092],[-79.136123999999938,72.007492000000127],[-79.145003999999972,72.002487000000087],[-79.156661999999983,71.997757000000036],[-79.206389999999942,71.986649000000057],[-79.229996000000028,71.980270000000019],[-79.233063000000016,71.976379000000122],[-79.203063999999983,71.961928999999998],[-79.19027699999998,71.958328000000108],[-79.176392000000021,71.955826000000059],[-79.161117999999931,71.954437000000041],[-79.138610999999912,71.955261000000007],[-79.123046999999929,71.958038000000101],[-79.099730999999963,71.967209000000082],[-79.090835999999854,71.972488000000055],[-79.072234999999921,71.974990999999989],[-79.061110999999926,71.975266000000033],[-79.026671999999962,71.970535000000098],[-78.81806899999998,71.935257000000092],[-78.768889999999999,71.92692599999998],[-78.722503999999901,71.918869000000029],[-78.683884000000035,71.909714000000008],[-78.65306099999998,71.893875000000037],[-78.639724999999999,71.884430000000009],[-78.625823999999852,71.879150000000095],[-78.585555999999997,71.865814],[-78.571395999999879,71.862762000000032],[-78.551392000000021,71.861098999999967],[-78.529174999999952,71.861649],[-78.511123999999995,71.864699999999971],[-78.503615999999965,71.868866000000082],[-78.508346999999901,71.876373000000001],[-78.595551,71.933318999999983],[-78.607498000000021,71.938583000000108],[-78.622222999999963,71.942200000000071],[-78.691375999999991,71.949707000000046],[-78.740554999999972,71.958038000000101],[-78.855559999999855,71.979706000000022],[-78.914444000000003,72.007767000000115],[-78.923614999999984,72.014999000000046],[-78.924438000000009,72.020538000000045],[-78.877486999999974,72.153320000000065],[-78.869445999999925,72.166656000000046],[-78.866104000000007,72.170532000000094],[-78.854445999999939,72.173035000000084],[-78.843613000000005,72.171097000000145],[-78.554442999999992,72.111374000000069],[-78.512221999999952,72.101089000000002],[-78.487777999999935,72.092484000000127],[-78.476105000000018,72.087204000000099],[-78.460830999999928,72.073318000000086],[-78.432770000000005,72.03804000000008],[-78.39527899999996,71.982483000000116],[-78.389998999999989,71.969437000000028],[-78.392775999999969,71.949997000000053],[-78.391678000000013,71.943587999999977],[-78.386672999999973,71.933318999999983],[-78.381942999999922,71.92804000000001],[-78.365279999999927,71.917480000000012],[-78.317779999999971,71.888321000000076],[-78.226669000000015,71.833054000000118],[-78.210830999999985,71.825821000000133],[-78.18499799999995,71.817490000000021],[-78.157607999999982,71.810577000000023],[-78.123046999999929,71.806366000000139],[-78.090560999999923,71.800812000000121],[-78.05972300000002,71.79414399999996],[-77.924437999999952,71.764709000000096],[-77.907775999999956,71.76638800000012],[-77.904448999999943,71.768051000000014],[-77.90695199999999,71.770538000000101],[-77.914169000000015,71.773605000000032],[-77.966659999999933,71.786652000000061],[-77.997498000000007,71.793319999999994],[-78.029723999999931,71.798874000000012],[-78.085830999999985,71.813309000000118],[-78.107223999999917,71.819153000000142],[-78.139998999999932,71.830551000000128],[-78.178878999999995,71.848602000000142],[-78.308884000000035,71.921096999999975],[-78.316665999999998,71.929428000000087],[-78.321395999999993,71.936920000000043],[-78.315001999999993,71.942474000000004],[-78.305266999999901,71.946930000000123],[-78.279175000000009,71.953598000000113],[-78.258895999999993,71.956650000000025],[-78.178878999999995,71.967209000000082],[-78.156951999999933,71.968323000000055],[-78.141677999999956,71.964157000000114],[-78.018616000000009,71.890823000000125],[-77.974716000000001,71.859984999999938],[-77.785552999999993,71.787490999999989],[-77.807769999999948,71.823044000000039],[-77.960006999999962,71.881653000000085],[-78.096953999999982,71.96804800000001],[-78.107223999999917,71.974152000000061],[-78.116393999999957,71.976928999999984],[-78.149733999999967,71.980545000000006],[-78.156386999999995,71.980545000000006],[-78.196105999999929,71.978592000000049],[-78.262222000000008,71.972763000000043],[-78.281386999999995,71.973877000000016],[-78.298614999999984,71.977478000000076],[-78.322509999999909,71.985809000000017],[-78.334166999999923,71.99136400000009],[-78.341110000000015,71.99859600000002],[-78.342498999999918,72.012771999999984],[-78.341674999999952,72.019149999999968],[-78.341674999999952,72.031936999999971],[-78.356948999999929,72.05831900000004],[-78.375548999999978,72.085815000000082],[-78.386672999999973,72.095534999999984],[-78.402221999999938,72.104980000000069],[-78.424437999999952,72.113602000000071],[-78.436935000000005,72.117477000000008],[-78.468886999999995,72.12414600000011],[-78.515014999999948,72.131363000000022],[-78.599990999999989,72.145263999999997],[-78.696654999999964,72.163605000000018],[-78.809998000000007,72.197205000000054],[-78.842498999999918,72.209152000000017],[-78.854720999999984,72.214432000000102],[-78.870834000000002,72.226654000000053],[-78.869155999999919,72.229706000000022],[-78.734725999999966,72.328598000000113],[-78.615829000000019,72.359146000000067],[-78.604172000000005,72.359421000000111],[-78.580565999999919,72.354156000000046],[-78.515839000000028,72.330551000000071],[-78.512511999999901,72.324432000000002],[-78.519164999999987,72.319153000000028],[-78.528335999999911,72.313873000000001],[-78.533324999999991,72.30914300000012],[-78.53694200000001,72.303314000000114],[-78.537780999999995,72.254715000000147],[-78.531386999999938,72.240265000000022],[-78.529174999999952,72.235535000000027],[-78.520843999999954,72.229155999999989],[-78.42193599999996,72.170822000000101],[-78.40834000000001,72.166382000000112],[-78.399733999999967,72.167206000000078],[-78.390839000000028,72.169982999999945],[-78.386123999999995,72.172485000000052],[-78.384170999999981,72.175537000000134],[-78.411117999999988,72.216660000000047],[-78.414718999999934,72.220535000000041],[-78.422775000000001,72.224152000000004],[-78.459732000000031,72.233871000000022],[-78.472777999999948,72.242477000000122],[-78.46833799999996,72.314986999999974],[-78.462783999999942,72.318878000000041],[-78.451110999999912,72.324158000000068],[-78.439437999999996,72.326660000000004],[-78.40834000000001,72.325821000000019],[-78.305266999999901,72.313309000000004],[-78.012512000000015,72.274994000000106],[-77.893615999999952,72.259430000000009],[-77.827498999999989,72.248596000000134],[-77.793883999999991,72.242202999999961],[-77.665282999999874,72.204712000000029],[-77.655272999999966,72.201385000000073],[-77.648620999999991,72.194137999999953],[-77.644454999999994,72.186646000000053],[-77.540833000000021,72.17692599999998],[-77.381103999999993,72.184982000000048],[-77.32417299999986,72.18609600000002],[-77.289444000000003,72.183319000000097],[-77.239989999999977,72.17442299999999],[-77.115828999999962,72.148331000000098],[-77.039443999999946,72.131653000000028],[-77.023330999999985,72.128860000000032],[-77.006118999999956,72.127472000000125],[-76.99722300000002,72.128036000000066],[-76.995833999999945,72.128860000000032],[-76.994719999999973,72.130539000000056],[-77.005004999999983,72.134430000000123],[-77.068619000000012,72.152206000000092],[-77.251677999999913,72.193313999999987],[-77.27806099999998,72.196930000000066],[-77.306945999999925,72.19802900000002],[-77.397232000000031,72.192748999999992],[-77.455840999999964,72.190811000000053],[-77.476944000000003,72.191360000000145],[-77.514175000000023,72.193862999999965],[-77.549987999999985,72.19802900000002],[-77.578888000000006,72.204163000000051],[-77.604172000000005,72.211929000000112],[-77.623885999999914,72.221100000000092],[-77.658614999999998,72.231658999999922],[-77.760833999999932,72.257217000000026],[-77.823058999999944,72.271927000000005],[-77.866104000000007,72.281097000000045],[-77.949996999999883,72.296097000000032],[-78.072509999999966,72.312485000000038],[-78.121384000000035,72.319716999999969],[-78.154723999999987,72.325545999999974],[-78.220001000000025,72.337769000000037],[-78.326950000000011,72.359146000000067],[-78.37388599999997,72.36943100000002],[-78.389175000000023,72.37303200000008],[-78.473327999999981,72.394989000000123],[-78.499161000000015,72.404709000000025],[-78.520843999999954,72.414993000000038],[-78.559158000000025,72.438034000000073],[-78.561110999999926,72.444977000000051],[-78.556655999999919,72.504440000000102],[-78.443053999999961,72.581939999999975],[-78.430556999999965,72.586655000000007],[-78.170273000000009,72.653594999999996],[-78.156386999999995,72.656937000000084],[-78.001677999999913,72.682480000000055],[-77.869994999999903,72.697479000000101],[-77.845001000000025,72.698868000000061],[-77.78083799999996,72.706940000000031],[-77.768616000000009,72.709427000000119],[-77.701401000000033,72.724701000000039],[-77.670273000000009,72.732208000000128],[-77.656951999999876,72.736099000000024],[-77.639998999999989,72.743865999999969],[-77.627486999999974,72.74859600000002],[-77.613892000000021,72.751663000000121],[-77.576401000000033,72.755554000000018],[-77.532226999999921,72.756943000000035],[-77.513625999999988,72.754715000000033],[-77.413054999999872,72.752212999999983],[-77.259734999999978,72.751663000000121],[-77.05581699999999,72.752861000000109],[-77.002501999999993,72.749419999999986],[-76.947219999999902,72.743865999999969],[-76.799728000000016,72.727478000000133],[-76.753066999999987,72.720534999999927],[-76.693053999999961,72.694702000000007],[-76.684997999999894,72.691085999999927],[-76.662505999999894,72.678588999999988],[-76.653609999999958,72.670821999999987],[-76.655272999999966,72.664429000000041],[-76.65972899999997,72.658324999999991],[-76.646118000000001,72.639708999999982],[-76.584732000000031,72.628585999999984],[-76.428328999999962,72.614151000000049],[-76.328339000000028,72.607483000000116],[-76.288329999999917,72.604980000000126],[-76.215285999999935,72.596100000000092],[-76.182219999999973,72.58998100000008],[-76.166945999999996,72.58638000000002],[-76.155562999999916,72.580826000000002],[-76.150283999999999,72.574158000000011],[-76.154723999999931,72.562485000000038],[-76.160552999999936,72.54942299999999],[-76.165833000000021,72.538315000000011],[-76.162506000000008,72.526093000000003],[-76.156112999999948,72.518051000000071],[-76.121657999999911,72.478317000000118],[-76.107773000000009,72.473037999999974],[-76.087783999999999,72.471648999999957],[-76.069457999999997,72.474991000000102],[-76.046386999999868,72.483597000000032],[-76.036941999999897,72.489426000000037],[-76.037780999999939,72.496368000000132],[-76.052215999999987,72.51138300000008],[-76.068619000000012,72.525818000000015],[-76.077224999999942,72.536377000000073],[-76.074172999999917,72.541656000000046],[-76.06471299999987,72.549988000000042],[-76.018889999999999,72.574431999999945],[-76.005843999999968,72.579163000000108],[-75.988601999999958,72.580826000000002],[-75.931945999999925,72.583603000000096],[-75.885284000000013,72.584152000000074],[-75.841948999999943,72.583053999999947],[-75.798888999999974,72.581939999999975],[-75.759170999999981,72.579163000000108],[-75.56806899999998,72.557479999999941],[-75.553328999999962,72.553589000000102],[-75.547226000000023,72.545532000000094],[-75.537780999999939,72.539703000000088],[-75.521117999999888,72.536102000000028],[-75.472228999999913,72.527480999999966],[-75.435271999999998,72.522491000000059],[-75.379439999999931,72.51638800000012],[-75.360001000000011,72.515548999999965],[-75.301666000000012,72.509720000000129],[-75.231673999999998,72.500549000000035],[-75.215285999999878,72.497482000000105],[-75.192490000000021,72.491928000000087],[-75.186661000000015,72.487488000000099],[-75.189163000000008,72.478317000000118],[-75.199158000000011,72.466933999999924],[-75.200287000000003,72.461929000000055],[-75.160277999999948,72.421097000000088],[-75.132492000000013,72.393600000000106],[-75.054169000000002,72.328873000000101],[-75.034164000000033,72.317490000000134],[-75,72.298369999999977],[-74.980559999999912,72.288315000000068],[-74.950835999999981,72.269989000000066],[-74.943603999999993,72.263321000000076],[-74.942490000000021,72.255829000000119],[-74.947494999999947,72.249710000000107],[-75.044997999999964,72.188308999999947],[-75.068068999999923,72.179152999999985],[-75.225280999999995,72.122482000000105],[-75.238326999999913,72.118317000000104],[-75.25306699999993,72.116378999999938],[-75.271666999999979,72.117203000000075],[-75.291381999999885,72.119431000000077],[-75.323623999999938,72.125534000000016],[-75.387511999999901,72.134430000000123],[-75.440552000000025,72.141098000000113],[-75.477782999999988,72.144714000000135],[-75.520003999999972,72.146102999999982],[-75.607498000000021,72.143326000000059],[-75.710006999999962,72.136658000000068],[-75.73332199999993,72.134155000000078],[-75.813889000000017,72.122482000000105],[-75.866652999999985,72.113876000000005],[-76.015015000000005,72.086655000000121],[-76.033324999999934,72.081100000000049],[-76.054717999999866,72.073043999999982],[-76.078063999999983,72.059417999999994],[-76.084166999999923,72.049713000000111],[-76.09973100000002,72.02887000000004],[-76.111938000000009,72.018050999999957],[-76.128052000000025,72.004166000000055],[-76.142226999999934,71.99331699999999],[-76.156386999999881,71.985260000000039],[-76.173614999999984,71.975540000000137],[-76.192490000000021,71.967758000000003],[-76.234726000000023,71.957488999999953],[-76.262511999999901,71.949707000000046],[-76.274445000000014,71.944427000000132],[-76.301665999999955,71.930542000000059],[-76.318344000000025,71.919983000000002],[-76.348052999999879,71.891662999999994],[-76.31082200000003,71.884720000000016],[-76.089721999999938,71.978867000000093],[-76.073058999999944,71.989425999999924],[-76.063323999999966,72],[-76.049727999999902,72.017761000000121],[-76.047501000000011,72.023604999999975],[-76.043609999999944,72.030272999999966],[-76.029448999999943,72.041091999999992],[-76.019729999999981,72.046097000000032],[-75.998610999999983,72.054152999999928],[-75.956115999999952,72.067215000000147],[-75.89445499999988,72.082214000000022],[-75.828338999999971,72.096939000000134],[-75.796660999999915,72.103591999999935],[-75.710555999999997,72.113312000000008],[-75.630554000000018,72.11970500000001],[-75.586120999999991,72.12164300000012],[-75.528335999999967,72.120818999999983],[-75.488051999999925,72.118866000000025],[-75.433060000000012,72.112761999999975],[-75.23332199999993,72.084152000000131],[-75.226105000000018,72.080276000000083],[-75.219451999999876,72.074432000000058],[-75.218886999999995,72.070267000000058],[-75.221114999999998,72.064696999999967],[-75.228881999999942,72.059143000000006],[-75.255279999999914,72.046097000000032],[-75.281676999999888,72.038589000000059],[-75.317504999999926,72.031661999999926],[-75.338332999999977,72.02887000000004],[-75.404174999999952,72.025543000000084],[-75.449432000000002,72.02526899999998],[-75.494155999999975,72.021378000000084],[-75.515015000000005,72.018326000000002],[-75.548049999999989,72.011107999999979],[-75.574172999999917,72.00360100000006],[-75.586670000000026,71.999146000000053],[-75.606383999999935,71.989425999999924],[-75.613892000000021,71.983871000000022],[-75.618880999999988,71.978592000000049],[-75.686661000000015,71.883040999999992],[-75.697495000000004,71.858322000000044],[-75.691375999999877,71.850266000000147],[-75.688048999999921,71.842758000000117],[-75.6875,71.839157000000057],[-75.692215000000033,71.833328000000051],[-75.802490000000034,71.750548999999978],[-75.830001999999979,71.736649000000114],[-75.872222999999906,71.721375000000023],[-75.898345999999947,71.714432000000045],[-75.934157999999968,71.711105000000089],[-75.953612999999962,71.710266000000104],[-75.997497999999894,71.709152000000131],[-76.040282999999931,71.709426999999948],[-76.067504999999869,71.706650000000081],[-76.079177999999956,71.704437000000098],[-76.090835999999911,71.702208999999982],[-76.096114999999998,71.697479000000101],[-76.095839999999953,71.693863000000079],[-76.085281000000009,71.691924999999912],[-75.901671999999962,71.701096000000064],[-75.880279999999971,71.70248400000014],[-75.846953999999982,71.708602999999982],[-75.819457999999941,71.716934000000094],[-75.794998000000021,71.725815000000011],[-75.787215999999944,71.730545000000063],[-75.675003000000004,71.810532000000023],[-75.654998999999975,71.826096000000121],[-75.580001999999865,71.906097000000045],[-75.570281999999963,71.917480000000012],[-75.565825999999959,71.929703000000075],[-75.567229999999938,71.937485000000038],[-75.570281999999963,71.941360000000032],[-75.574447999999961,71.953048999999965],[-75.571944999999971,71.958878000000141],[-75.569167999999991,71.963882000000126],[-75.558334000000002,71.97665400000011],[-75.538605000000018,71.986374000000012],[-75.513335999999924,71.995254999999986],[-75.498046999999929,71.999146000000053],[-75.476669000000015,72.000823999999966],[-75.414444000000003,71.999709999999993],[-75.371932999999899,71.997757000000036],[-75.349441999999897,71.998032000000023],[-75.327788999999939,71.999419999999986],[-75.24888599999997,72.012771999999984],[-75.197768999999937,72.023315000000139],[-75.174437999999952,72.031936999999971],[-75.158614999999941,72.041655999999932],[-75.150283999999942,72.0577550000001],[-75.135009999999966,72.080551000000071],[-75.129990000000021,72.086380000000133],[-75.119155999999862,72.096375000000023],[-75.109160999999858,72.101089000000002],[-75.093613000000005,72.10803199999998],[-75.081389999999942,72.11303700000002],[-75.051392000000021,72.121917999999937],[-75.035827999999924,72.125809000000004],[-75.012511999999958,72.12831100000011],[-75,72.128525000000025],[-74.98443599999996,72.127472000000125],[-74.951675000000023,72.123306000000071],[-74.835006999999962,72.10386699999998],[-74.801391999999964,72.098327999999981],[-74.764449999999954,72.094711000000018],[-74.65943900000002,72.091094999999939],[-74.625548999999921,72.091369999999984],[-74.535278000000005,72.089705999999978],[-74.316390999999953,72.082214000000022],[-74.297226000000023,72.080826000000116],[-74.260009999999966,72.076096000000064],[-74.244155999999862,72.073043999999982],[-74.233321999999987,72.067489999999964],[-74.218062999999972,72.058029000000033],[-74.177489999999921,72.031936999999971],[-74.122222999999963,71.983597000000088],[-74.117766999999958,71.969985999999949],[-74.119445999999982,71.955826000000059],[-74.166107000000011,71.874695000000088],[-74.171111999999937,71.868591000000038],[-74.184998000000007,71.855819999999937],[-74.229996000000028,71.822768999999994],[-74.243056999999965,71.818603999999993],[-74.263335999999981,71.815810999999997],[-74.403060999999923,71.80386400000009],[-74.43998699999986,71.801925999999924],[-74.460555999999997,71.802765000000079],[-74.477782999999931,71.804977000000122],[-74.50140399999998,71.809708000000057],[-74.513625999999874,71.818053999999961],[-74.570557000000008,71.809418000000051],[-74.604996000000028,71.784714000000122],[-74.678328999999962,71.745254999999986],[-74.696105999999929,71.738586000000112],[-74.71362299999987,71.735260000000096],[-74.885009999999909,71.708602999999982],[-75,71.711914000000036],[-75.046660999999915,71.716095000000109],[-75.090560999999923,71.718048000000067],[-75.136672999999973,71.716934000000094],[-75.158051,71.715271000000143],[-75.342772999999909,71.695815999999979],[-75.363892000000021,71.691360000000088],[-75.378600999999946,71.686920000000043],[-75.389998999999989,71.681091000000038],[-75.393889999999942,71.677475000000015],[-75.391953000000001,71.674698000000092],[-75.385009999999909,71.674423000000104],[-75.241942999999878,71.686096000000077],[-75.178329000000019,71.694138000000066],[-75.085007000000019,71.700821000000076],[-75.043610000000001,71.699707000000046],[-75.025008999999955,71.698029000000133],[-75.009170999999924,71.694977000000051],[-74.941101000000003,71.674698000000092],[-74.934158000000025,71.670822000000044],[-74.93360899999999,71.663879000000009],[-74.93638599999997,71.658035000000041],[-74.945540999999935,71.652481000000023],[-74.956115999999952,71.648331000000042],[-75.008895999999993,71.631927000000076],[-75.055557000000022,71.622481999999991],[-75.114166000000012,71.611098999999967],[-75.194152999999972,71.595535000000098],[-75.206954999999994,71.591934000000037],[-75.398345999999947,71.525269000000094],[-75.40972899999997,71.519714000000022],[-75.408339999999953,71.514708999999982],[-75.406386999999938,71.512207000000046],[-75.402221999999938,71.512497000000053],[-75.205276000000026,71.546371000000079],[-75,71.607238999999993],[-74.861114999999927,71.649429000000112],[-74.851668999999958,71.654984000000013],[-74.799437999999952,71.678863999999976],[-74.784163999999976,71.682755000000043],[-74.718337999999903,71.693588000000034],[-74.697768999999937,71.696365000000128],[-74.686661000000015,71.696365000000128],[-74.672774999999945,71.692474000000061],[-74.631942999999978,71.662491000000102],[-74.629714999999919,71.65277100000003],[-74.631942999999978,71.646378000000084],[-74.646392999999989,71.631927000000076],[-74.674437999999896,71.608322000000101],[-74.689712999999983,71.598038000000031],[-74.704726999999934,71.588042999999971],[-74.713057999999933,71.583878000000141],[-74.733886999999982,71.575546000000145],[-74.811934999999949,71.547760000000096],[-74.869720000000029,71.541656000000046],[-74.922500999999897,71.53776600000009],[-74.940276999999867,71.538040000000024],[-74.97084000000001,71.537201000000039],[-74.990279999999984,71.536652000000117],[-75,71.535583000000088],[-75.027221999999995,71.532486000000006],[-75.036666999999966,71.530548000000067],[-75.081389999999942,71.515273999999977],[-75.107773000000009,71.503052000000025],[-75.124709999999936,71.492477000000065],[-75.15194699999995,71.471649000000014],[-75.152221999999995,71.466094999999996],[-75.146117999999944,71.463608000000079],[-75.12777699999998,71.465820000000008],[-75.115554999999972,71.469986000000063],[-75.106110000000001,71.481934000000081],[-75.093886999999938,71.49275200000011],[-75.084731999999974,71.498322000000144],[-75.06138599999997,71.506378000000041],[-75.05082699999997,71.509720000000016],[-75.033324999999934,71.513046000000031],[-75,71.517899000000114],[-74.993056999999908,71.518875000000037],[-74.944153000000028,71.521652000000131],[-74.877486999999974,71.524155000000121],[-74.857223999999974,71.523605000000089],[-74.838332999999921,71.521926999999948],[-74.828338999999971,71.517211999999915],[-74.71665999999999,71.419144000000131],[-74.699431999999945,71.390823000000069],[-74.700561999999934,71.386658000000068],[-74.705565999999976,71.380814000000044],[-74.715285999999992,71.375809000000004],[-74.888335999999981,71.287201000000096],[-75.075012000000015,71.204437000000041],[-75.081389999999942,71.17942800000003],[-75.065001999999993,71.180817000000047],[-75,71.199341000000061],[-74.987503000000004,71.203873000000101],[-74.874160999999958,71.247756999999979],[-74.864440999999943,71.252487000000031],[-74.671660999999972,71.359985000000052],[-74.654448999999943,71.370254999999986],[-74.637511999999958,71.380538999999999],[-74.632216999999969,71.385818000000029],[-74.628051999999968,71.392487000000074],[-74.625823999999852,71.39888000000002],[-74.626098999999954,71.405822999999998],[-74.631103999999993,71.419433999999967],[-74.638061999999991,71.426651000000106],[-74.646956999999929,71.433044000000052],[-74.657227000000034,71.438583000000051],[-74.719726999999978,71.462494000000106],[-74.726944000000003,71.466094999999996],[-74.735549999999989,71.472487999999942],[-74.736388999999974,71.476654000000053],[-74.743057000000022,71.511932000000058],[-74.73611499999987,71.530548000000067],[-74.723891999999978,71.541931000000091],[-74.714172000000019,71.546646000000123],[-74.701675000000023,71.551086000000112],[-74.686385999999914,71.554977000000008],[-74.663895000000025,71.557204999999954],[-74.628875999999934,71.554703000000075],[-74.619995000000017,71.55802900000009],[-74.583618000000001,71.585815000000025],[-74.576401000000033,71.591370000000097],[-74.543883999999991,71.631362999999965],[-74.381942999999922,71.677199999999971],[-74.345550999999944,71.689423000000033],[-74.335555999999997,71.694138000000066],[-74.317779999999971,71.704437000000098],[-74.309432999999956,71.712204000000042],[-74.306945999999982,71.71775800000006],[-74.299437999999952,71.723877000000073],[-74.288604999999905,71.727478000000133],[-74.268341000000021,71.730270000000019],[-74.146956999999929,71.738875999999948],[-74.12470999999988,71.738875999999948],[-74.109160999999972,71.735809000000017],[-74.103058000000033,71.733321999999987],[-74.097777999999948,71.72886699999998],[-74.123885999999914,71.680817000000104],[-74.128875999999877,71.67164600000001],[-74.142226999999991,71.661652000000004],[-74.15055799999999,71.657486000000063],[-74.173049999999989,71.651093000000117],[-74.202788999999996,71.645828000000051],[-74.220276000000013,71.641663000000051],[-74.232773000000009,71.637496999999939],[-74.239440999999999,71.634155000000021],[-74.24888599999997,71.621643000000063],[-74.253066999999987,71.611649],[-74.254455999999948,71.60664399999996],[-74.254729999999995,71.603867000000093],[-74.252228000000002,71.58998100000008],[-74.249161000000015,71.582489000000123],[-74.243056999999965,71.569716999999969],[-74.218886999999938,71.556641000000013],[-74.180282999999974,71.538315000000011],[-74.168334999999956,71.533324999999991],[-74.156386999999995,71.532211000000018],[-74.150283999999886,71.533324999999991],[-74.148620999999935,71.537491000000045],[-74.151671999999962,71.544983000000002],[-74.165008999999998,71.555252000000053],[-74.146118000000001,71.637496999999939],[-74.039718999999934,71.722213999999951],[-74.019164999999987,71.73803700000002],[-74.014724999999942,71.741089000000102],[-73.996947999999975,71.751389000000017],[-73.977782999999931,71.759720000000129],[-73.964447000000007,71.763321000000019],[-73.928329000000019,71.769150000000025],[-73.748046999999929,71.776931999999988],[-73.718886999999938,71.776931999999988],[-73.61610399999995,71.773315000000025],[-73.604172000000005,71.772217000000126],[-73.593886999999995,71.769988999999953],[-73.589721999999995,71.763321000000019],[-73.589995999999985,71.756943000000035],[-73.591675000000009,71.751937999999996],[-73.598343,71.738312000000008],[-73.612503000000004,71.722213999999951],[-73.619995000000017,71.716095000000109],[-73.638061999999991,71.706375000000037],[-73.663329999999917,71.697204999999997],[-73.694442999999922,71.690262000000018],[-73.732772999999952,71.683868000000132],[-73.771117999999944,71.670822000000044],[-73.791381999999999,71.661102000000142],[-73.890839000000028,71.609421000000054],[-73.985549999999989,71.534149000000127],[-73.990279999999927,71.527480999999966],[-74.010833999999988,71.491363999999976],[-74.095275999999956,71.46276899999998],[-74.169997999999964,71.445816000000036],[-74.303878999999995,71.419433999999967],[-74.315826000000015,71.414429000000098],[-74.319167999999877,71.409424000000058],[-74.312209999999993,71.40554800000001],[-74.297226000000023,71.405822999999998],[-74.191665999999998,71.425537000000134],[-74.159163999999919,71.4327550000001],[-74.121384000000035,71.438583000000051],[-74.083617999999944,71.441086000000041],[-74.045836999999949,71.440810999999997],[-74.028610000000015,71.437759000000085],[-74.063889000000017,71.336929000000055],[-74.091675000000009,71.285537999999974],[-74.106383999999878,71.274704000000099],[-74.137787000000003,71.255828999999949],[-74.152221999999995,71.248032000000023],[-74.187774999999931,71.229430999999977],[-74.207503999999858,71.219711000000075],[-74.217223999999931,71.214996000000042],[-74.226669000000015,71.212203999999986],[-74.238327000000027,71.203873000000101],[-74.240829000000019,71.200821000000133],[-74.235000999999897,71.198317999999972],[-74.228881999999942,71.199416999999983],[-74.217772999999966,71.202209000000039],[-74.190825999999959,71.211104999999975],[-74.158339999999953,71.223877000000016],[-74.148055999999997,71.228592000000049],[-74.118332000000009,71.24331699999999],[-74.039444000000003,71.302199999999971],[-74.009444999999971,71.360809000000017],[-74.006957999999997,71.367203000000075],[-73.973327999999924,71.413605000000132],[-73.968612999999891,71.419433999999967],[-73.867767000000015,71.525818000000015],[-73.86221299999994,71.531096999999988],[-73.761672999999973,71.580826000000059],[-73.746947999999975,71.585266000000047],[-73.732772999999952,71.586928999999998],[-73.689162999999951,71.588042999999971],[-73.653610000000015,71.587493999999992],[-73.639724999999942,71.58638000000002],[-73.621932999999956,71.583328000000108],[-73.595000999999968,71.575272000000041],[-73.588608000000022,71.572220000000129],[-73.565001999999936,71.55192599999998],[-73.566665999999941,71.544144000000017],[-73.598343,71.528320000000122],[-73.615554999999915,71.520264000000054],[-73.619445999999982,71.515823000000125],[-73.630279999999971,71.456649999999911],[-73.635009999999909,71.359421000000111],[-73.622498000000007,71.356644000000017],[-73.61332699999997,71.355820000000051],[-73.594727000000034,71.35775799999999],[-73.540389999999945,71.37286400000005],[-73.518889999999942,71.379150000000038],[-73.517226999999934,71.379974000000004],[-73.516112999999962,71.385818000000029],[-73.515563999999927,71.39888000000002],[-73.513335999999981,71.413040000000137],[-73.50306699999993,71.424698000000149],[-73.496947999999918,71.428589000000045],[-73.477492999999924,71.436371000000008],[-73.446945000000028,71.440262000000075],[-73.428878999999995,71.435806000000127],[-73.384445000000028,71.391937000000041],[-73.380279999999914,71.385269000000051],[-73.385009999999966,71.381927000000132],[-73.500899999999945,71.337212000000022],[-73.590285999999935,71.304977000000065],[-73.615554999999915,71.296371000000136],[-73.623046999999872,71.291091999999992],[-73.635558999999944,71.279709000000139],[-73.663054999999986,71.254166000000055],[-73.678878999999995,71.238037000000077],[-73.712783999999999,71.177765000000136],[-73.717772999999966,71.164993000000095],[-73.718886999999938,71.159424000000115],[-73.716399999999965,71.14498900000001],[-73.713622999999984,71.137497000000053],[-73.713622999999984,71.130539000000056],[-73.71665999999999,71.118317000000104],[-73.728606999999954,71.098602000000085],[-73.735824999999977,71.093323000000112],[-73.745833999999888,71.088593000000117],[-73.760833999999932,71.084717000000012],[-73.77806099999998,71.0816650000001],[-73.797774999999945,71.078872999999987],[-73.842498999999918,71.074432000000115],[-73.87388599999997,71.069717000000082],[-73.890288999999996,71.064987000000031],[-73.898346000000004,71.057480000000112],[-73.895003999999972,71.052200000000028],[-73.886672999999973,71.049149],[-73.879439999999875,71.047759999999982],[-73.872771999999998,71.047484999999995],[-73.850554999999986,71.059981999999991],[-73.842223999999987,71.064148000000046],[-73.753066999999987,71.065810999999997],[-73.732772999999952,71.067764000000125],[-73.715835999999854,71.071655000000021],[-73.692764000000011,71.079436999999984],[-73.674438000000009,71.088318000000072],[-73.667220999999984,71.093597000000045],[-73.660552999999993,71.10386699999998],[-73.658339999999953,71.124985000000095],[-73.662505999999951,71.134995000000004],[-73.666655999999875,71.141662999999994],[-73.673614999999927,71.163039999999967],[-73.668883999999991,71.173035000000084],[-73.623610999999983,71.225540000000137],[-73.615829000000019,71.230270000000132],[-73.549164000000019,71.269989000000066],[-73.454726999999991,71.300262000000032],[-73.433884000000035,71.308594000000028],[-73.42860399999995,71.314423000000033],[-73.427779999999984,71.327208999999925],[-73.435271999999941,71.332214000000022],[-73.437774999999988,71.336380000000077],[-73.436110999999983,71.340545999999961],[-73.430282999999974,71.34165999999999],[-73.382216999999969,71.345260999999994],[-73.363051999999982,71.345824999999991],[-73.349730999999963,71.345260999999994],[-73.320847000000015,71.340820000000122],[-73.083617999999944,71.285812000000078],[-73.061110999999983,71.277481000000023],[-73.049437999999952,71.268325999999945],[-73.053878999999938,71.261658000000011],[-73.065001999999936,71.258331000000055],[-73.155562999999972,71.246643000000006],[-73.214721999999995,71.240814],[-73.230835000000013,71.238312000000121],[-73.249434999999949,71.233871000000022],[-73.266113000000018,71.224990999999989],[-73.271941999999854,71.220535000000041],[-73.263061999999991,71.205826000000002],[-73.252501999999936,71.195251000000098],[-73.244445999999982,71.188873000000115],[-73.235001000000011,71.173309000000017],[-73.235001000000011,71.162201000000039],[-73.238327000000027,71.157210999999961],[-73.247771999999998,71.144150000000025],[-73.256957999999884,71.133881000000031],[-73.294448999999929,71.092483999999956],[-73.311110999999926,71.080826000000116],[-73.327788999999996,71.072768999999994],[-73.379439999999988,71.05831900000004],[-73.426391999999908,71.047759999999982],[-73.446105999999986,71.041092000000049],[-73.450835999999924,71.035263000000043],[-73.451950000000011,71.029433999999981],[-73.446945000000028,71.024993999999992],[-73.377486999999917,70.980545000000006],[-73.369995000000017,70.985809000000017],[-73.17361499999987,71.156937000000028],[-73.168610000000001,71.170532000000094],[-73.177490000000034,71.185257000000036],[-73.183060000000012,71.191360000000032],[-73.188048999999978,71.199141999999938],[-73.185271999999998,71.205826000000002],[-73.180283000000031,71.211655000000007],[-73.172226000000023,71.216385000000059],[-73.142226999999934,71.224425999999937],[-73.115554999999915,71.230270000000132],[-73.101395000000025,71.231658999999979],[-73.079726999999991,71.231658999999979],[-73.067779999999857,71.230270000000132],[-73.045546999999885,71.225540000000137],[-73.027221999999881,71.227203000000031],[-73.011947999999961,71.234421000000054],[-73.004455999999948,71.239700000000028],[-72.99499499999996,71.249999999999943],[-72.981673999999941,71.267487000000017],[-72.952788999999996,71.311096000000077],[-72.951400999999976,71.316085999999984],[-72.959731999999974,71.355820000000051],[-72.963622999999927,71.362488000000042],[-72.970001000000025,71.369979999999998],[-72.978332999999907,71.376373000000115],[-72.989440999999999,71.391663000000108],[-72.993057000000022,71.397766000000047],[-72.993331999999953,71.401931999999931],[-72.988892000000021,71.40554800000001],[-72.975829999999917,71.40914900000007],[-72.897232000000031,71.416655999999989],[-72.858046999999942,71.413315000000125],[-72.836394999999925,71.413315000000125],[-72.765839000000028,71.423874000000012],[-72.759170999999924,71.426926000000094],[-72.757507000000032,71.431931000000134],[-72.758621000000005,71.437484999999981],[-72.764724999999942,71.451660000000061],[-72.76916499999993,71.459152000000017],[-72.679992999999911,71.524704000000042],[-72.649733999999967,71.536926000000051],[-72.61860699999994,71.559418000000107],[-72.61332699999997,71.565536000000066],[-72.610274999999888,71.571930000000123],[-72.608337000000006,71.583878000000141],[-72.61082499999992,71.595535000000098],[-72.608337000000006,71.60664399999996],[-72.593886999999995,71.642487000000017],[-72.583327999999881,71.651382000000069],[-72.580291999999929,71.653594999999996],[-72.573333999999932,71.656647000000135],[-72.557495000000017,71.660262999999986],[-72.538054999999929,71.660812000000135],[-72.523620999999991,71.65887500000008],[-72.503066999999874,71.65026899999998],[-72.474715999999944,71.642761000000121],[-72.444442999999978,71.636107999999979],[-72.301102000000014,71.612198000000149],[-72.152221999999938,71.58998100000008],[-71.847777999999948,71.546646000000123],[-71.689437999999996,71.524429000000055],[-71.670546999999999,71.522216999999955],[-71.635559000000001,71.517761000000064],[-71.58555599999994,71.509995000000004],[-71.554169000000002,71.503875999999991],[-71.455275999999913,71.473037999999974],[-71.444442999999922,71.468597000000045],[-71.435271999999998,71.463608000000079],[-71.295546999999942,71.384720000000129],[-71.241378999999995,71.349425999999994],[-71.12332200000003,71.271652000000017],[-71.119719999999973,71.264160000000061],[-71.122771999999998,71.257217000000082],[-71.128601000000003,71.251389000000131],[-71.147780999999952,71.241927999999973],[-71.169448999999986,71.233322000000044],[-71.206116000000009,71.220535000000041],[-71.221389999999985,71.216934000000037],[-71.234726000000023,71.212769000000037],[-71.324722000000008,71.177765000000136],[-71.340560999999866,71.170532000000094],[-71.342772999999909,71.166382000000112],[-71.346114999999941,71.155823000000055],[-71.349441999999897,71.149428999999998],[-71.415832999999907,71.093323000000112],[-71.452224999999999,71.068054000000132],[-71.46444699999995,71.062484999999981],[-71.470275999999956,71.061370999999951],[-71.48971599999993,71.0619200000001],[-71.551102000000014,71.064697000000024],[-71.608336999999949,71.068603999999993],[-71.640839000000028,71.073883000000137],[-71.714447000000007,71.088043000000084],[-71.812499999999943,71.104156000000103],[-71.848891999999921,71.108321999999987],[-71.868880999999874,71.109420999999998],[-71.890288999999882,71.109420999999998],[-71.910827999999924,71.107758000000047],[-72.069457999999997,71.075271999999984],[-72.08555599999994,71.070267000000115],[-72.09973100000002,71.063873000000058],[-72.110275000000001,71.052200000000028],[-72.113892000000021,71.047211000000061],[-72.114440999999999,71.043594000000098],[-72.113326999999913,71.037490999999989],[-72.107223999999974,71.030272999999966],[-72.09973100000002,71.020263999999941],[-72.101944000000003,71.016098000000056],[-72.165557999999919,70.968048000000067],[-72.179717999999923,70.962204000000042],[-72.200286999999946,70.961105000000032],[-72.235001000000011,70.961928999999998],[-72.261123999999995,70.959152000000131],[-72.27806099999998,70.955261000000064],[-72.290557999999976,70.951096000000064],[-72.297226000000023,70.947204999999997],[-72.317504999999983,70.930267000000072],[-72.319457999999997,70.925812000000064],[-72.317504999999983,70.918320000000108],[-72.31138599999997,70.911102000000085],[-72.313889000000017,70.899719000000061],[-72.320557000000008,70.888321000000076],[-72.325561999999877,70.882477000000051],[-72.334166999999979,70.878585999999984],[-72.514724999999999,70.844436999999971],[-72.534438999999907,70.841933999999981],[-72.653609999999958,70.82777400000009],[-72.654174999999896,70.820831000000112],[-72.511397999999872,70.827209000000039],[-72.476944000000003,70.833328000000051],[-72.401108000000022,70.849716000000114],[-72.356110000000001,70.860535000000027],[-72.302779999999927,70.867203000000018],[-72.264175000000023,70.866652999999985],[-72.25,70.863876000000062],[-72.184722999999963,70.844711000000075],[-72.172225999999966,70.840546000000074],[-72.16361999999998,70.83638000000002],[-72.162215999999887,70.829987000000017],[-72.363327000000027,70.686096000000134],[-72.381942999999978,70.677200000000028],[-72.459441999999967,70.65387000000004],[-72.475829999999917,70.649429000000112],[-72.499435000000005,70.646652000000017],[-72.542496000000028,70.644714000000079],[-72.578063999999983,70.641373000000044],[-72.597778000000005,70.63859599999995],[-72.609160999999972,70.636658000000011],[-72.615828999999962,70.633331000000055],[-72.623321999999973,70.628036000000009],[-72.569457999999884,70.609985000000052],[-72.551666000000012,70.608032000000094],[-72.503066999999874,70.629973999999947],[-72.490554999999972,70.634155000000021],[-72.371932999999956,70.654984000000013],[-72.342223999999931,70.662200999999925],[-72.326110999999912,70.667206000000022],[-72.306380999999988,70.677475000000015],[-72.277495999999871,70.698028999999963],[-72.264724999999942,70.70915199999996],[-72.248610999999983,70.726653999999996],[-72.245834000000002,70.733046999999999],[-72.236937999999896,70.743866000000025],[-72.229172000000005,70.749420000000043],[-72.210555999999997,70.758040999999935],[-72.185546999999929,70.76638800000012],[-72.155838000000017,70.773605000000032],[-72.136123999999995,70.776093000000003],[-72.004729999999995,70.786925999999994],[-71.896956999999929,70.80693100000002],[-71.818893000000003,70.823044000000039],[-71.689163000000008,70.850266000000147],[-71.543883999999991,70.872481999999991],[-71.354445999999939,70.882750999999985],[-71.287506000000008,70.906097000000045],[-71.289169000000015,70.908875000000023],[-71.289444000000003,70.913605000000075],[-71.208343999999954,71.004990000000078],[-71.185546999999872,71.019439999999975],[-71.162216000000001,71.028320000000008],[-70.895553999999947,71.099716000000058],[-70.836120999999935,71.114426000000037],[-70.799727999999959,71.118866000000025],[-70.771666999999979,71.118042000000059],[-70.755568999999923,71.11554000000001],[-70.724715999999944,71.10443099999992],[-70.635559000000001,71.072220000000016],[-70.613891999999964,71.062194999999917],[-70.604720999999927,71.056366000000082],[-70.601669000000015,71.053864000000033],[-70.591949,71.042480000000126],[-70.514724999999942,70.940536000000066],[-70.512511999999958,70.926085999999998],[-70.514450000000011,70.921097000000032],[-70.519729999999981,70.913879000000009],[-70.553604000000007,70.894989000000066],[-70.58944699999995,70.876083000000051],[-70.678878999999995,70.840546000000074],[-70.740828999999906,70.75471500000009],[-70.746947999999918,70.745529000000147],[-70.773330999999985,70.734420999999998],[-70.798888999999917,70.725540000000024],[-70.872498000000007,70.703872999999987],[-70.891112999999962,70.698868000000118],[-70.965835999999967,70.684143000000006],[-71.024445000000014,70.674987999999928],[-71.055267000000015,70.669144000000131],[-71.08277899999996,70.661652000000004],[-71.100554999999929,70.654984000000013],[-71.108611999999994,70.649993999999992],[-71.118056999999965,70.638885000000073],[-71.128051999999968,70.62052900000009],[-71.129439999999988,70.614151000000106],[-71.134445000000028,70.602767999999912],[-71.139998999999932,70.596374999999966],[-71.147780999999952,70.591095000000109],[-71.160277999999948,70.586928999999998],[-71.175277999999992,70.583602999999982],[-71.191665999999998,70.58248900000001],[-71.224715999999944,70.582214000000135],[-71.281676999999888,70.584152000000074],[-71.312499999999943,70.587204000000042],[-71.34584000000001,70.591660000000104],[-71.389724999999942,70.600540000000137],[-71.407501000000025,70.603043000000127],[-71.422775000000001,70.604980000000012],[-71.461944999999957,70.60775799999999],[-71.558608999999933,70.609421000000111],[-71.592772999999966,70.606934000000024],[-71.595550999999944,70.603867000000093],[-71.595839999999953,70.600540000000137],[-71.592498999999918,70.589706000000092],[-71.586670000000026,70.581665000000044],[-71.583892999999932,70.576096000000007],[-71.580291999999986,70.564697000000137],[-71.581954999999994,70.551376000000005],[-71.583618000000001,70.546371000000136],[-71.588057999999933,70.542755000000056],[-71.74360699999994,70.466933999999981],[-71.803054999999972,70.428314000000057],[-71.763061999999934,70.427200000000084],[-71.748046999999985,70.425811999999951],[-71.736389000000031,70.423035000000084],[-71.727218999999991,70.417479999999955],[-71.728058000000033,70.410538000000088],[-71.731673999999998,70.397217000000126],[-71.746384000000035,70.3477630000001],[-71.75556899999998,70.329162999999994],[-71.763061999999934,70.323318000000086],[-71.783065999999963,70.313873000000001],[-71.816665999999941,70.303040000000067],[-71.844161999999983,70.29664600000001],[-71.849730999999906,70.290817000000004],[-71.836944999999957,70.289978000000019],[-71.806945999999868,70.295822000000044],[-71.748046999999985,70.309708000000001],[-71.733611999999937,70.313873000000001],[-71.686385999999914,70.355820000000108],[-71.674712999999997,70.36970500000001],[-71.641678000000013,70.444977000000108],[-71.640288999999996,70.450546000000088],[-71.543335000000013,70.514708999999982],[-71.525283999999942,70.524704000000099],[-71.510009999999966,70.535812000000078],[-71.502501999999936,70.546096999999975],[-71.50167799999997,70.55304000000001],[-71.503341999999975,70.56053199999991],[-71.507506999999976,70.569153000000028],[-71.511672999999973,70.573318000000029],[-71.506957999999941,70.57638500000013],[-71.495543999999938,70.578873000000101],[-71.435271999999998,70.578598000000113],[-71.420273000000009,70.57748400000014],[-71.397781000000009,70.574432000000002],[-71.25306699999993,70.549713000000054],[-71.184998000000007,70.538040000000024],[-71.17582699999997,70.535812000000078],[-71.170272999999952,70.533324999999991],[-71.167769999999905,70.531937000000084],[-71.162506000000008,70.525269000000094],[-71.162216000000001,70.520537999999988],[-71.260558999999887,70.377762000000132],[-71.322509999999966,70.312759000000028],[-71.321670999999981,70.30664100000007],[-71.318343999999968,70.299988000000099],[-71.301101999999958,70.284987999999998],[-71.288894999999968,70.280822999999998],[-71.279998999999975,70.274993999999936],[-71.276947000000007,70.268326000000002],[-71.278335999999854,70.262771999999984],[-71.285278000000005,70.251388999999961],[-71.289169000000015,70.246094000000085],[-71.316955999999948,70.218596999999988],[-71.363051999999868,70.182204999999954],[-71.43472300000002,70.126923000000033],[-71.485275000000001,70.088318000000072],[-71.498046999999929,70.080551000000128],[-71.523055999999997,70.052200000000028],[-71.532776000000013,70.038589000000059],[-71.539168999999958,70.026382000000126],[-71.541107000000011,70.022217000000126],[-71.535827999999924,70.019714000000135],[-71.52806099999998,70.020263999999997],[-71.518065999999976,70.024993999999992],[-71.500290000000007,70.038315000000125],[-71.493606999999997,70.050537000000134],[-71.475829999999974,70.068054000000132],[-71.438048999999978,70.086655000000007],[-71.393616000000009,70.104430999999977],[-71.366652999999985,70.111923000000104],[-71.331680000000006,70.128585999999984],[-71.210555999999997,70.262206999999933],[-71.208892999999989,70.267761000000121],[-71.21305799999999,70.272491000000002],[-71.218886999999995,70.276382000000069],[-71.229720999999984,70.281097000000102],[-71.231948999999929,70.294983000000059],[-71.171660999999972,70.368042000000059],[-71.135833999999932,70.410538000000088],[-71.093062999999972,70.460541000000035],[-71.030563000000029,70.540543000000014],[-71.049987999999928,70.546371000000136],[-71.053054999999972,70.55304000000001],[-71.049438000000009,70.558868000000075],[-71.005843999999968,70.61692800000003],[-70.997222999999963,70.625808999999947],[-70.968886999999995,70.63220200000012],[-70.913054999999986,70.637771999999984],[-70.771117999999944,70.668869000000086],[-70.611937999999952,70.723602000000085],[-70.421660999999858,70.772217000000126],[-70.396956999999986,70.778320000000065],[-70.365279999999927,70.782486000000006],[-70.324721999999952,70.785812000000021],[-70.255004999999983,70.793868999999972],[-70.228881999999942,70.797211000000118],[-70.075012000000015,70.83027600000014],[-69.988051999999982,70.853592000000049],[-69.915833000000021,70.877472000000012],[-69.904723999999931,70.881363000000079],[-69.892775999999913,70.883331000000055],[-69.87388599999997,70.883331000000055],[-69.865279999999927,70.882477000000051],[-69.833618000000001,70.87692300000009],[-69.78443900000002,70.864700000000028],[-69.771117999999944,70.857483000000116],[-69.770554000000004,70.856094000000098],[-69.772506999999962,70.85054000000008],[-69.795837000000006,70.820541000000048],[-69.808884000000035,70.81109600000002],[-69.879439999999931,70.768051000000071],[-69.915557999999919,70.74914600000011],[-69.965285999999935,70.727767999999969],[-70.073897999999929,70.687484999999924],[-70.084732000000031,70.683594000000028],[-70.121658000000025,70.67164600000001],[-70.21055599999994,70.646103000000096],[-70.225554999999929,70.641936999999984],[-70.244995000000017,70.638321000000133],[-70.277221999999995,70.636107999999979],[-70.33805799999999,70.637496999999996],[-70.353332999999964,70.638885000000073],[-70.407775999999956,70.638885000000073],[-70.423324999999977,70.636932000000115],[-70.454726999999991,70.627762000000075],[-70.473052999999993,70.617203000000018],[-70.476943999999946,70.612197999999978],[-70.478881999999999,70.606644000000017],[-70.460555999999997,70.574158000000068],[-70.442764000000011,70.561920000000043],[-70.424164000000019,70.551926000000037],[-70.411391999999978,70.542205999999908],[-70.404723999999931,70.536377000000073],[-70.400283999999999,70.530273000000079],[-70.397507000000019,70.524155000000121],[-70.401672000000019,70.519150000000081],[-70.407775999999956,70.514160000000004],[-70.423324999999977,70.506943000000092],[-70.467223999999987,70.493866000000082],[-70.482223999999917,70.490540000000067],[-70.490829000000019,70.486649],[-70.494445999999982,70.484984999999995],[-70.49610899999999,70.479430999999977],[-70.488892000000021,70.476929000000098],[-70.477782999999988,70.47554000000008],[-70.459166999999979,70.47554000000008],[-70.441375999999934,70.477203000000031],[-70.309722999999963,70.498031999999967],[-70.316665999999998,70.528594999999939],[-70.320007000000032,70.536926000000051],[-70.331679999999949,70.548599000000081],[-70.348617999999931,70.559707999999944],[-70.371108999999933,70.573608000000036],[-70.344451999999933,70.613037000000134],[-70.158339999999953,70.615540000000124],[-70.092498999999975,70.612197999999978],[-70.023330999999985,70.610535000000084],[-69.99221799999998,70.645828000000051],[-69.987777999999935,70.649993999999992],[-69.978607000000011,70.653320000000008],[-69.875823999999909,70.677200000000028],[-69.775832999999977,70.682205000000067],[-69.651397999999972,70.725540000000024],[-69.649169999999913,70.731094000000041],[-69.644729999999981,70.741088999999931],[-69.638610999999969,70.746933000000126],[-69.619995000000017,70.758040999999935],[-69.569167999999934,70.771927000000119],[-69.53832999999986,70.778595000000109],[-69.469727000000034,70.790543000000127],[-69.451401000000033,70.791931000000034],[-69.242766999999958,70.782486000000006],[-69.226943999999946,70.77998400000007],[-69.215012000000002,70.776093000000003],[-69.190552000000025,70.766937000000041],[-69.131942999999978,70.737488000000099],[-68.958053999999947,70.688582999999994],[-68.928329000000019,70.681656000000089],[-68.664444000000003,70.626923000000147],[-68.61860699999994,70.62052900000009],[-68.582503999999972,70.617751999999996],[-68.549727999999959,70.613602000000014],[-68.515288999999996,70.609146000000067],[-68.484726000000023,70.604156000000046],[-68.390563999999983,70.582214000000135],[-68.325561999999934,70.566665999999941],[-68.313889000000017,70.563034000000016],[-68.293610000000001,70.551376000000005],[-68.284164000000033,70.540543000000014],[-68.279174999999952,70.531097000000045],[-68.279449,70.519440000000088],[-68.281386999999938,70.51249700000011],[-68.289718999999991,70.500000000000114],[-68.296111999999994,70.494141000000127],[-68.31361400000003,70.484711000000061],[-68.331680000000006,70.476379000000065],[-68.371932999999956,70.455826000000002],[-68.446654999999964,70.413040000000137],[-68.451400999999976,70.409424000000115],[-68.453613000000018,70.403870000000097],[-68.451950000000011,70.392212000000086],[-68.449158000000011,70.384155000000078],[-68.448607999999979,70.375259000000142],[-68.451675000000023,70.372482000000048],[-68.458618000000001,70.369431000000077],[-68.485000999999954,70.367752000000053],[-68.495270000000005,70.368590999999981],[-68.506393000000003,70.371093999999971],[-68.519454999999994,70.37414600000011],[-68.561385999999914,70.389709000000096],[-68.571121000000005,70.393326000000059],[-68.575835999999924,70.396102999999982],[-68.580840999999964,70.404160000000104],[-68.580565999999976,70.415817000000061],[-68.569732999999985,70.426376000000118],[-68.556106999999997,70.435257000000036],[-68.549987999999985,70.440811000000053],[-68.548049999999932,70.447754000000032],[-68.556945999999982,70.461929000000112],[-68.564712999999927,70.466385000000059],[-68.582503999999972,70.464432000000102],[-68.621657999999968,70.45277400000009],[-68.650833000000034,70.441925000000026],[-68.654174999999896,70.439148000000102],[-68.661666999999909,70.431090999999924],[-68.666655999999989,70.422211000000118],[-68.670273000000009,70.408874999999966],[-68.670836999999949,70.404160000000104],[-68.664444000000003,70.384994999999947],[-68.657226999999978,70.375809000000004],[-68.651947000000007,70.359420999999941],[-68.650557999999933,70.349991000000045],[-68.651107999999965,70.345824999999991],[-68.653884999999946,70.341369999999984],[-68.65695199999999,70.33859300000006],[-68.664169000000015,70.335541000000148],[-68.682495000000017,70.329437000000098],[-68.735549999999876,70.317764000000068],[-68.784164000000033,70.310256999999979],[-68.906951999999933,70.293869000000086],[-68.941375999999991,70.29304500000012],[-69.071945000000028,70.28804000000008],[-69.235001000000011,70.270264000000111],[-69.283889999999985,70.264709000000039],[-69.473891999999978,70.238876000000062],[-69.639998999999875,70.204712000000086],[-69.668059999999969,70.198593000000017],[-69.823897999999986,70.155823000000112],[-69.829453000000001,70.15415999999999],[-69.836120999999991,70.150543000000027],[-69.839721999999938,70.144150000000081],[-69.840835999999911,70.141937000000098],[-69.839721999999938,70.134430000000009],[-69.843062999999972,70.121917999999994],[-69.848891999999978,70.116088999999988],[-69.856948999999929,70.110809000000074],[-69.875823999999909,70.101929000000041],[-69.917769999999962,70.085541000000035],[-69.946655000000021,70.076385000000073],[-69.96833799999996,70.074706999999933],[-69.990279999999927,70.074432000000115],[-70.037780999999995,70.072220000000073],[-70.073059000000001,70.069153000000142],[-70.086120999999991,70.066666000000055],[-70.096953999999982,70.063309000000118],[-70.141387999999949,70.043319999999994],[-70.174438000000009,70.034987999999998],[-70.182769999999891,70.031096999999932],[-70.185546999999985,70.028046000000131],[-70.182769999999891,70.021378000000141],[-70.169997999999964,70.014434999999992],[-70.15449499999994,70.015160000000094],[-70.147506999999962,70.015488000000062],[-70.139502999999934,70.017159000000106],[-70.113327000000027,70.02388000000002],[-70.103058000000033,70.028595000000053],[-70.089995999999985,70.036102000000028],[-70.088897999999915,70.038315000000125],[-70.077498999999989,70.049712999999997],[-70.066955999999948,70.053589000000045],[-70.049987999999871,70.057205000000067],[-70.028610000000015,70.058868000000018],[-70.020279000000016,70.058594000000085],[-69.901107999999965,70.048325000000034],[-69.892226999999934,70.045822000000101],[-69.884734999999921,70.042755],[-69.853607000000011,70.029709000000025],[-69.83555599999994,70.020263999999997],[-69.827498999999989,70.014434999999992],[-69.820846999999958,70.008041000000105],[-69.813048999999921,69.99859600000002],[-69.812209999999993,69.991089000000102],[-69.815552000000025,69.984711000000118],[-69.822509999999909,69.981659000000036],[-69.837508999999955,69.978317000000118],[-69.851395000000025,69.978317000000118],[-69.897507000000019,69.983047000000113],[-69.93638599999997,69.98942599999998],[-69.963332999999977,69.991653000000042],[-69.981383999999991,69.991653000000042],[-70.00306699999993,69.989700000000084],[-70.057494999999903,69.981093999999985],[-70.098891999999921,69.973602000000085],[-70.164443999999889,69.961655000000121],[-70.218886999999938,69.941650000000095],[-70.223327999999981,69.938034000000016],[-70.223891999999978,69.929703000000131],[-70.218062999999972,69.925262000000032],[-70.216110000000015,69.92053199999998],[-70.220276000000013,69.915543000000014],[-70.228607000000011,69.911651999999947],[-70.291381999999999,69.889435000000105],[-70.384170999999981,69.860535000000027],[-70.401397999999972,69.859146000000067],[-70.422225999999966,69.860809000000131],[-70.432495000000017,69.862487999999985],[-70.443877999999927,69.860535000000027],[-70.450561999999991,69.857208000000071],[-70.467223999999987,69.844711000000132],[-70.468612999999948,69.842758000000003],[-70.460280999999952,69.841660000000104],[-70.436935000000005,69.839431999999931],[-70.412215999999944,69.837769000000037],[-70.396118000000001,69.837203999999986],[-70.384170999999981,69.837203999999986],[-70.372771999999884,69.838318000000129],[-70.355834999999956,69.841370000000097],[-70.343613000000005,69.845260999999937],[-70.255279999999914,69.879149999999981],[-70.192764000000011,69.907761000000107],[-70.136948000000018,69.933318999999983],[-70.126098999999954,69.940536000000122],[-70.098617999999988,69.953049000000021],[-70.076675000000023,69.958037999999988],[-70.059433000000013,69.959716999999955],[-69.978607000000011,69.964157],[-69.941939999999988,69.963043000000027],[-69.925003000000004,69.961105000000089],[-69.896956999999986,69.956100000000049],[-69.868057000000022,69.953323000000125],[-69.837508999999955,69.952773999999977],[-69.813109999999995,69.955429000000095],[-69.777221999999995,69.963608000000022],[-69.750838999999928,69.972488000000055],[-69.745543999999938,69.974701000000039],[-69.738051999999925,69.981369000000029],[-69.735549999999932,69.985535000000084],[-69.735275000000001,69.990539999999953],[-69.739440999999999,70.001389000000017],[-69.744155999999975,70.008041000000105],[-69.760009999999966,70.017487000000074],[-69.769454999999937,70.021378000000141],[-69.781112999999948,70.024993999999992],[-69.795546999999999,70.031661999999983],[-69.804717999999866,70.038879000000065],[-69.808884000000035,70.049712999999997],[-69.806945999999982,70.055251999999996],[-69.792770000000019,70.080826000000002],[-69.790282999999931,70.084991000000002],[-69.783889999999985,70.089432000000102],[-69.740829000000019,70.114151000000049],[-69.675826999999913,70.139708999999982],[-69.653335999999911,70.14498900000001],[-69.426101999999958,70.176086000000112],[-69.404175000000009,70.177765000000136],[-69.21945199999999,70.188309000000004],[-69.18249499999996,70.187195000000031],[-69.169997999999907,70.18609600000002],[-69.154723999999987,70.183318999999983],[-69.011123999999995,70.178314000000114],[-68.936934999999949,70.193039000000056],[-68.859160999999858,70.203048999999965],[-68.839172000000019,70.203598000000056],[-68.697220000000016,70.203873000000101],[-68.682770000000005,70.203598000000056],[-68.678329000000019,70.202484000000084],[-68.676391999999964,70.201660000000118],[-68.647507000000019,70.158324999999991],[-68.642501999999979,70.149429000000055],[-68.645003999999915,70.145264000000054],[-68.741378999999995,70.065262000000075],[-68.746658000000025,70.062484999999981],[-68.783066000000019,70.044433999999967],[-68.800551999999982,70.037490999999989],[-68.813323999999966,70.032760999999994],[-68.868056999999965,70.016937000000041],[-68.900283999999942,70.011658000000068],[-68.954453000000001,70.00471500000009],[-69.088608000000022,69.974991000000045],[-69.15306099999998,69.953049000000021],[-69.313109999999938,69.882294000000059],[-69.346114999999998,69.855545000000006],[-69.370543999999938,69.83998100000008],[-69.398055999999997,69.828598000000056],[-69.426940999999943,69.819716999999969],[-69.439712999999927,69.816376000000105],[-69.460555999999997,69.813309000000004],[-69.474716000000001,69.813599000000011],[-69.516953000000001,69.819992000000127],[-69.543335000000013,69.826934999999935],[-69.565826000000015,69.834152000000074],[-69.580841000000021,69.836928999999998],[-69.683884000000035,69.83998100000008],[-69.713897999999972,69.83998100000008],[-69.744995000000017,69.837769000000037],[-69.760009999999966,69.834991000000002],[-69.770844000000011,69.831940000000031],[-69.805832000000009,69.819992000000127],[-69.827788999999996,69.809418000000107],[-69.844161999999926,69.800261999999975],[-69.855834999999956,69.793593999999985],[-69.87249799999995,69.781096999999988],[-69.998046999999985,69.669983000000116],[-70,69.66415400000011],[-70.000838999999985,69.656097000000102],[-70.00140399999998,69.622757000000036],[-69.998885999999914,69.616089000000102],[-69.990554999999915,69.614990000000091],[-69.944442999999978,69.649719000000005],[-69.816956000000005,69.724426000000051],[-69.810821999999973,69.72886699999998],[-69.808334000000002,69.733046999999999],[-69.808334000000002,69.73803700000002],[-69.81471299999987,69.75471500000009],[-69.815001999999993,69.760269000000108],[-69.814163000000008,69.763884999999959],[-69.805557000000022,69.772491000000059],[-69.783066000000019,69.785812000000021],[-69.764724999999999,69.795531999999923],[-69.754455999999948,69.799712999999997],[-69.741942999999992,69.803589000000102],[-69.730835000000013,69.806090999999981],[-69.713333000000034,69.807479999999998],[-69.643065999999976,69.810806000000014],[-69.602782999999988,69.809708000000114],[-69.572783999999899,69.80442800000003],[-69.561110999999983,69.799988000000042],[-69.545273000000009,69.794434000000024],[-69.489989999999921,69.779709000000082],[-69.45666499999993,69.775818000000015],[-69.446655000000021,69.775543000000027],[-69.409163999999976,69.776381999999955],[-69.395844000000011,69.777771000000143],[-69.384734999999921,69.780823000000055],[-69.378051999999968,69.783875000000023],[-69.313889000000017,69.816376000000105],[-69.291381999999999,69.831099999999935],[-69.279448999999943,69.84248400000007],[-69.26916499999993,69.852768000000083],[-69.253066999999987,69.862198000000149],[-69.200561999999877,69.883606000000043],[-69.188048999999978,69.887771999999984],[-69.101943999999946,69.916091999999992],[-69.076674999999966,69.923874000000126],[-68.945540999999992,69.949997000000053],[-68.933884000000035,69.951096000000064],[-68.870270000000005,69.953049000000021],[-68.801940999999886,69.952208999999982],[-68.76666299999988,69.948868000000118],[-68.751953000000015,69.946639999999945],[-68.622817999999938,69.98240699999991],[-68.471664000000033,70.046646000000067],[-68.338333000000034,70.064148000000102],[-68.241378999999995,70.095825000000048],[-68.221389999999985,70.102768000000026],[-68.207229999999981,70.109420999999998],[-68.196380999999974,70.119431000000077],[-68.193603999999993,70.123596000000077],[-68.203338999999971,70.128860000000088],[-68.229445999999939,70.135269000000108],[-68.268616000000009,70.13749700000011],[-68.290832999999907,70.137207000000046],[-68.308333999999945,70.135269000000108],[-68.320557000000008,70.135543999999982],[-68.333618000000001,70.139160000000004],[-68.349166999999852,70.168045000000063],[-68.348617999999988,70.172760000000096],[-68.345275999999956,70.188034000000016],[-68.318618999999956,70.218596999999988],[-68.31361400000003,70.222214000000122],[-68.160004000000015,70.282761000000107],[-68.039443999999946,70.301376000000005],[-67.808043999999938,70.262496999999996],[-67.794723999999974,70.258881000000088],[-67.774170000000026,70.250549000000092],[-67.768065999999976,70.243866000000139],[-67.760009999999909,70.229706000000022],[-67.740554999999858,70.218872000000147],[-67.697219999999959,70.202209000000096],[-67.674437999999952,70.193587999999977],[-67.648055999999997,70.18609600000002],[-67.591674999999952,70.165267999999969],[-67.575561999999934,70.158324999999991],[-67.556945999999982,70.149155000000121],[-67.528335999999967,70.133881000000031],[-67.412215999999944,70.068878000000097],[-67.404723999999987,70.06442300000009],[-67.378052000000025,70.048035000000027],[-67.242492999999968,69.958327999999995],[-67.222778000000005,69.943863000000079],[-67.216949,69.937759000000028],[-67.152495999999985,69.817764000000011],[-67.148620999999991,69.810257000000092],[-67.127776999999867,69.726929000000041],[-67.193603999999993,69.721924000000001],[-67.371384000000035,69.714432000000045],[-67.391113000000018,69.713882000000012],[-67.406951999999876,69.714705999999978],[-67.436110999999926,69.719147000000078],[-67.499999999999943,69.731833999999992],[-67.602492999999924,69.750275000000101],[-67.761123999999995,69.778595000000109],[-67.77305599999994,69.779434000000094],[-67.81082200000003,69.778869999999927],[-67.99610899999999,69.774429000000055],[-68.013061999999991,69.771927000000119],[-68.087783999999999,69.756104000000107],[-68.208054000000004,69.715546000000018],[-68.216659999999933,69.71026599999999],[-68.222777999999948,69.704711999999972],[-68.228606999999897,69.691360000000145],[-68.230285999999978,69.684418000000051],[-68.24110399999995,69.674987999999985],[-68.31138599999997,69.633331000000112],[-68.323623999999995,69.628860000000032],[-68.329453000000001,69.627762000000132],[-68.352782999999988,69.626923000000147],[-68.496383999999978,69.625809000000004],[-68.518065999999919,69.626083000000108],[-68.620269999999891,69.637206999999989],[-68.64527899999996,69.641098000000056],[-68.839995999999985,69.616089000000102],[-68.980834999999956,69.589157],[-69.188599000000011,69.54193099999992],[-69.201110999999912,69.538040000000024],[-69.220001000000025,69.535812000000078],[-69.325012000000015,69.532486000000063],[-69.342772999999966,69.532486000000063],[-69.364165999999955,69.53776600000009],[-69.410277999999948,69.546097000000032],[-69.426940999999943,69.548035000000141],[-69.549438000000009,69.560531999999967],[-69.630829000000006,69.56721500000009],[-69.688889000000017,69.569443000000092],[-69.737777999999992,69.568329000000062],[-69.75111400000003,69.56721500000009],[-69.838608000000022,69.558868000000132],[-70.030837999999903,69.536102000000085],[-70.028610000000015,69.530823000000112],[-70.025283999999999,69.527481000000023],[-70.011123999999995,69.521103000000039],[-69.995543999999995,69.517211999999972],[-69.964721999999995,69.513885000000016],[-69.899444999999957,69.507217000000082],[-69.885833999999988,69.507217000000082],[-69.866942999999878,69.509430000000009],[-69.844161999999926,69.517487000000017],[-69.824448000000018,69.527205999999978],[-69.815826000000015,69.530548000000124],[-69.803878999999995,69.534988000000112],[-69.789443999999946,69.538589000000002],[-69.732773000000009,69.545258000000047],[-69.698607999999922,69.548324999999977],[-69.68499799999995,69.548874000000126],[-69.663329999999917,69.548324999999977],[-69.613891999999908,69.54304500000012],[-69.506957999999997,69.529433999999924],[-69.449996999999883,69.518875000000094],[-69.375823999999909,69.509720000000016],[-69.343062999999972,69.505828999999949],[-69.323333999999988,69.505264000000125],[-69.299987999999928,69.506103999999993],[-69.206664999999987,69.514998999999989],[-69.151671999999905,69.520264000000054],[-69.005844000000025,69.535812000000078],[-68.995270000000005,69.539703000000145],[-68.982223999999974,69.547211000000004],[-68.971389999999985,69.555817000000104],[-68.957229999999981,69.560531999999967],[-68.926101999999901,69.566665999999998],[-68.76945499999988,69.587494000000049],[-68.752501999999879,69.589431999999988],[-68.6683349999999,69.590820000000065],[-68.611938000000009,69.587494000000049],[-68.544723999999917,69.579987000000131],[-68.528060999999923,69.577208999999925],[-68.317229999999881,69.530273000000079],[-68.293334999999956,69.523604999999918],[-68.181945999999982,69.49832200000003],[-68.02555799999999,69.466095000000053],[-67.982223999999974,69.457489000000123],[-67.946105999999929,69.454712000000029],[-67.926392000000021,69.454163000000108],[-67.893340999999964,69.454437000000041],[-67.874161000000015,69.456649999999968],[-67.861937999999952,69.460266000000047],[-67.840835999999967,69.469436999999971],[-67.819457999999941,69.476929000000098],[-67.806945999999868,69.480819999999994],[-67.792220999999984,69.48414600000001],[-67.604996000000028,69.478043000000071],[-67.562209999999993,69.471924000000058],[-67.511672999999973,69.466095000000053],[-67.475829999999974,69.463042999999914],[-67.432770000000005,69.463318000000129],[-67.305266999999958,69.467209000000025],[-67.258347000000015,69.467484000000013],[-67.210006999999962,69.46138000000002],[-67.180832000000009,69.454712000000029],[-66.921111999999994,69.379150000000095],[-66.795546999999885,69.341094999999996],[-66.785277999999948,69.337204000000099],[-66.774444999999957,69.331940000000088],[-66.767226999999934,69.327484000000027],[-66.694992000000013,69.281661999999983],[-66.682769999999948,69.270264000000111],[-66.650283999999942,69.236374000000012],[-66.645844000000011,69.224991000000045],[-66.646666999999979,69.203598000000113],[-66.658614999999941,69.188309000000004],[-66.668335000000013,69.178314000000114],[-66.689437999999939,69.161926000000051],[-66.720001000000025,69.144150000000081],[-66.730559999999969,69.138885000000016],[-66.75306699999993,69.129424999999969],[-66.758620999999948,69.128036000000122],[-66.776107999999965,69.128860000000088],[-66.837219000000005,69.135818000000086],[-66.84944200000001,69.138321000000076],[-66.912780999999995,69.154984000000127],[-66.928328999999906,69.164153999999996],[-66.953339000000028,69.172211000000004],[-66.965285999999992,69.174423000000047],[-66.996947999999975,69.177764999999965],[-67.132767000000001,69.182479999999998],[-67.371932999999956,69.184417999999937],[-67.385558999999944,69.183868000000132],[-67.414718999999991,69.178314000000114],[-67.427215999999987,69.174423000000047],[-67.458892999999932,69.162491000000102],[-67.466109999999958,69.160812000000078],[-67.50556899999998,69.157486000000063],[-67.521117999999944,69.15776100000005],[-67.648620999999991,69.166931000000091],[-67.676391999999964,69.169434000000081],[-67.864166000000012,69.221924000000115],[-68.18447900000001,69.308014000000014],[-68.209732000000031,69.311370999999951],[-68.221663999999976,69.312194999999917],[-68.232772999999952,69.311370999999951],[-68.251953000000015,69.309708000000057],[-68.285278000000005,69.304428000000144],[-68.31082200000003,69.298598999999967],[-68.327498999999989,69.296097000000088],[-68.344161999999983,69.294708000000071],[-68.355835000000013,69.294144000000131],[-68.375548999999921,69.294708000000071],[-68.464721999999938,69.301651000000049],[-68.675277999999992,69.322220000000016],[-68.740279999999984,69.330551000000128],[-68.811935000000005,69.341933999999924],[-68.84445199999999,69.346100000000035],[-68.944716999999912,69.354980000000069],[-68.962783999999999,69.356369000000029],[-68.984436000000017,69.356934000000081],[-69.015015000000005,69.354980000000069],[-69.040282999999988,69.349716000000058],[-69.176665999999955,69.310806000000127],[-69.203063999999927,69.303040000000067],[-69.241378999999881,69.284149000000014],[-69.253890999999953,69.27526899999998],[-69.25778200000002,69.270264000000111],[-69.25167799999997,69.263610999999969],[-69.246947999999975,69.261107999999979],[-69.235001000000011,69.259720000000073],[-69.221938999999963,69.261658000000011],[-69.213057999999933,69.264709000000039],[-69.203339000000028,69.269989000000123],[-69.197768999999994,69.275542999999914],[-69.176392000000021,69.287490999999989],[-69.156386999999938,69.297484999999995],[-69.146118000000001,69.300537000000077],[-69.133330999999998,69.303314],[-69.013335999999981,69.327484000000027],[-68.956664999999873,69.331940000000088],[-68.941100999999946,69.332489000000066],[-68.921386999999868,69.331940000000088],[-68.658339999999896,69.300262000000089],[-68.537216000000001,69.285262999999986],[-68.504729999999995,69.280272999999966],[-68.330565999999919,69.27526899999998],[-68.251953000000015,69.27748100000008],[-68.230835000000013,69.277771000000087],[-68.198607999999979,69.274703999999986],[-68.172225999999966,69.269714000000079],[-68.159438999999963,69.266098000000056],[-68.14834599999989,69.261658000000011],[-68.139724999999885,69.257766999999944],[-68.088608000000022,69.228867000000093],[-68.083618000000001,69.225540000000137],[-68.077498999999875,69.21748400000007],[-68.081679999999949,69.211928999999998],[-68.091384999999946,69.205551000000071],[-68.103881999999999,69.202209000000096],[-68.129715000000033,69.197754000000089],[-68.163054999999929,69.199997000000053],[-68.263061999999991,69.211380000000077],[-68.410827999999924,69.221374999999966],[-68.549987999999985,69.226928999999984],[-68.643616000000009,69.229431000000034],[-68.664444000000003,69.228043000000127],[-68.689986999999917,69.223602000000028],[-68.839721999999938,69.214706000000092],[-68.923049999999989,69.220825000000104],[-68.967772999999966,69.221099999999979],[-68.948333999999875,69.214156999999943],[-68.93971299999987,69.211928999999998],[-68.913054999999986,69.20748900000001],[-68.862777999999992,69.201934999999992],[-68.80749499999996,69.198868000000061],[-68.788054999999986,69.198318000000029],[-68.767226999999991,69.199707000000046],[-68.737777999999992,69.203598000000113],[-68.704726999999991,69.209152000000074],[-68.65695199999999,69.210541000000092],[-68.618057000000022,69.209152000000074],[-68.515015000000005,69.20248400000014],[-68.502501999999993,69.198593000000074],[-68.505279999999914,69.195815999999979],[-68.513901000000033,69.191925000000083],[-68.690551999999968,69.141098],[-68.707229999999925,69.138321000000076],[-68.872771999999998,69.120529000000033],[-68.998046999999985,69.103591999999992],[-68.961670000000026,69.103867000000037],[-68.929717999999923,69.100266000000147],[-68.926940999999943,69.098328000000038],[-68.926666000000012,69.079987000000017],[-68.957779000000016,69.005264000000011],[-68.958892999999989,69.003052000000139],[-68.969161999999926,68.993591000000038],[-68.994155999999919,68.982483000000002],[-69.006118999999956,68.978317000000118],[-69.018889999999885,68.975815000000068],[-69.028885000000002,68.971375000000023],[-69.025833000000034,68.968597000000045],[-69.017501999999979,68.966385000000002],[-69.005568999999923,68.964705999999978],[-68.998046999999985,68.964995999999985],[-68.973052999999993,68.970824999999991],[-68.962783999999999,68.974701000000039],[-68.946380999999917,68.982483000000002],[-68.930557000000022,68.992752000000053],[-68.920272999999952,69.00277699999998],[-68.89416499999993,69.044982999999945],[-68.89416499999993,69.050537000000134],[-68.892226999999991,69.062194999999974],[-68.889724999999999,69.066376000000048],[-68.881942999999865,69.07777400000009],[-68.879165999999941,69.081374999999923],[-68.872497999999894,69.084991000000002],[-68.858336999999892,69.088318000000129],[-68.753615999999965,69.109711000000061],[-68.471114999999998,69.166381999999999],[-68.412780999999939,69.176926000000037],[-68.381377999999927,69.175262000000032],[-68.351394999999968,69.171646000000123],[-68.178329000000019,69.14665199999996],[-68.089447000000007,69.126082999999994],[-67.725280999999939,69.032211000000132],[-67.715012000000002,69.029160000000104],[-67.708054000000004,69.024704000000042],[-67.705840999999964,69.01638800000012],[-67.721114999999941,69.009720000000129],[-67.974715999999944,68.9727630000001],[-68.029448999999943,68.971375000000023],[-68.058884000000035,68.973602000000085],[-68.211120999999935,68.991928000000087],[-68.241378999999995,68.996933000000126],[-68.268065999999976,69.00277699999998],[-68.314162999999951,69.010544000000095],[-68.335007000000019,69.009155000000078],[-68.535552999999879,68.984146000000123],[-68.548614999999984,68.982208000000014],[-68.552779999999984,68.977203000000145],[-68.554717999999923,68.971100000000035],[-68.556106999999997,68.964157],[-68.545272999999952,68.959717000000012],[-68.440552000000025,68.9727630000001],[-68.337509000000011,68.985809000000074],[-68.320281999999963,68.986374000000069],[-68.303054999999972,68.985809000000074],[-68.290557999999976,68.982208000000014],[-68.285278000000005,68.977478000000133],[-68.28443900000002,68.974701000000039],[-68.264175000000023,68.964705999999978],[-68.196945000000028,68.94999700000011],[-68.186661000000015,68.947754000000145],[-68.169448999999986,68.946930000000009],[-68.152221999999938,68.946930000000009],[-68.116104000000007,68.94747899999993],[-68.081679999999949,68.94747899999993],[-68.064163000000008,68.946091000000024],[-68.048339999999996,68.943863000000079],[-68.039992999999981,68.941360000000088],[-67.974715999999944,68.865265000000079],[-67.972778000000005,68.859146000000067],[-67.977492999999981,68.855545000000006],[-67.986938000000009,68.854431000000034],[-68.006118999999899,68.854979999999955],[-68.082229999999981,68.862487999999985],[-68.129165999999998,68.867751999999996],[-68.18360899999999,68.878586000000041],[-68.242217999999866,68.889984000000027],[-68.256119000000012,68.892212000000029],[-68.289444000000003,68.894989000000123],[-68.37388599999997,68.897217000000069],[-68.475280999999995,68.899429000000112],[-68.489990000000034,68.897491000000002],[-68.491668999999945,68.896652000000017],[-68.488892000000021,68.893326000000002],[-68.48582499999992,68.89027400000009],[-68.477218999999934,68.886932000000115],[-68.463333000000034,68.885544000000039],[-68.43249499999996,68.883331000000055],[-68.373046999999929,68.88220200000012],[-68.353606999999954,68.88108799999992],[-68.293059999999969,68.874984999999981],[-68.266662999999994,68.869980000000112],[-68.179717999999923,68.851928999999984],[-68.133895999999936,68.837203999999986],[-68.008347000000015,68.816666000000112],[-67.972778000000005,68.811920000000043],[-67.955565999999976,68.810257000000092],[-67.916945999999939,68.808318999999983],[-67.886672999999917,68.808868000000075],[-67.861389000000031,68.805542000000059],[-67.778335999999911,68.786102000000085],[-67.771941999999967,68.78276100000005],[-67.771392999999932,68.781372000000033],[-67.774718999999948,68.77915999999999],[-67.803329000000019,68.774155000000121],[-67.820006999999976,68.772766000000104],[-67.857772999999952,68.771378000000027],[-67.872771999999998,68.771652000000131],[-67.915008999999998,68.774155000000121],[-67.944442999999922,68.778046000000018],[-68.076110999999969,68.80192599999998],[-68.170836999999892,68.814697000000081],[-68.352218999999934,68.832488999999953],[-68.426392000000021,68.839157000000114],[-68.546660999999972,68.84664900000007],[-68.565551999999968,68.847214000000122],[-68.58805799999999,68.846374999999966],[-68.606109999999887,68.842758000000003],[-68.610549999999989,68.839157000000114],[-68.611663999999962,68.835815000000025],[-68.604445999999939,68.83137499999998],[-68.593886999999995,68.827484000000084],[-68.557769999999948,68.821380999999974],[-68.52694699999995,68.795258000000047],[-68.602492999999924,68.794983000000002],[-68.678878999999938,68.796646000000123],[-68.795273000000009,68.799423000000047],[-68.807220000000029,68.800261999999975],[-68.900283999999942,68.80720500000001],[-68.967498999999918,68.814697000000081],[-68.995270000000005,68.819153000000028],[-69.00389100000001,68.822220000000129],[-69.015015000000005,68.827209000000096],[-69.105835000000013,68.848602000000028],[-69.25111400000003,68.872481999999991],[-69.28083799999996,68.875809000000118],[-69.323058999999944,68.876648000000102],[-69.361938000000009,68.874146000000053],[-69.378051999999968,68.871368000000018],[-69.389998999999989,68.867476999999951],[-69.398055999999997,68.862198000000149],[-69.394454999999994,68.85775799999999],[-69.379990000000021,68.854979999999955],[-69.36082499999992,68.854431000000034],[-69.331679999999949,68.856934000000024],[-69.279448999999943,68.855255],[-69.245543999999882,68.851379000000122],[-69.185546999999985,68.842209000000082],[-69.171111999999994,68.838882000000126],[-69.162215999999944,68.835815000000025],[-69.152221999999938,68.828048999999965],[-69.153884999999946,68.827209000000096],[-69.163054999999986,68.826096000000007],[-69.229996000000028,68.827209000000096],[-69.294158999999922,68.831940000000031],[-69.315001999999993,68.831664999999987],[-69.357773000000009,68.829163000000108],[-69.368606999999997,68.827209000000096],[-69.375548999999978,68.824997000000053],[-69.382767000000001,68.819153000000028],[-69.383895999999993,68.816376000000105],[-69.381377999999984,68.814986999999917],[-69.37110899999999,68.812759000000142],[-69.193603999999993,68.804153000000042],[-68.971114999999998,68.791931000000091],[-68.959166999999923,68.789703000000145],[-68.944992000000013,68.786926000000051],[-68.942490000000021,68.784988000000112],[-68.196380999999974,68.706940000000145],[-68.049437999999952,68.681655999999975],[-68.044998000000021,68.678314000000057],[-68.046111999999937,68.676376000000062],[-68.087508999999955,68.629425000000083],[-68.094451999999933,68.627762000000132],[-68.34445199999999,68.628586000000098],[-68.56220999999988,68.651931999999988],[-68.621933000000013,68.655823000000055],[-68.657776000000013,68.656372000000147],[-68.680283000000031,68.65554800000001],[-68.747771999999941,68.649155000000064],[-68.777785999999935,68.643051000000014],[-68.89416499999993,68.607208000000014],[-68.902495999999985,68.603592000000106],[-68.900283999999942,68.603043000000014],[-68.835830999999985,68.589157],[-68.804169000000002,68.589980999999966],[-68.757674999999949,68.600646999999981],[-68.749343999999951,68.602654000000143],[-68.735001000000011,68.607314999999971],[-68.711165999999992,68.621147000000121],[-68.679992999999911,68.630814000000044],[-68.647507000000019,68.635544000000095],[-68.62860099999989,68.635544000000095],[-68.594161999999926,68.633605999999986],[-68.563048999999921,68.629425000000083],[-68.533324999999991,68.624985000000038],[-68.481383999999935,68.614990000000148],[-68.475280999999995,68.61303700000002],[-68.470276000000013,68.609146000000123],[-68.46945199999999,68.606369000000029],[-68.483321999999987,68.596939000000134],[-68.50389100000001,68.589980999999966],[-68.519454999999994,68.585815000000082],[-68.533889999999928,68.583878000000027],[-68.605834999999956,68.578872999999987],[-68.648345999999947,68.577773999999977],[-68.660004000000015,68.578872999999987],[-68.682883999999945,68.575211000000024],[-68.69506100000001,68.574379000000135],[-68.707053999999971,68.57337200000012],[-68.712387000000035,68.572044000000005],[-68.716064000000017,68.569382000000019],[-68.716727999999932,68.568047000000035],[-68.707053999999971,68.5660400000001],[-68.696724000000017,68.565207999999984],[-68.656113000000005,68.559708000000001],[-68.460007000000019,68.562195000000088],[-68.447220000000016,68.563599000000067],[-68.435271999999941,68.567490000000134],[-68.427215999999987,68.571930000000009],[-68.422774999999945,68.576096000000064],[-68.420272999999895,68.579711999999915],[-68.419997999999964,68.585266000000104],[-68.416397000000018,68.591369999999984],[-68.396117999999944,68.593048000000067],[-68.337783999999999,68.593323000000112],[-68.244445999999982,68.588043000000027],[-68.215560999999866,68.585541000000148],[-68.136672999999973,68.572220000000016],[-68.06534599999992,68.545822000000044],[-67.920273000000009,68.534424000000001],[-67.866942999999992,68.509720000000073],[-67.809158000000025,68.531097000000102],[-67.673049999999932,68.561096000000077],[-67.664169000000015,68.562759000000028],[-67.643615999999952,68.562759000000028],[-67.539443999999946,68.550812000000064],[-67.52555799999999,68.548598999999911],[-67.500838999999928,68.538315000000068],[-67.492217999999923,68.527206000000035],[-67.493056999999965,68.523604999999975],[-67.502228000000002,68.514999000000046],[-67.510559000000001,68.511382999999967],[-67.51916499999993,68.509155000000021],[-67.543059999999912,68.506103999999993],[-67.607773000000009,68.503876000000048],[-67.621658000000025,68.5],[-67.628052000000025,68.496368000000018],[-67.634734999999921,68.486649],[-67.621383999999978,68.384429999999952],[-67.618606999999997,68.381088000000034],[-67.612502999999947,68.379424999999912],[-67.603332999999907,68.378860000000088],[-67.59445199999999,68.381363000000079],[-67.551102000000014,68.414428999999984],[-67.548339999999996,68.440262000000132],[-67.549437999999896,68.443863000000022],[-67.555832000000009,68.455261000000007],[-67.511123999999938,68.483322000000101],[-67.426102000000014,68.494430999999963],[-67.335555999999997,68.49693300000007],[-67.31639100000001,68.496094000000085],[-67.232497999999964,68.480545000000006],[-67.224166999999966,68.47665400000011],[-67.217498999999918,68.471924000000058],[-67.213622999999927,68.440811000000053],[-67.223052999999993,68.426086000000112],[-67.307770000000005,68.423309000000017],[-67.325835999999981,68.421371000000079],[-67.332779000000016,68.418869000000029],[-67.335830999999985,68.416092000000106],[-67.338608000000022,68.411926000000051],[-67.33805799999999,68.409988000000055],[-67.324448000000018,68.40776100000005],[-67.15695199999999,68.406372000000033],[-67.111938000000009,68.411926000000051],[-67.104996000000028,68.414153999999996],[-67.100554999999929,68.418320000000051],[-67.09722899999997,68.45138500000013],[-67.100280999999995,68.457214000000135],[-67.106658999999866,68.460541000000092],[-67.116652999999985,68.463607999999965],[-67.127212999999983,68.46804800000001],[-67.129990000000021,68.472763000000043],[-67.126937999999996,68.475540000000137],[-67.112777999999992,68.478867000000093],[-66.908050999999944,68.453873000000101],[-66.821395999999993,68.465271000000087],[-66.803054999999972,68.467209000000025],[-66.787506000000008,68.464996000000099],[-66.706954999999994,68.44470200000012],[-66.697768999999937,68.428039999999953],[-66.724166999999909,68.429153000000042],[-66.782775999999956,68.426086000000112],[-66.904998999999918,68.416382000000112],[-66.920546999999942,68.411102000000085],[-66.921660999999915,68.408324999999991],[-66.914168999999902,68.398880000000077],[-66.913054999999986,68.39498900000001],[-66.914444000000003,68.391937000000098],[-66.93638599999997,68.374420000000043],[-66.946654999999907,68.369980000000055],[-66.955001999999979,68.367477000000065],[-67.005843999999968,68.354430999999977],[-67.011123999999938,68.353591999999992],[-67.02416999999997,68.35386699999998],[-67.048889000000031,68.355820000000108],[-67.075561999999934,68.360535000000141],[-67.111388999999974,68.370255000000043],[-67.130279999999914,68.379700000000128],[-67.142226999999991,68.382750999999985],[-67.230559999999969,68.39498900000001],[-67.245543999999995,68.395827999999995],[-67.286391999999978,68.395827999999995],[-67.379715000000033,68.390823000000125],[-67.411117999999931,68.382750999999985],[-67.415557999999976,68.378036000000122],[-67.418883999999991,68.376373000000001],[-67.455565999999919,68.36775200000011],[-67.494719999999973,68.360809000000074],[-67.595276000000013,68.347762999999986],[-67.631667999999991,68.345261000000107],[-67.646117999999944,68.344711000000075],[-67.743880999999988,68.343322999999941],[-67.781386999999938,68.337204000000099],[-67.810546999999985,68.328598],[-67.832229999999925,68.320267000000115],[-67.849730999999963,68.309981999999991],[-67.865829000000019,68.29971299999994],[-67.87110899999999,68.292755],[-67.878326000000015,68.26527400000009],[-67.869720000000029,68.259995000000117],[-67.860001000000011,68.258331000000112],[-67.845551,68.258880999999974],[-67.833327999999938,68.261383000000023],[-67.826675000000023,68.264434999999935],[-67.820281999999906,68.268599999999935],[-67.818068999999923,68.274155000000064],[-67.821120999999948,68.284987999999998],[-67.820557000000008,68.289703000000031],[-67.815551999999968,68.292206000000022],[-67.752501999999993,68.318878000000097],[-67.745269999999891,68.320541000000048],[-67.597778000000005,68.323044000000039],[-67.583069000000023,68.308029000000033],[-67.572234999999978,68.273314999999968],[-67.576675000000023,68.268599999999935],[-67.583327999999995,68.265548999999965],[-67.591674999999952,68.263046000000145],[-67.616394000000014,68.258331000000112],[-67.646666999999979,68.25360100000006],[-67.662780999999995,68.252487000000087],[-67.689437999999996,68.24803200000008],[-67.695267000000001,68.242477000000008],[-67.694992000000013,68.241089000000102],[-67.690826000000015,68.239700000000084],[-67.679717999999923,68.238876000000118],[-67.666945999999996,68.239975000000129],[-67.579726999999934,68.251389000000017],[-67.570846999999901,68.253052000000139],[-67.551666000000012,68.258331000000112],[-67.546950999999979,68.260544000000095],[-67.539169000000015,68.265823000000069],[-67.533066000000019,68.271378000000141],[-67.531112999999948,68.278320000000065],[-67.535004000000015,68.285538000000031],[-67.541381999999999,68.288879000000065],[-67.546111999999937,68.294144000000131],[-67.544997999999964,68.296371000000022],[-67.540282999999931,68.29971299999994],[-67.523894999999982,68.308594000000085],[-67.494155999999975,68.321930000000009],[-67.401947000000007,68.352478000000019],[-67.394729999999981,68.354156000000103],[-67.385558999999944,68.354430999999977],[-67.243880999999988,68.358322000000044],[-67.232497999999964,68.357483000000059],[-67.182495000000017,68.349426000000108],[-67.130279999999914,68.340820000000008],[-67.078063999999927,68.331100000000106],[-67.016113000000018,68.318603999999993],[-67.011672999999917,68.316086000000041],[-67.018340999999964,68.311645999999996],[-67.032500999999968,68.309143000000006],[-67.152221999999995,68.299987999999985],[-67.235000999999954,68.291655999999989],[-67.303878999999938,68.258880999999974],[-67.319732999999985,68.249709999999993],[-67.327788999999939,68.243590999999981],[-67.333617999999944,68.237761999999975],[-67.337509000000011,68.232483000000002],[-67.338897999999915,68.227767999999969],[-67.33944699999995,68.221649000000127],[-67.33944699999995,68.205551000000071],[-67.335007000000019,68.200821000000019],[-67.327498999999932,68.18664600000011],[-67.327788999999939,68.181091000000038],[-67.338608000000022,68.171097000000032],[-67.34584000000001,68.166091999999992],[-67.37110899999999,68.153869999999984],[-67.387787000000003,68.146378000000084],[-67.398620999999878,68.143875000000094],[-67.412505999999951,68.143051000000128],[-67.430283000000031,68.144714000000079],[-67.456954999999994,68.149429000000112],[-67.477782999999988,68.154984000000013],[-67.513901000000033,68.162491000000102],[-67.528885000000002,68.165268000000026],[-67.567779999999971,68.169144000000074],[-67.581116000000009,68.168869000000086],[-67.598891999999978,68.164992999999981],[-67.598342999999943,68.162766000000147],[-67.575561999999934,68.154984000000013],[-67.544723999999917,68.14776599999999],[-67.480285999999978,68.134720000000016],[-67.466949,68.132202000000063],[-67.438048999999978,68.128036000000009],[-67.408050999999944,68.124984999999981],[-67.396956999999929,68.124694999999974],[-67.374161000000015,68.127472000000012],[-67.353881999999999,68.135268999999994],[-67.307770000000005,68.155548000000124],[-67.304168999999945,68.158600000000035],[-67.273894999999925,68.19081100000011],[-67.272781000000009,68.195525999999973],[-67.274718999999891,68.200546000000031],[-67.279175000000009,68.205261000000064],[-67.283614999999998,68.211929000000055],[-67.288894999999968,68.226379000000122],[-67.289444000000003,68.230820000000051],[-67.289444000000003,68.236374000000069],[-67.274718999999891,68.244141000000013],[-67.178878999999995,68.269989000000123],[-67.139724999999999,68.27998400000007],[-67.057769999999891,68.291092000000049],[-67.011397999999986,68.294983000000116],[-66.998336999999935,68.292480000000126],[-66.99110399999995,68.288879000000065],[-66.986114999999984,68.285538000000031],[-66.984160999999972,68.28054800000001],[-66.973617999999988,68.27388000000002],[-66.964721999999995,68.270263999999997],[-66.930572999999924,68.262482000000034],[-66.865828999999962,68.25],[-66.835830999999928,68.246368000000075],[-66.791672000000005,68.244705000000124],[-66.777495999999985,68.243317000000047],[-66.769729999999925,68.241089000000102],[-66.765839000000028,68.238586000000112],[-66.780288999999982,68.207764000000054],[-66.852218999999991,68.115265000000079],[-66.888900999999976,68.092758000000003],[-66.896666999999866,68.089432000000102],[-66.913894999999968,68.084152000000074],[-66.945830999999941,68.076096000000007],[-66.954452999999944,68.071930000000066],[-66.965560999999923,68.063873000000115],[-66.971114999999998,68.053314000000057],[-66.972777999999948,68.048599000000024],[-66.973327999999981,68.039428999999984],[-66.969727000000034,68.034149000000127],[-66.961120999999991,68.024994000000049],[-66.953612999999962,68.017212000000086],[-66.946654999999907,68.013611000000026],[-66.928054999999972,68.042755],[-66.921660999999915,68.049149000000057],[-66.836120999999935,68.095535000000041],[-66.748046999999985,68.131653000000142],[-66.709166999999923,68.141098],[-66.694442999999978,68.143051000000128],[-66.682769999999948,68.141373000000044],[-66.678878999999995,68.138885000000016],[-66.670837000000006,68.128860000000145],[-66.670272999999952,68.114151000000106],[-66.678054999999915,68.043320000000051],[-66.680557000000022,68.036925999999994],[-66.693053999999904,68.022217000000126],[-66.706389999999942,68.011658000000125],[-66.720839999999953,68.001663000000008],[-66.735000999999954,67.982208000000014],[-66.732773000000009,67.981934000000081],[-66.714721999999938,67.983597000000032],[-66.697219999999902,67.987488000000099],[-66.647232000000031,68.015548999999965],[-66.634734999999864,68.064147999999932],[-66.631942999999978,68.075821000000133],[-66.625548999999978,68.103317000000004],[-66.620270000000005,68.125809000000118],[-66.615554999999972,68.132477000000108],[-66.610549999999932,68.136932000000115],[-66.594726999999921,68.143051000000128],[-66.56138599999997,68.147490999999945],[-66.541945999999882,68.148330999999985],[-66.513625999999931,68.148330999999985],[-66.328887999999949,68.132202000000063],[-66.31527699999998,68.130264000000125],[-66.309432999999956,68.127472000000012],[-66.310546999999929,68.118591000000094],[-66.315001999999879,68.112487999999985],[-66.321121000000005,68.106934000000138],[-66.350280999999939,68.090271000000087],[-66.366394000000014,68.083328000000108],[-66.371657999999968,68.081664999999987],[-66.388610999999969,68.08137499999998],[-66.41361999999998,68.086104999999975],[-66.427779999999984,68.087493999999992],[-66.450561999999991,68.086928999999941],[-66.468612999999948,68.083054000000004],[-66.476104999999905,68.080551000000014],[-66.478606999999954,68.077209000000039],[-66.472228999999913,68.073044000000039],[-66.460555999999997,68.070541000000105],[-66.438048999999978,68.068054000000018],[-66.389998999999989,68.069443000000035],[-66.369445999999925,68.071655000000078],[-66.326110999999969,68.079163000000108],[-66.303878999999995,68.083878000000141],[-66.296660999999972,68.086104999999975],[-66.272780999999952,68.087769000000037],[-66.259170999999981,68.085814999999968],[-66.250838999999985,68.082214000000135],[-66.240279999999871,68.073317999999972],[-66.184157999999968,68.018875000000037],[-66.184433000000013,68.013321000000019],[-66.186385999999914,68.010818000000029],[-66.192764000000011,68.007217000000026],[-66.204177999999899,68.00471500000009],[-66.253066999999874,68.00221300000004],[-66.264175000000023,67.99971000000005],[-66.294448999999986,67.991653000000099],[-66.309722999999963,67.986099000000081],[-66.320846999999958,67.97886699999998],[-66.344451999999933,67.956650000000081],[-66.405838000000017,67.898041000000035],[-66.401397999999972,67.888596000000007],[-66.522232000000031,67.860809000000017],[-66.535278000000005,67.863602000000014],[-66.594161999999983,67.872482000000048],[-66.628601000000003,67.876648000000102],[-66.672501000000011,67.880264000000011],[-66.729445999999996,67.878859999999975],[-66.739715999999987,67.877762000000075],[-66.746947999999918,67.875259000000142],[-66.74499499999996,67.872757000000036],[-66.732223999999974,67.867203000000075],[-66.703063999999983,67.863602000000014],[-66.686934999999949,67.862761999999975],[-66.653885000000002,67.859421000000111],[-66.56138599999997,67.843048000000067],[-66.401397999999972,67.811096000000077],[-66.356658999999922,67.821381000000031],[-66.346389999999985,67.861099000000024],[-66.332779000000016,67.887772000000041],[-66.319457999999884,67.911102000000142],[-66.295837000000006,67.938309000000118],[-66.276672000000019,67.954436999999984],[-66.268615999999952,67.958037999999988],[-66.251952999999958,67.962494000000106],[-66.240554999999972,67.962768999999923],[-66.227492999999868,67.959991000000116],[-66.213897999999972,67.960815000000082],[-66.136948000000018,67.976089000000002],[-66.119995000000017,67.981369000000086],[-66.003219999999885,68.020492999999988],[-65.988723999999877,68.026145999999983],[-65.981383999999991,68.029984000000127],[-65.943603999999993,68.046097000000145],[-65.948607999999979,68.09248400000007],[-65.958617999999944,68.129424999999969],[-65.961945000000014,68.13749700000011],[-65.960555999999997,68.144440000000145],[-65.94749499999989,68.154160000000047],[-65.941665999999941,68.157211000000018],[-65.928329000000019,68.162201000000096],[-65.920837000000006,68.161926000000051],[-65.911941999999954,68.15887500000008],[-65.867492999999911,68.124694999999974],[-65.863892000000021,68.119431000000134],[-65.857773000000009,68.110260000000039],[-65.853607000000011,68.078048999999908],[-65.853607000000011,68.073317999999972],[-65.857773000000009,68.067215000000033],[-65.933837999999923,68.01226800000012],[-65.96032699999995,67.996429000000035],[-65.980835000000013,67.987267000000088],[-65.994330999999988,67.979767000000038],[-66.032226999999978,67.952484000000027],[-65.985824999999977,67.916655999999989],[-65.967223999999987,67.853317000000061],[-65.980835000000013,67.842758000000003],[-66.005004999999869,67.814986999999974],[-66.009734999999978,67.803314000000114],[-66.028884999999946,67.724426000000108],[-66.028884999999946,67.719436999999971],[-66.021941999999967,67.650269000000037],[-66.020003999999915,67.635269000000108],[-66.013061999999934,67.626923000000033],[-66.008621000000005,67.625534000000016],[-65.999724999999899,67.627472000000125],[-65.986663999999962,67.635269000000108],[-65.961394999999982,67.689697000000081],[-65.950286999999946,67.722487999999998],[-65.936935000000005,67.765549000000021],[-65.938598999999954,67.77609300000006],[-65.942490000000021,67.780823000000112],[-65.953888000000006,67.798324999999977],[-65.95666499999993,67.811920000000043],[-65.955840999999964,67.818329000000062],[-65.953338999999971,67.821381000000031],[-65.946105999999986,67.82638500000013],[-65.926391999999964,67.832763999999997],[-65.869155999999919,67.844147000000021],[-65.831679999999949,67.854431000000034],[-65.804169000000002,67.863602000000014],[-65.795272999999952,67.868042000000003],[-65.763625999999931,67.909987999999998],[-65.762222000000008,67.914703000000031],[-65.763901000000033,67.919708000000071],[-65.767226999999991,67.923035000000027],[-65.798889000000031,67.938309000000118],[-65.819732999999985,67.955551000000128],[-65.823623999999995,67.962768999999923],[-65.817779999999971,67.968048000000124],[-65.807769999999948,67.971100000000035],[-65.684433000000013,67.992477000000065],[-65.46305799999999,67.996368000000132],[-65.448607999999979,67.995529000000147],[-65.443603999999993,67.992203000000131],[-65.441939999999988,67.986923000000047],[-65.442490000000021,67.981369000000086],[-65.457503999999972,67.937194999999917],[-65.464447000000007,67.920822000000044],[-65.52027899999996,67.843048000000067],[-65.525833000000034,67.837769000000037],[-65.545273000000009,67.822220000000129],[-65.55860899999999,67.814423000000033],[-65.573623999999938,67.806931000000077],[-65.603881999999999,67.79693599999996],[-65.610549999999876,67.792755000000056],[-65.615829000000019,67.786102000000085],[-65.613891999999908,67.780823000000112],[-65.610001000000011,67.776382000000012],[-65.591948999999943,67.763046000000088],[-65.572509999999966,67.751663000000065],[-65.556945999999868,67.7452550000001],[-65.517501999999979,67.733047000000056],[-65.473617999999931,67.719711000000075],[-65.454726999999991,67.71276899999998],[-65.439712999999927,67.705551000000014],[-65.426391999999964,67.696365000000014],[-65.41361999999998,67.683593999999914],[-65.40695199999999,67.674988000000042],[-65.403609999999958,67.664703000000088],[-65.400283999999942,67.654434000000037],[-65.396392999999875,67.64498900000001],[-65.384734999999921,67.625809000000004],[-65.363892000000021,67.597488000000112],[-65.356658999999922,67.594711000000018],[-65.346389999999985,67.593323000000112],[-65.335281000000009,67.593597000000045],[-65.322784000000013,67.594986000000063],[-65.318344000000025,67.601089000000002],[-65.369155999999919,67.70277400000009],[-65.379165999999941,67.711655000000007],[-65.40264899999994,67.72322100000008],[-65.462508999999955,67.741928000000144],[-65.492492999999968,67.751663000000065],[-65.510833999999988,67.759155000000021],[-65.544448999999986,67.774155000000121],[-65.550551999999982,67.778320000000122],[-65.554442999999992,67.783051000000057],[-65.554442999999992,67.788040000000024],[-65.423614999999984,67.898041000000035],[-65.292495999999971,67.934143000000006],[-65.235275000000001,67.944702000000063],[-65.201401000000033,67.954436999999984],[-65.171660999999915,67.966094999999996],[-65.156386999999938,67.973602000000085],[-65.144164999999873,67.984145999999953],[-65.141387999999949,67.990265000000022],[-65.145553999999947,67.997208000000001],[-65.175827000000027,68.008881000000031],[-65.180831999999953,68.012207000000046],[-65.181106999999997,68.016662999999994],[-65.176665999999955,68.022491000000059],[-65.169158999999922,68.027206000000092],[-65.047775000000001,68.04942299999999],[-65.001113999999916,68.055542000000003],[-64.973052999999993,68.050261999999975],[-64.734160999999972,67.993866000000025],[-64.723617999999988,67.99054000000001],[-64.717498999999975,67.986374000000126],[-64.713622999999984,67.981659000000093],[-64.718063000000029,67.976654000000053],[-64.725554999999929,67.971648999999957],[-64.743332000000009,67.965819999999951],[-64.84722899999997,67.934981999999991],[-64.942490000000021,67.912490999999989],[-65.015288999999996,67.862488000000042],[-65.017775999999969,67.820830999999998],[-65.008347000000015,67.785262999999929],[-65.014175000000023,67.780273000000079],[-65.051101999999958,67.754439999999988],[-65.060546999999929,67.752213000000097],[-65.085280999999895,67.749145999999996],[-65.112212999999997,67.748032000000023],[-65.124434999999949,67.746368000000018],[-65.136123999999995,67.743591000000094],[-65.145553999999947,67.738876000000062],[-65.158339999999953,67.729706000000022],[-65.179992999999911,67.713608000000136],[-65.192489999999964,67.702209000000039],[-65.196380999999974,67.69720500000011],[-65.198607999999922,67.691649999999981],[-65.205001999999979,67.65914900000007],[-65.205565999999919,67.653595000000109],[-65.204178000000013,67.648331000000098],[-65.200286999999946,67.643875000000037],[-65.178328999999962,67.633605999999986],[-65.172500999999954,67.633605999999986],[-65.167220999999984,67.635818000000029],[-65.162780999999995,67.63888500000013],[-65.150283999999999,67.672211000000118],[-65.149733999999967,67.677765000000079],[-65.150283999999999,67.68193100000002],[-65.154174999999952,67.686646000000053],[-65.153335999999911,67.692200000000014],[-65.148894999999982,67.698317999999972],[-65.129715000000033,67.715820000000008],[-65.124161000000015,67.718047999999953],[-64.929717999999923,67.78776600000009],[-64.919723999999917,67.790817000000118],[-64.907227000000034,67.792205999999965],[-64.827224999999942,67.784714000000008],[-64.81639100000001,67.78137200000009],[-64.810546999999985,67.777205999999978],[-64.808884000000035,67.771927000000005],[-64.80749499999996,67.74275200000011],[-64.81610099999989,67.710541000000035],[-64.825835999999981,67.703049000000078],[-64.837509000000011,67.700271999999984],[-64.862777999999992,67.691649999999981],[-64.862502999999947,67.687484999999981],[-64.84944200000001,67.687194999999974],[-64.820557000000008,67.688308999999947],[-64.799728000000016,67.690811000000053],[-64.779448999999886,67.697754000000032],[-64.773055999999997,67.703598000000056],[-64.768616000000009,67.709427000000062],[-64.762221999999952,67.76249700000011],[-64.755843999999968,67.817764000000068],[-64.75,67.822769000000108],[-64.740829000000019,67.824707000000046],[-64.65306099999998,67.82887299999993],[-64.611938000000009,67.82638500000013],[-64.56806899999998,67.819992000000013],[-64.506957999999997,67.80720500000001],[-64.368880999999931,67.764160000000061],[-64.363327000000027,67.759430000000009],[-64.363891999999964,67.754439999999988],[-64.396117999999944,67.711929000000112],[-64.401397999999915,67.707764000000111],[-64.414718999999991,67.707214000000079],[-64.431380999999988,67.709717000000069],[-64.445266999999944,67.71138000000002],[-64.460006999999905,67.711655000000007],[-64.472503999999958,67.710266000000047],[-64.578338999999971,67.696930000000066],[-64.597228999999857,67.689697000000081],[-64.61721799999998,67.678589000000045],[-64.637221999999895,67.665267999999912],[-64.639175000000023,67.660538000000088],[-64.626389000000017,67.659714000000122],[-64.618332000000009,67.663040000000137],[-64.581389999999999,67.67442299999999],[-64.515839000000028,67.68609600000002],[-64.454177999999956,67.693314000000044],[-64.380828999999892,67.698029000000076],[-64.36250299999989,67.702484000000084],[-64.34722899999997,67.709991000000002],[-64.331389999999885,67.727203000000031],[-64.326400999999919,67.731094000000098],[-64.318068999999923,67.73414600000001],[-64.305557000000022,67.733597000000088],[-64.295273000000009,67.730270000000132],[-64.072784000000013,67.610260000000096],[-64.067779999999971,67.602477999999962],[-64.039718999999991,67.533600000000092],[-64.038604999999905,67.528595000000053],[-64.038895000000025,67.525818000000129],[-64.044998000000021,67.520828000000051],[-64.053054999999915,67.517487000000017],[-64.134734999999921,67.490265000000079],[-64.144729999999925,67.487197999999978],[-64.165282999999988,67.482482999999945],[-64.238601999999901,67.46748400000007],[-64.250838999999871,67.466095000000109],[-64.271941999999967,67.464996000000099],[-64.281113000000005,67.465546000000131],[-64.343886999999938,67.469985999999949],[-64.386948000000018,67.474425999999994],[-64.412216000000001,67.477478000000076],[-64.423049999999989,67.478043000000127],[-64.435546999999985,67.478592000000049],[-64.440552000000025,67.474991000000045],[-64.432220000000029,67.471099999999979],[-64.410004000000015,67.464156999999943],[-64.384734999999978,67.458328000000108],[-64.356948999999986,67.453873000000101],[-64.296660999999915,67.448029000000076],[-64.283614999999998,67.448029000000076],[-64.204452999999944,67.452209000000096],[-64.190551999999968,67.453323000000069],[-64.166945999999996,67.456940000000031],[-64.145003999999858,67.461655000000064],[-64.123321999999916,67.465271000000143],[-64.111114999999927,67.466660000000104],[-64.086394999999982,67.46748400000007],[-64.048049999999876,67.464156999999943],[-64.010833999999988,67.459717000000126],[-64.00111400000003,67.455826000000059],[-63.992653000000018,67.448624000000109],[-63.951110999999969,67.409988000000112],[-63.904166999999973,67.30581699999999],[-63.904166999999973,67.301651000000106],[-63.905829999999924,67.299712999999997],[-63.912773000000016,67.295532000000094],[-63.923889000000031,67.293320000000051],[-63.93721800000003,67.292755],[-64.022780999999952,67.30802900000009],[-64.055266999999958,67.311371000000008],[-64.084732000000031,67.313309000000118],[-64.181670999999938,67.312194999999974],[-64.217498999999975,67.313598999999954],[-64.339995999999985,67.319442999999978],[-64.530562999999916,67.33776899999998],[-64.740279999999984,67.356934000000138],[-64.757507000000032,67.358322000000044],[-64.788329999999917,67.35914600000001],[-64.797500999999954,67.356644000000131],[-64.80082699999997,67.352768000000026],[-64.798889000000031,67.350266000000147],[-64.788605000000018,67.34693900000002],[-64.73443599999996,67.333603000000096],[-64.721389999999928,67.331374999999923],[-64.687774999999988,67.327484000000027],[-64.441665999999998,67.303040000000124],[-64.402221999999995,67.299149000000057],[-64.372498000000007,67.297211000000118],[-64.344726999999921,67.297485000000052],[-64.283614999999998,67.299987999999985],[-64.258621000000005,67.299149000000057],[-64.24610899999999,67.298599000000024],[-64.23832699999997,67.296936000000073],[-64.231948999999986,67.293320000000051],[-64.233886999999868,67.288589000000115],[-64.248336999999992,67.279434000000037],[-64.306380999999988,67.262207000000046],[-64.325012000000015,67.257216999999969],[-64.356110000000001,67.250275000000045],[-64.392226999999991,67.24664300000012],[-64.419448999999929,67.247207999999944],[-64.509170999999981,67.254990000000078],[-64.536941999999954,67.256653000000028],[-64.550277999999992,67.25610400000005],[-64.668610000000001,67.238585999999941],[-64.724166999999966,67.22886699999998],[-64.779174999999952,67.218872000000033],[-64.790282999999931,67.21665999999999],[-64.799987999999928,67.213608000000079],[-64.80972300000002,67.210266000000104],[-64.81610099999989,67.206940000000088],[-64.813048999999978,67.201385000000016],[-64.808043999999995,67.198029000000133],[-64.801392000000021,67.195250999999985],[-64.783324999999934,67.190262000000018],[-64.772781000000009,67.189696999999967],[-64.758895999999993,67.19081099999994],[-64.71665999999999,67.200272000000098],[-64.655838000000017,67.217209000000139],[-64.46665999999999,67.229156000000046],[-64.425277999999935,67.228043000000014],[-64.350783999999976,67.234764000000098],[-64.287444999999991,67.238257999999973],[-64.267112999999995,67.241425000000049],[-64.232772999999952,67.251434000000017],[-64.169448999999986,67.260818000000029],[-64.158889999999928,67.262497000000053],[-64.114715999999987,67.267212000000086],[-64.010559000000001,67.275269000000037],[-63.976944000000003,67.277771000000087],[-63.969993999999986,67.27748100000008],[-63.965836000000024,67.275542999999971],[-63.962775999999963,67.272491000000059],[-63.962775999999963,67.270263999999997],[-63.975829999999917,67.251937999999996],[-63.993056999999965,67.228317000000118],[-63.998336999999935,67.221649000000127],[-64.013335999999981,67.212204000000042],[-64.021392999999989,67.208878000000027],[-64.045272999999952,67.204711999999972],[-64.05610699999994,67.204437000000098],[-64.088608000000022,67.207764000000054],[-64.220222000000035,67.201714000000038],[-64.467498999999918,67.167480000000069],[-64.501403999999923,67.161652000000004],[-64.545272999999952,67.152481000000023],[-64.575011999999958,67.144714000000079],[-64.584166999999923,67.142212000000029],[-64.611938000000009,67.132477000000108],[-64.658050999999944,67.113037000000134],[-64.680831999999953,67.09304800000001],[-64.686935000000005,67.087493999999992],[-64.689986999999917,67.083602999999925],[-64.692490000000021,67.078048999999965],[-64.700561999999991,67.018051000000071],[-64.701110999999912,67.012207000000046],[-64.700561999999991,67.008040999999992],[-64.696945000000028,67.003326000000129],[-64.691939999999988,67.000549000000035],[-64.683060000000012,67.000275000000101],[-64.660278000000005,67.003875999999991],[-64.638610999999969,67.008606000000043],[-64.628325999999959,67.012207000000046],[-64.623885999999914,67.018051000000071],[-64.619720000000029,67.028320000000122],[-64.618057000000022,67.039428999999984],[-64.618057000000022,67.044434000000081],[-64.619720000000029,67.049713000000054],[-64.618880999999988,67.055252000000053],[-64.615279999999927,67.066940000000045],[-64.609160999999972,67.081940000000031],[-64.604172000000005,67.088317999999958],[-64.597777999999892,67.093872000000147],[-64.583617999999888,67.103043000000127],[-64.547501000000011,67.118590999999924],[-64.527221999999881,67.124145999999996],[-64.506393000000003,67.129425000000026],[-64.474715999999944,67.13499500000006],[-64.229995999999971,67.164154000000053],[-64.087218999999948,67.179703000000131],[-64.008895999999993,67.178864000000033],[-63.995551999999975,67.179428000000144],[-63.971381999999949,67.182205000000067],[-63.96055599999994,67.184417999999994],[-63.929726000000016,67.192749000000106],[-63.919166999999959,67.196365000000128],[-63.912216000000001,67.200546000000031],[-63.86222099999992,67.225815000000011],[-63.80750299999994,67.239150999999993],[-63.797500999999954,67.240265000000136],[-63.561942999999985,67.236923000000047],[-63.546394000000021,67.235809000000074],[-63.469443999999953,67.228317000000118],[-63.458336000000031,67.226088999999945],[-63.450554000000011,67.222488000000112],[-63.449164999999994,67.219437000000084],[-63.449164999999994,67.214995999999985],[-63.450835999999981,67.179703000000131],[-63.453888000000006,67.169434000000138],[-63.529442000000017,67.104431000000034],[-63.53833800000001,67.100540000000137],[-63.604720999999984,67.075272000000041],[-63.613892000000021,67.072769000000051],[-63.648055999999883,67.066940000000045],[-63.672775000000001,67.063599000000011],[-63.712776000000019,67.054977000000008],[-63.722771000000023,67.05192599999998],[-63.731383999999991,67.048035000000084],[-63.744445999999982,67.041092000000106],[-63.779723999999987,67.017487000000131],[-63.795836999999949,67.006653000000085],[-63.806389000000024,66.99581900000004],[-63.807219999999973,66.988037000000077],[-63.801392000000021,66.979705999999965],[-63.781386999999938,66.963608000000136],[-63.772498999999868,66.958878000000084],[-63.769447000000014,66.97137500000008],[-63.768889999999942,66.976929000000041],[-63.771111000000019,66.980819999999937],[-63.772498999999868,66.986098999999911],[-63.773613000000012,66.991088999999988],[-63.773330999999985,66.996094000000028],[-63.770836000000031,67.001389000000074],[-63.767219999999952,67.006104000000107],[-63.756950000000018,67.014160000000004],[-63.750557000000015,67.017487000000131],[-63.734443999999939,67.024155000000121],[-63.698607999999979,67.038878999999952],[-63.680000000000007,67.045821999999987],[-63.650832999999977,67.052475000000129],[-63.638335999999981,67.054428000000087],[-63.600837999999953,67.057479999999998],[-63.565552000000025,67.062485000000038],[-63.535277999999948,67.070831000000112],[-63.497222999999963,67.085266000000047],[-63.40277900000001,67.144440000000145],[-63.396392999999989,67.152206000000035],[-63.39416499999993,67.156936999999971],[-63.393889999999942,67.161652000000004],[-63.398055999999997,67.165817000000004],[-63.416945999999882,67.180267000000072],[-63.419997999999964,67.185806000000071],[-63.421943999999883,67.194702000000007],[-63.420836999999949,67.200272000000098],[-63.417777999999998,67.206100000000049],[-63.409163999999919,67.21665999999999],[-63.351669000000015,67.268051000000014],[-63.340553,67.276657000000114],[-63.332503999999972,67.281937000000028],[-63.298888999999974,67.297760000000039],[-63.280555999999933,67.306366000000139],[-63.272498999999982,67.309418000000051],[-63.160277999999948,67.328323000000012],[-63.137222000000008,67.331100000000106],[-63.110282999999868,67.329987000000017],[-63.03972599999986,67.306090999999924],[-63.022498999999925,67.298035000000084],[-63.015006999999969,67.293593999999985],[-62.997779999999977,67.281372000000147],[-62.992774999999995,67.276382000000126],[-62.973884999999882,67.235535000000141],[-62.970832999999971,67.225815000000011],[-62.970832999999971,67.221375000000023],[-63.023055999999997,67.179428000000144],[-63.035834999999963,67.171097000000032],[-63.04472399999986,67.167205999999965],[-63.075561999999934,67.15887500000008],[-63.100554999999986,67.155548000000124],[-63.134170999999981,67.15277100000003],[-63.170279999999991,67.147217000000069],[-63.19027699999998,67.143326000000002],[-63.232497999999964,67.132202000000063],[-63.242500000000007,67.129149999999981],[-63.268889999999942,67.117477000000122],[-63.275832999999977,67.113312000000121],[-63.284447,67.105255],[-63.285278000000005,67.099716000000001],[-63.283614999999998,67.094986000000119],[-63.278052999999943,67.090820000000065],[-63.268607999999972,67.082488999999953],[-63.260833999999988,67.074158000000068],[-63.25389100000001,67.064697000000081],[-63.224716000000001,67.024704000000042],[-63.220276000000013,67.016937000000098],[-63.220276000000013,67.006104000000107],[-63.220832999999971,66.989699999999971],[-63.221381999999949,66.984984999999938],[-63.223884999999996,66.979430999999977],[-63.227776000000006,66.972762999999986],[-63.240836999999999,66.961655000000007],[-63.27777900000001,66.949706999999933],[-63.320557000000008,66.940262000000075],[-63.356109999999944,66.934708000000057],[-63.36860699999994,66.934708000000057],[-63.43638599999997,66.925537000000134],[-63.469993999999986,66.920532000000094],[-63.514724999999999,66.912490999999989],[-63.526138000000003,66.909271000000047],[-63.545554999999865,66.903595000000053],[-63.554442999999935,66.899719000000005],[-63.565552000000025,66.892487000000074],[-63.565552000000025,66.888046000000145],[-63.563613999999973,66.883605999999929],[-63.557502999999997,66.875809000000004],[-63.554717999999866,66.870254999999986],[-63.551392000000021,66.860535000000084],[-63.555557000000022,66.848877000000073],[-63.571944999999971,66.837494000000049],[-63.593329999999924,66.831665000000044],[-63.615004999999996,66.827208999999982],[-63.638892999999882,66.824432000000058],[-63.652221999999881,66.82388300000008],[-63.698607999999979,66.822495000000004],[-63.725273000000016,66.823043999999982],[-63.775832999999921,66.825821000000019],[-63.771384999999952,66.811096000000077],[-63.653053,66.802475000000015],[-63.624442999999928,66.801926000000037],[-63.598334999999906,66.80304000000001],[-63.587776000000019,66.804428000000144],[-63.548889000000031,66.812485000000095],[-63.539443999999946,66.814697000000137],[-63.535277999999948,66.81581100000011],[-63.488891999999964,66.828323000000125],[-63.478881999999942,66.835815000000082],[-63.476386999999932,66.839157],[-63.475272999999959,66.842484000000127],[-63.476944000000003,66.846939000000134],[-63.487220999999977,66.858871000000079],[-63.494719999999973,66.865539999999953],[-63.496947999999861,66.880814000000044],[-63.487220999999977,66.896942000000081],[-63.480826999999977,66.90248100000008],[-63.474441999999954,66.906096999999932],[-63.456107999999972,66.910811999999964],[-63.441665999999998,66.908325000000104],[-63.427223000000026,66.901382000000126],[-63.407218999999998,66.814423000000033],[-63.407776000000013,66.809708000000001],[-63.410278000000005,66.799988000000099],[-63.414718999999991,66.783325000000048],[-63.417777999999998,66.773040999999978],[-63.436110999999926,66.728043000000071],[-63.449439999999925,66.716095000000053],[-63.453056000000004,66.711655000000064],[-63.451941999999917,66.70637499999998],[-63.441939999999931,66.703048999999965],[-63.420279999999934,66.698868000000061],[-63.415276000000006,66.700546000000145],[-63.408332999999914,66.704437000000041],[-63.40277900000001,66.708878000000141],[-63.376663000000008,66.734146000000067],[-63.32028200000002,66.814148000000046],[-63.319450000000018,66.819992000000013],[-63.224716000000001,66.899428999999998],[-62.973884999999882,66.961104999999975],[-62.962501999999972,66.963882000000069],[-62.939994999999954,66.966660000000047],[-62.87222300000002,66.964432000000102],[-62.846946999999943,66.961929000000112],[-62.837776000000019,66.957764000000111],[-62.821114000000023,66.830276000000083],[-62.820557000000008,66.813599000000067],[-62.827498999999932,66.78804000000008],[-62.829726999999991,66.783325000000048],[-62.837501999999972,66.771927000000005],[-62.84332999999998,66.769149999999911],[-62.864448999999979,66.746094000000085],[-62.869995000000017,66.739700000000028],[-62.873055000000022,66.733597000000088],[-62.91194200000001,66.652771000000143],[-62.914444000000003,66.647216999999955],[-62.908050999999944,66.63998400000014],[-62.903052999999943,66.637207000000046],[-62.899726999999984,66.636658000000125],[-62.859169000000009,66.653045999999961],[-62.850280999999939,66.656937000000028],[-62.835274000000027,66.666382000000112],[-62.819999999999936,66.684418000000107],[-62.734168999999952,66.790816999999947],[-62.735831999999959,66.801651000000049],[-62.743331999999953,66.809982000000105],[-62.751113999999916,66.818054000000075],[-62.768058999999937,66.830551000000071],[-62.774170000000026,66.840546000000018],[-62.768332999999984,66.907760999999994],[-62.764449999999954,66.925262000000089],[-62.761115999999959,66.929152999999985],[-62.743057000000022,66.941924999999969],[-62.725273000000016,66.947478999999987],[-62.634170999999981,66.951385000000073],[-62.607779999999991,66.952209000000039],[-62.592223999999931,66.950821000000133],[-62.578612999999962,66.947754000000032],[-62.568892999999889,66.944138000000123],[-62.549994999999967,66.931655999999975],[-62.519996999999933,66.911102000000028],[-62.40277900000001,66.809417999999994],[-62.401389999999935,66.804977000000065],[-62.40193899999997,66.789154000000053],[-62.398613000000012,66.780272999999909],[-62.393332999999984,66.775818000000072],[-62.326950000000011,66.730270000000132],[-62.319450000000018,66.726379000000065],[-62.313332000000003,66.726929000000098],[-62.299171000000001,66.733047000000056],[-62.291388999999924,66.756378000000097],[-62.292777999999998,66.761658000000011],[-62.295837000000006,66.766388000000006],[-62.362220999999977,66.818329000000119],[-62.419448999999986,66.843323000000055],[-62.424720999999977,66.847488000000055],[-62.426948999999865,66.851378999999952],[-62.436942999999985,66.884430000000123],[-62.427222999999969,66.921097000000088],[-62.418891999999971,66.926651000000106],[-62.407501000000025,66.92942800000003],[-62.394721999999945,66.929152999999985],[-62.346946999999886,66.933594000000085],[-62.284728999999913,66.946091000000081],[-62.271666999999979,66.960815000000139],[-62.279723999999931,66.979156000000103],[-62.291388999999924,67.005829000000119],[-62.294448999999986,67.021378000000027],[-62.293616999999983,67.026382000000012],[-62.290282999999988,67.032486000000006],[-62.285277999999948,67.036102000000085],[-62.278609999999958,67.039428999999984],[-62.262504999999976,67.045258000000047],[-62.101394999999968,67.054703000000075],[-62.054442999999878,67.049149000000114],[-62.03194400000001,67.045258000000047],[-62.019721999999945,67.042206000000078],[-62.005561999999941,67.0352630000001],[-62.006950000000018,67.031937000000084],[-62.04999499999991,66.987198000000092],[-62.106110000000001,66.917206000000022],[-62.102225999999916,66.913040000000137],[-62.072226999999998,66.907486000000119],[-62.029723999999987,66.901657000000114],[-62.018889999999942,66.901657000000114],[-62.018607999999972,66.908035000000098],[-62.015006999999912,66.91415400000011],[-61.95666499999993,66.963882000000069],[-61.949722000000008,66.967208999999968],[-61.938605999999993,66.969436999999971],[-61.913329999999974,66.970825000000048],[-61.865554999999972,66.970825000000048],[-61.851395000000025,66.970535000000041],[-61.83805099999995,66.968597000000102],[-61.749725000000012,66.94802900000002],[-61.737220999999977,66.941086000000041],[-61.731941000000006,66.93691999999993],[-61.728881999999942,66.932205000000067],[-61.730826999999863,66.923874000000012],[-61.612777999999992,66.870818999999926],[-61.314163000000008,66.687195000000031],[-61.294723999999917,66.67442299999999],[-61.289443999999946,66.669983000000002],[-61.281386999999995,66.661102000000028],[-61.262504999999976,66.629425000000083],[-61.266662999999937,66.622756999999922],[-61.300277999999935,66.593597000000045],[-61.341667000000029,66.571930000000009],[-61.348052999999936,66.570541000000048],[-61.356666999999959,66.571106000000043],[-61.388335999999981,66.578598],[-61.400275999999963,66.577208999999982],[-61.409720999999934,66.572768999999994],[-61.425003000000004,66.559708000000057],[-61.447776999999974,66.538315000000125],[-61.46166999999997,66.543319999999994],[-61.54861499999987,66.547484999999995],[-61.584723999999994,66.547760000000039],[-61.598609999999951,66.550262000000089],[-61.618056999999965,66.557205000000067],[-61.623885999999914,66.566939999999988],[-61.631942999999978,66.586654999999951],[-61.638610999999969,66.595534999999984],[-61.643889999999999,66.599991000000102],[-61.669166999999959,66.616378999999995],[-61.691382999999973,66.62831100000011],[-61.72582999999986,66.643051000000071],[-61.734443999999996,66.645827999999995],[-61.950554000000011,66.67692599999998],[-62.015555999999947,66.671371000000079],[-62.12388599999997,66.626373000000001],[-62.050551999999982,66.624985000000095],[-62.018607999999972,66.640823000000125],[-61.990836999999999,66.648041000000092],[-61.979995999999971,66.648041000000092],[-61.950554000000011,66.646102999999982],[-61.830284000000006,66.621368000000132],[-61.796950999999979,66.611923000000047],[-61.788895000000025,66.608597000000032],[-61.75389100000001,66.588593000000117],[-61.576667999999984,66.487198000000035],[-61.575279000000023,66.48275799999999],[-61.576392999999996,66.477203000000088],[-61.583327999999938,66.471649000000127],[-61.59194199999996,66.46775800000006],[-61.614166000000012,66.463043000000027],[-61.635001999999929,66.459991000000059],[-61.731383999999935,66.451096000000064],[-61.844161999999926,66.446091000000024],[-61.857779999999934,66.447204999999997],[-61.869720000000029,66.445815999999979],[-61.956947000000014,66.424149000000114],[-61.976943999999946,66.417480000000069],[-61.985832000000016,66.413605000000075],[-61.986945999999932,66.410262999999986],[-61.978049999999996,66.403869999999984],[-61.96416499999998,66.401382000000012],[-61.934165999999891,66.400818000000072],[-61.755004999999983,66.407486000000063],[-61.578612999999905,66.415268000000026],[-61.569449999999904,66.415543000000014],[-61.557266000000027,66.413680999999997],[-61.545279999999991,66.409988000000112],[-61.466942000000017,66.371918000000051],[-61.462501999999972,66.369141000000127],[-61.463614999999891,66.365814],[-61.665276000000006,66.324996999999996],[-61.877494999999954,66.283324999999934],[-61.928885999999977,66.283874999999966],[-62.198883000000023,66.314148000000102],[-62.207503999999915,66.316666000000112],[-62.212218999999948,66.319442999999978],[-62.218055999999933,66.331939999999975],[-62.231941000000006,66.366089000000045],[-62.232215999999937,66.369705000000067],[-62.229439000000013,66.375259000000085],[-62.224998000000028,66.380264000000125],[-62.218604999999968,66.392487000000017],[-62.218329999999867,66.396652000000017],[-62.223610000000008,66.401093000000117],[-62.229996000000028,66.40415999999999],[-62.255279999999914,66.408324999999991],[-62.268889999999999,66.409424000000001],[-62.418610000000001,66.421097000000032],[-62.456107999999915,66.423874000000126],[-62.565833999999995,66.42804000000001],[-62.626662999999894,66.426085999999998],[-62.698883000000023,66.41276600000009],[-62.709723999999994,66.410537999999974],[-62.716110000000015,66.407211000000018],[-62.710281000000009,66.403594999999996],[-62.673614999999984,66.393600000000049],[-62.629996999999946,66.387771999999984],[-62.478049999999996,66.369980000000112],[-62.337501999999972,66.315811000000053],[-62.32028200000002,66.308319000000097],[-62.316108999999983,66.304977000000008],[-62.320556999999951,66.299712999999997],[-62.323616000000015,66.298035000000084],[-62.388892999999939,66.276093000000003],[-62.398338000000024,66.273041000000092],[-62.621940999999993,66.221375000000023],[-62.643615999999952,66.216933999999924],[-62.666945999999939,66.214432000000045],[-62.680832000000009,66.216933999999924],[-62.751944999999921,66.241088999999931],[-62.757225000000005,66.245255000000043],[-62.780555999999933,66.277771000000143],[-62.782218999999884,66.282486000000006],[-62.782218999999884,66.288879000000122],[-62.773330999999985,66.296936000000073],[-62.774170000000026,66.302765000000136],[-62.77944199999996,66.307205000000124],[-62.797225999999966,66.313873000000115],[-62.816665999999941,66.320831000000112],[-62.826110999999912,66.324158000000011],[-62.858894000000021,66.334152000000074],[-62.868057000000022,66.336104999999975],[-62.881110999999976,66.335815000000139],[-62.889998999999989,66.333328000000108],[-62.895003999999915,66.329712000000029],[-62.809440999999993,66.240814000000114],[-62.801391999999964,66.235259999999926],[-62.715003999999908,66.201660000000061],[-62.706107999999972,66.199707000000103],[-62.681389000000024,66.196930000000009],[-62.647223999999994,66.199707000000103],[-62.603614999999991,66.205261000000121],[-62.488051999999925,66.200271999999927],[-62.366660999999965,66.174987999999985],[-62.180557000000022,66.148604999999975],[-62.037505999999951,66.100815000000011],[-61.961112999999898,66.033875000000023],[-61.955001999999979,66.024155000000121],[-61.954445000000021,66.019150000000081],[-61.955832999999927,66.014998999999989],[-61.960280999999895,66.011932000000058],[-61.975554999999986,66.010543999999982],[-62.088889999999935,66.000274999999931],[-62.133614000000023,66.000000000000114],[-62.148055999999997,66.001389000000131],[-62.166388999999981,66.00749200000007],[-62.172501000000011,66.010543999999982],[-62.188889000000017,66.012207000000103],[-62.196663000000001,66.011108000000092],[-62.291672000000005,65.980270000000132],[-62.307776999999987,65.973876999999959],[-62.391669999999863,66.011383000000137],[-62.404715999999894,66.014708999999982],[-62.525276000000019,66.034149000000127],[-62.541388999999981,66.035537999999974],[-62.695549000000028,66.042205999999965],[-62.74111199999993,66.038315000000068],[-62.759726999999884,66.033051000000057],[-62.778885000000002,66.033324999999991],[-62.799995000000024,66.039703000000145],[-62.809165999999891,66.043869000000029],[-62.831672999999967,66.055542000000059],[-62.842223999999987,66.064147999999989],[-62.846946999999943,66.069153000000028],[-62.855003000000011,66.083054000000004],[-62.856667000000016,66.087494000000049],[-62.860001000000011,66.103043000000127],[-62.8663939999999,66.112761999999975],[-62.873329000000012,66.121368000000075],[-62.884170999999867,66.129973999999947],[-62.90555599999999,66.140823000000012],[-62.930557000000022,66.146942000000081],[-62.946945000000028,66.148604999999975],[-62.95944199999991,66.14888000000002],[-62.970551,66.148041000000035],[-63.013618000000008,66.138885000000073],[-63.041672000000005,66.130264000000011],[-63.061942999999928,66.120819000000097],[-63.060279999999977,66.116379000000109],[-63.039443999999889,66.113312000000008],[-63.006393000000003,66.11692800000003],[-62.892226999999934,66.076660000000004],[-62.889998999999989,66.066375999999934],[-62.885833999999988,66.056366000000025],[-62.875,66.047760000000096],[-62.862220999999863,66.039429000000041],[-62.841942000000017,66.027480999999966],[-62.826667999999927,66.020264000000054],[-62.815833999999938,66.016098],[-62.793616999999983,66.010818000000086],[-62.778885000000002,66.009720000000016],[-62.768332999999984,66.009720000000016],[-62.755561999999884,66.00999500000006],[-62.743889000000024,66.011383000000137],[-62.67472099999992,66.015549000000021],[-62.523055999999997,66.002213000000097],[-62.517219999999952,66.000549000000092],[-62.4183349999999,65.970535000000041],[-62.405555999999933,65.963043000000084],[-62.395003999999915,65.949996999999996],[-62.386664999999994,65.936646000000053],[-62.321114000000023,65.831100000000049],[-62.317222999999956,65.808029000000033],[-62.441665999999941,65.793594000000098],[-62.478881999999999,65.790817000000004],[-62.505279999999971,65.790817000000004],[-62.521384999999952,65.792480000000126],[-62.604171999999892,65.801085999999998],[-62.619995000000017,65.803040000000067],[-62.684440999999936,65.816375999999991],[-62.717773000000022,65.825272000000098],[-62.727218999999991,65.828598],[-62.729996000000028,65.831940000000088],[-62.75278499999996,65.853591999999935],[-62.80750299999994,65.88998400000014],[-62.829445000000021,65.899994000000049],[-62.857506000000001,65.911102000000028],[-62.864166000000012,65.911102000000028],[-62.870551999999918,65.90554800000001],[-62.871940999999936,65.901382000000126],[-62.87471800000003,65.887497000000053],[-62.87471800000003,65.883041000000105],[-62.760001999999986,65.816665999999998],[-62.746391000000017,65.809708000000001],[-62.736945999999932,65.80831900000004],[-62.719993999999929,65.809708000000001],[-62.658889999999985,65.791930999999977],[-62.597778000000005,65.771927000000062],[-62.582221999999888,65.765549000000078],[-62.575004999999976,65.761658000000011],[-62.569449999999961,65.757492000000127],[-62.568610999999919,65.752212999999927],[-62.569725000000005,65.746643000000063],[-62.579444999999964,65.728317000000061],[-62.583610999999962,65.723312000000021],[-62.587775999999963,65.720260999999994],[-62.59027900000001,65.719147000000021],[-62.59944200000001,65.718872000000147],[-62.612777999999992,65.72164900000007],[-62.621940999999993,65.725540000000137],[-62.67472099999992,65.735809000000017],[-62.823891000000003,65.761383000000023],[-62.833442999999875,65.752991000000009],[-62.833777999999882,65.74999200000002],[-62.828780999999879,65.744492000000093],[-62.799170999999887,65.711928999999998],[-62.788054999999929,65.708328000000108],[-62.726386999999988,65.71138000000002],[-62.698883000000023,65.710266000000047],[-62.681670999999994,65.708038000000101],[-62.662772999999902,65.701096000000007],[-62.59944200000001,65.675812000000008],[-62.59194199999996,65.671920999999941],[-62.589721999999938,65.668594000000041],[-62.595832999999857,65.652205999999978],[-62.602225999999973,65.640273999999977],[-62.611670999999944,65.624145999999939],[-62.617499999999893,65.614990000000034],[-62.628051999999968,65.601929000000098],[-62.645279000000016,65.587203999999929],[-62.653053,65.586104999999975],[-62.751113999999916,65.58526599999999],[-62.767220000000009,65.587493999999936],[-62.78472899999997,65.59137000000004],[-62.803054999999972,65.59887700000013],[-62.859726000000023,65.634720000000016],[-62.861389000000031,65.639160000000004],[-62.858611999999937,65.65525800000006],[-62.862503000000004,65.685257000000092],[-62.882998999999984,65.724152000000061],[-62.885001999999986,65.726973999999927],[-62.887999999999863,65.729652000000044],[-62.904167000000029,65.746368000000018],[-62.922500999999954,65.752212999999927],[-62.936110999999926,65.754990000000021],[-62.949439999999925,65.755263999999954],[-62.95944199999991,65.753876000000048],[-62.962219000000005,65.748322000000087],[-62.943610999999919,65.743042000000003],[-62.93472300000002,65.738876000000118],[-62.925277999999992,65.731093999999985],[-62.916663999999912,65.722214000000122],[-62.914444000000003,65.718323000000055],[-62.892226999999934,65.641937000000098],[-62.89166999999992,65.638321000000076],[-62.895836000000031,65.633040999999992],[-62.901389999999935,65.628036000000122],[-62.953330999999991,65.586929000000112],[-62.961670000000026,65.583054000000118],[-62.972220999999934,65.580826000000002],[-63.005004999999926,65.624985000000095],[-63.016113000000018,65.632750999999985],[-63.027495999999928,65.635818000000086],[-63.040282999999931,65.63749700000011],[-63.137779000000023,65.644150000000081],[-63.162498000000028,65.632477000000051],[-63.162406999999973,65.628868000000068],[-63.164443999999946,65.625534000000073],[-63.178611999999987,65.627472000000012],[-63.200279000000023,65.633330999999998],[-63.211945000000014,65.640549000000021],[-63.293891999999971,65.708878000000141],[-63.43638599999997,65.84526100000005],[-63.443054000000018,65.854705999999908],[-63.474167000000023,65.833054000000061],[-63.379165999999998,65.720260999999994],[-63.368332000000009,65.693863000000022],[-63.368332000000009,65.669434000000081],[-63.399726999999984,65.676375999999948],[-63.412215999999944,65.67804000000001],[-63.448607999999922,65.680817000000047],[-63.461944999999957,65.681090999999981],[-63.704720000000009,65.68220500000001],[-63.717216000000008,65.681656000000032],[-63.723609999999894,65.680267000000015],[-63.728607000000011,65.675812000000008],[-63.728881999999999,65.673035000000141],[-63.723609999999894,65.668869000000029],[-63.700553999999954,65.655823000000112],[-63.68360899999999,65.650818000000072],[-63.671669000000009,65.648330999999985],[-63.504723000000013,65.6308140000001],[-63.453330999999991,65.629700000000128],[-63.432502999999997,65.631927000000019],[-63.399726999999984,65.634155000000135],[-63.375,65.632202000000007],[-63.36860699999994,65.629150000000095],[-63.351669000000015,65.61775200000011],[-63.326667999999984,65.600815000000068],[-63.319999999999936,65.593322999999998],[-63.336661999999933,65.556930999999963],[-63.34332999999998,65.548325000000091],[-63.355003000000011,65.537766000000033],[-63.359726000000023,65.536102000000028],[-63.373610999999983,65.533874999999966],[-63.463332999999977,65.522766000000047],[-63.474715999999887,65.523605000000032],[-63.482215999999937,65.525269000000037],[-63.488608999999997,65.528320000000065],[-63.501396,65.536377000000016],[-63.523055999999997,65.550812000000121],[-63.532775999999899,65.558594000000085],[-63.541114999999934,65.570267000000115],[-63.541388999999867,65.574158000000011],[-63.546669000000009,65.581100000000106],[-63.561278999999956,65.585372999999947],[-63.567943999999954,65.590042000000096],[-63.572449000000006,65.591209000000049],[-63.581279999999992,65.591873000000078],[-63.589943000000005,65.591209000000049],[-63.595778999999993,65.589035000000081],[-63.608894000000021,65.589981000000023],[-63.618331999999953,65.541931000000034],[-63.616660999999908,65.537490999999989],[-63.612777999999878,65.533325000000104],[-63.601395000000025,65.530273000000022],[-63.530280999999945,65.512206999999989],[-63.43277699999993,65.484421000000111],[-63.391945000000021,65.472488000000112],[-63.362503000000004,65.463318000000015],[-63.309165999999948,65.445525999999973],[-63.301665999999898,65.441650000000095],[-63.295279999999991,65.436371000000122],[-63.290839999999946,65.431656000000089],[-63.292777999999998,65.428863999999976],[-63.393889999999942,65.425262000000032],[-63.409995999999921,65.426651000000049],[-63.468886999999938,65.439697000000137],[-63.495276999999987,65.450272000000098],[-63.502785000000017,65.454162999999994],[-63.521666999999979,65.461105000000089],[-63.532775999999899,65.464705999999978],[-63.553329000000019,65.468872000000033],[-63.568892999999946,65.471649000000127],[-63.583327999999995,65.4727630000001],[-63.64305899999988,65.473602000000085],[-63.65444199999996,65.472213999999951],[-63.655555999999933,65.470824999999991],[-63.654716000000008,65.464995999999985],[-63.627494999999954,65.455826000000116],[-63.563613999999973,65.435806000000071],[-63.483611999999994,65.404984000000013],[-63.335555999999997,65.30053700000002],[-63.335830999999985,65.295531999999923],[-63.424720999999977,65.229430999999977],[-63.472220999999934,65.196365000000014],[-63.418892000000028,65.145263999999997],[-63.376944999999978,65.110809000000017],[-63.424445999999932,65.049149000000114],[-63.464721999999938,65.018051000000128],[-63.527221999999995,64.971924000000058],[-63.528335999999967,64.967758000000003],[-63.546950999999979,64.887207000000046],[-63.653885000000002,64.911652000000061],[-63.659720999999934,64.939697000000081],[-63.747779999999977,64.962203999999986],[-63.824172999999973,64.984711000000061],[-63.828339000000028,65.010817999999915],[-63.825561999999877,65.012771999999984],[-63.720276000000013,65.030823000000112],[-63.669723999999917,65.034988000000112],[-63.659995999999978,65.03637700000013],[-63.655272999999966,65.03804000000008],[-63.658051,65.041091999999992],[-63.664718999999934,65.043594000000041],[-63.685554999999965,65.047759999999982],[-63.697776999999974,65.049423000000047],[-63.732215999999994,65.048874000000126],[-63.751944999999978,65.045258000000047],[-63.782218999999941,65.034149000000014],[-63.801940999999999,65.030273000000079],[-63.824447999999961,65.027481000000023],[-63.849723999999924,65.030273000000079],[-63.861114999999984,65.033325000000048],[-63.870551999999918,65.040816999999947],[-63.873885999999914,65.04553199999998],[-63.875556999999958,65.050262000000032],[-63.885559000000001,65.079987000000131],[-63.886116000000015,65.085815000000025],[-63.881667999999934,65.096939000000134],[-63.948607999999979,65.100540000000024],[-64.121108999999933,65.043869000000086],[-64.132491999999957,65.044434000000081],[-64.140839000000028,65.047211000000004],[-64.267226999999991,65.094147000000021],[-64.275833000000034,65.098877000000073],[-64.271118000000001,65.103317000000061],[-64.22193900000002,65.146942000000081],[-64.208892999999989,65.155258000000003],[-64.18582200000003,65.163879000000065],[-64.167220999999927,65.170532000000037],[-64.131103999999937,65.182480000000112],[-64.129715000000033,65.193588000000091],[-64.203613000000018,65.199707000000103],[-64.211944999999901,65.199996999999939],[-64.231383999999991,65.196930000000009],[-64.301940999999999,65.163040000000137],[-64.30999799999995,65.15914900000007],[-64.314712999999983,65.15248100000008],[-64.339172000000019,65.161377000000016],[-64.37332200000003,65.177200000000028],[-64.380828999999892,65.181091000000094],[-64.395844000000011,65.207214000000079],[-64.407227000000034,65.275818000000015],[-64.405272999999909,65.285537999999917],[-64.402785999999935,65.291092000000106],[-64.398620999999935,65.29693600000013],[-64.389724999999999,65.304428000000087],[-64.355835000000013,65.324996999999996],[-64.333327999999995,65.337203999999986],[-64.30999799999995,65.349990999999989],[-64.300551999999982,65.355819999999994],[-64.25556899999998,65.386382999999967],[-64.250838999999871,65.390823000000012],[-64.236389000000031,65.421920999999998],[-64.234160999999972,65.427199999999971],[-64.237212999999997,65.429977000000065],[-64.248885999999914,65.430542000000116],[-64.272781000000009,65.428588999999988],[-64.291107000000011,65.422484999999938],[-64.431380999999988,65.326934999999992],[-64.461670000000026,65.294983000000002],[-64.471664000000033,65.283324999999991],[-64.474715999999944,65.272491000000116],[-64.468886999999938,65.263885000000016],[-64.463897999999972,65.258881000000031],[-64.456954999999994,65.249420000000043],[-64.452498999999989,65.241653000000099],[-64.455565999999976,65.207214000000079],[-64.462218999999948,65.190810999999997],[-64.468337999999903,65.180267000000129],[-64.509734999999921,65.12052900000009],[-64.521117999999944,65.109146000000123],[-64.535004000000015,65.097214000000122],[-64.549987999999985,65.09275800000006],[-64.555556999999965,65.092209000000082],[-64.561934999999949,65.094986000000006],[-64.567504999999926,65.115814000000057],[-64.567504999999926,65.119979999999998],[-64.569457999999941,65.124419999999986],[-64.580001999999922,65.128860000000032],[-64.611389000000031,65.141937000000041],[-64.641112999999962,65.149993999999992],[-64.655272999999966,65.166092000000049],[-64.718338000000017,65.222487999999942],[-64.760284000000013,65.25221300000004],[-64.765014999999948,65.247756999999979],[-64.778335999999967,65.238585999999998],[-64.788329999999917,65.23414600000001],[-64.801102000000014,65.230820000000108],[-64.814712999999983,65.235259999999982],[-64.864440999999999,65.256653000000085],[-64.883895999999993,65.265273999999977],[-64.891113000000018,65.269150000000081],[-64.896666999999979,65.273315000000082],[-64.898346000000004,65.275818000000015],[-64.910552999999993,65.29942299999999],[-64.910827999999981,65.303589000000102],[-64.910004000000015,65.304977000000008],[-64.855887999999936,65.314545000000123],[-64.834228999999937,65.319046000000014],[-64.823387000000025,65.318214000000125],[-64.796111999999937,65.31860400000005],[-64.793883999999991,65.314697000000081],[-64.786391999999978,65.310806000000014],[-64.777221999999995,65.30914300000012],[-64.757171999999912,65.313095000000033],[-64.752173999999911,65.314255000000117],[-64.696105999999872,65.329712000000029],[-64.691101000000003,65.331940000000031],[-64.687209999999936,65.334991000000059],[-64.685271999999998,65.337493999999992],[-64.684433000000013,65.341095000000053],[-64.689162999999951,65.341660000000104],[-64.799728000000016,65.346939000000077],[-64.813613999999973,65.347214000000065],[-64.868056999999965,65.339706000000092],[-64.897780999999952,65.334152000000074],[-64.909163999999976,65.334717000000126],[-64.912216000000001,65.338042999999971],[-64.910552999999993,65.33998100000008],[-64.904723999999987,65.343596999999932],[-64.609160999999972,65.426376000000005],[-64.591110000000015,65.429703000000131],[-64.583892999999989,65.430267000000072],[-64.508347000000015,65.425812000000064],[-64.477218999999991,65.421097000000032],[-64.466400000000021,65.417480000000069],[-64.458343999999954,65.416656000000103],[-64.448607999999979,65.418319999999937],[-64.441939999999931,65.420258000000103],[-64.433608999999933,65.429153000000099],[-64.429992999999968,65.434417999999994],[-64.40943900000002,65.473877000000073],[-64.412780999999939,65.478592000000106],[-64.418335000000013,65.482758000000047],[-64.434432999999899,65.484146000000123],[-64.551940999999999,65.457764000000054],[-64.695267000000001,65.427765000000022],[-64.795273000000009,65.415268000000026],[-64.806655999999919,65.413879000000009],[-64.82417299999986,65.413315000000068],[-64.833618000000001,65.414429000000041],[-64.843886999999938,65.417205999999965],[-64.845550999999944,65.419434000000138],[-64.854996000000028,65.422759999999982],[-64.863891999999964,65.424698000000092],[-64.869719999999973,65.423874000000126],[-64.974166999999966,65.404708999999968],[-64.981110000000001,65.401932000000102],[-64.987502999999947,65.39776599999999],[-64.990279999999927,65.393875000000094],[-64.988602000000014,65.379424999999969],[-64.98582499999992,65.371368000000018],[-64.989715999999987,65.36831699999999],[-65.001113999999916,65.366652999999985],[-65.016112999999962,65.367203000000018],[-65.058883999999978,65.376648000000102],[-65.075012000000015,65.383041000000048],[-65.136123999999995,65.422484999999938],[-65.144164999999873,65.427765000000022],[-65.149993999999992,65.434143000000006],[-65.168883999999991,65.482758000000047],[-65.168059999999969,65.483871000000079],[-65.160003999999958,65.48803700000002],[-65.149445000000014,65.493042000000059],[-65.142501999999922,65.495818999999983],[-65.129990000000021,65.49859600000002],[-65.110274999999945,65.497482000000048],[-65.082503999999972,65.500548999999978],[-64.929717999999923,65.524703999999986],[-64.854445999999996,65.583603000000096],[-64.836944999999957,65.605819999999937],[-64.767226999999991,65.63998399999997],[-64.741669000000002,65.641662999999994],[-64.723052999999993,65.643600000000049],[-64.711944999999957,65.647217000000012],[-64.70944199999991,65.650543000000027],[-64.710007000000019,65.652205999999978],[-64.71444699999995,65.653320000000122],[-64.768340999999964,65.659988000000112],[-64.794723999999974,65.661926000000051],[-64.818618999999956,65.661926000000051],[-64.828063999999927,65.661102000000085],[-64.843886999999938,65.658034999999984],[-64.853333000000021,65.654709000000139],[-64.872222999999963,65.64498900000001],[-64.888901000000033,65.629150000000095],[-64.899993999999936,65.616378999999995],[-64.952498999999875,65.56442300000009],[-64.974166999999966,65.551376000000062],[-64.993606999999884,65.548035000000027],[-65.110274999999945,65.541092000000049],[-65.15306099999998,65.53915400000011],[-65.311110999999983,65.548874000000012],[-65.318344000000025,65.550537000000134],[-65.326400999999976,65.556366000000139],[-65.333327999999995,65.563599000000124],[-65.338607999999965,65.575546000000088],[-65.308334000000002,65.621094000000028],[-65.303328999999962,65.62831099999994],[-65.299987999999928,65.6308140000001],[-65.295837000000006,65.631653000000085],[-65.275283999999942,65.631363000000079],[-65.252228000000002,65.629974000000061],[-65.217772999999966,65.629974000000061],[-65.188599000000011,65.629974000000061],[-65.153884999999946,65.630264000000068],[-65.125823999999966,65.633330999999998],[-65.112503000000004,65.637207000000103],[-65.105835000000013,65.639435000000049],[-65.103881999999999,65.642487000000131],[-65.103881999999999,65.651932000000045],[-65.109436000000017,65.658875000000023],[-65.106948999999986,65.667205999999908],[-65.105835000000013,65.668594000000041],[-65.09973100000002,65.671920999999941],[-64.994445999999925,65.70138500000013],[-64.981383999999991,65.704712000000086],[-64.969726999999978,65.706650000000025],[-64.942215000000033,65.709152000000074],[-64.922501000000011,65.709427000000119],[-64.902495999999985,65.708602999999982],[-64.814712999999983,65.712769000000037],[-64.803328999999962,65.714157000000114],[-64.798339999999996,65.716385000000116],[-64.793609999999887,65.719985999999949],[-64.791381999999999,65.723312000000021],[-64.794997999999964,65.728043000000127],[-64.801940999999886,65.730270000000019],[-64.815552000000025,65.730545000000006],[-64.90695199999999,65.728867000000093],[-64.973052999999993,65.723602000000028],[-64.996947999999918,65.721374999999966],[-65.024719000000005,65.716934000000037],[-65.057219999999973,65.710266000000047],[-65.076110999999912,65.705551000000014],[-65.103058000000033,65.694427000000132],[-65.11610399999995,65.685257000000092],[-65.138610999999969,65.671096999999975],[-65.144454999999994,65.667480000000012],[-65.164168999999958,65.656937000000084],[-65.168334999999956,65.656097000000045],[-65.369994999999903,65.661102000000085],[-65.431380999999931,65.669144000000074],[-65.441665999999884,65.671646000000123],[-65.449996999999883,65.674988000000042],[-65.454452999999887,65.678314000000114],[-65.456954999999937,65.68220500000001],[-65.456389999999999,65.68553199999991],[-65.452498999999932,65.69081100000011],[-65.447768999999994,65.695251000000098],[-65.460281000000009,65.74136400000009],[-65.490279999999927,65.735809000000017],[-65.497771999999941,65.737487999999985],[-65.50556899999998,65.74331699999999],[-65.505004999999983,65.751663000000121],[-65.498885999999857,65.763046000000088],[-65.455276000000026,65.832489000000066],[-65.449158000000011,65.841094999999939],[-65.439437999999996,65.8477630000001],[-65.357223999999974,65.902480999999909],[-65.152221999999938,65.957764000000111],[-65.137787000000003,65.961104999999975],[-65.050277999999992,65.98054500000012],[-64.963897999999972,65.998596000000134],[-64.946105999999986,66.001389000000131],[-64.934722999999906,66.002213000000097],[-64.923049999999989,66.001389000000131],[-64.898346000000004,65.996933000000013],[-64.880828999999949,65.989975000000015],[-64.851104999999961,65.98054500000012],[-64.842223999999931,65.978043000000071],[-64.801392000000021,65.969436999999971],[-64.772506999999962,65.966095000000053],[-64.755004999999926,65.966095000000053],[-64.743332000000009,65.967484000000013],[-64.735001000000011,65.969436999999971],[-64.733886999999925,65.97554000000008],[-64.738601999999958,65.978867000000037],[-64.765014999999948,65.988037000000077],[-64.821670999999981,66.044708000000014],[-64.750838999999928,66.185532000000023],[-64.721663999999976,66.217483999999956],[-64.712219000000005,66.223602000000085],[-64.605834999999956,66.259155000000135],[-64.480559999999969,66.296371000000079],[-64.451950000000011,66.303589000000102],[-64.405563000000029,66.315811000000053],[-64.388610999999912,66.321655000000078],[-64.375548999999921,66.327209000000039],[-64.365829000000019,66.333053999999947],[-64.356383999999935,66.340546000000074],[-64.354172000000005,66.348038000000031],[-64.356383999999935,66.349715999999944],[-64.366104000000007,66.350815000000125],[-64.377486999999974,66.349990999999989],[-64.443877999999984,66.344711000000075],[-64.464721999999938,66.34304800000001],[-64.71444699999995,66.274994000000049],[-64.718886999999995,66.273315000000025],[-64.789168999999958,66.236374000000126],[-64.796111999999937,66.231659000000093],[-64.839995999999985,66.193313999999987],[-64.858046999999942,66.149993999999992],[-64.856658999999979,66.139984000000084],[-64.851944000000003,66.124984999999981],[-64.849730999999963,66.12052900000009],[-64.854171999999949,66.109711000000118],[-64.858886999999982,66.106093999999985],[-64.933884000000035,66.080276000000026],[-64.948607999999979,66.076934999999992],[-65.126098999999954,66.03776600000009],[-65.381942999999922,65.975815000000125],[-65.398055999999997,65.974700999999925],[-65.827788999999996,65.953049000000078],[-65.876389000000017,65.94802900000002],[-65.916106999999954,65.95109599999995],[-65.928054999999972,65.953873000000044],[-65.935546999999929,65.958328000000051],[-65.939712999999927,65.962493999999992],[-65.96305799999999,66.034424000000001],[-65.963897999999915,66.043869000000029],[-65.918883999999935,66.086105000000032],[-65.911666999999852,66.091660000000104],[-65.904175000000009,66.094437000000028],[-65.786117999999988,66.126373000000115],[-65.674712999999997,66.157486000000119],[-65.65055799999999,66.164429000000098],[-65.640838999999914,66.168319999999994],[-65.634170999999924,66.172484999999995],[-65.564162999999951,66.226929000000041],[-65.545546999999942,66.243317000000104],[-65.471114999999941,66.342484000000013],[-65.471663999999919,66.383606000000043],[-65.473617999999931,66.385817999999915],[-65.475829999999974,66.387771999999984],[-65.479172000000005,66.388046000000088],[-65.482773000000009,66.387771999999984],[-65.489715999999987,66.385817999999915],[-65.501677999999913,66.376373000000058],[-65.553878999999938,66.32777400000009],[-65.555831999999953,66.325272000000041],[-65.559433000000013,66.320541000000105],[-65.561660999999901,66.314423000000147],[-65.564437999999996,66.293593999999985],[-65.562774999999988,66.288315000000011],[-65.562774999999988,66.283324999999934],[-65.571670999999981,66.268326000000059],[-65.598891999999921,66.244979999999998],[-65.610549999999876,66.235809000000074],[-65.696944999999971,66.180542000000116],[-65.702498999999989,66.177475000000015],[-65.844161999999926,66.135817999999972],[-65.926940999999999,66.114700000000084],[-65.951950000000011,66.108871000000079],[-65.96833799999996,66.108032000000094],[-66.073623999999995,66.12052900000009],[-66.139174999999966,66.131362999999965],[-66.145003999999972,66.1336060000001],[-66.147232000000031,66.135269000000051],[-66.200835999999981,66.194977000000051],[-66.191100999999946,66.239974999999959],[-66.25111400000003,66.242203000000131],[-66.371384000000035,66.22526600000009],[-66.401947000000007,66.200821000000076],[-66.478333000000021,66.201660000000061],[-66.489715999999873,66.202774000000034],[-66.496947999999975,66.20498699999996],[-66.505004999999926,66.208878000000027],[-66.524445000000014,66.224152000000117],[-66.529998999999918,66.229156000000103],[-66.534164000000033,66.233046999999999],[-66.540832999999964,66.241653000000099],[-66.542770000000019,66.24664300000012],[-66.577498999999989,66.354430999999977],[-66.576110999999969,66.35914600000001],[-66.570007000000032,66.365540000000067],[-66.564162999999951,66.369141000000127],[-66.53694200000001,66.378035999999952],[-66.500564999999995,66.388046000000088],[-66.454726999999991,66.398041000000148],[-66.445267000000001,66.401382000000012],[-66.438323999999909,66.40415999999999],[-66.434433000000013,66.407211000000018],[-66.437209999999936,66.413315000000068],[-66.441939999999988,66.414429000000041],[-66.466109999999901,66.414992999999981],[-66.473617999999988,66.414429000000041],[-66.481383999999991,66.413040000000024],[-66.597778000000005,66.386932000000115],[-66.604996000000028,66.376373000000058],[-66.610001000000011,66.371368000000018],[-66.617492999999911,66.368591000000094],[-66.629990000000021,66.36775200000011],[-66.713897999999972,66.368866000000082],[-66.724166999999909,66.369431000000134],[-66.730834999999956,66.369980000000112],[-66.743057000000022,66.372756999999979],[-66.767775999999913,66.380539000000113],[-66.821670999999924,66.458037999999931],[-66.821670999999924,66.460815000000025],[-66.806380999999931,66.531936999999971],[-66.851943999999946,66.583328000000051],[-66.972228999999913,66.628860000000088],[-66.999724999999955,66.638321000000019],[-67.023055999999997,66.643326000000059],[-67.036117999999931,66.644714000000022],[-67.048889000000031,66.644714000000022],[-67.058884000000035,66.642761000000064],[-67.060546999999985,66.640273999999977],[-67.05610699999994,66.633605999999986],[-67.043334999999956,66.625809000000061],[-67.016662999999937,66.615265000000022],[-66.950561999999877,66.592209000000139],[-66.908339999999953,66.578049000000078],[-66.887511999999901,66.569442999999978],[-66.884170999999867,66.566086000000041],[-66.889450000000011,66.561096000000134],[-67.105559999999969,66.485809000000017],[-67.118331999999953,66.484985000000052],[-67.133620999999948,66.485809000000017],[-67.176940999999943,66.489700000000084],[-67.189712999999927,66.491653000000042],[-67.198607999999979,66.494141000000013],[-67.202224999999999,66.497208000000114],[-67.203887999999949,66.505264000000011],[-67.192215000000033,66.51527400000009],[-67.186110999999983,66.524428999999941],[-67.19027699999998,66.529160000000104],[-67.327224999999999,66.595825000000048],[-67.338332999999977,66.597762999999986],[-67.34584000000001,66.597214000000008],[-67.398620999999878,66.589157000000057],[-67.410003999999958,66.585540999999978],[-67.463622999999984,66.578873000000044],[-67.515015000000005,66.573607999999979],[-67.581116000000009,66.575271999999984],[-67.639724999999999,66.580551000000128],[-67.726943999999889,66.576660000000061],[-67.737212999999997,66.574158000000011],[-67.740828999999962,66.571106000000043],[-67.742767000000015,66.568328999999949],[-67.741942999999935,66.564148000000046],[-67.735001000000011,66.561371000000008],[-67.722777999999892,66.558029000000033],[-67.701110999999855,66.55581699999999],[-67.499999999999943,66.544838000000027],[-67.426102000000014,66.541367000000037],[-67.407776000000013,66.542206000000022],[-67.395843999999954,66.544708000000071],[-67.380553999999904,66.545822000000044],[-67.373885999999914,66.545822000000044],[-67.365829000000019,66.544434000000138],[-67.296386999999925,66.526093000000003],[-67.281676999999945,66.51887499999998],[-67.148620999999991,66.443863000000022],[-67.143889999999999,66.437759000000028],[-67.143615999999952,66.435531999999967],[-67.138061999999991,66.382202000000063],[-67.139724999999999,66.376648000000046],[-67.160827999999981,66.365540000000067],[-67.172501000000011,66.363876000000062],[-67.185271999999941,66.363602000000128],[-67.197768999999994,66.365814],[-67.291671999999892,66.399429000000055],[-67.337509000000011,66.418869000000086],[-67.338988999999913,66.422852000000091],[-67.343063000000029,66.426650999999993],[-67.350280999999939,66.428863999999976],[-67.365829000000019,66.429703000000131],[-67.389724999999942,66.430817000000104],[-67.406386999999995,66.429703000000131],[-67.410552999999993,66.425262000000032],[-67.410003999999958,66.420821999999987],[-67.383330999999998,66.401932000000045],[-67.378326000000015,66.398604999999918],[-67.36860699999994,66.394714000000022],[-67.31361400000003,66.376373000000058],[-67.288604999999961,66.368866000000082],[-67.240828999999962,66.358871000000022],[-67.195830999999998,66.354980000000126],[-67.188598999999954,66.352203000000031],[-67.133057000000008,66.313873000000115],[-67.125274999999988,66.30693100000002],[-67.126099000000011,66.305542000000003],[-67.129165999999941,66.303589000000102],[-67.139449999999954,66.301376000000118],[-67.162216000000001,66.298874000000069],[-67.183884000000035,66.297485000000052],[-67.194153000000028,66.297760000000039],[-67.208618000000001,66.299988000000042],[-67.226944000000003,66.304153000000042],[-67.240828999999962,66.304153000000042],[-67.254181000000017,66.302765000000136],[-67.261672999999973,66.299149000000057],[-67.282226999999978,66.275269000000037],[-67.297501000000011,66.276093000000003],[-67.399170000000026,66.292480000000012],[-67.413895000000025,66.296646000000067],[-67.450287000000003,66.316666000000112],[-67.453063999999927,66.320541000000105],[-67.453339000000028,66.322495000000117],[-67.494719999999973,66.356934000000138],[-67.526108000000022,66.382202000000063],[-67.5625,66.407486000000063],[-67.566665999999998,66.409424000000001],[-67.603057999999976,66.418594000000041],[-67.634170999999981,66.424698000000092],[-67.690826000000015,66.435256999999922],[-67.71305799999999,66.436096000000077],[-67.730285999999978,66.439971999999955],[-67.812499999999943,66.463043000000027],[-67.825286999999946,66.46775800000006],[-67.828612999999905,66.470824999999934],[-67.834732000000031,66.48332199999993],[-67.838607999999908,66.491653000000042],[-67.923614999999927,66.516098000000056],[-67.952498999999989,66.514709000000039],[-67.985824999999863,66.509720000000073],[-67.992767000000015,66.506943000000035],[-67.992767000000015,66.503876000000105],[-67.944716999999855,66.478867000000093],[-67.929169000000002,66.473038000000088],[-67.906113000000005,66.468048000000067],[-67.886948000000018,66.461928999999998],[-67.870269999999948,66.454712000000086],[-67.760558999999944,66.358032000000037],[-67.756392999999946,66.353317000000004],[-67.711120999999935,66.296936000000073],[-67.701401000000033,66.284714000000122],[-67.701674999999966,66.278320000000065],[-67.705565999999976,66.275269000000037],[-67.724716000000001,66.260818000000029],[-67.672225999999966,66.228317000000118],[-67.570556999999951,66.184143000000006],[-67.454453000000001,66.144714000000079],[-67.399993999999992,66.126373000000115],[-67.281386999999938,66.083054000000004],[-67.165008999999998,66.036926000000051],[-67.162506000000008,66.035262999999929],[-67.243522999999925,65.978301999999985],[-67.173049999999876,65.918593999999985],[-67.185821999999973,65.912200999999982],[-67.194442999999978,65.909714000000122],[-67.201674999999966,65.90914900000007],[-67.429992999999911,65.90554800000001],[-67.740554999999858,65.894150000000025],[-67.795273000000009,65.877197000000137],[-67.824172999999973,65.880814000000044],[-67.86471599999993,65.887772000000041],[-67.914444000000003,65.899155000000064],[-67.938599000000011,65.908035000000098],[-68.02694699999995,65.99275200000011],[-68.030563000000029,65.998032000000023],[-68.031386999999995,66.002213000000097],[-68.027221999999995,66.060806000000071],[-68.025832999999977,66.06581100000011],[-68.130828999999949,66.126648000000102],[-68.244720000000029,66.1827550000001],[-68.340285999999992,66.196930000000009],[-68.538054999999929,66.200821000000076],[-68.712783999999942,66.19859300000013],[-68.808334000000002,66.195816000000036],[-68.842498999999975,66.193313999999987],[-68.851394999999968,66.189972000000012],[-68.846389999999928,66.186645999999996],[-68.835281000000009,66.184981999999991],[-68.668610000000001,66.178864000000033],[-68.568343999999968,66.178588999999988],[-68.414718999999991,66.159424000000058],[-68.403610000000015,66.146378000000084],[-68.391113000000018,66.135269000000051],[-68.383330999999941,66.131087999999977],[-68.300277999999878,66.092758000000003],[-68.27806099999998,66.083602999999982],[-68.244155999999975,66.071105999999986],[-68.237777999999935,66.069992000000013],[-68.225554999999986,66.069992000000013],[-68.220551,66.073044000000095],[-68.218886999999995,66.081375000000037],[-68.22193900000002,66.085266000000104],[-68.229720999999984,66.092209000000082],[-68.244155999999975,66.099991000000045],[-68.246947999999975,66.112761999999975],[-68.220000999999968,66.128586000000041],[-68.202498999999932,66.128859999999975],[-68.194716999999969,66.127472000000068],[-68.157501000000025,66.117477000000008],[-68.134170999999981,66.109985000000052],[-68.118880999999988,66.103592000000106],[-68.047226000000023,66.064986999999974],[-68.048889000000031,66.00749200000007],[-68.051940999999943,65.996643000000006],[-68.05360399999995,65.991088999999988],[-68.064437999999939,65.984421000000054],[-68.12388599999997,65.963043000000084],[-68.134170999999981,65.963318000000129],[-68.173614999999984,65.969436999999971],[-68.196945000000028,65.973876999999959],[-68.210555999999997,65.979430999999977],[-68.27806099999998,66.014160000000061],[-68.304442999999878,66.028046000000018],[-68.323897999999929,66.003875999999991],[-68.333618000000001,65.93193100000002],[-68.332229999999925,65.92886400000009],[-68.325835999999981,65.916382000000112],[-68.321670999999981,65.911925999999994],[-68.304748999999958,65.908661000000052],[-68.287780999999995,65.907760999999994],[-68.260009999999909,65.911377000000016],[-68.194153000000028,65.921097000000145],[-68.156113000000005,65.929703000000018],[-68.150283999999999,65.930542000000003],[-68.142775999999969,65.929152999999985],[-68.139998999999989,65.927475000000072],[-68.136123999999995,65.922760000000039],[-68.134734999999921,65.913605000000018],[-68.13290399999994,65.834885000000043],[-68.139175000000023,65.817215000000147],[-68.147231999999974,65.798325000000034],[-68.033324999999934,65.776382000000069],[-68.023894999999868,65.77526899999998],[-68.003066999999987,65.778320000000008],[-67.923614999999927,65.793869000000086],[-67.886123999999882,65.804977000000065],[-67.821120999999948,65.768050999999957],[-67.870269999999948,65.689422999999977],[-67.942489999999964,65.618042000000116],[-67.989165999999898,65.61914100000007],[-68.058884000000035,65.568053999999961],[-68.027221999999995,65.558319000000097],[-68.012512000000015,65.557754999999929],[-68.011672999999973,65.558868000000018],[-67.998610999999983,65.566939999999988],[-67.98721299999994,65.571381000000088],[-67.971114999999998,65.575271999999984],[-67.956664999999987,65.571655000000021],[-67.951675000000023,65.568329000000006],[-67.953063999999927,65.557205000000124],[-67.955001999999979,65.55386400000009],[-68.020844000000011,65.49803200000008],[-68.027785999999935,65.491653000000042],[-68.030288999999982,65.487761999999975],[-68.030563000000029,65.484421000000111],[-68.025832999999977,65.481093999999985],[-68.022507000000019,65.480545000000063],[-68.00778200000002,65.485535000000084],[-67.941939999999931,65.525269000000037],[-67.922500999999954,65.538040000000137],[-67.860274999999945,65.584427000000062],[-67.730285999999978,65.636383000000137],[-67.712219000000005,65.640823000000125],[-67.652495999999985,65.651382000000012],[-67.466109999999958,65.674149000000114],[-67.428604000000007,65.676650999999993],[-67.402495999999928,65.677475000000129],[-67.396118000000001,65.676650999999993],[-67.382216999999912,65.673874000000069],[-67.328063999999983,65.662491000000045],[-67.319457999999941,65.659423999999944],[-67.280562999999972,65.642487000000131],[-67.275283999999999,65.637772000000098],[-67.256667999999991,65.615265000000022],[-67.25389100000001,65.611649],[-67.251677999999856,65.606934000000138],[-67.253341999999975,65.601654000000053],[-67.256667999999991,65.599152000000004],[-67.272781000000009,65.595261000000107],[-67.320557000000008,65.586929000000112],[-67.333327999999938,65.582489000000066],[-67.336120999999935,65.580826000000002],[-67.456664999999987,65.501937999999996],[-67.458892999999932,65.49803200000008],[-67.451400999999919,65.493590999999981],[-67.347504000000015,65.458602999999982],[-67.221389999999985,65.456375000000037],[-67.189986999999974,65.458037999999988],[-67.180832000000009,65.459152000000131],[-67.169158999999979,65.461380000000077],[-67.155563000000029,65.466934000000094],[-67.142226999999991,65.469147000000078],[-67.081679999999949,65.462494000000049],[-67.065552000000025,65.458602999999982],[-67.058608999999933,65.453597999999943],[-67.058043999999995,65.451385000000016],[-67.058334000000002,65.426651000000049],[-67.062774999999931,65.417480000000069],[-67.078339000000028,65.392211999999972],[-67.111114999999984,65.364700000000028],[-67.118056999999965,65.361922999999933],[-67.12388599999997,65.360535000000027],[-67.134445000000028,65.359711000000061],[-67.218063000000029,65.358597000000088],[-67.255568999999923,65.360535000000027],[-67.316101000000003,65.358597000000088],[-67.400833000000034,65.350266000000033],[-67.408889999999985,65.348328000000095],[-67.413619999999923,65.345825000000104],[-67.417770000000019,65.342209000000025],[-67.416107000000011,65.339157000000114],[-67.40943900000002,65.333328000000108],[-67.399993999999992,65.329712000000029],[-67.391113000000018,65.327209000000096],[-67.33666999999997,65.31721500000009],[-67.326674999999966,65.316940000000045],[-67.319167999999934,65.318054000000018],[-67.315826000000015,65.320541000000105],[-67.306655999999862,65.330276000000026],[-67.306106999999997,65.333602999999925],[-67.306945999999982,65.338042999999971],[-67.303878999999938,65.34248400000007],[-67.297501000000011,65.347487999999998],[-67.291381999999942,65.349716000000001],[-67.283614999999998,65.351089000000059],[-67.269164999999987,65.352203000000031],[-67.125548999999978,65.311919999999986],[-67.119995000000017,65.309982000000048],[-67.077788999999996,65.250275000000101],[-67.063889000000017,65.218322999999941],[-66.93472300000002,65.233871000000136],[-66.933060000000012,65.233597000000032],[-66.928878999999938,65.229705999999965],[-66.948883000000023,65.125259000000142],[-66.950835999999981,65.11692800000003],[-66.953339000000028,65.113036999999963],[-66.959166999999979,65.106644000000017],[-66.967498999999975,65.103866999999923],[-67.025283999999886,65.10832199999993],[-67.044158999999922,65.107483000000002],[-67.055557000000022,65.105255000000056],[-67.066665999999998,65.100815000000011],[-67.072234999999978,65.097214000000122],[-67.106110000000001,65.064147999999989],[-67.108611999999994,65.060256999999922],[-67.107773000000009,65.058868000000132],[-67.096114999999998,65.056091000000038],[-67.085830999999985,65.056366000000082],[-67.075012000000015,65.058029000000147],[-66.890563999999983,65.103317000000061],[-66.835555999999997,65.137206999999989],[-66.756393000000003,65.177200000000028],[-66.74749799999995,65.180542000000003],[-66.730285999999921,65.181366000000139],[-66.726105000000018,65.180267000000129],[-66.725554999999986,65.178040000000067],[-66.753341999999975,65.113312000000008],[-66.801666000000012,65.060806000000071],[-66.767501999999979,65.024429000000112],[-66.743057000000022,64.963042999999971],[-66.726944000000003,64.913879000000122],[-66.727492999999924,64.90525800000006],[-66.728057999999976,64.901657],[-66.733063000000016,64.888321000000019],[-66.739165999999955,64.859985000000108],[-66.735000999999954,64.824707000000103],[-66.734160999999915,64.820541000000048],[-66.698043999999868,64.761931999999945],[-66.694716999999912,64.761383000000023],[-66.687774999999988,64.762206999999989],[-66.654175000000009,64.771103000000096],[-66.641113000000018,64.775818000000129],[-66.632492000000013,64.781372000000147],[-66.638061999999991,64.785538000000031],[-66.676101999999901,64.876082999999994],[-66.696944999999971,65.03276100000005],[-66.694152999999972,65.037201000000096],[-66.688660000000027,65.038772999999935],[-66.673324999999977,65.038589000000002],[-66.660827999999981,65.037201000000096],[-66.618056999999965,65.030273000000079],[-66.535278000000005,65.010817999999915],[-66.530563000000029,65.00749200000007],[-66.49610899999999,64.983047000000056],[-66.488891999999908,64.957489000000123],[-66.496658000000025,64.945526000000086],[-66.495543999999995,64.938873000000115],[-66.491378999999995,64.934982000000048],[-66.486664000000019,64.932205000000124],[-66.478606999999954,64.929153000000042],[-66.388610999999969,64.913315000000011],[-66.379165999999998,64.912201000000039],[-66.368057000000022,64.913605000000018],[-66.363892000000021,64.917480000000012],[-66.361938000000009,64.923599000000024],[-66.36361699999992,64.928589000000102],[-66.334732000000031,64.934708000000114],[-66.177779999999927,64.880264000000068],[-66.148346000000004,64.868866000000025],[-66.177215999999987,64.796371000000022],[-66.18472300000002,64.784424000000058],[-66.191939999999931,64.77887000000004],[-66.199431999999945,64.774993999999992],[-66.203339000000028,64.77388000000002],[-66.213333000000034,64.75610400000005],[-66.219161999999983,64.726089000000115],[-66.218886999999938,64.69081100000011],[-66.212218999999948,64.685531999999967],[-66.18472300000002,64.681656000000032],[-66.166945999999939,64.681091000000038],[-66.161117999999931,64.682479999999998],[-66.15834000000001,64.68414300000012],[-66.151947000000007,64.689147999999989],[-66.147781000000009,64.695815999999979],[-66.147232000000031,64.70138500000013],[-66.147232000000031,64.704162999999937],[-66.150283999999942,64.71748400000007],[-66.14973399999991,64.733597000000145],[-66.145554000000004,64.740265000000136],[-66.136397999999986,64.754166000000112],[-66.116942999999992,64.781372000000147],[-66.091675000000009,64.809708000000057],[-66.080841000000021,64.819153000000085],[-66.058333999999945,64.832764000000054],[-66.037215999999944,64.844986000000063],[-66.020843999999954,64.849716000000058],[-66.011397999999986,64.848327999999981],[-66.011123999999995,64.846375000000023],[-66.008621000000005,64.78915400000011],[-66.009170999999867,64.778046000000074],[-66.012511999999901,64.699417000000039],[-65.899993999999992,64.673309000000074],[-65.846664000000033,64.676085999999998],[-65.852218999999991,64.680267000000072],[-65.861389000000031,64.689147999999989],[-65.889449999999954,64.719711000000132],[-65.899170000000026,64.73275799999999],[-65.958617999999944,64.877761999999962],[-65.95666499999993,64.886108000000092],[-65.953338999999971,64.888321000000019],[-65.941939999999988,64.890548999999965],[-65.931380999999931,64.89137299999993],[-65.92471299999994,64.89137299999993],[-65.838608000000022,64.882476999999994],[-65.727218999999934,64.843597000000045],[-65.717772999999966,64.84027100000003],[-65.674438000000009,64.818054000000132],[-65.664168999999958,64.80831900000004],[-65.661666999999966,64.804428000000144],[-65.660278000000005,64.799149],[-65.665008999999998,64.796936000000017],[-65.683318999999926,64.792206000000022],[-65.698333999999988,64.784714000000065],[-65.720275999999956,64.766663000000108],[-65.736114999999984,64.750275000000045],[-65.742492999999911,64.741089000000102],[-65.742766999999958,64.735260000000039],[-65.736938000000009,64.726089000000115],[-65.726944000000003,64.711380000000077],[-65.710830999999985,64.693039000000056],[-65.704726999999934,64.687485000000095],[-65.703063999999927,64.692200000000128],[-65.709441999999967,64.712769000000037],[-65.71055599999994,64.718596999999988],[-65.710007000000019,64.732208000000128],[-65.708618000000001,64.736099000000024],[-65.684157999999968,64.761107999999979],[-65.676102000000014,64.765548999999908],[-65.665282999999931,64.771378000000141],[-65.648055999999997,64.774993999999992],[-65.642776000000026,64.774993999999992],[-65.627212999999927,64.771103000000096],[-65.598891999999921,64.756377999999984],[-65.56639100000001,64.737488000000042],[-65.561110999999869,64.733047000000113],[-65.557495000000017,64.728317000000061],[-65.555831999999953,64.723312000000021],[-65.556380999999931,64.717758000000003],[-65.572234999999921,64.664153999999996],[-65.576675000000023,64.652481000000023],[-65.583327999999938,64.642761000000121],[-65.586394999999925,64.640274000000034],[-65.654723999999987,64.602478000000019],[-65.662505999999951,64.598328000000038],[-65.714172000000019,64.570541000000048],[-65.730835000000013,64.517761000000007],[-65.732223999999974,64.508040999999935],[-65.725554999999929,64.498031999999967],[-65.721664000000033,64.49414100000007],[-65.708344000000011,64.486649000000114],[-65.695540999999992,64.485809000000074],[-65.665008999999998,64.492203000000131],[-65.643340999999964,64.494979999999998],[-65.573333999999988,64.498596000000077],[-65.524718999999948,64.49971000000005],[-65.518065999999976,64.49971000000005],[-65.506392999999946,64.497482000000105],[-65.504181000000017,64.495818999999983],[-65.50556899999998,64.468872000000033],[-65.396117999999944,64.52137799999997],[-65.384170999999981,64.524155000000064],[-65.365828999999906,64.526931999999988],[-65.210555999999883,64.536102000000028],[-65.203888000000006,64.533874999999966],[-65.144454999999994,64.51138300000008],[-65.085006999999962,64.479705999999965],[-65.077788999999939,64.475815000000068],[-65.075835999999981,64.471375000000023],[-65.074172999999973,64.461929000000055],[-65.071670999999981,64.440810999999997],[-65.071945000000028,64.43081699999999],[-65.073623999999938,64.426086000000055],[-65.194991999999957,64.310257000000092],[-65.202498999999989,64.306366000000025],[-65.210830999999985,64.303863999999976],[-65.284728999999913,64.291656000000103],[-65.295272999999895,64.290267999999969],[-65.309433000000013,64.29136699999998],[-65.343337999999903,64.294983000000002],[-65.377212999999983,64.303314000000114],[-65.386397999999929,64.30664100000007],[-65.408889999999928,64.312485000000038],[-65.451674999999966,64.319992000000013],[-65.498885999999857,64.322769000000108],[-65.525008999999898,64.323318000000029],[-65.554168999999945,64.323318000000029],[-65.563323999999909,64.322494999999947],[-65.65583799999996,64.308868000000075],[-65.661666999999966,64.307479999999998],[-65.658339999999953,64.302765000000136],[-65.654449,64.300812000000008],[-65.61860699999994,64.293045000000063],[-65.601943999999946,64.293594000000041],[-65.591948999999943,64.296096999999975],[-65.572234999999921,64.298599000000081],[-65.505844000000025,64.302475000000129],[-65.465835999999967,64.30304000000001],[-65.434158000000025,64.299149000000114],[-65.422774999999945,64.296371000000136],[-65.250564999999995,64.208328000000051],[-65.24610899999999,64.204987000000017],[-65.242766999999958,64.200271999999984],[-65.265015000000005,64.17886400000009],[-65.16194200000001,64.138046000000145],[-65.049438000000009,64.072220000000016],[-65.053878999999938,64.067764000000068],[-65.060546999999929,64.064986999999974],[-65.093886999999995,64.052199999999971],[-65.103881999999999,64.049149],[-65.136672999999917,64.041367000000037],[-65.158339999999953,64.038315000000068],[-65.196105999999929,64.040268000000026],[-65.206115999999952,64.040268000000026],[-65.21665999999999,64.038589000000002],[-65.221389999999928,64.03637700000013],[-65.225554999999929,64.032761000000107],[-65.221938999999963,64.028594999999996],[-65.214172000000019,64.025543000000084],[-65.189986999999917,64.020264000000111],[-65.096663999999976,64.009155000000021],[-65.08805799999999,64.009430000000066],[-64.949158000000011,64.014999000000046],[-64.800551999999982,64.02777100000003],[-64.68638599999997,64.039154000000053],[-64.676940999999999,64.036652000000004],[-64.668059999999969,64.033051000000114],[-64.661117999999988,64.028594999999996],[-64.630554000000018,63.978324999999984],[-64.631377999999984,63.974709000000132],[-64.632766999999944,63.972763000000043],[-64.638335999999981,63.96915400000006],[-64.64805599999994,63.966934000000037],[-64.658889999999985,63.965546000000131],[-64.669998000000021,63.966385000000059],[-64.689437999999996,63.966103000000032],[-64.700561999999991,63.963882000000126],[-64.817504999999983,63.923607000000004],[-64.875274999999988,63.901100000000099],[-64.888901000000033,63.894996999999989],[-64.974715999999944,63.851936000000137],[-64.985000999999954,63.829163000000051],[-64.987502999999947,63.823051000000078],[-64.984160999999915,63.813881000000038],[-64.954177999999956,63.776382000000126],[-64.94888299999991,63.774437000000091],[-64.77806099999998,63.747772000000055],[-64.68360899999999,63.746383999999978],[-64.584441999999854,63.704711999999915],[-64.559432999999956,63.694153000000085],[-64.540282999999988,63.684433000000013],[-64.527495999999985,63.676941000000056],[-64.522507000000019,63.672768000000076],[-64.508347000000015,63.650826000000052],[-64.506667999999991,63.636940000000038],[-64.507506999999976,63.630821000000026],[-64.515015000000005,63.620270000000119],[-64.52194199999991,63.611938000000123],[-64.536666999999966,63.581108000000086],[-64.529449,63.534996000000035],[-64.522507000000019,63.514717000000076],[-64.50167799999997,63.443878000000097],[-64.49888599999997,63.429161000000079],[-64.495543999999938,63.327773999999977],[-64.510833999999988,63.307770000000062],[-64.588897999999858,63.321938000000102],[-64.608337000000006,63.32388300000008],[-64.61999499999996,63.323326000000009],[-64.62222300000002,63.322219999999959],[-64.624709999999993,63.318054000000075],[-64.61999499999996,63.313324000000023],[-64.614715999999987,63.30971500000004],[-64.587783999999942,63.299721000000034],[-64.577224999999999,63.296660999999972],[-64.566390999999953,63.293884000000048],[-64.525557999999933,63.290550000000053],[-64.500838999999985,63.289992999999981],[-64.488892000000021,63.288330000000087],[-64.482773000000009,63.285827999999981],[-64.481948999999872,63.282211000000018],[-64.531112999999948,63.249718000000087],[-64.538054999999929,63.248329000000069],[-64.658339999999953,63.249161000000015],[-64.767501999999922,63.32388300000008],[-64.826950000000011,63.45249199999995],[-64.850554999999929,63.510826000000009],[-64.942490000000021,63.632210000000043],[-64.955001999999922,63.640274000000034],[-64.973052999999993,63.646942000000024],[-64.99499499999996,63.652488999999946],[-65.046386999999925,63.662209000000075],[-65.06361400000003,63.668053000000043],[-65.070847000000015,63.671936000000017],[-65.166945999999996,63.747772000000055],[-65.166397000000018,63.773323000000119],[-65.153335999999911,63.771102999999925],[-65.150833000000034,63.772217000000126],[-65.154174999999952,63.776939000000027],[-65.15943900000002,63.781105000000082],[-65.204726999999934,63.80332199999998],[-65.293609999999944,63.812767000000065],[-65.298614999999927,63.81249200000002],[-65.301392000000021,63.81082200000003],[-65.303878999999995,63.806938000000002],[-65.300277999999935,63.799995000000024],[-65.281677000000002,63.788887000000045],[-65.215560999999923,63.75471500000009],[-65.15566999999993,63.725326999999993],[-65.135284000000013,63.715271000000143],[-65.053054999999972,63.638046000000088],[-65.039169000000015,63.574165000000107],[-65.069732999999985,63.568886000000134],[-65.085830999999928,63.563881000000094],[-65.091948999999943,63.559714999999983],[-65.099990999999932,63.547217999999987],[-65.102218999999991,63.541664000000026],[-65.102218999999991,63.536658999999929],[-65.099441999999897,63.526381999999955],[-65.026947000000007,63.399162000000103],[-64.965011999999945,63.369438000000059],[-64.952498999999875,63.362212999999997],[-64.942490000000021,63.353049999999996],[-64.909163999999976,63.280548000000124],[-64.901108000000022,63.237495000000024],[-64.908614999999941,63.235550000000046],[-64.921386999999925,63.235825000000034],[-65.046386999999925,63.248329000000069],[-65.068893000000003,63.252494999999954],[-65.082503999999972,63.260826000000066],[-65.103332999999964,63.27777100000003],[-65.114166000000012,63.284996000000092],[-65.123321999999973,63.288330000000087],[-65.136123999999995,63.290833000000021],[-65.141953000000001,63.28943600000008],[-65.148620999999991,63.286110000000065],[-65.146956999999873,63.281380000000013],[-65.083327999999938,63.20388000000014],[-65.057770000000005,63.174712999999997],[-65.054992999999911,63.172217999999987],[-65.046111999999994,63.171104000000014],[-65.016524999999945,63.171515999999997],[-64.998610999999926,63.176102000000014],[-64.944716999999912,63.183327000000077],[-64.920272999999952,63.184158000000082],[-64.911391999999921,63.180824000000086],[-64.811660999999958,63.137497000000053],[-64.797500999999954,63.130547000000035],[-64.783889999999985,63.12221500000004],[-64.755004999999926,63.099158999999986],[-64.753341999999918,63.096657000000107],[-64.762511999999958,63.0472180000001],[-64.771392999999989,62.98333000000008],[-64.703338999999971,62.953323000000069],[-64.696105999999872,62.952217000000076],[-64.676392000000021,62.941658000000018],[-64.645553999999947,62.921660999999972],[-64.634444999999971,62.912491000000102],[-64.627212999999983,62.90415999999999],[-64.626937999999939,62.899994000000106],[-64.629989999999964,62.897491000000116],[-64.638335999999981,62.894440000000088],[-64.733611999999994,62.878875999999991],[-64.769454999999937,62.862213000000111],[-64.855269999999962,62.865273000000002],[-64.881942999999865,62.867493000000024],[-64.903885000000002,62.872490000000084],[-64.923324999999977,62.878875999999991],[-65.005004999999983,62.90776800000009],[-65.162215999999944,62.943047000000035],[-65.225280999999995,62.954993999999942],[-65.236114999999984,62.957771000000037],[-65.243056999999965,62.961662000000103],[-65.248336999999935,62.965828000000045],[-65.25140399999998,62.970543000000077],[-65.255004999999926,62.979713000000118],[-65.254729999999995,62.985268000000019],[-65.26916499999993,62.959991000000059],[-65.194442999999922,62.878875999999991],[-65.190276999999924,62.875267000000008],[-65.175002999999947,62.862495000000024],[-65.153884999999946,62.84693900000002],[-65.14805599999994,62.843322999999998],[-65.129165999999998,62.83638000000002],[-65.115279999999984,62.828880000000083],[-64.984726000000023,62.714157],[-64.978332999999964,62.704711999999972],[-64.94888299999991,62.648604999999975],[-64.964721999999995,62.6336060000001],[-64.980834999999956,62.623604000000114],[-65.062774999999988,62.587494000000049],[-65.071120999999948,62.584435000000042],[-65.087219000000005,62.57888000000014],[-65.114715999999987,62.571663000000058],[-65.145003999999915,62.565826000000072],[-65.187499999999943,62.56221000000005],[-65.19776899999988,62.563048999999978],[-65.205001999999979,62.566101000000117],[-65.212219000000005,62.569992000000013],[-65.22084000000001,62.578331000000048],[-65.288605000000018,62.659987999999998],[-65.294997999999964,62.669441000000006],[-65.296660999999972,62.674163999999962],[-65.290558000000033,62.678878999999995],[-65.273894999999982,62.685265000000129],[-65.267776000000026,62.690269000000058],[-65.266952999999944,62.694434999999999],[-65.279175000000009,62.696654999999964],[-65.321121000000005,62.694434999999999],[-65.327498999999989,62.691658000000075],[-65.329726999999934,62.685546999999985],[-65.328063999999983,62.666100000000142],[-65.337218999999948,62.666664000000083],[-65.346953999999869,62.675827000000083],[-65.353881999999942,62.684433000000013],[-65.356658999999922,62.69499200000007],[-65.339721999999938,62.837493999999992],[-65.391952999999944,62.843605000000025],[-65.436661000000015,62.819442999999978],[-65.566665999999941,62.811661000000015],[-65.579178000000013,62.811934999999949],[-65.601943999999946,62.817772000000105],[-65.60943599999996,62.820831000000055],[-65.61610399999995,62.824715000000083],[-65.746947999999861,62.917770000000075],[-65.909438999999963,62.925827000000027],[-65.933318999999983,62.955826000000059],[-65.910278000000005,62.967765999999983],[-65.839721999999995,63.020828000000051],[-65.834731999999974,63.026382000000069],[-65.833327999999995,63.03138000000007],[-65.838333000000034,63.033333000000027],[-65.84973100000002,63.032767999999976],[-65.866394000000014,63.028602999999976],[-65.926101999999958,63.008331000000112],[-65.949722000000008,62.997772000000055],[-65.955001999999979,62.994155999999975],[-65.955565999999862,62.990829000000076],[-65.946380999999974,62.983047000000113],[-65.945830999999941,62.978874000000133],[-65.950561999999991,62.975822000000051],[-65.960830999999928,62.974433999999974],[-65.973891999999864,62.973877000000073],[-65.987212999999997,62.974709000000132],[-66.014450000000011,62.978874000000133],[-66.031386999999938,62.984717999999987],[-66.039718999999991,62.988602000000014],[-66.052215999999987,62.996658000000082],[-66.14973399999991,63.059990000000084],[-66.155563000000029,63.081383000000017],[-66.162780999999939,63.089989000000116],[-66.174438000000009,63.096382000000062],[-66.266952999999944,63.130820999999969],[-66.275832999999977,63.133881000000031],[-66.282501000000025,63.133330999999998],[-66.287780999999995,63.12971500000009],[-66.291945999999996,63.125267000000122],[-66.293335000000013,63.120543999999995],[-66.291381999999999,63.116104000000121],[-66.206954999999994,63.040833000000077],[-66.196654999999964,63.031661999999983],[-66.182769999999891,63.023604999999975],[-66.121658000000025,63.00110600000005],[-66.105559999999969,62.993880999999988],[-66.098343,62.990273000000059],[-66.091385000000002,62.983604000000014],[-66.089721999999881,62.978600000000029],[-66.097777999999948,62.952492000000063],[-66.103058000000033,62.946655000000135],[-66.107772999999952,62.943878000000041],[-66.11610399999995,62.940544000000045],[-66.135833999999932,62.936652999999978],[-66.147232000000031,62.936104],[-66.159163999999976,62.936652999999978],[-66.168883999999991,62.938881000000094],[-66.192215000000033,62.954437000000041],[-66.220839999999953,62.969437000000028],[-66.284728999999913,62.990273000000059],[-66.293883999999878,62.992767000000015],[-66.345000999999968,62.999161000000015],[-66.351668999999958,62.998603999999943],[-66.366104000000007,62.992493000000081],[-66.37860099999989,62.992493000000081],[-66.392775999999969,62.994995000000131],[-66.408889999999928,63.001938000000109],[-66.444442999999865,63.020546000000024],[-66.46444699999995,63.032211000000075],[-66.518340999999964,63.065269000000058],[-66.525283999999999,63.074715000000026],[-66.551940999999999,63.17943600000001],[-66.626388999999961,63.252220000000136],[-66.646666999999979,63.326384999999959],[-66.638335999999981,63.340271000000143],[-66.637512000000015,63.349998000000085],[-66.636948000000018,63.35833000000008],[-66.637786999999946,63.362770000000069],[-66.642776000000026,63.372489999999971],[-66.650832999999977,63.374992000000077],[-66.657500999999968,63.374435000000005],[-66.664169000000015,63.371658000000082],[-66.735549999999989,63.299438000000066],[-66.738602000000014,63.294159000000093],[-66.740828999999962,63.288048000000003],[-66.740279999999927,63.283607000000075],[-66.731110000000001,63.274712000000022],[-66.720550999999944,63.266388000000006],[-66.685546999999985,63.248046999999985],[-66.671386999999868,63.242767000000129],[-66.646956999999929,63.239159000000029],[-66.639174999999966,63.236107000000118],[-66.607498000000021,63.21027400000014],[-66.602492999999981,63.205269000000101],[-66.600280999999995,63.200829000000113],[-66.558334000000002,63.087212000000022],[-66.537780999999882,62.998047000000042],[-66.540282999999931,62.994155999999975],[-66.546660999999915,62.991379000000109],[-66.557220000000029,62.99193600000001],[-66.673049999999989,63.023048000000074],[-66.682220000000029,63.026382000000069],[-66.763061999999934,63.083054000000061],[-66.768065999999919,63.087768999999923],[-66.773894999999925,63.096382000000062],[-66.774444999999957,63.100548000000003],[-66.778885000000002,63.143607999999972],[-66.789169000000015,63.21138000000002],[-66.806655999999975,63.272491000000116],[-66.807495000000017,63.273323000000062],[-66.811661000000015,63.274437000000034],[-66.82028200000002,63.273323000000062],[-66.829177999999956,63.271660000000111],[-66.837783999999942,63.267769000000044],[-66.846953999999926,63.25750000000005],[-66.849166999999966,63.251389000000131],[-66.849166999999966,63.245544000000052],[-66.846114999999941,63.229713000000061],[-66.844727000000034,63.22665400000011],[-66.837219000000005,63.21804800000001],[-66.828338999999971,63.209159999999997],[-66.819457999999941,63.200272000000041],[-66.813888999999961,63.196098000000006],[-66.803878999999938,63.186378000000104],[-66.801391999999964,63.182495000000131],[-66.799727999999959,63.177490000000091],[-66.799437999999952,63.172492999999974],[-66.801666000000012,63.166382000000112],[-66.806655999999975,63.160545000000127],[-66.818343999999968,63.154159999999933],[-66.835555999999997,63.149161999999933],[-66.844161999999926,63.147217000000126],[-66.855270000000019,63.147217000000126],[-66.868332000000009,63.148880000000077],[-66.87777699999998,63.151931999999988],[-67.018340999999964,63.238883999999985],[-67.023894999999982,63.243050000000096],[-67.025008999999955,63.246658000000025],[-67.024445000000014,63.250274999999988],[-67.023055999999997,63.252777000000037],[-67.006393000000003,63.262215000000083],[-66.971114999999998,63.389717000000019],[-66.972777999999948,63.394997000000103],[-66.977782999999988,63.399719000000005],[-66.988891999999964,63.402489000000003],[-67.011123999999938,63.399993999999992],[-67.017226999999991,63.397217000000069],[-67.040832999999964,63.33554799999996],[-67.039168999999958,63.330551000000071],[-67.035827999999924,63.325272000000098],[-67.025008999999955,63.311104000000057],[-67.016113000000018,63.296660999999972],[-67.014174999999966,63.286385000000053],[-67.017226999999991,63.281105000000025],[-67.033324999999934,63.275268999999923],[-67.051940999999943,63.273323000000062],[-67.171111999999994,63.273880000000133],[-67.179717999999923,63.275551000000007],[-67.203887999999949,63.28527100000008],[-67.431670999999994,63.412765999999976],[-67.499999999999943,63.442764000000125],[-67.621658000000025,63.548881999999992],[-67.683318999999983,63.619438000000002],[-67.838897999999915,63.729713000000118],[-67.897506999999962,63.753052000000139],[-67.914718999999991,63.759438000000046],[-67.92332499999992,63.761108000000036],[-67.926102000000014,63.759163000000058],[-67.925277999999935,63.75471500000009],[-67.921386999999982,63.744438000000059],[-67.918059999999855,63.739159000000086],[-67.820006999999976,63.596382000000006],[-67.710555999999997,63.458603000000039],[-67.683318999999983,63.431664000000069],[-67.675003000000004,63.4180530000001],[-67.67193599999996,63.412490999999989],[-67.667769999999962,63.403046000000074],[-67.666396999999961,63.394439999999975],[-67.666655999999989,63.388046000000145],[-67.678329000000019,63.373047000000099],[-67.685271999999998,63.368880999999988],[-67.694442999999978,63.366385999999977],[-67.716659999999933,63.363884000000098],[-67.724166999999966,63.364159000000086],[-67.737212999999997,63.366385999999977],[-67.746384000000035,63.369438000000059],[-67.820557000000008,63.400269000000037],[-67.827224999999999,63.405266000000097],[-67.837509000000011,63.424164000000019],[-67.854445999999996,63.452774000000034],[-67.858046999999999,63.457497000000046],[-67.871658000000025,63.464714000000129],[-67.950835999999981,63.506660000000124],[-68.025283999999942,63.540832999999964],[-68.033324999999934,63.543883999999991],[-68.041381999999999,63.546104000000014],[-68.053054999999915,63.545273000000009],[-68.061661000000015,63.54332700000009],[-68.075561999999991,63.544159000000036],[-68.365829000000019,63.64527099999998],[-68.388610999999855,63.655548000000124],[-68.400283999999942,63.663879000000009],[-68.405563000000029,63.668602000000021],[-68.428328999999962,63.696381000000031],[-68.542769999999962,63.732490999999925],[-68.645843999999897,63.747490000000028],[-68.713622999999984,63.742493000000081],[-68.709732000000031,63.738045000000113],[-68.711394999999925,63.734717999999987],[-68.716109999999958,63.732207999999957],[-68.723617999999988,63.729713000000118],[-68.795546999999999,63.728600000000085],[-68.804442999999935,63.730270000000019],[-68.876099000000011,63.744713000000104],[-68.915833000000021,63.757216999999969],[-68.924437999999952,63.758888000000013],[-68.962508999999955,63.759163000000058],[-68.994720000000029,63.755554000000018],[-68.996947999999918,63.75360900000004],[-68.998336999999992,63.745270000000005],[-68.995270000000005,63.741379000000109],[-68.989715999999987,63.737495000000081],[-68.977782999999931,63.729713000000118],[-68.933059999999955,63.711936999999978],[-68.919448999999986,63.704993999999999],[-68.824722000000008,63.643883000000073],[-68.813048999999978,63.635551000000078],[-68.809433000000013,63.630821000000026],[-68.807220000000029,63.625824000000136],[-68.809433000000013,63.621658000000025],[-68.793334999999956,63.589157000000114],[-68.766113000000018,63.556656000000032],[-68.754729999999995,63.548607000000004],[-68.717772999999909,63.528603000000089],[-68.557769999999948,63.45249199999995],[-68.495833999999945,63.421378999999945],[-68.35943599999996,63.344710999999961],[-68.288605000000018,63.298332000000016],[-68.270553999999947,63.284996000000092],[-68.206389999999999,63.227211000000011],[-68.202498999999932,63.216933999999981],[-68.206389999999999,63.212493999999992],[-68.18638599999997,63.188324000000136],[-68.156113000000005,63.158324999999934],[-68.146118000000001,63.150269000000037],[-68.139175000000023,63.148605000000032],[-68.128601000000003,63.148048000000131],[-68.115554999999972,63.15248900000006],[-68.082779000000016,63.163605000000018],[-68.063888999999961,63.163605000000018],[-67.952224999999942,63.145546000000081],[-67.926392000000021,63.141106000000036],[-67.917495999999971,63.137214999999969],[-67.916655999999932,63.133049000000085],[-67.92332499999992,63.129433000000063],[-67.912780999999939,63.083327999999995],[-67.646117999999944,63.100272999999959],[-67.632767000000001,63.09887700000013],[-67.610275000000001,63.094154000000117],[-67.604996000000028,63.089989000000116],[-67.599990999999989,63.084434999999928],[-67.599990999999989,63.078880000000026],[-67.601944000000003,63.073326000000066],[-67.61500499999994,63.063605999999993],[-67.624160999999958,63.061104000000057],[-67.636123999999995,63.059715000000097],[-67.682219999999916,63.057770000000119],[-67.689712999999927,63.058044000000052],[-67.709166999999923,63.056655999999919],[-67.719451999999933,63.054993000000024],[-67.727492999999924,63.051659000000029],[-67.77305599999994,63.025826000000052],[-67.772507000000019,62.962212000000136],[-67.769729999999981,62.958327999999938],[-67.763625999999988,62.955551000000071],[-67.748046999999985,62.953049000000135],[-67.738602000000014,62.953323000000069],[-67.728058000000033,62.954993999999942],[-67.721831999999949,62.96265800000009],[-67.718841999999995,62.964493000000061],[-67.718169999999986,62.967327000000068],[-67.719329999999957,62.970490000000098],[-67.72444200000001,62.984161000000086],[-67.729995999999971,62.98832700000014],[-67.736938000000009,62.995544000000109],[-67.733886999999982,63.000832000000116],[-67.698043999999925,63.020828000000051],[-67.686934999999949,63.026657000000114],[-67.659438999999963,63.034164000000033],[-67.56527699999998,63.049438000000123],[-67.553054999999915,63.048607000000118],[-67.529998999999975,63.03694200000001],[-67.510559000000001,63.024712000000079],[-67.499999999999943,63.015549000000078],[-67.499724999999955,63.007773999999984],[-67.509170999999924,63.001938000000109],[-67.531386999999995,62.995269999999948],[-67.550551999999982,62.99193600000001],[-67.573333999999988,62.990273000000059],[-67.593613000000005,62.987495000000081],[-67.630828999999949,62.976379000000122],[-67.651397999999915,62.967490999999939],[-67.670997999999997,62.944323999999995],[-67.671829000000002,62.941322000000127],[-67.672667999999987,62.937996000000055],[-67.672775000000001,62.923324999999977],[-67.665833000000021,62.918884000000048],[-67.659164000000033,62.916664000000026],[-67.654921999999999,62.917282],[-67.648894999999925,62.921104000000071],[-67.646666999999979,62.925270000000125],[-67.638335999999981,62.931938000000116],[-67.572509999999909,62.963882000000126],[-67.566956000000005,62.965546000000131],[-67.470275999999956,62.985268000000019],[-67.462783999999999,62.985268000000019],[-67.39805599999994,62.967209000000082],[-67.194716999999912,62.870270000000062],[-67.048339999999996,62.771378000000141],[-67.012221999999952,62.73443600000013],[-66.95777899999996,62.681106999999997],[-66.913329999999917,62.669991000000039],[-66.824722000000008,62.679161000000079],[-66.813323999999852,62.679992999999968],[-66.741104000000007,62.673882000000106],[-66.733063000000016,62.671661000000029],[-66.726944000000003,62.668602000000021],[-66.728881999999942,62.666100000000142],[-66.735275000000001,62.662490999999932],[-66.744445999999925,62.660271000000137],[-66.752791999999999,62.656936999999971],[-66.760559000000001,62.653602999999976],[-66.768065999999919,62.648879999999963],[-66.773055999999883,62.643050999999957],[-66.775009000000011,62.636940000000095],[-66.773055999999883,62.632492000000127],[-66.606948999999986,62.604996000000085],[-66.425002999999947,62.445267000000115],[-66.359436000000017,62.447487000000137],[-66.351668999999958,62.444992000000127],[-66.349166999999966,62.441376000000048],[-66.327498999999932,62.384438000000046],[-66.330565999999976,62.379158000000018],[-66.337783999999886,62.374992000000077],[-66.426391999999964,62.349433999999974],[-66.435546999999929,62.349158999999986],[-66.458617999999944,62.35193600000008],[-66.469161999999983,62.35193600000008],[-66.475829999999974,62.348602000000085],[-66.478881999999999,62.343323000000112],[-66.478881999999999,62.338325999999995],[-66.476943999999946,62.335823000000005],[-66.470000999999968,62.332214000000022],[-66.374709999999993,62.286110000000065],[-66.329177999999956,62.267494000000056],[-66.318619000000012,62.264717000000132],[-66.355834999999956,62.307770000000062],[-66.359160999999972,62.312492000000134],[-66.363892000000021,62.323051000000021],[-66.361389000000031,62.326942000000088],[-66.355559999999855,62.331940000000088],[-66.351944000000003,62.334991000000116],[-66.332779000000016,62.341934000000094],[-66.3125,62.344993999999986],[-66.294158999999979,62.344711000000018],[-66.285552999999993,62.343605000000139],[-66.208343999999897,62.332214000000022],[-66.165282999999931,62.291381999999999],[-66.160277999999892,62.271378000000084],[-66.167220999999984,62.254439999999988],[-66.201950000000011,62.260551000000078],[-66.256667999999991,62.266105999999979],[-66.261397999999872,62.263054000000068],[-66.257232999999871,62.259720000000073],[-66.241104000000007,62.253326000000015],[-66.212508999999898,62.245270000000119],[-66.166397000000018,62.235267999999962],[-66.081680000000006,62.226379000000065],[-66.058608999999876,62.2241590000001],[-66.051940999999999,62.224709000000132],[-66.045836999999949,62.227485999999999],[-66.043610000000001,62.233604000000128],[-66.038895000000025,62.239432999999963],[-66.033889999999985,62.244995000000131],[-66.028610000000015,62.248604000000114],[-66.025008999999955,62.249718000000087],[-66.015014999999948,62.251389000000131],[-66,62.247771999999998],[-65.993057000000022,62.244155999999975],[-65.939437999999996,62.208602999999925],[-65.933059999999955,62.204163000000108],[-65.929168999999888,62.198044000000095],[-65.930556999999965,62.193321000000083],[-65.934432999999956,62.191657999999961],[-65.952788999999939,62.189156000000082],[-65.963332999999977,62.186935000000005],[-65.969161999999926,62.184714999999983],[-66.043610000000001,62.151657],[-66.050827000000027,62.147774000000084],[-66.132492000000013,62.089432000000045],[-66.110001000000011,62.017494000000113],[-66.041945999999996,61.958046000000081],[-66.035827999999924,61.952773999999977],[-66.033066000000019,61.95249200000012],[-66.019454999999994,61.954993999999999],[-66.003066999999987,61.962212000000022],[-65.999434999999949,61.963051000000121],[-65.992217999999866,61.962769000000094],[-65.988602000000014,61.958885000000066],[-65.949432000000002,61.912491000000102],[-65.946655000000021,61.906936999999914],[-65.946655000000021,61.899162000000047],[-65.948882999999967,61.89527099999998],[-65.955001999999979,61.890274000000034],[-65.961945000000014,61.886383000000137],[-65.97084000000001,61.883881000000088],[-66.057770000000005,61.869713000000047],[-66.066101000000003,61.868599000000074],[-66.275832999999977,61.858330000000024],[-66.287780999999995,61.858330000000024],[-66.395003999999858,61.87082700000002],[-66.404449,61.872765000000129],[-66.521666999999923,61.896942000000024],[-66.543334999999956,61.898880000000133],[-66.555557000000022,61.901382000000012],[-66.626099000000011,61.917213000000004],[-66.632767000000001,61.918884000000048],[-66.659163999999976,61.933601000000067],[-66.665282999999931,61.941375999999991],[-66.662216000000001,61.946655000000135],[-66.746947999999918,62.00777400000004],[-66.755568999999923,62.011108000000036],[-66.781386999999881,62.015549000000135],[-66.803329000000019,62.016937000000041],[-66.812774999999988,62.016663000000108],[-66.825835999999924,62.011940000000095],[-67.091949,62.030822999999998],[-67.104720999999984,62.032211000000132],[-67.254729999999938,62.078049000000078],[-67.345275999999899,62.119437999999946],[-67.463057999999933,62.139435000000049],[-67.499999999999943,62.138657000000137],[-67.731658999999922,62.158356000000026],[-67.757232999999928,62.160544999999956],[-67.798339999999939,62.166100000000085],[-68.003066999999987,62.213882000000126],[-68.113892000000021,62.216103000000032],[-68.233062999999902,62.219711000000132],[-68.256957999999997,62.220825000000104],[-68.269164999999873,62.223045000000127],[-68.299438000000009,62.232208000000128],[-68.325286999999946,62.234993000000145],[-68.401671999999962,62.239432999999963],[-68.46945199999999,62.242767000000129],[-68.519729999999925,62.244713000000047],[-68.548049999999932,62.248604000000114],[-68.564712999999927,62.251938000000109],[-68.615828999999962,62.263885000000073],[-68.722228999999913,62.302216000000044],[-68.725554999999872,62.30471],[-68.726943999999946,62.307770000000062],[-68.759170999999924,62.328049000000021],[-68.882216999999969,62.360550000000103],[-68.922501000000011,62.365547000000049],[-68.995833999999945,62.373322000000087],[-69.039000999999985,62.381355000000042],[-69.121384000000035,62.410820000000115],[-69.160003999999958,62.425270000000069],[-69.193054000000018,62.438042000000053],[-69.231673999999884,62.455269000000101],[-69.270554000000004,62.478325000000098],[-69.36082499999992,62.536385000000053],[-69.40834000000001,62.569992000000013],[-69.430556999999965,62.584160000000054],[-69.426666000000012,62.55443600000001],[-69.428329000000019,62.548332000000016],[-69.442215000000033,62.547493000000031],[-69.449721999999952,62.551102000000014],[-69.519164999999987,62.602493000000095],[-69.583892999999989,62.651932000000102],[-69.597228999999913,62.662490999999932],[-69.597504000000015,62.665268000000026],[-69.565551999999968,62.718048000000067],[-69.557219999999973,62.726379000000009],[-69.543335000000013,62.732765000000086],[-69.525557999999933,62.738044999999943],[-69.50389100000001,62.741378999999938],[-69.482497999999964,62.763611000000026],[-69.727492999999981,62.779991000000109],[-69.906386999999881,62.768599999999992],[-70.121932999999956,62.748878000000104],[-70.217498999999862,62.747772000000111],[-70.229171999999949,62.748878000000104],[-70.240279999999984,62.751389000000074],[-70.354995999999915,62.788329999999974],[-70.360000999999954,62.790276000000063],[-70.367767000000015,62.793883999999991],[-70.477782999999988,62.848328000000038],[-70.499434999999949,62.864441000000056],[-70.508056999999951,62.865828999999962],[-70.665558000000033,62.880547000000092],[-70.830291999999929,62.896660000000111],[-70.853332999999964,62.899994000000106],[-70.885558999999944,62.907211000000018],[-70.896118000000001,62.91443600000008],[-70.893065999999976,62.917770000000075],[-70.885833999999988,62.920546999999999],[-70.871384000000035,62.924713000000054],[-70.863616999999977,62.925552000000039],[-70.848343,62.924713000000054],[-70.847777999999892,62.947212000000036],[-70.974837999999977,62.989437000000009],[-70.977341000000024,62.983768000000055],[-71.013061999999991,62.989990000000091],[-71.060271999999941,62.981102000000078],[-71.071670999999981,62.979431000000034],[-71.120833999999945,62.979431000000034],[-71.135833999999932,62.980820000000051],[-71.152221999999995,62.985268000000019],[-71.156661999999983,62.989159000000086],[-71.156661999999983,62.999434999999949],[-71.136672999999973,63.028602999999976],[-71.118103000000019,63.032219000000055],[-71.091384999999946,63.029991000000052],[-71.020888999999954,63.044270000000097],[-71.013724999999965,63.043602000000021],[-71.007384999999942,63.043437999999981],[-71.003219999999942,63.044768999999974],[-70.863892000000021,63.112213000000054],[-70.856383999999991,63.139434999999992],[-70.908889999999985,63.17083000000008],[-70.920546999999942,63.168883999999991],[-70.952498999999989,63.162766000000033],[-70.971389999999928,63.158882000000006],[-70.976943999999946,63.15665400000006],[-70.990279999999984,63.148048000000131],[-70.997498000000007,63.141662999999937],[-71.001953000000015,63.128044000000045],[-71.002791999999999,63.123322000000144],[-71.00140399999998,63.118881000000044],[-70.993332000000009,63.112770000000125],[-70.990829000000019,63.108330000000137],[-70.989989999999977,63.102492999999981],[-70.993606999999997,63.098045000000013],[-71.029723999999987,63.071937999999989],[-71.041672000000005,63.069442999999922],[-71.127212999999983,63.071663000000115],[-71.138610999999912,63.073326000000066],[-71.195266999999944,63.031661999999983],[-71.195830999999998,63.026657000000114],[-71.198607999999979,63.019989000000123],[-71.208618000000001,63.01166500000005],[-71.232773000000009,63.001938000000109],[-71.243880999999988,63.00110600000005],[-71.255844000000025,63.001938000000109],[-71.262512000000015,63.004166000000112],[-71.40055799999999,63.051659000000029],[-71.408339999999953,63.055267000000129],[-71.413895000000025,63.060546999999985],[-71.421386999999982,63.071663000000115],[-71.454726999999934,63.10193600000008],[-71.465012000000002,63.103325000000098],[-71.605834999999956,63.134995000000004],[-71.624999999999943,63.140831000000048],[-71.70666499999993,63.174995000000081],[-71.713897999999972,63.179161000000136],[-71.770003999999915,63.25638600000002],[-71.794998000000021,63.326660000000004],[-71.795546999999942,63.384720000000073],[-71.805831999999953,63.382767000000001],[-72.009170999999981,63.391106000000036],[-72.063048999999921,63.396385000000009],[-72.076400999999976,63.398048000000074],[-72.083069000000023,63.400542999999971],[-72.141678000000013,63.436104000000114],[-72.146118000000001,63.439987000000031],[-72.145554000000004,63.44609800000012],[-72.126662999999951,63.450271999999984],[-72.023055999999997,63.448043999999982],[-71.933318999999926,63.443321000000026],[-71.825835999999981,63.435265000000129],[-71.785278000000005,63.431938000000002],[-71.748046999999985,63.428047000000106],[-71.711120999999935,63.422768000000133],[-71.683059999999955,63.419716000000051],[-71.634734999999921,63.419716000000051],[-71.61500499999994,63.422493000000145],[-71.59944200000001,63.42582700000014],[-71.411666999999909,63.485824999999977],[-71.316955999999948,63.530823000000055],[-71.227492999999924,63.598877000000016],[-71.229720999999984,63.604713000000061],[-71.234726000000023,63.608047000000056],[-71.245620999999971,63.610939000000087],[-71.261123999999995,63.612495000000024],[-71.295273000000009,63.612495000000024],[-71.306945999999982,63.611381999999935],[-71.323623999999938,63.605270000000132],[-71.328063999999983,63.602218999999934],[-71.331680000000006,63.598328000000038],[-71.333069000000023,63.583603000000096],[-71.332503999999972,63.581664999999987],[-71.328063999999983,63.576942000000031],[-71.325561999999991,63.571938000000046],[-71.326110999999912,63.570549000000028],[-71.331680000000006,63.565543999999989],[-71.335280999999895,63.564437999999996],[-71.379990000000021,63.565543999999989],[-71.407501000000025,63.567771999999934],[-71.414168999999958,63.570549000000028],[-71.416397000000018,63.572769000000051],[-71.378052000000025,63.595268000000033],[-71.367492999999968,63.601935999999966],[-71.363616999999977,63.607216000000051],[-71.362503000000004,63.61332700000014],[-71.377486999999974,63.632767000000115],[-71.396666999999923,63.635826000000066],[-71.407776000000013,63.635551000000078],[-71.411391999999978,63.634437999999989],[-71.418059999999969,63.629990000000021],[-71.452498999999989,63.604439000000127],[-71.441101000000003,63.590827999999988],[-71.439437999999996,63.588042999999971],[-71.446944999999914,63.580826000000002],[-71.455841000000021,63.57888000000014],[-71.470275999999956,63.578049000000135],[-71.561661000000015,63.580275999999969],[-71.576950000000011,63.581664999999987],[-71.580565999999976,63.583878000000141],[-71.581389999999942,63.59304800000001],[-71.583618000000001,63.649719000000118],[-71.569457999999997,63.675552000000039],[-71.562209999999993,63.685546999999985],[-71.581116000000009,63.714995999999985],[-71.585007000000019,63.71665999999999],[-71.615828999999906,63.722213999999951],[-71.629165999999941,63.723877000000073],[-71.638061999999877,63.721099999999979],[-71.660004000000015,63.706940000000088],[-71.664718999999877,63.703049000000021],[-71.667220999999927,63.697212000000036],[-71.700561999999991,63.696381000000031],[-71.823897999999872,63.78054800000001],[-71.830001999999979,63.784439000000077],[-71.891113000000018,63.80832700000002],[-71.904449,63.809989999999971],[-71.915558000000033,63.810271999999998],[-71.938599000000011,63.808044000000052],[-71.958344000000011,63.802490000000034],[-71.970550999999944,63.795830000000024],[-71.985549999999932,63.781937000000028],[-72.000564999999995,63.761383000000023],[-72.004181000000017,63.752776999999924],[-71.999725000000012,63.748328999999956],[-71.991104000000007,63.74610100000001],[-71.972778000000005,63.748047000000099],[-71.966949,63.75110600000005],[-71.954726999999934,63.76527400000009],[-71.946654999999964,63.770271000000037],[-71.939162999999951,63.772491000000059],[-71.934433000000013,63.772766000000047],[-71.853881999999999,63.761383000000023],[-71.848617999999988,63.759438000000046],[-71.843886999999995,63.755554000000018],[-71.879439999999988,63.681937999999946],[-71.882766999999944,63.678047000000049],[-71.920273000000009,63.655548000000124],[-71.933884000000035,63.649437000000034],[-71.963622999999984,63.649162000000047],[-72.051940999999943,63.67860399999995],[-72.154175000000009,63.735550000000103],[-72.169448999999986,63.748604],[-72.21305799999999,63.683876000000112],[-72.212783999999942,63.680550000000039],[-72.213897999999915,63.677772999999945],[-72.218886999999995,63.673882000000049],[-72.223891999999864,63.672218000000044],[-72.234160999999972,63.670273000000066],[-72.245269999999948,63.669715999999994],[-72.28694200000001,63.671660999999972],[-72.317504999999983,63.674164000000133],[-72.324172999999973,63.676658999999972],[-72.327498999999989,63.67971799999998],[-72.363891999999964,63.749435000000005],[-72.363616999999977,63.754440000000045],[-72.357772999999952,63.761383000000023],[-72.352782999999988,63.76527400000009],[-72.342498999999975,63.771378000000141],[-72.324722000000008,63.776939000000027],[-72.317779999999914,63.777771000000087],[-72.302779999999927,63.776657000000114],[-72.291381999999942,63.773605000000032],[-72.270003999999915,63.787216000000001],[-72.215012000000002,63.867767000000072],[-72.209732000000031,63.893051000000071],[-72.223052999999993,63.92943600000001],[-72.232772999999895,63.948325999999952],[-72.238892000000021,63.952492000000063],[-72.246384000000035,63.950272000000041],[-72.250564999999938,63.947769000000051],[-72.36471599999993,63.845543000000134],[-72.383056999999951,63.815543999999932],[-72.376388999999961,63.812209999999936],[-72.371658000000025,63.809158000000025],[-72.366942999999992,63.804710000000057],[-72.365554999999915,63.800270000000069],[-72.363051999999925,63.791107000000068],[-72.368056999999965,63.782494000000099],[-72.372771999999998,63.778603000000032],[-72.436110999999926,63.781661999999983],[-72.515838999999971,63.786384999999996],[-72.526397999999915,63.787773000000072],[-72.531386999999995,63.791107000000068],[-72.532227000000034,63.796661000000029],[-72.531386999999995,63.799438000000123],[-72.519729999999925,63.804710000000057],[-72.496658000000025,63.803604000000064],[-72.474166999999909,63.804710000000057],[-72.463897999999972,63.806655999999975],[-72.459731999999974,63.809158000000025],[-72.456116000000009,63.814438000000109],[-72.456954999999994,63.815826000000015],[-72.465011999999945,63.819160000000011],[-72.521117999999944,63.84027100000003],[-72.537216000000001,63.844154000000003],[-72.585555999999997,63.852776000000006],[-72.634734999999978,63.852493000000038],[-72.637512000000015,63.873604000000057],[-72.641112999999962,63.904434000000094],[-72.611663999999962,63.943046999999979],[-72.592772999999852,64.018051000000128],[-72.592772999999852,64.022217000000069],[-72.658339999999896,64.076660000000004],[-72.664718999999934,64.080551000000071],[-72.67471299999994,64.083327999999995],[-72.682495000000017,64.079711999999972],[-72.685546999999929,64.076385000000016],[-72.688048999999978,64.070540999999992],[-72.704726999999991,64.015549000000078],[-72.705841000000021,64.009155000000021],[-72.702498999999932,64.005553999999961],[-72.696945000000028,64.003052000000082],[-72.668335000000013,63.996101000000124],[-72.660004000000015,63.992493000000024],[-72.658614999999998,63.987770000000069],[-72.666396999999961,63.980545000000006],[-72.678878999999938,63.972488000000055],[-72.692490000000021,63.966660000000104],[-72.699722000000008,63.964439000000027],[-72.720000999999968,63.961105000000032],[-72.753341999999918,64.000274999999988],[-72.758346999999958,64.004166000000055],[-72.779449,64.010544000000039],[-72.836120999999991,64.019714000000079],[-72.931380999999988,64.052475000000015],[-72.94027699999998,64.058594000000028],[-72.941375999999991,64.063599000000067],[-72.93971299999987,64.067764000000068],[-72.933318999999983,64.076385000000016],[-72.925551999999868,64.084152000000131],[-72.919723999999917,64.086929000000055],[-72.911117999999931,64.08859300000006],[-72.888061999999991,64.086105000000089],[-72.878326000000015,64.086655000000121],[-72.874435000000005,64.08859300000006],[-72.870833999999945,64.093872000000033],[-72.868880999999931,64.099152000000117],[-72.868332000000009,64.108321999999987],[-72.897232000000031,64.156937000000028],[-72.905272999999909,64.164993000000095],[-72.911666999999966,64.168868999999972],[-73.223891999999921,64.31164600000011],[-73.271117999999888,64.283875000000023],[-73.267226999999991,64.273880000000133],[-73.270003999999972,64.265823000000125],[-73.273055999999997,64.26249700000011],[-73.279174999999952,64.258606000000043],[-73.339721999999938,64.258040999999992],[-73.365829000000019,64.261932000000058],[-73.380554000000018,64.268600000000049],[-73.384170999999981,64.272491000000116],[-73.386947999999904,64.277480999999966],[-73.417769999999905,64.371093999999914],[-73.415558000000033,64.445816000000036],[-73.326950000000011,64.476089000000002],[-73.167770000000019,64.576660000000118],[-73.164718999999934,64.579712000000029],[-73.164718999999934,64.60554499999995],[-73.165557999999976,64.607483000000116],[-73.169448999999872,64.609984999999995],[-73.296950999999922,64.656937000000084],[-73.302779999999927,64.658875000000023],[-73.309433000000013,64.658600000000035],[-73.342223999999931,64.644150000000081],[-73.346664000000033,64.641098],[-73.347504000000015,64.63499500000006],[-73.341110000000015,64.626083000000051],[-73.326110999999969,64.609984999999995],[-73.314437999999939,64.598038000000031],[-73.308043999999995,64.593322999999998],[-73.302215999999987,64.583878000000084],[-73.298614999999927,64.559418000000107],[-73.299163999999962,64.544982999999945],[-73.303328999999962,64.538315000000011],[-73.30749499999996,64.535812000000021],[-73.315276999999924,64.532211000000132],[-73.32417299999986,64.52998400000007],[-73.424164000000019,64.509995000000004],[-73.463333000000034,64.502486999999974],[-73.47222899999997,64.504440000000102],[-73.475829999999917,64.508040999999935],[-73.477218999999991,64.512207000000046],[-73.473052999999993,64.553589000000045],[-73.448714999999936,64.565422000000012],[-73.467223999999987,64.612762000000089],[-73.595000999999968,64.629699999999957],[-73.655563000000029,64.631653000000085],[-73.655563000000029,64.623596000000134],[-73.667496000000028,64.577209000000039],[-73.750289999999893,64.536377000000073],[-73.75389100000001,64.535263000000043],[-73.764450000000011,64.537491000000045],[-73.787780999999939,64.548035000000084],[-73.803054999999915,64.555251999999996],[-73.821121000000005,64.567490000000078],[-73.837783999999999,64.579712000000029],[-73.84944200000001,64.587493999999992],[-73.861388999999974,64.594436999999971],[-73.876662999999951,64.600815000000125],[-73.886947999999961,64.603592000000049],[-73.910277999999948,64.605819999999994],[-73.920272999999952,64.605255000000113],[-73.929442999999992,64.602203000000031],[-73.932495000000017,64.593597000000102],[-73.931106999999997,64.583878000000084],[-73.844726999999978,64.501937999999996],[-73.925551999999925,64.460265999999933],[-73.972777999999892,64.430267000000129],[-73.999434999999892,64.328048999999965],[-74.062774999999988,64.334427000000119],[-74.102218999999877,64.367476999999951],[-74.128051999999911,64.533051],[-74.127486999999974,64.534424000000115],[-74.105835000000013,64.535812000000021],[-74.082229999999925,64.534988000000055],[-74.065276999999924,64.533051],[-74.055557000000022,64.610535000000027],[-74.050551999999982,64.724991000000045],[-74.053878999999938,64.728592000000106],[-74.060546999999985,64.733322000000101],[-74.089721999999995,64.751099000000011],[-74.096114999999941,64.751389000000017],[-74.114440999999943,64.745819000000097],[-74.120543999999995,64.74192800000003],[-74.195266999999888,64.663040000000024],[-74.208892999999932,64.614151000000049],[-74.212783999999999,64.602768000000083],[-74.224715999999944,64.592484000000013],[-74.240279999999984,64.58027600000014],[-74.381942999999922,64.569992000000127],[-74.390288999999996,64.569716999999912],[-74.397507000000019,64.572220000000073],[-74.535278000000005,64.622208000000057],[-74.657500999999968,64.700272000000098],[-74.701675000000023,64.732483000000002],[-74.704177999999899,64.735535000000084],[-74.700835999999867,64.740265000000136],[-74.683318999999926,64.758331000000112],[-74.567504999999983,64.832764000000054],[-74.501113999999973,64.833603000000039],[-74.487777999999935,64.834152000000017],[-74.478881999999999,64.835815000000082],[-74.476395000000025,64.838882000000012],[-74.476943999999946,64.84165999999999],[-74.540557999999976,64.889160000000004],[-74.545836999999949,64.892212000000086],[-74.561110999999926,64.896102999999982],[-74.621932999999956,64.903869999999927],[-74.639998999999932,64.903595000000109],[-74.648620999999935,64.901382000000126],[-74.660277999999892,64.896378000000027],[-74.732773000000009,64.854705999999965],[-74.741378999999938,64.847488000000112],[-74.743057000000022,64.842209000000139],[-74.741942999999992,64.835815000000082],[-74.738892000000021,64.831375000000094],[-74.72222899999997,64.822220000000016],[-74.714721999999938,64.815535999999952],[-74.710007000000019,64.810532000000023],[-74.706664999999987,64.800537000000077],[-74.706664999999987,64.794983000000116],[-74.710830999999985,64.782761000000107],[-74.718886999999938,64.773604999999975],[-74.726394999999968,64.770828000000108],[-74.837219000000005,64.778595000000053],[-74.868332000000009,64.781936999999971],[-74.893341000000021,64.784714000000065],[-74.902221999999938,64.78804000000008],[-74.909164000000033,64.791367000000037],[-74.915833000000021,64.795822000000044],[-74.924438000000009,64.799149],[-74.944153000000028,64.803589000000045],[-74.955001999999979,64.804428000000144],[-74.975554999999872,64.801376000000062],[-74.985274999999945,64.795822000000044],[-74.985549999999876,64.790268000000083],[-74.982498000000021,64.785263000000043],[-74.978881999999999,64.781372000000147],[-74.963332999999977,64.773604999999975],[-74.834732000000031,64.716385000000116],[-74.733321999999987,64.685531999999967],[-74.694442999999978,64.676376000000005],[-74.675551999999982,64.670258000000047],[-74.660003999999958,64.663879000000009],[-74.613051999999925,64.640274000000034],[-74.545273000000009,64.602203000000031],[-74.512787000000003,64.583603000000096],[-74.475280999999939,64.561371000000008],[-74.470000999999968,64.557479999999941],[-74.47084000000001,64.555542000000003],[-74.513625999999874,64.533325000000104],[-74.520279000000016,64.532211000000132],[-74.585830999999985,64.480270000000075],[-74.685546999999985,64.391936999999984],[-74.685821999999973,64.371093999999914],[-74.797774999999945,64.380813999999987],[-74.974716000000001,64.416091999999992],[-74.985274999999945,64.418869000000086],[-75.010558999999944,64.429977000000122],[-75.056380999999988,64.452208999999982],[-75.142501999999979,64.483321999999987],[-75.174712999999997,64.492752000000053],[-75.182769999999948,64.492477000000065],[-75.188598999999954,64.489426000000037],[-75.188888999999904,64.483321999999987],[-75.187209999999993,64.473602000000085],[-75.182495000000017,64.468323000000112],[-75.177215999999987,64.464705999999978],[-75.151397999999915,64.460265999999933],[-75.146117999999944,64.457214000000022],[-75.14416499999993,64.453049000000021],[-75.15055799999999,64.447204999999997],[-75.154448999999943,64.444702000000063],[-75.199721999999952,64.428040000000067],[-75.207779000000016,64.427765000000022],[-75.21556099999998,64.428864000000033],[-75.224166999999909,64.432205000000067],[-75.295272999999952,64.46665999999999],[-75.323897999999986,64.481934000000081],[-75.332503999999972,64.490814000000114],[-75.344161999999926,64.49914600000011],[-75.34973100000002,64.50221300000004],[-75.381667999999991,64.513611000000026],[-75.409164000000033,64.522766000000104],[-75.479720999999927,64.53915399999994],[-75.490829000000019,64.539703000000088],[-75.566100999999946,64.549988000000042],[-75.666396999999961,64.563873000000115],[-75.693329000000006,64.569992000000127],[-75.703887999999949,64.572769000000051],[-75.721389999999985,64.579163000000051],[-75.736938000000009,64.586104999999975],[-75.74722300000002,64.594436999999971],[-75.763625999999988,64.604980000000126],[-75.773894999999925,64.608322000000044],[-75.796951000000035,64.612198000000149],[-75.824172999999973,64.611649],[-75.843063000000029,64.607758000000103],[-75.847228999999913,64.604430999999977],[-75.837219000000005,64.561371000000008],[-75.823623999999938,64.535812000000021],[-75.818893000000003,64.530823000000055],[-75.807495000000017,64.525269000000037],[-75.729172000000005,64.503051999999968],[-75.644729999999925,64.468872000000033],[-75.639449999999954,64.46527100000003],[-75.630554000000018,64.457214000000022],[-75.631667999999991,64.453598],[-75.636123999999938,64.449142000000052],[-75.641388000000006,64.448028999999963],[-75.696655000000021,64.43942300000009],[-75.708343999999954,64.437759000000028],[-75.727782999999931,64.442474000000061],[-75.746947999999975,64.453049000000021],[-75.765839000000028,64.46527100000003],[-75.77305599999994,64.467484000000127],[-75.874709999999993,64.486923000000047],[-75.895279000000016,64.48803700000002],[-75.908339999999953,64.487198000000035],[-75.920273000000009,64.484420999999998],[-75.922500999999954,64.481094000000041],[-75.910552999999993,64.478317000000118],[-75.875274999999988,64.47387700000013],[-75.857772999999952,64.468048000000067],[-75.720839999999953,64.383331000000055],[-75.717223999999987,64.379700000000014],[-75.718886999999995,64.374419999999986],[-75.723327999999924,64.369705000000124],[-75.726944000000003,64.367203000000018],[-75.83805799999999,64.369141000000013],[-75.861664000000019,64.371093999999914],[-75.950561999999934,64.399155000000007],[-76.043883999999991,64.368317000000047],[-76.253615999999965,64.35775799999999],[-76.264450000000011,64.319153000000028],[-76.214721999999995,64.314986999999974],[-76.205565999999976,64.313309000000004],[-76.196655000000021,64.310806000000071],[-76.188323999999852,64.306931000000077],[-76.189712999999927,64.301376000000005],[-76.197219999999959,64.29693600000013],[-76.205840999999964,64.294708000000014],[-76.300551999999982,64.278869999999984],[-76.484725999999966,64.266662999999994],[-76.493606999999997,64.268600000000049],[-76.503066999999987,64.275269000000094],[-76.506957999999941,64.284424000000001],[-76.505568999999923,64.289153999999996],[-76.503615999999909,64.291091999999935],[-76.502501999999936,64.295258000000047],[-76.506667999999934,64.297485000000108],[-76.541381999999999,64.304703000000075],[-76.591949,64.31053199999991],[-76.705840999999964,64.300812000000008],[-76.719451999999933,64.296646000000123],[-76.733886999999868,64.290543000000014],[-76.736664000000019,64.285812000000078],[-76.738892000000021,64.276382000000012],[-76.721663999999976,64.238312000000064],[-76.714721999999995,64.233870999999965],[-76.706115999999952,64.231369000000086],[-76.684722999999963,64.227768000000026],[-76.674438000000009,64.224990999999932],[-76.667220999999927,64.221924000000058],[-76.660278000000005,64.218322999999998],[-76.654723999999931,64.209152000000017],[-76.654723999999931,64.196640000000059],[-76.65834000000001,64.189972000000068],[-76.662215999999944,64.186646000000053],[-76.670546999999942,64.184143000000063],[-76.84722899999997,64.23054500000012],[-76.968337999999903,64.259720000000016],[-77.138335999999981,64.289429000000041],[-77.276108000000022,64.256378000000097],[-77.296111999999937,64.251938000000052],[-77.327498999999989,64.246367999999961],[-77.351944000000003,64.243866000000082],[-77.366104000000007,64.243866000000082],[-77.379990000000021,64.2452550000001],[-77.381377999999984,64.246643000000006],[-77.382216999999969,64.2494200000001],[-77.381377999999984,64.253601000000003],[-77.378875999999934,64.256943000000092],[-77.434158000000025,64.320267000000001],[-77.588332999999977,64.368317000000047],[-77.652221999999938,64.388046000000088],[-77.660278000000005,64.386383000000023],[-77.664444000000003,64.3836060000001],[-77.665832999999907,64.376923000000147],[-77.664718999999991,64.374146000000053],[-77.658889999999985,64.364990000000091],[-77.67971799999998,64.321105999999986],[-77.747222999999963,64.337769000000037],[-77.831389999999942,64.412490999999989],[-77.970276000000013,64.454436999999928],[-78.178054999999972,64.567490000000078],[-78.183318999999926,64.572495000000117],[-78.168578999999966,64.626197999999931],[-78.160552999999993,64.690536000000066],[-78.184433000000013,64.731093999999985],[-78.073623999999938,64.813599000000124],[-78.064437999999996,64.849426000000051],[-78.065276999999867,64.853591999999992],[-78.06639100000001,64.855820000000108],[-78.073623999999938,64.859420999999998],[-78.102492999999981,64.868866000000025],[-78.117217999999923,64.876082999999994],[-78.120834000000002,64.881088000000034],[-78.129715000000033,64.893875000000037],[-78.146118000000001,64.938309000000004],[-78.148055999999997,64.943862999999965],[-78.149733999999967,64.952209000000039],[-78.145279000000016,64.957489000000123],[-77.973052999999993,65.04136699999998],[-77.67971799999998,65.123306000000014],[-77.543610000000001,65.139709000000096],[-77.50306699999993,65.138596000000007],[-77.488326999999913,65.139434999999935],[-77.479720999999984,65.141098000000056],[-77.344726999999978,65.173309000000131],[-77.328612999999962,65.178864000000033],[-77.322783999999956,65.18331900000004],[-77.315825999999959,65.190536000000009],[-77.313048999999978,65.195816000000036],[-77.315552000000025,65.199417000000096],[-77.3824919999999,65.247482000000105],[-77.397232000000031,65.254990000000134],[-77.422774999999945,65.264435000000049],[-77.444716999999912,65.275543000000027],[-77.498046999999985,65.306641000000013],[-77.513061999999934,65.318877999999984],[-77.515015000000005,65.325820999999962],[-77.512222000000008,65.330551000000014],[-77.471114999999998,65.371368000000018],[-77.466949,65.375259000000085],[-77.461120999999878,65.379149999999981],[-77.452498999999875,65.380813999999987],[-77.438048999999921,65.379700000000014],[-77.41361999999998,65.371643000000063],[-77.402495999999985,65.369141000000127],[-77.345839999999896,65.358597000000088],[-77.337783999999999,65.357483000000116],[-77.323058999999944,65.357757999999933],[-77.30610699999994,65.359711000000061],[-77.295546999999999,65.361922999999933],[-77.291945999999939,65.363876000000062],[-77.287505999999951,65.367751999999996],[-77.287216000000001,65.375259000000085],[-77.289992999999924,65.378860000000145],[-77.295273000000009,65.383331000000055],[-77.319457999999997,65.393326000000002],[-77.326950000000011,65.395538000000045],[-77.341949,65.401657000000057],[-77.367492999999911,65.412491000000102],[-77.398620999999935,65.426651000000049],[-77.420272999999952,65.439972000000012],[-77.428329000000019,65.447754000000145],[-77.434432999999956,65.456940000000088],[-77.430556999999908,65.458878000000027],[-77.421660999999972,65.461380000000077],[-77.385559000000001,65.468048000000067],[-77.336670000000026,65.471375000000023],[-77.265288999999882,65.471923999999944],[-77.238051999999925,65.469437000000084],[-77.154449,65.445815999999979],[-77.134734999999978,65.439423000000033],[-77.124434999999892,65.434143000000006],[-77.115828999999962,65.429703000000131],[-77.111663999999962,65.426085999999998],[-77.111114999999927,65.421371000000136],[-77.106383999999991,65.413605000000075],[-77.09944200000001,65.409149000000014],[-77.08666999999997,65.407211000000075],[-76.962783999999999,65.407211000000075],[-76.956954999999994,65.410537999999974],[-76.952498999999989,65.414993000000038],[-76.956116000000009,65.421371000000136],[-76.955565999999976,65.422759999999982],[-76.951675000000023,65.425262000000032],[-76.944442999999978,65.427765000000022],[-76.920837000000006,65.429428000000144],[-76.849990999999989,65.428313999999943],[-76.824722000000008,65.425262000000032],[-76.626937999999939,65.398880000000133],[-76.361937999999952,65.342209000000025],[-76.235001000000011,65.312759000000142],[-76.164444000000003,65.296097000000145],[-76.072509999999909,65.277205999999921],[-75.96665999999999,65.255829000000119],[-75.953888000000006,65.255264000000068],[-75.925277999999935,65.257217000000026],[-75.920273000000009,65.258330999999998],[-75.912215999999944,65.257217000000026],[-75.898345999999947,65.253875999999991],[-75.805556999999965,65.229705999999965],[-75.785552999999936,65.224426000000108],[-75.769164999999987,65.21887200000009],[-75.765014999999892,65.216660000000047],[-75.760009999999909,65.210815000000139],[-75.741378999999995,65.173874000000012],[-75.739989999999921,65.168319999999994],[-75.570847000000015,65.120818999999926],[-75.528610000000015,65.108871000000079],[-75.475006000000008,65.086105000000089],[-75.46665999999999,65.082214000000022],[-75.457229999999925,65.074707000000046],[-75.446945000000028,65.06581100000011],[-75.428054999999972,65.048324999999977],[-75.424438000000009,65.043869000000086],[-75.410552999999936,65.024704000000099],[-75.415557999999976,64.977478000000076],[-75.420273000000009,64.972214000000065],[-75.428054999999972,64.968322999999998],[-75.496947999999975,64.940536000000066],[-75.507232999999985,64.938309000000004],[-75.51916499999993,64.936919999999986],[-75.533614999999941,64.936919999999986],[-75.557220000000029,64.940262000000132],[-75.634734999999921,64.94720500000011],[-75.654448999999943,64.946365000000071],[-75.663054999999929,64.945251000000098],[-75.667496000000028,64.940811000000053],[-75.601944000000003,64.867752000000053],[-75.594161999999983,64.860259999999926],[-75.587508999999898,64.856644000000074],[-75.56806899999998,64.850540000000024],[-75.555557000000022,64.848602000000085],[-75.461394999999925,64.811645999999996],[-75.389175000000023,64.736099000000024],[-75.373046999999985,64.714996000000099],[-75.316665999999941,64.719437000000028],[-75.308333999999888,64.721099999999979],[-75.298186999999984,64.725769000000128],[-75.294723999999974,64.728043000000127],[-75.291381999999885,64.733871000000079],[-75.289444000000003,64.739975000000072],[-75.291381999999885,64.74443100000002],[-75.30221599999993,64.751099000000011],[-75.310546999999929,64.754990000000078],[-75.329726999999991,64.761107999999979],[-75.333892999999989,64.763321000000133],[-75.344161999999926,64.772217000000069],[-75.373885999999914,64.833054000000118],[-75.357223999999917,64.897766000000104],[-75.422775000000001,64.890273999999977],[-75.451675000000023,64.875259000000028],[-75.460830999999985,64.87164300000012],[-75.469727000000034,64.869431000000077],[-75.55749499999996,64.87414600000011],[-75.563323999999966,64.877197000000137],[-75.565552000000025,64.879425000000083],[-75.567504999999983,64.883605999999986],[-75.56527699999998,64.886932000000058],[-75.473891999999921,64.935806000000014],[-75.390288999999996,64.979430999999977],[-75.384734999999978,64.981934000000138],[-75.376098999999897,64.983322000000044],[-75.363051999999982,64.98414600000001],[-75.353332999999964,64.983597000000088],[-75.344161999999926,64.981094000000098],[-75.335555999999997,64.977768000000083],[-75.264175000000023,64.966095000000053],[-75.196105999999986,65.068604000000107],[-75.189163000000008,65.079712000000086],[-75.185546999999872,65.091369999999927],[-75.186934999999949,65.101653999999996],[-75.192490000000021,65.105545000000063],[-75.196655000000021,65.107207999999957],[-75.212508999999955,65.109421000000111],[-75.225554999999986,65.109421000000111],[-75.240828999999962,65.10832199999993],[-75.259170999999981,65.102203000000088],[-75.263625999999988,65.0977630000001],[-75.265563999999927,65.09165999999999],[-75.262512000000015,65.080551000000071],[-75.260009999999852,65.072769000000108],[-75.261123999999995,65.059142999999949],[-75.263061999999934,65.052199999999971],[-75.279998999999975,65.035262999999986],[-75.299727999999959,65.024704000000099],[-75.348617999999931,65.003876000000048],[-75.360001000000011,65.003876000000048],[-75.367492999999968,65.006378000000097],[-75.373046999999985,65.009430000000009],[-75.378875999999991,65.016663000000051],[-75.379165999999998,65.021378000000084],[-75.381103999999937,65.025818000000072],[-75.402495999999871,65.055817000000104],[-75.410003999999958,65.063873000000001],[-75.425551999999982,65.077208999999925],[-75.441375999999991,65.089157],[-75.448043999999982,65.094147000000021],[-75.516402999999855,65.138596000000007],[-75.728058000000033,65.224151999999947],[-75.761947999999961,65.237762000000032],[-75.781676999999945,65.243042000000116],[-75.835555999999997,65.255264000000068],[-75.864166000000012,65.258330999999998],[-75.890563999999983,65.269150000000081],[-75.939712999999983,65.292480000000012],[-75.943877999999984,65.29525799999999],[-75.950835999999981,65.316376000000105],[-75.950287000000003,65.318329000000062],[-75.941101000000003,65.321380999999974],[-75.931106999999884,65.322220000000129],[-75.904449,65.322220000000129],[-75.873885999999914,65.320541000000105],[-75.857772999999952,65.319153000000028],[-75.603057999999976,65.295531999999923],[-75.592223999999931,65.287201000000039],[-75.575561999999934,65.278046000000018],[-75.566390999999896,65.274994000000049],[-75.555267000000015,65.273605000000089],[-75.495834000000002,65.269150000000081],[-75.48443599999996,65.268326000000116],[-75.211945000000014,65.250549000000035],[-75.186661000000015,65.251938000000052],[-75.153885000000002,65.256943000000092],[-75.114440999999999,65.266387999999949],[-75.101669000000015,65.271378000000027],[-75.093886999999938,65.274994000000049],[-75.083618000000001,65.286102000000085],[-75.081679999999892,65.292206000000078],[-75.070847000000015,65.330276000000026],[-75.090835999999911,65.355545000000006],[-75.109160999999858,65.379974000000118],[-75.110824999999977,65.384720000000073],[-75.111114999999984,65.388885000000073],[-75.110549999999932,65.391098],[-75.108046999999942,65.393051000000128],[-75.097778000000005,65.394989000000066],[-75.08277899999996,65.394989000000066],[-74.823623999999938,65.377472000000068],[-74.660552999999993,65.346374999999966],[-74.645844000000011,65.341370000000097],[-74.635009999999966,65.338593000000003],[-74.624161000000015,65.336655000000064],[-74.58944699999995,65.332489000000123],[-74.546660999999915,65.33137499999998],[-74.524445000000014,65.333328000000108],[-74.508621000000005,65.336655000000064],[-74.496947999999975,65.340820000000065],[-74.357773000000009,65.398604999999975],[-74.347838999999965,65.407181000000037],[-74.323897999999986,65.437759000000028],[-74.318892999999946,65.447204999999997],[-74.31527699999998,65.458037999999988],[-74.311385999999914,65.463882000000012],[-74.182770000000005,65.525269000000037],[-74.105835000000013,65.534988000000055],[-73.845276000000013,65.532211000000132],[-73.791381999999999,65.524428999999998],[-73.767776000000026,65.520828000000108],[-73.747222999999963,65.517487000000074],[-73.736937999999952,65.514709000000096],[-73.732772999999952,65.511932000000002],[-73.731383999999935,65.506943000000035],[-73.730835000000013,65.504166000000112],[-73.735001000000011,65.501662999999951],[-73.740279999999984,65.496933000000126],[-73.740829000000019,65.490814000000114],[-73.736937999999952,65.487761999999975],[-73.711670000000026,65.471099999999979],[-73.703063999999927,65.466934000000094],[-73.694152999999915,65.464432000000045],[-73.663895000000025,65.456940000000088],[-73.651397999999972,65.454711999999915],[-73.641113000000018,65.455261000000064],[-73.559997999999894,65.462494000000049],[-73.500564999999938,65.474426000000051],[-73.56361400000003,65.562194999999974],[-73.618332000000009,65.619705000000067],[-73.662215999999944,65.658599999999979],[-73.684157999999911,65.715271000000087],[-73.68499799999995,65.730545000000006],[-73.704726999999934,65.758041000000048],[-73.709731999999917,65.762496999999996],[-73.720550999999887,65.769440000000145],[-73.810821999999973,65.811096000000134],[-73.841110000000015,65.81999200000007],[-73.884170999999981,65.821930000000009],[-73.886123999999995,65.821381000000031],[-73.923614999999984,65.824432000000058],[-73.931670999999938,65.825546000000031],[-73.942490000000021,65.828323000000125],[-74.011947999999961,65.854705999999908],[-74.029174999999952,65.861923000000047],[-74.058043999999938,65.875534000000016],[-74.129439999999988,65.924697999999978],[-74.258895999999993,66.001663000000065],[-74.296950999999979,66.018326000000116],[-74.337783999999999,66.036652000000117],[-74.37388599999997,66.053863999999976],[-74.388061999999934,66.06164600000011],[-74.425551999999925,66.084717000000126],[-74.444992000000013,66.096939000000077],[-74.455565999999862,66.105820000000051],[-74.471389999999985,66.127197000000081],[-74.472777999999948,66.133041000000048],[-74.472504000000015,66.139160000000118],[-74.470000999999968,66.145828000000051],[-74.466110000000015,66.151932000000102],[-74.446655000000021,66.168594000000098],[-74.434432999999956,66.178314],[-74.406113000000005,66.195816000000036],[-74.366652999999928,66.214157000000057],[-74.342223999999987,66.22526600000009],[-74.316390999999953,66.235259999999926],[-74.306655999999975,66.238876000000005],[-74.187209999999993,66.269713999999965],[-74.077788999999939,66.300812000000008],[-73.86082499999992,66.388321000000076],[-73.744995000000017,66.437759000000028],[-73.666107000000011,66.471924000000115],[-73.606658999999979,66.495254999999986],[-73.529998999999975,66.522766000000047],[-73.460555999999997,66.544434000000138],[-73.444153000000028,66.551086000000055],[-73.430556999999908,66.55831900000004],[-73.420272999999952,66.571655000000021],[-73.418335000000013,66.579711999999972],[-73.418335000000013,66.584717000000012],[-73.416396999999961,66.589981000000023],[-73.400283999999942,66.611649000000114],[-73.396956999999986,66.61554000000001],[-73.379714999999976,66.632477000000051],[-73.351944000000003,66.649994000000049],[-73.328339000000028,66.6602630000001],[-73.296386999999982,66.665817000000061],[-73.267226999999991,66.672760000000096],[-73.108611999999937,66.723311999999964],[-73.00111400000003,66.815536000000122],[-72.87388599999997,66.931930999999963],[-72.852492999999981,66.968597000000102],[-72.837783999999999,66.998031999999967],[-72.831389999999885,67.013321000000076],[-72.831115999999952,67.018326000000116],[-72.828063999999927,67.024994000000049],[-72.824172999999973,67.029434000000094],[-72.806655999999919,67.037201000000039],[-72.791671999999949,67.043320000000051],[-72.738891999999908,67.063034000000016],[-72.716659999999933,67.06860400000005],[-72.68499799999995,67.076096000000007],[-72.626099000000011,67.084717000000126],[-72.550827000000027,67.082763999999997],[-72.525832999999977,67.083328000000108],[-72.464172000000019,67.08998100000008],[-72.43110699999994,67.096099999999922],[-72.399445000000014,67.103592000000049],[-72.368606999999997,67.112487999999985],[-72.351394999999968,67.119705000000124],[-72.337783999999999,67.126373000000058],[-72.315552000000025,67.139435000000105],[-72.282501000000025,67.161102000000142],[-72.276108000000022,67.166930999999977],[-72.258346999999901,67.24803199999991],[-72.28694200000001,67.290817000000061],[-72.363616999999977,67.353317000000004],[-72.436385999999914,67.472214000000122],[-72.481110000000001,67.609711000000004],[-72.48582499999992,67.623031999999967],[-72.490829000000019,67.62831100000011],[-72.49749799999995,67.633040999999935],[-72.508895999999993,67.63638300000008],[-72.597778000000005,67.639709000000096],[-72.666396999999961,67.684143000000063],[-72.676391999999964,67.693862999999965],[-72.677779999999984,67.699416999999983],[-72.675002999999947,67.70526099999995],[-72.668883999999935,67.710541000000035],[-72.661666999999909,67.714706000000035],[-72.613892000000021,67.735259999999982],[-72.596953999999926,67.740814],[-72.591948999999886,67.74331699999999],[-72.583327999999881,67.750274999999988],[-72.608886999999982,67.785812000000078],[-72.612503000000004,67.790268000000026],[-72.619445999999925,67.794708000000014],[-72.735001000000011,67.841659999999933],[-72.820007000000032,67.851089000000115],[-72.833327999999995,67.849991000000045],[-72.843886999999938,67.850815000000011],[-72.848052999999936,67.853592000000106],[-72.942215000000033,67.925262000000089],[-72.944442999999978,67.928040000000067],[-72.944992000000013,67.93081699999999],[-72.94387799999987,67.937759000000085],[-72.942490000000021,67.941085999999984],[-72.929992999999968,67.948867999999948],[-72.922774999999945,67.952774000000034],[-72.904175000000009,67.959717000000012],[-72.902495999999928,67.963882000000012],[-72.896117999999944,68.014160000000004],[-72.910552999999993,68.054153000000042],[-72.913895000000025,68.060806000000014],[-72.941100999999946,68.078323000000069],[-72.956954999999994,68.094986000000119],[-72.981110000000001,68.139160000000061],[-72.992767000000015,68.198593000000074],[-72.993880999999988,68.212204000000042],[-73.161117999999988,68.228866999999923],[-73.190276999999924,68.248871000000065],[-73.189437999999996,68.254715000000033],[-73.189986999999917,68.259430000000066],[-73.194716999999969,68.26527400000009],[-73.200835999999981,68.269714000000135],[-73.215560999999923,68.272766000000047],[-73.271117999999888,68.281936999999971],[-73.303328999999962,68.278434999999945],[-73.314499000000012,68.278434999999945],[-73.336670000000026,68.275604000000044],[-73.355186000000003,68.267830000000004],[-73.395554000000004,68.258605999999929],[-73.496108999999933,68.275542999999971],[-73.410004000000015,68.310806000000127],[-73.39916999999997,68.314987000000031],[-73.354674999999929,68.329215999999974]],[[-124.43055699999996,73.878586000000098],[-124.45028699999995,73.878586000000098],[-124.46721600000001,73.8808140000001],[-124.515289,73.89498900000001],[-124.53666699999991,73.902480999999909],[-124.54611199999999,73.906647000000021],[-124.55055199999998,73.912201000000039],[-124.55277999999993,73.916931000000034],[-124.53056299999997,73.917480000000012],[-124.5133439999999,73.916656000000046],[-124.43250299999994,73.912766000000033],[-124.42027300000001,73.90914900000007],[-124.41583300000002,73.90498400000007],[-124.40888999999993,73.900269000000037],[-124.40943899999996,73.893326000000059],[-124.42027300000001,73.882476999999994],[-124.43055699999996,73.878586000000098]],[[-99.804557999999929,73.889099000000101],[-99.732773000000009,73.849991000000102],[-99.71362299999987,73.846375000000023],[-99.589721999999881,73.837769000000094],[-99.531386999999938,73.831940000000088],[-99.493880999999988,73.825821000000076],[-99.480285999999978,73.821930000000009],[-99.235000999999897,73.737761999999918],[-99.115004999999996,73.74859600000002],[-98.97193900000002,73.750548999999921],[-98.829177999999956,73.751663000000121],[-98.756393000000003,73.75610400000005],[-98.71665999999999,73.766663000000051],[-98.688323999999966,73.772018000000116],[-98.641953000000001,73.777206000000035],[-98.514449999999954,73.787490999999989],[-98.424437999999952,73.793594000000098],[-98.290832999999964,73.801651000000049],[-98.207229999999925,73.80525200000011],[-98.190552000000025,73.803588999999988],[-98.179992999999911,73.804152999999928],[-98.134170999999867,73.809708000000057],[-98.095000999999968,73.815536000000122],[-98.071670999999924,73.819443000000092],[-97.976944000000003,73.84275800000006],[-97.960281000000009,73.846938999999963],[-97.948333999999988,73.851653999999996],[-97.943053999999904,73.856934000000081],[-97.942763999999954,73.862762000000032],[-97.941375999999991,73.868042000000059],[-97.936385999999914,73.87831100000011],[-97.918335000000013,73.890273999999977],[-97.90834000000001,73.894714000000135],[-97.887512000000015,73.899428999999998],[-97.805267000000015,73.911102000000028],[-97.788054999999986,73.912766000000033],[-97.761948000000018,73.911925999999994],[-97.581954999999937,73.893875000000037],[-97.562774999999988,73.890823000000069],[-97.544723999999917,73.886108000000036],[-97.529175000000009,73.879700000000071],[-97.520844000000011,73.873871000000065],[-97.514175000000023,73.867752000000053],[-97.50028999999995,73.861923000000047],[-97.471389999999985,73.857758000000047],[-97.456954999999994,73.857758000000047],[-97.39973399999991,73.858871000000136],[-97.357772999999952,73.862488000000099],[-97.34584000000001,73.864990000000148],[-97.327498999999989,73.865814000000114],[-97.260284000000013,73.860260000000096],[-97.223617999999931,73.856369000000029],[-96.972504000000015,73.744141000000013],[-96.962218999999891,73.738586000000112],[-96.955841000000021,73.732482999999945],[-96.937209999999993,73.703598000000113],[-96.932770000000005,73.692200000000071],[-96.93472300000002,73.686920000000043],[-96.963897999999972,73.63998399999997],[-96.968613000000005,73.633330999999998],[-96.988891999999964,73.624695000000088],[-97.001953000000015,73.6202550000001],[-97.184998000000007,73.562194999999974],[-97.202498999999932,73.557205000000124],[-97.436110999999926,73.525542999999971],[-97.623885999999857,73.538879000000122],[-97.638061999999934,73.538589000000115],[-97.641112999999962,73.533599999999922],[-97.668335000000013,73.483321999999987],[-97.667496000000028,73.479431000000091],[-97.663054999999929,73.4727630000001],[-97.654723999999931,73.466934000000094],[-97.638335999999981,73.460266000000104],[-97.623321999999973,73.456375000000037],[-97.607223999999974,73.454711999999972],[-97.579453000000001,73.454987000000131],[-97.562774999999988,73.459152000000131],[-97.534163999999976,73.473877000000073],[-97.522232000000031,73.478592000000106],[-97.50389100000001,73.483046999999942],[-97.437209999999993,73.491928000000087],[-97.417220999999984,73.493317000000047],[-97.401947000000007,73.493042000000059],[-97.232223999999917,73.474426000000051],[-97.197219999999959,73.469711000000018],[-97.183059999999955,73.464995999999985],[-97.172225999999966,73.460266000000104],[-97.166106999999954,73.454162999999994],[-97.157226999999921,73.395538000000045],[-97.150283999999999,73.389984000000027],[-97.169448999999986,73.35664399999996],[-97.17193599999996,73.352768000000083],[-97.183883999999921,73.350540000000137],[-97.207503999999972,73.348328000000095],[-97.236937999999896,73.348602000000028],[-97.243057000000022,73.354706000000022],[-97.375548999999921,73.347214000000122],[-97.645003999999858,73.318054000000018],[-97.660278000000005,73.316086000000098],[-97.708617999999944,73.304703000000075],[-97.841384999999889,73.273315000000082],[-97.84445199999999,73.268326000000116],[-97.848052999999936,73.254440000000102],[-97.847778000000005,73.249420000000043],[-97.848617999999988,73.244980000000055],[-97.86250299999989,73.233871000000136],[-97.983611999999994,73.181091000000094],[-98.029175000000009,73.165268000000083],[-98.076674999999966,73.151382000000126],[-98.112503000000004,73.142487000000074],[-98.151672000000019,73.131087999999977],[-98.202788999999996,73.110535000000084],[-98.222777999999948,73.099991000000045],[-98.229996000000028,73.090820000000122],[-98.231383999999878,73.085541000000148],[-98.235001000000011,73.079711999999915],[-98.240829000000019,73.075272000000098],[-98.319457999999997,73.050537000000077],[-98.365829000000019,73.037766000000147],[-98.450287000000003,73.020264000000111],[-98.459166999999923,72.99331699999999],[-98.453613000000018,72.898605000000089],[-98.450561999999991,72.874985000000095],[-98.445830999999998,72.865814000000114],[-98.438598999999954,72.860535000000141],[-98.428054999999915,72.856094000000041],[-98.419998000000021,72.858597000000032],[-98.413329999999974,72.864151000000049],[-98.403335999999967,72.881363000000022],[-98.403335999999967,72.887207000000046],[-98.405838000000017,72.891662999999994],[-98.402221999999995,72.897491000000059],[-98.397780999999952,72.902771000000143],[-98.388061999999991,72.908034999999927],[-98.266402999999855,72.972763000000043],[-98.255004999999926,72.977478000000076],[-98.227218999999877,72.987487999999985],[-98.176940999999999,72.998596000000134],[-97.99499499999996,73.037491000000102],[-97.980559999999969,73.039702999999975],[-97.864166000000012,73.047485000000108],[-97.846953999999982,73.048598999999911],[-97.684433000000013,73.033051000000114],[-97.668335000000013,73.03137200000009],[-97.527495999999985,73.011383000000137],[-97.442489999999964,72.999145999999996],[-97.299728000000016,72.969711000000132],[-97.283324999999991,72.963882000000069],[-97.229720999999984,72.943038999999999],[-97.225006000000008,72.939972000000125],[-97.258056999999951,72.883605999999986],[-97.266402999999968,72.878585999999984],[-97.265288999999996,72.84887700000013],[-97.203613000000018,72.825821000000076],[-97.081679999999949,72.77998400000007],[-97.030288999999982,72.74136400000009],[-97.023055999999997,72.732208000000128],[-97.023055999999997,72.727203000000088],[-97.029723999999987,72.716659999999933],[-97.079453000000001,72.701934999999992],[-97.105834999999956,72.696365000000128],[-97.134444999999914,72.688309000000061],[-97.161117999999988,72.67804000000001],[-97.170546999999885,72.673599000000081],[-97.179442999999992,72.667480000000069],[-97.183059999999955,72.661926000000051],[-97.19027699999998,72.640549000000021],[-97.198333999999932,72.609984999999995],[-97.196655000000021,72.604430999999977],[-97.185271999999998,72.601929000000098],[-97.165557999999919,72.60165400000011],[-97.09056099999998,72.605254999999943],[-97.081008999999938,72.605927000000122],[-97.07028200000002,72.608597000000088],[-97.042770000000019,72.623306000000127],[-97.035827999999981,72.628860000000145],[-97.005568999999866,72.644714000000022],[-96.982223999999974,72.655258000000117],[-96.968886999999938,72.660262999999986],[-96.915558000000033,72.678588999999988],[-96.611938000000009,72.74693300000007],[-96.517501999999922,72.714706000000092],[-96.52194199999991,72.674423000000047],[-96.459731999999917,72.607758000000103],[-96.405272999999966,72.559418000000107],[-96.374709999999993,72.534424000000115],[-96.336945000000014,72.500824000000023],[-96.325561999999991,72.488312000000064],[-96.30221599999993,72.433868000000018],[-96.297501000000011,72.42164600000001],[-96.298339999999939,72.415817000000004],[-96.538605000000018,72.343323000000055],[-96.668335000000013,72.309708000000001],[-96.696945000000028,72.310531999999967],[-96.738892000000021,72.321105999999986],[-96.776397999999972,72.323318000000029],[-96.831389999999999,72.323608000000036],[-96.868332000000009,72.321930000000123],[-96.871932999999956,72.321105999999986],[-96.864440999999943,72.317764000000068],[-96.771118000000001,72.298874000000069],[-96.668883999999878,72.27915999999999],[-96.578339000000028,72.278594999999996],[-96.561110999999983,72.275543000000027],[-96.554169000000002,72.263885000000016],[-96.487212999999883,72.136108000000036],[-96.485001000000011,72.129974000000004],[-96.483062999999959,72.11303700000002],[-96.487503000000004,72.101653999999996],[-96.498336999999935,72.090270999999973],[-96.508346999999958,72.084991000000116],[-96.521117999999944,72.079987000000131],[-96.537216000000001,72.07499700000011],[-96.557220000000029,72.071930000000009],[-96.721663999999919,72.052765000000022],[-96.77305599999994,72.053040000000067],[-96.789444000000003,72.052200000000028],[-96.866942999999992,72.041091999999992],[-96.853881999999999,72.036376999999959],[-96.828888000000006,72.030822999999998],[-96.672501000000011,72.012771999999984],[-96.635009999999966,72.013885000000073],[-96.618057000000022,72.018326000000002],[-96.609160999999915,72.024155000000007],[-96.600554999999986,72.02777100000003],[-96.567779999999971,72.033600000000092],[-96.521117999999944,72.038879000000065],[-96.501953000000015,72.038589000000059],[-96.488601999999958,72.034987999999998],[-96.489990000000034,72.018326000000002],[-96.490829000000019,72.012206999999989],[-96.493056999999965,72.001098999999954],[-96.502228000000002,71.975540000000137],[-96.505843999999968,71.969711000000132],[-96.512786999999889,71.964431999999988],[-96.522506999999962,71.959152000000074],[-96.554442999999935,71.949141999999995],[-96.565552000000025,71.946930000000123],[-96.573897999999986,71.948318000000029],[-96.589447000000007,71.954437000000041],[-96.602782999999988,71.958038000000101],[-96.617492999999911,71.959991000000059],[-96.638335999999981,71.957488999999953],[-96.73332199999993,71.928863999999976],[-96.749160999999958,71.923874000000069],[-96.761947999999961,71.918594000000041],[-96.764450000000011,71.914992999999981],[-96.761397999999929,71.909714000000008],[-96.749725000000012,71.903046000000018],[-96.736389000000031,71.899429000000055],[-96.724166999999966,71.898605000000089],[-96.700835999999924,71.899994000000106],[-96.64527899999996,71.917480000000012],[-96.607223999999974,71.92692599999998],[-96.565552000000025,71.93220500000001],[-96.522781000000009,71.934418000000107],[-96.509170999999924,71.933044000000109],[-96.503890999999953,71.931656000000032],[-96.491668999999888,71.926085999999941],[-96.49110399999995,71.919434000000081],[-96.493056999999965,71.914153999999996],[-96.525832999999977,71.868866000000082],[-96.557769999999948,71.829436999999984],[-96.570846999999901,71.819442999999978],[-96.579726999999934,71.814987000000031],[-96.591949,71.810805999999957],[-96.613327000000027,71.807205000000124],[-96.726668999999958,71.793593999999928],[-96.744720000000029,71.792206000000022],[-96.738051999999982,71.824996999999996],[-96.791381999999942,71.827774000000034],[-96.983611999999994,71.775817999999958],[-97.013061999999991,71.749146000000053],[-97.084166999999923,71.700272000000098],[-97.165008999999941,71.675537000000077],[-97.210006999999962,71.663605000000075],[-97.434433000000013,71.617751999999996],[-97.470550999999944,71.612487999999985],[-97.505004999999983,71.611649],[-97.656386999999938,71.614700000000028],[-97.696655000000021,71.619705000000067],[-97.713332999999977,71.623871000000008],[-97.726395000000025,71.628310999999997],[-97.787215999999944,71.644149999999968],[-97.974715999999944,71.660812000000135],[-97.988051999999982,71.661926000000108],[-98.035277999999948,71.653320000000008],[-98.053329000000019,71.648331000000042],[-98.072784000000013,71.641663000000051],[-98.112777999999935,71.636932000000115],[-98.131103999999937,71.638046000000088],[-98.178878999999938,71.641663000000051],[-98.196654999999907,71.643600000000106],[-98.207503999999972,71.646103000000039],[-98.218063000000029,71.649719000000118],[-98.240829000000019,71.659714000000008],[-98.252791999999886,71.666091999999992],[-98.331116000000009,71.708327999999995],[-98.349166999999909,71.718597000000045],[-98.3558349999999,71.7227630000001],[-98.359725999999966,71.728043000000014],[-98.359436000000017,71.733871000000079],[-98.333327999999995,71.787490999999989],[-98.325561999999934,71.798325000000091],[-98.321395999999936,71.803314000000057],[-98.315276999999924,71.809143000000063],[-98.279174999999952,71.834717000000069],[-98.259170999999924,71.844711000000075],[-98.228881999999999,71.862198000000092],[-98.211944999999957,71.878585999999984],[-98.208617999999944,71.884430000000009],[-98.209166999999979,71.889160000000004],[-98.221938999999963,71.89498900000001],[-98.255279999999971,71.902480999999966],[-98.267226999999991,71.90415999999999],[-98.282776000000013,71.899155000000121],[-98.291381999999999,71.894714000000022],[-98.450561999999991,71.79414399999996],[-98.462508999999955,71.783874999999966],[-98.477782999999931,71.767212000000086],[-98.488892000000021,71.749419999999986],[-98.49749799999995,71.733321999999987],[-98.49749799999995,71.721649000000127],[-98.493880999999988,71.713882000000012],[-98.381377999999984,71.653594999999996],[-98.367492999999911,71.647491000000002],[-98.179992999999911,71.571930000000123],[-98.041381999999885,71.530823000000055],[-98.037506000000008,71.526657],[-98.120543999999995,71.460540999999978],[-98.180831999999953,71.423598999999967],[-98.198043999999982,71.414703000000031],[-98.466110000000015,71.313309000000061],[-98.505568999999923,71.299149000000114],[-98.541381999999942,71.289429000000041],[-98.55471799999998,71.287201000000096],[-98.701675000000023,71.271927000000005],[-98.72084000000001,71.269989000000066],[-98.729720999999927,71.270538000000045],[-98.75111400000003,71.274154999999951],[-98.816390999999953,71.289154000000053],[-98.829453000000001,71.293869000000086],[-98.844726999999978,71.305542000000116],[-98.882216999999969,71.333878000000027],[-98.938323999999852,71.369141000000013],[-98.960281000000009,71.379974000000004],[-98.978881999999999,71.382476999999994],[-98.995543999999995,71.382751000000098],[-99.014724999999942,71.381653000000028],[-99.034438999999963,71.378860000000032],[-99.042770000000019,71.374419999999986],[-99.045546999999942,71.368590999999981],[-99.051392000000021,71.363036999999963],[-99.05972300000002,71.358597000000145],[-99.077498999999989,71.353592000000106],[-99.115829000000019,71.350540000000024],[-99.220839999999896,71.342209000000082],[-99.238051999999982,71.344986000000006],[-99.288054999999872,71.402771000000087],[-99.313323999999966,71.43942300000009],[-99.462783999999942,71.59304800000001],[-99.529723999999987,71.605255],[-99.558608999999876,71.613037000000134],[-99.574172999999973,71.619705000000067],[-99.578888000000006,71.622757000000036],[-99.591675000000009,71.635268999999994],[-99.676392000000021,71.72526600000009],[-99.677779999999927,71.729156000000046],[-99.677215999999987,71.736923000000047],[-99.674437999999896,71.742752000000053],[-99.673049999999989,71.749146000000053],[-99.673889000000031,71.753876000000105],[-99.676392000000021,71.758605999999986],[-99.678328999999962,71.760544000000095],[-99.842223999999987,71.834991000000002],[-99.959166999999979,71.854155999999932],[-99.977218999999991,71.855819999999937],[-100.05110200000001,71.865814],[-100.067497,71.870529000000033],[-100.10193599999997,71.884720000000016],[-100.31471299999993,71.979979999999955],[-100.32195299999989,71.984985000000052],[-100.33222999999998,71.997208000000057],[-100.33583099999993,72.006653000000142],[-100.579453,72.154434000000037],[-100.63445299999995,72.18553200000008],[-100.64417300000002,72.188308999999947],[-100.72000099999997,72.201660000000118],[-100.88527699999997,72.207764000000111],[-100.88999899999988,72.207489000000123],[-100.92388900000003,72.199416999999983],[-100.95140099999992,72.171097000000145],[-100.96777299999997,72.174149000000057],[-101.01334399999996,72.191086000000041],[-101.02084400000001,72.196365000000014],[-101.054169,72.231658999999922],[-101.05555700000002,72.236649],[-101.11776700000001,72.284424000000001],[-101.19444299999998,72.324432000000002],[-101.20861799999994,72.329712000000086],[-101.220551,72.332214000000135],[-101.23889200000002,72.33387799999997],[-101.27667200000002,72.328323000000069],[-101.32528699999995,72.314986999999974],[-101.395554,72.286926000000051],[-101.40416699999997,72.281372000000033],[-101.40972899999986,72.275543000000027],[-101.46945199999999,72.265549000000021],[-101.50917099999998,72.283051000000057],[-101.58556399999998,72.301376000000005],[-101.63474299999996,72.306931000000077],[-101.65638699999994,72.305252000000053],[-101.66416900000002,72.301650999999993],[-101.672234,72.292755000000056],[-101.68499799999989,72.28776600000009],[-101.69444299999986,72.288040000000024],[-101.77694700000001,72.299713000000054],[-101.83056599999992,72.319153000000028],[-101.84472699999992,72.324432000000002],[-101.88834399999996,72.358597000000145],[-101.94167299999987,72.451935000000049],[-101.98131599999999,72.478111000000126],[-102.08033799999993,72.516006000000118],[-102.22222899999991,72.542206000000078],[-102.25862100000001,72.549149000000057],[-102.37721299999998,72.577484000000084],[-102.46584299999995,72.604706000000022],[-102.6219329999999,72.664703000000145],[-102.73638899999992,72.719986000000006],[-102.74166899999989,72.724152000000061],[-102.75583599999993,72.761383000000023],[-102.76471699999996,72.784987999999998],[-102.76306199999999,72.790817000000004],[-102.75306699999999,72.811096000000134],[-102.74944299999999,72.817214999999976],[-102.74305699999996,72.82249500000006],[-102.73500100000001,72.826096000000121],[-102.69860799999992,72.836654999999951],[-102.66361999999992,72.853316999999947],[-102.64666699999992,72.864426000000037],[-102.61277799999993,72.896652000000131],[-102.59722899999991,72.913605000000018],[-102.59361299999995,72.919983000000002],[-102.59166699999997,72.925536999999963],[-102.59306300000003,72.931656000000032],[-102.59416199999998,72.942748999999992],[-102.593887,72.949141999999995],[-102.59166699999997,72.954987000000074],[-102.576683,72.979706000000022],[-102.56304899999998,72.991089000000045],[-102.51306199999993,73.026093000000117],[-102.50110599999994,73.030548000000124],[-102.38806199999999,73.062759000000028],[-102.36805699999996,73.067490000000134],[-102.27610800000002,73.08248900000001],[-102.24694799999997,73.083878000000027],[-102.13722199999989,73.086929000000055],[-102.08444199999985,73.084152000000131],[-102.014183,73.079711999999915],[-101.97083999999995,73.070540999999992],[-101.88417099999992,73.024704000000099],[-101.81777999999991,72.966660000000104],[-101.810272,72.960541000000035],[-101.75527999999997,72.930542000000059],[-101.74109599999991,72.924149000000057],[-101.67527799999999,72.909714000000122],[-101.59528399999994,72.902205999999921],[-101.52166699999998,72.87831100000011],[-101.50974299999996,72.871642999999949],[-101.40444899999989,72.782486000000119],[-101.41332999999997,72.748322000000087],[-101.37249800000001,72.727203000000088],[-101.36665299999999,72.725266000000033],[-101.29750099999995,72.709991000000059],[-101.03333299999997,72.689697000000137],[-100.91583299999996,72.688034000000016],[-100.88221699999991,72.689697000000137],[-100.82778899999994,72.705826000000059],[-100.81945799999994,72.710266000000104],[-100.81220999999994,72.715545999999961],[-100.81194299999999,72.719710999999961],[-100.79833999999994,72.743590999999981],[-100.70722999999998,72.755829000000006],[-100.53307299999994,72.751389000000017],[-100.50917099999992,72.749146000000053],[-100.49833699999994,72.74803200000008],[-100.47582999999997,72.742751999999996],[-100.44803599999995,72.735535000000084],[-100.43443300000001,72.73692299999999],[-100.41221599999994,72.74192800000003],[-100.34973100000002,72.770538000000101],[-100.34084300000001,72.774993999999992],[-100.33168000000001,72.78054800000001],[-100.314438,72.796371000000022],[-100.31555199999997,72.801376000000062],[-100.35077699999994,72.851326000000086],[-100.35160799999994,72.853660999999988],[-100.35711699999996,72.859154000000103],[-100.46916199999998,72.950272000000041],[-100.48638899999992,72.949141999999995],[-100.49889399999995,72.950546000000145],[-100.49973299999999,72.95637499999998],[-100.46305799999993,73.014709000000039],[-100.45194999999995,73.020538000000045],[-100.421944,73.034987999999942],[-100.36776700000001,73.046936000000017],[-100.35637700000001,73.049423000000047],[-100.34221600000001,73.044144000000074],[-100.31667299999992,73.034149000000014],[-100.30943299999996,73.028046000000074],[-100.31555199999997,73.022490999999945],[-100.34306300000003,73.013885000000073],[-100.3577729999999,73.010544000000039],[-100.38137799999998,72.949141999999995],[-100.32899499999991,72.891372999999987],[-100.31732899999992,72.888869999999997],[-100.28527800000001,72.873596000000077],[-100.21721599999995,72.876647999999989],[-100.196663,72.877762000000018],[-100.09638999999993,72.88638300000008],[-100.06722999999994,72.902205999999921],[-100.031387,72.934982000000048],[-100.04750099999995,72.957214000000135],[-100.11277799999999,73.025818000000072],[-100.16972399999992,73.078598000000113],[-100.23222399999997,73.134430000000123],[-100.24445299999996,73.136932000000002],[-100.25446299999999,73.137206999999989],[-100.28888699999993,73.135818000000029],[-100.32362399999994,73.133331000000112],[-100.345551,73.130264000000011],[-100.38249200000001,73.122757000000092],[-100.39138799999995,73.118317000000047],[-100.41443600000002,73.104706000000078],[-100.44275699999997,73.087204000000042],[-100.51862299999993,73.0977630000001],[-100.58667000000003,73.132751000000098],[-100.60193599999997,73.140823000000069],[-100.60777300000001,73.146378000000141],[-100.58612099999999,73.167480000000126],[-100.58000199999987,73.173035000000027],[-100.49082900000002,73.230819999999937],[-100.40666199999987,73.280273000000079],[-100.39778100000001,73.284713999999951],[-100.37832600000002,73.289978000000133],[-100.36110699999995,73.290267999999969],[-100.28138699999994,73.27915999999999],[-100.1347429999999,73.221100000000035],[-100.05332899999996,73.186371000000008],[-100.03751399999999,73.183868000000018],[-100.021118,73.183044000000052],[-100.00418099999996,73.183319000000097],[-99.841110000000015,73.191360000000145],[-99.801666000000012,73.195526000000029],[-99.771666999999979,73.201096000000121],[-99.77027899999996,73.203873000000044],[-99.771666999999979,73.208038000000045],[-99.786391999999921,73.212493999999936],[-99.811934999999949,73.215546000000074],[-99.84944200000001,73.21527100000003],[-99.886123999999995,73.213318000000072],[-99.925827000000027,73.214996000000042],[-99.945267000000001,73.216660000000047],[-99.96444699999995,73.219436999999971],[-100.07749899999999,73.251389000000074],[-100.09500100000002,73.257217000000026],[-100.15915699999994,73.289428999999984],[-100.19943199999994,73.31860400000005],[-100.27223199999992,73.358597000000088],[-100.32362399999994,73.3836060000001],[-100.33332799999994,73.388321000000133],[-100.358047,73.393326000000002],[-100.37389399999995,73.395828000000051],[-100.38417099999987,73.396378000000084],[-100.38806199999993,73.395538000000045],[-100.4058379999999,73.361374000000012],[-100.387787,73.338593000000003],[-100.56166099999996,73.286652000000117],[-100.583618,73.283599999999979],[-100.823059,73.260818000000086],[-100.84056099999992,73.259720000000016],[-100.88945000000001,73.264435000000049],[-100.97749299999998,73.280273000000079],[-101.30499299999991,73.361649000000057],[-101.31276700000001,73.371094000000085],[-101.31139400000001,73.382751000000042],[-101.31054699999999,73.392487000000017],[-101.31139400000001,73.398331000000042],[-101.31723,73.401657000000057],[-101.47055099999994,73.436096000000134],[-101.55832700000002,73.446640000000002],[-101.58084099999996,73.450272000000098],[-101.61665299999993,73.485260000000096],[-101.62138400000003,73.490265000000136],[-101.44055200000003,73.549149000000057],[-101.42748999999992,73.552200000000084],[-101.40083299999992,73.553589000000045],[-101.31582599999996,73.550811999999951],[-101.2808379999999,73.552475000000072],[-101.26888999999994,73.556090999999924],[-101.25974300000001,73.561646000000053],[-101.25527999999997,73.567763999999954],[-101.25222799999995,73.578873000000044],[-101.25306699999993,73.584991000000002],[-101.25110599999994,73.589706000000035],[-101.24194299999994,73.595261000000107],[-101.23082699999998,73.600266000000147],[-101.21721600000001,73.604155999999932],[-101.199432,73.60554500000012],[-100.92639200000002,73.600266000000147],[-100.90943900000002,73.599716000000114],[-100.890289,73.596100000000092],[-100.87748699999997,73.59027100000003],[-100.77084400000001,73.539978000000076],[-100.71749899999992,73.509155000000078],[-100.70667299999997,73.499420000000043],[-100.70221699999996,73.494431000000077],[-100.70140100000003,73.488585999999941],[-100.69721999999996,73.482483000000002],[-100.69110099999995,73.476929000000041],[-100.67278299999998,73.464432000000045],[-100.51834099999996,73.416930999999977],[-100.49973299999999,73.412490999999932],[-100.46472199999988,73.407211000000075],[-100.44444299999992,73.40637200000009],[-100.43055700000002,73.406936999999971],[-100.41722099999998,73.413315000000068],[-100.41500899999994,73.41804500000012],[-100.42971799999998,73.430267000000072],[-100.45500199999998,73.441924999999969],[-100.484734,73.451935000000049],[-100.50279199999989,73.45748900000001],[-100.531387,73.466094999999939],[-100.58389299999993,73.482208000000014],[-100.59221599999995,73.486374000000069],[-100.59861799999999,73.491089000000102],[-100.60611,73.497207999999944],[-100.61000099999995,73.503052000000139],[-100.610817,73.509155000000078],[-100.60804699999994,73.514999000000103],[-100.60388199999994,73.521102999999982],[-100.55915799999997,73.546097000000088],[-100.54387700000001,73.556366000000139],[-100.541382,73.562194999999974],[-100.54277000000002,73.573883000000023],[-100.54998799999993,73.594711000000075],[-100.55166600000001,73.598876999999959],[-100.573624,73.596649000000014],[-100.628601,73.593322999999998],[-100.76750199999998,73.603867000000037],[-100.89167799999996,73.619980000000055],[-100.91139199999998,73.622756999999979],[-100.91194200000001,73.625259000000028],[-100.91139199999998,73.630539000000113],[-100.87943999999999,73.635818000000086],[-100.86472300000003,73.641662999999994],[-100.86110699999995,73.645827999999995],[-100.85360699999995,73.662201000000039],[-100.858047,73.667205999999908],[-100.97444199999995,73.679153000000042],[-100.99194299999999,73.678863999999976],[-101.03333299999997,73.671371000000136],[-101.04695099999998,73.673035000000141],[-101.057503,73.676650999999993],[-101.11833199999995,73.723312000000021],[-101.120003,73.727203000000088],[-101.01390100000003,73.797211000000061],[-100.99749799999989,73.802475000000015],[-100.98222399999997,73.80581699999999],[-100.95973199999997,73.809143000000006],[-100.93804899999998,73.810256999999979],[-100.82861300000002,73.815536000000122],[-100.79527300000001,73.812484999999924],[-100.77583300000003,73.812195000000088],[-100.754997,73.812484999999924],[-100.73416099999997,73.815262000000018],[-100.71444700000001,73.820267000000058],[-100.69915800000001,73.826096000000064],[-100.66416900000002,73.844986000000063],[-100.64835399999993,73.848327999999981],[-100.554169,73.854705999999965],[-100.52999899999998,73.853591999999935],[-100.41777000000002,73.845534999999984],[-100.39555399999995,73.840820000000122],[-100.38945000000001,73.83859300000006],[-100.370003,73.828049000000021],[-100.34999099999993,73.818603999999993],[-100.33612099999993,73.814697000000024],[-100.06304899999998,73.764999000000046],[-99.865828999999962,73.837769000000094],[-99.857773000000009,73.84275800000006],[-99.870109999999954,73.861541999999986],[-99.869109999999921,73.867370999999991],[-99.869780999999932,73.870201000000009],[-99.877105999999912,73.876541000000032],[-99.886771999999951,73.8822100000001],[-99.892440999999963,73.883536999999933],[-99.961944999999957,73.873306000000071],[-99.971663999999976,73.868042000000059],[-99.988051999999925,73.856934000000081],[-99.990829000000019,73.851089000000002],[-99.997498000000007,73.845534999999984],[-100.00834699999996,73.841369999999984],[-100.02639799999997,73.836929000000055],[-100.04943800000001,73.832764000000054],[-100.13667299999997,73.827484000000027],[-100.175003,73.828049000000021],[-100.24944299999993,73.833878000000027],[-100.26139799999993,73.838318000000072],[-100.29972799999996,73.860260000000096],[-100.29695100000004,73.865814000000114],[-100.29222099999993,73.872208000000001],[-100.27860999999996,73.888596000000007],[-100.26583900000003,73.899994000000049],[-100.252792,73.905258000000003],[-100.24305700000002,73.907486000000006],[-100.14306599999992,73.929977000000008],[-100.12721299999993,73.933319000000097],[-100.104446,73.936371000000008],[-100.03751399999999,73.942473999999947],[-99.981109999999944,73.945816000000093],[-99.938599000000011,73.946091000000081],[-99.896956999999986,73.944138000000009],[-99.856109999999887,73.940811000000053],[-99.816100999999946,73.93609600000002],[-99.800827000000027,73.931655999999975],[-99.800551999999925,73.925812000000008],[-99.813323999999966,73.921371000000079],[-99.806220999999937,73.902100000000019],[-99.810058999999967,73.898766000000023],[-99.810889999999972,73.894928000000107],[-99.808227999999986,73.891937000000041],[-99.804557999999929,73.889099000000101]],[[-89.988892000000021,73.988312000000121],[-90.007781999999963,73.984984999999995],[-90.058043999999938,73.992477000000122],[-90.158614999999998,74.001389000000131],[-90.217772999999966,74.004439999999988],[-90.250290000000007,74.00999500000006],[-90.265015000000005,74.014708999999982],[-90.281112999999891,74.02165199999996],[-90.284728999999913,74.024994000000106],[-90.285003999999958,74.029709000000139],[-90.276397999999858,74.038589000000002],[-90.271117999999944,74.043320000000108],[-90.240554999999972,74.053863999999976],[-90.206115999999952,74.057755000000043],[-89.991942999999935,74.066665999999998],[-89.97193900000002,74.064697000000137],[-89.941375999999991,74.057479999999998],[-89.914443999999946,74.047485000000108],[-89.90194699999995,74.03776600000009],[-89.903885000000002,74.03137200000009],[-89.918609999999944,74.010543999999982],[-89.928329000000019,74.005554000000132],[-89.988892000000021,73.988312000000121]],[[-98.918610000000001,73.806091000000094],[-98.96166999999997,73.80525200000011],[-99.104172000000005,73.81442300000009],[-99.140838999999914,73.818054000000132],[-99.36361699999992,73.864426000000037],[-99.381942999999922,73.86914100000007],[-99.429717999999923,73.891662999999937],[-99.437499999999943,73.89694199999991],[-99.43638599999997,73.902206000000092],[-99.429717999999923,73.908035000000098],[-99.422501000000011,73.911102000000028],[-99.406113000000005,73.915267999999912],[-99.282500999999968,73.936919999999986],[-99.223891999999978,73.940262000000075],[-99.092772999999909,73.952209000000039],[-99.020279000000016,73.979706000000022],[-98.938048999999921,73.998596000000134],[-98.801666000000012,74.018051000000128],[-98.66194200000001,74.03137200000009],[-98.575835999999981,74.03137200000009],[-98.532501000000025,74.032211000000018],[-98.491942999999935,74.034148999999957],[-98.425277999999992,74.043869000000029],[-98.3558349999999,74.057479999999998],[-98.275832999999921,74.07388300000008],[-98.255004999999926,74.078598000000113],[-98.230285999999978,74.083327999999938],[-98.170836999999949,74.09248400000007],[-98.039992999999981,74.105820000000051],[-97.994445999999925,74.109421000000111],[-97.806106999999884,74.11943100000002],[-97.758346999999958,74.118590999999981],[-97.737212999999997,74.117477000000008],[-97.703613000000018,74.113876000000118],[-97.690826000000015,74.111374000000069],[-97.653609999999958,74.099991000000045],[-97.64805599999994,74.0977630000001],[-97.642226999999934,74.087204000000042],[-97.637787000000003,74.075546000000031],[-97.638335999999981,74.063873000000001],[-97.649444999999957,74.052474999999959],[-97.656661999999983,74.04693599999996],[-97.673324999999863,74.035537999999974],[-97.717223999999987,74.009720000000016],[-97.728058000000033,74.004166000000055],[-97.763625999999931,73.988312000000121],[-97.823058999999887,73.968597000000102],[-98.124161000000015,73.878586000000098],[-98.145003999999915,73.873596000000077],[-98.168334999999956,73.870818999999983],[-98.392776000000026,73.84526100000005],[-98.478881999999999,73.837494000000106],[-98.777221999999995,73.813599000000124],[-98.918610000000001,73.806091000000094]],[[-92.638061999999877,74.103043000000127],[-92.36860699999994,74.041091999999992],[-92.356948999999986,74.038040000000024],[-92.33444199999991,74.03137200000009],[-92.31138599999997,74.02165199999996],[-92.296951000000035,74.014435000000049],[-92.289444000000003,74.009155000000021],[-92.282775999999956,74.003325999999959],[-92.273620999999991,73.990540000000067],[-92.272781000000009,73.984421000000054],[-92.28195199999999,73.974990999999989],[-92.291107000000011,73.969711000000075],[-92.310546999999929,73.961104999999975],[-92.327788999999939,73.951385000000073],[-92.330001999999979,73.945526000000086],[-92.329726999999991,73.942473999999947],[-92.309433000000013,73.940811000000053],[-92.1324919999999,73.946365000000014],[-92.118606999999997,73.949142000000109],[-92.116652999999985,73.95109599999995],[-92.113327000000027,73.95637499999998],[-92.110000999999897,73.964706000000035],[-92.113051999999982,73.974426000000108],[-92.114440999999999,73.976654000000053],[-92.113051999999982,73.981368999999916],[-92.107773000000009,73.984711000000061],[-92.094161999999983,73.989151000000049],[-91.925551999999982,74.012771999999927],[-91.877212999999983,74.016936999999928],[-91.838332999999977,74.018875000000094],[-91.570847000000015,74.025818000000072],[-91.528335999999911,74.024429000000055],[-91.139998999999932,74.00999500000006],[-91.097504000000015,74.008331000000055],[-91.065001999999993,74.006103999999993],[-91.046951000000035,74.004166000000055],[-90.735549999999932,73.968322999999998],[-90.660003999999958,73.953873000000044],[-90.633056999999951,73.948317999999972],[-90.441375999999934,73.919708000000128],[-90.406661999999983,73.914703000000088],[-90.364440999999999,73.911652000000061],[-90.354720999999984,73.912201000000039],[-90.344955000000027,73.914368000000081],[-90.341674999999952,73.917206000000078],[-90.339721999999938,73.920532000000094],[-90.341110000000015,73.924149000000057],[-90.33555599999994,73.925812000000008],[-90.317779999999971,73.925261999999975],[-90.225006000000008,73.908599999999979],[-90.195830999999998,73.901931999999988],[-90.194442999999922,73.899719000000005],[-90.204178000000013,73.888321000000019],[-90.230285999999978,73.862198000000035],[-90.241942999999992,73.851929000000041],[-90.25140399999998,73.846649000000127],[-90.264450000000011,73.84165999999999],[-90.275283999999942,73.83859300000006],[-90.283066000000019,73.838318000000072],[-90.360000999999954,73.800812000000121],[-90.474716000000001,73.72164900000007],[-90.581389999999999,73.65776100000005],[-90.724715999999944,73.583054000000118],[-90.84973100000002,73.540268000000083],[-90.921386999999925,73.495255000000043],[-90.930283000000031,73.483871000000079],[-90.932219999999973,73.481934000000081],[-91.089172000000019,73.384155000000021],[-91.152221999999995,73.361099000000024],[-91.171386999999982,73.351089000000059],[-91.180557000000022,73.345825000000104],[-91.186385999999914,73.340271000000087],[-91.238602000000014,73.279984000000127],[-91.253066999999874,73.269150000000081],[-91.262222000000008,73.263885000000016],[-91.367767000000015,73.200821000000133],[-91.569457999999997,73.063309000000061],[-91.642776000000026,73.021103000000039],[-91.647506999999962,73.016663000000051],[-91.645003999999972,72.998032000000023],[-91.770844000000011,72.913040000000024],[-91.799727999999959,72.897216999999955],[-91.808333999999888,72.891937000000098],[-91.812774999999988,72.885818000000086],[-91.813048999999921,72.880264000000068],[-91.81138599999997,72.868042000000116],[-91.818893000000003,72.862198000000092],[-91.84973100000002,72.846100000000035],[-92.06610099999989,72.752487000000087],[-92.095839999999896,72.743042000000003],[-92.127486999999917,72.734421000000111],[-92.166396999999961,72.725539999999967],[-92.232223999999974,72.713043000000027],[-92.274718999999891,72.70748900000001],[-92.314437999999996,72.704987000000131],[-92.335280999999952,72.704437000000098],[-92.393340999999907,72.707213999999965],[-92.431106999999997,72.710541000000092],[-92.524719000000005,72.720534999999927],[-92.745269999999891,72.739975000000129],[-92.898346000000004,72.750275000000045],[-93.077498999999875,72.769439999999975],[-93.248885999999914,72.789703000000031],[-93.337783999999999,72.8077550000001],[-93.349166999999852,72.802475000000072],[-93.366652999999985,72.797760000000039],[-93.391952999999944,72.794144000000131],[-93.412216000000001,72.792206000000022],[-93.580001999999922,72.778046000000074],[-93.679992999999911,72.779709000000025],[-93.726104999999905,72.781097000000102],[-93.764450000000011,72.781372000000147],[-93.932769999999948,72.774155000000007],[-94.038604999999961,72.766388000000063],[-94.099166999999966,72.764160000000118],[-94.132492000000013,72.764709000000039],[-94.170546999999942,72.767487000000074],[-94.18249499999996,72.769439999999975],[-94.24610899999999,72.77388000000002],[-94.262786999999889,72.774155000000007],[-94.298049999999989,72.770263999999941],[-94.315552000000025,72.763046000000145],[-94.321944999999971,72.759430000000066],[-94.327498999999989,72.754440000000045],[-94.334441999999967,72.738036999999963],[-94.332779000000016,72.731934000000024],[-94.327498999999989,72.721649000000127],[-94.319457999999997,72.717484000000127],[-94.3125,72.715545999999961],[-94.297501000000011,72.713318000000015],[-94.26916499999993,72.719147000000021],[-94.265288999999939,72.723877000000073],[-94.263901000000033,72.729980000000012],[-94.258346999999958,72.732483000000002],[-94.236388999999917,72.734985000000052],[-94.160278000000005,72.729431000000034],[-94.103606999999897,72.718596999999988],[-94.09333799999996,72.714995999999928],[-94.001403999999923,72.704162999999994],[-93.985000999999954,72.70387299999993],[-93.886672999999973,72.704712000000086],[-93.839447000000007,72.717209000000082],[-93.798339999999996,72.702208999999925],[-93.823058999999887,72.653046000000018],[-93.817229999999938,72.642211999999972],[-93.801665999999955,72.634430000000009],[-93.786117999999931,72.629149999999981],[-93.76945499999988,72.624984999999981],[-93.75778200000002,72.623032000000023],[-93.686660999999901,72.622208000000057],[-93.674438000000009,72.618866000000082],[-93.589721999999995,72.58137499999998],[-93.568619000000012,72.570831000000112],[-93.49888599999997,72.521927000000119],[-93.463333000000034,72.462204000000099],[-93.466110000000015,72.451385000000016],[-93.46945199999999,72.439697000000024],[-93.628052000000025,72.341934000000037],[-93.64527899999996,72.337204000000042],[-93.666397000000018,72.333602999999982],[-93.688323999999909,72.331099999999992],[-93.748610999999983,72.329712000000086],[-93.767226999999991,72.327209000000096],[-93.787216000000001,72.322769000000108],[-93.801392000000021,72.317764000000068],[-93.819732999999928,72.30720500000001],[-93.827498999999989,72.301926000000037],[-93.913329999999974,72.241652999999928],[-93.925277999999935,72.233047000000056],[-94.014175000000023,72.163879000000122],[-94.036666999999852,72.142212000000086],[-94.040282999999988,72.137497000000053],[-94.043610000000001,72.131363000000022],[-94.045546999999885,72.126922999999977],[-94.044723999999974,72.115814000000114],[-94.042220999999927,72.106644000000074],[-94.043883999999935,72.096939000000134],[-94.048339999999939,72.091094999999939],[-94.054717999999923,72.085265999999933],[-94.066665999999941,72.076660000000004],[-94.080840999999964,72.066939999999931],[-94.091675000000009,72.061645999999996],[-94.127685999999926,72.056366000000082],[-94.143341000000021,72.057480000000055],[-94.172500999999954,72.0577550000001],[-94.186660999999958,72.055816999999934],[-94.198883000000023,72.052765000000022],[-94.188720999999987,72.045258000000103],[-94.19505300000003,72.042091000000084],[-94.198387000000025,72.03910100000013],[-94.199546999999995,72.036438000000032],[-94.196053000000006,72.032432999999969],[-94.188384999999982,72.030930000000126],[-94.172042999999917,72.029594000000088],[-94.149886999999921,72.029433999999981],[-94.137382999999886,72.031769000000111],[-94.130554000000018,72.033104000000037],[-94.125214000000028,72.035095000000126],[-94.091385000000002,72.037766000000147],[-94.06082200000003,72.035262999999986],[-94.029723999999931,71.999419999999986],[-94.063048999999921,71.978317000000061],[-94.082229999999981,71.976089000000115],[-94.191719000000035,71.994316000000083],[-94.353881999999942,72.018050999999957],[-94.371933000000013,72.019440000000145],[-94.418059999999912,72.02276599999999],[-94.449721999999952,72.023315000000139],[-94.743880999999931,72.011383000000023],[-94.780288999999982,72.006103999999993],[-94.825561999999991,71.997481999999991],[-94.902221999999881,71.989151000000106],[-95.121932999999956,71.966095000000053],[-95.161117999999931,71.964706000000092],[-95.17582699999997,71.966934000000037],[-95.20777899999996,71.988876000000118],[-95.213333000000034,71.99443100000002],[-95.206664999999987,72.097488000000112],[-95.204453000000001,72.102767999999969],[-95.196654999999964,72.106644000000074],[-95.039444000000003,72.131363000000022],[-94.981673999999998,72.139434999999992],[-94.929717999999923,72.143599999999992],[-94.899993999999992,72.144440000000031],[-94.868057000000022,72.145538000000101],[-94.752228000000002,72.153320000000065],[-94.760833999999932,72.15498400000007],[-94.80610699999994,72.15914900000007],[-94.839171999999905,72.158599999999979],[-94.961394999999982,72.155258000000003],[-95.027495999999985,72.14498900000001],[-95.12110899999999,72.136658000000068],[-95.139998999999932,72.135544000000095],[-95.158889999999985,72.135818000000029],[-95.171111999999937,72.139159999999947],[-95.206664999999987,72.180817000000047],[-95.211670000000026,72.187194999999974],[-95.213622999999984,72.193313999999987],[-95.214721999999938,72.200271999999984],[-95.214721999999938,72.20526099999995],[-95.203887999999893,72.221924000000058],[-95.191375999999991,72.2452550000001],[-95.171111999999937,72.283324999999991],[-95.133330999999885,72.46026599999999],[-95.200287000000003,72.524428999999998],[-95.226394999999968,72.53166200000004],[-95.283065999999906,72.535538000000088],[-95.316100999999946,72.539703000000088],[-95.321395999999993,72.546097000000145],[-95.344451999999933,72.58137499999998],[-95.346664000000033,72.587493999999992],[-95.345551,72.593322999999998],[-95.331679999999949,72.598328000000038],[-95.313323999999966,72.601089000000059],[-95.315826000000015,72.606368999999916],[-95.355559999999969,72.637771999999984],[-95.364440999999886,72.643326000000116],[-95.458617999999944,72.68220500000001],[-95.475554999999986,72.686371000000122],[-95.492766999999901,72.688034000000016],[-95.50556899999998,72.686371000000122],[-95.52555799999999,72.681656000000089],[-95.535827999999924,72.681366000000025],[-95.548614999999927,72.68220500000001],[-95.576110999999969,72.689971999999955],[-95.590560999999923,72.695525999999973],[-95.602218999999934,72.702208999999925],[-95.666106999999897,72.801376000000062],[-95.673614999999984,72.813873000000058],[-95.675551999999982,72.82499700000011],[-95.675277999999935,72.841094999999996],[-95.671936000000017,72.852478000000019],[-95.653885000000002,72.876923000000033],[-95.645844000000011,72.91276600000009],[-95.655563000000029,73.019989000000066],[-95.683318999999983,73.075821000000019],[-95.582503999999972,73.127762000000132],[-95.575012000000015,73.164993000000095],[-95.600540000000024,73.283905000000004],[-95.650832999999977,73.325272000000041],[-95.646666999999979,73.330826000000059],[-95.613616999999977,73.342758000000003],[-95.623610999999983,73.361099000000024],[-95.653610000000015,73.412490999999932],[-95.681670999999994,73.444138000000066],[-95.683884000000035,73.450272000000098],[-95.700287000000003,73.55386400000009],[-95.668364999999937,73.581787000000077],[-95.612563999999963,73.610976999999991],[-95.656059000000027,73.631866000000116],[-95.676085999999998,73.665061999999978],[-95.681945999999982,73.711928999999998],[-95.673049999999989,73.723312000000021],[-95.658889999999985,73.732482999999945],[-95.645844000000011,73.735535000000084],[-95.450835999999981,73.771103000000096],[-95.428329000000019,73.77276599999999],[-95.299727999999959,73.771103000000096],[-95.283614999999941,73.769149999999968],[-95.266402999999912,73.764160000000118],[-95.236938000000009,73.752212999999983],[-95.160278000000005,73.713042999999971],[-95.154723999999987,73.706940000000031],[-95.138335999999924,73.700821000000019],[-95.106948999999986,73.691925000000083],[-95.076401000000033,73.683318999999983],[-95.024170000000026,73.671646000000123],[-94.95666499999993,73.659149000000127],[-94.890563999999927,73.649155000000121],[-94.845550999999944,73.644150000000081],[-94.828613000000018,73.643051000000071],[-94.812209999999993,73.643326000000116],[-94.652221999999995,73.648605000000089],[-94.634170999999924,73.649429000000055],[-94.618056999999908,73.651382000000012],[-94.619155999999975,73.654434000000094],[-94.638061999999991,73.665817000000118],[-94.649445000000014,73.670821999999987],[-94.676392000000021,73.676650999999993],[-94.732773000000009,73.681366000000025],[-94.773055999999997,73.679977000000008],[-94.81471299999987,73.680817000000104],[-94.866104000000007,73.687195000000031],[-94.883330999999998,73.692200000000071],[-95.075561999999877,73.773315000000139],[-95.089172000000019,73.783325000000048],[-95.111937999999952,73.801086000000055],[-95.11610399999995,73.806641000000127],[-95.108046999999999,73.812195000000088],[-95.070847000000015,73.822768999999994],[-95.036666999999909,73.829436999999928],[-95.00556899999998,73.832489000000066],[-94.976668999999958,73.831100000000049],[-94.958054000000004,73.831940000000088],[-94.963332999999977,73.838318000000072],[-94.982497999999964,73.845534999999984],[-95.005004999999983,73.852767999999969],[-95.024445000000014,73.855255000000056],[-95.045546999999942,73.855545000000063],[-95.076675000000023,73.852477999999962],[-95.109160999999972,73.843597000000045],[-95.116393999999957,73.839157],[-95.127212999999927,73.825821000000076],[-95.136123999999938,73.823608000000092],[-95.154174999999952,73.823608000000092],[-95.263061999999991,73.862762000000032],[-95.304169000000002,73.8808140000001],[-95.311385999999914,73.885269000000108],[-95.323333999999932,73.89694199999991],[-95.327788999999882,73.90914900000007],[-95.329726999999991,73.919982999999945],[-95.326110999999969,73.944138000000009],[-95.324721999999952,73.952484000000084],[-95.319167999999877,73.964157000000114],[-95.298339999999996,73.980819999999994],[-95.245270000000005,74.010268999999994],[-95.227782999999988,74.014160000000061],[-95.220001000000025,74.014708999999982],[-95.192489999999964,74.008881000000088],[-95.174438000000009,74.008881000000088],[-95.040833000000021,74.026382000000012],[-94.90695199999999,74.047485000000108],[-94.850280999999995,74.058868000000132],[-94.80610699999994,74.068054000000075],[-94.787506000000008,74.072769000000108],[-94.755279999999914,74.087204000000042],[-94.745833999999945,74.092209000000082],[-94.732223999999974,74.095260999999994],[-94.618332000000009,74.090271000000143],[-94.460281000000009,74.094437000000028],[-94.436934999999949,74.095824999999934],[-94.42721599999993,74.100815000000011],[-94.421111999999994,74.105820000000051],[-94.412780999999995,74.115265000000136],[-94.406112999999948,74.118865999999969],[-94.392226999999991,74.121918000000107],[-94.217498999999975,74.131652999999972],[-94.177779999999927,74.1336060000001],[-94.093063000000029,74.136383000000023],[-93.992492999999911,74.138596000000007],[-93.951950000000011,74.138885000000073],[-93.914169000000015,74.136107999999979],[-93.90194699999995,74.133331000000112],[-93.758346999999958,74.096939000000134],[-93.761397999999986,74.129150000000038],[-93.759445000000028,74.139160000000118],[-93.754456000000005,74.144714000000079],[-93.730835000000013,74.154160000000047],[-93.690551999999968,74.162200999999982],[-93.641112999999962,74.167754999999943],[-93.583617999999888,74.170822000000044],[-93.515015000000005,74.173035000000027],[-93.431670999999994,74.172211000000061],[-93.327498999999989,74.169983000000116],[-93.243880999999988,74.164993000000038],[-93.028885000000002,74.149993999999992],[-92.979445999999996,74.145828000000108],[-92.796386999999982,74.124985000000038],[-92.638061999999877,74.103043000000127]],[[-98.657226999999978,74.29942299999999],[-98.746947999999975,74.298035000000084],[-98.810271999999941,74.298325000000091],[-98.831679999999949,74.299149000000057],[-98.859436000000017,74.301376000000118],[-98.86221299999994,74.302475000000129],[-98.864715999999987,74.304703000000075],[-98.863051999999982,74.307479999999998],[-98.857223999999974,74.311371000000065],[-98.752501999999936,74.334152000000074],[-98.718338000000017,74.336655000000007],[-98.630829000000006,74.34248400000007],[-98.616652999999985,74.341934000000037],[-98.585830999999985,74.338593000000003],[-98.573623999999938,74.334991000000002],[-98.535278000000005,74.328873000000101],[-98.521666999999979,74.324706999999989],[-98.511123999999995,74.318329000000006],[-98.515563999999927,74.314147999999932],[-98.525009000000011,74.31053200000008],[-98.568618999999899,74.304703000000075],[-98.657226999999978,74.29942299999999]],[[-120.14998600000001,74.272491000000059],[-119.86472300000003,74.237762000000032],[-119.84528399999999,74.235809000000074],[-119.79527299999995,74.234420999999998],[-119.72501399999993,74.233871000000136],[-119.60916099999997,74.233321999999987],[-119.63971699999996,74.193039000000113],[-119.65139799999997,74.181655999999919],[-119.67250099999995,74.165817000000004],[-119.69082599999996,74.156936999999971],[-119.70249899999999,74.153046000000074],[-119.72305299999994,74.144714000000079],[-119.79415899999998,74.115265000000136],[-119.80332900000002,74.110535000000084],[-119.82417299999992,74.094711000000132],[-119.833618,74.082763999999997],[-119.83612099999999,74.075821000000019],[-119.83277900000002,74.064147999999989],[-119.82721699999991,74.05914300000012],[-119.77916699999997,74.033875000000023],[-119.76806599999986,74.030273000000079],[-119.74481199999997,74.025513000000046],[-119.72860699999995,74.02915999999999],[-119.72609699999992,74.035812000000078],[-119.72638699999993,74.041931000000091],[-119.73777799999999,74.058029000000147],[-119.650284,74.118590999999981],[-119.51000999999991,74.209152000000017],[-119.50083899999998,74.213882000000012],[-119.48916599999995,74.217483999999956],[-119.46528599999994,74.221100000000035],[-119.44972199999995,74.221924000000001],[-119.25723299999999,74.218323000000112],[-119.18472300000002,74.216933999999924],[-119.16528299999987,74.214995999999985],[-119.14862099999999,74.212204000000099],[-119.137787,74.208603000000039],[-119.12110899999993,74.199707000000103],[-119.11554699999999,74.194977000000051],[-119.10193600000002,74.179428000000144],[-119.09638999999999,74.168319999999994],[-119.09084300000001,74.156936999999971],[-119.07055700000001,74.114700000000084],[-119.06527699999998,74.103317000000061],[-119.07084699999996,74.089980999999966],[-119.08084099999996,74.077773999999977],[-119.08805799999999,74.072769000000108],[-119.10166900000002,74.069716999999969],[-119.11972000000003,74.068054000000075],[-119.14723199999997,74.062195000000031],[-119.15222199999994,74.056091000000038],[-119.18720999999999,73.994141000000127],[-119.18720999999999,73.987762000000089],[-119.16750299999995,73.987198000000149],[-118.98889200000002,73.998032000000023],[-118.97305299999999,74.000274999999988],[-118.96362299999993,74.004990000000021],[-118.80777,74.090546000000131],[-118.80055199999998,74.095824999999934],[-118.79028299999993,74.10775799999999],[-118.78751399999999,74.114700000000084],[-118.79277000000002,74.125809000000004],[-118.79804999999999,74.130814000000044],[-118.80695299999996,74.133880999999974],[-118.82333399999999,74.136383000000023],[-118.83693699999992,74.139435000000105],[-118.84805299999994,74.143326000000002],[-118.86721799999998,74.151382000000069],[-118.88333099999994,74.166382000000056],[-118.88612399999994,74.171921000000054],[-118.88110399999999,74.178040000000067],[-118.84388699999994,74.188309000000118],[-118.72000100000002,74.212768999999923],[-118.67388899999997,74.219986000000063],[-118.60722399999997,74.228317000000118],[-118.50583599999999,74.239974999999959],[-118.17999299999991,74.272217000000126],[-118.12249799999995,74.275818000000015],[-118.10193600000002,74.276382000000126],[-118.031387,74.275269000000094],[-117.97361799999999,74.269150000000025],[-117.91860999999989,74.262207000000046],[-117.62832599999996,74.244980000000055],[-117.51251199999996,74.238585999999998],[-117.43859900000001,74.22943099999992],[-117.422234,74.226929000000041],[-117.37609899999995,74.218323000000112],[-117.28943599999997,74.199707000000103],[-117.15722700000003,74.167754999999943],[-116.82833899999997,74.072495000000004],[-116.78500400000001,74.059708000000001],[-116.735817,74.039703000000145],[-116.62249799999989,73.990814],[-116.52806099999998,73.949706999999989],[-116.441101,73.913605000000018],[-116.34805299999999,73.875534000000016],[-116.33805799999999,73.87164300000012],[-116.32778899999988,73.867752000000053],[-116.31471299999993,73.864426000000037],[-116.29888900000003,73.861649000000114],[-116.20805399999995,73.838318000000072],[-116.05583199999995,73.792755000000113],[-116.00556899999998,73.773315000000139],[-115.97638699999999,73.755554000000018],[-115.91443599999997,73.726379000000122],[-115.89444699999996,73.718596999999988],[-115.817497,73.698318000000029],[-115.603882,73.652205999999978],[-115.40222199999999,73.568329000000006],[-115.36694299999999,73.545822000000101],[-115.34889199999998,73.531937000000028],[-115.33194700000001,73.511658000000068],[-115.31500199999999,73.479705999999908],[-115.32305899999994,73.474426000000051],[-115.449432,73.426651000000049],[-115.46140300000002,73.42303499999997],[-115.69943199999989,73.368866000000139],[-115.83473199999997,73.33998100000008],[-115.862213,73.334427000000119],[-116.26750199999998,73.273041000000148],[-116.33556399999998,73.267211999999915],[-116.37249800000001,73.265549000000021],[-116.42500299999995,73.261658000000125],[-116.45612299999993,73.257492000000013],[-116.46945199999999,73.254715000000147],[-116.69304699999992,73.203873000000044],[-116.80943299999996,73.168045000000006],[-116.94803599999995,73.124985000000038],[-117.02639799999997,73.106934000000024],[-117.16915899999998,73.081940000000088],[-117.39388999999994,73.048598999999911],[-117.42639200000002,73.044983000000059],[-117.46610999999996,73.03637700000013],[-117.708054,72.977768000000083],[-117.83667000000003,72.938583000000108],[-117.891953,72.919983000000002],[-117.925003,72.908875000000023],[-117.97501399999993,72.896378000000027],[-118.01611300000002,72.888321000000019],[-118.11527999999993,72.870818999999983],[-118.21806300000003,72.854705999999965],[-118.27362099999999,72.844436999999914],[-118.314438,72.836104999999918],[-118.36609599999997,72.824432000000115],[-118.38999899999993,72.817764000000125],[-118.44444299999998,72.798874000000012],[-118.45333900000003,72.794434000000138],[-118.46000700000002,72.78915400000011],[-118.46472199999994,72.783325000000104],[-118.48528299999992,72.767487000000074],[-118.49610899999999,72.763610999999969],[-118.53472899999991,72.754715000000033],[-118.54943799999995,72.752487000000087],[-118.58528100000001,72.750275000000045],[-118.65805099999994,72.74803200000008],[-118.70861799999994,72.743590999999981],[-118.75306699999999,72.73692299999999],[-118.77861000000001,72.731093999999985],[-119.11444099999994,72.639435000000049],[-119.1375119999999,72.632477000000051],[-119.15888999999999,72.624984999999981],[-119.16750299999995,72.620529000000033],[-119.30943300000001,72.438873000000058],[-119.3163909999999,72.425812000000121],[-119.33000199999987,72.394149999999968],[-119.33249699999999,72.387206999999989],[-119.33000199999987,72.381653000000142],[-119.32501200000002,72.376648000000102],[-119.30999800000001,72.368042000000003],[-119.30277999999993,72.363037000000134],[-119.30248999999998,72.356644000000017],[-119.31111099999993,72.352203000000088],[-119.40444899999994,72.325545999999974],[-119.429169,72.319716999999969],[-119.51555599999989,72.305817000000104],[-119.62666300000001,72.278320000000122],[-119.65750099999991,72.267211999999972],[-119.67804699999999,72.259430000000009],[-119.760559,72.228867000000037],[-119.80139200000002,72.22137500000008],[-119.837784,72.219711000000075],[-119.97250399999996,72.221100000000092],[-120.12372599999998,72.232597000000112],[-120.13405599999999,72.233756999999969],[-120.13871799999998,72.236420000000066],[-120.13621499999994,72.239929000000132],[-120.12888299999992,72.241928000000144],[-120.14362299999993,72.2494200000001],[-120.12943999999999,72.251663000000065],[-120.12721299999993,72.258606000000043],[-120.12999000000002,72.264160000000061],[-120.13999899999993,72.267761000000064],[-120.15750099999997,72.269714000000022],[-120.17582699999997,72.268875000000094],[-120.24109599999997,72.26249700000011],[-120.25110599999999,72.258606000000043],[-120.25945299999995,72.246643000000006],[-120.26139799999987,72.239700000000028],[-120.25862099999995,72.23414600000001],[-120.23144500000001,72.214812999999992],[-120.225281,72.212479000000144],[-120.21028899999999,72.20881700000001],[-120.19810499999994,72.204322999999988],[-120.18894999999998,72.199150000000088],[-120.18578299999996,72.196151999999984],[-120.14527900000002,72.149994000000049],[-120.14499699999993,72.143599999999992],[-120.17582699999997,72.094437000000084],[-120.19415299999997,72.078323000000125],[-120.30526699999996,72.013046000000088],[-120.329453,71.999146000000053],[-120.34750399999996,71.990814000000057],[-120.38362100000001,71.981658999999979],[-120.41332999999986,71.971374999999966],[-120.423317,71.96748400000007],[-120.43916299999989,71.958328000000108],[-120.445267,71.953048999999965],[-120.4491579999999,71.946930000000123],[-120.45278899999994,71.934707999999944],[-120.45249899999993,71.927765000000136],[-120.44972200000001,71.922210999999947],[-120.439438,71.912201000000039],[-120.43167099999994,71.908034999999984],[-120.391953,71.893051000000071],[-120.38445300000001,71.888885000000016],[-120.37917299999998,71.883881000000031],[-120.38082900000001,71.87831099999994],[-120.41500899999994,71.776382000000126],[-120.42278299999998,71.764160000000118],[-120.42471299999994,71.757216999999969],[-120.42639199999996,71.74443100000002],[-120.423607,71.738875999999948],[-120.41332999999986,71.72886699999998],[-120.40805099999994,71.723877000000073],[-120.40055799999993,71.719437000000084],[-120.37998999999996,71.699707000000046],[-120.37748699999992,71.694138000000066],[-120.37693799999994,71.688034000000073],[-120.38082900000001,71.681931000000077],[-120.43611099999998,71.611922999999933],[-120.47305299999999,71.565536000000066],[-120.49665799999997,71.544144000000017],[-120.54332699999992,71.516662999999994],[-120.60166900000002,71.493591000000038],[-120.63639799999999,71.485535000000141],[-120.78028899999998,71.457214000000079],[-120.80750299999988,71.452484000000027],[-120.87721299999998,71.441360000000145],[-120.921944,71.435532000000023],[-121.13333099999994,71.409424000000058],[-121.33249699999993,71.386932000000002],[-121.39444700000001,71.380264000000011],[-121.42916899999994,71.378311000000053],[-121.44833399999999,71.379425000000026],[-121.59056099999998,71.396378000000141],[-121.60305799999998,71.399428999999998],[-121.59137699999991,71.402771000000087],[-121.57611099999997,71.404434000000037],[-121.54915599999993,71.40914900000007],[-121.53751399999999,71.412490999999989],[-121.53195199999993,71.417755],[-121.52861000000001,71.423874000000012],[-121.531677,71.429427999999973],[-121.53694200000001,71.434418000000051],[-121.54998799999993,71.443588000000091],[-121.56973299999999,71.451660000000061],[-121.59638999999999,71.456940000000145],[-121.63027999999991,71.460540999999978],[-121.66860999999994,71.46276899999998],[-121.70361300000002,71.460815000000139],[-121.74388099999999,71.453323000000012],[-121.75556899999998,71.450271999999984],[-121.77639799999997,71.443038999999942],[-121.81220999999994,71.426651000000106],[-121.82917800000001,71.418319999999994],[-121.84612299999998,71.409714000000065],[-121.90194700000001,71.378586000000098],[-121.96528599999999,71.34275800000006],[-122.07501199999996,71.286926000000051],[-122.12165799999991,71.267211999999972],[-122.14417300000002,71.260817999999915],[-122.21056399999986,71.24832200000003],[-122.25446299999999,71.242477000000122],[-122.29833999999994,71.236374000000012],[-122.35526999999996,71.227768000000083],[-122.43028299999997,71.214157000000114],[-122.50556899999992,71.197754000000032],[-122.593887,71.178040000000124],[-122.60500299999995,71.174988000000042],[-122.61638600000003,71.171646000000067],[-122.64584400000001,71.160538000000088],[-122.66221599999994,71.151931999999988],[-122.67832900000002,71.143326000000059],[-122.7069469999999,71.124420000000043],[-122.74249299999997,71.101089000000002],[-122.76999699999988,71.089157000000057],[-122.781113,71.086104999999918],[-122.79611199999988,71.084152000000017],[-122.84944199999995,71.0816650000001],[-123.07611099999986,71.079163000000051],[-123.09500099999997,71.079987000000017],[-123.1260989999999,71.083878000000084],[-123.162781,71.092758000000117],[-123.22332799999998,71.114150999999993],[-123.25945300000001,71.129700000000128],[-123.29305999999985,71.146102999999982],[-123.31696299999999,71.158599999999979],[-123.37027,71.188873000000115],[-123.3952789999999,71.207763999999941],[-123.42999299999997,71.236923000000104],[-123.44860799999998,71.257767000000115],[-123.46640000000002,71.285537999999974],[-123.51390099999998,71.349152000000061],[-123.56696299999993,71.406096999999932],[-123.63417099999992,71.472487999999942],[-123.66583299999996,71.496368000000132],[-123.67971799999998,71.505264000000068],[-123.84388699999994,71.583328000000108],[-123.88722200000001,71.623595999999964],[-123.89917000000003,71.633041000000048],[-123.94888299999997,71.658325000000048],[-123.97582999999997,71.670258000000103],[-124.01334400000002,71.685806000000071],[-124.02390300000002,71.689148000000046],[-124.07055700000001,71.701935000000049],[-124.11138900000003,71.709991000000116],[-124.13694800000002,71.714432000000045],[-124.38474299999996,71.75471500000009],[-124.458054,71.76638800000012],[-124.609734,71.788040000000137],[-124.65278599999994,71.79525799999999],[-124.67887899999999,71.800812000000121],[-124.700287,71.806366000000139],[-124.83194700000001,71.840820000000008],[-124.86665299999993,71.85054000000008],[-125.07694999999995,71.909149000000127],[-125.16000400000001,71.924683000000073],[-125.23638900000003,71.941910000000064],[-125.24722300000002,71.945511000000124],[-125.25361599999997,71.950255999999968],[-125.24472000000003,71.954422000000079],[-125.04804999999999,71.955536000000052],[-124.98029300000002,71.943587999999977],[-124.96945199999999,71.939972000000125],[-124.95388800000001,71.938034000000016],[-124.94275699999997,71.939972000000125],[-124.93804899999998,71.945525999999916],[-124.93554699999999,71.951659999999947],[-124.93971299999998,71.956940000000031],[-124.94833399999999,71.961105000000032],[-124.98777799999999,71.969711000000132],[-125.02278100000001,71.972504000000129],[-125.23277300000001,71.975524999999948],[-125.35221899999999,71.97468600000002],[-125.41639700000002,71.974135999999987],[-125.47833300000002,71.972763000000043],[-125.59111000000001,71.966385000000116],[-125.62666299999995,71.963608000000022],[-125.68639399999995,71.954987000000074],[-125.72165699999994,71.952209000000096],[-125.76139799999993,71.950821000000019],[-125.80139199999996,71.952209000000096],[-125.93582199999992,71.958602999999982],[-125.97361799999999,71.960541000000092],[-125.984444,71.963882000000126],[-125.99333200000001,71.96804800000001],[-125.997772,71.973602000000028],[-125.99333200000001,71.978867000000093],[-125.97778299999999,71.979706000000022],[-125.966949,71.976379000000122],[-125.90055799999999,71.962494000000049],[-125.88054699999992,71.963318000000015],[-125.84973099999991,71.967209000000082],[-125.80999799999995,71.975540000000137],[-125.787781,71.982208000000128],[-125.77887699999991,71.986374000000012],[-125.765289,71.996094000000085],[-125.75418100000002,72.006103999999993],[-125.74082899999996,72.022751000000028],[-125.73388699999998,72.034133999999995],[-125.724716,72.051926000000094],[-125.71777299999985,72.070540999999992],[-125.71528599999994,72.083603000000039],[-125.71528599999994,72.090270999999973],[-125.71749899999992,72.096375000000023],[-125.72165699999994,72.101929000000041],[-125.72833299999996,72.106644000000074],[-125.73944099999989,72.110260000000096],[-125.71444700000001,72.157485999999949],[-125.57389799999993,72.247467000000142],[-125.51445000000001,72.291076999999973],[-125.46777299999997,72.351074000000096],[-125.43221999999997,72.403580000000034],[-125.43666099999996,72.409134000000051],[-125.30055199999993,72.483307000000025],[-125.29110699999995,72.487183000000073],[-125.27971600000001,72.490524000000107],[-125.25787399999996,72.495125000000144],[-125.247772,72.49523899999997],[-125.17194399999994,72.513596000000064],[-125.1394499999999,72.524138999999991],[-125.02806099999998,72.566071000000079],[-125,72.605254999999943],[-124.94055199999997,72.70248400000014],[-124.97193899999991,72.755829000000006],[-125.02610800000002,72.821091000000081],[-124.95916699999998,72.856369000000086],[-124.89334100000002,72.873871000000122],[-124.87917299999998,72.876373000000001],[-124.801941,72.887497000000053],[-124.76695299999994,72.890823000000125],[-124.72749299999987,72.888596000000064],[-124.68804899999986,72.887497000000053],[-124.66944899999993,72.888884999999959],[-124.63667299999997,72.892761000000064],[-124.60611,72.897216999999955],[-124.591949,72.899994000000049],[-124.49722300000002,72.919707999999957],[-124.48554999999999,72.923035000000084],[-124.47582999999997,72.927200000000084],[-124.47305299999999,72.933318999999926],[-124.49305700000002,72.97164900000007],[-124.49722300000002,72.977203000000031],[-124.62138399999992,73.001389000000131],[-124.71250899999995,73.003876000000048],[-124.72609699999998,73.006653000000142],[-124.73777799999999,73.010268999999994],[-124.76972999999992,73.021378000000084],[-124.82417299999992,73.046097000000032],[-124.83332799999994,73.050262000000032],[-124.84916699999997,73.059417999999994],[-124.862503,73.068878000000041],[-124.86694299999994,73.074432000000058],[-124.86888099999999,73.080551000000071],[-124.86389200000002,73.086105000000089],[-124.79472399999992,73.134720000000129],[-124.78500400000001,73.13888500000013],[-124.71362299999987,73.149428999999998],[-124.59916699999985,73.227768000000026],[-124.58640299999996,73.238037000000077],[-124.57389799999993,73.248321999999973],[-124.56360599999988,73.259155000000135],[-124.50805699999995,73.32638500000013],[-124.44583099999994,73.411102000000142],[-124.44055199999997,73.416655999999932],[-124.43306000000001,73.421370999999965],[-124.40556299999997,73.434143000000006],[-124.30555699999991,73.478592000000106],[-124.29332699999998,73.481659000000036],[-124.252228,73.483596999999975],[-124.22833300000002,73.483321999999987],[-124.20916699999998,73.481659000000036],[-124.18998699999997,73.481659000000036],[-124.17304999999999,73.483596999999975],[-124.16055299999999,73.486923000000047],[-124.07000699999998,73.546097000000088],[-124.041946,73.582214000000079],[-124.03888699999993,73.586929000000112],[-124.07167099999998,73.61775200000011],[-124.0786129999999,73.622756999999979],[-124.07611099999991,73.643051000000071],[-124.073059,73.649155000000121],[-124.06777999999991,73.654709000000139],[-124.05526700000001,73.658034999999984],[-123.94554099999993,73.681656000000032],[-123.86138899999997,73.695815999999979],[-123.83389299999999,73.700272000000041],[-123.774719,73.764435000000105],[-123.80471799999987,73.796936000000017],[-123.83833300000003,73.821106000000043],[-123.84777800000001,73.825271999999927],[-123.93639399999995,73.840546000000018],[-123.95834399999995,73.841369999999984],[-123.98055999999991,73.840820000000122],[-124.01999699999999,73.838318000000072],[-124.06639100000001,73.839432000000045],[-124.08583099999998,73.841094999999996],[-124.13417099999992,73.848327999999981],[-124.16306299999985,73.854156000000103],[-124.19860799999992,73.864699999999971],[-124.21749899999986,73.872757000000092],[-124.36860699999988,74.014435000000049],[-124.41166699999991,74.056366000000025],[-124.42666600000001,74.109711000000118],[-124.43415800000002,74.134430000000066],[-124.600281,74.268326000000059],[-124.61805699999996,74.26638800000012],[-124.66082799999992,74.264708999999925],[-124.68083200000001,74.266098000000113],[-124.69304699999986,74.269440000000031],[-124.77500900000001,74.319152999999972],[-124.78415699999999,74.329987000000074],[-124.781387,74.336104999999975],[-124.77084400000001,74.340271000000087],[-124.75556899999992,74.342758000000003],[-124.69722000000002,74.347214000000065],[-124.40471600000001,74.369141000000127],[-124.10861199999999,74.392761000000121],[-123.89527899999996,74.396378000000084],[-123.85694899999987,74.399429000000112],[-123.676941,74.418320000000108],[-123.63834399999996,74.421371000000136],[-123.57444800000002,74.424149000000114],[-123.41887700000001,74.428314000000114],[-123.20584100000002,74.443039000000056],[-123.02250700000002,74.444702000000007],[-122.68998699999992,74.453872999999987],[-122.43804899999998,74.464995999999928],[-122.33750900000001,74.471099999999979],[-122.118607,74.49192800000003],[-122.06610099999995,74.49803200000008],[-121.93859900000001,74.518326000000002],[-121.76666299999999,74.539703000000031],[-121.73000299999995,74.543319999999994],[-121.65194699999995,74.548598999999967],[-121.61028299999992,74.550537000000134],[-121.56416300000001,74.551086000000055],[-121.51862299999993,74.548874000000012],[-121.31082200000003,74.531661999999983],[-121.25361599999997,74.525818000000129],[-121.13612399999994,74.506943000000035],[-121.08389299999993,74.493590999999981],[-121.05777,74.486649000000057],[-121.01112399999988,74.472214000000122],[-121.00222799999995,74.46775800000006],[-120.98998999999998,74.458037999999988],[-120.98055999999991,74.447479000000101],[-120.97693599999991,74.441925000000083],[-120.97556299999991,74.429703000000131],[-120.90638699999994,74.415268000000026],[-120.70584100000002,74.373596000000134],[-120.48166700000002,74.329987000000074],[-120.21721599999989,74.282486000000006],[-120.14998600000001,74.272491000000059]],[[-97.652785999999992,74.455826000000059],[-97.675551999999982,74.454987000000131],[-97.691939999999988,74.455261000000064],[-97.708892999999989,74.457214000000022],[-97.777221999999995,74.476379000000122],[-97.789444000000003,74.479980000000012],[-97.792495999999915,74.485809000000017],[-97.781386999999995,74.497208000000114],[-97.768616000000009,74.508041000000105],[-97.761672999999917,74.512496999999996],[-97.753890999999953,74.515548999999965],[-97.618057000000022,74.552200000000028],[-97.532227000000034,74.606369000000086],[-97.513625999999988,74.611374000000126],[-97.470001000000025,74.621094000000028],[-97.445830999999998,74.626082999999994],[-97.422774999999945,74.629424999999912],[-97.406951999999933,74.62831100000011],[-97.389724999999999,74.626373000000001],[-97.368056999999965,74.622756999999979],[-97.357772999999952,74.621368000000132],[-97.291381999999942,74.605255000000113],[-97.267226999999934,74.597214000000008],[-97.261672999999917,74.594711000000075],[-97.256957999999997,74.590546000000074],[-97.261948000000018,74.583878000000084],[-97.299987999999871,74.551376000000062],[-97.376098999999954,74.511658000000068],[-97.387511999999958,74.506377999999984],[-97.606383999999991,74.461929000000055],[-97.652785999999992,74.455826000000059]],[[-95.311110999999983,74.497757000000092],[-95.331389999999999,74.496093999999971],[-95.353332999999964,74.496368000000075],[-95.458892999999989,74.49859600000002],[-95.480559999999912,74.5],[-95.522781000000009,74.504990000000078],[-95.603057999999919,74.515548999999965],[-95.661666999999966,74.523605000000032],[-95.697768999999937,74.529709000000025],[-95.71665999999999,74.533874999999966],[-95.809432999999956,74.554427999999973],[-95.845000999999968,74.563873000000058],[-95.862212999999997,74.56999200000007],[-95.866394000000014,74.574158000000011],[-95.860549999999989,74.579163000000051],[-95.857497999999964,74.580551000000128],[-95.682495000000017,74.634995000000004],[-95.653885000000002,74.642211999999915],[-95.638061999999991,74.643326000000116],[-95.624161000000015,74.641662999999994],[-95.628601000000003,74.640823000000125],[-95.517501999999922,74.630264000000068],[-95.497498000000007,74.627197000000137],[-95.441101000000003,74.613876000000005],[-95.403609999999958,74.603316999999947],[-95.334441999999967,74.580825999999945],[-95.317779999999971,74.573883000000137],[-95.291945999999939,74.560257000000036],[-95.260283999999956,74.540543000000071],[-95.25111400000003,74.53414900000007],[-95.244995000000017,74.527771000000087],[-95.246383999999978,74.521652000000074],[-95.25111400000003,74.516098000000056],[-95.259170999999981,74.510544000000095],[-95.271117999999944,74.505554000000018],[-95.289443999999946,74.501389000000017],[-95.311110999999983,74.497757000000092]],[[-97.175827000000027,75.24414100000007],[-97.194442999999978,75.242752000000053],[-97.216110000000015,75.24470500000001],[-97.225006000000008,75.24803199999991],[-97.231948999999929,75.254440000000045],[-97.27806099999998,75.343597000000102],[-97.275283999999999,75.347487999999998],[-97.258056999999951,75.349426000000108],[-97.208617999999944,75.342209000000025],[-97.190551999999968,75.33526599999999],[-97.161666999999852,75.322220000000073],[-97.153060999999923,75.315262000000075],[-97.148894999999925,75.297760000000039],[-97.146956999999986,75.27998400000007],[-97.147507000000019,75.273880000000077],[-97.155838000000017,75.255264000000011],[-97.161666999999852,75.250000000000057],[-97.175827000000027,75.24414100000007]],[[-103.9175029999999,75.054977000000008],[-104.22917199999995,75.018051000000071],[-104.261124,75.018326000000116],[-104.45944199999991,75.028869999999984],[-104.662216,75.062485000000038],[-104.84722899999991,75.109146000000067],[-104.85722399999992,75.164703000000031],[-104.82000699999998,75.177765000000022],[-104.79998799999998,75.189423000000033],[-104.79305999999997,75.194702000000063],[-104.74472000000003,75.246093999999971],[-104.76862299999999,75.281937000000028],[-104.71083099999993,75.322220000000073],[-104.68222000000003,75.33776899999998],[-104.67360699999995,75.341660000000047],[-104.49722299999996,75.406372000000033],[-104.42804699999994,75.420821999999987],[-104.37777699999998,75.42804000000001],[-104.33000199999992,75.433043999999938],[-104.18222000000003,75.435531999999967],[-104.15177900000003,75.434555000000103],[-104.11416600000001,75.430267000000072],[-103.97112299999998,75.404434000000094],[-103.953056,75.399994000000106],[-103.935272,75.394989000000066],[-103.84805299999999,75.364990000000034],[-103.81054699999993,75.348602000000142],[-103.74166899999994,75.286102000000028],[-103.587219,75.169983000000059],[-103.58306899999997,75.164703000000031],[-103.59028599999999,75.159424000000058],[-103.60888699999992,75.149155000000007],[-103.7302929999999,75.099990999999989],[-103.76390100000003,75.088882000000126],[-103.79943799999995,75.077484000000084],[-103.81777999999997,75.072494999999947],[-103.88999899999999,75.058318999999983],[-103.9175029999999,75.054977000000008]],[[-100.17223399999995,75.601379000000009],[-100.15722700000003,75.589432000000045],[-100.15778399999994,75.584991000000116],[-100.17639200000002,75.57998699999996],[-100.23332199999993,75.569153000000085],[-100.383331,75.553588999999988],[-100.45417800000001,75.546371000000022],[-100.47972099999993,75.545822000000044],[-100.47556299999997,75.549987999999985],[-100.45749699999999,75.554152999999985],[-100.43195299999991,75.55831900000004],[-100.40666199999987,75.561370999999951],[-100.36110699999995,75.565535999999952],[-100.31777999999986,75.573043999999982],[-100.30332900000002,75.577484000000027],[-100.29361,75.584427000000005],[-100.30332900000002,75.58859300000006],[-100.31973299999999,75.590820000000122],[-100.33917199999996,75.591369999999984],[-100.36332699999997,75.59027100000003],[-100.52778599999994,75.577208999999982],[-100.74973299999994,75.558029000000033],[-100.86527999999998,75.547211000000061],[-100.88555899999994,75.545822000000044],[-100.90862300000003,75.546371000000022],[-100.950287,75.549713000000111],[-100.99445300000002,75.554977000000122],[-101.02333099999993,75.559981999999991],[-101.03333299999997,75.563034000000073],[-101.03943600000002,75.567215000000147],[-101.02583299999998,75.570540999999992],[-100.84277299999991,75.586929000000055],[-100.70249899999993,75.588882000000012],[-100.68055699999996,75.589432000000045],[-100.65583800000002,75.59165999999999],[-100.64167800000001,75.596100000000035],[-100.62027,75.606094000000041],[-100.59861799999999,75.610259999999926],[-100.51112399999994,75.61914100000007],[-100.39444700000001,75.623031999999967],[-100.27639799999997,75.623031999999967],[-100.23500099999995,75.623031999999967],[-100.21777299999997,75.621917999999994],[-100.204453,75.617477000000065],[-100.19499200000001,75.613312000000064],[-100.17223399999995,75.601379000000009]],[[-94.363892000000021,75.590820000000122],[-94.326950000000011,75.579711999999972],[-94.243880999999931,75.549713000000111],[-94.205275999999913,75.529709000000025],[-94.010283999999956,75.442200000000071],[-93.989715999999987,75.434982000000105],[-93.839721999999938,75.388046000000031],[-93.742492999999968,75.364426000000094],[-93.499160999999958,75.264709000000096],[-93.487502999999947,75.256653000000028],[-93.493331999999953,75.247207999999944],[-93.529175000000009,75.176376000000062],[-93.488892000000021,75.072494999999947],[-93.434157999999968,74.966385000000002],[-93.406386999999995,74.883605999999986],[-93.458053999999947,74.714996000000099],[-93.462508999999955,74.708602999999925],[-93.467772999999966,74.703048999999965],[-93.484726000000023,74.687759000000142],[-93.49610899999999,74.68193100000002],[-93.530563000000029,74.667755000000056],[-93.563323999999966,74.659424000000115],[-93.691665999999941,74.63998400000014],[-93.717223999999874,74.636932000000058],[-93.741378999999995,74.635543999999982],[-94.040282999999988,74.640823000000125],[-94.249999999999886,74.646378000000027],[-94.388061999999991,74.635269000000108],[-94.471114999999884,74.626648000000046],[-94.511947999999961,74.623306000000071],[-94.547500999999897,74.621368000000132],[-94.643340999999964,74.623596000000077],[-94.687774999999931,74.62831100000011],[-95.024718999999948,74.673035000000084],[-95.080001999999979,74.680817000000047],[-95.085830999999985,74.687195000000031],[-95.076949999999954,74.697479000000044],[-95.072783999999956,74.702209000000096],[-95.104445999999996,74.744141000000127],[-95.266402999999912,74.793319999999937],[-95.283324999999991,74.79803499999997],[-95.298339999999996,74.800262000000032],[-95.403335999999911,74.803863999999976],[-95.434158000000025,74.801376000000005],[-95.457503999999972,74.798324999999977],[-95.479172000000005,74.78804000000008],[-95.483062999999902,74.783325000000048],[-95.482772999999952,74.779433999999981],[-95.475554999999986,74.769989000000066],[-95.462219000000005,74.756653000000142],[-95.547226000000023,74.761107999999979],[-95.625823999999909,74.807480000000055],[-95.705565999999976,74.829987000000131],[-95.740828999999906,74.82388300000008],[-95.771392999999932,74.823608000000092],[-95.864166000000012,74.826096000000064],[-95.959473000000003,74.856369000000029],[-96.002501999999879,74.872757000000092],[-96.006667999999934,74.876923000000147],[-96.077224999999942,74.902771000000087],[-96.135283999999899,74.951096000000121],[-96.141678000000013,74.957214000000079],[-96.136948000000018,74.963043000000084],[-96.124709999999936,74.975815000000068],[-96.094726999999978,74.991364000000033],[-96.070847000000015,75.001938000000052],[-96.056380999999988,75.010268999999937],[-96.055557000000022,75.016097999999943],[-96.060546999999985,75.019440000000088],[-96.07417299999986,75.023605000000089],[-96.083068999999966,75.024429000000055],[-96.142226999999991,75.017761000000064],[-96.147507000000019,75.013611000000083],[-96.200835999999924,74.954712000000029],[-96.203339000000028,74.951660000000061],[-96.20666499999993,74.943038999999999],[-96.203887999999949,74.93691999999993],[-96.205840999999964,74.92025799999999],[-96.209732000000031,74.915543000000127],[-96.221389999999985,74.910263000000043],[-96.247771999999884,74.90554800000001],[-96.268341000000021,74.903870000000097],[-96.31527699999998,74.90248100000008],[-96.337219000000005,74.903595000000053],[-96.357497999999964,74.906647000000021],[-96.373610999999983,74.910263000000043],[-96.387221999999952,74.914703000000088],[-96.396666999999923,74.919708000000128],[-96.40306099999998,74.925812000000121],[-96.386123999999995,74.97387700000013],[-96.357497999999964,74.97137500000008],[-96.341385000000002,74.972487999999998],[-96.328063999999983,74.974701000000096],[-96.320557000000008,74.979430999999977],[-96.318343999999968,74.982208000000071],[-96.322234999999864,75.001389000000074],[-96.331115999999895,75.004715000000147],[-96.476669000000015,75.004440000000102],[-96.500838999999928,75.002777000000037],[-96.523055999999997,74.999145999999939],[-96.533889999999985,74.994705000000067],[-96.55972300000002,74.986098999999967],[-96.580291999999986,74.98414600000001],[-96.599990999999989,74.983322000000044],[-96.614165999999955,74.984984999999938],[-96.616942999999992,74.991088999999988],[-96.604720999999984,75.063309000000004],[-96.571395999999936,75.101089000000115],[-96.463057999999933,75.19331399999993],[-96.456389999999999,75.196930000000009],[-96.378600999999946,75.21665999999999],[-96.077788999999996,75.272491000000059],[-95.948043999999982,75.283325000000104],[-95.922500999999954,75.286102000000028],[-95.903335999999911,75.289978000000076],[-95.910552999999936,75.29525799999999],[-95.934433000000013,75.297211000000118],[-95.978058000000033,75.298874000000012],[-96.026671999999962,75.299149000000057],[-96.049987999999928,75.296936000000073],[-96.061935000000005,75.315262000000075],[-96.003615999999965,75.343047999999953],[-95.932494999999903,75.353043000000071],[-95.934714999999983,75.350173999999981],[-95.93472300000002,75.347762999999986],[-95.919998000000021,75.34693900000002],[-95.890288999999996,75.349152000000004],[-95.887443999999959,75.360268000000133],[-95.83677699999987,75.369926000000021],[-95.830780000000004,75.371429000000035],[-95.829781000000025,75.372589000000119],[-95.83061199999986,75.374428000000023],[-95.832786999999939,75.375923000000114],[-95.848274000000004,75.378432999999973],[-95.906775999999979,75.387428000000057],[-95.927779999999871,75.398041000000148],[-96.033324999999934,75.40109300000006],[-96.055267000000015,75.400818000000072],[-96.078887999999893,75.396103000000039],[-96.079178000000013,75.391098],[-96.083618000000001,75.385543999999982],[-96.099730999999963,75.380264000000125],[-96.126099000000011,75.37692300000009],[-96.151108000000022,75.374984999999924],[-96.175277999999992,75.379424999999969],[-96.178878999999995,75.384430000000009],[-96.161941999999954,75.395537999999988],[-96.14973399999991,75.400818000000072],[-96.135009999999966,75.406372000000033],[-96.095839999999896,75.417755000000056],[-96.0625,75.424988000000099],[-95.974166999999966,75.436096000000077],[-95.958344000000011,75.436371000000065],[-95.93638599999997,75.43414300000012],[-95.874160999999958,75.423874000000069],[-95.831046999999955,75.41531400000008],[-95.832549999999969,75.413651000000129],[-95.83322099999998,75.409988000000112],[-95.831046999999955,75.406982000000085],[-95.825881999999979,75.403320000000122],[-95.814383999999961,75.400322000000074],[-95.769553999999857,75.400322000000074],[-95.691100999999946,75.40525800000006],[-95.682495000000017,75.408324999999991],[-95.676102000000014,75.415817000000118],[-95.678328999999962,75.421920999999998],[-95.68472300000002,75.428314000000114],[-95.691665999999998,75.429703000000131],[-95.715835999999911,75.429153000000099],[-95.734160999999915,75.426085999999998],[-95.758620999999948,75.42553700000002],[-95.781677000000002,75.42804000000001],[-95.800551999999925,75.431656000000032],[-95.825011999999958,75.439972000000125],[-95.830001999999922,75.4433140000001],[-95.836945000000014,75.453598000000113],[-95.83805799999999,75.459152000000074],[-95.835555999999997,75.464431999999988],[-95.832229999999981,75.470535000000098],[-95.824172999999973,75.477767999999912],[-95.800551999999925,75.49136400000009],[-95.762222000000008,75.508041000000048],[-95.749725000000012,75.513321000000133],[-95.470000999999968,75.566939999999988],[-95.275283999999942,75.599426000000051],[-95.264175000000023,75.59387200000009],[-95.234436000000017,75.584717000000012],[-95.212783999999999,75.582489000000066],[-95.178604000000007,75.584427000000005],[-95.12470999999988,75.59526100000005],[-95.104172000000005,75.60026600000009],[-95.093338000000017,75.603591999999992],[-95.085830999999985,75.607208000000014],[-95.084166999999979,75.609146000000123],[-95.075286999999946,75.614426000000037],[-95.063323999999909,75.618866000000025],[-95.044448999999872,75.62164300000012],[-94.917769999999962,75.637207000000046],[-94.901672000000019,75.637497000000053],[-94.741378999999938,75.62414600000011],[-94.559722999999963,75.612488000000099],[-94.511123999999995,75.611099000000081],[-94.46556099999998,75.608321999999987],[-94.404175000000009,75.599152000000117],[-94.363892000000021,75.590820000000122]],[[-95.910003999999901,75.560256999999979],[-95.911117999999988,75.554152999999985],[-95.93472300000002,75.540543000000071],[-96.170837000000006,75.458038000000101],[-96.220276000000013,75.455551000000071],[-96.238892000000021,75.456650000000025],[-96.255004999999983,75.461380000000077],[-96.399170000000026,75.516388000000063],[-96.417220999999984,75.523315000000139],[-96.42471299999994,75.528595000000053],[-96.450995999999975,75.529991000000052],[-96.441161999999963,75.535987999999975],[-96.415832999999907,75.543648000000132],[-96.412659000000019,75.546150000000011],[-96.411666999999909,75.548819999999978],[-96.417992000000027,75.552658000000065],[-96.431167999999957,75.555489000000023],[-96.441832999999974,75.555664000000093],[-96.450995999999975,75.553154000000063],[-96.503837999999917,75.535156000000029],[-96.507995999999935,75.532982000000118],[-96.518165999999951,75.526320999999996],[-96.525161999999909,75.519325000000038],[-96.553603999999893,75.508880999999917],[-96.552215999999987,75.503326000000015],[-96.549437999999896,75.497208000000114],[-96.545546999999999,75.492203000000075],[-96.541107000000011,75.488037000000134],[-96.533324999999934,75.48275799999999],[-96.517501999999922,75.478043000000127],[-96.503341999999975,75.471374999999966],[-96.500564999999995,75.464996000000099],[-96.50418099999996,75.460266000000104],[-96.511948000000018,75.455826000000059],[-96.65834000000001,75.388596000000064],[-96.833617999999944,75.352478000000019],[-96.851104999999905,75.350266000000147],[-96.862212999999997,75.350815000000125],[-96.876098999999954,75.353591999999992],[-96.93249499999996,75.376082999999994],[-97.030838000000017,75.454437000000041],[-97.053054999999915,75.492203000000075],[-97.053054999999915,75.497208000000114],[-97.006957999999941,75.508331000000112],[-96.940825999999959,75.521652000000017],[-96.913619999999923,75.526382000000069],[-96.891677999999956,75.529160000000047],[-96.666945999999996,75.552765000000022],[-96.469382999999993,75.588425000000029],[-96.466552999999919,75.591933999999924],[-96.467727999999909,75.599091000000044],[-96.470054999999888,75.602264000000048],[-96.422500999999954,75.623596000000077],[-96.424438000000009,75.635544000000095],[-96.415008999999941,75.646941999999967],[-96.396392999999989,75.649994000000049],[-96.379715000000033,75.651093000000003],[-96.347228999999913,75.651382000000126],[-96.335555999999997,75.650818000000015],[-96.314437999999996,75.647766000000104],[-96.241104000000007,75.629974000000061],[-96.133330999999941,75.606644000000074],[-96.115829000000019,75.60386699999998],[-96.101944000000003,75.603591999999992],[-96.025436000000013,75.602844000000061],[-95.95777899999996,75.583603000000039],[-95.938889000000017,75.577484000000027],[-95.923888999999974,75.571655000000021],[-95.916397000000018,75.566375999999991],[-95.910003999999901,75.560256999999979]],[[-96.954453000000001,75.595534999999984],[-96.975005999999894,75.594711000000018],[-96.996658000000025,75.597762999999929],[-97.005004999999983,75.604431000000091],[-97.001953000000015,75.610809000000074],[-96.988601999999958,75.618042000000059],[-96.978607000000011,75.623031999999967],[-96.960830999999985,75.627472000000125],[-96.779449,75.6602630000001],[-96.751952999999958,75.664703000000088],[-96.729720999999984,75.665267999999969],[-96.720551,75.66415399999994],[-96.715835999999967,75.659988000000055],[-96.718886999999995,75.653870000000097],[-96.722305000000006,75.652954000000022],[-96.740279999999927,75.646941999999967],[-96.849166999999966,75.613312000000064],[-96.954453000000001,75.595534999999984]],[[-96.579177999999899,75.736923000000104],[-96.696655000000021,75.730819999999994],[-96.710555999999997,75.733597000000088],[-96.717223999999987,75.739700000000028],[-96.67860399999995,75.777481000000023],[-96.666945999999996,75.786652000000117],[-96.660827999999981,75.789429000000041],[-96.541107000000011,75.822219999999959],[-96.525283999999942,75.826384999999959],[-96.507506999999976,75.828323000000125],[-96.48443599999996,75.827208999999925],[-96.468062999999916,75.822495000000004],[-96.455841000000021,75.817764000000068],[-96.457503999999972,75.801085999999998],[-96.459166999999979,75.789429000000041],[-96.539718999999991,75.74331699999999],[-96.553603999999893,75.738586000000055],[-96.579177999999899,75.736923000000104]],[[-111.79998799999998,75.839157],[-111.823624,75.83859300000006],[-111.86582899999996,75.840545999999961],[-111.900284,75.843596999999988],[-111.91722099999993,75.846939000000134],[-111.92250100000001,75.852767999999969],[-111.91972399999997,75.85775799999999],[-111.90139799999997,75.863876000000118],[-111.85665899999992,75.867751999999996],[-111.79972799999996,75.871093999999971],[-111.61305199999993,75.881927000000132],[-111.59528399999999,75.882751000000098],[-111.58306899999991,75.881927000000132],[-111.5786129999999,75.879974000000004],[-111.58194699999996,75.876083000000108],[-111.59306300000003,75.87303200000008],[-111.62917299999992,75.856934000000024],[-111.64806399999998,75.851928999999984],[-111.75695799999994,75.841659999999933],[-111.79998799999998,75.839157]],[[-122.34084300000001,75.862761999999975],[-122.36277799999999,75.858032000000094],[-122.39862099999993,75.859421000000111],[-122.66471899999993,75.89387499999998],[-122.69167299999998,75.900269000000037],[-122.69360399999999,75.902206000000035],[-122.69554099999993,75.908035000000041],[-122.68277,75.911652000000004],[-122.633331,75.919708000000071],[-122.58222999999998,75.921921000000054],[-122.53751399999993,75.922484999999995],[-122.37917299999992,75.915817000000004],[-122.35305800000003,75.914429000000098],[-122.337784,75.911377000000016],[-122.32833900000003,75.905822999999998],[-122.32417299999997,75.899719000000005],[-122.33473200000003,75.869141000000013],[-122.34084300000001,75.862761999999975]],[[-121.09306299999997,75.726089000000059],[-121.1100009999999,75.724700999999982],[-121.14306599999992,75.725815000000125],[-121.27555799999993,75.747481999999991],[-121.28832999999997,75.752777000000037],[-121.28582799999998,75.758881000000088],[-121.27194199999997,75.770537999999988],[-121.26306199999993,75.774154999999951],[-121.11694299999999,75.795821999999987],[-121.04332699999992,75.808868000000132],[-121.02944899999989,75.811371000000122],[-121.01917299999997,75.818054000000075],[-121.01500699999997,75.824707000000046],[-121.00083899999993,75.856644000000017],[-120.99833699999988,75.867751999999996],[-121.00695799999988,75.879700000000071],[-121.01363399999997,75.884720000000073],[-121.04222099999998,75.894149999999968],[-121.04750099999995,75.899993999999992],[-121.04250299999995,75.90554800000001],[-121.03859699999998,75.908325000000104],[-120.997772,75.926376000000062],[-120.98000300000001,75.929427999999973],[-120.87777699999998,75.936096000000134],[-120.86776700000001,75.924698000000149],[-120.86776700000001,75.913315000000125],[-120.86972000000003,75.881087999999977],[-120.87110899999993,75.87553400000013],[-120.88474300000001,75.844986000000006],[-120.89835399999998,75.825821000000019],[-120.92111199999999,75.803314000000114],[-120.93804899999998,75.790543000000014],[-120.99388099999993,75.757767000000115],[-121.01862299999993,75.744431000000134],[-121.03278399999994,75.737762000000089],[-121.05248999999992,75.732758000000103],[-121.09306299999997,75.726089000000059]],[[-95.792769999999962,75.899719000000005],[-95.809432999999956,75.894714000000135],[-95.818893000000003,75.907211000000075],[-95.825561999999991,75.913315000000125],[-95.847777999999892,75.929427999999973],[-95.862503000000004,75.936096000000134],[-95.882492000000013,75.941086000000041],[-95.896956999999986,75.947753999999975],[-95.899993999999992,75.953873000000044],[-95.890839000000028,75.959427000000005],[-95.860001000000011,75.966660000000047],[-95.796660999999972,75.973312000000078],[-95.770554000000004,75.974991000000102],[-95.746947999999918,75.97387700000013],[-95.73582499999992,75.968323000000112],[-95.736938000000009,75.962494000000106],[-95.751952999999958,75.927475000000072],[-95.761947999999961,75.916092000000049],[-95.779723999999931,75.90498400000007],[-95.792769999999962,75.899719000000005]],[[-94.405563000000029,75.75082400000008],[-94.582778999999903,75.74581900000004],[-94.629165999999998,75.746094000000085],[-94.676102000000014,75.747756999999979],[-94.72084000000001,75.753876000000048],[-94.739440999999999,75.75749200000007],[-94.777495999999928,75.768600000000049],[-94.795272999999952,75.775818000000072],[-94.809157999999968,75.782486000000063],[-94.822234999999978,75.794144000000074],[-94.898894999999925,75.912765999999976],[-94.902785999999992,75.919434000000138],[-94.905272999999966,75.925537000000077],[-94.906112999999948,75.93081699999999],[-94.904449,75.9369200000001],[-94.89527899999996,75.942200000000014],[-94.879989999999964,75.945526000000029],[-94.865554999999972,75.947478999999987],[-94.813613999999973,75.950546000000088],[-94.737777999999992,75.952208999999982],[-94.699722000000008,75.955551000000128],[-94.53832999999986,75.986099000000081],[-94.481948999999929,75.974426000000051],[-94.466948999999886,75.968597000000045],[-94.453338999999914,75.961929000000112],[-94.449721999999952,75.955261000000121],[-94.443603999999993,75.938309000000118],[-94.420272999999952,75.868590999999981],[-94.410277999999948,75.86192299999999],[-94.370833999999945,75.842209000000082],[-94.322234999999978,75.814986999999974],[-94.305557000000022,75.80304000000001],[-94.287780999999939,75.783875000000023],[-94.288054999999986,75.777481000000023],[-94.291381999999999,75.772217000000012],[-94.296950999999979,75.766388000000006],[-94.310271999999941,75.761383000000137],[-94.326400999999976,75.757217000000082],[-94.353881999999942,75.753876000000048],[-94.405563000000029,75.75082400000008]],[[-103.137787,75.74275200000011],[-103.20667300000002,75.74275200000011],[-103.3011019999999,75.744705000000067],[-103.32389799999999,75.747208000000057],[-103.36888099999999,75.753876000000048],[-103.38082899999995,75.759430000000009],[-103.382767,75.765549000000021],[-103.31139399999995,75.805252000000053],[-103.07749899999999,75.890823000000069],[-103.05943300000001,75.896378000000141],[-103.03751399999993,75.901657000000114],[-103.01194799999996,75.906097000000102],[-102.98693800000001,75.909424000000058],[-102.69611399999997,75.946640000000002],[-102.59889199999986,75.953598],[-102.52278099999995,75.958038000000045],[-102.43360899999999,75.964157000000057],[-102.291382,75.977203000000145],[-102.21749899999998,75.985535000000141],[-102.19138299999997,75.989699999999971],[-102.16471899999993,75.99054000000001],[-102.07861300000002,75.97137500000008],[-101.98916599999995,75.950821000000076],[-101.98332199999987,75.945816000000036],[-101.98860200000001,75.934418000000051],[-102.020554,75.925537000000077],[-102.09472700000003,75.911652000000004],[-102.14639299999993,75.903320000000008],[-102.19638099999997,75.899719000000005],[-102.29638699999998,75.894989000000123],[-102.31916799999999,75.893051000000014],[-102.34665699999999,75.889434999999935],[-102.39417299999997,75.880814000000044],[-102.43055699999991,75.869979999999998],[-102.44082600000002,75.86442599999998],[-102.44943199999994,75.85832199999993],[-102.45584099999996,75.852478000000133],[-102.46000699999996,75.847214000000122],[-102.47165699999988,75.818329000000062],[-102.48277300000001,75.806366000000025],[-102.49694799999992,75.79553199999998],[-102.50917099999998,75.789429000000041],[-102.54527300000001,75.779709000000139],[-102.59028599999994,75.770537999999988],[-102.61165599999998,75.767211999999972],[-102.636124,75.764708999999982],[-102.86638599999998,75.753601000000003],[-103.015289,75.747208000000057],[-103.137787,75.74275200000011]],[[-122.81916799999999,76.06053200000008],[-122.78056300000003,76.057205000000124],[-122.68776700000001,76.059982000000048],[-122.66194200000001,76.05693100000002],[-122.64277599999997,76.052475000000129],[-122.63082900000001,76.046646000000123],[-122.72501399999987,76.023605000000089],[-122.88194299999998,76.011108000000092],[-122.89250199999998,76.013611000000026],[-122.89611799999994,76.026931999999988],[-122.89222699999999,76.031096999999988],[-122.85082999999997,76.057205000000124],[-122.81916799999999,76.06053200000008]],[[-102.38999899999993,76.083603000000096],[-102.37554899999998,76.079163000000108],[-102.37138399999998,76.079163000000108],[-102.36805699999996,76.077209000000096],[-102.3563769999999,76.075820999999962],[-102.35333300000002,76.073883000000023],[-102.33889799999997,76.069443000000035],[-102.33249699999999,76.065536000000066],[-102.32167099999998,76.053589000000102],[-102.31639100000001,76.036925999999994],[-102.31889299999989,76.031096999999988],[-102.319458,76.024704000000042],[-102.32972699999993,76.015823000000125],[-102.34388699999994,76.010269000000108],[-102.36582900000002,76.005829000000119],[-102.41665599999999,76.000275000000101],[-102.51722699999993,75.991088999999988],[-102.56777999999991,75.985535000000141],[-102.695267,75.973312000000078],[-102.71472199999988,75.97026100000005],[-102.73972299999997,75.968048000000124],[-102.79055800000003,75.961380000000133],[-102.81139399999995,75.959990999999945],[-102.93611099999998,75.94802900000002],[-103.01027699999997,75.943038999999942],[-103.08528099999995,75.935806000000127],[-103.15695199999993,75.925812000000121],[-103.21888699999994,75.920258000000103],[-103.26500699999997,75.914429000000098],[-103.28943600000002,75.913040000000137],[-103.33944700000001,75.908035000000041],[-103.37998999999996,75.906097000000102],[-103.39639299999993,75.904434000000037],[-103.43305999999995,75.903320000000008],[-103.45333899999997,75.901657000000114],[-103.52443699999998,75.89888000000002],[-103.59277299999997,75.897217000000069],[-103.61332700000003,75.895538000000101],[-103.63474300000001,75.891098000000056],[-103.65556300000003,75.888596000000007],[-103.69972199999989,75.887496999999996],[-103.72332799999987,75.889160000000118],[-103.77111799999994,75.896378000000141],[-103.81166100000002,75.899428999999941],[-103.88806199999993,75.898041000000035],[-103.90194700000001,75.898604999999975],[-103.91471899999993,75.90248100000008],[-103.91500899999994,75.907760999999937],[-103.91722099999993,75.913605000000132],[-103.92555199999998,75.919144000000131],[-103.93611099999998,75.924149],[-103.96472199999999,75.934418000000051],[-103.97165699999994,75.938309000000118],[-103.94220699999994,75.942749000000106],[-103.90194700000001,75.943862999999908],[-103.82556199999999,75.950821000000076],[-103.80248999999998,75.953873000000044],[-103.78527799999995,75.957489000000066],[-103.77139299999988,75.963043000000084],[-103.75834700000001,75.966660000000047],[-103.7083439999999,75.972488000000112],[-103.68776699999989,75.97387700000013],[-103.598343,75.977203000000145],[-103.57444799999996,75.976654000000053],[-103.55471799999998,75.975266000000147],[-103.52250699999991,75.97554000000008],[-103.49694799999997,75.979980000000069],[-103.474716,75.985259999999982],[-103.45694700000001,75.990814000000114],[-103.41306299999997,76.001663000000008],[-103.39138800000001,76.006104000000107],[-103.36582899999996,76.009429999999952],[-103.34028599999988,76.013884999999959],[-103.31500199999999,76.017212000000086],[-103.29028299999999,76.018599999999992],[-103.26363399999997,76.019440000000088],[-103.22138999999993,76.019150000000025],[-103.196663,76.020537999999988],[-103.17887899999999,76.024994000000049],[-103.15666199999993,76.036652000000061],[-103.13667299999992,76.041656000000046],[-103.120003,76.043320000000051],[-103.05110200000001,76.043593999999985],[-103.00639299999995,76.044707999999957],[-102.98110999999989,76.04693600000013],[-102.95556599999998,76.050261999999975],[-102.91555800000003,76.060257000000092],[-102.88971700000002,76.064423000000147],[-102.86833199999995,76.066940000000045],[-102.86028299999992,76.066666000000112],[-102.85582699999992,76.067764000000011],[-102.75666799999993,76.073044000000095],[-102.708618,76.077484000000084],[-102.68138099999999,76.079163000000108],[-102.65805099999994,76.082214000000135],[-102.60777299999995,76.085814999999968],[-102.53138699999994,76.089431999999931],[-102.46806300000003,76.090271000000087],[-102.42804699999999,76.089431999999931],[-102.40416699999997,76.087769000000037],[-102.39639299999999,76.086655000000064],[-102.38999899999993,76.083603000000096]],[[-118.31639100000001,75.57249500000006],[-118.35472099999993,75.558868000000018],[-118.58306900000002,75.499419999999986],[-118.60472099999998,75.496368000000075],[-118.7036129999999,75.503052000000082],[-118.72250400000001,75.504440000000045],[-118.82749899999999,75.532761000000107],[-118.87361099999998,75.547484999999995],[-118.87777699999998,75.553314],[-118.92804699999999,75.562759000000085],[-118.95305599999995,75.564697000000024],[-119.08194700000001,75.567764000000125],[-119.13082900000001,75.566939999999988],[-119.19695299999995,75.562484999999924],[-119.22250400000001,75.565262000000018],[-119.34028599999999,75.579436999999928],[-119.36749299999991,75.58415199999996],[-119.38333099999994,75.589157000000057],[-119.39527899999996,75.594711000000018],[-119.40583800000002,75.600540000000024],[-119.408051,75.605820000000108],[-119.40471600000001,75.611923000000047],[-119.39750700000002,75.618317000000104],[-119.37554899999998,75.631088000000034],[-119.27528399999994,75.674698000000035],[-119.18831599999987,75.702484000000084],[-119.11389200000002,75.720535000000041],[-118.95472699999999,75.778594999999996],[-118.78888699999999,75.843048000000067],[-118.762787,75.856934000000024],[-118.75834699999996,75.862198000000035],[-118.75334199999992,75.866379000000109],[-118.71694899999994,75.882751000000098],[-118.61916399999996,75.915543000000071],[-118.58139,75.924987999999985],[-118.56388899999996,75.928589000000045],[-118.40444899999994,75.960815000000082],[-118.36776699999996,75.966385000000002],[-118.34028599999999,75.967484000000013],[-118.19415300000003,75.967484000000013],[-118.16832699999998,75.968323000000112],[-118.15222199999994,75.97137500000008],[-118.13751200000002,75.979705999999965],[-118.13137799999998,75.985535000000141],[-118.13137799999998,75.991363999999976],[-118.12748699999992,75.997482000000105],[-118.10500299999995,76.023880000000077],[-118.08860800000002,76.029434000000094],[-118.07140400000003,76.034149000000127],[-118.03751399999987,76.038315000000011],[-117.99804699999993,76.039978000000133],[-117.95722999999992,76.043045000000063],[-117.93360899999993,76.047485000000052],[-117.89972699999998,76.057479999999998],[-117.88971699999996,76.060806000000014],[-117.88500999999997,76.066086000000098],[-117.89138799999995,76.072220000000129],[-117.89277600000003,76.077484000000084],[-117.88612399999988,76.079712000000029],[-117.77887699999991,76.108597000000088],[-117.72609699999998,76.115540000000067],[-117.70694700000001,76.117203000000018],[-117.662216,76.117751999999939],[-117.64111299999996,76.116652999999985],[-117.62304699999999,76.114426000000094],[-117.51944700000001,76.099716000000001],[-117.49166899999989,76.094986000000119],[-117.47138999999993,76.088882000000069],[-117.46389799999997,76.083054000000004],[-117.48916600000001,76.04693600000013],[-117.57305899999994,75.981934000000081],[-117.681107,75.921097000000088],[-117.70445299999989,75.916930999999977],[-117.74694799999997,75.910812000000135],[-117.77555799999993,75.89888000000002],[-117.83833299999998,75.859985000000052],[-117.93720999999999,75.785262999999986],[-117.94499199999996,75.77915999999999],[-117.95221700000002,75.771927000000005],[-117.95638999999994,75.765822999999955],[-117.95638999999994,75.75999500000006],[-117.97138999999993,75.728867000000037],[-118.01583899999997,75.699416999999983],[-118.06220999999999,75.685806000000014],[-118.096947,75.678589000000102],[-118.11389200000002,75.673874000000069],[-118.14277599999997,75.663879000000122],[-118.22193900000002,75.633881000000031],[-118.26363400000002,75.616928000000087],[-118.2675089999999,75.61285399999997],[-118.266953,75.609985000000108],[-118.26834099999991,75.59165999999999],[-118.31639100000001,75.57249500000006]],[[-78.926391999999964,75.875809000000004],[-78.914169000000015,75.87303200000008],[-78.904174999999896,75.867203000000075],[-78.881377999999984,75.853317000000061],[-78.876663000000008,75.849152000000061],[-78.879439999999931,75.844147000000021],[-78.897781000000009,75.839706000000092],[-78.921111999999994,75.837494000000049],[-79.048889000000031,75.836928999999998],[-79.067779999999971,75.840271000000143],[-79.072783999999956,75.844437000000028],[-79.068618999999956,75.848328000000095],[-79.05749499999996,75.853317000000061],[-79.042495999999915,75.858032000000094],[-79.021666999999923,75.867477000000008],[-79.031676999999945,75.870819000000097],[-79.05471799999998,75.872757000000036],[-79.268889999999999,75.875259000000142],[-79.319457999999941,75.87359600000002],[-79.343063000000029,75.871093999999971],[-79.361389000000031,75.86692800000003],[-79.408339999999953,75.852767999999969],[-79.420273000000009,75.848038000000088],[-79.428054999999972,75.842484000000127],[-79.458617999999944,75.810806000000071],[-79.598052999999936,75.861374000000069],[-79.620270000000005,75.862761999999975],[-79.705840999999964,75.860535000000084],[-79.726944000000003,75.861099000000024],[-79.739990000000034,75.86442599999998],[-79.752227999999889,75.878586000000098],[-79.580001999999979,75.945251000000042],[-79.567504999999983,75.949142000000109],[-79.396956999999986,76.001938000000052],[-79.375,76.005554000000075],[-79.272780999999952,76.028045999999961],[-79.137786999999946,76.077209000000096],[-79.129714999999976,76.082763999999997],[-79.121932999999956,76.088593000000003],[-79.113051999999925,76.100540000000137],[-79.091384999999889,76.114426000000094],[-79.081954999999994,76.116379000000052],[-78.923888999999974,76.121094000000085],[-78.904174999999896,76.119705000000067],[-78.893065999999976,76.115540000000067],[-78.821670999999924,76.098328000000038],[-78.805832000000009,76.09304800000001],[-78.798049999999876,76.08638000000002],[-78.799164000000019,76.079987000000074],[-78.825835999999924,76.05802900000009],[-78.833892999999989,76.052475000000129],[-78.845551,76.047485000000052],[-78.861389000000031,76.043320000000051],[-78.921660999999915,76.031937000000028],[-78.998610999999983,76.014998999999989],[-79.069732999999928,75.998322000000144],[-79.085007000000019,75.993866000000082],[-79.144729999999981,75.975266000000147],[-79.156112999999948,75.969986000000063],[-79.166655999999932,75.964157000000057],[-79.171936000000017,75.958878000000084],[-79.176392000000021,75.952774000000034],[-79.176940999999943,75.946365000000014],[-79.174437999999952,75.93942300000009],[-79.168335000000013,75.931931000000134],[-79.140288999999939,75.918868999999972],[-79.111938000000009,75.910263000000043],[-79.029449,75.888321000000133],[-79.010284000000013,75.884720000000073],[-78.989440999999943,75.881927000000132],[-78.943603999999993,75.878036000000066],[-78.926391999999964,75.875809000000004]],[[-94.843613000000005,76.122208000000057],[-94.831116000000009,76.09664900000007],[-94.870270000000005,76.068877999999984],[-94.889175000000023,76.05802900000009],[-94.905562999999916,76.05386400000009],[-94.92860399999995,76.051086000000112],[-95.006667999999991,76.047485000000052],[-95.027221999999938,76.047760000000096],[-95.048888999999974,76.050812000000008],[-95.062499999999943,76.056090999999981],[-95.086394999999925,76.068054000000018],[-95.101943999999946,76.07777400000009],[-95.139724999999999,76.107757999999933],[-95.14416499999993,76.111922999999933],[-95.147232000000031,76.116927999999973],[-95.146392999999989,76.118042000000003],[-95.12110899999999,76.118591000000094],[-95.09445199999999,76.113602000000128],[-95.076949999999954,76.108322000000101],[-95.060546999999985,76.105819999999994],[-95.030562999999972,76.104706000000022],[-95.013061999999934,76.105819999999994],[-94.992767000000015,76.109421000000054],[-94.854445999999996,76.136658000000011],[-94.843613000000005,76.122208000000057]],[[-81.327788999999996,76.147217000000012],[-81.338607999999965,76.146378000000084],[-81.452498999999875,76.155822999999941],[-81.462508999999955,76.15887500000008],[-81.456954999999994,76.163605000000075],[-81.415833000000021,76.176926000000037],[-81.378051999999968,76.184417999999994],[-81.348891999999978,76.187485000000095],[-81.294448999999929,76.187759000000028],[-81.267226999999991,76.187759000000028],[-81.221663999999976,76.185531999999967],[-81.203338999999971,76.181091000000038],[-81.201401000000033,76.177765000000022],[-81.208617999999944,76.172211000000004],[-81.306106999999884,76.151093000000117],[-81.327788999999996,76.147217000000012]],[[-102.53083800000002,76.223312000000021],[-102.52722199999994,76.216934000000094],[-102.53138699999994,76.211655000000121],[-102.58056599999986,76.152481000000023],[-102.636124,76.125534000000073],[-102.65055799999999,76.119980000000112],[-102.67138699999998,76.114151000000106],[-102.73665599999998,76.098601999999971],[-102.78056300000003,76.089706000000035],[-102.80638099999999,76.085541000000035],[-102.85777300000001,76.078873000000101],[-102.93360899999999,76.070831000000112],[-103.34221599999995,76.036652000000061],[-103.36472300000003,76.035812000000021],[-103.67999299999997,76.034149000000127],[-103.82000700000003,76.031372000000033],[-103.86638600000003,76.030823000000055],[-103.91443599999997,76.03166200000004],[-103.962219,76.034714000000122],[-103.97277799999995,76.039703000000088],[-103.92388899999997,76.040817000000061],[-103.87832599999996,76.043869000000029],[-103.86945299999996,76.047485000000052],[-103.88861099999997,76.049712999999997],[-103.98332199999999,76.057205000000124],[-104.06054699999999,76.062195000000031],[-104.08677699999998,76.06053200000008],[-104.08743999999996,76.05819699999995],[-104.13082899999989,76.056366000000025],[-104.39111300000002,76.078323000000069],[-104.40833999999995,76.082214000000135],[-104.47833300000002,76.135817999999972],[-104.48277299999995,76.142211999999972],[-104.46389799999992,76.15887500000008],[-104.45417800000001,76.164429000000041],[-104.31582600000002,76.208037999999988],[-104.29804999999993,76.212494000000049],[-104.27250700000002,76.216095000000109],[-104.24722300000002,76.218596999999988],[-104.17223399999995,76.224152000000117],[-104.14806399999986,76.2227630000001],[-104.07472200000001,76.222213999999951],[-103.9569469999999,76.233047000000113],[-103.91805999999997,76.239975000000129],[-103.85138699999999,76.250000000000057],[-103.59445199999999,76.26527400000009],[-103.33693699999998,76.27998400000007],[-103.13137799999993,76.303040000000067],[-103.11000100000001,76.304703000000018],[-103.05999799999995,76.306366000000139],[-102.86472299999997,76.311095999999964],[-102.81696299999999,76.312194999999974],[-102.765556,76.311645999999996],[-102.72693599999997,76.30581699999999],[-102.66915899999992,76.295822000000101],[-102.66555799999998,76.294708000000128],[-102.65222199999994,76.287766000000033],[-102.64277599999997,76.269989000000123],[-102.63362100000001,76.257491999999957],[-102.62554899999992,76.251937999999996],[-102.6036069999999,76.24552900000009],[-102.55832700000002,76.235809000000017],[-102.54055799999998,76.229431000000091],[-102.53083800000002,76.223312000000021]],[[-89.398894999999982,76.43553200000008],[-89.425003000000004,76.43553200000008],[-89.599166999999966,76.440262000000132],[-89.613616999999977,76.440811000000053],[-89.625548999999978,76.444976999999994],[-89.615004999999996,76.449141999999995],[-89.559158000000025,76.470535000000098],[-89.533065999999963,76.47665400000011],[-89.49499499999996,76.472488000000055],[-89.488327000000027,76.46804800000001],[-89.465835999999911,76.462203999999986],[-89.446380999999917,76.457763999999997],[-89.40834000000001,76.450546000000145],[-89.386123999999938,76.447754000000089],[-89.378051999999968,76.444138000000009],[-89.380553999999961,76.439147999999989],[-89.398894999999982,76.43553200000008]],[[-83.962783999999999,76.426375999999948],[-83.986114999999984,76.423309000000017],[-84.009170999999924,76.425812000000008],[-84.109436000000017,76.444427000000132],[-84.12388599999997,76.451096000000007],[-84.139449999999954,76.507217000000082],[-84.128052000000025,76.50999500000006],[-84.097503999999901,76.506653000000142],[-84.013625999999931,76.498032000000023],[-83.992492999999854,76.494980000000112],[-83.976944000000003,76.491089000000045],[-83.918334999999956,76.469437000000028],[-83.908050999999944,76.464996000000099],[-83.962783999999999,76.426375999999948]],[[-104.05387899999999,76.563034000000073],[-104.03388999999999,76.559708000000001],[-103.87888299999997,76.573608000000092],[-103.86860699999994,76.579162999999994],[-103.86665299999993,76.584991000000116],[-103.87138400000003,76.596649000000127],[-103.86721799999998,76.603043000000014],[-103.85944399999994,76.607208000000014],[-103.82640100000003,76.618317000000047],[-103.804169,76.621918000000107],[-103.78751399999993,76.620529000000147],[-103.58194699999996,76.547759999999982],[-103.58805799999993,76.541930999999977],[-103.59249899999998,76.535812000000135],[-103.59166700000003,76.53137200000009],[-103.587784,76.524993999999936],[-103.57028199999996,76.521103000000096],[-103.404449,76.494705000000124],[-103.38445299999995,76.492203000000018],[-103.32112100000001,76.494980000000112],[-103.24500299999994,76.485535000000027],[-103.05777,76.457763999999997],[-103.03666699999991,76.453873000000101],[-103.01418299999995,76.447754000000089],[-103.00805699999989,76.441650000000038],[-103.00446299999999,76.435257000000092],[-103.00446299999999,76.429977000000008],[-103.011124,76.423309000000017],[-103.01917300000002,76.418045000000063],[-103.02971599999989,76.412491000000045],[-103.0425029999999,76.406372000000033],[-103.098343,76.384720000000016],[-103.17250099999995,76.362762000000032],[-103.20472699999993,76.354705999999965],[-103.281387,76.336929000000112],[-103.37805200000003,76.325546000000088],[-103.55444299999999,76.310257000000036],[-103.70056199999993,76.304152999999985],[-103.75195299999996,76.303589000000045],[-103.848343,76.310257000000036],[-104.06194299999993,76.317490000000021],[-104.11165599999998,76.316376000000048],[-104.33500699999996,76.318603999999993],[-104.37888299999992,76.323317999999972],[-104.396118,76.327774000000034],[-104.40471599999995,76.333328000000051],[-104.404449,76.334427000000005],[-104.38971700000002,76.342758000000117],[-104.37581599999993,76.348328000000038],[-104.362213,76.352202999999975],[-104.34333799999996,76.354156000000103],[-104.32972699999999,76.358032000000037],[-104.328056,76.363876000000005],[-104.39111300000002,76.461105000000032],[-104.43388399999998,76.484984999999995],[-104.44888300000002,76.491089000000045],[-104.47332799999998,76.49331699999999],[-104.48249800000002,76.490540000000124],[-104.48361199999999,76.485808999999961],[-104.49749800000001,76.481093999999928],[-104.52278100000001,76.480545000000006],[-104.56388900000002,76.482208000000128],[-104.65888999999987,76.545822000000044],[-104.66583300000002,76.551651000000049],[-104.63722200000001,76.603317000000118],[-104.56304899999998,76.612761999999975],[-104.53666699999997,76.617203000000075],[-104.445267,76.635818000000029],[-104.40666199999987,76.645538000000101],[-104.37416100000002,76.655823000000055],[-104.35193600000002,76.660263000000043],[-104.31500199999994,76.663879000000122],[-104.26750199999998,76.667206000000022],[-104.21665999999999,76.668320000000051],[-104.13417099999998,76.669434000000024],[-104.05332899999996,76.664703000000088],[-104.031113,76.661652000000061],[-103.96333299999998,76.649994000000049],[-103.93971299999998,76.644714000000135],[-103.926941,76.638046000000145],[-103.9225009999999,76.633605999999986],[-103.92610200000001,76.621918000000107],[-103.93831599999999,76.610535000000141],[-103.95861799999994,76.599152000000117],[-104.02778599999988,76.579162999999994],[-104.051941,76.568878000000041],[-104.05387899999999,76.563034000000073]],[[-98.418059999999912,76.668320000000051],[-98.403885000000002,76.661377000000016],[-98.413939999999911,76.647491000000059],[-98.423606999999947,76.641486999999927],[-98.425780999999972,76.63848900000005],[-98.425277999999992,76.63564300000013],[-98.429169000000002,76.626922999999977],[-98.419723999999917,76.622482000000048],[-98.376099000000011,76.611923000000047],[-98.357773000000009,76.608321999999987],[-98.281386999999995,76.602203000000145],[-98.180557000000022,76.586929000000055],[-98.189712999999983,76.580276000000083],[-98.242766999999958,76.571655000000135],[-98.258621000000005,76.573318000000086],[-98.278335999999967,76.581100000000049],[-98.298339999999996,76.585266000000104],[-98.319457999999997,76.58859300000006],[-98.362502999999947,76.593323000000112],[-98.395554000000004,76.594437000000084],[-98.40194699999995,76.591934000000094],[-98.398894999999925,76.581375000000037],[-98.378051999999968,76.572220000000016],[-98.357773000000009,76.565536000000122],[-98.322784000000013,76.561096000000134],[-98.080565999999976,76.531097000000102],[-97.944442999999978,76.518051000000128],[-97.897780999999895,76.515823000000012],[-97.807770000000005,76.514435000000105],[-97.764450000000011,76.510544000000039],[-97.750290000000007,76.506942999999978],[-97.693328999999949,76.487762000000089],[-97.684722999999963,76.47164900000007],[-97.662215999999944,76.425261999999975],[-97.662505999999894,76.419434000000081],[-97.670273000000009,76.414992999999981],[-97.706954999999937,76.405548000000067],[-97.718886999999995,76.40109300000006],[-97.727218999999991,76.395537999999988],[-97.731673999999998,76.38998400000014],[-97.761397999999986,76.334991000000002],[-97.728881999999999,76.282760999999994],[-97.726104999999905,76.278320000000065],[-97.699432000000002,76.266663000000108],[-97.64805599999994,76.250275000000045],[-97.610549999999989,76.242203000000075],[-97.591674999999952,76.23692299999999],[-97.575561999999991,76.231369000000029],[-97.523055999999997,76.205826000000116],[-97.516952999999944,76.199997000000053],[-97.509170999999981,76.188873000000001],[-97.494994999999903,76.148880000000133],[-97.494445999999868,76.138885000000073],[-97.503066999999874,76.127472000000068],[-97.517776000000026,76.119141000000127],[-97.542496000000028,76.108322000000101],[-97.563323999999966,76.097487999999998],[-97.588333000000034,76.080826000000002],[-97.656386999999938,75.972762999999986],[-97.647507000000019,75.944427000000076],[-97.64555399999989,75.938873000000058],[-97.642226999999934,75.9327550000001],[-97.612503000000004,75.901932000000102],[-97.597778000000005,75.889434999999935],[-97.597778000000005,75.846939000000134],[-97.654174999999896,75.798324999999977],[-97.664169000000015,75.793320000000108],[-97.693603999999993,75.785812000000078],[-97.707503999999972,75.783324999999991],[-97.837219000000005,75.765549000000021],[-97.913329999999974,75.751663000000065],[-97.930557000000022,75.746933000000013],[-97.938598999999954,75.741364000000033],[-97.870543999999938,75.73054499999995],[-97.827224999999885,75.726929000000098],[-97.690276999999867,75.720535000000041],[-97.425551999999982,75.692200000000071],[-97.404448999999943,75.68803400000013],[-97.386672999999973,75.682754999999986],[-97.375823999999852,75.676376000000118],[-97.369995000000017,75.670822000000101],[-97.368606999999997,75.659424000000115],[-97.369155999999975,75.653320000000065],[-97.384734999999978,75.643326000000059],[-97.394454999999937,75.638321000000019],[-97.410003999999958,75.620818999999983],[-97.41194200000001,75.61554000000001],[-97.423889000000031,75.528595000000053],[-97.422501000000011,75.506377999999984],[-97.417495999999971,75.494705000000124],[-97.401397999999858,75.458602999999982],[-97.398055999999997,75.45248400000014],[-97.378326000000015,75.43414300000012],[-97.349730999999963,75.419983000000002],[-97.330565999999919,75.414153999999996],[-97.293883999999991,75.405548000000067],[-97.285003999999958,75.402205999999978],[-97.280837999999903,75.396941999999967],[-97.293334999999956,75.390823000000125],[-97.305557000000022,75.390274000000034],[-97.320557000000008,75.391098],[-97.341675000000009,75.393875000000094],[-97.441665999999998,75.414992999999981],[-97.469161999999983,75.422760000000096],[-97.484160999999915,75.429428000000087],[-97.49610899999999,75.442200000000071],[-97.49888599999997,75.469986000000006],[-97.496658000000025,75.478592000000106],[-97.573623999999882,75.513046000000145],[-97.711944999999901,75.566666000000055],[-97.728881999999999,75.570267000000058],[-97.744155999999975,75.571106000000043],[-97.762511999999958,75.568054000000132],[-97.818061999999884,75.54898100000014],[-97.827552999999909,75.545815000000005],[-97.827056999999911,75.539817999999968],[-97.821724000000017,75.537323000000129],[-97.811561999999924,75.535156000000029],[-97.802054999999996,75.53532400000006],[-97.801940999999999,75.524429000000112],[-97.789992999999924,75.51887499999998],[-97.774169999999913,75.508331000000112],[-97.758895999999993,75.496643000000063],[-97.748046999999872,75.484421000000111],[-97.744720000000029,75.478317000000061],[-97.743332000000009,75.471924000000115],[-97.745269999999948,75.466660000000104],[-97.756392999999946,75.462204000000042],[-97.783324999999877,75.45748900000001],[-97.80749499999996,75.456650000000025],[-97.835830999999985,75.460815000000025],[-97.840835999999854,75.464996000000099],[-97.845001000000025,75.469986000000006],[-97.855674999999906,75.484482000000014],[-97.85600299999993,75.487488000000042],[-97.858001999999885,75.494644000000051],[-97.859169000000009,75.497985999999969],[-97.86983499999991,75.501160000000084],[-97.882338999999945,75.503494000000103],[-97.90834000000001,75.513321000000133],[-97.932495000000017,75.512496999999996],[-97.951950000000011,75.507492000000127],[-98.041672000000005,75.483322000000101],[-98.043335000000013,75.481368999999972],[-97.985549999999989,75.457214000000135],[-97.957503999999915,75.44720499999994],[-97.933318999999983,75.448029000000133],[-97.911117999999931,75.446090999999967],[-97.782776000000013,75.428314000000114],[-97.774718999999948,75.423035000000141],[-97.793610000000001,75.413040000000024],[-97.808608999999933,75.408875000000023],[-97.934432999999899,75.407486000000063],[-97.984726000000023,75.408875000000023],[-98.004729999999881,75.413605000000075],[-98.028060999999923,75.413879000000009],[-98.019890000000032,75.407042999999987],[-98.028724999999895,75.404541000000108],[-98.032386999999915,75.400879000000145],[-98.029556000000014,75.398375999999985],[-98.021225000000015,75.39521000000002],[-97.96055599999994,75.384720000000016],[-97.920272999999952,75.38081399999993],[-97.901397999999915,75.379974000000061],[-97.884445000000028,75.376373000000058],[-97.872771999999998,75.37081900000004],[-97.876662999999894,75.364990000000034],[-97.887786999999946,75.360535000000027],[-97.910277999999948,75.356644000000131],[-97.926392000000021,75.35554500000012],[-97.990554999999972,75.355819999999994],[-98.042769999999962,75.35914600000001],[-98.070107000000007,75.364700000000028],[-98.070769999999982,75.367088000000081],[-98.074112000000014,75.369033999999942],[-98.082779000000016,75.370033000000035],[-98.107772999999895,75.371917999999994],[-98.124709999999993,75.367202999999961],[-98.136397999999986,75.361923000000104],[-98.141953000000001,75.356644000000131],[-98.153610000000015,75.345535000000041],[-98.165282999999988,75.334152000000017],[-98.164718999999934,75.329163000000051],[-98.129165999999998,75.30192599999998],[-98.120543999999995,75.297760000000039],[-98.101395000000025,75.291931000000034],[-98.064712999999927,75.285812000000021],[-97.913054999999986,75.264159999999947],[-97.87388599999997,75.270263999999997],[-97.755843999999911,75.229431000000091],[-97.74360699999994,75.224991000000102],[-97.735001000000011,75.207214000000022],[-97.736937999999952,75.204437000000098],[-97.759734999999978,75.188582999999994],[-97.676940999999999,75.164154000000053],[-97.62860099999989,75.151093000000117],[-97.602492999999924,75.147217000000069],[-97.597503999999958,75.149155000000007],[-97.605834999999956,75.158325000000048],[-97.614440999999886,75.162766000000147],[-97.613051999999982,75.164703000000031],[-97.597778000000005,75.164703000000031],[-97.578613000000018,75.15887500000008],[-97.567779999999971,75.152481000000023],[-97.567504999999926,75.147491000000002],[-97.582503999999915,75.137496999999996],[-97.619445999999925,75.118590999999924],[-97.639998999999989,75.116379000000052],[-97.746947999999975,75.111649000000057],[-97.843886999999938,75.110260000000039],[-97.86250299999989,75.111099000000024],[-97.881377999999927,75.11692800000003],[-98.024719000000005,75.162490999999932],[-98.033614999999998,75.17164600000001],[-98.034438999999963,75.181656000000089],[-98.02694699999995,75.187195000000088],[-98.02027899999996,75.196640000000002],[-98.019164999999987,75.201096000000064],[-98.025833000000034,75.210815000000082],[-98.041381999999885,75.216385000000002],[-98.061661000000015,75.22026100000005],[-98.085281000000009,75.2227630000001],[-98.098617999999931,75.2227630000001],[-98.146666999999866,75.180816999999934],[-98.146666999999866,75.163879000000065],[-98.145553999999947,75.159987999999998],[-98.136123999999995,75.154160000000047],[-98.121384000000035,75.147491000000002],[-98.081389999999999,75.130538999999999],[-98.039169000000015,75.116379000000052],[-98.025557999999933,75.113601999999958],[-98.00306699999993,75.112761999999918],[-97.981673999999941,75.110809000000017],[-97.966949,75.104155999999989],[-97.947219999999902,75.079987000000074],[-97.938888999999904,75.069716999999969],[-97.938598999999954,75.064986999999917],[-97.945830999999998,75.026657],[-97.949996999999996,75.021103000000039],[-97.960006999999905,75.017487000000131],[-97.982497999999907,75.015273999999977],[-98.00306699999993,75.015549000000021],[-98.02027899999996,75.018326000000116],[-98.108886999999982,75.022491000000116],[-98.259170999999924,75.022766000000104],[-98.276947000000007,75.022217000000012],[-98.300277999999935,75.021103000000039],[-98.369719999999973,75.014435000000049],[-98.444442999999978,75.004990000000134],[-98.46833799999996,75.003052000000025],[-98.634734999999978,74.992477000000065],[-98.723891999999921,74.989426000000037],[-98.785004000000015,74.994980000000055],[-98.985001000000011,75.000000000000114],[-99.066955999999948,74.996368000000132],[-99.354445999999882,74.984420999999998],[-99.376662999999951,74.98553499999997],[-99.394164999999987,74.988037000000077],[-99.406113000000005,74.993316999999934],[-99.393615999999952,75.027205999999978],[-99.387512000000015,75.03776600000009],[-99.335555999999997,75.070541000000105],[-99.299437999999952,75.092758000000003],[-99.28195199999999,75.102768000000083],[-99.27694699999995,75.108032000000094],[-99.272232000000031,75.115814000000057],[-99.281386999999995,75.122481999999991],[-99.308043999999995,75.122481999999991],[-99.325835999999924,75.11831699999999],[-99.34056099999998,75.113037000000134],[-99.445540999999935,75.058318999999983],[-99.482497999999964,75.03776600000009],[-99.496657999999968,75.026382000000012],[-99.5,75.020537999999988],[-99.496108999999933,75.014708999999982],[-99.480285999999978,75.009155000000135],[-99.445540999999935,75.003875999999991],[-99.432495000000017,75.000275000000101],[-99.42721599999993,74.996368000000132],[-99.426391999999964,74.991364000000033],[-99.538605000000018,74.974152000000004],[-99.562499999999943,74.972214000000065],[-99.602782999999988,74.971100000000035],[-99.619719999999973,74.97137500000008],[-99.701675000000023,74.973602000000142],[-99.990554999999915,74.984420999999998],[-100.05722000000003,74.986923000000104],[-100.14584400000001,74.991088999999988],[-100.21056399999998,74.997208000000001],[-100.25306699999993,75.002777000000037],[-100.34777799999995,75.016937000000098],[-100.36389200000002,75.021378000000027],[-100.38945000000001,75.031097000000045],[-100.39388999999994,75.037201000000039],[-100.396118,75.043594000000041],[-100.39750699999991,75.055542000000059],[-100.39723199999997,75.066666000000112],[-100.39472999999998,75.078323000000069],[-100.38583399999999,75.095535000000098],[-100.38054699999986,75.101928999999984],[-100.37805200000003,75.113311999999951],[-100.39806399999998,75.158600000000092],[-100.41221599999994,75.16804500000012],[-100.43250299999994,75.173598999999967],[-100.45333900000003,75.177200000000028],[-100.47693599999997,75.179428000000144],[-100.51112399999994,75.184143000000006],[-100.52834300000001,75.187759000000028],[-100.54444899999993,75.193039000000113],[-100.54695099999998,75.199417000000096],[-100.53859699999998,75.204711999999972],[-100.46333299999998,75.223602000000085],[-100.43859900000001,75.226653999999996],[-100.41722099999998,75.227478000000133],[-100.32528699999995,75.230545000000063],[-100.30222299999997,75.230820000000108],[-100.27999899999998,75.22886699999998],[-100.24833699999999,75.223877000000073],[-100.22556299999997,75.223037999999974],[-100.031387,75.226929000000041],[-100.00778200000002,75.228043000000014],[-99.990554999999915,75.231369000000029],[-99.987777999999992,75.236099000000081],[-99.995269999999948,75.239975000000129],[-100.00945300000001,75.242203000000075],[-100.11945300000002,75.248596000000077],[-100.20333900000003,75.253326000000072],[-100.22609699999998,75.254165999999941],[-100.314438,75.250824000000023],[-100.35417200000001,75.251663000000008],[-100.37554899999986,75.255264000000011],[-100.39388999999994,75.260269000000108],[-100.406113,75.266663000000108],[-100.40278599999999,75.272491000000059],[-100.33444199999991,75.274428999999998],[-100.31166100000002,75.277206000000092],[-100.29387700000001,75.281371999999976],[-100.279449,75.286652000000061],[-100.25805700000001,75.297760000000039],[-100.24445299999996,75.308868000000018],[-100.25723299999993,75.313308999999947],[-100.28222699999992,75.310257000000036],[-100.33277900000002,75.302200000000084],[-100.35944399999994,75.299712999999997],[-100.49999999999989,75.292480000000012],[-100.52306399999998,75.293045000000006],[-100.60888699999998,75.305817000000047],[-100.62249799999995,75.309143000000063],[-100.76555599999989,75.34637500000008],[-100.77887699999991,75.35054000000008],[-100.76888999999994,75.355255000000113],[-100.67639199999996,75.376648000000046],[-100.65222199999999,75.378585999999984],[-100.63305700000001,75.378036000000122],[-100.61805700000002,75.376648000000046],[-100.60221899999993,75.373596000000134],[-100.61833199999995,75.368866000000082],[-100.64389,75.364700000000028],[-100.67999299999997,75.361923000000104],[-100.69833399999993,75.356644000000131],[-100.68222000000003,75.350266000000147],[-100.63806199999999,75.345825000000048],[-100.61472299999997,75.346100000000092],[-100.59472699999998,75.347487999999998],[-100.44748699999991,75.369980000000055],[-100.43277,75.375259000000028],[-100.42832899999991,75.380539000000113],[-100.44055200000003,75.386658000000125],[-100.56527699999998,75.422211000000004],[-100.58444199999997,75.426376000000005],[-100.60694899999999,75.42804000000001],[-100.67555199999993,75.426926000000037],[-100.71694899999989,75.429153000000099],[-100.72305299999999,75.432479999999998],[-100.69776899999999,75.436371000000065],[-100.67331699999994,75.438582999999937],[-100.43388399999998,75.445815999999979],[-100.33972199999999,75.447479000000101],[-100.27084400000001,75.448593000000074],[-100.17666600000001,75.449141999999995],[-100.11138899999997,75.451096000000007],[-100.06276700000001,75.454437000000041],[-100.01194800000002,75.461380000000077],[-100.00917099999992,75.466095000000109],[-100.01944700000001,75.468596999999988],[-100.10056299999997,75.470535000000098],[-100.19193999999999,75.467758000000003],[-100.21528599999988,75.467758000000003],[-100.30695300000002,75.47164900000007],[-100.30555699999996,75.473602000000028],[-100.12999000000002,75.525818000000129],[-100.03415699999988,75.529433999999981],[-99.966948999999943,75.533325000000048],[-99.845000999999968,75.540817000000004],[-99.831389999999999,75.544144000000131],[-99.832229999999981,75.545532000000037],[-99.845000999999968,75.547484999999995],[-99.856383999999991,75.548035000000027],[-99.899993999999992,75.547484999999995],[-99.946655000000021,75.544708000000071],[-99.990279999999984,75.544434000000138],[-100.03859699999998,75.549149],[-100.03943600000002,75.554152999999985],[-100.02806099999998,75.557205000000067],[-99.823623999999938,75.58415199999996],[-99.800551999999925,75.586655000000121],[-99.756393000000003,75.588043000000027],[-99.736938000000009,75.587204000000099],[-99.712508999999955,75.589157000000057],[-99.672774999999945,75.606094000000041],[-99.667770000000019,75.611099000000081],[-99.685821999999973,75.613876000000005],[-99.790833000000021,75.616653000000099],[-99.84056099999998,75.612488000000099],[-99.863051999999982,75.614426000000037],[-99.862503000000004,75.618866000000025],[-99.823623999999938,75.651657],[-99.817504999999926,75.655258000000003],[-99.788054999999929,75.658324999999934],[-99.458617999999944,75.672485000000052],[-99.226669000000015,75.675537000000134],[-99.202498999999989,75.675537000000134],[-99.083617999999944,75.675812000000008],[-99.033066000000019,75.677200000000084],[-98.982773000000009,75.681090999999981],[-98.929717999999923,75.686371000000008],[-98.905562999999916,75.689972000000068],[-98.889998999999989,75.695251000000042],[-98.891388000000006,75.699141999999938],[-98.907775999999956,75.704712000000029],[-98.925827000000027,75.707489000000123],[-98.950286999999889,75.709991000000002],[-98.97193900000002,75.710266000000047],[-99.329453000000001,75.695251000000042],[-99.55749499999996,75.691925000000026],[-99.619995000000017,75.694138000000009],[-99.643889999999999,75.694138000000009],[-99.740828999999906,75.690811000000053],[-99.84973100000002,75.677475000000072],[-100.031677,75.664428999999984],[-100.256393,75.651657],[-100.37332199999997,75.654709000000082],[-100.39723199999997,75.654434000000037],[-100.54028299999993,75.645537999999931],[-100.62888299999997,75.634720000000129],[-100.65416699999997,75.631653000000028],[-100.80471799999998,75.614990000000148],[-100.82972699999999,75.61303700000002],[-101.22556299999991,75.587494000000106],[-101.24916100000002,75.587204000000099],[-101.30638099999999,75.591094999999996],[-101.37721299999993,75.59887700000013],[-101.38806199999999,75.60026600000009],[-101.47165699999999,75.602203000000145],[-101.4955369999999,75.601929000000041],[-101.74944299999999,75.574432000000058],[-101.89835399999998,75.556091000000094],[-101.97250399999996,75.548325000000034],[-101.99638399999998,75.547211000000061],[-102.06723,75.546097000000088],[-102.13639799999993,75.553314],[-102.15915699999999,75.554977000000122],[-102.20667300000002,75.553314],[-102.35193599999997,75.542206000000022],[-102.39916999999997,75.537200999999982],[-102.44860799999998,75.530547999999953],[-102.49916099999996,75.521103000000096],[-102.53415699999999,75.511383000000023],[-102.67304999999999,75.514709000000039],[-102.86694299999999,75.601089000000002],[-102.87805200000003,75.607758000000047],[-102.88194299999992,75.613312000000064],[-102.88390400000003,75.61914100000007],[-102.87777699999992,75.624695000000031],[-102.86054999999999,75.62831100000011],[-102.8125,75.631088000000034],[-102.79305999999991,75.630539000000056],[-102.70140100000003,75.628860000000032],[-102.68916299999995,75.670532000000094],[-102.58168000000001,75.71276899999998],[-102.56360599999999,75.718322999999998],[-102.53888699999993,75.72137499999991],[-102.37748699999992,75.729155999999989],[-102.35193599999997,75.729155999999989],[-102.31139400000001,75.72665400000011],[-102.26390100000003,75.721924000000058],[-102.16832699999992,75.709152000000074],[-102.15416700000003,75.706100000000106],[-102.07861300000002,75.688309000000004],[-102.05776999999995,75.690811000000053],[-102.03666699999997,75.694138000000009],[-102.01862299999999,75.699416999999983],[-102.00917099999998,75.703048999999908],[-102.00805700000001,75.704987000000074],[-102.09166699999997,75.721924000000058],[-102.120003,75.776382000000012],[-102.10185200000001,75.784247999999991],[-102.09361299999989,75.791091999999992],[-102.112213,75.793594000000041],[-102.23277299999995,75.786652000000117],[-102.28222700000003,75.781937000000084],[-102.32668299999995,75.779983999999956],[-102.34388699999994,75.781937000000084],[-102.36609599999997,75.789978000000019],[-102.37165800000002,75.795821999999987],[-102.37332200000003,75.801650999999993],[-102.37082700000002,75.807480000000055],[-102.36250299999995,75.818054000000075],[-102.33944700000001,75.834991000000059],[-102.31667299999998,75.846649000000127],[-102.29028299999993,75.857208000000128],[-102.26640299999997,75.86192299999999],[-102.16306299999997,75.878860000000032],[-102.13806199999993,75.881087999999977],[-101.864441,75.902206000000035],[-101.82640099999992,75.898331000000042],[-101.80526700000001,75.891937000000041],[-101.79943800000001,75.886658000000068],[-101.77194199999997,75.868590999999981],[-101.74833699999999,75.859146000000067],[-101.74109599999991,75.856934000000024],[-101.55638099999987,75.821105999999986],[-101.47028399999999,75.772217000000012],[-101.46888699999994,75.766388000000006],[-101.45973199999997,75.761107999999922],[-101.43859900000001,75.755554000000132],[-101.41416899999996,75.752487000000031],[-101.301941,75.746094000000085],[-101.254997,75.744705000000067],[-101.24416400000001,75.746933000000013],[-101.23388699999998,75.751389000000131],[-101.20249899999993,75.767211999999972],[-101.18221999999997,75.779709000000139],[-101.23110999999994,75.777205999999978],[-101.328056,75.774429000000055],[-101.34777799999995,75.774994000000106],[-101.35555999999991,75.779433999999924],[-101.35861199999999,75.784988000000112],[-101.35193599999991,75.790543000000014],[-101.34137699999997,75.796097000000032],[-101.326683,75.801650999999993],[-101.323624,75.807480000000055],[-101.32501200000002,75.813309000000061],[-101.33500700000002,75.825272000000098],[-101.34056099999992,75.830276000000026],[-101.35637700000001,75.843048000000067],[-101.36389199999996,75.8477630000001],[-101.37805199999997,75.851928999999984],[-101.39277600000003,75.854431000000034],[-101.40833999999995,75.855820000000051],[-101.42388900000003,75.856369000000029],[-101.48889199999996,75.854156000000046],[-101.52694699999995,75.85832199999993],[-101.537216,75.861374000000069],[-101.54638699999992,75.867477000000008],[-101.57917799999996,75.908600000000092],[-101.56500199999988,75.929703000000018],[-101.49665800000002,75.954987000000017],[-101.47778299999999,75.96026599999999],[-101.45221700000002,75.963608000000079],[-101.39417299999997,75.97554000000008],[-101.30915800000002,76.008330999999998],[-101.30277999999987,76.013046000000031],[-101.31582599999996,76.019150000000025],[-101.33556399999992,76.020827999999995],[-101.36971999999992,76.016937000000098],[-101.38249200000001,76.010818000000086],[-101.39195299999989,76.000549000000035],[-101.40833999999995,75.995529000000147],[-101.61721799999998,75.980820000000108],[-101.641953,75.979705999999965],[-101.67832900000002,75.979705999999965],[-101.68388399999998,75.980270000000075],[-101.728882,75.987488000000099],[-101.80638099999999,76.007492000000013],[-101.83249699999999,76.016662999999994],[-101.84889199999992,76.024704000000042],[-101.89362299999993,76.060257000000092],[-101.90055799999999,76.066666000000112],[-101.90722700000003,76.078598000000056],[-101.90862299999998,76.084427000000062],[-101.90750099999997,76.096100000000092],[-101.90222199999999,76.107757999999933],[-101.88861099999991,76.119141000000127],[-101.761124,76.174148999999943],[-101.71140300000002,76.184708000000001],[-101.685272,76.187759000000028],[-101.60833699999995,76.194427000000019],[-101.53362299999998,76.205261000000064],[-101.48860200000001,76.213608000000022],[-101.46556099999998,76.218872000000033],[-101.39611799999989,76.243317000000047],[-101.38500999999997,76.248871000000065],[-101.387787,76.251937999999996],[-101.44193999999993,76.241653000000042],[-101.49694799999992,76.233871000000079],[-101.69888299999997,76.219437000000084],[-101.74973299999999,76.215820000000122],[-101.77471899999995,76.215546000000018],[-102.051941,76.213608000000022],[-102.11444099999994,76.215546000000018],[-102.13305699999989,76.219986000000006],[-102.14835399999998,76.226653999999996],[-102.16583300000002,76.238312000000008],[-102.15972899999997,76.243042000000059],[-102.13362100000001,76.246368000000075],[-102.08222999999998,76.250824000000023],[-102.06388899999996,76.255264000000011],[-102.05803700000001,76.259155000000078],[-102.00110599999999,76.352768000000026],[-102.029449,76.3808140000001],[-102.051941,76.38638300000008],[-102.05332900000002,76.392211999999915],[-102.05082700000003,76.398041000000148],[-102.03999299999998,76.403595000000109],[-102.01862299999999,76.409423999999944],[-101.88583399999993,76.444976999999994],[-101.86221299999994,76.450272000000041],[-101.80832699999996,76.454163000000108],[-101.78333299999991,76.454437000000041],[-101.67111199999999,76.449141999999995],[-101.45667300000002,76.436371000000065],[-101.43472300000002,76.434418000000107],[-101.41166699999997,76.430817000000047],[-101.31582599999996,76.414428999999984],[-101.30249000000003,76.408324999999991],[-101.29138199999994,76.401657],[-101.28362300000003,76.396102999999982],[-101.27667200000002,76.389435000000049],[-101.24027999999993,76.371643000000006],[-101.22805800000003,76.366928000000144],[-101.20612299999993,76.361374000000126],[-101.13694799999996,76.350815000000068],[-101.06806899999998,76.331940000000145],[-101.05832700000002,76.326935000000105],[-101.09388699999994,76.283051],[-101.00446299999993,76.237761999999975],[-100.98111,76.235260000000096],[-100.92832899999996,76.225815000000011],[-100.91000399999996,76.222213999999951],[-100.86582900000002,76.212204000000042],[-100.783073,76.191085999999984],[-100.75110599999994,76.18220500000001],[-100.71056399999998,76.166381999999999],[-100.63027999999991,76.133331000000055],[-100.43998699999992,76.105255],[-100.31582600000002,76.051376000000118],[-100.30943299999996,76.048035000000084],[-100.13166799999993,75.952484000000027],[-100.047234,75.913879000000065],[-99.982498000000021,75.890548999999908],[-99.888335999999981,75.886383000000023],[-99.753615999999909,75.906372000000147],[-99.730834999999956,75.910538000000031],[-99.71556099999998,75.916092000000049],[-99.678328999999962,75.931366000000139],[-99.587783999999999,75.94999700000011],[-99.508621000000005,75.957489000000066],[-99.483611999999937,75.958603000000039],[-99.457503999999972,75.961380000000133],[-99.442490000000021,75.965819999999951],[-99.439437999999996,75.970534999999984],[-99.45461999999992,75.974808000000053],[-99.494445999999982,75.973602000000085],[-99.657776000000013,75.961380000000133],[-99.785277999999948,75.951385000000016],[-99.811110999999983,75.948317999999915],[-99.859436000000017,75.935256999999979],[-99.86332699999997,75.935532000000023],[-99.898620999999991,75.950271999999984],[-100.07749899999999,76.038879000000122],[-100.08249699999999,76.043869000000029],[-100.09221600000001,76.054977000000008],[-100.14222699999999,76.112198000000149],[-100.15278599999994,76.132477000000108],[-100.12499999999994,76.148880000000133],[-100.10388199999994,76.153320000000008],[-100.07167099999998,76.155822999999941],[-100.031113,76.155548000000124],[-100.01139799999999,76.15387000000004],[-99.868332000000009,76.139984000000027],[-99.730834999999956,76.117477000000122],[-99.680832000000009,76.118591000000094],[-99.650832999999977,76.127472000000068],[-99.609160999999972,76.135817999999972],[-99.556106999999997,76.141663000000051],[-99.502227999999945,76.146103000000039],[-99.483062999999902,76.146942000000024],[-99.429717999999923,76.15387000000004],[-99.414444000000003,76.158325000000048],[-99.421386999999925,76.160262999999986],[-99.445267000000001,76.16137700000013],[-99.498885999999914,76.157761000000107],[-99.548888999999974,76.153320000000008],[-99.668059999999912,76.139709000000039],[-99.693054000000018,76.138596000000121],[-99.716949,76.139709000000039],[-99.874434999999892,76.17053199999998],[-99.915833000000021,76.180267000000072],[-99.948882999999967,76.189697000000137],[-100.15028399999994,76.1933140000001],[-100.17832900000002,76.19081100000011],[-100.20140099999998,76.189972000000012],[-100.22556299999997,76.19081100000011],[-100.43888900000002,76.212494000000049],[-100.47222899999991,76.226378999999952],[-100.49861099999998,76.237761999999975],[-100.51278699999989,76.249146000000053],[-100.514183,76.254166000000112],[-100.51112399999994,76.259720000000129],[-100.49944299999999,76.26527400000009],[-100.465012,76.274993999999992],[-100.43804899999998,76.278870000000097],[-100.41665599999999,76.280272999999966],[-100.36638600000003,76.281661999999983],[-100.26917300000002,76.278595000000053],[-100.18276999999995,76.270828000000108],[-100.111107,76.266388000000063],[-99.895553999999947,76.274703999999986],[-99.86999499999996,76.275817999999958],[-99.844727000000034,76.280272999999966],[-99.848617999999931,76.283874999999966],[-100.03859699999998,76.318878000000097],[-100.27722199999994,76.378585999999984],[-100.30166600000001,76.382750999999985],[-100.32362399999994,76.384155000000135],[-100.35056299999991,76.384430000000009],[-100.37444299999999,76.382750999999985],[-100.48137700000001,76.373871000000122],[-100.55332899999996,76.371094000000028],[-100.67360699999995,76.371917999999994],[-100.69444299999998,76.374985000000095],[-100.95249899999999,76.474700999999982],[-100.97222899999997,76.485260000000039],[-100.98388699999992,76.494430999999963],[-100.98554999999993,76.499145999999996],[-100.98249800000002,76.504990000000021],[-100.962784,76.510268999999994],[-100.93943799999988,76.514435000000105],[-100.89277600000003,76.519440000000145],[-100.82972699999999,76.519714000000079],[-100.80526700000001,76.522217000000069],[-100.737213,76.531097000000102],[-100.72083999999995,76.546097000000032],[-100.72341899999998,76.551094000000148],[-100.72332799999992,76.556091000000038],[-100.71250899999995,76.560531999999967],[-100.65306099999992,76.576385000000016],[-100.45861799999994,76.613602000000014],[-100.383827,76.627502000000106],[-100.36389200000002,76.631087999999977],[-100.318893,76.635544000000095],[-100.21665999999988,76.643051000000014],[-100.19193999999999,76.642212000000086],[-100.05222300000003,76.631363000000022],[-99.981673999999998,76.622207999999944],[-99.911117999999988,76.61303700000002],[-99.885009999999909,76.610535000000141],[-99.837783999999886,76.608596999999975],[-99.811385999999914,76.609710999999947],[-99.796111999999994,76.613875999999948],[-99.795272999999952,76.618317000000047],[-99.770554000000004,76.627762000000132],[-99.741942999999992,76.632751000000098],[-99.725829999999917,76.634720000000129],[-99.684433000000013,76.633331000000112],[-99.588333000000034,76.623871000000065],[-99.569457999999997,76.620529000000147],[-99.366942999999935,76.526382000000069],[-99.256957999999941,76.470535000000098],[-99.260559000000001,76.464706000000092],[-99.255279999999914,76.453598000000056],[-99.184433000000013,76.415817000000118],[-99.163619999999923,76.409149000000127],[-99.12332200000003,76.400818000000015],[-99.099990999999989,76.398041000000148],[-99.079726999999991,76.397217000000012],[-99.066101000000003,76.398605000000089],[-99.06639100000001,76.404434000000094],[-99.083617999999944,76.416092000000106],[-99.110001000000011,76.426650999999993],[-99.118332000000009,76.433044000000109],[-99.137221999999952,76.451934999999992],[-99.133895999999993,76.456650000000025],[-99.122498000000007,76.461105000000032],[-98.994155999999975,76.471099999999922],[-98.980834999999956,76.47164900000007],[-98.955276000000026,76.469147000000021],[-98.946945000000028,76.463042999999971],[-98.948043999999925,76.45277399999992],[-98.950286999999889,76.446365000000071],[-98.943603999999993,76.440811000000053],[-98.925827000000027,76.43609600000002],[-98.906386999999881,76.433318999999983],[-98.882767000000001,76.431366000000025],[-98.857773000000009,76.431366000000025],[-98.846114999999998,76.43609600000002],[-98.856110000000001,76.463882000000126],[-98.865279999999927,76.469147000000021],[-98.898620999999991,76.481093999999928],[-98.953888000000006,76.499145999999996],[-99.038054999999986,76.529708999999968],[-99.050551999999982,76.536102000000142],[-99.051940999999999,76.539978000000019],[-99.027221999999938,76.601088999999945],[-98.999160999999958,76.604980000000012],[-98.971663999999976,76.607758000000047],[-98.86082499999992,76.61442599999998],[-98.714721999999938,76.614150999999993],[-98.611114999999984,76.610260000000096],[-98.589172000000019,76.611374000000069],[-98.56639100000001,76.613602000000014],[-98.538894999999968,76.616379000000109],[-98.518065999999976,76.621368000000075],[-98.511123999999995,76.625259000000142],[-98.489731000000006,76.644707000000096],[-98.48832699999997,76.650818000000015],[-98.546951000000035,76.658035000000098],[-98.591109999999901,76.661652000000061],[-98.595000999999968,76.659424000000115],[-98.592498999999975,76.653870000000097],[-98.598617999999988,76.651093000000003],[-98.623046999999872,76.647217000000126],[-98.674438000000009,76.64387499999998],[-98.744445999999982,76.64387499999998],[-98.814163000000008,76.653595000000053],[-98.851105000000018,76.661652000000061],[-98.857773000000009,76.663879000000122],[-98.855834999999956,76.67025799999999],[-98.852492999999924,76.671646000000067],[-98.821395999999936,76.676925999999924],[-98.733611999999994,76.682754999999986],[-98.712509000000011,76.683044000000052],[-98.504729999999938,76.681090999999924],[-98.480285999999921,76.679152999999985],[-98.439986999999974,76.673035000000084],[-98.418059999999912,76.668320000000051]],[[-99.996947999999975,76.734420999999998],[-99.976395000000025,76.733597000000032],[-99.86999499999996,76.736374000000126],[-99.819457999999884,76.738312000000064],[-99.748336999999992,76.74275200000011],[-99.720839999999953,76.74581900000004],[-99.693877999999984,76.747756999999979],[-99.646392999999989,76.748031999999967],[-99.622498000000007,76.7452550000001],[-99.528884999999946,76.72554000000008],[-99.447768999999994,76.706100000000106],[-99.430556999999965,76.699416999999926],[-99.433883999999978,76.69470200000012],[-99.52806099999998,76.67442299999999],[-99.556106999999997,76.670532000000094],[-99.581680000000006,76.67025799999999],[-99.626937999999996,76.673035000000084],[-99.657776000000013,76.677765000000079],[-99.733321999999987,76.702484000000027],[-99.888389999999902,76.718651000000136],[-99.900222999999926,76.72015399999998],[-99.915557999999976,76.72015399999998],[-100.01112399999988,76.719147000000135],[-100.02999899999992,76.715820000000008],[-100.05139200000002,76.715546000000074],[-100.09750400000001,76.717209000000025],[-100.12138399999998,76.719711000000075],[-100.128601,76.721924000000058],[-100.12805199999997,76.723038000000031],[-100.10193599999997,76.744705000000067],[-100.08277899999996,76.748031999999967],[-100.05526700000001,76.75082400000008],[-100.03778099999988,76.751389000000131],[-99.999434999999949,76.751099000000067],[-99.972228999999913,76.747208000000001],[-99.975006000000008,76.742477000000065],[-99.994155999999975,76.739151000000049],[-100.004997,76.735535000000027],[-99.996947999999975,76.734420999999998]],[[-120.88362100000001,76.739700000000028],[-120.886124,76.728591999999992],[-120.90334299999995,76.723876999999959],[-120.94499199999996,76.717758000000117],[-120.97000100000002,76.716660000000047],[-121.09084299999989,76.71887200000009],[-121.11749299999991,76.719711000000075],[-121.16000400000001,76.723312000000135],[-121.18110699999994,76.727203000000031],[-121.18472299999991,76.731094000000098],[-121.18167099999999,76.732208000000071],[-121.15666199999998,76.733597000000032],[-121.12832600000002,76.730819999999994],[-121.083618,76.729155999999932],[-121.05972300000002,76.731369000000086],[-121.05638099999999,76.732483000000059],[-121.01806599999998,76.751389000000131],[-120.99082900000002,76.754715000000147],[-120.97833300000002,76.755264000000068],[-120.91443599999997,76.754165999999998],[-120.89083900000003,76.749710000000107],[-120.88474300000001,76.745529000000033],[-120.88362100000001,76.739700000000028]],[[-101.38054699999992,76.553588999999988],[-101.40416699999997,76.552765000000022],[-101.45388799999989,76.554153000000099],[-101.54083300000002,76.560806000000071],[-101.56471299999993,76.563599000000067],[-101.62332199999992,76.572768999999937],[-101.68831599999999,76.586380000000077],[-101.57556199999999,76.614150999999993],[-101.52194199999991,76.623871000000065],[-101.38583399999993,76.642487000000074],[-101.31777999999991,76.642761000000007],[-101.21362299999993,76.651931999999988],[-101.05999800000001,76.685805999999957],[-101.04250300000001,76.690536000000009],[-101.03943600000002,76.696365000000014],[-101.04028299999993,76.702209000000039],[-101.03307299999994,76.708038000000045],[-101.00583599999993,76.71887200000009],[-100.98361199999999,76.724700999999925],[-100.95749699999999,76.729155999999932],[-100.90249599999993,76.736374000000126],[-100.74388099999999,76.753326000000129],[-100.69193999999999,76.754715000000147],[-100.53443900000002,76.757217000000026],[-100.50917099999992,76.756378000000097],[-100.484734,76.754715000000147],[-100.26888999999989,76.737198000000092],[-100.24889400000001,76.734711000000061],[-100.25917099999998,76.728591999999992],[-100.26666299999999,76.726379000000065],[-100.29305999999997,76.721924000000058],[-100.297234,76.721924000000058],[-100.31723,76.716660000000047],[-100.48721299999988,76.684418000000051],[-100.761124,76.635818000000029],[-100.92304999999999,76.610260000000096],[-101.19275699999997,76.571381000000031],[-101.27390300000002,76.560806000000071],[-101.326683,76.556366000000082],[-101.38054699999992,76.553588999999988]],[[-89.934432999999956,76.47665400000011],[-89.978881999999999,76.469711000000132],[-89.999725000000012,76.470260999999994],[-90.040833000000021,76.476928999999927],[-90.081680000000006,76.484984999999995],[-90.151108000000022,76.504439999999988],[-90.184433000000013,76.515274000000034],[-90.21444699999995,76.528594999999996],[-90.226669000000015,76.535538000000031],[-90.412216000000001,76.636108000000036],[-90.478058000000033,76.662200999999982],[-90.504456000000005,76.675261999999918],[-90.56361400000003,76.709991000000002],[-90.573333999999988,76.715820000000008],[-90.59445199999999,76.729705999999965],[-90.600280999999939,76.734984999999995],[-90.600829999999974,76.741088999999988],[-90.599990999999989,76.746643000000006],[-90.597777999999948,76.750000000000114],[-90.58666999999997,76.761383000000137],[-90.579178000000013,76.766937000000098],[-90.57028200000002,76.771927000000005],[-90.544448999999986,76.783051000000057],[-90.510284000000013,76.793320000000108],[-90.474716000000001,76.799713000000054],[-90.230559999999969,76.828048999999965],[-90.103058000000033,76.836105000000032],[-90.025283999999999,76.839156999999943],[-89.983063000000016,76.836928999999998],[-89.927779999999984,76.828873000000101],[-89.865279999999984,76.816086000000098],[-89.825835999999981,76.806091000000038],[-89.779448999999886,76.7852630000001],[-89.673888999999974,76.737487999999928],[-89.673888999999974,76.731369000000086],[-89.687774999999988,76.708878000000084],[-89.702224999999999,76.689697000000024],[-89.729445999999996,76.673309000000017],[-89.744155999999975,76.669434000000024],[-89.768065999999976,76.668045000000006],[-89.819732999999928,76.667206000000022],[-89.837218999999891,76.663040000000137],[-89.840835999999911,76.657211000000132],[-89.862777999999992,76.60386699999998],[-89.862502999999947,76.597488000000112],[-89.858336999999949,76.591094999999939],[-89.817504999999983,76.546936000000017],[-89.794448999999929,76.533325000000048],[-89.756119000000012,76.524703999999929],[-89.721663999999976,76.519714000000079],[-89.699157999999954,76.516936999999984],[-89.684433000000013,76.511658000000011],[-89.671386999999982,76.504166000000055],[-89.673888999999974,76.502212999999927],[-89.757507000000032,76.486099000000024],[-89.783614999999884,76.483047000000056],[-89.934432999999956,76.47665400000011]],[[-108.65110800000002,76.813599000000011],[-108.65110800000002,76.808868000000075],[-108.65527299999991,76.803863999999976],[-108.67804699999999,76.784988000000112],[-108.68443299999996,76.780548000000067],[-108.69055200000003,76.774429000000055],[-108.69249000000002,76.769989000000066],[-108.68831599999999,76.766098],[-108.67971799999992,76.763321000000076],[-108.66278099999994,76.761383000000137],[-108.596947,76.760818000000086],[-108.55248999999992,76.761383000000137],[-108.52722199999999,76.760268999999937],[-108.50389099999995,76.756103999999937],[-108.48889199999996,76.751663000000065],[-108.46333299999998,76.739151000000049],[-108.45500199999998,76.733322000000044],[-108.44638099999997,76.723602000000142],[-108.44220699999994,76.717758000000117],[-108.43804899999998,76.708038000000045],[-108.44193999999999,76.696365000000014],[-108.45889299999988,76.684708000000057],[-108.54472399999997,76.646378000000141],[-108.56555200000003,76.641663000000108],[-108.58667000000003,76.641663000000108],[-108.60749800000002,76.642487000000074],[-108.628601,76.645263999999997],[-108.65387699999997,76.647217000000126],[-108.68110699999994,76.647766000000047],[-108.70417799999996,76.646378000000141],[-108.72083999999995,76.642487000000074],[-108.72721899999999,76.638046000000145],[-108.72693600000002,76.634155000000078],[-108.69915800000001,76.605545000000063],[-108.69055200000003,76.600540000000024],[-108.62721299999998,76.575546000000031],[-108.61054999999993,76.569717000000026],[-108.58389299999993,76.477478000000076],[-108.58112299999999,76.439147999999989],[-108.55803699999996,76.408599999999979],[-108.475281,76.406937000000084],[-108.36389200000002,76.399994000000049],[-108.32888800000001,76.396652000000131],[-108.31861900000001,76.394150000000081],[-108.28971899999993,76.384430000000009],[-108.26917300000002,76.374985000000095],[-108.07749899999999,76.28054800000001],[-108.11472299999997,76.261383000000023],[-108.252228,76.196929999999952],[-108.33139,76.181931000000077],[-108.38027999999997,76.165268000000026],[-108.39222699999993,76.159424000000001],[-108.40862300000003,76.14776599999999],[-108.396118,76.046097000000145],[-108.35193600000002,76.048874000000069],[-108.02555799999999,76.062195000000031],[-108.00140399999998,76.063033999999959],[-107.916946,76.063033999999959],[-107.83833300000003,76.061371000000065],[-107.81220999999999,76.056090999999981],[-107.73665599999998,76.039428999999984],[-107.72471599999994,76.035538000000088],[-107.63834399999996,75.996368000000132],[-107.63249200000001,75.991088999999988],[-107.63305699999995,75.981369000000086],[-107.639183,75.976089000000002],[-107.65139799999997,75.97026100000005],[-107.78555299999999,75.919983000000116],[-107.84221599999995,75.899993999999992],[-107.90194700000001,75.896103000000096],[-107.91805999999997,75.891373000000101],[-107.93028300000003,75.885544000000039],[-108.031113,75.822495000000004],[-108.04361,75.802199999999971],[-108.02417000000003,75.783875000000023],[-108.02027900000002,75.780823000000112],[-108.00639299999995,75.779433999999924],[-107.9569469999999,75.784714000000008],[-107.91332999999986,75.789429000000041],[-107.87361099999993,75.798035000000141],[-107.82084699999996,75.829162999999994],[-107.77834300000001,75.854706000000078],[-107.75974299999996,75.869705000000124],[-107.75974299999996,75.874419999999986],[-107.739441,75.879150000000038],[-107.51555599999995,75.899993999999992],[-107.36945299999996,75.911652000000004],[-107.33750899999995,75.911377000000016],[-107.18666099999996,75.90387000000004],[-107.08000199999998,75.892761000000007],[-107.08583099999998,75.872482000000048],[-107.09028599999994,75.867477000000008],[-107.10500300000001,75.834717000000126],[-107.09805299999999,75.823043999999925],[-107.03167699999995,75.771103000000039],[-106.96362299999993,75.738586000000055],[-106.89666699999998,75.720261000000107],[-106.88027999999991,75.765822999999955],[-106.83056599999998,75.785812000000078],[-106.79444899999993,75.791656000000103],[-106.74471999999992,75.79553199999998],[-106.72277799999995,75.795821999999987],[-106.67944299999999,75.793594000000041],[-106.6558379999999,75.793594000000041],[-106.636124,75.794434000000081],[-106.61582899999996,75.797211000000004],[-106.62110899999993,75.803314000000114],[-106.6383439999999,75.806931000000077],[-106.67944299999999,75.812485000000095],[-106.72666900000002,75.813873000000001],[-106.78611799999993,75.813309000000061],[-106.829453,75.816665999999998],[-106.85082999999992,75.819992000000013],[-106.87000299999994,75.824997000000053],[-106.88890100000003,75.834717000000126],[-106.89584400000001,75.844437000000028],[-106.89666699999998,75.935256999999979],[-106.89611799999994,75.941086000000041],[-106.89334100000002,75.947478999999987],[-106.86971999999997,75.964157000000057],[-106.63890099999998,76.053040000000124],[-106.60610999999994,76.057754999999986],[-106.58583099999993,76.058593999999971],[-106.368607,76.055817000000047],[-106.33667000000003,76.054703000000075],[-106.30082699999997,76.051376000000118],[-106.01611299999996,76.019714000000022],[-105.93720999999999,76.010269000000108],[-105.89998600000001,76.005554000000075],[-105.837219,75.996932999999956],[-105.73500100000001,75.974991000000102],[-105.66832699999998,75.955551000000128],[-105.61945299999996,75.93942300000009],[-105.60637699999995,75.934708000000057],[-105.59528399999988,75.929703000000018],[-105.47888199999994,75.863036999999963],[-105.46528599999999,75.851928999999984],[-105.45333900000003,75.841659999999933],[-105.445831,75.830551000000071],[-105.40028399999989,75.694427000000076],[-105.38834399999996,75.656372000000033],[-105.391953,75.63888500000013],[-105.48750299999995,75.560806000000127],[-105.49638399999998,75.55525200000011],[-105.51666299999994,75.550537000000077],[-105.54083300000002,75.546936000000017],[-105.60444599999988,75.539978000000019],[-105.63667299999997,75.533600000000092],[-105.68582200000003,75.519440000000145],[-105.74082900000002,75.494979999999941],[-105.75140399999998,75.489700000000084],[-105.74804699999999,75.485809000000017],[-105.73693799999995,75.48275799999999],[-105.68666100000002,75.483047000000113],[-105.67166099999986,75.481093999999985],[-105.61138900000003,75.47164900000007],[-105.59277299999997,75.46748400000007],[-105.593613,75.462769000000037],[-105.64639299999993,75.365265000000022],[-105.65110799999997,75.359421000000054],[-105.66055299999994,75.349716000000114],[-105.72666900000002,75.31303400000013],[-105.7386019999999,75.309418000000051],[-105.76251199999996,75.304976999999951],[-105.79361,75.302200000000084],[-105.81304899999998,75.29942299999999],[-105.82140399999992,75.295822000000101],[-105.86694299999999,75.275818000000015],[-105.87526699999995,75.271102999999982],[-105.93776699999989,75.214432000000045],[-105.93888900000002,75.208603000000039],[-105.93582199999997,75.202774000000034],[-105.929169,75.197754000000145],[-105.89222699999999,75.190810999999997],[-105.87249800000001,75.171920999999998],[-105.876938,75.145828000000051],[-105.88527699999997,75.14027400000009],[-105.90499899999998,75.136383000000023],[-105.92582699999997,75.135268999999994],[-106.00361599999991,75.135544000000039],[-106.01889,75.133881000000088],[-106.07028200000002,75.106644000000017],[-106.07945299999989,75.096939000000077],[-106.07333399999993,75.087203999999986],[-106.01862299999999,75.074158000000068],[-106.00446299999999,75.068054000000018],[-105.99416399999996,75.062195000000031],[-105.99333199999995,75.055817000000047],[-106.011124,75.050812000000008],[-106.23528299999998,75.021378000000027],[-106.26000999999997,75.019150000000081],[-106.45500199999992,75.005829000000119],[-106.54554699999989,75.001663000000008],[-106.564438,75.00082400000008],[-106.66332999999992,75.004165999999998],[-106.72556299999997,75.00221300000004],[-106.77111799999989,74.996643000000006],[-106.78639199999998,74.991928000000144],[-106.78307299999994,74.989975000000015],[-106.78333299999997,74.986098999999967],[-106.78582799999992,74.98054500000012],[-106.79194599999994,74.975266000000147],[-106.807503,74.969711000000075],[-106.93055699999996,74.933594000000085],[-106.97222899999997,74.926086000000055],[-107.01000999999991,74.922484999999995],[-107.05110200000001,74.921646000000067],[-107.07362399999994,74.919983000000116],[-107.16000399999996,74.910538000000088],[-107.19722000000002,74.910812000000021],[-107.21584300000001,74.911925999999994],[-107.46417199999996,74.934418000000051],[-107.506958,74.939972000000068],[-107.63082900000001,74.961104999999975],[-107.66251399999999,74.966660000000047],[-107.68804899999998,74.976379000000065],[-107.69554099999999,74.982208000000071],[-107.72389199999998,75.016388000000006],[-107.72389199999998,75.020264000000054],[-107.71972699999998,75.02609300000006],[-107.704453,75.030823000000112],[-107.68138099999999,75.042480000000012],[-107.67944299999994,75.048599000000081],[-107.68110699999994,75.05304000000001],[-107.69499199999996,75.075272000000041],[-107.70584100000002,75.086105000000032],[-107.716949,75.090820000000065],[-107.739441,75.095825000000104],[-107.75834700000001,75.096939000000077],[-107.77333099999998,75.096099999999922],[-107.78307299999994,75.093596999999988],[-107.77999899999998,75.072220000000129],[-107.77084400000001,75.06581100000011],[-107.75778200000002,75.06053199999991],[-107.74500299999994,75.054153000000042],[-107.739441,75.048874000000069],[-107.73972299999997,75.043045000000063],[-107.74388099999993,75.037201000000039],[-107.77778599999999,75.029434000000094],[-107.89499699999999,75.003601000000003],[-107.94193999999999,74.93081699999999],[-107.95527600000003,74.928589000000045],[-107.97749299999998,74.927475000000072],[-108.02417000000003,74.929152999999985],[-108.13417099999992,74.927765000000079],[-108.21083099999987,74.923599000000024],[-108.37304699999999,74.910538000000088],[-108.3916779999999,74.911377000000016],[-108.43639400000001,74.915268000000083],[-108.45500199999998,74.918319999999994],[-108.52971599999995,74.936645999999996],[-108.54110700000001,74.940536000000009],[-108.548607,74.946365000000014],[-108.54795799999999,74.951653000000022],[-108.55055199999998,74.956375000000094],[-108.55999800000001,74.960815000000139],[-108.67971799999992,74.970261000000107],[-108.781113,74.979980000000069],[-108.80721999999997,74.983597000000032],[-108.80721999999997,74.984711000000004],[-108.79611199999999,74.985809000000131],[-108.74553699999996,74.984420999999998],[-108.63890100000003,74.981094000000098],[-108.614441,74.979705999999965],[-108.55999800000001,74.976379000000065],[-108.53028899999993,74.973312000000135],[-108.51139799999999,74.97554000000008],[-108.52667199999996,75.001663000000008],[-108.53056300000003,75.005554000000075],[-108.53806299999985,75.009430000000009],[-108.628601,75.046096999999975],[-108.65139799999992,75.053863999999976],[-108.79472399999997,75.069153000000028],[-108.83249699999993,75.069992000000013],[-108.92777999999993,75.05192599999998],[-108.94972200000001,75.040267999999969],[-109.00110599999999,75.004990000000134],[-109.11971999999997,74.979430999999977],[-109.34584000000001,74.944702000000063],[-109.36416600000001,74.939697000000024],[-109.39998600000001,74.918319999999994],[-109.40722700000003,74.912490999999989],[-109.40695199999993,74.908599999999922],[-109.420547,74.893051000000014],[-109.50805700000001,74.866379000000109],[-109.52278099999995,74.863312000000008],[-109.56861900000001,74.857758000000047],[-109.58721899999995,74.856644000000017],[-109.66139199999992,74.856369000000029],[-109.76944700000001,74.859421000000111],[-109.79750099999995,74.863602000000014],[-109.81111099999993,74.868042000000059],[-109.83361799999994,74.869704999999954],[-109.87249800000001,74.869141000000013],[-109.93472300000002,74.860809000000017],[-109.95500199999987,74.857208000000014],[-109.99471999999997,74.848327999999981],[-110.01640299999991,74.842209000000082],[-110.13971700000002,74.833054000000061],[-110.30444299999994,74.846375000000023],[-110.32501200000002,74.847488000000112],[-110.34555099999989,74.846939000000134],[-110.36000100000001,74.843872000000033],[-110.37053700000001,74.839980999999966],[-110.40416699999997,74.826660000000004],[-110.39620999999994,74.813689999999951],[-110.39666699999998,74.799423000000104],[-110.43666100000002,74.793319999999937],[-110.58999599999993,74.778046000000074],[-110.59137699999997,74.724152000000061],[-110.75666799999993,74.685257000000092],[-110.77250699999996,74.680817000000047],[-110.78639199999998,74.674698000000035],[-110.79638699999998,74.668869000000029],[-110.807503,74.657486000000006],[-110.83389299999993,74.651931999999988],[-110.98111,74.621368000000132],[-111.28056300000003,74.567764000000125],[-111.38722200000001,74.563034000000073],[-111.40915699999999,74.562759000000085],[-111.43055699999996,74.560532000000023],[-111.55888399999998,74.52748100000008],[-111.64250199999992,74.501389000000017],[-111.67722300000003,74.493317000000047],[-111.700287,74.49136400000009],[-111.82389799999999,74.48332199999993],[-111.94554099999993,74.474425999999994],[-111.98416099999997,74.468872000000033],[-112.087219,74.452208999999925],[-112.29305999999991,74.427765000000022],[-112.37053699999996,74.418594000000041],[-112.43831599999999,74.414429000000041],[-112.54194599999988,74.409424000000001],[-112.75306699999993,74.401382000000012],[-112.85694899999993,74.398330999999985],[-112.91999799999991,74.397490999999945],[-113.00890400000003,74.398040999999978],[-113.25723299999993,74.405258000000117],[-113.406113,74.413315000000068],[-113.42832899999996,74.414703000000145],[-113.47168699999997,74.41891499999997],[-113.64083900000003,74.437485000000095],[-113.69638099999997,74.446091000000024],[-113.84221600000001,74.479706000000078],[-113.94167299999998,74.50360100000006],[-114.05387899999999,74.530822999999998],[-114.12110899999993,74.549987999999985],[-114.29834,74.602768000000026],[-114.34861799999999,74.618866000000082],[-114.37470999999994,74.629150000000095],[-114.39695699999993,74.639160000000004],[-114.43804899999986,74.659424000000115],[-114.44360399999994,74.664153999999996],[-114.44776899999994,74.674698000000035],[-114.42859599999991,74.691925000000026],[-114.41972399999992,74.698029000000076],[-114.40750099999997,74.704163000000108],[-114.39444700000001,74.708328000000108],[-114.21444699999995,74.755554000000132],[-114.10166899999996,74.776657000000057],[-114.01027699999992,74.790543000000071],[-113.73166699999996,74.827208999999982],[-113.71000699999996,74.829711999999915],[-113.55695300000002,74.839157],[-113.41861,74.84275800000006],[-113.28278399999999,74.848602000000085],[-113.25334199999998,74.87359600000002],[-113.22269399999988,74.896469000000025],[-113.15194699999995,74.924987999999985],[-113.1205369999999,74.932480000000112],[-113.00750699999992,74.954163000000051],[-112.91111799999987,74.970825000000048],[-112.86749299999997,74.97554000000008],[-112.84528399999994,74.976929000000098],[-112.57224299999996,74.99275200000011],[-112.52416999999991,74.995529000000033],[-112.5,74.996010000000012],[-112.453056,74.996933000000013],[-112.37444299999993,74.998321999999973],[-112.01500699999991,75.002486999999974],[-111.962219,75.001389000000074],[-111.935272,74.998871000000122],[-111.89890299999996,74.994980000000055],[-111.86527999999993,74.988312000000064],[-111.84056099999998,74.986374000000126],[-111.76444999999995,74.981659000000093],[-111.75334199999998,74.981659000000093],[-111.718613,74.986649],[-111.62666300000001,75.003875999999991],[-111.58972199999999,75.006378000000041],[-111.55139200000002,75.011383000000137],[-111.53527800000001,75.014998999999989],[-111.28971899999999,75.086105000000032],[-111.02916700000003,75.171097000000032],[-110.920547,75.223602000000085],[-110.91361999999998,75.228591999999935],[-110.91278099999994,75.233871000000136],[-110.91750300000001,75.239699999999971],[-111.05249000000003,75.270263999999997],[-111.06806899999987,75.271927000000119],[-111.23082699999998,75.264159999999947],[-111.24889400000001,75.259155000000078],[-111.25195300000001,75.254165999999941],[-111.25083899999993,75.248596000000077],[-111.25167799999997,75.243042000000059],[-111.25611900000001,75.236649000000114],[-111.26112399999994,75.232208000000014],[-111.27778599999994,75.220534999999984],[-111.33416699999992,75.19747899999993],[-111.39167800000001,75.181091000000094],[-111.47501399999999,75.161652000000004],[-111.56082200000003,75.146103000000096],[-111.57721700000002,75.143600000000106],[-111.59612299999998,75.143326000000002],[-111.69526699999989,75.145828000000051],[-111.70584100000002,75.151093000000117],[-111.787216,75.166655999999932],[-111.958054,75.13499500000006],[-112.22833300000002,75.124694999999974],[-112.39055599999995,75.123032000000023],[-112.40972899999997,75.12359600000002],[-112.42916899999994,75.125259000000085],[-112.439438,75.128586000000041],[-112.44833399999999,75.133041000000048],[-112.47084000000001,75.146378000000084],[-112.46833800000002,75.151382000000069],[-112.46166999999997,75.154433999999981],[-112.45249899999999,75.155822999999998],[-112.41197199999993,75.159012000000075],[-112.36860699999994,75.169144000000131],[-112.35833700000001,75.173035000000027],[-112.29472399999992,75.198028999999963],[-112.29583700000001,75.202774000000034],[-112.33944700000001,75.223602000000085],[-112.39750700000002,75.241089000000102],[-112.40888999999993,75.240814000000114],[-112.4366609999999,75.230545000000063],[-112.46193700000003,75.218872000000033],[-112.46417200000002,75.213043000000027],[-112.46305799999999,75.208327999999995],[-112.45056199999999,75.204711999999972],[-112.43749999999994,75.198868000000118],[-112.43221999999997,75.19331399999993],[-112.43250299999994,75.1869200000001],[-112.44471699999997,75.18331900000004],[-112.46665999999999,75.179977000000065],[-112.56111099999993,75.178314],[-112.59249899999998,75.181656000000089],[-112.60888699999992,75.185256999999979],[-112.62554899999998,75.190810999999997],[-112.6347429999999,75.196365000000128],[-112.63722200000001,75.204987000000131],[-112.63694800000002,75.210541000000148],[-112.632767,75.215820000000122],[-112.61609599999997,75.223877000000073],[-112.59472699999998,75.230270000000075],[-112.58583099999998,75.239150999999993],[-112.59472699999998,75.250000000000057],[-112.61277799999999,75.259430000000123],[-112.65167200000002,75.275269000000037],[-112.66583300000002,75.278595000000109],[-112.679169,75.277771000000143],[-112.71305799999999,75.256104000000107],[-112.718887,75.250275000000045],[-112.735817,75.203323000000125],[-112.73416099999992,75.19747899999993],[-112.72888199999994,75.192749000000106],[-112.71584299999995,75.187195000000088],[-112.698036,75.177765000000022],[-112.68859899999995,75.171920999999998],[-112.699997,75.138321000000133],[-112.80695300000002,75.115814000000057],[-112.89417300000002,75.103317000000061],[-112.95667300000002,75.097214000000122],[-113.25446299999999,75.076096000000007],[-113.29888899999997,75.073044000000095],[-113.343887,75.072220000000129],[-113.610817,75.062759000000142],[-113.68083200000001,75.05192599999998],[-113.699432,75.051375999999948],[-113.89417299999997,75.052199999999914],[-113.91750299999995,75.053589000000102],[-113.94138299999986,75.056931000000077],[-113.950287,75.06053199999991],[-113.96888699999994,75.075272000000041],[-113.97305299999994,75.086655000000064],[-113.97305299999994,75.096374999999966],[-113.93138099999999,75.189148000000046],[-113.82055700000001,75.314423000000147],[-113.80583199999995,75.326660000000118],[-113.78278399999999,75.33776899999998],[-113.72805800000003,75.345825000000048],[-113.66055299999994,75.351379000000065],[-113.64222699999993,75.353591999999992],[-113.573624,75.366928000000144],[-113.34056099999992,75.413315000000068],[-113.38110399999999,75.418320000000108],[-113.47112300000003,75.427764999999965],[-113.577789,75.411652000000117],[-113.66027799999995,75.398605000000089],[-113.74445299999996,75.385818000000086],[-113.83389299999988,75.37692300000009],[-113.87138400000003,75.374145999999996],[-113.90222199999999,75.3744200000001],[-113.91139199999998,75.378036000000122],[-113.92111199999994,75.383881000000031],[-113.958618,75.411102000000085],[-113.98166700000002,75.431091000000038],[-113.98416099999992,75.437758999999971],[-113.99221799999998,75.448318000000029],[-114.02416999999997,75.461105000000032],[-114.04083300000002,75.463882000000126],[-114.06500199999988,75.466095000000109],[-114.08389299999999,75.464706000000092],[-114.08693699999998,75.462494000000049],[-114.08917199999996,75.458602999999982],[-114.093887,75.410812000000078],[-114.09166699999992,75.404984000000127],[-114.08583099999993,75.400269000000094],[-114.07778899999988,75.394150000000081],[-114.06610099999995,75.389160000000061],[-114.05638099999987,75.383330999999998],[-114.04472399999992,75.373032000000023],[-114.04055800000003,75.36775200000011],[-114.04055800000003,75.362198000000092],[-114.04750100000001,75.35054000000008],[-114.13751200000002,75.244979999999998],[-114.15805099999994,75.233321999999987],[-114.17083699999989,75.226929000000041],[-114.18666100000002,75.223312000000078],[-114.203056,75.221375000000023],[-114.22277799999995,75.2227630000001],[-114.26363399999991,75.229705999999908],[-114.28472899999997,75.234985000000108],[-114.319458,75.24470500000001],[-114.34638999999993,75.25471500000009],[-114.35082999999997,75.26638800000012],[-114.34916699999985,75.271378000000141],[-114.35109699999992,75.276093000000003],[-114.35888699999992,75.281371999999976],[-114.49999999999994,75.312194999999974],[-114.51278699999995,75.314697000000081],[-114.52806099999992,75.314423000000147],[-114.54276999999996,75.31303400000013],[-114.60973399999995,75.27998400000007],[-114.61527999999993,75.274994000000049],[-114.61138900000003,75.265273999999977],[-114.598343,75.261658000000068],[-114.57972699999999,75.263321000000019],[-114.57250999999997,75.264434999999992],[-114.54666099999997,75.266937000000041],[-114.49638399999998,75.265548999999965],[-114.46806299999997,75.262207000000046],[-114.44304699999986,75.257216999999969],[-114.41278099999994,75.24803199999991],[-114.39723200000003,75.238876000000005],[-114.30249000000003,75.1827550000001],[-114.297234,75.179152999999928],[-114.29472399999997,75.173309000000131],[-114.29804999999999,75.166655999999932],[-114.30860899999993,75.154709000000025],[-114.32112099999995,75.143326000000002],[-114.33528099999995,75.13108799999992],[-114.34944199999995,75.119140999999956],[-114.36749299999985,75.106934000000024],[-114.39499699999993,75.090546000000131],[-114.42971799999987,75.073044000000095],[-114.46640000000002,75.06053199999991],[-114.48332199999987,75.056090999999981],[-114.51889,75.050261999999975],[-114.60082999999997,75.038315000000011],[-114.72416699999997,75.011932000000058],[-114.76342799999998,75.002472000000012],[-114.825287,74.988037000000077],[-114.88861099999991,74.977478000000019],[-114.94915800000001,74.969986000000063],[-115.03222699999992,74.961655000000007],[-115.05082700000003,74.961104999999975],[-115.066101,74.961655000000007],[-115.16055299999999,74.979430999999977],[-115.18582200000003,74.985259999999982],[-115.195267,74.989975000000015],[-115.22609699999992,75.049713000000054],[-115.22638699999993,75.058318999999983],[-115.225281,75.064147999999989],[-115.21861299999995,75.070831000000112],[-115.21167000000003,75.07638500000013],[-115.199432,75.082763999999997],[-115.18331899999993,75.088882000000126],[-115.17415599999993,75.094147000000021],[-115.17304999999999,75.099990999999989],[-115.17278299999992,75.10775799999999],[-115.17832899999996,75.115814000000057],[-115.216949,75.167480000000126],[-115.23554999999993,75.174698000000092],[-115.24861099999998,75.178314],[-115.25695799999994,75.179977000000065],[-115.26083399999993,75.179977000000065],[-115.25611900000001,75.178040000000067],[-115.252228,75.173874000000126],[-115.25361599999991,75.164429000000098],[-115.256393,75.158035000000041],[-115.26139799999999,75.151932000000102],[-115.27916699999997,75.140823000000012],[-115.291382,75.134430000000066],[-115.33640300000002,75.116652999999985],[-115.35305799999998,75.111099000000024],[-115.37304699999999,75.105820000000051],[-115.38694799999996,75.102203000000088],[-115.40416700000003,75.098877000000016],[-115.42666600000001,75.098038000000088],[-115.451683,75.098877000000016],[-115.48361199999994,75.106093999999985],[-115.51944700000001,75.117751999999996],[-115.62389399999995,75.121368000000018],[-115.60472099999993,75.108597000000088],[-115.54888899999997,75.055817000000047],[-115.53971899999993,75.044434000000081],[-115.53751399999993,75.039429000000041],[-115.53751399999993,75.027205999999978],[-115.54527300000001,75.015823000000125],[-115.5516659999999,75.009155000000135],[-115.57472200000001,74.998321999999973],[-115.60249299999998,74.98553499999997],[-115.61833200000001,74.979155999999932],[-115.658051,74.967208999999968],[-115.67194399999988,74.964706000000035],[-115.69055200000003,74.964157000000057],[-115.73500100000001,74.967208999999968],[-115.75723299999999,74.969986000000063],[-115.84777800000001,74.98553499999997],[-116.16306299999991,75.040267999999969],[-116.27916699999997,75.099425999999994],[-116.28639199999992,75.13108799999992],[-116.27694699999995,75.135268999999994],[-116.26889,75.141373000000044],[-116.2455369999999,75.162766000000147],[-116.24109599999997,75.168869000000086],[-116.23860200000001,75.196930000000009],[-116.23916599999995,75.201385000000016],[-116.24694799999992,75.205261000000064],[-116.26834100000002,75.206100000000049],[-116.287216,75.205551000000071],[-116.52722199999999,75.184708000000001],[-116.56054699999999,75.179152999999928],[-116.58084100000002,75.174423000000104],[-116.59388699999994,75.170258000000103],[-116.60249299999998,75.164993000000038],[-116.618607,75.152481000000023],[-116.66332999999997,75.122481999999991],[-116.679169,75.117203000000018],[-116.69415299999997,75.116652999999985],[-116.71721599999995,75.116652999999985],[-117.16860999999994,75.157486000000063],[-117.38417099999992,75.178588999999988],[-117.41915899999992,75.182480000000055],[-117.45777899999996,75.188873000000001],[-117.47501399999993,75.192200000000128],[-117.66361999999998,75.239150999999993],[-117.67832900000002,75.244431000000077],[-117.68305999999995,75.248596000000077],[-117.68388400000003,75.253052000000139],[-117.67166099999997,75.288879000000122],[-117.666946,75.294144000000017],[-117.66194199999995,75.298035000000084],[-117.53666699999997,75.361649],[-117.45527599999997,75.400269000000094],[-117.42054699999994,75.413315000000068],[-117.35360699999995,75.437485000000038],[-117.32112099999995,75.448593000000074],[-117.26139799999993,75.468871999999976],[-117.24054699999999,75.473602000000028],[-117.218887,75.476379000000122],[-117.14666699999998,75.480270000000019],[-117.10305799999998,75.482208000000128],[-117.041382,75.483597000000145],[-116.89778100000001,75.482482999999945],[-116.87748699999997,75.481368999999972],[-116.75334199999998,75.479431000000034],[-116.13474300000001,75.476379000000122],[-116.11554699999994,75.476928999999984],[-116.02194199999997,75.484985000000052],[-115.97332799999998,75.492751999999996],[-115.92250100000001,75.503876000000048],[-115.81833599999987,75.529709000000025],[-115.68888900000002,75.56442300000009],[-115.64639299999999,75.573607999999922],[-115.61972000000003,75.578872999999987],[-115.56527699999987,75.583878000000027],[-115.53056299999997,75.584991000000116],[-115.50611900000001,75.587204000000099],[-115.46305799999999,75.591933999999924],[-115.36609599999997,75.602768000000026],[-115.28832999999997,75.620529000000147],[-115.28611799999993,75.624420000000043],[-115.27722199999999,75.630539000000056],[-115.26777600000003,75.635818000000029],[-115.20333900000003,75.657211000000132],[-115.18611099999993,75.662766000000033],[-115.09665699999994,75.687194999999974],[-115.08194700000001,75.689423000000147],[-115.07028200000002,75.689972000000068],[-115.04250300000001,75.689697000000081],[-114.99973299999994,75.690811000000053],[-114.99804699999999,75.695816000000093],[-115.00556899999992,75.698868000000004],[-115.02834300000001,75.701660000000118],[-115.05277999999998,75.703048999999908],[-115.07611099999991,75.702484000000084],[-115.10305800000003,75.700821000000133],[-115.14555399999995,75.694138000000009],[-115.21721600000001,75.679321000000073],[-115.27916699999997,75.667755],[-115.32472199999995,75.659988000000055],[-115.38305700000001,75.653870000000097],[-115.40194699999995,75.652480999999966],[-115.47193900000002,75.650269000000037],[-115.51888999999994,75.649994000000049],[-115.60637700000001,75.651093000000003],[-115.66750299999995,75.647217000000126],[-115.71444700000001,75.642487000000131],[-115.889183,75.614426000000037],[-116.09166700000003,75.580551000000128],[-116.108047,75.574157999999954],[-116.11916400000001,75.572768999999994],[-116.34750399999996,75.559143000000006],[-116.38971700000002,75.5577550000001],[-116.46028099999995,75.557480000000055],[-116.48610699999995,75.5577550000001],[-116.84361299999989,75.564987000000031],[-117.19499200000001,75.573607999999922],[-117.21556099999998,75.574707000000103],[-117.23277300000001,75.576935000000049],[-117.24276700000001,75.580551000000128],[-117.25,75.586105000000089],[-117.25110599999994,75.597488000000112],[-117.24833699999999,75.603043000000014],[-117.23999000000003,75.614990000000148],[-117.23361199999994,75.620529000000147],[-117.21362299999993,75.633330999999998],[-117.07805599999995,75.707214000000079],[-117.06443799999994,75.714157000000114],[-117.03971899999999,75.725815000000125],[-117.02362099999993,75.732483000000116],[-117.01666299999994,75.737198000000149],[-116.95556599999992,75.761932000000115],[-116.923317,75.774704000000099],[-116.88667299999992,75.786926000000051],[-116.86888099999999,75.790543000000014],[-116.85056299999991,75.79304500000012],[-116.81639099999995,75.796371000000136],[-116.76278699999995,75.799988000000099],[-116.71972699999998,75.801650999999993],[-116.58860799999997,75.803314000000114],[-116.53056300000003,75.802765000000022],[-116.32417299999992,75.804703000000131],[-116.10582699999998,75.806931000000077],[-116.03721599999994,75.809708000000001],[-115.82305899999994,75.827208999999925],[-115.80444299999994,75.829987000000131],[-115.79444899999999,75.834152000000131],[-115.78415699999994,75.845260999999994],[-115.77971600000001,75.852203000000088],[-115.76500699999997,75.854431000000034],[-115.74944299999999,75.854980000000012],[-115.73693800000001,75.854431000000034],[-115.72638699999993,75.853317000000061],[-115.69193999999993,75.848328000000095],[-115.67388900000003,75.844147000000021],[-115.65943900000002,75.839706000000092],[-115.62277199999994,75.834427000000119],[-115.59445199999999,75.833327999999995],[-115.50723299999993,75.834991000000059],[-115.40499899999998,75.838043000000027],[-115.38194299999992,75.839706000000092],[-115.36416599999995,75.844147000000021],[-115.35193599999997,75.852203000000088],[-115.31360599999994,75.855255],[-115.13945000000001,75.859421000000111],[-115.07277699999986,75.85775799999999],[-115.04998799999998,75.855820000000051],[-115.00083899999998,75.853317000000061],[-114.98082699999992,75.853043000000127],[-114.932503,75.856644000000017],[-114.91194199999995,75.859711000000118],[-114.83860799999997,75.874419999999986],[-114.817497,75.880814000000044],[-114.80444299999994,75.886932000000002],[-114.798607,75.892212000000029],[-114.80999800000001,75.899428999999941],[-114.82417299999986,75.904160000000104],[-114.83667000000003,75.905822999999998],[-114.88166799999993,75.907486000000119],[-114.90722700000003,75.906372000000147],[-115.01806599999992,75.89888000000002],[-115.06416299999989,75.894714000000135],[-115.10527000000002,75.888596000000007],[-115.22165699999999,75.880264000000011],[-115.29277000000002,75.878311000000053],[-115.39472999999992,75.877762000000132],[-115.54055799999998,75.881362999999965],[-115.68222000000003,75.888321000000133],[-115.74694799999986,75.889434999999935],[-115.83029199999993,75.887772000000041],[-115.86888099999999,75.884430000000066],[-116.00472999999994,75.868590999999981],[-116.05332899999991,75.865540000000124],[-116.10665899999998,75.864150999999936],[-116.13474300000001,75.86442599999998],[-116.15083299999992,75.864700000000084],[-116.48277299999995,75.873871000000065],[-116.62389400000001,75.881927000000132],[-116.64972699999998,75.884995000000117],[-116.67666600000001,75.889709000000039],[-116.69972199999995,75.894989000000123],[-116.71501199999994,75.900269000000037],[-116.72444200000001,75.906372000000147],[-116.73416099999992,75.922484999999995],[-116.73361199999999,75.928589000000045],[-116.73137699999995,75.945251000000042],[-116.72666899999996,75.951385000000016],[-116.71389799999997,75.956649999999911],[-116.69972199999995,75.959990999999945],[-116.67748999999998,75.963882000000012],[-116.63221699999997,75.969147000000078],[-116.58528099999995,75.971924000000001],[-116.56139400000001,75.972762999999986],[-116.53721599999994,75.972488000000112],[-116.51611300000002,75.971100000000035],[-116.48528299999998,75.966385000000002],[-116.470551,75.96887200000009],[-116.46193700000003,75.974991000000102],[-116.46833800000002,75.986374000000126],[-116.52834299999995,76.027480999999966],[-116.60221899999993,76.022216999999955],[-116.645554,76.023041000000092],[-116.66944899999999,76.025818000000015],[-116.6875,76.02915999999999],[-116.69888300000002,76.034424000000115],[-116.70556599999998,76.039153999999996],[-116.708618,76.043869000000029],[-116.70777900000002,76.049988000000042],[-116.70612299999999,76.05386400000009],[-116.70168299999995,76.059982000000048],[-116.69638099999992,76.064987000000087],[-116.64138800000001,76.113312000000121],[-116.53388999999999,76.153320000000008],[-116.51611300000002,76.157761000000107],[-116.34221599999995,76.183043999999995],[-116.29611199999999,76.188582999999994],[-116.21362299999998,76.194977000000051],[-116.16361999999992,76.197204999999997],[-116.08416699999998,76.198318000000086],[-116.05943300000001,76.198029000000133],[-115.95889299999999,76.194138000000066],[-115.90862300000003,76.191924999999912],[-115.86554699999999,76.188309000000061],[-115.81582600000002,76.186920000000043],[-115.64334099999996,76.186096000000077],[-115.59500100000002,76.187759000000028],[-115.44721999999996,76.186920000000043],[-115.32749899999999,76.184708000000001],[-115.27306399999998,76.18220500000001],[-115.154449,76.169434000000081],[-115.13027999999997,76.165816999999947],[-115.02166699999998,76.15637200000009],[-114.87554899999998,76.149719000000118],[-114.85109699999992,76.149429000000112],[-114.79077100000001,76.151077000000043],[-114.72833300000002,76.153046000000074],[-114.68499799999995,76.156097000000045],[-114.66972399999997,76.158325000000048],[-114.66251399999999,76.160537999999974],[-114.662781,76.161651999999947],[-114.68083199999995,76.164992999999981],[-114.70639,76.167205999999965],[-114.80082699999997,76.168594000000041],[-114.85056299999997,76.170258000000047],[-114.89862099999993,76.172485000000108],[-114.94499200000001,76.176085999999998],[-114.99305700000002,76.182480000000055],[-115.00974299999996,76.187485000000095],[-115.01444999999995,76.192749000000049],[-115.02250700000002,76.196929999999952],[-115.04527300000001,76.202208999999982],[-115.08944699999995,76.208878000000027],[-115.15972899999997,76.218596999999988],[-115.27223200000003,76.230270000000019],[-115.37304699999999,76.230820000000051],[-115.54943800000001,76.230545000000063],[-115.75666799999993,76.234146000000123],[-115.78195199999993,76.235260000000096],[-115.82721699999991,76.23942599999998],[-115.84777800000001,76.243042000000059],[-115.86665299999993,76.247482000000048],[-115.88194299999992,76.252776999999924],[-115.91471899999993,76.275269000000037],[-115.92166099999997,76.281096999999932],[-115.92500299999989,76.286652000000061],[-115.90943899999996,76.345535000000041],[-115.90139799999997,76.349991000000102],[-115.86054999999999,76.362488000000099],[-115.64835399999998,76.420258000000047],[-115.62638899999996,76.425812000000008],[-115.51471700000002,76.45138500000013],[-115.49973299999994,76.454712000000086],[-115.46665999999993,76.455826000000059],[-115.26944700000001,76.461105000000032],[-115.02139299999993,76.474700999999982],[-115.00167799999997,76.477203000000088],[-114.978882,76.481658999999979],[-114.95638999999994,76.487198000000149],[-114.94638099999992,76.492477000000122],[-114.93360899999999,76.504990000000021],[-114.92999299999997,76.510268999999994],[-114.91944899999999,76.514435000000105],[-114.89972699999987,76.516936999999984],[-114.74054699999988,76.517212000000029],[-114.71112099999999,76.516936999999984],[-114.70194999999995,76.515274000000034],[-114.69611399999991,76.511382999999967],[-114.69833399999999,76.507492000000127],[-114.720551,76.501099000000124],[-114.70694699999996,76.489700000000028],[-114.61028299999992,76.488312000000121],[-114.45140099999998,76.49693300000007],[-114.29361,76.480269999999962],[-114.25167799999991,76.474990999999989],[-114.20722999999987,76.46804800000001],[-114.17471299999994,76.460266000000047],[-114.14806399999998,76.45138500000013],[-114.13555899999989,76.446365000000071],[-114.11833199999995,76.435257000000092],[-114.11193800000001,76.429428000000087],[-114.10333299999996,76.418869000000029],[-114.096947,76.403595000000109],[-114.09111000000001,76.388885000000016],[-114.10611,76.35554500000012],[-114.11749299999997,76.353317000000004],[-114.12943999999993,76.31191999999993],[-114.05972299999996,76.21775800000006],[-113.99665800000002,76.192749000000049],[-113.98332199999999,76.190262000000018],[-113.9583439999999,76.188873000000001],[-113.94833399999999,76.189423000000033],[-113.70889299999999,76.203598000000113],[-113.685272,76.206100000000049],[-113.63890100000003,76.212769000000094],[-113.61609599999997,76.218323000000055],[-113.52443700000003,76.235809000000017],[-113.36501299999992,76.258605999999929],[-113.32333399999993,76.262772000000041],[-113.26055899999994,76.264434999999992],[-112.99916100000002,76.267487000000074],[-112.95667300000002,76.263611000000026],[-112.90972899999997,76.257491999999957],[-112.89222699999993,76.253876000000105],[-112.86860699999994,76.244704999999954],[-112.85888699999998,76.239975000000129],[-112.85305800000003,76.234146000000123],[-112.75055700000001,76.200546000000031],[-112.71721599999995,76.198318000000086],[-112.62138399999998,76.198318000000086],[-112.59028599999999,76.196639999999945],[-112.48194899999999,76.181366000000082],[-112.46278399999994,76.178313999999943],[-112.45388800000001,76.176376000000005],[-112.42500299999995,76.167755000000113],[-112.43138099999993,76.161926000000108],[-112.43859900000001,76.15887500000008],[-112.47721899999999,76.151382000000012],[-112.49416400000001,76.146652000000017],[-112.50389099999995,76.138596000000121],[-112.52610800000002,76.110535000000027],[-112.52806099999998,76.103867000000037],[-112.52278100000001,76.099152000000004],[-112.42278299999987,76.047211000000118],[-112.41332999999992,76.042480000000012],[-112.38555899999994,76.036652000000061],[-112.29888900000003,76.029434000000094],[-112.15416699999997,76.014998999999989],[-112.06861899999996,76.003326000000129],[-112.04332699999992,75.998871000000122],[-111.9786069999999,75.981369000000086],[-111.78443900000002,75.949707000000103],[-111.76390100000003,75.946930000000009],[-111.75279199999994,75.942749000000106],[-111.72778299999999,75.92164600000001],[-111.72666900000002,75.915817000000004],[-111.729446,75.911101999999971],[-111.736107,75.90498400000007],[-111.77749599999999,75.894714000000135],[-111.87138400000003,75.887496999999996],[-111.94444299999998,75.884995000000117],[-112.00945300000001,75.881652999999972],[-112.03472899999997,75.879974000000004],[-112.05222300000003,75.878036000000066],[-112.07501200000002,75.873871000000065],[-112.165009,75.851928999999984],[-112.17971799999998,75.848038000000088],[-112.18694299999993,75.844986000000006],[-112.22556299999997,75.811096000000077],[-112.218613,75.808029000000147],[-112.20834399999995,75.80664100000007],[-112.19248999999996,75.805817000000104],[-112.02834299999995,75.815261999999962],[-111.85861199999988,75.826934999999992],[-111.69082599999996,75.822769000000108],[-111.64499699999993,75.821655000000135],[-111.604446,75.826660000000004],[-111.53971899999993,75.838318000000015],[-111.49638400000003,75.839706000000092],[-111.47638699999999,75.839157],[-111.45195000000001,75.836655000000064],[-111.44499200000001,75.832213999999965],[-111.35527000000002,75.724426000000108],[-111.35388199999994,75.718597000000102],[-111.35500299999995,75.714432000000102],[-111.38971700000002,75.663039999999967],[-111.40834000000001,75.620818999999983],[-111.40722700000003,75.614990000000148],[-111.35360700000001,75.57249500000006],[-111.31861900000001,75.545258000000103],[-111.27139299999999,75.522491000000002],[-111.24722299999996,75.518051000000014],[-111.22165699999999,75.516936999999984],[-110.995003,75.529160000000047],[-110.97222899999997,75.532486000000119],[-110.89943700000003,75.550262000000089],[-110.79499799999996,75.565262000000018],[-110.77166699999992,75.566666000000055],[-110.54222099999993,75.568878000000097],[-110.49553699999996,75.569153000000085],[-110.47582999999992,75.568329000000119],[-110.45612299999999,75.565535999999952],[-110.43110699999994,75.554152999999985],[-110.42443799999995,75.548873999999955],[-110.42223399999995,75.545532000000037],[-110.33389299999993,75.539154000000053],[-110.19583099999994,75.539703000000031],[-110.06777999999997,75.540543000000071],[-109.97416699999991,75.537490999999989],[-109.75,75.529709000000025],[-109.55304699999999,75.521652000000017],[-109.30444299999999,75.514999000000046],[-109.25389100000001,75.514160000000118],[-109.18360899999999,75.5086060000001],[-109.07472199999995,75.498322000000087],[-108.93639400000001,75.47665399999994],[-108.89943699999998,75.476379000000122],[-108.89584399999995,75.477203000000088],[-108.891953,75.480270000000019],[-108.91639700000002,75.513321000000133],[-108.92443800000001,75.52388000000002],[-108.83612099999993,75.612762000000032],[-108.8269499999999,75.686646000000053],[-108.84277299999991,75.691359999999975],[-108.88194299999998,75.692200000000071],[-108.91332999999992,75.691086000000041],[-108.94499199999996,75.694976999999938],[-109.05832699999996,75.728043000000071],[-109.05860899999993,75.733047000000056],[-109.06276699999989,75.737762000000089],[-109.12638900000002,75.7494200000001],[-109.21000699999996,75.762771999999984],[-109.26555599999995,75.770264000000054],[-109.30526700000001,75.771103000000039],[-109.45221700000002,75.783051000000057],[-109.62943999999993,75.799988000000099],[-109.63751200000002,75.822769000000108],[-109.62805200000003,75.829162999999994],[-109.62638900000002,75.83248900000001],[-109.65722699999992,75.866379000000109],[-109.66361999999998,75.870819000000097],[-109.72972099999998,75.876647999999932],[-109.737503,75.876647999999932],[-109.845551,75.863036999999963],[-109.85722399999992,75.860809000000017],[-109.88390400000003,75.849991000000045],[-109.90778399999994,75.849991000000045],[-109.93639399999989,75.856644000000017],[-110.05555699999996,75.890548999999908],[-110.05583200000001,75.894439999999975],[-110.04055800000003,75.898604999999975],[-109.92610200000001,75.927765000000079],[-109.826683,75.930541999999946],[-109.69776899999999,75.940262000000075],[-109.672234,75.943862999999908],[-109.65666199999998,75.94802900000002],[-109.42138699999998,76.035812000000021],[-109.30499299999991,76.100540000000137],[-109.30943300000001,76.106094000000098],[-109.31360599999999,76.109146000000067],[-109.396118,76.133041000000048],[-109.69999699999994,76.218872000000033],[-109.72250400000001,76.222213999999951],[-109.80943300000001,76.234421000000111],[-109.83416699999998,76.236099000000024],[-109.85861199999999,76.235809000000017],[-109.882767,76.233871000000079],[-109.89666699999992,76.230270000000019],[-109.90222199999999,76.226089000000115],[-109.90167199999996,76.221099999999979],[-109.88305699999995,76.198868000000118],[-109.88667299999997,76.194977000000051],[-109.89666699999992,76.193588000000034],[-109.91944899999993,76.196639999999945],[-109.94055200000003,76.20248400000014],[-110.01471700000002,76.229706000000078],[-110.06833599999993,76.250000000000057],[-110.08528100000001,76.255829000000062],[-110.12332199999997,76.266098000000056],[-110.15306099999998,76.27388000000002],[-110.201683,76.285538000000031],[-110.24109599999991,76.290543000000127],[-110.26583900000003,76.291367000000093],[-110.33138999999989,76.290817000000061],[-110.35804699999994,76.292206000000022],[-110.372772,76.294433999999967],[-110.38362099999995,76.297760000000039],[-110.39306599999986,76.391937000000098],[-110.38527699999986,76.423035000000084],[-110.38390400000003,76.427475000000129],[-110.28943600000002,76.433044000000109],[-110.095551,76.454163000000108],[-109.80721999999997,76.490540000000124],[-109.74638400000003,76.505553999999961],[-109.71833799999996,76.515274000000034],[-109.70639,76.521103000000096],[-109.70694700000001,76.526093000000117],[-109.71140300000002,76.529984000000013],[-109.72416699999997,76.531662000000097],[-109.74916100000002,76.531662000000097],[-109.81111099999993,76.527206000000035],[-109.83222999999992,76.529160000000047],[-109.84722899999991,76.532486000000063],[-109.83750900000001,76.538879000000065],[-109.75527999999997,76.572768999999937],[-109.70667299999997,76.587494000000106],[-109.64666699999998,76.593323000000112],[-109.56082199999997,76.640823000000069],[-109.5097429999999,76.708328000000051],[-109.30277999999998,76.79693600000013],[-109.22277800000001,76.808029000000147],[-109.12777699999992,76.819443000000035],[-109.02583299999998,76.822769000000108],[-108.97444199999995,76.816086000000098],[-108.95084400000002,76.81164600000011],[-108.93582200000003,76.809417999999937],[-108.91887699999995,76.809417999999937],[-108.88945000000001,76.814147999999989],[-108.84500099999997,76.823608000000036],[-108.82195299999989,76.829987000000074],[-108.81331599999999,76.833878000000141],[-108.81360599999999,76.837769000000037],[-108.81582600000002,76.84304800000001],[-108.81388899999996,76.847488000000055],[-108.78859699999992,76.857208000000128],[-108.77362099999999,76.85775799999999],[-108.74804699999999,76.855820000000051],[-108.65556300000003,76.817490000000078],[-108.65110800000002,76.813599000000011]],[[-97.045272999999952,76.797760000000096],[-97.075287000000003,76.793320000000108],[-97.093886999999995,76.79693600000013],[-97.188598999999954,76.822769000000108],[-97.200561999999991,76.829437000000041],[-97.200835999999924,76.834152000000074],[-97.200835999999924,76.857482999999945],[-97.187499999999943,76.860260000000039],[-97.149170000000026,76.859711000000118],[-97.128875999999991,76.85775799999999],[-97.086945000000014,76.851089000000115],[-97.005004999999983,76.819716999999969],[-96.997222999999963,76.813309000000004],[-97.009170999999981,76.807479999999998],[-97.026397999999915,76.802475000000129],[-97.045272999999952,76.797760000000096]],[[-113.46610999999996,76.766388000000006],[-113.61361699999992,76.713043000000084],[-113.628601,76.708038000000045],[-113.65249599999999,76.704436999999984],[-113.67999299999985,76.704436999999984],[-113.70417799999996,76.706374999999923],[-113.78472899999997,76.717209000000025],[-113.83667000000003,76.719986000000063],[-113.889183,76.718597000000102],[-114.05471799999992,76.703598000000056],[-114.16194200000001,76.716933999999981],[-114.21444699999995,76.720535000000041],[-114.50110599999999,76.73414600000001],[-114.73416099999997,76.746643000000006],[-114.78694200000001,76.750274999999931],[-114.82501200000002,76.753601000000003],[-114.85888699999998,76.758040999999992],[-114.87304699999993,76.760818000000086],[-114.87526700000001,76.765549000000021],[-114.87581599999999,76.770827999999995],[-114.85526999999996,76.794434000000081],[-114.83721899999989,76.801650999999993],[-114.80444299999994,76.813309000000004],[-114.76666299999988,76.82388300000008],[-114.62416099999996,76.86192299999999],[-114.60637700000001,76.865814000000057],[-114.58583099999993,76.867476999999951],[-114.33693700000003,76.877197000000081],[-114.13834400000002,76.884430000000066],[-113.96221899999995,76.889984000000084],[-113.885559,76.891663000000051],[-113.80750299999994,76.889435000000105],[-113.7625119999999,76.884430000000066],[-113.73444399999994,76.879149999999981],[-113.49804699999993,76.833328000000108],[-113.48750299999989,76.827773999999977],[-113.44915799999995,76.777205999999978],[-113.45388800000001,76.772765999999933],[-113.46610999999996,76.766388000000006]],[[-109.06610099999995,76.900543000000084],[-109.07444800000002,76.894714000000079],[-109.12581599999987,76.898604999999975],[-109.22917200000001,76.906936999999971],[-109.254997,76.910812000000135],[-109.29888899999997,76.922211000000061],[-109.30777,76.928040000000067],[-109.30387899999994,76.933867999999961],[-109.28278399999999,76.937759000000028],[-109.256958,76.938873000000058],[-109.20527600000003,76.935256999999979],[-109.17944299999999,76.932480000000055],[-109.12721299999998,76.923873999999955],[-109.09249899999992,76.912200999999925],[-109.07695000000001,76.906097000000102],[-109.06610099999995,76.900543000000084]],[[-97.256392999999946,76.967484000000127],[-97.284164000000033,76.965820000000122],[-97.335007000000019,76.968048000000067],[-97.40943900000002,76.973037999999974],[-97.458618000000001,76.977203000000145],[-97.473052999999936,76.980545000000063],[-97.423889000000031,77.005829000000062],[-97.374709999999936,77.022491000000059],[-97.286117999999874,77.033325000000104],[-97.243057000000022,77.037491000000045],[-97.199158000000011,77.037766000000033],[-97.154723999999931,77.030273000000022],[-97.136672999999973,77.025542999999971],[-97.092223999999987,77.010818000000029],[-97.093063000000029,77.004990000000134],[-97.231109999999944,76.971375000000023],[-97.256392999999946,76.967484000000127]],[[-95.659728999999913,77.058868000000075],[-95.585555999999883,77.053314000000057],[-95.56082200000003,77.053589000000045],[-95.465285999999935,77.058319000000097],[-95.417769999999962,77.05693100000002],[-95.386672999999973,77.052475000000072],[-95.368331999999953,77.048599000000024],[-95.337218999999948,77.039978000000076],[-95.288054999999872,77.022491000000059],[-95.224715999999944,77.006378000000041],[-95.181945999999925,76.996368000000132],[-95.168334999999956,76.99414100000007],[-95.115829000000019,76.995818999999983],[-95,76.99054000000001],[-94.906386999999881,76.976089000000002],[-94.813888999999904,76.971375000000023],[-94.728606999999954,76.972762999999929],[-94.714172000000019,76.97387700000013],[-94.688599000000011,76.97526600000009],[-94.636123999999995,76.976929000000041],[-94.593063000000029,76.975540000000024],[-94.526397999999972,76.969437000000084],[-94.510009999999909,76.966094999999996],[-94.494155999999919,76.960265999999933],[-94.489715999999987,76.956100000000049],[-94.40194699999995,76.918319999999994],[-94.25778200000002,76.896378000000084],[-94.254729999999995,76.891373000000044],[-94.238891999999964,76.889435000000105],[-94.207229999999925,76.888046000000088],[-94.15972899999997,76.887496999999996],[-94.096389999999985,76.888885000000073],[-94.081680000000006,76.89027400000009],[-94.054992999999854,76.894714000000079],[-94.032226999999921,76.903320000000008],[-94.026107999999965,76.909149000000014],[-94.010559000000001,76.919144000000131],[-94.001113999999916,76.923598999999967],[-93.986663999999962,76.928864000000033],[-93.964721999999995,76.932480000000055],[-93.943603999999937,76.933867999999961],[-93.899993999999936,76.93331900000004],[-93.755004999999926,76.922484999999995],[-93.739166000000012,76.920822000000044],[-93.658339999999896,76.909987999999998],[-93.649445000000014,76.908035000000041],[-93.641953000000001,76.905258000000117],[-93.635833999999988,76.89888000000002],[-93.488602000000014,76.839706000000092],[-93.301392000000021,76.768600000000049],[-93.208054000000004,76.746933000000013],[-93.202788999999939,76.747481999999934],[-93.192214999999976,76.747208000000001],[-93.187499999999943,76.745529000000033],[-93.179717999999923,76.741088999999988],[-93.169723999999974,76.686919999999986],[-93.174438000000009,76.674987999999985],[-93.18638599999997,76.660812000000021],[-93.300277999999878,76.552199999999971],[-93.306655999999919,76.54664600000001],[-93.461394999999982,76.49832200000003],[-93.595276000000013,76.462493999999992],[-93.629989999999964,76.451934999999992],[-93.641953000000001,76.44720500000011],[-93.651947000000007,76.441650000000038],[-93.652221999999938,76.437759000000142],[-93.650283999999999,76.43553200000008],[-93.548339999999882,76.386108000000092],[-93.528609999999958,76.384720000000016],[-93.509445000000028,76.386658000000125],[-93.498336999999992,76.388885000000016],[-93.46362299999987,76.399429000000055],[-93.456954999999994,76.403595000000109],[-93.467399999999998,76.40792799999997],[-93.480559999999969,76.409927000000039],[-93.500838999999985,76.4102630000001],[-93.508895999999993,76.406647000000078],[-93.520554000000004,76.405823000000112],[-93.537780999999995,76.407486000000006],[-93.554992999999968,76.411377000000073],[-93.570846999999958,76.416382000000112],[-93.580565999999976,76.423035000000084],[-93.576401000000033,76.426650999999993],[-93.533065999999963,76.443039000000056],[-93.518889999999999,76.448318000000029],[-93.501403999999923,76.452209000000096],[-93.476562000000001,76.454772999999932],[-93.454223999999954,76.456436000000053],[-93.422226000000023,76.458328000000108],[-93.392776000000026,76.461655000000064],[-93.370270000000005,76.466385000000059],[-93.357223999999917,76.470535000000098],[-93.123610999999926,76.573043999999982],[-93.111114999999927,76.580276000000083],[-93.095276000000013,76.590546000000018],[-93.096953999999926,76.596649000000127],[-93.09973100000002,76.601653999999996],[-93.046386999999925,76.616089000000102],[-92.945830999999998,76.622482000000048],[-92.90306099999998,76.621918000000107],[-92.880279999999971,76.620818999999983],[-92.857223999999917,76.618317000000047],[-92.789718999999934,76.609146000000123],[-92.705276000000026,76.594437000000084],[-92.68360899999999,76.592484000000127],[-92.654998999999975,76.594711000000018],[-92.642501999999979,76.598037999999974],[-92.632767000000001,76.602478000000133],[-92.618057000000022,76.607483000000002],[-92.605834999999956,76.610535000000141],[-92.564437999999939,76.616089000000102],[-92.541106999999897,76.617752000000053],[-92.506393000000003,76.617477000000008],[-92.468338000000017,76.61303700000002],[-92.440825999999959,76.603317000000118],[-92.42111199999988,76.598037999999974],[-92.40055799999999,76.594986000000006],[-92.386948000000018,76.593872000000033],[-92.36860699999994,76.594437000000084],[-92.330840999999964,76.597214000000008],[-92.183318999999983,76.614699999999914],[-92.077498999999989,76.637207000000046],[-92.043609999999887,76.646942000000081],[-92.004332999999917,76.657897999999932],[-91.991942999999992,76.660812000000021],[-91.970001000000025,76.664428999999984],[-91.938599000000011,76.668320000000051],[-91.910003999999901,76.670532000000094],[-91.775557999999933,76.679703000000018],[-91.668609999999944,76.684708000000057],[-91.535827999999924,76.688873000000058],[-91.410552999999936,76.689148000000102],[-91.385283999999956,76.688309000000118],[-91.132767000000001,76.664428999999984],[-91.008895999999936,76.651657000000114],[-90.986114999999984,76.649155000000064],[-90.883895999999936,76.626647999999989],[-90.871383999999978,76.622757000000092],[-90.854720999999984,76.61554000000001],[-90.849990999999875,76.609146000000123],[-90.844161999999926,76.603592000000106],[-90.837218999999948,76.599152000000117],[-90.817779999999971,76.593597000000045],[-90.779998999999975,76.585815000000082],[-90.741104000000007,76.580551000000071],[-90.674438000000009,76.573318000000086],[-90.626388999999961,76.56999200000007],[-90.582503999999972,76.565262000000018],[-90.56361400000003,76.559708000000001],[-90.50306699999993,76.53137200000009],[-90.498610999999926,76.524993999999936],[-90.468613000000005,76.479155999999989],[-90.468063000000029,76.473038000000088],[-90.48332199999993,76.46804800000001],[-90.510833999999988,76.463882000000126],[-90.538054999999929,76.46138000000002],[-90.61610399999995,76.45637499999998],[-90.638335999999924,76.455826000000059],[-90.779175000000009,76.461105000000032],[-90.826400999999976,76.463042999999971],[-91.090560999999923,76.478043000000127],[-91.304169000000002,76.504166000000055],[-91.34973100000002,76.509430000000066],[-91.373885999999857,76.511107999999979],[-91.414718999999934,76.512771999999984],[-91.441101000000003,76.512771999999984],[-91.564162999999951,76.500823999999966],[-91.566665999999998,76.498871000000008],[-91.416396999999961,76.460266000000047],[-91.402495999999985,76.457488999999953],[-91.271117999999944,76.453873000000101],[-91.147506999999962,76.450821000000019],[-91.057219999999973,76.450546000000145],[-90.99110399999995,76.447754000000089],[-90.974166999999966,76.446091000000138],[-90.797774999999945,76.42692599999998],[-90.642226999999991,76.410537999999917],[-90.414443999999946,76.403046000000018],[-90.368331999999953,76.399994000000049],[-90.317229999999938,76.394714000000022],[-90.281386999999995,76.389160000000004],[-90.06361400000003,76.361648999999943],[-89.831389999999942,76.34027100000003],[-89.543883999999935,76.316939999999988],[-89.367766999999958,76.304152999999985],[-89.305557000000022,76.299149],[-89.292496000000028,76.296097000000088],[-89.230559999999912,76.272766000000047],[-89.217772999999909,76.266663000000108],[-89.208617999999944,76.260818000000029],[-89.201110999999912,76.254166000000112],[-89.192214999999976,76.242203000000075],[-89.192490000000021,76.236099000000024],[-89.198607999999865,76.22526600000009],[-89.209166999999979,76.221099999999979],[-89.295546999999942,76.197754000000145],[-89.326400999999919,76.189423000000033],[-89.349730999999963,76.183594000000028],[-89.378051999999968,76.180267000000072],[-89.588332999999921,76.165816999999947],[-89.831954999999994,76.160812000000078],[-89.888610999999912,76.166091999999992],[-89.904175000000009,76.168869000000086],[-89.976105000000018,76.173874000000126],[-90.37332200000003,76.181366000000082],[-90.397780999999952,76.180542000000116],[-90.416945999999996,76.178863999999976],[-90.438598999999954,76.175537000000077],[-90.453613000000018,76.17053199999998],[-90.455840999999964,76.167205999999965],[-90.455565999999976,76.165543000000014],[-90.438598999999954,76.162201000000096],[-90.414443999999946,76.159987999999942],[-90.256957999999941,76.146942000000024],[-90.22222899999997,76.144440000000145],[-90.151671999999905,76.141663000000051],[-90.064162999999894,76.136932000000115],[-90.048614999999984,76.132751000000042],[-90.06361400000003,76.127762000000075],[-90.085280999999895,76.1244200000001],[-90.110824999999977,76.124145999999996],[-90.308884000000035,76.138321000000076],[-90.448607999999979,76.154984000000013],[-90.666397000000018,76.166930999999977],[-90.786117999999988,76.171371000000136],[-90.937209999999936,76.180817000000104],[-91.112212999999883,76.191924999999912],[-91.204726999999934,76.212769000000094],[-91.219726999999978,76.218323000000055],[-91.256957999999941,76.227203000000088],[-91.274444999999957,76.230270000000019],[-91.423614999999984,76.253876000000105],[-91.445830999999941,76.256653000000028],[-91.571395999999936,76.26527400000009],[-91.59722899999997,76.264999000000103],[-91.613616999999977,76.262206999999989],[-91.599730999999963,76.25610400000005],[-91.579453000000001,76.251663000000121],[-91.416655999999989,76.22526600000009],[-91.332779000000016,76.214157],[-91.33666999999997,76.178588999999988],[-91.27194199999991,76.155822999999941],[-91.220276000000013,76.161651999999947],[-91.203339000000028,76.16137700000013],[-91.163329999999974,76.159714000000008],[-91.116652999999985,76.15637200000009],[-90.882491999999957,76.137207000000103],[-90.700287000000003,76.119431000000134],[-90.67971799999998,76.117203000000018],[-90.665008999999998,76.112198000000149],[-90.757506999999976,76.07638500000013],[-90.785277999999948,76.072769000000051],[-90.809432999999956,76.071930000000066],[-90.833618000000001,76.072769000000051],[-90.855270000000019,76.072220000000129],[-90.862502999999947,76.069992000000127],[-90.866104000000007,76.067215000000033],[-90.864715999999987,76.064987000000087],[-90.848891999999978,76.060806000000014],[-90.71578199999999,76.06343099999998],[-90.703605999999922,76.064926000000014],[-90.663940000000025,76.074265000000025],[-90.660941999999864,76.076431000000014],[-90.611664000000019,76.084717000000069],[-90.599166999999966,76.088042999999971],[-90.575012000000015,76.090271000000087],[-90.548339999999939,76.091370000000097],[-90.474166999999966,76.089706000000035],[-90.429442999999992,76.088318000000129],[-90.408614999999998,76.08638000000002],[-90.194442999999922,76.062759000000142],[-90.190552000000025,76.06109600000002],[-90.193877999999984,76.055251999999996],[-90.202498999999989,76.050261999999975],[-90.215012000000002,76.04582199999993],[-90.233886999999925,76.041092000000106],[-90.27416999999997,76.034424000000115],[-90.301666000000012,76.032486000000006],[-90.328613000000018,76.031372000000033],[-90.404723999999931,76.031096999999988],[-90.635947999999985,76.028152000000034],[-90.718452000000013,76.022658999999976],[-90.904175000000009,76.015549000000021],[-90.929168999999888,76.015549000000021],[-91.005279999999971,76.024994000000049],[-91.144729999999981,76.021102999999982],[-91.160827999999924,76.018051000000071],[-91.155272999999909,76.014160000000004],[-91.069732999999928,75.990265000000022],[-90.950286999999946,75.962204000000099],[-90.941939999999988,75.955551000000128],[-90.938598999999954,75.951385000000016],[-90.941939999999988,75.945526000000029],[-90.948882999999967,75.939972000000012],[-90.968063000000029,75.931091000000094],[-91.016953000000001,75.925537000000077],[-91.070557000000008,75.922484999999995],[-91.100280999999995,75.918594000000098],[-91.118880999999931,75.913879000000065],[-91.129439999999988,75.908600000000092],[-91.143340999999964,75.897217000000069],[-91.125823999999852,75.857483000000002],[-91.132492000000013,75.851928999999984],[-91.135833999999932,75.846099999999979],[-91.134170999999924,75.842484000000127],[-91.129990000000021,75.839157],[-91.107498000000021,75.840545999999961],[-91.091675000000009,75.843323000000055],[-91.079452999999944,75.848038000000088],[-91.053328999999906,75.881087999999977],[-90.939986999999974,75.915268000000083],[-90.903060999999923,75.924698000000149],[-90.895844000000011,75.927200000000028],[-90.886123999999995,75.931655999999975],[-90.847778000000005,75.952208999999982],[-90.833618000000001,75.96026599999999],[-90.827788999999996,75.966385000000002],[-90.805557000000022,75.985535000000141],[-90.793883999999991,75.99470500000001],[-90.777495999999985,75.996094000000028],[-90.755843999999968,75.994980000000055],[-90.717223999999931,75.989151000000049],[-90.569457999999941,75.979980000000069],[-90.48332199999993,75.980270000000075],[-90.464447000000007,75.978591999999992],[-90.444716999999969,75.974151999999947],[-90.433318999999983,75.97026100000005],[-90.429442999999992,75.968323000000112],[-90.434158000000025,75.963318000000072],[-90.442490000000021,75.959717000000012],[-90.49221799999998,75.945816000000036],[-90.519164999999987,75.936096000000134],[-90.526107999999965,75.930541999999946],[-90.528335999999911,75.925537000000077],[-90.531386999999938,75.913605000000132],[-90.531676999999945,75.903595000000053],[-90.529998999999862,75.898331000000042],[-90.521118000000001,75.895538000000101],[-90.504729999999938,75.895263999999941],[-90.496947999999975,75.897766000000047],[-90.34722899999997,75.949417000000096],[-90.342223999999987,75.953049000000078],[-90.337783999999999,75.963043000000084],[-90.339447000000007,75.968323000000112],[-90.256957999999941,75.966933999999981],[-90.118057000000022,75.941924999999969],[-90.114440999999943,75.947753999999975],[-90.102492999999981,75.961654999999951],[-90.072509999999966,75.995529000000147],[-90.060271999999998,76.00471500000009],[-90.052779999999984,76.007217000000026],[-90.037506000000008,76.009155000000135],[-90.015015000000005,76.010269000000108],[-89.966659999999877,76.008605999999986],[-89.947495000000004,76.007217000000026],[-89.929717999999923,76.00471500000009],[-89.924437999999952,76.00221300000004],[-89.909163999999976,75.964995999999985],[-89.825012000000015,75.943038999999942],[-89.687499999999943,75.899993999999992],[-89.689986999999917,75.894989000000123],[-89.702224999999999,75.879700000000071],[-89.70944199999991,75.874146000000053],[-89.724441999999954,75.863036999999963],[-89.750290000000007,75.846649000000127],[-89.772781000000009,75.836380000000077],[-89.778885000000002,75.831665000000044],[-89.782227000000034,75.825821000000019],[-89.776397999999972,75.792755000000056],[-89.775008999999955,75.787491000000102],[-89.765014999999948,75.785812000000078],[-89.738891999999964,75.786652000000117],[-89.692490000000021,75.796371000000136],[-89.68638599999997,75.802474999999959],[-89.688048999999978,75.804428000000087],[-89.689162999999951,75.809708000000001],[-89.685546999999985,75.814147999999989],[-89.61999499999996,75.853592000000106],[-89.611114999999927,75.857208000000128],[-89.587508999999955,75.859146000000067],[-89.558334000000002,75.857483000000002],[-89.439163000000008,75.845260999999994],[-89.422774999999945,75.841934000000094],[-89.410277999999948,75.829712000000086],[-89.392501999999979,75.821105999999986],[-89.37777699999998,75.816665999999998],[-89.320007000000032,75.803863999999976],[-89.277495999999928,75.798324999999977],[-89.201401000000033,75.786926000000051],[-89.172775000000001,75.780548000000124],[-89.164169000000015,75.774704000000099],[-89.160278000000005,75.768051000000128],[-89.160552999999936,75.755828999999949],[-89.166945999999996,75.7452550000001],[-89.253890999999953,75.631088000000034],[-89.262787000000003,75.627761999999962],[-89.275008999999955,75.627761999999962],[-89.336670000000026,75.627761999999962],[-89.543059999999969,75.610535000000141],[-89.649170000000026,75.61554000000001],[-89.763061999999991,75.577484000000027],[-89.765288999999882,75.575546000000088],[-89.739440999999943,75.573607999999922],[-89.722504000000015,75.574157999999954],[-89.681945999999868,75.57998699999996],[-89.649993999999992,75.587204000000099],[-89.605559999999912,75.589705999999978],[-89.588332999999921,75.58859300000006],[-89.550995,75.579711999999972],[-89.542496000000028,75.570540999999992],[-89.548614999999984,75.566085999999984],[-89.56806899999998,75.5619200000001],[-89.628325999999959,75.561370999999951],[-89.676392000000021,75.562194999999917],[-89.692490000000021,75.561096000000134],[-89.706954999999994,75.557480000000055],[-89.700835999999981,75.553040000000067],[-89.645553999999947,75.548325000000034],[-89.576674999999966,75.547759999999982],[-89.550827000000027,75.548873999999955],[-89.526397999999915,75.551926000000094],[-89.515015000000005,75.554152999999985],[-89.500564999999995,75.558868000000018],[-89.491942999999992,75.565535999999952],[-89.473617999999874,75.574707000000103],[-89.458618000000001,75.579436999999928],[-89.441665999999998,75.583327999999995],[-89.431670999999994,75.584427000000005],[-89.403335999999967,75.587204000000099],[-89.351669000000015,75.589157000000057],[-89.302215999999987,75.589157000000057],[-89.235824999999977,75.586655000000121],[-89.217223999999987,75.584991000000116],[-89.182770000000005,75.577208999999982],[-89.174438000000009,75.572768999999994],[-89.168335000000013,75.566666000000055],[-89.156386999999938,75.549713000000111],[-89.154998999999975,75.544434000000138],[-89.149170000000026,75.532211000000075],[-89.143065999999976,75.524429000000112],[-89.09973100000002,75.484146000000067],[-88.963897999999972,75.431931000000077],[-88.950561999999934,75.429703000000131],[-88.921386999999982,75.427199999999971],[-88.87110899999999,75.43414300000012],[-88.841675000000009,75.436371000000065],[-88.818618999999956,75.436920000000043],[-88.796951000000035,75.434982000000105],[-88.779723999999987,75.432479999999998],[-88.768889999999942,75.434708000000001],[-88.747771999999941,75.470825000000104],[-88.75,75.474991000000045],[-88.801392000000021,75.531372000000147],[-88.865829000000019,75.586105000000089],[-88.755004999999983,75.676650999999936],[-88.738892000000021,75.67942800000003],[-88.722777999999892,75.679153000000042],[-88.678329000000019,75.675261999999975],[-88.631667999999991,75.667206000000078],[-88.600829999999917,75.659424000000115],[-88.574172999999917,75.648880000000077],[-88.542770000000019,75.635818000000029],[-88.50778200000002,75.619431000000077],[-88.448883000000023,75.59526100000005],[-88.399445000000014,75.579162999999994],[-88.364166000000012,75.568878000000097],[-88.315826000000015,75.556366000000082],[-88.228881999999999,75.539429000000098],[-88.203613000000018,75.531097000000102],[-88.198882999999967,75.528595000000053],[-88.196945000000028,75.522766000000047],[-88.198607999999979,75.517212000000029],[-88.201401000000033,75.512206999999989],[-88.217498999999918,75.509720000000073],[-88.240828999999962,75.509155000000078],[-88.290833000000021,75.49693300000007],[-88.305831999999896,75.492203000000075],[-88.301391999999964,75.488037000000134],[-88.295273000000009,75.484985000000052],[-88.263061999999934,75.476089000000115],[-88.228881999999999,75.471099999999979],[-88.21305799999999,75.470535000000098],[-88.200835999999924,75.471924000000115],[-88.148055999999997,75.488876000000118],[-88.12249799999995,75.501099000000011],[-88.06806899999998,75.521927000000062],[-87.958054000000004,75.544144000000131],[-87.751403999999923,75.576660000000061],[-87.716110000000015,75.575271999999927],[-87.697768999999937,75.573607999999922],[-87.661391999999921,75.567215000000147],[-87.648346000000004,75.5619200000001],[-87.495543999999995,75.485809000000017],[-87.494995000000017,75.483871000000079],[-87.498885999999914,75.478043000000127],[-87.504729999999995,75.474425999999994],[-87.529998999999918,75.465271000000143],[-87.563889000000017,75.459152000000074],[-87.588607999999965,75.456375000000037],[-87.601394999999968,75.453323000000069],[-87.606383999999935,75.449707000000046],[-87.594726999999978,75.446365000000071],[-87.58277899999996,75.444702000000007],[-87.568344000000025,75.443588000000034],[-87.548614999999927,75.444427000000132],[-87.533614999999884,75.446090999999967],[-87.5,75.452209000000096],[-87.459732000000031,75.461380000000077],[-87.445830999999941,75.465271000000143],[-87.434433000000013,75.468871999999976],[-87.4183349999999,75.479706000000078],[-87.416397000000018,75.485260000000039],[-87.430283000000031,75.501099000000011],[-87.437774999999988,75.5086060000001],[-87.444442999999922,75.513885000000073],[-87.46665999999999,75.521103000000096],[-87.462783999999942,75.563034000000073],[-87.393065999999976,75.604156000000103],[-87.381103999999937,75.609420999999998],[-87.354720999999984,75.61303700000002],[-87.285552999999879,75.620255000000043],[-87.263335999999981,75.621094000000028],[-87.25111400000003,75.621094000000028],[-87.234160999999915,75.618317000000104],[-87.088057999999933,75.57998699999996],[-87.079178000000013,75.566666000000055],[-87.072783999999956,75.559981999999991],[-87.055267000000015,75.546936000000017],[-87.011948000000018,75.531372000000147],[-86.967498999999975,75.518326000000002],[-86.931106999999997,75.508041000000048],[-86.914444000000003,75.503876000000048],[-86.862777999999935,75.491653000000042],[-86.807495000000017,75.479156000000046],[-86.771117999999944,75.475540000000137],[-86.72222899999997,75.474991000000045],[-86.643340999999964,75.478043000000127],[-86.631103999999993,75.477767999999912],[-86.601943999999946,75.476379000000122],[-86.583892999999875,75.474701000000039],[-86.567504999999983,75.472214000000122],[-86.48332199999993,75.456650000000025],[-86.464721999999995,75.452773999999977],[-86.375548999999978,75.427475000000129],[-86.365554999999972,75.423309000000074],[-86.368880999999988,75.418320000000108],[-86.389175000000023,75.40776100000005],[-86.400283999999999,75.402205999999978],[-86.415282999999988,75.398880000000133],[-86.506392999999946,75.388046000000031],[-86.553878999999938,75.381363000000079],[-86.576675000000023,75.377197000000024],[-86.611114999999984,75.36831699999999],[-86.615279999999984,75.365540000000067],[-86.596663999999976,75.361649],[-86.544723999999974,75.35914600000001],[-86.520279000000016,75.360259999999982],[-86.491942999999935,75.362762000000089],[-86.376099000000011,75.376373000000058],[-86.358336999999949,75.379699999999957],[-86.245270000000005,75.401932000000045],[-86.198607999999922,75.416091999999935],[-86.169997999999964,75.418594000000041],[-86.082503999999972,75.421371000000136],[-86.031386999999938,75.422485000000108],[-85.833618000000001,75.416091999999935],[-85.680557000000022,75.408034999999984],[-85.674438000000009,75.418320000000108],[-85.908614999999941,75.460266000000104],[-86.006392999999889,75.472214000000122],[-86.109726000000023,75.481934000000024],[-86.124709999999993,75.485535000000084],[-86.138335999999924,75.489975000000072],[-86.149445000000014,75.496368000000075],[-86.154449,75.500823999999966],[-86.143065999999976,75.508041000000048],[-86.11332699999997,75.514999000000046],[-86.096953999999982,75.51776099999995],[-86.00389100000001,75.531372000000147],[-85.908614999999941,75.543868999999916],[-85.865554999999972,75.544708000000071],[-85.763061999999991,75.546097000000088],[-85.44387799999987,75.560256999999979],[-85.329178000000013,75.561096000000134],[-85.303328999999962,75.568878000000097],[-85.189986999999917,75.611923000000047],[-85.074172999999917,75.651931999999988],[-85.054442999999992,75.656096999999988],[-85.039169000000015,75.657760999999994],[-84.926940999999943,75.658874999999966],[-84.879165999999884,75.656937000000028],[-84.797226000000023,75.652771000000143],[-84.763061999999934,75.650269000000037],[-84.71833799999996,75.642761000000064],[-84.683883999999921,75.634430000000123],[-84.62249799999995,75.628036000000066],[-84.59973100000002,75.626647999999989],[-84.572234999999978,75.626373000000001],[-84.524719000000005,75.628036000000066],[-84.497497999999894,75.631653000000028],[-84.503066999999987,75.633330999999998],[-84.519454999999937,75.636108000000036],[-84.539992999999981,75.637772000000098],[-84.557220000000029,75.63888500000013],[-84.607773000000009,75.639160000000004],[-84.63110399999988,75.640548999999965],[-84.651107999999965,75.643599999999992],[-84.657226999999921,75.647491000000059],[-84.66361999999998,75.68609600000002],[-84.644454999999994,75.687194999999974],[-84.482773000000009,75.694427000000076],[-84.350554999999872,75.697754000000032],[-84.322783999999956,75.699141999999938],[-84.299164000000019,75.70277400000009],[-84.070556999999951,75.761932000000115],[-83.929442999999878,75.810806000000071],[-83.878150999999946,75.818962000000056],[-83.767226999999934,75.824158000000125],[-83.740554999999972,75.824432000000058],[-83.722503999999958,75.822495000000004],[-83.703887999999949,75.818329000000062],[-83.698043999999925,75.814423000000033],[-83.706389999999942,75.812195000000088],[-83.72193900000002,75.810806000000071],[-83.74888599999997,75.80664100000007],[-83.752228000000002,75.801376000000005],[-83.736938000000009,75.795258000000047],[-83.698607999999979,75.790268000000026],[-83.672774999999945,75.788879000000009],[-83.619995000000017,75.789429000000041],[-83.56610099999989,75.791656000000103],[-83.515288999999882,75.789703000000145],[-83.495269999999948,75.78637700000013],[-83.479720999999927,75.782211000000018],[-83.464721999999995,75.776093000000117],[-83.458344000000011,75.770264000000054],[-83.447768999999994,75.755828999999949],[-83.43360899999999,75.750274999999988],[-83.419158999999866,75.748870999999951],[-83.292220999999927,75.737762000000089],[-83.123610999999983,75.734421000000054],[-83.065276999999924,75.739151000000049],[-82.960007000000019,75.756103999999993],[-82.82028200000002,75.781937000000084],[-82.799437999999952,75.786102000000085],[-82.664718999999991,75.811371000000122],[-82.466400000000021,75.828048999999965],[-82.327224999999942,75.836928999999998],[-82.279175000000009,75.836655000000064],[-82.139998999999875,75.826934999999992],[-81.95666499999993,75.815261999999962],[-81.885559000000001,75.811096000000077],[-81.660827999999924,75.811371000000122],[-81.536941999999954,75.809417999999994],[-81.450561999999991,75.800812000000064],[-81.212509000000011,75.771378000000084],[-81.22084000000001,75.704712000000029],[-81.276671999999962,75.668320000000051],[-81.281677000000002,75.663605000000018],[-81.285278000000005,75.657486000000006],[-81.271118000000001,75.651382000000126],[-81.256957999999997,75.649719000000005],[-81.010009999999966,75.633330999999998],[-80.983886999999982,75.633330999999998],[-80.857772999999952,75.634995000000004],[-80.779998999999918,75.637772000000098],[-80.547226000000023,75.650818000000015],[-80.502501999999936,75.652206000000092],[-80.480559999999969,75.651093000000003],[-80.46665999999999,75.649428999999998],[-80.316955999999948,75.630539000000056],[-80.275283999999999,75.624985000000095],[-80.256119000000012,75.62164300000012],[-80.199158000000011,75.608871000000136],[-80.101944000000003,75.586929000000055],[-80.068344000000025,75.578872999999987],[-79.953612999999962,75.540268000000083],[-79.948607999999922,75.534149000000014],[-79.956115999999952,75.530822999999998],[-80.085006999999905,75.507766999999944],[-80.191665999999884,75.489975000000072],[-80.252501999999993,75.485809000000017],[-80.355269999999962,75.473877000000073],[-80.371932999999956,75.468871999999976],[-80.373046999999929,75.463042999999971],[-80.358337000000006,75.458602999999982],[-80.338607999999908,75.456375000000037],[-80.306655999999919,75.456099999999992],[-80.108046999999942,75.469147000000021],[-80.000289999999893,75.476928999999984],[-79.929168999999945,75.479706000000078],[-79.73332199999993,75.471924000000115],[-79.714721999999995,75.470535000000098],[-79.644164999999987,75.462494000000049],[-79.586394999999982,75.454712000000086],[-79.574721999999895,75.449997000000053],[-79.581954999999994,75.446365000000071],[-79.635559000000001,75.445815999999979],[-79.656386999999995,75.444138000000066],[-79.675551999999925,75.441360000000032],[-79.683059999999955,75.435806000000071],[-79.682495000000017,75.430817000000104],[-79.62222300000002,75.402480999999966],[-79.605559999999969,75.398041000000148],[-79.561660999999958,75.394989000000066],[-79.520003999999972,75.391098],[-79.503066999999987,75.388596000000064],[-79.488051999999925,75.383330999999998],[-79.486937999999952,75.379974000000061],[-79.488601999999958,75.362487999999928],[-79.510009999999966,75.338043000000084],[-79.527495999999928,75.322220000000073],[-79.539443999999889,75.317763999999954],[-79.563323999999966,75.31860400000005],[-79.596664000000033,75.316086000000041],[-79.610000999999897,75.310806000000014],[-79.61471599999993,75.305542000000003],[-79.611938000000009,75.298325000000091],[-79.587508999999898,75.287491000000045],[-79.570847000000015,75.283051],[-79.548889000000031,75.281096999999988],[-79.443084999999996,75.280190000000061],[-79.506957999999884,75.229980000000069],[-79.571121000000005,75.199142000000052],[-79.629439999999988,75.174987999999928],[-79.651672000000019,75.172484999999995],[-79.731948999999929,75.164703000000031],[-79.774170000000026,75.167205999999965],[-79.835555999999997,75.160262999999986],[-79.929442999999878,75.140549000000078],[-79.944152999999915,75.136383000000023],[-79.954726999999934,75.12692300000009],[-79.955841000000021,75.113876000000118],[-79.955275999999969,75.106644000000017],[-79.955841000000021,75.100266000000033],[-79.960555999999883,75.094711000000132],[-79.974166999999852,75.08998100000008],[-80.128875999999991,75.068054000000018],[-80.150832999999977,75.065536000000066],[-80.215012000000002,75.063309000000004],[-80.296111999999994,75.058868000000075],[-80.440552000000025,75.038040000000024],[-80.427489999999921,75.029984000000127],[-80.402495999999928,75.021103000000039],[-80.327498999999989,74.998596000000134],[-80.310546999999985,74.996368000000132],[-80.297225999999966,74.996643000000006],[-80.238892000000021,74.994431000000134],[-80.194442999999978,74.989975000000015],[-80.182219999999916,74.986649],[-80.173888999999917,74.982483000000059],[-80.184158000000025,74.979430999999977],[-80.216110000000015,74.976089000000002],[-80.243057000000022,74.973038000000031],[-80.258347000000015,74.969711000000075],[-80.271941999999967,74.964996000000042],[-80.278884999999946,74.959427000000062],[-80.278884999999946,74.957214000000079],[-80.274170000000026,74.951096000000121],[-80.266112999999962,74.946640000000059],[-80.240828999999962,74.946640000000059],[-80.033614999999941,74.974426000000108],[-80.026946999999893,74.979980000000069],[-80.013061999999991,74.986923000000104],[-79.975280999999995,74.9994200000001],[-79.942764000000011,75.006943000000092],[-79.919158999999922,75.010543999999982],[-79.795273000000009,75.027480999999966],[-79.776947000000007,75.028320000000122],[-79.716400000000021,75.028869999999984],[-79.692763999999954,75.028046000000018],[-79.613891999999964,75.01998900000001],[-79.59722899999997,75.017487000000131],[-79.582503999999915,75.014435000000049],[-79.505004999999926,74.998321999999973],[-79.501953000000015,74.99581900000004],[-79.507232999999985,74.993042000000116],[-79.535827999999924,74.991653000000099],[-79.555557000000022,74.987198000000092],[-79.551940999999943,74.981659000000093],[-79.464721999999995,74.933319000000097],[-79.442489999999907,74.921646000000067],[-79.426392000000021,74.917206000000022],[-79.391953000000001,74.911102000000028],[-79.35722399999986,74.907486000000119],[-79.338608000000022,74.903320000000065],[-79.334732000000031,74.899993999999992],[-79.333617999999944,74.896378000000141],[-79.333617999999944,74.894440000000031],[-79.335830999999928,74.889160000000118],[-79.370543999999995,74.876373000000115],[-79.390839000000028,74.872482000000048],[-79.501953000000015,74.859421000000111],[-79.530288999999925,74.857758000000047],[-79.580001999999979,74.858321999999987],[-79.732773000000009,74.836655000000121],[-79.851943999999946,74.818878000000041],[-79.860549999999989,74.814697000000137],[-79.880553999999904,74.813034000000073],[-79.930557000000022,74.813309000000061],[-80.06806899999998,74.836380000000077],[-80.25306699999993,74.870818999999983],[-80.274170000000026,74.881087999999977],[-80.28195199999999,74.889984000000084],[-80.293883999999935,74.919983000000116],[-80.293610000000001,74.926376000000062],[-80.296951000000035,74.931090999999924],[-80.306380999999988,74.939148000000102],[-80.321670999999981,74.937759000000085],[-80.335280999999952,74.933044000000052],[-80.362212999999997,74.923599000000024],[-80.386123999999882,74.913604999999961],[-80.396118000000001,74.908599999999922],[-80.413054999999986,74.897766000000047],[-80.416655999999932,74.89387499999998],[-80.416107000000011,74.88888500000013],[-80.361114999999984,74.868866000000025],[-80.347777999999948,74.864990000000148],[-80.329726999999991,74.861374000000069],[-80.296951000000035,74.856934000000081],[-80.261123999999995,74.852767999999969],[-80.224166999999966,74.849426000000051],[-80.18638599999997,74.843323000000112],[-80.153609999999958,74.836655000000121],[-80.108611999999994,74.824432000000058],[-80.097778000000005,74.820267000000058],[-80.101668999999958,74.789154000000053],[-80.159164000000033,74.730269999999962],[-80.191375999999934,74.698029000000076],[-80.156112999999948,74.636932000000058],[-80.148894999999925,74.631088000000034],[-80.146666999999979,74.626923000000033],[-80.149444999999957,74.622482000000105],[-80.161391999999921,74.612198000000092],[-80.231673999999998,74.578049000000078],[-80.248046999999985,74.576096000000121],[-80.253715999999997,74.576050000000066],[-80.339995999999985,74.580551000000128],[-80.385009999999966,74.5816650000001],[-80.454453000000001,74.580825999999945],[-80.468886999999938,74.579436999999984],[-80.488891999999964,74.575546000000088],[-80.591674999999952,74.56442300000009],[-80.753066999999987,74.563309000000118],[-80.844161999999983,74.562759000000085],[-80.951950000000011,74.566086000000041],[-80.974715999999944,74.566939999999988],[-80.994155999999919,74.569717000000082],[-81.029998999999975,74.576660000000061],[-81.049727999999959,74.579163000000051],[-81.069457999999884,74.579711999999972],[-81.219161999999983,74.571381000000088],[-81.269729999999981,74.566086000000041],[-81.287505999999951,74.563034000000073],[-81.510833999999988,74.514434999999935],[-81.670836999999949,74.478592000000106],[-81.759170999999924,74.461105000000089],[-81.785003999999958,74.457764000000054],[-81.810821999999973,74.456940000000088],[-81.854720999999984,74.459427000000119],[-82.060546999999929,74.475540000000024],[-82.081680000000006,74.477203000000088],[-82.101395000000025,74.479706000000078],[-82.327498999999989,74.510544000000095],[-82.511123999999995,74.527206000000035],[-82.557219999999973,74.514709000000096],[-82.574722000000008,74.511658000000068],[-82.592498999999975,74.510544000000095],[-82.615279999999984,74.511108000000036],[-82.74749799999995,74.518051000000014],[-82.783614999999941,74.520263999999997],[-82.871933000000013,74.538589000000059],[-82.914169000000015,74.549149],[-82.953613000000018,74.565810999999997],[-83.018340999999907,74.594436999999914],[-83.056380999999988,74.61554000000001],[-83.079726999999934,74.630264000000068],[-83.088607999999965,74.636658000000125],[-83.092498999999975,74.641372999999987],[-83.102218999999934,74.65415999999999],[-83.12388599999997,74.684982000000048],[-83.128051999999968,74.691925000000026],[-83.131942999999978,74.708328000000108],[-83.128051999999968,74.71748400000007],[-83.107772999999952,74.748032000000023],[-83.090835999999854,74.757767000000115],[-83.075012000000015,74.762206999999933],[-83.041381999999942,74.769989000000066],[-83.028884999999946,74.774993999999936],[-83.02305599999994,74.780548000000124],[-83.024170000000026,74.783325000000048],[-83.081680000000006,74.818054000000075],[-83.09584000000001,74.82388300000008],[-83.105269999999962,74.826660000000004],[-83.116104000000007,74.828597999999943],[-83.15583799999996,74.826935000000049],[-83.203063999999983,74.820830999999998],[-83.227782999999874,74.820540999999992],[-83.24888599999997,74.823608000000092],[-83.299727999999959,74.835541000000148],[-83.33666999999997,74.849426000000051],[-83.380829000000006,74.866379000000109],[-83.402221999999938,74.875259000000142],[-83.475554999999929,74.896652000000074],[-83.511397999999986,74.901657000000114],[-83.52806099999998,74.901657000000114],[-83.547500999999954,74.897491000000059],[-83.55972300000002,74.892487000000074],[-83.560546999999985,74.887206999999989],[-83.559433000000013,74.880814000000044],[-83.556945999999925,74.875259000000142],[-83.527221999999995,74.84526100000005],[-83.518616000000009,74.839432000000045],[-83.472504000000015,74.815262000000018],[-83.458617999999944,74.808028999999976],[-83.429992999999911,74.797484999999938],[-83.394164999999987,74.790268000000026],[-83.375274999999931,74.786926000000108],[-83.354995999999971,74.784424000000001],[-83.327498999999932,74.779160000000047],[-83.318893000000003,74.774993999999936],[-83.324172999999973,74.755264000000125],[-83.327498999999932,74.75],[-83.454726999999991,74.591094999999996],[-83.474441999999954,74.579711999999972],[-83.484160999999972,74.574996999999939],[-83.598891999999978,74.543594000000098],[-83.611664000000019,74.540817000000004],[-83.720839999999953,74.545532000000037],[-83.785552999999936,74.548598999999967],[-83.805556999999965,74.550812000000121],[-83.830840999999964,74.551376000000062],[-83.855270000000019,74.550812000000121],[-83.907501000000025,74.546936000000073],[-84.037780999999939,74.53414900000007],[-84.063323999999966,74.530822999999998],[-84.107498000000021,74.523314999999968],[-84.145844000000011,74.515548999999965],[-84.216400000000021,74.507216999999969],[-84.238892000000021,74.505554000000018],[-84.285552999999936,74.50360100000006],[-84.332778999999903,74.503876000000105],[-84.355835000000013,74.504440000000045],[-84.396118000000001,74.507492000000127],[-84.641678000000013,74.506943000000035],[-84.850280999999995,74.502212999999983],[-84.871384000000035,74.501389000000017],[-84.889450000000011,74.502212999999983],[-84.899445000000014,74.503326000000072],[-84.91194200000001,74.508041000000105],[-84.916655999999932,74.511108000000036],[-84.983063000000016,74.570541000000048],[-84.985275000000001,74.579163000000051],[-84.974715999999944,74.617477000000065],[-84.960281000000009,74.656937000000084],[-84.955001999999865,74.66276600000009],[-84.950835999999981,74.668869000000029],[-84.950835999999981,74.672760000000096],[-84.952498999999989,74.679153000000042],[-84.955565999999976,74.684708000000114],[-84.964172000000019,74.691925000000026],[-84.973327999999867,74.696091000000138],[-84.990554999999972,74.698029000000076],[-85.003341999999975,74.697479000000044],[-85.063888999999961,74.651657],[-85.072509999999966,74.641098000000113],[-85.044723999999917,74.612198000000092],[-85.037506000000008,74.541092000000049],[-85.036941999999954,74.535263000000043],[-85.038604999999961,74.528870000000097],[-85.043609999999944,74.523314999999968],[-85.074172999999917,74.508880999999974],[-85.087783999999886,74.504990000000078],[-85.104720999999984,74.501663000000121],[-85.125274999999931,74.49859600000002],[-85.21444699999995,74.49192800000003],[-85.259445000000028,74.490540000000124],[-85.353057999999976,74.49859600000002],[-85.363616999999977,74.501937999999996],[-85.369995000000017,74.509430000000066],[-85.363891999999964,74.537490999999989],[-85.365554999999972,74.544144000000131],[-85.370270000000005,74.552475000000072],[-85.468613000000005,74.658875000000023],[-85.474166999999909,74.664428999999984],[-85.482773000000009,74.671646000000123],[-85.49499499999996,74.679153000000042],[-85.504455999999948,74.683318999999926],[-85.520554000000004,74.688033999999959],[-85.527221999999881,74.688873000000115],[-85.543335000000013,74.686371000000065],[-85.549987999999985,74.68193100000002],[-85.524170000000026,74.598602000000142],[-85.520844000000011,74.593048000000124],[-85.509170999999981,74.579987000000017],[-85.486938000000009,74.561096000000134],[-85.481948999999929,74.554152999999985],[-85.479996000000028,74.547760000000039],[-85.479171999999949,74.541655999999989],[-85.480285999999921,74.537200999999982],[-85.50389100000001,74.520538000000101],[-85.527221999999881,74.510269000000051],[-85.542220999999927,74.505554000000018],[-85.560546999999929,74.501389000000017],[-85.580840999999964,74.498322000000087],[-85.604172000000005,74.495818999999926],[-86.013335999999981,74.479431000000091],[-86.059433000000013,74.478592000000106],[-86.082503999999972,74.479156000000046],[-86.120834000000002,74.482207999999957],[-86.123046999999872,74.48332199999993],[-86.122771999999941,74.489975000000129],[-86.101105000000018,74.511383000000023],[-86.085555999999997,74.529434000000037],[-86.079178000000013,74.53915400000011],[-86.077788999999939,74.545257999999933],[-86.082779000000016,74.555251999999939],[-86.153610000000015,74.60914600000001],[-86.177779999999927,74.615265000000022],[-86.197494999999947,74.615265000000022],[-86.215835999999854,74.610809000000074],[-86.224441999999954,74.607758000000047],[-86.235001000000011,74.601929000000041],[-86.240554999999972,74.59693900000002],[-86.242766999999958,74.59137000000004],[-86.23443599999996,74.581100000000106],[-86.227492999999981,74.575271999999984],[-86.223052999999936,74.562194999999974],[-86.232223999999974,74.540268000000083],[-86.235275000000001,74.535263000000043],[-86.244719999999973,74.52388000000002],[-86.278885000000002,74.508605999999929],[-86.332779000000016,74.490265000000136],[-86.399170000000026,74.479431000000091],[-86.423324999999977,74.478866999999923],[-86.443603999999993,74.481093999999985],[-86.462508999999955,74.485535000000084],[-86.633330999999998,74.526093000000003],[-86.664168999999958,74.534714000000065],[-86.69110099999989,74.544144000000131],[-86.708618000000001,74.551086000000055],[-86.720839999999896,74.558594000000085],[-86.759170999999981,74.586380000000133],[-86.762786999999946,74.591933999999981],[-86.761672999999973,74.598037999999974],[-86.751403999999866,74.60386699999998],[-86.74610899999999,74.608871000000136],[-86.75111400000003,74.613602000000071],[-86.766952999999944,74.616088999999988],[-86.785277999999948,74.616928000000144],[-86.799437999999952,74.615265000000022],[-86.801101999999958,74.611374000000126],[-86.800551999999925,74.552200000000028],[-86.797226000000023,74.543594000000098],[-86.794448999999986,74.539978000000076],[-86.705565999999976,74.500275000000045],[-86.693603999999937,74.468048000000067],[-86.905838000000017,74.460541000000092],[-87.225829999999917,74.466934000000094],[-87.27027899999996,74.468323000000055],[-87.304169000000002,74.471649000000127],[-87.320846999999958,74.476653999999996],[-87.352782999999931,74.495254999999986],[-87.474441999999954,74.475815000000011],[-87.508621000000005,74.46775800000006],[-87.527221999999995,74.465545999999961],[-87.574722000000008,74.461929000000055],[-87.669998000000021,74.459991000000059],[-87.710830999999928,74.460815000000025],[-87.732223999999974,74.466385000000116],[-87.755004999999983,74.479431000000091],[-87.848052999999993,74.476089000000115],[-87.903610000000015,74.472214000000122],[-88.036117999999931,74.476928999999984],[-88.263625999999988,74.483597000000145],[-88.356109999999944,74.489150999999993],[-88.496947999999861,74.497757000000092],[-88.517226999999991,74.499709999999993],[-88.529723999999987,74.501937999999996],[-88.535277999999948,74.50360100000006],[-88.539992999999981,74.50610400000005],[-88.571121000000005,74.549987999999985],[-88.570846999999958,74.556091000000094],[-88.560821999999973,74.593048000000124],[-88.542220999999984,74.616088999999988],[-88.406386999999995,74.736098999999967],[-88.347504000000015,74.784714000000008],[-88.484725999999966,74.857758000000047],[-88.528060999999866,74.901931999999988],[-88.537216000000001,74.906937000000028],[-88.547774999999945,74.907760999999994],[-88.557220000000029,74.906647000000021],[-88.56806899999998,74.901382000000126],[-88.664718999999934,74.844986000000006],[-88.675827000000027,74.836929000000055],[-88.74360699999994,74.78387500000008],[-88.749724999999899,74.77777100000003],[-88.752501999999993,74.768326000000002],[-88.75306699999993,74.756103999999993],[-88.749724999999899,74.749709999999936],[-88.748885999999914,74.741364000000033],[-88.749434999999949,74.726089000000059],[-88.753341999999918,74.714157000000114],[-88.811935000000005,74.672211000000118],[-88.821395999999993,74.666382000000112],[-88.835555999999997,74.661377000000073],[-88.848343,74.659149000000127],[-88.862212999999997,74.658875000000023],[-88.873885999999914,74.6602630000001],[-88.883056999999951,74.665267999999969],[-88.889724999999999,74.670531999999923],[-88.917220999999984,74.719711000000132],[-88.918059999999855,74.732483000000116],[-88.914168999999958,74.749145999999996],[-88.910278000000005,74.754990000000021],[-88.905563000000029,74.75999500000006],[-88.904174999999952,74.765549000000078],[-88.906386999999995,74.773041000000035],[-88.909728999999857,74.77777100000003],[-88.926940999999943,74.78387500000008],[-89.073623999999882,74.833878000000027],[-89.088608000000022,74.837204000000042],[-89.097778000000005,74.836105000000089],[-89.099166999999966,74.835266000000104],[-89.059998000000007,74.797484999999938],[-89.053329000000019,74.793594000000041],[-89.042769999999905,74.789702999999975],[-89.011123999999938,74.780822999999941],[-89.010283999999956,74.775543000000084],[-89.012786999999946,74.770538000000045],[-89.041381999999999,74.730269999999962],[-89.047501000000011,74.722487999999998],[-89.055832000000009,74.719146999999964],[-89.077788999999882,74.717209000000025],[-89.102218999999991,74.719437000000028],[-89.178878999999938,74.732208000000128],[-89.178878999999938,74.735260000000039],[-89.181106999999997,74.739700000000028],[-89.190551999999968,74.744430999999963],[-89.223052999999993,74.752487000000031],[-89.243057000000022,74.755264000000125],[-89.265014999999948,74.756378000000097],[-89.271118000000001,74.754715000000033],[-89.216400000000021,74.721100000000092],[-89.202498999999932,74.713882000000126],[-89.189712999999927,74.708602999999925],[-89.141112999999962,74.698029000000076],[-89.12249799999995,74.696091000000138],[-89.105270000000019,74.693039000000056],[-89.095839999999953,74.688033999999959],[-89.095839999999953,74.68193100000002],[-89.125,74.616928000000144],[-89.131942999999922,74.611374000000126],[-89.150557999999933,74.599716000000114],[-89.185271999999998,74.587494000000106],[-89.196945000000028,74.584427000000005],[-89.438889000000017,74.550812000000121],[-89.455001999999922,74.548598999999967],[-89.489715999999987,74.545532000000037],[-89.580565999999976,74.540268000000083],[-89.92860399999995,74.530822999999998],[-89.946105999999986,74.532211000000132],[-90.106658999999979,74.549422999999933],[-90.223891999999921,74.563599000000124],[-90.244995000000017,74.566939999999988],[-90.263335999999924,74.570541000000048],[-90.363051999999982,74.594711000000075],[-90.45666499999993,74.600815000000068],[-90.496384000000035,74.601654000000053],[-90.529998999999862,74.605255000000113],[-90.589721999999995,74.613312000000064],[-90.607223999999917,74.616378999999995],[-90.619995000000017,74.619980000000055],[-90.70805399999989,74.648041000000148],[-90.731673999999941,74.664153999999996],[-90.736938000000009,74.669434000000024],[-90.739440999999999,74.673874000000069],[-90.747771999999998,74.703048999999965],[-90.75111400000003,74.716385000000059],[-90.867492999999911,74.702484000000084],[-90.875823999999966,74.691925000000026],[-90.885559000000001,74.683593999999971],[-90.895614999999964,74.681137000000092],[-91.013625999999988,74.698868000000061],[-91.024718999999948,74.70277400000009],[-91.023620999999991,74.706940000000031],[-91.012221999999952,74.717209000000025],[-90.978332999999964,74.739700000000028],[-90.965012000000002,74.747757000000036],[-90.945830999999941,74.751389000000131],[-90.938598999999954,74.750823999999966],[-90.926101999999958,74.751663000000065],[-90.896118000000001,74.75749200000007],[-90.883895999999936,74.761658000000011],[-90.851395000000025,74.776093000000117],[-90.758057000000008,74.831100000000049],[-90.752791999999943,74.835815000000082],[-90.740829000000019,74.847488000000112],[-90.742492999999911,74.852767999999969],[-90.746658000000025,74.860535000000084],[-90.75778200000002,74.880814000000044],[-90.772232000000031,74.884995000000117],[-90.816956000000005,74.883605999999986],[-90.841110000000015,74.879425000000083],[-90.853881999999942,74.875259000000142],[-90.863892000000021,74.869979999999998],[-90.870270000000005,74.86442599999998],[-90.874435000000005,74.859146000000123],[-90.87388599999997,74.853043000000014],[-90.883330999999998,74.84165999999999],[-90.975006000000008,74.799423000000104],[-91,74.789702999999975],[-91.075286999999946,74.761107999999979],[-91.101943999999946,74.751099000000124],[-91.132767000000001,74.744430999999963],[-91.144729999999981,74.747481999999991],[-91.14416499999993,74.751389000000131],[-91.146666999999923,74.755554000000132],[-91.171660999999972,74.75749200000007],[-91.188599000000011,74.752777000000037],[-91.216110000000015,74.738876000000062],[-91.225829999999917,74.733597000000088],[-91.228881999999942,74.727768000000083],[-91.226944000000003,74.722487999999998],[-91.185271999999941,74.684708000000114],[-91.177489999999977,74.678039999999953],[-91.154998999999975,74.665542999999957],[-91.11471599999993,74.645827999999995],[-91.105835000000013,74.63998400000014],[-91.098052999999879,74.633330999999998],[-91.099730999999963,74.62831100000011],[-91.106658999999979,74.625809000000061],[-91.133056999999951,74.624420000000043],[-91.256393000000003,74.628585999999984],[-91.455841000000021,74.639708999999982],[-91.539992999999924,74.646378000000027],[-91.553328999999962,74.648330999999985],[-91.676101999999901,74.671921000000111],[-91.684998000000007,74.677765000000136],[-91.671660999999972,74.689697000000081],[-91.664169000000015,74.693314000000044],[-91.634170999999981,74.696091000000138],[-91.621932999999956,74.700272000000041],[-91.620270000000005,74.704987000000074],[-91.624435000000005,74.709991000000059],[-91.635833999999932,74.715271000000087],[-91.651671999999962,74.719986000000119],[-91.708618000000001,74.727478000000076],[-91.754181000000017,74.727768000000083],[-91.779449,74.725815000000125],[-91.798888999999917,74.722214000000065],[-91.811110999999983,74.71804800000001],[-91.812499999999886,74.713042999999971],[-91.80296299999992,74.706184000000007],[-91.798888999999917,74.699416999999983],[-91.815551999999968,74.69470200000012],[-91.833069000000023,74.696091000000138],[-91.851105000000018,74.698868000000061],[-91.866652999999928,74.702209000000096],[-91.876663000000008,74.706940000000031],[-91.875274999999931,74.711928999999998],[-91.859160999999972,74.721100000000092],[-91.892226999999934,74.750823999999966],[-91.961944999999957,74.764160000000061],[-91.998610999999983,74.773041000000035],[-92.015838999999971,74.778320000000008],[-92.045546999999999,74.789702999999975],[-92.05749499999996,74.79664600000001],[-92.063613999999973,74.803588999999988],[-92.065276999999924,74.80720500000001],[-92.06639100000001,74.813309000000061],[-92.05749499999996,74.82499700000011],[-92.051665999999955,74.830551000000071],[-92.043334999999956,74.836380000000077],[-92.01916499999993,74.846099999999979],[-92.013061999999991,74.851928999999984],[-92.008056999999951,74.863602000000014],[-92.006393000000003,74.888046000000145],[-92.013335999999924,74.908325000000104],[-92.015288999999939,74.913604999999961],[-92.043334999999956,74.951935000000105],[-92.048049999999989,74.958328000000051],[-92.063323999999966,74.963882000000069],[-92.091674999999896,74.971649000000014],[-92.1058349999999,74.976654000000053],[-92.164169000000015,74.998031999999967],[-92.209732000000031,75.038588999999945],[-92.228881999999999,75.071105999999986],[-92.225829999999917,75.07388300000008],[-92.21556099999998,75.07638500000013],[-92.186385999999914,75.08137499999998],[-92.152495999999985,75.083878000000141],[-92.111664000000019,75.081940000000031],[-92.046188000000029,75.084961000000078],[-92.029998999999918,75.08638000000002],[-92.012511999999958,75.095260999999994],[-92.010009999999966,75.101089000000115],[-92.051392000000021,75.146942000000024],[-92.055557000000022,75.15026899999998],[-92.070556999999894,75.153046000000074],[-92.083618000000001,75.153320000000008],[-92.105269999999962,75.151932000000102],[-92.193329000000006,75.143326000000002],[-92.325561999999991,75.151657000000057],[-92.490829000000019,75.213608000000079],[-92.468886999999938,75.284714000000122],[-92.428604000000007,75.394440000000088],[-92.388335999999924,75.441925000000083],[-92.328063999999983,75.489151000000106],[-92.220276000000013,75.546097000000088],[-92.210281000000009,75.551376000000062],[-92.199431999999945,75.553864000000033],[-92.155838000000017,75.556641000000127],[-92.100280999999995,75.562759000000085],[-92.085830999999985,75.564987000000031],[-92.069457999999997,75.568878000000097],[-92.056655999999975,75.573043999999982],[-92.013901000000033,75.589157000000057],[-92.005004999999926,75.594986000000063],[-92.008346999999958,75.661377000000073],[-92.043609999999887,75.68553200000008],[-92.05749499999996,75.691359999999975],[-92.089995999999985,75.700272000000041],[-92.137512000000015,75.721100000000092],[-92.156661999999983,75.731094000000098],[-92.174437999999952,75.744431000000134],[-92.175551999999925,75.750549000000092],[-92.139724999999999,75.778319999999951],[-92.119155999999919,75.789154000000053],[-92.112777999999992,75.794708000000014],[-92.104720999999984,75.805252000000053],[-92.100554999999929,75.823043999999925],[-92.103881999999942,75.841369999999927],[-92.105269999999962,75.847488000000055],[-92.108611999999994,75.858871000000079],[-92.113327000000027,75.863602000000014],[-92.129714999999976,75.876373000000115],[-92.138061999999991,75.879974000000004],[-92.151108000000022,75.883041000000105],[-92.172774999999945,75.885544000000039],[-92.215012000000002,75.888321000000133],[-92.23832699999997,75.891373000000101],[-92.317779999999914,75.90498400000007],[-92.336394999999868,75.908600000000092],[-92.408614999999998,75.928589000000045],[-92.433060000000012,75.936371000000008],[-92.444442999999922,75.941086000000041],[-92.583618000000001,76.008881000000031],[-92.635833999999988,76.104155999999989],[-92.635833999999988,76.109711000000061],[-92.637222000000008,76.115814],[-92.793883999999935,76.20748900000001],[-92.809433000000013,76.212494000000049],[-92.946654999999964,76.245818999999926],[-93.066956000000005,76.299149],[-93.076674999999909,76.316939999999988],[-93.057220000000029,76.326660000000061],[-93.054992999999968,76.332489000000066],[-93.056380999999874,76.338593000000117],[-93.059158000000025,76.34387200000009],[-93.071945000000028,76.353317000000004],[-93.083618000000001,76.358032000000037],[-93.115279999999927,76.363876000000005],[-93.138061999999934,76.366378999999995],[-93.186935000000005,76.368317000000104],[-93.212783999999942,76.368042000000116],[-93.239989999999977,76.366653000000099],[-93.315276999999924,76.360259999999982],[-93.345275999999956,76.356094000000041],[-93.381377999999927,76.34637500000008],[-93.449996999999996,76.326385000000073],[-93.561934999999949,76.297211000000061],[-93.587783999999886,76.292755],[-93.617492999999968,76.291092000000049],[-93.635833999999988,76.291655999999989],[-93.658339999999896,76.293868999999972],[-93.666397000000018,76.298598999999967],[-93.653335999999911,76.302765000000079],[-93.624434999999892,76.30581699999999],[-93.623610999999926,76.310806000000127],[-93.636123999999995,76.326660000000061],[-93.654174999999896,76.325821000000133],[-93.678878999999938,76.322220000000073],[-93.718886999999995,76.312484999999981],[-93.731383999999991,76.306930999999963],[-93.763901000000033,76.286377000000016],[-93.763901000000033,76.282211000000132],[-93.761948000000018,76.280272999999966],[-93.753890999999953,76.275817999999958],[-93.74110399999995,76.271927000000062],[-93.720551,76.267761000000007],[-93.697220000000016,76.26388500000013],[-93.78443900000002,76.253052000000139],[-93.954453000000001,76.257767000000001],[-93.956116000000009,76.257767000000001],[-93.958343999999954,76.257767000000001],[-94.097504000000015,76.259430000000123],[-94.118880999999988,76.261383000000023],[-94.134170999999867,76.264709000000096],[-94.141387999999949,76.269989000000123],[-94.151671999999905,76.274155000000064],[-94.168610000000001,76.278320000000065],[-94.212509000000011,76.280822999999998],[-94.470839999999953,76.281096999999932],[-94.641677999999956,76.293319999999994],[-94.780288999999982,76.288879000000065],[-94.789992999999981,76.283600000000092],[-94.803329000000019,76.278320000000065],[-94.838608000000022,76.268326000000059],[-95.029174999999952,76.236099000000024],[-95.354995999999915,76.234146000000123],[-95.376099000000011,76.234421000000111],[-95.386947999999961,76.235809000000017],[-95.388061999999934,76.283600000000092],[-95.374435000000005,76.297760000000039],[-95.366942999999935,76.301376000000062],[-95.357223999999974,76.302765000000079],[-95.343063000000029,76.300262000000089],[-95.31806899999998,76.290817000000061],[-95.279175000000009,76.281372000000147],[-95.258895999999993,76.282760999999994],[-95.118332000000009,76.298035000000027],[-95.092772999999909,76.302765000000079],[-95.075561999999877,76.307754999999929],[-95.069732999999928,76.313309000000118],[-95.066558999999984,76.319862000000001],[-95.058883999999978,76.324706999999933],[-95.010558999999944,76.331100000000106],[-94.983886999999982,76.332489000000066],[-94.958892999999989,76.332214000000079],[-94.915008999999884,76.329711999999972],[-94.866394000000014,76.325546000000088],[-94.84973100000002,76.323317999999972],[-94.84056099999998,76.319717000000082],[-94.849990999999875,76.31442300000009],[-94.862777999999878,76.309981999999991],[-94.861663999999962,76.306930999999963],[-94.843613000000005,76.303864000000033],[-94.828613000000018,76.306091000000094],[-94.808608999999933,76.311371000000008],[-94.802489999999977,76.315536000000009],[-94.80082699999997,76.321655000000021],[-94.814163000000008,76.329163000000051],[-94.834441999999967,76.334427000000005],[-94.894729999999925,76.341660000000047],[-94.965012000000002,76.347487999999942],[-95.132767000000001,76.361374000000126],[-95.274719000000005,76.372208000000001],[-95.299437999999952,76.372482000000105],[-95.326401000000033,76.37081900000004],[-95.331679999999949,76.365265000000022],[-95.341384999999946,76.359711000000004],[-95.388900999999976,76.351929000000041],[-95.399993999999992,76.353317000000004],[-95.447220000000016,76.365813999999943],[-95.645279000000016,76.384155000000135],[-95.668335000000013,76.386108000000092],[-95.715835999999911,76.392211999999915],[-95.737502999999947,76.393875000000037],[-95.851105000000018,76.40109300000006],[-95.995834000000002,76.436919999999986],[-96.081679999999892,76.478043000000127],[-96.106948999999986,76.494430999999963],[-96.104171999999949,76.5],[-96.099166999999909,76.505553999999961],[-96.09056099999998,76.510268999999994],[-96.065552000000025,76.521378000000084],[-96.052489999999921,76.524155000000007],[-95.997222999999963,76.519440000000145],[-95.944991999999957,76.518326000000002],[-95.806380999999931,76.516388000000063],[-95.778609999999958,76.518875000000094],[-95.694152999999972,76.545258000000103],[-95.680557000000022,76.550537000000077],[-95.657776000000013,76.561371000000122],[-95.593886999999938,76.593048000000067],[-95.584166999999979,76.598327999999981],[-95.587783999999999,76.603592000000106],[-95.599441999999954,76.605255000000056],[-95.619719999999973,76.606094000000041],[-95.638901000000033,76.604156000000046],[-95.660277999999948,76.599426000000051],[-95.696105999999986,76.584152000000131],[-95.695540999999992,76.580276000000083],[-95.696654999999964,76.574432000000058],[-95.712783999999999,76.568603999999937],[-95.759170999999981,76.553588999999988],[-95.780562999999916,76.548874000000126],[-95.992492999999968,76.54803499999997],[-96.016953000000001,76.549149],[-96.158614999999941,76.583327999999995],[-96.17860399999995,76.594147000000078],[-96.225280999999882,76.625809000000004],[-96.27027899999996,76.632751000000098],[-96.33944699999995,76.63220199999995],[-96.355835000000013,76.633041000000105],[-96.38137799999987,76.635818000000029],[-96.403335999999911,76.639709000000096],[-96.421386999999982,76.646102999999982],[-96.445830999999998,76.657211000000132],[-96.454178000000013,76.662490999999989],[-96.461394999999925,76.668593999999985],[-96.461120999999991,76.673599000000024],[-96.46444699999995,76.679703000000018],[-96.470275999999956,76.685532000000023],[-96.527785999999935,76.693038999999999],[-96.611938000000009,76.702484000000027],[-96.636123999999995,76.704436999999984],[-96.661666999999966,76.704712000000029],[-96.736938000000009,76.697205000000054],[-96.764175000000023,76.695526000000086],[-96.789718999999934,76.695816000000093],[-96.81639100000001,76.697478999999987],[-96.857772999999952,76.701935000000105],[-96.879990000000021,76.705826000000002],[-96.915832999999964,76.714432000000102],[-96.946654999999964,76.723602000000142],[-96.959166999999979,76.729155999999932],[-96.964447000000007,76.733322000000044],[-96.900283999999999,76.795258000000047],[-96.887221999999952,76.805542000000059],[-96.873885999999914,76.810806000000071],[-96.854995999999971,76.813034000000016],[-96.839721999999995,76.810257000000092],[-96.724716000000001,76.783324999999991],[-96.679717999999923,76.770264000000054],[-96.592498999999918,76.758881000000031],[-96.426102000000014,76.744705000000067],[-96.330291999999929,76.750274999999931],[-96.311935000000005,76.751389000000131],[-96.305556999999965,76.753875999999991],[-96.315551999999968,76.802475000000129],[-96.320557000000008,76.80664100000007],[-96.366942999999935,76.812758999999971],[-96.453612999999962,76.815262000000132],[-96.50111400000003,76.818054000000075],[-96.547226000000023,76.822769000000108],[-96.797500999999897,76.861374000000012],[-96.81361400000003,76.868042000000003],[-96.848891999999921,76.887496999999996],[-96.865829000000019,76.898041000000035],[-96.869155999999975,76.904160000000047],[-96.869445999999982,76.913879000000065],[-96.864166000000012,76.919708000000071],[-96.857772999999952,76.924987999999928],[-96.833617999999944,76.9327550000001],[-96.796386999999982,76.937484999999924],[-96.771941999999967,76.937759000000028],[-96.761123999999995,76.937759000000028],[-96.723891999999978,76.935256999999979],[-96.708054000000004,76.93331900000004],[-96.698607999999979,76.934143000000006],[-96.660827999999981,76.947204999999997],[-96.659163999999976,76.949142000000052],[-96.667769999999962,76.954436999999928],[-96.677779999999984,76.957764000000054],[-96.696945000000028,76.960541000000148],[-96.718886999999995,76.963043000000027],[-96.765288999999996,76.96527100000003],[-96.808333999999945,76.966094999999996],[-96.824447999999904,76.96775800000006],[-96.827788999999939,76.968872000000033],[-96.825561999999991,76.974426000000051],[-96.810271999999998,76.979156000000103],[-96.772034000000019,76.98101800000012],[-96.742034999999987,76.982208000000014],[-96.673324999999977,76.982208000000014],[-96.622771999999998,76.979980000000069],[-96.483611999999994,76.971100000000035],[-96.353881999999999,76.993042000000059],[-96.391113000000018,77.026931999999988],[-96.387787000000003,77.03054800000001],[-96.373321999999973,77.031937000000028],[-96.28472899999997,77.039428999999984],[-96.27305599999994,77.040267999999912],[-96.24499499999996,77.041931000000034],[-96.226105000000018,77.043045000000006],[-96.103057999999976,77.044708000000128],[-95.96665999999999,77.053040000000124],[-95.888061999999934,77.06109600000002],[-95.752501999999993,77.06860400000005],[-95.734726000000023,77.06860400000005],[-95.707503999999915,77.066940000000045],[-95.659728999999913,77.058868000000075]],[[-113.32888800000001,77.079987000000017],[-113.353882,77.077484000000084],[-113.40888999999999,77.078873000000044],[-113.45140099999992,77.081664999999987],[-113.49194299999999,77.085541000000035],[-113.49749799999989,77.088318000000129],[-113.49027999999998,77.092484000000013],[-113.34472700000003,77.127762000000018],[-113.33528099999995,77.126083000000051],[-113.31471299999998,77.11775200000011],[-113.29332699999986,77.107483000000116],[-113.28694200000001,77.09637500000008],[-113.29110700000001,77.08998100000008],[-113.30471799999998,77.085266000000047],[-113.32888800000001,77.079987000000017]],[[-113.77861000000001,77.104155999999989],[-113.80695299999991,77.104155999999989],[-113.85333300000002,77.10554499999995],[-113.88054699999992,77.108032000000037],[-113.90888999999999,77.113037000000077],[-113.92443800000001,77.118591000000094],[-113.93138099999999,77.1244200000001],[-113.93138099999999,77.129699999999957],[-113.92722300000003,77.135268999999994],[-113.92083700000001,77.141098],[-113.90110800000002,77.146378000000027],[-113.88082900000001,77.149719000000061],[-113.859444,77.151382000000012],[-113.798607,77.152481000000023],[-113.77417000000003,77.151657000000057],[-113.72250399999996,77.148041000000148],[-113.69915800000001,77.144714000000022],[-113.67555199999993,77.140274000000034],[-113.66443599999997,77.134720000000016],[-113.65778399999999,77.129149999999925],[-113.66416900000002,77.123032000000023],[-113.67916899999989,77.116928000000144],[-113.703056,77.111649],[-113.72778299999993,77.108032000000037],[-113.75306699999993,77.10554499999995],[-113.77861000000001,77.104155999999989]],[[-104.25250199999999,77.072769000000051],[-104.30277999999998,77.072220000000073],[-104.35417200000001,77.073883000000023],[-104.37721299999998,77.076660000000118],[-104.40222199999994,77.081100000000106],[-104.421944,77.087203999999986],[-104.43167099999994,77.098877000000016],[-104.42639200000002,77.116379000000052],[-104.42027300000001,77.122208000000057],[-104.40556299999997,77.127762000000018],[-104.31973299999999,77.151657000000057],[-104.30082700000003,77.15525800000006],[-104.27333099999998,77.159714000000008],[-104.18360899999993,77.167205999999965],[-104.11389199999996,77.166091999999992],[-104.07140399999997,77.16137700000013],[-104.06139400000001,77.158875000000023],[-104.031113,77.15109300000006],[-104.01972999999998,77.146103000000039],[-104.00110599999999,77.135818000000086],[-103.99889399999995,77.123870999999951],[-104.00945300000001,77.118042000000116],[-104.02416999999991,77.112487999999985],[-104.04778299999992,77.106934000000138],[-104.15028399999994,77.08638000000002],[-104.196663,77.077484000000084],[-104.25250199999999,77.072769000000051]],[[-95.22444200000001,77.167205999999965],[-95.245270000000005,77.164153999999996],[-95.291381999999999,77.164992999999981],[-95.314437999999996,77.166656000000103],[-95.362777999999935,77.171920999999998],[-95.419998000000021,77.181931000000077],[-95.572509999999852,77.213042999999971],[-95.613051999999925,77.221924000000115],[-95.634170999999924,77.228043000000127],[-95.638901000000033,77.232208000000128],[-95.639998999999932,77.237761999999975],[-95.636672999999973,77.239150999999936],[-95.631377999999927,77.239700000000084],[-95.608046999999885,77.240814000000057],[-95.511123999999995,77.243042000000003],[-95.438048999999978,77.24443100000002],[-95.387512000000015,77.240814000000057],[-95.37222300000002,77.238037000000134],[-95.356110000000001,77.236374000000069],[-95.31361400000003,77.229156000000046],[-95.244155999999919,77.213882000000126],[-95.216399999999965,77.201660000000004],[-95.206664999999987,77.189147999999989],[-95.206954999999994,77.177764999999965],[-95.214447000000007,77.172485000000108],[-95.22444200000001,77.167205999999965]],[[-90.933059999999955,77.254440000000045],[-90.909164000000033,77.251663000000121],[-90.815001999999993,77.240265000000136],[-90.772232000000031,77.231368999999972],[-90.736388999999974,77.220824999999934],[-90.718338000000017,77.207213999999965],[-90.713622999999984,77.200821000000019],[-90.724166999999909,77.183318999999983],[-90.731948999999986,77.177764999999965],[-90.779175000000009,77.156647000000078],[-90.811385999999914,77.14665199999996],[-90.83555599999994,77.142211999999972],[-90.868331999999953,77.138321000000076],[-90.899993999999992,77.136932000000058],[-90.978606999999897,77.137771999999927],[-91.049728000000016,77.145537999999988],[-91.18472300000002,77.163605000000075],[-91.221664000000033,77.170258000000047],[-91.238892000000021,77.174423000000047],[-91.262512000000015,77.18414300000012],[-91.286391999999921,77.196640000000116],[-91.295546999999999,77.203323000000069],[-91.297501000000011,77.207213999999965],[-91.299164000000019,77.217758000000003],[-91.277221999999995,77.227478000000133],[-91.24749799999995,77.235809000000017],[-91.189712999999983,77.24803200000008],[-91.162216000000001,77.251389000000017],[-91.107223999999917,77.254715000000033],[-91.084732000000031,77.254440000000045],[-91.072234999999921,77.253326000000072],[-91.057219999999973,77.254440000000045],[-90.987503000000004,77.254990000000078],[-90.933059999999955,77.254440000000045]],[[-116.35109699999998,77.539154000000053],[-116.20333900000003,77.519989000000066],[-116.09056099999992,77.491089000000045],[-116.073624,77.485535000000027],[-115.88027999999991,77.433319000000097],[-115.52055399999995,77.364426000000037],[-115.49526999999989,77.359420999999998],[-115.458054,77.348602000000085],[-115.44611399999985,77.343048000000124],[-115.389183,77.312194999999917],[-115.390289,77.306366000000082],[-115.54332699999986,77.265548999999908],[-115.59110999999996,77.259995000000117],[-115.61694299999999,77.258331000000112],[-115.66915899999992,77.256942999999978],[-115.69499199999996,77.255264000000011],[-115.77250700000002,77.247757000000036],[-115.81973299999999,77.237488000000042],[-115.83084099999991,77.233322000000101],[-115.85888699999998,77.220824999999934],[-115.87777699999992,77.215271000000143],[-115.94695299999989,77.20887799999997],[-116.112503,77.193863000000022],[-116.13806199999999,77.192200000000128],[-116.19055200000003,77.191650000000095],[-116.21777299999997,77.192749000000049],[-116.26917300000002,77.190261999999962],[-116.28056300000003,77.183594000000028],[-116.31416300000001,77.144440000000088],[-116.31973299999999,77.11775200000011],[-116.28028899999998,77.067215000000033],[-116.26917300000002,77.055817000000047],[-116.24249299999991,77.044144000000017],[-116.17360699999989,77.027206000000092],[-116.06388900000002,77.007492000000013],[-116.00583599999999,76.997482000000105],[-115.95028699999995,76.991363999999976],[-115.860817,76.979156000000103],[-115.75499699999995,76.960815000000082],[-115.73889199999996,76.955261000000064],[-115.73137700000001,76.949707000000103],[-115.72833300000002,76.943863000000079],[-115.729446,76.938034000000073],[-115.73222399999997,76.931656000000089],[-115.74610899999999,76.925262000000089],[-115.80695300000002,76.90637200000009],[-115.829453,76.900818000000129],[-115.85333299999996,76.897217000000069],[-115.90334300000001,76.893874999999923],[-115.92859599999997,76.893050999999957],[-115.98194899999993,76.895538000000045],[-116.06388900000002,76.902771000000087],[-116.11501299999992,76.909149000000014],[-116.25389100000001,76.932480000000055],[-116.306107,76.936096000000134],[-116.32721699999996,76.935532000000023],[-116.35166899999996,76.9327550000001],[-116.36527999999993,76.926376000000062],[-116.36721799999998,76.915543000000071],[-116.36332699999997,76.90887500000008],[-116.35555999999985,76.903320000000008],[-116.34612299999992,76.898331000000042],[-116.32972699999999,76.89276099999995],[-116.18360899999993,76.845825000000104],[-116.16388699999999,76.841660000000104],[-116.10749800000002,76.833602999999982],[-116.031113,76.820267000000001],[-116.00029000000001,76.811371000000065],[-115.89472999999992,76.703323000000012],[-115.89138800000001,76.697478999999987],[-115.89666699999998,76.691649999999981],[-116.07140400000003,76.625809000000004],[-116.09306299999992,76.619141000000013],[-116.11582900000002,76.61442599999998],[-116.16055299999999,76.611099000000081],[-116.23194899999999,76.603043000000014],[-116.25446299999999,76.598602000000085],[-116.32250999999997,76.581100000000049],[-116.37351999999993,76.581802000000039],[-116.73277300000001,76.572495000000004],[-116.75890399999992,76.56999200000007],[-116.97112299999998,76.548598999999967],[-116.99471999999992,76.545822000000044],[-117.01750199999992,76.542205999999965],[-117.03999299999992,76.537490999999932],[-117.05387899999999,76.533051000000114],[-117.06861900000001,76.526093000000117],[-117.07556199999993,76.520538000000045],[-117.07749899999999,76.514160000000061],[-117.07640099999998,76.508881000000088],[-117.07277699999997,76.503052000000082],[-117.05695299999996,76.491652999999985],[-117.04360999999989,76.48692299999999],[-117.01750199999992,76.482483000000116],[-117.00389099999995,76.477478000000076],[-116.98361199999999,76.454987000000074],[-116.94082599999996,76.386932000000058],[-116.93916299999995,76.380539000000113],[-116.93582200000003,76.351929000000041],[-116.93859900000001,76.34637500000008],[-117.09555099999994,76.295257999999933],[-117.13971700000002,76.286925999999994],[-117.31973299999999,76.257767000000001],[-117.345551,76.256377999999984],[-117.36888099999999,76.256943000000035],[-117.52390300000002,76.263611000000026],[-117.5750119999999,76.26887499999998],[-117.60305799999998,76.27388000000002],[-117.62304699999999,76.278870000000097],[-117.639183,76.28414900000007],[-117.65778399999999,76.293319999999994],[-117.64917000000003,76.305542000000003],[-117.64890299999996,76.311371000000008],[-117.65527299999997,76.317490000000021],[-117.67304999999993,76.322220000000073],[-117.69915800000001,76.324158000000011],[-117.72416699999997,76.324432000000115],[-117.87777699999998,76.341933999999981],[-117.889183,76.355819999999937],[-117.90139799999997,76.367203000000131],[-117.90695199999993,76.372208000000001],[-117.99722299999996,76.396941999999967],[-118.02139299999999,76.401932000000045],[-118.04444899999999,76.404984000000127],[-118.05999800000001,76.409149000000127],[-118.04750100000001,76.441650000000038],[-118.02749599999999,76.484711000000061],[-117.97332799999998,76.596375000000023],[-117.92832899999996,76.676651000000106],[-117.91915899999992,76.68803400000013],[-117.90666199999993,76.694137999999953],[-117.883331,76.700546000000088],[-117.86444099999994,76.704163000000051],[-117.84805299999999,76.708328000000051],[-117.81331599999999,76.719436999999971],[-117.79638699999998,76.725815000000125],[-117.78806299999997,76.732208000000071],[-117.73889200000002,76.772217000000012],[-117.73444399999994,76.778320000000122],[-117.73860200000001,76.784149000000127],[-117.79888899999997,76.817764000000011],[-117.81667299999998,76.821380999999974],[-117.84221600000001,76.82388300000008],[-117.86665299999999,76.822220000000129],[-117.88806199999999,76.818878000000041],[-117.90499899999992,76.812195000000031],[-117.91777000000002,76.799988000000042],[-117.92610200000001,76.788040000000024],[-117.96056399999998,76.769989000000066],[-118.00583599999993,76.761383000000137],[-118.02971600000001,76.758606000000043],[-118.08222999999998,76.756943000000092],[-118.10611,76.75749200000007],[-118.15695199999999,76.76249700000011],[-118.21362299999998,76.769150000000081],[-118.29361,76.773041000000148],[-118.319458,76.773041000000148],[-118.33750900000001,76.768326000000116],[-118.49500299999994,76.712203999999929],[-118.47471599999994,76.679703000000018],[-118.45973199999997,76.673874000000012],[-118.42887899999999,76.663879000000122],[-118.40306099999998,76.657760999999994],[-118.35804699999989,76.64888000000002],[-118.34137699999997,76.643599999999992],[-118.33473199999992,76.637497000000053],[-118.316101,76.574707000000103],[-118.50279199999994,76.509720000000073],[-118.52390299999996,76.503876000000048],[-118.54611199999999,76.5],[-118.57084699999996,76.499145999999996],[-118.59694699999989,76.5],[-118.62361099999993,76.501938000000109],[-118.65167200000002,76.505553999999961],[-118.67804699999994,76.50999500000006],[-118.70916699999998,76.519989000000066],[-118.71333299999998,76.525818000000129],[-118.71362299999998,76.531662000000097],[-118.72222899999991,76.537201000000096],[-118.73473399999995,76.542480000000069],[-118.76139799999999,76.546936000000017],[-118.81471299999998,76.553040000000067],[-118.84166700000003,76.554977000000065],[-118.94415299999997,76.518051000000128],[-118.96806300000003,76.505264000000125],[-118.97582999999992,76.498871000000008],[-118.97609699999998,76.496368000000018],[-118.97250399999996,76.491652999999985],[-118.96777299999997,76.488312000000121],[-118.95527600000003,76.483047000000056],[-118.93110699999994,76.479155999999989],[-118.82195300000001,76.471374999999966],[-118.68195300000002,76.445251000000098],[-118.64862099999999,76.428863999999919],[-118.612503,76.400269000000094],[-118.59416199999993,76.383881000000031],[-118.56610099999995,76.343048000000124],[-118.567497,76.336655000000007],[-118.58168000000001,76.324706999999933],[-118.62554899999998,76.294433999999967],[-118.63751200000002,76.288040000000137],[-118.65556299999997,76.28414900000007],[-118.67916899999994,76.282211000000132],[-118.70556599999992,76.281661999999983],[-118.78083799999996,76.282486000000119],[-118.82833900000003,76.281937000000028],[-118.87666299999989,76.27748100000008],[-118.89584400000001,76.272217000000126],[-118.91139199999992,76.265548999999965],[-118.91915899999998,76.259430000000123],[-118.92443799999995,76.252776999999924],[-118.942207,76.210541000000148],[-118.93776699999995,76.204711999999915],[-118.92331699999994,76.194138000000066],[-118.91278099999994,76.188034000000016],[-118.90471600000001,76.169144000000074],[-118.95527600000003,76.132477000000108],[-118.96501199999994,76.126648000000102],[-119.07584399999996,76.083328000000108],[-119.10109699999998,76.084152000000074],[-119.12470999999999,76.088042999999971],[-119.22972099999993,76.107208000000071],[-119.24526999999995,76.111374000000012],[-119.26000999999997,76.117203000000018],[-119.28250099999997,76.127472000000068],[-119.29943800000001,76.138596000000121],[-119.30832699999996,76.149994000000106],[-119.31054699999999,76.155258000000117],[-119.30583200000001,76.167755000000113],[-119.30082699999997,76.174423000000047],[-119.29499799999996,76.180267000000072],[-119.29527300000001,76.186096000000077],[-119.30166600000001,76.191360000000088],[-119.36916399999996,76.229706000000078],[-119.54915599999998,76.324158000000011],[-119.5864029999999,76.318603999999993],[-119.65499899999992,76.303040000000067],[-119.67527799999993,76.264160000000118],[-119.67500299999995,76.245818999999926],[-119.64555399999995,76.230545000000063],[-119.59445199999999,76.203049000000021],[-119.58583099999998,76.197479000000101],[-119.57277699999992,76.186371000000122],[-119.56806899999987,76.180542000000116],[-119.56582600000002,76.175262000000032],[-119.56696299999999,76.168869000000086],[-119.57277699999992,76.16304000000008],[-119.64334099999996,76.112487999999985],[-119.74527,76.116652999999985],[-119.76999699999993,76.116379000000052],[-119.79305999999991,76.114426000000094],[-119.80499299999997,76.108871000000022],[-119.79723399999995,76.104155999999989],[-119.7727809999999,76.099425999999937],[-119.74416400000001,76.097487999999998],[-119.64723200000003,76.081664999999987],[-119.62666300000001,76.076660000000118],[-119.50389100000001,76.040817000000061],[-119.49137899999999,76.035538000000088],[-119.47833299999996,76.024155000000121],[-119.47389199999998,76.018599999999992],[-119.47222899999997,76.000824000000023],[-119.47609699999998,75.982483000000059],[-119.48110999999989,75.970825000000048],[-119.48916599999995,75.965546000000018],[-119.50974299999996,75.960540999999978],[-119.53555299999994,75.962494000000106],[-119.54638699999998,75.968323000000112],[-119.56111099999998,75.97886699999998],[-119.57195299999995,75.984985000000108],[-119.58583099999998,75.989699999999971],[-119.612503,75.992477000000065],[-119.63694800000002,75.992203000000131],[-119.64890300000002,75.986649000000114],[-119.699997,75.94859300000013],[-119.70333900000003,75.942749000000106],[-119.6875,75.938309000000118],[-119.612503,75.910263000000043],[-119.81082199999997,75.86943100000002],[-119.870003,75.857483000000002],[-119.93554699999993,75.848328000000095],[-119.98000300000001,75.843323000000055],[-120.02583300000003,75.839980999999966],[-120.04915599999987,75.838882000000126],[-120.07640100000003,75.867203000000075],[-120.08500700000002,75.872757000000036],[-120.11416600000001,75.888321000000133],[-120.12805199999997,75.893051000000014],[-120.14916999999997,75.896378000000141],[-120.16639700000002,75.892487000000074],[-120.18028299999997,75.879974000000004],[-120.18331899999993,75.873871000000065],[-120.19722000000002,75.861374000000069],[-120.21501199999994,75.848602000000028],[-120.22582999999992,75.842209000000082],[-120.26972999999992,75.821930000000123],[-120.28888699999987,75.816085999999927],[-120.30915800000002,75.811096000000077],[-120.33222999999998,75.807480000000055],[-120.35555999999997,75.806366000000025],[-120.37805200000003,75.80664100000007],[-120.40387699999991,75.808318999999983],[-120.43028300000003,75.811096000000077],[-120.45445299999994,75.81581100000011],[-120.46694899999994,75.821105999999986],[-120.47582999999997,75.826660000000004],[-120.48528299999998,75.837769000000094],[-120.4886019999999,75.844147000000021],[-120.48972300000003,75.849991000000045],[-120.48832699999997,75.855545000000063],[-120.46305799999999,75.916382000000056],[-120.46000700000002,75.922484999999995],[-120.44860799999987,75.935532000000023],[-120.406113,75.954987000000017],[-120.40583800000002,75.97137500000008],[-120.43499799999989,76.003052000000025],[-120.45889299999999,76.011658000000125],[-120.46749899999998,76.012207000000046],[-120.53333299999991,76.003052000000025],[-120.56054699999999,75.991653000000099],[-120.56331599999993,75.985535000000141],[-120.57417299999997,75.979156000000103],[-120.59388699999994,75.978043000000014],[-120.61361699999998,75.981934000000081],[-120.64306599999986,75.992477000000065],[-120.696663,76.013884999999959],[-120.70722999999998,76.018875000000037],[-120.71611000000001,76.024429000000055],[-120.729446,76.039428999999984],[-120.75167799999997,76.099425999999937],[-120.75110599999999,76.105819999999994],[-120.74833699999999,76.111922999999933],[-120.74305700000002,76.117751999999939],[-120.73222399999997,76.124145999999996],[-120.71193699999998,76.129149999999981],[-120.72749299999992,76.158600000000035],[-120.85722399999986,76.196639999999945],[-120.88362100000001,76.198318000000086],[-120.90249599999999,76.196365000000128],[-120.95639,76.177765000000022],[-120.96806300000003,76.172211000000004],[-121.00890400000003,76.144149999999911],[-121.01251199999996,76.139160000000061],[-121.016953,76.121094000000085],[-121.02528399999989,76.073318000000029],[-121.02278100000001,76.059143000000063],[-120.99328600000001,76.026817000000108],[-120.97961399999997,76.019653000000119],[-120.970123,76.013489000000106],[-120.93195300000002,75.959990999999945],[-120.93306000000001,75.956940000000145],[-120.94583099999994,75.94859300000013],[-120.98082699999998,75.941649999999981],[-120.99944299999999,75.939697000000024],[-121.01445000000001,75.942749000000106],[-121.01722699999999,75.94802900000002],[-121.01112399999988,75.970825000000048],[-121.00055699999996,75.977203000000145],[-120.98610699999995,75.984145999999953],[-121.00761399999999,75.988982999999962],[-121.01527399999998,75.992149000000097],[-121.030441,75.992477000000065],[-121.09277299999997,75.993317000000104],[-121.11389199999996,75.991653000000099],[-121.25945299999995,75.964432000000045],[-121.26583900000003,75.958328000000051],[-121.271118,75.946091000000081],[-121.27887699999985,75.927765000000079],[-121.34861799999993,75.928040000000067],[-121.423317,75.933868000000018],[-121.43639400000001,75.939148000000046],[-121.422775,75.946465000000103],[-121.41665599999988,75.953049000000078],[-121.42415599999993,75.956649999999911],[-121.479446,75.976379000000009],[-121.58306899999997,76.003601000000117],[-121.59500100000002,76.005554000000075],[-121.83473200000003,76.034424000000115],[-122.13417099999998,76.036377000000073],[-122.14499699999999,76.030823000000055],[-122.14472999999992,75.996932999999956],[-122.16944899999999,75.978043000000014],[-122.33583099999998,75.942474000000118],[-122.37666300000001,75.933868000000018],[-122.41639700000002,75.928589000000045],[-122.442207,75.927475000000072],[-122.48916599999995,75.927200000000028],[-122.51666299999994,75.928314],[-122.56360599999999,75.931931000000134],[-122.67610200000001,75.951660000000061],[-122.69638099999997,75.955551000000128],[-122.72250400000001,75.96887200000009],[-122.728882,75.973037999999974],[-122.66915899999998,75.976929000000041],[-122.64943699999998,75.982208000000014],[-122.59111000000001,76.001663000000008],[-122.57640100000003,76.007492000000013],[-122.5625,76.014434999999992],[-122.47556299999997,76.104431000000034],[-122.47112300000003,76.110260000000039],[-122.47193899999996,76.114990000000034],[-122.48554999999993,76.1202550000001],[-122.49833699999994,76.120529000000033],[-122.60134900000003,76.115097000000048],[-122.62222300000002,76.111374000000012],[-122.67832900000002,76.111374000000012],[-122.69999699999994,76.112198000000149],[-122.70445299999994,76.114426000000094],[-122.69554099999993,76.117751999999939],[-122.58721899999995,76.134155000000021],[-122.50195299999996,76.136383000000137],[-122.48999000000003,76.141098],[-122.57417299999992,76.166091999999992],[-122.595551,76.170822000000044],[-122.62027,76.174423000000047],[-122.64666699999998,76.175812000000064],[-122.67027300000001,76.174423000000047],[-122.69360399999999,76.17053199999998],[-122.73361199999994,76.162491000000102],[-122.84277299999997,76.131088000000091],[-122.885559,76.104431000000034],[-122.90194699999995,76.098038000000031],[-122.92138699999987,76.092758000000003],[-123.01139799999993,76.083328000000108],[-123.037781,76.084717000000069],[-122.97917199999995,76.125809000000118],[-122.84861799999999,76.208878000000027],[-122.72112299999998,76.231369000000029],[-122.636124,76.264709000000096],[-122.63166799999999,76.270538000000101],[-122.63751200000002,76.288040000000137],[-122.64527899999996,76.299712999999997],[-122.63249199999996,76.329987000000017],[-122.62638900000002,76.336380000000133],[-122.61776700000001,76.342208999999968],[-122.59889199999998,76.348328000000038],[-122.57861300000002,76.353591999999992],[-122.39890300000002,76.396941999999967],[-122.30943300000001,76.408875000000023],[-122.01471699999996,76.432479999999998],[-121.826683,76.422760000000096],[-121.78195199999999,76.420258000000047],[-121.73805199999998,76.421097000000145],[-121.54998799999993,76.434708000000114],[-121.53307299999994,76.437195000000031],[-121.51445000000001,76.444138000000009],[-121.421944,76.493590999999924],[-121.31220999999994,76.572495000000004],[-121.30695300000002,76.578323000000125],[-121.31388899999996,76.589705999999978],[-121.30915800000002,76.593872000000033],[-121.21250899999995,76.649719000000005],[-121.118607,76.673309000000017],[-121.10109699999992,76.668320000000051],[-121.079453,76.668320000000051],[-121.05666399999996,76.671371000000022],[-120.923317,76.689972000000068],[-120.900284,76.693313999999987],[-120.88417099999998,76.698868000000004],[-120.86193800000001,76.711929000000112],[-120.84777799999989,76.724700999999925],[-120.83249699999993,76.731369000000086],[-120.81220999999994,76.737198000000092],[-120.76611299999996,76.743591000000094],[-120.66915899999998,76.751099000000067],[-120.64083899999997,76.748596000000134],[-120.62581599999999,76.746367999999961],[-120.60417200000001,76.746367999999961],[-120.58112299999999,76.7494200000001],[-120.40167200000002,76.797211000000004],[-120.38194299999992,76.804153000000042],[-120.36776700000001,76.810257000000092],[-120.36609599999997,76.813309000000004],[-120.36527999999993,76.836105000000032],[-120.09137699999997,77.003051999999968],[-120.06916799999999,77.008040999999935],[-120.03888699999999,77.013321000000019],[-120.02278100000001,77.015273999999977],[-119.99722300000002,77.01638800000012],[-119.97693600000002,77.013321000000019],[-119.96112099999993,77.009995000000004],[-119.94999699999994,77.012497000000053],[-119.92027299999995,77.023605000000032],[-119.83944700000001,77.05693100000002],[-119.83167999999995,77.06303400000013],[-119.83249699999999,77.069153000000142],[-119.83583099999987,77.075271999999984],[-119.83721899999995,77.079712000000029],[-119.83556399999998,77.085266000000047],[-119.825287,77.091095000000053],[-119.8125,77.096649000000014],[-119.77639799999992,77.106094000000098],[-119.60056299999991,77.145827999999995],[-119.43331899999998,77.173599000000081],[-119.41082799999998,77.178588999999931],[-119.389183,77.184417999999994],[-119.360817,77.203323000000069],[-119.354446,77.209152000000131],[-119.346947,77.221374999999966],[-119.34583999999995,77.227767999999969],[-119.33389299999993,77.239975000000072],[-119.31582599999996,77.258041000000105],[-119.29583700000001,77.276657000000114],[-119.26834099999996,77.28915400000011],[-119.25306699999999,77.295258000000103],[-119.22222899999991,77.306366000000082],[-119.20111099999991,77.313034000000073],[-119.15334299999995,77.325821000000076],[-119.11444099999994,77.327484000000027],[-119.08666999999997,77.326660000000061],[-119.00110599999988,77.321106000000043],[-118.94138299999992,77.319717000000082],[-118.91694599999994,77.32249500000006],[-118.89389,77.327484000000027],[-118.87000299999994,77.333878000000084],[-118.75723299999999,77.352478000000019],[-118.73249800000002,77.35554500000012],[-118.65110799999997,77.360535000000141],[-118.44972199999995,77.358871000000136],[-118.224716,77.356094000000041],[-118.19721999999996,77.354980000000069],[-118.16583300000002,77.355255000000056],[-118.14111299999996,77.35803199999998],[-118.12805200000003,77.364426000000037],[-118.12721299999998,77.369431000000077],[-118.125,77.372482000000105],[-118.10694899999993,77.378036000000122],[-118.08750899999995,77.379150000000095],[-117.91111799999993,77.386932000000058],[-117.86721799999992,77.388596000000064],[-117.85056299999991,77.384430000000123],[-117.781113,77.36303700000002],[-117.76806599999998,77.357758000000047],[-117.756958,77.351654000000053],[-117.75083899999998,77.346648999999957],[-117.73860200000001,77.341933999999924],[-117.72444200000001,77.338043000000084],[-117.61193800000001,77.327774000000034],[-117.45084400000002,77.312194999999917],[-117.27639799999997,77.28915400000011],[-117.02306399999998,77.290817000000004],[-117.01478600000002,77.296700000000044],[-117.01711999999992,77.300208999999938],[-117.02749599999993,77.310256999999979],[-117.06082199999997,77.326660000000061],[-117.10555999999997,77.339981000000023],[-117.11582900000002,77.34165999999999],[-117.11805699999996,77.338593000000117],[-117.1324919999999,77.333328000000051],[-117.15416699999997,77.332489000000066],[-117.16999800000002,77.335815000000082],[-117.18195300000002,77.34027100000003],[-117.18167099999999,77.346375000000023],[-117.17666600000001,77.352203000000145],[-117.15888999999987,77.358871000000136],[-117.14277600000003,77.361374000000126],[-117.11945300000002,77.359985000000108],[-117.06082199999997,77.353317000000118],[-117.00749999999994,77.343039999999974],[-116.94666299999994,77.329436999999984],[-116.87638900000002,77.318054000000132],[-116.848343,77.315810999999997],[-116.79583700000001,77.317490000000021],[-116.77887699999997,77.319153000000085],[-116.65167199999996,77.377761999999962],[-116.64835399999998,77.383330999999998],[-116.65167199999996,77.388046000000031],[-116.66278099999994,77.391662999999994],[-116.74137899999999,77.395263999999997],[-116.87082699999996,77.400818000000015],[-116.89917000000003,77.399428999999998],[-116.97582999999997,77.393326000000059],[-116.99471999999992,77.394440000000031],[-117.01112399999994,77.398880000000077],[-117.15306099999992,77.451660000000118],[-117.14998599999996,77.457214000000135],[-117.13890100000003,77.460541000000035],[-117.08306899999997,77.474425999999937],[-117.06667299999998,77.476929000000098],[-117.06139399999989,77.476089000000059],[-117.03833799999995,77.471001000000058],[-116.991669,77.466660000000104],[-116.91972399999997,77.470535000000041],[-116.89444700000001,77.473312000000135],[-116.78527799999995,77.499145999999996],[-116.75723299999993,77.511658000000011],[-116.76944699999996,77.516388000000006],[-116.85109699999998,77.516663000000051],[-116.87917299999987,77.517761000000121],[-116.9058379999999,77.520264000000111],[-116.926941,77.524704000000099],[-116.92054699999994,77.528594999999996],[-116.900284,77.532211000000018],[-116.875,77.534988000000112],[-116.83306900000002,77.533600000000035],[-116.75418100000002,77.534424000000001],[-116.64750699999996,77.537766000000147],[-116.58583099999998,77.540543000000014],[-116.53611799999993,77.544434000000081],[-116.48777799999999,77.550262000000032],[-116.35109699999998,77.539154000000053]],[[-85.285278000000005,77.587494000000049],[-85.259734999999978,77.586655000000121],[-85.235274999999945,77.586655000000121],[-85.107223999999974,77.581099999999992],[-85.011123999999938,77.57388300000008],[-84.995270000000005,77.569443000000092],[-84.822509999999966,77.505264000000125],[-84.813889000000017,77.497208000000057],[-84.824447999999961,77.491927999999973],[-84.843062999999916,77.487198000000149],[-84.934433000000013,77.470260999999937],[-84.960830999999985,77.466385000000059],[-85.027221999999995,77.459717000000069],[-85.095551,77.454437000000041],[-85.126937999999939,77.453048999999908],[-85.153609999999958,77.454437000000041],[-85.168335000000013,77.456939999999975],[-85.178604000000007,77.464157000000114],[-85.172500999999897,77.473601999999971],[-85.159164000000033,77.48414600000001],[-85.144729999999925,77.489426000000094],[-85.138610999999969,77.494980000000112],[-85.140839000000028,77.501663000000065],[-85.152785999999992,77.507767000000115],[-85.170273000000009,77.511658000000011],[-85.248885999999914,77.527481000000023],[-85.270843999999954,77.529984000000013],[-85.319732999999928,77.532211000000018],[-85.344161999999983,77.532211000000018],[-85.39916999999997,77.53387500000008],[-85.538329999999974,77.539978000000019],[-85.535552999999936,77.543869000000086],[-85.352218999999934,77.582764000000054],[-85.31138599999997,77.586655000000121],[-85.285278000000005,77.587494000000049]],[[-90.603058000000033,77.628311000000053],[-90.521118000000001,77.626083000000108],[-90.492492999999968,77.626083000000108],[-90.438598999999954,77.630538999999999],[-90.414443999999946,77.631087999999977],[-90.388061999999877,77.629425000000026],[-90.339172000000019,77.623871000000065],[-90.242492999999854,77.612488000000042],[-90.219161999999983,77.608871000000079],[-90.208892999999932,77.603042999999957],[-90.210007000000019,77.597488000000055],[-90.206664999999987,77.59165999999999],[-90.196654999999964,77.587204000000042],[-90.177779999999927,77.58248900000001],[-90.059722999999963,77.566375999999991],[-89.937209999999993,77.53276100000005],[-89.91722099999987,77.527205999999978],[-89.841109999999958,77.504166000000055],[-89.806655999999919,77.492477000000122],[-89.753615999999965,77.473038000000031],[-89.719161999999983,77.458328000000108],[-89.636123999999995,77.339157000000057],[-89.640288999999996,77.333328000000051],[-89.67471299999994,77.310256999999979],[-89.70777899999996,77.294144000000131],[-89.849730999999963,77.25],[-89.882767000000001,77.239975000000072],[-89.919998000000021,77.230270000000019],[-90,77.213814000000013],[-90.009170999999981,77.211928999999998],[-90.088897999999915,77.199707000000046],[-90.118057000000022,77.198593000000074],[-90.129165999999998,77.200546000000031],[-90.259170999999924,77.201096000000064],[-90.366942999999992,77.197754000000089],[-90.416655999999989,77.213042999999971],[-90.683318999999926,77.271927000000062],[-90.704726999999934,77.276382000000069],[-90.727218999999934,77.279984000000013],[-90.843063000000029,77.292754999999943],[-90.90972899999997,77.303040000000067],[-90.946655000000021,77.309418000000051],[-91.146666999999923,77.362198000000092],[-91.18249499999996,77.386932000000058],[-91.187209999999993,77.390273999999977],[-91.208892999999932,77.414993000000095],[-91.206954999999994,77.568604000000107],[-91.184433000000013,77.608597000000145],[-91.173614999999927,77.613036999999963],[-91.15834000000001,77.617203000000075],[-91.10943599999996,77.624985000000038],[-90.906386999999938,77.653046000000131],[-90.880828999999949,77.654434000000037],[-90.826400999999976,77.654434000000037],[-90.801666000000012,77.651657000000114],[-90.727492999999981,77.642212000000029],[-90.683608999999933,77.633331000000112],[-90.603058000000033,77.628311000000053]],[[-105.01027699999986,77.408034999999927],[-104.98665599999998,77.404434000000094],[-104.96193700000003,77.404434000000094],[-104.90805099999994,77.406937000000028],[-104.82584400000002,77.413605000000018],[-104.77166699999998,77.416656000000046],[-104.74109599999997,77.414428999999984],[-104.73277300000001,77.411377000000073],[-104.53832999999997,77.338318000000072],[-104.48889199999996,77.318603999999993],[-104.39555399999995,77.276382000000069],[-104.38834400000002,77.271378000000141],[-104.38137799999998,77.264435000000105],[-104.37998999999996,77.261931999999945],[-104.36554699999999,77.230270000000019],[-104.36749299999997,77.224425999999994],[-104.40499899999992,77.172485000000108],[-104.416946,77.161926000000051],[-104.43804899999998,77.150543000000027],[-104.47250400000001,77.13749700000011],[-104.5,77.133040999999992],[-104.52250699999996,77.130539000000113],[-104.74027999999993,77.108597000000088],[-104.79028299999999,77.108871000000022],[-104.83249699999993,77.113312000000121],[-104.85333300000002,77.117477000000122],[-104.86916400000001,77.123596000000134],[-104.883331,77.135543999999982],[-104.89250199999992,77.141936999999928],[-104.906387,77.147491000000116],[-104.92250099999995,77.152481000000023],[-104.945267,77.157211000000018],[-104.993607,77.164992999999981],[-105.04444899999993,77.171371000000136],[-105.09583999999995,77.176085999999998],[-105.11971999999997,77.176650999999993],[-105.13751200000002,77.176085999999998],[-105.15167200000002,77.171371000000136],[-105.24694799999997,77.193863000000022],[-105.40888999999999,77.281661999999983],[-105.41722099999998,77.284714000000065],[-105.45527599999997,77.291930999999977],[-105.48111,77.294983000000116],[-105.50666799999993,77.299149],[-105.531677,77.30525200000011],[-105.55027799999999,77.311645999999996],[-105.57195300000001,77.323317999999915],[-105.67916899999994,77.447479000000044],[-105.691101,77.497208000000057],[-105.83444199999997,77.610260000000096],[-105.85833700000001,77.626923000000147],[-105.878601,77.639709000000096],[-105.88890100000003,77.645263999999997],[-105.93083200000001,77.663040000000137],[-105.94776899999994,77.668868999999972],[-105.98000299999995,77.679427999999973],[-106.01471700000002,77.688583000000051],[-106.08361799999989,77.71026599999999],[-106.09166699999997,77.71527100000003],[-106.09472700000003,77.724151999999947],[-106.08917199999996,77.72886699999998],[-106.07945299999989,77.732758000000047],[-106.04055800000003,77.744980000000055],[-106.01222200000001,77.750549000000035],[-105.94167299999987,77.759720000000016],[-105.91388699999999,77.762497000000053],[-105.70056199999999,77.753600999999946],[-105.64890299999996,77.748596000000077],[-105.55248999999998,77.729430999999977],[-105.50666799999993,77.719711000000075],[-105.47028399999999,77.709152000000017],[-105.38971699999996,77.683868000000018],[-105.17360699999995,77.612198000000035],[-105.15695199999999,77.606093999999985],[-105.03971899999999,77.552199999999971],[-105.02778599999994,77.546371000000136],[-104.968613,77.514435000000049],[-104.95916699999998,77.508041000000048],[-104.94888300000002,77.496094000000085],[-104.94499199999996,77.484984999999995],[-104.946663,77.479155999999989],[-104.95249899999999,77.474425999999937],[-104.96749899999998,77.468872000000147],[-105.01027699999986,77.458603000000096],[-105.01194800000002,77.45277400000009],[-105.01806599999986,77.411925999999994],[-105.01027699999986,77.408034999999927]],[[-95.405838000000017,77.763885000000016],[-95.408889999999928,77.75221300000004],[-95.406113000000005,77.746094000000028],[-95.389724999999942,77.739426000000037],[-95.363892000000021,77.737198000000092],[-95.343886999999995,77.738037000000077],[-95.118606999999997,77.74971000000005],[-95.087783999999942,77.75221300000004],[-95.059433000000013,77.756653000000085],[-95.029174999999952,77.767211999999915],[-95.010833999999988,77.777771000000143],[-94.981673999999998,77.780823000000055],[-94.951674999999966,77.782486000000006],[-94.752228000000002,77.788589000000115],[-94.728881999999942,77.788315000000011],[-94.623321999999973,77.783599999999979],[-94.572783999999899,77.780548000000067],[-94.542220999999927,77.773880000000077],[-94.521118000000001,77.767761000000064],[-94.477492999999924,77.764708999999982],[-94.448607999999979,77.765273999999977],[-94.356658999999866,77.767487000000131],[-94.252501999999936,77.772216999999955],[-94.089995999999928,77.765823000000125],[-94.030288999999982,77.760543999999982],[-93.951110999999969,77.735535000000141],[-93.935821999999973,77.732483000000059],[-93.931380999999988,77.732483000000059],[-93.826675000000023,77.739426000000037],[-93.820007000000032,77.744980000000055],[-93.817779999999971,77.75082400000008],[-93.806655999999919,77.756378000000041],[-93.786666999999966,77.761108000000092],[-93.68638599999997,77.773880000000077],[-93.65695199999999,77.776657],[-93.629439999999931,77.77609300000006],[-93.546111999999994,77.770827999999995],[-93.241669000000002,77.733871000000136],[-93.233886999999868,77.732483000000059],[-93.17471299999994,77.704163000000051],[-93.101944000000003,77.662490999999989],[-93.106658999999922,77.660263000000043],[-93.14834599999989,77.645538000000101],[-93.164169000000015,77.64027400000009],[-93.196380999999974,77.637206999999989],[-93.222504000000015,77.638596000000007],[-93.249161000000015,77.641663000000108],[-93.277221999999938,77.643599999999935],[-93.303054999999972,77.643599999999935],[-93.35943599999996,77.635818000000029],[-93.379439999999988,77.630814000000044],[-93.390288999999939,77.625533999999959],[-93.397232000000031,77.619979999999998],[-93.486388999999974,77.54553199999998],[-93.502501999999993,77.503052000000082],[-93.477782999999988,77.492477000000122],[-93.474715999999944,77.487487999999985],[-93.474166999999909,77.476379000000065],[-93.475280999999995,77.47137499999991],[-93.480834999999956,77.466660000000104],[-93.537780999999995,77.445816000000093],[-93.553054999999915,77.440811000000053],[-93.570556999999951,77.437759000000142],[-93.906661999999983,77.433319000000097],[-93.933884000000035,77.433593999999971],[-94.25167799999997,77.455261000000007],[-94.319457999999997,77.468597000000102],[-94.345001000000025,77.472487999999998],[-94.468886999999995,77.476929000000098],[-94.801101999999901,77.480270000000132],[-95.032226999999978,77.469986000000119],[-95.123610999999983,77.463882000000069],[-95.204453000000001,77.460814999999968],[-95.252791999999943,77.460814999999968],[-95.294998000000021,77.466385000000059],[-95.346389999999985,77.469986000000119],[-95.477492999999981,77.473877000000016],[-95.532776000000013,77.473601999999971],[-95.726105000000018,77.470260999999937],[-95.823623999999938,77.466385000000059],[-95.838897999999858,77.462493999999992],[-95.864166000000012,77.462203999999986],[-95.889450000000011,77.464432000000102],[-96,77.479980000000126],[-96.061385999999857,77.491652999999985],[-96.083327999999995,77.497756999999979],[-96.099730999999963,77.504439999999988],[-96.259170999999981,77.571929999999952],[-96.318343999999968,77.598877000000073],[-96.328888000000006,77.604980000000012],[-96.255568999999923,77.689697000000024],[-96.241104000000007,77.694977000000108],[-96.194442999999978,77.704987000000017],[-96.077224999999942,77.726929000000041],[-95.934433000000013,77.753052000000025],[-95.918059999999969,77.755554000000075],[-95.897231999999974,77.757492000000013],[-95.869445999999925,77.757217000000026],[-95.848052999999993,77.755264000000068],[-95.742767000000015,77.762207000000046],[-95.630553999999961,77.771102999999982],[-95.583892999999932,77.779709000000082],[-95.570007000000032,77.784149000000127],[-95.566101000000003,77.78776600000009],[-95.565552000000025,77.792755000000056],[-95.552779999999927,77.796097000000145],[-95.528884999999946,77.801086000000112],[-95.49610899999999,77.805542000000059],[-95.465285999999935,77.80802900000009],[-95.427779999999984,77.803314000000057],[-95.418335000000013,77.798874000000069],[-95.410827999999981,77.792480000000012],[-95.40695199999999,77.787201000000039],[-95.404449,77.776381999999955],[-95.405838000000017,77.763885000000016]],[[-77.851944000000003,77.774429000000055],[-77.875274999999874,77.774429000000055],[-77.888061999999877,77.781372000000033],[-77.930556999999965,77.808868000000075],[-77.955001999999922,77.830276000000026],[-77.952224999999999,77.833054000000004],[-77.936385999999914,77.839157000000114],[-77.906386999999995,77.844437000000028],[-77.880279999999914,77.848038000000031],[-77.821121000000005,77.854431000000034],[-77.717772999999966,77.863037000000134],[-77.676102000000014,77.864700000000028],[-77.622771999999941,77.862762000000089],[-77.596389999999985,77.860808999999961],[-77.582779000000016,77.858032000000094],[-77.575286999999946,77.854980000000126],[-77.568619000000012,77.849716000000001],[-77.575561999999991,77.823608000000036],[-77.579178000000013,77.81860400000005],[-77.592772999999909,77.813309000000004],[-77.628052000000025,77.804153000000042],[-77.658889999999985,77.79693600000013],[-77.680557000000022,77.792755000000056],[-77.851944000000003,77.774429000000055]],[[-101.71140300000002,77.901657000000057],[-101.671944,77.893326000000002],[-101.62082699999996,77.884430000000066],[-101.52443700000003,77.869980000000112],[-101.450287,77.861098999999967],[-101.36833200000001,77.853867000000093],[-101.26555599999995,77.842758000000003],[-101.23777799999993,77.838882000000126],[-101.19138299999997,77.830826000000059],[-101.16139199999992,77.822769000000051],[-100.96056399999992,77.759155000000135],[-100.92639200000002,77.743317000000104],[-100.92555199999998,77.737198000000092],[-100.92887899999999,77.731369000000086],[-100.94055200000003,77.726929000000041],[-100.96472199999994,77.72554000000008],[-101.096947,77.719436999999914],[-101.21694899999994,77.721924000000001],[-101.26777599999997,77.725815000000068],[-101.31806899999992,77.726089000000002],[-101.50695799999994,77.724991000000102],[-101.53527799999995,77.723602000000142],[-101.56471299999993,77.720535000000041],[-101.58583099999993,77.71527100000003],[-101.593613,77.709427000000005],[-101.60582699999992,77.703873000000044],[-101.62249799999995,77.69859300000013],[-101.65222199999994,77.694427000000076],[-101.79888900000003,77.676376000000062],[-101.82640099999992,77.676086000000055],[-102.01695299999994,77.679703000000018],[-102.06777999999997,77.682205000000067],[-102.1416779999999,77.690810999999997],[-102.43639399999995,77.729705999999965],[-102.44444299999998,77.731934000000081],[-102.51083399999999,77.786102000000085],[-102.52971600000001,77.834152000000074],[-102.51806599999992,77.844146999999964],[-102.49889400000001,77.855545000000006],[-102.45889299999999,77.871094000000085],[-102.44249000000002,77.876648000000102],[-102.41665599999999,77.881927000000076],[-102.38778699999995,77.884155000000021],[-102.13999899999999,77.896378000000084],[-102.08389299999999,77.897217000000069],[-102.04915599999998,77.896942000000024],[-101.91583299999996,77.893875000000094],[-101.83194699999996,77.893875000000094],[-101.779449,77.896378000000084],[-101.74973299999999,77.899719000000118],[-101.71140300000002,77.901657000000057]],[[-114.07305899999994,77.981659000000036],[-113.9813769999999,77.934982000000105],[-113.97501399999993,77.931091000000038],[-113.97222899999997,77.925262000000032],[-113.97222899999997,77.919983000000059],[-113.9583439999999,77.914993000000038],[-113.92388900000003,77.910812000000135],[-113.89499699999993,77.908325000000048],[-113.84028599999999,77.906097000000102],[-113.72666899999996,77.896103000000039],[-113.70639,77.891663000000051],[-113.58556399999998,77.825820999999962],[-113.57861300000002,77.819991999999957],[-113.57611099999997,77.814147999999989],[-113.58750899999995,77.80802900000009],[-113.61916399999996,77.795821999999987],[-113.65972899999997,77.783324999999991],[-113.78832999999992,77.745255000000043],[-113.90833999999995,77.726379000000009],[-113.93472300000002,77.72387700000013],[-114.11444099999989,77.706649999999911],[-114.19304699999998,77.69802900000002],[-114.22305299999999,77.698868000000004],[-114.27722199999999,77.702209000000039],[-114.33112299999999,77.709717000000012],[-114.415009,77.731369000000086],[-114.514183,77.765273999999977],[-114.66251399999999,77.803863999999919],[-114.70916699999998,77.813599000000011],[-114.73029300000002,77.818877999999984],[-114.84834299999994,77.854706000000022],[-115.07721699999996,77.938582999999994],[-115.11138900000003,77.953872999999987],[-115.11501299999992,77.956375000000037],[-115.11609599999991,77.958327999999995],[-115.10833700000001,77.961380000000077],[-115.09084300000001,77.963608000000079],[-115.06054699999993,77.963882000000012],[-115.03388999999993,77.962204000000042],[-114.93028299999997,77.960541000000148],[-114.81973299999993,77.973037999999917],[-114.79778299999992,77.975540000000024],[-114.77749599999993,77.981659000000036],[-114.74027999999998,78.000000000000057],[-114.60582699999998,78.03054800000001],[-114.40083299999998,78.067490000000021],[-114.35500300000001,78.070541000000048],[-114.32694999999995,78.0711060000001],[-114.30332899999996,78.070541000000048],[-114.28694200000001,78.066086000000041],[-114.07305899999994,77.981659000000036]],[[-109.58805799999999,78.064697000000024],[-109.58056599999998,78.058319000000097],[-109.58112299999988,78.041367000000093],[-109.58528100000001,78.035538000000088],[-109.66972399999997,77.971649000000127],[-109.68305999999995,77.965820000000122],[-109.70556599999986,77.959991000000116],[-109.76027699999997,77.951096000000064],[-109.81527699999992,77.942749000000106],[-109.84249899999998,77.938873000000001],[-109.89750699999996,77.932755000000043],[-110.00723299999987,77.921371000000136],[-110.14499699999999,77.911926000000108],[-110.162781,77.906936999999971],[-110.16665599999999,77.901093000000117],[-110.19611399999991,77.896652000000017],[-110.22112299999998,77.893875000000094],[-110.24889399999995,77.893875000000094],[-110.48999000000003,77.883881000000088],[-110.62666300000001,77.873032000000023],[-110.65416700000003,77.871918000000051],[-110.79250299999995,77.870819000000097],[-110.846947,77.866379000000052],[-110.87389400000001,77.862198000000149],[-110.89584400000001,77.856093999999928],[-110.90139799999992,77.849716000000001],[-110.90471600000001,77.843872000000147],[-110.90360999999996,77.838042999999971],[-110.90028399999994,77.832763999999997],[-110.89444699999996,77.826934999999992],[-110.88639799999987,77.820831000000112],[-110.74388099999993,77.773605000000089],[-110.71556099999992,77.768875000000037],[-110.65888999999999,77.759720000000016],[-110.63110399999994,77.758040999999992],[-110.60138699999999,77.758881000000031],[-110.51972999999992,77.763321000000019],[-110.41583299999996,77.770827999999995],[-110.39306599999986,77.773041000000148],[-110.368607,77.776381999999955],[-110.28916899999996,77.782486000000006],[-110.16111799999999,77.784149000000127],[-110.13305700000001,77.780548000000067],[-110.10500299999995,77.774994000000049],[-110.09028599999994,77.769150000000081],[-110.08029199999993,77.763321000000019],[-110.04055800000003,77.637496999999996],[-110.08029199999993,77.563599000000067],[-110.08416699999992,77.557755000000043],[-110.09221599999995,77.551926000000037],[-110.11749299999997,77.539978000000019],[-110.20333899999997,77.511383000000137],[-110.22501399999987,77.505264000000125],[-110.27055399999995,77.49581900000004],[-110.29695100000004,77.491652999999985],[-110.502228,77.460266000000047],[-110.81500199999999,77.424988000000042],[-110.82749899999999,77.419144000000017],[-110.85082999999992,77.414428999999984],[-110.87721299999998,77.411377000000073],[-110.95639,77.407486000000006],[-111.00974299999996,77.406096999999988],[-111.06527699999998,77.406096999999988],[-111.11721799999992,77.408874999999966],[-111.172234,77.416092000000106],[-111.29998799999993,77.419144000000017],[-111.46305799999999,77.393051000000071],[-111.61833200000001,77.373871000000122],[-111.82501199999996,77.34887700000013],[-112.031113,77.324707000000103],[-112.05722000000003,77.323317999999915],[-112.083618,77.323043999999982],[-112.13694800000002,77.323317999999915],[-112.16639700000002,77.325271999999984],[-112.41306299999997,77.356094000000041],[-112.43888900000002,77.361099000000081],[-112.48222399999992,77.371094000000028],[-112.5,77.378235000000018],[-112.50778200000002,77.381363000000022],[-112.52139299999999,77.389434999999992],[-112.52333099999993,77.395263999999997],[-112.52694700000001,77.399719000000061],[-112.545547,77.415817000000061],[-112.587784,77.449141999999938],[-112.60109699999992,77.455261000000007],[-112.626938,77.459427000000062],[-112.65387699999997,77.458878000000141],[-112.68222000000003,77.456939999999975],[-112.69721999999996,77.455261000000007],[-112.73889200000002,77.445816000000093],[-112.764183,77.441650000000038],[-112.79083300000002,77.441086000000098],[-112.80249000000003,77.442474000000004],[-112.92887899999994,77.464157000000114],[-112.95777899999996,77.469436999999971],[-112.96389799999992,77.474152000000004],[-112.96806299999992,77.485809000000131],[-112.96806299999992,77.492203000000018],[-112.97028399999999,77.498032000000023],[-112.978882,77.503326000000015],[-112.99445300000002,77.508881000000088],[-113.01167299999997,77.512771999999984],[-113.03751399999999,77.515823000000012],[-113.06500199999999,77.517211999999972],[-113.14611799999994,77.517761000000121],[-113.17388900000003,77.519440000000145],[-113.198036,77.523880000000133],[-113.20472699999999,77.529433999999981],[-113.23805199999998,77.581375000000037],[-113.24027999999993,77.587204000000042],[-113.16251399999993,77.609146000000123],[-113.1875,77.739426000000037],[-113.20556599999998,77.744431000000077],[-113.26251200000002,77.755554000000075],[-113.283073,77.761108000000092],[-113.29444899999999,77.766662999999994],[-113.30387899999994,77.773041000000148],[-113.31054699999993,77.778595000000109],[-113.31500199999994,77.783875000000023],[-113.31973299999999,77.795531999999923],[-113.31973299999999,77.807204999999954],[-113.31749699999995,77.813033999999959],[-113.30638099999993,77.837203999999986],[-113.23473399999989,77.901657000000057],[-113.23082699999992,77.903594999999996],[-113.20973200000003,77.90887500000008],[-113.12721299999998,77.912201000000096],[-113.09973100000002,77.912766000000147],[-113.07167099999998,77.912201000000096],[-113.04666099999997,77.907761000000107],[-113.03971899999999,77.901932000000102],[-112.94360399999999,77.911926000000108],[-112.80499299999985,77.933043999999995],[-112.78333299999997,77.937195000000088],[-112.76666299999999,77.942474000000061],[-112.74194299999988,77.951660000000004],[-112.57444799999996,77.979431000000091],[-112.46694899999994,77.992477000000008],[-112.29499800000002,78.010544000000095],[-112.12526699999995,78.00610400000005],[-111.97944599999994,78.018599999999992],[-111.787216,78.033599999999922],[-111.77610800000002,78.028046000000131],[-111.756393,78.024428999999998],[-111.73055999999997,78.024155000000064],[-111.70556599999998,78.026931999999988],[-111.63221699999991,78.040817000000061],[-111.34583999999995,78.076935000000105],[-111.31833599999999,78.08027600000014],[-111.28832999999997,78.081940000000145],[-111.09333800000002,78.092484000000013],[-111.048607,78.093597000000102],[-111.02749599999999,78.093322999999998],[-110.99861099999993,78.090546000000074],[-110.99749799999995,78.084717000000069],[-111.00110599999994,78.079987000000017],[-110.995003,78.074158000000011],[-110.90334300000001,78.062194999999974],[-110.861107,78.061645999999996],[-110.83306899999997,78.06303400000013],[-110.80555700000002,78.065262000000075],[-110.78778099999994,78.0711060000001],[-110.77500899999995,78.076935000000105],[-110.77139299999999,78.082764000000111],[-110.76334399999996,78.088882000000069],[-110.74553700000001,78.094711000000075],[-110.72721899999988,78.097762999999986],[-110.67051700000002,78.101089000000002],[-110.54998799999998,78.106094000000098],[-110.46584299999995,78.108597000000032],[-110.23777799999999,78.110809000000131],[-110.10082999999992,78.108597000000032],[-109.95916699999987,78.104705999999965],[-109.78916899999996,78.099716000000114],[-109.67777999999998,78.091933999999981],[-109.65387699999985,78.088318000000129],[-109.60527000000002,78.0711060000001],[-109.58805799999999,78.064697000000024]],[[-101.65139799999997,78.144714000000022],[-101.67527799999999,78.144440000000088],[-101.859444,78.15525800000006],[-101.87917299999992,78.158324999999991],[-101.88194299999998,78.162201000000039],[-101.77610800000002,78.216385000000116],[-101.75334199999992,78.227203000000088],[-101.73137700000001,78.232483000000116],[-101.70722999999987,78.23275799999999],[-101.68472299999996,78.230545000000006],[-101.68167099999994,78.227478000000076],[-101.67250100000001,78.226089000000115],[-101.63362100000001,78.210815000000025],[-101.62277199999988,78.204712000000086],[-101.61582899999996,78.199416999999983],[-101.60360700000001,78.187485000000038],[-101.59999099999993,78.181090999999981],[-101.59861799999993,78.175261999999975],[-101.59973100000002,78.164429000000041],[-101.60527000000002,78.159149000000127],[-101.61305199999998,78.153594999999939],[-101.62581599999993,78.148041000000148],[-101.65139799999997,78.144714000000022]],[[-103.05695300000002,78.119705000000067],[-103.11444099999994,78.11775200000011],[-103.19444299999992,78.11914100000007],[-103.212784,78.120529000000033],[-103.23029300000002,78.123871000000122],[-103.25862099999995,78.134995000000004],[-103.27027900000002,78.141097999999943],[-103.27722199999999,78.146941999999967],[-103.28222700000003,78.15776100000005],[-103.27971600000001,78.163605000000075],[-103.274719,78.169983000000002],[-103.26750199999998,78.17553700000002],[-103.23916600000001,78.192200000000071],[-103.22721899999993,78.197754000000089],[-103.17027300000001,78.219985999999949],[-103.12470999999999,78.236649000000057],[-103.06276700000001,78.258041000000048],[-103.04138199999994,78.263610999999969],[-102.98693800000001,78.27276599999999],[-102.93415800000002,78.27276599999999],[-102.89750700000002,78.269149999999968],[-102.82556199999993,78.258881000000088],[-102.8125,78.255829000000006],[-102.79860699999995,78.250274999999988],[-102.78916899999996,78.24443100000002],[-102.78222700000003,78.238586000000055],[-102.78028899999993,78.23275799999999],[-102.77639799999986,78.215546000000131],[-102.77639799999986,78.210266000000047],[-102.781387,78.204987000000074],[-102.79332699999998,78.199416999999983],[-102.85527000000002,78.188872999999944],[-102.89806399999992,78.17804000000001],[-102.93195300000002,78.166931000000091],[-102.97721899999999,78.150269000000094],[-103.01777599999997,78.133606000000043],[-103.04167199999995,78.122208000000001],[-103.05695300000002,78.119705000000067]],[[-94.366652999999985,78.159149000000127],[-94.378051999999968,78.15776100000005],[-94.404448999999943,78.159988000000112],[-94.506118999999956,78.172760000000096],[-94.520003999999858,78.177475000000129],[-94.67111199999988,78.240814000000057],[-94.683060000000012,78.247208000000057],[-94.694152999999915,78.2586060000001],[-94.692215000000033,78.264709000000039],[-94.681106999999884,78.274155000000007],[-94.660827999999924,78.279160000000047],[-94.635558999999944,78.28387500000008],[-94.602218999999991,78.287200999999925],[-94.572234999999921,78.287766000000147],[-94.546386999999982,78.284424000000058],[-94.515014999999892,78.278046000000074],[-94.481948999999929,78.268326000000002],[-94.36111499999987,78.22164900000007],[-94.344726999999978,78.214706000000092],[-94.316665999999998,78.197479000000044],[-94.309433000000013,78.191086000000098],[-94.306945999999925,78.184982000000048],[-94.309157999999968,78.179153000000042],[-94.366652999999985,78.159149000000127]],[[-88.287215999999944,78.24331699999999],[-88.360001000000011,78.237761999999918],[-88.381942999999978,78.242476999999951],[-88.393616000000009,78.248871000000008],[-88.404723999999987,78.25999500000006],[-88.407500999999911,78.264435000000105],[-88.411117999999931,78.273879999999963],[-88.40972899999997,78.292205999999965],[-88.404449,78.298035000000027],[-88.235274999999888,78.42692599999998],[-88.113051999999982,78.45526099999995],[-88.09445199999999,78.456940000000145],[-88.070281999999963,78.454712000000029],[-88.061385999999914,78.452484000000084],[-88.052779999999927,78.445526000000086],[-88.049728000000016,78.444427000000076],[-88.043334999999956,78.436646000000053],[-88.044448999999929,78.42442299999999],[-88.044997999999964,78.421371000000079],[-88.046660999999972,78.418868999999972],[-88.057220000000029,78.407485999999949],[-88.166396999999961,78.308029000000033],[-88.187774999999988,78.291655999999932],[-88.245543999999995,78.252777000000094],[-88.255004999999983,78.247208000000057],[-88.287215999999944,78.24331699999999]],[[-109.64806399999992,78.588042999999971],[-109.569458,78.586380000000077],[-109.54998799999998,78.586655000000064],[-109.50055700000001,78.582763999999997],[-109.40527299999997,78.556931000000077],[-109.33416699999998,78.524155000000121],[-109.26055899999994,78.487198000000092],[-109.25556899999998,78.482483000000059],[-109.254997,78.478591999999992],[-109.26055899999994,78.455826000000002],[-109.31806899999992,78.35803199999998],[-109.32721700000002,78.352203000000145],[-109.40499899999992,78.306366000000082],[-109.42859599999997,78.303314],[-109.59583999999995,78.302765000000022],[-109.766953,78.294144000000131],[-109.82444799999996,78.293869000000086],[-109.85333300000002,78.29664600000001],[-109.882767,78.301376000000062],[-109.89306599999998,78.307205000000067],[-109.89835399999998,78.3119200000001],[-109.90862299999998,78.317764000000068],[-109.92610200000001,78.323043999999982],[-109.95527599999997,78.325821000000076],[-109.98388699999998,78.325546000000031],[-110.01251200000002,78.323608000000092],[-110.19638099999997,78.303864000000033],[-110.22444199999995,78.299987999999928],[-110.25250199999999,78.295822000000044],[-110.279449,78.284987999999998],[-110.29778299999992,78.281097000000102],[-110.354446,78.276657000000057],[-110.4119419999999,78.277206000000035],[-110.484734,78.284424000000058],[-110.57167099999992,78.289703000000031],[-110.65833999999995,78.29304500000012],[-110.71556099999992,78.292480000000126],[-110.78778099999994,78.306931000000134],[-110.85665899999987,78.327208999999982],[-110.85888699999998,78.337769000000094],[-110.97501399999999,78.363876000000005],[-111.00250199999999,78.368042000000059],[-111.14138799999995,78.386108000000036],[-111.16999799999996,78.384155000000078],[-111.27778599999994,78.372207999999944],[-111.27139299999999,78.346100000000035],[-111.30610699999994,78.321106000000043],[-111.41000400000001,78.277206000000035],[-111.42304999999993,78.272217000000069],[-111.43888899999996,78.268600000000106],[-111.46250899999995,78.267487000000017],[-111.50527999999997,78.266936999999984],[-111.57556199999999,78.270538000000045],[-111.65249599999993,78.27276599999999],[-111.73832700000003,78.27276599999999],[-111.76666299999994,78.271378000000084],[-111.79527299999995,78.271103000000096],[-111.82000700000003,78.273604999999975],[-111.86472300000003,78.296370999999965],[-111.88221699999997,78.306931000000134],[-111.88861099999997,78.312485000000095],[-111.89277599999997,78.318054000000132],[-111.89167800000001,78.322220000000016],[-111.91861,78.332764000000054],[-111.939438,78.338318000000072],[-112.13305700000001,78.36554000000001],[-112.21501199999994,78.365265000000136],[-112.43776700000001,78.354431000000091],[-112.58306899999997,78.343597000000045],[-112.68443299999996,78.331375000000037],[-112.73916599999995,78.323043999999982],[-112.78721599999989,78.310531999999967],[-112.89083900000003,78.292480000000126],[-112.94499199999996,78.28387500000008],[-113.02694700000001,78.27276599999999],[-113.05499299999997,78.271378000000084],[-113.14222699999999,78.268326000000002],[-113.16860999999994,78.268600000000106],[-113.18831599999999,78.269989000000123],[-113.21777299999985,78.27777100000003],[-113.27333099999998,78.296370999999965],[-113.28195199999999,78.299713000000111],[-113.287781,78.302475000000015],[-113.33249699999993,78.328872999999987],[-113.33416699999998,78.332764000000054],[-113.21611000000001,78.385269000000108],[-113.1241609999999,78.420822000000101],[-113.11527999999987,78.423035000000084],[-113.03832999999997,78.436919999999986],[-112.71167000000003,78.484711000000061],[-112.60749800000002,78.4994200000001],[-112.36305199999998,78.533324999999991],[-112.31166100000002,78.539977999999962],[-112.23805199999998,78.547211000000004],[-112.12970699999994,78.551926000000037],[-111.98805199999987,78.552764999999965],[-111.90360999999996,78.548874000000069],[-111.87304699999999,78.544434000000081],[-111.85305800000003,78.542755000000056],[-111.80972299999991,78.545258000000047],[-111.75250199999994,78.55053700000002],[-111.67777999999993,78.563034000000016],[-111.641953,78.574158000000068],[-111.60082999999997,78.585266000000104],[-111.57224299999996,78.588593000000003],[-111.45556599999998,78.592758000000003],[-111.39195299999994,78.61192299999999],[-111.378601,78.617751999999996],[-111.37998999999991,78.622757000000036],[-111.36305199999998,78.64276099999995],[-111.16055299999999,78.691649999999925],[-110.95612299999993,78.718323000000112],[-110.79110700000001,78.735259999999926],[-110.6375119999999,78.748596000000077],[-110.46028100000001,78.757492000000013],[-110.43055700000002,78.758605999999986],[-110.41055299999999,78.757767000000001],[-110.39527900000002,78.756104000000107],[-110.38445299999989,78.751389000000074],[-110.271118,78.727768000000026],[-110.16416900000002,78.70915199999996],[-110.07778899999988,78.694977000000051],[-109.99722300000002,78.683868000000018],[-109.86165599999998,78.666930999999977],[-109.85582699999998,78.660262999999986],[-109.86000100000001,78.654433999999981],[-109.86165599999998,78.649155000000007],[-109.86110699999995,78.643326000000002],[-109.85526999999996,78.637496999999996],[-109.67054699999989,78.591370000000097],[-109.64806399999992,78.588042999999971]],[[-74.306945999999982,78.676651000000049],[-74.334166999999923,78.675262000000089],[-74.36721799999998,78.676086000000055],[-74.419448999999986,78.681655999999919],[-74.614166000000012,78.702774000000034],[-74.704726999999934,78.722762999999929],[-74.710007000000019,78.727477999999962],[-74.710281000000009,78.731094000000041],[-74.706664999999987,78.737488000000099],[-74.645003999999972,78.772491000000059],[-74.632216999999969,78.777206000000092],[-74.615829000000019,78.778595000000109],[-74.591109999999958,78.778870000000097],[-74.555557000000022,78.776093000000003],[-74.356948999999929,78.755829000000062],[-74.312042000000019,78.750000000000057],[-74.28195199999999,78.746094000000028],[-74.192489999999964,78.729705999999965],[-74.167770000000019,78.719986000000063],[-74.163619999999923,78.716094999999996],[-74.172774999999888,78.711380000000133],[-74.236388999999974,78.687194999999917],[-74.256667999999934,78.6827550000001],[-74.28443900000002,78.678864000000033],[-74.306945999999982,78.676651000000049]],[[-96.768065999999976,78.684143000000006],[-96.708892999999989,78.6827550000001],[-96.645003999999972,78.686096000000134],[-96.613051999999982,78.685532000000023],[-96.585007000000019,78.68331900000004],[-96.533614999999941,78.676926000000094],[-96.510559000000001,78.672484999999995],[-96.466399999999965,78.661926000000108],[-96.395279000000016,78.640549000000078],[-96.379165999999998,78.634430000000066],[-96.356109999999944,78.627762000000075],[-96.315826000000015,78.618042000000003],[-96.293883999999935,78.615265000000079],[-96.265015000000005,78.618866000000139],[-96.235549999999989,78.627762000000075],[-96.202498999999875,78.630264000000011],[-96.184432999999956,78.628586000000041],[-96.167495999999971,78.623306000000014],[-96.158889999999872,78.617203000000075],[-96.152495999999985,78.611374000000012],[-96.216400000000021,78.560531999999967],[-96.178054999999915,78.518875000000094],[-96.009445000000028,78.492477000000122],[-95.857773000000009,78.494980000000055],[-95.820006999999919,78.502213000000097],[-95.746658000000025,78.514998999999989],[-95.71665999999999,78.519714000000022],[-95.68472300000002,78.521103000000039],[-95.652221999999995,78.521378000000027],[-95.601944000000003,78.519714000000022],[-95.537215999999944,78.514708999999982],[-95.481673999999998,78.508881000000031],[-95.407775999999956,78.497208000000057],[-95.206389999999942,78.461655000000007],[-95.086944999999957,78.437759000000085],[-94.895003999999972,78.395828000000108],[-94.877776999999924,78.391373000000101],[-94.86082499999992,78.384720000000129],[-94.831679999999949,78.364699999999971],[-94.829177999999956,78.358871000000136],[-94.830840999999907,78.352767999999969],[-94.837508999999955,78.347214000000008],[-94.853332999999907,78.341934000000094],[-94.941939999999988,78.316375999999991],[-94.966948999999943,78.311371000000122],[-95.096389999999928,78.290268000000026],[-95.36361699999992,78.24136400000009],[-95.388061999999934,78.236374000000012],[-95.399170000000026,78.231093999999985],[-95.398620999999991,78.226928999999984],[-95.388900999999976,78.222488000000055],[-95.368880999999988,78.218596999999988],[-95.345839999999953,78.217758000000003],[-95.255279999999914,78.21804800000001],[-95.227492999999981,78.216660000000104],[-95.130829000000006,78.194138000000009],[-95.113051999999925,78.188583000000108],[-95.106948999999986,78.185257000000092],[-95.108611999999994,78.179428000000087],[-95.111937999999952,78.174149000000114],[-95.111937999999952,78.167480000000012],[-95.106109999999944,78.161926000000051],[-95.089721999999995,78.154984000000127],[-95.068068999999923,78.148041000000148],[-94.98332199999993,78.133040999999992],[-94.90695199999999,78.117203000000131],[-94.889998999999989,78.108870999999965],[-94.886947999999961,78.102768000000026],[-94.911666999999852,78.055251999999996],[-95.011397999999986,77.991363999999919],[-95.043883999999935,77.974991000000045],[-95.057494999999903,77.969147000000078],[-95.085280999999952,77.958878000000027],[-95.100554999999929,77.953597999999943],[-95.112503000000004,77.951385000000016],[-95.137511999999958,77.950546000000031],[-95.162506000000008,77.953597999999943],[-95.186385999999857,77.957764000000054],[-95.211670000000026,77.961105000000089],[-95.236938000000009,77.964157],[-95.265838999999971,77.966095000000109],[-95.321395999999993,77.96775800000006],[-95.379989999999964,77.966384999999946],[-95.400283999999999,77.962769000000094],[-95.41332999999986,77.959426999999948],[-95.425551999999925,77.948029000000133],[-95.449722000000008,77.9433140000001],[-95.549728000000016,77.934143000000006],[-95.758057000000008,77.911926000000108],[-95.830840999999964,77.898880000000133],[-95.938599000000011,77.885817999999972],[-96.189437999999939,77.866089000000045],[-96.285552999999936,77.859421000000054],[-96.317504999999926,77.858322000000101],[-96.345551,77.858597000000088],[-96.365279999999984,77.859984999999995],[-96.386123999999995,77.862762000000089],[-96.404174999999952,77.868591000000094],[-96.41194200000001,77.874984999999981],[-96.410827999999924,77.880813999999987],[-96.405272999999966,77.886382999999967],[-96.410552999999993,77.890549000000078],[-96.416945999999996,77.893875000000094],[-96.43582200000003,77.898604999999975],[-96.456664999999987,77.901657000000057],[-96.541107000000011,77.897217000000069],[-96.734436000000017,77.872757000000036],[-96.735000999999954,77.86692800000003],[-96.710555999999997,77.855545000000006],[-96.696380999999917,77.850815000000125],[-96.667220999999927,77.849152000000061],[-96.585007000000019,77.856368999999972],[-96.558884000000035,77.859421000000054],[-96.539718999999991,77.864426000000094],[-96.516113000000018,77.869430999999963],[-96.491668999999888,77.870254999999929],[-96.515563999999983,77.845535000000098],[-96.542770000000019,77.841934000000037],[-96.628325999999959,77.840546000000131],[-96.68720999999988,77.840546000000131],[-96.71166999999997,77.839706000000092],[-96.734160999999972,77.835541000000092],[-96.748610999999926,77.830276000000026],[-96.829452999999944,77.789153999999996],[-96.849990999999989,77.787201000000039],[-96.880553999999961,77.786926000000051],[-96.900283999999999,77.788315000000011],[-96.907776000000013,77.790542999999957],[-96.912216000000001,77.793045000000063],[-96.933884000000035,77.797485000000052],[-97.014174999999966,77.804153000000042],[-97.057495000000017,77.805542000000059],[-97.072509999999909,77.804153000000042],[-97.096953999999926,77.803314000000057],[-97.102218999999991,77.807479999999998],[-97.119720000000029,77.865265000000079],[-97.11999499999996,77.870254999999929],[-97.107497999999964,77.876373000000058],[-97.081389999999942,77.886658000000011],[-97.015563999999983,77.904160000000047],[-97.002228000000002,77.908600000000035],[-96.99221799999998,77.914154000000053],[-96.992492999999911,77.918869000000086],[-96.994995000000017,77.921097000000032],[-97.142775999999969,77.934982000000105],[-97.281676999999945,77.948318000000086],[-97.30999799999995,77.951096000000064],[-97.354445999999996,77.962204000000042],[-97.380279999999971,77.969986000000006],[-97.431670999999994,77.986923000000047],[-97.454726999999934,77.992752000000053],[-97.503066999999874,78.002486999999917],[-97.572234999999978,78.012497000000053],[-97.602782999999931,78.015548999999965],[-97.673614999999984,78.021378000000141],[-97.75556899999998,78.025542999999971],[-97.766953000000001,78.028870000000097],[-97.77555799999999,78.034988000000055],[-97.666945999999996,78.088043000000084],[-97.647781000000009,78.090820000000008],[-97.618331999999953,78.091660000000047],[-97.567504999999926,78.089706000000035],[-97.513061999999991,78.086655000000007],[-97.43249499999996,78.080551000000128],[-97.323623999999995,78.076935000000105],[-97.297775000000001,78.076385000000073],[-97.024444999999901,78.074706999999933],[-96.997771999999998,78.075271999999984],[-96.910278000000005,78.079163000000051],[-96.887511999999958,78.083054000000118],[-96.855559999999912,78.104155999999932],[-96.856383999999991,78.108032000000037],[-96.870543999999995,78.133330999999998],[-96.885558999999944,78.138046000000031],[-96.983886999999925,78.150818000000072],[-97.059157999999968,78.15776100000005],[-97.138061999999934,78.165817000000118],[-97.164444000000003,78.168869000000029],[-97.184722999999963,78.172485000000108],[-97.194992000000013,78.17692599999998],[-97.200835999999924,78.183593999999971],[-97.212509000000011,78.189422999999977],[-97.299438000000009,78.204712000000086],[-97.321120999999948,78.207488999999953],[-97.349166999999966,78.208602999999982],[-97.407776000000013,78.207763999999997],[-97.635558999999944,78.206650000000025],[-97.829453000000001,78.219147000000021],[-97.849441999999954,78.234711000000118],[-97.817504999999983,78.23275799999999],[-97.773055999999997,78.238876000000118],[-97.763335999999924,78.24443100000002],[-97.777785999999878,78.25],[-97.867766999999958,78.279709000000025],[-97.881103999999993,78.283600000000092],[-97.904175000000009,78.28804000000008],[-97.930557000000022,78.290817000000004],[-98.012786999999946,78.296936000000017],[-98.054717999999923,78.301651000000049],[-98.068343999999968,78.308029000000033],[-98.070846999999958,78.313599000000067],[-98.043610000000001,78.389434999999992],[-98.148345999999947,78.403870000000097],[-98.172226000000023,78.40498400000007],[-98.198333999999988,78.408599999999979],[-98.347778000000005,78.443038999999999],[-98.366652999999985,78.449416999999983],[-98.388061999999991,78.467484000000013],[-98.410552999999993,78.490265000000022],[-98.411391999999921,78.4952550000001],[-98.410277999999948,78.508040999999992],[-98.308884000000035,78.533875000000023],[-98.171386999999982,78.529709000000139],[-98.054442999999992,78.533600000000035],[-98.022231999999917,78.53637700000013],[-98.019164999999987,78.542755000000056],[-98.028060999999923,78.563309000000004],[-98.042220999999927,78.569716999999969],[-98.080001999999922,78.582763999999997],[-98.115004999999996,78.593871999999976],[-98.139998999999989,78.599425999999994],[-98.169158999999922,78.603043000000127],[-98.235001000000011,78.619141000000013],[-98.315276999999924,78.64387499999998],[-98.326950000000011,78.650542999999914],[-98.328063999999927,78.652206000000035],[-98.371658000000025,78.719986000000063],[-98.366104000000007,78.763611000000026],[-98.36471599999993,78.768051000000071],[-98.17332499999992,78.812759000000142],[-98.144454999999994,78.816666000000112],[-98.06138599999997,78.818877999999984],[-97.777785999999878,78.815262000000075],[-97.65695199999999,78.811371000000008],[-97.59973100000002,78.807479999999941],[-97.488602000000014,78.796646000000067],[-97.461945000000014,78.792755],[-97.436934999999892,78.786925999999994],[-97.385559000000001,78.776931999999988],[-97.359160999999972,78.773041000000092],[-97.273620999999991,78.764434999999992],[-97.160278000000005,78.758881000000031],[-97.078063999999983,78.74971000000005],[-97.025283999999942,78.741928000000087],[-96.999725000000012,78.736923000000047],[-96.954726999999934,78.726379000000009],[-96.922500999999954,78.713318000000072],[-96.913895000000025,78.706940000000088],[-96.903884999999946,78.701660000000061],[-96.886397999999986,78.696640000000002],[-96.768065999999976,78.684143000000006]],[[-86.319457999999997,78.883606000000043],[-86.388061999999877,78.883041000000048],[-86.414718999999934,78.884430000000009],[-86.444442999999978,78.887207000000103],[-86.469161999999926,78.889708999999982],[-86.484436000000017,78.892761000000121],[-86.476943999999889,78.896378000000084],[-86.43638599999997,78.911102000000085],[-86.386672999999973,78.924988000000099],[-86.366104000000007,78.929703000000131],[-86.346114999999998,78.939697000000137],[-86.328613000000018,78.950821000000019],[-86.292770000000019,78.983047000000113],[-86.285277999999948,78.993317000000047],[-86.283614999999941,78.99803200000008],[-86.046951000000035,79.038589000000059],[-85.990828999999962,79.046936000000073],[-85.924437999999952,79.053864000000033],[-85.896117999999944,79.056931000000134],[-85.820007000000032,79.061371000000008],[-85.712509000000011,79.064148000000046],[-85.646118000000001,79.06442300000009],[-85.321395999999936,79.053864000000033],[-85.263335999999924,79.048874000000012],[-85.216109999999901,79.041367000000037],[-85.199722000000008,79.037490999999989],[-85.182495000000017,79.031372000000147],[-85.167220999999927,79.020828000000108],[-85.169448999999986,79.014709000000039],[-85.176391999999964,79.008880999999974],[-85.186661000000015,79.002777000000094],[-85.20944199999991,78.993590999999981],[-85.225829999999974,78.988586000000112],[-85.246947999999975,78.984146000000067],[-85.301392000000021,78.975266000000033],[-85.466110000000015,78.958327999999995],[-85.546660999999972,78.95248400000014],[-85.765563999999983,78.93414300000012],[-86.026947000000007,78.910262999999986],[-86.213897999999972,78.891663000000051],[-86.244995000000017,78.888321000000076],[-86.284163999999976,78.885268999999994],[-86.319457999999997,78.883606000000043]],[[-103.59388699999988,79.325821000000019],[-103.39835399999993,79.299988000000099],[-103.33556399999998,79.299988000000099],[-103.26251200000002,79.299988000000099],[-103.13999899999993,79.287766000000147],[-103.09777799999995,79.282486000000063],[-103.08361799999994,79.279433999999981],[-103.06806899999992,79.273880000000133],[-102.92111199999999,79.21748400000007],[-102.92666600000001,79.211105000000032],[-102.92639199999996,79.206649999999968],[-102.921944,79.200272000000041],[-102.90194699999995,79.172211000000118],[-102.89167800000001,79.166656000000046],[-102.87444299999987,79.164992999999924],[-102.76862299999993,79.138884999999959],[-102.620003,79.097214000000008],[-102.61165599999998,79.093048000000124],[-102.60582699999998,79.074432000000115],[-102.60637700000001,79.068054000000132],[-102.612213,79.056641000000127],[-102.654449,78.994141000000013],[-102.66555799999998,78.98275799999999],[-102.67582700000003,78.977478000000133],[-102.69860799999992,78.971924000000115],[-102.72084000000001,78.938309000000061],[-102.59500099999997,78.876648000000046],[-102.57945299999994,78.873032000000023],[-102.56082200000003,78.869705000000067],[-102.55082700000003,78.869431000000134],[-102.52887699999985,78.873032000000023],[-102.39195299999994,78.931656000000089],[-102.37638900000002,78.946365000000128],[-102.38054699999998,78.962769000000094],[-102.39806399999992,78.987198000000035],[-102.36305199999998,79.014999000000103],[-102.27944899999989,79.018051000000014],[-102.09361299999989,79.044144000000131],[-102.04943799999995,79.054427999999973],[-102.01500699999997,79.064987000000031],[-101.99333199999995,79.076096000000121],[-101.975281,79.080825999999945],[-101.942207,79.084717000000012],[-101.90249599999993,79.086380000000133],[-101.88194299999998,79.086104999999918],[-101.64890299999996,79.075821000000076],[-101.62805200000003,79.071930000000009],[-101.54194599999994,79.044708000000071],[-101.5202789999999,79.038315000000125],[-101.30803699999996,78.975815000000011],[-101.23166699999996,78.959427000000119],[-101.20472699999999,78.954162999999994],[-101.17666600000001,78.95387299999993],[-101.15222199999988,78.956650000000025],[-101.14334100000002,78.962494000000049],[-101.14472999999992,78.968323000000055],[-101.14083900000003,78.974152000000061],[-101.09388699999994,78.963608000000022],[-101.00556899999998,78.943039000000056],[-100.98665599999998,78.937195000000088],[-100.98528299999998,78.931366000000025],[-101.11694299999988,78.856934000000138],[-101.15278599999999,78.83998100000008],[-101.19304699999992,78.824431999999945],[-101.20056199999999,78.820831000000112],[-101.20333899999997,78.815811000000053],[-101.20084399999996,78.811919999999986],[-101.18639400000001,78.802765000000136],[-101.17278299999998,78.800537000000134],[-100.99194299999999,78.788879000000122],[-100.86389199999991,78.781372000000033],[-100.83056599999992,78.789703000000088],[-100.80055199999998,78.793320000000051],[-100.70556599999998,78.799712999999997],[-100.61389200000002,78.798035000000084],[-100.587784,78.799149000000057],[-100.55915799999997,78.80442800000003],[-100.55027799999993,78.809982000000048],[-100.53639199999998,78.815536000000009],[-100.52443700000003,78.818054000000018],[-100.35109699999998,78.828323000000012],[-100.34445199999993,78.826660000000118],[-100.32389799999999,78.802200000000084],[-100.32250999999997,78.797211000000118],[-100.33249699999993,78.782760999999994],[-100.32333399999993,78.778046000000131],[-100.283073,78.767761000000064],[-100.22778299999993,78.760544000000095],[-100.14334099999996,78.75221300000004],[-100.12416100000002,78.750000000000057],[-100.03250099999997,78.739426000000037],[-100.004997,78.735809000000074],[-99.952498999999989,78.725540000000024],[-99.93638599999997,78.719986000000063],[-99.896392999999932,78.695816000000036],[-99.893889999999942,78.693039000000113],[-99.893065999999976,78.6869200000001],[-99.913329999999917,78.679703000000018],[-99.972777999999948,78.659987999999998],[-100.0625,78.638885000000073],[-100.0625,78.635544000000039],[-100.01666299999988,78.616653000000042],[-99.988891999999908,78.613876000000118],[-99.96305799999999,78.614990000000091],[-99.90972899999997,78.623871000000008],[-99.853332999999964,78.633041000000048],[-99.817504999999926,78.630538999999999],[-99.573623999999995,78.595535000000098],[-99.550277999999878,78.590271000000143],[-99.533324999999991,78.583602999999982],[-99.529723999999987,78.578048999999965],[-99.534164000000033,78.572220000000129],[-99.661117999999931,78.485535000000027],[-99.670272999999895,78.479706000000022],[-99.684157999999968,78.474426000000108],[-99.712508999999955,78.469436999999971],[-99.777221999999995,78.46138000000002],[-99.831389999999999,78.450821000000133],[-99.859436000000017,78.442200000000014],[-99.867767000000015,78.437484999999981],[-99.865004999999996,78.434418000000051],[-99.821395999999993,78.427475000000072],[-99.801391999999964,78.420822000000101],[-99.786666999999966,78.414703000000088],[-99.776672000000019,78.408599999999979],[-99.761123999999995,78.396378000000141],[-99.753615999999909,78.389709000000096],[-99.748336999999992,78.383605999999986],[-99.749160999999958,78.372482000000105],[-99.778609999999958,78.332214000000022],[-99.797774999999945,78.308594000000028],[-99.799437999999952,78.303314],[-99.793883999999878,78.297211000000061],[-99.775832999999977,78.292480000000126],[-99.741378999999938,78.289978000000019],[-99.673049999999989,78.290817000000004],[-99.620543999999938,78.290268000000026],[-99.551102000000014,78.286102000000142],[-99.529449,78.282486000000063],[-99.514450000000011,78.277206000000035],[-99.479720999999984,78.249146000000053],[-99.447768999999994,78.224152000000061],[-99.428329000000019,78.211655000000064],[-99.413894999999968,78.205261000000007],[-99.398620999999991,78.199997000000053],[-99.188599000000011,78.133040999999992],[-98.989166000000012,78.073044000000039],[-98.969161999999926,78.068329000000006],[-98.945830999999885,78.061645999999996],[-98.945830999999885,78.05581699999999],[-98.962783999999942,78.009155000000078],[-98.971663999999976,77.997757000000092],[-98.980834999999956,77.992203000000075],[-98.998885999999914,77.986923000000047],[-99.021666999999866,77.981659000000036],[-99.081115999999952,77.971923999999944],[-99.094727000000034,77.966384999999946],[-99.099166999999966,77.960815000000082],[-99.098891999999921,77.954987000000131],[-99.078612999999905,77.925537000000077],[-99.069167999999991,77.913605000000075],[-99.041381999999942,77.900818000000072],[-99.022781000000009,77.894440000000145],[-99.013335999999981,77.888321000000133],[-99.022231999999974,77.882477000000108],[-99.238051999999982,77.837769000000037],[-99.396666999999979,77.824158000000068],[-99.525283999999999,77.813599000000011],[-99.549438000000009,77.812485000000038],[-99.713057999999933,77.810806000000014],[-99.853881999999999,77.792206000000078],[-99.859436000000017,77.786926000000051],[-99.876937999999939,77.781372000000033],[-99.90695199999999,77.778595000000109],[-100.21000699999996,77.809982000000048],[-100.32972699999999,77.825272000000041],[-100.49889399999995,77.85165400000011],[-100.60637699999995,77.879974000000118],[-100.75527999999997,77.955551000000071],[-100.78611799999999,77.974152000000117],[-100.81749699999995,77.999146000000053],[-100.82389799999999,78.004440000000045],[-100.83833299999998,78.022766000000047],[-100.83778399999994,78.034988000000055],[-100.83693700000003,78.040268000000083],[-100.83444199999991,78.04414399999996],[-100.82694999999995,78.048874000000012],[-100.853882,78.096649000000014],[-100.87581599999999,78.099990999999932],[-100.99861099999998,78.131653000000085],[-101.00974300000001,78.136658000000125],[-101.02194199999991,78.147766000000104],[-101.01889,78.156937000000084],[-101.01528899999994,78.16276600000009],[-101.01363399999997,78.173599000000081],[-101.01390100000003,78.184707999999944],[-101.02027900000002,78.189697000000081],[-101.03555299999999,78.196091000000138],[-101.06276699999995,78.198593000000017],[-101.08944700000001,78.198029000000076],[-101.23137700000001,78.183868000000075],[-101.28943599999997,78.182479999999998],[-101.31667299999998,78.184982000000048],[-101.34249899999998,78.189422999999977],[-101.41722099999998,78.208878000000141],[-101.432503,78.215271000000087],[-101.43138099999999,78.221374999999966],[-101.43276999999989,78.227478000000076],[-101.45638999999994,78.232208000000128],[-101.47416699999991,78.234711000000118],[-101.49665800000002,78.237198000000149],[-101.83332799999999,78.264999000000046],[-102.13305699999989,78.282761000000107],[-102.15750100000002,78.282486000000063],[-102.18221999999997,78.281097000000102],[-102.29888900000003,78.273315000000139],[-102.34722899999997,78.267761000000121],[-102.38890100000003,78.260817999999972],[-102.47138999999999,78.248871000000008],[-102.50167799999997,78.245819000000097],[-102.56139400000001,78.241089000000045],[-102.59056099999987,78.239700000000084],[-102.61860699999994,78.24136400000009],[-102.64527900000002,78.24552900000009],[-102.73222399999992,78.263885000000073],[-102.781387,78.276093000000117],[-102.79778299999998,78.282211000000075],[-102.80943300000001,78.288315000000125],[-102.8163909999999,78.294434000000138],[-102.81833599999999,78.300262000000032],[-102.81360599999994,78.310806000000127],[-102.80803700000001,78.316939999999931],[-102.74999999999989,78.338318000000072],[-102.736107,78.342484000000127],[-102.68639400000001,78.350540000000024],[-102.66583299999991,78.358596999999975],[-102.67083699999995,78.36303700000002],[-102.69499199999996,78.367752000000053],[-102.72250400000001,78.371368000000075],[-102.77778599999994,78.376372999999944],[-102.80610699999994,78.377762000000132],[-102.83583099999998,78.376372999999944],[-102.88999899999999,78.36914100000007],[-102.92027299999995,78.365814000000114],[-102.93804899999992,78.364699999999971],[-102.96694899999989,78.364150999999993],[-103.02443699999998,78.365265000000136],[-103.13390400000003,78.36914100000007],[-103.16388699999999,78.366928000000087],[-103.21417200000002,78.356644000000074],[-103.23832700000003,78.350540000000024],[-103.26471699999996,78.34526100000005],[-103.38110399999988,78.3316650000001],[-103.41111799999999,78.329437000000098],[-103.49804699999999,78.327774000000034],[-103.52749599999987,78.326385000000016],[-103.58473200000003,78.321930000000009],[-103.67999299999997,78.3119200000001],[-103.75110599999999,78.301376000000062],[-103.78195199999999,78.296097000000032],[-103.80803700000001,78.290543000000071],[-103.829453,78.284987999999998],[-103.87721299999998,78.272217000000069],[-103.89417300000002,78.252212999999927],[-103.89890299999996,78.245819000000097],[-103.91027800000001,78.241089000000045],[-103.93331899999998,78.237198000000149],[-103.96305799999999,78.233597000000088],[-103.99194299999999,78.233047000000056],[-104.02250699999996,78.234146000000067],[-104.04277000000002,78.23692299999999],[-104.06984699999987,78.242171999999982],[-104.08306899999997,78.244140999999956],[-104.110817,78.246643000000063],[-104.19027699999998,78.251663000000121],[-104.30471799999992,78.252212999999927],[-104.36361699999998,78.254439999999988],[-104.41251399999999,78.257767000000115],[-104.46749899999998,78.26527400000009],[-104.49445300000002,78.270538000000045],[-104.82055700000001,78.355820000000108],[-104.99194299999999,78.437759000000085],[-104.99999999999994,78.443862999999965],[-105.05055199999998,78.488037000000077],[-105.05139200000002,78.494431000000134],[-105.04305999999991,78.505829000000119],[-105.01194800000002,78.52165199999996],[-104.95361299999996,78.537491000000102],[-104.86860699999994,78.560531999999967],[-104.83139,78.569992000000013],[-104.806107,78.572495000000004],[-104.69638099999992,78.578873000000101],[-104.66665599999999,78.579712000000086],[-104.39778100000001,78.569992000000013],[-104.35500300000001,78.566375999999934],[-104.287781,78.555252000000053],[-104.26278699999995,78.549423000000047],[-104.21221899999995,78.539977999999962],[-104.1661069999999,78.53276100000005],[-104.14277600000003,78.529434000000094],[-104.08833300000003,78.524155000000121],[-104.03388999999999,78.519989000000066],[-103.93055699999996,78.516098],[-103.87110899999993,78.518051000000128],[-103.78250100000002,78.519714000000022],[-103.7225039999999,78.517211999999972],[-103.66583299999996,78.51249700000011],[-103.58860799999997,78.503875999999991],[-103.53333299999991,78.496367999999961],[-103.52362099999999,78.496094000000028],[-103.51834100000002,78.496933000000013],[-103.46584300000001,78.51748699999996],[-103.37805200000003,78.586105000000032],[-103.39998599999996,78.615540000000124],[-103.44666299999994,78.621368000000075],[-103.50611900000001,78.621368000000075],[-103.74082900000002,78.619705000000124],[-103.98554999999999,78.61692800000003],[-104.01000999999991,78.617203000000075],[-104.04215999999991,78.620681999999931],[-104.04222099999998,78.629973999999947],[-104.03278399999988,78.635269000000051],[-103.98916600000001,78.646103000000096],[-103.85193600000002,78.669434000000138],[-103.82611099999997,78.671921000000054],[-103.77223200000003,78.671097000000088],[-103.65834000000001,78.664993000000038],[-103.62888299999992,78.664429000000098],[-103.53943600000002,78.664993000000038],[-103.50917099999987,78.666382000000056],[-103.48361199999994,78.669144000000131],[-103.49082899999996,78.674987999999985],[-103.50306699999999,78.681091000000094],[-103.51306199999993,78.687484999999924],[-103.52778599999999,78.699417000000096],[-103.525284,78.705261000000121],[-103.51806599999998,78.710815000000082],[-103.48860200000001,78.715820000000122],[-103.439438,78.72026100000005],[-103.41221599999989,78.72026100000005],[-103.38861099999997,78.716933999999924],[-103.35804699999994,78.718597000000045],[-103.33389299999999,78.722488000000112],[-103.31916799999999,78.728591999999992],[-103.31639099999995,78.734420999999998],[-103.31889299999995,78.740264999999965],[-103.41665599999999,78.778870000000097],[-103.43916300000001,78.784988000000055],[-103.46806300000003,78.787491000000045],[-103.63971699999996,78.765273999999977],[-103.66915899999992,78.760544000000095],[-103.71056399999998,78.750000000000057],[-103.79611199999999,78.735809000000074],[-103.70249899999999,78.788315000000011],[-103.69526699999994,78.793868999999972],[-103.698036,78.799712999999997],[-103.72693599999997,78.802200000000084],[-103.86054999999999,78.806090999999981],[-103.87053699999996,78.806365999999969],[-103.886124,78.80442800000003],[-103.9083399999999,78.799149000000057],[-103.90556299999997,78.794144000000017],[-103.89639299999993,78.784714000000122],[-103.89083900000003,78.780273000000022],[-103.89527899999996,78.774994000000049],[-103.90527299999997,78.768875000000037],[-103.92916899999994,78.764998999999932],[-103.96056399999992,78.76138300000008],[-103.99109599999991,78.758881000000031],[-104.02166699999992,78.757492000000013],[-104.04943800000001,78.756378000000041],[-104.07389799999993,78.757767000000001],[-104.170547,78.765823000000069],[-104.19888300000002,78.770263999999997],[-104.21167000000003,78.776093000000003],[-104.21972699999998,78.782211000000132],[-104.21528599999999,78.793593999999985],[-104.16722099999998,78.816376000000105],[-104.13305700000001,78.827484000000084],[-104.04834,78.838882000000069],[-103.98665599999998,78.850265999999976],[-103.86054999999999,78.876648000000046],[-103.83139,78.886932000000115],[-103.82389799999999,78.892487000000017],[-103.82167099999992,78.898330999999985],[-103.82472199999995,78.903319999999951],[-103.86749299999997,78.916091999999992],[-103.96305799999999,78.929977000000065],[-103.98998999999998,78.932755000000043],[-104.00639299999995,78.935531999999967],[-104.029449,78.941650000000095],[-104.04750099999995,78.947754000000089],[-104.05332899999996,78.952208999999925],[-104.05387899999999,78.95748900000001],[-104.05222300000003,78.961380000000077],[-104.04778299999992,78.966659999999933],[-104.048607,78.971099999999979],[-104.05777,78.974152000000061],[-104.08112299999999,78.979431000000034],[-104.12943999999999,78.985809000000017],[-104.17859599999991,78.990265000000136],[-104.20361300000002,78.991653000000042],[-104.23388699999998,78.99192800000003],[-104.265556,78.988586000000112],[-104.45500199999998,78.956099999999992],[-104.47193899999996,78.950546000000031],[-104.51112399999994,78.910262999999986],[-104.53832999999997,78.881927000000019],[-104.56416300000001,78.864700000000028],[-104.57888799999989,78.858597000000088],[-104.78582799999998,78.806641000000013],[-104.81749699999995,78.802200000000084],[-104.87860099999995,78.798035000000084],[-104.90915699999999,78.796646000000067],[-104.96888699999994,78.797211000000118],[-104.98832700000003,78.798325000000091],[-105.01194800000002,78.803589000000102],[-105.02250699999996,78.809982000000048],[-105.02861000000001,78.815262000000075],[-105.02916699999997,78.821655000000078],[-105.02834300000001,78.832763999999941],[-105.01222200000001,78.844711000000075],[-104.83389299999999,78.926650999999993],[-104.68859899999995,78.993590999999981],[-104.67887899999999,78.999709999999993],[-104.674713,79.004990000000078],[-104.68110699999994,79.016663000000108],[-104.69415300000003,79.022766000000047],[-104.70805399999995,79.027771000000087],[-104.737213,79.031936999999971],[-104.90249599999993,79.04971299999994],[-104.98638899999997,79.043045000000006],[-105.01334399999996,79.038315000000125],[-105.09916699999991,79.02388000000002],[-105.12526700000001,79.021103000000096],[-105.15638699999988,79.019439999999975],[-105.39527900000002,79.011658000000068],[-105.42610200000001,79.011108000000036],[-105.48388699999998,79.013046000000145],[-105.51363399999997,79.016098000000056],[-105.54332699999998,79.020263999999941],[-105.5625,79.024428999999941],[-105.58138999999994,79.03054800000001],[-105.59084299999995,79.034424000000058],[-105.59944200000001,79.040268000000083],[-105.60665899999992,79.051926000000094],[-105.628601,79.161377000000073],[-105.62053699999996,79.172760000000096],[-105.48277300000001,79.306366000000082],[-105.45973199999997,79.324158000000125],[-105.43998699999997,79.329162999999994],[-105.40862299999992,79.328872999999987],[-105.38305699999995,79.326935000000049],[-105.33277899999996,79.319443000000092],[-105.19721999999996,79.299713000000111],[-105.16111799999999,79.297485000000108],[-105.12721299999998,79.297485000000108],[-105.10861199999999,79.298874000000126],[-105.01611300000002,79.310531999999967],[-104.95472699999993,79.315262000000018],[-104.85916099999997,79.319153000000085],[-104.74276700000001,79.322495000000004],[-104.58332799999999,79.329437000000098],[-104.54860699999989,79.331375000000037],[-104.49082900000002,79.339157],[-104.46083099999998,79.342209000000082],[-104.18167099999999,79.358871000000079],[-104.00723299999999,79.367752000000053],[-103.97778299999999,79.368866000000025],[-103.9491579999999,79.368042000000059],[-103.83500699999996,79.36442599999998],[-103.7225039999999,79.356934000000024],[-103.69526699999994,79.352203000000088],[-103.62053700000001,79.330551000000071],[-103.59388699999988,79.325821000000019]],[[-99.471663999999976,80.109711000000004],[-99.436661000000015,80.107208000000014],[-99.404723999999931,80.10803199999998],[-99.298049999999989,80.118866000000025],[-99.136672999999917,80.133040999999935],[-99.110549999999876,80.130539000000056],[-99.081680000000006,80.124695000000031],[-98.868880999999988,80.077774000000034],[-98.856658999999922,80.07249500000006],[-98.774719000000005,80.01527400000009],[-98.705841000000021,79.965820000000065],[-98.644164999999873,79.800261999999918],[-98.644164999999873,79.794144000000017],[-98.648620999999878,79.783599999999922],[-98.673049999999989,79.771927000000119],[-98.779175000000009,79.702208999999982],[-98.830001999999922,79.664429000000098],[-98.868057000000022,79.700821000000076],[-98.936110999999983,79.719711000000018],[-98.967772999999909,79.724152000000117],[-99.139998999999932,79.740814000000114],[-99.243056999999965,79.748596000000077],[-99.273620999999935,79.751389000000017],[-99.301391999999908,79.75471500000009],[-99.317229999999995,79.758605999999986],[-99.324448000000018,79.762497000000053],[-99.325561999999991,79.767487000000074],[-99.322509999999909,79.771378000000141],[-99.313048999999921,79.776093000000003],[-99.304717999999923,79.782211000000132],[-99.302779999999984,79.787490999999989],[-99.297501000000011,79.812759000000085],[-99.295837000000006,79.833328000000051],[-99.296386999999925,79.839157000000057],[-99.302215999999873,79.845261000000107],[-99.315826000000015,79.848602000000142],[-99.368880999999988,79.857758000000103],[-99.556655999999919,79.888885000000016],[-99.584441999999967,79.891937000000098],[-99.614166000000012,79.893326000000116],[-99.647781000000009,79.893051000000071],[-99.67971799999998,79.888046000000031],[-99.700835999999867,79.882750999999985],[-99.732223999999974,79.878860000000088],[-99.800827000000027,79.876648000000046],[-100.00556899999998,79.8744200000001],[-100.03582799999992,79.874695000000088],[-100.07028199999996,79.876923000000033],[-100.09777800000001,79.881088000000034],[-100.12110899999999,79.886658000000125],[-100.14389,79.893051000000071],[-100.15862299999998,79.898605000000089],[-100.17748999999998,79.909988000000112],[-100.17832900000002,79.915817000000118],[-100.19332900000001,80.03387500000008],[-100.08167999999989,80.084427000000005],[-100.06555200000003,80.089980999999966],[-100.02362099999993,80.099716000000058],[-99.827224999999999,80.143599999999992],[-99.795272999999952,80.147766000000104],[-99.759170999999981,80.149719000000005],[-99.726944000000003,80.150542999999971],[-99.625548999999921,80.148880000000077],[-99.599990999999989,80.145263999999997],[-99.593886999999881,80.139160000000004],[-99.571120999999948,80.132751000000098],[-99.471663999999976,80.109711000000004]],[[-99.155563000000029,80.174697999999978],[-99.127212999999927,80.168045000000006],[-99.113891999999964,80.163879000000122],[-99.138061999999991,80.162491000000045],[-99.160552999999993,80.163040000000137],[-99.184998000000007,80.167755],[-99.251952999999901,80.173035000000084],[-99.277495999999985,80.173035000000084],[-99.313613999999973,80.171097000000145],[-99.341384999999946,80.166092000000106],[-99.333069000000023,80.159424000000115],[-99.30360399999995,80.153870000000097],[-99.305556999999908,80.148331000000098],[-99.342498999999918,80.145538000000101],[-99.375274999999931,80.147217000000126],[-99.400557999999933,80.150818000000015],[-99.418059999999969,80.157211000000132],[-99.418335000000013,80.163040000000137],[-99.413329999999974,80.168868999999972],[-99.386947999999961,80.17886400000009],[-99.366942999999935,80.182205000000124],[-99.239165999999898,80.183868000000075],[-99.211944999999957,80.182205000000124],[-99.155563000000029,80.174697999999978]],[[-95.030837999999903,80.670258000000047],[-94.969451999999933,80.640274000000034],[-94.970551,80.635268999999994],[-94.981383999999991,80.631927000000076],[-95.006957999999997,80.626648000000046],[-95.190276999999924,80.608871000000022],[-95.226104999999961,80.60914600000001],[-95.453613000000018,80.629424999999969],[-95.611114999999984,80.648040999999978],[-95.676940999999943,80.653319999999951],[-95.711945000000014,80.654433999999981],[-95.749160999999958,80.653869999999984],[-95.788054999999929,80.652205999999978],[-95.823623999999938,80.648604999999918],[-95.86332699999997,80.645828000000051],[-96.061935000000005,80.656647000000078],[-96.118056999999965,80.660537999999974],[-96.14916999999997,80.664703000000145],[-96.139449999999954,80.669708000000014],[-96.076675000000023,80.683043999999995],[-96.028335999999967,80.687195000000088],[-96.006119000000012,80.688034000000016],[-95.491378999999995,80.699997000000053],[-95.424438000000009,80.699707000000046],[-95.200561999999934,80.697479000000101],[-95.166945999999939,80.695250999999985],[-95.128875999999934,80.691925000000083],[-95.096663999999976,80.688582999999994],[-95.062499999999943,80.682480000000055],[-95.065276999999924,80.680542000000116],[-95.045836999999949,80.676926000000037],[-95.030837999999903,80.670258000000047]],[[-92.727782999999931,81.305542000000059],[-92.530288999999982,81.284988000000112],[-92.21305799999999,81.245529000000033],[-92.148055999999997,81.236374000000126],[-92.124709999999936,81.232758000000103],[-92.052489999999921,81.218597000000102],[-91.955841000000021,81.196365000000014],[-91.858046999999999,81.167755],[-91.781677000000002,81.090271000000143],[-91.783889999999928,81.083602999999982],[-91.797501000000011,81.081665000000044],[-91.832503999999972,81.080276000000083],[-91.888061999999934,81.081940000000088],[-91.914444000000003,81.078049000000021],[-91.913894999999968,81.07499700000011],[-91.908614999999998,81.070540999999992],[-91.893341000000021,81.064986999999974],[-91.865828999999962,81.058594000000028],[-91.767226999999934,81.049148999999943],[-91.72222899999997,81.042205999999965],[-91.538895000000025,80.981658999999979],[-91.52555799999999,80.974990999999989],[-91.522781000000009,80.962769000000037],[-91.531676999999945,80.951096000000007],[-91.527221999999995,80.939697000000081],[-91.517776000000026,80.932754999999986],[-91.481673999999998,80.919434000000024],[-91.321121000000005,80.882750999999985],[-91.306106999999997,80.875534000000016],[-91.152221999999995,80.785538000000031],[-91.154998999999975,80.78054800000001],[-91.14916999999997,80.770263999999997],[-91.140563999999983,80.764709000000096],[-91.121658000000025,80.754715000000033],[-91.099441999999954,80.74803200000008],[-91.03472899999997,80.737488000000042],[-90.972777999999948,80.730270000000019],[-90.905272999999966,80.724425999999994],[-90.777221999999995,80.71775800000006],[-90.754181000000017,80.714995999999928],[-90.712783999999999,80.705551000000071],[-90.664718999999991,80.684708000000001],[-90.652495999999928,80.67804000000001],[-90.603881999999999,80.651382000000012],[-90.593612999999948,80.645264000000111],[-90.593063000000029,80.640823000000012],[-90.601943999999946,80.636107999999979],[-90.615829000000019,80.630264000000125],[-90.678054999999972,80.615540000000067],[-90.715835999999911,80.605545000000006],[-90.742492999999911,80.594711000000075],[-90.763061999999991,80.583603000000096],[-90.771666999999979,80.577484000000084],[-90.772780999999952,80.571930000000066],[-90.766402999999912,80.565536000000066],[-90.741378999999938,80.562195000000031],[-90.706116000000009,80.561371000000065],[-90.607223999999917,80.561371000000065],[-90.583069000000023,80.561371000000065],[-90.418059999999912,80.552200000000084],[-90.238891999999964,80.550536999999963],[-90.203339000000028,80.549712999999997],[-90.177215999999987,80.548874000000069],[-90.046386999999925,80.541656000000046],[-90.016402999999968,80.538039999999967],[-90,80.534591999999975],[-89.989990000000034,80.532486000000006],[-89.961394999999982,80.520263999999997],[-89.955565999999976,80.515548999999965],[-89.938598999999954,80.508330999999998],[-89.84056099999998,80.481369000000086],[-89.81639100000001,80.474991000000102],[-89.790282999999931,80.469437000000084],[-89.762511999999958,80.464995999999985],[-89.75111400000003,80.464432000000045],[-89.784163999999919,80.500824000000023],[-89.748336999999879,80.532760999999994],[-89.586945000000014,80.545532000000094],[-89.546111999999994,80.547485000000052],[-89.482773000000009,80.544983000000002],[-89.447219999999902,80.542480000000012],[-89.354172000000005,80.534988000000055],[-89.326400999999919,80.531937000000028],[-89.272781000000009,80.523315000000025],[-89.244995000000017,80.517212000000086],[-89.059158000000025,80.461380000000133],[-89.087508999999955,80.438583000000051],[-89.115279999999927,80.433868000000018],[-89.176101999999958,80.426651000000049],[-89.198333999999932,80.42164600000001],[-89.20944199999991,80.417754999999943],[-89.235001000000011,80.408035000000041],[-89.25,80.402206000000035],[-89.257232999999985,80.396942000000081],[-89.253615999999965,80.392761000000007],[-89.237212999999997,80.388596000000007],[-89.216948999999943,80.389709000000039],[-89.189712999999927,80.394149999999968],[-89.167496000000028,80.399155000000007],[-89.136123999999995,80.40248100000008],[-89.09973100000002,80.40248100000008],[-89.083327999999881,80.398331000000042],[-89.075835999999924,80.393051000000014],[-89.104995999999915,80.339431999999988],[-89.114165999999955,80.333327999999938],[-89.125274999999931,80.327773999999977],[-89.143616000000009,80.323318000000029],[-89.169158999999979,80.318054000000075],[-89.220275999999899,80.30914300000012],[-89.241942999999935,80.304153000000099],[-89.256667999999991,80.298599000000081],[-89.263900999999976,80.293320000000108],[-89.262221999999952,80.286652000000117],[-89.25140399999998,80.278320000000122],[-89.180496000000005,80.238174000000072],[-89.113892000000021,80.208038000000045],[-89.092223999999987,80.200821000000133],[-89.072784000000013,80.195526000000086],[-88.776672000000019,80.131363000000022],[-88.75,80.126647999999989],[-88.534728999999913,80.09887700000013],[-88.49888599999997,80.09887700000013],[-88.441939999999931,80.100540000000024],[-88.414718999999991,80.104980000000069],[-88.414444000000003,80.10803199999998],[-88.363051999999925,80.124420000000043],[-88.235274999999888,80.102477999999962],[-88.161941999999954,80.09165999999999],[-88.145554000000004,80.093872000000033],[-88.148346000000004,80.098037999999974],[-88.261397999999929,80.18803400000013],[-88.27305599999994,80.195526000000086],[-88.294158999999979,80.201385000000073],[-88.350829999999974,80.208878000000084],[-88.422775000000001,80.210541000000035],[-88.479996000000028,80.213608000000136],[-88.506957999999941,80.218322999999998],[-88.595276000000013,80.236923000000104],[-88.618057000000022,80.24331699999999],[-88.630279999999914,80.249145999999996],[-88.661391999999921,80.272491000000116],[-88.684432999999956,80.358597000000145],[-88.68582200000003,80.365540000000124],[-88.685271999999998,80.371643000000063],[-88.683059999999955,80.376923000000147],[-88.67721599999993,80.382751000000042],[-88.648894999999925,80.393600000000106],[-88.615279999999927,80.40387000000004],[-88.510284000000013,80.428864000000033],[-88.487777999999992,80.433868000000018],[-88.463333000000034,80.438034000000073],[-88.420546999999999,80.442200000000014],[-88.383895999999993,80.443588000000091],[-88.308333999999945,80.442749000000106],[-88.110549999999932,80.4327550000001],[-87.918883999999991,80.421097000000088],[-87.718613000000005,80.411102000000142],[-87.683884000000035,80.410263000000043],[-87.666396999999904,80.40387000000004],[-87.636123999999938,80.36692800000003],[-87.607498000000021,80.324158000000068],[-87.563889000000017,80.233322000000044],[-87.561935000000005,80.183593999999914],[-87.562774999999931,80.179153000000042],[-87.572234999999921,80.176086000000112],[-87.678054999999915,80.156371999999976],[-87.721389999999985,80.153046000000131],[-87.939162999999951,80.143875000000037],[-87.96665999999999,80.139434999999992],[-88.048889000000031,80.125809000000004],[-88.065552000000025,80.120818999999983],[-88.060546999999985,80.117477000000065],[-87.956664999999987,80.069717000000026],[-87.938048999999978,80.06442300000009],[-87.891387999999949,80.055542000000116],[-87.860001000000011,80.053588999999988],[-87.836120999999935,80.0577550000001],[-87.823059000000001,80.062484999999924],[-87.763061999999934,80.071106000000043],[-87.720000999999911,80.074707000000103],[-87.680557000000022,80.076385000000016],[-87.641678000000013,80.076385000000016],[-87.365004999999996,80.072768999999994],[-87.299987999999985,80.069443000000092],[-87.275557999999876,80.066939999999931],[-87.258620999999948,80.063873000000058],[-87.233321999999987,80.057480000000055],[-87.215285999999992,80.050537000000077],[-87.043334999999956,79.964996000000099],[-87.093612999999948,79.929428000000087],[-87.314437999999996,79.866088999999988],[-87.336120999999935,79.861374000000126],[-87.368332000000009,79.857208000000071],[-87.446655000000021,79.856094000000098],[-87.471938999999907,79.852478000000019],[-87.483062999999959,79.847214000000065],[-87.489440999999943,79.84137000000004],[-87.485549999999876,79.834991000000002],[-87.463622999999984,79.831374999999923],[-87.439162999999951,79.831940000000145],[-87.412780999999995,79.833328000000051],[-87.338608000000022,79.840820000000008],[-87.190826000000015,79.866088999999988],[-87.165558000000033,79.871094000000028],[-87.146956999999929,79.875534000000073],[-87.079726999999934,79.896103000000039],[-87.051392000000021,79.906647000000078],[-87.024718999999948,79.916091999999935],[-87.003066999999987,79.917755000000056],[-86.985824999999977,79.917755000000056],[-86.973891999999864,79.916381999999942],[-86.961394999999982,79.909988000000112],[-86.957779000000016,79.903594999999939],[-86.960555999999997,79.891372999999987],[-87.055557000000022,79.731934000000081],[-87.134170999999924,79.645264000000111],[-87.14416499999993,79.637771999999984],[-87.154998999999975,79.6336060000001],[-87.173049999999989,79.629149999999981],[-87.258620999999948,79.610260000000039],[-87.344451999999933,79.596374999999966],[-87.425551999999982,79.579163000000108],[-87.441665999999941,79.573883000000023],[-87.448043999999982,79.568329000000062],[-87.462509000000011,79.534713999999951],[-87.441939999999988,79.526382000000012],[-87.406661999999983,79.515823000000125],[-87.390563999999927,79.511108000000092],[-87.366394000000014,79.506378000000041],[-87.345276000000013,79.503052000000025],[-87.309998000000007,79.50221300000004],[-87.280563000000029,79.506943000000092],[-87.262786999999946,79.51138300000008],[-87.248336999999992,79.516937000000098],[-87.190552000000025,79.543593999999985],[-87.182769999999948,79.548874000000069],[-87.179992999999968,79.554153000000042],[-87.168883999999991,79.566376000000105],[-87.161117999999931,79.571655000000078],[-87.076675000000023,79.587493999999992],[-87.02555799999999,79.595535000000098],[-87.001113999999973,79.598877000000016],[-86.966659999999933,79.60165400000011],[-86.932495000000017,79.60165400000011],[-86.841384999999946,79.59304800000001],[-86.823623999999995,79.587769000000037],[-86.819732999999985,79.576096000000007],[-86.823897999999986,79.566086000000098],[-86.839721999999995,79.555817000000047],[-86.846389999999985,79.549988000000042],[-86.837783999999999,79.543320000000051],[-86.816665999999998,79.539703000000145],[-86.789992999999981,79.538878999999952],[-86.777221999999995,79.542206000000078],[-86.694991999999957,79.567490000000078],[-86.693329000000006,79.573608000000036],[-86.71055599999994,79.587203999999986],[-86.723891999999978,79.594437000000028],[-86.746383999999978,79.599990999999989],[-86.802489999999977,79.606093999999928],[-86.813048999999921,79.61192299999999],[-86.806380999999874,79.617751999999996],[-86.795272999999952,79.621643000000063],[-86.77694699999995,79.627472000000068],[-86.762222000000008,79.631653000000142],[-86.687209999999993,79.645264000000111],[-86.640838999999914,79.653320000000008],[-86.613051999999925,79.655822999999998],[-86.575012000000015,79.657211000000075],[-86.547775000000001,79.65637200000009],[-86.334166999999923,79.645538000000045],[-86.302779999999984,79.642761000000121],[-86.279448999999943,79.640274000000034],[-86.258895999999993,79.63499500000006],[-86.109160999999972,79.595260999999994],[-86.046111999999994,79.568877999999984],[-86.042220999999927,79.565536000000066],[-86.028060999999923,79.474701000000096],[-86.05471799999998,79.470535000000041],[-86.160552999999993,79.463608000000136],[-86.167496000000028,79.457764000000111],[-86.136123999999995,79.444702000000063],[-86.120834000000002,79.439972000000068],[-86.098891999999921,79.435806000000127],[-86.070847000000015,79.434143000000063],[-86.035004000000015,79.436371000000008],[-86.011947999999961,79.440262000000075],[-85.990554999999972,79.444977000000108],[-85.975829999999917,79.449142000000109],[-85.964171999999962,79.454436999999984],[-85.901108000000022,79.493591000000038],[-85.887222000000008,79.505264000000068],[-85.885283999999956,79.51138300000008],[-85.893341000000021,79.523315000000082],[-85.89916999999997,79.536377000000073],[-85.896666999999979,79.549149000000114],[-85.893341000000021,79.554703000000075],[-85.887786999999946,79.56109600000002],[-85.847504000000015,79.596374999999966],[-85.840285999999992,79.601928999999927],[-85.828339000000028,79.607483000000116],[-85.781386999999995,79.615540000000124],[-85.743606999999997,79.61692800000003],[-85.681945999999925,79.613312000000121],[-85.639175000000023,79.604155999999989],[-85.623885999999914,79.599152000000061],[-85.591385000000002,79.585266000000047],[-85.531112999999948,79.559418000000107],[-85.485000999999954,79.518600000000049],[-85.402221999999995,79.473602000000142],[-85.306655999999919,79.428314],[-85.27806099999998,79.415543000000127],[-85.150557999999933,79.38220200000012],[-85.130279999999971,79.378586000000098],[-85.039718999999877,79.350815000000011],[-84.93249499999996,79.300262000000032],[-84.920273000000009,79.293320000000108],[-84.904175000000009,79.276657000000057],[-84.904175000000009,79.267761000000121],[-84.909728999999857,79.263046000000088],[-84.93110699999994,79.258331000000055],[-85.099990999999932,79.239426000000094],[-85.158889999999928,79.231933999999967],[-85.211394999999868,79.223311999999964],[-85.232772999999952,79.218872000000147],[-85.248046999999872,79.213042999999971],[-85.260009999999909,79.207763999999997],[-85.271941999999967,79.19720500000011],[-85.280563000000029,79.192200000000071],[-85.297226000000023,79.187195000000031],[-85.591385000000002,79.15415999999999],[-85.779998999999918,79.131088000000034],[-85.877212999999983,79.121642999999949],[-86.00389100000001,79.111374000000126],[-86.158889999999985,79.103316999999947],[-86.271392999999989,79.095534999999984],[-86.341674999999952,79.088318000000072],[-86.422501000000011,79.075546000000088],[-86.485549999999989,79.063309000000118],[-86.550827000000027,79.048874000000012],[-86.55999799999995,79.044434000000138],[-86.555557000000022,79.042480000000126],[-86.550827000000027,79.035538000000031],[-86.552490000000034,79.029434000000037],[-86.55999799999995,79.012206999999989],[-86.587783999999942,78.983597000000145],[-86.598891999999921,78.978317000000061],[-86.614440999999943,78.973312000000021],[-86.676940999999886,78.959717000000126],[-86.702224999999942,78.955261000000064],[-86.741378999999938,78.951934999999992],[-86.765015000000005,78.953598000000113],[-86.785004000000015,78.957213999999965],[-86.808334000000002,78.967209000000082],[-86.903335999999854,79.009430000000066],[-86.916396999999961,79.016663000000108],[-86.926391999999964,79.035812000000135],[-86.930556999999965,79.047760000000039],[-86.940551999999968,79.053589000000045],[-86.949158000000011,79.057205000000067],[-86.965285999999935,79.057480000000112],[-86.98332199999993,79.056641000000127],[-86.989989999999977,79.047760000000039],[-87.004456000000005,78.987198000000035],[-87.002501999999993,78.981369000000029],[-86.986937999999952,78.949707000000046],[-86.979995999999971,78.9433140000001],[-86.966948999999943,78.936371000000122],[-86.950835999999981,78.929428000000087],[-86.942764000000011,78.922485000000108],[-86.937774999999988,78.91693099999992],[-86.952498999999932,78.906647000000078],[-86.97084000000001,78.896103000000039],[-86.997498000000007,78.882477000000051],[-87.021666999999923,78.873032000000023],[-87.052490000000034,78.862762000000089],[-87.179442999999935,78.830551000000014],[-87.282775999999956,78.810257000000036],[-87.328063999999983,78.794708000000128],[-87.353881999999999,78.78414900000007],[-87.529998999999918,78.6869200000001],[-87.532776000000013,78.669983000000116],[-87.543059999999969,78.664703000000031],[-87.572783999999956,78.654433999999981],[-87.591949,78.649718999999948],[-87.615829000000019,78.645264000000111],[-87.663054999999986,78.642487000000017],[-87.684432999999956,78.644989000000123],[-87.872771999999941,78.694977000000051],[-87.937774999999874,78.738312000000064],[-87.953612999999962,78.74971000000005],[-87.959166999999979,78.755264000000068],[-87.993880999999931,78.79525799999999],[-88.003341999999918,78.807205000000124],[-88.00140399999998,78.824158000000011],[-87.985275000000001,78.957213999999965],[-87.981673999999884,78.960541000000092],[-87.968338000000017,78.966385000000116],[-87.894164999999987,78.979706000000078],[-87.833617999999944,78.992203000000075],[-87.81361400000003,78.99693300000007],[-87.794448999999986,79.006943000000035],[-87.728881999999942,79.069442999999978],[-87.724715999999944,79.075821000000076],[-87.733886999999982,79.081100000000049],[-87.746108999999933,79.086104999999918],[-87.752791999999999,79.085540999999978],[-87.772780999999952,79.080825999999945],[-87.806380999999931,79.06999200000007],[-87.849166999999966,79.054977000000122],[-87.872771999999941,79.045258000000103],[-87.883330999999998,79.039978000000076],[-87.894454999999994,79.028320000000008],[-87.890288999999996,79.021652000000074],[-87.899993999999992,79.011108000000036],[-87.929442999999992,79.006943000000035],[-88.000564999999995,79.00360100000006],[-88.032776000000013,79.003876000000105],[-88.061385999999914,79.005829000000006],[-88.093886999999938,79.004440000000045],[-88.162506000000008,78.990540000000124],[-88.202498999999932,78.976379000000122],[-88.21305799999999,78.966095000000109],[-88.215285999999935,78.960815000000025],[-88.216659999999933,78.948318000000029],[-88.229720999999984,78.802200000000084],[-88.224716000000001,78.78915399999994],[-88.22222899999997,78.783324999999934],[-88.218063000000029,78.776931999999988],[-88.201110999999969,78.757216999999969],[-88.132216999999969,78.68081699999999],[-88.044158999999922,78.658600000000092],[-88.02416999999997,78.656647000000135],[-88.010833999999932,78.652771000000087],[-87.993056999999965,78.645264000000111],[-87.982772999999952,78.639435000000105],[-87.908614999999998,78.596939000000077],[-87.894729999999981,78.584717000000126],[-87.890839000000028,78.578323000000069],[-87.896956999999873,78.566375999999934],[-87.908339999999953,78.548599000000081],[-87.984725999999966,78.492202999999961],[-88.011948000000018,78.481369000000086],[-88.055832000000009,78.472762999999986],[-88.205276000000026,78.452484000000084],[-88.234160999999972,78.453598000000056],[-88.249160999999958,78.456649999999968],[-88.389450000000011,78.521378000000027],[-88.559432999999899,78.604156000000046],[-88.574721999999952,78.607208000000128],[-88.723052999999993,78.615814000000057],[-88.788605000000018,78.612761999999975],[-88.804168999999945,78.609711000000118],[-88.746108999999933,78.535812000000078],[-88.725006000000008,78.524155000000121],[-88.659164000000033,78.491088999999988],[-88.595276000000013,78.459991000000002],[-88.5625,78.44470200000012],[-88.552215999999987,78.437484999999981],[-88.543883999999991,78.426086000000112],[-88.535552999999993,78.413040000000137],[-88.536117999999931,78.406937000000028],[-88.538054999999986,78.401382000000126],[-88.541381999999999,78.396652000000074],[-88.553054999999915,78.385544000000095],[-88.561110999999983,78.379425000000083],[-88.570556999999951,78.373871000000065],[-88.614715999999987,78.348327999999981],[-88.663329999999974,78.321381000000031],[-88.672501000000011,78.316085999999984],[-88.704177999999956,78.271103000000096],[-88.710555999999997,78.261107999999979],[-88.713897999999858,78.254715000000033],[-88.71556099999998,78.249146000000053],[-88.716110000000015,78.243042000000003],[-88.721114999999941,78.231093999999985],[-88.726105000000018,78.225266000000033],[-88.75140399999998,78.196930000000123],[-88.776672000000019,78.176085999999941],[-88.78443900000002,78.169983000000002],[-88.793334999999956,78.164429000000041],[-88.817779999999914,78.154434000000094],[-88.847777999999948,78.151382000000012],[-88.978881999999942,78.165817000000118],[-89.002791999999943,78.169434000000081],[-89.065001999999879,78.184418000000107],[-89.079726999999991,78.189147999999989],[-89.115828999999962,78.200821000000019],[-89.227492999999981,78.245254999999986],[-89.259170999999924,78.262771999999984],[-89.265014999999948,78.268326000000002],[-89.275283999999999,78.281936999999971],[-89.353881999999885,78.339705999999978],[-89.364440999999999,78.344147000000078],[-89.381103999999993,78.3477630000001],[-89.518341000000021,78.392212000000086],[-89.676665999999955,78.447478999999987],[-89.803878999999995,78.494431000000134],[-89.819457999999997,78.500549000000092],[-89.891113000000018,78.552764999999965],[-89.921660999999972,78.578048999999965],[-89.945830999999998,78.599425999999994],[-89.95695499999988,78.605255],[-89.980559999999969,78.609711000000118],[-90.014724999999885,78.609421000000111],[-90.051391999999964,78.605820000000051],[-90.088332999999977,78.595825000000104],[-90.092498999999975,78.589980999999909],[-90.09973100000002,78.555252000000053],[-90.100829999999974,78.549713000000054],[-90.064712999999927,78.513321000000076],[-89.985000999999954,78.43609600000002],[-89.960555999999997,78.432480000000112],[-89.936110999999983,78.430267000000015],[-89.910004000000015,78.426086000000112],[-89.869995000000017,78.417755],[-89.80972300000002,78.404709000000082],[-89.785278000000005,78.398041000000092],[-89.774445000000014,78.39387499999998],[-89.748046999999929,78.380264000000011],[-89.615554999999858,78.300262000000032],[-89.606109999999944,78.293319999999994],[-89.461670000000026,78.17553700000002],[-89.455841000000021,78.169983000000002],[-89.452498999999989,78.162491000000045],[-89.461670000000026,78.158599999999979],[-89.476668999999958,78.153869999999984],[-89.507781999999963,78.149994000000106],[-89.530288999999982,78.148330999999985],[-89.549437999999952,78.148605000000089],[-89.563048999999921,78.149719000000061],[-89.59584000000001,78.156937000000084],[-89.61860699999994,78.163040000000024],[-89.631942999999978,78.168594000000041],[-89.639724999999942,78.173309000000074],[-89.644164999999987,78.179703000000075],[-89.646118000000001,78.184707999999944],[-89.646118000000001,78.19720500000011],[-89.64805599999994,78.202209000000096],[-89.654174999999952,78.209427000000119],[-89.657226999999978,78.212203999999986],[-89.673888999999974,78.217209000000082],[-89.700835999999981,78.219147000000021],[-89.748885999999914,78.217209000000082],[-89.783324999999934,78.214431999999988],[-89.847778000000005,78.213042999999971],[-89.886948000000018,78.215271000000087],[-89.911117999999988,78.218872000000147],[-89.929169000000002,78.223038000000088],[-89.955276000000026,78.233322000000101],[-89.960281000000009,78.238311999999951],[-89.961945000000014,78.243590999999924],[-89.959441999999967,78.254439999999988],[-89.955001999999922,78.260544000000039],[-89.980285999999921,78.27777100000003],[-90.023330999999985,78.298035000000027],[-90.060271999999998,78.308029000000033],[-90.172500999999954,78.331100000000049],[-90.186110999999926,78.333327999999995],[-90.213622999999984,78.335265999999933],[-90.242492999999854,78.336105000000089],[-90.27416999999997,78.334991000000116],[-90.34056099999998,78.331100000000049],[-90.411391999999921,78.324432000000058],[-90.478881999999999,78.321106000000043],[-90.507781999999963,78.320540999999992],[-90.59445199999999,78.322768999999937],[-90.620269999999948,78.325546000000031],[-90.667770000000019,78.32748399999997],[-90.729445999999996,78.326096000000064],[-90.744445999999982,78.323043999999982],[-90.748610999999983,78.320267000000058],[-90.73721299999994,78.314423000000033],[-90.715560999999923,78.309143000000006],[-90.622771999999941,78.291091999999992],[-90.598343,78.287490999999932],[-90.544998000000021,78.283051000000114],[-90.46166999999997,78.27887000000004],[-90.410277999999948,78.276657000000057],[-90.363327000000027,78.256942999999978],[-90.273894999999982,78.192200000000071],[-90.267501999999922,78.18664600000011],[-90.268889999999999,78.182755000000043],[-90.272781000000009,78.17692599999998],[-90.293883999999991,78.159988000000112],[-90.301102000000014,78.15525800000006],[-90.330291999999986,78.146103000000039],[-90.353881999999942,78.143326000000116],[-90.433884000000035,78.136383000000137],[-90.465012000000002,78.135268999999937],[-90.497771999999941,78.134995000000004],[-90.624434999999949,78.134430000000009],[-90.711120999999991,78.135818000000086],[-90.967223999999987,78.142761000000064],[-91.021392999999989,78.146103000000039],[-91.039718999999991,78.150269000000094],[-91.238387999999986,78.166594999999973],[-91.326674999999966,78.168594000000041],[-91.489715999999873,78.17692599999998],[-91.539992999999924,78.181366000000025],[-91.613891999999964,78.191925000000083],[-91.661941999999897,78.199707000000046],[-91.707229999999981,78.209427000000119],[-91.724715999999944,78.214706000000092],[-91.807770000000005,78.23275799999999],[-91.831389999999999,78.23692299999999],[-91.857497999999964,78.239700000000084],[-91.887511999999901,78.239425999999924],[-91.920273000000009,78.237198000000149],[-91.946380999999974,78.23275799999999],[-91.963332999999977,78.227768000000083],[-91.974441999999954,78.223312000000021],[-91.986114999999984,78.214706000000092],[-92.003066999999987,78.209717000000126],[-92.031113000000005,78.207488999999953],[-92.058334000000002,78.208878000000141],[-92.083327999999995,78.212494000000049],[-92.105559999999969,78.217758000000003],[-92.308333999999945,78.278594999999996],[-92.537216000000001,78.310531999999967],[-92.556655999999975,78.314696999999967],[-92.589447000000007,78.323608000000092],[-92.949431999999888,78.43193100000002],[-92.96665999999999,78.44358799999992],[-92.982498000000021,78.454436999999984],[-92.98721299999994,78.46026599999999],[-92.987502999999947,78.465546000000074],[-92.978881999999942,78.483322000000044],[-92.96665999999999,78.488586000000055],[-92.863891999999964,78.505264000000125],[-92.848617999999988,78.505554000000132],[-92.690551999999968,78.49581900000004],[-92.646392999999932,78.487487999999928],[-92.621933000000013,78.487198000000092],[-92.600554999999986,78.488037000000077],[-92.576675000000023,78.490540000000067],[-92.520279000000016,78.498596000000134],[-92.493606999999997,78.503325999999959],[-92.48721299999994,78.507767000000058],[-92.487777999999992,78.509430000000009],[-92.497771999999998,78.513046000000031],[-92.563323999999966,78.520537999999988],[-92.529448999999943,78.521378000000027],[-92.24722300000002,78.52777100000003],[-92.216659999999933,78.528046000000018],[-92.070847000000015,78.525543000000027],[-92.011123999999938,78.526657],[-91.949996999999939,78.530273000000079],[-91.918610000000001,78.534424000000001],[-91.726395000000025,78.530548000000067],[-91.682495000000017,78.52609300000006],[-91.660827999999981,78.526932000000045],[-91.646117999999944,78.529984000000127],[-91.636123999999938,78.533600000000035],[-91.632492000000013,78.539429000000041],[-91.635284000000013,78.546097000000032],[-91.647506999999962,78.560257000000092],[-91.657500999999968,78.563873000000001],[-91.670272999999952,78.56581100000011],[-91.945267000000001,78.572220000000129],[-92.151397999999915,78.579437000000041],[-92.351943999999946,78.586928999999998],[-92.557220000000029,78.594711000000132],[-92.58555599999994,78.596099999999979],[-92.604720999999984,78.598602000000028],[-92.697768999999994,78.614151000000106],[-92.733063000000016,78.62359600000002],[-92.757781999999963,78.628036000000009],[-92.806106999999997,78.6336060000001],[-92.828888000000006,78.631927000000076],[-92.907227000000034,78.62303200000008],[-92.935546999999985,78.618866000000139],[-92.935821999999973,78.614990000000091],[-92.941665999999998,78.608597000000145],[-92.955841000000021,78.603867000000093],[-92.991668999999945,78.599716000000001],[-93.176940999999999,78.586380000000077],[-93.210555999999997,78.584152000000074],[-93.242492999999968,78.582763999999997],[-93.271118000000001,78.584152000000074],[-93.28443900000002,78.587494000000049],[-93.434157999999968,78.6336060000001],[-93.771392999999989,78.750549000000035],[-93.813613999999973,78.765823000000069],[-93.802779999999927,78.770263999999997],[-93.684158000000025,78.782486000000006],[-93.650283999999999,78.784714000000122],[-93.589721999999995,78.783599999999979],[-93.534438999999963,78.778870000000097],[-93.429169000000002,78.767212000000086],[-93.376388999999961,78.760544000000095],[-93.351394999999968,78.756104000000107],[-93.299728000000016,78.748596000000077],[-93.24722300000002,78.741928000000087],[-93.190551999999968,78.736374000000126],[-93.163329999999974,78.735535000000141],[-93.09973100000002,78.737198000000092],[-93.054992999999968,78.739974999999959],[-93.04222099999987,78.745255000000043],[-93.039963,78.750000000000057],[-93.039443999999946,78.751099000000067],[-93.035277999999948,78.761932000000002],[-93.037780999999939,78.765823000000069],[-93.118880999999988,78.772491000000059],[-93.170273000000009,78.77998400000007],[-93.271941999999967,78.796097000000145],[-93.346389999999928,78.809982000000048],[-93.369155999999975,78.816086000000041],[-93.391388000000006,78.820831000000112],[-93.416397000000018,78.824996999999996],[-93.560546999999929,78.833328000000108],[-93.589721999999995,78.834717000000069],[-93.650283999999999,78.835541000000035],[-93.746947999999975,78.834991000000002],[-93.779723999999987,78.833603000000096],[-93.842772999999966,78.832489000000123],[-93.874709999999936,78.833603000000096],[-93.892501999999979,78.838042999999914],[-93.902221999999995,78.842484000000013],[-93.906386999999995,78.849152000000004],[-93.917495999999971,78.860535000000027],[-93.939437999999939,78.871643000000006],[-93.959441999999967,78.878310999999997],[-94.052490000000034,78.902481000000023],[-94.09584000000001,78.911102000000085],[-94.253066999999987,78.956940000000031],[-94.269729999999981,78.962204000000042],[-94.282227000000034,78.968872000000033],[-94.287506000000008,78.981093999999985],[-94.288605000000018,78.986374000000069],[-94.241378999999881,78.996643000000063],[-94.005279999999914,79.029709000000025],[-93.910277999999948,79.041930999999977],[-93.878051999999968,79.042480000000126],[-93.854720999999927,79.040543000000071],[-93.813889000000017,79.035538000000031],[-93.784164000000033,79.038040000000137],[-93.601943999999889,79.068328999999949],[-93.472778000000005,79.108871000000136],[-93.455565999999976,79.11970500000001],[-93.452498999999989,79.125534000000016],[-93.456664999999987,79.132202000000007],[-93.463333000000034,79.136932000000058],[-93.46055599999994,79.142761000000064],[-93.443054000000018,79.148041000000092],[-93.36610399999995,79.161377000000073],[-93.329726999999934,79.164428999999984],[-93.294997999999907,79.166931000000091],[-93.259170999999924,79.167480000000012],[-93.227782999999931,79.166931000000091],[-93.003066999999987,79.154434000000094],[-92.895553999999947,79.143875000000037],[-92.869720000000029,79.139708999999925],[-92.841109999999958,79.141098000000113],[-92.816101000000003,79.145537999999988],[-92.801392000000021,79.150269000000094],[-92.7933349999999,79.155823000000055],[-92.780288999999868,79.161102000000028],[-92.746947999999975,79.164153999999996],[-92.506957999999941,79.158324999999991],[-92.478606999999954,79.155823000000055],[-92.407500999999911,79.146102999999982],[-92.309433000000013,79.145264000000054],[-92.243057000000022,79.146941999999967],[-91.89805599999994,79.161377000000073],[-91.691939999999988,79.173309000000017],[-91.439162999999951,79.183593999999971],[-91.205275999999969,79.191925000000026],[-91.009170999999867,79.203048999999965],[-90.811934999999949,79.208038000000101],[-90.601669000000015,79.214157000000114],[-90.564162999999951,79.215546000000131],[-90.528335999999911,79.21748400000007],[-90.492767000000015,79.220825000000104],[-90.390839000000028,79.236374000000012],[-90.368331999999953,79.243042000000003],[-90.36326600000001,79.246811000000093],[-90.382216999999969,79.2494200000001],[-90.405563000000029,79.251938000000109],[-90.472778000000005,79.250823999999909],[-90.502227999999945,79.2494200000001],[-90.732223999999974,79.238312000000121],[-90.885833999999988,79.244141000000127],[-91.139998999999932,79.244431000000134],[-91.198883000000023,79.241364000000033],[-91.47084000000001,79.228867000000037],[-91.861114999999927,79.215271000000087],[-92.026397999999972,79.207489000000123],[-92.053604000000007,79.205261000000007],[-92.087783999999999,79.204163000000108],[-92.180832000000009,79.203048999999965],[-92.213897999999972,79.204163000000108],[-92.238892000000021,79.205551000000014],[-92.510284000000013,79.232757999999933],[-92.621933000000013,79.244431000000134],[-92.676666000000012,79.251389000000131],[-92.694716999999969,79.257217000000082],[-92.693053999999961,79.262207000000103],[-92.625548999999978,79.295258000000047],[-92.603881999999942,79.300812000000064],[-92.571944999999971,79.304153000000099],[-92.523330999999928,79.307755000000043],[-92.454453000000001,79.308594000000028],[-92.394729999999981,79.308594000000028],[-92.303329000000019,79.306366000000082],[-92.255004999999983,79.304428000000144],[-92.131377999999984,79.299988000000099],[-91.994995000000017,79.295258000000047],[-91.961944999999957,79.29553199999998],[-91.932494999999903,79.297211000000004],[-91.894164999999987,79.301085999999998],[-91.865279999999927,79.305542000000116],[-91.829452999999944,79.314697000000137],[-91.795546999999885,79.319153000000085],[-91.727492999999924,79.326096000000064],[-91.658889999999985,79.329987000000131],[-91.589721999999938,79.332214000000022],[-91.528884999999946,79.333054000000061],[-91.493880999999874,79.33248900000001],[-91.467498999999975,79.333602999999982],[-91.267776000000026,79.345824999999991],[-91.231673999999941,79.348037999999917],[-91.15834000000001,79.356093999999985],[-91.119995000000017,79.386383000000023],[-91.129165999999884,79.390823000000069],[-91.156386999999995,79.394440000000031],[-91.191100999999946,79.393326000000059],[-91.230559999999969,79.389434999999992],[-91.422225999999966,79.374146000000053],[-91.508621000000005,79.373306000000014],[-91.580841000000021,79.369141000000013],[-91.702224999999942,79.361374000000069],[-91.729720999999984,79.359421000000111],[-91.766662999999994,79.353317000000118],[-91.788329999999974,79.346375000000023],[-91.835281000000009,79.340820000000122],[-91.864715999999987,79.339431999999988],[-91.897781000000009,79.339157],[-92.150832999999977,79.344437000000084],[-92.18110699999994,79.345824999999991],[-92.210006999999962,79.348327999999924],[-92.290833000000021,79.358031999999923],[-92.351943999999946,79.362761999999975],[-92.41194200000001,79.36442599999998],[-92.510009999999966,79.364150999999993],[-92.561934999999949,79.365814000000057],[-92.571670999999867,79.37052900000009],[-92.577498999999989,79.379150000000038],[-92.567504999999869,79.384155000000078],[-92.479996000000028,79.404434000000037],[-92.462509000000011,79.406937000000028],[-92.41194200000001,79.411652000000061],[-92.31361400000003,79.418593999999928],[-92.243880999999988,79.426651000000106],[-92.228607000000011,79.431366000000139],[-92.227782999999931,79.435257000000036],[-92.228881999999999,79.438309000000118],[-92.234726000000023,79.441649999999981],[-92.241942999999935,79.444138000000123],[-92.259170999999981,79.446930000000066],[-92.283324999999991,79.449142000000109],[-92.33805799999999,79.453049000000078],[-92.419723999999974,79.457214000000079],[-92.580841000000021,79.452209000000039],[-92.605270000000019,79.450546000000088],[-92.634170999999981,79.445816000000036],[-92.679992999999968,79.437194999999974],[-92.774170000000026,79.417755],[-92.803054999999972,79.413040000000137],[-92.854445999999996,79.407760999999994],[-92.876098999999954,79.407760999999994],[-92.901671999999962,79.408874999999966],[-92.929442999999935,79.412490999999989],[-92.950835999999981,79.416382000000056],[-92.973327999999981,79.423598999999967],[-93.029175000000009,79.46026599999999],[-93.032775999999956,79.465546000000074],[-93.034728999999913,79.471649000000014],[-93.044723999999917,79.476089000000002],[-93.063048999999921,79.48054500000012],[-93.09056099999998,79.482208000000071],[-93.107223999999974,79.482208000000071],[-93.126662999999951,79.479980000000069],[-93.143889999999885,79.475815000000068],[-93.146666999999979,79.469986000000063],[-93.144454999999994,79.463882000000069],[-93.125,79.450821000000133],[-93.105834999999956,79.43942300000009],[-93.081389999999942,79.426376000000062],[-93.061110999999983,79.415817000000061],[-93.033614999999941,79.404434000000037],[-93.018889999999999,79.399719000000005],[-93.009170999999981,79.395263999999997],[-93.006957999999941,79.389160000000118],[-93.008347000000015,79.388046000000145],[-93.009445000000028,79.387206999999989],[-93.021392999999989,79.382751000000098],[-93.125,79.359711000000118],[-93.264175000000023,79.353592000000106],[-93.312499999999943,79.372757000000092],[-93.251113999999973,79.40498400000007],[-93.236114999999984,79.415268000000083],[-93.229720999999984,79.425537000000134],[-93.231383999999991,79.429977000000122],[-93.235001000000011,79.435257000000036],[-93.252501999999993,79.441924999999969],[-93.275833000000034,79.446640000000002],[-93.293334999999956,79.44802900000002],[-93.320007000000032,79.448317999999972],[-93.338057999999933,79.447205000000054],[-93.354445999999996,79.441360000000145],[-93.424437999999896,79.405258000000003],[-93.433059999999898,79.387496999999996],[-93.485275000000001,79.354156000000046],[-93.641387999999893,79.31164600000011],[-93.757507000000032,79.283600000000035],[-93.801940999999886,79.274704000000099],[-93.869995000000017,79.263885000000073],[-93.906661999999983,79.260544000000039],[-93.969726999999978,79.25749200000007],[-93.99722300000002,79.256942999999978],[-94.047225999999966,79.25749200000007],[-94.206954999999994,79.272490999999945],[-94.212219000000005,79.276657000000057],[-94.162780999999995,79.322220000000016],[-94.14805599999994,79.333602999999982],[-94.119720000000029,79.344711000000018],[-94.088608000000022,79.353592000000106],[-94.056380999999931,79.379700000000071],[-94.245834000000002,79.404160000000104],[-94.366652999999985,79.419708000000128],[-94.386123999999938,79.421371000000022],[-94.494720000000029,79.421371000000022],[-94.509170999999981,79.416382000000056],[-94.5,79.379700000000071],[-94.483063000000016,79.375809000000004],[-94.46305799999999,79.379150000000038],[-94.454453000000001,79.385544000000095],[-94.432769999999948,79.385544000000095],[-94.398055999999997,79.375259000000142],[-94.389998999999989,79.368866000000025],[-94.506667999999991,79.337204000000042],[-94.538054999999929,79.333602999999982],[-94.573623999999938,79.331100000000049],[-94.638900999999976,79.33248900000001],[-94.669997999999964,79.331375000000037],[-94.697495000000004,79.326660000000004],[-94.720001000000025,79.321655000000135],[-94.765015000000005,79.31164600000011],[-94.952498999999932,79.289978000000019],[-94.970000999999968,79.284714000000008],[-94.972777999999892,79.273880000000133],[-94.977218999999991,79.270264000000111],[-94.985824999999977,79.267487000000017],[-95.018616000000009,79.266936999999984],[-95.087555000000009,79.27075200000013],[-95.161666999999966,79.281097000000045],[-95.304992999999968,79.325821000000019],[-95.318619000000012,79.332214000000022],[-95.32028200000002,79.335266000000104],[-95.294448999999986,79.336655000000121],[-95.285004000000015,79.353042999999957],[-95.295837000000006,79.379425000000026],[-95.394164999999987,79.387496999999996],[-95.477218999999991,79.380814000000044],[-95.655563000000029,79.391663000000108],[-95.753341999999975,79.404434000000037],[-95.771666999999979,79.409714000000065],[-95.778609999999958,79.413040000000137],[-95.779449,79.425812000000121],[-95.736388999999974,79.537491000000045],[-95.657500999999968,79.553314000000114],[-95.636123999999938,79.557479999999998],[-95.565552000000025,79.55914300000012],[-95.309722999999963,79.569153000000028],[-95.170273000000009,79.575272000000041],[-95.051665999999955,79.582214000000135],[-94.839995999999871,79.597214000000122],[-94.802489999999977,79.600540000000137],[-94.699432000000002,79.612198000000149],[-94.40695199999999,79.667755000000113],[-94.360275000000001,79.677765000000022],[-94.329453000000001,79.688309000000061],[-94.282776000000013,79.757492000000013],[-94.28694200000001,79.762772000000041],[-94.298339999999996,79.76887499999998],[-94.318344000000025,79.778595000000053],[-94.335281000000009,79.780823000000055],[-94.361664000000019,79.781937000000028],[-94.384170999999981,79.778046000000131],[-94.577498999999932,79.735809000000074],[-94.592498999999975,79.731094000000041],[-94.596663999999976,79.725815000000011],[-94.601395000000025,79.713882000000012],[-94.608886999999925,79.708327999999995],[-94.748336999999935,79.678314],[-94.776671999999962,79.673598999999967],[-94.814437999999939,79.670258000000103],[-94.878325999999959,79.66804500000012],[-94.946380999999974,79.666930999999977],[-94.985001000000011,79.664993000000038],[-95.091675000000009,79.656936999999971],[-95.153610000000015,79.647491000000002],[-95.190825999999959,79.644149999999968],[-95.355559999999969,79.638321000000133],[-95.419998000000021,79.637496999999996],[-95.485274999999945,79.638046000000088],[-95.740828999999906,79.641373000000044],[-95.799437999999952,79.642487000000017],[-95.853332999999964,79.646103000000096],[-95.901107999999965,79.654433999999981],[-95.933060000000012,79.664429000000098],[-95.954726999999991,79.671920999999998],[-95.980835000000013,79.6827550000001],[-96.032227000000034,79.706940000000088],[-96.282501000000025,79.798874000000012],[-96.335555999999997,79.815536000000009],[-96.360824999999977,79.82249500000006],[-96.384170999999924,79.826385000000073],[-96.490554999999972,79.836104999999975],[-96.575561999999934,79.849990999999932],[-96.589447000000007,79.852478000000019],[-96.610549999999989,79.877762000000018],[-96.61500499999994,79.883881000000031],[-96.609436000000017,79.888596000000064],[-96.573623999999995,79.900269000000094],[-96.458618000000001,79.914429000000041],[-96.422775000000001,79.916091999999935],[-96.391387999999949,79.913879000000009],[-96.385009999999909,79.909714000000008],[-96.37777699999998,79.899155000000121],[-96.194716999999912,79.901382000000012],[-96.158889999999872,79.903046000000018],[-96.138061999999991,79.906372000000033],[-96.147780999999952,79.912491000000102],[-96.164718999999991,79.917205999999908],[-96.23332199999993,79.933043999999938],[-96.262512000000015,79.936920000000043],[-96.325561999999991,79.941360000000032],[-96.399170000000026,79.941086000000098],[-96.492766999999958,79.943314000000044],[-96.52416999999997,79.945251000000098],[-96.556655999999975,79.948868000000061],[-96.580565999999976,79.952773999999977],[-96.595839999999953,79.956940000000031],[-96.606658999999922,79.962204000000042],[-96.675003000000004,80.008331000000055],[-96.679442999999992,80.014435000000105],[-96.661941999999954,80.019989000000123],[-96.628052000000025,80.024429000000112],[-96.482772999999952,80.041091999999992],[-96.419158999999922,80.041930999999977],[-96.394164999999873,80.043869000000086],[-96.391677999999956,80.045822000000044],[-96.40583799999996,80.048325000000034],[-96.428878999999995,80.050537000000077],[-96.479172000000005,80.053864000000033],[-96.512222000000008,80.054977000000122],[-96.548614999999927,80.053314],[-96.582503999999915,80.048598999999967],[-96.599166999999909,80.044434000000138],[-96.627776999999924,80.039429000000098],[-96.676101999999958,80.041930999999977],[-96.698882999999967,80.046936000000017],[-96.737503000000004,80.058029000000033],[-96.781676999999945,80.076660000000061],[-96.801391999999964,80.086929000000055],[-96.802779999999984,80.090820000000122],[-96.748885999999857,80.134720000000129],[-96.734436000000017,80.139709000000096],[-96.711120999999935,80.14498900000001],[-96.675827000000027,80.145538000000101],[-96.410003999999958,80.13888500000013],[-96.381103999999937,80.13638300000008],[-96.351395000000025,80.132476999999994],[-96.322784000000013,80.127472000000125],[-96.163054999999872,80.093048000000067],[-96.077788999999996,80.078049000000021],[-96.017776000000026,80.070830999999998],[-95.847777999999892,80.053314],[-95.545836999999949,80.040543000000071],[-95.418883999999935,80.036652000000004],[-95.325011999999958,80.03387500000008],[-95.193877999999984,80.03137200000009],[-95.06361400000003,80.029984000000013],[-95.038054999999986,80.031936999999971],[-95.011672999999917,80.038879000000065],[-94.988892000000021,80.04304500000012],[-94.951110999999855,80.045532000000037],[-94.921386999999925,80.046371000000022],[-94.887512000000015,80.045822000000044],[-94.852782999999874,80.044144000000131],[-94.825835999999924,80.040543000000071],[-94.717772999999966,80.020828000000051],[-94.607498000000021,80.002777000000094],[-94.569457999999941,79.997208000000114],[-94.416945999999996,79.978867000000093],[-94.383620999999948,79.982482999999945],[-94.387786999999946,79.987761999999918],[-94.413894999999911,79.997757000000036],[-94.451674999999966,80.009720000000073],[-94.525557999999933,80.02276599999999],[-94.62110899999999,80.04304500000012],[-94.67111199999988,80.056931000000134],[-94.74888599999997,80.07998699999996],[-94.728881999999942,80.105545000000063],[-94.632766999999944,80.131088000000034],[-94.611937999999952,80.135544000000095],[-94.510558999999944,80.154434000000037],[-94.480559999999855,80.15914900000007],[-94.416396999999961,80.163605000000018],[-94.387222000000008,80.163315000000011],[-94.285827999999924,80.164993000000095],[-94.121108999999933,80.17025799999999],[-94.091675000000009,80.172485000000052],[-94.083892999999989,80.175537000000134],[-94.096389999999985,80.179153000000042],[-94.119995000000017,80.183044000000109],[-94.184433000000013,80.186646000000053],[-94.217772999999966,80.18803400000013],[-94.354171999999949,80.190811000000053],[-94.485000999999954,80.209991000000002],[-94.642226999999991,80.199996999999996],[-94.649993999999879,80.194427000000076],[-94.704453000000001,80.178040000000124],[-94.748336999999935,80.169434000000024],[-94.816956000000005,80.159714000000122],[-95.033324999999991,80.134995000000004],[-95.104996000000028,80.128860000000032],[-95.263625999999988,80.118317000000104],[-95.333618000000001,80.118042000000059],[-95.367767000000015,80.118317000000104],[-95.420273000000009,80.122482000000105],[-95.658889999999985,80.168593999999985],[-95.683884000000035,80.173874000000012],[-95.695830999999998,80.178314000000057],[-95.692215000000033,80.181090999999981],[-95.673889000000031,80.186371000000008],[-95.621658000000025,80.195251000000042],[-95.580841000000021,80.199706999999989],[-95.542770000000019,80.202209000000039],[-95.471114999999941,80.203598000000056],[-95.404175000000009,80.203598000000056],[-95.370543999999995,80.204712000000029],[-95.327788999999882,80.208603000000096],[-95.295837000000006,80.21276899999998],[-95.268341000000021,80.218047999999953],[-95.254455999999948,80.222214000000065],[-95.235000999999897,80.232208000000071],[-95.229996000000028,80.236098999999967],[-95.235000999999897,80.241088999999988],[-95.243331999999953,80.243591000000094],[-95.258895999999993,80.244980000000055],[-95.278060999999923,80.243866000000082],[-95.287216000000001,80.241088999999988],[-95.325561999999991,80.232208000000071],[-95.39834599999989,80.223602000000142],[-95.461394999999868,80.219986000000119],[-95.496947999999975,80.219436999999971],[-95.548339999999996,80.220261000000107],[-95.566955999999948,80.224152000000004],[-95.577498999999989,80.229430999999977],[-95.581389999999885,80.235535000000027],[-95.586394999999925,80.240540000000067],[-95.601944000000003,80.242203000000018],[-95.645844000000011,80.239700000000028],[-95.69027699999998,80.232483000000116],[-95.71055599999994,80.227768000000083],[-95.884170999999981,80.199142000000109],[-95.922500999999954,80.194138000000009],[-95.93360899999999,80.194427000000076],[-95.98443599999996,80.200271999999984],[-96.216659999999877,80.235809000000131],[-96.43499799999995,80.269714000000022],[-96.46444699999995,80.313034000000016],[-96.613892000000021,80.329987000000131],[-96.645844000000011,80.333054000000004],[-96.670272999999952,80.336928999999998],[-96.681670999999881,80.342209000000082],[-96.676101999999958,80.346939000000134],[-96.658051,80.352203000000088],[-96.634170999999981,80.357208000000128],[-96.604720999999984,80.362198000000035],[-96.592223999999987,80.362761999999975],[-96.440552000000025,80.356644000000017],[-96.408889999999985,80.353592000000106],[-96.363892000000021,80.342209000000082],[-96.254729999999938,80.335541000000092],[-96.232223999999974,80.334717000000126],[-96.216400000000021,80.338042999999971],[-96.221664000000033,80.343323000000055],[-96.255004999999983,80.354156000000046],[-96.277221999999938,80.359985000000052],[-96.280838000000017,80.36192299999999],[-96.268065999999919,80.367477000000008],[-96.240554999999972,80.37303200000008],[-96.080841000000021,80.387206999999989],[-96.047774999999888,80.389984000000084],[-95.978606999999954,80.388596000000007],[-95.732497999999907,80.372757000000036],[-95.697495000000004,80.369979999999941],[-95.636948000000018,80.364150999999936],[-95.61221299999994,80.360260000000039],[-95.566955999999948,80.352203000000088],[-95.542770000000019,80.345824999999934],[-95.513900999999976,80.340820000000065],[-95.48832699999997,80.338042999999971],[-95.460280999999952,80.336928999999998],[-95.440826000000015,80.338318000000015],[-95.436935000000005,80.341095000000109],[-95.453338999999971,80.373306000000014],[-95.458617999999944,80.378586000000041],[-95.468063000000029,80.38220200000012],[-95.498610999999983,80.383880999999974],[-95.564162999999951,80.385817999999972],[-95.624999999999943,80.391663000000108],[-95.653885000000002,80.396652000000074],[-95.694992000000013,80.406097000000102],[-95.721664000000033,80.412765999999976],[-95.852218999999991,80.454163000000051],[-95.957229999999925,80.504990000000134],[-96.020553999999947,80.567490000000078],[-96.027221999999995,80.574158000000068],[-96.024445000000014,80.578323000000069],[-96.006957999999884,80.582763999999941],[-95.979996000000028,80.584717000000069],[-95.941665999999941,80.58638000000002],[-95.671660999999972,80.584717000000069],[-95.536391999999978,80.590820000000008],[-95.498046999999872,80.59248400000007],[-95.423614999999984,80.593597000000102],[-95.318343999999911,80.590820000000008],[-95.246658000000025,80.58998100000008],[-95.172226000000023,80.59137000000004],[-95.132216999999969,80.593872000000147],[-95.067229999999995,80.601379000000065],[-95.030837999999903,80.603317000000004],[-94.99499499999996,80.603043000000071],[-94.962783999999942,80.599715999999944],[-94.902495999999985,80.586655000000007],[-94.846953999999926,80.574706999999989],[-94.823623999999995,80.569716999999969],[-94.77194199999991,80.561371000000065],[-94.752791999999943,80.559982000000048],[-94.696654999999964,80.55693100000002],[-94.658614999999998,80.555817000000047],[-94.554992999999911,80.55442800000003],[-94.374999999999943,80.557205000000124],[-94.230835000000013,80.556365999999969],[-94.010559000000001,80.54942299999999],[-93.968886999999995,80.540817000000061],[-93.968886999999995,80.536925999999994],[-93.966110000000015,80.530823000000055],[-93.958343999999954,80.52609300000006],[-93.89916999999997,80.519150000000025],[-93.866942999999992,80.518326000000059],[-93.839447000000007,80.518599999999992],[-93.786391999999978,80.525543000000027],[-93.783066000000019,80.529709000000082],[-93.790832999999964,80.534424000000115],[-93.810546999999985,80.541367000000093],[-93.894729999999868,80.565811000000053],[-93.949158000000011,80.578048999999908],[-93.973617999999931,80.581939999999975],[-94.005004999999983,80.585266000000047],[-94.093612999999948,80.593322999999998],[-94.308334000000002,80.606368999999972],[-94.437774999999988,80.605545000000006],[-94.457503999999915,80.600265999999976],[-94.484726000000023,80.598328000000038],[-94.524170000000026,80.598328000000038],[-94.543335000000013,80.599715999999944],[-94.561935000000005,80.605819999999994],[-94.660278000000005,80.651382000000012],[-94.669448999999929,80.65776100000005],[-94.672775000000001,80.663879000000009],[-94.670273000000009,80.669708000000014],[-94.662215999999944,80.675262000000032],[-94.650283999999999,80.681366000000082],[-94.628326000000015,80.685806000000071],[-94.596953999999982,80.690536000000122],[-94.553604000000007,80.694977000000051],[-94.514724999999942,80.696365000000128],[-94.439163000000008,80.697479000000101],[-94.331116000000009,80.693863000000022],[-94.231673999999884,80.692200000000128],[-94.199722000000008,80.693039000000056],[-94.117492999999968,80.698593000000074],[-94.088332999999977,80.701660000000004],[-94.075561999999991,80.706099999999992],[-94.076950000000011,80.709152000000131],[-94.086394999999982,80.713043000000027],[-94.108337000000006,80.718872000000033],[-94.140288999999996,80.721924000000115],[-94.304442999999935,80.733871000000079],[-94.423049999999876,80.734985000000052],[-94.449158000000011,80.730270000000019],[-94.491104000000007,80.726928999999984],[-94.549438000000009,80.724991000000045],[-94.65972899999997,80.72526600000009],[-94.694716999999969,80.726653999999996],[-94.722778000000005,80.728592000000106],[-94.895554000000004,80.747757000000092],[-95.035827999999867,80.768326000000002],[-95.037505999999951,80.771378000000141],[-95.03694200000001,80.776093000000003],[-95.033889999999985,80.778046000000131],[-95.025283999999999,80.801651000000106],[-95.243056999999965,80.787766000000033],[-95.282501000000025,80.786101999999971],[-95.334166999999923,80.788879000000065],[-95.442764000000011,80.79971299999994],[-95.475554999999986,80.803040000000067],[-95.501113999999973,80.806931000000134],[-95.524170000000026,80.812484999999981],[-95.534164000000033,80.818878000000097],[-95.526397999999972,80.833328000000051],[-95.500838999999871,80.838318000000072],[-95.44027699999998,80.846100000000035],[-95.371384000000035,80.853316999999947],[-95.212783999999999,80.868317000000104],[-95.170837000000006,80.875809000000061],[-95.150832999999921,80.881088000000034],[-95.146666999999923,80.883881000000031],[-95.170546999999999,80.884720000000016],[-95.300827000000027,80.885269000000108],[-95.41332999999986,80.885269000000108],[-95.468886999999995,80.890273999999977],[-95.481383999999991,80.894714000000022],[-95.484726000000023,80.899155000000121],[-95.474166999999966,80.904434000000094],[-95.460280999999952,80.909713999999951],[-95.422775000000001,80.920821999999987],[-95.334166999999923,80.934708000000114],[-95.311934999999949,80.939147999999989],[-95.283614999999941,80.949996999999996],[-95.267501999999979,80.96138000000002],[-95.259734999999921,80.973602000000028],[-95.257506999999976,80.979431000000034],[-95.259170999999981,80.984984999999995],[-95.255004999999983,80.996643000000063],[-95.241104000000007,81.006103999999993],[-95.220839999999896,81.011382999999967],[-95.183060000000012,81.019714000000079],[-94.943329000000006,81.048874000000126],[-94.814163000000008,81.054153000000099],[-94.663054999999986,81.048598999999911],[-94.572783999999899,81.038879000000009],[-94.546111999999994,81.033325000000048],[-94.493880999999988,81.017487000000017],[-94.495543999999995,80.995819000000097],[-94.504181000000017,80.990265000000079],[-94.509170999999981,80.984711000000061],[-94.508057000000008,80.979431000000034],[-94.492767000000015,80.972763000000043],[-94.472778000000005,80.969146999999964],[-94.434158000000025,80.965546000000131],[-94.408614999999941,80.965546000000131],[-94.365554999999972,80.968872000000147],[-94.344726999999978,80.974152000000061],[-94.330001999999865,80.979706000000022],[-94.143616000000009,81.015823000000012],[-94.071670999999924,81.024993999999936],[-93.908051,81.039429000000041],[-93.906386999999995,81.040543000000071],[-94.013335999999981,81.053588999999988],[-94.042220999999927,81.055542000000116],[-94.18249499999996,81.068054000000075],[-94.328612999999962,81.089432000000045],[-94.357498000000021,81.09526100000005],[-94.36221299999994,81.100540000000024],[-94.353607000000011,81.106093999999985],[-94.345550999999944,81.109421000000111],[-94.313048999999978,81.115539999999953],[-94.278335999999967,81.117203000000075],[-94.255279999999971,81.115539999999953],[-94.230835000000013,81.110535000000084],[-94.214721999999881,81.106369000000029],[-94.195830999999941,81.10026600000009],[-94.154723999999987,81.093872000000033],[-94.130279999999971,81.09275800000006],[-93.989715999999987,81.092484000000127],[-93.960830999999928,81.094147000000078],[-93.935271999999941,81.098327999999981],[-93.907227000000034,81.101653999999996],[-93.866394000000014,81.103043000000014],[-93.795273000000009,81.099426000000051],[-93.689437999999996,81.093048000000067],[-93.517226999999878,81.084426999999948],[-93.299987999999928,81.079711999999915],[-93.255844000000025,81.082764000000054],[-93.163054999999929,81.091934000000094],[-93.152221999999938,81.094711000000018],[-93.123321999999916,81.115265000000136],[-93.095550999999944,81.154160000000104],[-93.091674999999952,81.159988000000055],[-93.095839999999953,81.165268000000083],[-93.121108999999933,81.182754999999929],[-93.259734999999978,81.212203999999929],[-93.419448999999929,81.219986000000063],[-93.514724999999999,81.217758000000117],[-93.687499999999943,81.21026599999999],[-93.728333000000021,81.207214000000079],[-93.852218999999934,81.203049000000078],[-93.928878999999995,81.203873000000044],[-94.031386999999938,81.208878000000084],[-94.166397000000018,81.218048000000124],[-94.200561999999877,81.221100000000035],[-94.282227000000034,81.231094000000098],[-94.302489999999977,81.234984999999938],[-94.381667999999991,81.25082400000008],[-94.388061999999991,81.254990000000134],[-94.391388000000006,81.261108000000092],[-94.386123999999938,81.272766000000104],[-94.370270000000005,81.284714000000008],[-94.278610000000015,81.341934000000037],[-94.268616000000009,81.346099999999922],[-94.240829000000019,81.350814999999955],[-94.200561999999877,81.355545000000006],[-94.153884999999946,81.359711000000118],[-94.06806899999998,81.363311999999951],[-94.035278000000005,81.363311999999951],[-93.789444000000003,81.348038000000088],[-93.755004999999926,81.344711000000132],[-93.694442999999922,81.337494000000049],[-93.665833000000021,81.332763999999997],[-93.638900999999976,81.327209000000096],[-93.621933000000013,81.321655000000078],[-93.611389000000031,81.316376000000105],[-93.594451999999933,81.31053199999991],[-93.553329000000019,81.305542000000059],[-93.515288999999996,81.31053199999991],[-93.494994999999903,81.314697000000081],[-93.483063000000016,81.319716999999969],[-93.483611999999994,81.325272000000041],[-93.488051999999982,81.330551000000014],[-93.533324999999991,81.348602000000028],[-93.560546999999929,81.367751999999996],[-93.564712999999927,81.376648000000102],[-93.550551999999925,81.38108799999992],[-93.517501999999979,81.38499500000006],[-93.340285999999992,81.372208000000057],[-93.177490000000034,81.358597000000088],[-93.01556399999987,81.341370000000097],[-92.928054999999972,81.330826000000059],[-92.831680000000006,81.317764000000011],[-92.727782999999931,81.305542000000059]],[[-91.71833799999996,81.549149000000057],[-91.761672999999973,81.548035000000084],[-91.801391999999964,81.548599000000024],[-91.837509000000011,81.551086000000112],[-91.863616999999977,81.555251999999996],[-91.951110999999912,81.584152000000017],[-91.958617999999944,81.588882000000069],[-91.960555999999997,81.594986000000119],[-91.956115999999952,81.600815000000125],[-91.932494999999903,81.605819999999994],[-91.903884999999946,81.608322000000044],[-91.868332000000009,81.608597000000088],[-91.823897999999986,81.606934000000138],[-91.789444000000003,81.603317000000004],[-91.724715999999944,81.596100000000092],[-91.597778000000005,81.580550999999957],[-91.582229999999925,81.578049000000078],[-91.619995000000017,81.562484999999981],[-91.643615999999895,81.557480000000112],[-91.673614999999984,81.552765000000079],[-91.71833799999996,81.549149000000057]],[[-78.365828999999962,82.883605999999986],[-78.383330999999998,82.883605999999986],[-78.419448999999986,82.899155000000064],[-78.417220999999927,82.935532000000023],[-78.414718999999934,82.941925000000026],[-78.405838000000017,82.947754000000032],[-78.389724999999885,82.953323000000012],[-78.361663999999962,82.958603000000096],[-78.323333999999875,82.961929000000112],[-78.273894999999868,82.963043000000084],[-78.223617999999988,82.961104999999975],[-78.145279000000016,82.954712000000029],[-78.119720000000029,82.94859299999996],[-78.116942999999992,82.942200000000014],[-78.122498000000007,82.937194999999974],[-78.150833000000034,82.926925999999924],[-78.212783999999999,82.911377000000016],[-78.336394999999982,82.888046000000145],[-78.365828999999962,82.883605999999986]],[[-70.111937999999952,83.109421000000111],[-70.00140399999998,83.10775799999999],[-69.812209999999993,83.112197999999978],[-69.74888599999997,83.11192299999999],[-69.701675000000023,83.110535000000084],[-69.665008999999998,83.108322000000101],[-69.659164000000033,83.103043000000127],[-69.662215999999944,83.074158000000068],[-69.664168999999958,83.070830999999941],[-69.680557000000022,83.064986999999974],[-69.716109999999958,83.061096000000077],[-69.757506999999976,83.057755000000043],[-69.773894999999982,83.051926000000037],[-69.775283999999942,83.047760000000096],[-69.744445999999982,83.04553199999998],[-69.671936000000017,83.041091999999935],[-69.636123999999995,83.039703000000145],[-69.471389999999985,83.038879000000009],[-69.451110999999969,83.035812000000078],[-69.513335999999981,83.019714000000022],[-69.536117999999988,83.014435000000049],[-69.565001999999936,83.009995000000004],[-69.559722999999963,82.994141000000127],[-69.233062999999959,83.010268999999937],[-69.156386999999938,83.017487000000131],[-69.120543999999995,83.021652000000131],[-69.097777999999948,83.026657],[-69.06361400000003,83.038040000000024],[-69.015563999999927,83.040817000000118],[-68.983063000000016,83.036652000000117],[-68.975280999999995,83.028320000000122],[-68.973891999999978,83.015549000000021],[-68.977218999999991,83.001663000000065],[-68.902785999999935,82.988312000000064],[-68.708344000000011,82.978043000000071],[-68.665008999999941,82.980270000000132],[-68.630829000000006,82.985259999999982],[-68.626663000000008,82.986923000000104],[-68.579726999999991,82.996933000000013],[-68.550551999999925,83.001663000000065],[-68.514724999999999,83.005554000000132],[-68.46665999999999,83.008040999999992],[-68.404723999999987,83.008330999999998],[-68.358046999999885,83.006103999999937],[-68.316101000000003,83.003326000000129],[-68.190826000000015,82.994705000000067],[-68.154175000000009,82.991088999999988],[-68.142226999999934,82.983597000000032],[-68.155272999999966,82.972487999999998],[-68.177779999999984,82.959991000000002],[-68.188599000000011,82.946091000000081],[-68.176391999999964,82.938873000000058],[-68.145554000000004,82.934981999999991],[-68.09973100000002,82.933594000000085],[-68.06806899999998,82.935257000000036],[-68.054169000000002,82.938873000000058],[-67.881667999999934,82.958878000000084],[-67.666945999999996,82.969711000000075],[-67.61082499999992,82.96887200000009],[-67.544158999999979,82.962203999999929],[-67.50140399999998,82.957214000000079],[-67.499999999999943,82.957016000000067],[-67.476104999999961,82.953598000000056],[-67.410003999999958,82.946640000000059],[-67.327788999999939,82.940811000000053],[-67.241669000000002,82.936919999999986],[-67.196655000000021,82.93609600000002],[-67.136123999999938,82.936646000000053],[-67.116942999999992,82.941086000000041],[-67.122771999999998,82.949142000000109],[-67.121658000000025,82.955261000000121],[-67.113327000000027,82.959427000000062],[-67.092223999999931,82.961104999999975],[-67.041107000000011,82.959717000000069],[-66.964721999999995,82.954163000000051],[-66.939986999999917,82.950546000000088],[-66.938323999999909,82.947754000000032],[-66.818893000000003,82.935257000000036],[-66.653060999999866,82.936371000000008],[-66.330001999999922,82.933868000000018],[-66.301391999999964,82.93193100000002],[-66.299437999999952,82.92942800000003],[-66.347503999999958,82.898041000000092],[-66.369155999999919,82.888321000000019],[-66.81138599999997,82.815262000000018],[-66.841110000000015,82.810806000000071],[-66.876663000000008,82.807205000000067],[-66.959732000000031,82.800812000000064],[-67.138335999999981,82.78387500000008],[-67.31527699999998,82.764709000000039],[-67.386123999999995,82.757767000000115],[-67.45777899999996,82.752212999999927],[-67.499999999999943,82.749611000000129],[-67.597778000000005,82.743590999999924],[-67.644729999999925,82.741652999999985],[-67.799164000000019,82.731658999999979],[-67.914168999999958,82.719986000000119],[-68.041381999999999,82.703873000000101],[-68.081679999999949,82.700821000000019],[-68.134170999999981,82.698593000000017],[-68.234726000000023,82.696640000000116],[-68.276108000000022,82.69470199999995],[-68.356658999999979,82.688034000000016],[-68.424437999999896,82.679703000000075],[-68.633621000000005,82.648605000000089],[-68.655838000000017,82.643600000000049],[-68.672225999999966,82.637772000000098],[-68.667220999999984,82.632477000000051],[-68.642501999999979,82.628585999999984],[-68.573623999999938,82.628860000000088],[-68.465011999999945,82.639435000000049],[-68.424437999999896,82.641937000000098],[-68.325835999999981,82.645537999999988],[-67.934998000000007,82.658324999999991],[-67.812774999999988,82.659149000000127],[-67.606658999999922,82.655548000000067],[-67.518065999999862,82.65109300000006],[-67.47084000000001,82.652205999999978],[-67.430557000000022,82.655548000000067],[-67.381942999999978,82.66276600000009],[-67.328063999999983,82.677199999999914],[-67.275283999999999,82.68609600000002],[-67.245834000000002,82.689697000000081],[-67.210830999999928,82.693587999999977],[-66.997771999999998,82.712203999999986],[-66.900283999999999,82.719437000000028],[-66.670837000000006,82.740265000000079],[-66.657227000000034,82.744430999999963],[-66.638335999999981,82.748871000000008],[-66.122771999999998,82.813034000000073],[-66.086670000000026,82.816665999999998],[-65.810271999999941,82.840820000000122],[-65.767776000000026,82.843048000000067],[-65.724166999999909,82.843597000000045],[-65.546660999999915,82.838043000000027],[-65.467772999999852,82.833327999999995],[-65.454726999999991,82.829162999999994],[-65.481673999999998,82.816665999999998],[-65.495834000000002,82.8119200000001],[-65.527221999999938,82.797484999999938],[-65.518065999999976,82.789978000000019],[-65.511123999999995,82.786652000000004],[-65.458617999999888,82.779433999999981],[-65.430832000000009,82.777481000000023],[-65.197494999999947,82.764160000000061],[-65.164444000000003,82.763046000000088],[-65.154723999999987,82.765274000000034],[-65.167496000000028,82.769989000000066],[-65.259170999999924,82.781662000000097],[-65.327498999999989,82.789154000000053],[-65.339721999999938,82.791930999999977],[-65.353057999999976,82.797211000000004],[-65.34445199999999,82.801926000000037],[-65.221938999999963,82.832764000000054],[-65.102782999999931,82.848037999999974],[-65.110001000000011,82.852767999999969],[-65.128052000000025,82.856094000000041],[-65.172775000000001,82.858321999999987],[-65.272781000000009,82.861099000000081],[-65.30749499999996,82.86554000000001],[-65.289168999999958,82.873306000000014],[-65.258057000000008,82.877472000000125],[-65.104720999999984,82.891663000000108],[-64.982223999999974,82.901093000000003],[-64.884734999999921,82.905823000000055],[-64.83555599999994,82.906937000000028],[-64.729720999999927,82.904160000000104],[-64.68472300000002,82.901657000000114],[-64.655562999999972,82.896942000000081],[-64.664168999999902,82.89027399999992],[-64.678604000000007,82.884720000000129],[-64.713897999999915,82.876372999999944],[-64.751953000000015,82.875259000000142],[-64.790558000000033,82.875809000000004],[-64.829726999999934,82.877762000000132],[-64.890288999999939,82.878036000000066],[-64.922501000000011,82.876372999999944],[-64.936934999999949,82.871368000000075],[-64.923614999999984,82.864699999999914],[-64.883895999999993,82.861649000000114],[-64.839995999999985,82.861923000000047],[-64.746384000000035,82.860535000000141],[-64.723052999999993,82.856369000000029],[-64.710555999999997,82.852478000000133],[-64.713897999999915,82.846375000000023],[-64.722777999999948,82.840820000000122],[-64.742217999999923,82.834427000000005],[-64.750838999999928,82.828323000000125],[-64.737777999999992,82.822220000000016],[-64.706954999999994,82.813034000000073],[-64.64805599999994,82.799713000000111],[-64.478607000000011,82.764435000000105],[-64.445266999999944,82.761932000000115],[-64.418059999999912,82.761382999999967],[-64.412780999999939,82.762206999999933],[-64.398055999999997,82.766936999999984],[-64.328888000000006,82.787201000000096],[-64.18638599999997,82.819153000000085],[-64.139998999999989,82.828049000000021],[-64.103058000000033,82.831665000000044],[-64.059722999999963,82.833327999999995],[-63.972770999999966,82.834991000000116],[-63.672775000000001,82.834717000000012],[-63.623610999999926,82.833603000000039],[-63.529723999999987,82.828323000000125],[-63.490836999999942,82.825272000000098],[-63.43472300000002,82.816665999999998],[-63.389167999999927,82.804977000000065],[-63.382499999999993,82.798325000000034],[-63.382216999999912,82.767761000000121],[-63.397223999999994,82.761382999999967],[-63.479163999999855,82.739425999999924],[-63.510284000000013,82.732483000000116],[-63.525832999999977,82.730545000000006],[-63.590836000000024,82.733047000000056],[-63.666106999999954,82.731368999999972],[-63.819449999999961,82.721374999999966],[-63.834998999999982,82.719147000000021],[-63.850280999999995,82.715820000000065],[-63.764450000000011,82.715271000000087],[-63.67888599999992,82.717758000000003],[-63.65166499999998,82.714996000000099],[-63.540001000000018,82.694427000000132],[-63.502040999999906,82.682762000000082],[-63.422226000000023,82.665543000000014],[-63.286948999999993,82.654434000000094],[-63.254447999999968,82.650269000000094],[-63.232215999999994,82.64498900000001],[-63.226105000000018,82.640273999999977],[-63.235557999999855,82.633330999999998],[-63.255835999999988,82.627197000000137],[-63.287223999999981,82.624985000000095],[-63.339721999999995,82.623596000000077],[-63.376388999999961,82.619980000000055],[-63.380829000000006,82.615265000000022],[-63.369445999999982,82.61053499999997],[-63.347495999999978,82.604980000000069],[-63.315001999999936,82.601089000000002],[-63.272223999999937,82.598602000000142],[-63.229720999999984,82.597214000000008],[-63.11361699999992,82.597487999999942],[-63.071113999999966,82.59637500000008],[-63.033614999999941,82.594436999999971],[-62.99639099999996,82.59027100000003],[-62.96416499999998,82.585541000000035],[-62.942496999999946,82.5816650000001],[-62.926108999999997,82.576096000000121],[-62.930557000000022,82.56999200000007],[-62.960555999999997,82.557754999999929],[-63.059440999999936,82.511932000000002],[-63.08943899999997,82.466385000000116],[-63.119994999999903,82.463608000000022],[-63.243889000000024,82.457764000000054],[-63.285004000000015,82.454987000000131],[-63.346106999999904,82.449142000000052],[-63.366111999999987,82.444977000000051],[-63.369995000000017,82.438873000000001],[-63.328613000000018,82.437759000000028],[-63.277221999999938,82.439148000000046],[-63.148887999999999,82.446929999999952],[-63.071670999999981,82.451935000000049],[-63.015838999999971,82.459716999999955],[-62.990836999999885,82.467209000000082],[-62.920836999999949,82.491089000000102],[-62.823616000000015,82.504440000000045],[-62.678336999999999,82.516098000000056],[-62.553328999999962,82.524428999999998],[-62.506667999999877,82.526657000000114],[-62.286948999999993,82.528046000000131],[-62.24500299999994,82.528046000000131],[-62.171669000000009,82.525542999999971],[-62.171386999999982,82.521378000000141],[-62.322776999999974,82.511108000000036],[-62.333060999999987,82.504166000000112],[-62.353057999999976,82.486374000000069],[-62.352782999999931,82.481093999999985],[-62.300835000000006,82.482483000000002],[-62.264449999999954,82.485809000000017],[-62.21566799999988,82.491928000000087],[-62.212497999999869,82.495766000000003],[-62.098052999999936,82.502212999999983],[-61.884170999999981,82.492752000000053],[-61.691665999999998,82.48803700000002],[-61.582503999999972,82.482483000000002],[-61.530829999999867,82.478317000000118],[-61.5,82.474152000000117],[-61.448607999999979,82.464431999999988],[-61.326110999999969,82.439697000000137],[-61.28556100000003,82.430267000000072],[-61.170279999999877,82.395264000000111],[-61.141113000000018,82.383041000000048],[-61.131385999999907,82.377472000000068],[-61.11222099999992,82.363876000000062],[-61.098609999999951,82.350266000000033],[-61.076392999999996,82.320831000000112],[-61.078613000000018,82.301086000000112],[-61.084723999999994,82.293593999999985],[-61.107779999999934,82.267761000000064],[-61.130359999999996,82.252937000000088],[-61.135558999999944,82.247482000000105],[-61.15694400000001,82.235259999999982],[-61.193328999999949,82.223602000000085],[-61.281112999999948,82.202774000000034],[-61.306389000000024,82.197205000000054],[-61.388054000000011,82.18331900000004],[-61.43332700000002,82.176376000000062],[-61.463614999999891,82.172484999999995],[-61.534171999999899,82.165543000000071],[-61.599441999999954,82.160812000000135],[-61.804442999999992,82.146652000000074],[-61.86999499999996,82.106644000000017],[-61.885001999999986,82.100539999999967],[-62.077781999999956,82.053588999999988],[-62.126944999999978,82.043869000000086],[-62.25417299999998,82.019989000000066],[-62.278885000000002,82.015822999999955],[-62.313056999999958,82.01249700000011],[-62.356948999999929,82.010268999999994],[-62.513618000000008,82.004715000000147],[-62.570281999999963,81.976089000000059],[-62.944999999999993,81.922211000000118],[-63.040557999999976,81.909714000000122],[-63.292502999999897,81.877761999999962],[-63.387221999999952,81.867752000000053],[-63.656104999999968,81.837494000000106],[-63.715003999999965,81.820831000000055],[-63.761116000000015,81.811645999999996],[-63.817223000000013,81.804703000000018],[-63.849723999999924,81.801086000000055],[-63.925003000000004,81.795258000000103],[-63.962775999999963,81.792480000000126],[-64.010009999999966,81.790268000000083],[-64.053054999999915,81.789978000000019],[-64.086945000000014,81.791930999999977],[-64.111663999999962,81.794983000000116],[-64.131667999999991,81.799149],[-64.142226999999934,81.803040000000067],[-64.177779999999984,81.810532000000023],[-64.207503999999972,81.81442300000009],[-64.271666999999923,81.821655000000021],[-64.301392000000021,81.824157999999954],[-64.325287000000003,81.824707000000103],[-64.323623999999995,81.819153000000085],[-64.308043999999995,81.814697000000024],[-64.253066999999987,81.806091000000094],[-64.232772999999952,81.800537000000077],[-64.12388599999997,81.768326000000002],[-64.118057000000022,81.764435000000105],[-64.134734999999921,81.754715000000033],[-64.207779000000016,81.74192800000003],[-64.355269999999962,81.726379000000122],[-64.472503999999958,81.721374999999966],[-64.629439999999931,81.722488000000055],[-64.720001000000025,81.723877000000073],[-64.767776000000026,81.725815000000011],[-64.801665999999955,81.728317000000061],[-64.812209999999993,81.730820000000051],[-64.833892999999932,81.738876000000118],[-64.839721999999938,81.742203000000075],[-64.885559000000001,81.750823999999966],[-64.910004000000015,81.752777000000094],[-64.962218999999948,81.752212999999983],[-65.21665999999999,81.74552900000009],[-65.337508999999955,81.737761999999975],[-65.409728999999913,81.728317000000061],[-65.631377999999927,81.70248400000014],[-65.668334999999956,81.700821000000019],[-65.725554999999929,81.701660000000004],[-65.773330999999985,81.702773999999977],[-65.924437999999952,81.70138500000013],[-66.012221999999952,81.696930000000123],[-66.038605000000018,81.692474000000004],[-66.042220999999984,81.690536000000066],[-66.030288999999925,81.684982000000105],[-65.991378999999995,81.682755000000043],[-65.821944999999971,81.684417999999937],[-65.612503000000004,81.680817000000104],[-65.487777999999935,81.687485000000038],[-65.404175000000009,81.69081100000011],[-65.352492999999868,81.691925000000083],[-65.336670000000026,81.688034000000016],[-65.370833999999945,81.678863999999976],[-65.402221999999995,81.674423000000047],[-65.523620999999991,81.659714000000008],[-65.618056999999908,81.648605000000089],[-65.789443999999946,81.632202000000063],[-65.871657999999911,81.627197000000024],[-65.910278000000005,81.629699999999957],[-65.926391999999964,81.634154999999964],[-65.92721599999993,81.635543999999982],[-65.924437999999952,81.639708999999982],[-65.92721599999993,81.645827999999995],[-65.943328999999892,81.650543000000027],[-65.982223999999917,81.65277100000003],[-66.024718999999948,81.653046000000018],[-66.042770000000019,81.651657],[-66.064712999999983,81.647765999999933],[-66.085555999999997,81.642761000000064],[-66.101943999999946,81.637207000000103],[-66.140838999999971,81.620529000000033],[-66.172501000000011,81.618042000000116],[-66.218886999999938,81.616928000000144],[-66.355270000000019,81.617477000000122],[-66.393889999999942,81.619705000000067],[-66.439712999999983,81.62692300000009],[-66.478333000000021,81.628585999999984],[-66.575561999999934,81.626082999999994],[-66.727492999999924,81.6202550000001],[-66.804992999999854,81.615814],[-66.896392999999932,81.611923000000104],[-67.15695199999999,81.608032000000037],[-67.509170999999924,81.60054000000008],[-67.55972300000002,81.599152000000004],[-67.766662999999994,81.593047999999953],[-67.792770000000019,81.589706000000035],[-68.111389000000031,81.56303400000013],[-68.156661999999983,81.56109600000002],[-68.231383999999991,81.561371000000008],[-68.274718999999948,81.562759000000085],[-68.309433000000013,81.565536000000009],[-68.330565999999919,81.56860400000005],[-68.352492999999981,81.573044000000039],[-68.410277999999892,81.588043000000084],[-68.459731999999974,81.597487999999998],[-68.661391999999978,81.633330999999998],[-68.715285999999992,81.642211999999972],[-68.976944000000003,81.684417999999937],[-69.058883999999921,81.697479000000101],[-69.139998999999989,81.70887799999997],[-69.176392000000021,81.712494000000049],[-69.247222999999963,81.71748400000007],[-69.291381999999999,81.718871999999976],[-69.299438000000009,81.717209000000082],[-69.306655999999975,81.714431999999988],[-69.291381999999999,81.707763999999997],[-69.268065999999976,81.70248400000014],[-69.214172000000019,81.695251000000098],[-69.123610999999983,81.683868000000132],[-69.005279999999914,81.667480000000069],[-68.902221999999995,81.651382000000012],[-68.624709999999993,81.604430999999977],[-68.449158000000011,81.570831000000055],[-68.370833999999888,81.553589000000045],[-68.357772999999952,81.548325000000091],[-68.352492999999981,81.541656000000046],[-68.37332200000003,81.537766000000033],[-68.407500999999968,81.533874999999966],[-68.504455999999948,81.532211000000132],[-68.551391999999964,81.532760999999994],[-68.637512000000015,81.535538000000088],[-68.715285999999992,81.539703000000088],[-68.810821999999916,81.548599000000024],[-68.848891999999978,81.549149000000057],[-68.856948999999986,81.547760000000039],[-68.851944000000003,81.541656000000046],[-68.839172000000019,81.536925999999994],[-68.813048999999978,81.533325000000104],[-68.777495999999928,81.529709000000082],[-68.579452999999887,81.514434999999992],[-68.536666999999966,81.513321000000019],[-68.446654999999964,81.517487000000074],[-68.376098999999954,81.522766000000047],[-68.285827999999924,81.526931999999988],[-68.091949,81.529160000000104],[-68.051101999999958,81.53054800000001],[-68.011123999999938,81.533051],[-67.910003999999958,81.542206000000078],[-67.819732999999871,81.546936000000073],[-67.724716000000001,81.551086000000112],[-67.383651999999984,81.56088299999999],[-67.182495000000017,81.564697000000081],[-67.150283999999942,81.564987000000087],[-67.107773000000009,81.564987000000087],[-67.064712999999983,81.562759000000085],[-66.859726000000023,81.546646000000067],[-66.791381999999885,81.540817000000061],[-66.766112999999962,81.537491000000045],[-66.629990000000021,81.518051000000014],[-66.608611999999994,81.512772000000041],[-66.62388599999997,81.506378000000041],[-66.741104000000007,81.491928000000087],[-66.887787000000003,81.480545000000063],[-66.962783999999942,81.474991000000102],[-67.043334999999956,81.469711000000018],[-67.248336999999992,81.44999700000011],[-67.457503999999972,81.423035000000027],[-67.753890999999896,81.391663000000051],[-67.818344000000025,81.385268999999994],[-67.994719999999973,81.368042000000003],[-68.244720000000029,81.33998100000008],[-68.355835000000013,81.32388300000008],[-68.429169000000002,81.31164600000011],[-68.486938000000009,81.303863999999976],[-68.618057000000022,81.290543000000014],[-68.796951000000035,81.275269000000094],[-69.028609999999958,81.258606000000043],[-69.319457999999997,81.260268999999937],[-69.34056099999998,81.263885000000016],[-69.357773000000009,81.268326000000116],[-69.362777999999992,81.268875000000037],[-69.391388000000006,81.270537999999988],[-69.426940999999943,81.26998900000001],[-69.455565999999976,81.265823000000125],[-69.468886999999995,81.259995000000004],[-69.46305799999999,81.253326000000129],[-69.436934999999949,81.249145999999939],[-69.366652999999985,81.246368000000132],[-69.319457999999997,81.243591000000038],[-69.312209999999993,81.240540000000067],[-69.323897999999929,81.238037000000077],[-69.541671999999949,81.212493999999936],[-69.911941999999954,81.182480000000112],[-69.999434999999949,81.179977000000122],[-70.158339999999953,81.181366000000139],[-70.206389999999942,81.179703000000018],[-70.210007000000019,81.173874000000012],[-70.126098999999954,81.165543000000127],[-70.050551999999982,81.161652000000061],[-69.960281000000009,81.160538000000088],[-69.907227000000034,81.161652000000061],[-69.864440999999999,81.16415400000011],[-69.760009999999966,81.173035000000027],[-69.638061999999991,81.177475000000072],[-69.647506999999962,81.172484999999995],[-69.831954999999994,81.137206999999989],[-69.887786999999946,81.129150000000038],[-69.953063999999983,81.122208000000114],[-69.976943999999946,81.118866000000025],[-70.013061999999934,81.109146000000123],[-70.025283999999999,81.102767999999969],[-70.023330999999985,81.100815000000011],[-69.995269999999948,81.099426000000051],[-69.955565999999976,81.099426000000051],[-69.922225999999966,81.102203000000145],[-69.832229999999981,81.111649000000114],[-69.632492000000013,81.139160000000118],[-69.609726000000023,81.14387499999998],[-69.591675000000009,81.14888000000002],[-69.541671999999949,81.164428999999927],[-69.528335999999911,81.169434000000024],[-69.463333000000034,81.183044000000052],[-69.430556999999965,81.187194999999974],[-69.359436000000017,81.193313999999987],[-68.876099000000011,81.231094000000098],[-68.760833999999932,81.239426000000037],[-68.37388599999997,81.266662999999994],[-68.246947999999975,81.272766000000104],[-68.116652999999928,81.280273000000079],[-68.052779999999984,81.286102000000085],[-67.887221999999952,81.30304000000001],[-67.823623999999938,81.310257000000092],[-67.791107000000011,81.315536000000066],[-67.690826000000015,81.329437000000041],[-67.593062999999972,81.340271000000087],[-67.356658999999979,81.363601999999958],[-67.24749799999995,81.371918000000051],[-67.124160999999901,81.379700000000014],[-66.990554999999915,81.385544000000039],[-66.621383999999978,81.413879000000065],[-66.365828999999962,81.434708000000001],[-66.290282999999988,81.440262000000018],[-66.16972399999986,81.447754000000145],[-66.134170999999924,81.450821000000076],[-66.050827000000027,81.459152000000131],[-65.985549999999989,81.468048000000067],[-65.831679999999949,81.484711000000004],[-65.724715999999944,81.493866000000025],[-65.643616000000009,81.498871000000065],[-65.557495000000017,81.503052000000139],[-65.466400000000021,81.506378000000041],[-65.252791999999943,81.517212000000086],[-65.002791999999999,81.530823000000055],[-64.612503000000004,81.544982999999945],[-64.566390999999953,81.545532000000094],[-64.537780999999995,81.543593999999985],[-64.528060999999923,81.541656000000046],[-64.517501999999979,81.537491000000045],[-64.444152999999972,81.490814000000114],[-64.436385999999914,81.479431000000091],[-64.451110999999969,81.466934000000094],[-64.491942999999992,81.448868000000118],[-64.508620999999948,81.441924999999969],[-64.520844000000011,81.4369200000001],[-64.554169000000002,81.425812000000064],[-64.616652999999928,81.404984000000013],[-64.658889999999985,81.393050999999957],[-64.735274999999945,81.374146000000053],[-64.808608999999933,81.360535000000084],[-64.855835000000013,81.352768000000083],[-64.99499499999996,81.333328000000108],[-65.060271999999998,81.326096000000007],[-65.168059999999969,81.309982000000048],[-65.286391999999978,81.287201000000039],[-65.323623999999995,81.278046000000018],[-65.441375999999934,81.256378000000041],[-65.493057000000022,81.250549000000035],[-65.527785999999992,81.247481999999934],[-65.571670999999981,81.244980000000055],[-65.747771999999998,81.235809000000131],[-65.941101000000003,81.226379000000065],[-65.980559999999912,81.22387700000013],[-66.010284000000013,81.220261000000107],[-66.199721999999895,81.183868000000018],[-66.244445999999868,81.17442299999999],[-66.264449999999954,81.169434000000024],[-66.418335000000013,81.128860000000032],[-66.438048999999978,81.12359600000002],[-66.482772999999952,81.106934000000081],[-66.50418099999996,81.095534999999984],[-66.509445000000028,81.08859300000006],[-66.529723999999987,81.076096000000064],[-66.544723999999974,81.070540999999992],[-66.603333000000021,81.05525200000011],[-66.685821999999973,81.035812000000135],[-66.753341999999975,81.021927000000005],[-66.921111999999994,80.991089000000045],[-67.164443999999946,80.948593000000017],[-67.208618000000001,80.941925000000026],[-67.279175000000009,80.93553200000008],[-67.309158000000025,80.934418000000107],[-67.349441999999954,80.936371000000065],[-67.440825999999959,80.936646000000053],[-67.562209999999993,80.93553200000008],[-67.591384999999946,80.933044000000109],[-67.606658999999922,80.929977000000008],[-67.603607000000011,80.92442299999999],[-67.588333000000034,80.913878999999952],[-67.567779999999971,80.908599999999979],[-67.543335000000013,80.90415999999999],[-67.53083799999996,80.897491000000116],[-67.539992999999981,80.891098000000113],[-67.583618000000001,80.876648000000046],[-67.634445000000028,80.860809000000074],[-67.653609999999958,80.856369000000086],[-67.863891999999964,80.834152000000017],[-67.910278000000005,80.8119200000001],[-67.965835999999911,80.797484999999995],[-68.011397999999986,80.788315000000125],[-68.065552000000025,80.779160000000104],[-68.089447000000007,80.776093000000003],[-68.138335999999981,80.772491000000002],[-68.202788999999939,80.765823000000069],[-68.225280999999939,80.761383000000023],[-68.672500999999897,80.66693099999992],[-68.738891999999908,80.647217000000012],[-68.814712999999983,80.628586000000041],[-68.952498999999875,80.603043000000071],[-69.146666999999923,80.529709000000082],[-69.171111999999994,80.517487000000131],[-69.273055999999997,80.463882000000012],[-69.289168999999958,80.451660000000061],[-69.291381999999999,80.444138000000123],[-69.290558000000033,80.437194999999917],[-69.297774999999945,80.424698000000149],[-69.305557000000022,80.418319999999994],[-69.317504999999983,80.412490999999989],[-69.333892999999932,80.406647000000135],[-69.384734999999921,80.391937000000041],[-69.427489999999977,80.382751000000042],[-69.479720999999984,80.37553400000013],[-69.551102000000014,80.366379000000109],[-69.596389999999872,80.361099000000024],[-69.729720999999927,80.352767999999969],[-69.982772999999895,80.344986000000006],[-70.072783999999956,80.344437000000028],[-70.218886999999938,80.346374999999966],[-70.284438999999907,80.351089000000115],[-70.305266999999958,80.356093999999985],[-70.310821999999973,80.363037000000134],[-70.285827999999981,80.372482000000048],[-70.256393000000003,80.381362999999965],[-70.244155999999919,80.386658000000011],[-70.227782999999988,80.401382000000069],[-70.220001000000025,80.416930999999977],[-70.235000999999897,80.429703000000018],[-70.275283999999942,80.44802900000002],[-70.314163000000008,80.464432000000045],[-70.499434999999949,80.513884999999959],[-70.539992999999924,80.521927000000119],[-70.68110699999994,80.548035000000084],[-70.706116000000009,80.552475000000129],[-70.754729999999995,80.559418000000107],[-70.783065999999963,80.56303400000013],[-70.812499999999886,80.562759000000142],[-70.825286999999889,80.558593999999971],[-70.827498999999932,80.551376000000118],[-70.813048999999921,80.544983000000002],[-70.796111999999994,80.540543000000127],[-70.765288999999996,80.534424000000115],[-70.741668999999945,80.531372000000033],[-70.670837000000006,80.518051000000071],[-70.637786999999946,80.509155000000135],[-70.531386999999995,80.474426000000051],[-70.490554999999915,80.460815000000082],[-70.476669000000015,80.454436999999984],[-70.423324999999977,80.42164600000001],[-70.434722999999963,80.391663000000108],[-70.450561999999991,80.385817999999972],[-70.458892999999989,80.381362999999965],[-70.472228999999913,80.368042000000003],[-70.471389999999985,80.362488000000042],[-70.469161999999983,80.354980000000012],[-70.462219000000005,80.346939000000134],[-70.444153000000028,80.340271000000143],[-70.424164000000019,80.336105000000032],[-70.352492999999924,80.324707000000046],[-70.309998000000007,80.318054000000075],[-70.252791999999943,80.313309000000061],[-70.15055799999999,80.299149000000114],[-70.035278000000005,80.278320000000122],[-69.991103999999893,80.268875000000094],[-69.974166999999966,80.263046000000088],[-69.960555999999997,80.256378000000097],[-69.965285999999935,80.252213000000097],[-69.990828999999962,80.24331699999999],[-70.128326000000015,80.19720500000011],[-70.145554000000004,80.193587999999977],[-70.178604000000007,80.189148000000102],[-70.21665999999999,80.186371000000008],[-70.24888599999997,80.18609600000002],[-70.315001999999879,80.187484999999981],[-70.611388999999974,80.19720500000011],[-70.645554000000004,80.199142000000109],[-70.821121000000005,80.195526000000086],[-71.120833999999945,80.172485000000052],[-71.180556999999908,80.166656000000046],[-71.238326999999913,80.158874999999966],[-71.381942999999978,80.139160000000004],[-71.418610000000001,80.131088000000034],[-71.446105999999929,80.121368000000132],[-71.463057999999933,80.118042000000059],[-71.50111400000003,80.11554000000001],[-71.654448999999943,80.111374000000069],[-71.694442999999978,80.110809000000074],[-71.731948999999929,80.111923000000047],[-71.762787000000003,80.114426000000037],[-71.789992999999981,80.117752000000053],[-71.811660999999901,80.123596000000077],[-71.836120999999991,80.131927000000132],[-71.848052999999993,80.143875000000037],[-71.878600999999946,80.162491000000045],[-71.907776000000013,80.171371000000079],[-71.953339000000028,80.180542000000003],[-72.006393000000003,80.188583000000108],[-72.057220000000029,80.19470200000012],[-72.081116000000009,80.194138000000009],[-72.099990999999875,80.192748999999992],[-72.127776999999924,80.187759000000142],[-72.165282999999988,80.188873000000115],[-72.189163000000008,80.192200000000014],[-72.223327999999981,80.201660000000118],[-72.241378999999995,80.207489000000123],[-72.256392999999946,80.213882000000069],[-72.274445000000014,80.219711000000075],[-72.294448999999872,80.223312000000135],[-72.329726999999878,80.22554000000008],[-72.358886999999925,80.226089000000059],[-72.378051999999968,80.224700999999982],[-72.391113000000018,80.221649000000014],[-72.400283999999942,80.218597000000102],[-72.420837000000006,80.211104999999975],[-72.412506000000008,80.207214000000079],[-72.188598999999954,80.163879000000122],[-72.140839000000028,80.156937000000028],[-72.082779000000016,80.151656999999943],[-72.052489999999977,80.149719000000005],[-71.996947999999861,80.143051000000071],[-71.977218999999934,80.139434999999992],[-71.896956999999929,80.11554000000001],[-71.895553999999947,80.114150999999993],[-71.898055999999997,80.108597000000032],[-71.905272999999966,80.103591999999935],[-71.926102000000014,80.099991000000102],[-71.954726999999934,80.096375000000023],[-72.115554999999972,80.087494000000106],[-72.250564999999938,80.085541000000148],[-72.391677999999956,80.085541000000148],[-72.392226999999991,80.081940000000088],[-72.358337000000006,80.064987000000031],[-72.340560999999923,80.059143000000006],[-72.306380999999988,80.057480000000055],[-72.170272999999952,80.053864000000033],[-72.137787000000003,80.053588999999988],[-72.053054999999915,80.057480000000055],[-71.920836999999949,80.066375999999991],[-71.885833999999932,80.067215000000147],[-71.849730999999906,80.067764000000125],[-71.701950000000011,80.064148000000046],[-71.618057000000022,80.06442300000009],[-71.489166000000012,80.068878000000097],[-71.376098999999954,80.076935000000049],[-71.316665999999941,80.081940000000088],[-71.186385999999914,80.093872000000033],[-70.968063000000029,80.114990000000148],[-70.854720999999984,80.12831100000011],[-70.821121000000005,80.131088000000034],[-70.762512000000015,80.133330999999941],[-70.651671999999962,80.131363000000022],[-70.626663000000008,80.130539000000056],[-70.50778200000002,80.099716000000058],[-70.502227999999945,80.093048000000067],[-70.497498000000007,80.082764000000054],[-70.48832699999997,80.057205000000067],[-70.494995000000017,80.050812000000121],[-70.508346999999958,80.047759999999982],[-70.568068999999923,80.042755000000113],[-70.59722899999997,80.039429000000098],[-70.646666999999979,80.031936999999971],[-70.662216000000001,80.026657000000057],[-70.673049999999989,80.020828000000051],[-70.679717999999866,80.014435000000105],[-70.672774999999945,80.006377999999984],[-70.672501000000011,80.001389000000017],[-70.689712999999983,79.993317000000047],[-70.71945199999999,79.986374000000012],[-70.767226999999878,79.981658999999979],[-70.916107000000011,79.974425999999994],[-70.954178000000013,79.972763000000043],[-71.08555599999994,79.968596999999988],[-71.241669000000002,79.960815000000025],[-71.27027899999996,79.957214000000135],[-71.401108000000022,79.93553199999991],[-71.416397000000018,79.930267000000072],[-71.453612999999962,79.906372000000033],[-71.460555999999883,79.901382000000012],[-71.458892999999932,79.894989000000066],[-71.438599000000011,79.88998399999997],[-71.415832999999907,79.886658000000125],[-71.394454999999994,79.884995000000004],[-71.352782999999931,79.886932000000058],[-71.338608000000022,79.888596000000064],[-71.168335000000013,79.914153999999996],[-71.109725999999966,79.915267999999969],[-71.063048999999978,79.911652000000117],[-70.944716999999969,79.894150000000081],[-70.925827000000027,79.890274000000034],[-70.910278000000005,79.885818000000086],[-70.916397000000018,79.879424999999969],[-71.005843999999968,79.819717000000082],[-71.116652999999985,79.789703000000088],[-71.136123999999938,79.784988000000055],[-71.183884000000035,79.77748100000008],[-71.212783999999999,79.774428999999998],[-71.343612999999948,79.76388500000013],[-71.376098999999954,79.760818000000029],[-71.400283999999999,79.757492000000013],[-71.444442999999922,79.741653000000042],[-71.463333000000034,79.736923000000047],[-71.49110399999995,79.733321999999987],[-71.699158000000011,79.709991000000116],[-71.739440999999943,79.707214000000022],[-71.781113000000005,79.706100000000049],[-71.817504999999983,79.703597999999943],[-71.922500999999954,79.695525999999973],[-71.990279999999984,79.689148000000046],[-72.096664000000033,79.674988000000099],[-72.217772999999909,79.659987999999998],[-72.267226999999934,79.659149000000014],[-72.287215999999944,79.659987999999998],[-72.317779999999914,79.667205999999965],[-72.330841000000021,79.672484999999938],[-72.348052999999879,79.678040000000067],[-72.367217999999923,79.681656000000089],[-72.392226999999991,79.683594000000028],[-72.425003000000004,79.685531999999967],[-72.467223999999931,79.684708000000001],[-72.574172999999917,79.679153000000099],[-72.619445999999925,79.677765000000022],[-72.661391999999978,79.677199999999971],[-72.697220000000016,79.678040000000067],[-72.729995999999971,79.679703000000131],[-72.756119000000012,79.682205000000067],[-72.912780999999939,79.702208999999982],[-72.932769999999948,79.706375000000037],[-72.944442999999978,79.710266000000104],[-73.062774999999988,79.79942299999999],[-73.061110999999983,79.805251999999996],[-73.048614999999984,79.808319000000097],[-73.027495999999985,79.80693100000002],[-73.017226999999934,79.804703000000018],[-73.003341999999975,79.803040000000124],[-72.979171999999949,79.802200000000084],[-72.945830999999998,79.804152999999985],[-72.924437999999952,79.806366000000139],[-72.912216000000001,79.809418000000051],[-72.902495999999928,79.815262000000075],[-72.926392000000021,79.819442999999978],[-73.059158000000025,79.825546000000088],[-73.091675000000009,79.826385000000073],[-73.178328999999906,79.822768999999994],[-73.218063000000029,79.822768999999994],[-73.285003999999958,79.826096000000121],[-73.348617999999988,79.83027600000014],[-73.371383999999978,79.833054000000118],[-73.396956999999986,79.834991000000002],[-73.43360899999999,79.835815000000139],[-73.576401000000033,79.832764000000111],[-73.667770000000019,79.829712000000029],[-73.745270000000005,79.828323000000012],[-73.780288999999982,79.82777400000009],[-73.853332999999907,79.829163000000051],[-73.866942999999992,79.830826000000002],[-73.864715999999987,79.835815000000139],[-73.853607000000011,79.839706000000035],[-73.801666000000012,79.84637500000008],[-73.745543999999938,79.849152000000004],[-73.742492999999854,79.849990999999932],[-73.746947999999975,79.854155999999932],[-73.768615999999895,79.858870999999965],[-73.890839000000028,79.875259000000028],[-73.945830999999885,79.881653000000085],[-74.010284000000013,79.885818000000086],[-74.117492999999968,79.888885000000016],[-74.156951999999933,79.888885000000016],[-74.238891999999964,79.887207000000103],[-74.283614999999941,79.881363000000079],[-74.30610699999994,79.876923000000033],[-74.383621000000005,79.868591000000094],[-74.415282999999988,79.865265000000022],[-74.576401000000033,79.856934000000138],[-74.667495999999971,79.853591999999992],[-74.795272999999952,79.850815000000125],[-74.833069000000023,79.849152000000004],[-74.846389999999985,79.847214000000065],[-74.846114999999941,79.84387200000009],[-74.71665999999999,79.796936000000073],[-74.699431999999945,79.792755],[-74.683884000000035,79.789978000000076],[-74.654998999999975,79.788879000000122],[-74.488892000000021,79.791655999999989],[-74.444992000000013,79.794708000000128],[-74.392226999999934,79.800261999999918],[-74.351668999999958,79.802475000000072],[-74.309432999999956,79.803314000000057],[-74.236388999999974,79.801925999999924],[-74.106383999999878,79.795532000000094],[-73.951401000000033,79.784424000000115],[-73.714721999999938,79.76638800000012],[-73.510833999999988,79.756377999999984],[-73.384734999999921,79.748871000000065],[-73.366652999999985,79.718048000000067],[-73.360824999999863,79.712769000000094],[-73.295546999999999,79.688582999999994],[-73.256957999999884,79.678040000000067],[-73.206664999999987,79.663605000000132],[-73.188889000000017,79.658035000000041],[-73.174438000000009,79.651657000000057],[-73.168334999999956,79.646103000000096],[-73.126098999999897,79.569443000000035],[-73.125823999999966,79.558318999999983],[-73.128875999999991,79.554153000000042],[-73.135833999999988,79.549713000000054],[-73.148620999999991,79.543593999999985],[-73.163054999999986,79.538878999999952],[-73.180831999999953,79.534149000000127],[-73.247222999999963,79.520827999999995],[-73.296111999999937,79.512772000000098],[-73.353881999999942,79.505829000000119],[-73.446380999999917,79.499145999999939],[-73.657776000000013,79.496368000000132],[-73.693054000000018,79.496933000000013],[-73.729172000000005,79.498596000000077],[-73.758057000000008,79.500275000000101],[-73.779998999999975,79.503052000000025],[-73.791945999999939,79.506653000000085],[-73.817229999999938,79.515549000000021],[-73.837783999999999,79.527480999999966],[-73.863892000000021,79.540267999999969],[-73.876662999999951,79.544708000000014],[-73.916106999999954,79.552475000000129],[-73.950286999999889,79.555252000000053],[-73.965012000000002,79.554703000000075],[-73.988892000000021,79.55192599999998],[-74.001113999999973,79.545821999999987],[-74.000290000000007,79.541656000000046],[-73.996947999999975,79.535537999999917],[-73.989440999999943,79.528595000000109],[-73.968612999999891,79.516937000000098],[-73.959166999999923,79.508881000000031],[-73.949996999999939,79.493866000000082],[-73.949721999999952,79.479980000000069],[-73.953063999999983,79.472762999999986],[-73.961945000000014,79.466933999999981],[-73.98332199999993,79.455551000000128],[-73.998046999999985,79.451385000000073],[-74.023620999999991,79.446930000000066],[-74.081389999999999,79.440536000000009],[-74.11610399999995,79.43803400000013],[-74.160278000000005,79.436371000000008],[-74.198333999999988,79.436095999999964],[-74.544158999999922,79.43803400000013],[-74.617492999999854,79.438583000000051],[-74.673614999999927,79.444138000000123],[-74.688598999999897,79.446930000000066],[-74.931670999999938,79.498871000000122],[-74.932410999999888,79.504798999999991],[-74.941939999999988,79.510543999999982],[-74.96444699999995,79.513046000000031],[-74.987503000000004,79.509995000000004],[-75.043334999999956,79.49581900000004],[-75.060271999999884,79.490813999999943],[-75.059433000000013,79.483871000000136],[-74.995269999999948,79.453598],[-74.983062999999959,79.449706999999933],[-74.948882999999967,79.440810999999997],[-74.912215999999944,79.429703000000018],[-74.897231999999974,79.423308999999961],[-74.884444999999971,79.416092000000049],[-74.883056999999894,79.408325000000104],[-74.911117999999988,79.39387499999998],[-74.93499799999995,79.385269000000051],[-74.951949999999954,79.380264000000011],[-75,79.375488000000075],[-75.016953000000001,79.374146000000053],[-75.058334000000002,79.373871000000065],[-75.213897999999972,79.376373000000115],[-75.31361400000003,79.379974000000004],[-75.410278000000005,79.384155000000078],[-75.531386999999995,79.392487000000074],[-75.695266999999944,79.409987999999998],[-75.799728000000016,79.431366000000139],[-75.907776000000013,79.426086000000055],[-75.931380999999988,79.423598999999967],[-75.957503999999972,79.426086000000055],[-75.985275000000001,79.429703000000018],[-76.031386999999995,79.438309000000118],[-76.049164000000019,79.443038999999999],[-76.097503999999958,79.461929000000112],[-76.109160999999915,79.467758000000117],[-76.115279999999927,79.472487999999942],[-76.124160999999958,79.476379000000009],[-76.138610999999912,79.481369000000086],[-76.175827000000027,79.488876000000005],[-76.203888000000006,79.492477000000065],[-76.261123999999995,79.497756999999979],[-76.320281999999906,79.501389000000074],[-76.636123999999995,79.519440000000088],[-76.665282999999988,79.520827999999995],[-76.718338000000017,79.51998900000001],[-76.795273000000009,79.51138300000008],[-76.834441999999967,79.508881000000031],[-76.872771999999998,79.508606000000043],[-76.90583799999996,79.509720000000016],[-77.050277999999992,79.518600000000049],[-77.069732999999985,79.523880000000077],[-77.092772999999909,79.539703000000145],[-77.112212999999997,79.545258000000047],[-77.142501999999865,79.547485000000052],[-77.160552999999936,79.543593999999985],[-77.191375999999934,79.511108000000092],[-77.184433000000013,79.503600999999946],[-77.178604000000007,79.499710000000107],[-77.134444999999971,79.490265000000022],[-77.071670999999924,79.486923000000104],[-76.895554000000004,79.48054500000012],[-76.867217999999923,79.479705999999965],[-76.612503000000004,79.474701000000096],[-76.406386999999995,79.473602000000142],[-76.204726999999991,79.461380000000133],[-76.179168999999888,79.459717000000069],[-76.159438999999963,79.456375000000094],[-76.143341000000021,79.449996999999939],[-76.138061999999934,79.443313999999987],[-76.138901000000033,79.441086000000041],[-76.149993999999992,79.437759000000085],[-76.159164000000033,79.436095999999964],[-76.189986999999974,79.433319000000097],[-76.208054000000004,79.429703000000018],[-76.205565999999976,79.424698000000149],[-76.167496000000028,79.396102999999925],[-76.157501000000025,79.391663000000108],[-76.11721799999998,79.384430000000123],[-76.083327999999995,79.378860000000032],[-76.059157999999968,79.374985000000038],[-75.902221999999995,79.357207999999957],[-75.881942999999978,79.353317000000118],[-75.879165999999998,79.351378999999952],[-75.889998999999875,79.348037999999917],[-75.902785999999878,79.346099999999979],[-76.086670000000026,79.332214000000022],[-76.12332200000003,79.331100000000049],[-76.351104999999961,79.341934000000094],[-76.682770000000005,79.352767999999969],[-76.717772999999909,79.353317000000118],[-76.790557999999976,79.353317000000118],[-76.829178000000013,79.350815000000011],[-76.869719999999973,79.349426000000051],[-76.89416499999993,79.353317000000118],[-76.959441999999967,79.367203000000075],[-77.018889999999999,79.381927000000132],[-77.076401000000033,79.398331000000098],[-77.090285999999935,79.40554800000001],[-77.105559999999912,79.416092000000049],[-77.108337000000006,79.420822000000101],[-77.212509000000011,79.447754000000032],[-77.326400999999976,79.454163000000051],[-77.359160999999915,79.455551000000128],[-77.386123999999938,79.452774000000034],[-77.397507000000019,79.447205000000054],[-77.395003999999972,79.440262000000075],[-77.384445000000028,79.433044000000052],[-77.262221999999952,79.372482000000048],[-77.172500999999954,79.336380000000077],[-77.158614999999998,79.329162999999994],[-77.163894999999968,79.324707000000046],[-77.187774999999988,79.322769000000108],[-77.228058000000033,79.321655000000135],[-77.260559000000001,79.322769000000108],[-77.317229999999938,79.327773999999977],[-77.36721799999998,79.336105000000089],[-77.386397999999986,79.33859300000006],[-77.41361999999998,79.34165999999999],[-77.466110000000015,79.346099999999979],[-77.477782999999931,79.346099999999979],[-77.596114999999941,79.345824999999991],[-77.634170999999924,79.345534999999984],[-77.707503999999972,79.343323000000055],[-77.739990000000034,79.344437000000084],[-77.769729999999981,79.346375000000023],[-77.819732999999985,79.351653999999996],[-77.905272999999909,79.365265000000136],[-77.922501000000011,79.366379000000109],[-77.957229999999981,79.363876000000118],[-78.051391999999964,79.354706000000078],[-78.058883999999978,79.349426000000051],[-78.043610000000001,79.344437000000084],[-78.021392999999932,79.339980999999966],[-77.903335999999967,79.322495000000004],[-77.876099000000011,79.319717000000026],[-77.846114999999998,79.317764000000068],[-77.809998000000007,79.316665999999998],[-77.760009999999966,79.316375999999991],[-77.726944000000003,79.317490000000134],[-77.650833000000034,79.317764000000068],[-77.624434999999949,79.315536000000122],[-77.529175000000009,79.30525200000011],[-77.478607000000011,79.29664600000001],[-77.322234999999978,79.267487000000017],[-77.329178000000013,79.261383000000137],[-77.341384999999946,79.259430000000009],[-77.358046999999942,79.257767000000115],[-77.422226000000023,79.254714999999976],[-77.453063999999983,79.252487000000031],[-77.482223999999974,79.248871000000008],[-77.496947999999918,79.24581900000004],[-77.488051999999982,79.244980000000112],[-77.424712999999997,79.246094000000085],[-77.358336999999949,79.249999999999943],[-77.191939999999988,79.263885000000073],[-76.999725000000012,79.273315000000139],[-76.671386999999925,79.277481000000023],[-76.237777999999935,79.271103000000039],[-76.168059999999969,79.269989000000066],[-76.136123999999995,79.268600000000106],[-76.105834999999956,79.265823000000012],[-76.068619000000012,79.25749200000007],[-76.052779999999984,79.251099000000124],[-76.03443900000002,79.24581900000004],[-75.991942999999992,79.236374000000012],[-75.938889000000017,79.230270000000132],[-75.807495000000017,79.227768000000083],[-75.777221999999938,79.227478000000076],[-75.734436000000017,79.229431000000034],[-75.675277999999992,79.236374000000012],[-75.637786999999946,79.239426000000094],[-75.608336999999949,79.239975000000072],[-75.465012000000002,79.239975000000072],[-75.405837999999903,79.237487999999985],[-75.083068999999966,79.235260000000039],[-74.876099000000011,79.238037000000134],[-74.800277999999992,79.240540000000067],[-74.777221999999995,79.240265000000079],[-74.52555799999999,79.227203000000031],[-74.496947999999975,79.224990999999989],[-74.47084000000001,79.22164900000007],[-74.464721999999995,79.219986000000119],[-74.467223999999987,79.215546000000131],[-74.474166999999966,79.211928999999998],[-74.520279000000016,79.203048999999965],[-74.571944999999914,79.196091000000138],[-74.601944000000003,79.192748999999992],[-74.758057000000008,79.18553200000008],[-74.791945999999996,79.182754999999986],[-74.817504999999926,79.17886400000009],[-74.826950000000011,79.174149000000057],[-74.819167999999934,79.167755000000056],[-74.795546999999999,79.163605000000018],[-74.766952999999944,79.161377000000073],[-74.672501000000011,79.156937000000028],[-74.617492999999854,79.151381999999955],[-74.445830999999941,79.065810999999997],[-74.436661000000015,79.0577550000001],[-74.443053999999961,79.046936000000073],[-74.455276000000026,79.041655999999989],[-74.47193900000002,79.036652000000004],[-74.514450000000011,79.028595000000053],[-74.543883999999991,79.025269000000037],[-74.578339000000028,79.023314999999968],[-74.654175000000009,79.022217000000069],[-74.725005999999951,79.022766000000047],[-74.960007000000019,79.028320000000008],[-75.116104000000007,79.035812000000135],[-75.243057000000022,79.043045000000006],[-75.626662999999951,79.066086000000041],[-75.655563000000029,79.068328999999949],[-75.763335999999981,79.080551000000128],[-75.885284000000013,79.097488000000112],[-75.891387999999949,79.102203000000145],[-75.887221999999952,79.12831100000011],[-75.880829000000006,79.134995000000004],[-75.856658999999979,79.139708999999925],[-75.848617999999988,79.14498900000001],[-75.857772999999952,79.152205999999921],[-75.944442999999922,79.173035000000084],[-76.047774999999945,79.192200000000071],[-76.071670999999924,79.196091000000138],[-76.098052999999993,79.199141999999995],[-76.132767000000001,79.199706999999989],[-76.309433000000013,79.190811000000053],[-76.519164999999987,79.190262000000132],[-76.859160999999972,79.185257000000092],[-76.973327999999924,79.183318999999926],[-77.044998000000021,79.183318999999926],[-77.083069000000023,79.183593999999971],[-77.111663999999962,79.184982000000048],[-77.167496000000028,79.189972000000125],[-77.205001999999979,79.195251000000098],[-77.250564999999995,79.198029000000076],[-77.388901000000033,79.199706999999989],[-77.510833999999988,79.194976999999994],[-77.548049999999932,79.194427000000132],[-77.642501999999922,79.199706999999989],[-77.695267000000001,79.204712000000029],[-77.749999999999886,79.208328000000108],[-77.777495999999928,79.208878000000141],[-77.817504999999983,79.207763999999997],[-78.158889999999985,79.189972000000125],[-78.213622999999984,79.183593999999971],[-78.233321999999987,79.17886400000009],[-78.245833999999945,79.174698000000035],[-78.25389100000001,79.169983000000002],[-78.253066999999987,79.164428999999984],[-78.228607000000011,79.160538000000088],[-78.181670999999994,79.159424000000115],[-78.084732000000031,79.168045000000063],[-78.056106999999997,79.171921000000111],[-78.026397999999972,79.174698000000035],[-77.988892000000021,79.177475000000129],[-77.912216000000001,79.17942800000003],[-77.842772999999966,79.178589000000102],[-77.47193900000002,79.167755000000056],[-77.237777999999992,79.156937000000028],[-77.208617999999944,79.154709000000082],[-77.181106999999997,79.153869999999927],[-77.018615999999952,79.153595000000109],[-76.841949,79.153595000000109],[-76.706115999999952,79.153045999999961],[-76.639998999999989,79.15109300000006],[-76.61082499999992,79.149155000000121],[-76.484725999999966,79.136108000000092],[-76.430557000000022,79.132202000000007],[-76.319732999999928,79.124695000000088],[-76.260009999999909,79.121917999999994],[-76.233611999999937,79.121642999999949],[-76.191375999999934,79.123596000000077],[-76.15972899999997,79.122208000000001],[-76.136672999999973,79.11914100000007],[-76.081954999999994,79.099716000000114],[-76.085006999999905,79.093323000000112],[-76.099990999999875,79.08776899999998],[-76.116652999999928,79.083328000000051],[-76.146666999999979,79.077774000000034],[-76.170546999999885,79.075821000000076],[-76.210006999999962,79.074707000000103],[-76.265014999999948,79.074432000000115],[-76.360001000000011,79.078323000000012],[-76.515015000000005,79.085815000000082],[-76.575561999999991,79.089432000000045],[-76.637222000000008,79.090546000000018],[-76.676391999999964,79.089432000000045],[-76.828339000000028,79.082764000000111],[-76.996383999999978,79.074707000000103],[-77.073333999999932,79.070831000000055],[-77.152785999999992,79.066086000000041],[-77.223052999999993,79.060532000000023],[-77.326950000000011,79.051651000000106],[-77.355559999999969,79.048325000000034],[-77.429717999999923,79.037200999999982],[-77.449431999999945,79.032760999999937],[-77.464721999999995,79.027771000000087],[-77.49499499999996,79.017761000000007],[-77.529175000000009,79.018051000000014],[-77.693054000000018,79.033600000000092],[-77.719727000000034,79.036652000000004],[-77.742217999999923,79.041930999999977],[-77.783066000000019,79.062484999999981],[-77.799987999999928,79.066666000000055],[-77.84973100000002,79.069717000000082],[-77.919723999999917,79.068878000000097],[-78.035004000000015,79.065536000000009],[-78.103333000000021,79.066086000000041],[-78.135009999999966,79.067490000000021],[-78.165282999999931,79.06999200000007],[-78.214447000000007,79.075271999999984],[-78.234160999999858,79.078323000000012],[-78.289992999999981,79.083328000000051],[-78.351105000000018,79.086380000000133],[-78.425277999999992,79.083054000000118],[-78.671386999999982,79.071930000000009],[-78.818343999999968,79.069442999999978],[-78.860000999999954,79.067214999999976],[-78.891387999999893,79.063309000000118],[-78.879439999999931,79.060256999999979],[-78.692489999999964,79.058594000000085],[-78.588332999999977,79.059143000000006],[-78.405272999999966,79.064987000000031],[-78.283889999999985,79.066666000000055],[-78.236388999999974,79.064987000000031],[-78.15972899999997,79.051086000000055],[-78.108337000000006,79.04664600000001],[-78.070557000000008,79.04664600000001],[-77.966110000000015,79.049149],[-77.86111499999987,79.049149],[-77.829453000000001,79.048035000000027],[-77.799437999999896,79.045258000000103],[-77.785552999999993,79.041092000000049],[-77.708344000000011,79.013046000000145],[-77.703339000000028,79.006943000000035],[-77.71665999999999,79.003326000000072],[-77.796111999999937,78.988586000000112],[-77.835007000000019,78.979431000000034],[-77.946945000000028,78.951660000000004],[-77.946380999999917,78.945815999999979],[-77.952498999999932,78.939697000000137],[-78.040282999999988,78.906097000000045],[-78.147506999999962,78.865265000000079],[-78.282227000000034,78.80386400000009],[-78.289992999999981,78.799149000000057],[-78.297226000000023,78.788879000000122],[-78.296111999999937,78.783051],[-78.285552999999993,78.775818000000015],[-78.269454999999937,78.772491000000059],[-78.248046999999929,78.770263999999997],[-78.215560999999923,78.770537999999931],[-78.196105999999929,78.772217000000126],[-78.168334999999956,78.780823000000055],[-78.15972899999997,78.784988000000055],[-78.15943900000002,78.789978000000133],[-78.145843999999954,78.800812000000008],[-78.129439999999988,78.812194999999974],[-78.105269999999905,78.828598000000056],[-78.042769999999962,78.861649],[-78.029174999999896,78.867477000000122],[-77.902221999999995,78.91276600000009],[-77.887222000000008,78.917755000000056],[-77.75167799999997,78.95748900000001],[-77.711944999999957,78.966095000000109],[-77.689437999999996,78.968596999999988],[-77.526397999999972,78.979156000000046],[-77.370270000000005,78.984421000000111],[-77.258346999999958,78.986374000000069],[-77.177490000000034,78.989700000000084],[-77.107497999999964,78.99552900000009],[-77.078888000000006,78.998871000000065],[-77.026107999999965,79.006652999999972],[-76.960281000000009,79.012772000000041],[-76.75418099999996,79.027771000000087],[-76.710555999999997,79.028320000000008],[-76.683318999999983,79.027771000000087],[-76.424163999999962,79.022491000000002],[-76.361389000000031,79.019714000000135],[-75.98971599999993,78.99552900000009],[-75.732223999999974,78.969147000000021],[-75.720276000000013,78.965545999999961],[-75.769454999999994,78.939971999999955],[-75.781113000000005,78.934708000000001],[-75.796951000000035,78.929703000000131],[-75.825561999999991,78.926085999999998],[-75.858611999999937,78.923309000000074],[-75.896118000000001,78.920821999999987],[-76.095276000000013,78.910262999999986],[-76.25,78.902205999999978],[-76.287215999999944,78.899719000000118],[-76.315552000000025,78.896103000000039],[-76.335555999999997,78.891663000000051],[-76.375548999999921,78.882750999999985],[-76.415008999999998,78.873870999999951],[-76.446105999999929,78.863876000000062],[-76.456389999999942,78.857758000000103],[-76.460007000000019,78.851929000000098],[-76.458343999999897,78.844986000000119],[-76.440276999999924,78.839432000000102],[-76.41194200000001,78.837203999999986],[-76.394454999999937,78.840820000000008],[-76.391113000000018,78.843872000000147],[-76.37470999999988,78.851089000000059],[-76.344727000000034,78.858871000000022],[-76.330001999999979,78.861649],[-76.231673999999998,78.879149999999981],[-76.204726999999991,78.881088000000091],[-76.178329000000019,78.880264000000125],[-76.15834000000001,78.879149999999981],[-76.133330999999998,78.876648000000046],[-76.077498999999989,78.873032000000023],[-75.975006000000008,78.872756999999979],[-75.791671999999949,78.884155000000021],[-75.461120999999991,78.891372999999987],[-75.316101000000003,78.892211999999972],[-75.292220999999927,78.890274000000034],[-75.180557000000022,78.879149999999981],[-74.964721999999995,78.856094000000098],[-74.775009000000011,78.829987000000074],[-74.760559000000001,78.823607999999979],[-74.752791999999943,78.816940000000045],[-74.719726999999978,78.707489000000066],[-74.727218999999934,78.701385000000016],[-74.755844000000025,78.69802900000002],[-74.823059000000001,78.697478999999987],[-74.84333799999996,78.693039000000113],[-74.86999499999996,78.675812000000121],[-74.869445999999925,78.668594000000098],[-74.857773000000009,78.636107999999979],[-74.819457999999884,78.627472000000068],[-74.789992999999981,78.591370000000097],[-74.862212999999997,78.56721500000009],[-74.878052000000025,78.562485000000038],[-75.024169999999913,78.531937000000084],[-75.048049999999989,78.528046000000018],[-75.072509999999909,78.52777100000003],[-75.079453000000001,78.533875000000023],[-75.101394999999968,78.53776600000009],[-75.131377999999927,78.539153999999996],[-75.16722099999987,78.539703000000145],[-75.200287000000003,78.537491000000102],[-75.219726999999978,78.533051000000057],[-75.235275000000001,78.528046000000018],[-75.261672999999973,78.523315000000082],[-75.290557999999919,78.520537999999988],[-75.479445999999996,78.50999500000006],[-75.830001999999979,78.504715000000147],[-75.888335999999924,78.506103999999993],[-75.965011999999888,78.510818000000086],[-75.989990000000034,78.513885000000016],[-76.030563000000029,78.521103000000039],[-76.073058999999944,78.529709000000139],[-76.095550999999944,78.533600000000035],[-76.120270000000005,78.536652000000117],[-76.151107999999965,78.538589000000002],[-76.404448999999886,78.548035000000141],[-76.437209999999993,78.548599000000081],[-76.468886999999938,78.54553199999998],[-76.642775999999969,78.528320000000122],[-76.684433000000013,78.522217000000012],[-76.691101000000003,78.518875000000094],[-76.692764000000011,78.514708999999982],[-76.693603999999993,78.509720000000016],[-76.684997999999894,78.505829000000119],[-76.668335000000013,78.503875999999991],[-76.645844000000011,78.502777000000037],[-76.539992999999981,78.503325999999959],[-76.468338000000017,78.505264000000125],[-76.36471599999993,78.513321000000076],[-76.324722000000008,78.515274000000034],[-76.289444000000003,78.515549000000021],[-76.261948000000018,78.513611000000083],[-76.243057000000022,78.512207000000103],[-76.124999999999943,78.494141000000127],[-76.114165999999955,78.488312000000121],[-76.112777999999878,78.481094000000098],[-76.108886999999982,78.474990999999989],[-76.100554999999986,78.468322999999998],[-76.081679999999949,78.464432000000102],[-76.057495000000017,78.461929000000112],[-75.761123999999995,78.443862999999965],[-75.61721799999998,78.43803400000013],[-75.49888599999997,78.433044000000052],[-75.443603999999993,78.430542000000003],[-75.410827999999924,78.426651000000106],[-75.269729999999925,78.404160000000104],[-75.089995999999985,78.368866000000025],[-75.031386999999995,78.331375000000037],[-75.038329999999917,78.325546000000031],[-75.051940999999886,78.315810999999997],[-75.0625,78.309708000000001],[-75.086670000000026,78.306366000000082],[-75.189986999999974,78.299713000000111],[-75.22193900000002,78.300262000000032],[-75.246108999999933,78.303314],[-75.273055999999883,78.305542000000116],[-75.307495000000017,78.305542000000116],[-75.358611999999937,78.301651000000049],[-75.377212999999983,78.29664600000001],[-75.385009999999909,78.291367000000037],[-75.392226999999934,78.285262999999986],[-75.39805599999994,78.272491000000002],[-75.479172000000005,78.222214000000122],[-75.494155999999975,78.217209000000082],[-75.513335999999924,78.212769000000037],[-75.582503999999915,78.201096000000007],[-75.61361699999992,78.198029000000076],[-75.650283999999942,78.196930000000123],[-75.679442999999992,78.198318000000029],[-75.776397999999972,78.210541000000092],[-75.902495999999928,78.224152000000061],[-75.985549999999932,78.229979999999955],[-76.157227000000034,78.240540000000124],[-76.188888999999961,78.241089000000045],[-76.225829999999974,78.239975000000072],[-76.291945999999996,78.234421000000054],[-76.324447999999961,78.23275799999999],[-76.361389000000031,78.231658999999979],[-76.393065999999976,78.232208000000128],[-76.474715999999944,78.239425999999924],[-76.520278999999903,78.24552900000009],[-76.548049999999876,78.248322000000087],[-76.574172999999917,78.249709999999993],[-76.608336999999949,78.249419999999986],[-76.630554000000018,78.247757000000036],[-76.831680000000006,78.230820000000051],[-76.855269999999962,78.227478000000076],[-76.888061999999991,78.21804800000001],[-76.898620999999935,78.212494000000049],[-76.912216000000001,78.201096000000007],[-76.90834000000001,78.195525999999916],[-76.883330999999941,78.191925000000083],[-76.688599000000011,78.168869000000029],[-76.664444000000003,78.166092000000106],[-76.641678000000013,78.164429000000041],[-76.537780999999939,78.158324999999991],[-76.021392999999989,78.138046000000031],[-75.763900999999976,78.131653000000085],[-75.735549999999989,78.1308140000001],[-75.621933000000013,78.1244200000001],[-75.59722899999997,78.12081900000004],[-75.581389999999942,78.115814],[-75.575561999999934,78.107758000000103],[-75.575287000000003,78.101379000000065],[-75.588897999999972,78.089432000000102],[-75.599166999999909,78.083328000000051],[-75.692763999999954,78.039978000000076],[-75.707503999999915,78.034988000000055],[-75.723052999999993,78.030823000000055],[-75.761123999999995,78.022491000000059],[-75.809433000000013,78.008331000000112],[-75.838608000000022,77.998322000000087],[-75.922775000000001,77.956650000000081],[-75.965011999999888,77.973037999999917],[-75.984160999999858,77.977478000000133],[-76.157227000000034,78.012497000000053],[-76.214721999999995,78.01527399999992],[-76.246108999999933,78.015823000000069],[-76.276672000000019,78.012772000000041],[-76.303054999999972,78.009430000000123],[-76.444716999999912,77.988586000000112],[-76.466949,77.984710999999947],[-76.481383999999935,77.979706000000078],[-76.491942999999992,77.968597000000045],[-76.499725000000012,77.958327999999995],[-76.526108000000022,77.949142000000052],[-76.548339999999996,77.944977000000051],[-76.595839999999953,77.939697000000137],[-76.669998000000021,77.936371000000122],[-76.694442999999865,77.937195000000088],[-76.730559999999912,77.936096000000077],[-76.757232999999985,77.93331900000004],[-76.780288999999925,77.929977000000065],[-76.802490000000034,77.920258000000103],[-76.805557000000022,77.917205999999965],[-76.806945999999925,77.91304000000008],[-76.825287000000003,77.908325000000048],[-76.86221299999994,77.90277100000003],[-76.93110699999994,77.901382000000069],[-76.959731999999974,77.902481000000023],[-76.986114999999927,77.904708999999968],[-77.036391999999921,77.909714000000008],[-77.077788999999939,77.915817000000004],[-77.089171999999962,77.919708000000071],[-77.095276000000013,77.927199999999971],[-77.104172000000005,77.934417999999994],[-77.120269999999891,77.939148000000046],[-77.160003999999901,77.946091000000024],[-77.210830999999985,77.949142000000052],[-77.244445999999982,77.948593000000074],[-77.272232000000031,77.946365000000128],[-77.298339999999996,77.942749000000106],[-77.336120999999991,77.94081099999994],[-77.838897999999972,77.942749000000106],[-77.997498000000007,77.957214000000022],[-78.03694200000001,77.966384999999946],[-78.140838999999914,77.985260000000096],[-78.162216000000001,77.988312000000008],[-78.237502999999947,77.995818999999983],[-78.260833999999932,77.995254999999986],[-78.411391999999921,77.917755000000113],[-78.420837000000006,77.912491000000102],[-78.426391999999964,77.90637200000009],[-78.419723999999974,77.898880000000133],[-78.410552999999936,77.892211999999972],[-78.330840999999907,77.868591000000094],[-78.317107999999962,77.865814],[-78.282500999999968,77.862762000000089],[-78.260283999999899,77.861374000000012],[-78.173889000000031,77.859984999999995],[-78.139450000000011,77.857208000000128],[-77.97193900000002,77.807204999999954],[-77.958617999999888,77.802200000000084],[-77.947768999999994,77.796371000000079],[-77.940826000000015,77.765549000000021],[-77.940551999999968,77.759995000000004],[-77.981109999999887,77.701385000000073],[-77.920272999999952,77.669983000000116],[-77.882767000000001,77.661652000000004],[-77.862777999999992,77.656372000000147],[-77.742766999999958,77.622208000000114],[-77.724716000000001,77.613312000000008],[-77.718612999999948,77.605820000000051],[-77.723052999999936,77.599152000000061],[-77.730835000000013,77.597214000000122],[-77.87222300000002,77.568329000000119],[-77.952224999999999,77.555817000000104],[-77.958343999999954,77.529709000000139],[-77.944442999999978,77.511383000000137],[-77.946105999999986,77.504714999999976],[-77.948607999999979,77.501938000000109],[-77.981673999999998,77.486374000000012],[-77.99499499999996,77.481094000000098],[-78.256667999999934,77.381926999999962],[-78.303878999999995,77.373306000000071],[-78.690552000000025,77.315535999999952],[-78.741104000000007,77.309418000000051],[-78.777221999999995,77.307205000000067],[-78.806655999999975,77.307205000000067],[-78.834166999999923,77.30831900000004],[-78.839721999999995,77.310256999999979],[-78.833069000000023,77.314987000000031],[-78.786117999999988,77.335815000000082],[-78.733886999999982,77.362762000000032],[-78.726944000000003,77.367477000000065],[-78.725280999999995,77.371094000000028],[-78.727782999999988,77.375259000000028],[-78.764449999999954,77.3808140000001],[-78.784438999999907,77.3808140000001],[-78.816665999999998,77.378036000000122],[-78.841110000000015,77.374420000000043],[-78.861663999999962,77.370255000000043],[-78.89805599999994,77.360809000000074],[-78.920273000000009,77.350815000000068],[-78.939986999999917,77.338882000000012],[-78.948043999999982,77.332489000000066],[-78.955565999999919,77.328322999999955],[-78.968338000000017,77.323317999999915],[-79.00418099999996,77.313873000000058],[-79.083327999999995,77.299987999999985],[-79.139724999999999,77.293594000000098],[-79.171386999999868,77.290817000000004],[-79.207229999999981,77.288315000000125],[-79.270554000000004,77.286926000000108],[-79.321670999999924,77.288589000000059],[-79.373321999999973,77.29304499999995],[-79.493332000000009,77.304428000000144],[-79.631377999999984,77.316666000000055],[-79.653885000000002,77.318603999999993],[-79.712218999999948,77.318328999999949],[-79.83666999999997,77.306931000000134],[-79.860824999999977,77.303314],[-79.881942999999978,77.299713000000111],[-79.896118000000001,77.295822000000044],[-79.92332499999992,77.285263000000043],[-79.960555999999883,77.276932000000102],[-79.988327000000027,77.273604999999975],[-80.01916499999993,77.272217000000069],[-80.042495999999971,77.272766000000047],[-80.456116000000009,77.296097000000088],[-80.753341999999918,77.330551000000128],[-80.775833000000034,77.334427000000005],[-80.879714999999919,77.353043000000014],[-81.005568999999923,77.377197000000137],[-81.015288999999996,77.381363000000022],[-81.019454999999994,77.392761000000064],[-81.027221999999995,77.398041000000092],[-81.035277999999948,77.40109300000006],[-81.095276000000013,77.411925999999994],[-81.121108999999933,77.413605000000018],[-81.150833000000034,77.413605000000018],[-81.207778999999903,77.415817000000061],[-81.254729999999995,77.420532000000094],[-81.277495999999928,77.42442299999999],[-81.294448999999929,77.429153000000042],[-81.310546999999985,77.434982000000048],[-81.316665999999998,77.438873000000115],[-81.321121000000005,77.450272000000041],[-81.325287000000003,77.454987000000074],[-81.337509000000011,77.462769000000037],[-81.351669000000015,77.469711000000075],[-81.370543999999938,77.475540000000137],[-81.388901000000033,77.480819999999994],[-81.442215000000033,77.491364000000033],[-81.533889999999928,77.506942999999978],[-81.573623999999938,77.512771999999984],[-81.587783999999942,77.517487000000017],[-81.589721999999995,77.520828000000051],[-81.608337000000006,77.553588999999988],[-81.610549999999989,77.576096000000064],[-81.820281999999963,77.621918000000107],[-81.839721999999938,77.625809000000004],[-81.845001000000025,77.628860000000032],[-81.848617999999988,77.639434999999935],[-81.847778000000005,77.643326000000002],[-81.836670000000026,77.65498400000007],[-81.847503999999901,77.665817000000004],[-81.860000999999954,77.671371000000022],[-81.876662999999951,77.677475000000072],[-81.89527899999996,77.682480000000112],[-81.913894999999911,77.685532000000023],[-81.928329000000019,77.685806000000127],[-81.930283000000031,77.684981999999991],[-81.935546999999929,77.678040000000067],[-81.949158000000011,77.655258000000003],[-81.949431999999945,77.644989000000123],[-81.911391999999921,77.609421000000111],[-81.895844000000011,77.604156000000046],[-81.857223999999974,77.598877000000073],[-81.810271999999941,77.595260999999994],[-81.798049999999989,77.59165999999999],[-81.787506000000008,77.587494000000049],[-81.678054999999972,77.538315000000068],[-81.670546999999942,77.531662000000097],[-81.667220999999984,77.52526899999998],[-81.666945999999996,77.502213000000097],[-81.670836999999949,77.496094000000085],[-81.690276999999924,77.485260000000039],[-81.710555999999997,77.474990999999989],[-81.71945199999999,77.469986000000119],[-81.748046999999929,77.448029000000076],[-81.743606999999997,77.441086000000098],[-81.739440999999999,77.436371000000065],[-81.728881999999999,77.429977000000008],[-81.700561999999877,77.422760000000096],[-81.523620999999991,77.378036000000122],[-81.484726000000023,77.372208000000001],[-81.432220000000029,77.368042000000059],[-81.336670000000026,77.368591000000038],[-81.25140399999998,77.36914100000007],[-81.203888000000006,77.370529000000147],[-81.189986999999917,77.368042000000059],[-81.178054999999972,77.360259999999926],[-81.172775000000001,77.354705999999965],[-81.167769999999962,77.342758000000117],[-81.165833000000021,77.337204000000099],[-81.165833000000021,77.332764000000054],[-81.169448999999986,77.32249500000006],[-81.283889999999985,77.315262000000018],[-81.425003000000004,77.306366000000082],[-81.538329999999974,77.302765000000079],[-81.874999999999943,77.292480000000126],[-81.953887999999949,77.302200000000028],[-82.091948999999943,77.316376000000048],[-82.151397999999972,77.303864000000033],[-82.166107000000011,77.292480000000126],[-82.081680000000006,77.272766000000047],[-82.043335000000013,77.265548999999908],[-81.978881999999999,77.258331000000112],[-81.90695199999999,77.198318000000029],[-81.906577999999968,77.1933140000001],[-81.902221999999995,77.187195000000031],[-81.876099000000011,77.174698000000092],[-81.868057000000022,77.171646000000123],[-81.834166999999866,77.162491000000102],[-81.796660999999972,77.157486000000063],[-81.78694200000001,77.157486000000063],[-81.715835999999967,77.176926000000037],[-81.696654999999907,77.181366000000025],[-81.634444999999971,77.193863000000022],[-81.607497999999964,77.197479000000101],[-81.395003999999972,77.231659000000036],[-81.149170000000026,77.274703999999986],[-80.960281000000009,77.271378000000141],[-80.592772999999966,77.242477000000008],[-80.526397999999915,77.234985000000052],[-80.280288999999868,77.213608000000022],[-80.258621000000005,77.212204000000042],[-80.205840999999964,77.209427000000119],[-80.154998999999975,77.208037999999931],[-80.135833999999988,77.205826000000059],[-80.116104000000007,77.20138500000013],[-80.114715999999987,77.195525999999973],[-80.136947999999961,77.186096000000077],[-80.152785999999992,77.181656000000032],[-80.255004999999983,77.153320000000122],[-80.401671999999962,77.086655000000007],[-80.40972899999997,77.081100000000106],[-80.40972899999997,77.076660000000118],[-80.394454999999937,77.072769000000051],[-80.373046999999929,77.071380999999917],[-80.34584000000001,77.074996999999996],[-80.328063999999927,77.078323000000012],[-80.206954999999937,77.108597000000088],[-80.159438999999963,77.122756999999979],[-80.135009999999966,77.139435000000049],[-80.118606999999997,77.150818000000072],[-80.094726999999978,77.161102000000085],[-80.072509999999909,77.17053199999998],[-80.013335999999924,77.190536000000066],[-79.93582200000003,77.206650000000025],[-79.785278000000005,77.231368999999972],[-79.725829999999917,77.239975000000072],[-79.660277999999948,77.24443100000002],[-79.633057000000008,77.243317000000047],[-79.445540999999992,77.234421000000111],[-79.424163999999905,77.233047000000113],[-79.255004999999983,77.218596999999988],[-79.216949,77.209717000000126],[-79.041945999999882,77.161102000000085],[-79.033066000000019,77.156647000000078],[-79.02806099999998,77.150543000000027],[-79.003890999999953,77.103592000000049],[-79.005004999999926,77.09693900000002],[-79.013335999999924,77.09137000000004],[-79.029723999999987,77.086929000000112],[-79.132492000000013,77.053589000000045],[-79.328888000000006,76.978591999999935],[-79.365554999999915,76.963318000000072],[-79.376663000000008,76.957489000000066],[-79.391387999999949,76.947204999999997],[-79.395003999999915,76.940536000000122],[-79.393065999999976,76.934143000000006],[-79.386948000000018,76.927475000000015],[-79.37222300000002,76.923309000000131],[-79.34584000000001,76.91804500000012],[-79.317504999999926,76.917755000000113],[-79.244445999999925,76.924987999999928],[-79.193053999999904,76.929152999999928],[-79.005843999999911,76.936096000000134],[-78.980835000000013,76.936371000000122],[-78.954178000000013,76.935256999999979],[-78.886123999999995,76.926926000000094],[-78.870834000000002,76.922211000000061],[-78.866394000000014,76.918869000000086],[-78.910004000000015,76.886658000000011],[-78.915282999999988,76.839706000000092],[-78.748336999999935,76.822494999999947],[-78.721938999999963,76.821380999999974],[-78.712218999999948,76.823318000000029],[-78.708053999999947,76.824997000000053],[-78.56361400000003,76.906647000000135],[-78.566101000000003,76.913605000000132],[-78.567504999999983,76.927200000000028],[-78.562774999999874,76.933043999999995],[-78.553878999999938,76.938582999999994],[-78.547775000000001,76.941360000000088],[-78.384444999999914,76.99971000000005],[-78.344161999999926,77.007767000000001],[-78.32028200000002,77.011658000000068],[-78.292770000000019,77.014709000000096],[-78.196944999999971,77.019440000000031],[-78.140838999999914,77.01998900000001],[-78.087219000000005,77.017761000000007],[-78.07028200000002,77.014434999999992],[-77.896666999999979,76.955551000000128],[-77.886947999999961,76.947754000000145],[-77.881103999999993,76.940262000000018],[-77.779448999999943,76.79136699999998],[-77.789443999999946,76.78166200000004],[-77.813323999999966,76.692748999999992],[-77.813613999999973,76.687759000000085],[-77.813048999999864,76.68193100000002],[-77.804992999999968,76.675261999999918],[-77.769454999999937,76.658325000000104],[-77.78443900000002,76.650269000000037],[-77.810271999999941,76.640823000000069],[-77.841110000000015,76.633331000000112],[-77.861663999999905,76.629700000000071],[-77.918335000000013,76.62831100000011],[-77.947219999999959,76.629425000000083],[-77.985000999999954,76.632476999999994],[-78.013625999999988,76.630814000000044],[-78.027495999999985,76.626922999999977],[-78.089721999999995,76.609420999999941],[-78.097777999999948,76.606094000000041],[-78.178328999999962,76.566085999999984],[-78.186110999999926,76.559708000000001],[-78.206107999999972,76.53914600000013],[-78.256667999999934,76.506653000000142],[-78.364440999999999,76.462493999999992],[-78.377486999999917,76.458038000000101],[-78.435103999999967,76.453171000000111],[-78.443328999999892,76.452209000000096],[-78.473052999999993,76.451660000000118],[-78.519164999999987,76.456940000000031],[-78.552490000000034,76.464157000000114],[-78.607772999999952,76.486649000000057],[-78.61471599999993,76.489975000000072],[-78.619445999999982,76.496094000000085],[-78.616942999999992,76.498871000000008],[-78.615004999999883,76.5],[-78.611388999999917,76.49941999999993],[-78.597228999999913,76.505264000000125],[-78.591949,76.5086060000001],[-78.588332999999977,76.513046000000088],[-78.613327000000027,76.547759999999982],[-78.627212999999927,76.563873000000001],[-78.75111400000003,76.572220000000016],[-78.773330999999985,76.572768999999937],[-78.790558000000033,76.571655000000135],[-78.868331999999953,76.521103000000096],[-78.886947999999961,76.497208000000057],[-78.900833000000034,76.478867000000093],[-78.937774999999988,76.449997000000053],[-78.946655000000021,76.444976999999994],[-78.96945199999999,76.43414300000012],[-78.994155999999975,76.424423000000047],[-79.013061999999991,76.420258000000047],[-79.06138599999997,76.41276600000009],[-79.090285999999992,76.411377000000073],[-79.139174999999966,76.411652000000117],[-79.170837000000006,76.409988000000112],[-79.18971299999987,76.405823000000112],[-79.198043999999868,76.400269000000094],[-79.261123999999995,76.352202999999975],[-79.265563999999927,76.346100000000035],[-79.266402999999968,76.339432000000102],[-79.262786999999946,76.331940000000145],[-79.254181000000017,76.320267000000115],[-79.25306699999993,76.314697000000024],[-79.261123999999995,76.309143000000063],[-79.272780999999952,76.304152999999985],[-79.312774999999988,76.297484999999995],[-79.338608000000022,76.296371000000022],[-79.365828999999962,76.296646000000067],[-79.414168999999902,76.301086000000055],[-79.445540999999992,76.306641000000127],[-79.500838999999928,76.314148000000102],[-79.525283999999886,76.31442300000009],[-79.573623999999995,76.311645999999996],[-79.596664000000033,76.308594000000085],[-79.805556999999965,76.278320000000065],[-79.924438000000009,76.25360100000006],[-80.061385999999914,76.226928999999984],[-80.087218999999948,76.223602000000085],[-80.107223999999974,76.2227630000001],[-80.121658000000025,76.224426000000051],[-80.136123999999995,76.228317000000118],[-80.156386999999881,76.23692299999999],[-80.178329000000019,76.239700000000084],[-80.203613000000018,76.240539999999953],[-80.230285999999978,76.239975000000129],[-80.261123999999995,76.238312000000008],[-80.2933349999999,76.235260000000096],[-80.338332999999977,76.228317000000118],[-80.366942999999992,76.218048000000067],[-80.375548999999921,76.213043000000027],[-80.383056999999951,76.20748900000001],[-80.396666999999923,76.202208999999982],[-80.412216000000001,76.198029000000133],[-80.426940999999886,76.195525999999973],[-80.506957999999941,76.196365000000128],[-80.606383999999991,76.191650000000095],[-80.627486999999917,76.187195000000088],[-80.637787000000003,76.17053199999998],[-80.639724999999885,76.167480000000069],[-80.654175000000009,76.162491000000102],[-80.672501000000011,76.158325000000048],[-80.703338999999971,76.156647000000078],[-80.949996999999996,76.144989000000066],[-81.053329000000019,76.128036000000009],[-81.075835999999924,76.129149999999981],[-81.085830999999928,76.134155000000021],[-81.090285999999935,76.137496999999939],[-81.095551,76.212204000000042],[-81.047501000000011,76.249419999999986],[-81.041106999999954,76.25360100000006],[-81.026397999999915,76.258331000000112],[-80.903885000000002,76.312194999999974],[-80.783614999999998,76.374985000000095],[-80.769454999999994,76.384720000000016],[-80.761123999999995,76.394150000000081],[-80.760009999999909,76.40415999999999],[-80.763625999999874,76.411102000000085],[-80.771666999999923,76.419144000000017],[-80.78472899999997,76.423874000000069],[-80.991668999999945,76.483047000000056],[-81.188889000000017,76.518875000000094],[-81.275008999999955,76.533325000000048],[-81.304169000000002,76.510544000000039],[-81.337218999999891,76.494980000000112],[-81.351944000000003,76.490265000000079],[-81.388901000000033,76.481368999999972],[-81.411117999999988,76.477478000000076],[-81.460830999999928,76.471374999999966],[-81.492492999999911,76.469437000000028],[-81.521941999999967,76.468596999999988],[-81.636948000000018,76.468872000000147],[-81.71665999999999,76.470260999999994],[-81.788605000000018,76.474700999999982],[-81.879990000000021,76.483871000000022],[-82.039718999999934,76.509430000000066],[-82.05860899999999,76.513610999999969],[-82.075835999999981,76.518600000000106],[-82.083617999999944,76.523879999999963],[-82.03195199999999,76.553588999999988],[-81.985000999999954,76.578597999999943],[-81.981948999999929,76.584717000000012],[-81.993331999999953,76.590270999999973],[-82.045273000000009,76.603592000000106],[-82.056655999999862,76.609146000000123],[-82.049438000000009,76.612488000000042],[-81.953338999999914,76.631927000000132],[-81.873610999999869,76.645828000000108],[-81.851394999999968,76.649719000000005],[-81.814163000000008,76.658599999999922],[-81.790282999999931,76.667755],[-81.782227000000034,76.672760000000039],[-81.776947000000007,76.677475000000072],[-81.778885000000002,76.681090999999924],[-81.785827999999924,76.685532000000023],[-81.799163999999962,76.685805999999957],[-81.819457999999997,76.682754999999986],[-81.838057999999933,76.678314000000057],[-81.852782999999988,76.673599000000024],[-81.861938000000009,76.669144000000017],[-81.893341000000021,76.660812000000021],[-82.081115999999952,76.631087999999977],[-82.115554999999915,76.628860000000032],[-82.145553999999947,76.628036000000066],[-82.199996999999996,76.628586000000098],[-82.273330999999928,76.633331000000112],[-82.292495999999971,76.635544000000095],[-82.326950000000011,76.641373000000101],[-82.346114999999998,76.645538000000101],[-82.377486999999917,76.657485999999949],[-82.442490000000021,76.684981999999991],[-82.470276000000013,76.698868000000004],[-82.476668999999958,76.704712000000029],[-82.487212999999997,76.717758000000117],[-82.580291999999986,76.776382000000012],[-82.596114999999998,76.782486000000006],[-82.698607999999979,76.812485000000038],[-82.725005999999951,76.819153000000028],[-82.749725000000012,76.818604000000107],[-82.767226999999991,76.813309000000004],[-82.769729999999925,76.811096000000077],[-82.76556399999987,76.808318999999983],[-82.74610899999999,76.804153000000042],[-82.728333000000021,76.799149000000114],[-82.698607999999979,76.788589000000002],[-82.640563999999983,76.766388000000006],[-82.556106999999997,76.723038000000031],[-82.558333999999945,76.718322999999998],[-82.566665999999941,76.707489000000123],[-82.569457999999941,76.701385000000073],[-82.562499999999943,76.688873000000058],[-82.545546999999942,76.674149000000057],[-82.533324999999991,76.666382000000056],[-82.460555999999997,76.636108000000036],[-82.435271999999998,76.628036000000066],[-82.415008999999884,76.62303199999991],[-82.308884000000035,76.609420999999941],[-82.208054000000004,76.593048000000067],[-82.113891999999908,76.572220000000016],[-82.102218999999991,76.568878000000041],[-82.081115999999952,76.561096000000134],[-82.093886999999995,76.557205000000067],[-82.175002999999947,76.546936000000017],[-82.196944999999971,76.542755000000113],[-82.211394999999925,76.53804000000008],[-82.22222899999997,76.532761000000107],[-82.225280999999995,76.526657000000057],[-82.224715999999887,76.520264000000111],[-82.222504000000015,76.514435000000105],[-82.216399999999965,76.5086060000001],[-82.189437999999882,76.486649000000057],[-82.158050999999944,76.466095000000053],[-82.147232000000031,76.461105000000032],[-82.135558999999944,76.453323000000069],[-82.131377999999927,76.448593000000017],[-82.127212999999927,76.441650000000038],[-82.132216999999912,76.436919999999986],[-82.162505999999951,76.421921000000111],[-82.17971799999998,76.416931000000091],[-82.209441999999967,76.409988000000112],[-82.260284000000013,76.398605000000089],[-82.293335000000013,76.395827999999995],[-82.348342999999943,76.395537999999988],[-82.483063000000016,76.396378000000027],[-82.704453000000001,76.386932000000058],[-82.833327999999881,76.397766000000104],[-82.990554999999915,76.426650999999993],[-83.003615999999965,76.429153000000042],[-83.0625,76.450272000000041],[-83.099730999999963,76.463882000000126],[-83.102492999999981,76.469437000000028],[-83.096953999999982,76.475814999999955],[-83.08944699999995,76.480819999999994],[-83.065001999999993,76.491089000000045],[-83.061935000000005,76.497208000000057],[-83.075012000000015,76.532761000000107],[-83.084441999999967,76.546370999999965],[-83.110001000000011,76.579987000000131],[-83.116652999999985,76.586105000000089],[-83.198607999999979,76.619431000000077],[-83.338897999999858,76.66415400000011],[-83.384170999999981,76.730819999999994],[-83.365279999999927,76.740540000000067],[-83.358611999999937,76.746094000000028],[-83.355834999999956,76.752213000000097],[-83.362212999999997,76.756103999999937],[-83.379989999999964,76.758881000000031],[-83.400833000000034,76.759995000000004],[-83.410003999999901,76.757767000000058],[-83.497498000000007,76.723876999999959],[-83.518340999999964,76.713318000000129],[-83.523620999999935,76.706649999999968],[-83.523330999999928,76.700821000000133],[-83.520553999999947,76.695251000000042],[-83.515014999999948,76.689972000000068],[-83.499161000000015,76.676651000000106],[-83.352218999999991,76.612488000000042],[-83.331116000000009,76.603317000000118],[-83.316101000000003,76.598037999999974],[-83.298614999999984,76.593048000000067],[-83.278060999999923,76.588318000000072],[-83.254181000000017,76.579437000000098],[-83.246383999999978,76.572768999999937],[-83.207503999999915,76.505553999999961],[-83.184432999999899,76.424988000000042],[-83.188323999999966,76.419434000000081],[-83.202224999999942,76.414428999999984],[-83.223617999999874,76.410537999999917],[-83.256667999999991,76.407486000000006],[-83.285827999999981,76.406372000000033],[-83.439986999999917,76.411102000000085],[-83.619995000000017,76.423599000000081],[-83.691100999999946,76.428863999999919],[-83.710555999999997,76.433044000000109],[-83.735000999999954,76.444138000000009],[-83.734160999999915,76.449141999999995],[-83.735275000000001,76.455826000000059],[-83.740554999999972,76.462769000000037],[-83.756667999999991,76.468596999999988],[-83.893616000000009,76.501663000000065],[-83.985001000000011,76.520538000000045],[-84.018616000000009,76.529433999999981],[-84.033614999999941,76.534714000000065],[-84.046660999999972,76.542205999999965],[-84.058334000000002,76.553040000000067],[-84.058884000000035,76.558868000000132],[-84.061661000000015,76.585266000000104],[-84.070846999999901,76.616653000000042],[-84.086670000000026,76.62414600000011],[-84.101944000000003,76.629425000000083],[-84.118880999999988,76.633880999999974],[-84.138610999999912,76.637772000000041],[-84.261123999999995,76.65554800000001],[-84.284438999999963,76.657760999999994],[-84.31082200000003,76.658325000000104],[-84.319732999999871,76.656096999999988],[-84.324722000000008,76.653320000000065],[-84.330841000000021,76.647491000000059],[-84.313323999999909,76.641098000000113],[-84.256667999999991,76.628586000000098],[-84.220551,76.622207999999944],[-84.202498999999932,76.617203000000075],[-84.193053999999961,76.609985000000108],[-84.194442999999978,76.606934000000081],[-84.216948999999886,76.571655000000135],[-84.249725000000012,76.536926000000108],[-84.248336999999992,76.530548000000124],[-84.24499499999996,76.524993999999936],[-84.221114999999941,76.510817999999972],[-84.208617999999888,76.505264000000125],[-84.192490000000021,76.49941999999993],[-84.179717999999923,76.49192800000003],[-84.180832000000009,76.484984999999995],[-84.195540999999935,76.45637499999998],[-84.205565999999976,76.451096000000007],[-84.215835999999967,76.448029000000076],[-84.236938000000009,76.443587999999977],[-84.489166000000012,76.429153000000042],[-84.518615999999952,76.427765000000136],[-84.570846999999958,76.428863999999919],[-84.619720000000029,76.431656000000032],[-84.636947999999961,76.434418000000107],[-84.652785999999992,76.438034000000016],[-84.783889999999985,76.469986000000119],[-84.792770000000019,76.474990999999989],[-84.785278000000005,76.485260000000039],[-84.783889999999985,76.489975000000072],[-84.795273000000009,76.503876000000048],[-84.848891999999921,76.53637700000013],[-84.860001000000011,76.542755000000113],[-84.950561999999934,76.577773999999977],[-84.970550999999944,76.581940000000088],[-84.991378999999938,76.582764000000054],[-85.016402999999912,76.578872999999987],[-85.028335999999967,76.57499700000011],[-85.034163999999976,76.569153000000085],[-85.051391999999964,76.514160000000061],[-85.022507000000019,76.456099999999992],[-84.970276000000013,76.426086000000112],[-84.960281000000009,76.42053199999998],[-84.944442999999978,76.416931000000091],[-84.904175000000009,76.411926000000051],[-84.728058000000033,76.390273999999977],[-84.43638599999997,76.338593000000117],[-84.397506999999962,76.330551000000128],[-84.381377999999927,76.324706999999933],[-84.376098999999954,76.317764000000125],[-84.381942999999978,76.31191999999993],[-84.393889999999999,76.308029000000033],[-84.413054999999986,76.304703000000018],[-84.429169000000002,76.303040000000067],[-84.533614999999941,76.30581699999999],[-84.716659999999933,76.306930999999963],[-84.776397999999972,76.303314],[-84.898055999999997,76.288589000000059],[-84.928328999999962,76.286377000000016],[-85.174438000000009,76.280272999999966],[-85.232223999999917,76.295257999999933],[-85.36221299999994,76.303314],[-85.505004999999983,76.321930000000066],[-85.523055999999883,76.326660000000061],[-85.544448999999986,76.329987000000017],[-85.698333999999988,76.34887700000013],[-85.952498999999932,76.368591000000038],[-85.978058000000033,76.370528999999976],[-86.004181000000017,76.37081900000004],[-86.110274999999945,76.368317000000104],[-86.134734999999978,76.369431000000077],[-86.281677000000002,76.376923000000033],[-86.330565999999976,76.3808140000001],[-86.37222300000002,76.38638300000008],[-86.412216000000001,76.40776100000005],[-86.415008999999884,76.41276600000009],[-86.421386999999925,76.456940000000031],[-86.418610000000001,76.469147000000021],[-86.409728999999913,76.474700999999982],[-86.398055999999997,76.478867000000093],[-86.378875999999991,76.483871000000022],[-86.36082499999992,76.487762000000089],[-86.307769999999948,76.49552900000009],[-86.277785999999935,76.5],[-86.256119000000012,76.503876000000048],[-86.22222899999997,76.513321000000133],[-86.213057999999933,76.518600000000106],[-86.20777899999996,76.524429000000112],[-86.211944999999957,76.535262999999986],[-86.226104999999961,76.542755000000113],[-86.532776000000013,76.623306000000014],[-86.594161999999983,76.634994999999947],[-86.63034099999993,76.635132000000112],[-86.625823999999966,76.629425000000083],[-86.601104999999961,76.619979999999998],[-86.512512000000015,76.586929000000055],[-86.36221299999994,76.541655999999932],[-86.342223999999987,76.512206999999933],[-86.508056999999894,76.487762000000089],[-86.64916999999997,76.458878000000141],[-86.664718999999991,76.419708000000014],[-86.711120999999991,76.348037999999974],[-86.71665999999999,76.346100000000035],[-86.770554000000004,76.350815000000068],[-87.083327999999995,76.379424999999912],[-87.130829000000006,76.384155000000135],[-87.148346000000004,76.388321000000076],[-87.154998999999975,76.39498900000001],[-87.154175000000009,76.40109300000006],[-87.225280999999995,76.448029000000076],[-87.426665999999898,76.468596999999988],[-87.462783999999942,76.586929000000055],[-87.468886999999995,76.59165999999999],[-87.520279000000016,76.612488000000042],[-87.53694200000001,76.617477000000008],[-87.563613999999973,76.616379000000109],[-87.580001999999979,76.611374000000069],[-87.583618000000001,76.604980000000012],[-87.598617999999988,76.540817000000004],[-87.595550999999944,76.534149000000014],[-87.553604000000007,76.451096000000007],[-87.545273000000009,76.443587999999977],[-87.53694200000001,76.439147999999989],[-87.516953000000001,76.432479999999998],[-87.500290000000007,76.428863999999919],[-87.455276000000026,76.423874000000069],[-87.429992999999911,76.417755000000056],[-87.402495999999985,76.352768000000026],[-87.416397000000018,76.348037999999974],[-87.591384999999889,76.341094999999996],[-87.648894999999868,76.338043000000084],[-87.719726999999978,76.343048000000124],[-87.742767000000015,76.34637500000008],[-87.760559000000001,76.352202999999975],[-87.788604999999961,76.366378999999995],[-87.817229999999995,76.390549000000021],[-87.864166000000012,76.38998400000014],[-87.900833000000034,76.363037000000077],[-87.916945999999996,76.359711000000004],[-87.948333999999988,76.357758000000103],[-87.997771999999998,76.358322000000044],[-88.351104999999905,76.384995000000004],[-88.389998999999875,76.389708999999982],[-88.42971799999998,76.398041000000148],[-88.434433000000013,76.402205999999978],[-88.391953000000001,76.454163000000108],[-88.371932999999956,76.476089000000059],[-88.355835000000013,76.481093999999928],[-88.348617999999988,76.487198000000149],[-88.349441999999954,76.514435000000105],[-88.356658999999979,76.521103000000096],[-88.442764000000011,76.59165999999999],[-88.515288999999939,76.636108000000036],[-88.509170999999981,76.697478999999987],[-88.488601999999958,76.765274000000034],[-88.479720999999927,76.776932000000045],[-88.476669000000015,76.783324999999991],[-88.474715999999887,76.788879000000009],[-88.474715999999887,76.794983000000002],[-88.477782999999988,76.807755000000043],[-88.485275000000001,76.814422999999977],[-88.494719999999973,76.81721500000009],[-88.518889999999999,76.816086000000098],[-88.541945999999939,76.812758999999971],[-88.554442999999935,76.807479999999998],[-88.557220000000029,76.805817000000104],[-88.701950000000011,76.707489000000123],[-88.683318999999983,76.701935000000105],[-88.649733999999967,76.684143000000063],[-88.591949,76.642761000000007],[-88.584441999999967,76.635818000000029],[-88.495543999999938,76.552199999999971],[-88.489440999999999,76.503326000000015],[-88.496383999999978,76.497208000000057],[-88.571670999999924,76.473602000000028],[-88.593558999999971,76.455933000000016],[-88.60321799999997,76.449265000000025],[-88.608214999999973,76.442261000000144],[-88.607727000000011,76.439095000000009],[-88.608611999999994,76.416092000000106],[-88.59973100000002,76.409988000000112],[-88.597503999999958,76.405823000000112],[-88.608046999999942,76.399994000000049],[-88.631942999999922,76.397217000000012],[-88.656386999999881,76.398330999999985],[-88.67721599999993,76.401932000000045],[-88.689986999999974,76.408324999999991],[-88.693603999999993,76.414703000000145],[-88.693329000000006,76.420821999999987],[-88.684998000000007,76.432479999999998],[-88.678054999999972,76.441650000000038],[-88.659508000000017,76.478706000000102],[-88.646506999999986,76.489212000000009],[-88.640288999999996,76.558594000000028],[-88.644164999999987,76.565262000000018],[-88.651672000000019,76.571930000000009],[-88.660277999999948,76.577773999999977],[-88.688888999999961,76.591369999999984],[-88.710006999999962,76.594986000000006],[-88.733611999999937,76.593872000000033],[-88.740828999999962,76.587769000000094],[-88.791381999999942,76.513321000000133],[-88.795273000000009,76.479431000000034],[-88.786666999999909,76.473602000000028],[-88.781386999999938,76.466385000000059],[-88.783324999999991,76.460815000000025],[-88.799438000000009,76.449997000000053],[-88.901671999999962,76.408324999999991],[-88.921111999999937,76.40525800000006],[-88.947220000000016,76.40525800000006],[-88.994155999999919,76.409149000000127],[-89.166396999999961,76.424423000000047],[-89.213332999999977,76.429703000000075],[-89.231673999999998,76.433593999999971],[-89.353333000000021,76.479979999999955],[-89.407227000000034,76.515823000000012],[-89.490279999999927,76.557480000000055],[-89.499435000000005,76.54664600000001],[-89.515015000000005,76.541655999999932],[-89.541381999999999,76.541655999999932],[-89.667220999999984,76.564423000000033],[-89.676665999999955,76.567215000000147],[-89.679442999999992,76.571655000000135],[-89.614166000000012,76.616089000000102],[-89.603607000000011,76.621918000000107],[-89.571945000000028,76.631653000000028],[-89.528335999999967,76.640823000000069],[-89.480559999999969,76.649428999999998],[-89.443329000000006,76.658325000000104],[-89.431380999999988,76.663605000000018],[-89.415558000000033,76.67442299999999],[-89.411666999999966,76.680266999999958],[-89.434432999999899,76.724426000000108],[-89.47222899999997,76.784714000000008],[-89.496947999999918,76.820267000000001],[-89.514449999999954,76.835815000000025],[-89.529175000000009,76.847214000000122],[-89.533324999999991,76.853592000000049],[-89.521392999999932,76.858871000000079],[-89.417770000000019,76.886658000000011],[-89.279449,76.906936999999971],[-89.238892000000021,76.916091999999992],[-89.14805599999994,76.925537000000077],[-88.986938000000009,76.954436999999928],[-88.976104999999961,76.959991000000116],[-88.898894999999982,76.985535000000141],[-88.769164999999987,76.998871000000065],[-88.740279999999927,77.00277699999998],[-88.719451999999933,77.007492000000013],[-88.702788999999939,77.012207000000046],[-88.50111400000003,77.071655000000078],[-88.473327999999981,77.096649000000014],[-88.544723999999917,77.098038000000031],[-88.545837000000006,77.100266000000147],[-88.426392000000021,77.12081900000004],[-88.307219999999973,77.128860000000088],[-88.278335999999911,77.129699999999957],[-88.172501000000011,77.128035999999952],[-88.154175000000009,77.116088999999988],[-87.967223999999931,77.127472000000012],[-87.690552000000025,77.135268999999994],[-87.670272999999952,77.133606000000043],[-87.656951999999933,77.130264000000125],[-87.642501999999979,77.124984999999924],[-87.626937999999996,77.117477000000122],[-87.619719999999973,77.110809000000131],[-87.568892999999889,77.099426000000108],[-87.455841000000021,77.101929000000098],[-87.349166999999966,77.106094000000098],[-87.337783999999886,77.110259999999982],[-87.353607000000011,77.114700000000028],[-87.37222300000002,77.117203000000018],[-87.451401000000033,77.122756999999979],[-87.460555999999997,77.125534000000073],[-87.456664999999987,77.131927000000019],[-87.452224999999999,77.136383000000137],[-87.432219999999973,77.149719000000061],[-87.416107000000011,77.156647000000078],[-87.404174999999896,77.160812000000078],[-87.356383999999991,77.17553700000002],[-87.33666999999997,77.179153000000099],[-87.312774999999988,77.180817000000104],[-87.069167999999991,77.182755000000043],[-87.044448999999929,77.180542000000059],[-86.959166999999979,77.161926000000051],[-86.951674999999966,77.158324999999991],[-86.946945000000028,77.154433999999924],[-86.951949999999897,77.149994000000106],[-86.951401000000033,77.144714000000022],[-86.942490000000021,77.141936999999928],[-86.875274999999931,77.132202000000063],[-86.829177999999956,77.127762000000018],[-86.804442999999992,77.127197000000024],[-86.791381999999999,77.130813999999987],[-86.739990000000034,77.174149000000114],[-86.773620999999935,77.185806000000071],[-86.960006999999962,77.195815999999979],[-87.15055799999999,77.199417000000039],[-87.148055999999997,77.198029000000133],[-87.146956999999929,77.195815999999979],[-87.161117999999931,77.194426999999962],[-87.182769999999948,77.196930000000123],[-87.196105999999929,77.199997000000053],[-87.21055599999994,77.205261000000064],[-87.174437999999896,77.229431000000034],[-87.166945999999939,77.233871000000079],[-87.141388000000006,77.238037000000134],[-87.007232999999985,77.255829000000006],[-86.976669000000015,77.257492000000127],[-86.948882999999967,77.255554000000018],[-86.928329000000019,77.255264000000011],[-86.910552999999936,77.260269000000051],[-86.919158999999979,77.266098000000056],[-86.947494999999947,77.271652000000074],[-86.984436000000017,77.274703999999986],[-87.012221999999952,77.274993999999992],[-87.078063999999927,77.273604999999975],[-87.106110000000001,77.272217000000069],[-87.136672999999973,77.272217000000069],[-87.183884000000035,77.273604999999975],[-87.197495000000004,77.27526899999998],[-87.229171999999949,77.285538000000031],[-87.245270000000005,77.298325000000034],[-87.24888599999997,77.303314],[-87.108611999999994,77.338318000000072],[-87.09584000000001,77.34027100000003],[-87.068618999999956,77.342209000000139],[-87.037780999999995,77.342209000000139],[-86.962783999999942,77.339157000000057],[-86.934722999999963,77.338882000000012],[-86.900283999999999,77.342209000000139],[-86.845839999999953,77.349152000000117],[-86.829726999999991,77.353043000000014],[-86.838608000000022,77.357483000000059],[-86.851944000000003,77.360535000000141],[-86.963332999999977,77.366378999999995],[-87.064162999999951,77.366928000000087],[-87.091109999999958,77.366378999999995],[-87.241378999999938,77.356094000000041],[-87.263061999999877,77.351654000000053],[-87.280838000000017,77.34693900000002],[-87.294158999999979,77.34165999999999],[-87.326110999999969,77.333878000000084],[-87.358886999999982,77.331375000000094],[-87.391112999999962,77.330551000000128],[-87.416397000000018,77.330826000000116],[-87.695830999999998,77.35554500000012],[-87.711945000000014,77.359985000000108],[-87.715835999999911,77.363312000000064],[-87.775283999999999,77.415543000000127],[-87.780288999999982,77.421097000000145],[-87.78472899999997,77.429703000000075],[-87.775009000000011,77.441360000000032],[-87.748336999999992,77.451660000000118],[-87.730834999999956,77.45637499999998],[-87.669539999999984,77.469238000000018],[-87.65194699999995,77.474990999999989],[-87.642501999999979,77.480270000000132],[-87.646117999999944,77.486923000000104],[-87.694442999999978,77.537201000000096],[-87.711120999999878,77.541656000000103],[-87.868880999999988,77.578598000000113],[-88.063048999999978,77.618866000000025],[-88.162216000000001,77.626923000000147],[-88.180556999999965,77.631927000000132],[-88.200835999999924,77.642761000000007],[-88.214721999999995,77.650542999999971],[-88.223617999999931,77.662490999999989],[-88.223052999999993,77.667206000000022],[-88.221114999999884,77.672760000000039],[-88.162780999999995,77.758330999999998],[-88.06806899999998,77.820267000000001],[-87.835830999999928,77.840271000000087],[-87.640563999999983,77.862487999999985],[-87.294723999999917,77.898041000000035],[-87.231383999999935,77.898880000000133],[-87.174712999999997,77.897491000000002],[-86.876099000000011,77.8836060000001],[-86.824172999999917,77.879424999999969],[-86.651671999999962,77.860260000000039],[-86.46166999999997,77.836105000000032],[-86.422225999999966,77.830826000000059],[-86.377486999999917,77.822769000000051],[-86.222778000000005,77.794434000000024],[-86.198883000000023,77.786102000000085],[-85.986938000000009,77.711380000000133],[-85.975280999999882,77.705825999999945],[-85.884445000000028,77.632751000000098],[-85.718886999999995,77.472214000000065],[-85.715835999999967,77.467209000000025],[-85.717223999999931,77.462493999999992],[-85.727218999999877,77.451934999999935],[-85.748610999999983,77.446930000000066],[-85.76916499999993,77.443587999999977],[-85.775832999999921,77.439972000000068],[-85.795837000000006,77.423874000000069],[-85.794448999999929,77.419708000000128],[-85.776947000000007,77.421371000000079],[-85.551391999999964,77.458328000000108],[-85.530562999999916,77.461928999999941],[-85.493331999999953,77.430267000000015],[-85.436385999999914,77.404159999999933],[-85.39973399999991,77.395827999999995],[-85.376662999999894,77.392487000000131],[-85.299438000000009,77.387772000000098],[-85.270003999999915,77.386658000000125],[-85.155838000000017,77.387497000000053],[-84.973327999999867,77.377197000000137],[-84.954726999999934,77.374420000000043],[-84.9375,77.370818999999983],[-84.875274999999988,77.351654000000053],[-84.825286999999946,77.334152000000017],[-84.759170999999867,77.318328999999949],[-84.719727000000034,77.311645999999996],[-84.649444999999957,77.304428000000144],[-84.601944000000003,77.300537000000077],[-84.529175000000009,77.295822000000044],[-84.479445999999996,77.294434000000138],[-84.466399999999965,77.296371000000022],[-84.463333000000034,77.300262000000089],[-84.47444200000001,77.3119200000001],[-84.481948999999986,77.317764000000125],[-84.494719999999973,77.321106000000043],[-84.520279000000016,77.324157999999954],[-84.553878999999995,77.331375000000094],[-84.569167999999991,77.339705999999978],[-84.615004999999996,77.383040999999992],[-84.612777999999878,77.389160000000004],[-84.603881999999942,77.393599999999992],[-84.58555599999994,77.398041000000092],[-84.550277999999935,77.401382000000126],[-84.520844000000011,77.401657],[-84.49610899999999,77.399428999999998],[-84.470550999999944,77.396378000000027],[-84.429442999999935,77.388884999999959],[-84.386397999999986,77.383881000000031],[-84.33444199999991,77.383040999999992],[-84.27027899999996,77.384995000000004],[-84.153609999999958,77.39498900000001],[-84.061661000000015,77.398605000000032],[-84.005843999999968,77.397491000000059],[-83.985275000000001,77.395537999999931],[-83.949996999999996,77.388884999999959],[-83.868057000000022,77.376923000000033],[-83.793610000000001,77.36914100000007],[-83.531951999999933,77.346375000000023],[-83.505843999999968,77.344711000000018],[-83.478058000000033,77.344147000000078],[-83.464721999999995,77.348327999999981],[-83.463057999999876,77.349152000000117],[-83.46444699999995,77.35554500000012],[-83.472504000000015,77.387207000000046],[-83.553054999999972,77.393051000000071],[-83.654998999999975,77.395537999999931],[-83.711669999999913,77.404709000000082],[-83.728607000000011,77.408324999999934],[-83.778609999999958,77.423309000000017],[-83.822509999999966,77.442474000000004],[-83.833892999999989,77.448868000000004],[-83.835555999999997,77.455261000000007],[-83.824722000000008,77.460541000000035],[-83.801391999999964,77.464706000000035],[-83.768065999999919,77.466934000000037],[-83.682220000000029,77.46804800000001],[-83.620833999999945,77.471924000000058],[-83.593886999999938,77.475540000000137],[-83.426102000000014,77.499710000000107],[-83.389450000000011,77.507767000000115],[-83.36332699999997,77.518051000000128],[-83.216110000000015,77.577773999999977],[-83.011123999999995,77.665817000000004],[-82.895003999999858,77.717484000000013],[-82.674438000000009,77.836928999999998],[-82.655272999999852,77.847763000000043],[-82.541671999999949,77.920532000000037],[-82.526107999999965,77.961929000000055],[-82.577224999999999,78.003326000000072],[-82.590835999999967,78.011108000000036],[-82.591675000000009,78.017487000000074],[-82.579726999999878,78.022766000000047],[-82.56361400000003,78.027771000000087],[-82.538054999999986,78.031096999999988],[-82.497498000000007,78.03414900000007],[-82.470551,78.034714000000122],[-82.40972899999997,78.03414900000007],[-82.377486999999917,78.035812000000021],[-82.369445999999925,78.039428999999927],[-82.326110999999969,78.065262000000075],[-82.318619000000012,78.070831000000055],[-82.320007000000032,78.075821000000133],[-82.336120999999991,78.078873000000044],[-82.518341000000021,78.074158000000011],[-82.549438000000009,78.071930000000066],[-82.652221999999995,78.056090999999924],[-82.672500999999954,78.051651000000106],[-82.692489999999964,78.044983000000116],[-82.780288999999982,78.014999000000103],[-82.790282999999988,78.010544000000095],[-82.792769999999905,78.005829000000062],[-82.794158999999979,77.994979999999998],[-82.785277999999948,77.969986000000006],[-82.775283999999942,77.964157],[-82.735275000000001,77.947479000000101],[-82.728881999999942,77.939972000000012],[-82.728607000000011,77.929703000000131],[-82.736114999999984,77.924148999999943],[-82.769164999999987,77.914993000000038],[-82.852218999999991,77.896942000000024],[-82.949157999999898,77.874694999999974],[-83.123046999999929,77.780548000000067],[-83.156661999999926,77.744980000000055],[-83.185546999999985,77.716385000000002],[-83.192489999999964,77.710540999999978],[-83.200835999999867,77.705551000000128],[-83.386672999999917,77.616653000000042],[-83.427215999999987,77.600815000000011],[-83.527785999999935,77.572769000000108],[-83.648055999999997,77.540816999999947],[-83.735000999999954,77.518875000000094],[-83.873046999999985,77.49331699999999],[-83.898345999999947,77.490540000000067],[-83.920546999999942,77.491652999999985],[-84.143889999999999,77.509430000000009],[-84.192490000000021,77.515549000000078],[-84.229995999999971,77.521378000000084],[-84.386672999999917,77.528594999999996],[-84.419997999999964,77.52777100000003],[-84.452224999999942,77.524994000000106],[-84.483321999999987,77.521652000000017],[-84.500564999999995,77.518051000000128],[-84.555557000000022,77.51249700000011],[-84.579726999999991,77.51249700000011],[-84.760558999999944,77.519714000000079],[-84.779174999999952,77.522490999999945],[-84.858886999999925,77.542755000000113],[-84.869155999999975,77.562759000000028],[-84.87110899999999,77.569153000000085],[-84.866393999999957,77.574158000000125],[-84.837219000000005,77.583878000000027],[-84.815552000000025,77.588881999999955],[-84.773620999999991,77.5977630000001],[-84.707229999999981,77.609985000000052],[-84.665282999999988,77.618866000000025],[-84.627486999999917,77.628036000000066],[-84.520003999999972,77.664703000000031],[-84.441939999999931,77.706100000000106],[-84.429992999999968,77.718322999999941],[-84.428328999999962,77.722762999999986],[-84.431106999999884,77.726379000000009],[-84.443054000000018,77.736374000000126],[-84.486938000000009,77.750275000000101],[-84.495270000000005,77.751099000000067],[-84.503066999999987,77.74971000000005],[-84.48971599999993,77.746368000000132],[-84.483062999999959,77.74470500000001],[-84.475280999999995,77.738876000000005],[-84.476669000000015,77.728316999999947],[-84.486388999999974,77.711380000000133],[-84.499161000000015,77.699707000000103],[-84.520844000000011,77.689148000000102],[-84.533889999999985,77.684981999999991],[-84.547226000000023,77.68081699999999],[-84.715012000000002,77.639709000000096],[-84.922501000000011,77.601653999999996],[-84.952498999999989,77.601379000000122],[-84.972503999999901,77.606369000000029],[-85.158339999999896,77.641663000000108],[-85.298889000000031,77.660538000000031],[-85.310546999999985,77.664703000000031],[-85.348891999999921,77.72886699999998],[-85.348891999999921,77.733871000000136],[-85.335830999999985,77.738037000000077],[-85.190276999999867,77.779984000000127],[-85.054992999999968,77.79693600000013],[-85.05360399999995,77.830551000000014],[-85.144164999999987,77.817490000000078],[-85.297775000000001,77.797211000000118],[-85.328063999999927,77.79832499999992],[-85.381942999999978,77.807754999999986],[-85.400283999999942,77.813309000000004],[-85.402495999999928,77.819991999999957],[-85.400283999999942,77.83638000000002],[-85.389724999999999,77.841934000000037],[-85.353333000000021,77.855545000000006],[-85.325012000000015,77.866089000000045],[-85.281386999999995,77.87441999999993],[-85.231948999999986,77.881653000000142],[-85.207778999999903,77.883881000000088],[-84.925551999999982,77.891098],[-84.837219000000005,77.887496999999939],[-84.692490000000021,77.898604999999975],[-84.664444000000003,77.902206000000035],[-84.611114999999927,77.90387000000004],[-84.498154,77.900116000000082],[-84.428878999999995,77.896942000000024],[-84.385833999999932,77.891098],[-84.368056999999908,77.887206999999933],[-84.342772999999909,77.88499500000006],[-84.318618999999956,77.886932000000115],[-84.31361400000003,77.891936999999984],[-84.325012000000015,77.896103000000039],[-84.379715000000033,77.90637200000009],[-84.401671999999962,77.910262999999986],[-84.559432999999956,77.92303499999997],[-84.575561999999991,77.923874000000126],[-84.634444999999914,77.926926000000037],[-84.663054999999929,77.925262000000032],[-84.816665999999941,77.911652000000004],[-84.847228999999913,77.90887500000008],[-85.056945999999982,77.900543000000084],[-85.166396999999961,77.902206000000035],[-85.200561999999991,77.901657000000057],[-85.267501999999922,77.898041000000035],[-85.303604000000007,77.894714000000079],[-85.331680000000006,77.890823000000012],[-85.378051999999968,77.882202000000063],[-85.423049999999989,77.874694999999974],[-85.474715999999944,77.868591000000094],[-85.515288999999996,77.8836060000001],[-85.678878999999938,77.929428000000144],[-85.67971799999998,77.936645999999939],[-85.675277999999992,77.941650000000095],[-85.660278000000005,77.946639999999945],[-85.450561999999991,77.991089000000102],[-85.28694200000001,78.021652000000074],[-85.065551999999911,78.056366000000139],[-85.038894999999911,78.057205000000124],[-85.009734999999921,78.055251999999996],[-84.963057999999933,78.04414399999996],[-84.884170999999924,78.033051],[-84.816955999999948,78.026382000000126],[-84.788054999999986,78.024155000000064],[-84.761672999999917,78.023605000000032],[-84.726943999999946,78.025817999999958],[-84.708892999999989,78.029434000000037],[-84.695540999999935,78.033599999999922],[-84.688888999999961,78.03915400000011],[-84.673888999999974,78.04414399999996],[-84.654175000000009,78.048874000000012],[-84.575561999999991,78.067215000000033],[-84.547501000000011,78.0711060000001],[-84.524444999999901,78.072220000000073],[-84.360001000000011,78.070267000000115],[-84.328612999999905,78.070541000000048],[-84.307219999999973,78.07249500000006],[-84.288054999999929,78.075546000000088],[-84.292769999999962,78.078049000000078],[-84.299438000000009,78.079712000000029],[-84.323623999999938,78.082764000000111],[-84.410003999999958,78.086929000000112],[-84.532775999999899,78.085541000000035],[-84.557220000000029,78.083603000000096],[-84.623046999999985,78.071381000000088],[-84.673614999999984,78.064148000000102],[-84.736937999999896,78.058319000000097],[-84.765563999999983,78.056366000000139],[-84.798888999999974,78.055251999999996],[-84.855835000000013,78.056930999999963],[-84.881942999999978,78.059143000000063],[-84.993880999999988,78.074158000000011],[-85.077498999999932,78.090820000000008],[-85.094451999999933,78.097487999999998],[-85.087783999999886,78.103317000000004],[-84.994994999999903,78.163040000000024],[-84.901947000000007,78.170821999999987],[-84.829452999999944,78.168869000000029],[-84.793883999999991,78.171096999999975],[-84.761123999999995,78.174423000000047],[-84.708617999999944,78.182479999999998],[-84.688598999999954,78.187195000000031],[-84.657775999999956,78.19720500000011],[-84.63110399999988,78.199997000000053],[-84.549437999999952,78.19720500000011],[-84.430557000000022,78.186371000000065],[-84.315551999999968,78.173599000000081],[-84.284164000000033,78.166381999999942],[-84.222778000000005,78.158875000000023],[-84.201110999999969,78.156937000000084],[-84.173889000000031,78.15776100000005],[-84.127776999999924,78.171096999999975],[-84.126662999999951,78.179977000000008],[-84.453612999999962,78.214706000000092],[-84.479720999999927,78.216934000000037],[-84.506667999999934,78.217758000000003],[-84.693603999999993,78.217209000000082],[-84.722504000000015,78.216934000000037],[-84.777495999999871,78.210266000000047],[-84.877212999999927,78.193039000000056],[-84.909728999999857,78.191086000000098],[-84.937774999999931,78.192474000000004],[-84.951400999999976,78.195525999999916],[-84.968613000000005,78.202484000000084],[-84.973891999999978,78.208602999999982],[-84.970276000000013,78.214157000000114],[-84.967223999999931,78.21804800000001],[-84.956116000000009,78.232208000000128],[-84.942764000000011,78.243866000000139],[-84.83444199999991,78.314987000000031],[-84.815276999999924,78.321654999999964],[-84.792496000000028,78.32499700000011],[-84.731383999999991,78.325546000000031],[-84.658614999999998,78.329437000000098],[-84.629715000000033,78.333327999999995],[-84.605270000000019,78.337494000000106],[-84.585281000000009,78.341934000000094],[-84.575561999999991,78.346375000000023],[-84.572784000000013,78.350540000000024],[-84.571944999999971,78.355545000000063],[-84.575835999999924,78.361374000000069],[-84.581679999999949,78.366089000000102],[-84.601944000000003,78.368866000000025],[-84.630828999999949,78.364990000000148],[-84.667769999999962,78.348602000000085],[-84.684722999999963,78.344147000000078],[-84.707229999999981,78.341094999999939],[-84.735001000000011,78.340270999999973],[-84.772231999999974,78.342209000000139],[-84.815552000000025,78.349152000000117],[-84.866942999999992,78.36914100000007],[-84.865829000000019,78.372207999999944],[-84.785278000000005,78.501663000000065],[-84.782501000000025,78.505829000000119],[-84.774718999999948,78.509154999999964],[-84.759170999999867,78.514160000000061],[-84.738602000000014,78.518875000000094],[-84.724166999999966,78.524429000000055],[-84.704452999999944,78.534988000000112],[-84.625823999999966,78.584152000000074],[-84.619445999999925,78.588318000000015],[-84.61999499999996,78.590546000000131],[-84.638610999999969,78.594147000000021],[-84.661117999999988,78.59248400000007],[-84.675277999999992,78.588318000000015],[-84.838332999999977,78.516662999999994],[-84.846389999999928,78.511658000000125],[-84.978333000000021,78.414993000000095],[-84.974715999999944,78.358871000000136],[-84.970550999999944,78.353317000000118],[-84.964721999999938,78.348602000000085],[-84.961945000000014,78.343597000000045],[-84.96665999999999,78.338882000000012],[-85.043335000000013,78.299149],[-85.188048999999978,78.228317000000061],[-85.418335000000013,78.118866000000082],[-85.433318999999983,78.113876000000005],[-85.450835999999924,78.109984999999938],[-85.486114999999927,78.102478000000019],[-85.508057000000008,78.099152000000004],[-85.523055999999883,78.099426000000108],[-85.528060999999923,78.101929000000098],[-85.608886999999982,78.100815000000068],[-85.740829000000019,78.093048000000124],[-85.80471799999998,78.088882000000069],[-85.876662999999951,78.08166499999993],[-85.894164999999987,78.078049000000078],[-86.010283999999956,78.066086000000041],[-86.119995000000017,78.056366000000139],[-86.148345999999947,78.054703000000018],[-86.178054999999972,78.054977000000122],[-86.223327999999981,78.057480000000112],[-86.267226999999991,78.066376000000048],[-86.282227000000034,78.071655000000021],[-86.288329999999974,78.076385000000073],[-86.291381999999999,78.081375000000094],[-86.290558000000033,78.085815000000139],[-86.25140399999998,78.156647000000078],[-86.234160999999972,78.160537999999974],[-86.135558999999944,78.165543000000014],[-86.113051999999868,78.17053199999998],[-86.098052999999993,78.17553700000002],[-85.949996999999996,78.228317000000061],[-85.93110699999994,78.236649000000057],[-85.839995999999985,78.325821000000076],[-85.835281000000009,78.332214000000022],[-85.827224999999942,78.344147000000078],[-85.825561999999934,78.348602000000085],[-85.833068999999966,78.379974000000004],[-85.853333000000021,78.379150000000038],[-85.878051999999968,78.376922999999977],[-86.052779999999984,78.297484999999995],[-86.060271999999998,78.292480000000126],[-86.060546999999929,78.280548000000124],[-86.06527699999998,78.263610999999969],[-86.073623999999938,78.24859600000002],[-86.259170999999924,78.196365000000071],[-86.285277999999948,78.193314000000044],[-86.311110999999983,78.193314000000044],[-86.453613000000018,78.211928999999998],[-86.476668999999958,78.215820000000065],[-86.497771999999941,78.215546000000131],[-86.515014999999948,78.211655000000064],[-86.537215999999944,78.19470199999995],[-86.548888999999974,78.183044000000109],[-86.569457999999941,78.172210999999947],[-86.719726999999978,78.121917999999994],[-86.736938000000009,78.118042000000116],[-86.763061999999991,78.114990000000034],[-87.079726999999934,78.102768000000026],[-87.10943599999996,78.103043000000071],[-87.196654999999964,78.106094000000098],[-87.439712999999983,78.121643000000006],[-87.505843999999911,78.12831099999994],[-87.529174999999952,78.132202000000007],[-87.538605000000018,78.138046000000031],[-87.535003999999958,78.143051000000071],[-87.526671999999962,78.149155000000121],[-87.483886999999925,78.164429000000041],[-87.430556999999965,78.178314000000114],[-87.407501000000025,78.183044000000109],[-87.352218999999991,78.191086000000098],[-87.314163000000008,78.193863000000022],[-87.289992999999981,78.19470199999995],[-87.166945999999939,78.195525999999916],[-87.104996000000028,78.199141999999995],[-87.08944699999995,78.201934999999992],[-87.087219000000005,78.206099999999992],[-87.105835000000013,78.209427000000119],[-87.262222000000008,78.22665400000011],[-87.293609999999944,78.226089000000115],[-87.363892000000021,78.221099999999922],[-87.371657999999968,78.219437000000028],[-87.396118000000001,78.217209000000082],[-87.423049999999932,78.216095000000053],[-87.475554999999872,78.216385000000116],[-87.497771999999941,78.219711000000132],[-87.513335999999924,78.224990999999989],[-87.518616000000009,78.230545000000006],[-87.516953000000001,78.24136400000009],[-87.516113000000018,78.245819000000097],[-87.494445999999982,78.298598999999967],[-87.502501999999879,78.30525200000011],[-87.513061999999991,78.316375999999991],[-87.516402999999968,78.322768999999937],[-87.52555799999999,78.410263000000043],[-87.524718999999948,78.416382000000112],[-87.517226999999991,78.426376000000118],[-87.503066999999987,78.436646000000053],[-87.476943999999946,78.44802900000002],[-87.311385999999914,78.509154999999964],[-87.292220999999927,78.513885000000016],[-87.15834000000001,78.546371000000136],[-87.140563999999983,78.550262000000032],[-87.013061999999991,78.554153000000099],[-86.891112999999962,78.54553199999998],[-86.866394000000014,78.546371000000136],[-86.858336999999949,78.547760000000096],[-86.855834999999956,78.551650999999993],[-86.858886999999982,78.566375999999934],[-86.864440999999999,78.568878000000041],[-86.877776999999924,78.573044000000095],[-86.898620999999991,78.575821000000019],[-86.957779000000016,78.574997000000053],[-87.031676999999945,78.569153000000028],[-87.066101000000003,78.567490000000134],[-87.095275999999956,78.568604000000107],[-87.113051999999925,78.573044000000095],[-87.121658000000025,78.576934999999992],[-87.12388599999997,78.581099999999992],[-87.122498000000007,78.587204000000042],[-86.944716999999969,78.704711999999972],[-86.934432999999956,78.709991000000116],[-86.922501000000011,78.714705999999978],[-86.856948999999929,78.734985000000108],[-86.638901000000033,78.79942299999999],[-86.615829000000019,78.803040000000124],[-86.377212999999983,78.809982000000048],[-86.138061999999991,78.816666000000112],[-86.067504999999983,78.819716999999912],[-86.037215999999944,78.821380999999974],[-85.646666999999866,78.848602000000142],[-85.607497999999964,78.85165400000011],[-85.577498999999932,78.855819999999994],[-85.350280999999995,78.88749700000011],[-85.329726999999934,78.892211999999972],[-85.297500999999954,78.902205999999978],[-85.257507000000032,78.910537999999974],[-85.09973100000002,78.917755000000056],[-85.064163000000008,78.919144000000074],[-85.036117999999988,78.91693099999992],[-85.008895999999993,78.913315000000068],[-84.84584000000001,78.888885000000016],[-84.788329999999917,78.878035999999952],[-84.766402999999968,78.873032000000023],[-84.740554999999915,78.869980000000112],[-84.712783999999942,78.86775200000011],[-84.563323999999966,78.859984999999995],[-84.412216000000001,78.85554499999995],[-84.212783999999886,78.856934000000138],[-84.145003999999972,78.85554499999995],[-83.850829999999974,78.845261000000107],[-83.746947999999918,78.836928999999941],[-83.694442999999978,78.829712000000029],[-83.674437999999952,78.825546000000145],[-83.660004000000015,78.819992000000127],[-83.64056399999987,78.813873000000115],[-83.601944000000003,78.802200000000084],[-83.579726999999934,78.796371000000079],[-83.538329999999917,78.787201000000039],[-83.513061999999991,78.783874999999966],[-83.485824999999977,78.781372000000033],[-83.428604000000007,78.779159999999933],[-83.394164999999987,78.778870000000097],[-83.34584000000001,78.773605000000032],[-83.327498999999932,78.769713999999965],[-83.308334000000002,78.76388500000013],[-83.293610000000001,78.756104000000107],[-83.284926999999925,78.750000000000057],[-83.236938000000009,78.74054000000001],[-83.101394999999968,78.714432000000045],[-82.994720000000029,78.699707000000103],[-82.941939999999988,78.695526000000029],[-82.910827999999981,78.694702000000063],[-82.845000999999968,78.697478999999987],[-82.822509999999966,78.695250999999985],[-82.689712999999983,78.664154000000053],[-82.69638099999986,78.657761000000107],[-82.704453000000001,78.651932000000102],[-82.695540999999992,78.645264000000111],[-82.610549999999932,78.611374000000012],[-82.506957999999997,78.591095000000109],[-82.417220999999927,78.574158000000068],[-82.37388599999997,78.568604000000107],[-82.357497999999907,78.567490000000134],[-82.337783999999999,78.566665999999941],[-82.308334000000002,78.568878000000041],[-82.262222000000008,78.578048999999965],[-82.236938000000009,78.588318000000015],[-82.235549999999932,78.595825000000104],[-82.244719999999973,78.598877000000073],[-82.310271999999941,78.616653000000042],[-82.416655999999989,78.64276099999995],[-82.496384000000035,78.661926000000108],[-82.516953000000001,78.666930999999977],[-82.535278000000005,78.672759999999982],[-82.559433000000013,78.682205000000067],[-82.565552000000025,78.685256999999979],[-82.584732000000031,78.695526000000029],[-82.59445199999999,78.703049000000021],[-82.581954999999994,78.708327999999995],[-82.569167999999991,78.711380000000133],[-82.45666499999993,78.730820000000108],[-82.435546999999929,78.731659000000093],[-82.407775999999956,78.730820000000108],[-82.350554999999986,78.726089000000002],[-82.279723999999987,78.71775800000006],[-82.255279999999914,78.71665999999999],[-82.230835000000013,78.71775800000006],[-82.223327999999981,78.719711000000018],[-82.215011999999888,78.723037999999974],[-82.220550999999887,78.732208000000014],[-82.231948999999986,78.736374000000126],[-82.254729999999995,78.740814000000114],[-82.279175000000009,78.74414100000007],[-82.310821999999973,78.746933000000126],[-82.396392999999932,78.74914600000011],[-82.45666499999993,78.74914600000011],[-82.480835000000013,78.748322000000144],[-82.506119000000012,78.745818999999983],[-82.525557999999933,78.742203000000131],[-82.542770000000019,78.737198000000092],[-82.564437999999996,78.732758000000047],[-82.619155999999975,78.728043000000014],[-82.663619999999923,78.728043000000014],[-82.752501999999936,78.729705999999965],[-82.781386999999995,78.731094000000041],[-82.809722999999963,78.734146000000123],[-82.826950000000011,78.737488000000099],[-82.84333799999996,78.742203000000131],[-82.911666999999909,78.76638800000012],[-83.069732999999928,78.792206000000078],[-83.108611999999994,78.796646000000067],[-83.21055599999994,78.798874000000069],[-83.228607000000011,78.804153000000042],[-83.255844000000025,78.829987000000074],[-83.254729999999995,78.834991000000002],[-83.244445999999925,78.839432000000102],[-83.218337999999903,78.843597000000102],[-83.1875,78.847214000000065],[-83.085830999999985,78.85554499999995],[-83.056945999999925,78.856094000000098],[-82.991669000000002,78.85554499999995],[-82.811110999999983,78.848038000000031],[-82.67582699999997,78.842209000000025],[-82.65055799999999,78.838882000000069],[-82.621384000000035,78.837493999999992],[-82.462783999999942,78.833328000000108],[-82.429442999999992,78.833328000000108],[-82.289718999999991,78.837203999999986],[-82.254455999999948,78.840546000000074],[-82.112777999999992,78.857483000000116],[-82.079452999999944,78.859711000000061],[-81.947495000000004,78.865814],[-81.913894999999911,78.865814],[-81.764174999999966,78.859984999999995],[-81.749434999999949,78.858032000000037],[-81.740554999999915,78.855254999999943],[-81.767226999999991,78.853317000000004],[-81.824447999999961,78.853867000000037],[-81.838607999999965,78.851379000000065],[-81.833618000000001,78.846649000000014],[-81.820281999999963,78.845261000000107],[-81.741378999999881,78.839157000000114],[-81.712509000000011,78.839706000000035],[-81.699157999999954,78.842757999999947],[-81.660827999999924,78.877762000000018],[-81.656661999999869,78.883881000000088],[-81.65695199999999,78.888321000000076],[-81.666397000000018,78.895537999999988],[-81.68249499999996,78.900268999999923],[-81.734725999999966,78.90637200000009],[-81.753066999999987,78.912201000000096],[-81.755843999999968,78.91804500000012],[-81.698607999999922,78.973877000000073],[-81.690825999999959,78.980270000000019],[-81.683060000000012,78.984421000000111],[-81.553604000000007,79.024155000000007],[-81.486114999999927,79.041655999999989],[-81.477218999999991,79.047211000000061],[-81.486663999999962,79.052475000000072],[-81.50306699999993,79.059143000000006],[-81.521118000000001,79.061096000000134],[-81.548614999999984,79.061355999999989],[-81.617767000000015,79.051086000000055],[-81.865829000000019,79.013610999999969],[-81.910277999999948,79.004990000000078],[-81.928329000000019,79],[-81.961120999999935,78.98692299999999],[-81.97222899999997,78.982483000000002],[-81.974166999999966,78.979431000000034],[-81.999725000000012,78.960266000000104],[-82.092772999999909,78.918320000000108],[-82.110274999999945,78.913605000000075],[-82.34722899999997,78.894440000000088],[-82.50306699999993,78.882750999999985],[-82.559433000000013,78.884720000000016],[-82.681380999999988,78.903319999999951],[-82.813888999999961,78.923035000000141],[-82.839447000000007,78.926376000000005],[-82.924438000000009,78.934982000000105],[-83.063048999999978,78.939697000000137],[-83.126663000000008,78.941085999999927],[-83.264175000000023,78.939147999999989],[-83.514174999999966,78.930542000000059],[-83.570557000000008,78.929977000000065],[-83.637512000000015,78.930817000000104],[-83.694716999999912,78.934708000000001],[-83.787215999999887,78.942474000000061],[-83.812774999999988,78.945815999999979],[-84.034163999999976,78.956650000000025],[-84.165558000000033,78.956940000000031],[-84.200561999999991,78.957213999999965],[-84.259170999999981,78.959427000000119],[-84.328888000000006,78.965271000000143],[-84.367492999999968,78.972488000000055],[-84.386123999999882,78.977767999999969],[-84.429992999999968,78.987761999999975],[-84.473052999999936,78.99552900000009],[-84.573333999999875,79.009995000000117],[-84.651397999999972,79.019439999999975],[-84.679442999999992,79.021652000000074],[-84.726943999999946,79.027771000000087],[-84.748046999999985,79.031936999999971],[-84.766953000000001,79.037200999999982],[-84.779174999999952,79.04664600000001],[-84.789718999999991,79.064148000000046],[-84.789168999999958,79.069442999999978],[-84.783889999999985,79.074432000000115],[-84.651672000000019,79.114699999999971],[-84.544158999999979,79.141372999999987],[-84.528609999999901,79.143326000000059],[-84.503615999999909,79.144440000000088],[-84.473052999999936,79.143051000000071],[-84.163894999999911,79.12414600000011],[-84.135559000000001,79.121917999999994],[-84.075561999999934,79.10443099999992],[-84.0625,79.090546000000018],[-84.040558000000033,79.075447000000054],[-83.990279999999984,79.051651000000106],[-83.950561999999934,79.043594000000098],[-83.896392999999989,79.038040000000137],[-83.744720000000029,79.028046000000074],[-83.600554999999929,79.025269000000037],[-83.504456000000005,79.023604999999975],[-83.474716000000001,79.024155000000007],[-83.454726999999991,79.025542999999971],[-83.386123999999995,79.039429000000098],[-83.36860699999994,79.044434000000138],[-83.358611999999937,79.050812000000121],[-83.373610999999926,79.056366000000139],[-83.399445000000014,79.059708000000057],[-83.415557999999976,79.059981999999991],[-83.430831999999953,79.05831900000004],[-83.461670000000026,79.052200000000028],[-83.493880999999931,79.043319999999994],[-83.521118000000001,79.041367000000037],[-83.546111999999937,79.042480000000126],[-83.70666499999993,79.077774000000034],[-83.976394999999968,79.141098000000113],[-84.003615999999909,79.148605000000089],[-84.029998999999975,79.151657],[-84.029175000000009,79.156937000000028],[-84.018889999999999,79.161377000000073],[-84.005004999999926,79.166092000000106],[-83.952498999999989,79.180267000000015],[-83.939986999999917,79.18553200000008],[-83.933318999999926,79.191925000000026],[-83.941101000000003,79.216385000000059],[-83.956664999999987,79.221924000000058],[-83.979720999999927,79.22164900000007],[-84.016952999999944,79.213042999999971],[-84.043059999999912,79.203048999999965],[-84.051940999999943,79.198029000000076],[-84.067504999999983,79.192474000000004],[-84.086120999999991,79.188033999999959],[-84.121933000000013,79.184708000000114],[-84.158507999999983,79.183304000000135],[-84.193329000000006,79.183044000000109],[-84.303329000000019,79.186646000000053],[-84.326949999999954,79.188583000000108],[-84.323897999999872,79.19470200000012],[-84.316665999999941,79.200546000000145],[-84.31361400000003,79.206649999999968],[-84.335555999999997,79.252213000000097],[-84.34445199999999,79.258041000000048],[-84.362777999999992,79.264999000000046],[-84.401108000000022,79.27526899999998],[-84.428878999999995,79.290268000000026],[-84.452788999999996,79.328872999999987],[-84.452224999999942,79.34165999999999],[-84.446654999999964,79.353866999999923],[-84.446105999999929,79.358871000000079],[-84.484725999999966,79.406372000000147],[-84.503341999999975,79.413040000000137],[-84.581116000000009,79.433868000000018],[-84.606110000000001,79.43803400000013],[-84.660278000000005,79.444138000000123],[-84.709166999999979,79.451660000000061],[-84.821120999999948,79.473037999999974],[-84.882492000000013,79.486098999999911],[-84.896956999999929,79.492477000000065],[-84.96945199999999,79.537491000000045],[-84.972503999999901,79.542206000000078],[-85.022232000000031,79.611099000000024],[-85.028885000000002,79.615814000000057],[-85.050277999999992,79.621643000000063],[-85.068892999999946,79.626083000000051],[-85.25418099999996,79.667205999999965],[-85.372497999999894,79.684417999999994],[-85.493331999999953,79.700546000000031],[-85.551391999999964,79.705826000000116],[-85.615828999999962,79.708327999999995],[-85.684433000000013,79.709152000000131],[-85.763061999999991,79.705551000000071],[-85.94888299999991,79.708327999999995],[-86.203339000000028,79.735809000000074],[-86.387512000000015,79.747482000000048],[-86.415833000000021,79.750548999999978],[-86.445830999999885,79.754166000000112],[-86.47193900000002,79.759720000000129],[-86.486389000000031,79.763611000000026],[-86.49360699999994,79.768326000000059],[-86.502227999999945,79.775269000000037],[-86.47193900000002,79.890549000000021],[-86.460281000000009,79.919708000000014],[-86.450286999999889,79.931091000000038],[-86.43638599999997,79.942474000000004],[-86.424437999999952,79.948029000000076],[-86.389724999999999,79.958038000000101],[-86.36721799999998,79.962769000000037],[-86.300277999999935,79.968596999999988],[-86.263335999999924,79.969147000000021],[-86.230285999999978,79.96804800000001],[-86.083892999999989,79.95748900000001],[-85.885833999999988,79.941086000000098],[-85.819732999999928,79.938582999999937],[-85.785003999999958,79.938034000000016],[-85.711394999999925,79.937485000000038],[-85.65695199999999,79.938034000000016],[-85.519454999999994,79.924988000000042],[-85.460006999999905,79.910812000000078],[-85.416397000000018,79.901382000000012],[-85.389998999999932,79.897491000000116],[-85.365829000000019,79.896378000000027],[-85.308334000000002,79.900543000000027],[-85.289168999999958,79.904984000000127],[-85.275008999999955,79.909424000000001],[-85.262511999999958,79.914992999999981],[-85.255004999999926,79.920821999999987],[-85.271118000000001,79.923874000000069],[-85.440826000000015,79.938309000000004],[-85.640839000000028,79.962769000000037],[-86.190552000000025,80],[-86.301940999999943,79.998322000000087],[-86.341384999999946,79.99693300000007],[-86.413329999999974,79.99803200000008],[-86.442763999999954,79.999709999999993],[-86.466400000000021,80.003876000000048],[-86.482773000000009,80.0086060000001],[-86.565551999999968,80.035812000000135],[-86.579452999999944,80.04304500000012],[-86.642501999999922,80.098037999999974],[-86.658614999999884,80.117752000000053],[-86.65943900000002,80.128036000000066],[-86.65583799999996,80.135269000000108],[-86.514724999999942,80.299149000000114],[-86.493057000000022,80.304428000000087],[-86.46833799999996,80.308594000000028],[-86.434432999999956,80.312485000000095],[-86.345001000000025,80.319153000000028],[-86.11610399999995,80.333602999999982],[-86.076110999999912,80.333602999999982],[-85.897507000000019,80.333054000000004],[-85.745269999999948,80.320267000000001],[-85.717498999999975,80.316375999999934],[-85.671936000000017,80.306931000000077],[-85.616652999999928,80.298874000000126],[-85.509170999999981,80.285812000000078],[-85.479171999999949,80.28276100000005],[-85.354171999999892,80.273041000000148],[-85.290832999999964,80.268600000000049],[-85.256957999999997,80.267211999999972],[-85.095839999999953,80.262207000000103],[-84.9375,80.267211999999972],[-84.898346000000004,80.269440000000088],[-84.779174999999952,80.272491000000116],[-84.702498999999932,80.273315000000082],[-84.589721999999995,80.273605000000089],[-84.196655000000021,80.271378000000027],[-84.049437999999896,80.267761000000121],[-83.989440999999999,80.264435000000049],[-83.926392000000021,80.259720000000016],[-83.811110999999983,80.249145999999996],[-83.78195199999999,80.24581900000004],[-83.716110000000015,80.233871000000022],[-83.626389000000017,80.213608000000136],[-83.560821999999973,80.195816000000093],[-83.546386999999982,80.189423000000147],[-83.478058000000033,80.164428999999984],[-83.461394999999925,80.15914900000007],[-83.42471299999994,80.148331000000098],[-83.40306099999998,80.142212000000086],[-83.24499499999996,80.103591999999935],[-83.138901000000033,80.078323000000125],[-83.029723999999987,80.053314],[-82.89805599999994,80.02526899999998],[-82.803329000000019,80.006377999999984],[-82.736114999999984,79.992476999999951],[-82.605835000000013,79.964431999999988],[-82.283889999999985,79.893051000000071],[-82.15306099999998,79.858870999999965],[-82.101943999999946,79.839706000000035],[-82.091675000000009,79.834717000000069],[-82.062499999999943,79.816086000000041],[-82.046386999999982,79.801651000000106],[-81.976944000000003,79.735809000000074],[-81.981673999999998,79.723877000000073],[-81.978881999999999,79.718323000000112],[-81.916655999999989,79.703323000000125],[-81.853057999999976,79.693588000000034],[-81.799438000000009,79.686645999999939],[-81.767501999999922,79.684981999999934],[-81.733886999999925,79.686371000000122],[-81.68472300000002,79.675812000000064],[-81.6163939999999,79.623305999999957],[-81.61860699999994,79.61831699999999],[-81.628052000000025,79.614700000000028],[-81.651671999999905,79.610260000000039],[-81.678054999999972,79.607208000000128],[-81.687774999999874,79.608032000000094],[-81.694716999999969,79.609711000000061],[-81.709732000000031,79.615540000000124],[-81.734160999999972,79.619705000000124],[-81.748610999999983,79.621094000000085],[-81.767501999999922,79.62052900000009],[-81.777221999999995,79.619140999999956],[-81.785277999999892,79.614990000000091],[-81.786117999999931,79.609146000000067],[-81.782227000000034,79.604979999999955],[-81.768616000000009,79.600266000000033],[-81.750290000000007,79.594711000000132],[-81.728333000000021,79.589706000000092],[-81.706664999999987,79.586655000000064],[-81.675277999999992,79.584991000000059],[-81.639450000000011,79.584991000000059],[-81.605835000000013,79.588593000000003],[-81.578613000000018,79.59304800000001],[-81.56361400000003,79.597763000000043],[-81.544998000000021,79.609146000000067],[-81.509444999999914,79.624145999999996],[-81.495270000000005,79.629425000000026],[-81.476395000000025,79.634155000000021],[-81.457229999999981,79.636932000000115],[-81.424712999999997,79.636658000000011],[-81.368056999999965,79.634430000000066],[-81.279998999999918,79.628310999999997],[-81.253615999999965,79.624694999999974],[-81.013061999999877,79.598877000000016],[-80.69027699999998,79.56860400000005],[-80.630554000000018,79.564147999999989],[-80.598052999999993,79.566086000000098],[-80.589721999999995,79.568054000000018],[-80.591949,79.573608000000036],[-80.60861199999988,79.576096000000007],[-80.625274999999931,79.580826000000059],[-80.641953000000001,79.588042999999971],[-80.634170999999981,79.592758000000003],[-80.618606999999884,79.597214000000122],[-80.598052999999993,79.601379000000122],[-80.569167999999877,79.605255],[-80.50167799999997,79.61192299999999],[-80.100280999999995,79.644440000000145],[-80.056655999999975,79.646942000000024],[-80.025283999999942,79.647217000000069],[-79.972778000000005,79.644440000000145],[-79.93638599999997,79.644440000000145],[-79.904723999999987,79.646942000000024],[-79.892501999999922,79.649155000000007],[-79.761947999999961,79.695816000000036],[-79.751403999999923,79.701385000000016],[-79.768616000000009,79.701935000000049],[-80.041381999999999,79.697479000000101],[-80.356658999999979,79.685256999999979],[-80.389724999999999,79.68331900000004],[-80.432220000000029,79.677765000000022],[-80.473617999999988,79.669708000000071],[-80.516113000000018,79.664429000000098],[-80.618057000000022,79.654160000000047],[-80.658889999999928,79.652481000000023],[-80.795273000000009,79.648041000000035],[-80.827498999999989,79.648331000000042],[-80.910552999999993,79.651932000000102],[-80.942215000000033,79.653594999999996],[-80.955275999999969,79.658600000000035],[-80.958892999999932,79.664993000000038],[-80.970839999999953,79.671370999999965],[-80.978333000000021,79.67303499999997],[-81.076110999999969,79.688873000000001],[-81.171936000000017,79.703323000000125],[-81.227782999999988,79.709427000000005],[-81.291945999999882,79.713608000000079],[-81.385559000000001,79.713608000000079],[-81.424437999999952,79.712769000000094],[-81.519729999999925,79.730820000000108],[-81.569457999999941,79.819717000000082],[-81.582779000000016,79.836929000000112],[-81.587783999999942,79.841660000000047],[-81.59973100000002,79.851929000000098],[-81.608337000000006,79.858597000000032],[-81.631377999999984,79.872208000000001],[-81.651947000000007,79.882750999999985],[-81.65972899999997,79.888596000000064],[-81.665008999999941,79.897765999999933],[-81.663054999999986,79.903046000000018],[-81.643616000000009,79.909988000000112],[-81.540557999999919,79.922760000000096],[-81.515839000000028,79.924988000000042],[-81.416945999999939,79.927199999999971],[-81.402221999999995,79.932479999999998],[-81.400283999999942,79.937758999999971],[-81.420272999999952,79.943587999999977],[-81.557495000000017,79.960815000000025],[-81.589721999999995,79.962494000000049],[-81.639450000000011,79.962204000000042],[-81.643341000000021,79.962204000000042],[-81.710555999999997,79.964706000000092],[-81.743056999999965,79.966385000000116],[-81.833068999999966,79.973877000000016],[-82.005004999999983,79.993042000000003],[-82.168334999999956,80.013610999999969],[-82.191101000000003,80.018600000000106],[-82.285827999999981,80.046097000000088],[-82.34333799999996,80.063873000000058],[-82.359160999999915,80.069153000000085],[-82.619155999999975,80.150542999999971],[-82.948043999999982,80.247481999999991],[-83.12110899999999,80.292755000000056],[-83.166655999999932,80.301376000000005],[-83.186934999999949,80.30664100000007],[-83.201400999999976,80.313309000000061],[-83.203887999999949,80.318054000000075],[-83.196654999999964,80.320830999999998],[-83.166945999999939,80.326934999999992],[-83.131942999999978,80.330551000000071],[-82.942764000000011,80.345535000000098],[-82.854720999999984,80.350815000000011],[-82.787780999999939,80.352203000000088],[-82.706664999999987,80.352767999999969],[-82.579726999999878,80.358322000000101],[-82.273330999999928,80.377472000000068],[-82.031386999999938,80.398331000000042],[-81.987212999999997,80.40026899999998],[-81.899170000000026,80.401657000000114],[-81.882216999999969,80.401932000000102],[-81.673888999999974,80.406097000000102],[-81.334441999999967,80.420532000000037],[-81.204726999999991,80.427200000000028],[-81.079726999999991,80.436096000000134],[-80.98611499999987,80.443588000000091],[-80.835007000000019,80.452774000000034],[-80.660004000000015,80.460815000000082],[-80.481110000000001,80.462494000000106],[-80.412216000000001,80.460541000000148],[-80.367766999999958,80.462204000000099],[-80.336120999999991,80.465819999999951],[-80.318893000000003,80.470534999999984],[-80.306655999999919,80.47526600000009],[-80.294158999999866,80.486649000000114],[-80.297775000000001,80.488876000000005],[-80.312209999999936,80.491653000000099],[-80.343338000000017,80.49414100000007],[-80.354996000000028,80.498031999999967],[-80.357223999999917,80.501389000000074],[-80.227492999999924,80.519713999999965],[-80.195540999999935,80.523605000000032],[-80.153335999999967,80.526382000000126],[-80.116394000000014,80.527771000000143],[-80.058608999999933,80.527206000000092],[-79.940276999999924,80.528869999999927],[-79.558043999999995,80.536377000000073],[-79.490554999999915,80.539703000000088],[-79.339995999999928,80.549988000000042],[-79.232773000000009,80.553314000000057],[-79.190552000000025,80.55386400000009],[-79.011123999999995,80.553314000000057],[-78.815551999999911,80.555817000000047],[-78.592772999999966,80.562195000000031],[-78.46556099999998,80.563873000000115],[-78.345276000000013,80.564423000000147],[-78.098891999999921,80.562485000000038],[-78.063889000000017,80.564697000000081],[-78.038054999999929,80.567215000000033],[-78.015014999999948,80.586655000000007],[-78.013625999999988,80.591095000000053],[-78.019164999999987,80.594436999999971],[-78.030838000000017,80.596100000000092],[-78.088608000000022,80.596939000000077],[-78.357773000000009,80.60165400000011],[-78.741378999999938,80.60914600000001],[-78.851944000000003,80.612487999999985],[-78.925277999999992,80.616652999999985],[-78.981109999999944,80.616089000000045],[-79.114440999999999,80.612487999999985],[-79.255004999999983,80.605819999999994],[-79.347228999999913,80.601089000000059],[-79.392226999999934,80.599715999999944],[-79.565276999999924,80.596100000000092],[-79.634170999999981,80.595535000000041],[-79.86332699999997,80.603043000000071],[-79.934433000000013,80.606094000000098],[-79.960555999999883,80.608032000000037],[-79.960280999999952,80.614700000000028],[-79.907226999999978,80.623871000000008],[-79.847777999999948,80.631927000000076],[-79.559433000000013,80.669983000000059],[-79.353607000000011,80.696640000000116],[-79.291945999999996,80.703872999999987],[-79.172501000000011,80.713043000000027],[-78.990829000000019,80.729706000000078],[-78.809432999999956,80.746933000000126],[-78.62388599999997,80.769149999999968],[-78.585280999999952,80.772217000000069],[-78.50556899999998,80.77748100000008],[-78.236664000000019,80.793319999999994],[-77.894454999999994,80.813309000000118],[-77.805832000000009,80.818603999999993],[-77.733062999999959,80.825546000000088],[-77.639175000000023,80.83027600000014],[-77.287780999999939,80.83526599999999],[-76.926392000000021,80.841933999999981],[-76.845001000000025,80.841094999999996],[-76.729172000000005,80.838043000000084],[-76.681380999999931,80.838593000000117],[-76.590835999999967,80.842758000000117],[-76.556655999999975,80.84637500000008],[-76.511672999999973,80.854430999999977],[-76.484725999999966,80.86554000000001],[-76.485000999999897,80.871094000000028],[-76.490829000000019,80.874985000000095],[-76.526672000000019,80.88638300000008],[-76.621108999999933,80.900818000000015],[-76.656661999999983,80.898041000000148],[-76.699432000000002,80.891372999999987],[-76.738892000000021,80.888321000000019],[-76.797500999999954,80.886108000000092],[-76.841675000000009,80.885543999999982],[-77.168883999999935,80.886932000000058],[-77.201675000000023,80.887772000000098],[-77.308884000000035,80.893051000000071],[-77.428329000000019,80.903046000000018],[-77.454726999999991,80.90525800000006],[-77.581115999999895,80.911377000000073],[-77.766113000000018,80.906937000000084],[-77.980285999999921,80.90109300000006],[-78.421111999999994,80.879424999999912],[-78.836394999999982,80.85386699999998],[-78.869445999999925,80.852202999999975],[-78.885283999999956,80.853591999999992],[-78.896118000000001,80.854705999999965],[-78.908614999999998,80.858871000000136],[-78.922225999999966,80.866088999999988],[-78.93499799999995,80.875534000000016],[-78.93638599999997,80.881363000000079],[-78.930556999999965,80.981933999999967],[-78.928604000000007,80.990540000000067],[-78.839721999999995,81.016098],[-78.799987999999985,81.026382000000069],[-78.757781999999906,81.035537999999974],[-78.636672999999973,81.058594000000028],[-78.528884999999946,81.081940000000088],[-78.501113999999973,81.09165999999999],[-78.457503999999972,81.107758000000047],[-78.426101999999958,81.120818999999983],[-78.416396999999961,81.125259000000142],[-78.397231999999917,81.137497000000053],[-78.393065999999919,81.142761000000007],[-78.406386999999938,81.144988999999953],[-78.461945000000014,81.147491000000059],[-78.475280999999939,81.149719000000005],[-78.475829999999974,81.15248100000008],[-78.472777999999948,81.158325000000104],[-78.463622999999927,81.160812000000021],[-78.438598999999954,81.164703000000088],[-78.411391999999921,81.167479999999955],[-78.290833000000021,81.174698000000149],[-78.254729999999995,81.177765000000079],[-78.225005999999894,81.181930999999963],[-78.15943900000002,81.193862999999965],[-78.051102000000014,81.218597000000102],[-78.03694200000001,81.223312000000135],[-78.016662999999994,81.232758000000103],[-78.009170999999981,81.238585999999998],[-77.976943999999889,81.249145999999939],[-77.875274999999874,81.272766000000104],[-77.850829999999917,81.277205999999978],[-77.612503000000004,81.318877999999984],[-77.576949999999897,81.322494999999947],[-77.50306699999993,81.328323000000069],[-77.366394000000014,81.336105000000032],[-77.233611999999994,81.351089000000115],[-77.116942999999935,81.367751999999996],[-76.955275999999969,81.393874999999923],[-76.765014999999948,81.428588999999988],[-76.748610999999983,81.4327550000001],[-76.745269999999948,81.439148000000046],[-76.761123999999995,81.442749000000106],[-76.777785999999878,81.444427000000019],[-76.803328999999962,81.445526000000029],[-76.855835000000013,81.445526000000029],[-76.951110999999969,81.440536000000122],[-77.028609999999958,81.43331900000004],[-77.208617999999944,81.409424000000058],[-77.264450000000011,81.400818000000129],[-77.41722099999987,81.380538999999999],[-77.571395999999993,81.366652999999985],[-77.609726000000023,81.364425999999924],[-77.829177999999899,81.34248400000007],[-77.896117999999944,81.335541000000092],[-78.174163999999962,81.30053700000002],[-78.228333000000021,81.291656000000046],[-78.273620999999935,81.283599999999979],[-78.29222099999987,81.278320000000122],[-78.305557000000022,81.272766000000104],[-78.325835999999924,81.261383000000137],[-78.351944000000003,81.250275000000101],[-78.370270000000005,81.2452550000001],[-78.410004000000015,81.236374000000126],[-78.433883999999921,81.231934000000138],[-78.487212999999997,81.223038000000031],[-78.604996000000028,81.206375000000094],[-78.652495999999928,81.197205000000054],[-78.675277999999935,81.191925000000026],[-78.701950000000011,81.181655999999975],[-78.721114999999998,81.172211000000061],[-78.728333000000021,81.166382000000056],[-78.75111400000003,81.141663000000108],[-78.754181000000017,81.135818000000029],[-78.745833999999945,81.129150000000038],[-78.71665999999999,81.123306000000014],[-78.690552000000025,81.12164300000012],[-78.690825999999959,81.11943100000002],[-78.817504999999926,81.106093999999985],[-78.895019999999931,81.098999000000049],[-78.916945999999996,81.098037999999917],[-78.941375999999934,81.101088999999945],[-78.963622999999984,81.107758000000047],[-79.015014999999948,81.115539999999953],[-79.075287000000003,81.122757000000092],[-79.162780999999939,81.13220199999995],[-79.218062999999972,81.136932000000002],[-79.242767000000015,81.139984000000084],[-79.399170000000026,81.174698000000149],[-79.463622999999984,81.193313999999987],[-79.486114999999984,81.194977000000108],[-79.50167799999997,81.193588000000091],[-79.499434999999949,81.189972000000068],[-79.491669000000002,81.186095999999964],[-79.475829999999974,81.180542000000003],[-79.275283999999999,81.12359600000002],[-79.218886999999938,81.111099000000081],[-79.172501000000011,81.10386699999998],[-79.088837000000012,81.094757000000072],[-79.073623999999995,81.090820000000122],[-79.063613999999916,81.085541000000148],[-79.072783999999956,81.080826000000116],[-79.087783999999999,81.076660000000004],[-79.142226999999991,81.069153000000085],[-79.226944000000003,81.063034000000073],[-79.255279999999914,81.058868000000132],[-79.305266999999958,81.029984000000013],[-79.315826000000015,81.023880000000133],[-79.323623999999938,81.018326000000002],[-79.33666999999997,81.0086060000001],[-79.343886999999995,80.99832200000003],[-79.336945000000014,80.992203000000018],[-79.321120999999891,80.988586000000055],[-79.291381999999885,80.984984999999995],[-79.258347000000015,80.984421000000054],[-79.205275999999969,80.987762000000089],[-79.18472300000002,80.986374000000012],[-79.164718999999991,80.983047000000056],[-79.158889999999985,80.977768000000083],[-79.15834000000001,80.972763000000043],[-79.165282999999931,80.966660000000104],[-79.265288999999996,80.924149000000057],[-79.600829999999917,80.824432000000115],[-79.618056999999965,80.819442999999978],[-79.883621000000005,80.783325000000104],[-80.065552000000025,80.759720000000129],[-80.247498000000007,80.73692299999999],[-80.511123999999938,80.705826000000059],[-80.651947000000007,80.691925000000083],[-80.720551,80.684142999999949],[-80.855559999999969,80.663315000000068],[-80.919448999999929,80.655548000000124],[-80.956664999999987,80.651932000000045],[-81.336394999999925,80.623306000000127],[-81.533324999999991,80.607208000000071],[-81.575561999999991,80.604155999999989],[-81.808884000000035,80.59304800000001],[-81.966110000000015,80.579712000000029],[-82.353881999999942,80.556365999999969],[-82.434998000000007,80.553040000000124],[-82.798889000000031,80.539428999999984],[-82.881103999999937,80.536652000000061],[-82.956389999999999,80.536377000000073],[-83.027495999999928,80.538589000000115],[-83.096664000000033,80.541656000000046],[-83.151946999999893,80.546371000000079],[-83.165008999999998,80.55192599999998],[-83.170272999999895,80.564147999999932],[-83.168059999999912,80.576660000000118],[-83.165282999999931,80.589432000000102],[-83.161391999999864,80.601089000000059],[-83.156112999999948,80.606644000000131],[-83.146666999999979,80.612198000000149],[-83.096953999999982,80.639435000000049],[-83.078063999999927,80.644989000000066],[-83.056380999999988,80.649154999999951],[-82.773055999999997,80.68664600000011],[-82.527495999999985,80.703323000000125],[-82.431945999999982,80.708878000000027],[-82.250838999999928,80.716385000000116],[-82.216399999999965,80.719147000000021],[-82.135833999999875,80.729431000000091],[-82.025009000000011,80.746643000000063],[-81.948333999999932,80.759155000000078],[-81.908614999999941,80.767761000000007],[-81.762786999999889,80.810806000000127],[-81.758895999999993,80.813034000000073],[-81.767501999999922,80.821381000000088],[-81.943603999999993,80.833054000000118],[-81.961120999999935,80.833054000000118],[-81.996108999999933,80.83027600000014],[-82.05221599999993,80.822768999999994],[-82.099730999999906,80.813599000000124],[-82.146118000000001,80.803589000000045],[-82.193877999999984,80.796646000000067],[-82.332229999999981,80.781372000000147],[-82.513061999999934,80.763046000000145],[-82.526107999999965,80.752777000000094],[-82.535827999999867,80.747208000000114],[-82.543334999999956,80.74443100000002],[-82.567229999999995,80.740814000000057],[-82.601669000000015,80.738036999999963],[-82.940551999999968,80.714431999999988],[-83.311934999999949,80.687759000000028],[-83.356948999999929,80.685531999999967],[-83.516113000000018,80.701384999999959],[-83.541107000000011,80.704162999999994],[-83.547226000000023,80.706940000000088],[-83.569457999999997,80.739150999999993],[-83.5625,80.743866000000025],[-83.529723999999987,80.747482000000048],[-83.456664999999987,80.751099000000011],[-83.422500999999954,80.753876000000105],[-83.391387999999949,80.758041000000105],[-83.261947999999961,80.786377000000016],[-83.133057000000008,80.818878000000097],[-83.120270000000005,80.823317999999972],[-83.132492000000013,80.828598],[-83.158051,80.833603000000039],[-83.191100999999946,80.835815000000139],[-83.256957999999997,80.838593000000117],[-83.297225999999966,80.836104999999975],[-83.323333999999932,80.8316650000001],[-83.329177999999956,80.828323000000012],[-83.331954999999937,80.823883000000137],[-83.353881999999999,80.813599000000124],[-83.381377999999984,80.803864000000033],[-83.407226999999978,80.799422999999933],[-83.493332000000009,80.787766000000033],[-83.587218999999891,80.775269000000037],[-83.610549999999932,80.771652000000074],[-83.630828999999949,80.766937000000041],[-83.645554000000004,80.761658000000068],[-83.64916999999997,80.755554000000018],[-83.658889999999872,80.751937999999996],[-83.667769999999905,80.75],[-83.696655000000021,80.746643000000063],[-83.712783999999999,80.747757000000092],[-83.827498999999932,80.761383000000023],[-83.859160999999972,80.759155000000078],[-83.863892000000021,80.757492000000127],[-83.836394999999982,80.719710999999961],[-83.821670999999981,80.705826000000059],[-83.812499999999943,80.698318000000086],[-83.801391999999964,80.691925000000083],[-83.783065999999963,80.684142999999949],[-83.757232999999928,80.669708000000014],[-83.734436000000017,80.654160000000047],[-83.723327999999924,80.643875000000094],[-83.720000999999911,80.636658000000011],[-83.719726999999978,80.630813999999987],[-83.73582499999992,80.613037000000077],[-83.779175000000009,80.570831000000112],[-83.794723999999974,80.560257000000036],[-83.821120999999948,80.550536999999963],[-83.840560999999866,80.545532000000094],[-83.871108999999933,80.541367000000093],[-83.93472300000002,80.534424000000115],[-83.973327999999981,80.531937000000028],[-84.313323999999909,80.513611000000026],[-84.381103999999993,80.512207000000046],[-84.48971599999993,80.514434999999992],[-84.551392000000021,80.517761000000064],[-84.689437999999996,80.524994000000049],[-84.763625999999988,80.525818000000015],[-84.846664000000033,80.523315000000025],[-84.890563999999983,80.521102999999982],[-84.964447000000007,80.514434999999992],[-85.027221999999995,80.507217000000026],[-85.066956000000005,80.505264000000068],[-85.232772999999952,80.508881000000031],[-85.334731999999974,80.513611000000026],[-85.366652999999985,80.517487000000131],[-85.42582699999997,80.523041000000092],[-85.462218999999948,80.524994000000049],[-85.594727000000034,80.529159999999933],[-85.809433000000013,80.531937000000028],[-85.864165999999898,80.535538000000088],[-85.865829000000019,80.541367000000093],[-85.812774999999931,80.559143000000063],[-85.705841000000021,80.589706000000035],[-85.689162999999951,80.593872000000147],[-85.665008999999941,80.598601999999971],[-85.613051999999982,80.606368999999972],[-85.571945000000028,80.615265000000079],[-85.564712999999927,80.619431000000134],[-85.594451999999933,80.6202550000001],[-85.636397999999986,80.619141000000127],[-85.694716999999969,80.613602000000128],[-85.744719999999916,80.606368999999972],[-85.793059999999855,80.596939000000077],[-85.854720999999984,80.582214000000135],[-85.889724999999999,80.573044000000039],[-85.925277999999992,80.562485000000038],[-85.950606999999991,80.552947999999958],[-85.95666499999993,80.548325000000091],[-85.982773000000009,80.537491000000045],[-86.011947999999961,80.533324999999934],[-86.037215999999944,80.530823000000055],[-86.080840999999964,80.528320000000065],[-86.148345999999947,80.53166200000004],[-86.177490000000034,80.534149000000127],[-86.428329000000019,80.560257000000036],[-86.639998999999932,80.583054000000004],[-86.718062999999972,80.59304800000001],[-86.739165999999898,80.597487999999998],[-86.744995000000017,80.603043000000071],[-86.732498000000021,80.615265000000079],[-86.680282999999974,80.654984000000013],[-86.660003999999958,80.666091999999992],[-86.638061999999991,80.676651000000049],[-86.514724999999942,80.729431000000091],[-86.497771999999941,80.735260000000096],[-86.466110000000015,80.74552900000009],[-86.410004000000015,80.760818000000029],[-86.338333000000034,80.775542999999971],[-86.244719999999973,80.794144000000131],[-86.225554999999929,80.799149],[-86.174438000000009,80.81442300000009],[-86.050277999999992,80.856644000000074],[-85.964171999999962,80.886932000000058],[-85.846114999999998,80.928589000000102],[-85.828339000000028,80.93414300000012],[-85.77416999999997,80.948868000000061],[-85.698607999999922,80.962769000000037],[-85.605835000000013,80.975815000000125],[-85.556106999999997,80.981933999999967],[-85.003066999999874,81.028320000000008],[-84.928878999999995,81.030822999999941],[-84.726669000000015,81.031097000000102],[-84.404998999999918,81.043869000000086],[-84.368332000000009,81.046097000000032],[-84.20666499999993,81.060531999999967],[-84.119994999999903,81.067490000000134],[-84.025009000000011,81.070830999999998],[-83.908050999999944,81.071381000000031],[-83.823623999999938,81.073608000000092],[-83.529998999999918,81.090271000000143],[-83.31138599999997,81.103317000000118],[-83.15055799999999,81.120529000000147],[-83.12332200000003,81.12303200000008],[-83.053328999999962,81.123306000000014],[-82.943603999999993,81.120818999999983],[-82.869445999999925,81.121368000000075],[-82.826401000000033,81.12303200000008],[-82.785004000000015,81.125534000000016],[-82.760283999999956,81.129150000000038],[-82.738891999999964,81.133880999999974],[-82.707229999999981,81.144440000000031],[-82.688323999999966,81.148331000000098],[-82.64416499999993,81.151657000000114],[-82.599166999999966,81.152771000000087],[-82.531386999999938,81.149993999999992],[-82.50306699999993,81.147766000000047],[-82.466659999999933,81.148331000000098],[-82.37222300000002,81.174698000000149],[-82.364440999999999,81.17942800000003],[-82.389998999999989,81.180266999999958],[-82.420837000000006,81.17942800000003],[-82.484160999999972,81.169983000000116],[-82.52305599999994,81.166382000000056],[-82.565276999999924,81.166092000000049],[-82.665008999999998,81.17442299999999],[-82.828063999999983,81.173308999999961],[-82.866652999999928,81.169708000000128],[-82.894164999999987,81.165268000000083],[-82.926940999999999,81.161102000000028],[-82.962783999999942,81.158325000000104],[-83.14973399999991,81.151382000000126],[-83.453338999999971,81.13220199999995],[-83.757507000000032,81.113312000000008],[-84.116104000000007,81.0977630000001],[-84.372771999999941,81.092209000000082],[-84.58555599999994,81.086380000000077],[-84.797500999999954,81.078323000000125],[-85.065551999999911,81.066375999999991],[-85.211944999999901,81.056931000000077],[-85.25,81.05525200000011],[-85.291381999999999,81.054703000000131],[-85.404448999999943,81.057755000000043],[-85.482773000000009,81.058594000000028],[-85.572509999999966,81.05664100000007],[-85.681670999999938,81.049423000000104],[-85.75556899999998,81.041367000000037],[-85.817779999999971,81.032761000000107],[-85.988602000000014,81.006653000000142],[-86.143340999999907,80.978317000000061],[-86.30972300000002,80.940811000000053],[-86.351944000000003,80.930542000000059],[-87.061935000000005,80.727478000000133],[-87.076401000000033,80.7227630000001],[-87.083618000000001,80.716934000000094],[-87.079078999999979,80.707024000000104],[-87.080291999999986,80.699142000000052],[-87.121383999999921,80.677475000000015],[-87.180557000000022,80.649154999999951],[-87.215011999999945,80.638321000000076],[-87.240554999999972,80.634155000000021],[-87.273055999999997,80.630813999999987],[-87.315001999999936,80.629424999999969],[-87.458054000000004,80.627762000000075],[-87.489715999999873,80.627472000000012],[-87.559433000000013,80.627472000000012],[-87.594726999999978,80.628586000000041],[-87.628051999999968,80.632202000000063],[-87.777221999999938,80.648880000000133],[-87.864166000000012,80.659424000000001],[-87.954726999999878,80.671645999999953],[-88.139724999999999,80.685256999999922],[-88.17721599999993,80.686920000000043],[-88.196105999999986,80.688582999999994],[-88.22222899999997,80.691085999999984],[-88.348891999999921,80.708602999999982],[-88.406661999999926,80.716934000000094],[-88.488601999999958,80.731934000000024],[-88.566956000000005,80.74859600000002],[-88.706116000000009,80.772766000000047],[-88.967498999999862,80.808594000000085],[-89.034163999999976,80.816376000000048],[-89.125823999999966,80.825821000000076],[-89.290557999999976,80.849426000000108],[-89.334731999999917,80.857483000000059],[-89.382492000000013,80.86970500000001],[-89.398055999999997,80.876082999999994],[-89.450561999999934,80.903320000000122],[-89.462218999999948,80.909988000000055],[-89.466110000000015,80.914153999999996],[-89.462218999999948,80.919144000000017],[-89.442763999999897,80.923599000000024],[-89.380828999999892,80.933044000000109],[-89.235274999999945,80.948318000000029],[-89.18638599999997,80.953048999999965],[-88.905563000000029,80.977768000000083],[-88.858611999999994,80.981368999999972],[-88.766861000000006,80.986801000000014],[-88.590285999999992,80.996368000000018],[-88.513901000000033,80.99832200000003],[-88.283324999999991,81.002213000000097],[-88.089721999999938,81.003601000000003],[-88.011397999999986,81.003326000000015],[-87.826674999999966,80.998032000000023],[-87.755004999999983,80.994980000000112],[-87.689437999999939,80.990814],[-87.628051999999968,80.984711000000061],[-87.597504000000015,80.980819999999994],[-87.524169999999913,80.977203000000031],[-87.446380999999974,80.976928999999927],[-87.279448999999943,80.981933999999967],[-87.15943900000002,80.986922999999933],[-87.119719999999973,80.989700000000028],[-87.089172000000019,80.994141000000127],[-87.064712999999983,80.998871000000008],[-87.030562999999972,81.001938000000109],[-86.983062999999902,81.003876000000048],[-86.946105999999986,81.004166000000055],[-86.755004999999983,81.001099000000124],[-86.711670000000026,81.002487000000031],[-86.671936000000017,81.005264000000125],[-86.635559000000001,81.009430000000066],[-86.541945999999996,81.020264000000111],[-86.419448999999986,81.036102000000142],[-86.061110999999983,81.082764000000054],[-85.916396999999961,81.104980000000012],[-85.916396999999961,81.110260000000096],[-85.907227000000034,81.113875999999948],[-85.887512000000015,81.118866000000025],[-85.562774999999988,81.17942800000003],[-85.483063000000016,81.192748999999992],[-85.425277999999935,81.201660000000061],[-85.297500999999954,81.218597000000102],[-85.22193900000002,81.226379000000065],[-85.02027899999996,81.244980000000055],[-84.976394999999968,81.248596000000134],[-84.876388999999961,81.254715000000147],[-84.832503999999972,81.258330999999998],[-84.802490000000034,81.261658000000125],[-84.776108000000022,81.266097999999943],[-84.733886999999982,81.281097000000045],[-84.735549999999989,81.285537999999974],[-84.745834000000002,81.289429000000041],[-84.899993999999936,81.304977000000008],[-84.936660999999958,81.307755000000043],[-84.975554999999986,81.307479999999998],[-85.029175000000009,81.305817000000047],[-85.279174999999952,81.289978000000133],[-85.361388999999974,81.28276100000005],[-85.768340999999964,81.244705000000067],[-85.950561999999991,81.224701000000096],[-86.018341000000021,81.215820000000008],[-86.077498999999932,81.207489000000066],[-86.154174999999952,81.193313999999987],[-86.225006000000008,81.173874000000012],[-86.240829000000019,81.16914399999996],[-86.256957999999941,81.162766000000033],[-86.299437999999896,81.148605000000032],[-86.338333000000034,81.138596000000007],[-86.404998999999975,81.129700000000071],[-86.438048999999921,81.126083000000108],[-86.472777999999892,81.122757000000092],[-86.521118000000001,81.119704999999954],[-86.650833000000034,81.115814000000114],[-86.956389999999999,81.099426000000051],[-87.111388999999917,81.087769000000094],[-87.297225999999966,81.076935000000049],[-87.637512000000015,81.059417999999994],[-87.678878999999995,81.058594000000028],[-87.720000999999911,81.059417999999994],[-87.841385000000002,81.062759000000028],[-88.0625,81.069992000000013],[-88.217772999999852,81.071381000000031],[-88.339995999999985,81.069717000000026],[-88.43499799999995,81.064148000000046],[-88.571670999999924,81.054703000000131],[-88.65834000000001,81.051376000000005],[-88.740828999999962,81.049713000000111],[-88.889998999999932,81.051926000000037],[-88.964721999999938,81.049423000000104],[-89.041672000000005,81.041091999999992],[-89.210555999999997,81.026657000000057],[-89.25556899999998,81.023880000000133],[-89.341675000000009,81.020264000000111],[-89.629165999999998,81.009155000000021],[-89.746658000000025,81.008881000000088],[-89.787505999999951,81.009720000000073],[-89.820847000000015,81.010817999999972],[-89.87388599999997,81.016388000000006],[-90.011947999999961,81.033051000000114],[-90.06361400000003,81.039702999999975],[-90.095275999999899,81.044708000000071],[-90.149170000000026,81.054977000000065],[-90.19776899999988,81.069717000000026],[-90.210007000000019,81.07499700000011],[-90.338057999999933,81.151657000000114],[-90.351944000000003,81.167479999999955],[-90.325561999999934,81.181930999999963],[-90.277221999999995,81.197205000000054],[-90.102218999999991,81.230270000000132],[-90.043059999999969,81.239426000000037],[-90.011123999999995,81.241928000000144],[-89.972778000000005,81.24275200000011],[-89.870543999999938,81.242203000000131],[-89.74610899999999,81.236649],[-89.669158999999866,81.218048000000124],[-89.635009999999909,81.212203999999929],[-89.573059000000001,81.206940000000145],[-89.535004000000015,81.206100000000106],[-89.491104000000007,81.206375000000094],[-89.447219999999902,81.208328000000051],[-89.357223999999974,81.214432000000102],[-89.281386999999995,81.221649000000014],[-89.136672999999973,81.238876000000005],[-89.088333000000034,81.242477000000065],[-89.044448999999986,81.24275200000011],[-88.982223999999974,81.241928000000144],[-88.954178000000013,81.24275200000011],[-88.944152999999972,81.24414100000007],[-88.935821999999973,81.247756999999979],[-88.949721999999895,81.253601000000003],[-88.979445999999996,81.258330999999998],[-89.162215999999944,81.255829000000119],[-89.198607999999865,81.253326000000129],[-89.265014999999948,81.244431000000134],[-89.307220000000029,81.240540000000067],[-89.335280999999952,81.24275200000011],[-89.443603999999937,81.260543999999982],[-89.687774999999988,81.289978000000133],[-89.775008999999955,81.296371000000079],[-89.868056999999965,81.306090999999981],[-89.898620999999935,81.31053199999991],[-89.91722099999987,81.314422999999977],[-89.950287000000003,81.324158000000068],[-89.952498999999875,81.329437000000041],[-89.940552000000025,81.333328000000108],[-89.916396999999904,81.336928999999998],[-89.882216999999969,81.340271000000087],[-89.702224999999999,81.350266000000033],[-89.627212999999983,81.356644000000017],[-89.242492999999968,81.423035000000027],[-89.059158000000025,81.455551000000071],[-88.928328999999962,81.485535000000141],[-88.90943900000002,81.490814000000114],[-88.846953999999982,81.49971000000005],[-88.715835999999967,81.513045999999974],[-88.545272999999952,81.525269000000037],[-88.494995000000017,81.527206000000092],[-88.406113000000005,81.528320000000065],[-88.37110899999999,81.526931999999988],[-88.161391999999921,81.530273000000022],[-88.029998999999975,81.535812000000021],[-87.984160999999972,81.535812000000021],[-87.959732000000031,81.534714000000122],[-87.939437999999996,81.531661999999983],[-87.893699999999967,81.524712000000136],[-87.801391999999964,81.515548999999965],[-87.679442999999935,81.51388500000013],[-87.490279999999984,81.508880999999974],[-87.431380999999931,81.50471500000009],[-87.398894999999982,81.500824000000023],[-87.343063000000029,81.492752000000053],[-87.311110999999983,81.488876000000005],[-87.276672000000019,81.485809000000074],[-87.251403999999923,81.487488000000042],[-87.244719999999973,81.490265000000136],[-87.286391999999921,81.505554000000075],[-87.288329999999974,81.506104000000107],[-87.315551999999968,81.513321000000019],[-87.37860099999989,81.517212000000086],[-87.489166000000012,81.523315000000025],[-87.645844000000011,81.527480999999909],[-87.721664000000033,81.532211000000132],[-87.751952999999958,81.535263000000043],[-87.915008999999941,81.552765000000079],[-88.279449,81.579436999999984],[-88.306380999999931,81.581374999999923],[-88.352218999999991,81.579712000000029],[-88.392226999999991,81.57777400000009],[-88.446944999999971,81.572220000000073],[-88.552215999999987,81.558868000000018],[-88.642226999999934,81.551651000000106],[-88.669448999999986,81.550537000000134],[-88.769164999999987,81.551086000000112],[-88.849990999999989,81.550537000000134],[-88.900283999999886,81.548325000000091],[-88.998046999999985,81.540543000000127],[-89.073058999999944,81.532211000000132],[-89.145844000000011,81.523041000000092],[-89.282500999999911,81.505264000000011],[-89.548339999999882,81.477203000000145],[-89.585555999999997,81.473037999999974],[-89.710280999999952,81.455261000000064],[-90.011397999999929,81.416930999999977],[-90.370833999999945,81.375259000000085],[-90.443053999999961,81.366652999999985],[-90.467498999999918,81.367751999999996],[-90.500564999999938,81.371368000000018],[-90.535827999999981,81.37692300000009],[-90.553329000000019,81.38499500000006],[-90.525283999999999,81.388596000000121],[-90.517226999999934,81.389160000000061],[-90.478881999999999,81.394440000000145],[-90.481383999999991,81.396652000000017],[-90.487777999999935,81.398604999999975],[-90.516953000000001,81.402481000000023],[-90.643616000000009,81.416381999999999],[-90.678328999999962,81.417480000000126],[-90.746658000000025,81.422211000000061],[-90.779998999999975,81.425537000000077],[-90.811385999999914,81.429977000000065],[-90.841110000000015,81.435531999999967],[-90.854171999999949,81.440536000000122],[-90.856658999999922,81.444138000000066],[-90.853881999999942,81.450821000000076],[-90.848342999999943,81.454987000000131],[-90.80082699999997,81.464995999999985],[-90.770554000000004,81.469711000000018],[-90.583069000000023,81.497482000000105],[-90.540282999999988,81.501663000000008],[-90.312209999999993,81.531371999999976],[-90.130553999999904,81.564423000000147],[-89.874709999999936,81.599152000000004],[-89.797500999999954,81.602478000000019],[-89.674438000000009,81.601654000000053],[-89.632492000000013,81.604706000000022],[-89.597503999999958,81.614151000000049],[-89.585006999999962,81.619705000000067],[-89.585006999999962,81.625809000000061],[-89.601943999999889,81.627762000000018],[-89.798889000000031,81.629974000000061],[-89.868056999999965,81.630264000000125],[-89.914169000000015,81.628310999999997],[-89.962218999999948,81.625534000000073],[-90.069457999999941,81.633606000000043],[-90.111580000000004,81.656746000000112],[-90.204726999999934,81.686371000000065],[-90.271392999999989,81.697479000000101],[-90.296950999999979,81.698593000000074],[-90.330291999999986,81.696090999999967],[-90.353057999999976,81.690536000000066],[-90.36082499999992,81.685257000000092],[-90.355270000000019,81.673599000000081],[-90.337218999999948,81.662491000000102],[-90.354720999999984,81.651382000000012],[-90.511123999999995,81.65776100000005],[-90.604720999999927,81.664703000000145],[-90.638901000000033,81.668045000000063],[-90.678878999999995,81.668869000000029],[-90.718886999999938,81.666656000000103],[-90.734725999999966,81.660812000000078],[-90.74221799999998,81.655548000000067],[-90.763625999999931,81.645537999999988],[-90.779723999999987,81.641098],[-90.803878999999995,81.636108000000092],[-90.834731999999974,81.631363000000079],[-90.878052000000025,81.627472000000012],[-90.923888999999974,81.625259000000028],[-90.966948999999943,81.621094000000028],[-90.99110399999995,81.616088999999988],[-91.006957999999997,81.598876999999959],[-91.003341999999918,81.592209000000025],[-90.988602000000014,81.579436999999984],[-90.988602000000014,81.557754999999986],[-91.071670999999981,81.537200999999982],[-91.091949,81.533874999999966],[-91.104445999999996,81.534424000000115],[-91.113891999999964,81.539978000000076],[-91.236938000000009,81.543320000000051],[-91.313888999999961,81.53414900000007],[-91.401397999999972,81.526382000000126],[-91.446380999999974,81.524428999999998],[-91.463332999999977,81.526093000000003],[-91.467772999999909,81.527206000000092],[-91.452498999999932,81.531661999999983],[-91.428604000000007,81.536652000000061],[-91.411117999999988,81.541931000000034],[-91.406386999999938,81.547760000000039],[-91.444153000000028,81.583603000000096],[-91.474441999999954,81.588882000000069],[-91.654175000000009,81.605819999999994],[-91.74722300000002,81.60914600000001],[-91.85722399999986,81.612762000000089],[-91.878326000000015,81.614151000000049],[-91.900283999999999,81.616928000000144],[-91.938599000000011,81.625534000000073],[-91.948607999999922,81.631088000000091],[-91.956664999999987,81.658600000000035],[-91.949432000000002,81.662201000000096],[-91.926940999999999,81.664992999999981],[-91.902221999999938,81.666931000000091],[-91.867767000000015,81.663315000000068],[-91.838897999999858,81.658600000000035],[-91.801101999999958,81.658600000000035],[-91.770844000000011,81.663315000000068],[-91.73721299999994,81.686920000000043],[-91.725829999999917,81.706650000000025],[-91.723617999999874,81.72164900000007],[-91.485549999999989,81.769989000000123],[-91.386123999999995,81.77388000000002],[-91.351395000000025,81.770264000000111],[-91.287506000000008,81.761931999999945],[-91.255004999999983,81.759155000000078],[-91.212508999999898,81.759430000000066],[-91.053328999999906,81.761658000000011],[-91.03443900000002,81.763885000000073],[-91.033324999999991,81.76776099999995],[-91.05749499999996,81.772766000000047],[-91.090560999999923,81.777206000000035],[-91.117766999999958,81.784424000000058],[-91.140563999999983,81.791930999999977],[-91.152495999999928,81.798035000000027],[-91.147232000000031,81.803864000000033],[-91.137511999999958,81.808594000000085],[-91.101104999999961,81.818878000000097],[-91.051665999999955,81.828872999999987],[-91.001113999999973,81.832764000000054],[-90.852218999999991,81.842483999999956],[-90.727492999999981,81.841094999999996],[-90.704178000000013,81.843597000000045],[-90.689986999999917,81.848602000000085],[-90.686377999999991,81.853966000000014],[-90.678328999999962,81.858597000000032],[-90.635009999999966,81.868866000000025],[-90.610001000000011,81.873871000000065],[-90.565276999999867,81.878036000000066],[-90.436661000000015,81.887497000000053],[-90.338057999999933,81.893051000000071],[-90.245270000000005,81.896102999999982],[-90.154449,81.896652000000131],[-89.990828999999962,81.905548000000067],[-89.783324999999934,81.917206000000078],[-89.735824999999977,81.917480000000012],[-89.700835999999981,81.915543000000127],[-89.676940999999999,81.9102630000001],[-89.683051999999975,81.899437000000148],[-89.682494999999903,81.883330999999998],[-89.649445000000014,81.863312000000064],[-89.629989999999964,81.856369000000029],[-89.461394999999982,81.818054000000132],[-89.425003000000004,81.815262000000018],[-89.356383999999935,81.811096000000134],[-89.244720000000029,81.846375000000023],[-89.227218999999991,81.852203000000145],[-89.203223999999977,81.878036000000066],[-89.19923399999999,81.881537999999921],[-89.199059000000034,81.885208000000034],[-89.213218999999981,81.888382000000092],[-89.328063999999927,81.902206000000092],[-89.367217999999923,81.905548000000067],[-89.397506999999962,81.909424000000115],[-89.419158999999979,81.915543000000127],[-89.416945999999939,81.925812000000008],[-89.397780999999895,81.930817000000047],[-89.371658000000025,81.935806000000014],[-89.338897999999972,81.940262000000075],[-89.288895000000025,81.943038999999999],[-89.249724999999955,81.941086000000041],[-89.157393999999954,81.928368000000091],[-89.156218999999908,81.925201000000072],[-89.152556999999945,81.921371000000079],[-89.133057000000008,81.918533000000082],[-89.074721999999952,81.911652000000061],[-89.033324999999991,81.912201000000039],[-89.007232999999871,81.915543000000127],[-88.98971599999993,81.921097000000145],[-88.986388999999974,81.944976999999938],[-88.992767000000015,81.951385000000073],[-89.011947999999904,81.958603000000096],[-89.048339999999996,81.978043000000071],[-89.054442999999992,81.987487999999985],[-89.041106999999954,81.993041999999946],[-89.021117999999944,81.998032000000023],[-88.963897999999972,82.008041000000048],[-88.77305599999994,82.039429000000041],[-88.625548999999978,82.062759000000028],[-88.589721999999938,82.066665999999998],[-88.543059999999912,82.070540999999992],[-88.443054000000018,82.074997000000053],[-88.296660999999915,82.080276000000026],[-88.25,82.080826000000059],[-88.145003999999972,82.086928999999998],[-88.11361699999992,82.090545999999961],[-88.09973100000002,82.093048000000067],[-88.095001000000025,82.096374999999966],[-88.085281000000009,82.101379000000122],[-88.075561999999934,82.104980000000012],[-88.038329999999974,82.103867000000093],[-87.91194200000001,82.090820000000065],[-87.71833799999996,82.083878000000027],[-87.702224999999942,82.086928999999998],[-87.666396999999904,82.089431999999988],[-87.641952999999944,82.090271000000143],[-87.599730999999963,82.089157],[-87.50140399999998,82.084152000000131],[-87.402221999999938,82.07388300000008],[-87.352782999999931,82.06721500000009],[-87.333617999999888,82.063309000000061],[-87.271666999999979,82.047759999999926],[-87.230559999999969,82.036926000000051],[-87.195830999999998,82.026382000000012],[-87.183608999999933,82.022491000000116],[-87.174437999999896,82.014708999999982],[-87.173324999999977,82.011107999999922],[-87.178603999999893,82.007767000000115],[-87.197768999999937,82.002213000000097],[-87.232773000000009,81.99331699999999],[-87.258057000000008,81.989426000000094],[-87.299987999999985,81.979155999999989],[-87.314437999999996,81.973877000000016],[-87.309432999999956,81.967484000000013],[-87.265839000000028,81.958878000000141],[-87.169158999999979,81.945526000000086],[-87.101669000000015,81.937759000000142],[-87.063323999999909,81.934418000000107],[-86.939437999999996,81.918868999999972],[-86.877212999999983,81.909424000000115],[-86.828887999999949,81.897491000000059],[-86.804169000000002,81.893051000000071],[-86.768341000000021,81.890273999999977],[-86.726669000000015,81.891937000000098],[-86.726944000000003,81.897217000000126],[-86.734160999999915,81.902771000000143],[-86.745833999999945,81.906647000000021],[-86.834732000000031,81.927765000000136],[-86.86361699999992,81.933593999999971],[-86.919448999999986,81.942748999999992],[-87.066101000000003,81.954987000000074],[-87.098052999999936,81.958328000000108],[-87.127212999999927,81.963882000000069],[-87.130279999999857,81.968322999999998],[-87.00140399999998,82.036102000000085],[-86.987212999999997,82.039978000000019],[-86.931670999999938,82.049423000000047],[-86.892501999999979,82.054153000000099],[-86.84333799999996,82.05720500000001],[-86.791945999999939,82.058029000000147],[-86.583617999999944,82.053863999999976],[-86.356383999999991,82.053588999999988],[-86.27806099999998,82.050812000000064],[-86.239166000000012,82.048599000000081],[-86.202788999999996,82.04553199999998],[-86.169158999999922,82.041656000000103],[-86.016112999999962,82.016663000000051],[-85.960555999999997,82.00749200000007],[-85.914443999999946,81.997481999999991],[-85.815001999999993,81.973877000000016],[-85.767501999999922,81.961928999999941],[-85.731383999999878,81.949996999999996],[-85.628875999999991,81.916092000000106],[-85.467223999999987,81.867203000000131],[-85.422501000000011,81.857483000000059],[-85.379439999999988,81.856934000000081],[-85.371658000000025,81.859711000000004],[-85.37388599999997,81.863876000000005],[-85.385833999999932,81.874985000000095],[-85.398055999999997,81.881088000000034],[-85.441939999999988,81.893875000000037],[-85.469451999999876,81.899719000000005],[-85.566101000000003,81.924988000000042],[-85.654723999999987,81.950821000000133],[-85.731948999999986,81.983322000000044],[-85.729996000000028,81.987762000000089],[-85.726943999999946,81.990265000000079],[-85.693877999999984,81.994980000000112],[-85.650557999999933,81.99832200000003],[-85.559432999999956,82.001663000000065],[-85.258621000000005,81.996933000000013],[-85.217498999999975,81.995529000000033],[-85.188323999999909,81.99275200000011],[-85.165833000000021,81.985259999999982],[-85.160004000000015,81.979706000000022],[-85.140563999999927,81.966095000000053],[-85.096389999999985,81.945816000000093],[-85.018889999999999,81.919434000000024],[-84.984160999999915,81.911102000000028],[-84.879439999999988,81.887497000000053],[-84.838897999999915,81.882476999999994],[-84.816887000000008,81.885367999999914],[-84.821884000000011,81.888214000000062],[-84.844222999999886,81.894882000000052],[-84.863891999999964,81.900269000000037],[-84.915008999999998,81.918045000000006],[-84.994719999999973,81.948593000000017],[-85.025283999999942,81.960815000000139],[-85.037216000000001,81.966933999999981],[-85.048889000000031,81.974426000000108],[-85.066100999999946,81.987487999999985],[-85.055556999999965,81.990814],[-85.038329999999974,81.994141000000127],[-85.00111400000003,81.994141000000127],[-84.929169000000002,81.993041999999946],[-84.889174999999966,81.990265000000079],[-84.858886999999925,81.985259999999982],[-84.831680000000006,81.979430999999977],[-84.816665999999941,81.970825000000048],[-84.814437999999996,81.966385000000059],[-84.815276999999924,81.961104999999975],[-84.821945000000028,81.949141999999938],[-84.797606999999971,81.930870000000141],[-84.789267999999993,81.924698000000035],[-84.75144199999994,81.910538000000088],[-84.74227899999994,81.908378999999968],[-84.688598999999954,81.891937000000098],[-84.656113000000005,81.887772000000098],[-84.635283999999956,81.886108000000036],[-84.621933000000013,81.886932000000002],[-84.604996000000028,81.88998400000014],[-84.714721999999995,81.969986000000119],[-84.729720999999984,81.977203000000031],[-84.751677999999913,81.984711000000061],[-84.815276999999924,82.00082400000008],[-84.840835999999967,82.006103999999993],[-84.89973399999991,82.015274000000034],[-84.93249499999996,82.019440000000088],[-85.039992999999981,82.028594999999996],[-85.116942999999935,82.033051000000057],[-85.405838000000017,82.042205999999965],[-85.678328999999906,82.054428000000087],[-85.755843999999968,82.058868000000132],[-85.851669000000015,82.06721500000009],[-85.915833000000021,82.07748400000014],[-85.999725000000012,82.094147000000021],[-86.062209999999936,82.103867000000093],[-86.091109999999901,82.104431000000034],[-86.278885000000002,82.107208000000128],[-86.485001000000011,82.114150999999936],[-86.565551999999968,82.118865999999969],[-86.637511999999958,82.124419999999986],[-86.706116000000009,82.131927000000132],[-86.731383999999935,82.136383000000023],[-86.752228000000002,82.141098000000056],[-86.856658999999922,82.184708000000057],[-86.869155999999919,82.195251000000042],[-86.876099000000011,82.202208999999982],[-86.871933000000013,82.207764000000111],[-86.843613000000005,82.212494000000106],[-86.764174999999966,82.221649000000014],[-86.669448999999929,82.228316999999947],[-86.619445999999982,82.229705999999965],[-86.571670999999981,82.230270000000075],[-86.520003999999915,82.229705999999965],[-86.316665999999998,82.224701000000096],[-86.228881999999885,82.224701000000096],[-86.181106999999997,82.225266000000147],[-86.137787000000003,82.226929000000041],[-85.984436000000017,82.237488000000099],[-85.934158000000025,82.238876000000005],[-85.841384999999946,82.239151000000049],[-85.798889000000031,82.237762000000032],[-85.753890999999953,82.237488000000099],[-85.706115999999952,82.23803700000002],[-85.662215999999944,82.239699999999971],[-85.61999499999996,82.243591000000038],[-85.603881999999999,82.24914600000011],[-85.598891999999978,82.254440000000102],[-85.580565999999976,82.264434999999992],[-85.557770000000005,82.269440000000088],[-85.508347000000015,82.273041000000092],[-85.413895000000025,82.27609300000006],[-85.370833999999945,82.279984000000127],[-85.350554999999929,82.283875000000023],[-85.34722899999997,82.286377000000073],[-85.367492999999911,82.291092000000106],[-85.396392999999989,82.29693600000013],[-85.457229999999981,82.307479999999998],[-85.481673999999941,82.313599000000011],[-85.489990000000034,82.319716999999969],[-85.515015000000005,82.343322999999998],[-85.531677000000002,82.369705000000067],[-85.50167799999997,82.393600000000106],[-85.501403999999923,82.398880000000133],[-85.515288999999996,82.403320000000008],[-85.534164000000033,82.407486000000063],[-85.669448999999872,82.409424000000001],[-85.866942999999992,82.421920999999998],[-85.904998999999975,82.424988000000099],[-85.921111999999994,82.429977000000065],[-85.911941999999954,82.435806000000071],[-85.819732999999928,82.454437000000098],[-85.794723999999974,82.458602999999982],[-85.746947999999975,82.461380000000077],[-85.708617999999944,82.463608000000022],[-85.502501999999993,82.471099999999979],[-85.298614999999927,82.478042999999957],[-85.046950999999979,82.481934000000024],[-85.003066999999874,82.480820000000051],[-84.693877999999927,82.471375000000023],[-84.662780999999995,82.468596999999988],[-84.641678000000013,82.465546000000018],[-84.62222300000002,82.459152000000131],[-84.616394000000014,82.453598000000113],[-84.613326999999913,82.447204999999997],[-84.613326999999913,82.4433140000001],[-84.631377999999984,82.440262000000018],[-84.787780999999995,82.434982000000105],[-84.895279000000016,82.433594000000028],[-84.940552000000025,82.431931000000077],[-84.943877999999984,82.425812000000064],[-84.916655999999932,82.42053199999998],[-84.888610999999855,82.416930999999977],[-84.714721999999995,82.405822999999941],[-84.559722999999906,82.394989000000066],[-84.482498000000021,82.389435000000105],[-84.449996999999996,82.386107999999979],[-84.418334999999956,82.381088000000091],[-84.388061999999991,82.371094000000085],[-84.384170999999924,82.366089000000045],[-84.387221999999952,82.361649],[-84.378600999999946,82.356933999999967],[-84.34445199999999,82.352768000000083],[-84.303329000000019,82.355819999999994],[-84.228881999999999,82.363876000000062],[-84.180556999999965,82.368042000000003],[-84.146956999999986,82.369705000000067],[-84.095550999999944,82.371094000000085],[-84.047226000000023,82.371368000000018],[-83.961394999999925,82.368591000000094],[-83.876937999999939,82.364151000000106],[-83.841948999999943,82.361374000000012],[-83.767501999999979,82.353043000000071],[-83.606383999999935,82.33137499999998],[-83.516402999999968,82.316940000000045],[-83.384734999999978,82.282210999999961],[-83.36860699999994,82.276381999999955],[-83.360001000000011,82.269440000000088],[-83.360001000000011,82.263611000000026],[-83.369155999999975,82.251663000000008],[-83.371933000000013,82.24470500000001],[-83.371933000000013,82.239151000000049],[-83.344451999999933,82.227203000000145],[-83.308334000000002,82.218323000000112],[-83.24221799999998,82.204163000000051],[-83.184157999999968,82.194702000000063],[-83.130553999999961,82.184981999999991],[-83.083892999999932,82.175812000000121],[-83.022781000000009,82.159424000000058],[-83,82.151093000000003],[-82.976669000000015,82.138321000000133],[-82.953063999999983,82.119979999999998],[-82.95666499999993,82.109711000000118],[-82.958617999999944,82.104431000000034],[-82.968338000000017,82.098038000000088],[-82.978058000000033,82.093872000000033],[-83.001953000000015,82.089157],[-83.0625,82.080276000000026],[-83.126098999999954,82.072495000000004],[-83.128051999999968,82.06721500000009],[-83.111937999999952,82.065261999999962],[-83.076400999999919,82.061920000000043],[-82.974166999999966,82.064986999999974],[-82.888335999999981,82.072495000000004],[-82.797501000000011,82.077773999999977],[-82.758057000000008,82.076934999999992],[-82.674438000000009,82.073043999999925],[-82.636397999999986,82.070540999999992],[-82.421660999999972,82.066940000000102],[-82.284163999999976,82.066375999999991],[-82.199432000000002,82.064147999999989],[-82.122222999999906,82.058594000000028],[-82.055556999999965,82.050812000000064],[-81.963622999999927,82.037201000000096],[-81.926101999999958,82.034714000000008],[-81.889998999999989,82.034988000000112],[-81.878051999999968,82.03637700000013],[-81.884734999999921,82.041091999999992],[-81.924164000000019,82.058868000000132],[-81.966110000000015,82.071105999999986],[-82.020844000000011,82.082213999999965],[-82.05860899999999,82.084717000000126],[-82.102492999999981,82.085541000000092],[-82.243056999999965,82.084991000000059],[-82.417496000000028,82.087204000000042],[-82.546386999999982,82.090271000000143],[-82.58444199999991,82.09275800000006],[-82.619719999999916,82.096099999999979],[-82.651947000000007,82.100266000000033],[-82.676940999999943,82.10775799999999],[-82.683884000000035,82.118317000000047],[-82.688599000000011,82.126083000000108],[-82.697495000000004,82.131362999999965],[-82.717223999999931,82.142761000000007],[-82.731383999999935,82.149993999999992],[-82.772232000000031,82.163315000000125],[-82.860275000000001,82.187759000000085],[-82.886947999999961,82.193862999999908],[-82.94027699999998,82.203598],[-82.987503000000004,82.214995999999985],[-83.011397999999986,82.221649000000014],[-83.027785999999878,82.235259999999982],[-83.028884999999946,82.264998999999989],[-83.028884999999946,82.276657],[-83.02555799999999,82.283324999999991],[-83.019164999999873,82.288879000000122],[-82.990829000000019,82.292480000000012],[-82.735549999999932,82.286102000000028],[-82.693603999999937,82.284714000000122],[-82.654448999999886,82.282210999999961],[-82.621658000000025,82.278045999999961],[-82.508895999999936,82.258040999999992],[-82.452788999999939,82.249420000000043],[-82.286666999999966,82.229156000000103],[-82.263061999999991,82.222214000000008],[-82.211120999999991,82.204711999999972],[-82.160278000000005,82.193313999999987],[-82.101943999999946,82.183044000000052],[-82.011123999999995,82.168594000000098],[-81.918059999999912,82.15498400000007],[-81.608886999999982,82.118590999999981],[-81.425277999999935,82.0977630000001],[-81.353057999999976,82.091659999999933],[-81.249161000000015,82.081375000000037],[-81.150283999999999,82.068878000000041],[-81.091110000000015,82.059417999999994],[-80.868332000000009,82.03137200000009],[-80.640288999999996,82.018326000000116],[-80.43249499999996,81.997481999999991],[-80.225829999999974,81.986098999999967],[-80.153609999999958,81.981368999999916],[-80.085006999999905,81.973602000000142],[-80.035277999999948,81.963042999999914],[-79.883056999999951,81.924698000000035],[-79.610000999999897,81.851089000000002],[-79.589721999999938,81.844147000000078],[-79.587783999999999,81.838318000000072],[-79.577224999999942,81.828872999999987],[-79.564163000000008,81.825271999999927],[-79.53443900000002,81.820831000000055],[-79.492217999999923,81.819717000000026],[-79.244445999999925,81.816085999999984],[-79.229171999999949,81.816085999999984],[-79.452224999999999,81.88998400000014],[-79.489989999999977,81.900269000000037],[-79.521117999999888,81.905548000000067],[-79.579726999999934,81.913605000000018],[-79.670837000000006,81.927475000000072],[-79.844451999999933,81.97137499999991],[-79.837783999999942,82.007217000000082],[-79.832229999999868,82.013885000000016],[-79.853333000000021,82.018875000000094],[-79.880829000000006,82.021927000000005],[-79.916397000000018,82.023880000000133],[-80.213897999999858,82.032211000000018],[-80.331680000000006,82.038589000000002],[-80.368606999999997,82.041091999999992],[-80.624435000000005,82.061920000000043],[-80.657226999999921,82.064697000000137],[-80.725554999999986,82.071655000000135],[-80.791107000000011,82.079437000000098],[-80.822234999999921,82.083878000000027],[-80.878326000000015,82.094147000000021],[-80.922226000000023,82.103592000000106],[-80.948607999999979,82.110260000000096],[-80.962783999999999,82.116379000000109],[-80.975554999999986,82.12359600000002],[-80.975554999999986,82.127762000000132],[-80.956664999999987,82.137206999999989],[-80.931380999999988,82.142212000000029],[-80.89973399999991,82.146378000000141],[-80.874435000000005,82.151093000000003],[-80.868056999999965,82.15498400000007],[-80.909163999999976,82.156647000000135],[-81.051391999999964,82.154709000000025],[-81.171111999999994,82.156372000000147],[-81.253341999999918,82.159714000000065],[-81.324722000000008,82.164993000000038],[-81.423324999999977,82.176926000000094],[-81.799728000000016,82.222762999999986],[-81.825561999999934,82.226654000000053],[-81.887786999999946,82.23803700000002],[-82.170546999999999,82.286652000000061],[-82.454726999999991,82.328048999999965],[-82.513061999999934,82.337769000000037],[-82.625548999999921,82.359146000000067],[-82.679992999999968,82.37081900000004],[-82.711670000000026,82.382477000000108],[-82.722778000000005,82.388321000000076],[-82.7308349999999,82.395264000000111],[-82.732223999999974,82.401657000000057],[-82.728881999999942,82.408325000000048],[-82.710281000000009,82.419434000000081],[-82.698333999999988,82.424988000000099],[-82.539444000000003,82.497208000000114],[-82.520553999999947,82.502487000000087],[-82.498336999999992,82.506377999999984],[-82.458892999999989,82.508331000000112],[-82.406386999999881,82.509155000000078],[-82.316956000000005,82.506943000000035],[-82.091675000000009,82.501389000000017],[-81.669997999999907,82.492477000000008],[-81.541672000000005,82.496093999999971],[-81.542220999999927,82.504990000000078],[-81.713332999999977,82.51527400000009],[-81.75140399999998,82.516937000000041],[-81.84722899999997,82.515548999999965],[-81.880554000000018,82.517761000000007],[-81.927489999999977,82.522766000000047],[-81.966400000000021,82.528870000000097],[-82.263901000000033,82.576660000000061],[-82.321121000000005,82.589157000000057],[-82.343886999999938,82.595261000000107],[-82.390288999999996,82.611923000000104],[-82.394729999999925,82.617477000000065],[-82.392226999999934,82.622756999999979],[-82.38110399999988,82.634720000000016],[-82.371933000000013,82.639708999999982],[-82.354445999999996,82.645537999999988],[-82.335281000000009,82.650543000000027],[-82.288054999999986,82.659988000000112],[-82.255004999999926,82.664428999999984],[-82.215285999999992,82.668593999999985],[-82.154998999999918,82.671097000000145],[-82.060271999999998,82.669708000000014],[-81.97222899999997,82.666382000000112],[-81.931380999999931,82.663878999999952],[-81.543335000000013,82.637207000000046],[-81.432495000000017,82.629150000000095],[-81.359725999999966,82.62081900000004],[-81.30082699999997,82.611098999999911],[-81.136123999999995,82.578049000000078],[-80.989440999999999,82.547211000000061],[-80.949721999999952,82.538040000000137],[-80.891952999999944,82.532760999999994],[-80.581679999999949,82.543045000000006],[-80.578063999999983,82.546097000000088],[-80.599166999999966,82.55442800000003],[-80.87388599999997,82.629700000000128],[-80.994445999999925,82.650269000000094],[-81.049987999999985,82.660812000000078],[-81.077224999999999,82.666931000000091],[-81.097503999999958,82.672485000000052],[-81.124709999999993,82.686919999999986],[-81.223617999999988,82.715820000000065],[-81.305831999999953,82.733871000000022],[-81.449996999999996,82.755553999999961],[-81.508620999999948,82.764709000000039],[-81.573623999999938,82.788315000000068],[-81.58444199999991,82.794434000000138],[-81.585006999999962,82.800812000000064],[-81.571670999999924,82.806366000000082],[-81.556655999999975,82.811371000000122],[-81.536391999999921,82.816665999999998],[-81.514175000000023,82.821106000000043],[-81.473052999999993,82.82499700000011],[-81.411391999999921,82.827773999999977],[-81.359725999999966,82.827773999999977],[-81.022232000000031,82.821930000000009],[-80.977218999999934,82.820267000000058],[-80.801940999999999,82.812485000000095],[-80.500564999999995,82.797484999999938],[-80.418334999999956,82.792205999999965],[-80.381103999999993,82.788879000000065],[-80.318618999999956,82.779984000000013],[-80.2933349999999,82.774429000000112],[-80.15834000000001,82.727768000000083],[-80.138901000000033,82.719986000000119],[-80.139449999999954,82.715820000000065],[-80.178329000000019,82.699997000000053],[-80.182495000000017,82.69470199999995],[-80.181380999999931,82.687759000000142],[-80.160277999999948,82.681366000000025],[-80.070846999999901,82.665543000000014],[-80.003066999999987,82.656372000000033],[-79.941665999999998,82.649429000000055],[-79.861664000000019,82.644150000000081],[-79.817779999999914,82.644440000000088],[-79.800827000000027,82.646652000000131],[-79.803604000000007,82.649994000000049],[-79.822509999999966,82.65776100000005],[-79.848617999999988,82.663878999999952],[-79.966949,82.684708000000114],[-79.983321999999987,82.689147999999989],[-79.977492999999981,82.695815999999922],[-79.961394999999925,82.700821000000019],[-79.928604000000007,82.705551000000014],[-79.885833999999875,82.708602999999925],[-79.829726999999991,82.708878000000141],[-79.787505999999894,82.707763999999997],[-79.74749799999995,82.704987000000074],[-79.684158000000025,82.699706999999989],[-79.617492999999911,82.693039000000056],[-79.468338000000017,82.677475000000129],[-79.384734999999978,82.672760000000096],[-79.149993999999936,82.667755000000056],[-78.843613000000005,82.664992999999981],[-78.565552000000025,82.674698000000035],[-78.521118000000001,82.67692599999998],[-78.502791999999999,82.681090999999981],[-78.53195199999999,82.684418000000107],[-78.576675000000023,82.686919999999986],[-78.840835999999967,82.680817000000047],[-78.895003999999858,82.680267000000015],[-78.931945999999982,82.681656000000032],[-79.243057000000022,82.695251000000098],[-79.331680000000006,82.699706999999989],[-79.40306099999998,82.70637499999998],[-79.623046999999985,82.727768000000083],[-79.836944999999901,82.750549000000092],[-79.886948000000018,82.759430000000066],[-79.913329999999917,82.765274000000034],[-79.93638599999997,82.772217000000069],[-79.996947999999975,82.803314],[-79.975829999999974,82.808594000000028],[-79.942489999999964,82.811371000000122],[-79.692215000000033,82.818054000000075],[-79.674437999999952,82.820267000000058],[-79.67222599999991,82.823883000000137],[-79.673889000000031,82.824707000000103],[-79.847777999999948,82.834991000000116],[-79.896118000000001,82.835815000000082],[-80.006667999999934,82.834427000000005],[-80.110000999999954,82.834717000000012],[-80.15834000000001,82.835541000000148],[-80.194153000000028,82.838318000000072],[-80.219727000000034,82.84165999999999],[-80.277221999999938,82.850815000000011],[-80.393065999999976,82.875534000000016],[-80.430282999999974,82.887497000000053],[-80.42971799999998,82.894150000000025],[-80.398055999999997,82.899719000000005],[-80.095839999999953,82.937194999999974],[-79.904723999999987,82.951096000000121],[-79.793335000000013,82.957489000000123],[-79.458344000000011,82.974152000000004],[-79.414444000000003,82.975266000000147],[-79.370543999999995,82.974152000000004],[-79.177489999999977,82.951935000000105],[-79.073333999999988,82.901931999999988],[-79.064437999999882,82.895828000000108],[-79.066101000000003,82.889434999999992],[-78.928054999999972,82.898605000000032],[-78.825287000000003,82.928040000000124],[-78.780288999999982,82.93803400000013],[-78.756118999999956,82.942474000000118],[-78.719726999999978,82.946640000000059],[-78.671111999999937,82.945526000000086],[-78.631942999999978,82.941360000000145],[-78.546111999999994,82.926651000000106],[-78.521666999999923,82.921097000000088],[-78.503341999999918,82.913314999999955],[-78.501953000000015,82.907760999999994],[-78.504180999999903,82.901093000000003],[-78.521941999999967,82.889159999999947],[-78.538605000000018,82.876647999999989],[-78.557770000000005,82.860535000000141],[-78.553328999999906,82.853592000000106],[-78.53443900000002,82.8477630000001],[-78.500564999999938,82.845534999999984],[-78.341674999999952,82.850540000000024],[-78.175551999999982,82.827208999999982],[-78.14416499999993,82.823318000000086],[-78.109160999999972,82.825272000000098],[-78.106658999999979,82.831940000000088],[-78.128875999999877,82.836655000000121],[-78.194442999999922,82.845824999999991],[-78.223617999999988,82.851088999999945],[-78.241378999999938,82.858871000000079],[-78.238891999999964,82.865265000000136],[-78.108337000000006,82.893326000000059],[-78.080291999999986,82.898331000000098],[-77.986663999999962,82.909988000000055],[-77.949996999999883,82.91415400000011],[-77.863327000000027,82.921371000000022],[-77.813048999999864,82.92442299999999],[-77.768340999999964,82.922485000000052],[-77.708344000000011,82.916092000000049],[-77.688889000000017,82.912490999999989],[-77.616652999999985,82.902771000000087],[-77.528060999999923,82.891098000000113],[-77.467223999999987,82.883880999999974],[-77.405272999999909,82.878860000000032],[-77.319457999999997,82.873306000000014],[-77.128325999999959,82.863312000000008],[-77.108046999999999,82.859146000000123],[-77.089171999999962,82.852767999999969],[-76.96665999999999,82.804703000000131],[-76.959166999999923,82.774155000000007],[-76.941665999999998,82.768326000000002],[-76.898346000000004,82.766098],[-76.851104999999961,82.764999000000046],[-76.815552000000025,82.761107999999979],[-76.789168999999958,82.756377999999927],[-76.766662999999994,82.750823999999966],[-76.708617999999944,82.733047000000056],[-76.674438000000009,82.721374999999966],[-76.644164999999987,82.709152000000074],[-76.612503000000004,82.696091000000138],[-76.598052999999993,82.688873000000115],[-76.570556999999951,82.666656000000046],[-76.538329999999974,82.664153999999996],[-76.387221999999952,82.651382000000012],[-76.09333799999996,82.62081900000004],[-76.058884000000035,82.616928000000144],[-75.913895000000025,82.597487999999942],[-75.892226999999991,82.591933999999981],[-75.896392999999989,82.588318000000072],[-75.918610000000001,82.579987000000017],[-75.938323999999966,82.575821000000133],[-75.972778000000005,82.571381000000088],[-76.038895000000025,82.557205000000067],[-76.194716999999969,82.511108000000036],[-76.207503999999972,82.506377999999984],[-76.217772999999909,82.500548999999978],[-76.255279999999971,82.471924000000115],[-76.261002000000019,82.466552999999976],[-76.236937999999896,82.445250999999985],[-76.230835000000013,82.444702000000007],[-76.184158000000025,82.453872999999987],[-76.102782999999874,82.470534999999984],[-76.037780999999939,82.484421000000111],[-75.975006000000008,82.499709999999993],[-75.887221999999952,82.522217000000126],[-75.802779999999984,82.546371000000022],[-75.773894999999925,82.557205000000067],[-75.671386999999925,82.586929000000112],[-75.648055999999997,82.591660000000047],[-75.606383999999935,82.595825000000048],[-75.500838999999928,82.600266000000147],[-75.451675000000023,82.603317000000004],[-75.420273000000009,82.606934000000138],[-75.396118000000001,82.614699999999971],[-75.40972899999997,82.61914100000007],[-75.43472300000002,82.623871000000122],[-75.468886999999881,82.627762000000018],[-75.503615999999852,82.628860000000088],[-75.55749499999996,82.628585999999984],[-75.625548999999978,82.633040999999992],[-75.670546999999999,82.642761000000064],[-75.807495000000017,82.654709000000082],[-76.103057999999976,82.68609600000002],[-76.235824999999977,82.712203999999986],[-76.256392999999946,82.717209000000025],[-76.275557999999933,82.724425999999994],[-76.299987999999871,82.739700000000028],[-76.306655999999919,82.745819000000097],[-76.309158000000025,82.752777000000094],[-76.269454999999994,82.760817999999972],[-76.226395000000025,82.764435000000105],[-76.176391999999964,82.767212000000029],[-76.056945999999982,82.771652000000017],[-76.014724999999999,82.775818000000129],[-75.989440999999999,82.779984000000013],[-75.976104999999961,82.784714000000065],[-75.998336999999935,82.787490999999932],[-76.18638599999997,82.78387500000008],[-76.241378999999995,82.783600000000035],[-76.288605000000018,82.784714000000065],[-76.375274999999988,82.789154000000053],[-76.447495000000004,82.797484999999938],[-76.50167799999997,82.8077550000001],[-76.525283999999942,82.813873000000001],[-76.545272999999952,82.821106000000043],[-76.586394999999982,82.83859300000006],[-76.629165999999998,82.859710999999947],[-76.666655999999989,82.872482000000048],[-76.710830999999985,82.885818000000029],[-76.752791999999999,82.894988999999953],[-76.844161999999983,82.90914900000007],[-76.881942999999978,82.913605000000018],[-77.025832999999977,82.927765000000079],[-77.066390999999953,82.93081699999999],[-77.131667999999991,82.939972000000068],[-77.344726999999978,82.972487999999998],[-77.385283999999899,82.983046999999999],[-77.381377999999984,82.994431000000134],[-77.364440999999999,83.000000000000114],[-77.341949,83.005554000000132],[-77.276108000000022,83.020264000000054],[-77.252227999999945,83.025269000000094],[-77.222777999999948,83.030548000000067],[-77.183883999999978,83.033875000000023],[-77.134734999999978,83.032486000000006],[-77.137221999999895,83.028320000000122],[-77.171386999999982,83.017211999999972],[-77.169723999999974,83.013885000000016],[-77.135558999999944,83.011383000000137],[-76.863051999999925,83.010818000000086],[-76.559432999999956,83.011932000000058],[-76.360274999999945,83.021378000000027],[-76.266662999999994,83.02915999999999],[-76.20666499999993,83.036652000000117],[-76.113327000000027,83.05053700000002],[-76.079177999999956,83.053589000000102],[-76.028610000000015,83.054428000000087],[-75.979720999999927,83.05304000000001],[-75.948607999999922,83.051926000000037],[-75.580841000000021,83.038040000000024],[-75.313323999999909,83.027480999999966],[-75.046951000000035,83.041656000000103],[-75,83.043884000000048],[-74.956389999999999,83.04553199999998],[-74.797501000000011,83.043594000000041],[-74.706664999999987,83.041091999999935],[-74.43582200000003,83.027205999999978],[-74.408050999999887,83.024704000000099],[-74.279175000000009,83.009995000000004],[-74.172774999999888,82.991088999999988],[-74.084166999999979,82.972487999999998],[-74.018065999999976,82.956940000000145],[-73.879439999999875,82.897217000000126],[-73.851668999999958,82.866653000000042],[-73.817779999999971,82.852767999999969],[-73.607772999999952,82.81581099999994],[-73.548339999999939,82.806091000000038],[-73.281951999999933,82.766388000000063],[-73.247222999999963,82.761658000000011],[-73.160278000000005,82.751388999999961],[-73.075011999999958,82.745819000000097],[-72.949721999999952,82.738876000000062],[-72.906661999999983,82.735808999999961],[-72.835830999999985,82.728592000000049],[-72.75,82.714706000000092],[-72.700835999999981,82.703323000000069],[-72.672225999999966,82.698593000000017],[-72.633895999999936,82.694427000000132],[-72.603332999999964,82.695815999999922],[-72.594727000000034,82.697479000000044],[-72.49888599999997,82.718323000000055],[-72.502501999999936,82.724425999999994],[-72.648894999999925,82.746643000000063],[-72.716659999999933,82.755553999999961],[-72.912216000000001,82.776657000000057],[-72.983886999999982,82.78387500000008],[-73.027221999999881,82.786926000000108],[-73.211394999999925,82.813873000000001],[-73.257506999999919,82.825821000000076],[-73.401397999999915,82.874985000000038],[-73.420272999999952,82.890548999999965],[-73.430556999999908,82.893599999999992],[-73.460830999999928,82.898605000000032],[-73.49499499999996,82.90248100000008],[-73.577224999999999,82.908035000000098],[-73.607498000000021,82.913040000000137],[-73.633330999999998,82.918593999999985],[-73.65055799999999,82.925811999999951],[-73.644164999999873,82.932205000000124],[-73.634444999999971,82.936646000000053],[-73.619155999999975,82.941086000000041],[-73.261948000000018,83.007767000000058],[-73.033889999999928,83.036652000000117],[-72.948607999999979,83.055252000000053],[-72.927489999999977,83.067490000000078],[-72.650557999999933,83.096374999999966],[-72.59973100000002,83.096939000000077],[-72.57028200000002,83.092758000000003],[-72.568619000000012,83.087769000000037],[-72.556655999999975,83.079712000000086],[-72.523894999999925,83.076934999999992],[-72.477492999999868,83.076659999999947],[-72.424163999999962,83.079163000000108],[-72.407776000000013,83.083602999999982],[-72.393616000000009,83.089431999999988],[-72.365829000000019,83.094147000000021],[-72.336394999999925,83.097763000000043],[-72.226943999999946,83.101379000000122],[-72.111938000000009,83.101089000000115],[-72.005568999999866,83.099152000000061],[-71.831680000000006,83.097763000000043],[-71.712783999999886,83.098877000000016],[-71.611663999999905,83.096099999999979],[-71.581679999999949,83.091095000000109],[-71.596953999999869,83.085266000000047],[-71.654448999999943,83.068878000000041],[-71.696380999999917,83.057755000000043],[-71.75,83.043045000000063],[-71.775008999999898,83.032211000000018],[-71.7933349999999,83.020537999999988],[-71.794998000000021,83.013611000000083],[-71.792220999999984,83.00749200000007],[-71.778335999999911,83.001663000000065],[-71.567229999999938,82.941086000000041],[-71.493606999999997,82.932205000000124],[-71.33666999999997,82.914703000000088],[-71.219726999999978,82.914993000000095],[-71.144164999999987,82.908325000000104],[-71.084166999999979,82.900542999999971],[-71.018340999999964,82.891937000000041],[-70.952224999999999,82.883605999999986],[-70.871384000000035,82.881087999999977],[-70.835006999999962,82.883041000000105],[-70.84333799999996,82.889984000000084],[-70.857773000000009,82.897217000000126],[-70.904174999999952,82.908035000000098],[-70.961944999999957,82.918593999999985],[-71.080841000000021,82.937484999999981],[-71.306380999999931,82.982208000000071],[-71.472777999999948,83.001663000000065],[-71.497498000000007,83.007217000000026],[-71.489990000000034,83.014435000000049],[-71.474166999999852,83.019440000000088],[-71.425002999999947,83.029434000000094],[-71.125274999999988,83.087494000000049],[-70.887221999999895,83.098038000000088],[-70.694152999999972,83.103592000000049],[-70.585280999999952,83.103317000000061],[-70.470000999999968,83.107482999999945],[-70.37388599999997,83.113311999999951],[-70.260009999999966,83.113876000000118],[-70.160003999999958,83.111374000000012],[-70.111937999999952,83.109421000000111]]]} -} -] -} diff --git a/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/citm_catalog.json b/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/citm_catalog.json deleted file mode 100755 index 245fdbbed..000000000 --- a/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/citm_catalog.json +++ /dev/null @@ -1,50469 +0,0 @@ -{ - "areaNames": { - "205705993": "Arrière-scène central", - "205705994": "1er balcon central", - "205705995": "2ème balcon bergerie cour", - "205705996": "2ème balcon bergerie jardin", - "205705998": "1er balcon bergerie jardin", - "205705999": "1er balcon bergerie cour", - "205706000": "Arrière-scène jardin", - "205706001": "Arrière-scène cour", - "205706002": "2ème balcon jardin", - "205706003": "2ème balcon cour", - "205706004": "2ème Balcon central", - "205706005": "1er balcon jardin", - "205706006": "1er balcon cour", - "205706007": "Orchestre central", - "205706008": "Orchestre jardin", - "205706009": "Orchestre cour", - "342752287": "Zone physique secrète" - }, - "audienceSubCategoryNames": { - "337100890": "Abonné" - }, - "blockNames": {}, - "events": { - "138586341": { - "description": null, - "id": 138586341, - "logo": null, - "name": "30th Anniversary Tour", - "subTopicIds": [ - 337184269, - 337184283 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604 - ] - }, - "138586345": { - "description": null, - "id": 138586345, - "logo": "/images/UE0AAAAACEKo6QAAAAZDSVRN", - "name": "Berliner Philharmoniker", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586349": { - "description": null, - "id": 138586349, - "logo": "/images/UE0AAAAACEKo7QAAAAZDSVRN", - "name": "Berliner Philharmoniker", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586353": { - "description": null, - "id": 138586353, - "logo": "/images/UE0AAAAACEKo8QAAAAZDSVRN", - "name": "Pittsburgh Symphony Orchestra", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586357": { - "description": null, - "id": 138586357, - "logo": "/images/UE0AAAAACEKo9QAAAAhDSVRN", - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586361": { - "description": null, - "id": 138586361, - "logo": "/images/UE0AAAAACEKo+QAAAAVDSVRN", - "name": "WDR Sinfonieorchester Köln", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586365": { - "description": null, - "id": 138586365, - "logo": "/images/UE0AAAAACEKo/QAAAAVDSVRN", - "name": "Alessandro - G.F. Haendel", - "subTopicIds": [ - 337184284, - 337184263, - 337184298, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586369": { - "description": null, - "id": 138586369, - "logo": "/images/UE0AAAAACEKpAQAAAAVDSVRN", - "name": "Orchestre Colonne", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586373": { - "description": null, - "id": 138586373, - "logo": "/images/UE0AAAAACEKpBQAAAAdDSVRN", - "name": "Christophe", - "subTopicIds": [ - 337184280, - 337184297, - 337184283, - 337184262 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586377": { - "description": null, - "id": 138586377, - "logo": "/images/UE0AAAAACEKpCQAAAAVDSVRN", - "name": "Joshua Redman Quartet", - "subTopicIds": [ - 337184269, - 337184283, - 337184262 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586381": { - "description": null, - "id": 138586381, - "logo": "/images/UE0AAAAACEKpDQAAAAVDSVRN", - "name": "Orchestre Symphonique d'Etat de São Paulo", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586385": { - "description": null, - "id": 138586385, - "logo": "/images/UE0AAAAACEKpEQAAAAVDSVRN", - "name": "Le génie italien", - "subTopicIds": [ - 337184284, - 337184298, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586389": { - "description": null, - "id": 138586389, - "logo": "/images/UE0AAAAACEKpFQAAAAVDSVRN", - "name": "Les Noces de Figaro - W.A. Mozart (version de concert)", - "subTopicIds": [ - 337184284, - 337184298, - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586393": { - "description": null, - "id": 138586393, - "logo": "/images/UE0AAAAACEKpGQAAAAhDSVRN", - "name": "Orchestre Pasdeloup", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586397": { - "description": null, - "id": 138586397, - "logo": null, - "name": "The Saxophone Summit", - "subTopicIds": [ - 337184269, - 337184283, - 337184262 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586401": { - "description": null, - "id": 138586401, - "logo": "/images/UE0AAAAACEKpIQAAAAVDSVRN", - "name": "Patricia Petibon - Nouveau Monde", - "subTopicIds": [ - 337184263, - 337184298, - 337184283, - 337184292 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586405": { - "description": null, - "id": 138586405, - "logo": "/images/UE0AAAAACEKpJQAAAAVDSVRN", - "name": "Russian National Orchestra", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586409": { - "description": null, - "id": 138586409, - "logo": "/images/UE0AAAAACEKpKQAAAAZDSVRN", - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586413": { - "description": null, - "id": 138586413, - "logo": "/images/UE0AAAAACEKpLQAAAAVDSVRN", - "name": "Evgeny Kissin", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586417": { - "description": null, - "id": 138586417, - "logo": "/images/UE0AAAAACEKpMQAAAAZDSVRN", - "name": "Bach, concertos pour piano", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586421": { - "description": null, - "id": 138586421, - "logo": "/images/UE0AAAAACEKpNQAAAAVDSVRN", - "name": "Bach, concertos pour piano", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586425": { - "description": null, - "id": 138586425, - "logo": null, - "name": "Orchestre National d'Île-de-France", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586429": { - "description": null, - "id": 138586429, - "logo": "/images/UE0AAAAACEKpPQAAAAVDSVRN", - "name": "Gewandhausorchester Leipzig", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586433": { - "description": null, - "id": 138586433, - "logo": "/images/UE0AAAAACEKpQQAAAAVDSVRN", - "name": "Gewandhausorchester Leipzig", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586437": { - "description": null, - "id": 138586437, - "logo": "/images/UE0AAAAACEKpRQAAAAVDSVRN", - "name": "Budapest Festival Orchestra", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586441": { - "description": null, - "id": 138586441, - "logo": "/images/UE0AAAAACEKpSQAAAAVDSVRN", - "name": "Orchestre National du Capitole de Toulouse", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586445": { - "description": null, - "id": 138586445, - "logo": "/images/UE0AAAAACEKpTQAAAAVDSVRN", - "name": "Gewandhausorchester Leipzig", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586449": { - "description": null, - "id": 138586449, - "logo": "/images/UE0AAAAACEKpUQAAAAVDSVRN", - "name": "Gewandhausorchester Leipzig", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586453": { - "description": null, - "id": 138586453, - "logo": "/images/UE0AAAAACEKpVQAAAAVDSVRN", - "name": "Remember Shakti", - "subTopicIds": [ - 337184269, - 337184283, - 337184262 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586457": { - "description": null, - "id": 138586457, - "logo": "/images/UE0AAAAACEKpWQAAAAVDSVRN", - "name": "Menahem Pressler - Quatuor Ebène", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586461": { - "description": null, - "id": 138586461, - "logo": "/images/UE0AAAAACEKpXQAAAAZDSVRN", - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586465": { - "description": null, - "id": 138586465, - "logo": "/images/UE0AAAAACEKpYQAAAAVDSVRN", - "name": "Orquesta Buena Vista Social Club", - "subTopicIds": [ - 337184279, - 337184283, - 337184262 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586469": { - "description": null, - "id": 138586469, - "logo": "/images/UE0AAAAACEKpZQAAAAVDSVRN", - "name": "The Cleveland Orchestra", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586473": { - "description": null, - "id": 138586473, - "logo": "/images/UE0AAAAACEKpaQAAAAVDSVRN", - "name": "The Cleveland Orchestra", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586477": { - "description": null, - "id": 138586477, - "logo": "/images/UE0AAAAACEKpbQAAAAZDSVRN", - "name": "Orchestre Philharmonique du Luxembourg", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586481": { - "description": null, - "id": 138586481, - "logo": "/images/UE0AAAAACEKpcQAAAAVDSVRN", - "name": "Maurizio Pollini, piano", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586485": { - "description": null, - "id": 138586485, - "logo": "/images/UE0AAAAACEKpdQAAAAZDSVRN", - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586501": { - "description": null, - "id": 138586501, - "logo": "/images/UE0AAAAACEKphQAAAAVDSVRN", - "name": "Antonio Meneses - Maria-João Pires", - "subTopicIds": [ - 337184268, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586505": { - "description": null, - "id": 138586505, - "logo": "/images/UE0AAAAACEKpiQAAAAVDSVRN", - "name": "Musiques pour la reine Caroline", - "subTopicIds": [ - 337184284, - 337184263, - 337184298, - 337184283, - 337184292 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586509": { - "description": null, - "id": 138586509, - "logo": null, - "name": "Orchestre National d'Île-de-France", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586513": { - "description": null, - "id": 138586513, - "logo": "/images/UE0AAAAACEKpkQAAAAVDSVRN", - "name": "Les Mystères d'Isis - W.A. Mozart (cersion de concert)", - "subTopicIds": [ - 337184284, - 337184298, - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586517": { - "description": null, - "id": 138586517, - "logo": "/images/UE0AAAAACEKplQAAAAdDSVRN", - "name": "Martha Argerich - Gidon Kremer", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586521": { - "description": null, - "id": 138586521, - "logo": "/images/UE0AAAAACEKpmQAAAAVDSVRN", - "name": "Cecilia Bartoli - Mozart et la Vienne classique", - "subTopicIds": [ - 337184298, - 337184268, - 337184283, - 337184292 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586525": { - "description": null, - "id": 138586525, - "logo": "/images/UE0AAAAACEKpnQAAAAVDSVRN", - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586529": { - "description": null, - "id": 138586529, - "logo": null, - "name": "Orchestre Pasdeloup", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586533": { - "description": null, - "id": 138586533, - "logo": "/images/UE0AAAAACEKppQAAAAVDSVRN", - "name": "Orchestre du Théâtre Mariinsky", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586537": { - "description": null, - "id": 138586537, - "logo": "/images/UE0AAAAACEKpqQAAAAVDSVRN", - "name": "Orchestre du Théâtre Mariinsky", - "subTopicIds": [ - 337184298, - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586541": { - "description": null, - "id": 138586541, - "logo": "/images/UE0AAAAACEKprQAAAAVDSVRN", - "name": "Orchestre du Théâtre Mariinsky", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586545": { - "description": null, - "id": 138586545, - "logo": "/images/UE0AAAAACEKpsQAAAAVDSVRN", - "name": "Academy of Saint Martin in the Fields", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586549": { - "description": null, - "id": 138586549, - "logo": "/images/UE0AAAAACEKptQAAAAVDSVRN", - "name": "Quatuor Hagen", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586553": { - "description": null, - "id": 138586553, - "logo": "/images/UE0AAAAACEKpuQAAAAVDSVRN", - "name": "Quatuor Hagen", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586557": { - "description": null, - "id": 138586557, - "logo": "/images/UE0AAAAACEKpvQAAAAVDSVRN", - "name": "Quatuor Hagen", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586561": { - "description": null, - "id": 138586561, - "logo": "/images/UE0AAAAACEKpwQAAAAVDSVRN", - "name": "Sunwook Kim, piano", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586565": { - "description": null, - "id": 138586565, - "logo": null, - "name": "Orchestre Colonne", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586569": { - "description": null, - "id": 138586569, - "logo": "/images/UE0AAAAACEKpyQAAAAVDSVRN", - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586581": { - "description": null, - "id": 138586581, - "logo": null, - "name": "Orchestre National de France", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586585": { - "description": null, - "id": 138586585, - "logo": "/images/UE0AAAAACEKp2QAAAAVDSVRN", - "name": "Messe en si mineur - J.S. Bach", - "subTopicIds": [ - 337184296, - 337184263, - 337184298, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586589": { - "description": null, - "id": 138586589, - "logo": null, - "name": "Le Messie - G.F. Haendel", - "subTopicIds": [ - 337184263, - 337184298, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586593": { - "description": null, - "id": 138586593, - "logo": "/images/UE0AAAAACEKp4QAAAAdDSVRN", - "name": "Orchestre National d'Île-de-France", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586597": { - "description": null, - "id": 138586597, - "logo": "/images/UE0AAAAACEKp5QAAAAVDSVRN", - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586601": { - "description": null, - "id": 138586601, - "logo": "/images/UE0AAAAACEKp6QAAAAdDSVRN", - "name": "Orchestre Pasdeloup", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586605": { - "description": null, - "id": 138586605, - "logo": null, - "name": "Orchestre Colonne", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586609": { - "description": null, - "id": 138586609, - "logo": null, - "name": "Ciné-concert - Le Cuirassé Potemkine", - "subTopicIds": [ - 337184267, - 337184262, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 107888604, - 324846100 - ] - }, - "138586613": { - "description": null, - "id": 138586613, - "logo": "/images/UE0AAAAACEKp9QAAAAVDSVRN", - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586617": { - "description": null, - "id": 138586617, - "logo": "/images/UE0AAAAACEKp+QAAAAVDSVRN", - "name": "London Symphony Orchestra", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586625": { - "description": null, - "id": 138586625, - "logo": null, - "name": "Orchestre National d'Île-de-France", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586629": { - "description": null, - "id": 138586629, - "logo": "/images/UE0AAAAACEKqBQAAAAVDSVRN", - "name": "Orquesta Sinfonica Simón Bolívar de Venezuela", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586633": { - "description": null, - "id": 138586633, - "logo": "/images/UE0AAAAACEKqCQAAAAVDSVRN", - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184298, - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586641": { - "description": null, - "id": 138586641, - "logo": "/images/UE0AAAAACEKqEQAAAAVDSVRN", - "name": "Edita Gruberova - Airs de concert", - "subTopicIds": [ - 337184284, - 337184298, - 337184283, - 337184292 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586645": { - "description": null, - "id": 138586645, - "logo": "/images/UE0AAAAACEKqFQAAAAdDSVRN", - "name": "Orchestre National d'Île-de-France", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586649": { - "description": null, - "id": 138586649, - "logo": "/images/UE0AAAAACEKqGQAAAAZDSVRN", - "name": "Alexei Volodin, piano", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586653": { - "description": null, - "id": 138586653, - "logo": null, - "name": "Sonya Yoncheva - Diva !", - "subTopicIds": [ - 337184284, - 337184263, - 337184298, - 337184283, - 337184292 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586657": { - "description": null, - "id": 138586657, - "logo": "/images/UE0AAAAACEKqIQAAAAVDSVRN", - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586661": { - "description": null, - "id": 138586661, - "logo": null, - "name": "Le Ramayana balinais - L'Enlèvement de Sita", - "subTopicIds": [ - 337184279, - 337184283, - 337184262 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586667": { - "description": null, - "id": 138586667, - "logo": null, - "name": "Dave Holland & friends", - "subTopicIds": [ - 337184269, - 337184283, - 337184262 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586671": { - "description": null, - "id": 138586671, - "logo": "/images/UE0AAAAACEKqLwAAAAlDSVRN", - "name": "Boris Godounov - M.Moussorgski (version de concert)", - "subTopicIds": [ - 337184284, - 337184298, - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586675": { - "description": null, - "id": 138586675, - "logo": "/images/UE0AAAAACEKqMwAAAAVDSVRN", - "name": "Insula orchestra - Accentus", - "subTopicIds": [ - 337184298, - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586679": { - "description": null, - "id": 138586679, - "logo": "/images/UE0AAAAACEKqNwAAAAVDSVRN", - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586687": { - "description": null, - "id": 138586687, - "logo": "/images/UE0AAAAACEKqPwAAAAVDSVRN", - "name": "Bryn Terfel - Héros légendaires", - "subTopicIds": [ - 337184284, - 337184298, - 337184283, - 337184292 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586691": { - "description": null, - "id": 138586691, - "logo": null, - "name": "Les Siècles", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586695": { - "description": null, - "id": 138586695, - "logo": "/images/UE0AAAAACEKqRwAAAAVDSVRN", - "name": "Gautier Capuçon - Frank Braley", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586699": { - "description": null, - "id": 138586699, - "logo": null, - "name": "Festival Présences 2014 \"Paris Berlin\"", - "subTopicIds": [ - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586703": { - "description": null, - "id": 138586703, - "logo": "/images/UE0AAAAACEKqTwAAAAZDSVRN", - "name": "Autour de Tristan", - "subTopicIds": [ - 337184284, - 337184298, - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586707": { - "description": null, - "id": 138586707, - "logo": "/images/UE0AAAAACEKqUwAAAAVDSVRN", - "name": "Orchestre du Théâtre Mariinsky", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586711": { - "description": null, - "id": 138586711, - "logo": "/images/UE0AAAAACEKqVwAAAAVDSVRN", - "name": "Orchestre du Théâtre Mariinsky", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586715": { - "description": null, - "id": 138586715, - "logo": "/images/UE0AAAAACEKqWwAAAAVDSVRN", - "name": "Orchestre du Théâtre Mariinsky", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586719": { - "description": null, - "id": 138586719, - "logo": "/images/UE0AAAAACEKqXwAAAAVDSVRN", - "name": "Etienne Daho et invités", - "subTopicIds": [ - 337184280, - 337184297, - 337184283, - 337184262 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586723": { - "description": null, - "id": 138586723, - "logo": null, - "name": "Fantasia in concert", - "subTopicIds": [ - 337184299, - 337184268, - 337184267, - 337184275, - 337184282 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846098, - 324846099, - 107888604, - 324846100 - ] - }, - "138586731": { - "description": null, - "id": 138586731, - "logo": "/images/UE0AAAAACEKqawAAAAVDSVRN", - "name": "Khatia Buniatishvili, piano", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586735": { - "description": null, - "id": 138586735, - "logo": "/images/UE0AAAAACEKqbwAAAAVDSVRN", - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586743": { - "description": null, - "id": 138586743, - "logo": null, - "name": "Guy Braunstein - Zvi Plesser - Sunwook Kim", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586747": { - "description": null, - "id": 138586747, - "logo": "/images/UE0AAAAACEKqewAAAAVDSVRN", - "name": "Janine Jansen and friends", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586751": { - "description": null, - "id": 138586751, - "logo": "/images/UE0AAAAACEKqfwAAAAVDSVRN", - "name": "Elena Bashkirova, piano", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586755": { - "description": null, - "id": 138586755, - "logo": null, - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184284, - 337184298, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586759": { - "description": null, - "id": 138586759, - "logo": null, - "name": "San Francisco Symphony", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586771": { - "description": null, - "id": 138586771, - "logo": null, - "name": "Passion selon saint Jean - J.S. Bach", - "subTopicIds": [ - 337184296, - 337184263, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586775": { - "description": null, - "id": 138586775, - "logo": null, - "name": "Yundi Li , piano", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586779": { - "description": null, - "id": 138586779, - "logo": null, - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586783": { - "description": null, - "id": 138586783, - "logo": null, - "name": "Orchestre Pasdeloup", - "subTopicIds": [ - 337184268, - 337184269, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586787": { - "description": null, - "id": 138586787, - "logo": null, - "name": "Orchestre du Conservatoire de Paris", - "subTopicIds": [ - 337184284, - 337184298, - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586795": { - "description": null, - "id": 138586795, - "logo": null, - "name": "Orchestre National d'Île-de-France", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586799": { - "description": null, - "id": 138586799, - "logo": null, - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586803": { - "description": null, - "id": 138586803, - "logo": null, - "name": "Royal Concertgebouw Orchestra Amsterdam", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586807": { - "description": null, - "id": 138586807, - "logo": null, - "name": "Royal Concertgebouw Orchestra Amsterdam", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586811": { - "description": null, - "id": 138586811, - "logo": null, - "name": "Royal Concertgebouw Orchestra Amsterdam", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586815": { - "description": null, - "id": 138586815, - "logo": null, - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586823": { - "description": null, - "id": 138586823, - "logo": null, - "name": "London Symphony Orchestra", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586827": { - "description": null, - "id": 138586827, - "logo": null, - "name": "London Symphony Orchestra", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586831": { - "description": null, - "id": 138586831, - "logo": null, - "name": "Le Concert des Nations - Jordi Savall", - "subTopicIds": [ - 337184263, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586835": { - "description": null, - "id": 138586835, - "logo": null, - "name": "Leonidas Kavakos - Yuja Wang", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586839": { - "description": null, - "id": 138586839, - "logo": null, - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586843": { - "description": null, - "id": 138586843, - "logo": null, - "name": "Quatuor Artemis - Gautier Capuçon", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586847": { - "description": null, - "id": 138586847, - "logo": null, - "name": "Quatuor Artemis - Quatuor Ébène", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586851": { - "description": null, - "id": 138586851, - "logo": null, - "name": "Quatuor Artemis - Elisabeth Leonskaja", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586855": { - "description": null, - "id": 138586855, - "logo": null, - "name": "Russian National Orchestra", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586859": { - "description": null, - "id": 138586859, - "logo": null, - "name": "Passion selon saint Matthieu", - "subTopicIds": [ - 337184296, - 337184263, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586863": { - "description": null, - "id": 138586863, - "logo": null, - "name": "Les Arts Florissants - Concert de Pâques", - "subTopicIds": [ - 337184263, - 337184298, - 337184283, - 337184292 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586867": { - "description": null, - "id": 138586867, - "logo": null, - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586871": { - "description": null, - "id": 138586871, - "logo": null, - "name": "Leylâ et Majnûn ou L'Amour mystique", - "subTopicIds": [ - 337184279, - 337184283, - 337184262 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586875": { - "description": null, - "id": 138586875, - "logo": null, - "name": "Stephen Kovacevich, piano", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586879": { - "description": null, - "id": 138586879, - "logo": null, - "name": "Orchestra Mozart Bologna - Mahler Chamber Orchestra", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586883": { - "description": null, - "id": 138586883, - "logo": null, - "name": "Ballet Royal du Cambodge", - "subTopicIds": [ - 337184279, - 337184283, - 337184262 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586889": { - "description": null, - "id": 138586889, - "logo": null, - "name": "MDR Sinfonieorchester Leipzig", - "subTopicIds": [ - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586893": { - "description": null, - "id": 138586893, - "logo": null, - "name": "Orchestre Colonne", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586897": { - "description": null, - "id": 138586897, - "logo": null, - "name": "Elisabeth Leonskaja, piano", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586901": { - "description": null, - "id": 138586901, - "logo": null, - "name": "Yuja Wang, piano", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586905": { - "description": null, - "id": 138586905, - "logo": null, - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586909": { - "description": null, - "id": 138586909, - "logo": null, - "name": "Anne-Sophie Mutter - Lambert Orkis", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586917": { - "description": null, - "id": 138586917, - "logo": null, - "name": "Orchestre National d'Île-de-France", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586921": { - "description": null, - "id": 138586921, - "logo": null, - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586929": { - "description": null, - "id": 138586929, - "logo": null, - "name": "Orchestre Pasdeloup", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586933": { - "description": null, - "id": 138586933, - "logo": null, - "name": "Gilberto Gil", - "subTopicIds": [ - 337184279, - 337184283, - 337184262 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586937": { - "description": null, - "id": 138586937, - "logo": null, - "name": "Nelson Freire, piano", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586941": { - "description": null, - "id": 138586941, - "logo": null, - "name": "Orchestre Philharmonique de Radio France", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586945": { - "description": null, - "id": 138586945, - "logo": null, - "name": "Orfeo - C. Monteverdi (version de concert)", - "subTopicIds": [ - 337184284, - 337184263, - 337184298, - 337184283, - 337184292 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586949": { - "description": null, - "id": 138586949, - "logo": null, - "name": "Bamberger Symphoniker", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586953": { - "description": null, - "id": 138586953, - "logo": null, - "name": "Murray Perahia, piano", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586957": { - "description": null, - "id": 138586957, - "logo": null, - "name": "Orchestre National du Capitole de Toulouse", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586961": { - "description": null, - "id": 138586961, - "logo": null, - "name": "Krystian Zimerman, piano", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586965": { - "description": null, - "id": 138586965, - "logo": null, - "name": "Rafal Blechacz, piano", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586969": { - "description": null, - "id": 138586969, - "logo": null, - "name": "Les Voyages musicaux de Marco Polo", - "subTopicIds": [ - 337184279, - 337184283, - 337184262 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586973": { - "description": null, - "id": 138586973, - "logo": null, - "name": "Orchestre National de Lyon", - "subTopicIds": [ - 337184298, - 337184268, - 337184283, - 337184292, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586977": { - "description": null, - "id": 138586977, - "logo": null, - "name": "Guy Braunstein - Zvi Plesser - Sunwook Kim", - "subTopicIds": [ - 337184281, - 337184283, - 337184273 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586981": { - "description": null, - "id": 138586981, - "logo": null, - "name": "La Bohème - G. Puccini (version de concert)", - "subTopicIds": [ - 337184284, - 337184298, - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586989": { - "description": null, - "id": 138586989, - "logo": null, - "name": "Otello - G. Verdi (version de concert)", - "subTopicIds": [ - 337184284, - 337184298, - 337184268, - 337184283, - 337184292 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586993": { - "description": null, - "id": 138586993, - "logo": null, - "name": "Staatskapelle Berlin", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "138586997": { - "description": null, - "id": 138586997, - "logo": null, - "name": "Staatskapelle Berlin", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "151183114": { - "description": null, - "id": 151183114, - "logo": null, - "name": "San Francisco Symphony", - "subTopicIds": [ - 337184298, - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "339420802": { - "description": null, - "id": 339420802, - "logo": null, - "name": "Lou Doillon", - "subTopicIds": [ - 337184280, - 337184283, - 337184262 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "339420805": { - "description": null, - "id": 339420805, - "logo": null, - "name": "Patrick Watson & Orchestre National d'Ile-de-France", - "subTopicIds": [ - 337184280, - 337184283, - 337184262 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341069930": { - "description": null, - "id": 341069930, - "logo": "/images/UE0AAAAAFFRQagAAAAlDSVRN", - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181232": { - "description": null, - "id": 341181232, - "logo": null, - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181233": { - "description": null, - "id": 341181233, - "logo": "/images/UE0AAAAAFFYDMQAAAAhDSVRN", - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181234": { - "description": null, - "id": 341181234, - "logo": "/images/UE0AAAAAFFYDMgAAAAdDSVRN", - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181235": { - "description": null, - "id": 341181235, - "logo": "/images/UE0AAAAAFFYDMwAAAAZDSVRN", - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181236": { - "description": null, - "id": 341181236, - "logo": "/images/UE0AAAAAFFYDNAAAAAZDSVRN", - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181237": { - "description": null, - "id": 341181237, - "logo": "/images/UE0AAAAAFFYDNQAAAAhDSVRN", - "name": "Paavo Järvi, direction", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181238": { - "description": null, - "id": 341181238, - "logo": "/images/UE0AAAAAFFYDNgAAAAdDSVRN", - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181239": { - "description": null, - "id": 341181239, - "logo": "/images/UE0AAAAAFFYDNwAAAAdDSVRN", - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181240": { - "description": null, - "id": 341181240, - "logo": "/images/UE0AAAAAFFYDOAAAAAhDSVRN", - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181241": { - "description": null, - "id": 341181241, - "logo": "/images/UE0AAAAAFFYDOQAAAAZDSVRN", - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181242": { - "description": null, - "id": 341181242, - "logo": "/images/UE0AAAAAFFYDOgAAAAdDSVRN", - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181243": { - "description": null, - "id": 341181243, - "logo": "/images/UE0AAAAAFFYDOwAAAAdDSVRN", - "name": "Concert anniversaire des 90 ans de Menahem Pressler", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181244": { - "description": null, - "id": 341181244, - "logo": "/images/UE0AAAAAFFYDPAAAAAZDSVRN", - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181245": { - "description": null, - "id": 341181245, - "logo": "/images/UE0AAAAAFFYDPQAAAAZDSVRN", - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181246": { - "description": null, - "id": 341181246, - "logo": null, - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181247": { - "description": null, - "id": 341181247, - "logo": null, - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181248": { - "description": null, - "id": 341181248, - "logo": "/images/UE0AAAAAFFYDQAAAAAZDSVRN", - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181249": { - "description": null, - "id": 341181249, - "logo": "/images/UE0AAAAAFFYDQQAAAAdDSVRN", - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181250": { - "description": null, - "id": 341181250, - "logo": "/images/UE0AAAAAFFYDQgAAAAdDSVRN", - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181251": { - "description": null, - "id": 341181251, - "logo": null, - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181252": { - "description": null, - "id": 341181252, - "logo": "/images/UE0AAAAAFFYDRAAAAAdDSVRN", - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181253": { - "description": null, - "id": 341181253, - "logo": null, - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181254": { - "description": null, - "id": 341181254, - "logo": "/images/UE0AAAAAFFYDRgAAAAlDSVRN", - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181255": { - "description": null, - "id": 341181255, - "logo": null, - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181256": { - "description": null, - "id": 341181256, - "logo": null, - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181257": { - "description": null, - "id": 341181257, - "logo": null, - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181258": { - "description": null, - "id": 341181258, - "logo": null, - "name": "Orchestre de Paris", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "341181259": { - "description": null, - "id": 341181259, - "logo": null, - "name": "14052122 JARVI / GOERNE / SOLBERG / CHŒUR", - "subTopicIds": [ - 337184268, - 337184288, - 337184283, - 337184275 - ], - "subjectCode": null, - "subtitle": null, - "topicIds": [ - 324846099, - 107888604, - 324846100 - ] - }, - "342742592": { - "description": null, - "id": 342742592, - "logo": null, - "name": "event secret 2", - "subTopicIds": [], - "subjectCode": null, - "subtitle": null, - "topicIds": [] - }, - "342742593": { - "description": null, - "id": 342742593, - "logo": null, - "name": "event secret 3", - "subTopicIds": [], - "subjectCode": null, - "subtitle": null, - "topicIds": [] - }, - "342742594": { - "description": null, - "id": 342742594, - "logo": null, - "name": "event secret 4", - "subTopicIds": [], - "subjectCode": null, - "subtitle": null, - "topicIds": [] - }, - "342742595": { - "description": null, - "id": 342742595, - "logo": null, - "name": "event secret 5", - "subTopicIds": [], - "subjectCode": null, - "subtitle": null, - "topicIds": [] - }, - "342742596": { - "description": null, - "id": 342742596, - "logo": null, - "name": "event secret 6", - "subTopicIds": [], - "subjectCode": null, - "subtitle": null, - "topicIds": [] - } - }, - "performances": [ - { - "eventId": 138586341, - "id": 339887544, - "logo": null, - "name": null, - "prices": [ - { - "amount": 90250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937295 - }, - { - "amount": 66500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937296 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937295 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937296 - } - ], - "seatMapImage": null, - "start": 1372701600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 339420802, - "id": 339430296, - "logo": null, - "name": null, - "prices": [ - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937295 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937296 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937295 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937296 - } - ], - "seatMapImage": null, - "start": 1372788000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 339420805, - "id": 339430301, - "logo": null, - "name": null, - "prices": [ - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937295 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937296 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937295 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937296 - } - ], - "seatMapImage": null, - "start": 1373220000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586345, - "id": 138586347, - "logo": "/images/UE0AAAAACEKo6QAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 152000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 104500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 52250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937283 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937283 - } - ], - "seatMapImage": null, - "start": 1377972000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586349, - "id": 138586351, - "logo": "/images/UE0AAAAACEKo7QAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 152000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 104500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 52250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937283 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937283 - } - ], - "seatMapImage": null, - "start": 1378044000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586353, - "id": 138586355, - "logo": "/images/UE0AAAAACEKo8QAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 90250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 71250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 52250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1378490400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341069930, - "id": 341070133, - "logo": "/images/UE0AAAAAFFRQagAAAAlDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826016 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826017 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826015 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826018 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826016 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826017 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826015 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 340826018 - } - ], - "seatMapImage": null, - "start": 1378922400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341069930, - "id": 341070132, - "logo": "/images/UE0AAAAAFFRQagAAAAlDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826016 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826017 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826015 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826018 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826016 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826017 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826015 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 340826018 - } - ], - "seatMapImage": null, - "start": 1379008800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586357, - "id": 138586359, - "logo": "/images/UE0AAAAACEKo9QAAAAhDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - } - ], - "seatMapImage": null, - "start": 1379095200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586361, - "id": 138586363, - "logo": "/images/UE0AAAAACEKo+QAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1379440800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586365, - "id": 138586367, - "logo": "/images/UE0AAAAACEKo/QAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1379959200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181254, - "id": 341181470, - "logo": "/images/UE0AAAAAFFYDRgAAAAlDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - } - ], - "seatMapImage": null, - "start": 1380132000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181254, - "id": 341181469, - "logo": "/images/UE0AAAAAFFYDRgAAAAlDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - } - ], - "seatMapImage": null, - "start": 1380218400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586369, - "id": 138586371, - "logo": "/images/UE0AAAAACEKpAQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 19000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 14250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1380650400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181252, - "id": 341181467, - "logo": "/images/UE0AAAAAFFYDRAAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1380736800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586373, - "id": 138586375, - "logo": "/images/UE0AAAAACEKpBQAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086196 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086197 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086196 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086197 - } - ], - "seatMapImage": null, - "start": 1380996000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586377, - "id": 138586379, - "logo": "/images/UE0AAAAACEKpCQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086196 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086197 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086196 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086197 - } - ], - "seatMapImage": null, - "start": 1381082400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586381, - "id": 138586383, - "logo": "/images/UE0AAAAACEKpDQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1381168800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586385, - "id": 138586387, - "logo": "/images/UE0AAAAACEKpEQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1381255200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181234, - "id": 341181437, - "logo": "/images/UE0AAAAAFFYDMgAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1381341600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181234, - "id": 341181436, - "logo": "/images/UE0AAAAAFFYDMgAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1381428000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586389, - "id": 138586391, - "logo": "/images/UE0AAAAACEKpFQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1381512600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586393, - "id": 138586395, - "logo": "/images/UE0AAAAACEKpGQAAAAhDSVRN", - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937241 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937242 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937244 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937245 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937246 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937241 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937242 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937244 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937245 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937246 - } - ], - "seatMapImage": null, - "start": 1381586400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586397, - "id": 138586399, - "logo": null, - "name": null, - "prices": [ - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086196 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086197 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086196 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086197 - } - ], - "seatMapImage": null, - "start": 1381672800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586401, - "id": 138586403, - "logo": "/images/UE0AAAAACEKpIQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1381773600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586405, - "id": 138586407, - "logo": "/images/UE0AAAAACEKpJQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1381860000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181233, - "id": 341181435, - "logo": "/images/UE0AAAAAFFYDMQAAAAhDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1381946400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181237, - "id": 341181442, - "logo": "/images/UE0AAAAAFFYDNQAAAAhDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1382032800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586409, - "id": 138586411, - "logo": "/images/UE0AAAAACEKpKQAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - } - ], - "seatMapImage": null, - "start": 1382119200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586413, - "id": 138586415, - "logo": "/images/UE0AAAAACEKpLQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 95000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937283 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937283 - } - ], - "seatMapImage": null, - "start": 1382277600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586417, - "id": 138586419, - "logo": "/images/UE0AAAAACEKpMQAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1382378400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586421, - "id": 138586423, - "logo": "/images/UE0AAAAACEKpNQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1382464800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181238, - "id": 341181444, - "logo": "/images/UE0AAAAAFFYDNgAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1382551200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181238, - "id": 341181443, - "logo": "/images/UE0AAAAAFFYDNgAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1382637600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586425, - "id": 138586427, - "logo": null, - "name": null, - "prices": [ - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937235 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937236 - }, - { - "amount": 19000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937238 - }, - { - "amount": 14250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937239 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937240 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937235 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937236 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937238 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937239 - }, - { - "areas": [ - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937240 - } - ], - "seatMapImage": null, - "start": 1382724000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586429, - "id": 138586431, - "logo": "/images/UE0AAAAACEKpPQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1382810400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586433, - "id": 138586435, - "logo": "/images/UE0AAAAACEKpQQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1382886000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586437, - "id": 138586439, - "logo": "/images/UE0AAAAACEKpRQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1383073200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586441, - "id": 138586443, - "logo": "/images/UE0AAAAACEKpSQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1383246000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586445, - "id": 138586447, - "logo": "/images/UE0AAAAACEKpTQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1383332400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586449, - "id": 138586451, - "logo": "/images/UE0AAAAACEKpUQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1383418800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742592, - "id": 342742708, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1383555600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742592, - "id": 342742709, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1383562800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586453, - "id": 138586455, - "logo": "/images/UE0AAAAACEKpVQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937295 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937296 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937295 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937296 - } - ], - "seatMapImage": null, - "start": 1383591600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742592, - "id": 342742710, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1383642000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742592, - "id": 342742711, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1383649200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742592, - "id": 342742712, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1383728400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742592, - "id": 342742713, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1383735600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742592, - "id": 342742714, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1383814800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742592, - "id": 342742715, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1383822000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586457, - "id": 138586459, - "logo": "/images/UE0AAAAACEKpWQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1383850800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586461, - "id": 138586463, - "logo": "/images/UE0AAAAACEKpXQAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - } - ], - "seatMapImage": null, - "start": 1383937200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586465, - "id": 138586467, - "logo": "/images/UE0AAAAACEKpYQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086196 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086197 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086196 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086197 - } - ], - "seatMapImage": null, - "start": 1384110000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586469, - "id": 138586471, - "logo": "/images/UE0AAAAACEKpZQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 90250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937289 - }, - { - "amount": 71250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937290 - }, - { - "amount": 52250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937292 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937293 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937289 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937290 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937292 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937293 - } - ], - "seatMapImage": null, - "start": 1384196400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586473, - "id": 138586475, - "logo": "/images/UE0AAAAACEKpaQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1384282800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586477, - "id": 138586479, - "logo": "/images/UE0AAAAACEKpbQAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1384369200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586481, - "id": 138586483, - "logo": "/images/UE0AAAAACEKpcQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 95000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1384455600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586485, - "id": 138586487, - "logo": "/images/UE0AAAAACEKpdQAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - } - ], - "seatMapImage": null, - "start": 1384542000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586501, - "id": 138586503, - "logo": "/images/UE0AAAAACEKphQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1384801200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586505, - "id": 138586507, - "logo": "/images/UE0AAAAACEKpiQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1384887600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586509, - "id": 138586511, - "logo": null, - "name": null, - "prices": [ - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937235 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937236 - }, - { - "amount": 19000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937238 - }, - { - "amount": 14250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937239 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937240 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937235 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937236 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937238 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937239 - }, - { - "areas": [ - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937240 - } - ], - "seatMapImage": null, - "start": 1385146800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586513, - "id": 138586515, - "logo": "/images/UE0AAAAACEKpkQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1385231400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586517, - "id": 138586519, - "logo": "/images/UE0AAAAACEKplQAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1385305200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586521, - "id": 138586523, - "logo": "/images/UE0AAAAACEKpmQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 152000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 104500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 52250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1385492400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181235, - "id": 341181439, - "logo": "/images/UE0AAAAAFFYDMwAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826016 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826017 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826015 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826018 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826019 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826016 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826017 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826015 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 340826018 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826019 - } - ], - "seatMapImage": null, - "start": 1385665200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586525, - "id": 138586527, - "logo": "/images/UE0AAAAACEKpnQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - } - ], - "seatMapImage": null, - "start": 1385751600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586529, - "id": 138586531, - "logo": null, - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937241 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937242 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937244 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937245 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937246 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937241 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937242 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937244 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937245 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937246 - } - ], - "seatMapImage": null, - "start": 1385823600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181235, - "id": 341181438, - "logo": "/images/UE0AAAAAFFYDMwAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826016 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826017 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826015 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826018 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826019 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826016 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826017 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826015 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 340826018 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826019 - } - ], - "seatMapImage": null, - "start": 1385838000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586533, - "id": 138586535, - "logo": "/images/UE0AAAAACEKppQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1385910000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586537, - "id": 138586539, - "logo": "/images/UE0AAAAACEKpqQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1386010800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586541, - "id": 138586543, - "logo": "/images/UE0AAAAACEKprQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1386097200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181236, - "id": 341181440, - "logo": "/images/UE0AAAAAFFYDNAAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1386183600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181236, - "id": 341181441, - "logo": "/images/UE0AAAAAFFYDNAAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1386270000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586545, - "id": 138586547, - "logo": "/images/UE0AAAAACEKpsQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 104500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937283 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937283 - } - ], - "seatMapImage": null, - "start": 1386356400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586549, - "id": 138586551, - "logo": "/images/UE0AAAAACEKptQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937283 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937283 - } - ], - "seatMapImage": null, - "start": 1386428400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586553, - "id": 138586555, - "logo": "/images/UE0AAAAACEKpuQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937283 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937283 - } - ], - "seatMapImage": null, - "start": 1386442800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586557, - "id": 138586559, - "logo": "/images/UE0AAAAACEKpvQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937283 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937283 - } - ], - "seatMapImage": null, - "start": 1386514800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742593, - "id": 342742716, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1386579600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742593, - "id": 342742717, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1386586800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586561, - "id": 138586563, - "logo": "/images/UE0AAAAACEKpwQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 95000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1386615600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742593, - "id": 342742718, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1386666000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742593, - "id": 342742719, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1386673200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586565, - "id": 138586567, - "logo": null, - "name": null, - "prices": [ - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 19000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 14250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1386702000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742593, - "id": 342742720, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1386752400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742593, - "id": 342742721, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1386759600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181241, - "id": 341181449, - "logo": "/images/UE0AAAAAFFYDOQAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1386788400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742593, - "id": 342742722, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1386838800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742593, - "id": 342742723, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1386846000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181241, - "id": 341181450, - "logo": "/images/UE0AAAAAFFYDOQAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1386874800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586569, - "id": 138586571, - "logo": "/images/UE0AAAAACEKpyQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - } - ], - "seatMapImage": null, - "start": 1386961200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742594, - "id": 342742724, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1387184400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742594, - "id": 342742725, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1387191600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586581, - "id": 138586583, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341264860 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341264861 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341264863 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341264864 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341264860 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341264861 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341264863 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341264864 - } - ], - "seatMapImage": null, - "start": 1387220400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742594, - "id": 342742726, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1387270800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742594, - "id": 342742727, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1387278000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586585, - "id": 138586587, - "logo": "/images/UE0AAAAACEKp2QAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1387306800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742594, - "id": 342742728, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1387357200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742594, - "id": 342742729, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1387364400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181250, - "id": 341181465, - "logo": "/images/UE0AAAAAFFYDQgAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1387393200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742594, - "id": 342742730, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1387443600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742594, - "id": 342742731, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1387450800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586589, - "id": 138586591, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1387566000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586593, - "id": 138586595, - "logo": "/images/UE0AAAAACEKp4QAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937235 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937236 - }, - { - "amount": 19000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937238 - }, - { - "amount": 14250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937239 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937240 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937235 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937236 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937238 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937239 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937240 - } - ], - "seatMapImage": null, - "start": 1387724400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742595, - "id": 342742732, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1387789200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742595, - "id": 342742733, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1387796400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742595, - "id": 342742734, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1387875600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742595, - "id": 342742735, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1387882800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742595, - "id": 342742736, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1387962000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742595, - "id": 342742737, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1387969200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742595, - "id": 342742738, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1388048400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742595, - "id": 342742739, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1388055600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742596, - "id": 342742740, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1388998800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742596, - "id": 342742741, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1389006000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742596, - "id": 342742742, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1389085200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742596, - "id": 342742743, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1389092400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742596, - "id": 342742744, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1389171600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742596, - "id": 342742745, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1389178800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181245, - "id": 341181458, - "logo": "/images/UE0AAAAAFFYDPQAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1389207600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742596, - "id": 342742746, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1389258000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 342742596, - "id": 342742747, - "logo": null, - "name": null, - "prices": [ - { - "amount": 180500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 342752792 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 342752287, - "blockIds": [] - } - ], - "seatCategoryId": 342752792 - } - ], - "seatMapImage": null, - "start": 1389265200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181245, - "id": 341181457, - "logo": "/images/UE0AAAAAFFYDPQAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1389294000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586597, - "id": 138586599, - "logo": "/images/UE0AAAAACEKp5QAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - } - ], - "seatMapImage": null, - "start": 1389380400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586601, - "id": 138586603, - "logo": "/images/UE0AAAAACEKp6QAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937241 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937242 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937244 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937245 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937246 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937241 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937242 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937244 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937245 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937246 - } - ], - "seatMapImage": null, - "start": 1389452400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586605, - "id": 138586607, - "logo": null, - "name": null, - "prices": [ - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 19000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 14250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937283 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937283 - } - ], - "seatMapImage": null, - "start": 1389538800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586609, - "id": 138586611, - "logo": null, - "name": null, - "prices": [ - { - "amount": 15000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937314 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937314 - } - ], - "seatMapImage": null, - "start": 1389726000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181242, - "id": 341181451, - "logo": "/images/UE0AAAAAFFYDOgAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1389812400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181242, - "id": 341181452, - "logo": "/images/UE0AAAAAFFYDOgAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1389898800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586613, - "id": 138586615, - "logo": "/images/UE0AAAAACEKp9QAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086215 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - }, - { - "areas": [ - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086215 - } - ], - "seatMapImage": null, - "start": 1389985200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586617, - "id": 138586619, - "logo": "/images/UE0AAAAACEKp+QAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 90250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 71250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 52250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1390071600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586625, - "id": 138586627, - "logo": null, - "name": null, - "prices": [ - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937235 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937236 - }, - { - "amount": 19000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937238 - }, - { - "amount": 14250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937239 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937240 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937235 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937236 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937238 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937239 - }, - { - "areas": [ - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937240 - } - ], - "seatMapImage": null, - "start": 1390143600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586629, - "id": 138586631, - "logo": "/images/UE0AAAAACEKqBQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 90250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937271 - }, - { - "amount": 71250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937272 - }, - { - "amount": 52250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937274 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937275 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937271 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937272 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937274 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937275 - } - ], - "seatMapImage": null, - "start": 1390159800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181239, - "id": 341181446, - "logo": "/images/UE0AAAAAFFYDNwAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826016 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826017 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826015 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826018 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826019 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826016 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826017 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826015 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 340826018 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826019 - } - ], - "seatMapImage": null, - "start": 1390417200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181239, - "id": 341181445, - "logo": "/images/UE0AAAAAFFYDNwAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826016 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826017 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826015 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826018 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826019 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826016 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826017 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826015 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 340826018 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826019 - } - ], - "seatMapImage": null, - "start": 1390503600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586633, - "id": 138586635, - "logo": "/images/UE0AAAAACEKqCQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - } - ], - "seatMapImage": null, - "start": 1390590000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586641, - "id": 138586643, - "logo": "/images/UE0AAAAACEKqEQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1390676400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586645, - "id": 138586647, - "logo": "/images/UE0AAAAACEKqFQAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937235 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937236 - }, - { - "amount": 19000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937238 - }, - { - "amount": 14250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937239 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937240 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937235 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937236 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937238 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937239 - }, - { - "areas": [ - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937240 - } - ], - "seatMapImage": null, - "start": 1390748400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586649, - "id": 138586651, - "logo": "/images/UE0AAAAACEKqGQAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 95000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1390849200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586653, - "id": 138586655, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1390935600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181243, - "id": 341181453, - "logo": "/images/UE0AAAAAFFYDOwAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - } - ], - "seatMapImage": null, - "start": 1391022000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181243, - "id": 341181454, - "logo": "/images/UE0AAAAAFFYDOwAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - } - ], - "seatMapImage": null, - "start": 1391108400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586657, - "id": 138586659, - "logo": "/images/UE0AAAAACEKqIQAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - } - ], - "seatMapImage": null, - "start": 1391194800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586661, - "id": 138586663, - "logo": null, - "name": null, - "prices": [ - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086196 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086197 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086196 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086197 - } - ], - "seatMapImage": null, - "start": 1391353200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586661, - "id": 138586665, - "logo": null, - "name": null, - "prices": [ - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086196 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086197 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086196 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086197 - } - ], - "seatMapImage": null, - "start": 1391367600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586667, - "id": 138586669, - "logo": null, - "name": null, - "prices": [ - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937295 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937296 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937295 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937296 - } - ], - "seatMapImage": null, - "start": 1391540400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586671, - "id": 138586673, - "logo": "/images/UE0AAAAACEKqLwAAAAlDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937289 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937290 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937292 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937293 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937289 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937290 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937292 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937293 - } - ], - "seatMapImage": null, - "start": 1391626800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586675, - "id": 138586677, - "logo": "/images/UE0AAAAACEKqMwAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1391713200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586679, - "id": 138586681, - "logo": "/images/UE0AAAAACEKqNwAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - } - ], - "seatMapImage": null, - "start": 1391799600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586687, - "id": 138586689, - "logo": "/images/UE0AAAAACEKqPwAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 90250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 71250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 52250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1391886000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586691, - "id": 138586693, - "logo": null, - "name": null, - "prices": [ - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 19000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 14250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937283 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937283 - } - ], - "seatMapImage": null, - "start": 1391958000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586695, - "id": 138586697, - "logo": "/images/UE0AAAAACEKqRwAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1392145200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181240, - "id": 341181448, - "logo": "/images/UE0AAAAAFFYDOAAAAAhDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1392231600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181240, - "id": 341181447, - "logo": "/images/UE0AAAAAFFYDOAAAAAhDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1392318000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586699, - "id": 138586701, - "logo": null, - "name": null, - "prices": [ - { - "amount": 15000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341264872 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341264872 - } - ], - "seatMapImage": null, - "start": 1392404400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586703, - "id": 138586705, - "logo": "/images/UE0AAAAACEKqTwAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1392490800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586707, - "id": 138586709, - "logo": "/images/UE0AAAAACEKqUwAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1392562800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586711, - "id": 138586713, - "logo": "/images/UE0AAAAACEKqVwAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1392663600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586715, - "id": 138586717, - "logo": "/images/UE0AAAAACEKqWwAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1392750000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181248, - "id": 341181462, - "logo": "/images/UE0AAAAAFFYDQAAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1392836400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586719, - "id": 138586721, - "logo": "/images/UE0AAAAACEKqXwAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086196 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086197 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086196 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086197 - } - ], - "seatMapImage": null, - "start": 1393095600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586723, - "id": 138586729, - "logo": null, - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937307 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937308 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937310 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937311 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937312 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937307 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937308 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937310 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937311 - }, - { - "areas": [ - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937312 - } - ], - "seatMapImage": null, - "start": 1393678800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586723, - "id": 138586725, - "logo": null, - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937307 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937308 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937310 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937311 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937312 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937307 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937308 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937310 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937311 - }, - { - "areas": [ - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937312 - } - ], - "seatMapImage": null, - "start": 1393693200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586723, - "id": 138586727, - "logo": null, - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937307 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937308 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937310 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937311 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937312 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937307 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937308 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937310 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937311 - }, - { - "areas": [ - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937312 - } - ], - "seatMapImage": null, - "start": 1393754400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586731, - "id": 138586733, - "logo": "/images/UE0AAAAACEKqawAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 19000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 14250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1393959600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181249, - "id": 341181463, - "logo": "/images/UE0AAAAAFFYDQQAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826016 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826017 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826015 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826018 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826019 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826016 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826017 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 340826015 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 340826018 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826019 - } - ], - "seatMapImage": null, - "start": 1394046000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181249, - "id": 341181464, - "logo": "/images/UE0AAAAAFFYDQQAAAAdDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826016 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826017 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826015 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826018 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826019 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826016 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826017 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 340826015 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 340826018 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826019 - } - ], - "seatMapImage": null, - "start": 1394132400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586735, - "id": 138586737, - "logo": "/images/UE0AAAAACEKqbwAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - } - ], - "seatMapImage": null, - "start": 1394218800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586743, - "id": 138586745, - "logo": null, - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937283 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937283 - } - ], - "seatMapImage": null, - "start": 1394305200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586747, - "id": 138586749, - "logo": "/images/UE0AAAAACEKqewAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937283 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937283 - } - ], - "seatMapImage": null, - "start": 1394377200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586751, - "id": 138586753, - "logo": "/images/UE0AAAAACEKqfwAAAAVDSVRN", - "name": null, - "prices": [ - { - "amount": 95000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1394478000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181244, - "id": 341181455, - "logo": "/images/UE0AAAAAFFYDPAAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1394650800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181244, - "id": 341181456, - "logo": "/images/UE0AAAAAFFYDPAAAAAZDSVRN", - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1394737200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586755, - "id": 138586757, - "logo": null, - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341264866 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341264867 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341264869 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341264870 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341264866 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341264867 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341264869 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341264870 - } - ], - "seatMapImage": null, - "start": 1394823600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586759, - "id": 138586761, - "logo": null, - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1395082800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 151183114, - "id": 151183116, - "logo": null, - "name": null, - "prices": [ - { - "amount": 90250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937289 - }, - { - "amount": 71250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937290 - }, - { - "amount": 52250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937292 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937293 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937289 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937290 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937292 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937293 - } - ], - "seatMapImage": null, - "start": 1395169200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586771, - "id": 138586773, - "logo": null, - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1395255600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586775, - "id": 138586777, - "logo": null, - "name": null, - "prices": [ - { - "amount": 95000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1395342000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586779, - "id": 138586781, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - } - ], - "seatMapImage": null, - "start": 1395428400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586783, - "id": 138586785, - "logo": null, - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937241 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937242 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937244 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937245 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937246 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937241 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937242 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937244 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937245 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937246 - } - ], - "seatMapImage": null, - "start": 1395500400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586787, - "id": 138586789, - "logo": null, - "name": null, - "prices": [ - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 19000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 14250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937283 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937283 - } - ], - "seatMapImage": null, - "start": 1395514800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586795, - "id": 138586797, - "logo": null, - "name": null, - "prices": [ - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937235 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937236 - }, - { - "amount": 19000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937238 - }, - { - "amount": 14250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937239 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937240 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937235 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937236 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937238 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937239 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937240 - } - ], - "seatMapImage": null, - "start": 1395586800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181246, - "id": 341181459, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826016 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826017 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826015 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826018 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826019 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826016 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826017 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826015 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 340826018 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826019 - } - ], - "seatMapImage": null, - "start": 1395860400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181246, - "id": 341181460, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826016 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826017 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826015 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826018 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826019 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826016 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826017 - }, - { - "areas": [ - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826015 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 340826018 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826019 - } - ], - "seatMapImage": null, - "start": 1395946800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586799, - "id": 138586801, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - } - ], - "seatMapImage": null, - "start": 1396033200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586803, - "id": 138586805, - "logo": null, - "name": null, - "prices": [ - { - "amount": 90250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 71250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 52250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1396191600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586807, - "id": 138586809, - "logo": null, - "name": null, - "prices": [ - { - "amount": 104500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1396288800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586811, - "id": 138586813, - "logo": null, - "name": null, - "prices": [ - { - "amount": 90250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 71250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 52250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1396375200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181255, - "id": 341181472, - "logo": null, - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - } - ], - "seatMapImage": null, - "start": 1396461600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181255, - "id": 341181471, - "logo": null, - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - } - ], - "seatMapImage": null, - "start": 1396548000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586815, - "id": 138586817, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - } - ], - "seatMapImage": null, - "start": 1396634400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586823, - "id": 138586825, - "logo": null, - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1396720800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586827, - "id": 138586829, - "logo": null, - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1396792800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586831, - "id": 138586833, - "logo": null, - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1396893600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586835, - "id": 138586837, - "logo": null, - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1396980000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181256, - "id": 341181473, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1397066400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181256, - "id": 341181474, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1397152800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586839, - "id": 138586841, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341264866 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341264867 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341264869 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341264870 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341264866 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341264867 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341264869 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341264870 - } - ], - "seatMapImage": null, - "start": 1397239200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586843, - "id": 138586845, - "logo": null, - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937283 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937283 - } - ], - "seatMapImage": null, - "start": 1397311200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586847, - "id": 138586849, - "logo": null, - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937283 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937283 - } - ], - "seatMapImage": null, - "start": 1397325600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586851, - "id": 138586853, - "logo": null, - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937283 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937283 - } - ], - "seatMapImage": null, - "start": 1397397600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586855, - "id": 138586857, - "logo": null, - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1397498400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586859, - "id": 138586861, - "logo": null, - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1397584800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586863, - "id": 138586865, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1397930400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181251, - "id": 341181466, - "logo": null, - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - } - ], - "seatMapImage": null, - "start": 1398276000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181253, - "id": 341181468, - "logo": null, - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - } - ], - "seatMapImage": null, - "start": 1398362400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586867, - "id": 138586869, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - } - ], - "seatMapImage": null, - "start": 1398448800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586871, - "id": 138586873, - "logo": null, - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086196 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086197 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086196 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086197 - } - ], - "seatMapImage": null, - "start": 1398607200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586875, - "id": 138586877, - "logo": null, - "name": null, - "prices": [ - { - "amount": 95000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1398708000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586879, - "id": 138586881, - "logo": null, - "name": null, - "prices": [ - { - "amount": 171000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 123500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 95000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 66500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1398794400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586883, - "id": 138586887, - "logo": null, - "name": null, - "prices": [ - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086196 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086197 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086196 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086197 - } - ], - "seatMapImage": null, - "start": 1399125600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586883, - "id": 138586885, - "logo": null, - "name": null, - "prices": [ - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086196 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086197 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086196 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086197 - } - ], - "seatMapImage": null, - "start": 1399140000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586889, - "id": 138586891, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937307 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937308 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937310 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937311 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937307 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937308 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937310 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937311 - } - ], - "seatMapImage": null, - "start": 1399312800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586893, - "id": 138586895, - "logo": null, - "name": null, - "prices": [ - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 19000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 14250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1399399200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181232, - "id": 341181434, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1399485600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586897, - "id": 138586899, - "logo": null, - "name": null, - "prices": [ - { - "amount": 95000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1399917600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586901, - "id": 138586903, - "logo": null, - "name": null, - "prices": [ - { - "amount": 95000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1400176800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586905, - "id": 138586907, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - } - ], - "seatMapImage": null, - "start": 1400263200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586909, - "id": 138586911, - "logo": null, - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1400349600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586917, - "id": 138586919, - "logo": null, - "name": null, - "prices": [ - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937235 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937236 - }, - { - "amount": 19000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937238 - }, - { - "amount": 14250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937239 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937240 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937235 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937236 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937238 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937239 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937240 - } - ], - "seatMapImage": null, - "start": 1400421600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181259, - "id": 341181480, - "logo": null, - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826016 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826017 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826015 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826018 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826016 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826017 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826015 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 340826018 - } - ], - "seatMapImage": null, - "start": 1400695200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181259, - "id": 341181479, - "logo": null, - "name": null, - "prices": [ - { - "amount": 80750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826016 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826017 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826015 - }, - { - "amount": 28500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 340826018 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826016 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826017 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 340826015 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 340826018 - } - ], - "seatMapImage": null, - "start": 1400781600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586921, - "id": 138586923, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086210 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086211 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086213 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086214 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086210 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086211 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086214 - } - ], - "seatMapImage": null, - "start": 1400868000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586929, - "id": 138586931, - "logo": null, - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937241 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937242 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937244 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937245 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937246 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937241 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937242 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937244 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937245 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937246 - } - ], - "seatMapImage": null, - "start": 1400940000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586933, - "id": 138586935, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086196 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086197 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086196 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086197 - } - ], - "seatMapImage": null, - "start": 1401026400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586937, - "id": 138586939, - "logo": null, - "name": null, - "prices": [ - { - "amount": 95000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1401127200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586941, - "id": 138586943, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341264860 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341264861 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341264863 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341264864 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341264860 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341264861 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341264863 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341264864 - } - ], - "seatMapImage": null, - "start": 1401472800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586945, - "id": 138586947, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1401730200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586949, - "id": 138586951, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1401818400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586953, - "id": 138586955, - "logo": null, - "name": null, - "prices": [ - { - "amount": 95000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1401904800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586957, - "id": 138586959, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - } - ], - "seatMapImage": null, - "start": 1401991200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586961, - "id": 138586963, - "logo": null, - "name": null, - "prices": [ - { - "amount": 95000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937283 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937283 - } - ], - "seatMapImage": null, - "start": 1402077600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586965, - "id": 138586967, - "logo": null, - "name": null, - "prices": [ - { - "amount": 95000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1402423200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181258, - "id": 341181477, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1402509600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181258, - "id": 341181478, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1402596000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586969, - "id": 138586971, - "logo": null, - "name": null, - "prices": [ - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086196 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 339086197 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086196 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 339086197 - } - ], - "seatMapImage": null, - "start": 1402768800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586973, - "id": 138586975, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - } - ], - "seatMapImage": null, - "start": 1402840800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586977, - "id": 138586979, - "logo": null, - "name": null, - "prices": [ - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 33250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 23750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 16150, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1402941600000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586981, - "id": 138586983, - "logo": null, - "name": null, - "prices": [ - { - "amount": 123500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937289 - }, - { - "amount": 85500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937290 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937292 - }, - { - "amount": 38000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937293 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937294 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937289 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937290 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937292 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937293 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937294 - } - ], - "seatMapImage": null, - "start": 1403028000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181257, - "id": 341181475, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1403114400000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181257, - "id": 341181476, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1403200800000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 341181247, - "id": 341181461, - "logo": null, - "name": null, - "prices": [ - { - "amount": 57000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179212 - }, - { - "amount": 42750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179213 - }, - { - "amount": 32300, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179214 - }, - { - "amount": 20900, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179215 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 341179216 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179212 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179213 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179214 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - } - ], - "seatCategoryId": 341179215 - }, - { - "areas": [ - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 341179216 - } - ], - "seatMapImage": null, - "start": 1403719200000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586989, - "id": 138586991, - "logo": null, - "name": null, - "prices": [ - { - "amount": 152000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937284 - }, - { - "amount": 104500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937285 - }, - { - "amount": 76000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937287 - }, - { - "amount": 52250, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937288 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937283 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937284 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937285 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937287 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937288 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937283 - } - ], - "seatMapImage": null, - "start": 1403892000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586993, - "id": 138586995, - "logo": null, - "name": null, - "prices": [ - { - "amount": 123500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 85500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 38000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1404324000000, - "venueCode": "PLEYEL_PLEYEL" - }, - { - "eventId": 138586997, - "id": 138586999, - "logo": null, - "name": null, - "prices": [ - { - "amount": 123500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937277 - }, - { - "amount": 85500, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937278 - }, - { - "amount": 61750, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937280 - }, - { - "amount": 38000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937281 - }, - { - "amount": 10000, - "audienceSubCategoryId": 337100890, - "seatCategoryId": 338937282 - } - ], - "seatCategories": [ - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937277 - }, - { - "areas": [ - { - "areaId": 205705999, - "blockIds": [] - }, - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937278 - }, - { - "areas": [ - { - "areaId": 205705998, - "blockIds": [] - }, - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205705995, - "blockIds": [] - }, - { - "areaId": 205705996, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205705993, - "blockIds": [] - }, - { - "areaId": 205706007, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937280 - }, - { - "areas": [ - { - "areaId": 205705994, - "blockIds": [] - }, - { - "areaId": 205706006, - "blockIds": [] - }, - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706001, - "blockIds": [] - }, - { - "areaId": 205706000, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937281 - }, - { - "areas": [ - { - "areaId": 205706005, - "blockIds": [] - }, - { - "areaId": 205706004, - "blockIds": [] - }, - { - "areaId": 205706003, - "blockIds": [] - }, - { - "areaId": 205706002, - "blockIds": [] - }, - { - "areaId": 205706009, - "blockIds": [] - }, - { - "areaId": 205706008, - "blockIds": [] - } - ], - "seatCategoryId": 338937282 - } - ], - "seatMapImage": null, - "start": 1404410400000, - "venueCode": "PLEYEL_PLEYEL" - } - ], - "seatCategoryNames": { - "338937235": "1ère catégorie", - "338937236": "2ème catégorie", - "338937238": "3ème catégorie", - "338937239": "4ème catégorie", - "338937240": "5ème catégorie", - "338937241": "1ère catégorie", - "338937242": "2ème catégorie", - "338937244": "3ème catégorie", - "338937245": "4ème catégorie", - "338937246": "5ème catégorie", - "338937271": "1ère catégorie", - "338937272": "2ème catégorie", - "338937274": "3ème catégorie", - "338937275": "4ème catégorie", - "338937277": "1ère catégorie", - "338937278": "2ème catégorie", - "338937280": "3ème catégorie", - "338937281": "4ème catégorie", - "338937282": "5ème catégorie", - "338937283": "5ème catégorie", - "338937284": "1ère catégorie", - "338937285": "2ème catégorie", - "338937287": "3ème catégorie", - "338937288": "4ème catégorie", - "338937289": "1ère catégorie", - "338937290": "2ème catégorie", - "338937292": "3ème catégorie", - "338937293": "4ème catégorie", - "338937294": "5ème catégorie", - "338937295": "1ère catégorie", - "338937296": "2ème catégorie", - "338937307": "1ère catégorie", - "338937308": "2ème catégorie", - "338937310": "3ème catégorie", - "338937311": "4ème catégorie", - "338937312": "5ème catégorie", - "338937314": "Catégorie unique", - "339086196": "1ère catégorie", - "339086197": "2ème catégorie", - "339086210": "1ère catégorie", - "339086211": "2ème catégorie", - "339086213": "3ème catégorie", - "339086214": "4ème catégorie", - "339086215": "5ème catégorie", - "340826015": "Catégorie 3", - "340826016": "Catégorie 1", - "340826017": "Catégorie 2", - "340826018": "Catégorie 4", - "340826019": "Catégorie 5", - "341179212": "CAT1", - "341179213": "CAT2", - "341179214": "CAT3", - "341179215": "CAT4", - "341179216": "CAT5", - "341264860": "1ère catégorie", - "341264861": "2ème catégorie", - "341264863": "3ème catégorie", - "341264864": "4ème catégorie", - "341264866": "1ère catégorie", - "341264867": "2ème catégorie", - "341264869": "3ème catégorie", - "341264870": "4ème catégorie", - "341264872": "1ère catégorie", - "342752792": "catétgorie unique" - }, - "subTopicNames": { - "337184262": "Musique amplifiée", - "337184263": "Musique baroque", - "337184267": "Ciné-concert", - "337184268": "Musique classique", - "337184269": "Jazz", - "337184273": "Musique de chambre", - "337184275": "Musique dirigée", - "337184279": "Musique du monde", - "337184280": "Pop/rock", - "337184281": "Musique de chambre", - "337184282": "Famille", - "337184283": "Concert", - "337184284": "Opéra (version de concert)", - "337184288": "Musique contemporaine", - "337184292": "Musique vocale", - "337184296": "Musique ancienne", - "337184297": "Chanson", - "337184298": "Voix", - "337184299": "famille" - }, - "subjectNames": {}, - "topicNames": { - "107888604": "Activité", - "324846098": "Type de public", - "324846099": "Genre", - "324846100": "Formations musicales" - }, - "topicSubTopics": { - "107888604": [ - 337184283, - 337184267 - ], - "324846098": [ - 337184299 - ], - "324846099": [ - 337184268, - 337184288, - 337184284, - 337184263, - 337184298, - 337184269, - 337184280, - 337184297, - 337184281, - 337184296, - 337184279 - ], - "324846100": [ - 337184275, - 337184262, - 337184292, - 337184273, - 337184282 - ] - }, - "venueNames": { - "PLEYEL_PLEYEL": "Salle Pleyel" - } -} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/twitter.json b/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/twitter.json deleted file mode 100755 index 137fb5162..000000000 --- a/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/twitter.json +++ /dev/null @@ -1,15482 +0,0 @@ -{ - "statuses": [ - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:15 +0000 2014", - "id": 505874924095815700, - "id_str": "505874924095815681", - "text": "@aym0566x \n\n名前:前田あゆみ\n第一印象:なんか怖っ!\n今の印象:とりあえずキモい。噛み合わない\n好きなところ:ぶすでキモいとこ😋✨✨\n思い出:んーーー、ありすぎ😊❤️\nLINE交換できる?:あぁ……ごめん✋\nトプ画をみて:照れますがな😘✨\n一言:お前は一生もんのダチ💖", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": 866260188, - "in_reply_to_user_id_str": "866260188", - "in_reply_to_screen_name": "aym0566x", - "user": { - "id": 1186275104, - "id_str": "1186275104", - "name": "AYUMI", - "screen_name": "ayuu0123", - "location": "", - "description": "元野球部マネージャー❤︎…最高の夏をありがとう…❤︎", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 262, - "friends_count": 252, - "listed_count": 0, - "created_at": "Sat Feb 16 13:40:25 +0000 2013", - "favourites_count": 235, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 1769, - "lang": "en", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/497760886795153410/LDjAwR_y_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/497760886795153410/LDjAwR_y_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/1186275104/1409318784", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "aym0566x", - "name": "前田あゆみ", - "id": 866260188, - "id_str": "866260188", - "indices": [ - 0, - 9 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:14 +0000 2014", - "id": 505874922023837700, - "id_str": "505874922023837696", - "text": "RT @KATANA77: えっそれは・・・(一同) http://t.co/PkCJAcSuYK", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 903487807, - "id_str": "903487807", - "name": "RT&ファボ魔のむっつんさっm", - "screen_name": "yuttari1998", - "location": "関西 ↓詳しいプロ↓", - "description": "無言フォローはあまり好みません ゲームと動画が好きですシモ野郎ですがよろしく…最近はMGSとブレイブルー、音ゲーをプレイしてます", - "url": "http://t.co/Yg9e1Fl8wd", - "entities": { - "url": { - "urls": [ - { - "url": "http://t.co/Yg9e1Fl8wd", - "expanded_url": "http://twpf.jp/yuttari1998", - "display_url": "twpf.jp/yuttari1998", - "indices": [ - 0, - 22 - ] - } - ] - }, - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 95, - "friends_count": 158, - "listed_count": 1, - "created_at": "Thu Oct 25 08:27:13 +0000 2012", - "favourites_count": 3652, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 10276, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/500268849275494400/AoXHZ7Ij_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/500268849275494400/AoXHZ7Ij_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/903487807/1409062272", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sat Aug 30 23:49:35 +0000 2014", - "id": 505864943636197400, - "id_str": "505864943636197376", - "text": "えっそれは・・・(一同) http://t.co/PkCJAcSuYK", - "source": "Twitter Web Client", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 77915997, - "id_str": "77915997", - "name": "(有)刀", - "screen_name": "KATANA77", - "location": "", - "description": "プリキュア好きのサラリーマンです。好きなプリキュアシリーズはハートキャッチ、最愛のキャラクターは月影ゆりさんです。 http://t.co/QMLJeFmfMTご質問、お問い合わせはこちら http://t.co/LU8T7vmU3h", - "url": null, - "entities": { - "description": { - "urls": [ - { - "url": "http://t.co/QMLJeFmfMT", - "expanded_url": "http://www.pixiv.net/member.php?id=4776", - "display_url": "pixiv.net/member.php?id=…", - "indices": [ - 58, - 80 - ] - }, - { - "url": "http://t.co/LU8T7vmU3h", - "expanded_url": "http://ask.fm/KATANA77", - "display_url": "ask.fm/KATANA77", - "indices": [ - 95, - 117 - ] - } - ] - } - }, - "protected": false, - "followers_count": 1095, - "friends_count": 740, - "listed_count": 50, - "created_at": "Mon Sep 28 03:41:27 +0000 2009", - "favourites_count": 3741, - "utc_offset": 32400, - "time_zone": "Tokyo", - "geo_enabled": true, - "verified": false, - "statuses_count": 19059, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/808597451/45b82f887085d32bd4b87dfc348fe22a.png", - "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/808597451/45b82f887085d32bd4b87dfc348fe22a.png", - "profile_background_tile": true, - "profile_image_url": "http://pbs.twimg.com/profile_images/480210114964504577/MjVIEMS4_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/480210114964504577/MjVIEMS4_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/77915997/1404661392", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "FFFFFF", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 82, - "favorite_count": 42, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [], - "media": [ - { - "id": 505864942575034400, - "id_str": "505864942575034369", - "indices": [ - 13, - 35 - ], - "media_url": "http://pbs.twimg.com/media/BwUxfC6CIAEr-Ye.jpg", - "media_url_https": "https://pbs.twimg.com/media/BwUxfC6CIAEr-Ye.jpg", - "url": "http://t.co/PkCJAcSuYK", - "display_url": "pic.twitter.com/PkCJAcSuYK", - "expanded_url": "http://twitter.com/KATANA77/status/505864943636197376/photo/1", - "type": "photo", - "sizes": { - "medium": { - "w": 600, - "h": 338, - "resize": "fit" - }, - "small": { - "w": 340, - "h": 192, - "resize": "fit" - }, - "thumb": { - "w": 150, - "h": 150, - "resize": "crop" - }, - "large": { - "w": 765, - "h": 432, - "resize": "fit" - } - } - } - ] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - "retweet_count": 82, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "KATANA77", - "name": "(有)刀", - "id": 77915997, - "id_str": "77915997", - "indices": [ - 3, - 12 - ] - } - ], - "media": [ - { - "id": 505864942575034400, - "id_str": "505864942575034369", - "indices": [ - 27, - 49 - ], - "media_url": "http://pbs.twimg.com/media/BwUxfC6CIAEr-Ye.jpg", - "media_url_https": "https://pbs.twimg.com/media/BwUxfC6CIAEr-Ye.jpg", - "url": "http://t.co/PkCJAcSuYK", - "display_url": "pic.twitter.com/PkCJAcSuYK", - "expanded_url": "http://twitter.com/KATANA77/status/505864943636197376/photo/1", - "type": "photo", - "sizes": { - "medium": { - "w": 600, - "h": 338, - "resize": "fit" - }, - "small": { - "w": 340, - "h": 192, - "resize": "fit" - }, - "thumb": { - "w": 150, - "h": 150, - "resize": "crop" - }, - "large": { - "w": 765, - "h": 432, - "resize": "fit" - } - }, - "source_status_id": 505864943636197400, - "source_status_id_str": "505864943636197376" - } - ] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:14 +0000 2014", - "id": 505874920140591100, - "id_str": "505874920140591104", - "text": "@longhairxMIURA 朝一ライカス辛目だよw", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": 505874728897085440, - "in_reply_to_status_id_str": "505874728897085440", - "in_reply_to_user_id": 114188950, - "in_reply_to_user_id_str": "114188950", - "in_reply_to_screen_name": "longhairxMIURA", - "user": { - "id": 114786346, - "id_str": "114786346", - "name": "PROTECT-T", - "screen_name": "ttm_protect", - "location": "静岡県長泉町", - "description": "24 / XXX / @andprotector / @lifefocus0545 potato design works", - "url": "http://t.co/5EclbQiRX4", - "entities": { - "url": { - "urls": [ - { - "url": "http://t.co/5EclbQiRX4", - "expanded_url": "http://ap.furtherplatonix.net/index.html", - "display_url": "ap.furtherplatonix.net/index.html", - "indices": [ - 0, - 22 - ] - } - ] - }, - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 1387, - "friends_count": 903, - "listed_count": 25, - "created_at": "Tue Feb 16 16:13:41 +0000 2010", - "favourites_count": 492, - "utc_offset": 32400, - "time_zone": "Osaka", - "geo_enabled": false, - "verified": false, - "statuses_count": 12679, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/481360383253295104/4B9Rcfys_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/481360383253295104/4B9Rcfys_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/114786346/1403600232", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "longhairxMIURA", - "name": "miura desu", - "id": 114188950, - "id_str": "114188950", - "indices": [ - 0, - 15 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:14 +0000 2014", - "id": 505874919020699650, - "id_str": "505874919020699648", - "text": "RT @omo_kko: ラウワン脱出→友達が家に連んで帰ってって言うから友達ん家に乗せて帰る(1度も行ったことない田舎道)→友達おろして迷子→500メートルくらい続く変な一本道進む→墓地で行き止まりでUターン出来ずバックで500メートル元のところまで進まないといけない←今ここ", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 392585658, - "id_str": "392585658", - "name": "原稿", - "screen_name": "chibu4267", - "location": "キミの部屋の燃えるゴミ箱", - "description": "RTしてTLに濁流を起こすからフォローしない方が良いよ 言ってることもつまらないし 詳細→http://t.co/ANSFlYXERJ 相方@1life_5106_hshd 葛西教徒その壱", - "url": "http://t.co/JTFjV89eaN", - "entities": { - "url": { - "urls": [ - { - "url": "http://t.co/JTFjV89eaN", - "expanded_url": "http://www.pixiv.net/member.php?id=1778417", - "display_url": "pixiv.net/member.php?id=…", - "indices": [ - 0, - 22 - ] - } - ] - }, - "description": { - "urls": [ - { - "url": "http://t.co/ANSFlYXERJ", - "expanded_url": "http://twpf.jp/chibu4267", - "display_url": "twpf.jp/chibu4267", - "indices": [ - 45, - 67 - ] - } - ] - } - }, - "protected": false, - "followers_count": 1324, - "friends_count": 1165, - "listed_count": 99, - "created_at": "Mon Oct 17 08:23:46 +0000 2011", - "favourites_count": 9542, - "utc_offset": 32400, - "time_zone": "Tokyo", - "geo_enabled": true, - "verified": false, - "statuses_count": 369420, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/453106940822814720/PcJIZv43.png", - "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/453106940822814720/PcJIZv43.png", - "profile_background_tile": true, - "profile_image_url": "http://pbs.twimg.com/profile_images/505731759216943107/pzhnkMEg_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/505731759216943107/pzhnkMEg_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/392585658/1362383911", - "profile_link_color": "5EB9FF", - "profile_sidebar_border_color": "FFFFFF", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sat Aug 30 16:51:09 +0000 2014", - "id": 505759640164892700, - "id_str": "505759640164892673", - "text": "ラウワン脱出→友達が家に連んで帰ってって言うから友達ん家に乗せて帰る(1度も行ったことない田舎道)→友達おろして迷子→500メートルくらい続く変な一本道進む→墓地で行き止まりでUターン出来ずバックで500メートル元のところまで進まないといけない←今ここ", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 309565423, - "id_str": "309565423", - "name": "おもっこ", - "screen_name": "omo_kko", - "location": "", - "description": "ぱんすと", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 730, - "friends_count": 200, - "listed_count": 23, - "created_at": "Thu Jun 02 09:15:51 +0000 2011", - "favourites_count": 5441, - "utc_offset": 32400, - "time_zone": "Tokyo", - "geo_enabled": true, - "verified": false, - "statuses_count": 30012, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/499126939378929664/GLWpIKTW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/499126939378929664/GLWpIKTW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/309565423/1409418370", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 67, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "omo_kko", - "name": "おもっこ", - "id": 309565423, - "id_str": "309565423", - "indices": [ - 3, - 11 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:13 +0000 2014", - "id": 505874918198624260, - "id_str": "505874918198624256", - "text": "RT @thsc782_407: #LEDカツカツ選手権\n漢字一文字ぶんのスペースに「ハウステンボス」を収める狂気 http://t.co/vmrreDMziI", - "source": "Twitter for Android", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 753161754, - "id_str": "753161754", - "name": "ねこねこみかん*", - "screen_name": "nekonekomikan", - "location": "ソーダ水のあふれるビンの中", - "description": "猫×6、大学・高校・旦那各1と暮らしています。猫、子供、日常思った事をつぶやいています/今年の目標:読書、庭の手入れ、ランニング、手芸/猫*花*写真*詩*林ももこさん*鉄道など好きな方をフォローさせていただいています。よろしくお願いします♬", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 217, - "friends_count": 258, - "listed_count": 8, - "created_at": "Sun Aug 12 14:00:47 +0000 2012", - "favourites_count": 7650, - "utc_offset": 32400, - "time_zone": "Tokyo", - "geo_enabled": false, - "verified": false, - "statuses_count": 20621, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/470627990271848448/m83uy6Vc_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/470627990271848448/m83uy6Vc_normal.jpeg", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Fri Feb 28 16:04:13 +0000 2014", - "id": 439430848190742500, - "id_str": "439430848190742528", - "text": "#LEDカツカツ選手権\n漢字一文字ぶんのスペースに「ハウステンボス」を収める狂気 http://t.co/vmrreDMziI", - "source": "Twitter Web Client", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 82900665, - "id_str": "82900665", - "name": "[90]青葉台 芦 (第二粟屋) 屋", - "screen_name": "thsc782_407", - "location": "かんましき", - "description": "湯の街の元勃酩姦なんちゃら大 赤い犬の犬(外資系) 肥後で緑ナンバー屋さん勤め\nくだらないことしかつぶやかないし、いちいち訳のわからない記号を連呼するので相当邪魔になると思います。害はないと思います。のりものの画像とかたくさん上げます。さみしい。車輪のついたものならだいたい好き。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 587, - "friends_count": 623, - "listed_count": 30, - "created_at": "Fri Oct 16 15:13:32 +0000 2009", - "favourites_count": 1405, - "utc_offset": 32400, - "time_zone": "Tokyo", - "geo_enabled": true, - "verified": false, - "statuses_count": 60427, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "352726", - "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/154137819/__813-1103.jpg", - "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/154137819/__813-1103.jpg", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/493760276676620289/32oLiTtT_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/493760276676620289/32oLiTtT_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/82900665/1398865798", - "profile_link_color": "D02B55", - "profile_sidebar_border_color": "829D5E", - "profile_sidebar_fill_color": "99CC33", - "profile_text_color": "3E4415", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 3291, - "favorite_count": 1526, - "entities": { - "hashtags": [ - { - "text": "LEDカツカツ選手権", - "indices": [ - 0, - 11 - ] - } - ], - "symbols": [], - "urls": [], - "user_mentions": [], - "media": [ - { - "id": 439430848194936800, - "id_str": "439430848194936832", - "indices": [ - 41, - 63 - ], - "media_url": "http://pbs.twimg.com/media/BhksBzoCAAAJeDS.jpg", - "media_url_https": "https://pbs.twimg.com/media/BhksBzoCAAAJeDS.jpg", - "url": "http://t.co/vmrreDMziI", - "display_url": "pic.twitter.com/vmrreDMziI", - "expanded_url": "http://twitter.com/thsc782_407/status/439430848190742528/photo/1", - "type": "photo", - "sizes": { - "medium": { - "w": 600, - "h": 450, - "resize": "fit" - }, - "large": { - "w": 1024, - "h": 768, - "resize": "fit" - }, - "thumb": { - "w": 150, - "h": 150, - "resize": "crop" - }, - "small": { - "w": 340, - "h": 255, - "resize": "fit" - } - } - } - ] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - "retweet_count": 3291, - "favorite_count": 0, - "entities": { - "hashtags": [ - { - "text": "LEDカツカツ選手権", - "indices": [ - 17, - 28 - ] - } - ], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "thsc782_407", - "name": "[90]青葉台 芦 (第二粟屋) 屋", - "id": 82900665, - "id_str": "82900665", - "indices": [ - 3, - 15 - ] - } - ], - "media": [ - { - "id": 439430848194936800, - "id_str": "439430848194936832", - "indices": [ - 58, - 80 - ], - "media_url": "http://pbs.twimg.com/media/BhksBzoCAAAJeDS.jpg", - "media_url_https": "https://pbs.twimg.com/media/BhksBzoCAAAJeDS.jpg", - "url": "http://t.co/vmrreDMziI", - "display_url": "pic.twitter.com/vmrreDMziI", - "expanded_url": "http://twitter.com/thsc782_407/status/439430848190742528/photo/1", - "type": "photo", - "sizes": { - "medium": { - "w": 600, - "h": 450, - "resize": "fit" - }, - "large": { - "w": 1024, - "h": 768, - "resize": "fit" - }, - "thumb": { - "w": 150, - "h": 150, - "resize": "crop" - }, - "small": { - "w": 340, - "h": 255, - "resize": "fit" - } - }, - "source_status_id": 439430848190742500, - "source_status_id_str": "439430848190742528" - } - ] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:13 +0000 2014", - "id": 505874918039228400, - "id_str": "505874918039228416", - "text": "【金一地区太鼓台】川関と小山の見分けがつかない", - "source": "twittbot.net", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2530194984, - "id_str": "2530194984", - "name": "川之江中高生あるある", - "screen_name": "kw_aru", - "location": "DMにてネタ提供待ってますよ", - "description": "川之江中高生の川之江中高生による川之江中高生のためのあるあるアカウントです。タイムリーなネタはお気に入りにあります。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 113, - "friends_count": 157, - "listed_count": 0, - "created_at": "Wed May 28 15:01:43 +0000 2014", - "favourites_count": 30, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 4472, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/471668359314948097/XbIyXiZK_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/471668359314948097/XbIyXiZK_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2530194984/1401289473", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:13 +0000 2014", - "id": 505874915338104800, - "id_str": "505874915338104833", - "text": "おはようございますん♪ SSDSのDVDが朝一で届いた〜(≧∇≦)", - "source": "TweetList!", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 428179337, - "id_str": "428179337", - "name": "サラ", - "screen_name": "sala_mgn", - "location": "東京都", - "description": "bot遊びと実況が主目的の趣味アカウント。成人済♀。時々TLお騒がせします。リフォ率低いですがF/Bご自由に。スパムはブロック![HOT]K[アニメ]タイバニ/K/薄桜鬼/トライガン/進撃[小説]冲方丁/森博嗣[漫画]内藤泰弘/高河ゆん[他]声優/演劇 ※@sano_bot1二代目管理人", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 104, - "friends_count": 421, - "listed_count": 2, - "created_at": "Sun Dec 04 12:51:18 +0000 2011", - "favourites_count": 3257, - "utc_offset": -36000, - "time_zone": "Hawaii", - "geo_enabled": false, - "verified": false, - "statuses_count": 25303, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "1A1B1F", - "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/601682567/put73jtg48ytjylq00if.jpeg", - "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/601682567/put73jtg48ytjylq00if.jpeg", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/3350624721/755920942e4f512e6ba489df7eb1147e_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/3350624721/755920942e4f512e6ba489df7eb1147e_normal.jpeg", - "profile_link_color": "2FC2EF", - "profile_sidebar_border_color": "181A1E", - "profile_sidebar_fill_color": "252429", - "profile_text_color": "666666", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:13 +0000 2014", - "id": 505874914897690600, - "id_str": "505874914897690624", - "text": "@ran_kirazuki そのようなお言葉を頂けるとは……!この雨太郎、誠心誠意を持って姉御の足の指の第一関節を崇め奉りとうございます", - "source": "Twitter for Android", - "truncated": false, - "in_reply_to_status_id": 505874276692406300, - "in_reply_to_status_id_str": "505874276692406272", - "in_reply_to_user_id": 531544559, - "in_reply_to_user_id_str": "531544559", - "in_reply_to_screen_name": "ran_kirazuki", - "user": { - "id": 2364828518, - "id_str": "2364828518", - "name": "雨", - "screen_name": "tear_dice", - "location": "変態/日常/創作/室町/たまに版権", - "description": "アイコンは兄さんから!", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 28, - "friends_count": 28, - "listed_count": 0, - "created_at": "Fri Feb 28 00:28:40 +0000 2014", - "favourites_count": 109, - "utc_offset": 32400, - "time_zone": "Seoul", - "geo_enabled": false, - "verified": false, - "statuses_count": 193, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "000000", - "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/504434510675443713/lvW7ad5b.jpeg", - "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/504434510675443713/lvW7ad5b.jpeg", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/505170142284640256/rnW4XeEJ_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/505170142284640256/rnW4XeEJ_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2364828518/1409087198", - "profile_link_color": "0D31BF", - "profile_sidebar_border_color": "000000", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "ran_kirazuki", - "name": "蘭ぴよの日常", - "id": 531544559, - "id_str": "531544559", - "indices": [ - 0, - 13 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:13 +0000 2014", - "id": 505874914591514600, - "id_str": "505874914591514626", - "text": "RT @AFmbsk: @samao21718 \n呼び方☞まおちゃん\n呼ばれ方☞あーちゃん\n第一印象☞平野から?!\n今の印象☞おとなっぽい!!\nLINE交換☞もってるん\\( ˆoˆ )/\nトプ画について☞楽しそうでいーな😳\n家族にするなら☞おねぇちゃん\n最後に一言☞全然会えない…", - "source": "Twitter for Android", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2179759316, - "id_str": "2179759316", - "name": "まお", - "screen_name": "samao21718", - "location": "埼玉 UK留学してました✈", - "description": "゚.*97line おさらに貢いでる系女子*.゜ DISH// ✯ 佐野悠斗 ✯ 読モ ✯ WEGO ✯ 嵐 I met @OTYOfficial in the London ;)", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 111, - "friends_count": 121, - "listed_count": 0, - "created_at": "Thu Nov 07 09:47:41 +0000 2013", - "favourites_count": 321, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 1777, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501535615351926784/c5AAh6Sz_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501535615351926784/c5AAh6Sz_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2179759316/1407640217", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sat Aug 30 14:59:49 +0000 2014", - "id": 505731620456771600, - "id_str": "505731620456771584", - "text": "@samao21718 \n呼び方☞まおちゃん\n呼ばれ方☞あーちゃん\n第一印象☞平野から?!\n今の印象☞おとなっぽい!!\nLINE交換☞もってるん\\( ˆoˆ )/\nトプ画について☞楽しそうでいーな😳\n家族にするなら☞おねぇちゃん\n最後に一言☞全然会えないねー今度会えたらいいな!", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": 2179759316, - "in_reply_to_user_id_str": "2179759316", - "in_reply_to_screen_name": "samao21718", - "user": { - "id": 1680668713, - "id_str": "1680668713", - "name": "★Shiiiii!☆", - "screen_name": "AFmbsk", - "location": "埼玉", - "description": "2310*basketball#41*UVERworld*Pooh☪Bell +.。*弱さを知って強くなれ*゚", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 429, - "friends_count": 434, - "listed_count": 0, - "created_at": "Sun Aug 18 12:45:00 +0000 2013", - "favourites_count": 2488, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 6352, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/504643170886365185/JN_dlwUd_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/504643170886365185/JN_dlwUd_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/1680668713/1408805886", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 1, - "favorite_count": 1, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "samao21718", - "name": "まお", - "id": 2179759316, - "id_str": "2179759316", - "indices": [ - 0, - 11 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 1, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "AFmbsk", - "name": "★Shiiiii!☆", - "id": 1680668713, - "id_str": "1680668713", - "indices": [ - 3, - 10 - ] - }, - { - "screen_name": "samao21718", - "name": "まお", - "id": 2179759316, - "id_str": "2179759316", - "indices": [ - 12, - 23 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:10 +0000 2014", - "id": 505874905712189440, - "id_str": "505874905712189440", - "text": "一、常に身一つ簡素にして、美食を好んではならない", - "source": "twittbot.net", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 1330420010, - "id_str": "1330420010", - "name": "獨行道bot", - "screen_name": "dokkodo_bot", - "location": "", - "description": "宮本武蔵の自誓書、「獨行道」に記された二十一箇条をランダムにつぶやくbotです。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 4, - "friends_count": 5, - "listed_count": 1, - "created_at": "Sat Apr 06 01:19:55 +0000 2013", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 9639, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/3482551671/d9e749f7658b523bdd50b7584ed4ba6a_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/3482551671/d9e749f7658b523bdd50b7584ed4ba6a_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/1330420010/1365212335", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:10 +0000 2014", - "id": 505874903094939650, - "id_str": "505874903094939648", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "モテモテ大作戦★男子編", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2714526565, - "id_str": "2714526565", - "name": "モテモテ大作戦★男子編", - "screen_name": "mote_danshi1", - "location": "", - "description": "やっぱりモテモテ男子になりたい!自分を磨くヒントをみつけたい!応援してくれる人は RT & 相互フォローで みなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 664, - "friends_count": 1835, - "listed_count": 0, - "created_at": "Thu Aug 07 12:59:59 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 597, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/497368689386086400/7hqdKMzG_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/497368689386086400/7hqdKMzG_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2714526565/1407416898", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:10 +0000 2014", - "id": 505874902390276100, - "id_str": "505874902390276096", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "心に響くアツい名言集", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2699261263, - "id_str": "2699261263", - "name": "心に響くアツい名言集", - "screen_name": "kokoro_meigen11", - "location": "", - "description": "人生の格言は、人の心や人生を瞬時にに動かしてしまうことがある。\r\nそんな言葉の重みを味わおう。\r\n面白かったらRT & 相互フォローでみなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 183, - "friends_count": 1126, - "listed_count": 0, - "created_at": "Fri Aug 01 22:00:00 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 749, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/495328654126112768/1rKnNuWK_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/495328654126112768/1rKnNuWK_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2699261263/1406930543", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:10 +0000 2014", - "id": 505874902247677950, - "id_str": "505874902247677954", - "text": "RT @POTENZA_SUPERGT: ありがとうございます!“@8CBR8: @POTENZA_SUPERGT 13時半ごろ一雨きそうですが、無事全車決勝レース完走出来ること祈ってます! http://t.co/FzTyFnt9xH”", - "source": "jigtwi", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 1021030416, - "id_str": "1021030416", - "name": "narur", - "screen_name": "narur2", - "location": "晴れの国なのに何故か開幕戦では雨や雪や冰や霰が降る✨", - "description": "F1.GP2.Superformula.SuperGT.F3...\nスーパーGTが大好き♡車が好き!新幹線も好き!飛行機も好き!こっそり別アカです(๑´ㅂ`๑)♡*.+゜", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 257, - "friends_count": 237, - "listed_count": 2, - "created_at": "Wed Dec 19 01:14:41 +0000 2012", - "favourites_count": 547, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 55417, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/462180217574789121/1Jf6m_2L.jpeg", - "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/462180217574789121/1Jf6m_2L.jpeg", - "profile_background_tile": true, - "profile_image_url": "http://pbs.twimg.com/profile_images/444312241395863552/FKl40ebQ_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/444312241395863552/FKl40ebQ_normal.jpeg", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:05:11 +0000 2014", - "id": 505868866686169100, - "id_str": "505868866686169089", - "text": "ありがとうございます!“@8CBR8: @POTENZA_SUPERGT 13時半ごろ一雨きそうですが、無事全車決勝レース完走出来ること祈ってます! http://t.co/FzTyFnt9xH”", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": 505868690588303360, - "in_reply_to_status_id_str": "505868690588303360", - "in_reply_to_user_id": 333344408, - "in_reply_to_user_id_str": "333344408", - "in_reply_to_screen_name": "8CBR8", - "user": { - "id": 359324738, - "id_str": "359324738", - "name": "POTENZA_SUPERGT", - "screen_name": "POTENZA_SUPERGT", - "location": "", - "description": "ブリヂストンのスポーツタイヤ「POTENZA」のアカウントです。レースやタイヤの事などをつぶやきます。今シーズンも「チャンピオンタイヤの称号は譲らない」をキャッチコピーに、タイヤ供給チームを全力でサポートしていきますので、応援よろしくお願いします!なお、返信ができない場合もありますので、ご了承よろしくお願い致します。", - "url": "http://t.co/LruVPk5x4K", - "entities": { - "url": { - "urls": [ - { - "url": "http://t.co/LruVPk5x4K", - "expanded_url": "http://www.bridgestone.co.jp/sc/potenza/", - "display_url": "bridgestone.co.jp/sc/potenza/", - "indices": [ - 0, - 22 - ] - } - ] - }, - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 9612, - "friends_count": 308, - "listed_count": 373, - "created_at": "Sun Aug 21 11:33:38 +0000 2011", - "favourites_count": 26, - "utc_offset": -36000, - "time_zone": "Hawaii", - "geo_enabled": true, - "verified": false, - "statuses_count": 10032, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "131516", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme14/bg.gif", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme14/bg.gif", - "profile_background_tile": true, - "profile_image_url": "http://pbs.twimg.com/profile_images/1507885396/TW_image_normal.jpg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/1507885396/TW_image_normal.jpg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/359324738/1402546267", - "profile_link_color": "FF2424", - "profile_sidebar_border_color": "EEEEEE", - "profile_sidebar_fill_color": "EFEFEF", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 7, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "8CBR8", - "name": "CBR Rider #17 KEIHIN", - "id": 333344408, - "id_str": "333344408", - "indices": [ - 12, - 18 - ] - }, - { - "screen_name": "POTENZA_SUPERGT", - "name": "POTENZA_SUPERGT", - "id": 359324738, - "id_str": "359324738", - "indices": [ - 20, - 36 - ] - } - ], - "media": [ - { - "id": 505868690252779500, - "id_str": "505868690252779521", - "indices": [ - 75, - 97 - ], - "media_url": "http://pbs.twimg.com/media/BwU05MGCUAEY6Wu.jpg", - "media_url_https": "https://pbs.twimg.com/media/BwU05MGCUAEY6Wu.jpg", - "url": "http://t.co/FzTyFnt9xH", - "display_url": "pic.twitter.com/FzTyFnt9xH", - "expanded_url": "http://twitter.com/8CBR8/status/505868690588303360/photo/1", - "type": "photo", - "sizes": { - "medium": { - "w": 600, - "h": 399, - "resize": "fit" - }, - "thumb": { - "w": 150, - "h": 150, - "resize": "crop" - }, - "large": { - "w": 1024, - "h": 682, - "resize": "fit" - }, - "small": { - "w": 340, - "h": 226, - "resize": "fit" - } - }, - "source_status_id": 505868690588303360, - "source_status_id_str": "505868690588303360" - } - ] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - "retweet_count": 7, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "POTENZA_SUPERGT", - "name": "POTENZA_SUPERGT", - "id": 359324738, - "id_str": "359324738", - "indices": [ - 3, - 19 - ] - }, - { - "screen_name": "8CBR8", - "name": "CBR Rider #17 KEIHIN", - "id": 333344408, - "id_str": "333344408", - "indices": [ - 33, - 39 - ] - }, - { - "screen_name": "POTENZA_SUPERGT", - "name": "POTENZA_SUPERGT", - "id": 359324738, - "id_str": "359324738", - "indices": [ - 41, - 57 - ] - } - ], - "media": [ - { - "id": 505868690252779500, - "id_str": "505868690252779521", - "indices": [ - 96, - 118 - ], - "media_url": "http://pbs.twimg.com/media/BwU05MGCUAEY6Wu.jpg", - "media_url_https": "https://pbs.twimg.com/media/BwU05MGCUAEY6Wu.jpg", - "url": "http://t.co/FzTyFnt9xH", - "display_url": "pic.twitter.com/FzTyFnt9xH", - "expanded_url": "http://twitter.com/8CBR8/status/505868690588303360/photo/1", - "type": "photo", - "sizes": { - "medium": { - "w": 600, - "h": 399, - "resize": "fit" - }, - "thumb": { - "w": 150, - "h": 150, - "resize": "crop" - }, - "large": { - "w": 1024, - "h": 682, - "resize": "fit" - }, - "small": { - "w": 340, - "h": 226, - "resize": "fit" - } - }, - "source_status_id": 505868690588303360, - "source_status_id_str": "505868690588303360" - } - ] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:09 +0000 2014", - "id": 505874901689851900, - "id_str": "505874901689851904", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "ここだけの本音★男子編", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2762136439, - "id_str": "2762136439", - "name": "ここだけの本音★男子編", - "screen_name": "danshi_honne1", - "location": "", - "description": "思ってるけど言えない!でもホントは言いたいこと、実はいっぱいあるんです! \r\nそんな男子の本音を、つぶやきます。 \r\nその気持わかるって人は RT & フォローお願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 101, - "friends_count": 985, - "listed_count": 0, - "created_at": "Sun Aug 24 11:11:30 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 209, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/503500282840354816/CEv8UMay_normal.png", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/503500282840354816/CEv8UMay_normal.png", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2762136439/1408878822", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:09 +0000 2014", - "id": 505874900939046900, - "id_str": "505874900939046912", - "text": "RT @UARROW_Y: ようかい体操第一を踊る国見英 http://t.co/SXoYWH98as", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2454426158, - "id_str": "2454426158", - "name": "ぴかりん", - "screen_name": "gncnToktTtksg", - "location": "", - "description": "銀魂/黒バス/進撃/ハイキュー/BLEACH/うたプリ/鈴木達央さん/神谷浩史さん 気軽にフォローしてください(^∇^)✨", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 1274, - "friends_count": 1320, - "listed_count": 17, - "created_at": "Sun Apr 20 07:48:53 +0000 2014", - "favourites_count": 2314, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 5868, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/457788684146716672/KCOy0S75_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/457788684146716672/KCOy0S75_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2454426158/1409371302", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:45 +0000 2014", - "id": 505871779949051900, - "id_str": "505871779949051904", - "text": "ようかい体操第一を踊る国見英 http://t.co/SXoYWH98as", - "source": "Twitter for Android", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 1261662588, - "id_str": "1261662588", - "name": "ゆう矢", - "screen_name": "UARROW_Y", - "location": "つくり出そう国影の波 広げよう国影の輪", - "description": "HQ!! 成人済腐女子。日常ツイート多いです。赤葦京治夢豚クソツイ含みます注意。フォローをお考えの際はプロフご一読お願い致します。FRBお気軽に", - "url": "http://t.co/LFX2XOzb0l", - "entities": { - "url": { - "urls": [ - { - "url": "http://t.co/LFX2XOzb0l", - "expanded_url": "http://twpf.jp/UARROW_Y", - "display_url": "twpf.jp/UARROW_Y", - "indices": [ - 0, - 22 - ] - } - ] - }, - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 265, - "friends_count": 124, - "listed_count": 12, - "created_at": "Tue Mar 12 10:42:17 +0000 2013", - "favourites_count": 6762, - "utc_offset": 32400, - "time_zone": "Tokyo", - "geo_enabled": true, - "verified": false, - "statuses_count": 55946, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/502095104618663937/IzuPYx3E_normal.png", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/502095104618663937/IzuPYx3E_normal.png", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/1261662588/1408618604", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 29, - "favorite_count": 54, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [ - { - "url": "http://t.co/SXoYWH98as", - "expanded_url": "http://twitter.com/UARROW_Y/status/505871779949051904/photo/1", - "display_url": "pic.twitter.com/SXoYWH98as", - "indices": [ - 15, - 37 - ] - } - ], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - "retweet_count": 29, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [ - { - "url": "http://t.co/SXoYWH98as", - "expanded_url": "http://twitter.com/UARROW_Y/status/505871779949051904/photo/1", - "display_url": "pic.twitter.com/SXoYWH98as", - "indices": [ - 29, - 51 - ] - } - ], - "user_mentions": [ - { - "screen_name": "UARROW_Y", - "name": "ゆう矢", - "id": 1261662588, - "id_str": "1261662588", - "indices": [ - 3, - 12 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:09 +0000 2014", - "id": 505874900561580000, - "id_str": "505874900561580032", - "text": "今日は一高と三桜(・θ・)\n光梨ちゃんに会えないかな〜", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 1366375976, - "id_str": "1366375976", - "name": "ゆいの", - "screen_name": "yuino1006", - "location": "", - "description": "さんおう 男バスマネ2ねん(^ω^)", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 270, - "friends_count": 260, - "listed_count": 0, - "created_at": "Sat Apr 20 07:02:08 +0000 2013", - "favourites_count": 1384, - "utc_offset": 32400, - "time_zone": "Irkutsk", - "geo_enabled": false, - "verified": false, - "statuses_count": 5202, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/505354401448349696/nxVFEQQ4_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/505354401448349696/nxVFEQQ4_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/1366375976/1399989379", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:09 +0000 2014", - "id": 505874899324248060, - "id_str": "505874899324248064", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "共感★絶対あるあるww", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2704420069, - "id_str": "2704420069", - "name": "共感★絶対あるあるww", - "screen_name": "kyoukan_aru", - "location": "", - "description": "みんなにもわかってもらえる、あるあるを見つけたい。\r\n面白かったらRT & 相互フォローでみなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 857, - "friends_count": 1873, - "listed_count": 0, - "created_at": "Sun Aug 03 15:50:40 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 682, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/495960812670836737/1LqkoyvU_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/495960812670836737/1LqkoyvU_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2704420069/1407081298", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:09 +0000 2014", - "id": 505874898493796350, - "id_str": "505874898493796352", - "text": "RT @assam_house: 泉田新潟県知事は、東電の申請書提出を容認させられただけで、再稼働に必要な「同意」はまだ与えていません。今まで柏崎刈羽の再稼働を抑え続けてきた知事に、もう一踏ん張りをお願いする意見を送って下さい。全国の皆様、お願いします!\nhttp://t.co…", - "source": "jigtwi for Android", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 960765968, - "id_str": "960765968", - "name": "さち", - "screen_name": "sachitaka_dears", - "location": "宮城県", - "description": "動物関連のアカウントです。サブアカウント@sachi_dears (さち ❷) もあります。『心あるものは皆、愛し愛されるために生まれてきた。そして愛情を感じながら生を全うするべきなんだ』", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 3212, - "friends_count": 3528, - "listed_count": 91, - "created_at": "Tue Nov 20 16:30:53 +0000 2012", - "favourites_count": 3180, - "utc_offset": 32400, - "time_zone": "Irkutsk", - "geo_enabled": false, - "verified": false, - "statuses_count": 146935, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/3659653229/5b698df67f5d105400e9077f5ea50e91_normal.png", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/3659653229/5b698df67f5d105400e9077f5ea50e91_normal.png", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Tue Aug 19 11:00:53 +0000 2014", - "id": 501685228427964400, - "id_str": "501685228427964417", - "text": "泉田新潟県知事は、東電の申請書提出を容認させられただけで、再稼働に必要な「同意」はまだ与えていません。今まで柏崎刈羽の再稼働を抑え続けてきた知事に、もう一踏ん張りをお願いする意見を送って下さい。全国の皆様、お願いします!\nhttp://t.co/9oH5cgpy1q", - "source": "twittbot.net", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 1104771276, - "id_str": "1104771276", - "name": "アッサム山中(殺処分ゼロに一票)", - "screen_name": "assam_house", - "location": "新潟県柏崎市", - "description": "アッサム山中の趣味用アカ。当分の間、選挙啓発用としても使っていきます。このアカウントがアッサム山中本人のものである事は @assam_yamanaka のプロフでご確認下さい。\r\n公選法に係る表示\r\n庶民新党 #脱原発 http://t.co/96UqoCo0oU\r\nonestep.revival@gmail.com", - "url": "http://t.co/AEOCATaNZc", - "entities": { - "url": { - "urls": [ - { - "url": "http://t.co/AEOCATaNZc", - "expanded_url": "http://www.assam-house.net/", - "display_url": "assam-house.net", - "indices": [ - 0, - 22 - ] - } - ] - }, - "description": { - "urls": [ - { - "url": "http://t.co/96UqoCo0oU", - "expanded_url": "http://blog.assam-house.net/datsu-genpatsu/index.html", - "display_url": "blog.assam-house.net/datsu-genpatsu…", - "indices": [ - 110, - 132 - ] - } - ] - } - }, - "protected": false, - "followers_count": 2977, - "friends_count": 3127, - "listed_count": 64, - "created_at": "Sat Jan 19 22:10:13 +0000 2013", - "favourites_count": 343, - "utc_offset": 32400, - "time_zone": "Irkutsk", - "geo_enabled": false, - "verified": false, - "statuses_count": 18021, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/378800000067217575/e0a85b440429ff50430a41200327dcb8_normal.png", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/378800000067217575/e0a85b440429ff50430a41200327dcb8_normal.png", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/1104771276/1408948288", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 2, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [ - { - "url": "http://t.co/9oH5cgpy1q", - "expanded_url": "http://www.pref.niigata.lg.jp/kouhou/info.html", - "display_url": "pref.niigata.lg.jp/kouhou/info.ht…", - "indices": [ - 111, - 133 - ] - } - ], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - "retweet_count": 2, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [ - { - "url": "http://t.co/9oH5cgpy1q", - "expanded_url": "http://www.pref.niigata.lg.jp/kouhou/info.html", - "display_url": "pref.niigata.lg.jp/kouhou/info.ht…", - "indices": [ - 139, - 140 - ] - } - ], - "user_mentions": [ - { - "screen_name": "assam_house", - "name": "アッサム山中(殺処分ゼロに一票)", - "id": 1104771276, - "id_str": "1104771276", - "indices": [ - 3, - 15 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:09 +0000 2014", - "id": 505874898468630500, - "id_str": "505874898468630528", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "おしゃれ★ペアルック", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2708607692, - "id_str": "2708607692", - "name": "おしゃれ★ペアルック", - "screen_name": "osyare_pea", - "location": "", - "description": "ラブラブ度がアップする、素敵なペアルックを見つけて紹介します♪ 気に入ったら RT & 相互フォローで みなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 129, - "friends_count": 1934, - "listed_count": 0, - "created_at": "Tue Aug 05 07:09:31 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 641, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/496554257676382208/Zgg0bmNu_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/496554257676382208/Zgg0bmNu_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2708607692/1407222776", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:08 +0000 2014", - "id": 505874897633951740, - "id_str": "505874897633951745", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "LOVE ♥ ラブライブ", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745389137, - "id_str": "2745389137", - "name": "LOVE ♥ ラブライブ", - "screen_name": "love_live55", - "location": "", - "description": "とにかく「ラブライブが好きで~す♥」 \r\nラブライブファンには、たまらない内容ばかり集めています♪ \r\n気に入ったら RT & 相互フォローお願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 251, - "friends_count": 969, - "listed_count": 0, - "created_at": "Tue Aug 19 15:45:40 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 348, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501757482448850944/x2uPpqRx_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501757482448850944/x2uPpqRx_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745389137/1408463342", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:08 +0000 2014", - "id": 505874896795086850, - "id_str": "505874896795086848", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "恋する♡ドレスシリーズ", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2726346560, - "id_str": "2726346560", - "name": "恋する♡ドレスシリーズ", - "screen_name": "koisurudoress", - "location": "", - "description": "どれもこれも、見ているだけで欲しくなっちゃう♪ \r\n特別な日に着る素敵なドレスを見つけたいです。 \r\n着てみたいと思ったら RT & フォローお願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 314, - "friends_count": 1900, - "listed_count": 0, - "created_at": "Tue Aug 12 14:10:35 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 471, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/499199619465621504/fg7sVusT_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/499199619465621504/fg7sVusT_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2726346560/1407853688", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:08 +0000 2014", - "id": 505874895964626940, - "id_str": "505874895964626944", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "胸キュン♥動物図鑑", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2759192574, - "id_str": "2759192574", - "name": "胸キュン♥動物図鑑", - "screen_name": "doubutuzukan", - "location": "", - "description": "ふとした表情に思わずキュンとしてしまう♪ \r\nそんな愛しの動物たちの写真を見つけます。 \r\n気に入ったら RT & フォローを、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 80, - "friends_count": 959, - "listed_count": 1, - "created_at": "Sat Aug 23 15:47:36 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 219, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/503211559552688128/Ej_bixna_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/503211559552688128/Ej_bixna_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2759192574/1408809101", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:08 +0000 2014", - "id": 505874895079608300, - "id_str": "505874895079608320", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "ディズニー★パラダイス", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2719228561, - "id_str": "2719228561", - "name": "ディズニー★パラダイス", - "screen_name": "disney_para", - "location": "", - "description": "ディズニーのかわいい画像、ニュース情報、あるあるなどをお届けします♪\r\nディズニーファンは RT & フォローもお願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 331, - "friends_count": 1867, - "listed_count": 0, - "created_at": "Sat Aug 09 12:01:32 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 540, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/498076922488696832/Ti2AEuOT_normal.png", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/498076922488696832/Ti2AEuOT_normal.png", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2719228561/1407585841", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:08 +0000 2014", - "id": 505874894135898100, - "id_str": "505874894135898112", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "生々しい風刺画", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2714772727, - "id_str": "2714772727", - "name": "生々しい風刺画", - "screen_name": "nama_fuushi", - "location": "", - "description": "深い意味が込められた「生々しい風刺画」を見つけます。\r\n考えさせられたら RT & 相互フォローでみなさん、お願いします", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 298, - "friends_count": 1902, - "listed_count": 1, - "created_at": "Thu Aug 07 15:04:45 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 595, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/497398363352875011/tS-5FPJB_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/497398363352875011/tS-5FPJB_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2714772727/1407424091", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:07 +0000 2014", - "id": 505874893347377150, - "id_str": "505874893347377152", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "嵐★大好きっ娘", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2721682579, - "id_str": "2721682579", - "name": "嵐★大好きっ娘", - "screen_name": "arashi_suki1", - "location": "", - "description": "なんだかんだ言って、やっぱり嵐が好きなんです♪\r\nいろいろ集めたいので、嵐好きな人に見てほしいです。\r\n気に入ったら RT & 相互フォローお願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 794, - "friends_count": 1913, - "listed_count": 2, - "created_at": "Sun Aug 10 13:43:56 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 504, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/498465364733198336/RO6wupdc_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/498465364733198336/RO6wupdc_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2721682579/1407678436", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:07 +0000 2014", - "id": 505874893154426900, - "id_str": "505874893154426881", - "text": "RT @Takashi_Shiina: テレビで「成人男性のカロリー摂取量は1900kcal」とか言ってて、それはいままさに私がダイエットのために必死でキープしようとしている量で、「それが普通なら人はいつ天一やココイチに行って大盛りを食えばいいんだ!」と思った。", - "source": "twicca", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 353516742, - "id_str": "353516742", - "name": "おしんこー@土曜西え41a", - "screen_name": "oshin_koko", - "location": "こたつ", - "description": "ROMって楽しんでいる部分もあり無言フォロー多めですすみません…。ツイート数多め・あらぶり多めなのでフォロー非推奨です。最近は早兵・兵部受け中心ですがBLNLなんでも好きです。地雷少ないため雑多に呟きます。腐・R18・ネタバレ有るのでご注意。他好きなジャンルはプロフ参照願います。 主催→@chounou_antholo", - "url": "http://t.co/mM1dG54NiO", - "entities": { - "url": { - "urls": [ - { - "url": "http://t.co/mM1dG54NiO", - "expanded_url": "http://twpf.jp/oshin_koko", - "display_url": "twpf.jp/oshin_koko", - "indices": [ - 0, - 22 - ] - } - ] - }, - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 479, - "friends_count": 510, - "listed_count": 43, - "created_at": "Fri Aug 12 05:53:13 +0000 2011", - "favourites_count": 3059, - "utc_offset": 32400, - "time_zone": "Tokyo", - "geo_enabled": false, - "verified": false, - "statuses_count": 104086, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "000000", - "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/799871497/01583a031f83a45eba881c8acde729ee.jpeg", - "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/799871497/01583a031f83a45eba881c8acde729ee.jpeg", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/484347196523835393/iHaYxm-2_normal.png", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/484347196523835393/iHaYxm-2_normal.png", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/353516742/1369039651", - "profile_link_color": "FF96B0", - "profile_sidebar_border_color": "FFFFFF", - "profile_sidebar_fill_color": "95E8EC", - "profile_text_color": "3C3940", - "profile_use_background_image": false, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sat Aug 30 09:58:30 +0000 2014", - "id": 505655792733650940, - "id_str": "505655792733650944", - "text": "テレビで「成人男性のカロリー摂取量は1900kcal」とか言ってて、それはいままさに私がダイエットのために必死でキープしようとしている量で、「それが普通なら人はいつ天一やココイチに行って大盛りを食えばいいんだ!」と思った。", - "source": "Janetter", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 126573583, - "id_str": "126573583", - "name": "椎名高志", - "screen_name": "Takashi_Shiina", - "location": "BABEL(超能力支援研究局)", - "description": "漫画家。週刊少年サンデーで『絶対可憐チルドレン』連載中。TVアニメ『THE UNLIMITED 兵部京介』公式サイト>http://t.co/jVqBoBEc", - "url": "http://t.co/K3Oi83wM3w", - "entities": { - "url": { - "urls": [ - { - "url": "http://t.co/K3Oi83wM3w", - "expanded_url": "http://cnanews.asablo.jp/blog/", - "display_url": "cnanews.asablo.jp/blog/", - "indices": [ - 0, - 22 - ] - } - ] - }, - "description": { - "urls": [ - { - "url": "http://t.co/jVqBoBEc", - "expanded_url": "http://unlimited-zc.jp/index.html", - "display_url": "unlimited-zc.jp/index.html", - "indices": [ - 59, - 79 - ] - } - ] - } - }, - "protected": false, - "followers_count": 110756, - "friends_count": 61, - "listed_count": 8159, - "created_at": "Fri Mar 26 08:54:51 +0000 2010", - "favourites_count": 25, - "utc_offset": 32400, - "time_zone": "Tokyo", - "geo_enabled": false, - "verified": false, - "statuses_count": 27364, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "EDECE9", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme3/bg.gif", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme3/bg.gif", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/504597210772688896/Uvt4jgf5_normal.png", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/504597210772688896/Uvt4jgf5_normal.png", - "profile_link_color": "088253", - "profile_sidebar_border_color": "D3D2CF", - "profile_sidebar_fill_color": "E3E2DE", - "profile_text_color": "634047", - "profile_use_background_image": false, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 221, - "favorite_count": 109, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 221, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "Takashi_Shiina", - "name": "椎名高志", - "id": 126573583, - "id_str": "126573583", - "indices": [ - 3, - 18 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:07 +0000 2014", - "id": 505874892567244800, - "id_str": "505874892567244801", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "下ネタ&笑変態雑学", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2762581922, - "id_str": "2762581922", - "name": "下ネタ&笑変態雑学", - "screen_name": "shimo_hentai", - "location": "", - "description": "普通の人には思いつかない、ちょっと変態チックな 笑える下ネタ雑学をお届けします。 \r\nおもしろかったら RT & フォローお願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 37, - "friends_count": 990, - "listed_count": 0, - "created_at": "Sun Aug 24 14:13:20 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 212, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/503545991950114816/K9yQbh1Q_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/503545991950114816/K9yQbh1Q_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2762581922/1408889893", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:07 +0000 2014", - "id": 505874891778703360, - "id_str": "505874891778703360", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "超簡単★初心者英語", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2744544025, - "id_str": "2744544025", - "name": "超簡単★初心者英語", - "screen_name": "kantaneigo1", - "location": "", - "description": "すぐに使えるフレーズや簡単な会話を紹介します。 \r\n少しづつ練習して、どんどん使ってみよう☆ \r\n使ってみたいと思ったら RT & フォローお願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 147, - "friends_count": 970, - "listed_count": 1, - "created_at": "Tue Aug 19 10:11:48 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 345, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501676136321929216/4MLpyHe3_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501676136321929216/4MLpyHe3_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2744544025/1408443928", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:07 +0000 2014", - "id": 505874891032121340, - "id_str": "505874891032121344", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "現代のハンドサイン", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2762816814, - "id_str": "2762816814", - "name": "現代のハンドサイン", - "screen_name": "ima_handsign", - "location": "", - "description": "イザという時や、困った時に、必ず役に立つハンドサインのオンパレードです♪ \r\n使ってみたくなったら RT & フォローお願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 95, - "friends_count": 996, - "listed_count": 0, - "created_at": "Sun Aug 24 15:33:58 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 210, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/503566188253687809/7wtdp1AC_normal.png", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/503566188253687809/7wtdp1AC_normal.png", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2762816814/1408894540", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:07 +0000 2014", - "id": 505874890247782400, - "id_str": "505874890247782401", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "今日からアナタもイイ女♪", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2714167411, - "id_str": "2714167411", - "name": "今日からアナタもイイ女♪", - "screen_name": "anata_iionna", - "location": "", - "description": "みんなが知りたい イイ女の秘密を見つけます♪ いいな~と思ってくれた人は RT & 相互フォローで みなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 390, - "friends_count": 1425, - "listed_count": 0, - "created_at": "Thu Aug 07 09:27:59 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 609, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/497314455655436288/dz7P3-fy_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/497314455655436288/dz7P3-fy_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2714167411/1407404214", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:07 +0000 2014", - "id": 505874890218434560, - "id_str": "505874890218434560", - "text": "@kohecyan3 \n名前:上野滉平\n呼び方:うえの\n呼ばれ方:ずるかわ\n第一印象:過剰な俺イケメンですアピール\n今の印象:バーバリーの時計\n好きなところ:あの自信さ、笑いが絶えない\n一言:大学受かったの?応援してる〜(*^^*)!\n\n#RTした人にやる\nちょっとやってみる笑", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": 2591363659, - "in_reply_to_user_id_str": "2591363659", - "in_reply_to_screen_name": "kohecyan3", - "user": { - "id": 2613282517, - "id_str": "2613282517", - "name": "K", - "screen_name": "kawazurukenna", - "location": "", - "description": "# I surprise even my self", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 113, - "friends_count": 185, - "listed_count": 0, - "created_at": "Wed Jul 09 09:39:13 +0000 2014", - "favourites_count": 157, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 242, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/502436858135973888/PcUU0lov_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/502436858135973888/PcUU0lov_normal.jpeg", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [ - { - "text": "RTした人にやる", - "indices": [ - 119, - 128 - ] - } - ], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "kohecyan3", - "name": "上野滉平", - "id": 2591363659, - "id_str": "2591363659", - "indices": [ - 0, - 10 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:07 +0000 2014", - "id": 505874889392156700, - "id_str": "505874889392156672", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "IQ★力だめし", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2709308887, - "id_str": "2709308887", - "name": "IQ★力だめし", - "screen_name": "iq_tameshi", - "location": "", - "description": "解けると楽しい気分になれる問題を見つけて紹介します♪面白かったら RT & 相互フォローで みなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 443, - "friends_count": 1851, - "listed_count": 1, - "created_at": "Tue Aug 05 13:14:30 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 664, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/496646485266558977/W_W--qV__normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/496646485266558977/W_W--qV__normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2709308887/1407244754", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:06 +0000 2014", - "id": 505874888817532900, - "id_str": "505874888817532928", - "text": "第一三軍から2個師団が北へ移動中らしい     この調子では満州に陸軍兵力があふれかえる", - "source": "如月克己", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 1171299612, - "id_str": "1171299612", - "name": "如月 克己", - "screen_name": "kisaragi_katumi", - "location": "満州", - "description": "GパングのA型K月克己中尉の非公式botです。 主に七巻と八巻が中心の台詞をつぶやきます。 4/18.台詞追加しました/現在試運転中/現在軽い挨拶だけTL反応。/追加したい台詞や何おかしい所がありましたらDMやリプライで/フォロー返しは手動です/", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 65, - "friends_count": 63, - "listed_count": 0, - "created_at": "Tue Feb 12 08:21:38 +0000 2013", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 27219, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/3242847112/0ce536444c94cbec607229022d43a27a_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/3242847112/0ce536444c94cbec607229022d43a27a_normal.jpeg", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:06 +0000 2014", - "id": 505874888616181760, - "id_str": "505874888616181760", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "徳田有希★応援隊", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2766021865, - "id_str": "2766021865", - "name": "徳田有希★応援隊", - "screen_name": "tokuda_ouen1", - "location": "", - "description": "女子中高生に大人気ww いやされるイラストを紹介します。 \r\nみんなで RTして応援しよう~♪ \r\n「非公式アカウントです」", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 123, - "friends_count": 978, - "listed_count": 0, - "created_at": "Mon Aug 25 10:48:41 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 210, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/503857235802333184/YS0sDN6q_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/503857235802333184/YS0sDN6q_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2766021865/1408963998", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:06 +0000 2014", - "id": 505874887802511360, - "id_str": "505874887802511361", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "腐女子の☆部屋", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2744683982, - "id_str": "2744683982", - "name": "腐女子の☆部屋", - "screen_name": "fujyoshinoheya", - "location": "", - "description": "腐女子にしかわからないネタや、あるあるを見つけていきます。 \r\n他には、BL~萌えキュン系まで、腐のための画像を集めています♪ \r\n同じ境遇の人には、わかってもらえると思うので、気軽に RT & フォローお願いします☆", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 241, - "friends_count": 990, - "listed_count": 0, - "created_at": "Tue Aug 19 11:47:21 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 345, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501697365590306817/GLP_QH_b_normal.png", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501697365590306817/GLP_QH_b_normal.png", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2744683982/1408448984", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:06 +0000 2014", - "id": 505874887009767400, - "id_str": "505874887009767424", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "萌え芸術★ラテアート", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2763178045, - "id_str": "2763178045", - "name": "萌え芸術★ラテアート", - "screen_name": "moe_rate", - "location": "", - "description": "ここまで来ると、もはや芸術!! 見てるだけで楽しい♪ \r\nそんなラテアートを、とことん探します。 \r\nスゴイと思ったら RT & フォローお願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 187, - "friends_count": 998, - "listed_count": 0, - "created_at": "Sun Aug 24 16:53:16 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 210, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/503586151764992000/RC80it20_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/503586151764992000/RC80it20_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2763178045/1408899447", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:06 +0000 2014", - "id": 505874886225448960, - "id_str": "505874886225448960", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "全部★ジャニーズ図鑑", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2724158970, - "id_str": "2724158970", - "name": "全部★ジャニーズ図鑑", - "screen_name": "zenbu_johnnys", - "location": "", - "description": "ジャニーズのカッコイイ画像、おもしろエピソードなどを発信します。\r\n「非公式アカウントです」\r\nジャニーズ好きな人は、是非 RT & フォローお願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 738, - "friends_count": 1838, - "listed_count": 0, - "created_at": "Mon Aug 11 15:50:08 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 556, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/498859581057945600/ncMKwdvC_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/498859581057945600/ncMKwdvC_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2724158970/1407772462", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:06 +0000 2014", - "id": 505874885810200600, - "id_str": "505874885810200576", - "text": "RT @naopisu_: 呼び方:\n呼ばれ方:\n第一印象:\n今の印象:\n好きなところ:\n家族にするなら:\n最後に一言:\n#RTした人にやる\n\nお腹痛くて寝れないからやるww\nだれでもどうぞ〜😏🙌", - "source": "Twitter for Android", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2347898072, - "id_str": "2347898072", - "name": "にたにた", - "screen_name": "syo6660129", - "location": "", - "description": "", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 64, - "friends_count": 70, - "listed_count": 1, - "created_at": "Mon Feb 17 04:29:46 +0000 2014", - "favourites_count": 58, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 145, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/485603672118669314/73uh_xRS_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/485603672118669314/73uh_xRS_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2347898072/1396957619", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sat Aug 30 14:19:31 +0000 2014", - "id": 505721480261300200, - "id_str": "505721480261300224", - "text": "呼び方:\n呼ばれ方:\n第一印象:\n今の印象:\n好きなところ:\n家族にするなら:\n最後に一言:\n#RTした人にやる\n\nお腹痛くて寝れないからやるww\nだれでもどうぞ〜😏🙌", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 856045488, - "id_str": "856045488", - "name": "なおぴす", - "screen_name": "naopisu_", - "location": "Fujino 65th ⇢ Sagaso 12A(LJK", - "description": "\ もうすぐ18歳 “Only One”になる /", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 267, - "friends_count": 259, - "listed_count": 2, - "created_at": "Mon Oct 01 08:36:23 +0000 2012", - "favourites_count": 218, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 1790, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/496321592553525249/tuzX9ByR_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/496321592553525249/tuzX9ByR_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/856045488/1407118111", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 23, - "favorite_count": 1, - "entities": { - "hashtags": [ - { - "text": "RTした人にやる", - "indices": [ - 47, - 56 - ] - } - ], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 23, - "favorite_count": 0, - "entities": { - "hashtags": [ - { - "text": "RTした人にやる", - "indices": [ - 61, - 70 - ] - } - ], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "naopisu_", - "name": "なおぴす", - "id": 856045488, - "id_str": "856045488", - "indices": [ - 3, - 12 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:06 +0000 2014", - "id": 505874885474656260, - "id_str": "505874885474656256", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "爆笑★LINE あるある", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2709561589, - "id_str": "2709561589", - "name": "爆笑★LINE あるある", - "screen_name": "line_aru1", - "location": "", - "description": "思わず笑ってしまうLINEでのやりとりや、あるあるを見つけたいです♪面白かったら RT & 相互フォローで みなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 496, - "friends_count": 1875, - "listed_count": 1, - "created_at": "Tue Aug 05 15:01:30 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 687, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/496673793939492867/p1BN4YaW_normal.png", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/496673793939492867/p1BN4YaW_normal.png", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2709561589/1407251270", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:05 +0000 2014", - "id": 505874884627410940, - "id_str": "505874884627410944", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "全力★ミサワ的w発言", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2734455415, - "id_str": "2734455415", - "name": "全力★ミサワ的w発言!!", - "screen_name": "misawahatugen", - "location": "", - "description": "ウザすぎて笑えるミサワ的名言や、おもしろミサワ画像を集めています。 \r\nミサワを知らない人でも、いきなりツボにハマっちゃう内容をお届けします。 \r\nウザいwと思ったら RT & 相互フォローお願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 144, - "friends_count": 1915, - "listed_count": 1, - "created_at": "Fri Aug 15 13:20:04 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 436, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/500271070834749444/HvengMe5_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/500271070834749444/HvengMe5_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2734455415/1408108944", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:05 +0000 2014", - "id": 505874883809521660, - "id_str": "505874883809521664", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "お宝ww有名人卒アル特集", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2708183557, - "id_str": "2708183557", - "name": "お宝ww有名人卒アル特集", - "screen_name": "otakara_sotuaru", - "location": "", - "description": "みんな昔は若かったんですね。今からは想像もつかない、あの有名人を見つけます。\r\n面白かったら RT & 相互フォローで みなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 286, - "friends_count": 1938, - "listed_count": 0, - "created_at": "Tue Aug 05 03:26:54 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 650, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/496499121276985344/hC8RoebP_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/496499121276985344/hC8RoebP_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2708183557/1407318758", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:05 +0000 2014", - "id": 505874883322970100, - "id_str": "505874883322970112", - "text": "レッドクリフのキャラのこと女装ってくそわろたwww朝一で面白かった( ˘ω゜)笑", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 1620730616, - "id_str": "1620730616", - "name": "ひーちゃん@橘芋健ぴ", - "screen_name": "2nd_8hkr", - "location": "北の大地.95年組 ☞ 9/28.10/2(5).12/28", - "description": "THE SECOND/劇団EXILE/EXILE/二代目JSB ☞KENCHI.AKIRA.青柳翔.小森隼.石井杏奈☜ Big Love ♡ Respect ..... ✍ MATSU Origin✧ .た ち ば な '' い も '' け ん い ち ろ う さ んTEAM NACS 安田.戸次 Liebe !", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 109, - "friends_count": 148, - "listed_count": 0, - "created_at": "Thu Jul 25 16:09:29 +0000 2013", - "favourites_count": 783, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 9541, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/458760951060123648/Cocoxi-2_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/458760951060123648/Cocoxi-2_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/1620730616/1408681982", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:05 +0000 2014", - "id": 505874883067129860, - "id_str": "505874883067129857", - "text": "【状態良好】ペンタックス・デジタル一眼レフカメラ・K20D 入札数=38 現在価格=15000円 http://t.co/4WK1f6V2n6終了=2014年08月31日 20:47:53 #一眼レフ http://t.co/PcSaXzfHMW", - "source": "YahooAuction Degicame", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2278053589, - "id_str": "2278053589", - "name": "AuctionCamera", - "screen_name": "AuctionCamera", - "location": "", - "description": "Yahooオークションのデジカメカテゴリから商品を抽出するボットです。", - "url": "https://t.co/3sB1NDnd0m", - "entities": { - "url": { - "urls": [ - { - "url": "https://t.co/3sB1NDnd0m", - "expanded_url": "https://github.com/AKB428/YahooAuctionBot", - "display_url": "github.com/AKB428/YahooAu…", - "indices": [ - 0, - 23 - ] - } - ] - }, - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 5, - "friends_count": 24, - "listed_count": 0, - "created_at": "Sun Jan 05 20:10:56 +0000 2014", - "favourites_count": 1, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 199546, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/419927606146789376/vko-kd6Q_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/419927606146789376/vko-kd6Q_normal.jpeg", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [ - { - "text": "一眼レフ", - "indices": [ - 95, - 100 - ] - } - ], - "symbols": [], - "urls": [ - { - "url": "http://t.co/4WK1f6V2n6", - "expanded_url": "http://atq.ck.valuecommerce.com/servlet/atq/referral?sid=2219441&pid=877510753&vcptn=auct/p/RJH492.PLqoLQQx1Jy8U9LE-&vc_url=http://page8.auctions.yahoo.co.jp/jp/auction/h192024356", - "display_url": "atq.ck.valuecommerce.com/servlet/atq/re…", - "indices": [ - 49, - 71 - ] - } - ], - "user_mentions": [], - "media": [ - { - "id": 505874882828046340, - "id_str": "505874882828046336", - "indices": [ - 101, - 123 - ], - "media_url": "http://pbs.twimg.com/media/BwU6hpPCEAAxnpq.jpg", - "media_url_https": "https://pbs.twimg.com/media/BwU6hpPCEAAxnpq.jpg", - "url": "http://t.co/PcSaXzfHMW", - "display_url": "pic.twitter.com/PcSaXzfHMW", - "expanded_url": "http://twitter.com/AuctionCamera/status/505874883067129857/photo/1", - "type": "photo", - "sizes": { - "large": { - "w": 600, - "h": 450, - "resize": "fit" - }, - "medium": { - "w": 600, - "h": 450, - "resize": "fit" - }, - "thumb": { - "w": 150, - "h": 150, - "resize": "crop" - }, - "small": { - "w": 340, - "h": 255, - "resize": "fit" - } - } - } - ] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:05 +0000 2014", - "id": 505874882995826700, - "id_str": "505874882995826689", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "ヤバすぎる!!ギネス世界記録", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2762405780, - "id_str": "2762405780", - "name": "ヤバすぎる!!ギネス世界記録", - "screen_name": "yabai_giness", - "location": "", - "description": "世の中には、まだまだ知られていないスゴイ記録があるんです! \r\nそんなギネス世界記録を見つけます☆ \r\nどんどん友達にも教えてあげてくださいねww \r\nヤバイと思ったら RT & フォローを、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 36, - "friends_count": 985, - "listed_count": 0, - "created_at": "Sun Aug 24 13:17:03 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 210, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/503531782919045121/NiIC25wL_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/503531782919045121/NiIC25wL_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2762405780/1408886328", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:05 +0000 2014", - "id": 505874882870009860, - "id_str": "505874882870009856", - "text": "すごく面白い夢見た。魔法科高校通ってて(別に一科二科の区別ない)クラスメイトにヨセアツメ面子や赤僕の拓也がいて、学校対抗合唱コンクールが開催されたり会場入りの際他校の妨害工作受けたり、拓也が連れてきてた実が人質に取られたりとにかくてんこ盛りだった楽しかった赤僕読みたい手元にない", - "source": "Twitter for Android", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 597357105, - "id_str": "597357105", - "name": "ふじよし", - "screen_name": "fuji_mark", - "location": "多摩動物公園", - "description": "成人腐女子", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 128, - "friends_count": 126, - "listed_count": 6, - "created_at": "Sat Jun 02 10:06:05 +0000 2012", - "favourites_count": 2842, - "utc_offset": 32400, - "time_zone": "Irkutsk", - "geo_enabled": false, - "verified": false, - "statuses_count": 10517, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "0099B9", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme4/bg.gif", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme4/bg.gif", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/503553738569560065/D_JW2dCJ_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/503553738569560065/D_JW2dCJ_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/597357105/1408864355", - "profile_link_color": "0099B9", - "profile_sidebar_border_color": "5ED4DC", - "profile_sidebar_fill_color": "95E8EC", - "profile_text_color": "3C3940", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:05 +0000 2014", - "id": 505874882228281340, - "id_str": "505874882228281345", - "text": "RT @oen_yakyu: ●継続試合(中京対崇徳)46回~ 9時~\n 〈ラジオ中継〉\n らじる★らじる→大阪放送局を選択→NHK-FM\n●決勝戦(三浦対中京or崇徳) 12時30分~\n 〈ラジオ中継〉\n らじる★らじる→大阪放送局を選択→NHK第一\n ※神奈川の方は普通のラ…", - "source": "twicca", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 18477566, - "id_str": "18477566", - "name": "Natit(なち)@そうだ、トップ行こう", - "screen_name": "natit_yso", - "location": "福岡市の端っこ", - "description": "ヤー・チャイカ。紫宝勢の末席くらいでQMAやってます。\r\n9/13(土)「九州杯」今年も宜しくお願いします!キーワードは「そうだ、トップ、行こう。」\r\nmore → http://t.co/ezuHyjF4Qy \r\n【旅の予定】9/20-22 関西 → 9/23-28 北海道ぐるり", - "url": "http://t.co/ll2yu78DGR", - "entities": { - "url": { - "urls": [ - { - "url": "http://t.co/ll2yu78DGR", - "expanded_url": "http://qma-kyushu.sakura.ne.jp/", - "display_url": "qma-kyushu.sakura.ne.jp", - "indices": [ - 0, - 22 - ] - } - ] - }, - "description": { - "urls": [ - { - "url": "http://t.co/ezuHyjF4Qy", - "expanded_url": "http://twpf.jp/natit_yso", - "display_url": "twpf.jp/natit_yso", - "indices": [ - 83, - 105 - ] - } - ] - } - }, - "protected": false, - "followers_count": 591, - "friends_count": 548, - "listed_count": 93, - "created_at": "Tue Dec 30 14:11:44 +0000 2008", - "favourites_count": 11676, - "utc_offset": 32400, - "time_zone": "Tokyo", - "geo_enabled": false, - "verified": false, - "statuses_count": 130145, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "131516", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme14/bg.gif", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme14/bg.gif", - "profile_background_tile": true, - "profile_image_url": "http://pbs.twimg.com/profile_images/1556202861/chibi-Leon_normal.jpg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/1556202861/chibi-Leon_normal.jpg", - "profile_link_color": "009999", - "profile_sidebar_border_color": "EEEEEE", - "profile_sidebar_fill_color": "EFEFEF", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sat Aug 30 23:12:39 +0000 2014", - "id": 505855649196953600, - "id_str": "505855649196953600", - "text": "●継続試合(中京対崇徳)46回~ 9時~\n 〈ラジオ中継〉\n らじる★らじる→大阪放送局を選択→NHK-FM\n●決勝戦(三浦対中京or崇徳) 12時30分~\n 〈ラジオ中継〉\n らじる★らじる→大阪放送局を選択→NHK第一\n ※神奈川の方は普通のラジオのNHK-FMでも", - "source": "Twitter Web Client", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2761692762, - "id_str": "2761692762", - "name": "三浦学苑軟式野球部応援団!", - "screen_name": "oen_yakyu", - "location": "", - "description": "兵庫県で開催される「もう一つの甲子園」こと全国高校軟式野球選手権大会に南関東ブロックから出場する三浦学苑軟式野球部を応援する非公式アカウントです。", - "url": "http://t.co/Cn1tPTsBGY", - "entities": { - "url": { - "urls": [ - { - "url": "http://t.co/Cn1tPTsBGY", - "expanded_url": "http://www.miura.ed.jp/index.html", - "display_url": "miura.ed.jp/index.html", - "indices": [ - 0, - 22 - ] - } - ] - }, - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 464, - "friends_count": 117, - "listed_count": 4, - "created_at": "Sun Aug 24 07:47:29 +0000 2014", - "favourites_count": 69, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 553, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/504299474445811712/zsxJUmL0_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/504299474445811712/zsxJUmL0_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2761692762/1409069337", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 7, - "favorite_count": 2, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 7, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "oen_yakyu", - "name": "三浦学苑軟式野球部応援団!", - "id": 2761692762, - "id_str": "2761692762", - "indices": [ - 3, - 13 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:05 +0000 2014", - "id": 505874882110824450, - "id_str": "505874882110824448", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "スマホに密封★アニメ画像", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2725976444, - "id_str": "2725976444", - "name": "スマホに密封★アニメ画像", - "screen_name": "sumahoanime", - "location": "", - "description": "なんともめずらしい、いろんなキャラがスマホに閉じ込められています。 \r\nあなたのスマホにマッチする画像が見つかるかも♪ \r\n気に入ったら是非 RT & フォローお願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 227, - "friends_count": 1918, - "listed_count": 0, - "created_at": "Tue Aug 12 11:27:54 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 527, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/499155646164393984/l5vSz5zu_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/499155646164393984/l5vSz5zu_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2725976444/1407843121", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:05 +0000 2014", - "id": 505874881297133600, - "id_str": "505874881297133568", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "アナタのそばの身近な危険", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2713926078, - "id_str": "2713926078", - "name": "アナタのそばの身近な危険", - "screen_name": "mijika_kiken", - "location": "", - "description": "知らないうちにやっている危険な行動を見つけて自分を守りましょう。 役に立つと思ったら RT & 相互フォローで みなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 301, - "friends_count": 1871, - "listed_count": 0, - "created_at": "Thu Aug 07 07:12:50 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 644, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/497279579245907968/Ftvms_HR_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/497279579245907968/Ftvms_HR_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2713926078/1407395683", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:04 +0000 2014", - "id": 505874880294682600, - "id_str": "505874880294682624", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "人気者♥デイジー大好き", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2726199583, - "id_str": "2726199583", - "name": "人気者♥デイジー大好き", - "screen_name": "ninkimono_daosy", - "location": "", - "description": "デイジーの想いを、代わりにつぶやきます♪ \r\nデイジーのかわいい画像やグッズも大好きw \r\n可愛いと思ったら RT & フォローお願いします。 \r\n「非公式アカウントです」", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 190, - "friends_count": 474, - "listed_count": 0, - "created_at": "Tue Aug 12 12:58:33 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 469, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/499178622494576640/EzWKdR_p_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/499178622494576640/EzWKdR_p_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2726199583/1407848478", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:04 +0000 2014", - "id": 505874879392919550, - "id_str": "505874879392919552", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "幸せ話でフル充電しよう", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2721453846, - "id_str": "2721453846", - "name": "幸せ話でフル充電しようww", - "screen_name": "shiawasehanashi", - "location": "", - "description": "私が聞いて心に残った感動エピソードをお届けします。\r\n少しでも多くの人へ届けたいと思います。\r\nいいなと思ったら RT & フォローお願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 302, - "friends_count": 1886, - "listed_count": 0, - "created_at": "Sun Aug 10 12:16:25 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 508, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/498444554916216832/ml8EiQka_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/498444554916216832/ml8EiQka_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2721453846/1407673555", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:04 +0000 2014", - "id": 505874879103520800, - "id_str": "505874879103520768", - "text": "RT @Ang_Angel73: 逢坂「くっ…僕の秘められし右目が…!」\n一同「……………。」", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2571968509, - "id_str": "2571968509", - "name": "イイヒト", - "screen_name": "IwiAlohomora", - "location": "草葉の陰", - "description": "大人です。気軽に絡んでくれるとうれしいです! イラスト大好き!(≧∇≦) BF(仮)逢坂紘夢くんにお熱です! マンガも好き♡欲望のままにつぶやきますのでご注意を。雑食♡", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 156, - "friends_count": 165, - "listed_count": 14, - "created_at": "Tue Jun 17 01:18:34 +0000 2014", - "favourites_count": 11926, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 7234, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/504990074862178304/DoBvOb9c_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/504990074862178304/DoBvOb9c_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2571968509/1409106012", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:27:01 +0000 2014", - "id": 505874364596621300, - "id_str": "505874364596621313", - "text": "逢坂「くっ…僕の秘められし右目が…!」\n一同「……………。」", - "source": "Twitter for Android", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 1600750194, - "id_str": "1600750194", - "name": "臙脂", - "screen_name": "Ang_Angel73", - "location": "逢坂紘夢のそばに", - "description": "自由、気ままに。詳しくはツイプロ。アイコンはまめせろりちゃんからだよ☆~(ゝ。∂)", - "url": "http://t.co/kKCCwHTaph", - "entities": { - "url": { - "urls": [ - { - "url": "http://t.co/kKCCwHTaph", - "expanded_url": "http://twpf.jp/Ang_Angel73", - "display_url": "twpf.jp/Ang_Angel73", - "indices": [ - 0, - 22 - ] - } - ] - }, - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 155, - "friends_count": 154, - "listed_count": 10, - "created_at": "Wed Jul 17 11:44:31 +0000 2013", - "favourites_count": 2115, - "utc_offset": 32400, - "time_zone": "Irkutsk", - "geo_enabled": false, - "verified": false, - "statuses_count": 12342, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/378800000027871001/aa764602922050b22bf9ade3741367dc.jpeg", - "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/378800000027871001/aa764602922050b22bf9ade3741367dc.jpeg", - "profile_background_tile": true, - "profile_image_url": "http://pbs.twimg.com/profile_images/500293786287603713/Ywyh69eG_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/500293786287603713/Ywyh69eG_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/1600750194/1403879183", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "FFFFFF", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 2, - "favorite_count": 2, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 2, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "Ang_Angel73", - "name": "臙脂", - "id": 1600750194, - "id_str": "1600750194", - "indices": [ - 3, - 15 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:04 +0000 2014", - "id": 505874877933314050, - "id_str": "505874877933314048", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "秘密の本音♥女子編", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2762237088, - "id_str": "2762237088", - "name": "秘密の本音♥女子編", - "screen_name": "honne_jyoshi1", - "location": "", - "description": "普段は言えない「お・ん・なの建前と本音」をつぶやきます。 気になる あの人の本音も、わかるかも!? \r\nわかるって人は RT & フォローを、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 123, - "friends_count": 988, - "listed_count": 0, - "created_at": "Sun Aug 24 12:27:07 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 211, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/503519190364332032/BVjS_XBD_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/503519190364332032/BVjS_XBD_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2762237088/1408883328", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:04 +0000 2014", - "id": 505874877148958700, - "id_str": "505874877148958721", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "美し過ぎる★色鉛筆アート", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2740047343, - "id_str": "2740047343", - "name": "美し過ぎる★色鉛筆アート", - "screen_name": "bi_iroenpitu", - "location": "", - "description": "ほんとにコレ色鉛筆なの~? \r\n本物と見間違える程のリアリティを御覧ください。 \r\n気に入ったら RT & 相互フォローお願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 321, - "friends_count": 1990, - "listed_count": 0, - "created_at": "Sun Aug 17 16:15:05 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 396, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501039950972739585/isigil4V_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501039950972739585/isigil4V_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2740047343/1408292283", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:03 +0000 2014", - "id": 505874876465295360, - "id_str": "505874876465295361", - "text": "【H15-9-4】道路を利用する利益は反射的利益であり、建築基準法に基づいて道路一の指定がなされている私道の敷地所有者に対し、通行妨害行為の排除を求める人格的権利を認めることはできない。→誤。", - "source": "twittbot.net", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 1886570281, - "id_str": "1886570281", - "name": "行政法過去問", - "screen_name": "gyosei_goukaku", - "location": "", - "description": "行政書士の本試験問題の過去問(行政法分野)をランダムにつぶやきます。問題は随時追加中です。基本的に相互フォローします。※140字制限の都合上、表現は一部変えてあります。解説も文字数が可能であればなるべく…。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 1554, - "friends_count": 1772, - "listed_count": 12, - "created_at": "Fri Sep 20 13:24:29 +0000 2013", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 14565, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/378800000487791870/0e45e3c089c6b641cdd8d1b6f1ceb8a4_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/378800000487791870/0e45e3c089c6b641cdd8d1b6f1ceb8a4_normal.jpeg", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:03 +0000 2014", - "id": 505874876318511100, - "id_str": "505874876318511104", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "K点越えの発想力!!", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2744863153, - "id_str": "2744863153", - "name": "K点越えの発想力!!", - "screen_name": "kgoehassou", - "location": "", - "description": "いったいどうやったら、その領域にたどりつけるのか!? \r\nそんな思わず笑ってしまう別世界の発想力をお届けします♪ \r\nおもしろかったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 76, - "friends_count": 957, - "listed_count": 0, - "created_at": "Tue Aug 19 13:00:08 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 341, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501715651686178816/Fgpe0B8M_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501715651686178816/Fgpe0B8M_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2744863153/1408453328", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:03 +0000 2014", - "id": 505874875521581060, - "id_str": "505874875521581056", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "血液型の真実2", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2698625690, - "id_str": "2698625690", - "name": "血液型の真実", - "screen_name": "ketueki_sinjitu", - "location": "", - "description": "やっぱりそうだったのか~♪\r\n意外な、あの人の裏側を見つけます。\r\n面白かったらRT & 相互フォローでみなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 193, - "friends_count": 1785, - "listed_count": 1, - "created_at": "Fri Aug 01 16:11:40 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 769, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/495241446706790400/h_0DSFPG_normal.png", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/495241446706790400/h_0DSFPG_normal.png", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2698625690/1406911319", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:03 +0000 2014", - "id": 505874874712072200, - "id_str": "505874874712072192", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "やっぱり神が??を作る時", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2714868440, - "id_str": "2714868440", - "name": "やっぱり神が??を作る時", - "screen_name": "yahari_kamiga", - "location": "", - "description": "やっぱり今日も、神は何かを作ろうとしています 笑。 どうやって作っているのかわかったら RT & 相互フォローで みなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 243, - "friends_count": 1907, - "listed_count": 0, - "created_at": "Thu Aug 07 16:12:33 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 590, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/497416102108884992/NRMEbKaT_normal.png", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/497416102108884992/NRMEbKaT_normal.png", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2714868440/1407428237", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:03 +0000 2014", - "id": 505874874275864600, - "id_str": "505874874275864576", - "text": "RT @takuramix: 福島第一原発の構内地図がこちら。\nhttp://t.co/ZkU4TZCGPG\nどう見ても、1号機。\nRT @Lightworker19: 【大拡散】  福島第一原発 4号機 爆発動画 40秒~  http://t.co/lmlgp38fgZ", - "source": "ツイタマ", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 62525372, - "id_str": "62525372", - "name": "NANCY-MOON☆ひよこちゃん☆", - "screen_name": "nancy_moon_703", - "location": "JAPAN", - "description": "【無断転載禁止・コピペ禁止・非公式RT禁止】【必読!】⇒ http://t.co/nuUvfUVD 今現在活動中の東方神起YUNHO&CHANGMINの2人を全力で応援しています!!(^_-)-☆ ※東方神起及びYUNHO&CHANGMINを応援していない方・鍵付ユーザーのフォローお断り!", - "url": null, - "entities": { - "description": { - "urls": [ - { - "url": "http://t.co/nuUvfUVD", - "expanded_url": "http://goo.gl/SrGLb", - "display_url": "goo.gl/SrGLb", - "indices": [ - 29, - 49 - ] - } - ] - } - }, - "protected": false, - "followers_count": 270, - "friends_count": 328, - "listed_count": 4, - "created_at": "Mon Aug 03 14:22:24 +0000 2009", - "favourites_count": 3283, - "utc_offset": 32400, - "time_zone": "Tokyo", - "geo_enabled": false, - "verified": false, - "statuses_count": 180310, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "642D8B", - "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/470849781397336064/ltM6EdFn.jpeg", - "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/470849781397336064/ltM6EdFn.jpeg", - "profile_background_tile": true, - "profile_image_url": "http://pbs.twimg.com/profile_images/3699005246/9ba2e306518d296b68b7cbfa5e4ce4e6_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/3699005246/9ba2e306518d296b68b7cbfa5e4ce4e6_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/62525372/1401094223", - "profile_link_color": "FF0000", - "profile_sidebar_border_color": "FFFFFF", - "profile_sidebar_fill_color": "F065A8", - "profile_text_color": "080808", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sat Aug 30 21:21:33 +0000 2014", - "id": 505827689660313600, - "id_str": "505827689660313600", - "text": "福島第一原発の構内地図がこちら。\nhttp://t.co/ZkU4TZCGPG\nどう見ても、1号機。\nRT @Lightworker19: 【大拡散】  福島第一原発 4号機 爆発動画 40秒~  http://t.co/lmlgp38fgZ", - "source": "TweetDeck", - "truncated": false, - "in_reply_to_status_id": 505774460910043140, - "in_reply_to_status_id_str": "505774460910043136", - "in_reply_to_user_id": 238157843, - "in_reply_to_user_id_str": "238157843", - "in_reply_to_screen_name": "Lightworker19", - "user": { - "id": 29599253, - "id_str": "29599253", - "name": "タクラミックス", - "screen_name": "takuramix", - "location": "i7", - "description": "私の機能一覧:歌う、演劇、ネットワークエンジニア、ライター、プログラマ、翻訳、シルバーアクセサリ、……何をやってる人かは良くわからない人なので、「機能」が欲しい人は私にがっかりするでしょう。私って人間に御用があるなら別ですが。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 5136, - "friends_count": 724, - "listed_count": 335, - "created_at": "Wed Apr 08 01:10:58 +0000 2009", - "favourites_count": 21363, - "utc_offset": 32400, - "time_zone": "Tokyo", - "geo_enabled": false, - "verified": false, - "statuses_count": 70897, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/2049751947/takuramix1204_normal.jpg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/2049751947/takuramix1204_normal.jpg", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 1, - "favorite_count": 1, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [ - { - "url": "http://t.co/ZkU4TZCGPG", - "expanded_url": "http://www.tepco.co.jp/nu/fukushima-np/review/images/review1_01.gif", - "display_url": "tepco.co.jp/nu/fukushima-n…", - "indices": [ - 17, - 39 - ] - }, - { - "url": "http://t.co/lmlgp38fgZ", - "expanded_url": "http://youtu.be/gDXEhyuVSDk", - "display_url": "youtu.be/gDXEhyuVSDk", - "indices": [ - 99, - 121 - ] - } - ], - "user_mentions": [ - { - "screen_name": "Lightworker19", - "name": "Lightworker", - "id": 238157843, - "id_str": "238157843", - "indices": [ - 54, - 68 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - "retweet_count": 1, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [ - { - "url": "http://t.co/ZkU4TZCGPG", - "expanded_url": "http://www.tepco.co.jp/nu/fukushima-np/review/images/review1_01.gif", - "display_url": "tepco.co.jp/nu/fukushima-n…", - "indices": [ - 32, - 54 - ] - }, - { - "url": "http://t.co/lmlgp38fgZ", - "expanded_url": "http://youtu.be/gDXEhyuVSDk", - "display_url": "youtu.be/gDXEhyuVSDk", - "indices": [ - 114, - 136 - ] - } - ], - "user_mentions": [ - { - "screen_name": "takuramix", - "name": "タクラミックス", - "id": 29599253, - "id_str": "29599253", - "indices": [ - 3, - 13 - ] - }, - { - "screen_name": "Lightworker19", - "name": "Lightworker", - "id": 238157843, - "id_str": "238157843", - "indices": [ - 69, - 83 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:03 +0000 2014", - "id": 505874873961308160, - "id_str": "505874873961308160", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "やっぱりアナ雪が好き♥", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2714052962, - "id_str": "2714052962", - "name": "やっぱりアナ雪が好き♥", - "screen_name": "anayuki_suki", - "location": "", - "description": "なんだかんだ言ってもやっぱりアナ雪が好きなんですよね~♪ \r\n私も好きって人は RT & 相互フォローで みなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 368, - "friends_count": 1826, - "listed_count": 1, - "created_at": "Thu Aug 07 08:29:13 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 670, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/497299646662705153/KMo3gkv7_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/497299646662705153/KMo3gkv7_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2714052962/1407400477", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "zh" - }, - "created_at": "Sun Aug 31 00:29:03 +0000 2014", - "id": 505874873759977500, - "id_str": "505874873759977473", - "text": "四川盆地江淮等地将有强降雨 开学日多地将有雨:   中新网8月31日电 据中央气象台消息,江淮东部、四川盆地东北部等地今天(31日)又将迎来一场暴雨或大暴雨天气。明天9月1日,是中小学生开学的日子。预计明天,内蒙古中部、... http://t.co/toQgVlXPyH", - "source": "twitterfeed", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2281979863, - "id_str": "2281979863", - "name": "News 24h China", - "screen_name": "news24hchn", - "location": "", - "description": "", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 719, - "friends_count": 807, - "listed_count": 7, - "created_at": "Wed Jan 08 10:56:04 +0000 2014", - "favourites_count": 0, - "utc_offset": 7200, - "time_zone": "Amsterdam", - "geo_enabled": false, - "verified": false, - "statuses_count": 94782, - "lang": "it", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/452558963754561536/QPID3isM.jpeg", - "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/452558963754561536/QPID3isM.jpeg", - "profile_background_tile": true, - "profile_image_url": "http://pbs.twimg.com/profile_images/439031926569979904/SlBH9iMg_normal.png", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/439031926569979904/SlBH9iMg_normal.png", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2281979863/1393508427", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "FFFFFF", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [ - { - "url": "http://t.co/toQgVlXPyH", - "expanded_url": "http://news24h.allnews24h.com/FX54", - "display_url": "news24h.allnews24h.com/FX54", - "indices": [ - 114, - 136 - ] - } - ], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "zh" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:03 +0000 2014", - "id": 505874873248268300, - "id_str": "505874873248268288", - "text": "@Take3carnifex それは大変!一大事!命に関わります!\n是非うちに受診して下さい!", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": 505874353716600800, - "in_reply_to_status_id_str": "505874353716600832", - "in_reply_to_user_id": 535179785, - "in_reply_to_user_id_str": "535179785", - "in_reply_to_screen_name": "Take3carnifex", - "user": { - "id": 226897125, - "id_str": "226897125", - "name": "ひかり@hack", - "screen_name": "hikari_thirteen", - "location": "", - "description": "hackというバンドで、ギターを弾いています。 モンハンとポケモンが好き。 \nSPRING WATER リードギター(ヘルプ)\nROCK OUT レギュラーDJ", - "url": "http://t.co/SQLZnvjVxB", - "entities": { - "url": { - "urls": [ - { - "url": "http://t.co/SQLZnvjVxB", - "expanded_url": "http://s.ameblo.jp/hikarihikarimay", - "display_url": "s.ameblo.jp/hikarihikarimay", - "indices": [ - 0, - 22 - ] - } - ] - }, - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 296, - "friends_count": 348, - "listed_count": 3, - "created_at": "Wed Dec 15 10:51:51 +0000 2010", - "favourites_count": 33, - "utc_offset": 32400, - "time_zone": "Tokyo", - "geo_enabled": false, - "verified": false, - "statuses_count": 3293, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "131516", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme14/bg.gif", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme14/bg.gif", - "profile_background_tile": true, - "profile_image_url": "http://pbs.twimg.com/profile_images/378800000504584690/8ccba98eda8c0fd1d15a74e401f621d1_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/378800000504584690/8ccba98eda8c0fd1d15a74e401f621d1_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/226897125/1385551752", - "profile_link_color": "009999", - "profile_sidebar_border_color": "EEEEEE", - "profile_sidebar_fill_color": "EFEFEF", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "Take3carnifex", - "name": "Take3", - "id": 535179785, - "id_str": "535179785", - "indices": [ - 0, - 14 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:03 +0000 2014", - "id": 505874873223110660, - "id_str": "505874873223110656", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "今どき女子高生の謎w", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2744236873, - "id_str": "2744236873", - "name": "今どき女子高生の謎w", - "screen_name": "imadokijoshiko", - "location": "", - "description": "思わず耳を疑う男性の方の夢を壊してしまう、\r\n女子高生達のディープな世界を見てください☆ \r\nおもしろいと思ったら RT & 相互フォローでお願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 79, - "friends_count": 973, - "listed_count": 0, - "created_at": "Tue Aug 19 07:06:47 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 354, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501627015980535808/avWBgkDh_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501627015980535808/avWBgkDh_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2744236873/1408432455", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:02 +0000 2014", - "id": 505874872463925250, - "id_str": "505874872463925248", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "私の理想の男性像", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2761782601, - "id_str": "2761782601", - "name": "私の理想の男性像", - "screen_name": "risou_dansei", - "location": "", - "description": "こんな男性♥ ほんとにいるのかしら!? \r\n「いたらいいのになぁ」っていう理想の男性像をを、私目線でつぶやきます。 \r\nいいなと思った人は RT & フォローお願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 69, - "friends_count": 974, - "listed_count": 0, - "created_at": "Sun Aug 24 08:03:32 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 208, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/503452833719410688/tFU509Yk_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/503452833719410688/tFU509Yk_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2761782601/1408867519", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:02 +0000 2014", - "id": 505874871713157100, - "id_str": "505874871713157120", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "激アツ★6秒動画", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2725690658, - "id_str": "2725690658", - "name": "激アツ★6秒動画", - "screen_name": "gekiatu_6byou", - "location": "", - "description": "話題の6秒動画! \r\n思わず「ほんとかよっ」てツッコんでしまう内容のオンパレード! \r\nおもしろかったら、是非 RT & フォローお願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 195, - "friends_count": 494, - "listed_count": 0, - "created_at": "Tue Aug 12 08:17:29 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 477, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/499107997444886528/3rl6FrIk_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/499107997444886528/3rl6FrIk_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2725690658/1407832963", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:02 +0000 2014", - "id": 505874871616671740, - "id_str": "505874871616671744", - "text": "爆笑ww珍解答集!\n先生のツメの甘さと生徒のセンスを感じる一問一答だとFBでも話題!!\nうどん天下一決定戦ウィンドウズ9三重高校竹内由恵アナ花火保険\nhttp://t.co/jRWJt8IrSB http://t.co/okrAoxSbt0", - "source": "笑える博物館", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2748747362, - "id_str": "2748747362", - "name": "笑える博物館", - "screen_name": "waraeru_kan", - "location": "", - "description": "", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 19, - "friends_count": 10, - "listed_count": 0, - "created_at": "Wed Aug 20 11:11:04 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 15137, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://abs.twimg.com/sticky/default_profile_images/default_profile_4_normal.png", - "profile_image_url_https": "https://abs.twimg.com/sticky/default_profile_images/default_profile_4_normal.png", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": true, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [ - { - "url": "http://t.co/jRWJt8IrSB", - "expanded_url": "http://bit.ly/1qBa1nl", - "display_url": "bit.ly/1qBa1nl", - "indices": [ - 75, - 97 - ] - } - ], - "user_mentions": [], - "media": [ - { - "id": 505874871344066560, - "id_str": "505874871344066560", - "indices": [ - 98, - 120 - ], - "media_url": "http://pbs.twimg.com/media/BwU6g-dCcAALxAW.png", - "media_url_https": "https://pbs.twimg.com/media/BwU6g-dCcAALxAW.png", - "url": "http://t.co/okrAoxSbt0", - "display_url": "pic.twitter.com/okrAoxSbt0", - "expanded_url": "http://twitter.com/waraeru_kan/status/505874871616671744/photo/1", - "type": "photo", - "sizes": { - "small": { - "w": 340, - "h": 425, - "resize": "fit" - }, - "thumb": { - "w": 150, - "h": 150, - "resize": "crop" - }, - "large": { - "w": 600, - "h": 750, - "resize": "fit" - }, - "medium": { - "w": 600, - "h": 750, - "resize": "fit" - } - } - } - ] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:02 +0000 2014", - "id": 505874871268540400, - "id_str": "505874871268540416", - "text": "@nasan_arai \n名前→なーさん\n第一印象→誰。(´・_・`)\n今の印象→れいら♡\nLINE交換できる?→してる(「・ω・)「\n好きなところ→可愛い優しい優しい優しい\n最後に一言→なーさん好き〜(´・_・`)♡GEM現場おいでね(´・_・`)♡\n\n#ふぁぼした人にやる", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": 1717603286, - "in_reply_to_user_id_str": "1717603286", - "in_reply_to_screen_name": "nasan_arai", - "user": { - "id": 2417626784, - "id_str": "2417626784", - "name": "✩.ゆきଘ(*´꒳`)", - "screen_name": "Ymaaya_gem", - "location": "", - "description": "⁽⁽٩( ᐖ )۶⁾⁾ ❤︎ 武 田 舞 彩 ❤︎ ₍₍٩( ᐛ )۶₎₎", - "url": "http://t.co/wR0Qb76TbB", - "entities": { - "url": { - "urls": [ - { - "url": "http://t.co/wR0Qb76TbB", - "expanded_url": "http://twpf.jp/Ymaaya_gem", - "display_url": "twpf.jp/Ymaaya_gem", - "indices": [ - 0, - 22 - ] - } - ] - }, - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 198, - "friends_count": 245, - "listed_count": 1, - "created_at": "Sat Mar 29 16:03:06 +0000 2014", - "favourites_count": 3818, - "utc_offset": null, - "time_zone": null, - "geo_enabled": true, - "verified": false, - "statuses_count": 8056, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/505516858816987136/4gFGjHzu_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/505516858816987136/4gFGjHzu_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2417626784/1407764793", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [ - { - "text": "ふぁぼした人にやる", - "indices": [ - 128, - 138 - ] - } - ], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "nasan_arai", - "name": "なーさん", - "id": 1717603286, - "id_str": "1717603286", - "indices": [ - 0, - 11 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:02 +0000 2014", - "id": 505874871218225150, - "id_str": "505874871218225152", - "text": "\"ソードマスター\"剣聖カミイズミ (CV:緑川光)-「ソードマスター」のアスタリスク所持者\n第一師団団長にして「剣聖」の称号を持つ剣士。イデアの剣の師匠。 \n敵味方からも尊敬される一流の武人。", - "source": "twittbot.net", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 1435517814, - "id_str": "1435517814", - "name": "俺、関係ないよ?", - "screen_name": "BDFF_LOVE", - "location": "ルクセンダルクorリングアベルさんの隣", - "description": "自分なりに生きる人、最後まであきらめないの。でも、フォローありがとう…。@ringo_BDFFLOVE ←は、妹です。時々、会話します。「現在BOTで、BDFFのこと呟くよ!」夜は、全滅 「BDFFプレイ中」詳しくは、ツイプロみてください!(絶対)", - "url": "http://t.co/5R4dzpbWX2", - "entities": { - "url": { - "urls": [ - { - "url": "http://t.co/5R4dzpbWX2", - "expanded_url": "http://twpf.jp/BDFF_LOVE", - "display_url": "twpf.jp/BDFF_LOVE", - "indices": [ - 0, - 22 - ] - } - ] - }, - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 1066, - "friends_count": 1799, - "listed_count": 6, - "created_at": "Fri May 17 12:33:23 +0000 2013", - "favourites_count": 1431, - "utc_offset": 32400, - "time_zone": "Irkutsk", - "geo_enabled": true, - "verified": false, - "statuses_count": 6333, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/505696320380612608/qvaxb_zx_normal.png", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/505696320380612608/qvaxb_zx_normal.png", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/1435517814/1409401948", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:02 +0000 2014", - "id": 505874871130136600, - "id_str": "505874871130136576", - "text": "闇「リンと付き合うに当たって歳の差以外にもいろいろ壁があったんだよ。愛し隊の妨害とか風紀厨の生徒会長とか…」\n一号「リンちゃんを泣かせたらシメるかんね!」\n二号「リンちゃんにやましい事したら×す…」\n執行部「不純な交際は僕が取り締まろうじゃないか…」\n闇「(消される)」", - "source": "twittbot.net", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2386208737, - "id_str": "2386208737", - "name": "闇未来Bot", - "screen_name": "StxRinFbot", - "location": "DIVAルーム", - "description": "ProjectDIVAのモジュール・ストレンジダーク×鏡音リンFutureStyleの自己満足非公式Bot マセレン仕様。CP要素あります。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 7, - "friends_count": 2, - "listed_count": 0, - "created_at": "Thu Mar 13 02:58:09 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 4876, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/443948925351755776/6rmljL5C_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/443948925351755776/6rmljL5C_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2386208737/1396259004", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:02 +0000 2014", - "id": 505874870933016600, - "id_str": "505874870933016576", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "絶品!!スイーツ天国", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2725681663, - "id_str": "2725681663", - "name": "絶品!!スイーツ天国", - "screen_name": "suitestengoku", - "location": "", - "description": "美味しそうなスイーツって、見てるだけで幸せな気分になれますね♪\r\nそんな素敵なスイーツに出会いたいです。\r\n食べたいと思ったら是非 RT & フォローお願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 401, - "friends_count": 1877, - "listed_count": 1, - "created_at": "Tue Aug 12 07:43:52 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 554, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/499099533507178496/g5dNpArt_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/499099533507178496/g5dNpArt_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2725681663/1407829743", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:02 +0000 2014", - "id": 505874870148669440, - "id_str": "505874870148669440", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "電車厳禁!!おもしろ話", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2699667800, - "id_str": "2699667800", - "name": "電車厳禁!!おもしろ話w", - "screen_name": "dengeki_omoro", - "location": "", - "description": "日常のオモシロくて笑える場面を探します♪\r\n面白かったらRT & 相互フォローでみなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 461, - "friends_count": 1919, - "listed_count": 0, - "created_at": "Sat Aug 02 02:16:32 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 728, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/495400387961036800/BBMb_hcG_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/495400387961036800/BBMb_hcG_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2699667800/1406947654", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:02 +0000 2014", - "id": 505874869339189250, - "id_str": "505874869339189249", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "笑えるwwランキング2", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2695745652, - "id_str": "2695745652", - "name": "笑えるwwランキング", - "screen_name": "wara_runk", - "location": "", - "description": "知ってると使えるランキングを探そう。\r\n面白かったらRT & 相互フォローでみなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 314, - "friends_count": 1943, - "listed_count": 1, - "created_at": "Thu Jul 31 13:51:57 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 737, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/494844659856728064/xBQfnm5J_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/494844659856728064/xBQfnm5J_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2695745652/1406815103", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:02 +0000 2014", - "id": 505874868533854200, - "id_str": "505874868533854209", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "スニーカー大好き★図鑑", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2707963890, - "id_str": "2707963890", - "name": "スニーカー大好き★図鑑", - "screen_name": "sunikar_daisuki", - "location": "", - "description": "スニーカー好きを見つけて仲間になろう♪\r\n気に入ったら RT & 相互フォローで みなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 394, - "friends_count": 1891, - "listed_count": 0, - "created_at": "Tue Aug 05 01:54:28 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 642, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/496474952631996416/f0C_u3_u_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/496474952631996416/f0C_u3_u_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2707963890/1407203869", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "zh" - }, - "created_at": "Sun Aug 31 00:29:01 +0000 2014", - "id": 505874867997380600, - "id_str": "505874867997380608", - "text": "\"@BelloTexto: ¿Quieres ser feliz? \n一\"No stalkees\" \n一\"No stalkees\" \n一\"No stalkees\" \n一\"No stalkees\" \n一\"No stalkees\" \n一\"No stalkees\".\"", - "source": "Twitter for Android", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2249378935, - "id_str": "2249378935", - "name": "Maggie Becerril ", - "screen_name": "maggdesie", - "location": "", - "description": "cambiando la vida de las personas.", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 120, - "friends_count": 391, - "listed_count": 0, - "created_at": "Mon Dec 16 21:56:49 +0000 2013", - "favourites_count": 314, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 1657, - "lang": "es", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/505093371665604608/K0x_LV2y_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/505093371665604608/K0x_LV2y_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2249378935/1409258479", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "BelloTexto", - "name": "Indirectas... ✉", - "id": 833083404, - "id_str": "833083404", - "indices": [ - 1, - 12 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "zh" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:01 +0000 2014", - "id": 505874867720183800, - "id_str": "505874867720183808", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "ザ・異性の裏の顔", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2719746578, - "id_str": "2719746578", - "name": "ザ・異性の裏の顔", - "screen_name": "iseiuragao", - "location": "", - "description": "異性について少し学ぶことで、必然的にモテるようになる!? 相手を理解することで見えてくるもの「それは・・・●●」 いい内容だと思ったら RT & フォローもお願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 238, - "friends_count": 1922, - "listed_count": 0, - "created_at": "Sat Aug 09 17:18:43 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 532, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/498157077726900224/tW8q4di__normal.png", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/498157077726900224/tW8q4di__normal.png", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2719746578/1407604947", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:01 +0000 2014", - "id": 505874866910687200, - "id_str": "505874866910687233", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "超w美女☆アルバム", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2744054334, - "id_str": "2744054334", - "name": "超w美女☆アルバム", - "screen_name": "bijyoalbum", - "location": "", - "description": "「おお~っ!いいね~」って、思わず言ってしまう、美女を見つけます☆ \r\nタイプだと思ったら RT & 相互フォローでお願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 45, - "friends_count": 966, - "listed_count": 0, - "created_at": "Tue Aug 19 05:36:48 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 352, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501604413312491520/GP66eKWr_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501604413312491520/GP66eKWr_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2744054334/1408426814", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:01 +0000 2014", - "id": 505874866105376800, - "id_str": "505874866105376769", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "男に見せない女子の裏生態", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2744261238, - "id_str": "2744261238", - "name": "男に見せない女子の裏生態", - "screen_name": "jyoshiuraseitai", - "location": "", - "description": "男の知らない女子ならではのあるある☆ \r\nそんな生々しい女子の生態をつぶやきます。 \r\nわかる~って人は RT & フォローでお願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 203, - "friends_count": 967, - "listed_count": 0, - "created_at": "Tue Aug 19 08:01:28 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 348, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501641354804346880/Uh1-n1LD_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501641354804346880/Uh1-n1LD_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2744261238/1408435630", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:01 +0000 2014", - "id": 505874865354584060, - "id_str": "505874865354584064", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "驚きの動物たちの生態", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2759403146, - "id_str": "2759403146", - "name": "驚きの動物たちの生態", - "screen_name": "soubutu_seitai", - "location": "", - "description": "「おお~っ」と 言われるような、動物の生態をツイートします♪ \r\n知っていると、あなたも人気者に!? \r\nおもしろかったら RT & フォローを、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 67, - "friends_count": 954, - "listed_count": 0, - "created_at": "Sat Aug 23 16:39:31 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 219, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/503220468128567296/Z8mGDIBS_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/503220468128567296/Z8mGDIBS_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2759403146/1408812130", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:01 +0000 2014", - "id": 505874864603820000, - "id_str": "505874864603820032", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "モテ女子★ファションの秘密", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2706659820, - "id_str": "2706659820", - "name": "モテ女子★ファションの秘密", - "screen_name": "mote_woman", - "location": "", - "description": "オシャレかわいい♥モテ度UPの注目アイテムを見つけます。\r\n気に入ったら RT & 相互フォローで みなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 217, - "friends_count": 1806, - "listed_count": 0, - "created_at": "Mon Aug 04 14:30:24 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 682, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/496303370936668161/s7xP8rTy_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/496303370936668161/s7xP8rTy_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2706659820/1407163059", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:00 +0000 2014", - "id": 505874863874007040, - "id_str": "505874863874007040", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "男女の違いを解明する", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2761896468, - "id_str": "2761896468", - "name": "男女の違いを解明する", - "screen_name": "danjyonotigai1", - "location": "", - "description": "意外と理解できていない男女それぞれの事情。 \r\n「えっ マジで!?」と驚くような、男女の習性をつぶやきます♪ ためになったら、是非 RT & フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 82, - "friends_count": 992, - "listed_count": 0, - "created_at": "Sun Aug 24 09:47:44 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 237, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/503479057380413441/zDLu5Z9o_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/503479057380413441/zDLu5Z9o_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2761896468/1408873803", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:00 +0000 2014", - "id": 505874862900924400, - "id_str": "505874862900924416", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "神レベル★極限の発想", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2744950735, - "id_str": "2744950735", - "name": "神レベル★極限の発想", - "screen_name": "kamihassou", - "location": "", - "description": "見ているだけで、本気がビシバシ伝わってきます! \r\n人生のヒントになるような、そんな究極の発想を集めています。 \r\nいいなと思ったら RT & 相互フォローで、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 84, - "friends_count": 992, - "listed_count": 0, - "created_at": "Tue Aug 19 13:36:05 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 343, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501725053189226496/xZNOTYz2_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501725053189226496/xZNOTYz2_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2744950735/1408455571", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:00 +0000 2014", - "id": 505874862397591550, - "id_str": "505874862397591552", - "text": "@kaoritoxx そうよ!あたしはそう思うようにしておる。いま職場一やけとる気がする(°_°)!満喫幸せ焼け!!wあー、なるほどね!毎回そうだよね!ティアラちゃんみにいってるもんね♡五月と九月恐ろしい、、、\nハリポタエリアはいった??", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": 505838547308277760, - "in_reply_to_status_id_str": "505838547308277761", - "in_reply_to_user_id": 796000214, - "in_reply_to_user_id_str": "796000214", - "in_reply_to_screen_name": "kaoritoxx", - "user": { - "id": 2256249487, - "id_str": "2256249487", - "name": "はあちゃん@海賊同盟中", - "screen_name": "onepiece_24", - "location": "どえすえろぉたんの助手兼ね妹(願望)", - "description": "ONE PIECE愛しすぎて今年23ちゃい(歴14年目)ゾロ様に一途だったのにロー、このやろー。ロビンちゃんが幸せになればいい。ルフィは無条件にすき。ゾロビン、ローロビ、ルロビ♡usj、声優さん、コナン、進撃、クレしん、H x Hも好き♩", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 415, - "friends_count": 384, - "listed_count": 3, - "created_at": "Sat Dec 21 09:37:25 +0000 2013", - "favourites_count": 1603, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 9636, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501686340564418561/hMQFN4vD_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501686340564418561/hMQFN4vD_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2256249487/1399987924", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "kaoritoxx", - "name": "かおちゃん", - "id": 796000214, - "id_str": "796000214", - "indices": [ - 0, - 10 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:00 +0000 2014", - "id": 505874861973991400, - "id_str": "505874861973991424", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "恋愛仙人", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2698885082, - "id_str": "2698885082", - "name": "恋愛仙人", - "screen_name": "renai_sennin", - "location": "", - "description": "豊富でステキな恋愛経験を、シェアしましょう。\r\n面白かったらRT & 相互フォローでみなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 618, - "friends_count": 1847, - "listed_count": 1, - "created_at": "Fri Aug 01 18:09:38 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 726, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/495272204641132544/GNA18aOg_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/495272204641132544/GNA18aOg_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2698885082/1406917096", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:00 +0000 2014", - "id": 505874861881700350, - "id_str": "505874861881700353", - "text": "@itsukibot_ 一稀の俺のソーセージをペロペロする音はデカイ", - "source": "jigtwi", - "truncated": false, - "in_reply_to_status_id": 505871017428795400, - "in_reply_to_status_id_str": "505871017428795392", - "in_reply_to_user_id": 141170845, - "in_reply_to_user_id_str": "141170845", - "in_reply_to_screen_name": "itsukibot_", - "user": { - "id": 2184752048, - "id_str": "2184752048", - "name": "アンドー", - "screen_name": "55dakedayo", - "location": "", - "description": "", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 15, - "friends_count": 24, - "listed_count": 0, - "created_at": "Sat Nov 09 17:42:22 +0000 2013", - "favourites_count": 37249, - "utc_offset": 32400, - "time_zone": "Irkutsk", - "geo_enabled": false, - "verified": false, - "statuses_count": 21070, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://abs.twimg.com/sticky/default_profile_images/default_profile_3_normal.png", - "profile_image_url_https": "https://abs.twimg.com/sticky/default_profile_images/default_profile_3_normal.png", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": true, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "itsukibot_", - "name": "前田一稀", - "id": 141170845, - "id_str": "141170845", - "indices": [ - 0, - 11 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:00 +0000 2014", - "id": 505874861185437700, - "id_str": "505874861185437697", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "あの伝説の名ドラマ&名場面", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2706951979, - "id_str": "2706951979", - "name": "あの伝説の名ドラマ&名場面", - "screen_name": "densetunodorama", - "location": "", - "description": "誰にでも記憶に残る、ドラマの名場面があると思います。そんな感動のストーリーを、もう一度わかちあいたいです。\r\n「これ知ってる!」とか「あ~懐かしい」と思ったら RT & 相互フォローでみなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 300, - "friends_count": 1886, - "listed_count": 0, - "created_at": "Mon Aug 04 16:38:25 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 694, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/496335892152209408/fKzb8Nv3_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/496335892152209408/fKzb8Nv3_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2706951979/1407170704", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:29:00 +0000 2014", - "id": 505874860447260700, - "id_str": "505874860447260672", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "マジで食べたい♥ケーキ特集", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2724328646, - "id_str": "2724328646", - "name": "マジで食べたい♥ケーキ特集", - "screen_name": "tabetaicake1", - "location": "", - "description": "女性の目線から見た、美味しそうなケーキを探し求めています。\r\n見てるだけで、あれもコレも食べたくなっちゃう♪\r\n美味しそうだと思ったら、是非 RT & フォローお願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 158, - "friends_count": 1907, - "listed_count": 0, - "created_at": "Mon Aug 11 17:15:22 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 493, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/498881289844293632/DAa9No9M_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/498881289844293632/DAa9No9M_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2724328646/1407777704", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:28:59 +0000 2014", - "id": 505874859662925800, - "id_str": "505874859662925824", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "アディダス★マニア", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2704003662, - "id_str": "2704003662", - "name": "アディダス★マニア", - "screen_name": "adi_mania11", - "location": "", - "description": "素敵なアディダスのアイテムを見つけたいです♪\r\n気に入ってもらえたららRT & 相互フォローで みなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 340, - "friends_count": 1851, - "listed_count": 0, - "created_at": "Sun Aug 03 12:26:37 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 734, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/495911561781727235/06QAMVrR_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/495911561781727235/06QAMVrR_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2704003662/1407069046", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:28:59 +0000 2014", - "id": 505874858920513540, - "id_str": "505874858920513537", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "萌えペット大好き", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2719061228, - "id_str": "2719061228", - "name": "萌えペット大好き", - "screen_name": "moe_pet1", - "location": "", - "description": "かわいいペットを見るのが趣味です♥そんな私と一緒にいやされたい人いませんか?かわいいと思ったら RT & フォローもお願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 289, - "friends_count": 1812, - "listed_count": 0, - "created_at": "Sat Aug 09 10:20:25 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 632, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/498051549537386496/QizThq7N_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/498051549537386496/QizThq7N_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2719061228/1407581287", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:28:59 +0000 2014", - "id": 505874858115219460, - "id_str": "505874858115219456", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "恋愛の教科書 ", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2744344514, - "id_str": "2744344514", - "name": "恋愛の教科書", - "screen_name": "renaikyoukasyo", - "location": "", - "description": "もっと早く知っとくべきだった~!知っていればもっと上手くいく♪ \r\n今すぐ役立つ恋愛についての雑学やマメ知識をお届けします。 \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 124, - "friends_count": 955, - "listed_count": 0, - "created_at": "Tue Aug 19 08:32:45 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 346, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501655512018997248/7SznYGWi_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501655512018997248/7SznYGWi_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2744344514/1408439001", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:28:59 +0000 2014", - "id": 505874857335074800, - "id_str": "505874857335074816", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "オモロすぎる★学生の日常", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2699365116, - "id_str": "2699365116", - "name": "オモロすぎる★学生の日常", - "screen_name": "omorogakusei", - "location": "", - "description": "楽しすぎる学生の日常を探していきます。\r\n面白かったらRT & 相互フォローでみなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 289, - "friends_count": 1156, - "listed_count": 2, - "created_at": "Fri Aug 01 23:35:18 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 770, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/495353473886478336/S-4B_RVl_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/495353473886478336/S-4B_RVl_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2699365116/1406936481", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:28:59 +0000 2014", - "id": 505874856605257700, - "id_str": "505874856605257728", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "憧れの★インテリア図鑑", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2721907602, - "id_str": "2721907602", - "name": "憧れの★インテリア図鑑", - "screen_name": "akogareinteria", - "location": "", - "description": "自分の住む部屋もこんなふうにしてみたい♪ \r\nそんな素敵なインテリアを、日々探していますw \r\nいいなと思ったら RT & 相互フォローお願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 298, - "friends_count": 1925, - "listed_count": 0, - "created_at": "Sun Aug 10 15:59:13 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 540, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/498499374423343105/Wi_izHvT_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/498499374423343105/Wi_izHvT_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2721907602/1407686543", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:28:59 +0000 2014", - "id": 505874856089378800, - "id_str": "505874856089378816", - "text": "天冥の標 VI 宿怨 PART1 / 小川 一水\nhttp://t.co/fXIgRt4ffH\n \n#キンドル #天冥の標VI宿怨PART1", - "source": "waromett", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 1953404612, - "id_str": "1953404612", - "name": "わろめっと", - "screen_name": "waromett", - "location": "", - "description": "たのしいついーとしょうかい", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 16980, - "friends_count": 16983, - "listed_count": 18, - "created_at": "Fri Oct 11 05:49:57 +0000 2013", - "favourites_count": 3833, - "utc_offset": 32400, - "time_zone": "Tokyo", - "geo_enabled": false, - "verified": false, - "statuses_count": 98655, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "352726", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme5/bg.gif", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme5/bg.gif", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/378800000578908101/14c4744c7aa34b1f8bbd942b78e59385_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/378800000578908101/14c4744c7aa34b1f8bbd942b78e59385_normal.jpeg", - "profile_link_color": "D02B55", - "profile_sidebar_border_color": "829D5E", - "profile_sidebar_fill_color": "99CC33", - "profile_text_color": "3E4415", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [ - { - "text": "キンドル", - "indices": [ - 50, - 55 - ] - }, - { - "text": "天冥の標VI宿怨PART1", - "indices": [ - 56, - 70 - ] - } - ], - "symbols": [], - "urls": [ - { - "url": "http://t.co/fXIgRt4ffH", - "expanded_url": "http://j.mp/1kHBOym", - "display_url": "j.mp/1kHBOym", - "indices": [ - 25, - 47 - ] - } - ], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "zh" - }, - "created_at": "Sun Aug 31 00:28:58 +0000 2014", - "id": 505874855770599400, - "id_str": "505874855770599425", - "text": "四川盆地江淮等地将有强降雨 开学日多地将有雨:   中新网8月31日电 据中央气象台消息,江淮东部、四川盆地东北部等地今天(31日)又将迎来一场暴雨或大暴雨天气。明天9月1日,是中小学生开学的日子。预计明天,内蒙古中部、... http://t.co/RNdqIHmTby", - "source": "twitterfeed", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 402427654, - "id_str": "402427654", - "name": "中国新闻", - "screen_name": "zhongwenxinwen", - "location": "", - "description": "中国的新闻,世界的新闻。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 2429, - "friends_count": 15, - "listed_count": 29, - "created_at": "Tue Nov 01 01:56:43 +0000 2011", - "favourites_count": 0, - "utc_offset": -28800, - "time_zone": "Alaska", - "geo_enabled": false, - "verified": false, - "statuses_count": 84564, - "lang": "zh-cn", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "709397", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme6/bg.gif", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme6/bg.gif", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/2700523149/5597e347b2eb880425faef54287995f2_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/2700523149/5597e347b2eb880425faef54287995f2_normal.jpeg", - "profile_link_color": "FF3300", - "profile_sidebar_border_color": "86A4A6", - "profile_sidebar_fill_color": "A0C5C7", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [ - { - "url": "http://t.co/RNdqIHmTby", - "expanded_url": "http://bit.ly/1tOdNsI", - "display_url": "bit.ly/1tOdNsI", - "indices": [ - 114, - 136 - ] - } - ], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "zh" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:28:58 +0000 2014", - "id": 505874854877200400, - "id_str": "505874854877200384", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "LDH ★大好き応援団", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2700961603, - "id_str": "2700961603", - "name": "LDH ★大好き応援団", - "screen_name": "LDH_daisuki1", - "location": "", - "description": "LDHファンは、全員仲間です♪\r\n面白かったらRT & 相互フォローでみなさん、お願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 458, - "friends_count": 1895, - "listed_count": 0, - "created_at": "Sat Aug 02 14:23:46 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 735, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/495578007298252800/FOZflgYu_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/495578007298252800/FOZflgYu_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2700961603/1406989928", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:28:58 +0000 2014", - "id": 505874854147407900, - "id_str": "505874854147407872", - "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…", - "source": "マジ!?怖いアニメ都市伝説", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2719489172, - "id_str": "2719489172", - "name": "マジ!?怖いアニメ都市伝説", - "screen_name": "anime_toshiden1", - "location": "", - "description": "あなたの知らない、怖すぎるアニメの都市伝説を集めています。\r\n「え~知らなかったよww]」って人は RT & フォローお願いします♪", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 377, - "friends_count": 1911, - "listed_count": 1, - "created_at": "Sat Aug 09 14:41:15 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 536, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/498118027322208258/h7XOTTSi_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/498118027322208258/h7XOTTSi_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2719489172/1407595513", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:06 +0000 2014", - "id": 505871615125491700, - "id_str": "505871615125491712", - "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介", - "source": "幸せの☆お守り", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2745121514, - "id_str": "2745121514", - "name": "幸せの☆お守り", - "screen_name": "shiawaseomamori", - "location": "", - "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 213, - "friends_count": 991, - "listed_count": 0, - "created_at": "Tue Aug 19 14:45:19 +0000 2014", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 349, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 58, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "shiawaseomamori", - "name": "幸せの☆お守り", - "id": 2745121514, - "id_str": "2745121514", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:28:58 +0000 2014", - "id": 505874854134820860, - "id_str": "505874854134820864", - "text": "@vesperia1985 おはよー!\n今日までなのですよ…!!明日一生来なくていい", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": 505868030329364500, - "in_reply_to_status_id_str": "505868030329364480", - "in_reply_to_user_id": 2286548834, - "in_reply_to_user_id_str": "2286548834", - "in_reply_to_screen_name": "vesperia1985", - "user": { - "id": 2389045190, - "id_str": "2389045190", - "name": "りいこ", - "screen_name": "riiko_dq10", - "location": "", - "description": "サマーエルフです、りいこです。えるおくんラブです!随時ふれぼしゅ〜〜(っ˘ω˘c )*日常のどうでもいいことも呟いてますがよろしくね〜", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 67, - "friends_count": 69, - "listed_count": 0, - "created_at": "Fri Mar 14 13:02:27 +0000 2014", - "favourites_count": 120, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 324, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/503906346815610881/BfSrCoBr_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/503906346815610881/BfSrCoBr_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2389045190/1409232058", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "vesperia1985", - "name": "ユーリ", - "id": 2286548834, - "id_str": "2286548834", - "indices": [ - 0, - 13 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:28:58 +0000 2014", - "id": 505874853778685950, - "id_str": "505874853778685952", - "text": "【映画パンフレット】 永遠の0 (永遠のゼロ) 監督 山崎貴 キャスト 岡田准一、三浦春馬、井上真央東宝(2)11点の新品/中古品を見る: ¥ 500より\n(この商品の現在のランクに関する正式な情報については、アートフレーム... http://t.co/4hbyB1rbQ7", - "source": "IFTTT", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 1319883571, - "id_str": "1319883571", - "name": "森林木工家具製作所", - "screen_name": "Furniturewood", - "location": "沖縄", - "description": "家具(かぐ、Furniture)は、家財道具のうち家の中に据え置いて利用する比較的大型の道具類、または元々家に作り付けられている比較的大型の道具類をさす。なお、日本の建築基準法上は、作り付け家具は、建築確認及び完了検査の対象となるが、後から置かれるものについては対象外である。", - "url": "http://t.co/V4oyL0xtZk", - "entities": { - "url": { - "urls": [ - { - "url": "http://t.co/V4oyL0xtZk", - "expanded_url": "http://astore.amazon.co.jp/furniturewood-22", - "display_url": "astore.amazon.co.jp/furniturewood-…", - "indices": [ - 0, - 22 - ] - } - ] - }, - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 677, - "friends_count": 743, - "listed_count": 1, - "created_at": "Mon Apr 01 07:55:14 +0000 2013", - "favourites_count": 0, - "utc_offset": 32400, - "time_zone": "Irkutsk", - "geo_enabled": false, - "verified": false, - "statuses_count": 17210, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/3460466135/c67d9df9b760787b9ed284fe80b1dd31_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/3460466135/c67d9df9b760787b9ed284fe80b1dd31_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/1319883571/1364804982", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [ - { - "url": "http://t.co/4hbyB1rbQ7", - "expanded_url": "http://ift.tt/1kT55bk", - "display_url": "ift.tt/1kT55bk", - "indices": [ - 116, - 138 - ] - } - ], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:28:58 +0000 2014", - "id": 505874852754907140, - "id_str": "505874852754907136", - "text": "RT @siranuga_hotoke: ゴキブリは一世帯に平均して480匹いる。", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 413944345, - "id_str": "413944345", - "name": "泥酔イナバウアー", - "screen_name": "Natade_co_co_21", - "location": "", - "description": "君の瞳にうつる僕に乾杯。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 298, - "friends_count": 300, - "listed_count": 4, - "created_at": "Wed Nov 16 12:52:46 +0000 2011", - "favourites_count": 3125, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 12237, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "FFF04D", - "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/378800000115928444/9bf5fa13385cc80bfeb097e51af9862a.jpeg", - "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/378800000115928444/9bf5fa13385cc80bfeb097e51af9862a.jpeg", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/500849752351600640/lMQqIzYj_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/500849752351600640/lMQqIzYj_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/413944345/1403511193", - "profile_link_color": "0099CC", - "profile_sidebar_border_color": "000000", - "profile_sidebar_fill_color": "F6FFD1", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sat Aug 30 23:24:23 +0000 2014", - "id": 505858599411666940, - "id_str": "505858599411666944", - "text": "ゴキブリは一世帯に平均して480匹いる。", - "source": "twittbot.net", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2243896200, - "id_str": "2243896200", - "name": "知らぬが仏bot", - "screen_name": "siranuga_hotoke", - "location": "奈良・京都辺り", - "description": "知らぬが仏な情報をお伝えします。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 3288, - "friends_count": 3482, - "listed_count": 7, - "created_at": "Fri Dec 13 13:16:35 +0000 2013", - "favourites_count": 0, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 1570, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/378800000866399372/ypy5NnPe_normal.png", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/378800000866399372/ypy5NnPe_normal.png", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/2243896200/1386997755", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 1, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - "retweet_count": 1, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [], - "user_mentions": [ - { - "screen_name": "siranuga_hotoke", - "name": "知らぬが仏bot", - "id": 2243896200, - "id_str": "2243896200", - "indices": [ - 3, - 19 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:28:58 +0000 2014", - "id": 505874852603908100, - "id_str": "505874852603908096", - "text": "RT @UARROW_Y: ようかい体操第一を踊る国見英 http://t.co/SXoYWH98as", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 2463035136, - "id_str": "2463035136", - "name": "や", - "screen_name": "yae45", - "location": "", - "description": "きもちわるいことつぶやく用", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 4, - "friends_count": 30, - "listed_count": 0, - "created_at": "Fri Apr 25 10:49:20 +0000 2014", - "favourites_count": 827, - "utc_offset": 32400, - "time_zone": "Irkutsk", - "geo_enabled": false, - "verified": false, - "statuses_count": 390, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/505345820137234433/csFeRxPm_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/505345820137234433/csFeRxPm_normal.jpeg", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:16:45 +0000 2014", - "id": 505871779949051900, - "id_str": "505871779949051904", - "text": "ようかい体操第一を踊る国見英 http://t.co/SXoYWH98as", - "source": "Twitter for Android", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 1261662588, - "id_str": "1261662588", - "name": "ゆう矢", - "screen_name": "UARROW_Y", - "location": "つくり出そう国影の波 広げよう国影の輪", - "description": "HQ!! 成人済腐女子。日常ツイート多いです。赤葦京治夢豚クソツイ含みます注意。フォローをお考えの際はプロフご一読お願い致します。FRBお気軽に", - "url": "http://t.co/LFX2XOzb0l", - "entities": { - "url": { - "urls": [ - { - "url": "http://t.co/LFX2XOzb0l", - "expanded_url": "http://twpf.jp/UARROW_Y", - "display_url": "twpf.jp/UARROW_Y", - "indices": [ - 0, - 22 - ] - } - ] - }, - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 265, - "friends_count": 124, - "listed_count": 12, - "created_at": "Tue Mar 12 10:42:17 +0000 2013", - "favourites_count": 6762, - "utc_offset": 32400, - "time_zone": "Tokyo", - "geo_enabled": true, - "verified": false, - "statuses_count": 55946, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/502095104618663937/IzuPYx3E_normal.png", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/502095104618663937/IzuPYx3E_normal.png", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/1261662588/1408618604", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 29, - "favorite_count": 54, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [ - { - "url": "http://t.co/SXoYWH98as", - "expanded_url": "http://twitter.com/UARROW_Y/status/505871779949051904/photo/1", - "display_url": "pic.twitter.com/SXoYWH98as", - "indices": [ - 15, - 37 - ] - } - ], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - "retweet_count": 29, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [ - { - "url": "http://t.co/SXoYWH98as", - "expanded_url": "http://twitter.com/UARROW_Y/status/505871779949051904/photo/1", - "display_url": "pic.twitter.com/SXoYWH98as", - "indices": [ - 29, - 51 - ] - } - ], - "user_mentions": [ - { - "screen_name": "UARROW_Y", - "name": "ゆう矢", - "id": 1261662588, - "id_str": "1261662588", - "indices": [ - 3, - 12 - ] - } - ] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "zh" - }, - "created_at": "Sun Aug 31 00:28:57 +0000 2014", - "id": 505874848900341760, - "id_str": "505874848900341760", - "text": "RT @fightcensorship: 李克強總理的臉綠了!在前日南京青奧會閉幕式,觀眾席上一名貪玩韓國少年運動員,竟斗膽用激光筆射向中國總理李克強的臉。http://t.co/HLX9mHcQwe http://t.co/fVVOSML5s8", - "source": "Twitter for iPhone", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 889332218, - "id_str": "889332218", - "name": "民權初步", - "screen_name": "JoeyYoungkm", - "location": "km/cn", - "description": "经历了怎样的曲折才从追求“一致通过”发展到今天人们接受“过半数通过”,正是人们认识到对“一致”甚至是“基本一致”的追求本身就会变成一种独裁。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 313, - "friends_count": 46, - "listed_count": 0, - "created_at": "Thu Oct 18 17:21:17 +0000 2012", - "favourites_count": 24, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 15707, - "lang": "en", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "C0DEED", - "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/378800000563062033/a7e8274752ce36a6cd5bad971ec7d416_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/378800000563062033/a7e8274752ce36a6cd5bad971ec7d416_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/889332218/1388896916", - "profile_link_color": "0084B4", - "profile_sidebar_border_color": "C0DEED", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": true, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweeted_status": { - "metadata": { - "result_type": "recent", - "iso_language_code": "zh" - }, - "created_at": "Sat Aug 30 23:56:27 +0000 2014", - "id": 505866670356070400, - "id_str": "505866670356070401", - "text": "李克強總理的臉綠了!在前日南京青奧會閉幕式,觀眾席上一名貪玩韓國少年運動員,竟斗膽用激光筆射向中國總理李克強的臉。http://t.co/HLX9mHcQwe http://t.co/fVVOSML5s8", - "source": "Twitter Web Client", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 67661086, - "id_str": "67661086", - "name": "※范强※法特姗瑟希蒲※", - "screen_name": "fightcensorship", - "location": "Middle of Nowhere", - "description": "被人指责“封建”、“落后”、“保守”的代表,当代红卫兵攻击对象。致力于言论自由,人权; 倡导资讯公开,反对网络封锁。既不是精英分子,也不是意见领袖,本推言论不代表任何国家、党派和组织,也不标榜伟大、光荣和正确。", - "url": null, - "entities": { - "description": { - "urls": [] - } - }, - "protected": false, - "followers_count": 7143, - "friends_count": 779, - "listed_count": 94, - "created_at": "Fri Aug 21 17:16:22 +0000 2009", - "favourites_count": 364, - "utc_offset": 28800, - "time_zone": "Singapore", - "geo_enabled": false, - "verified": false, - "statuses_count": 16751, - "lang": "en", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "FFFFFF", - "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/611138516/toeccqnahbpmr0sw9ybv.jpeg", - "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/611138516/toeccqnahbpmr0sw9ybv.jpeg", - "profile_background_tile": true, - "profile_image_url": "http://pbs.twimg.com/profile_images/3253137427/3524557d21ef2c04871e985d4d136bdb_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/3253137427/3524557d21ef2c04871e985d4d136bdb_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/67661086/1385608347", - "profile_link_color": "ED1313", - "profile_sidebar_border_color": "FFFFFF", - "profile_sidebar_fill_color": "E0FF92", - "profile_text_color": "000000", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 4, - "favorite_count": 2, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [ - { - "url": "http://t.co/HLX9mHcQwe", - "expanded_url": "http://is.gd/H3OgTO", - "display_url": "is.gd/H3OgTO", - "indices": [ - 57, - 79 - ] - } - ], - "user_mentions": [], - "media": [ - { - "id": 505866668485386240, - "id_str": "505866668485386241", - "indices": [ - 80, - 102 - ], - "media_url": "http://pbs.twimg.com/media/BwUzDgbIIAEgvhD.jpg", - "media_url_https": "https://pbs.twimg.com/media/BwUzDgbIIAEgvhD.jpg", - "url": "http://t.co/fVVOSML5s8", - "display_url": "pic.twitter.com/fVVOSML5s8", - "expanded_url": "http://twitter.com/fightcensorship/status/505866670356070401/photo/1", - "type": "photo", - "sizes": { - "large": { - "w": 640, - "h": 554, - "resize": "fit" - }, - "medium": { - "w": 600, - "h": 519, - "resize": "fit" - }, - "thumb": { - "w": 150, - "h": 150, - "resize": "crop" - }, - "small": { - "w": 340, - "h": 294, - "resize": "fit" - } - } - } - ] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "zh" - }, - "retweet_count": 4, - "favorite_count": 0, - "entities": { - "hashtags": [], - "symbols": [], - "urls": [ - { - "url": "http://t.co/HLX9mHcQwe", - "expanded_url": "http://is.gd/H3OgTO", - "display_url": "is.gd/H3OgTO", - "indices": [ - 78, - 100 - ] - } - ], - "user_mentions": [ - { - "screen_name": "fightcensorship", - "name": "※范强※法特姗瑟希蒲※", - "id": 67661086, - "id_str": "67661086", - "indices": [ - 3, - 19 - ] - } - ], - "media": [ - { - "id": 505866668485386240, - "id_str": "505866668485386241", - "indices": [ - 101, - 123 - ], - "media_url": "http://pbs.twimg.com/media/BwUzDgbIIAEgvhD.jpg", - "media_url_https": "https://pbs.twimg.com/media/BwUzDgbIIAEgvhD.jpg", - "url": "http://t.co/fVVOSML5s8", - "display_url": "pic.twitter.com/fVVOSML5s8", - "expanded_url": "http://twitter.com/fightcensorship/status/505866670356070401/photo/1", - "type": "photo", - "sizes": { - "large": { - "w": 640, - "h": 554, - "resize": "fit" - }, - "medium": { - "w": 600, - "h": 519, - "resize": "fit" - }, - "thumb": { - "w": 150, - "h": 150, - "resize": "crop" - }, - "small": { - "w": 340, - "h": 294, - "resize": "fit" - } - }, - "source_status_id": 505866670356070400, - "source_status_id_str": "505866670356070401" - } - ] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "zh" - }, - { - "metadata": { - "result_type": "recent", - "iso_language_code": "ja" - }, - "created_at": "Sun Aug 31 00:28:56 +0000 2014", - "id": 505874847260352500, - "id_str": "505874847260352513", - "text": "【マイリスト】【彩りりあ】妖怪体操第一 踊ってみた【反転】 http://t.co/PjL9if8OZC #sm24357625", - "source": "ニコニコ動画", - "truncated": false, - "in_reply_to_status_id": null, - "in_reply_to_status_id_str": null, - "in_reply_to_user_id": null, - "in_reply_to_user_id_str": null, - "in_reply_to_screen_name": null, - "user": { - "id": 1609789375, - "id_str": "1609789375", - "name": "食いしん坊前ちゃん", - "screen_name": "2no38mae", - "location": "ニノと二次元の間", - "description": "ニコ動で踊り手やってます!!応援本当に嬉しいですありがとうございます!! ぽっちゃりだけど前向きに頑張る腐女子です。嵐と弱虫ペダルが大好き!【お返事】りぷ(基本は)”○” DM (同業者様を除いて)”×” 動画の転載は絶対にやめてください。 ブログ→http://t.co/8E91tqoeKX  ", - "url": "http://t.co/ulD2e9mcwb", - "entities": { - "url": { - "urls": [ - { - "url": "http://t.co/ulD2e9mcwb", - "expanded_url": "http://www.nicovideo.jp/mylist/37917495", - "display_url": "nicovideo.jp/mylist/37917495", - "indices": [ - 0, - 22 - ] - } - ] - }, - "description": { - "urls": [ - { - "url": "http://t.co/8E91tqoeKX", - "expanded_url": "http://ameblo.jp/2no38mae/", - "display_url": "ameblo.jp/2no38mae/", - "indices": [ - 125, - 147 - ] - } - ] - } - }, - "protected": false, - "followers_count": 560, - "friends_count": 875, - "listed_count": 11, - "created_at": "Sun Jul 21 05:09:43 +0000 2013", - "favourites_count": 323, - "utc_offset": null, - "time_zone": null, - "geo_enabled": false, - "verified": false, - "statuses_count": 3759, - "lang": "ja", - "contributors_enabled": false, - "is_translator": false, - "is_translation_enabled": false, - "profile_background_color": "F2C6E4", - "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/378800000029400927/114b242f5d838ec7cb098ea5db6df413.jpeg", - "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/378800000029400927/114b242f5d838ec7cb098ea5db6df413.jpeg", - "profile_background_tile": false, - "profile_image_url": "http://pbs.twimg.com/profile_images/487853237723095041/LMBMGvOc_normal.jpeg", - "profile_image_url_https": "https://pbs.twimg.com/profile_images/487853237723095041/LMBMGvOc_normal.jpeg", - "profile_banner_url": "https://pbs.twimg.com/profile_banners/1609789375/1375752225", - "profile_link_color": "FF9EDD", - "profile_sidebar_border_color": "FFFFFF", - "profile_sidebar_fill_color": "DDEEF6", - "profile_text_color": "333333", - "profile_use_background_image": true, - "default_profile": false, - "default_profile_image": false, - "following": false, - "follow_request_sent": false, - "notifications": false - }, - "geo": null, - "coordinates": null, - "place": null, - "contributors": null, - "retweet_count": 0, - "favorite_count": 0, - "entities": { - "hashtags": [ - { - "text": "sm24357625", - "indices": [ - 53, - 64 - ] - } - ], - "symbols": [], - "urls": [ - { - "url": "http://t.co/PjL9if8OZC", - "expanded_url": "http://nico.ms/sm24357625", - "display_url": "nico.ms/sm24357625", - "indices": [ - 30, - 52 - ] - } - ], - "user_mentions": [] - }, - "favorited": false, - "retweeted": false, - "possibly_sensitive": false, - "lang": "ja" - } - ], - "search_metadata": { - "completed_in": 0.087, - "max_id": 505874924095815700, - "max_id_str": "505874924095815681", - "next_results": "?max_id=505874847260352512&q=%E4%B8%80&count=100&include_entities=1", - "query": "%E4%B8%80", - "refresh_url": "?since_id=505874924095815681&q=%E4%B8%80&include_entities=1", - "count": 100, - "since_id": 0, - "since_id_str": "0" - } -} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/Doxyfile b/resources/3rdparty/modernjson/doc/Doxyfile deleted file mode 100755 index 11faf6d03..000000000 --- a/resources/3rdparty/modernjson/doc/Doxyfile +++ /dev/null @@ -1,317 +0,0 @@ -# Doxyfile 1.8.9.1 - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -DOXYFILE_ENCODING = UTF-8 -PROJECT_NAME = "JSON for Modern C++" -PROJECT_NUMBER = 2.0.0 -PROJECT_BRIEF = -PROJECT_LOGO = -OUTPUT_DIRECTORY = . -CREATE_SUBDIRS = NO -ALLOW_UNICODE_NAMES = NO -OUTPUT_LANGUAGE = English -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = NO -ABBREVIATE_BRIEF = -ALWAYS_DETAILED_SEC = YES -INLINE_INHERITED_MEMB = NO -FULL_PATH_NAMES = YES -STRIP_FROM_PATH = -STRIP_FROM_INC_PATH = -SHORT_NAMES = NO -JAVADOC_AUTOBRIEF = NO -QT_AUTOBRIEF = NO -MULTILINE_CPP_IS_BRIEF = NO -INHERIT_DOCS = YES -SEPARATE_MEMBER_PAGES = YES -TAB_SIZE = 4 -ALIASES = "complexity=@par Complexity\n" -ALIASES += liveexample{2}="@par Example\n \1 \n @includelineno \2.cpp \n Output (play with this example @htmlinclude \2.link):\n @verbinclude \2.output \n The example code above can be translated with @verbatim g++ -std=c++11 -Isrc doc/examples/\2.cpp -o \2 @endverbatim" -ALIASES += requirement="@par Requirements\n" -ALIASES += exceptionsafety="@par Exception safety\n" -TCL_SUBST = -OPTIMIZE_OUTPUT_FOR_C = NO -OPTIMIZE_OUTPUT_JAVA = NO -OPTIMIZE_FOR_FORTRAN = NO -OPTIMIZE_OUTPUT_VHDL = NO -EXTENSION_MAPPING = -MARKDOWN_SUPPORT = YES -AUTOLINK_SUPPORT = NO -BUILTIN_STL_SUPPORT = YES -CPP_CLI_SUPPORT = NO -SIP_SUPPORT = NO -IDL_PROPERTY_SUPPORT = YES -DISTRIBUTE_GROUP_DOC = NO -SUBGROUPING = YES -INLINE_GROUPED_CLASSES = NO -INLINE_SIMPLE_STRUCTS = NO -TYPEDEF_HIDES_STRUCT = NO -LOOKUP_CACHE_SIZE = 0 -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = YES -EXTRACT_PRIVATE = NO -EXTRACT_PACKAGE = YES -EXTRACT_STATIC = YES -EXTRACT_LOCAL_CLASSES = YES -EXTRACT_LOCAL_METHODS = YES -EXTRACT_ANON_NSPACES = YES -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = NO -CASE_SENSE_NAMES = NO -HIDE_SCOPE_NAMES = NO -HIDE_COMPOUND_REFERENCE= NO -SHOW_INCLUDE_FILES = YES -SHOW_GROUPED_MEMB_INC = NO -FORCE_LOCAL_INCLUDES = NO -INLINE_INFO = YES -SORT_MEMBER_DOCS = YES -SORT_BRIEF_DOCS = YES -SORT_MEMBERS_CTORS_1ST = YES -SORT_GROUP_NAMES = NO -SORT_BY_SCOPE_NAME = NO -STRICT_PROTO_MATCHING = NO -GENERATE_TODOLIST = YES -GENERATE_TESTLIST = YES -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 30 -SHOW_USED_FILES = NO -SHOW_FILES = NO -SHOW_NAMESPACES = NO -FILE_VERSION_FILTER = -LAYOUT_FILE = -CITE_BIB_FILES = -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = YES -WARNINGS = YES -WARN_IF_UNDOCUMENTED = YES -WARN_IF_DOC_ERROR = YES -WARN_NO_PARAMDOC = YES -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = ../src/json.hpp index.md -INPUT_ENCODING = UTF-8 -FILE_PATTERNS = -RECURSIVE = NO -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXCLUDE_SYMBOLS = nlohmann::anonymous_namespace -EXAMPLE_PATH = examples -EXAMPLE_PATTERNS = -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = images -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = NO -FILTER_SOURCE_PATTERNS = -USE_MDFILE_AS_MAINPAGE = index.md -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = YES -INLINE_SOURCES = NO -STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = NO -REFERENCES_RELATION = NO -REFERENCES_LINK_SOURCE = NO -SOURCE_TOOLTIPS = YES -USE_HTAGS = NO -VERBATIM_HEADERS = NO -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = YES -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = html -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = -HTML_EXTRA_STYLESHEET = css/mylayout.css -HTML_EXTRA_FILES = -HTML_COLORSTYLE_HUE = 220 -HTML_COLORSTYLE_SAT = 100 -HTML_COLORSTYLE_GAMMA = 80 -HTML_TIMESTAMP = YES -HTML_DYNAMIC_SECTIONS = YES -HTML_INDEX_NUM_ENTRIES = 100 -GENERATE_DOCSET = YES -DOCSET_FEEDNAME = "Doxygen generated docs" -DOCSET_BUNDLE_ID = me.nlohmann.json -DOCSET_PUBLISHER_ID = me.nlohmann -DOCSET_PUBLISHER_NAME = Niels Lohmann -GENERATE_HTMLHELP = NO -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -CHM_INDEX_ENCODING = -BINARY_TOC = NO -TOC_EXPAND = NO -GENERATE_QHP = NO -QCH_FILE = -QHP_NAMESPACE = org.doxygen.Project -QHP_VIRTUAL_FOLDER = doc -QHP_CUST_FILTER_NAME = -QHP_CUST_FILTER_ATTRS = -QHP_SECT_FILTER_ATTRS = -QHG_LOCATION = -GENERATE_ECLIPSEHELP = NO -ECLIPSE_DOC_ID = org.doxygen.Project -DISABLE_INDEX = NO -GENERATE_TREEVIEW = NO -ENUM_VALUES_PER_LINE = 4 -TREEVIEW_WIDTH = 250 -EXT_LINKS_IN_WINDOW = NO -FORMULA_FONTSIZE = 10 -FORMULA_TRANSPARENT = YES -USE_MATHJAX = NO -MATHJAX_FORMAT = HTML-CSS -MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest -MATHJAX_EXTENSIONS = -MATHJAX_CODEFILE = -SEARCHENGINE = YES -SERVER_BASED_SEARCH = NO -EXTERNAL_SEARCH = NO -SEARCHENGINE_URL = -SEARCHDATA_FILE = searchdata.xml -EXTERNAL_SEARCH_ID = -EXTRA_SEARCH_MAPPINGS = -#--------------------------------------------------------------------------- -# Configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = NO -LATEX_OUTPUT = latex -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = NO -PAPER_TYPE = a4 -EXTRA_PACKAGES = -LATEX_HEADER = -LATEX_FOOTER = -LATEX_EXTRA_STYLESHEET = -LATEX_EXTRA_FILES = -PDF_HYPERLINKS = YES -USE_PDFLATEX = YES -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO -LATEX_SOURCE_CODE = NO -LATEX_BIB_STYLE = plain -#--------------------------------------------------------------------------- -# Configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = NO -RTF_OUTPUT = rtf -COMPACT_RTF = NO -RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = -RTF_SOURCE_CODE = NO -#--------------------------------------------------------------------------- -# Configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_SUBDIR = -MAN_LINKS = NO -#--------------------------------------------------------------------------- -# Configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = NO -XML_OUTPUT = xml -XML_PROGRAMLISTING = YES -#--------------------------------------------------------------------------- -# Configuration options related to the DOCBOOK output -#--------------------------------------------------------------------------- -GENERATE_DOCBOOK = NO -DOCBOOK_OUTPUT = docbook -DOCBOOK_PROGRAMLISTING = NO -#--------------------------------------------------------------------------- -# Configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO -#--------------------------------------------------------------------------- -# Configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = NO -EXPAND_ONLY_PREDEF = NO -SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# Configuration options related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -EXTERNAL_PAGES = YES -PERL_PATH = /usr/bin/perl -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = NO -MSCGEN_PATH = -DIA_PATH = -HIDE_UNDOC_RELATIONS = YES -HAVE_DOT = YES -DOT_NUM_THREADS = 0 -DOT_FONTNAME = Helvetica -DOT_FONTSIZE = 10 -DOT_FONTPATH = -CLASS_GRAPH = NO -COLLABORATION_GRAPH = NO -GROUP_GRAPHS = YES -UML_LOOK = YES -UML_LIMIT_NUM_FIELDS = 10 -TEMPLATE_RELATIONS = NO -INCLUDE_GRAPH = NO -INCLUDED_BY_GRAPH = NO -CALL_GRAPH = NO -CALLER_GRAPH = NO -GRAPHICAL_HIERARCHY = NO -DIRECTORY_GRAPH = NO -DOT_IMAGE_FORMAT = svg -INTERACTIVE_SVG = YES -DOT_PATH = -DOTFILE_DIRS = -MSCFILE_DIRS = -DIAFILE_DIRS = -PLANTUML_JAR_PATH = -PLANTUML_INCLUDE_PATH = -DOT_GRAPH_MAX_NODES = 50 -MAX_DOT_GRAPH_DEPTH = 0 -DOT_TRANSPARENT = NO -DOT_MULTI_TARGETS = NO -GENERATE_LEGEND = YES -DOT_CLEANUP = YES diff --git a/resources/3rdparty/modernjson/doc/Makefile b/resources/3rdparty/modernjson/doc/Makefile deleted file mode 100755 index dc10f1dd1..000000000 --- a/resources/3rdparty/modernjson/doc/Makefile +++ /dev/null @@ -1,82 +0,0 @@ -SRCDIR = ../src - -all: doxygen - -clean: - rm -fr me.nlohmann.json.docset html - - -########################################################################## -# example files -########################################################################## - -# where are the example cpp files -EXAMPLES = $(wildcard examples/*.cpp) - -# create output from a stand-alone example file -%.output: %.cpp - make $(<:.cpp=) CPPFLAGS="-I $(SRCDIR)" CXXFLAGS="-std=c++11" - ./$(<:.cpp=) > $@ - rm $(<:.cpp=) - -# compare created output with current output of the example files -%.test: %.cpp - make $(<:.cpp=) CPPFLAGS="-I $(SRCDIR)" CXXFLAGS="-std=c++11" - ./$(<:.cpp=) > $@ - diff $@ $(<:.cpp=.output) - rm $(<:.cpp=) $@ - -# create links to try the code online -%.link: %.cpp - rm -fr tmp - mkdir tmp - cp $(SRCDIR)/json.hpp tmp - scripts/send_to_wandbox.py tmp $< > $@.tmp - /bin/echo -n "online" > $@ - rm -fr tmp $@.tmp - -# create output from all stand-alone example files -create_output: $(EXAMPLES:.cpp=.output) - -create_links: $(EXAMPLES:.cpp=.link) - -# check output of all stand-alone example files -check_output: $(EXAMPLES:.cpp=.test) - - -########################################################################## -# Doxygen HTML documentation -########################################################################## - -# create Doxygen documentation -doxygen: create_output create_links - doxygen - gsed -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberFloatType, AllocatorType >@@g' html/*.html - gsed -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberFloatType, AllocatorType >@@g' html/*.html - gsed -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType >@@g' html/*.html - gsed -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType >@@g' html/*.html - -upload: clean doxygen check_output - cd html ; ../scripts/git-update-ghpages nlohmann/json - rm -fr html - open http://nlohmann.github.io/json/ - - -########################################################################## -# docset -########################################################################## - -# create docset for Dash -docset: create_output - cp Doxyfile Doxyfile_docset - gsed -i 's/DISABLE_INDEX = NO/DISABLE_INDEX = YES/' Doxyfile_docset - gsed -i 's/SEARCHENGINE = YES/SEARCHENGINE = NO/' Doxyfile_docset - gsed -i 's@HTML_EXTRA_STYLESHEET = css/mylayout.css@HTML_EXTRA_STYLESHEET = css/mylayout_docset.css@' Doxyfile_docset - rm -fr html *.docset - doxygen Doxyfile_docset - gsed -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberFloatType, AllocatorType >@@g' html/*.html - gsed -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberFloatType, AllocatorType >@@g' html/*.html - make -C html - mv html/*.docset . - gsed -i 's@doxygen@json@' me.nlohmann.json.docset/Contents/Info.plist - rm -fr Doxyfile_docset html diff --git a/resources/3rdparty/modernjson/doc/css/mylayout.css b/resources/3rdparty/modernjson/doc/css/mylayout.css deleted file mode 100755 index fe20b82c5..000000000 --- a/resources/3rdparty/modernjson/doc/css/mylayout.css +++ /dev/null @@ -1,26 +0,0 @@ -/* hide lengthy template information */ -.memtemplate, .memTemplParams { - display: none; -} - -/* allow compiler information to wrap */ -/* https://css-tricks.com/snippets/css/make-pre-text-wrap/ */ -pre.fragment { - white-space: pre-wrap; /* css-3 */ - white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - word-wrap: break-word; /* Internet Explorer 5.5+ */ -} - -td.paramname { - vertical-align: top; -} - -.ok_green { - background-color: #89C35C; -} - -.nok_throws { - background-color: #ffa500; -} diff --git a/resources/3rdparty/modernjson/doc/css/mylayout_docset.css b/resources/3rdparty/modernjson/doc/css/mylayout_docset.css deleted file mode 100755 index 1a67e99df..000000000 --- a/resources/3rdparty/modernjson/doc/css/mylayout_docset.css +++ /dev/null @@ -1,27 +0,0 @@ -.memtemplate { - display: none; -} - -.memTemplParams { - display: none; -} - -.navtab { - display: none; -} - -#top, .footer { - display: none; -} - -td.paramname { - vertical-align: top; -} - -.ok_green { - background-color: #89C35C; -} - -.nok_throws { - background-color: #ffa500; -} diff --git a/resources/3rdparty/modernjson/doc/examples/README.cpp b/resources/3rdparty/modernjson/doc/examples/README.cpp deleted file mode 100755 index b928e1167..000000000 --- a/resources/3rdparty/modernjson/doc/examples/README.cpp +++ /dev/null @@ -1,36 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON object - json j = - { - {"pi", 3.141}, - {"happy", true}, - {"name", "Niels"}, - {"nothing", nullptr}, - { - "answer", { - {"everything", 42} - } - }, - {"list", {1, 0, 2}}, - { - "object", { - {"currency", "USD"}, - {"value", 42.99} - } - } - }; - - // add new values - j["new"]["key"]["value"] = {"another", "list"}; - - // count elements - j["size"] = j.size(); - - // pretty print with indent of 4 spaces - std::cout << std::setw(4) << j << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/README.link b/resources/3rdparty/modernjson/doc/examples/README.link deleted file mode 100755 index a2526dc64..000000000 --- a/resources/3rdparty/modernjson/doc/examples/README.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/README.output b/resources/3rdparty/modernjson/doc/examples/README.output deleted file mode 100755 index 3226f7290..000000000 --- a/resources/3rdparty/modernjson/doc/examples/README.output +++ /dev/null @@ -1,27 +0,0 @@ -{ - "answer": { - "everything": 42 - }, - "happy": true, - "list": [ - 1, - 0, - 2 - ], - "name": "Niels", - "new": { - "key": { - "value": [ - "another", - "list" - ] - } - }, - "nothing": null, - "object": { - "currency": "USD", - "value": 42.99 - }, - "pi": 3.141, - "size": 9 -} diff --git a/resources/3rdparty/modernjson/doc/examples/array.cpp b/resources/3rdparty/modernjson/doc/examples/array.cpp deleted file mode 100755 index 3ec0a133b..000000000 --- a/resources/3rdparty/modernjson/doc/examples/array.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON arrays - json j_no_init_list = json::array(); - json j_empty_init_list = json::array({}); - json j_nonempty_init_list = json::array({1, 2, 3, 4}); - json j_list_of_pairs = json::array({ {"one", 1}, {"two", 2} }); - - // serialize the JSON arrays - std::cout << j_no_init_list << '\n'; - std::cout << j_empty_init_list << '\n'; - std::cout << j_nonempty_init_list << '\n'; - std::cout << j_list_of_pairs << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/array.link b/resources/3rdparty/modernjson/doc/examples/array.link deleted file mode 100755 index 626dcd25c..000000000 --- a/resources/3rdparty/modernjson/doc/examples/array.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/array.output b/resources/3rdparty/modernjson/doc/examples/array.output deleted file mode 100755 index 4e75a1b67..000000000 --- a/resources/3rdparty/modernjson/doc/examples/array.output +++ /dev/null @@ -1,4 +0,0 @@ -[] -[] -[1,2,3,4] -[["one",1],["two",2]] diff --git a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.cpp b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.cpp deleted file mode 100755 index a8fc9998c..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON object - json object = - { - {"the good", "il buono"}, - {"the bad", "il cativo"}, - {"the ugly", "il brutto"} - }; - - // output element with key "the ugly" - std::cout << object.at("the ugly") << '\n'; - - // change element with key "the bad" - object.at("the bad") = "il cattivo"; - - // output changed array - std::cout << object << '\n'; - - // try to write at a nonexisting key - try - { - object.at("the fast") = "il rapido"; - } - catch (std::out_of_range& e) - { - std::cout << "out of range: " << e.what() << '\n'; - } -} diff --git a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.link b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.link deleted file mode 100755 index f7e44b204..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.output b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.output deleted file mode 100755 index 79cff2d7f..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.output +++ /dev/null @@ -1,3 +0,0 @@ -"il brutto" -{"the bad":"il cattivo","the good":"il buono","the ugly":"il brutto"} -out of range: key 'the fast' not found diff --git a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.cpp b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.cpp deleted file mode 100755 index 0686db45e..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON object - json object = - { - {"the good", "il buono"}, - {"the bad", "il cativo"}, - {"the ugly", "il brutto"} - }; - - // output element with key "the ugly" - std::cout << object.at("the ugly") << '\n'; - - // try to read from a nonexisting key - try - { - std::cout << object.at("the fast") << '\n'; - } - catch (std::out_of_range) - { - std::cout << "out of range" << '\n'; - } -} diff --git a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.link b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.link deleted file mode 100755 index 8ba211662..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.output b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.output deleted file mode 100755 index b3dd11d35..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.output +++ /dev/null @@ -1,2 +0,0 @@ -"il brutto" -out of range diff --git a/resources/3rdparty/modernjson/doc/examples/at__size_type.cpp b/resources/3rdparty/modernjson/doc/examples/at__size_type.cpp deleted file mode 100755 index e31d61d35..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at__size_type.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON array - json array = {"first", "2nd", "third", "fourth"}; - - // output element at index 2 (third element) - std::cout << array.at(2) << '\n'; - - // change element at index 1 (second element) to "second" - array.at(1) = "second"; - - // output changed array - std::cout << array << '\n'; - - // try to write beyond the array limit - try - { - array.at(5) = "sixth"; - } - catch (std::out_of_range& e) - { - std::cout << "out of range: " << e.what() << '\n'; - } -} diff --git a/resources/3rdparty/modernjson/doc/examples/at__size_type.link b/resources/3rdparty/modernjson/doc/examples/at__size_type.link deleted file mode 100755 index 76a409c20..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at__size_type.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/at__size_type.output b/resources/3rdparty/modernjson/doc/examples/at__size_type.output deleted file mode 100755 index d1f68bdb8..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at__size_type.output +++ /dev/null @@ -1,3 +0,0 @@ -"third" -["first","second","third","fourth"] -out of range: array index 5 is out of range diff --git a/resources/3rdparty/modernjson/doc/examples/at__size_type_const.cpp b/resources/3rdparty/modernjson/doc/examples/at__size_type_const.cpp deleted file mode 100755 index a8a43ed8f..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at__size_type_const.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON array - json array = {"first", "2nd", "third", "fourth"}; - - // output element at index 2 (third element) - std::cout << array.at(2) << '\n'; - - // try to read beyond the array limit - try - { - std::cout << array.at(5) << '\n'; - } - catch (std::out_of_range) - { - std::cout << "out of range" << '\n'; - } -} diff --git a/resources/3rdparty/modernjson/doc/examples/at__size_type_const.link b/resources/3rdparty/modernjson/doc/examples/at__size_type_const.link deleted file mode 100755 index 5a1cdde95..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at__size_type_const.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/at__size_type_const.output b/resources/3rdparty/modernjson/doc/examples/at__size_type_const.output deleted file mode 100755 index d0b7a66a8..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at__size_type_const.output +++ /dev/null @@ -1,2 +0,0 @@ -"third" -out of range diff --git a/resources/3rdparty/modernjson/doc/examples/at_json_pointer.cpp b/resources/3rdparty/modernjson/doc/examples/at_json_pointer.cpp deleted file mode 100755 index 0665e608c..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at_json_pointer.cpp +++ /dev/null @@ -1,35 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON value - json j = - { - {"number", 1}, {"string", "foo"}, {"array", {1, 2}} - }; - - // read-only access - - // output element with JSON pointer "/number" - std::cout << j.at("/number"_json_pointer) << '\n'; - // output element with JSON pointer "/string" - std::cout << j.at("/string"_json_pointer) << '\n'; - // output element with JSON pointer "/array" - std::cout << j.at("/array"_json_pointer) << '\n'; - // output element with JSON pointer "/array/1" - std::cout << j.at("/array/1"_json_pointer) << '\n'; - - // writing access - - // change the string - j.at("/string"_json_pointer) = "bar"; - // output the changed string - std::cout << j["string"] << '\n'; - - // change an array element - j.at("/array/1"_json_pointer) = 21; - // output the changed array - std::cout << j["array"] << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/at_json_pointer.link b/resources/3rdparty/modernjson/doc/examples/at_json_pointer.link deleted file mode 100755 index 7a7efa268..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at_json_pointer.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/at_json_pointer.output b/resources/3rdparty/modernjson/doc/examples/at_json_pointer.output deleted file mode 100755 index 11913c723..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at_json_pointer.output +++ /dev/null @@ -1,6 +0,0 @@ -1 -"foo" -[1,2] -2 -"bar" -[1,21] diff --git a/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.cpp b/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.cpp deleted file mode 100755 index e3cfc5154..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON value - json j = - { - {"number", 1}, {"string", "foo"}, {"array", {1, 2}} - }; - - // read-only access - - // output element with JSON pointer "/number" - std::cout << j.at("/number"_json_pointer) << '\n'; - // output element with JSON pointer "/string" - std::cout << j.at("/string"_json_pointer) << '\n'; - // output element with JSON pointer "/array" - std::cout << j.at("/array"_json_pointer) << '\n'; - // output element with JSON pointer "/array/1" - std::cout << j.at("/array/1"_json_pointer) << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.link b/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.link deleted file mode 100755 index 9057e0b27..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.output b/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.output deleted file mode 100755 index 7b9306bbc..000000000 --- a/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.output +++ /dev/null @@ -1,4 +0,0 @@ -1 -"foo" -[1,2] -2 diff --git a/resources/3rdparty/modernjson/doc/examples/back.cpp b/resources/3rdparty/modernjson/doc/examples/back.cpp deleted file mode 100755 index 70516e588..000000000 --- a/resources/3rdparty/modernjson/doc/examples/back.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_object_empty(json::value_t::object); - json j_array = {1, 2, 4, 8, 16}; - json j_array_empty(json::value_t::array); - json j_string = "Hello, world"; - - // call back() - //std::cout << j_null.back() << '\n'; // would throw - std::cout << j_boolean.back() << '\n'; - std::cout << j_number_integer.back() << '\n'; - std::cout << j_number_float.back() << '\n'; - std::cout << j_object.back() << '\n'; - //std::cout << j_object_empty.back() << '\n'; // undefined behavior - std::cout << j_array.back() << '\n'; - //std::cout << j_array_empty.back() << '\n'; // undefined behavior - std::cout << j_string.back() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/back.link b/resources/3rdparty/modernjson/doc/examples/back.link deleted file mode 100755 index 49d008f5b..000000000 --- a/resources/3rdparty/modernjson/doc/examples/back.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/back.output b/resources/3rdparty/modernjson/doc/examples/back.output deleted file mode 100755 index 159ba0fc5..000000000 --- a/resources/3rdparty/modernjson/doc/examples/back.output +++ /dev/null @@ -1,6 +0,0 @@ -true -17 -23.42 -2 -16 -"Hello, world" diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json.cpp deleted file mode 100755 index 0f36e4f84..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON value with default null value - json j; - - // serialize the JSON null value - std::cout << j << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json.link b/resources/3rdparty/modernjson/doc/examples/basic_json.link deleted file mode 100755 index 1625c487a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json.output b/resources/3rdparty/modernjson/doc/examples/basic_json.output deleted file mode 100755 index 19765bd50..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json.output +++ /dev/null @@ -1 +0,0 @@ -null diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.cpp deleted file mode 100755 index bbbf5970c..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include -#include -#include -#include -#include -#include - -using json = nlohmann::json; - -int main() -{ - // create an array from std::vector - std::vector c_vector {1, 2, 3, 4}; - json j_vec(c_vector); - - // create an array from std::deque - std::deque c_deque {1.2, 2.3, 3.4, 5.6}; - json j_deque(c_deque); - - // create an array from std::list - std::list c_list {true, true, false, true}; - json j_list(c_list); - - // create an array from std::forward_list - std::forward_list c_flist {12345678909876, 23456789098765, 34567890987654, 45678909876543}; - json j_flist(c_flist); - - // create an array from std::array - std::array c_array {{1, 2, 3, 4}}; - json j_array(c_array); - - // create an array from std::set - std::set c_set {"one", "two", "three", "four", "one"}; - json j_set(c_set); // only one entry for "one" is used - - // create an array from std::unordered_set - std::unordered_set c_uset {"one", "two", "three", "four", "one"}; - json j_uset(c_uset); // only one entry for "one" is used - - // create an array from std::multiset - std::multiset c_mset {"one", "two", "one", "four"}; - json j_mset(c_mset); // only one entry for "one" is used - - // create an array from std::unordered_multiset - std::unordered_multiset c_umset {"one", "two", "one", "four"}; - json j_umset(c_umset); // both entries for "one" are used - - // serialize the JSON arrays - std::cout << j_vec << '\n'; - std::cout << j_deque << '\n'; - std::cout << j_list << '\n'; - std::cout << j_flist << '\n'; - std::cout << j_array << '\n'; - std::cout << j_set << '\n'; - std::cout << j_uset << '\n'; - std::cout << j_mset << '\n'; - std::cout << j_umset << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.link b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.link deleted file mode 100755 index 313ae3fed..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.output b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.output deleted file mode 100755 index 428505a17..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.output +++ /dev/null @@ -1,9 +0,0 @@ -[1,2,3,4] -[1.2,2.3,3.4,5.6] -[true,true,false,true] -[12345678909876,23456789098765,34567890987654,45678909876543] -[1,2,3,4] -["four","one","three","two"] -["four","three","two","one"] -["four","one","one","two"] -["four","two","one","one"] diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.cpp deleted file mode 100755 index 50e751d11..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create values of different integer types - short n42 = 42; - int n23 = 23; - long n1024 = 1024; - int_least32_t n17 = 17; - uint8_t n8 = 8; - - // create JSON numbers - json j42(n42); - json j23(n23); - json j1024(n1024); - json j17(n17); - json j8(n8); - - // serialize the JSON numbers - std::cout << j42 << '\n'; - std::cout << j23 << '\n'; - std::cout << j1024 << '\n'; - std::cout << j17 << '\n'; - std::cout << j8 << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.link b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.link deleted file mode 100755 index f994babb3..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.output b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.output deleted file mode 100755 index c7f24d63d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.output +++ /dev/null @@ -1,5 +0,0 @@ -42 -23 -1024 -17 -8 diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.cpp deleted file mode 100755 index 6f8d3f67a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create values of different floating-point types - float f42 = 42.23; - float f_nan = 1.0f / 0.0f; - double f23 = 23.42; - - // create JSON numbers - json j42(f42); - json j_nan(f_nan); - json j23(f23); - - // serialize the JSON numbers - std::cout << j42 << '\n'; - std::cout << j_nan << '\n'; - std::cout << j23 << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.link b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.link deleted file mode 100755 index 9e08b6a64..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.output b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.output deleted file mode 100755 index 64bb796c3..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.output +++ /dev/null @@ -1,3 +0,0 @@ -42.2299995422363 -null -23.42 diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.cpp deleted file mode 100755 index d284b697b..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include - -using json = nlohmann::json; - -int main() -{ - // create an object from std::map - std::map c_map - { - {"one", 1}, {"two", 2}, {"three", 3} - }; - json j_map(c_map); - - // create an object from std::unordered_map - std::unordered_map c_umap - { - {"one", 1.2}, {"two", 2.3}, {"three", 3.4} - }; - json j_umap(c_umap); - - // create an object from std::multimap - std::multimap c_mmap - { - {"one", true}, {"two", true}, {"three", false}, {"three", true} - }; - json j_mmap(c_mmap); // only one entry for key "three" is used - - // create an object from std::unordered_multimap - std::unordered_multimap c_ummap - { - {"one", true}, {"two", true}, {"three", false}, {"three", true} - }; - json j_ummap(c_ummap); // only one entry for key "three" is used - - // serialize the JSON objects - std::cout << j_map << '\n'; - std::cout << j_umap << '\n'; - std::cout << j_mmap << '\n'; - std::cout << j_ummap << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.link b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.link deleted file mode 100755 index 6d65b17a4..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.output b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.output deleted file mode 100755 index c70f71848..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.output +++ /dev/null @@ -1,4 +0,0 @@ -{"one":1,"three":3,"two":2} -{"one":1.2,"three":3.4,"two":2.3} -{"one":true,"three":false,"two":true} -{"one":true,"three":false,"two":true} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.cpp deleted file mode 100755 index a0f3b4f67..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a string value - std::string s = "The quick brown fox jumps over the lazy dog."; - - // create a JSON string value - json j = s; - - // serialize the JSON string - std::cout << j << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.link b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.link deleted file mode 100755 index 2131a163b..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.output b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.output deleted file mode 100755 index 1316dd98a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.output +++ /dev/null @@ -1 +0,0 @@ -"The quick brown fox jumps over the lazy dog." diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.cpp deleted file mode 100755 index 86a0faf8c..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_array = {"alpha", "bravo", "charly", "delta", "easy"}; - json j_number = 42; - json j_object = {{"one", "eins"}, {"two", "zwei"}}; - - // create copies using iterators - json j_array_range(j_array.begin() + 1, j_array.end() - 2); - json j_number_range(j_number.begin(), j_number.end()); - json j_object_range(j_object.begin(), j_object.find("two")); - - // serialize the values - std::cout << j_array_range << '\n'; - std::cout << j_number_range << '\n'; - std::cout << j_object_range << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.link b/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.link deleted file mode 100755 index 3ce3686ad..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.output b/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.output deleted file mode 100755 index 367142004..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.output +++ /dev/null @@ -1,3 +0,0 @@ -["bravo","charly"] -42 -{"one":"eins"} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.cpp deleted file mode 100755 index 1bb6931b2..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create an array_t value - json::array_t value = {"one", "two", 3, 4.5, false}; - - // create a JSON array from the value - json j(value); - - // serialize the JSON array - std::cout << j << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.link deleted file mode 100755 index 53322832d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.output deleted file mode 100755 index d379a756e..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.output +++ /dev/null @@ -1 +0,0 @@ -["one","two",3,4.5,false] diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.cpp deleted file mode 100755 index 28f1fd072..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON array - json j1 = {"one", "two", 3, 4.5, false}; - - // create a copy - json j2(j1); - - // serialize the JSON array - std::cout << j1 << " = " << j2 << '\n'; - std::cout << std::boolalpha << (j1 == j2) << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.link b/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.link deleted file mode 100755 index c3109d16e..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.output b/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.output deleted file mode 100755 index ee93a41ca..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.output +++ /dev/null @@ -1,2 +0,0 @@ -["one","two",3,4.5,false] = ["one","two",3,4.5,false] -true diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.cpp deleted file mode 100755 index 38f014e01..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create boolean values - json j_truth = true; - json j_falsity = false; - - // serialize the JSON booleans - std::cout << j_truth << '\n'; - std::cout << j_falsity << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.link deleted file mode 100755 index 9fe211e42..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.output deleted file mode 100755 index da29283aa..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.output +++ /dev/null @@ -1,2 +0,0 @@ -true -false diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.cpp deleted file mode 100755 index 7e38544bf..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // an anonymous enum - enum { t = 17 }; - - // create a JSON number from the enum - json j(t); - - // serialize the JSON numbers - std::cout << j << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.link b/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.link deleted file mode 100755 index 73d286286..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.output b/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.output deleted file mode 100755 index 98d9bcb75..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.output +++ /dev/null @@ -1 +0,0 @@ -17 diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.cpp deleted file mode 100755 index 9e9c2eccf..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json a = 23; - json b = 42; - - // copy-assign a to b - b = a; - - // serialize the JSON arrays - std::cout << a << '\n'; - std::cout << b << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.link b/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.link deleted file mode 100755 index 96679cf45..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.output b/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.output deleted file mode 100755 index c1eee2105..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.output +++ /dev/null @@ -1,2 +0,0 @@ -23 -23 diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__istream.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__istream.cpp deleted file mode 100755 index 71f16ed34..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__istream.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // a JSON text - auto text = R"( - { - "Image": { - "Width": 800, - "Height": 600, - "Title": "View from 15th Floor", - "Thumbnail": { - "Url": "http://www.example.com/image/481989943", - "Height": 125, - "Width": 100 - }, - "Animated" : false, - "IDs": [116, 943, 234, 38793] - } - } - )"; - - // fill a stream with JSON text - std::stringstream ss; - ss << text; - - // create JSON from stream - json j_complete(ss); - std::cout << std::setw(4) << j_complete << "\n\n"; - - - // define parser callback - json::parser_callback_t cb = [](int depth, json::parse_event_t event, json & parsed) - { - // skip object elements with key "Thumbnail" - if (event == json::parse_event_t::key and parsed == json("Thumbnail")) - { - return false; - } - else - { - return true; - } - }; - - // fill a stream with JSON text - ss.clear(); - ss << text; - - // create JSON from stream (with callback) - json j_filtered(ss, cb); - std::cout << std::setw(4) << j_filtered << '\n'; -} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__istream.link b/resources/3rdparty/modernjson/doc/examples/basic_json__istream.link deleted file mode 100755 index 20d1033c3..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__istream.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__istream.output b/resources/3rdparty/modernjson/doc/examples/basic_json__istream.output deleted file mode 100755 index 279a7ff74..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__istream.output +++ /dev/null @@ -1,34 +0,0 @@ -{ - "Image": { - "Animated": false, - "Height": 600, - "IDs": [ - 116, - 943, - 234, - 38793 - ], - "Thumbnail": { - "Height": 125, - "Url": "http://www.example.com/image/481989943", - "Width": 100 - }, - "Title": "View from 15th Floor", - "Width": 800 - } -} - -{ - "Image": { - "Animated": false, - "Height": 600, - "IDs": [ - 116, - 943, - 234, - 38793 - ], - "Title": "View from 15th Floor", - "Width": 800 - } -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.cpp deleted file mode 100755 index 8734dff15..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_empty_init_list = json({}); - json j_object = { {"one", 1}, {"two", 2} }; - json j_array = {1, 2, 3, 4}; - json j_nested_object = { {"one", {1}}, {"two", {1, 2}} }; - json j_nested_array = { {{1}, "one"}, {{1, 2}, "two"} }; - - // serialize the JSON value - std::cout << j_empty_init_list << '\n'; - std::cout << j_object << '\n'; - std::cout << j_array << '\n'; - std::cout << j_nested_object << '\n'; - std::cout << j_nested_array << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.link deleted file mode 100755 index 5eca20502..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.output deleted file mode 100755 index d38f5b842..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.output +++ /dev/null @@ -1,5 +0,0 @@ -{} -{"one":1,"two":2} -[1,2,3,4] -{"one":[1],"two":[1,2]} -[[[1],"one"],[[1,2],"two"]] diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.cpp deleted file mode 100755 index e470c95b1..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON value - json a = 23; - - // move contents of a to b - json b(std::move(a)); - - // serialize the JSON arrays - std::cout << a << '\n'; - std::cout << b << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.link b/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.link deleted file mode 100755 index 88002bbd8..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.output b/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.output deleted file mode 100755 index 911b5b1ac..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.output +++ /dev/null @@ -1,2 +0,0 @@ -null -23 diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.cpp deleted file mode 100755 index 426afabc6..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON null value - json j(nullptr); - - // serialize the JSON null value - std::cout << j << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.link deleted file mode 100755 index bb26af46d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.output deleted file mode 100755 index 19765bd50..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.output +++ /dev/null @@ -1 +0,0 @@ -null diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.cpp deleted file mode 100755 index 92533b7d0..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create values of different floating-point types - json::number_float_t v_ok = 3.141592653589793; - json::number_float_t v_nan = NAN; - json::number_float_t v_infinity = INFINITY; - - // create JSON numbers - json j_ok(v_ok); - json j_nan(v_nan); - json j_infinity(v_infinity); - - // serialize the JSON numbers - std::cout << j_ok << '\n'; - std::cout << j_nan << '\n'; - std::cout << j_infinity << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.link deleted file mode 100755 index a7c6b6074..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.output deleted file mode 100755 index 964a7b1f2..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.output +++ /dev/null @@ -1,3 +0,0 @@ -3.14159265358979 -null -null diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.cpp deleted file mode 100755 index 1078f360e..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON number from number_integer_t - json::number_integer_t value = 42; - - json j(value); - - // serialize the JSON numbers - std::cout << j << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.link deleted file mode 100755 index 764aa649d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.output deleted file mode 100755 index d81cc0710..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.output +++ /dev/null @@ -1 +0,0 @@ -42 diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.cpp deleted file mode 100755 index 39e2fcc0c..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create an object_t value - json::object_t value = { {"one", 1}, {"two", 2} }; - - // create a JSON object from the value - json j(value); - - // serialize the JSON object - std::cout << j << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.link deleted file mode 100755 index f6bad665a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.output deleted file mode 100755 index 62376d83e..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.output +++ /dev/null @@ -1 +0,0 @@ -{"one":1,"two":2} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.cpp deleted file mode 100755 index 15f8c0d5c..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create an array by creating copies of a JSON value - json value = "Hello"; - json array_0 = json(0, value); - json array_1 = json(1, value); - json array_5 = json(5, value); - - // serialize the JSON arrays - std::cout << array_0 << '\n'; - std::cout << array_1 << '\n'; - std::cout << array_5 << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.link b/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.link deleted file mode 100755 index 6ae76b6f2..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.output b/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.output deleted file mode 100755 index f4c59b348..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.output +++ /dev/null @@ -1,3 +0,0 @@ -[] -["Hello"] -["Hello","Hello","Hello","Hello","Hello"] diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.cpp deleted file mode 100755 index 3205f623d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create an string_t value - json::string_t value = "The quick brown fox jumps over the lazy doc"; - - // create a JSON string from the value - json j(value); - - // serialize the JSON array - std::cout << j << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.link deleted file mode 100755 index a5051e582..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.output deleted file mode 100755 index 89990044c..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.output +++ /dev/null @@ -1 +0,0 @@ -"The quick brown fox jumps over the lazy doc" diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.cpp deleted file mode 100755 index 5379ca064..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON string directly from a string literal - json j("The quick brown fox jumps over the lazy doc"); - - // serialize the JSON array - std::cout << j << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.link b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.link deleted file mode 100755 index 4646b5b2a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.output b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.output deleted file mode 100755 index 89990044c..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.output +++ /dev/null @@ -1 +0,0 @@ -"The quick brown fox jumps over the lazy doc" diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__value.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__value.cpp deleted file mode 100755 index dfb91d840..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__value.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON object with different entry types - json j = - { - {"integer", 1}, - {"floating", 42.23}, - {"string", "hello world"}, - {"boolean", true}, - {"object", {{"key1", 1}, {"key2", 2}}}, - {"array", {1, 2, 3}} - }; - - // access existing values - int v_integer = j.value("integer", 0); - double v_floating = j.value("floating", 47.11); - - // access nonexisting values and rely on default value - std::string v_string = j.value("nonexisting", "oops"); - bool v_boolean = j.value("nonexisting", false); - - // output values - std::cout << std::boolalpha << v_integer << " " << v_floating - << " " << v_string << " " << v_boolean << "\n"; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__value.link b/resources/3rdparty/modernjson/doc/examples/basic_json__value.link deleted file mode 100755 index 452a1fe4f..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__value.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__value.output b/resources/3rdparty/modernjson/doc/examples/basic_json__value.output deleted file mode 100755 index dfc40e58c..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__value.output +++ /dev/null @@ -1 +0,0 @@ -1 42.23 oops false diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.cpp deleted file mode 100755 index faf5dfaec..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create the different JSON values with default values - json j_null(json::value_t::null); - json j_boolean(json::value_t::boolean); - json j_number_integer(json::value_t::number_integer); - json j_number_float(json::value_t::number_float); - json j_object(json::value_t::object); - json j_array(json::value_t::array); - json j_string(json::value_t::string); - - // serialize the JSON values - std::cout << j_null << '\n'; - std::cout << j_boolean << '\n'; - std::cout << j_number_integer << '\n'; - std::cout << j_number_float << '\n'; - std::cout << j_object << '\n'; - std::cout << j_array << '\n'; - std::cout << j_string << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.link deleted file mode 100755 index 774aaa255..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.output deleted file mode 100755 index ea542caeb..000000000 --- a/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.output +++ /dev/null @@ -1,7 +0,0 @@ -null -false -0 -0.0 -{} -[] -"" diff --git a/resources/3rdparty/modernjson/doc/examples/begin.cpp b/resources/3rdparty/modernjson/doc/examples/begin.cpp deleted file mode 100755 index 46c17218d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/begin.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create an array value - json array = {1, 2, 3, 4, 5}; - - // get am iterator to the first element - json::iterator it = array.begin(); - - // serialize the element that the iterator points to - std::cout << *it << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/begin.link b/resources/3rdparty/modernjson/doc/examples/begin.link deleted file mode 100755 index 6a76a5887..000000000 --- a/resources/3rdparty/modernjson/doc/examples/begin.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/begin.output b/resources/3rdparty/modernjson/doc/examples/begin.output deleted file mode 100755 index d00491fd7..000000000 --- a/resources/3rdparty/modernjson/doc/examples/begin.output +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/resources/3rdparty/modernjson/doc/examples/cbegin.cpp b/resources/3rdparty/modernjson/doc/examples/cbegin.cpp deleted file mode 100755 index fe45e49b0..000000000 --- a/resources/3rdparty/modernjson/doc/examples/cbegin.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create an array value - const json array = {1, 2, 3, 4, 5}; - - // get am iterator to the first element - json::const_iterator it = array.cbegin(); - - // serialize the element that the iterator points to - std::cout << *it << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/cbegin.link b/resources/3rdparty/modernjson/doc/examples/cbegin.link deleted file mode 100755 index 83c75dd3c..000000000 --- a/resources/3rdparty/modernjson/doc/examples/cbegin.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/cbegin.output b/resources/3rdparty/modernjson/doc/examples/cbegin.output deleted file mode 100755 index d00491fd7..000000000 --- a/resources/3rdparty/modernjson/doc/examples/cbegin.output +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/resources/3rdparty/modernjson/doc/examples/cend.cpp b/resources/3rdparty/modernjson/doc/examples/cend.cpp deleted file mode 100755 index a140fb0b5..000000000 --- a/resources/3rdparty/modernjson/doc/examples/cend.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create an array value - json array = {1, 2, 3, 4, 5}; - - // get am iterator to one past the last element - json::const_iterator it = array.cend(); - - // decrement the iterator to point to the last element - --it; - - // serialize the element that the iterator points to - std::cout << *it << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/cend.link b/resources/3rdparty/modernjson/doc/examples/cend.link deleted file mode 100755 index acca215d2..000000000 --- a/resources/3rdparty/modernjson/doc/examples/cend.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/cend.output b/resources/3rdparty/modernjson/doc/examples/cend.output deleted file mode 100755 index 7ed6ff82d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/cend.output +++ /dev/null @@ -1 +0,0 @@ -5 diff --git a/resources/3rdparty/modernjson/doc/examples/clear.cpp b/resources/3rdparty/modernjson/doc/examples/clear.cpp deleted file mode 100755 index 60016753b..000000000 --- a/resources/3rdparty/modernjson/doc/examples/clear.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call clear() - j_null.clear(); - j_boolean.clear(); - j_number_integer.clear(); - j_number_float.clear(); - j_object.clear(); - j_array.clear(); - j_string.clear(); - - // serialize the cleared values() - std::cout << j_null << '\n'; - std::cout << j_boolean << '\n'; - std::cout << j_number_integer << '\n'; - std::cout << j_number_float << '\n'; - std::cout << j_object << '\n'; - std::cout << j_array << '\n'; - std::cout << j_string << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/clear.link b/resources/3rdparty/modernjson/doc/examples/clear.link deleted file mode 100755 index 8defa668d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/clear.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/clear.output b/resources/3rdparty/modernjson/doc/examples/clear.output deleted file mode 100755 index ea542caeb..000000000 --- a/resources/3rdparty/modernjson/doc/examples/clear.output +++ /dev/null @@ -1,7 +0,0 @@ -null -false -0 -0.0 -{} -[] -"" diff --git a/resources/3rdparty/modernjson/doc/examples/count.cpp b/resources/3rdparty/modernjson/doc/examples/count.cpp deleted file mode 100755 index a805eeb6a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/count.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON object - json j_object = {{"one", 1}, {"two", 2}}; - - // call find - auto count_two = j_object.count("two"); - auto count_three = j_object.count("three"); - - // print values - std::cout << std::boolalpha; - std::cout << "number of elements with key \"two\": " << count_two << '\n'; - std::cout << "number of elements with key \"three\": " << count_three << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/count.link b/resources/3rdparty/modernjson/doc/examples/count.link deleted file mode 100755 index e13caf363..000000000 --- a/resources/3rdparty/modernjson/doc/examples/count.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/count.output b/resources/3rdparty/modernjson/doc/examples/count.output deleted file mode 100755 index d816fcb24..000000000 --- a/resources/3rdparty/modernjson/doc/examples/count.output +++ /dev/null @@ -1,2 +0,0 @@ -number of elements with key "two": 1 -number of elements with key "three": 0 diff --git a/resources/3rdparty/modernjson/doc/examples/crbegin.cpp b/resources/3rdparty/modernjson/doc/examples/crbegin.cpp deleted file mode 100755 index 4ea71d973..000000000 --- a/resources/3rdparty/modernjson/doc/examples/crbegin.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create an array value - json array = {1, 2, 3, 4, 5}; - - // get an iterator to the reverse-beginning - json::const_reverse_iterator it = array.crbegin(); - - // serialize the element that the iterator points to - std::cout << *it << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/crbegin.link b/resources/3rdparty/modernjson/doc/examples/crbegin.link deleted file mode 100755 index 27de8eb89..000000000 --- a/resources/3rdparty/modernjson/doc/examples/crbegin.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/crbegin.output b/resources/3rdparty/modernjson/doc/examples/crbegin.output deleted file mode 100755 index 7ed6ff82d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/crbegin.output +++ /dev/null @@ -1 +0,0 @@ -5 diff --git a/resources/3rdparty/modernjson/doc/examples/crend.cpp b/resources/3rdparty/modernjson/doc/examples/crend.cpp deleted file mode 100755 index 079eeea6c..000000000 --- a/resources/3rdparty/modernjson/doc/examples/crend.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create an array value - json array = {1, 2, 3, 4, 5}; - - // get an iterator to the reverse-end - json::const_reverse_iterator it = array.crend(); - - // increment the iterator to point to the first element - --it; - - // serialize the element that the iterator points to - std::cout << *it << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/crend.link b/resources/3rdparty/modernjson/doc/examples/crend.link deleted file mode 100755 index c678236d9..000000000 --- a/resources/3rdparty/modernjson/doc/examples/crend.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/crend.output b/resources/3rdparty/modernjson/doc/examples/crend.output deleted file mode 100755 index d00491fd7..000000000 --- a/resources/3rdparty/modernjson/doc/examples/crend.output +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/resources/3rdparty/modernjson/doc/examples/diff.cpp b/resources/3rdparty/modernjson/doc/examples/diff.cpp deleted file mode 100755 index d81a58dbd..000000000 --- a/resources/3rdparty/modernjson/doc/examples/diff.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // the source document - json source = R"( - { - "baz": "qux", - "foo": "bar" - } - )"_json; - - // the target document - json target = R"( - { - "baz": "boo", - "hello": [ - "world" - ] - } - )"_json; - - // create the patch - json patch = json::diff(source, target); - - // roundtrip - json patched_source = source.patch(patch); - - // output patch and roundtrip result - std::cout << std::setw(4) << patch << "\n\n" - << std::setw(4) << patched_source << std::endl; -} diff --git a/resources/3rdparty/modernjson/doc/examples/diff.link b/resources/3rdparty/modernjson/doc/examples/diff.link deleted file mode 100755 index c3e3fa4d7..000000000 --- a/resources/3rdparty/modernjson/doc/examples/diff.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/diff.output b/resources/3rdparty/modernjson/doc/examples/diff.output deleted file mode 100755 index 7dc79791f..000000000 --- a/resources/3rdparty/modernjson/doc/examples/diff.output +++ /dev/null @@ -1,25 +0,0 @@ -[ - { - "op": "replace", - "path": "/baz", - "value": "boo" - }, - { - "op": "remove", - "path": "/foo" - }, - { - "op": "add", - "path": "/hello", - "value": [ - "world" - ] - } -] - -{ - "baz": "boo", - "hello": [ - "world" - ] -} diff --git a/resources/3rdparty/modernjson/doc/examples/dump.cpp b/resources/3rdparty/modernjson/doc/examples/dump.cpp deleted file mode 100755 index 3145d4539..000000000 --- a/resources/3rdparty/modernjson/doc/examples/dump.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - - // call dump() - std::cout << j_object.dump() << "\n\n"; - std::cout << j_object.dump(-1) << "\n\n"; - std::cout << j_object.dump(0) << "\n\n"; - std::cout << j_object.dump(4) << "\n\n"; - std::cout << j_array.dump() << "\n\n"; - std::cout << j_array.dump(-1) << "\n\n"; - std::cout << j_array.dump(0) << "\n\n"; - std::cout << j_array.dump(4) << "\n\n"; -} diff --git a/resources/3rdparty/modernjson/doc/examples/dump.link b/resources/3rdparty/modernjson/doc/examples/dump.link deleted file mode 100755 index 35ef46533..000000000 --- a/resources/3rdparty/modernjson/doc/examples/dump.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/dump.output b/resources/3rdparty/modernjson/doc/examples/dump.output deleted file mode 100755 index 9b462eabe..000000000 --- a/resources/3rdparty/modernjson/doc/examples/dump.output +++ /dev/null @@ -1,34 +0,0 @@ -{"one":1,"two":2} - -{"one":1,"two":2} - -{ -"one": 1, -"two": 2 -} - -{ - "one": 1, - "two": 2 -} - -[1,2,4,8,16] - -[1,2,4,8,16] - -[ -1, -2, -4, -8, -16 -] - -[ - 1, - 2, - 4, - 8, - 16 -] - diff --git a/resources/3rdparty/modernjson/doc/examples/empty.cpp b/resources/3rdparty/modernjson/doc/examples/empty.cpp deleted file mode 100755 index 2edda6dc9..000000000 --- a/resources/3rdparty/modernjson/doc/examples/empty.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_object_empty(json::value_t::object); - json j_array = {1, 2, 4, 8, 16}; - json j_array_empty(json::value_t::array); - json j_string = "Hello, world"; - - // call empty() - std::cout << std::boolalpha; - std::cout << j_null.empty() << '\n'; - std::cout << j_boolean.empty() << '\n'; - std::cout << j_number_integer.empty() << '\n'; - std::cout << j_number_float.empty() << '\n'; - std::cout << j_object.empty() << '\n'; - std::cout << j_object_empty.empty() << '\n'; - std::cout << j_array.empty() << '\n'; - std::cout << j_array_empty.empty() << '\n'; - std::cout << j_string.empty() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/empty.link b/resources/3rdparty/modernjson/doc/examples/empty.link deleted file mode 100755 index fd22770cf..000000000 --- a/resources/3rdparty/modernjson/doc/examples/empty.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/empty.output b/resources/3rdparty/modernjson/doc/examples/empty.output deleted file mode 100755 index d071a3980..000000000 --- a/resources/3rdparty/modernjson/doc/examples/empty.output +++ /dev/null @@ -1,9 +0,0 @@ -true -false -false -false -false -true -false -true -false diff --git a/resources/3rdparty/modernjson/doc/examples/end.cpp b/resources/3rdparty/modernjson/doc/examples/end.cpp deleted file mode 100755 index 848623a4d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/end.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create an array value - json array = {1, 2, 3, 4, 5}; - - // get am iterator to one past the last element - json::iterator it = array.end(); - - // decrement the iterator to point to the last element - --it; - - // serialize the element that the iterator points to - std::cout << *it << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/end.link b/resources/3rdparty/modernjson/doc/examples/end.link deleted file mode 100755 index 260696d5a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/end.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/end.output b/resources/3rdparty/modernjson/doc/examples/end.output deleted file mode 100755 index 7ed6ff82d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/end.output +++ /dev/null @@ -1 +0,0 @@ -5 diff --git a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.cpp b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.cpp deleted file mode 100755 index 5743c3274..000000000 --- a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_boolean = true; - json j_number_integer = 17; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call erase - j_boolean.erase(j_boolean.begin()); - j_number_integer.erase(j_number_integer.begin()); - j_number_float.erase(j_number_float.begin()); - j_object.erase(j_object.find("two")); - j_array.erase(j_array.begin() + 2); - j_string.erase(j_string.begin()); - - // print values - std::cout << j_boolean << '\n'; - std::cout << j_number_integer << '\n'; - std::cout << j_number_float << '\n'; - std::cout << j_object << '\n'; - std::cout << j_array << '\n'; - std::cout << j_string << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.link b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.link deleted file mode 100755 index b523066ed..000000000 --- a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.output b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.output deleted file mode 100755 index e392f8eaf..000000000 --- a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.output +++ /dev/null @@ -1,6 +0,0 @@ -null -null -null -{"one":1} -[1,2,8,16] -null diff --git a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.cpp b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.cpp deleted file mode 100755 index 9250c3ca0..000000000 --- a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_boolean = true; - json j_number_integer = 17; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call erase - j_boolean.erase(j_boolean.begin(), j_boolean.end()); - j_number_integer.erase(j_number_integer.begin(), j_number_integer.end()); - j_number_float.erase(j_number_float.begin(), j_number_float.end()); - j_object.erase(j_object.find("two"), j_object.end()); - j_array.erase(j_array.begin() + 1, j_array.begin() + 3); - j_string.erase(j_string.begin(), j_string.end()); - - // print values - std::cout << j_boolean << '\n'; - std::cout << j_number_integer << '\n'; - std::cout << j_number_float << '\n'; - std::cout << j_object << '\n'; - std::cout << j_array << '\n'; - std::cout << j_string << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.link b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.link deleted file mode 100755 index b7f3da724..000000000 --- a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.output b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.output deleted file mode 100755 index 5d01f0089..000000000 --- a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.output +++ /dev/null @@ -1,6 +0,0 @@ -null -null -null -{"one":1} -[1,8,16] -null diff --git a/resources/3rdparty/modernjson/doc/examples/erase__key_type.cpp b/resources/3rdparty/modernjson/doc/examples/erase__key_type.cpp deleted file mode 100755 index ca0962aaa..000000000 --- a/resources/3rdparty/modernjson/doc/examples/erase__key_type.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON object - json j_object = {{"one", 1}, {"two", 2}}; - - // call erase - auto count_one = j_object.erase("one"); - auto count_three = j_object.erase("three"); - - // print values - std::cout << j_object << '\n'; - std::cout << count_one << " " << count_three << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/erase__key_type.link b/resources/3rdparty/modernjson/doc/examples/erase__key_type.link deleted file mode 100755 index bef018cab..000000000 --- a/resources/3rdparty/modernjson/doc/examples/erase__key_type.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/erase__key_type.output b/resources/3rdparty/modernjson/doc/examples/erase__key_type.output deleted file mode 100755 index 28d79391a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/erase__key_type.output +++ /dev/null @@ -1,2 +0,0 @@ -{"two":2} -1 0 diff --git a/resources/3rdparty/modernjson/doc/examples/erase__size_type.cpp b/resources/3rdparty/modernjson/doc/examples/erase__size_type.cpp deleted file mode 100755 index 7df3d0625..000000000 --- a/resources/3rdparty/modernjson/doc/examples/erase__size_type.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON array - json j_array = {0, 1, 2, 3, 4, 5}; - - // call erase - j_array.erase(2); - - // print values - std::cout << j_array << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/erase__size_type.link b/resources/3rdparty/modernjson/doc/examples/erase__size_type.link deleted file mode 100755 index fe2d560d5..000000000 --- a/resources/3rdparty/modernjson/doc/examples/erase__size_type.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/erase__size_type.output b/resources/3rdparty/modernjson/doc/examples/erase__size_type.output deleted file mode 100755 index 4ad74061f..000000000 --- a/resources/3rdparty/modernjson/doc/examples/erase__size_type.output +++ /dev/null @@ -1 +0,0 @@ -[0,1,3,4,5] diff --git a/resources/3rdparty/modernjson/doc/examples/find__key_type.cpp b/resources/3rdparty/modernjson/doc/examples/find__key_type.cpp deleted file mode 100755 index 79eed509a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/find__key_type.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON object - json j_object = {{"one", 1}, {"two", 2}}; - - // call find - auto it_two = j_object.find("two"); - auto it_three = j_object.find("three"); - - // print values - std::cout << std::boolalpha; - std::cout << "\"two\" was found: " << (it_two != j_object.end()) << '\n'; - std::cout << "value at key \"two\": " << *it_two << '\n'; - std::cout << "\"three\" was found: " << (it_three != j_object.end()) << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/find__key_type.link b/resources/3rdparty/modernjson/doc/examples/find__key_type.link deleted file mode 100755 index 2bc0512d1..000000000 --- a/resources/3rdparty/modernjson/doc/examples/find__key_type.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/find__key_type.output b/resources/3rdparty/modernjson/doc/examples/find__key_type.output deleted file mode 100755 index 509bb42d5..000000000 --- a/resources/3rdparty/modernjson/doc/examples/find__key_type.output +++ /dev/null @@ -1,3 +0,0 @@ -"two" was found: true -value at key "two": 2 -"three" was found: false diff --git a/resources/3rdparty/modernjson/doc/examples/flatten.cpp b/resources/3rdparty/modernjson/doc/examples/flatten.cpp deleted file mode 100755 index ace53a21b..000000000 --- a/resources/3rdparty/modernjson/doc/examples/flatten.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON value - json j = - { - {"pi", 3.141}, - {"happy", true}, - {"name", "Niels"}, - {"nothing", nullptr}, - { - "answer", { - {"everything", 42} - } - }, - {"list", {1, 0, 2}}, - { - "object", { - {"currency", "USD"}, - {"value", 42.99} - } - } - }; - - // call flatten() - std::cout << std::setw(4) << j.flatten() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/flatten.link b/resources/3rdparty/modernjson/doc/examples/flatten.link deleted file mode 100755 index 50d3841f3..000000000 --- a/resources/3rdparty/modernjson/doc/examples/flatten.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/flatten.output b/resources/3rdparty/modernjson/doc/examples/flatten.output deleted file mode 100755 index 33bd4c4b9..000000000 --- a/resources/3rdparty/modernjson/doc/examples/flatten.output +++ /dev/null @@ -1,12 +0,0 @@ -{ - "/answer/everything": 42, - "/happy": true, - "/list/0": 1, - "/list/1": 0, - "/list/2": 2, - "/name": "Niels", - "/nothing": null, - "/object/currency": "USD", - "/object/value": 42.99, - "/pi": 3.141 -} diff --git a/resources/3rdparty/modernjson/doc/examples/front.cpp b/resources/3rdparty/modernjson/doc/examples/front.cpp deleted file mode 100755 index 7c5a2ae99..000000000 --- a/resources/3rdparty/modernjson/doc/examples/front.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_object_empty(json::value_t::object); - json j_array = {1, 2, 4, 8, 16}; - json j_array_empty(json::value_t::array); - json j_string = "Hello, world"; - - // call front() - //std::cout << j_null.front() << '\n'; // would throw - std::cout << j_boolean.front() << '\n'; - std::cout << j_number_integer.front() << '\n'; - std::cout << j_number_float.front() << '\n'; - std::cout << j_object.front() << '\n'; - //std::cout << j_object_empty.front() << '\n'; // undefined behavior - std::cout << j_array.front() << '\n'; - //std::cout << j_array_empty.front() << '\n'; // undefined behavior - std::cout << j_string.front() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/front.link b/resources/3rdparty/modernjson/doc/examples/front.link deleted file mode 100755 index 22e99c7dd..000000000 --- a/resources/3rdparty/modernjson/doc/examples/front.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/front.output b/resources/3rdparty/modernjson/doc/examples/front.output deleted file mode 100755 index 6301db533..000000000 --- a/resources/3rdparty/modernjson/doc/examples/front.output +++ /dev/null @@ -1,6 +0,0 @@ -true -17 -23.42 -1 -1 -"Hello, world" diff --git a/resources/3rdparty/modernjson/doc/examples/get__PointerType.cpp b/resources/3rdparty/modernjson/doc/examples/get__PointerType.cpp deleted file mode 100755 index 7c15c5aa3..000000000 --- a/resources/3rdparty/modernjson/doc/examples/get__PointerType.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON number - json value = 17; - - // explicitly getting pointers - auto p1 = value.get(); - auto p2 = value.get(); - auto p3 = value.get(); - auto p4 = value.get(); - auto p5 = value.get(); - - // print the pointees - std::cout << *p1 << ' ' << *p2 << ' ' << *p3 << ' ' << *p4 << '\n'; - std::cout << std::boolalpha << (p5 == nullptr) << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/get__PointerType.link b/resources/3rdparty/modernjson/doc/examples/get__PointerType.link deleted file mode 100755 index a811b26df..000000000 --- a/resources/3rdparty/modernjson/doc/examples/get__PointerType.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/get__PointerType.output b/resources/3rdparty/modernjson/doc/examples/get__PointerType.output deleted file mode 100755 index a15dd774e..000000000 --- a/resources/3rdparty/modernjson/doc/examples/get__PointerType.output +++ /dev/null @@ -1,2 +0,0 @@ -17 17 17 17 -true diff --git a/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.cpp b/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.cpp deleted file mode 100755 index 40a96184b..000000000 --- a/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.cpp +++ /dev/null @@ -1,49 +0,0 @@ -#include -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON value with different types - json json_types = - { - {"boolean", true}, - { - "number", { - {"integer", 42}, - {"floating-point", 17.23} - } - }, - {"string", "Hello, world!"}, - {"array", {1, 2, 3, 4, 5}}, - {"null", nullptr} - }; - - // use explicit conversions - auto v1 = json_types["boolean"].get(); - auto v2 = json_types["number"]["integer"].get(); - auto v3 = json_types["number"]["integer"].get(); - auto v4 = json_types["number"]["floating-point"].get(); - auto v5 = json_types["number"]["floating-point"].get(); - auto v6 = json_types["string"].get(); - auto v7 = json_types["array"].get>(); - auto v8 = json_types.get>(); - - // print the conversion results - std::cout << v1 << '\n'; - std::cout << v2 << ' ' << v3 << '\n'; - std::cout << v4 << ' ' << v5 << '\n'; - std::cout << v6 << '\n'; - - for (auto i : v7) - { - std::cout << i << ' '; - } - std::cout << "\n\n"; - - for (auto i : v8) - { - std::cout << i.first << ": " << i.second << '\n'; - } -} diff --git a/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.link b/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.link deleted file mode 100755 index fce774b2b..000000000 --- a/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.output b/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.output deleted file mode 100755 index 5cd9cd3aa..000000000 --- a/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.output +++ /dev/null @@ -1,11 +0,0 @@ -1 -42 42 -17.23 17 -Hello, world! -1 2 3 4 5 - -string: "Hello, world!" -number: {"floating-point":17.23,"integer":42} -null: null -boolean: true -array: [1,2,3,4,5] diff --git a/resources/3rdparty/modernjson/doc/examples/get_ptr.cpp b/resources/3rdparty/modernjson/doc/examples/get_ptr.cpp deleted file mode 100755 index 2c319dc40..000000000 --- a/resources/3rdparty/modernjson/doc/examples/get_ptr.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON number - json value = 17; - - // explicitly getting pointers - auto p1 = value.get_ptr(); - auto p2 = value.get_ptr(); - auto p3 = value.get_ptr(); - auto p4 = value.get_ptr(); - auto p5 = value.get_ptr(); - - // print the pointees - std::cout << *p1 << ' ' << *p2 << ' ' << *p3 << ' ' << *p4 << '\n'; - std::cout << std::boolalpha << (p5 == nullptr) << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/get_ptr.link b/resources/3rdparty/modernjson/doc/examples/get_ptr.link deleted file mode 100755 index e318d7780..000000000 --- a/resources/3rdparty/modernjson/doc/examples/get_ptr.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/get_ptr.output b/resources/3rdparty/modernjson/doc/examples/get_ptr.output deleted file mode 100755 index a15dd774e..000000000 --- a/resources/3rdparty/modernjson/doc/examples/get_ptr.output +++ /dev/null @@ -1,2 +0,0 @@ -17 17 17 17 -true diff --git a/resources/3rdparty/modernjson/doc/examples/get_ref.cpp b/resources/3rdparty/modernjson/doc/examples/get_ref.cpp deleted file mode 100755 index d0ddb2d27..000000000 --- a/resources/3rdparty/modernjson/doc/examples/get_ref.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON number - json value = 17; - - // explicitly getting references - auto r1 = value.get_ref(); - auto r2 = value.get_ref(); - - // print the values - std::cout << r1 << ' ' << r2 << '\n'; - - // incompatible type throws exception - try - { - auto r3 = value.get_ref(); - } - catch (std::domain_error& ex) - { - std::cout << ex.what() << '\n'; - } -} diff --git a/resources/3rdparty/modernjson/doc/examples/get_ref.link b/resources/3rdparty/modernjson/doc/examples/get_ref.link deleted file mode 100755 index c0d8275a3..000000000 --- a/resources/3rdparty/modernjson/doc/examples/get_ref.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/get_ref.output b/resources/3rdparty/modernjson/doc/examples/get_ref.output deleted file mode 100755 index 50bc0df69..000000000 --- a/resources/3rdparty/modernjson/doc/examples/get_ref.output +++ /dev/null @@ -1,2 +0,0 @@ -17 17 -incompatible ReferenceType for get_ref, actual type is number diff --git a/resources/3rdparty/modernjson/doc/examples/insert.cpp b/resources/3rdparty/modernjson/doc/examples/insert.cpp deleted file mode 100755 index 967f443ef..000000000 --- a/resources/3rdparty/modernjson/doc/examples/insert.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON array - json v = {1, 2, 3, 4}; - - // insert number 10 before number 3 - auto new_pos = v.insert(v.begin() + 2, 10); - - // output new array and result of insert call - std::cout << *new_pos << '\n'; - std::cout << v << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/insert.link b/resources/3rdparty/modernjson/doc/examples/insert.link deleted file mode 100755 index 3886e04d5..000000000 --- a/resources/3rdparty/modernjson/doc/examples/insert.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/insert.output b/resources/3rdparty/modernjson/doc/examples/insert.output deleted file mode 100755 index ed5cab1d0..000000000 --- a/resources/3rdparty/modernjson/doc/examples/insert.output +++ /dev/null @@ -1,2 +0,0 @@ -10 -[1,2,10,3,4] diff --git a/resources/3rdparty/modernjson/doc/examples/insert__count.cpp b/resources/3rdparty/modernjson/doc/examples/insert__count.cpp deleted file mode 100755 index 258515e68..000000000 --- a/resources/3rdparty/modernjson/doc/examples/insert__count.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON array - json v = {1, 2, 3, 4}; - - // insert number 7 copies of number 7 before number 3 - auto new_pos = v.insert(v.begin() + 2, 7, 7); - - // output new array and result of insert call - std::cout << *new_pos << '\n'; - std::cout << v << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/insert__count.link b/resources/3rdparty/modernjson/doc/examples/insert__count.link deleted file mode 100755 index b97d0d69f..000000000 --- a/resources/3rdparty/modernjson/doc/examples/insert__count.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/insert__count.output b/resources/3rdparty/modernjson/doc/examples/insert__count.output deleted file mode 100755 index 294685ac4..000000000 --- a/resources/3rdparty/modernjson/doc/examples/insert__count.output +++ /dev/null @@ -1,2 +0,0 @@ -7 -[1,2,7,7,7,7,7,7,7,3,4] diff --git a/resources/3rdparty/modernjson/doc/examples/insert__ilist.cpp b/resources/3rdparty/modernjson/doc/examples/insert__ilist.cpp deleted file mode 100755 index c0138d2a0..000000000 --- a/resources/3rdparty/modernjson/doc/examples/insert__ilist.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON array - json v = {1, 2, 3, 4}; - - // insert range from v2 before the end of array v - auto new_pos = v.insert(v.end(), {7, 8, 9}); - - // output new array and result of insert call - std::cout << *new_pos << '\n'; - std::cout << v << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/insert__ilist.link b/resources/3rdparty/modernjson/doc/examples/insert__ilist.link deleted file mode 100755 index 4920588b5..000000000 --- a/resources/3rdparty/modernjson/doc/examples/insert__ilist.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/insert__ilist.output b/resources/3rdparty/modernjson/doc/examples/insert__ilist.output deleted file mode 100755 index b2fc7eeb9..000000000 --- a/resources/3rdparty/modernjson/doc/examples/insert__ilist.output +++ /dev/null @@ -1,2 +0,0 @@ -7 -[1,2,3,4,7,8,9] diff --git a/resources/3rdparty/modernjson/doc/examples/insert__range.cpp b/resources/3rdparty/modernjson/doc/examples/insert__range.cpp deleted file mode 100755 index b5d0001ba..000000000 --- a/resources/3rdparty/modernjson/doc/examples/insert__range.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON array - json v = {1, 2, 3, 4}; - - // create a JSON array to copy values from - json v2 = {"one", "two", "three", "four"}; - - // insert range from v2 before the end of array v - auto new_pos = v.insert(v.end(), v2.begin(), v2.end()); - - // output new array and result of insert call - std::cout << *new_pos << '\n'; - std::cout << v << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/insert__range.link b/resources/3rdparty/modernjson/doc/examples/insert__range.link deleted file mode 100755 index ac773f8b2..000000000 --- a/resources/3rdparty/modernjson/doc/examples/insert__range.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/insert__range.output b/resources/3rdparty/modernjson/doc/examples/insert__range.output deleted file mode 100755 index d50e9f63a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/insert__range.output +++ /dev/null @@ -1,2 +0,0 @@ -"one" -[1,2,3,4,"one","two","three","four"] diff --git a/resources/3rdparty/modernjson/doc/examples/is_array.cpp b/resources/3rdparty/modernjson/doc/examples/is_array.cpp deleted file mode 100755 index 11a631150..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_array.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_unsigned_integer = 12345678987654321u; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call is_array() - std::cout << std::boolalpha; - std::cout << j_null.is_array() << '\n'; - std::cout << j_boolean.is_array() << '\n'; - std::cout << j_number_integer.is_array() << '\n'; - std::cout << j_number_unsigned_integer.is_array() << '\n'; - std::cout << j_number_float.is_array() << '\n'; - std::cout << j_object.is_array() << '\n'; - std::cout << j_array.is_array() << '\n'; - std::cout << j_string.is_array() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/is_array.link b/resources/3rdparty/modernjson/doc/examples/is_array.link deleted file mode 100755 index 8c8b9f825..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_array.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/is_array.output b/resources/3rdparty/modernjson/doc/examples/is_array.output deleted file mode 100755 index 5b8cc40c9..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_array.output +++ /dev/null @@ -1,8 +0,0 @@ -false -false -false -false -false -false -true -false diff --git a/resources/3rdparty/modernjson/doc/examples/is_boolean.cpp b/resources/3rdparty/modernjson/doc/examples/is_boolean.cpp deleted file mode 100755 index 9efcf6943..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_boolean.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_unsigned_integer = 12345678987654321u; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call is_boolean() - std::cout << std::boolalpha; - std::cout << j_null.is_boolean() << '\n'; - std::cout << j_boolean.is_boolean() << '\n'; - std::cout << j_number_integer.is_boolean() << '\n'; - std::cout << j_number_unsigned_integer.is_boolean() << '\n'; - std::cout << j_number_float.is_boolean() << '\n'; - std::cout << j_object.is_boolean() << '\n'; - std::cout << j_array.is_boolean() << '\n'; - std::cout << j_string.is_boolean() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/is_boolean.link b/resources/3rdparty/modernjson/doc/examples/is_boolean.link deleted file mode 100755 index 62f5fed14..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_boolean.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/is_boolean.output b/resources/3rdparty/modernjson/doc/examples/is_boolean.output deleted file mode 100755 index 721b3a5e2..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_boolean.output +++ /dev/null @@ -1,8 +0,0 @@ -false -true -false -false -false -false -false -false diff --git a/resources/3rdparty/modernjson/doc/examples/is_discarded.cpp b/resources/3rdparty/modernjson/doc/examples/is_discarded.cpp deleted file mode 100755 index a1d42a7a8..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_discarded.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_unsigned_integer = 12345678987654321u; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call is_discarded() - std::cout << std::boolalpha; - std::cout << j_null.is_discarded() << '\n'; - std::cout << j_boolean.is_discarded() << '\n'; - std::cout << j_number_integer.is_discarded() << '\n'; - std::cout << j_number_unsigned_integer.is_discarded() << '\n'; - std::cout << j_number_float.is_discarded() << '\n'; - std::cout << j_object.is_discarded() << '\n'; - std::cout << j_array.is_discarded() << '\n'; - std::cout << j_string.is_discarded() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/is_discarded.link b/resources/3rdparty/modernjson/doc/examples/is_discarded.link deleted file mode 100755 index 7ce69a104..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_discarded.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/is_discarded.output b/resources/3rdparty/modernjson/doc/examples/is_discarded.output deleted file mode 100755 index 485b16967..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_discarded.output +++ /dev/null @@ -1,8 +0,0 @@ -false -false -false -false -false -false -false -false diff --git a/resources/3rdparty/modernjson/doc/examples/is_null.cpp b/resources/3rdparty/modernjson/doc/examples/is_null.cpp deleted file mode 100755 index 0d69c05c2..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_null.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_unsigned_integer = 12345678987654321u; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call is_null() - std::cout << std::boolalpha; - std::cout << j_null.is_null() << '\n'; - std::cout << j_boolean.is_null() << '\n'; - std::cout << j_number_integer.is_null() << '\n'; - std::cout << j_number_unsigned_integer.is_null() << '\n'; - std::cout << j_number_float.is_null() << '\n'; - std::cout << j_object.is_null() << '\n'; - std::cout << j_array.is_null() << '\n'; - std::cout << j_string.is_null() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/is_null.link b/resources/3rdparty/modernjson/doc/examples/is_null.link deleted file mode 100755 index 6b22b9780..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_null.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/is_null.output b/resources/3rdparty/modernjson/doc/examples/is_null.output deleted file mode 100755 index 4cc64628d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_null.output +++ /dev/null @@ -1,8 +0,0 @@ -true -false -false -false -false -false -false -false diff --git a/resources/3rdparty/modernjson/doc/examples/is_number.cpp b/resources/3rdparty/modernjson/doc/examples/is_number.cpp deleted file mode 100755 index fd2a99b11..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_number.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_unsigned_integer = 12345678987654321u; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call is_number() - std::cout << std::boolalpha; - std::cout << j_null.is_number() << '\n'; - std::cout << j_boolean.is_number() << '\n'; - std::cout << j_number_integer.is_number() << '\n'; - std::cout << j_number_unsigned_integer.is_number() << '\n'; - std::cout << j_number_float.is_number() << '\n'; - std::cout << j_object.is_number() << '\n'; - std::cout << j_array.is_number() << '\n'; - std::cout << j_string.is_number() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/is_number.link b/resources/3rdparty/modernjson/doc/examples/is_number.link deleted file mode 100755 index bf863a1cf..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_number.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/is_number.output b/resources/3rdparty/modernjson/doc/examples/is_number.output deleted file mode 100755 index 06dbc2823..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_number.output +++ /dev/null @@ -1,8 +0,0 @@ -false -false -true -true -true -false -false -false diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_float.cpp b/resources/3rdparty/modernjson/doc/examples/is_number_float.cpp deleted file mode 100755 index 92bcfa108..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_number_float.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_unsigned_integer = 12345678987654321u; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call is_number_float() - std::cout << std::boolalpha; - std::cout << j_null.is_number_float() << '\n'; - std::cout << j_boolean.is_number_float() << '\n'; - std::cout << j_number_integer.is_number_float() << '\n'; - std::cout << j_number_unsigned_integer.is_number_float() << '\n'; - std::cout << j_number_float.is_number_float() << '\n'; - std::cout << j_object.is_number_float() << '\n'; - std::cout << j_array.is_number_float() << '\n'; - std::cout << j_string.is_number_float() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_float.link b/resources/3rdparty/modernjson/doc/examples/is_number_float.link deleted file mode 100755 index 38abb5985..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_number_float.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_float.output b/resources/3rdparty/modernjson/doc/examples/is_number_float.output deleted file mode 100755 index 09afae4c9..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_number_float.output +++ /dev/null @@ -1,8 +0,0 @@ -false -false -false -false -true -false -false -false diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_integer.cpp b/resources/3rdparty/modernjson/doc/examples/is_number_integer.cpp deleted file mode 100755 index ecac7cd64..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_number_integer.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_unsigned_integer = 12345678987654321u; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call is_number_integer() - std::cout << std::boolalpha; - std::cout << j_null.is_number_integer() << '\n'; - std::cout << j_boolean.is_number_integer() << '\n'; - std::cout << j_number_integer.is_number_integer() << '\n'; - std::cout << j_number_unsigned_integer.is_number_integer() << '\n'; - std::cout << j_number_float.is_number_integer() << '\n'; - std::cout << j_object.is_number_integer() << '\n'; - std::cout << j_array.is_number_integer() << '\n'; - std::cout << j_string.is_number_integer() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_integer.link b/resources/3rdparty/modernjson/doc/examples/is_number_integer.link deleted file mode 100755 index d6162ab0e..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_number_integer.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_integer.output b/resources/3rdparty/modernjson/doc/examples/is_number_integer.output deleted file mode 100755 index be0f73936..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_number_integer.output +++ /dev/null @@ -1,8 +0,0 @@ -false -false -true -true -false -false -false -false diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.cpp b/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.cpp deleted file mode 100755 index ad457591c..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_unsigned_integer = 12345678987654321u; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call is_number_unsigned() - std::cout << std::boolalpha; - std::cout << j_null.is_number_unsigned() << '\n'; - std::cout << j_boolean.is_number_unsigned() << '\n'; - std::cout << j_number_integer.is_number_unsigned() << '\n'; - std::cout << j_number_unsigned_integer.is_number_unsigned() << '\n'; - std::cout << j_number_float.is_number_unsigned() << '\n'; - std::cout << j_object.is_number_unsigned() << '\n'; - std::cout << j_array.is_number_unsigned() << '\n'; - std::cout << j_string.is_number_unsigned() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.link b/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.link deleted file mode 100755 index 41986cefa..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.output b/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.output deleted file mode 100755 index fdf264e0c..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.output +++ /dev/null @@ -1,8 +0,0 @@ -false -false -false -true -false -false -false -false diff --git a/resources/3rdparty/modernjson/doc/examples/is_object.cpp b/resources/3rdparty/modernjson/doc/examples/is_object.cpp deleted file mode 100755 index 56db66e56..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_object.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_float = 23.42; - json j_number_unsigned_integer = 12345678987654321u; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call is_object() - std::cout << std::boolalpha; - std::cout << j_null.is_object() << '\n'; - std::cout << j_boolean.is_object() << '\n'; - std::cout << j_number_integer.is_object() << '\n'; - std::cout << j_number_unsigned_integer.is_object() << '\n'; - std::cout << j_number_float.is_object() << '\n'; - std::cout << j_object.is_object() << '\n'; - std::cout << j_array.is_object() << '\n'; - std::cout << j_string.is_object() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/is_object.link b/resources/3rdparty/modernjson/doc/examples/is_object.link deleted file mode 100755 index 1a304d09a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_object.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/is_object.output b/resources/3rdparty/modernjson/doc/examples/is_object.output deleted file mode 100755 index e041e3922..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_object.output +++ /dev/null @@ -1,8 +0,0 @@ -false -false -false -false -false -true -false -false diff --git a/resources/3rdparty/modernjson/doc/examples/is_primitive.cpp b/resources/3rdparty/modernjson/doc/examples/is_primitive.cpp deleted file mode 100755 index 48872ab5a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_primitive.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_float = 23.42; - json j_number_unsigned_integer = 12345678987654321u; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call is_primitive() - std::cout << std::boolalpha; - std::cout << j_null.is_primitive() << '\n'; - std::cout << j_boolean.is_primitive() << '\n'; - std::cout << j_number_integer.is_primitive() << '\n'; - std::cout << j_number_unsigned_integer.is_primitive() << '\n'; - std::cout << j_number_float.is_primitive() << '\n'; - std::cout << j_object.is_primitive() << '\n'; - std::cout << j_array.is_primitive() << '\n'; - std::cout << j_string.is_primitive() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/is_primitive.link b/resources/3rdparty/modernjson/doc/examples/is_primitive.link deleted file mode 100755 index eb73ffb1b..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_primitive.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/is_primitive.output b/resources/3rdparty/modernjson/doc/examples/is_primitive.output deleted file mode 100755 index 635db6e34..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_primitive.output +++ /dev/null @@ -1,8 +0,0 @@ -true -true -true -true -true -false -false -true diff --git a/resources/3rdparty/modernjson/doc/examples/is_string.cpp b/resources/3rdparty/modernjson/doc/examples/is_string.cpp deleted file mode 100755 index 2d6ed0698..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_string.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_float = 23.42; - json j_number_unsigned_integer = 12345678987654321u; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call is_string() - std::cout << std::boolalpha; - std::cout << j_null.is_string() << '\n'; - std::cout << j_boolean.is_string() << '\n'; - std::cout << j_number_integer.is_string() << '\n'; - std::cout << j_number_unsigned_integer.is_string() << '\n'; - std::cout << j_number_float.is_string() << '\n'; - std::cout << j_object.is_string() << '\n'; - std::cout << j_array.is_string() << '\n'; - std::cout << j_string.is_string() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/is_string.link b/resources/3rdparty/modernjson/doc/examples/is_string.link deleted file mode 100755 index 6af78b0ba..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_string.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/is_string.output b/resources/3rdparty/modernjson/doc/examples/is_string.output deleted file mode 100755 index 672eb4385..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_string.output +++ /dev/null @@ -1,8 +0,0 @@ -false -false -false -false -false -false -false -true diff --git a/resources/3rdparty/modernjson/doc/examples/is_structured.cpp b/resources/3rdparty/modernjson/doc/examples/is_structured.cpp deleted file mode 100755 index ed573e3cc..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_structured.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_float = 23.42; - json j_number_unsigned_integer = 12345678987654321u; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call is_structured() - std::cout << std::boolalpha; - std::cout << j_null.is_structured() << '\n'; - std::cout << j_boolean.is_structured() << '\n'; - std::cout << j_number_integer.is_structured() << '\n'; - std::cout << j_number_unsigned_integer.is_structured() << '\n'; - std::cout << j_number_float.is_structured() << '\n'; - std::cout << j_object.is_structured() << '\n'; - std::cout << j_array.is_structured() << '\n'; - std::cout << j_string.is_structured() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/is_structured.link b/resources/3rdparty/modernjson/doc/examples/is_structured.link deleted file mode 100755 index 8ae6fd044..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_structured.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/is_structured.output b/resources/3rdparty/modernjson/doc/examples/is_structured.output deleted file mode 100755 index e1186dd8f..000000000 --- a/resources/3rdparty/modernjson/doc/examples/is_structured.output +++ /dev/null @@ -1,8 +0,0 @@ -false -false -false -false -false -true -true -false diff --git a/resources/3rdparty/modernjson/doc/examples/json_pointer.cpp b/resources/3rdparty/modernjson/doc/examples/json_pointer.cpp deleted file mode 100755 index 140eac3b6..000000000 --- a/resources/3rdparty/modernjson/doc/examples/json_pointer.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // correct JSON pointers - json::json_pointer p1; - json::json_pointer p2(""); - json::json_pointer p3("/"); - json::json_pointer p4("//"); - json::json_pointer p5("/foo/bar"); - json::json_pointer p6("/foo/bar/-"); - json::json_pointer p7("/foo/~0"); - json::json_pointer p8("/foo/~1"); - - // error: JSON pointer does not begin with a slash - try - { - json::json_pointer p9("foo"); - } - catch (std::domain_error& e) - { - std::cout << "domain_error: " << e.what() << '\n'; - } - - // error: JSON pointer uses escape symbol ~ not followed by 0 or 1 - try - { - json::json_pointer p10("/foo/~"); - } - catch (std::domain_error& e) - { - std::cout << "domain_error: " << e.what() << '\n'; - } - - // error: JSON pointer uses escape symbol ~ not followed by 0 or 1 - try - { - json::json_pointer p11("/foo/~3"); - } - catch (std::domain_error& e) - { - std::cout << "domain_error: " << e.what() << '\n'; - } -} diff --git a/resources/3rdparty/modernjson/doc/examples/json_pointer.link b/resources/3rdparty/modernjson/doc/examples/json_pointer.link deleted file mode 100755 index 6602f0cf4..000000000 --- a/resources/3rdparty/modernjson/doc/examples/json_pointer.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/json_pointer.output b/resources/3rdparty/modernjson/doc/examples/json_pointer.output deleted file mode 100755 index b81c8a201..000000000 --- a/resources/3rdparty/modernjson/doc/examples/json_pointer.output +++ /dev/null @@ -1,3 +0,0 @@ -domain_error: JSON pointer must be empty or begin with '/' -domain_error: escape error: '~' must be followed with '0' or '1' -domain_error: escape error: '~' must be followed with '0' or '1' diff --git a/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.cpp b/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.cpp deleted file mode 100755 index 4cb053c53..000000000 --- a/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // different JSON Pointers - json::json_pointer ptr1(""); - json::json_pointer ptr2("/foo"); - json::json_pointer ptr3("/foo/0"); - json::json_pointer ptr4("/"); - json::json_pointer ptr5("/a~1b"); - json::json_pointer ptr6("/c%d"); - json::json_pointer ptr7("/e^f"); - json::json_pointer ptr8("/g|h"); - json::json_pointer ptr9("/i\\j"); - json::json_pointer ptr10("/k\"l"); - json::json_pointer ptr11("/ "); - json::json_pointer ptr12("/m~0n"); - - - std::cout << ptr1.to_string() << '\n' - << ptr2.to_string() << '\n' - << ptr3.to_string() << '\n' - << ptr4.to_string() << '\n' - << ptr5.to_string() << '\n' - << ptr6.to_string() << '\n' - << ptr7.to_string() << '\n' - << ptr8.to_string() << '\n' - << ptr9.to_string() << '\n' - << ptr10.to_string() << '\n' - << ptr11.to_string() << '\n' - << ptr12.to_string() << std::endl; -} diff --git a/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.link b/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.link deleted file mode 100755 index 407609b20..000000000 --- a/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.output b/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.output deleted file mode 100755 index c4b5ea8fa..000000000 --- a/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.output +++ /dev/null @@ -1,12 +0,0 @@ - -/foo -/foo/0 -/ -/a~1b -/c%d -/e^f -/g|h -/i\j -/k"l -/ -/m~0n diff --git a/resources/3rdparty/modernjson/doc/examples/max_size.cpp b/resources/3rdparty/modernjson/doc/examples/max_size.cpp deleted file mode 100755 index d2f1b727d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/max_size.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call max_size() - std::cout << j_null.max_size() << '\n'; - std::cout << j_boolean.max_size() << '\n'; - std::cout << j_number_integer.max_size() << '\n'; - std::cout << j_number_float.max_size() << '\n'; - std::cout << j_object.max_size() << '\n'; - std::cout << j_array.max_size() << '\n'; - std::cout << j_string.max_size() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/max_size.link b/resources/3rdparty/modernjson/doc/examples/max_size.link deleted file mode 100755 index d91bc8cda..000000000 --- a/resources/3rdparty/modernjson/doc/examples/max_size.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/max_size.output b/resources/3rdparty/modernjson/doc/examples/max_size.output deleted file mode 100755 index 8c79995ba..000000000 --- a/resources/3rdparty/modernjson/doc/examples/max_size.output +++ /dev/null @@ -1,7 +0,0 @@ -0 -1 -1 -1 -256204778801521550 -1152921504606846975 -1 diff --git a/resources/3rdparty/modernjson/doc/examples/object.cpp b/resources/3rdparty/modernjson/doc/examples/object.cpp deleted file mode 100755 index 54f3ca3b8..000000000 --- a/resources/3rdparty/modernjson/doc/examples/object.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON objects - json j_no_init_list = json::object(); - json j_empty_init_list = json::object({}); - json j_list_of_pairs = json::object({ {"one", 1}, {"two", 2} }); - //json j_invalid_list = json::object({ "one", 1 }); // would throw - - // serialize the JSON objects - std::cout << j_no_init_list << '\n'; - std::cout << j_empty_init_list << '\n'; - std::cout << j_list_of_pairs << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/object.link b/resources/3rdparty/modernjson/doc/examples/object.link deleted file mode 100755 index 575473b35..000000000 --- a/resources/3rdparty/modernjson/doc/examples/object.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/object.output b/resources/3rdparty/modernjson/doc/examples/object.output deleted file mode 100755 index f6c27ee8f..000000000 --- a/resources/3rdparty/modernjson/doc/examples/object.output +++ /dev/null @@ -1,3 +0,0 @@ -{} -{} -{"one":1,"two":2} diff --git a/resources/3rdparty/modernjson/doc/examples/operator__ValueType.cpp b/resources/3rdparty/modernjson/doc/examples/operator__ValueType.cpp deleted file mode 100755 index 9307e69bb..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__ValueType.cpp +++ /dev/null @@ -1,49 +0,0 @@ -#include -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON value with different types - json json_types = - { - {"boolean", true}, - { - "number", { - {"integer", 42}, - {"floating-point", 17.23} - } - }, - {"string", "Hello, world!"}, - {"array", {1, 2, 3, 4, 5}}, - {"null", nullptr} - }; - - // use implicit conversions - bool v1 = json_types["boolean"]; - int v2 = json_types["number"]["integer"]; - short v3 = json_types["number"]["integer"]; - float v4 = json_types["number"]["floating-point"]; - int v5 = json_types["number"]["floating-point"]; - std::string v6 = json_types["string"]; - std::vector v7 = json_types["array"]; - std::unordered_map v8 = json_types; - - // print the conversion results - std::cout << v1 << '\n'; - std::cout << v2 << ' ' << v3 << '\n'; - std::cout << v4 << ' ' << v5 << '\n'; - std::cout << v6 << '\n'; - - for (auto i : v7) - { - std::cout << i << ' '; - } - std::cout << "\n\n"; - - for (auto i : v8) - { - std::cout << i.first << ": " << i.second << '\n'; - } -} diff --git a/resources/3rdparty/modernjson/doc/examples/operator__ValueType.link b/resources/3rdparty/modernjson/doc/examples/operator__ValueType.link deleted file mode 100755 index 204d8f5e3..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__ValueType.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operator__ValueType.output b/resources/3rdparty/modernjson/doc/examples/operator__ValueType.output deleted file mode 100755 index 5cd9cd3aa..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__ValueType.output +++ /dev/null @@ -1,11 +0,0 @@ -1 -42 42 -17.23 17 -Hello, world! -1 2 3 4 5 - -string: "Hello, world!" -number: {"floating-point":17.23,"integer":42} -null: null -boolean: true -array: [1,2,3,4,5] diff --git a/resources/3rdparty/modernjson/doc/examples/operator__equal.cpp b/resources/3rdparty/modernjson/doc/examples/operator__equal.cpp deleted file mode 100755 index 12bf92ed5..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__equal.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create several JSON values - json array_1 = {1, 2, 3}; - json array_2 = {1, 2, 4}; - json object_1 = {{"A", "a"}, {"B", "b"}}; - json object_2 = {{"B", "b"}, {"A", "a"}}; - json number_1 = 17; - json number_2 = 17.000000000000001L; - json string_1 = "foo"; - json string_2 = "bar"; - - // output values and comparisons - std::cout << std::boolalpha; - std::cout << array_1 << " == " << array_2 << " " << (array_1 == array_2) << '\n'; - std::cout << object_1 << " == " << object_2 << " " << (object_1 == object_2) << '\n'; - std::cout << number_1 << " == " << number_2 << " " << (number_1 == number_2) << '\n'; - std::cout << string_1 << " == " << string_2 << " " << (string_1 == string_2) << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/operator__equal.link b/resources/3rdparty/modernjson/doc/examples/operator__equal.link deleted file mode 100755 index 41ae20ce3..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__equal.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operator__equal.output b/resources/3rdparty/modernjson/doc/examples/operator__equal.output deleted file mode 100755 index e9dfd7551..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__equal.output +++ /dev/null @@ -1,4 +0,0 @@ -[1,2,3] == [1,2,4] false -{"A":"a","B":"b"} == {"A":"a","B":"b"} true -17 == 17 true -"foo" == "bar" false diff --git a/resources/3rdparty/modernjson/doc/examples/operator__equal.test b/resources/3rdparty/modernjson/doc/examples/operator__equal.test deleted file mode 100755 index e9dfd7551..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__equal.test +++ /dev/null @@ -1,4 +0,0 @@ -[1,2,3] == [1,2,4] false -{"A":"a","B":"b"} == {"A":"a","B":"b"} true -17 == 17 true -"foo" == "bar" false diff --git a/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.cpp b/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.cpp deleted file mode 100755 index 49c632cfd..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create several JSON values - json array = {1, 2, 3}; - json object = {{"A", "a"}, {"B", "b"}}; - json number = 17; - json string = "foo"; - json null; - - // output values and comparisons - std::cout << std::boolalpha; - std::cout << array << " == nullptr " << (array == nullptr) << '\n'; - std::cout << object << " == nullptr " << (object == nullptr) << '\n'; - std::cout << number << " == nullptr " << (number == nullptr) << '\n'; - std::cout << string << " == nullptr " << (string == nullptr) << '\n'; - std::cout << null << " == nullptr " << (null == nullptr) << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.link b/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.link deleted file mode 100755 index 49e46fd65..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.output b/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.output deleted file mode 100755 index b7128e13d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.output +++ /dev/null @@ -1,5 +0,0 @@ -[1,2,3] == nullptr false -{"A":"a","B":"b"} == nullptr false -17 == nullptr false -"foo" == nullptr false -null == nullptr true diff --git a/resources/3rdparty/modernjson/doc/examples/operator__greater.cpp b/resources/3rdparty/modernjson/doc/examples/operator__greater.cpp deleted file mode 100755 index bee3b2b5a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__greater.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create several JSON values - json array_1 = {1, 2, 3}; - json array_2 = {1, 2, 4}; - json object_1 = {{"A", "a"}, {"B", "b"}}; - json object_2 = {{"B", "b"}, {"A", "a"}}; - json number_1 = 17; - json number_2 = 17.0000000000001L; - json string_1 = "foo"; - json string_2 = "bar"; - - // output values and comparisons - std::cout << std::boolalpha; - std::cout << array_1 << " == " << array_2 << " " << (array_1 > array_2) << '\n'; - std::cout << object_1 << " == " << object_2 << " " << (object_1 > object_2) << '\n'; - std::cout << number_1 << " == " << number_2 << " " << (number_1 > number_2) << '\n'; - std::cout << string_1 << " == " << string_2 << " " << (string_1 > string_2) << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/operator__greater.link b/resources/3rdparty/modernjson/doc/examples/operator__greater.link deleted file mode 100755 index 2299d6102..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__greater.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operator__greater.output b/resources/3rdparty/modernjson/doc/examples/operator__greater.output deleted file mode 100755 index 045847c38..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__greater.output +++ /dev/null @@ -1,4 +0,0 @@ -[1,2,3] == [1,2,4] false -{"A":"a","B":"b"} == {"A":"a","B":"b"} false -17 == 17.0000000000001 false -"foo" == "bar" true diff --git a/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.cpp b/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.cpp deleted file mode 100755 index cd3989669..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create several JSON values - json array_1 = {1, 2, 3}; - json array_2 = {1, 2, 4}; - json object_1 = {{"A", "a"}, {"B", "b"}}; - json object_2 = {{"B", "b"}, {"A", "a"}}; - json number_1 = 17; - json number_2 = 17.0000000000001L; - json string_1 = "foo"; - json string_2 = "bar"; - - // output values and comparisons - std::cout << std::boolalpha; - std::cout << array_1 << " >= " << array_2 << " " << (array_1 >= array_2) << '\n'; - std::cout << object_1 << " >= " << object_2 << " " << (object_1 >= object_2) << '\n'; - std::cout << number_1 << " >= " << number_2 << " " << (number_1 >= number_2) << '\n'; - std::cout << string_1 << " >= " << string_2 << " " << (string_1 >= string_2) << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.link b/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.link deleted file mode 100755 index fdd676e6e..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.output b/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.output deleted file mode 100755 index c7b91514e..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.output +++ /dev/null @@ -1,4 +0,0 @@ -[1,2,3] >= [1,2,4] false -{"A":"a","B":"b"} >= {"A":"a","B":"b"} true -17 >= 17.0000000000001 false -"foo" >= "bar" true diff --git a/resources/3rdparty/modernjson/doc/examples/operator__less.cpp b/resources/3rdparty/modernjson/doc/examples/operator__less.cpp deleted file mode 100755 index d4a7b7941..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__less.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create several JSON values - json array_1 = {1, 2, 3}; - json array_2 = {1, 2, 4}; - json object_1 = {{"A", "a"}, {"B", "b"}}; - json object_2 = {{"B", "b"}, {"A", "a"}}; - json number_1 = 17; - json number_2 = 17.0000000000001L; - json string_1 = "foo"; - json string_2 = "bar"; - - // output values and comparisons - std::cout << std::boolalpha; - std::cout << array_1 << " == " << array_2 << " " << (array_1 < array_2) << '\n'; - std::cout << object_1 << " == " << object_2 << " " << (object_1 < object_2) << '\n'; - std::cout << number_1 << " == " << number_2 << " " << (number_1 < number_2) << '\n'; - std::cout << string_1 << " == " << string_2 << " " << (string_1 < string_2) << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/operator__less.link b/resources/3rdparty/modernjson/doc/examples/operator__less.link deleted file mode 100755 index 5d7f6f566..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__less.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operator__less.output b/resources/3rdparty/modernjson/doc/examples/operator__less.output deleted file mode 100755 index abbbc455e..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__less.output +++ /dev/null @@ -1,4 +0,0 @@ -[1,2,3] == [1,2,4] true -{"A":"a","B":"b"} == {"A":"a","B":"b"} false -17 == 17.0000000000001 true -"foo" == "bar" false diff --git a/resources/3rdparty/modernjson/doc/examples/operator__lessequal.cpp b/resources/3rdparty/modernjson/doc/examples/operator__lessequal.cpp deleted file mode 100755 index 20654d9e8..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__lessequal.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create several JSON values - json array_1 = {1, 2, 3}; - json array_2 = {1, 2, 4}; - json object_1 = {{"A", "a"}, {"B", "b"}}; - json object_2 = {{"B", "b"}, {"A", "a"}}; - json number_1 = 17; - json number_2 = 17.0000000000001L; - json string_1 = "foo"; - json string_2 = "bar"; - - // output values and comparisons - std::cout << std::boolalpha; - std::cout << array_1 << " <= " << array_2 << " " << (array_1 <= array_2) << '\n'; - std::cout << object_1 << " <= " << object_2 << " " << (object_1 <= object_2) << '\n'; - std::cout << number_1 << " <= " << number_2 << " " << (number_1 <= number_2) << '\n'; - std::cout << string_1 << " <= " << string_2 << " " << (string_1 <= string_2) << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/operator__lessequal.link b/resources/3rdparty/modernjson/doc/examples/operator__lessequal.link deleted file mode 100755 index 620b6aa8a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__lessequal.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operator__lessequal.output b/resources/3rdparty/modernjson/doc/examples/operator__lessequal.output deleted file mode 100755 index f7f0327ec..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__lessequal.output +++ /dev/null @@ -1,4 +0,0 @@ -[1,2,3] <= [1,2,4] true -{"A":"a","B":"b"} <= {"A":"a","B":"b"} true -17 <= 17.0000000000001 true -"foo" <= "bar" false diff --git a/resources/3rdparty/modernjson/doc/examples/operator__notequal.cpp b/resources/3rdparty/modernjson/doc/examples/operator__notequal.cpp deleted file mode 100755 index 499a00d17..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__notequal.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create several JSON values - json array_1 = {1, 2, 3}; - json array_2 = {1, 2, 4}; - json object_1 = {{"A", "a"}, {"B", "b"}}; - json object_2 = {{"B", "b"}, {"A", "a"}}; - json number_1 = 17; - json number_2 = 17.000000000000001L; - json string_1 = "foo"; - json string_2 = "bar"; - - // output values and comparisons - std::cout << std::boolalpha; - std::cout << array_1 << " == " << array_2 << " " << (array_1 != array_2) << '\n'; - std::cout << object_1 << " == " << object_2 << " " << (object_1 != object_2) << '\n'; - std::cout << number_1 << " == " << number_2 << " " << (number_1 != number_2) << '\n'; - std::cout << string_1 << " == " << string_2 << " " << (string_1 != string_2) << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/operator__notequal.link b/resources/3rdparty/modernjson/doc/examples/operator__notequal.link deleted file mode 100755 index 482b97212..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__notequal.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operator__notequal.output b/resources/3rdparty/modernjson/doc/examples/operator__notequal.output deleted file mode 100755 index ddd838b4a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__notequal.output +++ /dev/null @@ -1,4 +0,0 @@ -[1,2,3] == [1,2,4] true -{"A":"a","B":"b"} == {"A":"a","B":"b"} false -17 == 17 false -"foo" == "bar" true diff --git a/resources/3rdparty/modernjson/doc/examples/operator__notequal.test b/resources/3rdparty/modernjson/doc/examples/operator__notequal.test deleted file mode 100755 index ddd838b4a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__notequal.test +++ /dev/null @@ -1,4 +0,0 @@ -[1,2,3] == [1,2,4] true -{"A":"a","B":"b"} == {"A":"a","B":"b"} false -17 == 17 false -"foo" == "bar" true diff --git a/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.cpp b/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.cpp deleted file mode 100755 index 014e6343a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create several JSON values - json array = {1, 2, 3}; - json object = {{"A", "a"}, {"B", "b"}}; - json number = 17; - json string = "foo"; - json null; - - // output values and comparisons - std::cout << std::boolalpha; - std::cout << array << " != nullptr " << (array != nullptr) << '\n'; - std::cout << object << " != nullptr " << (object != nullptr) << '\n'; - std::cout << number << " != nullptr " << (number != nullptr) << '\n'; - std::cout << string << " != nullptr " << (string != nullptr) << '\n'; - std::cout << null << " != nullptr " << (null != nullptr) << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.link b/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.link deleted file mode 100755 index 40f6bb4fe..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.output b/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.output deleted file mode 100755 index 0fc36dcf5..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.output +++ /dev/null @@ -1,5 +0,0 @@ -[1,2,3] != nullptr true -{"A":"a","B":"b"} != nullptr true -17 != nullptr true -"foo" != nullptr true -null != nullptr false diff --git a/resources/3rdparty/modernjson/doc/examples/operator__value_t.cpp b/resources/3rdparty/modernjson/doc/examples/operator__value_t.cpp deleted file mode 100755 index d281df0d8..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__value_t.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call operator value_t() - json::value_t t_null = j_null; - json::value_t t_boolean = j_boolean; - json::value_t t_number_integer = j_number_integer; - json::value_t t_number_float = j_number_float; - json::value_t t_object = j_object; - json::value_t t_array = j_array; - json::value_t t_string = j_string; - - // print types - std::cout << std::boolalpha; - std::cout << (t_null == json::value_t::null) << '\n'; - std::cout << (t_boolean == json::value_t::boolean) << '\n'; - std::cout << (t_number_integer == json::value_t::number_integer) << '\n'; - std::cout << (t_number_float == json::value_t::number_float) << '\n'; - std::cout << (t_object == json::value_t::object) << '\n'; - std::cout << (t_array == json::value_t::array) << '\n'; - std::cout << (t_string == json::value_t::string) << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/operator__value_t.link b/resources/3rdparty/modernjson/doc/examples/operator__value_t.link deleted file mode 100755 index a97072328..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__value_t.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operator__value_t.output b/resources/3rdparty/modernjson/doc/examples/operator__value_t.output deleted file mode 100755 index 814ccfee2..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator__value_t.output +++ /dev/null @@ -1,7 +0,0 @@ -true -true -true -true -true -true -true diff --git a/resources/3rdparty/modernjson/doc/examples/operator_deserialize.cpp b/resources/3rdparty/modernjson/doc/examples/operator_deserialize.cpp deleted file mode 100755 index a43cdf0fb..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator_deserialize.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create stream with serialized JSON - std::stringstream ss; - ss << R"({ - "number": 23, - "string": "Hello, world!", - "array": [1, 2, 3, 4, 5], - "boolean": false, - "null": null - })"; - - // create JSON value and read the serialization from the stream - json j; - j << ss; - - // serialize JSON - std::cout << std::setw(2) << j << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/operator_deserialize.link b/resources/3rdparty/modernjson/doc/examples/operator_deserialize.link deleted file mode 100755 index 27e998d9a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator_deserialize.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operator_deserialize.output b/resources/3rdparty/modernjson/doc/examples/operator_deserialize.output deleted file mode 100755 index 81a203fb0..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator_deserialize.output +++ /dev/null @@ -1,13 +0,0 @@ -{ - "array": [ - 1, - 2, - 3, - 4, - 5 - ], - "boolean": false, - "null": null, - "number": 23, - "string": "Hello, world!" -} diff --git a/resources/3rdparty/modernjson/doc/examples/operator_serialize.cpp b/resources/3rdparty/modernjson/doc/examples/operator_serialize.cpp deleted file mode 100755 index c1568d99d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator_serialize.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - - // serialize without indentation - std::cout << j_object << "\n\n"; - std::cout << j_array << "\n\n"; - - // serialize with indentation - std::cout << std::setw(4) << j_object << "\n\n"; - std::cout << std::setw(2) << j_array << "\n\n"; -} diff --git a/resources/3rdparty/modernjson/doc/examples/operator_serialize.link b/resources/3rdparty/modernjson/doc/examples/operator_serialize.link deleted file mode 100755 index 231306ac2..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator_serialize.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operator_serialize.output b/resources/3rdparty/modernjson/doc/examples/operator_serialize.output deleted file mode 100755 index 712a58da6..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operator_serialize.output +++ /dev/null @@ -1,17 +0,0 @@ -{"one":1,"two":2} - -[1,2,4,8,16] - -{ - "one": 1, - "two": 2 -} - -[ - 1, - 2, - 4, - 8, - 16 -] - diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.cpp b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.cpp deleted file mode 100755 index e83a2ac00..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON object - json object = - { - {"one", 1}, {"two", 2}, {"three", 2.9} - }; - - // output element with key "two" - std::cout << object["two"] << "\n\n"; - - // change element with key "three" - object["three"] = 3; - - // output changed array - std::cout << std::setw(4) << object << "\n\n"; - - // mention nonexisting key - object["four"]; - - // write to nonexisting key - object["five"]["really"]["nested"] = true; - - // output changed object - std::cout << std::setw(4) << object << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.link b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.link deleted file mode 100755 index 40df071bf..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.output b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.output deleted file mode 100755 index b643587f1..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.output +++ /dev/null @@ -1,19 +0,0 @@ -2 - -{ - "one": 1, - "three": 3, - "two": 2 -} - -{ - "five": { - "really": { - "nested": true - } - }, - "four": null, - "one": 1, - "three": 3, - "two": 2 -} diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.cpp b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.cpp deleted file mode 100755 index 5ad97355e..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON object - const json object = - { - {"one", 1}, {"two", 2}, {"three", 2.9} - }; - - // output element with key "two" - std::cout << object["two"] << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.link b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.link deleted file mode 100755 index bba664a5c..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.output b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.output deleted file mode 100755 index 0cfbf0888..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.output +++ /dev/null @@ -1 +0,0 @@ -2 diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.cpp b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.cpp deleted file mode 100755 index 4ccbf2704..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON array - json array = {1, 2, 3, 4, 5}; - - // output element at index 3 (fourth element) - std::cout << array[3] << '\n'; - - // change last element to 6 - array[array.size() - 1] = 6; - - // output changed array - std::cout << array << '\n'; - - // write beyond array limit - array[10] = 11; - - // output changed array - std::cout << array << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.link b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.link deleted file mode 100755 index b9d578810..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.output b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.output deleted file mode 100755 index a91a10698..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.output +++ /dev/null @@ -1,3 +0,0 @@ -4 -[1,2,3,4,6] -[1,2,3,4,6,null,null,null,null,null,11] diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.cpp b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.cpp deleted file mode 100755 index 2ef794781..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON array - json array = {"first", "2nd", "third", "fourth"}; - - // output element at index 2 (third element) - std::cout << array.at(2) << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.link b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.link deleted file mode 100755 index a1f8c98b7..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.output b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.output deleted file mode 100755 index 4450c9f00..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.output +++ /dev/null @@ -1 +0,0 @@ -"third" diff --git a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.cpp b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.cpp deleted file mode 100755 index 18e41c1f5..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON value - json j = - { - {"number", 1}, {"string", "foo"}, {"array", {1, 2}} - }; - - // read-only access - - // output element with JSON pointer "/number" - std::cout << j["/number"_json_pointer] << '\n'; - // output element with JSON pointer "/string" - std::cout << j["/string"_json_pointer] << '\n'; - // output element with JSON pointer "/array" - std::cout << j["/array"_json_pointer] << '\n'; - // output element with JSON pointer "/array/1" - std::cout << j["/array/1"_json_pointer] << '\n'; - - // writing access - - // change the string - j["/string"_json_pointer] = "bar"; - // output the changed string - std::cout << j["string"] << '\n'; - - // "change" a nonexisting object entry - j["/boolean"_json_pointer] = true; - // output the changed object - std::cout << j << '\n'; - - // change an array element - j["/array/1"_json_pointer] = 21; - // "change" an array element with nonexisting index - j["/array/4"_json_pointer] = 44; - // output the changed array - std::cout << j["array"] << '\n'; - - // "change" the arry element past the end - j["/array/-"_json_pointer] = 55; - // output the changed array - std::cout << j["array"] << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.link b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.link deleted file mode 100755 index 3a60e8a65..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.output b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.output deleted file mode 100755 index 1fd1b032d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.output +++ /dev/null @@ -1,8 +0,0 @@ -1 -"foo" -[1,2] -2 -"bar" -{"array":[1,2],"boolean":true,"number":1,"string":"bar"} -[1,21,null,null,44] -[1,21,null,null,44,55] diff --git a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.cpp b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.cpp deleted file mode 100755 index 20ac36cb2..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON value - const json j = - { - {"number", 1}, {"string", "foo"}, {"array", {1, 2}} - }; - - // read-only access - - // output element with JSON pointer "/number" - std::cout << j["/number"_json_pointer] << '\n'; - // output element with JSON pointer "/string" - std::cout << j["/string"_json_pointer] << '\n'; - // output element with JSON pointer "/array" - std::cout << j["/array"_json_pointer] << '\n'; - // output element with JSON pointer "/array/1" - std::cout << j["/array/1"_json_pointer] << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.link b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.link deleted file mode 100755 index 1bc14234d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.output b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.output deleted file mode 100755 index 7b9306bbc..000000000 --- a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.output +++ /dev/null @@ -1,4 +0,0 @@ -1 -"foo" -[1,2] -2 diff --git a/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.cpp b/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.cpp deleted file mode 100755 index 6812a5e2e..000000000 --- a/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // a JSON text - auto text = R"( - { - "Image": { - "Width": 800, - "Height": 600, - "Title": "View from 15th Floor", - "Thumbnail": { - "Url": "http://www.example.com/image/481989943", - "Height": 125, - "Width": 100 - }, - "Animated" : false, - "IDs": [116, 943, 234, 38793] - } - } - )"; - - // fill a stream with JSON text - std::stringstream ss; - ss << text; - - // parse and serialize JSON - json j_complete = json::parse(ss); - std::cout << std::setw(4) << j_complete << "\n\n"; - - - // define parser callback - json::parser_callback_t cb = [](int depth, json::parse_event_t event, json & parsed) - { - // skip object elements with key "Thumbnail" - if (event == json::parse_event_t::key and parsed == json("Thumbnail")) - { - return false; - } - else - { - return true; - } - }; - - // fill a stream with JSON text - ss.clear(); - ss << text; - - // parse (with callback) and serialize JSON - json j_filtered = json::parse(ss, cb); - std::cout << std::setw(4) << j_filtered << '\n'; -} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.link b/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.link deleted file mode 100755 index 85960e159..000000000 --- a/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.output b/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.output deleted file mode 100755 index 279a7ff74..000000000 --- a/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.output +++ /dev/null @@ -1,34 +0,0 @@ -{ - "Image": { - "Animated": false, - "Height": 600, - "IDs": [ - 116, - 943, - 234, - 38793 - ], - "Thumbnail": { - "Height": 125, - "Url": "http://www.example.com/image/481989943", - "Width": 100 - }, - "Title": "View from 15th Floor", - "Width": 800 - } -} - -{ - "Image": { - "Animated": false, - "Height": 600, - "IDs": [ - 116, - 943, - 234, - 38793 - ], - "Title": "View from 15th Floor", - "Width": 800 - } -} diff --git a/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.cpp b/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.cpp deleted file mode 100755 index 62982ca6f..000000000 --- a/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // a JSON text - std::string text = R"( - { - "Image": { - "Width": 800, - "Height": 600, - "Title": "View from 15th Floor", - "Thumbnail": { - "Url": "http://www.example.com/image/481989943", - "Height": 125, - "Width": 100 - }, - "Animated" : false, - "IDs": [116, 943, 234, 38793] - } - } - )"; - - // parse and serialize JSON - json j_complete = json::parse(text); - std::cout << std::setw(4) << j_complete << "\n\n"; - - - // define parser callback - json::parser_callback_t cb = [](int depth, json::parse_event_t event, json & parsed) - { - // skip object elements with key "Thumbnail" - if (event == json::parse_event_t::key and parsed == json("Thumbnail")) - { - return false; - } - else - { - return true; - } - }; - - // parse (with callback) and serialize JSON - json j_filtered = json::parse(text, cb); - std::cout << std::setw(4) << j_filtered << '\n'; -} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.link b/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.link deleted file mode 100755 index 9db1c3b83..000000000 --- a/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.output b/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.output deleted file mode 100755 index 279a7ff74..000000000 --- a/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.output +++ /dev/null @@ -1,34 +0,0 @@ -{ - "Image": { - "Animated": false, - "Height": 600, - "IDs": [ - 116, - 943, - 234, - 38793 - ], - "Thumbnail": { - "Height": 125, - "Url": "http://www.example.com/image/481989943", - "Width": 100 - }, - "Title": "View from 15th Floor", - "Width": 800 - } -} - -{ - "Image": { - "Animated": false, - "Height": 600, - "IDs": [ - 116, - 943, - 234, - 38793 - ], - "Title": "View from 15th Floor", - "Width": 800 - } -} diff --git a/resources/3rdparty/modernjson/doc/examples/patch.cpp b/resources/3rdparty/modernjson/doc/examples/patch.cpp deleted file mode 100755 index 24a52d596..000000000 --- a/resources/3rdparty/modernjson/doc/examples/patch.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // the original document - json doc = R"( - { - "baz": "qux", - "foo": "bar" - } - )"_json; - - // the patch - json patch = R"( - [ - { "op": "replace", "path": "/baz", "value": "boo" }, - { "op": "add", "path": "/hello", "value": ["world"] }, - { "op": "remove", "path": "/foo"} - ] - )"_json; - - // apply the patch - json patched_doc = doc.patch(patch); - - // output original and patched document - std::cout << std::setw(4) << doc << "\n\n" - << std::setw(4) << patched_doc << std::endl; -} diff --git a/resources/3rdparty/modernjson/doc/examples/patch.link b/resources/3rdparty/modernjson/doc/examples/patch.link deleted file mode 100755 index 5d5032b7b..000000000 --- a/resources/3rdparty/modernjson/doc/examples/patch.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/patch.output b/resources/3rdparty/modernjson/doc/examples/patch.output deleted file mode 100755 index eb558fe25..000000000 --- a/resources/3rdparty/modernjson/doc/examples/patch.output +++ /dev/null @@ -1,11 +0,0 @@ -{ - "baz": "qux", - "foo": "bar" -} - -{ - "baz": "boo", - "hello": [ - "world" - ] -} diff --git a/resources/3rdparty/modernjson/doc/examples/push_back.cpp b/resources/3rdparty/modernjson/doc/examples/push_back.cpp deleted file mode 100755 index 5d0877f0a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/push_back.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json array = {1, 2, 3, 4, 5}; - json null; - - // print values - std::cout << array << '\n'; - std::cout << null << '\n'; - - // add values - array.push_back(6); - array += 7; - null += "first"; - null += "second"; - - // print values - std::cout << array << '\n'; - std::cout << null << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/push_back.link b/resources/3rdparty/modernjson/doc/examples/push_back.link deleted file mode 100755 index 8ec17dbac..000000000 --- a/resources/3rdparty/modernjson/doc/examples/push_back.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/push_back.output b/resources/3rdparty/modernjson/doc/examples/push_back.output deleted file mode 100755 index 3306b60e3..000000000 --- a/resources/3rdparty/modernjson/doc/examples/push_back.output +++ /dev/null @@ -1,4 +0,0 @@ -[1,2,3,4,5] -null -[1,2,3,4,5,6,7] -["first","second"] diff --git a/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.cpp b/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.cpp deleted file mode 100755 index 9fe01ad79..000000000 --- a/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json object = {{"one", 1}, {"two", 2}}; - json null; - - // print values - std::cout << object << '\n'; - std::cout << null << '\n'; - - // add values: - object.push_back({"three", 3}); // object is extended - object += {"four", 4}; // object is extended - null.push_back({"five", 5}); // null is converted to array - - // print values - std::cout << object << '\n'; - std::cout << null << '\n'; - - // would throw: - //object.push_back({1, 2, 3}); -} diff --git a/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.link b/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.link deleted file mode 100755 index 2b5abaeda..000000000 --- a/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.output b/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.output deleted file mode 100755 index 668eb25d7..000000000 --- a/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.output +++ /dev/null @@ -1,4 +0,0 @@ -{"one":1,"two":2} -null -{"four":4,"one":1,"three":3,"two":2} -[["five",5]] diff --git a/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.cpp b/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.cpp deleted file mode 100755 index b55ee6402..000000000 --- a/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json object = {{"one", 1}, {"two", 2}}; - json null; - - // print values - std::cout << object << '\n'; - std::cout << null << '\n'; - - // add values - object.push_back(json::object_t::value_type("three", 3)); - object += json::object_t::value_type("four", 4); - null += json::object_t::value_type("A", "a"); - null += json::object_t::value_type("B", "b"); - - // print values - std::cout << object << '\n'; - std::cout << null << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.link b/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.link deleted file mode 100755 index 24882e38c..000000000 --- a/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.output b/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.output deleted file mode 100755 index b8a7d3560..000000000 --- a/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.output +++ /dev/null @@ -1,4 +0,0 @@ -{"one":1,"two":2} -null -{"four":4,"one":1,"three":3,"two":2} -{"A":"a","B":"b"} diff --git a/resources/3rdparty/modernjson/doc/examples/rbegin.cpp b/resources/3rdparty/modernjson/doc/examples/rbegin.cpp deleted file mode 100755 index 2ced56d3c..000000000 --- a/resources/3rdparty/modernjson/doc/examples/rbegin.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create an array value - json array = {1, 2, 3, 4, 5}; - - // get an iterator to the reverse-beginning - json::reverse_iterator it = array.rbegin(); - - // serialize the element that the iterator points to - std::cout << *it << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/rbegin.link b/resources/3rdparty/modernjson/doc/examples/rbegin.link deleted file mode 100755 index de269d74b..000000000 --- a/resources/3rdparty/modernjson/doc/examples/rbegin.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/rbegin.output b/resources/3rdparty/modernjson/doc/examples/rbegin.output deleted file mode 100755 index 7ed6ff82d..000000000 --- a/resources/3rdparty/modernjson/doc/examples/rbegin.output +++ /dev/null @@ -1 +0,0 @@ -5 diff --git a/resources/3rdparty/modernjson/doc/examples/rend.cpp b/resources/3rdparty/modernjson/doc/examples/rend.cpp deleted file mode 100755 index ece1c5517..000000000 --- a/resources/3rdparty/modernjson/doc/examples/rend.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create an array value - json array = {1, 2, 3, 4, 5}; - - // get an iterator to the reverse-end - json::reverse_iterator it = array.rend(); - - // increment the iterator to point to the first element - --it; - - // serialize the element that the iterator points to - std::cout << *it << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/rend.link b/resources/3rdparty/modernjson/doc/examples/rend.link deleted file mode 100755 index 17faa9117..000000000 --- a/resources/3rdparty/modernjson/doc/examples/rend.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/rend.output b/resources/3rdparty/modernjson/doc/examples/rend.output deleted file mode 100755 index d00491fd7..000000000 --- a/resources/3rdparty/modernjson/doc/examples/rend.output +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/resources/3rdparty/modernjson/doc/examples/size.cpp b/resources/3rdparty/modernjson/doc/examples/size.cpp deleted file mode 100755 index 5949ed63f..000000000 --- a/resources/3rdparty/modernjson/doc/examples/size.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_object_empty(json::value_t::object); - json j_array = {1, 2, 4, 8, 16}; - json j_array_empty(json::value_t::array); - json j_string = "Hello, world"; - - // call size() - std::cout << j_null.size() << '\n'; - std::cout << j_boolean.size() << '\n'; - std::cout << j_number_integer.size() << '\n'; - std::cout << j_number_float.size() << '\n'; - std::cout << j_object.size() << '\n'; - std::cout << j_object_empty.size() << '\n'; - std::cout << j_array.size() << '\n'; - std::cout << j_array_empty.size() << '\n'; - std::cout << j_string.size() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/size.link b/resources/3rdparty/modernjson/doc/examples/size.link deleted file mode 100755 index 4cc0afa10..000000000 --- a/resources/3rdparty/modernjson/doc/examples/size.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/size.output b/resources/3rdparty/modernjson/doc/examples/size.output deleted file mode 100755 index 3831387b1..000000000 --- a/resources/3rdparty/modernjson/doc/examples/size.output +++ /dev/null @@ -1,9 +0,0 @@ -0 -1 -1 -1 -2 -0 -5 -0 -1 diff --git a/resources/3rdparty/modernjson/doc/examples/swap__array_t.cpp b/resources/3rdparty/modernjson/doc/examples/swap__array_t.cpp deleted file mode 100755 index 3c2cc6b76..000000000 --- a/resources/3rdparty/modernjson/doc/examples/swap__array_t.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON value - json value = {{"array", {1, 2, 3, 4}}}; - - // create an array_t - json::array_t array = {"Snap", "Crackle", "Pop"}; - - // swap the array stored in the JSON value - value["array"].swap(array); - - // output the values - std::cout << "value = " << value << '\n'; - std::cout << "array = " << array << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/swap__array_t.link b/resources/3rdparty/modernjson/doc/examples/swap__array_t.link deleted file mode 100755 index 8851fdb98..000000000 --- a/resources/3rdparty/modernjson/doc/examples/swap__array_t.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/swap__array_t.output b/resources/3rdparty/modernjson/doc/examples/swap__array_t.output deleted file mode 100755 index 365302cc1..000000000 --- a/resources/3rdparty/modernjson/doc/examples/swap__array_t.output +++ /dev/null @@ -1,2 +0,0 @@ -value = {"array":["Snap","Crackle","Pop"]} -array = [1,2,3,4] diff --git a/resources/3rdparty/modernjson/doc/examples/swap__object_t.cpp b/resources/3rdparty/modernjson/doc/examples/swap__object_t.cpp deleted file mode 100755 index d3a0bae25..000000000 --- a/resources/3rdparty/modernjson/doc/examples/swap__object_t.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON value - json value = { {"translation", {{"one", "eins"}, {"two", "zwei"}}} }; - - // create an object_t - json::object_t object = {{"cow", "Kuh"}, {"dog", "Hund"}}; - - // swap the object stored in the JSON value - value["translation"].swap(object); - - // output the values - std::cout << "value = " << value << '\n'; - std::cout << "object = " << object << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/swap__object_t.link b/resources/3rdparty/modernjson/doc/examples/swap__object_t.link deleted file mode 100755 index 8bd7495ef..000000000 --- a/resources/3rdparty/modernjson/doc/examples/swap__object_t.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/swap__object_t.output b/resources/3rdparty/modernjson/doc/examples/swap__object_t.output deleted file mode 100755 index b5c9791bf..000000000 --- a/resources/3rdparty/modernjson/doc/examples/swap__object_t.output +++ /dev/null @@ -1,2 +0,0 @@ -value = {"translation":{"cow":"Kuh","dog":"Hund"}} -object = {"one":"eins","two":"zwei"} diff --git a/resources/3rdparty/modernjson/doc/examples/swap__reference.cpp b/resources/3rdparty/modernjson/doc/examples/swap__reference.cpp deleted file mode 100755 index 178a60bec..000000000 --- a/resources/3rdparty/modernjson/doc/examples/swap__reference.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create two JSON values - json j1 = {1, 2, 3, 4, 5}; - json j2 = {{"pi", 3.141592653589793}, {"e", 2.718281828459045}}; - - // swap the values - j1.swap(j2); - - // output the values - std::cout << "j1 = " << j1 << '\n'; - std::cout << "j2 = " << j2 << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/swap__reference.link b/resources/3rdparty/modernjson/doc/examples/swap__reference.link deleted file mode 100755 index 3ee4c0df8..000000000 --- a/resources/3rdparty/modernjson/doc/examples/swap__reference.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/swap__reference.output b/resources/3rdparty/modernjson/doc/examples/swap__reference.output deleted file mode 100755 index f5495bd55..000000000 --- a/resources/3rdparty/modernjson/doc/examples/swap__reference.output +++ /dev/null @@ -1,2 +0,0 @@ -j1 = {"e":2.71828182845905,"pi":3.14159265358979} -j2 = [1,2,3,4,5] diff --git a/resources/3rdparty/modernjson/doc/examples/swap__string_t.cpp b/resources/3rdparty/modernjson/doc/examples/swap__string_t.cpp deleted file mode 100755 index af166849f..000000000 --- a/resources/3rdparty/modernjson/doc/examples/swap__string_t.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create a JSON value - json value = { "the good", "the bad", "the ugly" }; - - // create string_t - json::string_t string = "the fast"; - - // swap the object stored in the JSON value - value[1].swap(string); - - // output the values - std::cout << "value = " << value << '\n'; - std::cout << "string = " << string << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/swap__string_t.link b/resources/3rdparty/modernjson/doc/examples/swap__string_t.link deleted file mode 100755 index 719313695..000000000 --- a/resources/3rdparty/modernjson/doc/examples/swap__string_t.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/swap__string_t.output b/resources/3rdparty/modernjson/doc/examples/swap__string_t.output deleted file mode 100755 index ae2a0976b..000000000 --- a/resources/3rdparty/modernjson/doc/examples/swap__string_t.output +++ /dev/null @@ -1,2 +0,0 @@ -value = ["the good","the fast","the ugly"] -string = the bad diff --git a/resources/3rdparty/modernjson/doc/examples/type.cpp b/resources/3rdparty/modernjson/doc/examples/type.cpp deleted file mode 100755 index 07ec78856..000000000 --- a/resources/3rdparty/modernjson/doc/examples/type.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON values - json j_null; - json j_boolean = true; - json j_number_integer = 17; - json j_number_float = 23.42; - json j_object = {{"one", 1}, {"two", 2}}; - json j_array = {1, 2, 4, 8, 16}; - json j_string = "Hello, world"; - - // call type() - std::cout << std::boolalpha; - std::cout << (j_null.type() == json::value_t::null) << '\n'; - std::cout << (j_boolean.type() == json::value_t::boolean) << '\n'; - std::cout << (j_number_integer.type() == json::value_t::number_integer) << '\n'; - std::cout << (j_number_float.type() == json::value_t::number_float) << '\n'; - std::cout << (j_object.type() == json::value_t::object) << '\n'; - std::cout << (j_array.type() == json::value_t::array) << '\n'; - std::cout << (j_string.type() == json::value_t::string) << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/type.link b/resources/3rdparty/modernjson/doc/examples/type.link deleted file mode 100755 index f197d847a..000000000 --- a/resources/3rdparty/modernjson/doc/examples/type.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/type.output b/resources/3rdparty/modernjson/doc/examples/type.output deleted file mode 100755 index 814ccfee2..000000000 --- a/resources/3rdparty/modernjson/doc/examples/type.output +++ /dev/null @@ -1,7 +0,0 @@ -true -true -true -true -true -true -true diff --git a/resources/3rdparty/modernjson/doc/examples/unflatten.cpp b/resources/3rdparty/modernjson/doc/examples/unflatten.cpp deleted file mode 100755 index e2b9b6b86..000000000 --- a/resources/3rdparty/modernjson/doc/examples/unflatten.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include - -using json = nlohmann::json; - -int main() -{ - // create JSON value - json j_flattened = - { - {"/answer/everything", 42}, - {"/happy", true}, - {"/list/0", 1}, - {"/list/1", 0}, - {"/list/2", 2}, - {"/name", "Niels"}, - {"/nothing", nullptr}, - {"/object/currency", "USD"}, - {"/object/value", 42.99}, - {"/pi", 3.141} - }; - - // call unflatten() - std::cout << std::setw(4) << j_flattened.unflatten() << '\n'; -} diff --git a/resources/3rdparty/modernjson/doc/examples/unflatten.link b/resources/3rdparty/modernjson/doc/examples/unflatten.link deleted file mode 100755 index 386f5e11f..000000000 --- a/resources/3rdparty/modernjson/doc/examples/unflatten.link +++ /dev/null @@ -1 +0,0 @@ -online \ No newline at end of file diff --git a/resources/3rdparty/modernjson/doc/examples/unflatten.output b/resources/3rdparty/modernjson/doc/examples/unflatten.output deleted file mode 100755 index ed48385ae..000000000 --- a/resources/3rdparty/modernjson/doc/examples/unflatten.output +++ /dev/null @@ -1,18 +0,0 @@ -{ - "answer": { - "everything": 42 - }, - "happy": true, - "list": [ - 1, - 0, - 2 - ], - "name": "Niels", - "nothing": null, - "object": { - "currency": "USD", - "value": 42.99 - }, - "pi": 3.141 -} diff --git a/resources/3rdparty/modernjson/doc/images/range-begin-end.svg b/resources/3rdparty/modernjson/doc/images/range-begin-end.svg deleted file mode 100755 index 8e2b2fb6c..000000000 --- a/resources/3rdparty/modernjson/doc/images/range-begin-end.svg +++ /dev/null @@ -1,435 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - Past-the-last element - - - - begin - - - - end - - - - - diff --git a/resources/3rdparty/modernjson/doc/images/range-rbegin-rend.svg b/resources/3rdparty/modernjson/doc/images/range-rbegin-rend.svg deleted file mode 100755 index dc6045fcf..000000000 --- a/resources/3rdparty/modernjson/doc/images/range-rbegin-rend.svg +++ /dev/null @@ -1,1232 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - Past-the-last element - - - - begin - - - - end - - - - - - - - - - - - - - - - - - - - - - - - - Reversed sequence - - Reverse past-the-last element - - - - - - - - rend - - - - rbegin - - - Reverse iterator stores an iterator to the nextelement than the one it actually refers to - - - - - - - - - diff --git a/resources/3rdparty/modernjson/doc/index.md b/resources/3rdparty/modernjson/doc/index.md deleted file mode 100755 index 5373d4f34..000000000 --- a/resources/3rdparty/modernjson/doc/index.md +++ /dev/null @@ -1,271 +0,0 @@ -# JSON for Modern C++ - -These pages contain the API documentation of JSON for Modern C++, a C++11 header-only JSON class. - -# Contents - -- @link nlohmann::basic_json `basic_json` class @endlink -- [Functions](functions_func.html) - - object inspection - - @link nlohmann::basic_json::dump dump @endlink -- value serialization - - @link nlohmann::basic_json::type type @endlink -- type of the value - - @link nlohmann::basic_json::is_primitive is_primitive @endlink, - @link nlohmann::basic_json::is_structured is_structured @endlink, - @link nlohmann::basic_json::is_null is_null @endlink, - @link nlohmann::basic_json::is_boolean is_boolean @endlink, - @link nlohmann::basic_json::is_number is_number @endlink, - @link nlohmann::basic_json::is_number_integer is_number_integer @endlink, - @link nlohmann::basic_json::is_number_unsigned is_number_unsigned @endlink, - @link nlohmann::basic_json::is_number_float is_number_float @endlink, - @link nlohmann::basic_json::is_object is_object @endlink, - @link nlohmann::basic_json::is_array is_array @endlink, - @link nlohmann::basic_json::is_string is_string @endlink, - @link nlohmann::basic_json::is_discarded is_discarded @endlink -- check for value type - - @link nlohmann::basic_json::operator value_t() const operator value_t @endlink -- type of the value (implicit conversion) - - value access - - @link nlohmann::basic_json::get get @endlink -- get a value - - @link nlohmann::basic_json::get_ptr get_ptr @endlink -- get a value pointer - - @link nlohmann::basic_json::get_ref get_ref @endlink -- get a value reference - - @link nlohmann::basic_json::operator ValueType() const operator ValueType @endlink -- get a value (implicit conversion) - - lexicographical comparison operators - - serialization - - deserialization -- Types - - @link nlohmann::basic_json::array_t arrays @endlink - - @link nlohmann::basic_json::object_t objects @endlink - - @link nlohmann::basic_json::string_t strings @endlink - - @link nlohmann::basic_json::boolean_t booleans @endlink - - numbers - - @link nlohmann::basic_json::number_integer_t signed integers @endlink - - @link nlohmann::basic_json::number_unsigned_t unsigned integers @endlink - - @link nlohmann::basic_json::number_float_t floating-point @endlink - -# Container function overview - -The container functions known from STL have been extended to support the different value types from JSON. However, not all functions can be applied to all value types. Note that the signature of some functions differ between the types; for instance, `at` may be called with either a string to address a key in an object or with an integer to address a value in an array. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
group - function - JSON value type
objectarraystringnumberbooleannull
iterators`begin`@link nlohmann::basic_json::begin `begin` @endlink@link nlohmann::basic_json::begin `begin` @endlink@link nlohmann::basic_json::begin `begin` @endlink@link nlohmann::basic_json::begin `begin` @endlink@link nlohmann::basic_json::begin `begin` @endlink@link nlohmann::basic_json::begin `begin` @endlink (returns `end()`)
`cbegin`@link nlohmann::basic_json::cbegin `cbegin` @endlink@link nlohmann::basic_json::cbegin `cbegin` @endlink@link nlohmann::basic_json::cbegin `cbegin` @endlink@link nlohmann::basic_json::cbegin `cbegin` @endlink@link nlohmann::basic_json::cbegin `cbegin` @endlink@link nlohmann::basic_json::cbegin `cbegin` @endlink (returns `cend()`)
`end`@link nlohmann::basic_json::end `end` @endlink@link nlohmann::basic_json::end `end` @endlink@link nlohmann::basic_json::end `end` @endlink@link nlohmann::basic_json::end `end` @endlink@link nlohmann::basic_json::end `end` @endlink@link nlohmann::basic_json::end `end` @endlink
`cend`@link nlohmann::basic_json::cend `cend` @endlink@link nlohmann::basic_json::cend `cend` @endlink@link nlohmann::basic_json::cend `cend` @endlink@link nlohmann::basic_json::cend `cend` @endlink@link nlohmann::basic_json::cend `cend` @endlink@link nlohmann::basic_json::cend `cend` @endlink
`rbegin`@link nlohmann::basic_json::rbegin `rbegin` @endlink@link nlohmann::basic_json::rbegin `rbegin` @endlink@link nlohmann::basic_json::rbegin `rbegin` @endlink@link nlohmann::basic_json::rbegin `rbegin` @endlink@link nlohmann::basic_json::rbegin `rbegin` @endlink@link nlohmann::basic_json::rbegin `rbegin` @endlink
`crbegin`@link nlohmann::basic_json::crbegin `crbegin` @endlink@link nlohmann::basic_json::crbegin `crbegin` @endlink@link nlohmann::basic_json::crbegin `crbegin` @endlink@link nlohmann::basic_json::crbegin `crbegin` @endlink@link nlohmann::basic_json::crbegin `crbegin` @endlink@link nlohmann::basic_json::crbegin `crbegin` @endlink
`rend`@link nlohmann::basic_json::rend `rend` @endlink@link nlohmann::basic_json::rend `rend` @endlink@link nlohmann::basic_json::rend `rend` @endlink@link nlohmann::basic_json::rend `rend` @endlink@link nlohmann::basic_json::rend `rend` @endlink@link nlohmann::basic_json::rend `rend` @endlink
`crend`@link nlohmann::basic_json::crend `crend` @endlink@link nlohmann::basic_json::crend `crend` @endlink@link nlohmann::basic_json::crend `crend` @endlink@link nlohmann::basic_json::crend `crend` @endlink@link nlohmann::basic_json::crend `crend` @endlink@link nlohmann::basic_json::crend `crend` @endlink
element
access
`at`@link nlohmann::basic_json::at(const typename object_t::key_type & key) `at` @endlink@link nlohmann::basic_json::at(size_type) `at` @endlinkthrows `std::domain_error`throws `std::domain_error`throws `std::domain_error`throws `std::domain_error`
`operator[]`@link nlohmann::basic_json::operator[](const typename object_t::key_type &key) `operator[]` @endlink@link nlohmann::basic_json::operator[](size_type) `operator[]` @endlinkthrows `std::domain_error`throws `std::domain_error`throws `std::domain_error`@link nlohmann::basic_json::operator[](const typename object_t::key_type & key) `operator[]` @endlink (creates object)
@link nlohmann::basic_json::operator[](size_type) `operator[]` @endlink (creates array)
`front`@link nlohmann::basic_json::front `front` @endlink@link nlohmann::basic_json::front `front` @endlink@link nlohmann::basic_json::front `front` @endlink@link nlohmann::basic_json::front `front` @endlink@link nlohmann::basic_json::front `front` @endlinkthrows `std::out_of_range`
`back`@link nlohmann::basic_json::back `back` @endlink@link nlohmann::basic_json::back `back` @endlink@link nlohmann::basic_json::back `back` @endlink@link nlohmann::basic_json::back `back` @endlink@link nlohmann::basic_json::back `back` @endlinkthrows `std::out_of_range`
capacity`empty`@link nlohmann::basic_json::empty `empty` @endlink@link nlohmann::basic_json::empty `empty` @endlink@link nlohmann::basic_json::empty `empty` @endlink (returns `false`)@link nlohmann::basic_json::empty `empty` @endlink (returns `false`)@link nlohmann::basic_json::empty `empty` @endlink (returns `false`)@link nlohmann::basic_json::empty `empty` @endlink (returns `true`)
`size`@link nlohmann::basic_json::size `size` @endlink@link nlohmann::basic_json::size `size` @endlink@link nlohmann::basic_json::size `size` @endlink (returns `1`)@link nlohmann::basic_json::size `size` @endlink (returns `1`)@link nlohmann::basic_json::size `size` @endlink (returns `1`)@link nlohmann::basic_json::size `size` @endlink (returns `0`)
`max_size_`@link nlohmann::basic_json::max_size `max_size` @endlink@link nlohmann::basic_json::max_size `max_size` @endlink@link nlohmann::basic_json::max_size `max_size` @endlink (returns `1`)@link nlohmann::basic_json::max_size `max_size` @endlink (returns `1`)@link nlohmann::basic_json::max_size `max_size` @endlink (returns `1`)@link nlohmann::basic_json::max_size `max_size` @endlink (returns `0`)
modifiers`clear`@link nlohmann::basic_json::clear `clear` @endlink@link nlohmann::basic_json::clear `clear` @endlink@link nlohmann::basic_json::clear `clear` @endlink@link nlohmann::basic_json::clear `clear` @endlink@link nlohmann::basic_json::clear `clear` @endlink@link nlohmann::basic_json::clear `clear` @endlink
`insert`throws `std::domain_error`@link nlohmann::basic_json::insert `insert` @endlinkthrows `std::domain_error`throws `std::domain_error`throws `std::domain_error`throws `std::domain_error`
`erase`@link nlohmann::basic_json::erase `erase` @endlink@link nlohmann::basic_json::erase `erase` @endlink@link nlohmann::basic_json::erase `erase` @endlink (converts to null)@link nlohmann::basic_json::erase `erase` @endlink (converts to null)@link nlohmann::basic_json::erase `erase` @endlink (converts to null)throws
`push_back`@link nlohmann::basic_json::push_back(const typename object_t::value_type & val) `push_back` @endlink@link nlohmann::basic_json::push_back(const nlohmann::basic_json &) `push_back` @endlinkthrows `std::domain_error`throws `std::domain_error`throws `std::domain_error`@link nlohmann::basic_json::push_back(const typename object_t::value_type & val) `push_back` @endlink (creates object)
@link nlohmann::basic_json::push_back(const nlohmann::basic_json &) `push_back` @endlink (creates array)
`swap`@link nlohmann::basic_json::swap `swap` @endlink@link nlohmann::basic_json::swap `swap` @endlink@link nlohmann::basic_json::swap `swap` @endlink@link nlohmann::basic_json::swap `swap` @endlink@link nlohmann::basic_json::swap `swap` @endlink@link nlohmann::basic_json::swap `swap` @endlink
lookup`find`@link nlohmann::basic_json::find `find` @endlink (returns `end()`)@link nlohmann::basic_json::find `find` @endlink@link nlohmann::basic_json::find `find` @endlink (returns `end()`)@link nlohmann::basic_json::find `find` @endlink (returns `end()`)@link nlohmann::basic_json::find `find` @endlink (returns `end()`)@link nlohmann::basic_json::find `find` @endlink (returns `end()`)
`count`@link nlohmann::basic_json::count `count` @endlink (returns `0`)@link nlohmann::basic_json::count `count` @endlink@link nlohmann::basic_json::count `count` @endlink (returns `0`)@link nlohmann::basic_json::count `count` @endlink (returns `0`)@link nlohmann::basic_json::count `count` @endlink (returns `0`)@link nlohmann::basic_json::count `count` @endlink (returns `0`)
- -@copyright Copyright © 2013-2016 Niels Lohmann. The code is licensed under the [MIT License](http://opensource.org/licenses/MIT). - -@author [Niels Lohmann](http://nlohmann.me) -@see https://github.com/nlohmann/json to download the source code - -@version 2.0.0 diff --git a/resources/3rdparty/modernjson/doc/json.gif b/resources/3rdparty/modernjson/doc/json.gif deleted file mode 100755 index 7cd943717..000000000 Binary files a/resources/3rdparty/modernjson/doc/json.gif and /dev/null differ diff --git a/resources/3rdparty/modernjson/doc/scripts/git-update-ghpages b/resources/3rdparty/modernjson/doc/scripts/git-update-ghpages deleted file mode 100755 index f9760fee6..000000000 --- a/resources/3rdparty/modernjson/doc/scripts/git-update-ghpages +++ /dev/null @@ -1,221 +0,0 @@ -#!/usr/bin/env ruby -# git update-ghpages user/repo -b gh-pages -p manual/ -i - -require 'fileutils' -require 'tmpdir' - -module Params - def extract(what) i = index(what) and slice!(i, 2)[1] end; - def first_is(what) shift if what.include?(self.first); end - def self.[](*what) what.extend Params; end - def ===(argv) argv.first_is(self); end -end - -# ============================================================================ - -ARGV.extend Params - -class CLI - # CLI options - attr_reader :prefix #=> "doc/" - attr_reader :input #=> "/home/me/projects/foo" - attr_reader :message #=> "Updated" - attr_reader :repo #=> "git@github.com:me/project.git" - attr_reader :url #=> "http://me.github.com/project" - attr_reader :branch #=> "gh-pages" - - def verbose?() @verbose; end - def force?() @force; end - def simulate?() @simulate; end - - def initialize - # Switches - @verbose = !! (ARGV.extract('--verbose') || ARGV.delete('-v')) - @simulate = !! (ARGV.extract('--simulate') || ARGV.delete('-s')) - @force = !! (ARGV.delete('--force') || ARGV.delete('-f')) - - # Stuff - @prefix = ARGV.extract('--prefix') || ARGV.extract('-p') || '' - @input = File.expand_path(ARGV.extract('--input') || ARGV.extract('-i') || '.') - @message = ARGV.extract('--message') || ARGV.extract('-m') || 'Update' - - # Github info - branch = ARGV.extract('--branch') || ARGV.extract('-b') || nil - @repo, @url, @branch = get_github_info(ARGV.shift, branch) - end - - def git_current_branch - `git rev-parse --abbrev-ref HEAD`.strip - end - - def git_deploy - in_temp_path do |temppath| - status "Cloning repository" - system! "git clone #{repo} -b #{branch} #{temppath}" - - if git_current_branch != branch - status "Warning: No #{branch} branch found in repo, creating one." - return git_deploy_force - end - - copy_files input, File.join(temppath, prefix) - - status "Committing files" - system! "git add .; git add -u; git commit -m #{message.to_s.inspect}" - - unless simulate? - status "Updating repo" - system! "git push origin #{branch}" - end - true - end - end - - def git_deploy_force - in_temp_path do |temppath| - status "Creating new repository" - system! "git init ." - system! "git checkout -b gh-pages" - - copy_files input, File.join(temppath, prefix) - - status "Committing files" - system! "git add . && git commit -m #{message.to_s.inspect}" - - unless simulate? - status "Updating repo" - system! "git push #{repo} gh-pages:#{branch} --force" - end - true - end - end - - def get_github_info(repo, branch=nil, prefix=nil) - if github_format?(repo) - user, repo_name = repo.split('/') - r = "git@github.com:#{repo}.git" - - # User page or project page? - if repo_name =~ /\.github\.com/ - [r, "http://#{repo_name}/#{prefix}", branch || 'master' ] - else - [r, "http://#{user}.github.com/#{repo_name}/#{prefix}", branch || 'gh-pages' ] - end - else - [repo, nil, branch] - end - end - - def run! - unless repo - print_help - exit 128 - end - - status "Deploying to #{repo} (branch #{branch})" - msg "NOTE: Running in simulation mode." if simulate? - msg "WARNING: If the repository has gh-pages history, it with be overriden." if force? && !simulate? - - result = force? ? git_deploy_force : git_deploy - - if result - puts "" - status "Done." - msg "See: #{url}" if url && !simulate? - else - tip "Failed." - exit 1 - end - end - - def status(str) - puts "#{c('===>',34)} #{c(str, 32)}" - end - - def msg(str) - puts " #{c(str, 32)}" - end - - def c(str, color) - "\033[#{color}m#{str}\033[0m" - end - - def print_help - tip \ - %{Usage: git update-ghpages username/repository [options] - - Flags: - -f, --force Force an update (WARNING: kills the history!) - -s, --simulate Creates the repository, but doesn't push. - -v, --verbose Verbose mode - - Options: - -p PATH, --prefix The prefix - -i PATH, --input Input (defaults to current directory) - -b BRANCH, --branch The branch to deploy to (defaults to gh-pages) - -m MSG, --message Commit message (defaults to 'Update') - - Examples: - - Update the repo 'coffee' of github user 'james' with the files from the - current directory. The files will be in http://james.github.com/coffee. - - $ git update-ghpages james/coffee - - Same as above, but take the files from 'doc/'. - - $ git update-ghpages james/coffee -i doc - - Same as the first, but the files will instead be in - http://james.github.com/coffee/manual. - - $ git update-ghpages james/coffee -i doc -p manual - }.gsub(/^ {4}/, '') - end - -private # Helpers - - def tip(msg) - $stderr.write "#{msg}\n" - end - - def github_format?(str) - str =~ /^([A-Za-z0-9\-_]+)\/([A-Za-z0-9\-_\.]+)$/ - end - - # Performs actions inside a temp path. - def in_temp_path(&blk) - require 'tmpdir' - Dir.mktmpdir do |dir| - Dir.chdir(dir) { yield dir } - end - end - - def system!(str) - puts `#{str} 2>&1`.strip.gsub(/^/, " ") - raise "Failed with exit code #{$?.to_i}" unless $?.to_i == 0 - end - - # Returns the current branch name - def git_branch - `git symbolic-ref HEAD`.strip.split('/').last - end - - # Copy files from source folder to another - def copy_files(from, to) - status "Copying files #{from} => #{to}..." if verbose? - - Dir["#{from}/**/*"].each do |f| - next unless File.file?(f) - - target = File.join(to, f.gsub(/^#{Regexp.escape from}/, '')) - - FileUtils.mkdir_p File.dirname(target) - msg "%20s => %-20s" % [f, target] if verbose? - FileUtils.cp f, target - end - end - -end - -CLI.new.run! diff --git a/resources/3rdparty/modernjson/doc/scripts/send_to_wandbox.py b/resources/3rdparty/modernjson/doc/scripts/send_to_wandbox.py deleted file mode 100755 index 0158fb16a..000000000 --- a/resources/3rdparty/modernjson/doc/scripts/send_to_wandbox.py +++ /dev/null @@ -1,120 +0,0 @@ -#! /usr/bin/env python - -# This script uploads a directory to Wandbox (http://melpon.org/wandbox), -# which is an online compiler environment, and prints a permalink to the -# uploaded code. We use this to provide a "Try it online" version of the -# library to make the barrier to entry as low as possible. -# -# This script was adapted from the script proposed in -# https://github.com/melpon/wandbox/issues/153. -# -# To know how to use this script: ./wandbox.py --help -# -# Copyright Louis Dionne 2015 -# Distributed under the Boost Software License, Version 1.0. -# (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) - -import argparse -import fnmatch -import json -import os -import re -import urllib2 - - -# Strips C and C++ comments from the given string. -# -# Copied from http://stackoverflow.com/a/241506/627587. -def strip_comments(text): - def replacer(match): - s = match.group(0) - if s.startswith('/'): - return " " # note: a space and not an empty string - else: - return s - pattern = re.compile( - r'//.*?$|/\*.*?\*/|\'(?:\\.|[^\\\'])*\'|"(?:\\.|[^\\"])*"', - re.DOTALL | re.MULTILINE - ) - return re.sub(pattern, replacer, text) - - -# Post the given JSON data to Wandbox's API, and return the result -# as a JSON object. -def upload(options): - request = urllib2.Request('http://melpon.org/wandbox/api/compile.json') - request.add_header('Content-Type', 'application/json') - response = urllib2.urlopen(request, json.dumps(options)) - return json.loads(response.read()) - - -# Returns a list of the '.hpp' headers in the given directory and in -# subdirectories. -# -# The path must be absolute, and the returned paths are all absolute too. -def headers(path): - return [ - os.path.join(dir, file) - for (dir, _, files) in os.walk(path) - for file in fnmatch.filter(files, "*.hpp") - ] - - -def main(): - parser = argparse.ArgumentParser(description= - """Upload a directory to Wandbox (http://melpon.org/wandbox). - - On success, the program prints a permalink to the uploaded - directory on Wandbox and returns 0. On error, it prints the - response from the Wandbox API and returns 1. - - Note that the comments are stripped from all the headers in the - uploaded directory. - """ - ) - parser.add_argument('directory', type=str, help= - """A directory to upload to Wandbox. - - The path may be either absolute or relative to the current directory. - However, the names of the files uploaded to Wandbox will all be - relative to this directory. This way, one can easily specify the - directory to be '/some/project/include', and the uploaded files - will be uploaded as-if they were rooted at '/some/project/include' - """) - parser.add_argument('main', type=str, help= - """The main source file. - - The path may be either absolute or relative to the current directory. - """ - ) - args = parser.parse_args() - directory = os.path.abspath(args.directory) - if not os.path.exists(directory): - raise Exception("'%s' is not a valid directory" % args.directory) - - cpp = os.path.abspath(args.main) - if not os.path.exists(cpp): - raise Exception("'%s' is not a valid file name" % args.main) - - response = upload({ - 'code': open(cpp).read(), - 'codes': [{ - 'file': os.path.relpath(header, directory), - #'code': strip_comments(open(header).read()) - 'code': open(header).read() - } for header in headers(directory)], - 'options': 'boost-nothing,c++11', - 'compiler': 'gcc-4.9.2', - 'save': True, - 'compiler-option-raw': '-I.' - }) - - if 'status' in response and response['status'] == '0': - print response['url'] - return 0 - else: - print response - return 1 - - -exit(main()) diff --git a/resources/3rdparty/modernjson/src/json.hpp b/resources/3rdparty/modernjson/src/json.hpp index 436467632..8469a499f 100755 --- a/resources/3rdparty/modernjson/src/json.hpp +++ b/resources/3rdparty/modernjson/src/json.hpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ -| | |__ | | | | | | version 2.0.0 +| | |__ | | | | | | version 2.0.5 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . @@ -32,20 +32,22 @@ SOFTWARE. #include #include #include -#include #include #include #include -#include +#include #include +#include #include #include #include #include #include #include +#include #include #include +#include #include #include #include @@ -53,12 +55,34 @@ SOFTWARE. #include #include +// exclude unsupported compilers +#if defined(__clang__) + #define CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) + #if CLANG_VERSION < 30400 + #error "unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers" + #endif +#elif defined(__GNUC__) + #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) + #if GCC_VERSION < 40900 + #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers" + #endif +#endif + // disable float-equal warnings on GCC/clang #if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wfloat-equal" #endif +// allow for portable deprecation warnings +#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) + #define JSON_DEPRECATED __attribute__((deprecated)) +#elif defined(_MSC_VER) + #define JSON_DEPRECATED __declspec(deprecated) +#else + #define JSON_DEPRECATED +#endif + /*! @brief namespace for Niels Lohmann @see https://github.com/nlohmann @@ -76,7 +100,13 @@ namespace { /*! @brief Helper to determine whether there's a key_type for T. + +Thus helper is used to tell associative containers apart from other containers +such as sequence containers. For instance, `std::map` passes the test as it +contains a `mapped_type`, whereas `std::vector` fails the test. + @sa http://stackoverflow.com/a/7728728/266378 +@since version 1.0.0 */ template struct has_mapped_type @@ -90,11 +120,18 @@ struct has_mapped_type /*! @brief helper class to create locales with decimal point + +This struct is used a default locale during the JSON serialization. JSON +requires the decimal point to be `.`, so this function overloads the +`do_decimal_point()` function to return `.`. This function is called by +float-to-string conversions to retrieve the decimal separator between integer +and fractional parts. + @sa https://github.com/nlohmann/json/issues/51#issuecomment-86869315 +@since version 2.0.0 */ -class DecimalSeparator : public std::numpunct +struct DecimalSeparator : std::numpunct { - protected: char do_decimal_point() const { return '.'; @@ -163,6 +200,13 @@ default) JSON values can be used like STL containers and provide reverse iterator access. +@invariant The member variables @a m_value and @a m_type have the following +relationship: +- If `m_type == value_t::object`, then `m_value.object != nullptr`. +- If `m_type == value_t::array`, then `m_value.array != nullptr`. +- If `m_type == value_t::string`, then `m_value.string != nullptr`. +The invariants are checked by member function assert_invariant(). + @internal @note ObjectType trick from http://stackoverflow.com/a/9860911 @endinternal @@ -188,13 +232,8 @@ class basic_json { private: /// workaround type for MSVC - using basic_json_t = basic_json; public: @@ -207,6 +246,8 @@ class basic_json ///////////////////// /// @name container types + /// The canonic container types to use @ref basic_json like any other STL + /// container. /// @{ /// the type of elements in a basic_json container @@ -256,6 +297,8 @@ class basic_json /////////////////////////// /// @name JSON value data types + /// The data types to store a JSON value. These types are derived from + /// the template arguments passed to class @ref basic_json. /// @{ /*! @@ -358,7 +401,7 @@ class basic_json @tparam ArrayType container type to store arrays (e.g., `std::vector` or `std::list`) - @tparam AllocatorType allocator to use for arrays (e.g., `std::allocator`) + @tparam AllocatorType allocator to use for arrays (e.g., `std::allocator`) #### Default type @@ -595,15 +638,14 @@ class basic_json > that implementations will agree exactly on their numeric values. As this range is a subrange (when considered in conjunction with the - number_integer_t type) of the exactly supported range [0, UINT64_MAX], this - class's integer type is interoperable. + number_integer_t type) of the exactly supported range [0, UINT64_MAX], + this class's integer type is interoperable. #### Storage Integer number values are stored directly inside a @ref basic_json type. @sa @ref number_float_t -- type for number values (floating-point) - @sa @ref number_integer_t -- type for number values (integer) @since version 2.0.0 @@ -691,7 +733,19 @@ class basic_json This enumeration collects the different JSON types. It is internally used to distinguish the stored values, and the functions @ref is_null(), @ref is_object(), @ref is_array(), @ref is_string(), @ref is_boolean(), @ref - is_number(), and @ref is_discarded() rely on it. + is_number() (with @ref is_number_integer(), @ref is_number_unsigned(), and + @ref is_number_float()), @ref is_discarded(), @ref is_primitive(), and + @ref is_structured() rely on it. + + @note There are three enumeration entries (number_integer, + number_unsigned, and number_float), because the library distinguishes + these three types for numbers: @ref number_unsigned_t is used for unsigned + integers, @ref number_integer_t is used for signed integers, and @ref + number_float_t is used for floating-point numbers or to approximate + integers which do not fit in the limits of their respective type. + + @sa @ref basic_json(const value_t value_type) -- create a JSON value with + the default value for a given type @since version 1.0.0 */ @@ -702,7 +756,7 @@ class basic_json array, ///< array (ordered collection of values) string, ///< string value boolean, ///< boolean value - number_integer, ///< number value (integer) + number_integer, ///< number value (signed integer) number_unsigned, ///< number value (unsigned integer) number_float, ///< number value (floating-point) discarded ///< discarded by the the parser callback function @@ -711,73 +765,6 @@ class basic_json private: - /*! - @brief a type to hold JSON type information - - This bitfield type holds information about JSON types. It is internally - used to hold the basic JSON type enumeration, as well as additional - information in the case of values that have been parsed from a string - including whether of not it was created directly or parsed, and in the - case of floating point numbers the number of significant figures in the - original representaiton and if it was in exponential form, if a '+' was - included in the exponent and the capitilization of the exponent marker. - The sole purpose of this information is to permit accurate round trips. - - @since version 2.0.0 - */ - union type_data_t - { - struct - { - /// the type of the value (@ref value_t) - uint16_t type : 4; - /// whether the number was parsed from a string - uint16_t parsed : 1; - /// whether parsed number contained an exponent ('e'/'E') - uint16_t has_exp : 1; - /// whether parsed number contained a plus in the exponent - uint16_t exp_plus : 1; - /// whether parsed number's exponent was capitalized ('E') - uint16_t exp_cap : 1; - /// the number of figures for a parsed number - uint16_t precision : 8; - } bits; - uint16_t data; - - /// return the type as value_t - operator value_t() const - { - return static_cast(bits.type); - } - - /// test type for equality (ignore other fields) - bool operator==(const value_t& rhs) const - { - return static_cast(bits.type) == rhs; - } - - /// assignment - type_data_t& operator=(value_t rhs) - { - bits.type = static_cast(rhs) & 15; // avoid overflow - return *this; - } - - /// construct from value_t - type_data_t(value_t t) noexcept - { - *reinterpret_cast(this) = 0; - bits.type = static_cast(t) & 15; // avoid overflow - } - - /// default constructor - type_data_t() noexcept - { - data = 0; - bits.type = reinterpret_cast(value_t::null); - } - }; - /// helper for exception-safe object creation template static T* create(Args&& ... args) @@ -789,6 +776,7 @@ class basic_json }; std::unique_ptr object(alloc.allocate(1), deleter); alloc.construct(object.get(), std::forward(args)...); + assert(object.get() != nullptr); return object.release(); } @@ -799,7 +787,24 @@ class basic_json /*! @brief a JSON value - The actual storage for a JSON value of the @ref basic_json class. + The actual storage for a JSON value of the @ref basic_json class. This + union combines the different storage types for the JSON value types + defined in @ref value_t. + + JSON type | value_t type | used type + --------- | --------------- | ------------------------ + object | object | pointer to @ref object_t + array | array | pointer to @ref array_t + string | string | pointer to @ref string_t + boolean | boolean | @ref boolean_t + number | number_integer | @ref number_integer_t + number | number_unsigned | @ref number_unsigned_t + number | number_float | @ref number_float_t + null | null | *no value is stored* + + @note Variable-length types (objects, arrays, and strings) are stored as + pointers. The size of the union should not exceed 64 bits if the default + value types are used. @since version 1.0.0 */ @@ -903,6 +908,21 @@ class basic_json } }; + /*! + @brief checks the class invariants + + This function asserts the class invariants. It needs to be called at the + end of every constructor to make sure that created objects respect the + invariant. Furthermore, it has to be called each time the type of a JSON + value is changed, because the invariant expresses a relationship between + @a m_type and @a m_value. + */ + void assert_invariant() const + { + assert(m_type != value_t::object or m_value.object != nullptr); + assert(m_type != value_t::array or m_value.array != nullptr); + assert(m_type != value_t::string or m_value.string != nullptr); + } public: ////////////////////////// @@ -915,6 +935,8 @@ class basic_json This enumeration lists the parser events that can trigger calling a callback function of type @ref parser_callback_t during parsing. + @image html callback_events.png "Example when certain parse events are triggered" + @since version 1.0.0 */ enum class parse_event_t : uint8_t @@ -937,12 +959,13 @@ class basic_json @brief per-element parser callback type With a parser callback function, the result of parsing a JSON text can be - influenced. When passed to @ref parse(std::istream&, parser_callback_t) or - @ref parse(const string_t&, parser_callback_t), it is called on certain - events (passed as @ref parse_event_t via parameter @a event) with a set - recursion depth @a depth and context JSON value @a parsed. The return - value of the callback function is a boolean indicating whether the element - that emitted the callback shall be kept or not. + influenced. When passed to @ref parse(std::istream&, const + parser_callback_t) or @ref parse(const char*, const parser_callback_t), + it is called on certain events (passed as @ref parse_event_t via parameter + @a event) with a set recursion depth @a depth and context JSON value + @a parsed. The return value of the callback function is a boolean + indicating whether the element that emitted the callback shall be kept or + not. We distinguish six scenarios (determined by the event type) in which the callback function can be called. The following table describes the values @@ -957,6 +980,8 @@ class basic_json parse_event_t::array_end | the parser read `]` and finished processing a JSON array | depth of the parent of the JSON array | the parsed JSON array parse_event_t::value | the parser finished reading a JSON value | depth of the value | the parsed JSON value + @image html callback_events.png "Example when certain parse events are triggered" + Discarding a value (i.e., returning `false`) has different effects depending on the context in which function was called: @@ -978,11 +1003,13 @@ class basic_json skipped completely or replaced by an empty discarded object. @sa @ref parse(std::istream&, parser_callback_t) or - @ref parse(const string_t&, parser_callback_t) for examples + @ref parse(const char*, parser_callback_t) for examples @since version 1.0.0 */ - using parser_callback_t = std::function; + using parser_callback_t = std::function; ////////////////// @@ -990,6 +1017,8 @@ class basic_json ////////////////// /// @name constructors and destructors + /// Constructors of class @ref basic_json, copy/move constructor, copy + /// assignment, static functions creating objects, and the destructor. /// @{ /*! @@ -1033,40 +1062,15 @@ class basic_json */ basic_json(const value_t value_type) : m_type(value_type), m_value(value_type) - {} - - /*! - @brief create a null object (implicitly) - - Create a `null` JSON value. This is the implicit version of the `null` - value constructor as it takes no parameters. - - @complexity Constant. - - @exceptionsafety No-throw guarantee: this constructor never throws - exceptions. - - @requirement This function helps `basic_json` satisfying the - [Container](http://en.cppreference.com/w/cpp/concept/Container) - requirements: - - The complexity is constant. - - As postcondition, it holds: `basic_json().empty() == true`. - - @liveexample{The following code shows the constructor for a `null` JSON - value.,basic_json} - - @sa @ref basic_json(std::nullptr_t) -- create a `null` value - - @since version 1.0.0 - */ - basic_json() = default; + { + assert_invariant(); + } /*! - @brief create a null object (explicitly) + @brief create a null object - Create a `null` JSON value. This is the explicitly version of the `null` - value constructor as it takes a null pointer as parameter. It allows to - create `null` values by explicitly assigning a `nullptr` to a JSON value. + Create a `null` JSON value. It either takes a null pointer as parameter + (explicitly creating `null`) or no parameter (implicitly creating `null`). The passed null pointer itself is not read -- it is only used to choose the right constructor. @@ -1075,17 +1079,16 @@ class basic_json @exceptionsafety No-throw guarantee: this constructor never throws exceptions. - @liveexample{The following code shows the constructor with null pointer - parameter.,basic_json__nullptr_t} - - @sa @ref basic_json() -- default constructor (implicitly creating a `null` - value) + @liveexample{The following code shows the constructor with and without a + null pointer parameter.,basic_json__nullptr_t} @since version 1.0.0 */ - basic_json(std::nullptr_t) noexcept + basic_json(std::nullptr_t = nullptr) noexcept : basic_json(value_t::null) - {} + { + assert_invariant(); + } /*! @brief create an object (explicit) @@ -1108,7 +1111,9 @@ class basic_json */ basic_json(const object_t& val) : m_type(value_t::object), m_value(val) - {} + { + assert_invariant(); + } /*! @brief create an object (implicit) @@ -1136,17 +1141,16 @@ class basic_json @since version 1.0.0 */ - template ::value and - std::is_constructible::value, int>::type - = 0> + template::value and + std::is_constructible::value, int>::type = 0> basic_json(const CompatibleObjectType& val) : m_type(value_t::object) { using std::begin; using std::end; m_value.object = create(begin(val), end(val)); + assert_invariant(); } /*! @@ -1170,7 +1174,9 @@ class basic_json */ basic_json(const array_t& val) : m_type(value_t::array), m_value(val) - {} + { + assert_invariant(); + } /*! @brief create an array (implicit) @@ -1198,22 +1204,21 @@ class basic_json @since version 1.0.0 */ - template ::value and - not std::is_same::value and - not std::is_same::value and - not std::is_same::value and - not std::is_same::value and - not std::is_same::value and - std::is_constructible::value, int>::type - = 0> + template::value and + not std::is_same::value and + not std::is_same::value and + not std::is_same::value and + not std::is_same::value and + not std::is_same::value and + std::is_constructible::value, int>::type = 0> basic_json(const CompatibleArrayType& val) : m_type(value_t::array) { using std::begin; using std::end; m_value.array = create(begin(val), end(val)); + assert_invariant(); } /*! @@ -1239,7 +1244,9 @@ class basic_json */ basic_json(const string_t& val) : m_type(value_t::string), m_value(val) - {} + { + assert_invariant(); + } /*! @brief create a string (explicit) @@ -1263,7 +1270,9 @@ class basic_json */ basic_json(const typename string_t::value_type* val) : basic_json(string_t(val)) - {} + { + assert_invariant(); + } /*! @brief create a string (implicit) @@ -1288,13 +1297,13 @@ class basic_json @since version 1.0.0 */ - template ::value, int>::type - = 0> + template::value, int>::type = 0> basic_json(const CompatibleStringType& val) : basic_json(string_t(val)) - {} + { + assert_invariant(); + } /*! @brief create a boolean (explicit) @@ -1312,7 +1321,9 @@ class basic_json */ basic_json(boolean_t val) noexcept : m_type(value_t::boolean), m_value(val) - {} + { + assert_invariant(); + } /*! @brief create an integer number (explicit) @@ -1337,15 +1348,14 @@ class basic_json @since version 1.0.0 */ - template::value) - and std::is_same::value - , int>::type - = 0> + template::value) and + std::is_same::value, int>::type = 0> basic_json(const number_integer_t val) noexcept : m_type(value_t::number_integer), m_value(val) - {} + { + assert_invariant(); + } /*! @brief create an integer number from an enum type (explicit) @@ -1375,7 +1385,9 @@ class basic_json basic_json(const int val) noexcept : m_type(value_t::number_integer), m_value(static_cast(val)) - {} + { + assert_invariant(); + } /*! @brief create an integer number (implicit) @@ -1402,25 +1414,25 @@ class basic_json @since version 1.0.0 */ - template::value and std::numeric_limits::is_integer and std::numeric_limits::is_signed, - CompatibleNumberIntegerType>::type - = 0> + CompatibleNumberIntegerType>::type = 0> basic_json(const CompatibleNumberIntegerType val) noexcept : m_type(value_t::number_integer), m_value(static_cast(val)) - {} + { + assert_invariant(); + } /*! @brief create an unsigned integer number (explicit) Create an unsigned integer number JSON value with a given content. - @tparam T helper type to compare number_unsigned_t and unsigned int - (not visible in) the interface. + @tparam T helper type to compare number_unsigned_t and unsigned int (not + visible in) the interface. @param[in] val an integer to create a JSON number from @@ -1431,15 +1443,14 @@ class basic_json @since version 2.0.0 */ - template::value) - and std::is_same::value - , int>::type - = 0> + template::value) and + std::is_same::value, int>::type = 0> basic_json(const number_unsigned_t val) noexcept : m_type(value_t::number_unsigned), m_value(val) - {} + { + assert_invariant(); + } /*! @brief create an unsigned number (implicit) @@ -1461,17 +1472,17 @@ class basic_json @since version 2.0.0 */ - template < typename CompatibleNumberUnsignedType, typename - std::enable_if < - std::is_constructible::value and - std::numeric_limits::is_integer and - !std::numeric_limits::is_signed, - CompatibleNumberUnsignedType >::type - = 0 > + template::value and + std::numeric_limits::is_integer and + not std::numeric_limits::is_signed, + CompatibleNumberUnsignedType>::type = 0> basic_json(const CompatibleNumberUnsignedType val) noexcept : m_type(value_t::number_unsigned), m_value(static_cast(val)) - {} + { + assert_invariant(); + } /*! @brief create a floating-point number (explicit) @@ -1484,8 +1495,8 @@ class basic_json disallows NaN values: > Numeric values that cannot be represented in the grammar below (such as > Infinity and NaN) are not permitted. - In case the parameter @a val is not a number, a JSON null value is - created instead. + In case the parameter @a val is not a number, a JSON null value is created + instead. @complexity Constant. @@ -1506,6 +1517,8 @@ class basic_json m_type = value_t::null; m_value = json_value(); } + + assert_invariant(); } /*! @@ -1539,14 +1552,14 @@ class basic_json @since version 1.0.0 */ - template::value and - std::is_floating_point::value>::type - > + std::is_floating_point::value>::type> basic_json(const CompatibleNumberFloatType val) noexcept : basic_json(number_float_t(val)) - {} + { + assert_invariant(); + } /*! @brief create a container (array or object) from an initializer list @@ -1558,21 +1571,21 @@ class basic_json 1. If the list is empty, an empty JSON object value `{}` is created. 2. If the list consists of pairs whose first element is a string, a JSON - object value is created where the first elements of the pairs are treated - as keys and the second elements are as values. + object value is created where the first elements of the pairs are + treated as keys and the second elements are as values. 3. In all other cases, an array is created. The rules aim to create the best fit between a C++ initializer list and JSON values. The rationale is as follows: 1. The empty initializer list is written as `{}` which is exactly an empty - JSON object. + JSON object. 2. C++ has now way of describing mapped types other than to list a list of - pairs. As JSON requires that keys must be of type string, rule 2 is the - weakest constraint one can pose on initializer lists to interpret them as - an object. + pairs. As JSON requires that keys must be of type string, rule 2 is the + weakest constraint one can pose on initializer lists to interpret them + as an object. 3. In all other cases, the initializer list could not be interpreted as - JSON object type, so interpreting it as JSON array type is safe. + JSON object type, so interpreting it as JSON array type is safe. With the rules described above, the following JSON values cannot be expressed by an initializer list: @@ -1621,22 +1634,13 @@ class basic_json bool type_deduction = true, value_t manual_type = value_t::array) { - // the initializer list could describe an object - bool is_an_object = true; - // check if each element is an array with two elements whose first // element is a string - for (const auto& element : init) + bool is_an_object = std::all_of(init.begin(), init.end(), + [](const basic_json & element) { - if (not element.is_array() or element.size() != 2 - or not element[0].is_string()) - { - // we found an element that makes it impossible to use the - // initializer list as object - is_an_object = false; - break; - } - } + return element.is_array() and element.size() == 2 and element[0].is_string(); + }); // adjust type if type deduction is not wanted if (not type_deduction) @@ -1660,12 +1664,10 @@ class basic_json m_type = value_t::object; m_value = value_t::object; - assert(m_value.object != nullptr); - - for (auto& element : init) + std::for_each(init.begin(), init.end(), [this](const basic_json & element) { m_value.object->emplace(*(element[0].m_value.string), element[1]); - } + }); } else { @@ -1673,6 +1675,8 @@ class basic_json m_type = value_t::array; m_value.array = create(init); } + + assert_invariant(); } /*! @@ -1777,6 +1781,7 @@ class basic_json : m_type(value_t::array) { m_value.array = create(cnt, val); + assert_invariant(); } /*! @@ -1797,6 +1802,9 @@ class basic_json @param[in] first begin of the range to copy from (included) @param[in] last end of the range to copy from (excluded) + @pre Iterators @a first and @a last must be initialized. **This + precondition is enforced with an assertion.** + @throw std::domain_error if iterators are not compatible; that is, do not belong to the same JSON value; example: `"iterators are not compatible"` @throw std::out_of_range if iterators are for a primitive type (number, @@ -1813,20 +1821,23 @@ class basic_json @since version 1.0.0 */ - template ::value or - std::is_same::value - , int>::type - = 0> - basic_json(InputIT first, InputIT last) : m_type(first.m_object->m_type) + template::value or + std::is_same::value, int>::type = 0> + basic_json(InputIT first, InputIT last) { + assert(first.m_object != nullptr); + assert(last.m_object != nullptr); + // make sure iterator fits the current value if (first.m_object != last.m_object) { throw std::domain_error("iterators are not compatible"); } + // copy type from first iterator + m_type = first.m_object->m_type; + // check if iterator range is complete for primitive values switch (m_type) { @@ -1853,35 +1864,30 @@ class basic_json { case value_t::number_integer: { - assert(first.m_object != nullptr); m_value.number_integer = first.m_object->m_value.number_integer; break; } case value_t::number_unsigned: { - assert(first.m_object != nullptr); m_value.number_unsigned = first.m_object->m_value.number_unsigned; break; } case value_t::number_float: { - assert(first.m_object != nullptr); m_value.number_float = first.m_object->m_value.number_float; break; } case value_t::boolean: { - assert(first.m_object != nullptr); m_value.boolean = first.m_object->m_value.boolean; break; } case value_t::string: { - assert(first.m_object != nullptr); m_value = *first.m_object->m_value.string; break; } @@ -1900,10 +1906,11 @@ class basic_json default: { - assert(first.m_object != nullptr); throw std::domain_error("cannot use construct with iterators from " + first.m_object->type_name()); } } + + assert_invariant(); } /*! @@ -1920,15 +1927,25 @@ class basic_json @note A UTF-8 byte order mark is silently ignored. + @deprecated This constructor is deprecated and will be removed in version + 3.0.0 to unify the interface of the library. Deserialization will be + done by stream operators or by calling one of the `parse` functions, + e.g. @ref parse(std::istream&, const parser_callback_t). That is, calls + like `json j(i);` for an input stream @a i need to be replaced by + `json j = json::parse(i);`. See the example below. + @liveexample{The example below demonstrates constructing a JSON value from a `std::stringstream` with and without callback function.,basic_json__istream} - @since version 2.0.0 + @since version 2.0.0, deprecated in version 2.0.3, to be removed in + version 3.0.0 */ - explicit basic_json(std::istream& i, parser_callback_t cb = nullptr) + JSON_DEPRECATED + explicit basic_json(std::istream& i, const parser_callback_t cb = nullptr) { *this = parser(i, cb).parse(); + assert_invariant(); } /////////////////////////////////////// @@ -1960,25 +1977,25 @@ class basic_json basic_json(const basic_json& other) : m_type(other.m_type) { + // check of passed value is valid + other.assert_invariant(); + switch (m_type) { case value_t::object: { - assert(other.m_value.object != nullptr); m_value = *other.m_value.object; break; } case value_t::array: { - assert(other.m_value.array != nullptr); m_value = *other.m_value.array; break; } case value_t::string: { - assert(other.m_value.string != nullptr); m_value = *other.m_value.string; break; } @@ -2012,6 +2029,8 @@ class basic_json break; } } + + assert_invariant(); } /*! @@ -2036,9 +2055,14 @@ class basic_json : m_type(std::move(other.m_type)), m_value(std::move(other.m_value)) { + // check that passed value is valid + other.assert_invariant(); + // invalidate payload other.m_type = value_t::null; other.m_value = {}; + + assert_invariant(); } /*! @@ -2071,9 +2095,14 @@ class basic_json std::is_nothrow_move_assignable::value ) { + // check that passed value is valid + other.assert_invariant(); + using std::swap; swap(m_type, other.m_type); swap(m_value, other.m_value); + + assert_invariant(); return *this; } @@ -2094,6 +2123,8 @@ class basic_json */ ~basic_json() { + assert_invariant(); + switch (m_type) { case value_t::object: @@ -2136,19 +2167,20 @@ class basic_json /////////////////////// /// @name object inspection + /// Functions to inspect the type of a JSON value. /// @{ /*! @brief serialization Serialization function for JSON values. The function tries to mimic - Python's @p json.dumps() function, and currently supports its @p indent + Python's `json.dumps()` function, and currently supports its @a indent parameter. - @param[in] indent if indent is nonnegative, then array elements and object + @param[in] indent If indent is nonnegative, then array elements and object members will be pretty-printed with that indent level. An indent level of - 0 will only insert newlines. -1 (the default) selects the most compact - representation + `0` will only insert newlines. `-1` (the default) selects the most compact + representation. @return string containing the serialization of the JSON value @@ -2164,6 +2196,15 @@ class basic_json string_t dump(const int indent = -1) const { std::stringstream ss; + // fix locale problems + const static std::locale loc(std::locale(), new DecimalSeparator); + ss.imbue(loc); + + // 6, 15 or 16 digits of precision allows round-trip IEEE 754 + // string->float->string, string->double->string or string->long + // double->string; to be safe, we read this value from + // std::numeric_limits::digits10 + ss.precision(std::numeric_limits::digits10); if (indent >= 0) { @@ -2540,16 +2581,13 @@ class basic_json ////////////////// /// get an object (explicit) - template ::value and - std::is_convertible::value - , int>::type = 0> + template::value and + std::is_convertible::value, int>::type = 0> T get_impl(T*) const { if (is_object()) { - assert(m_value.object != nullptr); return T(m_value.object->begin(), m_value.object->end()); } else @@ -2563,7 +2601,6 @@ class basic_json { if (is_object()) { - assert(m_value.object != nullptr); return *(m_value.object); } else @@ -2573,20 +2610,17 @@ class basic_json } /// get an array (explicit) - template ::value and - not std::is_same::value and - not std::is_arithmetic::value and - not std::is_convertible::value and - not has_mapped_type::value - , int>::type = 0> + template::value and + not std::is_same::value and + not std::is_arithmetic::value and + not std::is_convertible::value and + not has_mapped_type::value, int>::type = 0> T get_impl(T*) const { if (is_array()) { T to_vector; - assert(m_value.array != nullptr); std::transform(m_value.array->begin(), m_value.array->end(), std::inserter(to_vector, to_vector.end()), [](basic_json i) { @@ -2601,17 +2635,14 @@ class basic_json } /// get an array (explicit) - template ::value and - not std::is_same::value - , int>::type = 0> + template::value and + not std::is_same::value, int>::type = 0> std::vector get_impl(std::vector*) const { if (is_array()) { std::vector to_vector; - assert(m_value.array != nullptr); to_vector.reserve(m_value.array->size()); std::transform(m_value.array->begin(), m_value.array->end(), std::inserter(to_vector, to_vector.end()), [](basic_json i) @@ -2627,16 +2658,13 @@ class basic_json } /// get an array (explicit) - template ::value and - not has_mapped_type::value - , int>::type = 0> + template::value and + not has_mapped_type::value, int>::type = 0> T get_impl(T*) const { if (is_array()) { - assert(m_value.array != nullptr); return T(m_value.array->begin(), m_value.array->end()); } else @@ -2650,7 +2678,6 @@ class basic_json { if (is_array()) { - assert(m_value.array != nullptr); return *(m_value.array); } else @@ -2660,15 +2687,12 @@ class basic_json } /// get a string (explicit) - template ::value - , int>::type = 0> + template::value, int>::type = 0> T get_impl(T*) const { if (is_string()) { - assert(m_value.string != nullptr); return *m_value.string; } else @@ -2678,10 +2702,8 @@ class basic_json } /// get a number (explicit) - template::value - , int>::type = 0> + template::value, int>::type = 0> T get_impl(T*) const { switch (m_type) @@ -2814,8 +2836,10 @@ class basic_json template static ReferenceType get_ref_impl(ThisType& obj) { - // delegate the call to get_ptr<>() + // helper type using PointerType = typename std::add_pointer::type; + + // delegate the call to get_ptr<>() auto ptr = obj.template get_ptr(); if (ptr != nullptr) @@ -2832,6 +2856,7 @@ class basic_json public: /// @name value access + /// Direct access to the stored value of a JSON value. /// @{ /*! @@ -2867,10 +2892,8 @@ class basic_json @since version 1.0.0 */ - template::value - , int>::type = 0> + template::value, int>::type = 0> ValueType get() const { return get_impl(static_cast(nullptr)); @@ -2882,7 +2905,8 @@ class basic_json Explicit pointer access to the internally stored JSON value. No copies are made. - @warning The pointer becomes invalid if the underlying JSON object changes. + @warning The pointer becomes invalid if the underlying JSON object + changes. @tparam PointerType pointer type; must be a pointer to @ref array_t, @ref object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, @@ -2902,10 +2926,8 @@ class basic_json @since version 1.0.0 */ - template::value - , int>::type = 0> + template::value, int>::type = 0> PointerType get() noexcept { // delegate the call to get_ptr @@ -2916,10 +2938,8 @@ class basic_json @brief get a pointer value (explicit) @copydoc get() */ - template::value - , int>::type = 0> + template::value, int>::type = 0> constexpr const PointerType get() const noexcept { // delegate the call to get_ptr @@ -2937,7 +2957,8 @@ class basic_json @tparam PointerType pointer type; must be a pointer to @ref array_t, @ref object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, - @ref number_unsigned_t, or @ref number_float_t. + @ref number_unsigned_t, or @ref number_float_t. Enforced by a static + assertion. @return pointer to the internally stored JSON value if the requested pointer type @a PointerType fits to the JSON value; `nullptr` otherwise @@ -2951,12 +2972,25 @@ class basic_json @since version 1.0.0 */ - template::value - , int>::type = 0> + template::value, int>::type = 0> PointerType get_ptr() noexcept { + // get the type of the PointerType (remove pointer and const) + using pointee_t = typename std::remove_const::type>::type>::type; + // make sure the type matches the allowed types + static_assert( + std::is_same::value + or std::is_same::value + or std::is_same::value + or std::is_same::value + or std::is_same::value + or std::is_same::value + or std::is_same::value + , "incompatible pointer type"); + // delegate the call to get_impl_ptr<>() return get_impl_ptr(static_cast(nullptr)); } @@ -2965,13 +2999,26 @@ class basic_json @brief get a pointer value (implicit) @copydoc get_ptr() */ - template::value - and std::is_const::type>::value - , int>::type = 0> + template::value and + std::is_const::type>::value, int>::type = 0> constexpr const PointerType get_ptr() const noexcept { + // get the type of the PointerType (remove pointer and const) + using pointee_t = typename std::remove_const::type>::type>::type; + // make sure the type matches the allowed types + static_assert( + std::is_same::value + or std::is_same::value + or std::is_same::value + or std::is_same::value + or std::is_same::value + or std::is_same::value + or std::is_same::value + , "incompatible pointer type"); + // delegate the call to get_impl_ptr<>() const return get_impl_ptr(static_cast(nullptr)); } @@ -2987,7 +3034,7 @@ class basic_json @tparam ReferenceType reference type; must be a reference to @ref array_t, @ref object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, or - @ref number_float_t. + @ref number_float_t. Enforced by static assertion. @return reference to the internally stored JSON value if the requested reference type @a ReferenceType fits to the JSON value; throws @@ -3002,10 +3049,8 @@ class basic_json @since version 1.1.0 */ - template::value - , int>::type = 0> + template::value, int>::type = 0> ReferenceType get_ref() { // delegate call to get_ref_impl @@ -3016,11 +3061,9 @@ class basic_json @brief get a reference value (implicit) @copydoc get_ref() */ - template::value - and std::is_const::type>::value - , int>::type = 0> + template::value and + std::is_const::type>::value, int>::type = 0> ReferenceType get_ref() const { // delegate call to get_ref_impl @@ -3055,10 +3098,9 @@ class basic_json @since version 1.0.0 */ - template < typename ValueType, typename - std::enable_if < - not std::is_pointer::value - and not std::is_same::value + template < typename ValueType, typename std::enable_if < + not std::is_pointer::value and + not std::is_same::value #ifndef _MSC_VER // Fix for issue #167 operator<< abiguity under VS2015 and not std::is_same>::value #endif @@ -3077,6 +3119,7 @@ class basic_json //////////////////// /// @name element access + /// Access to the JSON value. /// @{ /*! @@ -3108,7 +3151,6 @@ class basic_json { try { - assert(m_value.array != nullptr); return m_value.array->at(idx); } catch (std::out_of_range&) @@ -3152,7 +3194,6 @@ class basic_json { try { - assert(m_value.array != nullptr); return m_value.array->at(idx); } catch (std::out_of_range&) @@ -3200,7 +3241,6 @@ class basic_json { try { - assert(m_value.object != nullptr); return m_value.object->at(key); } catch (std::out_of_range&) @@ -3248,7 +3288,6 @@ class basic_json { try { - assert(m_value.object != nullptr); return m_value.object->at(key); } catch (std::out_of_range&) @@ -3295,16 +3334,18 @@ class basic_json { m_type = value_t::array; m_value.array = create(); + assert_invariant(); } // operator[] only works for arrays if (is_array()) { - // fill up array with null values until given idx is reached - assert(m_value.array != nullptr); - for (size_t i = m_value.array->size(); i <= idx; ++i) + // fill up array with null values if given idx is outside range + if (idx >= m_value.array->size()) { - m_value.array->push_back(basic_json()); + m_value.array->insert(m_value.array->end(), + idx - m_value.array->size() + 1, + basic_json()); } return m_value.array->operator[](idx); @@ -3339,7 +3380,6 @@ class basic_json // const operator[] only works for arrays if (is_array()) { - assert(m_value.array != nullptr); return m_value.array->operator[](idx); } else @@ -3382,12 +3422,12 @@ class basic_json { m_type = value_t::object; m_value.object = create(); + assert_invariant(); } // operator[] only works for objects if (is_object()) { - assert(m_value.object != nullptr); return m_value.object->operator[](key); } else @@ -3409,6 +3449,9 @@ class basic_json @return const reference to the element at key @a key + @pre The element with key @a key must exist. **This precondition is + enforced with an assertion.** + @throw std::domain_error if JSON is not an object; example: `"cannot use operator[] with null"` @@ -3428,7 +3471,6 @@ class basic_json // const operator[] only works for objects if (is_object()) { - assert(m_value.object != nullptr); assert(m_value.object->find(key) != m_value.object->end()); return m_value.object->find(key)->second; } @@ -3541,12 +3583,12 @@ class basic_json { m_type = value_t::object; m_value = value_t::object; + assert_invariant(); } // at only works for objects if (is_object()) { - assert(m_value.object != nullptr); return m_value.object->operator[](key); } else @@ -3568,6 +3610,9 @@ class basic_json @return const reference to the element at key @a key + @pre The element with key @a key must exist. **This precondition is + enforced with an assertion.** + @throw std::domain_error if JSON is not an object; example: `"cannot use operator[] with null"` @@ -3588,7 +3633,6 @@ class basic_json // at only works for objects if (is_object()) { - assert(m_value.object != nullptr); assert(m_value.object->find(key) != m_value.object->end()); return m_value.object->find(key)->second; } @@ -3601,8 +3645,8 @@ class basic_json /*! @brief access specified object element with default value - Returns either a copy of an object's element at the specified key @a key or - a given default value if no element with key @a key exists. + Returns either a copy of an object's element at the specified key @a key + or a given default value if no element with key @a key exists. The function is basically equivalent to executing @code {.cpp} @@ -3646,10 +3690,8 @@ class basic_json @since version 1.0.0 */ - template ::value - , int>::type = 0> + template::value, int>::type = 0> ValueType value(const typename object_t::key_type& key, ValueType default_value) const { // at only works for objects @@ -3674,13 +3716,86 @@ class basic_json /*! @brief overload for a default value of type const char* - @copydoc basic_json::value() + @copydoc basic_json::value(const typename object_t::key_type&, ValueType) const */ string_t value(const typename object_t::key_type& key, const char* default_value) const { return value(key, string_t(default_value)); } + /*! + @brief access specified object element via JSON Pointer with default value + + Returns either a copy of an object's element at the specified key @a key + or a given default value if no element with key @a key exists. + + The function is basically equivalent to executing + @code {.cpp} + try { + return at(ptr); + } catch(std::out_of_range) { + return default_value; + } + @endcode + + @note Unlike @ref at(const json_pointer&), this function does not throw + if the given key @a key was not found. + + @param[in] ptr a JSON pointer to the element to access + @param[in] default_value the value to return if @a ptr found no value + + @tparam ValueType type compatible to JSON values, for instance `int` for + JSON integer numbers, `bool` for JSON booleans, or `std::vector` types for + JSON arrays. Note the type of the expected value at @a key and the default + value @a default_value must be compatible. + + @return copy of the element at key @a key or @a default_value if @a key + is not found + + @throw std::domain_error if JSON is not an object; example: `"cannot use + value() with null"` + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be queried + with a default value.,basic_json__value_ptr} + + @sa @ref operator[](const json_pointer&) for unchecked access by reference + + @since version 2.0.2 + */ + template::value, int>::type = 0> + ValueType value(const json_pointer& ptr, ValueType default_value) const + { + // at only works for objects + if (is_object()) + { + // if pointer resolves a value, return it or use default value + try + { + return ptr.get_checked(this); + } + catch (std::out_of_range&) + { + return default_value; + } + } + else + { + throw std::domain_error("cannot use value() with " + type_name()); + } + } + + /*! + @brief overload for a default value of type const char* + @copydoc basic_json::value(const json_pointer&, ValueType) const + */ + string_t value(const json_pointer& ptr, const char* default_value) const + { + return value(ptr, string_t(default_value)); + } + /*! @brief access the first element @@ -3694,7 +3809,8 @@ class basic_json @complexity Constant. @pre The JSON value must not be `null` (would throw `std::out_of_range`) - or an empty array or object (undefined behavior, guarded by assertions). + or an empty array or object (undefined behavior, **guarded by + assertions**). @post The JSON value remains unchanged. @throw std::out_of_range when called on `null` value @@ -3736,7 +3852,8 @@ class basic_json @complexity Constant. @pre The JSON value must not be `null` (would throw `std::out_of_range`) - or an empty array or object (undefined behavior, guarded by assertions). + or an empty array or object (undefined behavior, **guarded by + assertions**). @post The JSON value remains unchanged. @throw std::out_of_range when called on `null` value. @@ -3778,7 +3895,7 @@ class basic_json @return Iterator following the last removed element. If the iterator @a pos refers to the last element, the `end()` iterator is returned. - @tparam InteratorType an @ref iterator or @ref const_iterator + @tparam IteratorType an @ref iterator or @ref const_iterator @post Invalidates iterators and references at or after the point of the erase, including the `end()` iterator. @@ -3800,7 +3917,7 @@ class basic_json @liveexample{The example shows the result of `erase()` for different JSON types.,erase__IteratorType} - @sa @ref erase(InteratorType, InteratorType) -- removes the elements in + @sa @ref erase(IteratorType, IteratorType) -- removes the elements in the given range @sa @ref erase(const typename object_t::key_type&) -- removes the element from an object at the given key @@ -3809,13 +3926,11 @@ class basic_json @since version 1.0.0 */ - template ::value or - std::is_same::value - , int>::type - = 0> - InteratorType erase(InteratorType pos) + template::value or + std::is_same::value, int>::type + = 0> + IteratorType erase(IteratorType pos) { // make sure iterator fits the current value if (this != pos.m_object) @@ -3823,7 +3938,7 @@ class basic_json throw std::domain_error("iterator does not fit current value"); } - InteratorType result = end(); + IteratorType result = end(); switch (m_type) { @@ -3840,24 +3955,25 @@ class basic_json if (is_string()) { - delete m_value.string; + AllocatorType alloc; + alloc.destroy(m_value.string); + alloc.deallocate(m_value.string, 1); m_value.string = nullptr; } m_type = value_t::null; + assert_invariant(); break; } case value_t::object: { - assert(m_value.object != nullptr); result.m_it.object_iterator = m_value.object->erase(pos.m_it.object_iterator); break; } case value_t::array: { - assert(m_value.array != nullptr); result.m_it.array_iterator = m_value.array->erase(pos.m_it.array_iterator); break; } @@ -3886,7 +4002,7 @@ class basic_json @return Iterator following the last removed element. If the iterator @a second refers to the last element, the `end()` iterator is returned. - @tparam InteratorType an @ref iterator or @ref const_iterator + @tparam IteratorType an @ref iterator or @ref const_iterator @post Invalidates iterators and references at or after the point of the erase, including the `end()` iterator. @@ -3909,7 +4025,7 @@ class basic_json @liveexample{The example shows the result of `erase()` for different JSON types.,erase__IteratorType_IteratorType} - @sa @ref erase(InteratorType) -- removes the element at a given position + @sa @ref erase(IteratorType) -- removes the element at a given position @sa @ref erase(const typename object_t::key_type&) -- removes the element from an object at the given key @sa @ref erase(const size_type) -- removes the element from an array at @@ -3917,13 +4033,11 @@ class basic_json @since version 1.0.0 */ - template ::value or - std::is_same::value - , int>::type - = 0> - InteratorType erase(InteratorType first, InteratorType last) + template::value or + std::is_same::value, int>::type + = 0> + IteratorType erase(IteratorType first, IteratorType last) { // make sure iterator fits the current value if (this != first.m_object or this != last.m_object) @@ -3931,7 +4045,7 @@ class basic_json throw std::domain_error("iterators do not fit current value"); } - InteratorType result = end(); + IteratorType result = end(); switch (m_type) { @@ -3948,17 +4062,19 @@ class basic_json if (is_string()) { - delete m_value.string; + AllocatorType alloc; + alloc.destroy(m_value.string); + alloc.deallocate(m_value.string, 1); m_value.string = nullptr; } m_type = value_t::null; + assert_invariant(); break; } case value_t::object: { - assert(m_value.object != nullptr); result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator, last.m_it.object_iterator); break; @@ -3966,7 +4082,6 @@ class basic_json case value_t::array: { - assert(m_value.array != nullptr); result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator, last.m_it.array_iterator); break; @@ -4002,8 +4117,8 @@ class basic_json @liveexample{The example shows the effect of `erase()`.,erase__key_type} - @sa @ref erase(InteratorType) -- removes the element at a given position - @sa @ref erase(InteratorType, InteratorType) -- removes the elements in + @sa @ref erase(IteratorType) -- removes the element at a given position + @sa @ref erase(IteratorType, IteratorType) -- removes the elements in the given range @sa @ref erase(const size_type) -- removes the element from an array at the given index @@ -4015,7 +4130,6 @@ class basic_json // this erase only works for objects if (is_object()) { - assert(m_value.object != nullptr); return m_value.object->erase(key); } else @@ -4040,8 +4154,8 @@ class basic_json @liveexample{The example shows the effect of `erase()`.,erase__size_type} - @sa @ref erase(InteratorType) -- removes the element at a given position - @sa @ref erase(InteratorType, InteratorType) -- removes the elements in + @sa @ref erase(IteratorType) -- removes the element at a given position + @sa @ref erase(IteratorType, IteratorType) -- removes the elements in the given range @sa @ref erase(const typename object_t::key_type&) -- removes the element from an object at the given key @@ -4058,7 +4172,6 @@ class basic_json throw std::out_of_range("array index " + std::to_string(idx) + " is out of range"); } - assert(m_value.array != nullptr); m_value.array->erase(m_value.array->begin() + static_cast(idx)); } else @@ -4101,7 +4214,6 @@ class basic_json if (is_object()) { - assert(m_value.object != nullptr); result.m_it.object_iterator = m_value.object->find(key); } @@ -4118,7 +4230,6 @@ class basic_json if (is_object()) { - assert(m_value.object != nullptr); result.m_it.object_iterator = m_value.object->find(key); } @@ -4146,7 +4257,6 @@ class basic_json size_type count(typename object_t::key_type key) const { // return 0 for all nonobject types - assert(not is_object() or m_value.object != nullptr); return is_object() ? m_value.object->count(key) : 0; } @@ -4488,6 +4598,10 @@ class basic_json object | result of function `object_t::empty()` array | result of function `array_t::empty()` + @note This function does not return whether a string stored as JSON value + is empty - it returns whether the JSON container itself is empty which is + false in the case of a string. + @complexity Constant, as long as @ref array_t and @ref object_t satisfy the Container concept; that is, their `empty()` functions have constant complexity. @@ -4517,13 +4631,13 @@ class basic_json case value_t::array: { - assert(m_value.array != nullptr); + // delegate call to array_t::empty() return m_value.array->empty(); } case value_t::object: { - assert(m_value.object != nullptr); + // delegate call to object_t::empty() return m_value.object->empty(); } @@ -4551,6 +4665,10 @@ class basic_json object | result of function object_t::size() array | result of function array_t::size() + @note This function does not return the length of a string stored as JSON + value - it returns the number of elements in the JSON value which is 1 in + the case of a string. + @complexity Constant, as long as @ref array_t and @ref object_t satisfy the Container concept; that is, their size() functions have constant complexity. @@ -4581,13 +4699,13 @@ class basic_json case value_t::array: { - assert(m_value.array != nullptr); + // delegate call to array_t::size() return m_value.array->size(); } case value_t::object: { - assert(m_value.object != nullptr); + // delegate call to object_t::size() return m_value.object->size(); } @@ -4641,13 +4759,13 @@ class basic_json { case value_t::array: { - assert(m_value.array != nullptr); + // delegate call to array_t::max_size() return m_value.array->max_size(); } case value_t::object: { - assert(m_value.object != nullptr); + // delegate call to object_t::max_size() return m_value.object->max_size(); } @@ -4724,21 +4842,18 @@ class basic_json case value_t::string: { - assert(m_value.string != nullptr); m_value.string->clear(); break; } case value_t::array: { - assert(m_value.array != nullptr); m_value.array->clear(); break; } case value_t::object: { - assert(m_value.object != nullptr); m_value.object->clear(); break; } @@ -4783,10 +4898,10 @@ class basic_json { m_type = value_t::array; m_value = value_t::array; + assert_invariant(); } // add element to array (move semantics) - assert(m_value.array != nullptr); m_value.array->push_back(std::move(val)); // invalidate object val.m_type = value_t::null; @@ -4819,10 +4934,10 @@ class basic_json { m_type = value_t::array; m_value = value_t::array; + assert_invariant(); } // add element to array - assert(m_value.array != nullptr); m_value.array->push_back(val); } @@ -4869,10 +4984,10 @@ class basic_json { m_type = value_t::object; m_value = value_t::object; + assert_invariant(); } // add element to array - assert(m_value.object != nullptr); m_value.object->insert(val); } @@ -4969,7 +5084,6 @@ class basic_json // insert to array and return iterator iterator result(this); - assert(m_value.array != nullptr); result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, val); return result; } @@ -5025,7 +5139,6 @@ class basic_json // insert to array and return iterator iterator result(this); - assert(m_value.array != nullptr); result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, cnt, val); return result; } @@ -5079,6 +5192,7 @@ class basic_json throw std::domain_error("iterator does not fit current value"); } + // check if range iterators belong to the same JSON object if (first.m_object != last.m_object) { throw std::domain_error("iterators do not fit"); @@ -5091,7 +5205,6 @@ class basic_json // insert to array and return iterator iterator result(this); - assert(m_value.array != nullptr); result.m_it.array_iterator = m_value.array->insert( pos.m_it.array_iterator, first.m_it.array_iterator, @@ -5139,7 +5252,6 @@ class basic_json // insert to array and return iterator iterator result(this); - assert(m_value.array != nullptr); result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, ilist); return result; } @@ -5170,6 +5282,7 @@ class basic_json { std::swap(m_type, other.m_type); std::swap(m_value, other.m_value); + assert_invariant(); } /*! @@ -5197,7 +5310,6 @@ class basic_json // swap only works for arrays if (is_array()) { - assert(m_value.array != nullptr); std::swap(*(m_value.array), other); } else @@ -5231,7 +5343,6 @@ class basic_json // swap only works for objects if (is_object()) { - assert(m_value.object != nullptr); std::swap(*(m_value.object), other); } else @@ -5265,7 +5376,6 @@ class basic_json // swap only works for strings if (is_string()) { - assert(m_value.string != nullptr); std::swap(*(m_value.string), other); } else @@ -5352,14 +5462,10 @@ class basic_json { case value_t::array: { - assert(lhs.m_value.array != nullptr); - assert(rhs.m_value.array != nullptr); return *lhs.m_value.array == *rhs.m_value.array; } case value_t::object: { - assert(lhs.m_value.object != nullptr); - assert(rhs.m_value.object != nullptr); return *lhs.m_value.object == *rhs.m_value.object; } case value_t::null: @@ -5368,8 +5474,6 @@ class basic_json } case value_t::string: { - assert(lhs.m_value.string != nullptr); - assert(rhs.m_value.string != nullptr); return *lhs.m_value.string == *rhs.m_value.string; } case value_t::boolean: @@ -5542,14 +5646,10 @@ class basic_json { case value_t::array: { - assert(lhs.m_value.array != nullptr); - assert(rhs.m_value.array != nullptr); return *lhs.m_value.array < *rhs.m_value.array; } case value_t::object: { - assert(lhs.m_value.object != nullptr); - assert(rhs.m_value.object != nullptr); return *lhs.m_value.object < *rhs.m_value.object; } case value_t::null: @@ -5558,8 +5658,6 @@ class basic_json } case value_t::string: { - assert(lhs.m_value.string != nullptr); - assert(rhs.m_value.string != nullptr); return *lhs.m_value.string < *rhs.m_value.string; } case value_t::boolean: @@ -5701,6 +5799,10 @@ class basic_json `std::setw(4)` on @a o sets the indentation level to `4` and the serialization result is the same as calling `dump(4)`. + @note During serializaion, the locale and the precision of the output + stream @a o are changed. The original values are restored when the + function returns. + @param[in,out] o stream to serialize to @param[in] j JSON value to serialize @@ -5722,8 +5824,22 @@ class basic_json // reset width to 0 for subsequent calls to this stream o.width(0); + // fix locale problems + const auto old_locale = o.imbue(std::locale(std::locale(), new DecimalSeparator)); + // set precision + + // 6, 15 or 16 digits of precision allows round-trip IEEE 754 + // string->float->string, string->double->string or string->long + // double->string; to be safe, we read this value from + // std::numeric_limits::digits10 + const auto old_precision = o.precision(std::numeric_limits::digits10); + // do the actual serialization j.dump(o, pretty_print, static_cast(indentation)); + + // reset locale and precision + o.imbue(old_locale); + o.precision(old_precision); return o; } @@ -5747,9 +5863,45 @@ class basic_json /// @{ /*! - @brief deserialize from string + @brief deserialize from an array + + This function reads from an array of 1-byte values. + + @pre Each element of the container has a size of 1 byte. Violating this + precondition yields undefined behavior. **This precondition is enforced + with a static assertion.** + + @param[in] array array to read from + @param[in] cb a parser callback function of type @ref parser_callback_t + which is used to control the deserialization by filtering unwanted values + (optional) + + @return result of the deserialization + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. The complexity can be higher if the parser callback function + @a cb has a super-linear complexity. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below demonstrates the `parse()` function reading + from an array.,parse__array__parser_callback_t} + + @since version 2.0.3 + */ + template + static basic_json parse(T (&array)[N], + const parser_callback_t cb = nullptr) + { + // delegate the call to the iterator-range parse overload + return parse(std::begin(array), std::end(array), cb); + } + + /*! + @brief deserialize from string literal - @param[in] s string to read a serialized JSON value from + @tparam CharT character/literal type with size of 1 byte + @param[in] s string literal to read a serialized JSON value from @param[in] cb a parser callback function of type @ref parser_callback_t which is used to control the deserialization by filtering unwanted values (optional) @@ -5761,18 +5913,25 @@ class basic_json @a cb has a super-linear complexity. @note A UTF-8 byte order mark is silently ignored. + @note String containers like `std::string` or @ref string_t can be parsed + with @ref parse(const ContiguousContainer&, const parser_callback_t) @liveexample{The example below demonstrates the `parse()` function with and without callback function.,parse__string__parser_callback_t} - @sa @ref parse(std::istream&, parser_callback_t) for a version that reads - from an input stream + @sa @ref parse(std::istream&, const parser_callback_t) for a version that + reads from an input stream - @since version 1.0.0 + @since version 1.0.0 (originally for @ref string_t) */ - static basic_json parse(const string_t& s, parser_callback_t cb = nullptr) + template::value and + std::is_integral::type>::value and + sizeof(typename std::remove_pointer::type) == 1, int>::type = 0> + static basic_json parse(const CharPT s, + const parser_callback_t cb = nullptr) { - return parser(s, cb).parse(); + return parser(reinterpret_cast(s), cb).parse(); } /*! @@ -5794,58 +5953,184 @@ class basic_json @liveexample{The example below demonstrates the `parse()` function with and without callback function.,parse__istream__parser_callback_t} - @sa @ref parse(const string_t&, parser_callback_t) for a version that - reads from a string + @sa @ref parse(const char*, const parser_callback_t) for a version + that reads from a string @since version 1.0.0 */ - static basic_json parse(std::istream& i, parser_callback_t cb = nullptr) + static basic_json parse(std::istream& i, + const parser_callback_t cb = nullptr) { return parser(i, cb).parse(); } /*! - @copydoc parse(std::istream&, parser_callback_t) + @copydoc parse(std::istream&, const parser_callback_t) */ - static basic_json parse(std::istream&& i, parser_callback_t cb = nullptr) + static basic_json parse(std::istream&& i, + const parser_callback_t cb = nullptr) { return parser(i, cb).parse(); } /*! - @brief deserialize from stream + @brief deserialize from an iterator range with contiguous storage - Deserializes an input stream to a JSON value. + This function reads from an iterator range of a container with contiguous + storage of 1-byte values. Compatible container types include + `std::vector`, `std::string`, `std::array`, `std::valarray`, and + `std::initializer_list`. Furthermore, C-style arrays can be used with + `std::begin()`/`std::end()`. User-defined containers can be used as long + as they implement random-access iterators and a contiguous storage. - @param[in,out] i input stream to read a serialized JSON value from - @param[in,out] j JSON value to write the deserialized input to + @pre The iterator range is contiguous. Violating this precondition yields + undefined behavior. **This precondition is enforced with an assertion.** + @pre Each element in the range has a size of 1 byte. Violating this + precondition yields undefined behavior. **This precondition is enforced + with a static assertion.** - @throw std::invalid_argument in case of parse errors + @warning There is no way to enforce all preconditions at compile-time. If + the function is called with noncompliant iterators and with + assertions switched off, the behavior is undefined and will most + likely yield segmentation violation. + + @tparam IteratorType iterator of container with contiguous storage + @param[in] first begin of the range to parse (included) + @param[in] last end of the range to parse (excluded) + @param[in] cb a parser callback function of type @ref parser_callback_t + which is used to control the deserialization by filtering unwanted values + (optional) + + @return result of the deserialization @complexity Linear in the length of the input. The parser is a predictive - LL(1) parser. + LL(1) parser. The complexity can be higher if the parser callback function + @a cb has a super-linear complexity. @note A UTF-8 byte order mark is silently ignored. - @liveexample{The example below shows how a JSON value is constructed by - reading a serialization from a stream.,operator_deserialize} - - @sa parse(std::istream&, parser_callback_t) for a variant with a parser - callback function to filter values while parsing + @liveexample{The example below demonstrates the `parse()` function reading + from an iterator range.,parse__iteratortype__parser_callback_t} - @since version 1.0.0 + @since version 2.0.3 */ - friend std::istream& operator<<(basic_json& j, std::istream& i) + template::iterator_category>::value, int>::type = 0> + static basic_json parse(IteratorType first, IteratorType last, + const parser_callback_t cb = nullptr) { - j = parser(i).parse(); - return i; + // assertion to check that the iterator range is indeed contiguous, + // see http://stackoverflow.com/a/35008842/266378 for more discussion + assert(std::accumulate(first, last, std::make_pair(true, 0), + [&first](std::pair res, decltype(*first) val) + { + res.first &= (val == *(std::next(std::addressof(*first), res.second++))); + return res; + }).first); + + // assertion to check that each element is 1 byte long + static_assert(sizeof(typename std::iterator_traits::value_type) == 1, + "each element in the iterator range must have the size of 1 byte"); + + // if iterator range is empty, create a parser with an empty string + // to generate "unexpected EOF" error message + if (std::distance(first, last) <= 0) + { + return parser("").parse(); + } + + return parser(first, last, cb).parse(); } /*! - @brief deserialize from stream - @copydoc operator<<(basic_json&, std::istream&) - */ - friend std::istream& operator>>(std::istream& i, basic_json& j) + @brief deserialize from a container with contiguous storage + + This function reads from a container with contiguous storage of 1-byte + values. Compatible container types include `std::vector`, `std::string`, + `std::array`, and `std::initializer_list`. User-defined containers can be + used as long as they implement random-access iterators and a contiguous + storage. + + @pre The container storage is contiguous. Violating this precondition + yields undefined behavior. **This precondition is enforced with an + assertion.** + @pre Each element of the container has a size of 1 byte. Violating this + precondition yields undefined behavior. **This precondition is enforced + with a static assertion.** + + @warning There is no way to enforce all preconditions at compile-time. If + the function is called with a noncompliant container and with + assertions switched off, the behavior is undefined and will most + likely yield segmentation violation. + + @tparam ContiguousContainer container type with contiguous storage + @param[in] c container to read from + @param[in] cb a parser callback function of type @ref parser_callback_t + which is used to control the deserialization by filtering unwanted values + (optional) + + @return result of the deserialization + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. The complexity can be higher if the parser callback function + @a cb has a super-linear complexity. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below demonstrates the `parse()` function reading + from a contiguous container.,parse__contiguouscontainer__parser_callback_t} + + @since version 2.0.3 + */ + template::value and + std::is_base_of< + std::random_access_iterator_tag, + typename std::iterator_traits()))>::iterator_category>::value + , int>::type = 0> + static basic_json parse(const ContiguousContainer& c, + const parser_callback_t cb = nullptr) + { + // delegate the call to the iterator-range parse overload + return parse(std::begin(c), std::end(c), cb); + } + + /*! + @brief deserialize from stream + + Deserializes an input stream to a JSON value. + + @param[in,out] i input stream to read a serialized JSON value from + @param[in,out] j JSON value to write the deserialized input to + + @throw std::invalid_argument in case of parse errors + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below shows how a JSON value is constructed by + reading a serialization from a stream.,operator_deserialize} + + @sa parse(std::istream&, const parser_callback_t) for a variant with a + parser callback function to filter values while parsing + + @since version 1.0.0 + */ + friend std::istream& operator<<(basic_json& j, std::istream& i) + { + j = parser(i).parse(); + return i; + } + + /*! + @brief deserialize from stream + @copydoc operator<<(basic_json&, std::istream&) + */ + friend std::istream& operator>>(std::istream& i, basic_json& j) { j = parser(i).parse(); return i; @@ -5859,8 +6144,19 @@ class basic_json // convenience functions // /////////////////////////// - /// return the type as string - string_t type_name() const noexcept + /*! + @brief return the type as string + + Returns the type name as string to be used in error messages - usually to + indicate that a function was called on a wrong JSON type. + + @return basically a string representation of a the @a m_type member + + @complexity Constant. + + @since version 1.0.0 + */ + std::string type_name() const { switch (m_type) { @@ -5891,9 +6187,8 @@ class basic_json */ static std::size_t extra_space(const string_t& s) noexcept { - std::size_t result = 0; - - for (const auto& c : s) + return std::accumulate(s.begin(), s.end(), size_t{}, + [](size_t res, typename string_t::value_type c) { switch (c) { @@ -5906,8 +6201,7 @@ class basic_json case '\t': { // from c (1 byte) to \x (2 bytes) - result += 1; - break; + return res + 1; } default: @@ -5915,14 +6209,15 @@ class basic_json if (c >= 0x00 and c <= 0x1f) { // from c (1 byte) to \uxxxx (6 bytes) - result += 5; + return res + 5; + } + else + { + return res; } - break; } } - } - - return result; + }); } /*! @@ -6016,16 +6311,15 @@ class basic_json { // convert a number 0..15 to its hex representation // (0..f) - const auto hexify = [](const int v) -> char + static const char hexify[16] = { - return (v < 10) - ? ('0' + static_cast(v)) - : ('a' + static_cast((v - 10) & 0x1f)); + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; // print character c as \uxxxx for (const char m : - { 'u', '0', '0', hexify(c >> 4), hexify(c & 0x0f) + { 'u', '0', '0', hexify[c >> 4], hexify[c & 0x0f] }) { result[++pos] = m; @@ -6075,8 +6369,6 @@ class basic_json { case value_t::object: { - assert(m_value.object != nullptr); - if (m_value.object->empty()) { o << "{}"; @@ -6117,8 +6409,6 @@ class basic_json case value_t::array: { - assert(m_value.array != nullptr); - if (m_value.array->empty()) { o << "[]"; @@ -6157,7 +6447,6 @@ class basic_json case value_t::string: { - assert(m_value.string != nullptr); o << string_t("\"") << escape_string(*m_value.string) << "\""; return; } @@ -6182,79 +6471,14 @@ class basic_json case value_t::number_float: { - // check if number was parsed from a string - if (m_type.bits.parsed) + if (m_value.number_float == 0) { - // check if parsed number had an exponent given - if (m_type.bits.has_exp) - { - // buffer size: precision (2^8-1 = 255) + other ('-.e-xxx' = 7) + null (1) - char buf[263]; - int len; - - // handle capitalization of the exponent - if (m_type.bits.exp_cap) - { - len = snprintf(buf, sizeof(buf), "%.*E", - m_type.bits.precision, m_value.number_float) + 1; - } - else - { - len = snprintf(buf, sizeof(buf), "%.*e", - m_type.bits.precision, m_value.number_float) + 1; - } - - // remove '+' sign from the exponent if necessary - if (not m_type.bits.exp_plus) - { - if (len > static_cast(sizeof(buf))) - { - len = sizeof(buf); - } - for (int i = 0; i < len; i++) - { - if (buf[i] == '+') - { - for (; i + 1 < len; i++) - { - buf[i] = buf[i + 1]; - } - } - } - } - - o << buf; - } - else - { - // no exponent - output as a decimal - std::stringstream ss; - ss.imbue(std::locale(std::locale(), new DecimalSeparator)); // fix locale problems - ss << std::setprecision(m_type.bits.precision) - << std::fixed << m_value.number_float; - o << ss.str(); - } + // special case for zero to get "0.0"/"-0.0" + o << (std::signbit(m_value.number_float) ? "-0.0" : "0.0"); } else { - if (m_value.number_float == 0) - { - // special case for zero to get "0.0"/"-0.0" - o << (std::signbit(m_value.number_float) ? "-0.0" : "0.0"); - } - else - { - // Otherwise 6, 15 or 16 digits of precision allows - // round-trip IEEE 754 string->float->string, - // string->double->string or string->long - // double->string; to be safe, we read this value from - // std::numeric_limits::digits10 - std::stringstream ss; - ss.imbue(std::locale(std::locale(), new DecimalSeparator)); // fix locale problems - ss << std::setprecision(std::numeric_limits::digits10) - << m_value.number_float; - o << ss.str(); - } + o << m_value.number_float; } return; } @@ -6279,7 +6503,7 @@ class basic_json ////////////////////// /// the type of the current element - type_data_t m_type = value_t::null; + value_t m_type = value_t::null; /// the value of the current element json_value m_value = {}; @@ -6471,6 +6695,12 @@ class basic_json This class implements a const iterator for the @ref basic_json class. From this class, the @ref iterator class is derived. + @note An iterator is called *initialized* when a pointer to a JSON value + has been set (e.g., by a constructor or a copy assignment). If the + iterator is default-constructed, it is *uninitialized* and most + methods are undefined. **The library uses assertions to detect calls + on uninitialized iterators.** + @requirement The class satisfies the following concept requirements: - [RandomAccessIterator](http://en.cppreference.com/w/cpp/concept/RandomAccessIterator): The iterator that can be moved to point (forward and backward) to any @@ -6498,7 +6728,12 @@ class basic_json /// default constructor const_iterator() = default; - /// constructor for a given JSON instance + /*! + @brief constructor for a given JSON instance + @param[in] object pointer to a JSON object for this iterator + @pre object != nullptr + @post The iterator is initialized; i.e. `m_object != nullptr`. + */ explicit const_iterator(pointer object) noexcept : m_object(object) { @@ -6526,40 +6761,53 @@ class basic_json } } - /// copy constructor given a nonconst iterator + /*! + @brief copy constructor given a non-const iterator + @param[in] other iterator to copy from + @note It is not checked whether @a other is initialized. + */ explicit const_iterator(const iterator& other) noexcept : m_object(other.m_object) { - assert(m_object != nullptr); - - switch (m_object->m_type) + if (m_object != nullptr) { - case basic_json::value_t::object: + switch (m_object->m_type) { - m_it.object_iterator = other.m_it.object_iterator; - break; - } + case basic_json::value_t::object: + { + m_it.object_iterator = other.m_it.object_iterator; + break; + } - case basic_json::value_t::array: - { - m_it.array_iterator = other.m_it.array_iterator; - break; - } + case basic_json::value_t::array: + { + m_it.array_iterator = other.m_it.array_iterator; + break; + } - default: - { - m_it.primitive_iterator = other.m_it.primitive_iterator; - break; + default: + { + m_it.primitive_iterator = other.m_it.primitive_iterator; + break; + } } } } - /// copy constructor + /*! + @brief copy constructor + @param[in] other iterator to copy from + @note It is not checked whether @a other is initialized. + */ const_iterator(const const_iterator& other) noexcept : m_object(other.m_object), m_it(other.m_it) {} - /// copy assignment + /*! + @brief copy assignment + @param[in,out] other iterator to copy from + @note It is not checked whether @a other is initialized. + */ const_iterator& operator=(const_iterator other) noexcept( std::is_nothrow_move_constructible::value and std::is_nothrow_move_assignable::value and @@ -6573,7 +6821,10 @@ class basic_json } private: - /// set the iterator to the first value + /*! + @brief set the iterator to the first value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ void set_begin() noexcept { assert(m_object != nullptr); @@ -6582,14 +6833,12 @@ class basic_json { case basic_json::value_t::object: { - assert(m_object->m_value.object != nullptr); m_it.object_iterator = m_object->m_value.object->begin(); break; } case basic_json::value_t::array: { - assert(m_object->m_value.array != nullptr); m_it.array_iterator = m_object->m_value.array->begin(); break; } @@ -6609,7 +6858,10 @@ class basic_json } } - /// set the iterator past the last value + /*! + @brief set the iterator past the last value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ void set_end() noexcept { assert(m_object != nullptr); @@ -6618,14 +6870,12 @@ class basic_json { case basic_json::value_t::object: { - assert(m_object->m_value.object != nullptr); m_it.object_iterator = m_object->m_value.object->end(); break; } case basic_json::value_t::array: { - assert(m_object->m_value.array != nullptr); m_it.array_iterator = m_object->m_value.array->end(); break; } @@ -6639,7 +6889,10 @@ class basic_json } public: - /// return a reference to the value pointed to by the iterator + /*! + @brief return a reference to the value pointed to by the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ reference operator*() const { assert(m_object != nullptr); @@ -6648,14 +6901,12 @@ class basic_json { case basic_json::value_t::object: { - assert(m_object->m_value.object); assert(m_it.object_iterator != m_object->m_value.object->end()); return m_it.object_iterator->second; } case basic_json::value_t::array: { - assert(m_object->m_value.array); assert(m_it.array_iterator != m_object->m_value.array->end()); return *m_it.array_iterator; } @@ -6679,7 +6930,10 @@ class basic_json } } - /// dereference the iterator + /*! + @brief dereference the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ pointer operator->() const { assert(m_object != nullptr); @@ -6688,14 +6942,12 @@ class basic_json { case basic_json::value_t::object: { - assert(m_object->m_value.object); assert(m_it.object_iterator != m_object->m_value.object->end()); return &(m_it.object_iterator->second); } case basic_json::value_t::array: { - assert(m_object->m_value.array); assert(m_it.array_iterator != m_object->m_value.array->end()); return &*m_it.array_iterator; } @@ -6714,7 +6966,10 @@ class basic_json } } - /// post-increment (it++) + /*! + @brief post-increment (it++) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ const_iterator operator++(int) { auto result = *this; @@ -6722,7 +6977,10 @@ class basic_json return result; } - /// pre-increment (++it) + /*! + @brief pre-increment (++it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ const_iterator& operator++() { assert(m_object != nullptr); @@ -6731,13 +6989,13 @@ class basic_json { case basic_json::value_t::object: { - ++m_it.object_iterator; + std::advance(m_it.object_iterator, 1); break; } case basic_json::value_t::array: { - ++m_it.array_iterator; + std::advance(m_it.array_iterator, 1); break; } @@ -6751,7 +7009,10 @@ class basic_json return *this; } - /// post-decrement (it--) + /*! + @brief post-decrement (it--) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ const_iterator operator--(int) { auto result = *this; @@ -6759,7 +7020,10 @@ class basic_json return result; } - /// pre-decrement (--it) + /*! + @brief pre-decrement (--it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ const_iterator& operator--() { assert(m_object != nullptr); @@ -6768,13 +7032,13 @@ class basic_json { case basic_json::value_t::object: { - --m_it.object_iterator; + std::advance(m_it.object_iterator, -1); break; } case basic_json::value_t::array: { - --m_it.array_iterator; + std::advance(m_it.array_iterator, -1); break; } @@ -6788,7 +7052,10 @@ class basic_json return *this; } - /// comparison: equal + /*! + @brief comparison: equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ bool operator==(const const_iterator& other) const { // if objects are not the same, the comparison is undefined @@ -6818,13 +7085,19 @@ class basic_json } } - /// comparison: not equal + /*! + @brief comparison: not equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ bool operator!=(const const_iterator& other) const { return not operator==(other); } - /// comparison: smaller + /*! + @brief comparison: smaller + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ bool operator<(const const_iterator& other) const { // if objects are not the same, the comparison is undefined @@ -6854,25 +7127,37 @@ class basic_json } } - /// comparison: less than or equal + /*! + @brief comparison: less than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ bool operator<=(const const_iterator& other) const { return not other.operator < (*this); } - /// comparison: greater than + /*! + @brief comparison: greater than + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ bool operator>(const const_iterator& other) const { return not operator<=(other); } - /// comparison: greater than or equal + /*! + @brief comparison: greater than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ bool operator>=(const const_iterator& other) const { return not operator<(other); } - /// add to iterator + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ const_iterator& operator+=(difference_type i) { assert(m_object != nullptr); @@ -6886,7 +7171,7 @@ class basic_json case basic_json::value_t::array: { - m_it.array_iterator += i; + std::advance(m_it.array_iterator, i); break; } @@ -6900,13 +7185,19 @@ class basic_json return *this; } - /// subtract from iterator + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ const_iterator& operator-=(difference_type i) { return operator+=(-i); } - /// add to iterator + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ const_iterator operator+(difference_type i) { auto result = *this; @@ -6914,7 +7205,10 @@ class basic_json return result; } - /// subtract from iterator + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ const_iterator operator-(difference_type i) { auto result = *this; @@ -6922,7 +7216,10 @@ class basic_json return result; } - /// return difference + /*! + @brief return difference + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ difference_type operator-(const const_iterator& other) const { assert(m_object != nullptr); @@ -6946,7 +7243,10 @@ class basic_json } } - /// access to successor + /*! + @brief access to successor + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ reference operator[](difference_type n) const { assert(m_object != nullptr); @@ -6960,7 +7260,7 @@ class basic_json case basic_json::value_t::array: { - return *(m_it.array_iterator + n); + return *std::next(m_it.array_iterator, n); } case basic_json::value_t::null: @@ -6982,7 +7282,10 @@ class basic_json } } - /// return the key of an object iterator + /*! + @brief return the key of an object iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ typename object_t::key_type key() const { assert(m_object != nullptr); @@ -6997,7 +7300,10 @@ class basic_json } } - /// return the value of an iterator + /*! + @brief return the value of an iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ reference value() const { return operator*(); @@ -7277,17 +7583,17 @@ class basic_json enum class token_type { uninitialized, ///< indicating the scanner is uninitialized - literal_true, ///< the "true" literal - literal_false, ///< the "false" literal - literal_null, ///< the "null" literal + literal_true, ///< the `true` literal + literal_false, ///< the `false` literal + literal_null, ///< the `null` literal value_string, ///< a string -- use get_string() for actual value value_number, ///< a number -- use get_number() for actual value - begin_array, ///< the character for array begin "[" - begin_object, ///< the character for object begin "{" - end_array, ///< the character for array end "]" - end_object, ///< the character for object end "}" - name_separator, ///< the name separator ":" - value_separator, ///< the value separator "," + begin_array, ///< the character for array begin `[` + begin_object, ///< the character for object begin `{` + end_array, ///< the character for array end `]` + end_object, ///< the character for object end `}` + name_separator, ///< the name separator `:` + value_separator, ///< the value separator `,` parse_error, ///< indicating a parse error end_of_input ///< indicating the end of the input buffer }; @@ -7295,54 +7601,55 @@ class basic_json /// the char type to use in the lexer using lexer_char_t = unsigned char; - /// constructor with a given buffer - explicit lexer(const string_t& s) noexcept - : m_stream(nullptr), m_buffer(s) + /// a lexer from a buffer with given length + lexer(const lexer_char_t* buff, const size_t len) noexcept + : m_content(buff) { - m_content = reinterpret_cast(s.c_str()); assert(m_content != nullptr); m_start = m_cursor = m_content; - m_limit = m_content + s.size(); + m_limit = m_content + len; } - /// constructor with a given stream - explicit lexer(std::istream* s) noexcept - : m_stream(s), m_buffer() + /// a lexer from an input stream + explicit lexer(std::istream& s) + : m_stream(&s), m_line_buffer() { - assert(m_stream != nullptr); - getline(*m_stream, m_buffer); - m_content = reinterpret_cast(m_buffer.c_str()); - assert(m_content != nullptr); - m_start = m_cursor = m_content; - m_limit = m_content + m_buffer.size(); + // fill buffer + fill_line_buffer(); } - /// default constructor - lexer() = default; - - // switch off unwanted functions + // switch off unwanted functions (due to pointer members) + lexer() = delete; lexer(const lexer&) = delete; lexer operator=(const lexer&) = delete; /*! - @brief create a string from a Unicode code point + @brief create a string from one or two Unicode code points + + There are two cases: (1) @a codepoint1 is in the Basic Multilingual + Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2) + @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to + represent a code point above U+FFFF. @param[in] codepoint1 the code point (can be high surrogate) @param[in] codepoint2 the code point (can be low surrogate or 0) - @return string representation of the code point + @return string representation of the code point; the length of the + result string is between 1 and 4 characters. - @throw std::out_of_range if code point is >0x10ffff; example: `"code + @throw std::out_of_range if code point is > 0x10ffff; example: `"code points above 0x10FFFF are invalid"` @throw std::invalid_argument if the low surrogate is invalid; example: `""missing or wrong low surrogate""` + @complexity Constant. + @see */ static string_t to_unicode(const std::size_t codepoint1, const std::size_t codepoint2 = 0) { - // calculate the codepoint from the given code points + // calculate the code point from the given code points std::size_t codepoint = codepoint1; // check if codepoint1 is a high surrogate @@ -7404,7 +7711,7 @@ class basic_json } /// return name of values of type token_type (only used for errors) - static std::string token_type_name(token_type t) + static std::string token_type_name(const token_type t) { switch (t) { @@ -7453,403 +7760,416 @@ class basic_json function consists of a large block of code with `goto` jumps. @return the class of the next token read from the buffer + + @complexity Linear in the length of the input.\n + + Proposition: The loop below will always terminate for finite input.\n + + Proof (by contradiction): Assume a finite input. To loop forever, the + loop must never hit code with a `break` statement. The only code + snippets without a `break` statement are the continue statements for + whitespace and byte-order-marks. To loop forever, the input must be an + infinite sequence of whitespace or byte-order-marks. This contradicts + the assumption of finite input, q.e.d. */ - token_type scan() noexcept + token_type scan() { - // pointer for backtracking information - m_marker = nullptr; + while (true) + { + // pointer for backtracking information + m_marker = nullptr; - // remember the begin of the token - m_start = m_cursor; - assert(m_start != nullptr); + // remember the begin of the token + m_start = m_cursor; + assert(m_start != nullptr); - { - lexer_char_t yych; - unsigned int yyaccept = 0; - static const unsigned char yybm[] = - { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 32, 0, 0, 32, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 160, 128, 0, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 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, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - }; - if ((m_limit - m_cursor) < 5) - { - yyfill(); // LCOV_EXCL_LINE; - } - yych = *m_cursor; - if (yybm[0 + yych] & 32) - { - goto basic_json_parser_6; - } - if (yych <= '\\') - { - if (yych <= '-') - { - if (yych <= '"') + { + lexer_char_t yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = + { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 32, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 160, 128, 0, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 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, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + }; + if ((m_limit - m_cursor) < 5) + { + fill_line_buffer(); + } + yych = *m_cursor; + if (yybm[0 + yych] & 32) + { + goto basic_json_parser_6; + } + if (yych <= '\\') + { + if (yych <= '-') { - if (yych <= 0x00) + if (yych <= '"') { - goto basic_json_parser_2; + if (yych <= 0x00) + { + goto basic_json_parser_2; + } + if (yych <= '!') + { + goto basic_json_parser_4; + } + goto basic_json_parser_9; } - if (yych <= '!') + else { - goto basic_json_parser_4; + if (yych <= '+') + { + goto basic_json_parser_4; + } + if (yych <= ',') + { + goto basic_json_parser_10; + } + goto basic_json_parser_12; } - goto basic_json_parser_9; } else { - if (yych <= '+') + if (yych <= '9') { - goto basic_json_parser_4; + if (yych <= '/') + { + goto basic_json_parser_4; + } + if (yych <= '0') + { + goto basic_json_parser_13; + } + goto basic_json_parser_15; } - if (yych <= ',') + else { - goto basic_json_parser_10; + if (yych <= ':') + { + goto basic_json_parser_17; + } + if (yych == '[') + { + goto basic_json_parser_19; + } + goto basic_json_parser_4; } - goto basic_json_parser_12; } } else { - if (yych <= '9') + if (yych <= 't') { - if (yych <= '/') + if (yych <= 'f') { - goto basic_json_parser_4; + if (yych <= ']') + { + goto basic_json_parser_21; + } + if (yych <= 'e') + { + goto basic_json_parser_4; + } + goto basic_json_parser_23; } - if (yych <= '0') + else { - goto basic_json_parser_13; + if (yych == 'n') + { + goto basic_json_parser_24; + } + if (yych <= 's') + { + goto basic_json_parser_4; + } + goto basic_json_parser_25; } - goto basic_json_parser_15; } else { - if (yych <= ':') + if (yych <= '|') { - goto basic_json_parser_17; + if (yych == '{') + { + goto basic_json_parser_26; + } + goto basic_json_parser_4; } - if (yych == '[') + else { - goto basic_json_parser_19; + if (yych <= '}') + { + goto basic_json_parser_28; + } + if (yych == 0xEF) + { + goto basic_json_parser_30; + } + goto basic_json_parser_4; } - goto basic_json_parser_4; } } - } - else - { - if (yych <= 't') +basic_json_parser_2: + ++m_cursor; { - if (yych <= 'f') - { - if (yych <= ']') - { - goto basic_json_parser_21; - } - if (yych <= 'e') - { - goto basic_json_parser_4; - } - goto basic_json_parser_23; - } - else - { - if (yych == 'n') - { - goto basic_json_parser_24; - } - if (yych <= 's') - { - goto basic_json_parser_4; - } - goto basic_json_parser_25; - } - } - else - { - if (yych <= '|') - { - if (yych == '{') - { - goto basic_json_parser_26; - } - goto basic_json_parser_4; - } - else - { - if (yych <= '}') - { - goto basic_json_parser_28; - } - if (yych == 0xEF) - { - goto basic_json_parser_30; - } - goto basic_json_parser_4; - } + last_token_type = token_type::end_of_input; + break; } - } -basic_json_parser_2: - ++m_cursor; - { - return token_type::end_of_input; - } basic_json_parser_4: - ++m_cursor; + ++m_cursor; basic_json_parser_5: - { - return token_type::parse_error; - } + { + last_token_type = token_type::parse_error; + break; + } basic_json_parser_6: - ++m_cursor; - if (m_limit <= m_cursor) - { - yyfill(); // LCOV_EXCL_LINE; - } - yych = *m_cursor; - if (yybm[0 + yych] & 32) - { - goto basic_json_parser_6; - } - { - return scan(); - } + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(); + } + yych = *m_cursor; + if (yybm[0 + yych] & 32) + { + goto basic_json_parser_6; + } + { + continue; + } basic_json_parser_9: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych <= 0x0F) - { - goto basic_json_parser_5; - } - goto basic_json_parser_32; + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych <= 0x1F) + { + goto basic_json_parser_5; + } + goto basic_json_parser_32; basic_json_parser_10: - ++m_cursor; - { - return token_type::value_separator; - } + ++m_cursor; + { + last_token_type = token_type::value_separator; + break; + } basic_json_parser_12: - yych = *++m_cursor; - if (yych <= '/') - { + yych = *++m_cursor; + if (yych <= '/') + { + goto basic_json_parser_5; + } + if (yych <= '0') + { + goto basic_json_parser_13; + } + if (yych <= '9') + { + goto basic_json_parser_15; + } goto basic_json_parser_5; - } - if (yych <= '0') - { - goto basic_json_parser_13; - } - if (yych <= '9') - { - goto basic_json_parser_15; - } - goto basic_json_parser_5; basic_json_parser_13: - yyaccept = 1; - yych = *(m_marker = ++m_cursor); - if (yych <= 'D') - { - if (yych == '.') + yyaccept = 1; + yych = *(m_marker = ++m_cursor); + if (yych <= 'D') { - goto basic_json_parser_37; + if (yych == '.') + { + goto basic_json_parser_37; + } } - } - else - { - if (yych <= 'E') + else { - goto basic_json_parser_38; + if (yych <= 'E') + { + goto basic_json_parser_38; + } + if (yych == 'e') + { + goto basic_json_parser_38; + } } - if (yych == 'e') +basic_json_parser_14: { - goto basic_json_parser_38; + last_token_type = token_type::value_number; + break; } - } -basic_json_parser_14: - { - return token_type::value_number; - } basic_json_parser_15: - yyaccept = 1; - m_marker = ++m_cursor; - if ((m_limit - m_cursor) < 3) - { - yyfill(); // LCOV_EXCL_LINE; - } - yych = *m_cursor; - if (yybm[0 + yych] & 64) - { - goto basic_json_parser_15; - } - if (yych <= 'D') - { - if (yych == '.') + yyaccept = 1; + m_marker = ++m_cursor; + if ((m_limit - m_cursor) < 3) { - goto basic_json_parser_37; + fill_line_buffer(); } - goto basic_json_parser_14; - } - else - { - if (yych <= 'E') + yych = *m_cursor; + if (yybm[0 + yych] & 64) { - goto basic_json_parser_38; + goto basic_json_parser_15; } - if (yych == 'e') + if (yych <= 'D') + { + if (yych == '.') + { + goto basic_json_parser_37; + } + goto basic_json_parser_14; + } + else { - goto basic_json_parser_38; + if (yych <= 'E') + { + goto basic_json_parser_38; + } + if (yych == 'e') + { + goto basic_json_parser_38; + } + goto basic_json_parser_14; } - goto basic_json_parser_14; - } basic_json_parser_17: - ++m_cursor; - { - return token_type::name_separator; - } + ++m_cursor; + { + last_token_type = token_type::name_separator; + break; + } basic_json_parser_19: - ++m_cursor; - { - return token_type::begin_array; - } + ++m_cursor; + { + last_token_type = token_type::begin_array; + break; + } basic_json_parser_21: - ++m_cursor; - { - return token_type::end_array; - } + ++m_cursor; + { + last_token_type = token_type::end_array; + break; + } basic_json_parser_23: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'a') - { - goto basic_json_parser_39; - } - goto basic_json_parser_5; + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'a') + { + goto basic_json_parser_39; + } + goto basic_json_parser_5; basic_json_parser_24: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'u') - { - goto basic_json_parser_40; - } - goto basic_json_parser_5; + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'u') + { + goto basic_json_parser_40; + } + goto basic_json_parser_5; basic_json_parser_25: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 'r') - { - goto basic_json_parser_41; - } - goto basic_json_parser_5; + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 'r') + { + goto basic_json_parser_41; + } + goto basic_json_parser_5; basic_json_parser_26: - ++m_cursor; - { - return token_type::begin_object; - } + ++m_cursor; + { + last_token_type = token_type::begin_object; + break; + } basic_json_parser_28: - ++m_cursor; - { - return token_type::end_object; - } + ++m_cursor; + { + last_token_type = token_type::end_object; + break; + } basic_json_parser_30: - yyaccept = 0; - yych = *(m_marker = ++m_cursor); - if (yych == 0xBB) - { - goto basic_json_parser_42; - } - goto basic_json_parser_5; + yyaccept = 0; + yych = *(m_marker = ++m_cursor); + if (yych == 0xBB) + { + goto basic_json_parser_42; + } + goto basic_json_parser_5; basic_json_parser_31: - ++m_cursor; - if (m_limit <= m_cursor) - { - yyfill(); // LCOV_EXCL_LINE; - } - yych = *m_cursor; + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(); + } + yych = *m_cursor; basic_json_parser_32: - if (yybm[0 + yych] & 128) - { - goto basic_json_parser_31; - } - if (yych <= 0x0F) - { - goto basic_json_parser_33; - } - if (yych <= '"') - { - goto basic_json_parser_34; - } - goto basic_json_parser_36; + if (yybm[0 + yych] & 128) + { + goto basic_json_parser_31; + } + if (yych <= 0x1F) + { + goto basic_json_parser_33; + } + if (yych <= '"') + { + goto basic_json_parser_34; + } + goto basic_json_parser_36; basic_json_parser_33: - m_cursor = m_marker; - if (yyaccept == 0) - { - goto basic_json_parser_5; - } - else - { - goto basic_json_parser_14; - } + m_cursor = m_marker; + if (yyaccept == 0) + { + goto basic_json_parser_5; + } + else + { + goto basic_json_parser_14; + } basic_json_parser_34: - ++m_cursor; - { - return token_type::value_string; - } + ++m_cursor; + { + last_token_type = token_type::value_string; + break; + } basic_json_parser_36: - ++m_cursor; - if (m_limit <= m_cursor) - { - yyfill(); // LCOV_EXCL_LINE; - } - yych = *m_cursor; - if (yych <= 'e') - { - if (yych <= '/') + ++m_cursor; + if (m_limit <= m_cursor) { - if (yych == '"') - { - goto basic_json_parser_31; - } - if (yych <= '.') - { - goto basic_json_parser_33; - } - goto basic_json_parser_31; + fill_line_buffer(); } - else + yych = *m_cursor; + if (yych <= 'e') { - if (yych <= '\\') + if (yych <= '/') { - if (yych <= '[') + if (yych == '"') + { + goto basic_json_parser_31; + } + if (yych <= '.') { goto basic_json_parser_33; } @@ -7857,33 +8177,33 @@ basic_json_parser_36: } else { - if (yych == 'b') + if (yych <= '\\') { + if (yych <= '[') + { + goto basic_json_parser_33; + } goto basic_json_parser_31; } - goto basic_json_parser_33; - } - } - } - else - { - if (yych <= 'q') - { - if (yych <= 'f') - { - goto basic_json_parser_31; - } - if (yych == 'n') - { - goto basic_json_parser_31; + else + { + if (yych == 'b') + { + goto basic_json_parser_31; + } + goto basic_json_parser_33; + } } - goto basic_json_parser_33; } else { - if (yych <= 's') + if (yych <= 'q') { - if (yych <= 'r') + if (yych <= 'f') + { + goto basic_json_parser_31; + } + if (yych == 'n') { goto basic_json_parser_31; } @@ -7891,361 +8211,423 @@ basic_json_parser_36: } else { - if (yych <= 't') + if (yych <= 's') { - goto basic_json_parser_31; + if (yych <= 'r') + { + goto basic_json_parser_31; + } + goto basic_json_parser_33; } - if (yych <= 'u') + else { - goto basic_json_parser_43; + if (yych <= 't') + { + goto basic_json_parser_31; + } + if (yych <= 'u') + { + goto basic_json_parser_43; + } + goto basic_json_parser_33; } - goto basic_json_parser_33; } } - } basic_json_parser_37: - yych = *++m_cursor; - if (yych <= '/') - { + yych = *++m_cursor; + if (yych <= '/') + { + goto basic_json_parser_33; + } + if (yych <= '9') + { + goto basic_json_parser_44; + } goto basic_json_parser_33; - } - if (yych <= '9') - { - goto basic_json_parser_44; - } - goto basic_json_parser_33; basic_json_parser_38: - yych = *++m_cursor; - if (yych <= ',') - { - if (yych == '+') + yych = *++m_cursor; + if (yych <= ',') { - goto basic_json_parser_46; + if (yych == '+') + { + goto basic_json_parser_46; + } + goto basic_json_parser_33; + } + else + { + if (yych <= '-') + { + goto basic_json_parser_46; + } + if (yych <= '/') + { + goto basic_json_parser_33; + } + if (yych <= '9') + { + goto basic_json_parser_47; + } + goto basic_json_parser_33; + } +basic_json_parser_39: + yych = *++m_cursor; + if (yych == 'l') + { + goto basic_json_parser_49; } goto basic_json_parser_33; - } - else - { - if (yych <= '-') +basic_json_parser_40: + yych = *++m_cursor; + if (yych == 'l') { - goto basic_json_parser_46; + goto basic_json_parser_50; } - if (yych <= '/') + goto basic_json_parser_33; +basic_json_parser_41: + yych = *++m_cursor; + if (yych == 'u') { + goto basic_json_parser_51; + } + goto basic_json_parser_33; +basic_json_parser_42: + yych = *++m_cursor; + if (yych == 0xBF) + { + goto basic_json_parser_52; + } + goto basic_json_parser_33; +basic_json_parser_43: + ++m_cursor; + if (m_limit <= m_cursor) + { + fill_line_buffer(); + } + yych = *m_cursor; + if (yych <= '@') + { + if (yych <= '/') + { + goto basic_json_parser_33; + } + if (yych <= '9') + { + goto basic_json_parser_54; + } + goto basic_json_parser_33; + } + else + { + if (yych <= 'F') + { + goto basic_json_parser_54; + } + if (yych <= '`') + { + goto basic_json_parser_33; + } + if (yych <= 'f') + { + goto basic_json_parser_54; + } goto basic_json_parser_33; } - if (yych <= '9') +basic_json_parser_44: + yyaccept = 1; + m_marker = ++m_cursor; + if ((m_limit - m_cursor) < 3) { - goto basic_json_parser_47; + fill_line_buffer(); } - goto basic_json_parser_33; - } -basic_json_parser_39: - yych = *++m_cursor; - if (yych == 'l') - { - goto basic_json_parser_49; - } - goto basic_json_parser_33; -basic_json_parser_40: - yych = *++m_cursor; - if (yych == 'l') - { - goto basic_json_parser_50; - } - goto basic_json_parser_33; -basic_json_parser_41: - yych = *++m_cursor; - if (yych == 'u') - { - goto basic_json_parser_51; - } - goto basic_json_parser_33; -basic_json_parser_42: - yych = *++m_cursor; - if (yych == 0xBF) - { - goto basic_json_parser_52; - } - goto basic_json_parser_33; -basic_json_parser_43: - ++m_cursor; - if (m_limit <= m_cursor) - { - yyfill(); // LCOV_EXCL_LINE; - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') + yych = *m_cursor; + if (yych <= 'D') { - goto basic_json_parser_33; + if (yych <= '/') + { + goto basic_json_parser_14; + } + if (yych <= '9') + { + goto basic_json_parser_44; + } + goto basic_json_parser_14; } - if (yych <= '9') + else { - goto basic_json_parser_54; + if (yych <= 'E') + { + goto basic_json_parser_38; + } + if (yych == 'e') + { + goto basic_json_parser_38; + } + goto basic_json_parser_14; } - goto basic_json_parser_33; - } - else - { - if (yych <= 'F') +basic_json_parser_46: + yych = *++m_cursor; + if (yych <= '/') { - goto basic_json_parser_54; + goto basic_json_parser_33; } - if (yych <= '`') + if (yych >= ':') { goto basic_json_parser_33; } - if (yych <= 'f') +basic_json_parser_47: + ++m_cursor; + if (m_limit <= m_cursor) { - goto basic_json_parser_54; + fill_line_buffer(); } - goto basic_json_parser_33; - } -basic_json_parser_44: - yyaccept = 1; - m_marker = ++m_cursor; - if ((m_limit - m_cursor) < 3) - { - yyfill(); // LCOV_EXCL_LINE; - } - yych = *m_cursor; - if (yych <= 'D') - { + yych = *m_cursor; if (yych <= '/') { goto basic_json_parser_14; } if (yych <= '9') { - goto basic_json_parser_44; + goto basic_json_parser_47; } goto basic_json_parser_14; - } - else - { - if (yych <= 'E') +basic_json_parser_49: + yych = *++m_cursor; + if (yych == 's') { - goto basic_json_parser_38; + goto basic_json_parser_55; } - if (yych == 'e') + goto basic_json_parser_33; +basic_json_parser_50: + yych = *++m_cursor; + if (yych == 'l') { - goto basic_json_parser_38; + goto basic_json_parser_56; } - goto basic_json_parser_14; - } -basic_json_parser_46: - yych = *++m_cursor; - if (yych <= '/') - { - goto basic_json_parser_33; - } - if (yych >= ':') - { goto basic_json_parser_33; - } -basic_json_parser_47: - ++m_cursor; - if (m_limit <= m_cursor) - { - yyfill(); // LCOV_EXCL_LINE; - } - yych = *m_cursor; - if (yych <= '/') - { - goto basic_json_parser_14; - } - if (yych <= '9') - { - goto basic_json_parser_47; - } - goto basic_json_parser_14; -basic_json_parser_49: - yych = *++m_cursor; - if (yych == 's') - { - goto basic_json_parser_55; - } - goto basic_json_parser_33; -basic_json_parser_50: - yych = *++m_cursor; - if (yych == 'l') - { - goto basic_json_parser_56; - } - goto basic_json_parser_33; basic_json_parser_51: - yych = *++m_cursor; - if (yych == 'e') - { - goto basic_json_parser_58; - } - goto basic_json_parser_33; + yych = *++m_cursor; + if (yych == 'e') + { + goto basic_json_parser_58; + } + goto basic_json_parser_33; basic_json_parser_52: - ++m_cursor; - { - return scan(); - } -basic_json_parser_54: - ++m_cursor; - if (m_limit <= m_cursor) - { - yyfill(); // LCOV_EXCL_LINE; - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') + ++m_cursor; { - goto basic_json_parser_33; + continue; } - if (yych <= '9') +basic_json_parser_54: + ++m_cursor; + if (m_limit <= m_cursor) { - goto basic_json_parser_60; + fill_line_buffer(); } - goto basic_json_parser_33; - } - else - { - if (yych <= 'F') + yych = *m_cursor; + if (yych <= '@') { - goto basic_json_parser_60; + if (yych <= '/') + { + goto basic_json_parser_33; + } + if (yych <= '9') + { + goto basic_json_parser_60; + } + goto basic_json_parser_33; } - if (yych <= '`') + else { + if (yych <= 'F') + { + goto basic_json_parser_60; + } + if (yych <= '`') + { + goto basic_json_parser_33; + } + if (yych <= 'f') + { + goto basic_json_parser_60; + } goto basic_json_parser_33; } - if (yych <= 'f') +basic_json_parser_55: + yych = *++m_cursor; + if (yych == 'e') { - goto basic_json_parser_60; + goto basic_json_parser_61; } goto basic_json_parser_33; - } -basic_json_parser_55: - yych = *++m_cursor; - if (yych == 'e') - { - goto basic_json_parser_61; - } - goto basic_json_parser_33; basic_json_parser_56: - ++m_cursor; - { - return token_type::literal_null; - } -basic_json_parser_58: - ++m_cursor; - { - return token_type::literal_true; - } -basic_json_parser_60: - ++m_cursor; - if (m_limit <= m_cursor) - { - yyfill(); // LCOV_EXCL_LINE; - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') + ++m_cursor; { - goto basic_json_parser_33; + last_token_type = token_type::literal_null; + break; } - if (yych <= '9') +basic_json_parser_58: + ++m_cursor; { - goto basic_json_parser_63; + last_token_type = token_type::literal_true; + break; } - goto basic_json_parser_33; - } - else - { - if (yych <= 'F') +basic_json_parser_60: + ++m_cursor; + if (m_limit <= m_cursor) { - goto basic_json_parser_63; + fill_line_buffer(); } - if (yych <= '`') + yych = *m_cursor; + if (yych <= '@') { + if (yych <= '/') + { + goto basic_json_parser_33; + } + if (yych <= '9') + { + goto basic_json_parser_63; + } goto basic_json_parser_33; } - if (yych <= 'f') - { - goto basic_json_parser_63; - } - goto basic_json_parser_33; - } -basic_json_parser_61: - ++m_cursor; - { - return token_type::literal_false; - } -basic_json_parser_63: - ++m_cursor; - if (m_limit <= m_cursor) - { - yyfill(); // LCOV_EXCL_LINE; - } - yych = *m_cursor; - if (yych <= '@') - { - if (yych <= '/') + else { + if (yych <= 'F') + { + goto basic_json_parser_63; + } + if (yych <= '`') + { + goto basic_json_parser_33; + } + if (yych <= 'f') + { + goto basic_json_parser_63; + } goto basic_json_parser_33; } - if (yych <= '9') +basic_json_parser_61: + ++m_cursor; { - goto basic_json_parser_31; + last_token_type = token_type::literal_false; + break; } - goto basic_json_parser_33; - } - else - { - if (yych <= 'F') +basic_json_parser_63: + ++m_cursor; + if (m_limit <= m_cursor) { - goto basic_json_parser_31; + fill_line_buffer(); } - if (yych <= '`') + yych = *m_cursor; + if (yych <= '@') { + if (yych <= '/') + { + goto basic_json_parser_33; + } + if (yych <= '9') + { + goto basic_json_parser_31; + } goto basic_json_parser_33; } - if (yych <= 'f') + else { - goto basic_json_parser_31; + if (yych <= 'F') + { + goto basic_json_parser_31; + } + if (yych <= '`') + { + goto basic_json_parser_33; + } + if (yych <= 'f') + { + goto basic_json_parser_31; + } + goto basic_json_parser_33; } - goto basic_json_parser_33; } + } + return last_token_type; } - /// append data from the stream to the internal buffer - void yyfill() noexcept + /*! + @brief append data from the stream to the line buffer + + This function is called by the scan() function when the end of the + buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be + incremented without leaving the limits of the line buffer. Note re2c + decides when to call this function. + + If the lexer reads from contiguous storage, there is no trailing null + byte. Therefore, this function must make sure to add these padding + null bytes. + + If the lexer reads from an input stream, this function reads the next + line of the input. + + @pre + p p p p p p u u u u u x . . . . . . + ^ ^ ^ ^ + m_content m_start | m_limit + m_cursor + + @post + u u u u u x x x x x x x . . . . . . + ^ ^ ^ + | m_cursor m_limit + m_start + m_content + */ + void fill_line_buffer() { - if (m_stream == nullptr or not * m_stream) - { - return; - } - + // number of processed characters (p) const auto offset_start = m_start - m_content; - const auto offset_marker = m_marker - m_start; + // offset for m_marker wrt. to m_start + const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start; + // number of unprocessed characters (u) const auto offset_cursor = m_cursor - m_start; - m_buffer.erase(0, static_cast(offset_start)); - std::string line; - assert(m_stream != nullptr); - std::getline(*m_stream, line); - m_buffer += "\n" + line; // add line with newline symbol + // no stream is used or end of file is reached + if (m_stream == nullptr or m_stream->eof()) + { + // copy unprocessed characters to line buffer + m_line_buffer.clear(); + for (m_cursor = m_start; m_cursor != m_limit; ++m_cursor) + { + m_line_buffer.append(1, static_cast(*m_cursor)); + } + + // append 5 characters (size of longest keyword "false") to + // make sure that there is sufficient space between m_cursor + // and m_limit + m_line_buffer.append(5, '\0'); + } + else + { + // delete processed characters from line buffer + m_line_buffer.erase(0, static_cast(offset_start)); + // read next line from input stream + std::string line; + std::getline(*m_stream, line); + // add line with newline symbol to the line buffer + m_line_buffer += line + "\n"; + } - m_content = reinterpret_cast(m_buffer.c_str()); + // set pointers + m_content = reinterpret_cast(m_line_buffer.c_str()); assert(m_content != nullptr); m_start = m_content; m_marker = m_start + offset_marker; m_cursor = m_start + offset_cursor; - m_limit = m_start + m_buffer.size() - 1; + m_limit = m_start + m_line_buffer.size(); } /// return string representation of last read token - string_t get_token() const + string_t get_token_string() const { assert(m_start != nullptr); return string_t(reinterpret_cast(m_start), @@ -8270,12 +8652,49 @@ basic_json_parser_63: of the construction of the values. 2. Unescaped characters are copied as is. + @pre `m_cursor - m_start >= 2`, meaning the length of the last token + is at least 2 bytes which is trivially true for any string (which + consists of at least two quotes). + + " c1 c2 c3 ... " + ^ ^ + m_start m_cursor + + @complexity Linear in the length of the string.\n + + Lemma: The loop body will always terminate.\n + + Proof (by contradiction): Assume the loop body does not terminate. As + the loop body does not contain another loop, one of the called + functions must never return. The called functions are `std::strtoul` + and to_unicode. Neither function can loop forever, so the loop body + will never loop forever which contradicts the assumption that the loop + body does not terminate, q.e.d.\n + + Lemma: The loop condition for the for loop is eventually false.\n + + Proof (by contradiction): Assume the loop does not terminate. Due to + the above lemma, this can only be due to a tautological loop + condition; that is, the loop condition i < m_cursor - 1 must always be + true. Let x be the change of i for any loop iteration. Then + m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This + can be rephrased to m_cursor - m_start - 2 > x. With the + precondition, we x <= 0, meaning that the loop condition holds + indefinitly if i is always decreased. However, observe that the value + of i is strictly increasing with each iteration, as it is incremented + by 1 in the iteration expression and never decremented inside the loop + body. Hence, the loop condition will eventually be false which + contradicts the assumption that the loop condition is a tautology, + q.e.d. + @return string value of current token without opening and closing quotes @throw std::out_of_range if to_unicode fails */ string_t get_string() const { + assert(m_cursor - m_start >= 2); + string_t result; result.reserve(static_cast(m_cursor - m_start - 2)); @@ -8391,11 +8810,6 @@ basic_json_parser_63: the number @return the floating point number - - @bug This function uses `std::strtof`, `std::strtod`, or `std::strtold` - which use the current C locale to determine which character is used as - decimal point character. This may yield to parse errors if the locale - does not used `.`. */ long double str_to_float_t(long double* /* type */, char** endptr) const { @@ -8456,18 +8870,12 @@ basic_json_parser_63: number_integer_t or @ref number_unsigned_t then it sets the result parameter accordingly. - The 'floating point representation' includes the number of significant - figures after the radix point, whether the number is in exponential or - decimal form, the capitalization of the exponent marker, and if the - optional '+' is present in the exponent. This information is necessary - to perform accurate round trips of floating point numbers. - If the number is a floating point number the number is then parsed using @a std:strtod (or @a std:strtof or @a std::strtold). @param[out] result @ref basic_json object to receive the number, or - NAN if the conversion read past the current token. The latter case - needs to be treated by the caller function. + NAN if the conversion read past the current token. The latter case + needs to be treated by the caller function. */ void get_number(basic_json& result) const { @@ -8475,15 +8883,6 @@ basic_json_parser_63: const lexer::lexer_char_t* curptr = m_start; - // remember this number was parsed (for later serialization) - result.m_type.bits.parsed = true; - - // 'found_radix_point' will be set to 0xFF upon finding a radix - // point and later used to mask in/out the precision depending - // whether a radix is found i.e. 'precision &= found_radix_point' - uint8_t found_radix_point = 0; - uint8_t precision = 0; - // accumulate the integer conversion result (unsigned for now) number_unsigned_t value = 0; @@ -8497,13 +8896,13 @@ basic_json_parser_63: if (*curptr == '-') { type = value_t::number_integer; - max = static_cast(std::numeric_limits::max()) + 1; + max = static_cast((std::numeric_limits::max)()) + 1; curptr++; } else { type = value_t::number_unsigned; - max = static_cast(std::numeric_limits::max()); + max = static_cast((std::numeric_limits::max)()); } // count the significant figures @@ -8516,22 +8915,11 @@ basic_json_parser_63: { // don't count '.' but change to float type = value_t::number_float; - - // reset precision count - precision = 0; - found_radix_point = 0xFF; continue; } // assume exponent (if not then will fail parse): change to // float, stop counting and record exponent details type = value_t::number_float; - result.m_type.bits.has_exp = true; - - // exponent capitalization - result.m_type.bits.exp_cap = (*curptr == 'E'); - - // exponent '+' sign - result.m_type.bits.exp_plus = (*(++curptr) == '+'); break; } @@ -8539,7 +8927,7 @@ basic_json_parser_63: if (type != value_t::number_float) { // multiply last value by ten and add the new digit - auto temp = value * 10 + *curptr - 0x30; + auto temp = value * 10 + *curptr - '0'; // test for overflow if (temp < value || temp > max) @@ -8553,13 +8941,8 @@ basic_json_parser_63: value = temp; } } - ++precision; } - // If no radix point was found then precision would now be set to - // the number of digits, which is wrong - clear it. - result.m_type.bits.precision = precision & found_radix_point; - // save the value (if not a float) if (type == value_t::number_unsigned) { @@ -8582,8 +8965,8 @@ basic_json_parser_63: private: /// optional input stream std::istream* m_stream = nullptr; - /// the buffer - string_t m_buffer; + /// line buffer buffer for m_stream + string_t m_line_buffer {}; /// the buffer pointer const lexer_char_t* m_content = nullptr; /// pointer to the beginning of the current symbol @@ -8594,6 +8977,8 @@ basic_json_parser_63: const lexer_char_t* m_cursor = nullptr; /// pointer to the end of the buffer const lexer_char_t* m_limit = nullptr; + /// the last token type + token_type last_token_type = token_type::end_of_input; }; /*! @@ -8604,32 +8989,42 @@ basic_json_parser_63: class parser { public: - /// constructor for strings - parser(const string_t& s, parser_callback_t cb = nullptr) noexcept - : callback(cb), m_lexer(s) - { - // read first token - get_token(); - } + /// a parser reading from a string literal + parser(const char* buff, const parser_callback_t cb = nullptr) + : callback(cb), + m_lexer(reinterpret_cast(buff), strlen(buff)) + {} /// a parser reading from an input stream - parser(std::istream& _is, parser_callback_t cb = nullptr) noexcept - : callback(cb), m_lexer(&_is) - { - // read first token - get_token(); - } + parser(std::istream& is, const parser_callback_t cb = nullptr) + : callback(cb), m_lexer(is) + {} + + /// a parser reading from an iterator range with contiguous storage + template::iterator_category, std::random_access_iterator_tag>::value + , int>::type + = 0> + parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr) + : callback(cb), + m_lexer(reinterpret_cast(&(*first)), + static_cast(std::distance(first, last))) + {} /// public parser interface basic_json parse() { + // read first token + get_token(); + basic_json result = parse_internal(true); + result.assert_invariant(); expect(lexer::token_type::end_of_input); // return parser result and replace it with null in case the // top-level value was discarded by the callback function - return result.is_discarded() ? basic_json() : result; + return result.is_discarded() ? basic_json() : std::move(result); } private: @@ -8642,11 +9037,12 @@ basic_json_parser_63: { case lexer::token_type::begin_object: { - if (keep and (not callback or (keep = callback(depth++, parse_event_t::object_start, result)))) + if (keep and (not callback + or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0))) { // explicitly set result to object to cope with {} result.m_type = value_t::object; - result.m_value = json_value(value_t::object); + result.m_value = value_t::object; } // read next token @@ -8720,11 +9116,12 @@ basic_json_parser_63: case lexer::token_type::begin_array: { - if (keep and (not callback or (keep = callback(depth++, parse_event_t::array_start, result)))) + if (keep and (not callback + or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0))) { // explicitly set result to object to cope with [] result.m_type = value_t::array; - result.m_value = json_value(value_t::array); + result.m_value = value_t::array; } // read next token @@ -8826,7 +9223,7 @@ basic_json_parser_63: } /// get next token from lexer - typename lexer::token_type get_token() noexcept + typename lexer::token_type get_token() { last_token = m_lexer.scan(); return last_token; @@ -8837,7 +9234,8 @@ basic_json_parser_63: if (t != last_token) { std::string error_msg = "parse error - unexpected "; - error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token() + "'") : + error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + + "'") : lexer::token_type_name(last_token)); error_msg += "; expected " + lexer::token_type_name(t); throw std::invalid_argument(error_msg); @@ -8849,7 +9247,8 @@ basic_json_parser_63: if (t == last_token) { std::string error_msg = "parse error - unexpected "; - error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token() + "'") : + error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + + "'") : lexer::token_type_name(last_token)); throw std::invalid_argument(error_msg); } @@ -8859,7 +9258,7 @@ basic_json_parser_63: /// current level of recursion int depth = 0; /// callback function - parser_callback_t callback; + const parser_callback_t callback = nullptr; /// the type of the last read token typename lexer::token_type last_token = lexer::token_type::uninitialized; /// the lexer @@ -8927,14 +9326,12 @@ basic_json_parser_63: */ std::string to_string() const noexcept { - std::string result; - - for (const auto& reference_token : reference_tokens) + return std::accumulate(reference_tokens.begin(), + reference_tokens.end(), std::string{}, + [](const std::string & a, const std::string & b) { - result += "/" + escape(reference_token); - } - - return result; + return a + "/" + escape(b); + }); } /// @copydoc to_string() @@ -8977,6 +9374,8 @@ basic_json_parser_63: /*! @brief create and return a reference to the pointed to value + + @complexity Linear in the number of reference tokens. */ reference get_and_create(reference j) const { @@ -9232,7 +9631,7 @@ basic_json_parser_63: } /// split the string input to reference tokens - static std::vector split(std::string reference_string) + static std::vector split(const std::string& reference_string) { std::vector result; @@ -9298,7 +9697,7 @@ basic_json_parser_63: @param[in,out] s the string to manipulate @param[in] f the substring to replace with @a t - @param[out] t the string to replace @a f + @param[in] t the string to replace @a f @return The string @a s where all occurrences of @a f are replaced with @a t. @@ -9717,7 +10116,7 @@ basic_json_parser_63: json_pointer top_pointer = ptr.top(); if (top_pointer != ptr) { - basic_json& x = result.at(top_pointer); + result.at(top_pointer); } // get reference to parent of JSON pointer ptr @@ -9960,7 +10359,7 @@ basic_json_parser_63: */ static basic_json diff(const basic_json& source, const basic_json& target, - std::string path = "") + const std::string& path = "") { // the patch basic_json result(value_t::array); @@ -10001,9 +10400,12 @@ basic_json_parser_63: // in a second pass, traverse the remaining elements // remove my remaining elements + const auto end_index = static_cast(result.size()); while (i < source.size()) { - result.push_back(object( + // add operations in reverse order to avoid invalid + // indices + result.insert(result.begin() + end_index, object( { {"op", "remove"}, {"path", path + "/" + std::to_string(i)} @@ -10119,7 +10521,7 @@ namespace std @since version 1.0.0 */ -template <> +template<> inline void swap(nlohmann::json& j1, nlohmann::json& j2) noexcept( is_nothrow_move_constructible::value and @@ -10130,7 +10532,7 @@ inline void swap(nlohmann::json& j1, } /// hash value for JSON objects -template <> +template<> struct hash { /*! @@ -10151,7 +10553,7 @@ struct hash @brief user-defined string literal for JSON values This operator implements a user-defined string literal for JSON objects. It -can be used by adding \p "_json" to a string literal and returns a JSON object +can be used by adding `"_json"` to a string literal and returns a JSON object if no parse error occurred. @param[in] s a string representation of a JSON object @@ -10161,12 +10563,19 @@ if no parse error occurred. */ inline nlohmann::json operator "" _json(const char* s, std::size_t) { - return nlohmann::json::parse(reinterpret_cast(s)); + return nlohmann::json::parse(s); } /*! @brief user-defined string literal for JSON pointer +This operator implements a user-defined string literal for JSON Pointers. It +can be used by adding `"_json"` to a string literal and returns a JSON pointer +object if no parse error occurred. + +@param[in] s a string representation of a JSON Pointer +@return a JSON pointer object + @since version 2.0.0 */ inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std::size_t) diff --git a/resources/3rdparty/modernjson/src/json.hpp.re2c b/resources/3rdparty/modernjson/src/json.hpp.re2c index ba4fc007b..892c48a4c 100755 --- a/resources/3rdparty/modernjson/src/json.hpp.re2c +++ b/resources/3rdparty/modernjson/src/json.hpp.re2c @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ -| | |__ | | | | | | version 2.0.0 +| | |__ | | | | | | version 2.0.5 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . @@ -32,20 +32,22 @@ SOFTWARE. #include #include #include -#include #include #include #include -#include +#include #include +#include #include #include #include #include #include #include +#include #include #include +#include #include #include #include @@ -53,12 +55,34 @@ SOFTWARE. #include #include +// exclude unsupported compilers +#if defined(__clang__) + #define CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) + #if CLANG_VERSION < 30400 + #error "unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers" + #endif +#elif defined(__GNUC__) + #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) + #if GCC_VERSION < 40900 + #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers" + #endif +#endif + // disable float-equal warnings on GCC/clang #if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wfloat-equal" #endif +// allow for portable deprecation warnings +#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) + #define JSON_DEPRECATED __attribute__((deprecated)) +#elif defined(_MSC_VER) + #define JSON_DEPRECATED __declspec(deprecated) +#else + #define JSON_DEPRECATED +#endif + /*! @brief namespace for Niels Lohmann @see https://github.com/nlohmann @@ -76,7 +100,13 @@ namespace { /*! @brief Helper to determine whether there's a key_type for T. + +Thus helper is used to tell associative containers apart from other containers +such as sequence containers. For instance, `std::map` passes the test as it +contains a `mapped_type`, whereas `std::vector` fails the test. + @sa http://stackoverflow.com/a/7728728/266378 +@since version 1.0.0 */ template struct has_mapped_type @@ -90,11 +120,18 @@ struct has_mapped_type /*! @brief helper class to create locales with decimal point + +This struct is used a default locale during the JSON serialization. JSON +requires the decimal point to be `.`, so this function overloads the +`do_decimal_point()` function to return `.`. This function is called by +float-to-string conversions to retrieve the decimal separator between integer +and fractional parts. + @sa https://github.com/nlohmann/json/issues/51#issuecomment-86869315 +@since version 2.0.0 */ -class DecimalSeparator : public std::numpunct +struct DecimalSeparator : std::numpunct { - protected: char do_decimal_point() const { return '.'; @@ -163,6 +200,13 @@ default) JSON values can be used like STL containers and provide reverse iterator access. +@invariant The member variables @a m_value and @a m_type have the following +relationship: +- If `m_type == value_t::object`, then `m_value.object != nullptr`. +- If `m_type == value_t::array`, then `m_value.array != nullptr`. +- If `m_type == value_t::string`, then `m_value.string != nullptr`. +The invariants are checked by member function assert_invariant(). + @internal @note ObjectType trick from http://stackoverflow.com/a/9860911 @endinternal @@ -188,13 +232,8 @@ class basic_json { private: /// workaround type for MSVC - using basic_json_t = basic_json; public: @@ -207,6 +246,8 @@ class basic_json ///////////////////// /// @name container types + /// The canonic container types to use @ref basic_json like any other STL + /// container. /// @{ /// the type of elements in a basic_json container @@ -256,6 +297,8 @@ class basic_json /////////////////////////// /// @name JSON value data types + /// The data types to store a JSON value. These types are derived from + /// the template arguments passed to class @ref basic_json. /// @{ /*! @@ -358,7 +401,7 @@ class basic_json @tparam ArrayType container type to store arrays (e.g., `std::vector` or `std::list`) - @tparam AllocatorType allocator to use for arrays (e.g., `std::allocator`) + @tparam AllocatorType allocator to use for arrays (e.g., `std::allocator`) #### Default type @@ -595,15 +638,14 @@ class basic_json > that implementations will agree exactly on their numeric values. As this range is a subrange (when considered in conjunction with the - number_integer_t type) of the exactly supported range [0, UINT64_MAX], this - class's integer type is interoperable. + number_integer_t type) of the exactly supported range [0, UINT64_MAX], + this class's integer type is interoperable. #### Storage Integer number values are stored directly inside a @ref basic_json type. @sa @ref number_float_t -- type for number values (floating-point) - @sa @ref number_integer_t -- type for number values (integer) @since version 2.0.0 @@ -691,7 +733,19 @@ class basic_json This enumeration collects the different JSON types. It is internally used to distinguish the stored values, and the functions @ref is_null(), @ref is_object(), @ref is_array(), @ref is_string(), @ref is_boolean(), @ref - is_number(), and @ref is_discarded() rely on it. + is_number() (with @ref is_number_integer(), @ref is_number_unsigned(), and + @ref is_number_float()), @ref is_discarded(), @ref is_primitive(), and + @ref is_structured() rely on it. + + @note There are three enumeration entries (number_integer, + number_unsigned, and number_float), because the library distinguishes + these three types for numbers: @ref number_unsigned_t is used for unsigned + integers, @ref number_integer_t is used for signed integers, and @ref + number_float_t is used for floating-point numbers or to approximate + integers which do not fit in the limits of their respective type. + + @sa @ref basic_json(const value_t value_type) -- create a JSON value with + the default value for a given type @since version 1.0.0 */ @@ -702,7 +756,7 @@ class basic_json array, ///< array (ordered collection of values) string, ///< string value boolean, ///< boolean value - number_integer, ///< number value (integer) + number_integer, ///< number value (signed integer) number_unsigned, ///< number value (unsigned integer) number_float, ///< number value (floating-point) discarded ///< discarded by the the parser callback function @@ -711,73 +765,6 @@ class basic_json private: - /*! - @brief a type to hold JSON type information - - This bitfield type holds information about JSON types. It is internally - used to hold the basic JSON type enumeration, as well as additional - information in the case of values that have been parsed from a string - including whether of not it was created directly or parsed, and in the - case of floating point numbers the number of significant figures in the - original representaiton and if it was in exponential form, if a '+' was - included in the exponent and the capitilization of the exponent marker. - The sole purpose of this information is to permit accurate round trips. - - @since version 2.0.0 - */ - union type_data_t - { - struct - { - /// the type of the value (@ref value_t) - uint16_t type : 4; - /// whether the number was parsed from a string - uint16_t parsed : 1; - /// whether parsed number contained an exponent ('e'/'E') - uint16_t has_exp : 1; - /// whether parsed number contained a plus in the exponent - uint16_t exp_plus : 1; - /// whether parsed number's exponent was capitalized ('E') - uint16_t exp_cap : 1; - /// the number of figures for a parsed number - uint16_t precision : 8; - } bits; - uint16_t data; - - /// return the type as value_t - operator value_t() const - { - return static_cast(bits.type); - } - - /// test type for equality (ignore other fields) - bool operator==(const value_t& rhs) const - { - return static_cast(bits.type) == rhs; - } - - /// assignment - type_data_t& operator=(value_t rhs) - { - bits.type = static_cast(rhs) & 15; // avoid overflow - return *this; - } - - /// construct from value_t - type_data_t(value_t t) noexcept - { - *reinterpret_cast(this) = 0; - bits.type = static_cast(t) & 15; // avoid overflow - } - - /// default constructor - type_data_t() noexcept - { - data = 0; - bits.type = reinterpret_cast(value_t::null); - } - }; - /// helper for exception-safe object creation template static T* create(Args&& ... args) @@ -789,6 +776,7 @@ class basic_json }; std::unique_ptr object(alloc.allocate(1), deleter); alloc.construct(object.get(), std::forward(args)...); + assert(object.get() != nullptr); return object.release(); } @@ -799,7 +787,24 @@ class basic_json /*! @brief a JSON value - The actual storage for a JSON value of the @ref basic_json class. + The actual storage for a JSON value of the @ref basic_json class. This + union combines the different storage types for the JSON value types + defined in @ref value_t. + + JSON type | value_t type | used type + --------- | --------------- | ------------------------ + object | object | pointer to @ref object_t + array | array | pointer to @ref array_t + string | string | pointer to @ref string_t + boolean | boolean | @ref boolean_t + number | number_integer | @ref number_integer_t + number | number_unsigned | @ref number_unsigned_t + number | number_float | @ref number_float_t + null | null | *no value is stored* + + @note Variable-length types (objects, arrays, and strings) are stored as + pointers. The size of the union should not exceed 64 bits if the default + value types are used. @since version 1.0.0 */ @@ -903,6 +908,21 @@ class basic_json } }; + /*! + @brief checks the class invariants + + This function asserts the class invariants. It needs to be called at the + end of every constructor to make sure that created objects respect the + invariant. Furthermore, it has to be called each time the type of a JSON + value is changed, because the invariant expresses a relationship between + @a m_type and @a m_value. + */ + void assert_invariant() const + { + assert(m_type != value_t::object or m_value.object != nullptr); + assert(m_type != value_t::array or m_value.array != nullptr); + assert(m_type != value_t::string or m_value.string != nullptr); + } public: ////////////////////////// @@ -915,6 +935,8 @@ class basic_json This enumeration lists the parser events that can trigger calling a callback function of type @ref parser_callback_t during parsing. + @image html callback_events.png "Example when certain parse events are triggered" + @since version 1.0.0 */ enum class parse_event_t : uint8_t @@ -937,12 +959,13 @@ class basic_json @brief per-element parser callback type With a parser callback function, the result of parsing a JSON text can be - influenced. When passed to @ref parse(std::istream&, parser_callback_t) or - @ref parse(const string_t&, parser_callback_t), it is called on certain - events (passed as @ref parse_event_t via parameter @a event) with a set - recursion depth @a depth and context JSON value @a parsed. The return - value of the callback function is a boolean indicating whether the element - that emitted the callback shall be kept or not. + influenced. When passed to @ref parse(std::istream&, const + parser_callback_t) or @ref parse(const char*, const parser_callback_t), + it is called on certain events (passed as @ref parse_event_t via parameter + @a event) with a set recursion depth @a depth and context JSON value + @a parsed. The return value of the callback function is a boolean + indicating whether the element that emitted the callback shall be kept or + not. We distinguish six scenarios (determined by the event type) in which the callback function can be called. The following table describes the values @@ -957,6 +980,8 @@ class basic_json parse_event_t::array_end | the parser read `]` and finished processing a JSON array | depth of the parent of the JSON array | the parsed JSON array parse_event_t::value | the parser finished reading a JSON value | depth of the value | the parsed JSON value + @image html callback_events.png "Example when certain parse events are triggered" + Discarding a value (i.e., returning `false`) has different effects depending on the context in which function was called: @@ -978,11 +1003,13 @@ class basic_json skipped completely or replaced by an empty discarded object. @sa @ref parse(std::istream&, parser_callback_t) or - @ref parse(const string_t&, parser_callback_t) for examples + @ref parse(const char*, parser_callback_t) for examples @since version 1.0.0 */ - using parser_callback_t = std::function; + using parser_callback_t = std::function; ////////////////// @@ -990,6 +1017,8 @@ class basic_json ////////////////// /// @name constructors and destructors + /// Constructors of class @ref basic_json, copy/move constructor, copy + /// assignment, static functions creating objects, and the destructor. /// @{ /*! @@ -1033,40 +1062,15 @@ class basic_json */ basic_json(const value_t value_type) : m_type(value_type), m_value(value_type) - {} - - /*! - @brief create a null object (implicitly) - - Create a `null` JSON value. This is the implicit version of the `null` - value constructor as it takes no parameters. - - @complexity Constant. - - @exceptionsafety No-throw guarantee: this constructor never throws - exceptions. - - @requirement This function helps `basic_json` satisfying the - [Container](http://en.cppreference.com/w/cpp/concept/Container) - requirements: - - The complexity is constant. - - As postcondition, it holds: `basic_json().empty() == true`. - - @liveexample{The following code shows the constructor for a `null` JSON - value.,basic_json} - - @sa @ref basic_json(std::nullptr_t) -- create a `null` value - - @since version 1.0.0 - */ - basic_json() = default; + { + assert_invariant(); + } /*! - @brief create a null object (explicitly) + @brief create a null object - Create a `null` JSON value. This is the explicitly version of the `null` - value constructor as it takes a null pointer as parameter. It allows to - create `null` values by explicitly assigning a `nullptr` to a JSON value. + Create a `null` JSON value. It either takes a null pointer as parameter + (explicitly creating `null`) or no parameter (implicitly creating `null`). The passed null pointer itself is not read -- it is only used to choose the right constructor. @@ -1075,17 +1079,16 @@ class basic_json @exceptionsafety No-throw guarantee: this constructor never throws exceptions. - @liveexample{The following code shows the constructor with null pointer - parameter.,basic_json__nullptr_t} - - @sa @ref basic_json() -- default constructor (implicitly creating a `null` - value) + @liveexample{The following code shows the constructor with and without a + null pointer parameter.,basic_json__nullptr_t} @since version 1.0.0 */ - basic_json(std::nullptr_t) noexcept + basic_json(std::nullptr_t = nullptr) noexcept : basic_json(value_t::null) - {} + { + assert_invariant(); + } /*! @brief create an object (explicit) @@ -1108,7 +1111,9 @@ class basic_json */ basic_json(const object_t& val) : m_type(value_t::object), m_value(val) - {} + { + assert_invariant(); + } /*! @brief create an object (implicit) @@ -1136,17 +1141,16 @@ class basic_json @since version 1.0.0 */ - template ::value and - std::is_constructible::value, int>::type - = 0> + template::value and + std::is_constructible::value, int>::type = 0> basic_json(const CompatibleObjectType& val) : m_type(value_t::object) { using std::begin; using std::end; m_value.object = create(begin(val), end(val)); + assert_invariant(); } /*! @@ -1170,7 +1174,9 @@ class basic_json */ basic_json(const array_t& val) : m_type(value_t::array), m_value(val) - {} + { + assert_invariant(); + } /*! @brief create an array (implicit) @@ -1198,22 +1204,21 @@ class basic_json @since version 1.0.0 */ - template ::value and - not std::is_same::value and - not std::is_same::value and - not std::is_same::value and - not std::is_same::value and - not std::is_same::value and - std::is_constructible::value, int>::type - = 0> + template::value and + not std::is_same::value and + not std::is_same::value and + not std::is_same::value and + not std::is_same::value and + not std::is_same::value and + std::is_constructible::value, int>::type = 0> basic_json(const CompatibleArrayType& val) : m_type(value_t::array) { using std::begin; using std::end; m_value.array = create(begin(val), end(val)); + assert_invariant(); } /*! @@ -1239,7 +1244,9 @@ class basic_json */ basic_json(const string_t& val) : m_type(value_t::string), m_value(val) - {} + { + assert_invariant(); + } /*! @brief create a string (explicit) @@ -1263,7 +1270,9 @@ class basic_json */ basic_json(const typename string_t::value_type* val) : basic_json(string_t(val)) - {} + { + assert_invariant(); + } /*! @brief create a string (implicit) @@ -1288,13 +1297,13 @@ class basic_json @since version 1.0.0 */ - template ::value, int>::type - = 0> + template::value, int>::type = 0> basic_json(const CompatibleStringType& val) : basic_json(string_t(val)) - {} + { + assert_invariant(); + } /*! @brief create a boolean (explicit) @@ -1312,7 +1321,9 @@ class basic_json */ basic_json(boolean_t val) noexcept : m_type(value_t::boolean), m_value(val) - {} + { + assert_invariant(); + } /*! @brief create an integer number (explicit) @@ -1337,15 +1348,14 @@ class basic_json @since version 1.0.0 */ - template::value) - and std::is_same::value - , int>::type - = 0> + template::value) and + std::is_same::value, int>::type = 0> basic_json(const number_integer_t val) noexcept : m_type(value_t::number_integer), m_value(val) - {} + { + assert_invariant(); + } /*! @brief create an integer number from an enum type (explicit) @@ -1375,7 +1385,9 @@ class basic_json basic_json(const int val) noexcept : m_type(value_t::number_integer), m_value(static_cast(val)) - {} + { + assert_invariant(); + } /*! @brief create an integer number (implicit) @@ -1402,25 +1414,25 @@ class basic_json @since version 1.0.0 */ - template::value and std::numeric_limits::is_integer and std::numeric_limits::is_signed, - CompatibleNumberIntegerType>::type - = 0> + CompatibleNumberIntegerType>::type = 0> basic_json(const CompatibleNumberIntegerType val) noexcept : m_type(value_t::number_integer), m_value(static_cast(val)) - {} + { + assert_invariant(); + } /*! @brief create an unsigned integer number (explicit) Create an unsigned integer number JSON value with a given content. - @tparam T helper type to compare number_unsigned_t and unsigned int - (not visible in) the interface. + @tparam T helper type to compare number_unsigned_t and unsigned int (not + visible in) the interface. @param[in] val an integer to create a JSON number from @@ -1431,15 +1443,14 @@ class basic_json @since version 2.0.0 */ - template::value) - and std::is_same::value - , int>::type - = 0> + template::value) and + std::is_same::value, int>::type = 0> basic_json(const number_unsigned_t val) noexcept : m_type(value_t::number_unsigned), m_value(val) - {} + { + assert_invariant(); + } /*! @brief create an unsigned number (implicit) @@ -1461,17 +1472,17 @@ class basic_json @since version 2.0.0 */ - template < typename CompatibleNumberUnsignedType, typename - std::enable_if < - std::is_constructible::value and - std::numeric_limits::is_integer and - !std::numeric_limits::is_signed, - CompatibleNumberUnsignedType >::type - = 0 > + template::value and + std::numeric_limits::is_integer and + not std::numeric_limits::is_signed, + CompatibleNumberUnsignedType>::type = 0> basic_json(const CompatibleNumberUnsignedType val) noexcept : m_type(value_t::number_unsigned), m_value(static_cast(val)) - {} + { + assert_invariant(); + } /*! @brief create a floating-point number (explicit) @@ -1484,8 +1495,8 @@ class basic_json disallows NaN values: > Numeric values that cannot be represented in the grammar below (such as > Infinity and NaN) are not permitted. - In case the parameter @a val is not a number, a JSON null value is - created instead. + In case the parameter @a val is not a number, a JSON null value is created + instead. @complexity Constant. @@ -1506,6 +1517,8 @@ class basic_json m_type = value_t::null; m_value = json_value(); } + + assert_invariant(); } /*! @@ -1539,14 +1552,14 @@ class basic_json @since version 1.0.0 */ - template::value and - std::is_floating_point::value>::type - > + std::is_floating_point::value>::type> basic_json(const CompatibleNumberFloatType val) noexcept : basic_json(number_float_t(val)) - {} + { + assert_invariant(); + } /*! @brief create a container (array or object) from an initializer list @@ -1558,21 +1571,21 @@ class basic_json 1. If the list is empty, an empty JSON object value `{}` is created. 2. If the list consists of pairs whose first element is a string, a JSON - object value is created where the first elements of the pairs are treated - as keys and the second elements are as values. + object value is created where the first elements of the pairs are + treated as keys and the second elements are as values. 3. In all other cases, an array is created. The rules aim to create the best fit between a C++ initializer list and JSON values. The rationale is as follows: 1. The empty initializer list is written as `{}` which is exactly an empty - JSON object. + JSON object. 2. C++ has now way of describing mapped types other than to list a list of - pairs. As JSON requires that keys must be of type string, rule 2 is the - weakest constraint one can pose on initializer lists to interpret them as - an object. + pairs. As JSON requires that keys must be of type string, rule 2 is the + weakest constraint one can pose on initializer lists to interpret them + as an object. 3. In all other cases, the initializer list could not be interpreted as - JSON object type, so interpreting it as JSON array type is safe. + JSON object type, so interpreting it as JSON array type is safe. With the rules described above, the following JSON values cannot be expressed by an initializer list: @@ -1621,22 +1634,13 @@ class basic_json bool type_deduction = true, value_t manual_type = value_t::array) { - // the initializer list could describe an object - bool is_an_object = true; - // check if each element is an array with two elements whose first // element is a string - for (const auto& element : init) + bool is_an_object = std::all_of(init.begin(), init.end(), + [](const basic_json & element) { - if (not element.is_array() or element.size() != 2 - or not element[0].is_string()) - { - // we found an element that makes it impossible to use the - // initializer list as object - is_an_object = false; - break; - } - } + return element.is_array() and element.size() == 2 and element[0].is_string(); + }); // adjust type if type deduction is not wanted if (not type_deduction) @@ -1660,12 +1664,10 @@ class basic_json m_type = value_t::object; m_value = value_t::object; - assert(m_value.object != nullptr); - - for (auto& element : init) + std::for_each(init.begin(), init.end(), [this](const basic_json & element) { m_value.object->emplace(*(element[0].m_value.string), element[1]); - } + }); } else { @@ -1673,6 +1675,8 @@ class basic_json m_type = value_t::array; m_value.array = create(init); } + + assert_invariant(); } /*! @@ -1777,6 +1781,7 @@ class basic_json : m_type(value_t::array) { m_value.array = create(cnt, val); + assert_invariant(); } /*! @@ -1797,6 +1802,9 @@ class basic_json @param[in] first begin of the range to copy from (included) @param[in] last end of the range to copy from (excluded) + @pre Iterators @a first and @a last must be initialized. **This + precondition is enforced with an assertion.** + @throw std::domain_error if iterators are not compatible; that is, do not belong to the same JSON value; example: `"iterators are not compatible"` @throw std::out_of_range if iterators are for a primitive type (number, @@ -1813,20 +1821,23 @@ class basic_json @since version 1.0.0 */ - template ::value or - std::is_same::value - , int>::type - = 0> - basic_json(InputIT first, InputIT last) : m_type(first.m_object->m_type) + template::value or + std::is_same::value, int>::type = 0> + basic_json(InputIT first, InputIT last) { + assert(first.m_object != nullptr); + assert(last.m_object != nullptr); + // make sure iterator fits the current value if (first.m_object != last.m_object) { throw std::domain_error("iterators are not compatible"); } + // copy type from first iterator + m_type = first.m_object->m_type; + // check if iterator range is complete for primitive values switch (m_type) { @@ -1853,35 +1864,30 @@ class basic_json { case value_t::number_integer: { - assert(first.m_object != nullptr); m_value.number_integer = first.m_object->m_value.number_integer; break; } case value_t::number_unsigned: { - assert(first.m_object != nullptr); m_value.number_unsigned = first.m_object->m_value.number_unsigned; break; } case value_t::number_float: { - assert(first.m_object != nullptr); m_value.number_float = first.m_object->m_value.number_float; break; } case value_t::boolean: { - assert(first.m_object != nullptr); m_value.boolean = first.m_object->m_value.boolean; break; } case value_t::string: { - assert(first.m_object != nullptr); m_value = *first.m_object->m_value.string; break; } @@ -1900,10 +1906,11 @@ class basic_json default: { - assert(first.m_object != nullptr); throw std::domain_error("cannot use construct with iterators from " + first.m_object->type_name()); } } + + assert_invariant(); } /*! @@ -1920,15 +1927,25 @@ class basic_json @note A UTF-8 byte order mark is silently ignored. + @deprecated This constructor is deprecated and will be removed in version + 3.0.0 to unify the interface of the library. Deserialization will be + done by stream operators or by calling one of the `parse` functions, + e.g. @ref parse(std::istream&, const parser_callback_t). That is, calls + like `json j(i);` for an input stream @a i need to be replaced by + `json j = json::parse(i);`. See the example below. + @liveexample{The example below demonstrates constructing a JSON value from a `std::stringstream` with and without callback function.,basic_json__istream} - @since version 2.0.0 + @since version 2.0.0, deprecated in version 2.0.3, to be removed in + version 3.0.0 */ - explicit basic_json(std::istream& i, parser_callback_t cb = nullptr) + JSON_DEPRECATED + explicit basic_json(std::istream& i, const parser_callback_t cb = nullptr) { *this = parser(i, cb).parse(); + assert_invariant(); } /////////////////////////////////////// @@ -1960,25 +1977,25 @@ class basic_json basic_json(const basic_json& other) : m_type(other.m_type) { + // check of passed value is valid + other.assert_invariant(); + switch (m_type) { case value_t::object: { - assert(other.m_value.object != nullptr); m_value = *other.m_value.object; break; } case value_t::array: { - assert(other.m_value.array != nullptr); m_value = *other.m_value.array; break; } case value_t::string: { - assert(other.m_value.string != nullptr); m_value = *other.m_value.string; break; } @@ -2012,6 +2029,8 @@ class basic_json break; } } + + assert_invariant(); } /*! @@ -2036,9 +2055,14 @@ class basic_json : m_type(std::move(other.m_type)), m_value(std::move(other.m_value)) { + // check that passed value is valid + other.assert_invariant(); + // invalidate payload other.m_type = value_t::null; other.m_value = {}; + + assert_invariant(); } /*! @@ -2071,9 +2095,14 @@ class basic_json std::is_nothrow_move_assignable::value ) { + // check that passed value is valid + other.assert_invariant(); + using std::swap; swap(m_type, other.m_type); swap(m_value, other.m_value); + + assert_invariant(); return *this; } @@ -2094,6 +2123,8 @@ class basic_json */ ~basic_json() { + assert_invariant(); + switch (m_type) { case value_t::object: @@ -2136,19 +2167,20 @@ class basic_json /////////////////////// /// @name object inspection + /// Functions to inspect the type of a JSON value. /// @{ /*! @brief serialization Serialization function for JSON values. The function tries to mimic - Python's @p json.dumps() function, and currently supports its @p indent + Python's `json.dumps()` function, and currently supports its @a indent parameter. - @param[in] indent if indent is nonnegative, then array elements and object + @param[in] indent If indent is nonnegative, then array elements and object members will be pretty-printed with that indent level. An indent level of - 0 will only insert newlines. -1 (the default) selects the most compact - representation + `0` will only insert newlines. `-1` (the default) selects the most compact + representation. @return string containing the serialization of the JSON value @@ -2164,6 +2196,15 @@ class basic_json string_t dump(const int indent = -1) const { std::stringstream ss; + // fix locale problems + const static std::locale loc(std::locale(), new DecimalSeparator); + ss.imbue(loc); + + // 6, 15 or 16 digits of precision allows round-trip IEEE 754 + // string->float->string, string->double->string or string->long + // double->string; to be safe, we read this value from + // std::numeric_limits::digits10 + ss.precision(std::numeric_limits::digits10); if (indent >= 0) { @@ -2540,16 +2581,13 @@ class basic_json ////////////////// /// get an object (explicit) - template ::value and - std::is_convertible::value - , int>::type = 0> + template::value and + std::is_convertible::value, int>::type = 0> T get_impl(T*) const { if (is_object()) { - assert(m_value.object != nullptr); return T(m_value.object->begin(), m_value.object->end()); } else @@ -2563,7 +2601,6 @@ class basic_json { if (is_object()) { - assert(m_value.object != nullptr); return *(m_value.object); } else @@ -2573,20 +2610,17 @@ class basic_json } /// get an array (explicit) - template ::value and - not std::is_same::value and - not std::is_arithmetic::value and - not std::is_convertible::value and - not has_mapped_type::value - , int>::type = 0> + template::value and + not std::is_same::value and + not std::is_arithmetic::value and + not std::is_convertible::value and + not has_mapped_type::value, int>::type = 0> T get_impl(T*) const { if (is_array()) { T to_vector; - assert(m_value.array != nullptr); std::transform(m_value.array->begin(), m_value.array->end(), std::inserter(to_vector, to_vector.end()), [](basic_json i) { @@ -2601,17 +2635,14 @@ class basic_json } /// get an array (explicit) - template ::value and - not std::is_same::value - , int>::type = 0> + template::value and + not std::is_same::value, int>::type = 0> std::vector get_impl(std::vector*) const { if (is_array()) { std::vector to_vector; - assert(m_value.array != nullptr); to_vector.reserve(m_value.array->size()); std::transform(m_value.array->begin(), m_value.array->end(), std::inserter(to_vector, to_vector.end()), [](basic_json i) @@ -2627,16 +2658,13 @@ class basic_json } /// get an array (explicit) - template ::value and - not has_mapped_type::value - , int>::type = 0> + template::value and + not has_mapped_type::value, int>::type = 0> T get_impl(T*) const { if (is_array()) { - assert(m_value.array != nullptr); return T(m_value.array->begin(), m_value.array->end()); } else @@ -2650,7 +2678,6 @@ class basic_json { if (is_array()) { - assert(m_value.array != nullptr); return *(m_value.array); } else @@ -2660,15 +2687,12 @@ class basic_json } /// get a string (explicit) - template ::value - , int>::type = 0> + template::value, int>::type = 0> T get_impl(T*) const { if (is_string()) { - assert(m_value.string != nullptr); return *m_value.string; } else @@ -2678,10 +2702,8 @@ class basic_json } /// get a number (explicit) - template::value - , int>::type = 0> + template::value, int>::type = 0> T get_impl(T*) const { switch (m_type) @@ -2814,8 +2836,10 @@ class basic_json template static ReferenceType get_ref_impl(ThisType& obj) { - // delegate the call to get_ptr<>() + // helper type using PointerType = typename std::add_pointer::type; + + // delegate the call to get_ptr<>() auto ptr = obj.template get_ptr(); if (ptr != nullptr) @@ -2832,6 +2856,7 @@ class basic_json public: /// @name value access + /// Direct access to the stored value of a JSON value. /// @{ /*! @@ -2867,10 +2892,8 @@ class basic_json @since version 1.0.0 */ - template::value - , int>::type = 0> + template::value, int>::type = 0> ValueType get() const { return get_impl(static_cast(nullptr)); @@ -2882,7 +2905,8 @@ class basic_json Explicit pointer access to the internally stored JSON value. No copies are made. - @warning The pointer becomes invalid if the underlying JSON object changes. + @warning The pointer becomes invalid if the underlying JSON object + changes. @tparam PointerType pointer type; must be a pointer to @ref array_t, @ref object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, @@ -2902,10 +2926,8 @@ class basic_json @since version 1.0.0 */ - template::value - , int>::type = 0> + template::value, int>::type = 0> PointerType get() noexcept { // delegate the call to get_ptr @@ -2916,10 +2938,8 @@ class basic_json @brief get a pointer value (explicit) @copydoc get() */ - template::value - , int>::type = 0> + template::value, int>::type = 0> constexpr const PointerType get() const noexcept { // delegate the call to get_ptr @@ -2937,7 +2957,8 @@ class basic_json @tparam PointerType pointer type; must be a pointer to @ref array_t, @ref object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, - @ref number_unsigned_t, or @ref number_float_t. + @ref number_unsigned_t, or @ref number_float_t. Enforced by a static + assertion. @return pointer to the internally stored JSON value if the requested pointer type @a PointerType fits to the JSON value; `nullptr` otherwise @@ -2951,12 +2972,25 @@ class basic_json @since version 1.0.0 */ - template::value - , int>::type = 0> + template::value, int>::type = 0> PointerType get_ptr() noexcept { + // get the type of the PointerType (remove pointer and const) + using pointee_t = typename std::remove_const::type>::type>::type; + // make sure the type matches the allowed types + static_assert( + std::is_same::value + or std::is_same::value + or std::is_same::value + or std::is_same::value + or std::is_same::value + or std::is_same::value + or std::is_same::value + , "incompatible pointer type"); + // delegate the call to get_impl_ptr<>() return get_impl_ptr(static_cast(nullptr)); } @@ -2965,13 +2999,26 @@ class basic_json @brief get a pointer value (implicit) @copydoc get_ptr() */ - template::value - and std::is_const::type>::value - , int>::type = 0> + template::value and + std::is_const::type>::value, int>::type = 0> constexpr const PointerType get_ptr() const noexcept { + // get the type of the PointerType (remove pointer and const) + using pointee_t = typename std::remove_const::type>::type>::type; + // make sure the type matches the allowed types + static_assert( + std::is_same::value + or std::is_same::value + or std::is_same::value + or std::is_same::value + or std::is_same::value + or std::is_same::value + or std::is_same::value + , "incompatible pointer type"); + // delegate the call to get_impl_ptr<>() const return get_impl_ptr(static_cast(nullptr)); } @@ -2987,7 +3034,7 @@ class basic_json @tparam ReferenceType reference type; must be a reference to @ref array_t, @ref object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, or - @ref number_float_t. + @ref number_float_t. Enforced by static assertion. @return reference to the internally stored JSON value if the requested reference type @a ReferenceType fits to the JSON value; throws @@ -3002,10 +3049,8 @@ class basic_json @since version 1.1.0 */ - template::value - , int>::type = 0> + template::value, int>::type = 0> ReferenceType get_ref() { // delegate call to get_ref_impl @@ -3016,11 +3061,9 @@ class basic_json @brief get a reference value (implicit) @copydoc get_ref() */ - template::value - and std::is_const::type>::value - , int>::type = 0> + template::value and + std::is_const::type>::value, int>::type = 0> ReferenceType get_ref() const { // delegate call to get_ref_impl @@ -3055,10 +3098,9 @@ class basic_json @since version 1.0.0 */ - template < typename ValueType, typename - std::enable_if < - not std::is_pointer::value - and not std::is_same::value + template < typename ValueType, typename std::enable_if < + not std::is_pointer::value and + not std::is_same::value #ifndef _MSC_VER // Fix for issue #167 operator<< abiguity under VS2015 and not std::is_same>::value #endif @@ -3077,6 +3119,7 @@ class basic_json //////////////////// /// @name element access + /// Access to the JSON value. /// @{ /*! @@ -3108,7 +3151,6 @@ class basic_json { try { - assert(m_value.array != nullptr); return m_value.array->at(idx); } catch (std::out_of_range&) @@ -3152,7 +3194,6 @@ class basic_json { try { - assert(m_value.array != nullptr); return m_value.array->at(idx); } catch (std::out_of_range&) @@ -3200,7 +3241,6 @@ class basic_json { try { - assert(m_value.object != nullptr); return m_value.object->at(key); } catch (std::out_of_range&) @@ -3248,7 +3288,6 @@ class basic_json { try { - assert(m_value.object != nullptr); return m_value.object->at(key); } catch (std::out_of_range&) @@ -3295,16 +3334,18 @@ class basic_json { m_type = value_t::array; m_value.array = create(); + assert_invariant(); } // operator[] only works for arrays if (is_array()) { - // fill up array with null values until given idx is reached - assert(m_value.array != nullptr); - for (size_t i = m_value.array->size(); i <= idx; ++i) + // fill up array with null values if given idx is outside range + if (idx >= m_value.array->size()) { - m_value.array->push_back(basic_json()); + m_value.array->insert(m_value.array->end(), + idx - m_value.array->size() + 1, + basic_json()); } return m_value.array->operator[](idx); @@ -3339,7 +3380,6 @@ class basic_json // const operator[] only works for arrays if (is_array()) { - assert(m_value.array != nullptr); return m_value.array->operator[](idx); } else @@ -3382,12 +3422,12 @@ class basic_json { m_type = value_t::object; m_value.object = create(); + assert_invariant(); } // operator[] only works for objects if (is_object()) { - assert(m_value.object != nullptr); return m_value.object->operator[](key); } else @@ -3409,6 +3449,9 @@ class basic_json @return const reference to the element at key @a key + @pre The element with key @a key must exist. **This precondition is + enforced with an assertion.** + @throw std::domain_error if JSON is not an object; example: `"cannot use operator[] with null"` @@ -3428,7 +3471,6 @@ class basic_json // const operator[] only works for objects if (is_object()) { - assert(m_value.object != nullptr); assert(m_value.object->find(key) != m_value.object->end()); return m_value.object->find(key)->second; } @@ -3541,12 +3583,12 @@ class basic_json { m_type = value_t::object; m_value = value_t::object; + assert_invariant(); } // at only works for objects if (is_object()) { - assert(m_value.object != nullptr); return m_value.object->operator[](key); } else @@ -3568,6 +3610,9 @@ class basic_json @return const reference to the element at key @a key + @pre The element with key @a key must exist. **This precondition is + enforced with an assertion.** + @throw std::domain_error if JSON is not an object; example: `"cannot use operator[] with null"` @@ -3588,7 +3633,6 @@ class basic_json // at only works for objects if (is_object()) { - assert(m_value.object != nullptr); assert(m_value.object->find(key) != m_value.object->end()); return m_value.object->find(key)->second; } @@ -3601,8 +3645,8 @@ class basic_json /*! @brief access specified object element with default value - Returns either a copy of an object's element at the specified key @a key or - a given default value if no element with key @a key exists. + Returns either a copy of an object's element at the specified key @a key + or a given default value if no element with key @a key exists. The function is basically equivalent to executing @code {.cpp} @@ -3646,10 +3690,8 @@ class basic_json @since version 1.0.0 */ - template ::value - , int>::type = 0> + template::value, int>::type = 0> ValueType value(const typename object_t::key_type& key, ValueType default_value) const { // at only works for objects @@ -3674,13 +3716,86 @@ class basic_json /*! @brief overload for a default value of type const char* - @copydoc basic_json::value() + @copydoc basic_json::value(const typename object_t::key_type&, ValueType) const */ string_t value(const typename object_t::key_type& key, const char* default_value) const { return value(key, string_t(default_value)); } + /*! + @brief access specified object element via JSON Pointer with default value + + Returns either a copy of an object's element at the specified key @a key + or a given default value if no element with key @a key exists. + + The function is basically equivalent to executing + @code {.cpp} + try { + return at(ptr); + } catch(std::out_of_range) { + return default_value; + } + @endcode + + @note Unlike @ref at(const json_pointer&), this function does not throw + if the given key @a key was not found. + + @param[in] ptr a JSON pointer to the element to access + @param[in] default_value the value to return if @a ptr found no value + + @tparam ValueType type compatible to JSON values, for instance `int` for + JSON integer numbers, `bool` for JSON booleans, or `std::vector` types for + JSON arrays. Note the type of the expected value at @a key and the default + value @a default_value must be compatible. + + @return copy of the element at key @a key or @a default_value if @a key + is not found + + @throw std::domain_error if JSON is not an object; example: `"cannot use + value() with null"` + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be queried + with a default value.,basic_json__value_ptr} + + @sa @ref operator[](const json_pointer&) for unchecked access by reference + + @since version 2.0.2 + */ + template::value, int>::type = 0> + ValueType value(const json_pointer& ptr, ValueType default_value) const + { + // at only works for objects + if (is_object()) + { + // if pointer resolves a value, return it or use default value + try + { + return ptr.get_checked(this); + } + catch (std::out_of_range&) + { + return default_value; + } + } + else + { + throw std::domain_error("cannot use value() with " + type_name()); + } + } + + /*! + @brief overload for a default value of type const char* + @copydoc basic_json::value(const json_pointer&, ValueType) const + */ + string_t value(const json_pointer& ptr, const char* default_value) const + { + return value(ptr, string_t(default_value)); + } + /*! @brief access the first element @@ -3694,7 +3809,8 @@ class basic_json @complexity Constant. @pre The JSON value must not be `null` (would throw `std::out_of_range`) - or an empty array or object (undefined behavior, guarded by assertions). + or an empty array or object (undefined behavior, **guarded by + assertions**). @post The JSON value remains unchanged. @throw std::out_of_range when called on `null` value @@ -3736,7 +3852,8 @@ class basic_json @complexity Constant. @pre The JSON value must not be `null` (would throw `std::out_of_range`) - or an empty array or object (undefined behavior, guarded by assertions). + or an empty array or object (undefined behavior, **guarded by + assertions**). @post The JSON value remains unchanged. @throw std::out_of_range when called on `null` value. @@ -3778,7 +3895,7 @@ class basic_json @return Iterator following the last removed element. If the iterator @a pos refers to the last element, the `end()` iterator is returned. - @tparam InteratorType an @ref iterator or @ref const_iterator + @tparam IteratorType an @ref iterator or @ref const_iterator @post Invalidates iterators and references at or after the point of the erase, including the `end()` iterator. @@ -3800,7 +3917,7 @@ class basic_json @liveexample{The example shows the result of `erase()` for different JSON types.,erase__IteratorType} - @sa @ref erase(InteratorType, InteratorType) -- removes the elements in + @sa @ref erase(IteratorType, IteratorType) -- removes the elements in the given range @sa @ref erase(const typename object_t::key_type&) -- removes the element from an object at the given key @@ -3809,13 +3926,11 @@ class basic_json @since version 1.0.0 */ - template ::value or - std::is_same::value - , int>::type - = 0> - InteratorType erase(InteratorType pos) + template::value or + std::is_same::value, int>::type + = 0> + IteratorType erase(IteratorType pos) { // make sure iterator fits the current value if (this != pos.m_object) @@ -3823,7 +3938,7 @@ class basic_json throw std::domain_error("iterator does not fit current value"); } - InteratorType result = end(); + IteratorType result = end(); switch (m_type) { @@ -3840,24 +3955,25 @@ class basic_json if (is_string()) { - delete m_value.string; + AllocatorType alloc; + alloc.destroy(m_value.string); + alloc.deallocate(m_value.string, 1); m_value.string = nullptr; } m_type = value_t::null; + assert_invariant(); break; } case value_t::object: { - assert(m_value.object != nullptr); result.m_it.object_iterator = m_value.object->erase(pos.m_it.object_iterator); break; } case value_t::array: { - assert(m_value.array != nullptr); result.m_it.array_iterator = m_value.array->erase(pos.m_it.array_iterator); break; } @@ -3886,7 +4002,7 @@ class basic_json @return Iterator following the last removed element. If the iterator @a second refers to the last element, the `end()` iterator is returned. - @tparam InteratorType an @ref iterator or @ref const_iterator + @tparam IteratorType an @ref iterator or @ref const_iterator @post Invalidates iterators and references at or after the point of the erase, including the `end()` iterator. @@ -3909,7 +4025,7 @@ class basic_json @liveexample{The example shows the result of `erase()` for different JSON types.,erase__IteratorType_IteratorType} - @sa @ref erase(InteratorType) -- removes the element at a given position + @sa @ref erase(IteratorType) -- removes the element at a given position @sa @ref erase(const typename object_t::key_type&) -- removes the element from an object at the given key @sa @ref erase(const size_type) -- removes the element from an array at @@ -3917,13 +4033,11 @@ class basic_json @since version 1.0.0 */ - template ::value or - std::is_same::value - , int>::type - = 0> - InteratorType erase(InteratorType first, InteratorType last) + template::value or + std::is_same::value, int>::type + = 0> + IteratorType erase(IteratorType first, IteratorType last) { // make sure iterator fits the current value if (this != first.m_object or this != last.m_object) @@ -3931,7 +4045,7 @@ class basic_json throw std::domain_error("iterators do not fit current value"); } - InteratorType result = end(); + IteratorType result = end(); switch (m_type) { @@ -3948,17 +4062,19 @@ class basic_json if (is_string()) { - delete m_value.string; + AllocatorType alloc; + alloc.destroy(m_value.string); + alloc.deallocate(m_value.string, 1); m_value.string = nullptr; } m_type = value_t::null; + assert_invariant(); break; } case value_t::object: { - assert(m_value.object != nullptr); result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator, last.m_it.object_iterator); break; @@ -3966,7 +4082,6 @@ class basic_json case value_t::array: { - assert(m_value.array != nullptr); result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator, last.m_it.array_iterator); break; @@ -4002,8 +4117,8 @@ class basic_json @liveexample{The example shows the effect of `erase()`.,erase__key_type} - @sa @ref erase(InteratorType) -- removes the element at a given position - @sa @ref erase(InteratorType, InteratorType) -- removes the elements in + @sa @ref erase(IteratorType) -- removes the element at a given position + @sa @ref erase(IteratorType, IteratorType) -- removes the elements in the given range @sa @ref erase(const size_type) -- removes the element from an array at the given index @@ -4015,7 +4130,6 @@ class basic_json // this erase only works for objects if (is_object()) { - assert(m_value.object != nullptr); return m_value.object->erase(key); } else @@ -4040,8 +4154,8 @@ class basic_json @liveexample{The example shows the effect of `erase()`.,erase__size_type} - @sa @ref erase(InteratorType) -- removes the element at a given position - @sa @ref erase(InteratorType, InteratorType) -- removes the elements in + @sa @ref erase(IteratorType) -- removes the element at a given position + @sa @ref erase(IteratorType, IteratorType) -- removes the elements in the given range @sa @ref erase(const typename object_t::key_type&) -- removes the element from an object at the given key @@ -4058,7 +4172,6 @@ class basic_json throw std::out_of_range("array index " + std::to_string(idx) + " is out of range"); } - assert(m_value.array != nullptr); m_value.array->erase(m_value.array->begin() + static_cast(idx)); } else @@ -4101,7 +4214,6 @@ class basic_json if (is_object()) { - assert(m_value.object != nullptr); result.m_it.object_iterator = m_value.object->find(key); } @@ -4118,7 +4230,6 @@ class basic_json if (is_object()) { - assert(m_value.object != nullptr); result.m_it.object_iterator = m_value.object->find(key); } @@ -4146,7 +4257,6 @@ class basic_json size_type count(typename object_t::key_type key) const { // return 0 for all nonobject types - assert(not is_object() or m_value.object != nullptr); return is_object() ? m_value.object->count(key) : 0; } @@ -4488,6 +4598,10 @@ class basic_json object | result of function `object_t::empty()` array | result of function `array_t::empty()` + @note This function does not return whether a string stored as JSON value + is empty - it returns whether the JSON container itself is empty which is + false in the case of a string. + @complexity Constant, as long as @ref array_t and @ref object_t satisfy the Container concept; that is, their `empty()` functions have constant complexity. @@ -4517,13 +4631,13 @@ class basic_json case value_t::array: { - assert(m_value.array != nullptr); + // delegate call to array_t::empty() return m_value.array->empty(); } case value_t::object: { - assert(m_value.object != nullptr); + // delegate call to object_t::empty() return m_value.object->empty(); } @@ -4551,6 +4665,10 @@ class basic_json object | result of function object_t::size() array | result of function array_t::size() + @note This function does not return the length of a string stored as JSON + value - it returns the number of elements in the JSON value which is 1 in + the case of a string. + @complexity Constant, as long as @ref array_t and @ref object_t satisfy the Container concept; that is, their size() functions have constant complexity. @@ -4581,13 +4699,13 @@ class basic_json case value_t::array: { - assert(m_value.array != nullptr); + // delegate call to array_t::size() return m_value.array->size(); } case value_t::object: { - assert(m_value.object != nullptr); + // delegate call to object_t::size() return m_value.object->size(); } @@ -4641,13 +4759,13 @@ class basic_json { case value_t::array: { - assert(m_value.array != nullptr); + // delegate call to array_t::max_size() return m_value.array->max_size(); } case value_t::object: { - assert(m_value.object != nullptr); + // delegate call to object_t::max_size() return m_value.object->max_size(); } @@ -4724,21 +4842,18 @@ class basic_json case value_t::string: { - assert(m_value.string != nullptr); m_value.string->clear(); break; } case value_t::array: { - assert(m_value.array != nullptr); m_value.array->clear(); break; } case value_t::object: { - assert(m_value.object != nullptr); m_value.object->clear(); break; } @@ -4783,10 +4898,10 @@ class basic_json { m_type = value_t::array; m_value = value_t::array; + assert_invariant(); } // add element to array (move semantics) - assert(m_value.array != nullptr); m_value.array->push_back(std::move(val)); // invalidate object val.m_type = value_t::null; @@ -4819,10 +4934,10 @@ class basic_json { m_type = value_t::array; m_value = value_t::array; + assert_invariant(); } // add element to array - assert(m_value.array != nullptr); m_value.array->push_back(val); } @@ -4869,10 +4984,10 @@ class basic_json { m_type = value_t::object; m_value = value_t::object; + assert_invariant(); } // add element to array - assert(m_value.object != nullptr); m_value.object->insert(val); } @@ -4969,7 +5084,6 @@ class basic_json // insert to array and return iterator iterator result(this); - assert(m_value.array != nullptr); result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, val); return result; } @@ -5025,7 +5139,6 @@ class basic_json // insert to array and return iterator iterator result(this); - assert(m_value.array != nullptr); result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, cnt, val); return result; } @@ -5079,6 +5192,7 @@ class basic_json throw std::domain_error("iterator does not fit current value"); } + // check if range iterators belong to the same JSON object if (first.m_object != last.m_object) { throw std::domain_error("iterators do not fit"); @@ -5091,7 +5205,6 @@ class basic_json // insert to array and return iterator iterator result(this); - assert(m_value.array != nullptr); result.m_it.array_iterator = m_value.array->insert( pos.m_it.array_iterator, first.m_it.array_iterator, @@ -5139,7 +5252,6 @@ class basic_json // insert to array and return iterator iterator result(this); - assert(m_value.array != nullptr); result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, ilist); return result; } @@ -5170,6 +5282,7 @@ class basic_json { std::swap(m_type, other.m_type); std::swap(m_value, other.m_value); + assert_invariant(); } /*! @@ -5197,7 +5310,6 @@ class basic_json // swap only works for arrays if (is_array()) { - assert(m_value.array != nullptr); std::swap(*(m_value.array), other); } else @@ -5231,7 +5343,6 @@ class basic_json // swap only works for objects if (is_object()) { - assert(m_value.object != nullptr); std::swap(*(m_value.object), other); } else @@ -5265,7 +5376,6 @@ class basic_json // swap only works for strings if (is_string()) { - assert(m_value.string != nullptr); std::swap(*(m_value.string), other); } else @@ -5352,14 +5462,10 @@ class basic_json { case value_t::array: { - assert(lhs.m_value.array != nullptr); - assert(rhs.m_value.array != nullptr); return *lhs.m_value.array == *rhs.m_value.array; } case value_t::object: { - assert(lhs.m_value.object != nullptr); - assert(rhs.m_value.object != nullptr); return *lhs.m_value.object == *rhs.m_value.object; } case value_t::null: @@ -5368,8 +5474,6 @@ class basic_json } case value_t::string: { - assert(lhs.m_value.string != nullptr); - assert(rhs.m_value.string != nullptr); return *lhs.m_value.string == *rhs.m_value.string; } case value_t::boolean: @@ -5542,14 +5646,10 @@ class basic_json { case value_t::array: { - assert(lhs.m_value.array != nullptr); - assert(rhs.m_value.array != nullptr); return *lhs.m_value.array < *rhs.m_value.array; } case value_t::object: { - assert(lhs.m_value.object != nullptr); - assert(rhs.m_value.object != nullptr); return *lhs.m_value.object < *rhs.m_value.object; } case value_t::null: @@ -5558,8 +5658,6 @@ class basic_json } case value_t::string: { - assert(lhs.m_value.string != nullptr); - assert(rhs.m_value.string != nullptr); return *lhs.m_value.string < *rhs.m_value.string; } case value_t::boolean: @@ -5701,6 +5799,10 @@ class basic_json `std::setw(4)` on @a o sets the indentation level to `4` and the serialization result is the same as calling `dump(4)`. + @note During serializaion, the locale and the precision of the output + stream @a o are changed. The original values are restored when the + function returns. + @param[in,out] o stream to serialize to @param[in] j JSON value to serialize @@ -5722,8 +5824,22 @@ class basic_json // reset width to 0 for subsequent calls to this stream o.width(0); + // fix locale problems + const auto old_locale = o.imbue(std::locale(std::locale(), new DecimalSeparator)); + // set precision + + // 6, 15 or 16 digits of precision allows round-trip IEEE 754 + // string->float->string, string->double->string or string->long + // double->string; to be safe, we read this value from + // std::numeric_limits::digits10 + const auto old_precision = o.precision(std::numeric_limits::digits10); + // do the actual serialization j.dump(o, pretty_print, static_cast(indentation)); + + // reset locale and precision + o.imbue(old_locale); + o.precision(old_precision); return o; } @@ -5747,9 +5863,45 @@ class basic_json /// @{ /*! - @brief deserialize from string + @brief deserialize from an array + + This function reads from an array of 1-byte values. + + @pre Each element of the container has a size of 1 byte. Violating this + precondition yields undefined behavior. **This precondition is enforced + with a static assertion.** + + @param[in] array array to read from + @param[in] cb a parser callback function of type @ref parser_callback_t + which is used to control the deserialization by filtering unwanted values + (optional) - @param[in] s string to read a serialized JSON value from + @return result of the deserialization + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. The complexity can be higher if the parser callback function + @a cb has a super-linear complexity. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below demonstrates the `parse()` function reading + from an array.,parse__array__parser_callback_t} + + @since version 2.0.3 + */ + template + static basic_json parse(T (&array)[N], + const parser_callback_t cb = nullptr) + { + // delegate the call to the iterator-range parse overload + return parse(std::begin(array), std::end(array), cb); + } + + /*! + @brief deserialize from string literal + + @tparam CharT character/literal type with size of 1 byte + @param[in] s string literal to read a serialized JSON value from @param[in] cb a parser callback function of type @ref parser_callback_t which is used to control the deserialization by filtering unwanted values (optional) @@ -5761,18 +5913,25 @@ class basic_json @a cb has a super-linear complexity. @note A UTF-8 byte order mark is silently ignored. + @note String containers like `std::string` or @ref string_t can be parsed + with @ref parse(const ContiguousContainer&, const parser_callback_t) @liveexample{The example below demonstrates the `parse()` function with and without callback function.,parse__string__parser_callback_t} - @sa @ref parse(std::istream&, parser_callback_t) for a version that reads - from an input stream + @sa @ref parse(std::istream&, const parser_callback_t) for a version that + reads from an input stream - @since version 1.0.0 + @since version 1.0.0 (originally for @ref string_t) */ - static basic_json parse(const string_t& s, parser_callback_t cb = nullptr) + template::value and + std::is_integral::type>::value and + sizeof(typename std::remove_pointer::type) == 1, int>::type = 0> + static basic_json parse(const CharPT s, + const parser_callback_t cb = nullptr) { - return parser(s, cb).parse(); + return parser(reinterpret_cast(s), cb).parse(); } /*! @@ -5794,24 +5953,150 @@ class basic_json @liveexample{The example below demonstrates the `parse()` function with and without callback function.,parse__istream__parser_callback_t} - @sa @ref parse(const string_t&, parser_callback_t) for a version that - reads from a string + @sa @ref parse(const char*, const parser_callback_t) for a version + that reads from a string @since version 1.0.0 */ - static basic_json parse(std::istream& i, parser_callback_t cb = nullptr) + static basic_json parse(std::istream& i, + const parser_callback_t cb = nullptr) { return parser(i, cb).parse(); } /*! - @copydoc parse(std::istream&, parser_callback_t) + @copydoc parse(std::istream&, const parser_callback_t) */ - static basic_json parse(std::istream&& i, parser_callback_t cb = nullptr) + static basic_json parse(std::istream&& i, + const parser_callback_t cb = nullptr) { return parser(i, cb).parse(); } + /*! + @brief deserialize from an iterator range with contiguous storage + + This function reads from an iterator range of a container with contiguous + storage of 1-byte values. Compatible container types include + `std::vector`, `std::string`, `std::array`, `std::valarray`, and + `std::initializer_list`. Furthermore, C-style arrays can be used with + `std::begin()`/`std::end()`. User-defined containers can be used as long + as they implement random-access iterators and a contiguous storage. + + @pre The iterator range is contiguous. Violating this precondition yields + undefined behavior. **This precondition is enforced with an assertion.** + @pre Each element in the range has a size of 1 byte. Violating this + precondition yields undefined behavior. **This precondition is enforced + with a static assertion.** + + @warning There is no way to enforce all preconditions at compile-time. If + the function is called with noncompliant iterators and with + assertions switched off, the behavior is undefined and will most + likely yield segmentation violation. + + @tparam IteratorType iterator of container with contiguous storage + @param[in] first begin of the range to parse (included) + @param[in] last end of the range to parse (excluded) + @param[in] cb a parser callback function of type @ref parser_callback_t + which is used to control the deserialization by filtering unwanted values + (optional) + + @return result of the deserialization + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. The complexity can be higher if the parser callback function + @a cb has a super-linear complexity. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below demonstrates the `parse()` function reading + from an iterator range.,parse__iteratortype__parser_callback_t} + + @since version 2.0.3 + */ + template::iterator_category>::value, int>::type = 0> + static basic_json parse(IteratorType first, IteratorType last, + const parser_callback_t cb = nullptr) + { + // assertion to check that the iterator range is indeed contiguous, + // see http://stackoverflow.com/a/35008842/266378 for more discussion + assert(std::accumulate(first, last, std::make_pair(true, 0), + [&first](std::pair res, decltype(*first) val) + { + res.first &= (val == *(std::next(std::addressof(*first), res.second++))); + return res; + }).first); + + // assertion to check that each element is 1 byte long + static_assert(sizeof(typename std::iterator_traits::value_type) == 1, + "each element in the iterator range must have the size of 1 byte"); + + // if iterator range is empty, create a parser with an empty string + // to generate "unexpected EOF" error message + if (std::distance(first, last) <= 0) + { + return parser("").parse(); + } + + return parser(first, last, cb).parse(); + } + + /*! + @brief deserialize from a container with contiguous storage + + This function reads from a container with contiguous storage of 1-byte + values. Compatible container types include `std::vector`, `std::string`, + `std::array`, and `std::initializer_list`. User-defined containers can be + used as long as they implement random-access iterators and a contiguous + storage. + + @pre The container storage is contiguous. Violating this precondition + yields undefined behavior. **This precondition is enforced with an + assertion.** + @pre Each element of the container has a size of 1 byte. Violating this + precondition yields undefined behavior. **This precondition is enforced + with a static assertion.** + + @warning There is no way to enforce all preconditions at compile-time. If + the function is called with a noncompliant container and with + assertions switched off, the behavior is undefined and will most + likely yield segmentation violation. + + @tparam ContiguousContainer container type with contiguous storage + @param[in] c container to read from + @param[in] cb a parser callback function of type @ref parser_callback_t + which is used to control the deserialization by filtering unwanted values + (optional) + + @return result of the deserialization + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. The complexity can be higher if the parser callback function + @a cb has a super-linear complexity. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below demonstrates the `parse()` function reading + from a contiguous container.,parse__contiguouscontainer__parser_callback_t} + + @since version 2.0.3 + */ + template::value and + std::is_base_of< + std::random_access_iterator_tag, + typename std::iterator_traits()))>::iterator_category>::value + , int>::type = 0> + static basic_json parse(const ContiguousContainer& c, + const parser_callback_t cb = nullptr) + { + // delegate the call to the iterator-range parse overload + return parse(std::begin(c), std::end(c), cb); + } + /*! @brief deserialize from stream @@ -5830,8 +6115,8 @@ class basic_json @liveexample{The example below shows how a JSON value is constructed by reading a serialization from a stream.,operator_deserialize} - @sa parse(std::istream&, parser_callback_t) for a variant with a parser - callback function to filter values while parsing + @sa parse(std::istream&, const parser_callback_t) for a variant with a + parser callback function to filter values while parsing @since version 1.0.0 */ @@ -5859,8 +6144,19 @@ class basic_json // convenience functions // /////////////////////////// - /// return the type as string - string_t type_name() const noexcept + /*! + @brief return the type as string + + Returns the type name as string to be used in error messages - usually to + indicate that a function was called on a wrong JSON type. + + @return basically a string representation of a the @a m_type member + + @complexity Constant. + + @since version 1.0.0 + */ + std::string type_name() const { switch (m_type) { @@ -5891,9 +6187,8 @@ class basic_json */ static std::size_t extra_space(const string_t& s) noexcept { - std::size_t result = 0; - - for (const auto& c : s) + return std::accumulate(s.begin(), s.end(), size_t{}, + [](size_t res, typename string_t::value_type c) { switch (c) { @@ -5906,8 +6201,7 @@ class basic_json case '\t': { // from c (1 byte) to \x (2 bytes) - result += 1; - break; + return res + 1; } default: @@ -5915,14 +6209,15 @@ class basic_json if (c >= 0x00 and c <= 0x1f) { // from c (1 byte) to \uxxxx (6 bytes) - result += 5; + return res + 5; + } + else + { + return res; } - break; } } - } - - return result; + }); } /*! @@ -6016,16 +6311,15 @@ class basic_json { // convert a number 0..15 to its hex representation // (0..f) - const auto hexify = [](const int v) -> char + static const char hexify[16] = { - return (v < 10) - ? ('0' + static_cast(v)) - : ('a' + static_cast((v - 10) & 0x1f)); + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; // print character c as \uxxxx for (const char m : - { 'u', '0', '0', hexify(c >> 4), hexify(c & 0x0f) + { 'u', '0', '0', hexify[c >> 4], hexify[c & 0x0f] }) { result[++pos] = m; @@ -6075,8 +6369,6 @@ class basic_json { case value_t::object: { - assert(m_value.object != nullptr); - if (m_value.object->empty()) { o << "{}"; @@ -6117,8 +6409,6 @@ class basic_json case value_t::array: { - assert(m_value.array != nullptr); - if (m_value.array->empty()) { o << "[]"; @@ -6157,7 +6447,6 @@ class basic_json case value_t::string: { - assert(m_value.string != nullptr); o << string_t("\"") << escape_string(*m_value.string) << "\""; return; } @@ -6182,79 +6471,14 @@ class basic_json case value_t::number_float: { - // check if number was parsed from a string - if (m_type.bits.parsed) + if (m_value.number_float == 0) { - // check if parsed number had an exponent given - if (m_type.bits.has_exp) - { - // buffer size: precision (2^8-1 = 255) + other ('-.e-xxx' = 7) + null (1) - char buf[263]; - int len; - - // handle capitalization of the exponent - if (m_type.bits.exp_cap) - { - len = snprintf(buf, sizeof(buf), "%.*E", - m_type.bits.precision, m_value.number_float) + 1; - } - else - { - len = snprintf(buf, sizeof(buf), "%.*e", - m_type.bits.precision, m_value.number_float) + 1; - } - - // remove '+' sign from the exponent if necessary - if (not m_type.bits.exp_plus) - { - if (len > static_cast(sizeof(buf))) - { - len = sizeof(buf); - } - for (int i = 0; i < len; i++) - { - if (buf[i] == '+') - { - for (; i + 1 < len; i++) - { - buf[i] = buf[i + 1]; - } - } - } - } - - o << buf; - } - else - { - // no exponent - output as a decimal - std::stringstream ss; - ss.imbue(std::locale(std::locale(), new DecimalSeparator)); // fix locale problems - ss << std::setprecision(m_type.bits.precision) - << std::fixed << m_value.number_float; - o << ss.str(); - } + // special case for zero to get "0.0"/"-0.0" + o << (std::signbit(m_value.number_float) ? "-0.0" : "0.0"); } else { - if (m_value.number_float == 0) - { - // special case for zero to get "0.0"/"-0.0" - o << (std::signbit(m_value.number_float) ? "-0.0" : "0.0"); - } - else - { - // Otherwise 6, 15 or 16 digits of precision allows - // round-trip IEEE 754 string->float->string, - // string->double->string or string->long - // double->string; to be safe, we read this value from - // std::numeric_limits::digits10 - std::stringstream ss; - ss.imbue(std::locale(std::locale(), new DecimalSeparator)); // fix locale problems - ss << std::setprecision(std::numeric_limits::digits10) - << m_value.number_float; - o << ss.str(); - } + o << m_value.number_float; } return; } @@ -6279,7 +6503,7 @@ class basic_json ////////////////////// /// the type of the current element - type_data_t m_type = value_t::null; + value_t m_type = value_t::null; /// the value of the current element json_value m_value = {}; @@ -6471,6 +6695,12 @@ class basic_json This class implements a const iterator for the @ref basic_json class. From this class, the @ref iterator class is derived. + @note An iterator is called *initialized* when a pointer to a JSON value + has been set (e.g., by a constructor or a copy assignment). If the + iterator is default-constructed, it is *uninitialized* and most + methods are undefined. **The library uses assertions to detect calls + on uninitialized iterators.** + @requirement The class satisfies the following concept requirements: - [RandomAccessIterator](http://en.cppreference.com/w/cpp/concept/RandomAccessIterator): The iterator that can be moved to point (forward and backward) to any @@ -6498,7 +6728,12 @@ class basic_json /// default constructor const_iterator() = default; - /// constructor for a given JSON instance + /*! + @brief constructor for a given JSON instance + @param[in] object pointer to a JSON object for this iterator + @pre object != nullptr + @post The iterator is initialized; i.e. `m_object != nullptr`. + */ explicit const_iterator(pointer object) noexcept : m_object(object) { @@ -6526,40 +6761,53 @@ class basic_json } } - /// copy constructor given a nonconst iterator + /*! + @brief copy constructor given a non-const iterator + @param[in] other iterator to copy from + @note It is not checked whether @a other is initialized. + */ explicit const_iterator(const iterator& other) noexcept : m_object(other.m_object) { - assert(m_object != nullptr); - - switch (m_object->m_type) + if (m_object != nullptr) { - case basic_json::value_t::object: + switch (m_object->m_type) { - m_it.object_iterator = other.m_it.object_iterator; - break; - } + case basic_json::value_t::object: + { + m_it.object_iterator = other.m_it.object_iterator; + break; + } - case basic_json::value_t::array: - { - m_it.array_iterator = other.m_it.array_iterator; - break; - } + case basic_json::value_t::array: + { + m_it.array_iterator = other.m_it.array_iterator; + break; + } - default: - { - m_it.primitive_iterator = other.m_it.primitive_iterator; - break; + default: + { + m_it.primitive_iterator = other.m_it.primitive_iterator; + break; + } } } } - /// copy constructor + /*! + @brief copy constructor + @param[in] other iterator to copy from + @note It is not checked whether @a other is initialized. + */ const_iterator(const const_iterator& other) noexcept : m_object(other.m_object), m_it(other.m_it) {} - /// copy assignment + /*! + @brief copy assignment + @param[in,out] other iterator to copy from + @note It is not checked whether @a other is initialized. + */ const_iterator& operator=(const_iterator other) noexcept( std::is_nothrow_move_constructible::value and std::is_nothrow_move_assignable::value and @@ -6573,7 +6821,10 @@ class basic_json } private: - /// set the iterator to the first value + /*! + @brief set the iterator to the first value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ void set_begin() noexcept { assert(m_object != nullptr); @@ -6582,14 +6833,12 @@ class basic_json { case basic_json::value_t::object: { - assert(m_object->m_value.object != nullptr); m_it.object_iterator = m_object->m_value.object->begin(); break; } case basic_json::value_t::array: { - assert(m_object->m_value.array != nullptr); m_it.array_iterator = m_object->m_value.array->begin(); break; } @@ -6609,7 +6858,10 @@ class basic_json } } - /// set the iterator past the last value + /*! + @brief set the iterator past the last value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ void set_end() noexcept { assert(m_object != nullptr); @@ -6618,14 +6870,12 @@ class basic_json { case basic_json::value_t::object: { - assert(m_object->m_value.object != nullptr); m_it.object_iterator = m_object->m_value.object->end(); break; } case basic_json::value_t::array: { - assert(m_object->m_value.array != nullptr); m_it.array_iterator = m_object->m_value.array->end(); break; } @@ -6639,7 +6889,10 @@ class basic_json } public: - /// return a reference to the value pointed to by the iterator + /*! + @brief return a reference to the value pointed to by the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ reference operator*() const { assert(m_object != nullptr); @@ -6648,14 +6901,12 @@ class basic_json { case basic_json::value_t::object: { - assert(m_object->m_value.object); assert(m_it.object_iterator != m_object->m_value.object->end()); return m_it.object_iterator->second; } case basic_json::value_t::array: { - assert(m_object->m_value.array); assert(m_it.array_iterator != m_object->m_value.array->end()); return *m_it.array_iterator; } @@ -6679,7 +6930,10 @@ class basic_json } } - /// dereference the iterator + /*! + @brief dereference the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ pointer operator->() const { assert(m_object != nullptr); @@ -6688,14 +6942,12 @@ class basic_json { case basic_json::value_t::object: { - assert(m_object->m_value.object); assert(m_it.object_iterator != m_object->m_value.object->end()); return &(m_it.object_iterator->second); } case basic_json::value_t::array: { - assert(m_object->m_value.array); assert(m_it.array_iterator != m_object->m_value.array->end()); return &*m_it.array_iterator; } @@ -6714,7 +6966,10 @@ class basic_json } } - /// post-increment (it++) + /*! + @brief post-increment (it++) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ const_iterator operator++(int) { auto result = *this; @@ -6722,7 +6977,10 @@ class basic_json return result; } - /// pre-increment (++it) + /*! + @brief pre-increment (++it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ const_iterator& operator++() { assert(m_object != nullptr); @@ -6731,13 +6989,13 @@ class basic_json { case basic_json::value_t::object: { - ++m_it.object_iterator; + std::advance(m_it.object_iterator, 1); break; } case basic_json::value_t::array: { - ++m_it.array_iterator; + std::advance(m_it.array_iterator, 1); break; } @@ -6751,7 +7009,10 @@ class basic_json return *this; } - /// post-decrement (it--) + /*! + @brief post-decrement (it--) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ const_iterator operator--(int) { auto result = *this; @@ -6759,7 +7020,10 @@ class basic_json return result; } - /// pre-decrement (--it) + /*! + @brief pre-decrement (--it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ const_iterator& operator--() { assert(m_object != nullptr); @@ -6768,13 +7032,13 @@ class basic_json { case basic_json::value_t::object: { - --m_it.object_iterator; + std::advance(m_it.object_iterator, -1); break; } case basic_json::value_t::array: { - --m_it.array_iterator; + std::advance(m_it.array_iterator, -1); break; } @@ -6788,7 +7052,10 @@ class basic_json return *this; } - /// comparison: equal + /*! + @brief comparison: equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ bool operator==(const const_iterator& other) const { // if objects are not the same, the comparison is undefined @@ -6818,13 +7085,19 @@ class basic_json } } - /// comparison: not equal + /*! + @brief comparison: not equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ bool operator!=(const const_iterator& other) const { return not operator==(other); } - /// comparison: smaller + /*! + @brief comparison: smaller + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ bool operator<(const const_iterator& other) const { // if objects are not the same, the comparison is undefined @@ -6854,25 +7127,37 @@ class basic_json } } - /// comparison: less than or equal + /*! + @brief comparison: less than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ bool operator<=(const const_iterator& other) const { return not other.operator < (*this); } - /// comparison: greater than + /*! + @brief comparison: greater than + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ bool operator>(const const_iterator& other) const { return not operator<=(other); } - /// comparison: greater than or equal + /*! + @brief comparison: greater than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ bool operator>=(const const_iterator& other) const { return not operator<(other); } - /// add to iterator + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ const_iterator& operator+=(difference_type i) { assert(m_object != nullptr); @@ -6886,7 +7171,7 @@ class basic_json case basic_json::value_t::array: { - m_it.array_iterator += i; + std::advance(m_it.array_iterator, i); break; } @@ -6900,13 +7185,19 @@ class basic_json return *this; } - /// subtract from iterator + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ const_iterator& operator-=(difference_type i) { return operator+=(-i); } - /// add to iterator + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ const_iterator operator+(difference_type i) { auto result = *this; @@ -6914,7 +7205,10 @@ class basic_json return result; } - /// subtract from iterator + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ const_iterator operator-(difference_type i) { auto result = *this; @@ -6922,7 +7216,10 @@ class basic_json return result; } - /// return difference + /*! + @brief return difference + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ difference_type operator-(const const_iterator& other) const { assert(m_object != nullptr); @@ -6946,7 +7243,10 @@ class basic_json } } - /// access to successor + /*! + @brief access to successor + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ reference operator[](difference_type n) const { assert(m_object != nullptr); @@ -6960,7 +7260,7 @@ class basic_json case basic_json::value_t::array: { - return *(m_it.array_iterator + n); + return *std::next(m_it.array_iterator, n); } case basic_json::value_t::null: @@ -6982,7 +7282,10 @@ class basic_json } } - /// return the key of an object iterator + /*! + @brief return the key of an object iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ typename object_t::key_type key() const { assert(m_object != nullptr); @@ -6997,7 +7300,10 @@ class basic_json } } - /// return the value of an iterator + /*! + @brief return the value of an iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ reference value() const { return operator*(); @@ -7277,17 +7583,17 @@ class basic_json enum class token_type { uninitialized, ///< indicating the scanner is uninitialized - literal_true, ///< the "true" literal - literal_false, ///< the "false" literal - literal_null, ///< the "null" literal + literal_true, ///< the `true` literal + literal_false, ///< the `false` literal + literal_null, ///< the `null` literal value_string, ///< a string -- use get_string() for actual value value_number, ///< a number -- use get_number() for actual value - begin_array, ///< the character for array begin "[" - begin_object, ///< the character for object begin "{" - end_array, ///< the character for array end "]" - end_object, ///< the character for object end "}" - name_separator, ///< the name separator ":" - value_separator, ///< the value separator "," + begin_array, ///< the character for array begin `[` + begin_object, ///< the character for object begin `{` + end_array, ///< the character for array end `]` + end_object, ///< the character for object end `}` + name_separator, ///< the name separator `:` + value_separator, ///< the value separator `,` parse_error, ///< indicating a parse error end_of_input ///< indicating the end of the input buffer }; @@ -7295,54 +7601,55 @@ class basic_json /// the char type to use in the lexer using lexer_char_t = unsigned char; - /// constructor with a given buffer - explicit lexer(const string_t& s) noexcept - : m_stream(nullptr), m_buffer(s) + /// a lexer from a buffer with given length + lexer(const lexer_char_t* buff, const size_t len) noexcept + : m_content(buff) { - m_content = reinterpret_cast(s.c_str()); assert(m_content != nullptr); m_start = m_cursor = m_content; - m_limit = m_content + s.size(); + m_limit = m_content + len; } - /// constructor with a given stream - explicit lexer(std::istream* s) noexcept - : m_stream(s), m_buffer() + /// a lexer from an input stream + explicit lexer(std::istream& s) + : m_stream(&s), m_line_buffer() { - assert(m_stream != nullptr); - getline(*m_stream, m_buffer); - m_content = reinterpret_cast(m_buffer.c_str()); - assert(m_content != nullptr); - m_start = m_cursor = m_content; - m_limit = m_content + m_buffer.size(); + // fill buffer + fill_line_buffer(); } - /// default constructor - lexer() = default; - - // switch off unwanted functions + // switch off unwanted functions (due to pointer members) + lexer() = delete; lexer(const lexer&) = delete; lexer operator=(const lexer&) = delete; /*! - @brief create a string from a Unicode code point + @brief create a string from one or two Unicode code points + + There are two cases: (1) @a codepoint1 is in the Basic Multilingual + Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2) + @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to + represent a code point above U+FFFF. @param[in] codepoint1 the code point (can be high surrogate) @param[in] codepoint2 the code point (can be low surrogate or 0) - @return string representation of the code point + @return string representation of the code point; the length of the + result string is between 1 and 4 characters. - @throw std::out_of_range if code point is >0x10ffff; example: `"code + @throw std::out_of_range if code point is > 0x10ffff; example: `"code points above 0x10FFFF are invalid"` @throw std::invalid_argument if the low surrogate is invalid; example: `""missing or wrong low surrogate""` + @complexity Constant. + @see */ static string_t to_unicode(const std::size_t codepoint1, const std::size_t codepoint2 = 0) { - // calculate the codepoint from the given code points + // calculate the code point from the given code points std::size_t codepoint = codepoint1; // check if codepoint1 is a high surrogate @@ -7404,7 +7711,7 @@ class basic_json } /// return name of values of type token_type (only used for errors) - static std::string token_type_name(token_type t) + static std::string token_type_name(const token_type t) { switch (t) { @@ -7453,109 +7760,171 @@ class basic_json function consists of a large block of code with `goto` jumps. @return the class of the next token read from the buffer + + @complexity Linear in the length of the input.\n + + Proposition: The loop below will always terminate for finite input.\n + + Proof (by contradiction): Assume a finite input. To loop forever, the + loop must never hit code with a `break` statement. The only code + snippets without a `break` statement are the continue statements for + whitespace and byte-order-marks. To loop forever, the input must be an + infinite sequence of whitespace or byte-order-marks. This contradicts + the assumption of finite input, q.e.d. */ - token_type scan() noexcept - { - // pointer for backtracking information - m_marker = nullptr; + token_type scan() + { + while (true) + { + // pointer for backtracking information + m_marker = nullptr; + + // remember the begin of the token + m_start = m_cursor; + assert(m_start != nullptr); + + /*!re2c + re2c:define:YYCTYPE = lexer_char_t; + re2c:define:YYCURSOR = m_cursor; + re2c:define:YYLIMIT = m_limit; + re2c:define:YYMARKER = m_marker; + re2c:define:YYFILL = "fill_line_buffer()"; + re2c:yyfill:parameter = 0; + re2c:indent:string = " "; + re2c:indent:top = 1; + re2c:labelprefix = "basic_json_parser_"; + + // ignore whitespace + ws = [ \t\n\r]+; + ws { continue; } + + // ignore byte-order-mark + bom = "\xEF\xBB\xBF"; + bom { continue; } + + // structural characters + "[" { last_token_type = token_type::begin_array; break; } + "]" { last_token_type = token_type::end_array; break; } + "{" { last_token_type = token_type::begin_object; break; } + "}" { last_token_type = token_type::end_object; break; } + "," { last_token_type = token_type::value_separator; break; } + ":" { last_token_type = token_type::name_separator; break; } + + // literal names + "null" { last_token_type = token_type::literal_null; break; } + "true" { last_token_type = token_type::literal_true; break; } + "false" { last_token_type = token_type::literal_false; break; } + + // number + decimal_point = "."; + digit = [0-9]; + digit_1_9 = [1-9]; + e = "e" | "E"; + minus = "-"; + plus = "+"; + zero = "0"; + exp = e (minus | plus)? digit+; + frac = decimal_point digit+; + int = (zero | digit_1_9 digit*); + number = minus? int frac? exp?; + number { last_token_type = token_type::value_number; break; } - // remember the begin of the token - m_start = m_cursor; - assert(m_start != nullptr); + // string + quotation_mark = "\""; + escape = "\\"; + unescaped = [^"\\\x00-\x1f]; + single_escaped = "\"" | "\\" | "/" | "b" | "f" | "n" | "r" | "t"; + unicode_escaped = "u" [0-9a-fA-F]{4}; + escaped = escape (single_escaped | unicode_escaped); + char = unescaped | escaped; + string = quotation_mark char* quotation_mark; + string { last_token_type = token_type::value_string; break; } - /*!re2c - re2c:define:YYCTYPE = lexer_char_t; - re2c:define:YYCURSOR = m_cursor; - re2c:define:YYLIMIT = m_limit; - re2c:define:YYMARKER = m_marker; - re2c:define:YYFILL = "yyfill(); // LCOV_EXCL_LINE"; - re2c:yyfill:parameter = 0; - re2c:indent:string = " "; - re2c:indent:top = 1; - re2c:labelprefix = "basic_json_parser_"; - - // ignore whitespace - ws = [ \t\n\r]+; - ws { return scan(); } - - // ignore byte-order-mark - bom = "\xEF\xBB\xBF"; - bom { return scan(); } - - // structural characters - "[" { return token_type::begin_array; } - "]" { return token_type::end_array; } - "{" { return token_type::begin_object; } - "}" { return token_type::end_object; } - "," { return token_type::value_separator; } - ":" { return token_type::name_separator; } - - // literal names - "null" { return token_type::literal_null; } - "true" { return token_type::literal_true; } - "false" { return token_type::literal_false; } - - // number - decimal_point = [.]; - digit = [0-9]; - digit_1_9 = [1-9]; - e = [eE]; - minus = [-]; - plus = [+]; - zero = [0]; - exp = e (minus|plus)? digit+; - frac = decimal_point digit+; - int = (zero|digit_1_9 digit*); - number = minus? int frac? exp?; - number { return token_type::value_number; } - - // string - quotation_mark = [\"]; - escape = [\\]; - unescaped = [^\"\\\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F]; - single_escaped = [\"\\/bfnrt]; - unicode_escaped = [u][0-9a-fA-F]{4}; - escaped = escape (single_escaped | unicode_escaped); - char = unescaped | escaped; - string = quotation_mark char* quotation_mark; - string { return token_type::value_string; } - - // end of file - '\000' { return token_type::end_of_input; } - - // anything else is an error - . { return token_type::parse_error; } - */ - } - - /// append data from the stream to the internal buffer - void yyfill() noexcept - { - if (m_stream == nullptr or not * m_stream) - { - return; + // end of file + "\000" { last_token_type = token_type::end_of_input; break; } + + // anything else is an error + . { last_token_type = token_type::parse_error; break; } + */ } + return last_token_type; + } + + /*! + @brief append data from the stream to the line buffer + + This function is called by the scan() function when the end of the + buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be + incremented without leaving the limits of the line buffer. Note re2c + decides when to call this function. + + If the lexer reads from contiguous storage, there is no trailing null + byte. Therefore, this function must make sure to add these padding + null bytes. + + If the lexer reads from an input stream, this function reads the next + line of the input. + + @pre + p p p p p p u u u u u x . . . . . . + ^ ^ ^ ^ + m_content m_start | m_limit + m_cursor + + @post + u u u u u x x x x x x x . . . . . . + ^ ^ ^ + | m_cursor m_limit + m_start + m_content + */ + void fill_line_buffer() + { + // number of processed characters (p) const auto offset_start = m_start - m_content; - const auto offset_marker = m_marker - m_start; + // offset for m_marker wrt. to m_start + const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start; + // number of unprocessed characters (u) const auto offset_cursor = m_cursor - m_start; - m_buffer.erase(0, static_cast(offset_start)); - std::string line; - assert(m_stream != nullptr); - std::getline(*m_stream, line); - m_buffer += "\n" + line; // add line with newline symbol + // no stream is used or end of file is reached + if (m_stream == nullptr or m_stream->eof()) + { + // copy unprocessed characters to line buffer + m_line_buffer.clear(); + for (m_cursor = m_start; m_cursor != m_limit; ++m_cursor) + { + m_line_buffer.append(1, static_cast(*m_cursor)); + } - m_content = reinterpret_cast(m_buffer.c_str()); + // append 5 characters (size of longest keyword "false") to + // make sure that there is sufficient space between m_cursor + // and m_limit + m_line_buffer.append(5, '\0'); + } + else + { + // delete processed characters from line buffer + m_line_buffer.erase(0, static_cast(offset_start)); + // read next line from input stream + std::string line; + std::getline(*m_stream, line); + // add line with newline symbol to the line buffer + m_line_buffer += line + "\n"; + } + + // set pointers + m_content = reinterpret_cast(m_line_buffer.c_str()); assert(m_content != nullptr); m_start = m_content; m_marker = m_start + offset_marker; m_cursor = m_start + offset_cursor; - m_limit = m_start + m_buffer.size() - 1; + m_limit = m_start + m_line_buffer.size(); } /// return string representation of last read token - string_t get_token() const + string_t get_token_string() const { assert(m_start != nullptr); return string_t(reinterpret_cast(m_start), @@ -7580,12 +7949,49 @@ class basic_json of the construction of the values. 2. Unescaped characters are copied as is. + @pre `m_cursor - m_start >= 2`, meaning the length of the last token + is at least 2 bytes which is trivially true for any string (which + consists of at least two quotes). + + " c1 c2 c3 ... " + ^ ^ + m_start m_cursor + + @complexity Linear in the length of the string.\n + + Lemma: The loop body will always terminate.\n + + Proof (by contradiction): Assume the loop body does not terminate. As + the loop body does not contain another loop, one of the called + functions must never return. The called functions are `std::strtoul` + and to_unicode. Neither function can loop forever, so the loop body + will never loop forever which contradicts the assumption that the loop + body does not terminate, q.e.d.\n + + Lemma: The loop condition for the for loop is eventually false.\n + + Proof (by contradiction): Assume the loop does not terminate. Due to + the above lemma, this can only be due to a tautological loop + condition; that is, the loop condition i < m_cursor - 1 must always be + true. Let x be the change of i for any loop iteration. Then + m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This + can be rephrased to m_cursor - m_start - 2 > x. With the + precondition, we x <= 0, meaning that the loop condition holds + indefinitly if i is always decreased. However, observe that the value + of i is strictly increasing with each iteration, as it is incremented + by 1 in the iteration expression and never decremented inside the loop + body. Hence, the loop condition will eventually be false which + contradicts the assumption that the loop condition is a tautology, + q.e.d. + @return string value of current token without opening and closing quotes @throw std::out_of_range if to_unicode fails */ string_t get_string() const { + assert(m_cursor - m_start >= 2); + string_t result; result.reserve(static_cast(m_cursor - m_start - 2)); @@ -7701,11 +8107,6 @@ class basic_json the number @return the floating point number - - @bug This function uses `std::strtof`, `std::strtod`, or `std::strtold` - which use the current C locale to determine which character is used as - decimal point character. This may yield to parse errors if the locale - does not used `.`. */ long double str_to_float_t(long double* /* type */, char** endptr) const { @@ -7766,18 +8167,12 @@ class basic_json number_integer_t or @ref number_unsigned_t then it sets the result parameter accordingly. - The 'floating point representation' includes the number of significant - figures after the radix point, whether the number is in exponential or - decimal form, the capitalization of the exponent marker, and if the - optional '+' is present in the exponent. This information is necessary - to perform accurate round trips of floating point numbers. - If the number is a floating point number the number is then parsed using @a std:strtod (or @a std:strtof or @a std::strtold). @param[out] result @ref basic_json object to receive the number, or - NAN if the conversion read past the current token. The latter case - needs to be treated by the caller function. + NAN if the conversion read past the current token. The latter case + needs to be treated by the caller function. */ void get_number(basic_json& result) const { @@ -7785,15 +8180,6 @@ class basic_json const lexer::lexer_char_t* curptr = m_start; - // remember this number was parsed (for later serialization) - result.m_type.bits.parsed = true; - - // 'found_radix_point' will be set to 0xFF upon finding a radix - // point and later used to mask in/out the precision depending - // whether a radix is found i.e. 'precision &= found_radix_point' - uint8_t found_radix_point = 0; - uint8_t precision = 0; - // accumulate the integer conversion result (unsigned for now) number_unsigned_t value = 0; @@ -7807,13 +8193,13 @@ class basic_json if (*curptr == '-') { type = value_t::number_integer; - max = static_cast(std::numeric_limits::max()) + 1; + max = static_cast((std::numeric_limits::max)()) + 1; curptr++; } else { type = value_t::number_unsigned; - max = static_cast(std::numeric_limits::max()); + max = static_cast((std::numeric_limits::max)()); } // count the significant figures @@ -7826,22 +8212,11 @@ class basic_json { // don't count '.' but change to float type = value_t::number_float; - - // reset precision count - precision = 0; - found_radix_point = 0xFF; continue; } // assume exponent (if not then will fail parse): change to // float, stop counting and record exponent details type = value_t::number_float; - result.m_type.bits.has_exp = true; - - // exponent capitalization - result.m_type.bits.exp_cap = (*curptr == 'E'); - - // exponent '+' sign - result.m_type.bits.exp_plus = (*(++curptr) == '+'); break; } @@ -7849,7 +8224,7 @@ class basic_json if (type != value_t::number_float) { // multiply last value by ten and add the new digit - auto temp = value * 10 + *curptr - 0x30; + auto temp = value * 10 + *curptr - '0'; // test for overflow if (temp < value || temp > max) @@ -7863,13 +8238,8 @@ class basic_json value = temp; } } - ++precision; } - // If no radix point was found then precision would now be set to - // the number of digits, which is wrong - clear it. - result.m_type.bits.precision = precision & found_radix_point; - // save the value (if not a float) if (type == value_t::number_unsigned) { @@ -7892,8 +8262,8 @@ class basic_json private: /// optional input stream std::istream* m_stream = nullptr; - /// the buffer - string_t m_buffer; + /// line buffer buffer for m_stream + string_t m_line_buffer {}; /// the buffer pointer const lexer_char_t* m_content = nullptr; /// pointer to the beginning of the current symbol @@ -7904,6 +8274,8 @@ class basic_json const lexer_char_t* m_cursor = nullptr; /// pointer to the end of the buffer const lexer_char_t* m_limit = nullptr; + /// the last token type + token_type last_token_type = token_type::end_of_input; }; /*! @@ -7914,32 +8286,42 @@ class basic_json class parser { public: - /// constructor for strings - parser(const string_t& s, parser_callback_t cb = nullptr) noexcept - : callback(cb), m_lexer(s) - { - // read first token - get_token(); - } + /// a parser reading from a string literal + parser(const char* buff, const parser_callback_t cb = nullptr) + : callback(cb), + m_lexer(reinterpret_cast(buff), strlen(buff)) + {} /// a parser reading from an input stream - parser(std::istream& _is, parser_callback_t cb = nullptr) noexcept - : callback(cb), m_lexer(&_is) - { - // read first token - get_token(); - } + parser(std::istream& is, const parser_callback_t cb = nullptr) + : callback(cb), m_lexer(is) + {} + + /// a parser reading from an iterator range with contiguous storage + template::iterator_category, std::random_access_iterator_tag>::value + , int>::type + = 0> + parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr) + : callback(cb), + m_lexer(reinterpret_cast(&(*first)), + static_cast(std::distance(first, last))) + {} /// public parser interface basic_json parse() { + // read first token + get_token(); + basic_json result = parse_internal(true); + result.assert_invariant(); expect(lexer::token_type::end_of_input); // return parser result and replace it with null in case the // top-level value was discarded by the callback function - return result.is_discarded() ? basic_json() : result; + return result.is_discarded() ? basic_json() : std::move(result); } private: @@ -7952,11 +8334,12 @@ class basic_json { case lexer::token_type::begin_object: { - if (keep and (not callback or (keep = callback(depth++, parse_event_t::object_start, result)))) + if (keep and (not callback + or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0))) { // explicitly set result to object to cope with {} result.m_type = value_t::object; - result.m_value = json_value(value_t::object); + result.m_value = value_t::object; } // read next token @@ -8030,11 +8413,12 @@ class basic_json case lexer::token_type::begin_array: { - if (keep and (not callback or (keep = callback(depth++, parse_event_t::array_start, result)))) + if (keep and (not callback + or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0))) { // explicitly set result to object to cope with [] result.m_type = value_t::array; - result.m_value = json_value(value_t::array); + result.m_value = value_t::array; } // read next token @@ -8136,7 +8520,7 @@ class basic_json } /// get next token from lexer - typename lexer::token_type get_token() noexcept + typename lexer::token_type get_token() { last_token = m_lexer.scan(); return last_token; @@ -8147,7 +8531,8 @@ class basic_json if (t != last_token) { std::string error_msg = "parse error - unexpected "; - error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token() + "'") : + error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + + "'") : lexer::token_type_name(last_token)); error_msg += "; expected " + lexer::token_type_name(t); throw std::invalid_argument(error_msg); @@ -8159,7 +8544,8 @@ class basic_json if (t == last_token) { std::string error_msg = "parse error - unexpected "; - error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token() + "'") : + error_msg += (last_token == lexer::token_type::parse_error ? ("'" + m_lexer.get_token_string() + + "'") : lexer::token_type_name(last_token)); throw std::invalid_argument(error_msg); } @@ -8169,7 +8555,7 @@ class basic_json /// current level of recursion int depth = 0; /// callback function - parser_callback_t callback; + const parser_callback_t callback = nullptr; /// the type of the last read token typename lexer::token_type last_token = lexer::token_type::uninitialized; /// the lexer @@ -8237,14 +8623,12 @@ class basic_json */ std::string to_string() const noexcept { - std::string result; - - for (const auto& reference_token : reference_tokens) + return std::accumulate(reference_tokens.begin(), + reference_tokens.end(), std::string{}, + [](const std::string & a, const std::string & b) { - result += "/" + escape(reference_token); - } - - return result; + return a + "/" + escape(b); + }); } /// @copydoc to_string() @@ -8287,6 +8671,8 @@ class basic_json /*! @brief create and return a reference to the pointed to value + + @complexity Linear in the number of reference tokens. */ reference get_and_create(reference j) const { @@ -8542,7 +8928,7 @@ class basic_json } /// split the string input to reference tokens - static std::vector split(std::string reference_string) + static std::vector split(const std::string& reference_string) { std::vector result; @@ -8608,7 +8994,7 @@ class basic_json @param[in,out] s the string to manipulate @param[in] f the substring to replace with @a t - @param[out] t the string to replace @a f + @param[in] t the string to replace @a f @return The string @a s where all occurrences of @a f are replaced with @a t. @@ -9027,7 +9413,7 @@ class basic_json json_pointer top_pointer = ptr.top(); if (top_pointer != ptr) { - basic_json& x = result.at(top_pointer); + result.at(top_pointer); } // get reference to parent of JSON pointer ptr @@ -9270,7 +9656,7 @@ class basic_json */ static basic_json diff(const basic_json& source, const basic_json& target, - std::string path = "") + const std::string& path = "") { // the patch basic_json result(value_t::array); @@ -9311,9 +9697,12 @@ class basic_json // in a second pass, traverse the remaining elements // remove my remaining elements + const auto end_index = static_cast(result.size()); while (i < source.size()) { - result.push_back(object( + // add operations in reverse order to avoid invalid + // indices + result.insert(result.begin() + end_index, object( { {"op", "remove"}, {"path", path + "/" + std::to_string(i)} @@ -9429,7 +9818,7 @@ namespace std @since version 1.0.0 */ -template <> +template<> inline void swap(nlohmann::json& j1, nlohmann::json& j2) noexcept( is_nothrow_move_constructible::value and @@ -9440,7 +9829,7 @@ inline void swap(nlohmann::json& j1, } /// hash value for JSON objects -template <> +template<> struct hash { /*! @@ -9461,7 +9850,7 @@ struct hash @brief user-defined string literal for JSON values This operator implements a user-defined string literal for JSON objects. It -can be used by adding \p "_json" to a string literal and returns a JSON object +can be used by adding `"_json"` to a string literal and returns a JSON object if no parse error occurred. @param[in] s a string representation of a JSON object @@ -9471,12 +9860,19 @@ if no parse error occurred. */ inline nlohmann::json operator "" _json(const char* s, std::size_t) { - return nlohmann::json::parse(reinterpret_cast(s)); + return nlohmann::json::parse(s); } /*! @brief user-defined string literal for JSON pointer +This operator implements a user-defined string literal for JSON Pointers. It +can be used by adding `"_json"` to a string literal and returns a JSON pointer +object if no parse error occurred. + +@param[in] s a string representation of a JSON Pointer +@return a JSON pointer object + @since version 2.0.0 */ inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std::size_t) diff --git a/resources/3rdparty/modernjson/test/CMakeLists.txt b/resources/3rdparty/modernjson/test/CMakeLists.txt deleted file mode 100755 index b63e5a394..000000000 --- a/resources/3rdparty/modernjson/test/CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ -# The unit test executable. -add_executable(json_unit - "src/catch.hpp" - "src/unit.cpp" -) - -set_target_properties(json_unit PROPERTIES - CXX_STANDARD 11 - CXX_STANDARD_REQUIRED ON - COMPILE_DEFINITIONS "$<$:_SCL_SECURE_NO_WARNINGS>" - COMPILE_OPTIONS "$<$:/EHsc;$<$:/Od>>" -) - -# Install the test binary. -install(TARGETS json_unit RUNTIME DESTINATION test/bin) - -# Copy the test data to the install tree. -install(DIRECTORY data/ DESTINATION test/data) - -target_include_directories(json_unit PRIVATE "src") -target_link_libraries(json_unit ${JSON_TARGET_NAME}) diff --git a/resources/3rdparty/modernjson/test/data/json.org/1.json b/resources/3rdparty/modernjson/test/data/json.org/1.json deleted file mode 100755 index eacfbf5e6..000000000 --- a/resources/3rdparty/modernjson/test/data/json.org/1.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "glossary": { - "title": "example glossary", - "GlossDiv": { - "title": "S", - "GlossList": { - "GlossEntry": { - "ID": "SGML", - "SortAs": "SGML", - "GlossTerm": "Standard Generalized Markup Language", - "Acronym": "SGML", - "Abbrev": "ISO 8879:1986", - "GlossDef": { - "para": "A meta-markup language, used to create markup languages such as DocBook.", - "GlossSeeAlso": ["GML", "XML"] - }, - "GlossSee": "markup" - } - } - } - } -} diff --git a/resources/3rdparty/modernjson/test/data/json.org/2.json b/resources/3rdparty/modernjson/test/data/json.org/2.json deleted file mode 100755 index 5600991a4..000000000 --- a/resources/3rdparty/modernjson/test/data/json.org/2.json +++ /dev/null @@ -1,11 +0,0 @@ -{"menu": { - "id": "file", - "value": "File", - "popup": { - "menuitem": [ - {"value": "New", "onclick": "CreateNewDoc()"}, - {"value": "Open", "onclick": "OpenDoc()"}, - {"value": "Close", "onclick": "CloseDoc()"} - ] - } -}} diff --git a/resources/3rdparty/modernjson/test/data/json.org/3.json b/resources/3rdparty/modernjson/test/data/json.org/3.json deleted file mode 100755 index 5bfdffec8..000000000 --- a/resources/3rdparty/modernjson/test/data/json.org/3.json +++ /dev/null @@ -1,26 +0,0 @@ -{"widget": { - "debug": "on", - "window": { - "title": "Sample Konfabulator Widget", - "name": "main_window", - "width": 500, - "height": 500 - }, - "image": { - "src": "Images/Sun.png", - "name": "sun1", - "hOffset": 250, - "vOffset": 250, - "alignment": "center" - }, - "text": { - "data": "Click Here", - "size": 36, - "style": "bold", - "name": "text1", - "hOffset": 250, - "vOffset": 100, - "alignment": "center", - "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;" - } -}} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json.org/4.json b/resources/3rdparty/modernjson/test/data/json.org/4.json deleted file mode 100755 index d540b57f0..000000000 --- a/resources/3rdparty/modernjson/test/data/json.org/4.json +++ /dev/null @@ -1,88 +0,0 @@ -{"web-app": { - "servlet": [ - { - "servlet-name": "cofaxCDS", - "servlet-class": "org.cofax.cds.CDSServlet", - "init-param": { - "configGlossary:installationAt": "Philadelphia, PA", - "configGlossary:adminEmail": "ksm@pobox.com", - "configGlossary:poweredBy": "Cofax", - "configGlossary:poweredByIcon": "/images/cofax.gif", - "configGlossary:staticPath": "/content/static", - "templateProcessorClass": "org.cofax.WysiwygTemplate", - "templateLoaderClass": "org.cofax.FilesTemplateLoader", - "templatePath": "templates", - "templateOverridePath": "", - "defaultListTemplate": "listTemplate.htm", - "defaultFileTemplate": "articleTemplate.htm", - "useJSP": false, - "jspListTemplate": "listTemplate.jsp", - "jspFileTemplate": "articleTemplate.jsp", - "cachePackageTagsTrack": 200, - "cachePackageTagsStore": 200, - "cachePackageTagsRefresh": 60, - "cacheTemplatesTrack": 100, - "cacheTemplatesStore": 50, - "cacheTemplatesRefresh": 15, - "cachePagesTrack": 200, - "cachePagesStore": 100, - "cachePagesRefresh": 10, - "cachePagesDirtyRead": 10, - "searchEngineListTemplate": "forSearchEnginesList.htm", - "searchEngineFileTemplate": "forSearchEngines.htm", - "searchEngineRobotsDb": "WEB-INF/robots.db", - "useDataStore": true, - "dataStoreClass": "org.cofax.SqlDataStore", - "redirectionClass": "org.cofax.SqlRedirection", - "dataStoreName": "cofax", - "dataStoreDriver": "com.microsoft.jdbc.sqlserver.SQLServerDriver", - "dataStoreUrl": "jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon", - "dataStoreUser": "sa", - "dataStorePassword": "dataStoreTestQuery", - "dataStoreTestQuery": "SET NOCOUNT ON;select test='test';", - "dataStoreLogFile": "/usr/local/tomcat/logs/datastore.log", - "dataStoreInitConns": 10, - "dataStoreMaxConns": 100, - "dataStoreConnUsageLimit": 100, - "dataStoreLogLevel": "debug", - "maxUrlLength": 500}}, - { - "servlet-name": "cofaxEmail", - "servlet-class": "org.cofax.cds.EmailServlet", - "init-param": { - "mailHost": "mail1", - "mailHostOverride": "mail2"}}, - { - "servlet-name": "cofaxAdmin", - "servlet-class": "org.cofax.cds.AdminServlet"}, - - { - "servlet-name": "fileServlet", - "servlet-class": "org.cofax.cds.FileServlet"}, - { - "servlet-name": "cofaxTools", - "servlet-class": "org.cofax.cms.CofaxToolsServlet", - "init-param": { - "templatePath": "toolstemplates/", - "log": 1, - "logLocation": "/usr/local/tomcat/logs/CofaxTools.log", - "logMaxSize": "", - "dataLog": 1, - "dataLogLocation": "/usr/local/tomcat/logs/dataLog.log", - "dataLogMaxSize": "", - "removePageCache": "/content/admin/remove?cache=pages&id=", - "removeTemplateCache": "/content/admin/remove?cache=templates&id=", - "fileTransferFolder": "/usr/local/tomcat/webapps/content/fileTransferFolder", - "lookInContext": 1, - "adminGroupID": 4, - "betaServer": true}}], - "servlet-mapping": { - "cofaxCDS": "/", - "cofaxEmail": "/cofaxutil/aemail/*", - "cofaxAdmin": "/admin/*", - "fileServlet": "/static/*", - "cofaxTools": "/tools/*"}, - - "taglib": { - "taglib-uri": "cofax.tld", - "taglib-location": "/WEB-INF/tlds/cofax.tld"}}} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json.org/5.json b/resources/3rdparty/modernjson/test/data/json.org/5.json deleted file mode 100755 index acdf930ea..000000000 --- a/resources/3rdparty/modernjson/test/data/json.org/5.json +++ /dev/null @@ -1,27 +0,0 @@ -{"menu": { - "header": "SVG Viewer", - "items": [ - {"id": "Open"}, - {"id": "OpenNew", "label": "Open New"}, - null, - {"id": "ZoomIn", "label": "Zoom In"}, - {"id": "ZoomOut", "label": "Zoom Out"}, - {"id": "OriginalView", "label": "Original View"}, - null, - {"id": "Quality"}, - {"id": "Pause"}, - {"id": "Mute"}, - null, - {"id": "Find", "label": "Find..."}, - {"id": "FindAgain", "label": "Find Again"}, - {"id": "Copy"}, - {"id": "CopyAgain", "label": "Copy Again"}, - {"id": "CopySVG", "label": "Copy SVG"}, - {"id": "ViewSVG", "label": "View SVG"}, - {"id": "ViewSource", "label": "View Source"}, - {"id": "SaveAs", "label": "Save As"}, - null, - {"id": "Help"}, - {"id": "About", "label": "About Adobe CVG Viewer..."} - ] -}} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_nlohmann_tests/all_unicode.json.REMOVED.git-id b/resources/3rdparty/modernjson/test/data/json_nlohmann_tests/all_unicode.json.REMOVED.git-id deleted file mode 100644 index a26b04e23..000000000 --- a/resources/3rdparty/modernjson/test/data/json_nlohmann_tests/all_unicode.json.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -9b834847378ec1a1651518b7e24719775aa0725e \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_nlohmann_tests/bom.json b/resources/3rdparty/modernjson/test/data/json_nlohmann_tests/bom.json deleted file mode 100755 index 9d02f600b..000000000 --- a/resources/3rdparty/modernjson/test/data/json_nlohmann_tests/bom.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "foo": true -} diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip01.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip01.json deleted file mode 100755 index 500db4a86..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip01.json +++ /dev/null @@ -1 +0,0 @@ -[null] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip02.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip02.json deleted file mode 100755 index de601e305..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip02.json +++ /dev/null @@ -1 +0,0 @@ -[true] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip03.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip03.json deleted file mode 100755 index 67b2f0760..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip03.json +++ /dev/null @@ -1 +0,0 @@ -[false] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip04.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip04.json deleted file mode 100755 index 6e7ea636e..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip04.json +++ /dev/null @@ -1 +0,0 @@ -[0] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip05.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip05.json deleted file mode 100755 index 6dfd29830..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip05.json +++ /dev/null @@ -1 +0,0 @@ -["foo"] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip06.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip06.json deleted file mode 100755 index 0637a088a..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip06.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip07.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip07.json deleted file mode 100755 index 9e26dfeeb..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip07.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip08.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip08.json deleted file mode 100755 index bfa34124c..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip08.json +++ /dev/null @@ -1 +0,0 @@ -[0,1] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip09.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip09.json deleted file mode 100755 index 9f5dd4e3d..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip09.json +++ /dev/null @@ -1 +0,0 @@ -{"foo":"bar"} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip10.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip10.json deleted file mode 100755 index 2355b4df2..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip10.json +++ /dev/null @@ -1 +0,0 @@ -{"a":null,"foo":"bar"} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip11.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip11.json deleted file mode 100755 index 99d21a2a0..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip11.json +++ /dev/null @@ -1 +0,0 @@ -[-1] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip12.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip12.json deleted file mode 100755 index 56c78bef1..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip12.json +++ /dev/null @@ -1 +0,0 @@ -[-2147483648] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip13.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip13.json deleted file mode 100755 index 029580f6f..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip13.json +++ /dev/null @@ -1 +0,0 @@ -[-1234567890123456789] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip14.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip14.json deleted file mode 100755 index d86580009..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip14.json +++ /dev/null @@ -1 +0,0 @@ -[-9223372036854775808] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip15.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip15.json deleted file mode 100755 index bace2a0be..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip15.json +++ /dev/null @@ -1 +0,0 @@ -[1] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip16.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip16.json deleted file mode 100755 index dfe696dbd..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip16.json +++ /dev/null @@ -1 +0,0 @@ -[2147483647] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip17.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip17.json deleted file mode 100755 index 6640b07fb..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip17.json +++ /dev/null @@ -1 +0,0 @@ -[4294967295] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip18.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip18.json deleted file mode 100755 index a3ab143b0..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip18.json +++ /dev/null @@ -1 +0,0 @@ -[1234567890123456789] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip19.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip19.json deleted file mode 100755 index 8ab4a5078..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip19.json +++ /dev/null @@ -1 +0,0 @@ -[9223372036854775807] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip20.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip20.json deleted file mode 100755 index 92df1df1d..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip20.json +++ /dev/null @@ -1 +0,0 @@ -[0.0] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip21.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip21.json deleted file mode 100755 index cfef81540..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip21.json +++ /dev/null @@ -1 +0,0 @@ -[-0.0] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip22.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip22.json deleted file mode 100755 index a7b7eefc5..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip22.json +++ /dev/null @@ -1 +0,0 @@ -[1.2345] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip23.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip23.json deleted file mode 100755 index b553e84b7..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip23.json +++ /dev/null @@ -1 +0,0 @@ -[-1.2345] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip24.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip24.json deleted file mode 100755 index f01efb6d5..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip24.json +++ /dev/null @@ -1 +0,0 @@ -[5e-324] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip25.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip25.json deleted file mode 100755 index cdef14d38..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip25.json +++ /dev/null @@ -1 +0,0 @@ -[2.225073858507201e-308] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip26.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip26.json deleted file mode 100755 index f4121b787..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip26.json +++ /dev/null @@ -1 +0,0 @@ -[2.2250738585072014e-308] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip27.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip27.json deleted file mode 100755 index 17ce5211c..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip27.json +++ /dev/null @@ -1 +0,0 @@ -[1.7976931348623157e308] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip28.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip28.json deleted file mode 100755 index 749ffaf93..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip28.json +++ /dev/null @@ -1 +0,0 @@ -[4.940656458412e-324] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip29.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip29.json deleted file mode 100755 index 4bf65ec4b..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip29.json +++ /dev/null @@ -1 +0,0 @@ -[2.2250738585072e-308] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip30.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip30.json deleted file mode 100755 index fd357651b..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip30.json +++ /dev/null @@ -1 +0,0 @@ -[1.2345E-30] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip31.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip31.json deleted file mode 100755 index 1428d1443..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip31.json +++ /dev/null @@ -1 +0,0 @@ -[1.2345E+30] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip32.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip32.json deleted file mode 100755 index d6f34011f..000000000 --- a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip32.json +++ /dev/null @@ -1 +0,0 @@ -[1.2345e+30] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail1.json b/resources/3rdparty/modernjson/test/data/json_tests/fail1.json deleted file mode 100755 index 6216b865f..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail1.json +++ /dev/null @@ -1 +0,0 @@ -"A JSON payload should be an object or array, not a string." \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail10.json b/resources/3rdparty/modernjson/test/data/json_tests/fail10.json deleted file mode 100755 index 5d8c0047b..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail10.json +++ /dev/null @@ -1 +0,0 @@ -{"Extra value after close": true} "misplaced quoted value" \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail11.json b/resources/3rdparty/modernjson/test/data/json_tests/fail11.json deleted file mode 100755 index 76eb95b45..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail11.json +++ /dev/null @@ -1 +0,0 @@ -{"Illegal expression": 1 + 2} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail12.json b/resources/3rdparty/modernjson/test/data/json_tests/fail12.json deleted file mode 100755 index 77580a452..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail12.json +++ /dev/null @@ -1 +0,0 @@ -{"Illegal invocation": alert()} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail13.json b/resources/3rdparty/modernjson/test/data/json_tests/fail13.json deleted file mode 100755 index 379406b59..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail13.json +++ /dev/null @@ -1 +0,0 @@ -{"Numbers cannot have leading zeroes": 013} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail14.json b/resources/3rdparty/modernjson/test/data/json_tests/fail14.json deleted file mode 100755 index 0ed366b38..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail14.json +++ /dev/null @@ -1 +0,0 @@ -{"Numbers cannot be hex": 0x14} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail15.json b/resources/3rdparty/modernjson/test/data/json_tests/fail15.json deleted file mode 100755 index fc8376b60..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail15.json +++ /dev/null @@ -1 +0,0 @@ -["Illegal backslash escape: \x15"] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail16.json b/resources/3rdparty/modernjson/test/data/json_tests/fail16.json deleted file mode 100755 index 3fe21d4b5..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail16.json +++ /dev/null @@ -1 +0,0 @@ -[\naked] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail17.json b/resources/3rdparty/modernjson/test/data/json_tests/fail17.json deleted file mode 100755 index 62b9214ae..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail17.json +++ /dev/null @@ -1 +0,0 @@ -["Illegal backslash escape: \017"] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail18.json b/resources/3rdparty/modernjson/test/data/json_tests/fail18.json deleted file mode 100755 index edac92716..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail18.json +++ /dev/null @@ -1 +0,0 @@ -[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail19.json b/resources/3rdparty/modernjson/test/data/json_tests/fail19.json deleted file mode 100755 index 3b9c46fa9..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail19.json +++ /dev/null @@ -1 +0,0 @@ -{"Missing colon" null} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail2.json b/resources/3rdparty/modernjson/test/data/json_tests/fail2.json deleted file mode 100755 index 6b7c11e5a..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail2.json +++ /dev/null @@ -1 +0,0 @@ -["Unclosed array" \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail20.json b/resources/3rdparty/modernjson/test/data/json_tests/fail20.json deleted file mode 100755 index 27c1af3e7..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail20.json +++ /dev/null @@ -1 +0,0 @@ -{"Double colon":: null} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail21.json b/resources/3rdparty/modernjson/test/data/json_tests/fail21.json deleted file mode 100755 index 62474573b..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail21.json +++ /dev/null @@ -1 +0,0 @@ -{"Comma instead of colon", null} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail22.json b/resources/3rdparty/modernjson/test/data/json_tests/fail22.json deleted file mode 100755 index a7752581b..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail22.json +++ /dev/null @@ -1 +0,0 @@ -["Colon instead of comma": false] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail23.json b/resources/3rdparty/modernjson/test/data/json_tests/fail23.json deleted file mode 100755 index 494add1ca..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail23.json +++ /dev/null @@ -1 +0,0 @@ -["Bad value", truth] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail24.json b/resources/3rdparty/modernjson/test/data/json_tests/fail24.json deleted file mode 100755 index caff239bf..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail24.json +++ /dev/null @@ -1 +0,0 @@ -['single quote'] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail25.json b/resources/3rdparty/modernjson/test/data/json_tests/fail25.json deleted file mode 100755 index 8b7ad23e0..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail25.json +++ /dev/null @@ -1 +0,0 @@ -[" tab character in string "] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail26.json b/resources/3rdparty/modernjson/test/data/json_tests/fail26.json deleted file mode 100755 index 845d26a6a..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail26.json +++ /dev/null @@ -1 +0,0 @@ -["tab\ character\ in\ string\ "] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail27.json b/resources/3rdparty/modernjson/test/data/json_tests/fail27.json deleted file mode 100755 index 6b01a2ca4..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail27.json +++ /dev/null @@ -1,2 +0,0 @@ -["line -break"] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail28.json b/resources/3rdparty/modernjson/test/data/json_tests/fail28.json deleted file mode 100755 index 621a0101c..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail28.json +++ /dev/null @@ -1,2 +0,0 @@ -["line\ -break"] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail29.json b/resources/3rdparty/modernjson/test/data/json_tests/fail29.json deleted file mode 100755 index 47ec421bb..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail29.json +++ /dev/null @@ -1 +0,0 @@ -[0e] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail3.json b/resources/3rdparty/modernjson/test/data/json_tests/fail3.json deleted file mode 100755 index 168c81eb7..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail3.json +++ /dev/null @@ -1 +0,0 @@ -{unquoted_key: "keys must be quoted"} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail30.json b/resources/3rdparty/modernjson/test/data/json_tests/fail30.json deleted file mode 100755 index 8ab0bc4b8..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail30.json +++ /dev/null @@ -1 +0,0 @@ -[0e+] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail31.json b/resources/3rdparty/modernjson/test/data/json_tests/fail31.json deleted file mode 100755 index 1cce602b5..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail31.json +++ /dev/null @@ -1 +0,0 @@ -[0e+-1] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail32.json b/resources/3rdparty/modernjson/test/data/json_tests/fail32.json deleted file mode 100755 index 45cba7396..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail32.json +++ /dev/null @@ -1 +0,0 @@ -{"Comma instead if closing brace": true, \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail33.json b/resources/3rdparty/modernjson/test/data/json_tests/fail33.json deleted file mode 100755 index ca5eb19dc..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail33.json +++ /dev/null @@ -1 +0,0 @@ -["mismatch"} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail4.json b/resources/3rdparty/modernjson/test/data/json_tests/fail4.json deleted file mode 100755 index 9de168bf3..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail4.json +++ /dev/null @@ -1 +0,0 @@ -["extra comma",] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail5.json b/resources/3rdparty/modernjson/test/data/json_tests/fail5.json deleted file mode 100755 index ddf3ce3d2..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail5.json +++ /dev/null @@ -1 +0,0 @@ -["double extra comma",,] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail6.json b/resources/3rdparty/modernjson/test/data/json_tests/fail6.json deleted file mode 100755 index ed91580e1..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail6.json +++ /dev/null @@ -1 +0,0 @@ -[ , "<-- missing value"] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail7.json b/resources/3rdparty/modernjson/test/data/json_tests/fail7.json deleted file mode 100755 index 8a96af3e4..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail7.json +++ /dev/null @@ -1 +0,0 @@ -["Comma after the close"], \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail8.json b/resources/3rdparty/modernjson/test/data/json_tests/fail8.json deleted file mode 100755 index b28479c6e..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail8.json +++ /dev/null @@ -1 +0,0 @@ -["Extra close"]] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail9.json b/resources/3rdparty/modernjson/test/data/json_tests/fail9.json deleted file mode 100755 index 5815574f3..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/fail9.json +++ /dev/null @@ -1 +0,0 @@ -{"Extra comma": true,} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/pass1.json b/resources/3rdparty/modernjson/test/data/json_tests/pass1.json deleted file mode 100755 index 70e268543..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/pass1.json +++ /dev/null @@ -1,58 +0,0 @@ -[ - "JSON Test Pattern pass1", - {"object with 1 member":["array with 1 element"]}, - {}, - [], - -42, - true, - false, - null, - { - "integer": 1234567890, - "real": -9876.543210, - "e": 0.123456789e-12, - "E": 1.234567890E+34, - "": 23456789012E66, - "zero": 0, - "one": 1, - "space": " ", - "quote": "\"", - "backslash": "\\", - "controls": "\b\f\n\r\t", - "slash": "/ & \/", - "alpha": "abcdefghijklmnopqrstuvwyz", - "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ", - "digit": "0123456789", - "0123456789": "digit", - "special": "`1~!@#$%^&*()_+-={':[,]}|;.?", - "hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A", - "true": true, - "false": false, - "null": null, - "array":[ ], - "object":{ }, - "address": "50 St. James Street", - "url": "http://www.JSON.org/", - "comment": "// /* */": " ", - " s p a c e d " :[1,2 , 3 - -, - -4 , 5 , 6 ,7 ],"compact":[1,2,3,4,5,6,7], - "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}", - "quotes": "" \u0022 %22 0x22 034 "", - "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?" -: "A key can be any string" - }, - 0.5 ,98.6 -, -99.44 -, - -1066, -1e1, -0.1e1, -1e-1, -1e00,2e+00,2e-00 -,"rosebud"] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/pass2.json b/resources/3rdparty/modernjson/test/data/json_tests/pass2.json deleted file mode 100755 index d3c63c7ad..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/pass2.json +++ /dev/null @@ -1 +0,0 @@ -[[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]] \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_tests/pass3.json b/resources/3rdparty/modernjson/test/data/json_tests/pass3.json deleted file mode 100755 index 4528d51f1..000000000 --- a/resources/3rdparty/modernjson/test/data/json_tests/pass3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "JSON Test Pattern pass3": { - "The outermost value": "must be an object or array.", - "In this test": "It is an object." - } -} diff --git a/resources/3rdparty/modernjson/test/data/json_testsuite/README.md b/resources/3rdparty/modernjson/test/data/json_testsuite/README.md deleted file mode 100755 index e259b6d0b..000000000 --- a/resources/3rdparty/modernjson/test/data/json_testsuite/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# json-test-suite - -## Source - -https://code.google.com/p/json-test-suite/downloads/detail?name=sample.zip&can=2&q= - -## License - -Apache License Version 2.0 -http://www.apache.org/licenses/LICENSE-2.0 \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/data/json_testsuite/sample.json b/resources/3rdparty/modernjson/test/data/json_testsuite/sample.json deleted file mode 100755 index 30930e765..000000000 --- a/resources/3rdparty/modernjson/test/data/json_testsuite/sample.json +++ /dev/null @@ -1,3315 +0,0 @@ -{ - "a": { - "6U閆崬밺뀫颒myj츥휘:$薈mY햚#rz飏+玭V㭢뾿愴YꖚX亥ᮉ푊\u0006垡㐭룝\"厓ᔧḅ^Sqpv媫\"⤽걒\"˽Ἆ?ꇆ䬔未tv{DV鯀Tἆl凸g\\㈭ĭ즿UH㽤": null, - "b茤z\\.N": [[ - "ZL:ᅣዎ*Y|猫劁櫕荾Oj为1糕쪥泏S룂w࡛Ᏺ⸥蚙)", - { - "\"䬰ỐwD捾V`邀⠕VD㺝sH6[칑.:醥葹*뻵倻aD\"": true, - "e浱up蔽Cr෠JK軵xCʨ<뜡癙Y獩ケ齈X/螗唻?<蘡+뷄㩤쳖3偑犾&\\첊xz坍崦ݻ鍴\"嵥B3㰃詤豺嚼aqJ⑆∥韼@\u000b㢊\u0015L臯.샥": false, - "l?Ǩ喳e6㔡$M꼄I,(3᝝縢,䊀疅뉲B㴔傳䂴\u0088㮰钘ꜵ!ᅛ韽>": -5514085325291784739, - "o㮚?\"춛㵉<\/﬊ࠃ䃪䝣wp6ἀ䱄[s*S嬈貒pᛥ㰉'돀": [{ - "(QP윤懊FI<ꃣ『䕷[\"珒嶮?%Ḭ壍಻䇟0荤!藲끹bd浶tl\u2049#쯀@僞": {"i妾8홫": { - ",M맃䞛K5nAㆴVN㒊햬$n꩑&ꎝ椞阫?/ṏ세뉪1x쥼㻤㪙`\"$쟒薟B煌܀쨝ଢ଼2掳7㙟鴙X婢\u0002": "Vዉ菈᧷⦌kﮞఈnz*﷜FM\"荭7ꍀ-VR<\/';䁙E9$䩉\f @s?퍪o3^衴cඎ䧪aK鼟q䆨c{䳠5mᒲՙ蘹ᮩ": { - "F㲷JGo⯍P덵x뒳p䘧☔\"+ꨲ吿JfR㔹)4n紬G练Q፞!C|": true, - "p^㫮솎oc.೚A㤠??r\u000f)⾽⌲們M2.䴘䩳:⫭胃\\፾@Fᭌ\\K": false, - "蟌Tk愙潦伩": { - "a<\/@ᾛ慂侇瘎": -7271305752851720826, - "艓藬/>၄ṯ,XW~㲆w": {"E痧郶)㜓ha朗!N赻瞉駠uC\u20ad辠x퓮⣫P1ࠫLMMX'M刼唳됤": null, - "P쓫晥%k覛ዩIUᇸ滨:噐혲lMR5䋈V梗>%幽u頖\\)쟟": null, - "eg+昉~矠䧞难\b?gQ쭷筝\\eꮠNl{ಢ哭|]Mn銌╥zꖘzⱷ⭤ᮜ^": [ - -1.30142114406914976E17, - -1.7555215491128452E-19, - null, - "渾㨝ߏ牄귛r?돌?w[⚞ӻ~廩輫㼧/", - -4.5737191805302129E18, - null, - "xy࿑M[oc셒竓Ⓔx?뜓y䊦>-D켍(&&?XKkc꩖ﺸᏋ뵞K伕6ী)딀P朁yW揙?훻魢傎EG碸9類៌g踲C⟌aEX舲:z꒸许", - 3808159498143417627, - null, - {"m試\u20df1{G8&뚈h홯J<\/": { - "3ஸ厠zs#1K7:rᥞoꅔꯧ&띇鵼鞫6跜#赿5l'8{7㕳(b/j\"厢aq籀ꏚ\u0015厼稥": [ - -2226135764510113982, - true, - null, - { - "h%'맞S싅Hs&dl슾W0j鿏MםD놯L~S-㇡R쭬%": null, - "⟓咔謡칲\u0000孺ꛭx旑檉㶆?": null, - "恇I転;￸B2Y`z\\獓w,놏濐撐埵䂄)!䶢D=ഭ㴟jyY": { - "$ࡘt厛毣ൢI芁<겿骫⫦6tr惺a": [ - 6.385779736989334E-20, - false, - true, - true, - [ - -6.891946211462334E-19, - null, - { - "]-\\Ꟑ1/薓❧Ὂ\\l牑\u0007A郃)阜ᇒᓌ-塯`W峬G}SDb㬨Q臉⮻빌O鞟톴첂B㺱<ƈmu챑J㴹㷳픷Oㆩs": { - "\"◉B\"pᶉt骔J꩸ᄇᛐi╰栛K쉷㉯鐩!㈐n칍䟅難>盥y铿e୔蒏M貹ヅ8嘋퀯䉶ጥ㏢殊뻳\"絧╿ꉑ䠥?∃蓊{}㣣Gk긔H1哵峱": false, - "6.瀫cN䇮F㧺?\\椯=ڈT䘆4␘8qv": -3.5687501019676885E-19, - "Q?yऴr혴{஀䳘p惭f1ﹸ䅷䕋贲<ྃᄊ繲hq\\b|#QSTs1c-7(䵢\u2069匏絘ꯉ:l毴汞t戀oෟᵶ뮱፣-醇Jx䙬䐁햢0࣫ᡁgrㄛ": "\u0011_xM/蘇Chv;dhA5.嗀绱V爤ﰦi뵲M", - "⏑[\"ugoy^儣횎~U\\섯겜論l2jw஌yD腅̂\u0019": true, - "ⵯɇ䐲᫿࢚!㯢l샅笶戮1꣖0Xe": null, - "劅f넀識b宁焊E찓橵G!ʱ獓뭔雩괛": [{"p⹣켙[q>燣䍃㞽ᩲx:쓤삘7玑퇼0<\/q璂ᑁ[Z\\3䅵䧳\u0011㤧|妱緒C['췓Yꞟ3Z鳱雼P錻BU씧U`ᢶg蓱>.1ӧ譫'L_5V䏵Ц": [ - false, - false, - {"22䂍盥N霂얢躰e9⑩_뵜斌n@B}$괻Yᐱ@䧋V\"☒-諯cV돯ʠ": true, - "Ű螧ᔼ檍鍎땒딜qꄃH뜣<獧ूCY吓⸏>XQ㵡趌o끬k픀빯a(ܵ甏끆୯/6Nᪧ}搚ᆚ짌P牰泱鈷^d꣟#L삀\"㕹襻;k㸊\\f+": true, - "쎣\",|⫝̸阊x庿k잣v庅$鈏괎炔k쬪O_": [ - "잩AzZGz3v愠ꉈⵎ?㊱}S尳௏p\r2>췝IP䘈M)w|\u000eE", - -9222726055990423201, - null, - [ - false, - {"´킮'뮤쯽Wx讐V,6ᩪ1紲aႈ\u205czD": [ - -930994432421097536, - 3157232031581030121, - "l貚PY䃛5@䭄귻m㎮琸f": 1.0318894506812084E-19, - "࢜⩢Ш䧔1肽씮+༎ᣰ闺馺窃䕨8Mƶq腽xc(៯夐J5굄䕁Qj_훨/~価.䢵慯틠퇱豠㼇Qﵘ$DuSp(8Uญ<\/ಟ룴𥳐ݩ$": 8350772684161555590, - "ㆎQ䄾\u001bpᩭ${[諟^^骴᤮b^ㅥI┧T㉇⾞\"绦r䰂f矩'-7䡭桥Dz兔V9谶居㺍ᔊ䩯덲.\u001eL0ὅㅷ釣": [{ - "<쯬J卷^숞u࠯䌗艞R9닪g㐾볎a䂈歖意:%鐔|ﵤ|y}>;2,覂⶚啵tb*仛8乒㓶B࿠㯉戩oX 貘5V嗆렽낁߼4h䧛ꍺM空\\b꿋貼": 8478577078537189402, - "VD*|吝z~h譺aᯒ": { - "YI췢K<\/濳xNne玗rJo쾘3핰鴊\"↱AR:ࢷ\"9?\"臁說)?誚ꊏe)_D翾W?&F6J@뺾ꍰNZ醊Z쾈വH嶿?炫㷱鬰M겈᭨b,⻁鈵P䕡䀠८ⱄ홎鄣": { - "@?k2鶖㋮\"Oರ K㨇廪儲\u0017䍾J?);\b*묀㗠섳햭1MC V": null, - "UIICP!BUA`ᢈ㋸~袩㗪⾒=fB﮴l1ꡛ죘R辂여ҳ7쮡<䩲`熕8頁": 4481809488267626463, - "Y?+8먙ᚔ鋳蜩럶1㥔y璜౩`": [ - null, - 1.2850335807501874E-19, - "~V2", - 2035406654801997866, - { - "<숻1>\"": -8062468865199390827, - "M㿣E]}qwG莎Gn᝶(ꔙ\\D⬲iꇲs寢t駇S뀡ꢜ": false, - "pꝤ㎏9W%>M;-U璏f(^j1?&RB隧 忓b똊E": "#G?C8.躬ꥯ'?냪#< 渟&헿란zpo왓Kj}鷧XﻘMツb䕖;㪻", - "vE풤幉xz뱕쫥Ug㦲aH} ᣟp:鬼YᰟH3镔ᴚ斦\\鏑r*2橱G⼔F/.j": true, - "RK좬뎂a홠f*f㱉ᮍ⦋潙㨋Gu곌SGI3I뿐\\F',)t`荁蘯囯ﮉ裲뇟쥼_ገ驪▵撏ᕤV": 1.52738225997956557E18, - "^k굲䪿꠹B逤%F㱢漥O披M㽯镞竇霒i꼂焅륓\u00059=皫之눃\u2047娤閍銤唫ၕb<\/w踲䔼u솆맚,䝒ᝳ'/it": "B餹饴is権ꖪ怯ꦂẉဎt\"!凢谵⧿0\\<=(uL䷍刨쑪>俆揓Cy襸Q힆䆭涷<\/ᐱ0ɧ䗾䚹\\ኜ?ꄢᇘ`䴢{囇}᠈䴥X4퓪檄]ꥷ/3謒ሴn+g騍X", - "GgG꽬[(嫓몍6\u0004궍宩㙻/>\u0011^辍dT腪hxǑ%ꊇk,8(W⧂結P鬜O": [{ - "M㴾c>\\ᓲ\u0019V{>ꤩ혙넪㭪躂TS-痴໸闓⍵/徯O.M㏥ʷD囎⧔쁳휤T??鉬뇙=#ꢫ숣BX䭼<\/d똬졬g榿)eꨋﯪ좇첻\u001a\u0011\";~쓆BH4坋攊7힪", - "iT:L闞椕윚*滛gI≀Wਟඊ'ꢆ縺뱹鮚Nꩁ᧬蕼21줧\\䋯``⍐\\㏱鳨": 1927052677739832894, - "쮁缦腃g]礿Y㬙 fヺSɪ꾾N㞈": [ - null, - null, - { - "!t,灝Y 1䗉罵?c饃호䉂Cᐭ쒘z(즽sZG㬣sഖE4뢜㓕䏞丮Qp簍6EZឪ겛fx'ꩱQ0罣i{k锩*㤴㯞r迎jTⲤ渔m炅肳": [ - -3.3325685522591933E18, - [{"㓁5]A䢕1룥BC?Ꙍ`r룔Ⳛ䙡u伲+\u0001്o": [ - null, - 4975309147809803991, - null, - null, - {"T팘8Dﯲ稟MM☻㧚䥧/8ﻥ⥯aXLaH\"顾S☟耲ît7fS෉놁뮔/ꕼ䓈쁺4\\霶䠴ᩢ<\/t4?죵>uD5➶༆쉌럮⢀秙䘥\u20972ETR3濡恆vB? ~鸆\u0005": { - "`閖m璝㥉b뜴?Wf;?DV콜\u2020퍉౓擝宏ZMj3mJ먡-傷뱙yח㸷꥿ ໘u=M읝!5吭L4v\\?ǎ7C홫": null, - "|": false, - "~Ztᛋ䚘\\擭㗝傪W陖+㗶qᵿ蘥ᙄp%䫎)}=⠔6ᮢS湟-螾-mXH?cp": 448751162044282216, - "\u209fad놹j檋䇌ᶾ梕㉝bוּ": {"?苴ꩠD䋓帘5騱qﱖPF?☸珗顒yU ᡫcb䫎 S@㥚gꮒ쎘泴멖\\:I鮱TZ듒ᶨQ3+f7캙\"?\f풾\\o杞紟﻽M.⏎靑OP": [ - -2.6990368911551596E18, - [{"䒖@<᰿<\/⽬tTr腞&G%᳊秩蜰擻f㎳?S㵧\r*k뎾-乢겹隷j軛겷0룁鮁": {")DO0腦:춍逿:1㥨่!蛍樋2": [{ - ",ꌣf侴笾m๫ꆽ?1?U?\u0011ꌈꂇ": { - "x捗甠nVq䅦w`CD⦂惺嘴0I#vỵ} \\귂S끴D얾?Ԓj溯\"v餄a": { - "@翙c⢃趚痋i\u0015OQ⍝lq돆Y0pࢥ3쉨䜩^<8g懥0w)]䊑n洺o5쭝QL댊랖L镈Qnt⪟㒅십q헎鳒⮤眉ᔹ梠@O縠u泌ㄘb榚癸XޔFtj;iC": false, - "I&뱋゘|蓔䔕측瓯%6ᗻHW\\N1貇#?僐ᗜgh᭪o'䗈꽹Rc욏/蔳迄༝!0邔䨷푪8疩)[쭶緄㇈୧ፐ": { - "B+:ꉰ`s쾭)빼C羍A䫊pMgjdx䐝Hf9᥸W0!C樃'蘿f䫤סи\u0017Jve? 覝f둀⬣퓉Whk\"஼=չﳐ皆笁BIW虨쫓F廰饞": -642906201042308791, - "sb,XcZ<\/m㉹ ;䑷@c䵀s奤⬷7`ꘖ蕘戚?Feb#輜}p4nH⬮eKL트}": [ - "RK鳗z=袤Pf|[,u욺", - "Ẏᏻ罯뉋⺖锅젯㷻{H䰞쬙-쩓D]~\u0013O㳢gb@揶蔉|kᦂ❗!\u001ebM褐sca쨜襒y⺉룓", - null, - null, - true, - -1.650777344339075E-19, - false, - "☑lꄆs힨꤇]'uTന⌳농].1⋔괁沰\"IWഩ\u0019氜8쟇䔻;3衲恋,窌z펏喁횗?4?C넁问?ᥙ橭{稻Ⴗ_썔", - "n?]讇빽嗁}1孅9#ꭨ靶v\u0014喈)vw祔}룼쮿I", - -2.7033457331882025E18, - { - ";⚃^㱋x:饬ኡj'꧵T☽O㔬RO婎?향ᒭ搩$渣y4i;(Q>꿘e8q": "j~錘}0g;L萺*;ᕭꄮ0l潛烢5H▄쳂ꏒוֹꙶT犘≫x閦웧v", - "~揯\u2018c4職렁E~ᑅቚꈂ?nq뎤.:慹`F햘+%鉎O瀜쟏敛菮⍌浢<\/㮺紿P鳆ࠉ8I-o?#jﮨ7v3Dt赻J9": null, - "ࣝW䌈0ꍎqC逖,횅c၃swj;jJS櫍5槗OaB>D踾Y": {"㒰䵝F%?59.㍈cᕨ흕틎ḏ㋩B=9IېⓌ{:9.yw}呰ㆮ肒᎒tI㾴62\"ዃ抡C﹬B<\/촋jo朣", - [ - -7675533242647793366, - {"ᙧ呃:[㒺쳀쌡쏂H稈㢤\u001dᶗGG-{GHྻຊꡃ哸䵬;$?&d\\⥬こN圴됤挨-'ꕮ$PU%?冕눖i魁q騎Q": [ - false, - [[ - 7929823049157504248, - [[ - true, - "Z菙\u0017'eꕤ᱕l,0\\X\u001c[=雿8蠬L<\/낲긯W99g톉4ퟋb㝺\u0007劁'!麕Q궈oW:@X၎z蘻m絙璩귓죉+3柚怫tS捇蒣䝠-擶D[0=퉿8)q0ٟ", - "唉\nFA椭穒巯\\䥴䅺鿤S#b迅獘 ﶗ꬘\\?q1qN犠pX꜅^䤊⛤㢌[⬛휖岺q唻ⳡ틍\"㙙Eh@oA賑㗠y必Nꊑᗘ", - -2154220236962890773, - -3.2442003245397908E18, - "Wᄿ筠:瘫퀩?o貸q⊻(᎞KWf宛尨h^残3[U(='橄", - -7857990034281549164, - 1.44283696979059942E18, - null, - {"ꫯAw跭喀 ?_9\"Aty背F=9缉ྦྷ@;?^鞀w:uN㘢Rỏ": [ - 7.393662029337442E15, - 3564680942654233068, - [ - false, - -5253931502642112194, - "煉\\辎ೆ罍5⒭1䪁䃑s䎢:[e5}峳ﴱn騎3?腳Hyꏃ膼N潭錖,Yᝋ˜YAၓ㬠bG렣䰣:", - true, - null, - { - "⒛'P&%죮|:⫶춞": -3818336746965687085, - "钖m<\/0ݎMtF2Pk=瓰୮洽겎.": [[ - -8757574841556350607, - -3045234949333270161, - null, - { - "Ꮬr輳>⫇9hU##w@귪A\\C 鋺㘓ꖐ梒뒬묹㹻+郸嬏윤'+g<\/碴,}ꙫ>손;情d齆J䬁ຩ撛챝탹/R澡7剌tꤼ?ặ!`⏲睤\u00002똥଴⟏": null, - "\u20f2ܹe\\tAꥍư\\x当뿖렉禛;G檳ﯪS૰3~㘠#[J<}{奲 5箉⨔{놁<\/釿抋,嚠/曳m&WaOvT赋皺璑텁": [[ - false, - null, - true, - -5.7131445659795661E18, - "萭m䓪D5|3婁ఞ>蠇晼6nﴺPp禽羱DS<睓닫屚삏姿", - true, - [ - -8759747687917306831, - { - ">ⓛ\t,odKr{䘠?b퓸C嶈=DyEᙬ@ᴔ쨺芛髿UT퓻春<\/yꏸ>豚W釺N뜨^?꽴﨟5殺ᗃ翐%>퍂ဿ䄸沂Ea;A_\u0005閹殀W+窊?Ꭼd\u0013P汴G5썓揘": 4.342729067882445E-18, - "Q^즾眆@AN\u0011Kb榰냎Y#䝀ꀒᳺ'q暇睵s\"!3#I⊆畼寤@HxJ9": false, - "⿾D[)袨㇩i]웪䀤ᛰMvR<蟏㣨": {"v퇓L㪱ꖣ豛톤\\곱#kDTN": [{ - "(쾴䡣,寴ph(C\"㳶w\"憳2s馆E!n!&柄<\/0Pꈗſ?㿳Qd鵔": {"娇堰孹L錮h嵅⛤躏顒?CglN束+쨣ﺜ\\MrH": {"獞䎇둃ቲ弭팭^ꄞ踦涟XK錆쳞ឌ`;੶S炥騞ଋ褂B៎{ڒ䭷ᶼ靜pI荗虶K$": [{"◖S~躘蒉꫿輜譝Q㽙闐@ᢗ¥E榁iء5┄^B[絮跉ᰥ遙PWi3wㄾⵀDJ9!w㞣ᄎ{듒ꓓb6\\篴??c⼰鶹⟧\\鮇ꮇ": [[ - 654120831325413520, - -1.9562073916357608E-19, - { - "DC(昐衵ἡ긙갵姭|֛[t": 7.6979110359897907E18, - "J␅))嫼❳9Xfd飉j7猬ᩉ+⤻眗벎E鰉Zᄊ63zၝ69}ZᶐL崭ᦥ⡦靚⋛ꎨ~i㨃咊ꧭo䰠阀3C(": -3.5844809362512589E17, - "p꣑팱쒬ꎑ뛡Ꙩ挴恍胔&7ᔈ묒4Hd硶훐㎖zꢼ豍㿢aሃ=<\/湉鵲EӅ%$F!퍶棌孼{O駍਺geu+": ")\u001b잓kŀX쩫A밁®ڣ癦狢)扔弒p}k縕ꩋ,䃉tࣼi", - "ァF肿輸<솄G-䢹䛸ꊏl`Tqꕗ蒞a氷⸅ᴉ蠰]S/{J왲m5{9.uέ~㕚㣹u>x8U讁B덺襪盎QhVS맅킃i识{벂磄Iහ䙅xZy/抍૭Z鲁-霳V据挦ℒ": null, - "㯛|Nꐸb7ⵐb?拠O\u0014ކ?-(EꞨ4ꕷᄤYᯕOW瞺~螸\"욿ќe㺰\"'㌢ƐW\u0004瞕>0?V鷵엳": true, - "뤥G\\迋䠿[庩'꼡\u001aiᩮV쯁ᳪ䦪Ô;倱ନ뛁誈": null, - "쥹䄆䚟Q榁䎐᢭<\/2㕣p}HW蟔|䃏꿈ꚉ锳2Pb7㙑Tⅹᵅ": { - "Y?֭$>#cVBꩨ:>eL蒁務": { - "86柡0po 䏚&-捑Ћ祌<\/휃-G*㶢הּ쩍s㶟餇c걺yu꽎還5*턧簕Og婥SꝐ": null, - "a+葞h٥ࠆ裈嗫ﵢ5輙퀟ᛜ,QDﹼ⟶Y騠锪E_|x죗j侵;m蜫轘趥?븅w5+mi콛L": { - ";⯭ﱢ!买F⽍柤鶂n䵣V㫚墱2렾ELEl⣆": [ - true, - -3.6479311868339015E-18, - -7270785619461995400, - 3.334081886177621E18, - 2.581457786298155E18, - -6.605252412954115E-20, - -3.9232347037744167E-20, - { - "B6㊕.k1": null, - "ZAꄮJ鮷ᳱo갘硥鈠䠒츼": { - "ᕅ}럡}.@y陪鶁r業'援퀉x䉴ﵴl퍘):씭脴ᥞhiꃰblﲂ䡲엕8߇M㶭0燋標挝-?PCwe⾕J碻Ᾱ䬈䈥뷰憵賣뵓痬+": {"a췩v礗X⋈耓ፊf罅靮!㔽YYᣓw澍33⎔芲F|\"䜏T↮輦挑6ᓘL侘?ᅥ]덆1R௯✎餘6ꏽ<\/௨\\?q喷ꁫj~@ulq": {"嗫欆뾔Xꆹ4H㌋F嵧]ࠎ]㠖1ꞤT<$m뫏O i댳0䲝i": {"?෩?\u20cd슮|ꯆjs{?d7?eNs⢚嫥氂䡮쎱:鑵롟2hJꎒﯭ鱢3춲亄:뼣v䊭諱Yj択cVmR䩃㘬T\"N홝*ै%x^F\\_s9보zz4淗?q": [ - null, - "?", - 2941869570821073737, - "{5{殇0䝾g6밖퍋臩綹R$䖭j紋釰7sXI繳漪행y", - false, - "aH磂?뛡#惇d婅?Fe,쐘+늵䍘\"3r瘆唊勐j⳧࠴ꇓ<\/唕윈x⬌讣䋵%拗ᛆⰿ妴᝔M2㳗必꧂淲?ゥ젯檢<8끒MidX䏒3᳻Q▮佐UT|⤪봦靏⊏", - [[{ - "颉(&뜸귙{y^\"P퟉춝Ჟ䮭D顡9=?}Y誱<$b뱣RvO8cH煉@tk~4ǂ⤧⩝屋SS;J{vV#剤餓ᯅc?#a6D,s": [ - -7.8781018564821536E16, - true, - [ - -2.28770899315832371E18, - false, - -1.0863912140143876E-20, - -6282721572097446995, - 6767121921199223078, - -2545487755405567831, - false, - null, - -9065970397975641765, - [ - -5.928721243413937E-20, - {"6촊\u001a홯kB0w撨燠룉{绎6⳹!턍贑y▾鱧ժ[;7ᨷ∀*땒䪮1x霆Hᩭ☔\"r䝐7毟ᝰr惃3ꉭE+>僒澐": [ - "Ta쎩aƝt쵯ⰪVb", - [ - -5222472249213580702, - null, - -2851641861541559595, - null, - 4808804630502809099, - 5657671602244269874, - "5犲﨣4mᥣ?yf젫꾯|䋬잁$`Iⳉﴷ扳兝,'c", - false, - [ - null, - { - "DyUIN쎾M仼惀⮥裎岶泭lh扠\u001e礼.tEC癯튻@_Qd4c5S熯A<\/\6U윲蹴Q=%푫汹\\\u20614b[௒C⒥Xe⊇囙b,服3ss땊뢍i~逇PA쇸1": -2.63273619193485312E17, - "Mq꺋貘k휕=nK硍뫞輩>㾆~἞ࡹ긐榵l⋙Hw뮢帋M엳뢯v⅃^": 1877913476688465125, - "ᶴ뻗`~筗免⚽টW˃⽝b犳䓺Iz篤p;乨A\u20ef쩏?疊m㝀컩뫡b탔鄃ᾈV(遢珳=뎲ିeF仢䆡谨8t0醄7㭧瘵⻰컆r厡궥d)a阄፷Ed&c﯄伮1p": null, - "⯁w4曢\"(欷輡": "\"M᭫]䣒頳B\\燧ࠃN㡇j姈g⊸⺌忉ꡥF矉স%^", - "㣡Oᄦ昵⫮Y祎S쐐級㭻撥>{I$": -378474210562741663, - "䛒掷留Q%쓗1*1J*끓헩ᦢ﫫哉쩧EↅIcꅡ\\?ⴊl귛顮4": false, - "寔愆샠5]䗄IH贈=d﯊/偶?ॊn%晥D視N򗘈'᫂⚦|X쵩넽z질tskxDQ莮Aoﱻ뛓": true, - "钣xp?&\u001e侉/y䴼~?U篔蘚缣/I畚?Q绊": -3034854258736382234, - "꺲໣眀)⿷J暘pИfAV삕쳭Nꯗ4々'唄ⶑ伻㷯騑倭D*Ok꧁3b␽_<\/챣Xm톰ၕ䆄`*fl㭀暮滠毡?": [ - "D男p`V뙸擨忝븪9c麺`淂⢦Yw⡢+kzܖ\fY1䬡H歁)벾Z♤溊-혰셢?1<-\u0005;搢Tᐁle\\ᛵߓﭩ榩訝-xJ;巡8깊蠝ﻓU$K": { - "Vꕡ諅搓W=斸s︪vﲜ츧$)iꡟ싉e寳?ጭムVથ嵬i楝Fg<\/Z|៪ꩆ-5'@ꃱ80!燱R쇤t糳]罛逇dṌ֣XHiͦ{": true, - "Ya矲C멗Q9膲墅携휻c\\딶G甔<\/.齵휴": -1.1456247877031811E-19, - "z#.OO￝J": -8263224695871959017, - "崍_3夼ᮟ1F븍뽯ᦓ鴭V豈Ь": [{ - "N蒬74": null, - "yuB?厅vK笗!ᔸcXQ旦컶P-녫mᄉ麟_": "1R@ 톘xa_|﩯遘s槞d!d껀筤⬫薐焵먑D{\\6k共倌☀G~AS_D\"딟쬚뮥馲렓쓠攥WTMܭ8nX㩴䕅檹E\u0007ﭨN 2 ℆涐ꥏ꠵3▙玽|됨_\u2048", - "恐A C䧩G": {":M큣5e들\\ꍀ恼ᔄ靸|I﨏$)n": { - "|U䬫㟯SKV6ꛤ㗮\bn봻䲄fXT:㾯쳤'笓0b/ೢC쳖?2浓uO.䰴": "ཐ꼋e?``,ᚇ慐^8ꜙNM䂱\u0001IᖙꝧM'vKdꌊH牮r\\O@䊷ᓵ쀆(fy聻i툺\"?<\/峧ࣞ⓺ᤤ쵒߯ꎺ騬?)刦\u2072l慪y꺜ﲖTj+u", - "뽫hh䈵w>1ⲏ쐭V[ⅎ\\헑벑F_㖝⠗㫇h恽;῝汰ᱼ瀖J옆9RR셏vsZ柺鶶툤r뢱橾/ꉇ囦FGm\"謗ꉦ⨶쒿⥡%]鵩#ᖣ_蹎 u5|祥?O", - null, - 2.0150326776036215E-19, - null, - true, - false, - true, - {"\fa᭶P捤WWc᠟f뚉ᬏ퓗ⳀW睹5:HXH=q7x찙X$)모r뚥ᆟ!Jﳸf": [ - -2995806398034583407, - [ - 6441377066589744683, - "Mﶒ醹i)Gἦ廃s6몞 KJ౹礎VZ螺费힀\u0000冺업{谥'꡾뱻:.ꘘ굄奉攼Di᷑K鶲y繈욊阓v㻘}枭캗e矮1c?휐\"4\u0005厑莔뀾墓낝⽴洗ṹ䇃糞@b1\u0016즽Y轹", - { - "1⽕⌰鉟픏M㤭n⧴ỼD#%鐘⊯쿼稁븣몐紧ᅇ㓕ᛖcw嬀~ഌ㖓(0r⧦Q䑕髍ര铂㓻R儮\"@ꇱm❈௿᦯頌8}㿹犴?xn잆꥽R": 2.07321075750427366E18, - "˳b18㗈䃟柵Z曆VTAu7+㛂cb0﯑Wp執<\/臋뭡뚋刼틮荋벲TLP预庰܈G\\O@VD'鱃#乖끺*鑪ꬳ?Mޞdﭹ{␇圯쇜㼞顄︖Y홡g": [{ - "0a,FZ": true, - "2z̬蝣ꧦ驸\u0006L↛Ḣ4๚뿀'?lcwᄧ㐮!蓚䃦-|7.飑挴.樵*+1ﮊ\u0010ꛌ%貨啺/JdM:똍!FBe?鰴㨗0O财I藻ʔWA᫓G쳛u`<\/I": [{ - "$τ5V鴐a뾆両環iZp頻යn븃v": -4869131188151215571, - "*즢[⦃b礞R◚nΰꕢH=귰燙[yc誘g䆌?ଜ臛": { - "洤湌鲒)⟻\\䥳va}PeAMnN[": "㐳ɪ/(軆lZR,Cp殍ȮN啷\"3B婴?i=r$펽ᤐ쀸", - "阄R4㒿㯔ڀ69ZᲦ2癁핌噗P崜#\\-쭍袛&鐑/$4童V꩑_ZHA澢fZ3": {"x;P{긳:G閉:9?活H": [ - "繺漮6?z犞焃슳\">ỏ[Ⳛ䌜녏䂹>聵⼶煜Y桥[泥뚩MvK$4jtロ", - "E#갶霠좭㦻ୗ먵F+䪀o蝒ba쮎4X㣵 h", - -335836610224228782, - null, - null, - [ - "r1᫩0>danjY짿bs{", - [ - -9.594464059325631E-23, - 1.0456894622831624E-20, - null, - 5.803973284253454E-20, - -8141787905188892123, - true, - -4735305442504973382, - 9.513150514479281E-20, - "7넳$螔忷㶪}䪪l짴\u0007鹁P鰚HF銏ZJﳴ/⍎1ᷓ忉睇ᜋ쓈x뵠m䷐窥Ꮤ^\u0019ᶌ偭#ヂt☆၃pᎍ臶䟱5$䰵&๵分숝]䝈뉍♂坎\u0011<>", - "C蒑貑藁lﰰ}X喇몛;t밿O7/᯹f\u0015kI嘦<ዴ㟮ᗎZ`GWퟩ瑹࡮ᅴB꿊칈??R校s脚", - { - "9珵戬+AU^洘拻ቒy柭床'粙XG鞕᠜繀伪%]hC,$輙?Ut乖Qm떚W8઼}~q⠪rU䤶CQ痗ig@#≲t샌f㈥酧l;y闥ZH斦e⸬]j⸗?ঢ拻퀆滌": null, - "畯}㧢J罚帐VX㨑>1ꢶkT⿄蘥㝑o|<嗸層沈挄GEOM@-䞚䧰$만峬輏䠱V✩5宸-揂D'㗪yP掶7b⠟J㕻SfP?d}v㼂Ꮕ'猘": { - "陓y잀v>╪": null, - "鬿L+7:됑Y=焠U;킻䯌잫!韎ஔ\f": { - "駫WmGጶ": { - "\\~m6狩K": -2586304199791962143, - "ႜࠀ%͑l⿅D.瑢Dk%0紪dḨTI픸%뗜☓s榗኉\"?V籄7w髄♲쟗翛歂E䤓皹t ?)ᄟ鬲鐜6C": { - "_췤a圷1\u000eB-XOy缿請∎$`쳌eZ~杁튻/蜞`塣৙\"⪰\"沒l}蕌\\롃荫氌.望wZ|o!)Hn獝qg}": null, - "kOSܧ䖨钨:಼鉝ꭝO醧S`십`ꓭ쭁ﯢN&Et㺪馻㍢ⅳ㢺崡ຊ蜚锫\\%ahx켨|ż劻ꎄ㢄쐟A躊᰹p譞綨Ir쿯\u0016ﵚOd럂*僨郀N*b㕷63z": { - ":L5r+T㡲": [{ - "VK泓돲ᮙRy㓤➙Ⱗ38oi}LJቨ7Ó㹡৘*q)1豢⛃e᫛뙪壥镇枝7G藯g㨛oI䄽 孂L缊ꋕ'EN`": -2148138481412096818, - "`⛝ᘑ$(खꊲ⤖ᄁꤒ䦦3=)]Y㢌跨NĴ驳줟秠++d孳>8ᎊ떩EꡣSv룃 쯫أ?#E|᭙㎐?zv:5祉^⋑V": [ - -1.4691944435285607E-19, - 3.4128661569395795E17, - "㐃촗^G9佭龶n募8R厞eEw⺡_ㆱ%⼨D뉄퉠2ꩵᛅⳍ搿L팹Lවn=\"慉념ᛮy>!`g!풲晴[/;?[v겁軇}⤳⤁핏∌T㽲R홓遉㓥", - "愰_⮹T䓒妒閤둥?0aB@㈧g焻-#~跬x<\/舁P݄ꐡ=\\׳P\u0015jᳪᢁq;㯏l%᭗;砢觨▝,謁ꍰGy?躤O黩퍋Y㒝a擯\n7覌똟_䔡]fJ晋IAS", - 4367930106786121250, - -4.9421193149720582E17, - null, - { - ";ᄌ똾柉곟ⰺKpፇ䱻ฺ䖝{o~h!eꁿ઻욄ښ\u0002y?xUd\u207c悜ꌭ": [ - 1.6010824122815255E-19, - [ - "宨︩9앉檥pr쇷?WxLb", - "氇9】J玚\u000f옛呲~ 輠1D嬛,*mW3?n휂糊γ虻*ᴫ꾠?q凐趗Ko↦GT铮", - "㶢ថmO㍔k'诔栀Z蛟}GZ钹D", - false, - -6.366995517736813E-20, - -4894479530745302899, - null, - "V%᫡II璅䅛䓎풹ﱢ/pU9se되뛞x梔~C)䨧䩻蜺(g㘚R?/Ự[忓C뾠ࢤc왈邠买?嫥挤풜隊枕", - ",v碍喔㌲쟚蔚톬៓ꭶ", - 3.9625444752577524E-19, - null, - [ - "kO8란뿒䱕馔b臻⍟隨\"㜮鲣Yq5m퐔K#ꢘug㼈ᝦ=P^6탲@䧔%$CqSw铜랊0&m⟭<\/a逎ym\u0013vᯗ": true, - "洫`|XN뤮\u0018詞=紩鴘_sX)㯅鿻Ố싹": 7.168252736947373E-20, - "ꛊ饤ﴏ袁(逊+~⽫얢鈮艬O힉7D筗S곯w操I斞᠈븘蓷x": [[[[ - -7.3136069426336952E18, - -2.13572396712722688E18, - { - "硢3㇩R:o칢行E<=\u0018ၬYuH!\u00044U%卝炼2>\u001eSi$⓷ꒈ'렢gᙫ番ꯒ㛹럥嶀澈v;葷鄕x蓎\\惩+稘UEᖸﳊ㊈壋N嫿⏾挎,袯苷ኢ\\x|3c": 7540762493381776411, - "?!*^ᢏ窯?\u0001ڔꙃw虜돳FgJ?&⨫*uo籤:?}ꃹ=ٴ惨瓜Z媊@ત戹㔏똩Ԛ耦Wt轁\\枒^\\ꩵ}}}ꀣD\\]6M_⌫)H豣:36섘㑜": { - ";홗ᰰU஋㙛`D왔ཿЃS회爁\u001b-㢈`봆?盂㛣듿ᦾ蒽_AD~EEຆ㊋(eNwk=Rɠ峭q\"5Ἠ婾^>'ls\n8QAK)- Q䲌mo펹L_칍樖庫9꩝쪹ᘹ䑖瀍aK ?*趤f뭓廝p=磕", - "哑z懅ᤏ-ꍹux쀭", - [ - true, - 3998739591332339511, - "ጻ㙙?᳸aK<\/囩U`B3袗ﱱ?\"/k鏔䍧2l@쿎VZ쨎/6ꃭ脥|B?31+on颼-ꮧ,O嫚m ࡭`KH葦:粘i]aSU쓙$쐂f+詛頖b", - [{"^<9<箝&絡;%i﫡2攑紴\\켉h쓙-柂䚝ven\u20f7浯-Ꮏ\r^훁䓚헬\u000e?\\ㅡֺJ떷VOt": [{ - "-௄卶k㘆혐஽y⎱㢬sS઄+^瞥h;ᾷj;抭\u0003밫f<\/5Ⱗ裏_朻%*[-撵䷮彈-芈": { - "㩩p3篊G|宮hz䑊o곥j^Co0": [ - 653239109285256503, - {"궲?|\":N1ۿ氃NZ#깩:쇡o8킗ࡊ[\"됸Po핇1(6鰏$膓}⽐*)渽J'DN<썙긘毦끲Ys칖": { - "2Pr?Xjㆠ?搮/?㓦柖馃5뚣Nᦼ|铢r衴㩖\"甝湗ܝ憍": "\"뾯i띇筝牻$珲/4ka $匝휴译zbAᩁꇸ瑅&뵲衯ꎀᆿ7@ꈋ'ᶨH@ᠴl+", - "7뢽뚐v?4^ꊥ_⪛.>pởr渲<\/⢕疻c\"g䇘vU剺dஔ鮥꒚(dv祴X⼹\\a8y5坆": true, - "o뼄B욞羁hr﷔폘뒚⿛U5pꪴfg!6\\\"爑쏍䢱W<ﶕ\\텣珇oI/BK뺡'谑♟[Ut븷亮g(\"t⡎有?ꬊ躺翁艩nl F⤿蠜": 1695826030502619742, - "ۊ깖>ࡹ햹^ⵕ쌾BnN〳2C䌕tʬ]찠?ݾ2饺蹳ぶꌭ訍\"◹ᬁD鯎4e滨T輀ﵣ੃3\u20f3킙D瘮g\\擦+泙ၧ 鬹ﯨַ肋7놷郟lP冝{ߒhড়r5,꓋": null, - "ΉN$y{}2\\N﹯ⱙK'8ɜͣwt,.钟廣䎘ꆚk媄_": null, - "䎥eᾆᝦ읉,Jުn岪㥐s搖謽䚔5t㯏㰳㱊ZhD䃭f絕s鋡篟a`Q鬃┦鸳n_靂(E4迠_觅뷝_宪D(NL疶hL追V熑%]v肫=惂!㇫5⬒\u001f喺4랪옑": { - "2a輍85먙R㮧㚪Sm}E2yꆣꫨrRym㐱膶ᔨ\\t綾A☰.焄뙗9<쫷챻䒵셴᭛䮜.<\/慌꽒9叻Ok䰊Z㥪幸k": [ - null, - true, - {"쌞쐍": { - "▟GL K2i뛱iQ\"̠.옛1X$}涺]靎懠ڦ늷?tf灟ݞゟ{": 1.227740268699265E-19, - "꒶]퓚%ฬK❅": [{ - "(ෛ@Ǯっ䧼䵤[aテൖvEnAdU렖뗈@볓yꈪ,mԴ|꟢캁(而첸죕CX4Y믅": "2⯩㳿ꢚ훀~迯?᪑\\啚;4X\u20c2襏B箹)俣eỻw䇄", - "75༂f詳䅫ꐧ鏿 }3\u20b5'∓䝱虀f菼Iq鈆﨤g퍩)BFa왢d0뮪痮M鋡nw∵謊;ꝧf美箈ḋ*\u001c`퇚퐋䳫$!V#N㹲抗ⱉ珎(V嵟鬒_b㳅\u0019": null, - "e_m@(i㜀3ꦗ䕯䭰Oc+-련0뭦⢹苿蟰ꂏSV䰭勢덥.ྈ爑Vd,ᕥ=퀍)vz뱊ꈊB_6듯\"?{㒲&㵞뵫疝돡믈%Qw限,?\r枮\"? N~癃ruࡗdn&": null, - "㉹&'Pfs䑜공j<\/?|8oc᧨L7\\pXᭁ 9᪘": -2.423073789014103E18, - "䝄瑄䢸穊f盈᥸,B뾧푗횵B1쟢f\u001f凄": "魖⚝2儉j꼂긾껢嗎0ࢇ纬xI4](੓`蕞;픬\fC\"斒\")2櫷I﹥迧", - "ퟯ詔x悝령+T?Bg⥄섅kOeQ큼㻴*{E靼6氿L缋\u001c둌๶-㥂2==-츫I즃㠐Lg踞ꙂEG貨鞠\"\u0014d'.缗gI-lIb䋱ᎂDy缦?": null, - "紝M㦁犿w浴詟棓쵫G:䜁?V2ힽ7N*n&㖊Nd-'ຊ?-樹DIv⊜)g䑜9뉂ㄹ푍阉~ꅐ쵃#R^\u000bB䌎䦾]p.䀳": [{"ϒ爛\"ꄱ︗竒G䃓-ま帳あ.j)qgu扐徣ਁZ鼗A9A鸦甈!k蔁喙:3T%&㠘+,䷞|챽v䚞문H<\/醯r셓㶾\\a볜卺zE䝷_죤ဵ뿰᎟CB": [ - 6233512720017661219, - null, - -1638543730522713294, - false, - -8901187771615024724, - [ - 3891351109509829590, - true, - false, - -1.03836679125188032E18, - { - "j랎:g曞ѕᘼ}链N", - -1.1103819473845426E-19, - true, - [ - true, - null, - -7.9091791735309888E17, - true, - {"}蔰鋈+ꐨ啵0?g*사%`J?*": [{ - "\"2wG?yn,癷BK\\龞䑞x?蠢": -3.7220345009853505E-19, - ";饹়❀)皋`噿焒j(3⿏w>偍5X薙婏聿3aFÆÝ": "2,ꓴg?_섦_>Y쪥션钺;=趘F~?D㨫\bX?㹤+>/믟kᠪ멅쬂Uzỵ]$珧`m雁瑊ඖ鯬cꙉ梢f묛bB", - "♽n$YjKiXX*GO贩鏃豮祴遞K醞眡}ꗨv嵎꼷0୸+M菋eH徸J꣆:⼐悥B켽迚㯃b諂\u000bjꠜ碱逮m8": [ - "푷᣺ﻯd8ﱖ嬇ភH鹎⡱᱅0g:果6$GQ췎{vᷧYy-脕x偹砡館⮸C蓼ꏚ=軄H犠G谖ES詤Z蠂3l봟hᅭ7䦹1GPQG癸숟~[#駥8zQ뛣J소obg,", - null, - 1513751096373485652, - null, - -6.851466660824754E-19, - {"䩂-⴮2ٰK솖풄꾚ႻP앳1H鷛wmR䗂皎칄?醜<\/&ࠧ㬍X濬䵈K`vJ륒Q/IC묛!;$vϑ": { - "@-ꚗxྐྵ@m瘬\u0010U絨ﮌ驐\\켑寛넆T=tQ㭤L연@脸삯e-:⩼u㎳VQ㋱襗ຓ<Ⅶ䌸cML3+\u001e_C)r\\9+Jn\\Pﺔ8蠱檾萅Pq鐳话T䄐I": -1.80683891195530061E18, - "ᷭዻU~ཷsgSJ`᪅'%㖔n5픆桪砳峣3獮枾䌷⊰呀": { - "Ş੉䓰邟自~X耤pl7间懑徛s첦5ਕXexh⬖鎥᐀nNr(J컗|ૃF\"Q겮葲놔엞^겄+㈆话〾희紐G'E?飕1f❼텬悚泬먐U睬훶Qs": false, - "(\u20dag8큽튣>^Y{뤋.袊䂓;_g]S\u202a꽬L;^'#땏bႌ?C緡<䝲䲝断ꏏ6\u001asD7IK5Wxo8\u0006p弊⼂ꯍ扵\u0003`뵂픋%ꄰ⫙됶l囏尛+䗅E쟇\\": [ - true, - { - "\n鱿aK㝡␒㼙2촹f;`쾏qIࡔG}㝷䐍瓰w늮*粅9뒪ㄊCj倡翑閳R渚MiUO~仨䜶RꙀA僈㉋⦋n{㖥0딿벑逦⥻0h薓쯴Ꝼ": [ - 5188716534221998369, - 2579413015347802508, - 9.010794400256652E-21, - -6.5327297761238093E17, - 1.11635352494065523E18, - -6656281618760253655, - { - "": ")?", - "TWKLꑙ裑꺔UE俸塑炌Ũ᜕-o\"徚#": {"M/癟6!oI51ni퐚=댡>xꍨ\u0004 ?": { - "皭": {"⢫䋖>u%w잼<䕏꘍P䋵$魋拝U䮎緧皇Y훂&|羋ꋕ잿cJ䨈跓齳5\u001a삱籷I꿾뤔S8㌷繖_Yឯ䲱B턼O歵F\\l醴o_欬6籏=D": [ - false, - true, - {"Mt|ꏞD|F궣MQ뵕T,띺k+?㍵i": [ - 7828094884540988137, - false, - { - "!༦鯠,&aﳑ>[euJꏽ綷搐B.h": -7648546591767075632, - "-n켧嘰{7挐毄Y,>❏螵煫乌pv醑Q嶚!|⌝責0왾덢ꏅ蛨S\\)竰'舓Q}A釡5#v": 3344849660672723988, - "8閪麁V=鈢1녈幬6棉⪮둌\u207d᚛驉ꛃ'r䆉惏ै|bἧﺢᒙ<=穊强s혧eꮿ慩⌡ \\槳W븧J檀C,ᘉ의0俯퀉M;筷ࣴ瓿{늊埂鄧_4揸Nn阼Jੵ˥(社": true, - "o뼀vw)4A뢵(a䵢)p姃뛸\u000fK#KiQp\u0005ꅍ芅쏅": null, - "砥$ꥸ┇耽u斮Gc{z빔깎밇\\숰\u001e괷各㶇쵿_ᴄ+h穢p촀Ნ䃬z䝁酳ӂ31xꔄ1_砚W렘G#2葊P ": [ - -3709692921720865059, - null, - [ - 6669892810652602379, - -135535375466621127, - "뎴iO}Z? 馢녱稹ᄾ䐩rSt帤넆&7i騏멗畖9誧鄜'w{Ͻ^2窭외b㑎粖i矪ꦨ탪跣)KEㆹ\u0015V8[W?⽉>'kc$䨘ᮛ뉻٬M5", - 1.10439588726055846E18, - false, - -4349729830749729097, - null, - [ - false, - "_蠢㠝^䟪/D녒㡋ỎC䒈판\u0006એq@O펢%;鹐쏌o戥~A[ꡉ濽ỳ&虃᩾荣唙藍茨Ig楡꒻M窓冉?", - true, - 2.17220752996421728E17, - -5079714907315156164, - -9.960375974658589E-20, - "ᾎ戞༒", - true, - false, - [[ - "ⶉᖌX⧕홇)g엃⹪x뚐癟\u0002", - -5185853871623955469, - { - "L㜤9ợㇶK鐰⋓V뽋˖!斫as|9"፬䆪?7胜&n薑~": -2.11545634977136992E17, - "O8뀩D}캖q萂6༣㏗䈓煮吽ਆᎼDᣘ폛;": false, - "YTᡅ^L㗎cbY$pᣞ縿#fh!ꘂb삵玊颟샞ဢ$䁗鼒몁~rkH^:닮먖츸륈⪺쒉砉?㙓扫㆕꣒`R䢱B酂?C뇞<5Iޚ讳騕S瞦z": null, - "\\RB?`mG댵鉡幐物䵎有5*e骄T㌓ᛪ琾駒Ku\u001a[柆jUq8⋈5鿋츿myﻗ?雍ux঴?": 5828963951918205428, - "n0晅:黯 xu씪^퓞cB㎊ᬍ⺘٤փ~B岚3㥕擄vᲂ~F?C䶖@$m~忔S왖㲚?챴⊟W#벌{'㰝I䝠縁s樘\\X뢻9핡I6菍ㄛ8쯶]wॽ0L\"q": null, - "x增줖j⦦t䏢᎙㛿Yf鼘~꫓恄4惊\u209c": "oOhbᤃ᛽z&Bi犑\\3B㩬劇䄑oŁ쨅孥멁ຖacA㖫借㞝vg싰샂㐜#譞⢤@k]鋰嘘䜾L熶塥_<\/⍾屈ﮊ_mY菹t뙺}Ox=w鮮4S1ꐩמּ'巑", - "㗓蟵ꂾe蠅匳(JP䗏෸\u0089耀왲": [{ - "ᤃ㵥韎뤽\r?挥O쯡⇔㞚3伖\u0005P⋪\"D궣QLn(⚘罩䩢Ŏv䤘尗뼤됛O淽鋋闚r崩a{4箙{煷m6〈": { - "l곺1L": { - "T'ਤ?砅|੬Km]䄩\"(࿶<\/6U爢䫈倔郴l2㴱^줣k'L浖L鰄Rp今鎗⒗C얨M훁㡧ΘX粜뫈N꤇輊㌻켑#㮮샶-䍗룲蠝癜㱐V>=\\I尬癤t=": 7648082845323511446, - "鋞EP:<\/_`ၧe混ㇹBd⯢㮂驋\\q碽饩跓྿ᴜ+j箿렏㗑yK毢宸p謹h䦹乕U媣\\炤": [[ - "3", - [ - true, - 3.4058271399411134E-20, - true, - "揀+憱f逮@먻BpW曉\u001a㣐⎊$n劈D枤㡞좾\u001aᛁ苔౩闝1B䷒Ṋ݋➐ꀞꐃ磍$t੤_:蘺⮼(#N", - 697483894874368636, - [ - "vᘯ锴)0訶}䳅⩚0O壱韈ߜ\u0018*U鍾䏖=䧉뽑单휻ID쿇嘗?ꌸῬ07", - -5.4858784319382006E18, - 7.5467775182251151E18, - -8911128589670029195, - -7531052386005780140, - null, - [ - null, - true, - [[{ - "1欯twG<\/Q:0怯押殃탷聫사<ỗꕧ蚨䡁nDꌕ\u001c녬~蓩鲃g儊>ꏡl㻿/⑷*챳6㻜W毤緛ﹺᨪ4\u0013뺚J髬e3쳸䘦伧?恪&{L掾p+꬜M䏊d娘6": { - "2p첼양棜h䜢﮶aQ*c扦v︥뮓kC寵횂S銩&ǝ{O*य़iH`U큅ࡓr䩕5ꄸ?`\\᧫?ᮼ?t〟崾훈k薐ì/iy꤃뵰z1<\/AQ#뿩8jJ1z@u䕥": 1.82135747285215155E18, - "ZdN &=d년ᅆ'쑏ⅉ:烋5&៏ᄂ汎来L㯄固{钧u\\㊏튚e摑&t嗄ꖄUb❌?m䴘熚9EW": [{ - "ଛ{i*a(": -8.0314147546006822E17, - "⫾ꃆY\u000e+W`௸ \"M뒶+\\뷐lKE}(NT킶Yj選篒쁶'jNQ硾(똡\\\"逌ⴍy? IRꜘ὞鄬﨧:M\\f⠋Cꚜ쫊ᚴNV^D䕗ㅖἔIao꿬C⍏8": [ - 287156137829026547, - { - "H丞N逕⯲": {"": { - "7-;枮阕梒9ᑄZ": [[[[ - null, - { - "": [[[[ - -7.365909561486078E-19, - 2948694324944243408, - null, - [ - true, - "荒\"并孷䂡쵼9o䀘F\u0002龬7⮹Wz%厖/*? a*R枈㌦됾g뒠䤈q딄㺿$쮸tᶎ릑弣^鏎<\/Y鷇驜L鿽<\/춋9Mᲆឨ^<\/庲3'l낢", - "c鮦\u001b두\\~?眾ಢu݆綑෪蘛轋◜gȃ<\/ⴃcpkDt誩܅\"Y", - [[ - null, - null, - [ - 3113744396744005402, - true, - "v(y", - { - "AQ幆h쾜O+꺷铀ꛉ練A蚗⼺螔j㌍3꽂楎䥯뎸먩?": null, - "蠗渗iz鱖w]擪E": 1.2927828494783804E-17, - "튷|䀭n*曎b✿~杤U]Gz鄭kW|㴚#㟗ഠ8u擨": [[ - true, - null, - null, - {"⾪壯톽g7?㥜ώQꑐ㦀恃㧽伓\\*᧰閖樧뢇赸N휶䎈pI氇镊maᬠ탷#X?A+kНM ༑᩟؝?5꧎鰜ṚY즫궔 =ঈ;ﳈ?*s|켦蜌wM笙莔": [ - null, - -3808207793125626469, - [ - -469910450345251234, - 7852761921290328872, - -2.7979740127017492E18, - 1.4458504352519893E-20, - true, - "㽙깹?먏䆢:䴎ۻg殠JBTU⇞}ꄹꗣi#I뵣鉍r혯~脀쏃#釯:场:䔁>䰮o'㼽HZ擓௧nd", - [ - 974441101787238751, - null, - -2.1647718292441327E-19, - 1.03602824249831488E18, - [ - null, - 1.0311977941822604E-17, - false, - true, - { - "": -3.7019778830816707E18, - "E峾恆茍6xLIm縂0n2视֯J-ᤜz+ᨣ跐mYD豍繹⹺䊓몓ﴀE(@詮(!Y膽#᎙2䟓섣A䈀㟎,囪QbK插wcG湎ꤧtG엝x⥏俎j'A一ᯥ뛙6ㅑ鬀": 8999803005418087004, - "よ殳\\zD⧅%Y泥簳Uꈩ*wRL{3#3FYHା[d岀䉯T稉駅䞘礄P:闈W怏ElB㤍喬赔bG䠼U଄Nw鰯闀楈ePsDꥷ꭬⊊": [ - 6.77723657904486E-20, - null, - [ - "ཚ_뷎꾑蹝q'㾱ꂓ钚蘞慵렜떆`ⴹ⎼櫯]J?[t9Ⓢ !컶躔I᮸uz>3a㠕i,錃L$氰텰@7녫W㸮?羧W뇧ꃞ,N鋮숪2ɼ콏┍䁲6", - "&y?뢶=킕올Za惻HZk>c\u20b58i?ꦶcfBv잉ET9j䡡", - "im珊Ճb칧校\\뼾쯀", - 9.555715121193197E-20, - true, - { - "<㫚v6腓㨭e1㕔&&V∌ᗈT奄5Lጥ>탤?튣瑦㳆ꉰ!(ᙪ㿬擇_n쌯IMΉ㕨␰櫈ᱷ5풔蟹&L.첽e鰷쯃劼﫭b#ﭶ퓀7뷄Wr㢈๧Tʴશ㶑澕鍍%": -1810142373373748101, - "fg晌o?߲ꗄ;>C>?=鑰監侯Kt굅": true, - "䫡蓺ꑷ]C蒹㦘\"1ః@呫\u0014NL䏾eg呮፳,r$裢k>/\\?ㄤᇰﻛ쉕1஥'Ċ\" \\_?쨔\"ʾr: 9S䘏禺ᪧꄂ㲄", - [[{ - "*硙^+E쌺I1䀖ju?:⦈Ꞓl๴竣迃xKC/饉:\fl\"XTFᄄ蟭,芢<\/骡軺띜hꏘ\u001f銿<棔햳▨(궆*=乥b8\\媦䷀뫝}닶ꇭ(Kej䤑M": [{ - "1Ꮼ?>옿I╅C<ގ?ꊌ冉SV5A㢊㶆z-๎玶绢2F뵨@㉌뀌o嶔f9-庒茪珓뷳4": null, - ";lᰳ": "CbB+肻a䄷苝*/볳+/4fq=㰁h6瘉샴4铢Y骐.⌖@哼猎㦞+'gꋸ㒕ߤ㞑(䶒跲ti⑴a硂#No볔", - "t?/jE幸YHT셵⩎K!Eq糦ꗣv刴w\"l$ο:=6:移": { - "z]鑪醊嫗J-Xm銌翁絨c里됏炙Ep㣋鏣똼嚌䀓GP﹖cmf4鹭T䅿꣭姧␸wy6ꦶ;S&(}ᎧKxᾂQ|t뻳k\"d6\"|Ml췆hwLt꼼4$&8Պ褵婶鯀9": {"嵃닢ᒯ'd᧫䳳#NXe3-붋鸿ଢ떓%dK\u0013䲎ꖍYV.裸R⍉rR3蟛\\:젯:南ĺLʆ넕>|텩鴷矔ꋅⒹ{t孶㓑4_": [ - true, - null, - [ - false, - "l怨콈lᏒ", - { - "0w䲏嬧-:`䉅쉇漧\\܂yㄨb%㽄j7ᦶ涶<": 3.7899452730383747E-19, - "ꯛTẀq纤q嶏V⿣?\"g}ი艹(쥯B T騠I=仵및X": {"KX6颠+&ᅃ^f畒y[": { - "H?뱜^?꤂-⦲1a㋞&ꍃ精Ii᤾챪咽쬘唂쫷<땡劈훫놡o㥂\\ KⴙD秼F氮[{'좴:례晰Iq+I쭥_T綺砸GO煝䟪ᚪ`↹l羉q쐼D꽁ᜅ훦: vUV": true, - "u^yﳍ0㱓#[y뜌앸ꊬL㷩?蕶蘾⻍KӼ": -7931695755102841701, - "䤬轉車>\u001c鴵惋\"$쯃྆⇻n뽀G氠S坪]ಲꨍ捇Qxኻ椕駔\\9ࣼ﫻읜磡煮뺪ᶚ볝l㕆t+sζ": [[[ - true, - false, - [ - null, - 3363739578828074923, - true, - { - "\"鸣詩 볰㑵gL㯦῅춝旫}ED辗ﮈI쀤-ꧤ|㠦Z\"娑ᕸ4爏騍㣐\"]쳝Af]茛⬻싦o蚁k䢯䩐菽3廇喑ޅ": 4.5017999150704666E17, - "TYႇ7ʠ值4챳唤~Zo&ݛ": false, - "`塄J袛㭆끺㳀N㺣`꽐嶥KﯝSVᶔ∲퀠獾N딂X\"ᤏhNﬨvI": {"\u20bb㭘I䖵䰼?sw䂷쇪](泒f\"~;꼪Fԝsᝦ": {"p,'ꉂ軿=A蚶?bƉ㏵䅰諬'LYKL6B깯⋩겦뎙(ᜭ\u0006噣d꾆㗼Z;䄝䚔cd<情@䞂3苼㸲U{)<6&ꩻ钛\u001au〷N숨囖愙j=BXW욕^x芜堏Ῑ爂뛷꒻t✘Q\b": [[ - "籛&ଃ䩹.ꃩ㦔\\C颫#暪&!勹ꇶ놽攺J堬镙~軌C'꾖䣹㮅岃ᙴ鵣", - 4.317829988264744E15, - 6.013585322002147E-20, - false, - true, - null, - null, - -3.084633632357326E-20, - false, - null, - { - "\"짫愔昻 X\"藣j\"\"먁ཅѻ㘤㬯0晲DU꟒㸃d벀윒l䦾c੻*3": null, - "谈Wm陧阦咟ฯ歖擓N喴㋐銭rCCnVࢥ^♼Ⅾ젲씗刊S༝+_t赔\\b䚍뉨ꬫ6펛cL䊘᜼<\/澤pF懽&H": [ - null, - { - "W\"HDUuΌ퀟M'P4࿰H똆ⰱﮯ<\/凐蘲\"C鴫ﭒж}ꭩ쥾t5yd诪ﮡ퍉ⴰ@?氐醳rj4I6Qt": 6.9090159359219891E17, - "絛ﳛ⺂": {"諰P㗮聦`ZQ?ꫦh*റcb⧱}埌茥h{棩렛툽o3钛5鮁l7Q榛6_g)ὄ\u0013kj뤬^爖eO4Ⱈ槞鉨ͺ订%qX0T썗嫷$?\\\"봅늆'%": [ - -2.348150870600346E-19, - [[ - true, - -6619392047819511778, - false, - [[ - -1.2929189982356161E-20, - 1.7417192219309838E-19, - {"?嵲2࿐2\u0001啑㷳c縯": [ - null, - [ - false, - true, - 2578060295690793218, - { - "?\"殃呎#㑑F": true, - "}F炊_殛oU헢兔Ꝉ,赭9703.B数gTz3⏬": { - "5&t3,햓Mݸᵣ㴵;꣫䩍↳#@뫷䠅+W-ࣇzᓃ鿕ಔ梭?T䮑ꥬ旴]u뫵막bB讍:왳둛lEh=숾鱠p咐$짏#?g⹷ᗊv㷵.斈u頻\u0018-G.": "뽙m-ouࣤ஫牷\"`Ksꕞ筼3HlȨvC堈\"I]㖡玎r먞#'W賜鴇k'c룼髋䆿飉㗆xg巤9;芔cጐ/ax䊨♢큓r吓㸫೼䢗da᩾\"]屣`", - ":M딪<䢥喠\u0013㖅x9蕐㑂XO]f*Q呰瞊吭VP@9,㨣 D\\穎vˤƩs㜂-曱唅L걬/롬j㈹EB8g<\/섩o渀\"u0y&룣": ">氍緩L/䕑돯Ꟙ蕞^aB뒣+0jK⪄瑨痜LXK^힦1qK{淚t츔X:Vm{2r獁B뾄H첚7氥?쉟䨗ꠂv팳圎踁齀\\", - "D彤5㢷Gꪻ[lㄆ@὜⓰絳[ଃ獽쮹☒[*0ꑚ㜳": 9022717159376231865, - "ҖaV銣tW+$魿\u20c3亜~뫡ᙰ禿쨽㏡fṼzE/h": "5臐㋇Ჯ쮺? 昨탰Wム밎#'\"崲钅U?幫뺀⍾@4kh>騧\\0ҾEV=爐͌U捀%ꉼ 㮋<{j]{R>:gԩL\u001c瀈锌ﯲﳡꚒ'⫿E4暍㌗뵉X\"H᝜", - "ᱚגּ;s醒}犍SἿ㦣&{T$jkB\\\tḮ앾䤹o<避(tW": "vb⯽䴪䮢@|)", - "⥒퐁껉%惀뗌+녣迺顀q條g⚯i⤭룐M琹j̈́⽜A": -8385214638503106917, - "逨ꊶZ<\/W⫟솪㎮ᘇb?ꠔi\"H㧺x෷韒Xꫨฟ|]窽\u001a熑}Agn?Mᶖa9韲4$3Ỵ^=쏍煤ፐ돷2䣃%鷠/eQ9頸쥎", - 2398360204813891033, - false, - 3.2658897259932633E-19, - null, - "?ꚃ8Nn㞷幵d䲳䱲뀙ꪛQ瑓鎴]䩋-鰾捡䳡??掊", - false, - -1309779089385483661, - "ᦲxu_/yecR.6芏.ᜇ過 ~", - -5658779764160586501, - "쒌:曠=l썜䢜wk#s蕚\"互㮉m䉤~0듐䋙#G;h숄옥顇෤勹(C7㢅雚㐯L⠅VV簅<", - null, - -4.664877097240962E18, - -4.1931322262828017E18, - { - ",": { - "v㮟麑䄠뤵g{M띮.\u001bzt뢜뵡0Ǥ龍떟Ᾰ怷ϓRT@Lꀌ樂U㏠⾕e扉|bJg(뵒㠶唺~ꂿ(땉x⻫싉쁊;%0鎻V(o\f,N鏊%nk郼螺": -1.73631993428376141E18, - "쟧摑繮Q@Rᕾ㭚㾣4隅待㓎3蒟": [ - 4971487283312058201, - 8973067552274458613, - { - "`a揙ᣗ\u0015iBo¸": 4.3236479112537999E18, - "HW&퉡ぁ圍Y?瑡Qy훍q!帰敏s舠㫸zꚗaS歲v`G株巷Jp6킼 (귶鍔⾏⡈>M汐㞍ቴ꙲dv@i㳓ᇆ?黍": [ - null, - 4997607199327183467, - "E㻎蠫ᐾ高䙟蘬洼旾﫠텛㇛?'M$㣒蔸=A_亀绉앭rN帮", - null, - [{ - "Eᑞ)8餧A5u&㗾q?": [ - -1.969987519306507E-19, - null, - [ - 3.42437673373841E-20, - true, - "e걷M墁\"割P␛퍧厀R䱜3ﻴO퓫r﹉⹊", - [ - -8164221302779285367, - [ - true, - null, - "爘y^-?蘞Ⲽꪓa␅ꍨ}I", - 1.4645984996724427E-19, - [{ - "tY좗⧑mrzﺝ㿥ⴖ᥷j諅\u0000q賋譁Ꞅ⮱S\nࡣB/큃굪3Zɑ复o<\/;롋": null, - "彟h浠_|V4䦭Dᙣ♞u쿻=삮㍦\u001e哀鬌": [{"6횣楠,qʎꗇ鎆빙]㱭R굋鈌%栲j分僅ペ䇰w폦p蛃N溈ꡐꏀ?@(GI뉬$ﮄ9誁ꓚ2e甸ڋ[䁺,\u0011\u001cࢃ=\\+衪䷨ᯕ鬸K": [[ - "ㅩ拏鈩勥\u000etgWVXs陂規p狵w퓼{뮵_i\u0002ퟑႢ⬐d6鋫F~챿搟\u0096䚼1ۼ칥0꣯儏=鋷牋ⅈꍞ龐", - -7283717290969427831, - true, - [ - 4911644391234541055, - { - "I鈒첽P릜朸W徨觘-Hᎄ퐟⓺>8kr1{겵䍃〛ᬡ̨O귑o䝕'쿡鉕p5": "fv粖RN瞖蛐a?q꤄\u001d⸥}'ꣴ犿ꦼ?뤋?鵆쥴덋䡫s矷̄?ඣ/;괱絢oWfV<\/\u202cC,㖦0䑾%n賹g&T;|lj_欂N4w", - "짨䠗;䌕u i+r๏0": [{"9䥁\\఩8\"馇z䇔<\/ႡY3e狚쐡\"ุ6ﰆZ遖c\"Ll:ꮾ疣<\/᭙O◌납୕湞9⡳Und㫜\u0018^4pj1;䧐儂䗷ୗ>@e톬": { - "a⑂F鋻Q螰'<퇽Q贝瀧{ᘪ,cP&~䮃Z?gI彃": [ - -1.69158726118025933E18, - [ - "궂z簽㔛㮨瘥⤜䛖Gℤ逆Y⪾j08Sn昞ꘔ캻禀鴚P謦b{ꓮmN靐Mᥙ5\"睏2냑I\u0011.L&=?6ᄠ뻷X鸌t刑\"#z)o꫚n쳟줋", - null, - 7517598198523963704, - "ኑQp襟`uᩄr方]*F48ꔵn俺ሙ9뇒", - null, - null, - 6645782462773449868, - 1219168146640438184, - null, - { - ")ယ넌竀Sd䰾zq⫣⏌ʥ\u0010ΐ' |磪&p牢蔑mV蘸૰짬꺵;K": [ - -7.539062290108008E-20, - [ - true, - false, - null, - true, - 6574577753576444630, - [[ - 1.2760162530699766E-19, - [ - null, - [ - "顊\\憎zXB,", - [{ - "㇆{CVC9-MN㜋ઘR눽#{h@ퟨ!鼚׼XOvXS\u0017ᝣ=cS+梽៲綆16s덽휐y屬?ᇳG2ᴭ\u00054쫖y룇nKcW̭炦s/鰘ᬽ?J|퓀髣n勌\u0010홠P>j": false, - "箴": [ - false, - "鍞j\"ꮾ*엇칬瘫xṬ⭽쩁䃳\"-⋵?ᦽ댎Ĝ": true, - "Pg帯佃籛n㔠⭹࠳뷏≻࿟3㞱!-쒾!}쭪䃕!籿n涻J5ਲ਼yvy;Rኂ%ᔡጀ裃;M⣼)쵂쑈": 1.80447711803435366E18, - "ꈑC⡂ᑆ㤉壂뎃Xub<\/쀆༈憓ق쨐ק\\": [ - 7706977185172797197, - {"": {"K╥踮砆NWࡆFy韣7ä밥{|紒︧䃀榫rᩛꦡTSy잺iH8}ퟴ,M?Ʂ勺ᴹ@T@~꾂=I㙕뾰_涀쑜嫴曣8IY?ҿo줫fऒ}\\S\"ᦨ뵼#nDX": { - "♘k6?଱癫d68?㽚乳䬳-V顷\u0005蝕?\u0018䞊V{邾zじl]雏k臤~ൖH뒐iꢥ]g?.G碄懺䔛pR$䅒X觨l봜A刊8R梒',}u邩퉕?;91Ea䈈믁G⊶芔h袪&廣㺄j;㡏綽\u001bN頸쳘橆": -2272208444812560733, - "拑Wﵚj鵼駳Oࣿ)#㾅顂N傓纝y僱栜'Bꐍ-!KF*ꭇK¦?䈴^:啤wG逭w᧯": "xᣱmYe1ۏ@霄F$ě꧘푫O䤕퀐Pq52憬ꀜ兴㑗ᡚ?L鷝ퟐ뭐zJꑙ}╆ᅨJB]\"袌㺲u8䯆f", - "꿽၅㔂긱Ǧ?SI": -1669030251960539193, - "쇝ɨ`!葎>瞺瘡驷錶❤ﻮ酜=": -6961311505642101651, - "?f7♄꫄Jᡔ훮e읇퍾፣䭴KhखT;Qty}O\\|뫁IῒNe(5惁ꥶㆷY9ﮡ\\ oy⭖-䆩婁m#x봉>Y鈕E疣s驇↙ᙰm<": {"퉻:dꂁ&efᅫ쫢[\"돈늖꺙|Ô剐1͖-K:ʚ᭕/;쏖㷛]I痐职4gZ4⍜kเꛘZ⥺\\Bʫᇩ鄨魢弞&幟ᓮ2̊盜", - -9006004849098116748, - -3118404930403695681, - { - "_彃Y艘-\"Xx㤩㳷瑃?%2䐡鵛o귵옔夘v*탋职&㳈챗|O钧": [ - false, - "daꧺdᗹ羞쯧H㍤鄳頳<型孒ン냆㹀f4㹰\u000f|C*ሟ鰠(O<ꨭ峹ipຠ*y೧4VQ蔔hV淬{?ᵌEfrI_", - "j;ꗣ밷邍副]ᗓ", - -4299029053086432759, - -5610837526958786727, - [ - null, - [ - -1.3958390678662759E-19, - { - "lh좈T_믝Y\"伨\u001cꔌG爔겕ꫳ晚踍⿻읐T䯎]~e#฽燇\"5hٔ嶰`泯r;ᗜ쮪Q):/t筑,榄&5懶뎫狝(": [{ - "2ፁⓛ]r3C攟וּ9賵s⛔6'ஂ|\"ⵈ鶆䐹禝3\"痰ࢤ霏䵩옆䌀?栕r7O簂Isd?K᫜`^讶}z8?z얰T:X倫⨎ꑹ": -6731128077618251511, - "|︦僰~m漿햭\\Y1'Vvخ굇ቍ챢c趖": [null] - }], - "虌魿閆5⛔煊뎰㞤ᗴꥰF䮥蘦䂪樳-K᝷-(^\u20dd_": 2.11318679791770592E17 - } - ] - ] - ]}, - "묗E䀳㧯᳀逞GMc\b墹㓄끖Ơ&U??펌鑍 媋k))ᄊ": null, - "묥7콽벼諌J_DɯﮪM殴䣏,煚ྼ`Y:씧<\/⩫%yf䦀!1Ჶk춎Q米W∠WC跉鬽*ᛱi㴕L꘻ꀏ쓪\"_g鿄'#t⽙?,Wg㥖|D鑆e⥏쪸僬h鯔咼ඡ;4TK聎졠嫞" - } - ] - ] - } - ] - ] - ]}} - } - ]} - }, - "뿋뀾淣截䔲踀&XJ펖꙯^Xb訅ꫥgᬐ>棟S\"혧騾밫겁7-": "擹8C憎W\"쵮yR뢩浗絆䠣簿9䏈引Wcy䤶孖ꯥ;퐌]輩䍐3@{叝 뽸0ᡈ쵡Ⲇ\u001dL匁꧐2F~ݕ㪂@W^靽L襒ᦘ~沦zZ棸!꒲栬R" - } - ] - ], - "Z:덃൛5Iz찇䅄駠㭧蓡K1": "e8᧤좱U%?ⵇ䯿鿝\u0013縮R∱骒EO\u000fg?幤@֗퉙vU`", - "䐃쪈埽້=Ij,쭗쓇చ": false - }]}} - ] - } - ]} - } - ] - ] - ], - "咰긖VM]᝼6䓑쇎琺etDҌ?㞏ꩄ퇫밉gj8蠃\"⩐5䛹1ࣚ㵪": "ക蹊?⎲⧘⾚̀I#\"䈈⦞돷`wo窭戕෱휾䃼)앷嵃꾞稧,Ⴆ윧9S?೗EMk3Მ3+e{⹔Te驨7䵒?타Ulg悳o43" - } - ], - "zQᤚ纂땺6#ٽ﹧v￿#ࠫ휊冟蹧텈ꃊʆ?&a䥯De潝|쿓pt瓞㭻啹^盚2Ꝋf醪,얏T窧\\Di䕎谄nn父ꋊE": -2914269627845628872, - "䉩跐|㨻ᷢ㝉B{蓧瞸`I!℄욃힕#ೲᙾ竛ᔺCjk췒늕貭词\u0017署?W딚%(pꍁ⤼띳^=on뺲l䆼bzrﳨ[&j狸䠠=ᜑꦦ\u2061յnj=牲攑)M\\龏": false, - "뎕y絬᫡⥮Ϙᯑ㌔/NF*˓.,QEzvK!Iwz?|쥾\"ꩻL꼗Bꔧ賴緜s뉣隤茛>ロ?(?^`>冺飒=噸泥⺭Ᲊ婓鎔븜z^坷裮êⓅ໗jM7ﶕ找\\O": 1.376745434746303E-19 - }, - "䐛r滖w㏤,|Nዜ": false - } - ]], - "@꿙?薕尬 gd晆(띄5躕ﻫS蔺4)떒錸瓍?~": 1665108992286702624, - "w믍nᏠ=`঺ᅥC>'從됐槷䤝眷螄㎻揰扰XᅧC贽uჍ낟jKD03T!lDV쀉Ӊy뢖,袛!终캨G?鉮Q)⑗1쾅庅O4ꁉH7?d\u0010蠈줘월ސ粯Q!낇껉6텝|{": null, - "~˷jg쿤촖쉯y": -5.5527605669177098E18, - "펅Wᶺzꐆと푭e?4j仪열[D<鈑皶婆䵽ehS?袪;HꍨM뗎ば[(嗏M3q퍟g4y╸鰧茀[Bi盤~﫝唎鋆彺⦊q?B4쉓癚O洙킋툈䶯_?ퟲ": null - } - ] - ]] - ]], - "꟱Ԕ㍤7曁聯ಃ錐V䷰?v㪃૦~K\"$%请|ꇹn\"k䫛㏨鲨\u2023䄢\u0004[︊VJ?䶟ាꮈ䗱=깘U빩": -4863152493797013264 - } - ]}]} - ] - }}} - ], - "쏷쐲۹퉃~aE唙a챑,9㮹gLHd'䔏|킗㍞䎥&KZYT맵7䥺Nⱳ同莞鿧w\\༌疣n/+ꎥU\"封랾○ퟙAJᭌ?9䛝$?驔9讐짘魡T֯c藳`虉C읇쐦T" - } - ], - "谶개gTR￐>ၵ͚dt晑䉇陏滺}9㉸P漄": -3350307268584339381 - }] - ] - ] - ]] - ] - ], - "0y꟭馋X뱔瑇:䌚￐廿jg-懲鸭䷭垤㒬茭u賚찶ಽ+\\mT땱\u20821殑㐄J쩩䭛ꬿNS潔*d\\X,壠뒦e殟%LxG9:摸": 3737064585881894882, - "풵O^-⧧ⅶvѪ8廸鉵㈉ר↝Q㿴뺟EႳvNM:磇>w/៻唎뷭୥!냹D䯙i뵱貁C#⼉NH6`柴ʗ#\\!2䂗Ⱨf?諳.P덈-返I꘶6?8ꐘ": -8934657287877777844, - "溎-蘍寃i诖ര\"汵\"\ftl,?d⼡쾪⺋h匱[,෩I8MҧF{k瓿PA'橸ꩯ綷퉲翓": null - } - ] - ], - "ោ係؁<元": 1.7926963090826924E-18 - }}] - } - ] - ]]}] - }] - ] - ] - ] - ], - "ጩV<\"ڸsOᤘ": 2.0527167903723048E-19 - }] - ]} - ] - ]], - "∳㙰3젴p᧗䱙?`yZA8Ez0,^ᙛ4_0븢\u001ft:~䎼s.bb룦明yNP8弆C偯;⪾짍'蕴뮛": -6976654157771105701, - "큵ꦀ\\㇑:nv+뒤燻䀪ﴣ﷍9ᚈ኷K㚊誦撪䚛,ꮪxሲ쳊\u0005HSf?asg昱dqꬌVꙇ㼺'k*'㈈": -5.937042203633044E-20 - } - ] - }], - "?}\u20e0],s嶳菋@#2u쒴sQS䩗=ꥮ;烌,|ꘔ䘆": "ᅩ영N璠kZ먕眻?2ቲ芋眑D륟渂⸑ﴃIRE]啗`K'" - }}, - "쨀jmV賂ﰊ姐䂦玞㬙ᏪM᪟Վ씜~`uOn*ॠ8\u000ef6??\\@/?9見d筜ﳋB|S䝬葫㽁o": true - }, - "즛ꄤ酳艚␂㺘봿㎨iG৕ࡿ?1\"䘓您\u001fSኝ⺿溏zៀ뻤B\u0019?윐a䳵᭱䉺膷d:<\/": 3935553551038864272 - } - ] - ]} - ]] - ]] - ]} - } - ] - } - ]]}}, - "᥺3h↛!ꋰy\"攜(ெl䪕oUkc1A㘞ᡲ촾ᣫ<\/䒌E㛝潨i{v?W౾H\\RჅpz蝬R脾;v:碽✘↯삞鷱o㸧瑠jcmK7㶧뾥찲n": true, - "ⶸ?x䊺⬝-䰅≁!e쩆2ꎿ准G踌XXᩯ1߁}0?.헀Z馟;稄\baDꟹ{-寪⚈ꉷ鮸_L7ƽᾚ<\u001bጨA䧆송뇵⨔\\礍뗔d设룱㶉cq{HyぱR㥽吢ſtp": -7985372423148569301, - "緫#콮IB6<\/=5Eh礹\t8럭@饹韠r㰛斣$甝LV췐a갵'请o0g:^": "䔨(.", - "띳℡圤pン௄ĝ倧訜B쁟G䙔\"Sb⓮;$$▏S1J뢙SF|赡g*\"Vu䲌y": "䪈&틐),\\kT鬜1풥;뷴'Zေ䩹@J鞽NぼM?坥eWb6榀ƩZڮ淽⺞삳煳xჿ絯8eⶍ羷V}ჿ쎱䄫R뱃9Z>'\u20f1ⓕ䏜齮" - } - ] - ]]] - }} - } - ] - ]}, - "펮b.h粔폯2npX詫g錰鷇㇒<쐙S値bBi@?镬矉`剔}c2壧ଭfhY깨R()痩⺃a\\⍔?M&ﯟ<劜꺄멊ᄟA\"_=": null - }, - "~潹Rqn榢㆓aR鬨侅?䜑亡V_翅㭔(䓷w劸ၳDp䀅<\/ﰎ鶊m䵱팱긽ꆘ긓准D3掱;o:_ќ)껚콥8곤d矦8nP倥ꃸI": null, - "뾎/Q㣩㫸벯➡㠦◕挮a鶧⋓偼\u00001뱓fm覞n?㛅\"": 2.8515592202045408E17 - }], - ",": -5426918750465854828, - "2櫫@0柡g䢻/gꆑ6演&D稒肩Y?艘/놘p{f투`飷ᒉ챻돎<늛䘍ﴡ줰쫄": false, - "8(鸑嵀⵹ퟡ<9㣎Tߗ┘d슒ل蘯&㠦뮮eࠍk砝g 엻": false, - "d-\u208b?0ﳮ嵙'(J`蔿d^踅⤔榥\\J⵲v7": 6.8002426206715341E17, - "ཎ耰큓ꐕ㱷\u0013y=詽I\"盈xm{0쾽倻䉚ષso#鰑/8㸴짯%ꀄ떸b츟*\\鲷礬ZQ兩?np㋄椂榨kc᡹醅3": false, - "싊j20": false - }]] - ]], - "俛\u0017n緽Tu뫉蜍鼟烬.ꭠIⰓ\"Ἀ᜾uC쎆J@古%ꛍm뻨ᾀ画蛐휃T:錖㑸ዚ9죡$": true - } - ] - ], - "㍵⇘ꦖ辈s}㱮慀밒s`\"㞟j:`i픻Z섫^諎0Ok{켿歁෣胰a2﨤[탳뚬쎼嫭뉮m": 409440660915023105, - "w墄#*ᢄ峠밮jLa`ㆪ꺊漓Lで끎!Agk'ꁛ뢃㯐岬D#㒦": false, - "ଦPGI䕺L몥罭ꃑ궩﮶#⮈ᢓӢ䚬p7웼臧%~S菠␌힀6&t䳙y㪘냏\\*;鉏ᅧ鿵'嗕pa\"oL쇿꬈Cg": "㶽1灸D⟸䴅ᆤ뉎﷛渤csx 䝔цꬃ锚捬?ຽ+x~꘩uI࡞\u0007栲5呚ẓem?袝\")=㥴䨃pac!/揎Y", - "ᷱo\\||뎂몷r篙|#X䦜I#딌媸픕叞RD斳X4t⯩夬=[뭲r=绥jh뷱츝⪘%]⚋܈㖴スH텹m(WO曝劉0~K3c柢Ր㏉着逳~": false, - "煽_qb[첑\\륌wE❽ZtCNﭝ+餌ᕜOꛭ": "{ﳾ쉌&s惧ᭁⵆ3䢫;䨞팑꒪흘褀࢖Q䠿V5뭀䎂澻%받u5텸oA⮥U㎦;B䳌wz䕙$ឿ\\௅婺돵⪾퐆\\`Kyौꋟ._\u0006L챯l뇠Hi䧈偒5", - "艊佁ࣃ롇䱠爬!*;⨣捎慓q靓|儑ᨋL+迥=6㒺딉6弄3辅J-㕎뛄듘SG㆛(\noAzQꝱ䰩X*ぢO퀌%펠낌mo틮a^<\/F&_눊ᾉ㨦ы4\"8H": 2974648459619059400, - "鬙@뎣䫳ၮ끡?){y?5K;TA*k溱䫜J汃ꂯ싔썍\u001dA}룖(<\/^,": false, - "몏@QꋦFꊩᒐ뎶lXl垨4^郣|ꮇ;䝴ᝓ}쵲z珖": null - } - ]]]], - ":_=닧弗D䙋暨鏛. 㱻붘䂍J儒&ZK/녩䪜r囁⽯D喠죥7⹌䪥c\u001a\u2076￞妈朹oLk菮F౟覛쐧㮏7T;}蛙2{9\"崓bB<\/⡷룀;즮鿹)丒툃୤뷠5W⊢嶜(fb뭳갣": "E{响1WM" - }}, - "䘨tjJ驳豨?y輊M*᳑梵瞻઻ofQG瑮e": 2.222802939724948E-19, - "䮴=❑➶T෋w䞜\"垦ꃼUt\u001dx;B$뵣䙶E↌艣ᡥ!᧟;䱀[䔯k쬃`੍8饙른熏'2_'袻tGf蒭J땟as꯳╖&啒zWࡇᒫYSᏬ\u0014ℑ첥鈤|cG~Pᓮ\">\"": "ႆl\f7V儊㦬nHꄬꨧC{쐢~C⮃⛓嶦vꄎ1w鰠嘩뿠魄&\"_qMⵖ釔녮ꝇ 㝚{糍J哋 cv?-jkﻯྌ鹑L舟r", - "龧葆yB✱H盋夔ﶉ?n*0(": "ꧣኆ㢓氥qZZ酒ຜ)鮢樛)X䣆gTSґG텞k.J圬疝롫쯭z L:\\ྤ@w炋塜쿖ᾳy뢀䶃뱝N䥨㚔勇겁#p", - "도畎Q娡\"@S/뼋:䵏!P衅촚fVHQs✜ᐫi㻑殡B䜇%믚k*U#濨낄~": "ꍟዕ쳸ꍈ敋&l妏\u0005憡멗瘌uPgᅪm<\/To쯬锩h뒓k" - } - ] - }], - "墥홞r绚<\/⸹ⰃB}<躅\\Y;๑@䔸>韫䜲뱀X뗩鿥쩗SI%ﴞ㳕䛇?<\/\u00018x\\&侂9鋙a[LR㋭W胕)⡿8㞙0JF,}?허d1cDMᐃ␛鄝ⱕ%X)!XQ": "ⳍꗳ=橇a;3t⦾꼑仈ူaᚯ⯋ꕃAs鴷N⍕_䎃ꙎAz\u0016䯷\\<࿫>8q{}キ?ᣰ}'0ᴕ펓B┦lF#趤厃T?㕊#撹圂䆲" - }, - "܋닐龫論c웑": false, - "ㇿ/q\"6-co髨휝C큦#\u001b4~?3䐹E삇<<": 7.600917488140322E-20, - "䁝E6?㣖ꃁ间t祗*鑠{ḣV(浾h逇큞=W?ૉ?nꇽ8ꅉຉj으쮺@Ꚅ㰤u]Oyr": "v≁᫸_*όAඤԆl)ۓᦇQ}폠z༏q滚", - "ソ᥊/넺I": true - }]] - ] - ] - ] - ]] - }, - "䭑Ik攑\u0002QV烄:芩.麑㟴㘨≕": true, - "坄꿕C쇻풉~崍%碼\\8\"䬦꣙": null, - "欌L圬䅘Y8c(♺2?ON}o椳s宥2䉀eJ%闹r冁O^K諭%凞⺉⡻,掜?$ꥉ?略焕찳㯊艼誜4?\"﯎<゛XፈINT:詓 +": -1.0750456770694562E-19, - "獒àc뜭싼ﺳ뎤K`]p隨LtE": null, - "甙8䵊神EIꩤ鐯ᢀ,ﵮU䝑u疒ử驺䚿≚ഋ梶秓F`覤譐#짾蔀묊4<媍쬦靪_Yzgcࡶ4k紥`kc[Lﮗ簐*I瀑[⾰L殽鑥_mGȠ<\/|囹灠g桰iri": true, - "챓ꖙꟻ좝菇ou,嗠0\\jK핻뜠qwQ?ഩ㼕3Y彦b\u009bJ榶N棨f?됦鏖綃6鳵M[OE봨u햏.Ꮁ癜蟳뽲ꩌ뻾rM豈R嗀羫 uDꎚ%": null - }, - "V傜2<": 7175127699521359521 - }], - "铫aG切<\/\"ী⊆e<^g࢛)D顝nאַ饼\u008c猪繩嵿ﱚCꡬ㻊g엺A엦\u000f暿_f꿤볝㦕桦`蒦䎔j甬%岝rj 糏": "䚢偎눴Au<4箞7礦Iﱔ坠eȧ䪸u䵁p|逹$嗫쨘ꖾ﷐!胠z寓팢^㨔|u8Nሇe텔ꅦ抷]،鹎㳁#༔繁 ", - "낂乕ꃻ볨ϱ-ꇋ㖍fs⿫)zꜦ/K?솞♞ꑌ宭hJ᤭瑥Fu": false, - "쟰ぜ魛G\u0003u?`㾕ℾ㣭5螠烶這趩ꖢ:@咕ꐶx뒘느m䰨b痃렐0鳊喵熬딃$摉_~7*ⱦ녯1錾GKhJ惎秴6'H妈Tᧅ窹㺒疄矤铟wላ": null, - "쯆q4!3錕㲏ⵆ㇛꘷Z瑩뭆\\◪NH\u001d\\㽰U~㯶<\"쑣낞3ᵤ'峉eꢬ;鬹o꣒木X*長PXᘱu\"䠹n惞": null, - "ᅸ祊\"&ꥴCjࢼ﴿?䡉`U效5殼㮞V昽ꏪ#ﺸ\\&t6x꠹盥꣰a[\u001aꪍSpe鎿蠹": -1.1564713893659811E-19 - } - ]] - ] - ] - ], - "羵䥳H,6ⱎ겾|@t\"#햊1|稃 섭)띜=뻔ꡜ???櫎~*ῡ꫌/繣ﻠq": null - } - ]} - ]}, - "츤": false - }}, - "s": 3.7339341963399598E18 - } - ], - "N,I?1+㢓|ࣱ嶃쩥V2\u0012(4EE虪朶$|w颇v步": "~읢~_,Mzr㐫YB溓E淚\"ⅹ䈔ᏺ抙 b,nt5V㐒J檶ꏨ⻔?", - "Q껑ꡡ}$넎qH煔惍/ez^!ẳF댙䝌馻剁8": "梲;yt钰$i冄}AL%a j뜐奷걳뚾d꿽*ሬuDY3?뮟鼯뮟w㍪틱V", - "o{Q/K O胟㍏zUdꀐm&⨺J舕⾏魸訟㌥[T籨櫉唐킝 aṭ뱫촙莛>碶覆⧬짙쭰ׯdAiH໥벤퐥_恸[ 0e:죃TC弼荎뵁DA:w唵ꣁ": null, - "὏樎䵮軧|?౗aWH쩃1 ꅭsu": null - } - ] - }, - "勂\\&m鰈J釮=Ⲽ鳋+䂡郑": null, - "殣b綊倶5㥗惢⳷萢ᑀ䬄镧M^ﱴ3⣢翣n櫻1㨵}ኯ뗙顖Z.Q➷ꮨ뗇\u0004": "ꔙ䁼>n^[GीA䨟AM琢ᒊS쨲w?d㶣젊嘶纝麓+愣a%気ྞSc됓ᔘ:8bM7Xd8㶑臌]Ꙥ0ꐭ쒙䫣挵C薽Dfⵃ떼᷸", - "?紡.셪_෨j\u0013Ox┠$Xᶨ-ᅇo薹-}軫;y毝㪜K㣁?.EV쮱4둽⛻䤜'2盡\u001f60(|e쐰㼎ᦀ㒧-$l@ﻑ坳\u0003䭱响巗WFo5c㧆T턁Y맸♤(": -2.50917882560589088E17 - }} - ], - "侸\\릩.᳠뎠狣살cs项䭩畳H1s瀉븇19?.w骴崖㤊h痠볭㞳㞳䁮Ql怠㦵": "@䟴-=7f", - "鹟1x௢+d ;vi䭴FSDS\u0004hꎹ㚍?⒍⦏ў6u,扩@됷Su)Pag휛TᒗV痩!瞏釀ꖞ蘥&ೞ蘐ꭰꞇᝎ": "ah懱Ժ&\u20f7䵅♎඀䞧鿪굛ౕ湚粎蚵ᯋ幌YOE)५襦㊝Y*^\"R+ඈ咷蝶9ꥂ榨艦멎헦閝돶v좛咊E)K㓷ྭr", - "搆q쮦4綱켙셁.f4<\/g<籽늷?#蚴픘:fF\u00051㹉뀭.ᰖ풎f֦Hv蔎㧤.!䭽=鞽]음H:?\"-4": 8.740133984938656E-20 - }]} - } - ], - "tVKn딩꘥⊾蹓᤹{\u0003lR꼽ᄲQFᅏ傅ﱋ猢⤊ᔁ,E㓒秤nTතv`♛I\u0000]꫔ṞD\"麵c踝杰X&濿또꣹깳౥葂鿎\\aꡨ?": 3900062609292104525 - } - ], - "ਉ샒⊩Lu@S䧰^g": -1.1487677090371648E18, - "⎢k⑊꬗yᏫ7^err糎Dt\u000bJ礯확ㆍ沑サꋽe赔㝢^J\u0004笲㿋idra剰-᪉C錇/Ĝ䂾ညS지?~콮gR敉⬹'䧭": 1901472137232418266, - "灗k䶥:?촽贍쓉꓈㒸g獘[뵎\\胕?\u0014_榙p.j稶,$`糉妋0>Fᡰly㘽$?": "]ꙛO赎&#㠃돱剳\"<◆>0誉齐_|z|裵씪>ᐌ㼍\"Z[琕}O?G뚇諦cs⠜撺5cu痑U圲\u001c?鴴計l춥/╓哼䄗茏ꮅ뫈댽A돌롖뤫V窗讬sHd&\nOi;_u" - } - ], - "Uﺗ\\Y\\梷䄬~\u0002": null, - "k\"Y磓ᗔ휎@U冈<\/w컑)[": false, - "曏J蝷⌻덦\u001f㙳s꥓⍟邫P늮쥄c∬ྡྷ舆렮칤Z趣5콡넛A쳨\\뀙骫(棻.*&輛LiIfi{@EA婳KᬰTXT": -4.3088230431977587E17 - }]} - ] - ], - "곃㲧<\/dఓꂟs其ࡧ&N葶=?c㠤Ჴ'횠숄臼#\u001a~": false - } - ] - ]}] - }] - }} - ], - "2f`⽰E쵟>J笂裭!〛觬囀ۺ쟰#桊l鹛ⲋ|RA_Vx፭gE됓h﵀mfỐ|?juTU档[d⢼⺻p濚7E峿": 5613688852456817133 - }, - "濘끶g忮7㏵殬W팕Q曁 뫰)惃廊5%-蹚zYZ樭ﴷQ锘쯤崫gg": true, - "絥ᇑ⦏쒓븣爚H.㗊߄o蘵貆ꂚ(쎔O᥉ﮓ]姨Wꁓ!RMA|o퉢THx轮7M껁U즨'i뾘舯o": "跥f꜃?" - }} - ], - "鷰鹮K-9k;ﰰ?_ݦѷ-ꅣ䩨Zꥱ\"mꠟ屎/콑Y╘2&鸞脇㏢ꀇ࠺ⰼ拾喭틮L꽩bt俸墶 [l/웄\"꾦\u20d3iও-&+\u000fQ+໱뵞": -1.296494662286671E-19 - }, - "HX੹/⨇୕붷Uﮘ旧\\쾜͔3l鄈磣糂̖䟎Eᐳw橖b῀_딕hu葰窳闹вU颵|染H죶.fP䗮:j䫢\\b뎖i燕ꜚG⮠W-≚뉗l趕": "ଊ칭Oa᡺$IV㷧L\u0019脴셀붿餲햪$迳向쐯켂PqfT\" ?I屉鴼쿕@硙z^鏕㊵M}㚛T젣쓌-W⩐-g%⺵<뮱~빅╴瑿浂脬\u0005왦燲4Ⴭb|D堧 <\/oEQh", - "䘶#㥘੐캔f巋ἡAJ䢚쭈ࣨ뫒*mᇊK,ࣺAꑱ\u000bR<\/A\"1a6鵌㯀bh곿w(\"$ꘁ*rಐ趣.d࿩k/抶면䒎9W⊃9": "漩b挋Sw藎\u0000", - "畀e㨼mK꙼HglKb,\"'䤜": null - }]}] - ] - ] - }] - ]} - ] - ]} - ], - "歙>駿ꣂ숰Q`J΋方樛(d鱾뼣(뫖턭\u20f9lচ9歌8o]8윶l얶?镖G摄탗6폋폵+g:䱫홊<멀뀿/س|ꭺs걐跶稚W々c㫣⎖": "㣮蔊깚Cꓔ舊|XRf遻㆚︆'쾉췝\\&言", - "殭\"cށɨꝙ䞘:嬮e潽Y펪㳅/\"O@ࠗ겴]췖YǞ(t>R\"N?梳LD恭=n氯T豰2R諸#N}*灧4}㶊G䍣b얚": null, - "襞<\/啧 B|싞W瓇)6簭鼡艆lN쩝`|펭佡\\間邝[z릶&쭟愱ꅅ\\T᰽1鯯偐栈4̸s윜R7⒝/똽?치X": "⏊躖Cﱰ2Qẫ脐&இ?%냝悊", - ",鰧偵셣싹xᎹ힨᯳EṬH㹖9": -4604276727380542356 - } - } - ]]]], - "웺㚑xs}q䭵䪠馯8?LB犯zK'os䚛HZ\"L?셎s^㿧㴘Cv2": null - }] - ] - ] - ], - "Kd2Kv+|z": 7367845130646124107, - "ᦂⶨ?ᝢ 祂些ഷ牢㋇操\"腭䙾㖪\\(y4cE뽺ㆷ쫺ᔖ%zfۻ$ў1柦,㶢9r漢": -3.133230960444846E-20, - "琘M焀q%㢟f鸯O⣏蓑맕鯊$O噷|)z褫^㢦⠮ꚯ꫞`毕1qꢚ{ĭ䎀বώT\"뱘3G൴?^^of": null - } - ], - "a8V᯺?:ﺃ/8ꉿBq|9啓댚;*i2": null, - "cpT瀇H珰Ừpೃi鎪Rr␣숬-鹸ҩ䠚z脚цGoN8入y%趌I┽2ឪЀiJNcN)槣/▟6S숆牟\"箑X僛G殱娇葱T%杻:J諹昰qV쨰": 8331037591040855245 - }], - "G5ᩜ䄗巢껳": true - } - }, - "Ồ巢ゕ@_譙A`碫鄐㡥砄㠓(^K": "?܃B혢▦@犑ὺD~T⧁|醁;o=J牌9냚⢽㨘{4觍蚔9#$∺\u0016p囅\\3Xk阖⪚\"UzA穕롬✎➁㭒춺C㣌ဉ\"2瓑员ᅽꝶ뫍}꽚ꞇ鶂舟彺]ꍽJC蝧銉", - "␆Ě膝\"b-퉐ACR言J謈53~V튥x䜢?ꃽɄY뮩ꚜ": "K/↾e萃}]Bs⾿q룅鷦-膋?m+死^魊镲6", - "粡霦c枋AHퟁo礼Ke?qWcA趸㡔ꂏ?\u000e춂8iতᦜ婪\u0015㢼nﵿꍻ!ᐴ関\u001d5j㨻gfῩUK5Ju丝tかTI'?㓏t>⼟o a>i}ᰗ;뤕ܝ": false, - "ꄮ匴껢ꂰ涽+䜨B蛹H䛓-k蕞fu7kL谖,'涃V~챳逋穞cT\"vQ쓕ObaCRQ㓡Ⲯ?轭⫦輢墳?vA餽=h䮇킵n폲퉅喙?\"'1疬V嬗Qd灗'Lự": "6v!s믁㭟㣯獃!磸餠ቂh0C뿯봗F鷭gꖶ~コkK<ᦈTt\\跓w㭣횋钘ᆹ듡䑚W䟾X'ꅔ4FL勉Vܴ邨y)2'〚쭉⽵-鞣E,Q.?块", - "?(˧쩯@崟吋歄K": null - }, - "Gc럃녧>?2DYI鴿\\륨)澔0ᔬlx'觔7젘⤡縷螩%Sv׫묈/]↱&S h\u0006歋ᑛxi̘}ひY蔯_醨鯘煑橾8?䵎쨋z儬ꁏ*@츾:": null - } - } - } - ] - ] - ]} - }, - "HO츧G": 3.694949578823609E17, - "QC\u0012(翻曇Tf㷟bGBJ옉53\\嚇ᛎD/\u001b夾၉4\"핀@祎)쫆yD\"i먎Vn㿿V1W᨝䶀": -6150931500380982286, - "Z㓮P翸鍱鉼K䋞꘺튿⭁Y": -7704503411315138850, - "]모开ꬖP븣c霤<[3aΠ\"黁䖖䰑뮋ꤦ秽∼㑷冹T+YUt\"싳F↭䖏&鋌": -2.7231911483181824E18, - "tꎖ": -4.9517948741799555E-19, - "䋘즊.⬅IꬃۣQ챢ꄑ黐|f?C⾺|兕읯sC鬸섾整腨솷V": "旆柩l쪦sᖸMy㦅울썉瘗㎜檵9ꍂ駓ૉᚿ/u3씅徐拉[Z䞸ࡗ1ꆱ&Q풘?ǂ8\u0011BCDY2볨;鸏": null, - "幫 n煥s쁇펇 왊-$C\"衝:\u0014㣯舼.3뙗Yl⋇\"K迎멎[꽵s}9鉳UK8쐥\"掄㹖h㙈!얄સ?Ꜳ봺R伕UTD媚I䜘W鏨蔮": -4.150842714188901E-17, - "ﺯ^㄄\b죵@fྉkf颡팋Ꞧ{/Pm0V둳⻿/落韒ꊔᚬ@5螺G\\咸a谆⊪ቧ慷绖?财(鷇u錝F=r၍橢ឳn:^iᴵtD볠覅N赴": null - }] - }] - } - ] - ]} - ]}, - "謯?w厓奰T李헗聝ឍ貖o⪇弒L!캶$ᆅ": -4299324168507841322, - "뺊奉_垐浸延몏孄Z舰2i$q붿좾껇d▵餏\"v暜Ҭ섁m￴g>": -1.60911932510533427E18 - } - ] - } - ] - ]], - "퉝꺔㠦楶Pꅱ": 7517896876489142899, - "": false - } - ]}, - "是u&I狻餼|谖j\"7c됮sסּ-踳鉷`䣷쉄_A艣鳞凃*m⯾☦椿q㎭N溔铉tlㆈ^": 1.93547720203604352E18, - "kⲨ\\%vr#\u000bⒺY\\t<\/3﬌R訤='﹠8蝤Ꞵ렴曔r": false - } - ]}, - "阨{c?C\u001d~K?鎌Ԭ8烫#뙣P초遗t㭱E­돒䆺}甗[R*1!\\~h㕅᰺@<9JꏏષI䳖栭6綘걹ᅩM\"▯是∔v鬽顭⋊譬": "운ﶁK敂(欖C취پ℄爦賾" - } - }} - }], - "鷨赼鸙+\\䭣t圙ڹx᜾ČN<\/踘\"S_맶a鷺漇T彚⎲i㈥LT-xA캔$\u001cUH=a0츺l릦": "溣㣂0濕=鉵氬駘>Pꌢpb솇쬤h힊줎獪㪬CrQ矠a&脍꼬爼M茴/΅\u0017弝轼y#Ꞡc6둴=?R崏뷠麖w?" - }, - "閕ᘜ]CT)䵞l9z'xZF{:ؐI/躅匽졁:䟇AGF૸\u001cퟗ9)駬慟ꡒꆒRS״툋A<>\u0010\"ꂔ炃7g덚E৏bꅰ輤]o㱏_뷕ܘ暂\"u": "芢+U^+㢩^鱆8*1鈶鮀\u0002뺰9⬳ꪮlL䃣괟,G8\u20a8DF㉪錖0ㄤ瓶8Nଷd?眡GLc陓\\_죌V쁰ल二?c띦捱 \u0019JC\u0011b⤉zẒT볕\"绣蘨뚋cꡉkI\u001e鳴", - "ꃣI'{6u^㡃#཰Kq4逹y൒䧠䵮!㱙/n??{L풓ZET㙠퍿X2᩟綳跠葿㚙w཮x캽扳B唕S|尾}촕%N?o䪨": null, - "ⰴFjෟ셈[\u0018辷px?椯\\1<ﲻ栘ᣁ봢憠뉴p": -5263694954586507640 - } - ] - ]] - ]} - ]}] - ] - ], - "?#癘82禩鋆ꊝty?&": -1.9419029518535086E-19 - } - ] - ] - ]} - ] - ] - ], - "훊榲.|῕戄&.㚏Zꛦ2\"䢥ሆ⤢fV_摕婔?≍Fji冀탆꜕i㏬_ẑKᅢ꫄蔻XWc|饡Siẘ^㲦?羡2ぴ1縁ᙅ?쐉Ou": false - }]] - ]}}}, - "慂뗄卓蓔ᐓ匐嚖/颹蘯/翻ㆼL?뇊,텵<\\獷ごCボ": null - }, - "p溉ᑟi짣z:䒤棇r^٫%G9缑r砌롧.물农g?0׼ሩ4ƸO㣥㯄쩞ጩ": null, - "껎繥YxK\"F젷쨹뤤1wq轫o?鱑뜀瘊?뎃h灑\\ꛣ}K峐^ኖ⤐林ꉓhy": null - } - ], - "᱀n肓ㄛ\"堻2>m殮'1橌%Ꞵ군=Ӳ鯨9耛<\/n據0u彘8㬇៩f᏿诙]嚊": "䋯쪦S럶匏ㅛ#)O`ሀX_鐪渲⛀㨻宅闩➈ꢙஶDR⪍" - }, - "tA썓龇 ⋥bj왎录r땽✒롰;羋^\\?툳*┎?썀ma䵳넅U䳆૘〹䆀LQ0\b疀U~u$M}(鵸g⳾i抦뛹?䤈땚검.鹆?ꩡtⶥGĒ;!ቹHS峻B츪켏f5≺": 2366175040075384032, - "전pJjleb]ួ": -7.5418493141528422E18, - "n.鎖ጲ\n?,$䪘": true - }, - "欈Ar㉣螵᪚茩?O)": null - }, - "쫸M#x}D秱欐K=侫们丐.KꕾxẠ\u001e㿯䣛F܍캗qq8꟞ṢFD훎⵳簕꭛^鳜\u205c٫~⑟~冫ऊ2쫰<\/戲윱o<\"": true - }, - "㷝聥/T뱂\u0010锕|内䞇x侁≦㭖:M?iM᣿IJe煜dG࣯尃⚩gPt*辂.{磼럾䝪@a\\袛?}ᓺB珼": true - } - } - ]]}]}}, - "tn\"6ꫤ샾䄄;銞^%VBPwu묪`Y僑N.↺Ws?3C⤻9唩S䠮ᐴm;sᇷ냞඘B/;툥B?lB∤)G+O9m裢0kC햪䪤": -4.5941249382502277E18, - "ᚔt'\\愫?鵀@\\びꂕP큠<<]煹G-b!S?\nꖽ鼫,ݛ&頺y踦?E揆릱H}햧캡b@手.p탻>췽㣬ꒅ`qe佭P>ᓂ&?u}毚ᜉ蟶頳졪ᎏzl2wO": -2.53561440423275936E17 - }]} - } - ] - ]], - "潈촒⿂叡": 5495738871964062986 - } - ]] - } - ] - ]} - ]] - ]] - ]} - ] - ]}, - "ႁq킍蓅R`謈蟐ᦏ儂槐僻ﹶ9婌櫞釈~\"%匹躾ɢ뤥>࢟瀴愅?殕节/냔O✬H鲽엢?ᮈੁ⋧d␽㫐zCe*": 2.15062231586689536E17, - "㶵Ui曚珰鋪ᾼ臧P{䍏䷪쨑̟A뼿T渠誈䏚D1!잶<\/㡍7?)2l≣穷᛾稝{:;㡹nemיּ訊`G": null, - "䀕\"飕辭p圁f#뫆䶷뛮;⛴ᩍ3灚덏ᰝ쎓⦷詵%᜖Մfs⇫(\u001e~P|ﭗCⲾផv湟W첋(텪બT<บSꏉ੗⋲X婵i ӵ⇮?L䬇|ꈏ?졸": 1.548341247351782E-19 - } - ] - }, - "t;:N\u0015q鐦Rt缆{ꮐC?஛㷱敪\\+鲊㉫㓪몗릙竏(氵kYS": "XᰂT?൮ô", - "碕飦幑|+ 㚦鏶`镥ꁩ B<\/加륙": -4314053432419755959, - "秌孳(p!G?V傫%8ሽ8w;5鲗㦙LI檸\u2098": "zG N볞䆭鎍흘\\ONK3횙<\/樚立圌Q튅k쩎Ff쁋aׂJK銆ઘ즐狩6༥✙䩜篥CzP(聻駇HHퟲ讃%,ά{렍p而刲vy䦅ክ^톺M楒鍢㹳]Mdg2>䤉洞", - "踛M젧>忔芿㌜Zk": 2215369545966507819, - "씐A`$槭頰퍻^U覒\bG毲aᣴU;8!팲f꜇E⸃_卵{嫏羃X쀳C7뗮m(嚼u N܁谟D劯9]#": true, - "ﻩ!뵸-筚P᭛}ἰ履lPh?౮ⶹꆛ穉뎃g萑㑓溢CX뾇G㖬A錟]RKaꄘ]Yo+@䘁's섎襠$^홰}F": null - }, - "粘ꪒ4HXᕘ蹵.$區\r\u001d묁77pPc^y笲Q<\/ꖶ 訍䃍ᨕG?*": 1.73773035935040224E17 - }, - "婅拳?bkU;#D矠❴vVN쩆t㜷A풃갮娪a%鮏絪3dAv룒#tm쑬⌛qYwc4|L8KZ;xU⓭㳔밆拓EZ7襨eD|隰ऌ䧼u9Ԣ+]贴P荿": 2.9628516456987075E18 - }]}}] - ]} - }} - ]}] - ], - "|g翉F*湹̶\u0005⏐1脉̀eI쩓ᖂ㫱0碞l䴨ꑅ㵽7AtἈ턧yq䳥塑:z:遀ᄐX눔擉)`N3昛oQ셖y-ڨ⾶恢ꈵq^<\/": null, - "菹\\랓G^璬x৴뭸ゆUS겧﮷Bꮤ ┉銜᯻0%N7}~f洋坄Xꔼ<\/4妟Vꄟ9:౟곡t킅冩䧉笭裟炂4봋ⱳ叺怊t+怯涗\"0㖈Hq": false, - "졬믟'ﺇফ圪쓬멤m邸QLব䗁愍4jvs翙 ྍ꧀艳H-|": null, - "컮襱⣱뗠 R毪/鹙꾀%헳8&": -5770986448525107020 - } - ], - "B䔚bꐻ뙏姓展槰T-똌鷺tc灿᫽^㓟䏀o3o$꘭趙萬I顩)뇭Ἑ䓝\f@{ᣨ`x3蔛": null - } - ] - ] - }], - "⦖扚vWꃱ꥙㾠壢輓{-⎳鹷贏璿䜑bG倛⋐磎c皇皩7a~ﳫU╣Q࠭ꎉS摅姽OW.홌ೞ.": null, - "蚪eVlH献r}ᮏ믠ﰩꔄ@瑄ⲱ": null, - "퀭$JWoꩢg역쁍䖔㑺h&ୢtXX愰㱇?㾫I_6 OaB瑈q裿": null, - "꽦ﲼLyr纛Zdu珍B絟쬴糔?㕂짹䏵e": "ḱ\u2009cX9멀i䶛簆㳀k" - } - ]]]], - "(_ꏮg່澮?ᩑyM<艷\u001aꪽ\\庼뙭Z맷㰩Vm\\lY筺]3㋲2㌩㄀Eਟ䝵⨄쐨ᔟgङHn鐖⤇놋瓇Q탚單oY\"♆臾jHᶈ征ቄ??uㇰA?#1侓": null - }, - "觓^~ሢ&iI띆g륎ḱ캀.ᓡꀮ胙鈉": 1.0664523593012836E-19, - "y詭Gbᔶऽs댁U:杜⤎ϲ쁗⮼D醄诿q뙰I#즧v蔎xHᵿt᡽[**?崮耖p缫쿃L菝,봬ꤦC쯵#=X1瞻@OZc鱗CQTx": null - } - ] - }}], - "剘紁\u0004\\Xn⊠6,တױ;嵣崇}讃iႽ)d1\\䔓": null - }, - "脨z\"{X,1u찜<'k&@?1}Yn$\u0015Rd輲ーa쮂굄+B$l": true, - "諳>*쭮괐䵟Ґ+<箁}빀䅱⡔檏臒hIH脟ꩪC핝ଗP좕\"0i<\/C褻D۞恗+^5?'ꂱ䚫^7}㡠cq6\\쨪ꔞꥢ?纖䫀氮蒫侲빦敶q{A煲G": -6880961710038544266 - }}] - }, - "5s⨲JvಽῶꭂᄢI.a৊": null, - "?1q꽏쿻ꛋDR%U娝>DgN乭G": -1.2105047302732358E-19 - } - ] - ]}, - "qZz`撋뙹둣j碇쁏\\ꆥ\u0018@藴疰Wz)O{F䶛l᷂绘訥$]뮍夻䢋䩇萿獰樧猵⣭j萶q)$꬚⵷0馢W:Ⱍ!Qoe": -1666634370862219540, - "t": "=wp|~碎Q鬳Ӎ\\l-<\/^ﳊhn퐖}䍔t碵ḛ혷?靻䊗", - "邙쇡㯇%#=,E4勃驆V繚q[Y댻XV㡸[逹ᰏ葢B@u=JS5?bLRn얮㍉⏅ﰳ?a6[&큟!藈": 1.2722786745736667E-19 - }, - "X블땨4{ph鵋ꉯ웸 5p簂䦭s_E徔濧d稝~No穔噕뽲)뉈c5M윅>⚋[岦䲟懷恁?鎐꓆ฬ爋獠䜔s{\u001bm鐚儸煛%bﯿXT>ꗘ@8G": 1157841540507770724, - "媤娪Q杸\u0011SAyᡈ쿯": true, - "灚^ಸ%걁<\/蛯?\"祴坓\\\\'흍": -3.4614808555942579E18, - "釴U:O湛㴑䀣렑縓\ta)(j:숾却䗌gCiB뽬Oyuq輥厁/7)?今hY︺Q": null - } - ] - ]]]}] - ], - "I笔趠Ph!<ཛྷ㸞诘X$畉F\u0005笷菟.Esr릙!W☆䲖뗷莾뒭U\"䀸犜Uo3Gꯌx4r蔇᡹㧪쨢準<䂀%ࡡꟼ瑍8炝Xs0䀝销?fi쥱ꆝલBB": -8571484181158525797, - "L⦁o#J|\"⽩-㱢d㌛8d\\㶤傩儻E[Y熯)r噤὘勇 }": "e(濨쓌K䧚僒㘍蠤Vᛸ\"络QJL2,嬓왍伢㋒䴿考澰@(㏾`kX$끑эE斡,蜍&~y", - "vj.|统圪ᵮPL?2oŶ`밧\"勃+0ue%⿥绬췈체$6:qa렐Q;~晘3㙘鹑": true, - "ශؙ4獄⶿c︋i⚅:ん閝Ⳙ苆籦kw{䙞셕pC췃ꍬ␜꟯ꚓ酄b힝hwk꭭M鬋8B耳쑘WQ\\偙ac'唀x᪌\u2048*h짎#ፇ鮠뾏ឿ뀌": false, - "⎀jꄒ牺3Ⓝ컴~?親ꕽぼܓ喏瘘!@<튋㐌꿱⩦{a?Yv%⪧笯Uܱ栅E搚i뚬:ꄃx7䙳ꦋ&䓹vq☶I䁘ᾘ涜\\썉뺌Lr%Bc㍜3?ꝭ砿裞]": null, - "⭤뙓z(㡂%亳K䌽꫿AԾ岺㦦㼴輞낚Vꦴw냟鬓㹈뽈+o3譻K1잞": 2091209026076965894, - "ㇲ\t⋇轑ꠤ룫X긒\"zoY읇희wj梐쐑l侸`e%s": -9.9240075473576563E17, - "啸ꮑ㉰!ᚓ}銏": -4.0694813896301194E18, - ">]囋੽EK뇜>_ꀣ緳碖{쐐裔[<ನ\"䇅\"5L?#xTwv#罐\u0005래t应\\N?빗;": "v쮽瞭p뭃" - } - ]], - "斴槾?Z翁\"~慍弞ﻆ=꜡o5鐋dw\"?K蠡i샾ogDﲰ_C*⬟iㇷ4nય蟏[㟉U꽌娛苸 ঢ়操贻洞펻)쿗૊許X⨪VY츚Z䍾㶭~튃ᵦ<\/E臭tve猑x嚢": null, - "锡⛩<\/칥ꈙᬙ蝀&Ꚑ籬■865?_>L詏쿨䈌浿弥爫̫lj&zx<\/C쉾?覯n?": null, - "꾳鑤/꼩d=ᘈn挫ᑩ䰬ZC": "3錢爋6Ƹ䴗v⪿Wr益G韠[\u0010屗9쁡钁u?殢c䳀蓃樄욂NAq赟c튒瘁렶Aૡɚ捍" - } - ] - ] - ]} - ] - ] - }]]]}} - ]}], - "Ej䗳U<\/Q=灒샎䞦,堰頠@褙g_\u0003ꤾfⶽ?퇋!łB〙ד3CC䌴鈌U:뭔咎(Qો臃䡬荋BO7㢝䟸\"Yb": 2.36010731779814E-20, - "逸'0岔j\u000e눘먷翌C츊秦=ꭣ棭ှ;鳸=麱$XP⩉駚橄A\\좱⛌jqv䰞3Ь踌v㳆¹gT┌gvLB賖烡m?@E঳i": null - }, - "曺v찘ׁ?&绫O័": 9107241066550187880 - } - ] - ], - "(e屄\u0019昜훕琖b蓘ᬄ0/۲묇Z蘮ဏ⨏蛘胯뢃@㘉8ሪWᨮ⦬ᅳ䅴HI၇쨳z囕陻엣1赳o": true, - ",b刈Z,ၠ晐T솝ŕB⩆ou'퐼≃绗雗d譊": null, - "a唥KB\"ﳝ肕$u\n^⅄P䟼냉䞸⩪u윗瀱ꔨ#yşs꒬=1|ﲤ爢`t౐튼쳫_Az(Ṋ擬㦷좕耈6": 2099309172767331582, - "?㴸U<\/䢔ꯡ阽扆㐤q鐋?f㔫wM嬙-;UV죫嚔픞G&\"Cᗍ䪏풊Q": "VM7疹+陕枡툩窲}翡䖶8欞čsT뮐}璤:jﺋ鎴}HfA൝⧻Zd#Qu茅J髒皣Y-︴[?-~쉜v딏璮㹚䅊﩯<-#\u000e걀h\u0004u抱﵊㼃U<㱷⊱IC進" - }, - "숌dee節鏽邺p넱蹓+e罕U": true - } - ], - "b⧴룏??ᔠ3ぱ>%郿劃翐ꏬꠛW瞳᫏누躨狀ໄy੽\"ីuS=㨞馸k乆E": "トz݈^9R䬑<ﮛGRꨳ\u000fTT泠纷꽀MRᴱ纊:㠭볮?%N56%鈕1䗍䜁a䲗j陇=뿻偂衋࿘ᓸ?ᕵZ+<\/}H耢b䀁z^f$&㝒LkꢳI脚뙛u": 5.694374481577558E-20 - }] - } - ]], - "obj": {"key": "wrong value"}, - "퓲꽪m{㶩/뇿#⼢&᭙硞㪔E嚉c樱㬇1a綑᝖DḾ䝩": null - }, - "key": "6.908319653520691E8", - "z": { - "6U閆崬밺뀫颒myj츥휘:$薈mY햚#rz飏+玭V㭢뾿愴YꖚX亥ᮉ푊\u0006垡㐭룝\"厓ᔧḅ^Sqpv媫\"⤽걒\"˽Ἆ?ꇆ䬔未tv{DV鯀Tἆl凸g\\㈭ĭ즿UH㽤": null, - "b茤z\\.N": [[ - "ZL:ᅣዎ*Y|猫劁櫕荾Oj为1糕쪥泏S룂w࡛Ᏺ⸥蚙)", - { - "\"䬰ỐwD捾V`邀⠕VD㺝sH6[칑.:醥葹*뻵倻aD\"": true, - "e浱up蔽Cr෠JK軵xCʨ<뜡癙Y獩ケ齈X/螗唻?<蘡+뷄㩤쳖3偑犾&\\첊xz坍崦ݻ鍴\"嵥B3㰃詤豺嚼aqJ⑆∥韼@\u000b㢊\u0015L臯.샥": false, - "l?Ǩ喳e6㔡$M꼄I,(3᝝縢,䊀疅뉲B㴔傳䂴\u0088㮰钘ꜵ!ᅛ韽>": -5514085325291784739, - "o㮚?\"춛㵉<\/﬊ࠃ䃪䝣wp6ἀ䱄[s*S嬈貒pᛥ㰉'돀": [{ - "(QP윤懊FI<ꃣ『䕷[\"珒嶮?%Ḭ壍಻䇟0荤!藲끹bd浶tl\u2049#쯀@僞": {"i妾8홫": { - ",M맃䞛K5nAㆴVN㒊햬$n꩑&ꎝ椞阫?/ṏ세뉪1x쥼㻤㪙`\"$쟒薟B煌܀쨝ଢ଼2掳7㙟鴙X婢\u0002": "Vዉ菈᧷⦌kﮞఈnz*﷜FM\"荭7ꍀ-VR<\/';䁙E9$䩉\f @s?퍪o3^衴cඎ䧪aK鼟q䆨c{䳠5mᒲՙ蘹ᮩ": { - "F㲷JGo⯍P덵x뒳p䘧☔\"+ꨲ吿JfR㔹)4n紬G练Q፞!C|": true, - "p^㫮솎oc.೚A㤠??r\u000f)⾽⌲們M2.䴘䩳:⫭胃\\፾@Fᭌ\\K": false, - "蟌Tk愙潦伩": { - "a<\/@ᾛ慂侇瘎": -7271305752851720826, - "艓藬/>၄ṯ,XW~㲆w": {"E痧郶)㜓ha朗!N赻瞉駠uC\u20ad辠x퓮⣫P1ࠫLMMX'M刼唳됤": null, - "P쓫晥%k覛ዩIUᇸ滨:噐혲lMR5䋈V梗>%幽u頖\\)쟟": null, - "eg+昉~矠䧞难\b?gQ쭷筝\\eꮠNl{ಢ哭|]Mn銌╥zꖘzⱷ⭤ᮜ^": [ - -1.30142114406914976E17, - -1.7555215491128452E-19, - null, - "渾㨝ߏ牄귛r?돌?w[⚞ӻ~廩輫㼧/", - -4.5737191805302129E18, - null, - "xy࿑M[oc셒竓Ⓔx?뜓y䊦>-D켍(&&?XKkc꩖ﺸᏋ뵞K伕6ী)딀P朁yW揙?훻魢傎EG碸9類៌g踲C⟌aEX舲:z꒸许", - 3808159498143417627, - null, - {"m試\u20df1{G8&뚈h홯J<\/": { - "3ஸ厠zs#1K7:rᥞoꅔꯧ&띇鵼鞫6跜#赿5l'8{7㕳(b/j\"厢aq籀ꏚ\u0015厼稥": [ - -2226135764510113982, - true, - null, - { - "h%'맞S싅Hs&dl슾W0j鿏MםD놯L~S-㇡R쭬%": null, - "⟓咔謡칲\u0000孺ꛭx旑檉㶆?": null, - "恇I転;￸B2Y`z\\獓w,놏濐撐埵䂄)!䶢D=ഭ㴟jyY": { - "$ࡘt厛毣ൢI芁<겿骫⫦6tr惺a": [ - 6.385779736989334E-20, - false, - true, - true, - [ - -6.891946211462334E-19, - null, - { - "]-\\Ꟑ1/薓❧Ὂ\\l牑\u0007A郃)阜ᇒᓌ-塯`W峬G}SDb㬨Q臉⮻빌O鞟톴첂B㺱<ƈmu챑J㴹㷳픷Oㆩs": { - "\"◉B\"pᶉt骔J꩸ᄇᛐi╰栛K쉷㉯鐩!㈐n칍䟅難>盥y铿e୔蒏M貹ヅ8嘋퀯䉶ጥ㏢殊뻳\"絧╿ꉑ䠥?∃蓊{}㣣Gk긔H1哵峱": false, - "6.瀫cN䇮F㧺?\\椯=ڈT䘆4␘8qv": -3.5687501019676885E-19, - "Q?yऴr혴{஀䳘p惭f1ﹸ䅷䕋贲<ྃᄊ繲hq\\b|#QSTs1c-7(䵢\u2069匏絘ꯉ:l毴汞t戀oෟᵶ뮱፣-醇Jx䙬䐁햢0࣫ᡁgrㄛ": "\u0011_xM/蘇Chv;dhA5.嗀绱V爤ﰦi뵲M", - "⏑[\"ugoy^儣횎~U\\섯겜論l2jw஌yD腅̂\u0019": true, - "ⵯɇ䐲᫿࢚!㯢l샅笶戮1꣖0Xe": null, - "劅f넀識b宁焊E찓橵G!ʱ獓뭔雩괛": [{"p⹣켙[q>燣䍃㞽ᩲx:쓤삘7玑퇼0<\/q璂ᑁ[Z\\3䅵䧳\u0011㤧|妱緒C['췓Yꞟ3Z鳱雼P錻BU씧U`ᢶg蓱>.1ӧ譫'L_5V䏵Ц": [ - false, - false, - {"22䂍盥N霂얢躰e9⑩_뵜斌n@B}$괻Yᐱ@䧋V\"☒-諯cV돯ʠ": true, - "Ű螧ᔼ檍鍎땒딜qꄃH뜣<獧ूCY吓⸏>XQ㵡趌o끬k픀빯a(ܵ甏끆୯/6Nᪧ}搚ᆚ짌P牰泱鈷^d꣟#L삀\"㕹襻;k㸊\\f+": true, - "쎣\",|⫝̸阊x庿k잣v庅$鈏괎炔k쬪O_": [ - "잩AzZGz3v愠ꉈⵎ?㊱}S尳௏p\r2>췝IP䘈M)w|\u000eE", - -9222726055990423201, - null, - [ - false, - {"´킮'뮤쯽Wx讐V,6ᩪ1紲aႈ\u205czD": [ - -930994432421097536, - 3157232031581030121, - "l貚PY䃛5@䭄귻m㎮琸f": 1.0318894506812084E-19, - "࢜⩢Ш䧔1肽씮+༎ᣰ闺馺窃䕨8Mƶq腽xc(៯夐J5굄䕁Qj_훨/~価.䢵慯틠퇱豠㼇Qﵘ$DuSp(8Uญ<\/ಟ룴𥳐ݩ$": 8350772684161555590, - "ㆎQ䄾\u001bpᩭ${[諟^^骴᤮b^ㅥI┧T㉇⾞\"绦r䰂f矩'-7䡭桥Dz兔V9谶居㺍ᔊ䩯덲.\u001eL0ὅㅷ釣": [{ - "<쯬J卷^숞u࠯䌗艞R9닪g㐾볎a䂈歖意:%鐔|ﵤ|y}>;2,覂⶚啵tb*仛8乒㓶B࿠㯉戩oX 貘5V嗆렽낁߼4h䧛ꍺM空\\b꿋貼": 8478577078537189402, - "VD*|吝z~h譺aᯒ": { - "YI췢K<\/濳xNne玗rJo쾘3핰鴊\"↱AR:ࢷ\"9?\"臁說)?誚ꊏe)_D翾W?&F6J@뺾ꍰNZ醊Z쾈വH嶿?炫㷱鬰M겈᭨b,⻁鈵P䕡䀠८ⱄ홎鄣": { - "@?k2鶖㋮\"Oರ K㨇廪儲\u0017䍾J?);\b*묀㗠섳햭1MC V": null, - "UIICP!BUA`ᢈ㋸~袩㗪⾒=fB﮴l1ꡛ죘R辂여ҳ7쮡<䩲`熕8頁": 4481809488267626463, - "Y?+8먙ᚔ鋳蜩럶1㥔y璜౩`": [ - null, - 1.2850335807501874E-19, - "~V2", - 2035406654801997866, - { - "<숻1>\"": -8062468865199390827, - "M㿣E]}qwG莎Gn᝶(ꔙ\\D⬲iꇲs寢t駇S뀡ꢜ": false, - "pꝤ㎏9W%>M;-U璏f(^j1?&RB隧 忓b똊E": "#G?C8.躬ꥯ'?냪#< 渟&헿란zpo왓Kj}鷧XﻘMツb䕖;㪻", - "vE풤幉xz뱕쫥Ug㦲aH} ᣟp:鬼YᰟH3镔ᴚ斦\\鏑r*2橱G⼔F/.j": true, - "RK좬뎂a홠f*f㱉ᮍ⦋潙㨋Gu곌SGI3I뿐\\F',)t`荁蘯囯ﮉ裲뇟쥼_ገ驪▵撏ᕤV": 1.52738225997956557E18, - "^k굲䪿꠹B逤%F㱢漥O披M㽯镞竇霒i꼂焅륓\u00059=皫之눃\u2047娤閍銤唫ၕb<\/w踲䔼u솆맚,䝒ᝳ'/it": "B餹饴is権ꖪ怯ꦂẉဎt\"!凢谵⧿0\\<=(uL䷍刨쑪>俆揓Cy襸Q힆䆭涷<\/ᐱ0ɧ䗾䚹\\ኜ?ꄢᇘ`䴢{囇}᠈䴥X4퓪檄]ꥷ/3謒ሴn+g騍X", - "GgG꽬[(嫓몍6\u0004궍宩㙻/>\u0011^辍dT腪hxǑ%ꊇk,8(W⧂結P鬜O": [{ - "M㴾c>\\ᓲ\u0019V{>ꤩ혙넪㭪躂TS-痴໸闓⍵/徯O.M㏥ʷD囎⧔쁳휤T??鉬뇙=#ꢫ숣BX䭼<\/d똬졬g榿)eꨋﯪ좇첻\u001a\u0011\";~쓆BH4坋攊7힪", - "iT:L闞椕윚*滛gI≀Wਟඊ'ꢆ縺뱹鮚Nꩁ᧬蕼21줧\\䋯``⍐\\㏱鳨": 1927052677739832894, - "쮁缦腃g]礿Y㬙 fヺSɪ꾾N㞈": [ - null, - null, - { - "!t,灝Y 1䗉罵?c饃호䉂Cᐭ쒘z(즽sZG㬣sഖE4뢜㓕䏞丮Qp簍6EZឪ겛fx'ꩱQ0罣i{k锩*㤴㯞r迎jTⲤ渔m炅肳": [ - -3.3325685522591933E18, - [{"㓁5]A䢕1룥BC?Ꙍ`r룔Ⳛ䙡u伲+\u0001്o": [ - null, - 4975309147809803991, - null, - null, - {"T팘8Dﯲ稟MM☻㧚䥧/8ﻥ⥯aXLaH\"顾S☟耲ît7fS෉놁뮔/ꕼ䓈쁺4\\霶䠴ᩢ<\/t4?죵>uD5➶༆쉌럮⢀秙䘥\u20972ETR3濡恆vB? ~鸆\u0005": { - "`閖m璝㥉b뜴?Wf;?DV콜\u2020퍉౓擝宏ZMj3mJ먡-傷뱙yח㸷꥿ ໘u=M읝!5吭L4v\\?ǎ7C홫": null, - "|": false, - "~Ztᛋ䚘\\擭㗝傪W陖+㗶qᵿ蘥ᙄp%䫎)}=⠔6ᮢS湟-螾-mXH?cp": 448751162044282216, - "\u209fad놹j檋䇌ᶾ梕㉝bוּ": {"?苴ꩠD䋓帘5騱qﱖPF?☸珗顒yU ᡫcb䫎 S@㥚gꮒ쎘泴멖\\:I鮱TZ듒ᶨQ3+f7캙\"?\f풾\\o杞紟﻽M.⏎靑OP": [ - -2.6990368911551596E18, - [{"䒖@<᰿<\/⽬tTr腞&G%᳊秩蜰擻f㎳?S㵧\r*k뎾-乢겹隷j軛겷0룁鮁": {")DO0腦:춍逿:1㥨่!蛍樋2": [{ - ",ꌣf侴笾m๫ꆽ?1?U?\u0011ꌈꂇ": { - "x捗甠nVq䅦w`CD⦂惺嘴0I#vỵ} \\귂S끴D얾?Ԓj溯\"v餄a": { - "@翙c⢃趚痋i\u0015OQ⍝lq돆Y0pࢥ3쉨䜩^<8g懥0w)]䊑n洺o5쭝QL댊랖L镈Qnt⪟㒅십q헎鳒⮤眉ᔹ梠@O縠u泌ㄘb榚癸XޔFtj;iC": false, - "I&뱋゘|蓔䔕측瓯%6ᗻHW\\N1貇#?僐ᗜgh᭪o'䗈꽹Rc욏/蔳迄༝!0邔䨷푪8疩)[쭶緄㇈୧ፐ": { - "B+:ꉰ`s쾭)빼C羍A䫊pMgjdx䐝Hf9᥸W0!C樃'蘿f䫤סи\u0017Jve? 覝f둀⬣퓉Whk\"஼=չﳐ皆笁BIW虨쫓F廰饞": -642906201042308791, - "sb,XcZ<\/m㉹ ;䑷@c䵀s奤⬷7`ꘖ蕘戚?Feb#輜}p4nH⬮eKL트}": [ - "RK鳗z=袤Pf|[,u욺", - "Ẏᏻ罯뉋⺖锅젯㷻{H䰞쬙-쩓D]~\u0013O㳢gb@揶蔉|kᦂ❗!\u001ebM褐sca쨜襒y⺉룓", - null, - null, - true, - -1.650777344339075E-19, - false, - "☑lꄆs힨꤇]'uTന⌳농].1⋔괁沰\"IWഩ\u0019氜8쟇䔻;3衲恋,窌z펏喁횗?4?C넁问?ᥙ橭{稻Ⴗ_썔", - "n?]讇빽嗁}1孅9#ꭨ靶v\u0014喈)vw祔}룼쮿I", - -2.7033457331882025E18, - { - ";⚃^㱋x:饬ኡj'꧵T☽O㔬RO婎?향ᒭ搩$渣y4i;(Q>꿘e8q": "j~錘}0g;L萺*;ᕭꄮ0l潛烢5H▄쳂ꏒוֹꙶT犘≫x閦웧v", - "~揯\u2018c4職렁E~ᑅቚꈂ?nq뎤.:慹`F햘+%鉎O瀜쟏敛菮⍌浢<\/㮺紿P鳆ࠉ8I-o?#jﮨ7v3Dt赻J9": null, - "ࣝW䌈0ꍎqC逖,횅c၃swj;jJS櫍5槗OaB>D踾Y": {"㒰䵝F%?59.㍈cᕨ흕틎ḏ㋩B=9IېⓌ{:9.yw}呰ㆮ肒᎒tI㾴62\"ዃ抡C﹬B<\/촋jo朣", - [ - -7675533242647793366, - {"ᙧ呃:[㒺쳀쌡쏂H稈㢤\u001dᶗGG-{GHྻຊꡃ哸䵬;$?&d\\⥬こN圴됤挨-'ꕮ$PU%?冕눖i魁q騎Q": [ - false, - [[ - 7929823049157504248, - [[ - true, - "Z菙\u0017'eꕤ᱕l,0\\X\u001c[=雿8蠬L<\/낲긯W99g톉4ퟋb㝺\u0007劁'!麕Q궈oW:@X၎z蘻m絙璩귓죉+3柚怫tS捇蒣䝠-擶D[0=퉿8)q0ٟ", - "唉\nFA椭穒巯\\䥴䅺鿤S#b迅獘 ﶗ꬘\\?q1qN犠pX꜅^䤊⛤㢌[⬛휖岺q唻ⳡ틍\"㙙Eh@oA賑㗠y必Nꊑᗘ", - -2154220236962890773, - -3.2442003245397908E18, - "Wᄿ筠:瘫퀩?o貸q⊻(᎞KWf宛尨h^残3[U(='橄", - -7857990034281549164, - 1.44283696979059942E18, - null, - {"ꫯAw跭喀 ?_9\"Aty背F=9缉ྦྷ@;?^鞀w:uN㘢Rỏ": [ - 7.393662029337442E15, - 3564680942654233068, - [ - false, - -5253931502642112194, - "煉\\辎ೆ罍5⒭1䪁䃑s䎢:[e5}峳ﴱn騎3?腳Hyꏃ膼N潭錖,Yᝋ˜YAၓ㬠bG렣䰣:", - true, - null, - { - "⒛'P&%죮|:⫶춞": -3818336746965687085, - "钖m<\/0ݎMtF2Pk=瓰୮洽겎.": [[ - -8757574841556350607, - -3045234949333270161, - null, - { - "Ꮬr輳>⫇9hU##w@귪A\\C 鋺㘓ꖐ梒뒬묹㹻+郸嬏윤'+g<\/碴,}ꙫ>손;情d齆J䬁ຩ撛챝탹/R澡7剌tꤼ?ặ!`⏲睤\u00002똥଴⟏": null, - "\u20f2ܹe\\tAꥍư\\x当뿖렉禛;G檳ﯪS૰3~㘠#[J<}{奲 5箉⨔{놁<\/釿抋,嚠/曳m&WaOvT赋皺璑텁": [[ - false, - null, - true, - -5.7131445659795661E18, - "萭m䓪D5|3婁ఞ>蠇晼6nﴺPp禽羱DS<睓닫屚삏姿", - true, - [ - -8759747687917306831, - { - ">ⓛ\t,odKr{䘠?b퓸C嶈=DyEᙬ@ᴔ쨺芛髿UT퓻春<\/yꏸ>豚W釺N뜨^?꽴﨟5殺ᗃ翐%>퍂ဿ䄸沂Ea;A_\u0005閹殀W+窊?Ꭼd\u0013P汴G5썓揘": 4.342729067882445E-18, - "Q^즾眆@AN\u0011Kb榰냎Y#䝀ꀒᳺ'q暇睵s\"!3#I⊆畼寤@HxJ9": false, - "⿾D[)袨㇩i]웪䀤ᛰMvR<蟏㣨": {"v퇓L㪱ꖣ豛톤\\곱#kDTN": [{ - "(쾴䡣,寴ph(C\"㳶w\"憳2s馆E!n!&柄<\/0Pꈗſ?㿳Qd鵔": {"娇堰孹L錮h嵅⛤躏顒?CglN束+쨣ﺜ\\MrH": {"獞䎇둃ቲ弭팭^ꄞ踦涟XK錆쳞ឌ`;੶S炥騞ଋ褂B៎{ڒ䭷ᶼ靜pI荗虶K$": [{"◖S~躘蒉꫿輜譝Q㽙闐@ᢗ¥E榁iء5┄^B[絮跉ᰥ遙PWi3wㄾⵀDJ9!w㞣ᄎ{듒ꓓb6\\篴??c⼰鶹⟧\\鮇ꮇ": [[ - 654120831325413520, - -1.9562073916357608E-19, - { - "DC(昐衵ἡ긙갵姭|֛[t": 7.6979110359897907E18, - "J␅))嫼❳9Xfd飉j7猬ᩉ+⤻眗벎E鰉Zᄊ63zၝ69}ZᶐL崭ᦥ⡦靚⋛ꎨ~i㨃咊ꧭo䰠阀3C(": -3.5844809362512589E17, - "p꣑팱쒬ꎑ뛡Ꙩ挴恍胔&7ᔈ묒4Hd硶훐㎖zꢼ豍㿢aሃ=<\/湉鵲EӅ%$F!퍶棌孼{O駍਺geu+": ")\u001b잓kŀX쩫A밁®ڣ癦狢)扔弒p}k縕ꩋ,䃉tࣼi", - "ァF肿輸<솄G-䢹䛸ꊏl`Tqꕗ蒞a氷⸅ᴉ蠰]S/{J왲m5{9.uέ~㕚㣹u>x8U讁B덺襪盎QhVS맅킃i识{벂磄Iහ䙅xZy/抍૭Z鲁-霳V据挦ℒ": null, - "㯛|Nꐸb7ⵐb?拠O\u0014ކ?-(EꞨ4ꕷᄤYᯕOW瞺~螸\"욿ќe㺰\"'㌢ƐW\u0004瞕>0?V鷵엳": true, - "뤥G\\迋䠿[庩'꼡\u001aiᩮV쯁ᳪ䦪Ô;倱ନ뛁誈": null, - "쥹䄆䚟Q榁䎐᢭<\/2㕣p}HW蟔|䃏꿈ꚉ锳2Pb7㙑Tⅹᵅ": { - "Y?֭$>#cVBꩨ:>eL蒁務": { - "86柡0po 䏚&-捑Ћ祌<\/휃-G*㶢הּ쩍s㶟餇c걺yu꽎還5*턧簕Og婥SꝐ": null, - "a+葞h٥ࠆ裈嗫ﵢ5輙퀟ᛜ,QDﹼ⟶Y騠锪E_|x죗j侵;m蜫轘趥?븅w5+mi콛L": { - ";⯭ﱢ!买F⽍柤鶂n䵣V㫚墱2렾ELEl⣆": [ - true, - -3.6479311868339015E-18, - -7270785619461995400, - 3.334081886177621E18, - 2.581457786298155E18, - -6.605252412954115E-20, - -3.9232347037744167E-20, - { - "B6㊕.k1": null, - "ZAꄮJ鮷ᳱo갘硥鈠䠒츼": { - "ᕅ}럡}.@y陪鶁r業'援퀉x䉴ﵴl퍘):씭脴ᥞhiꃰblﲂ䡲엕8߇M㶭0燋標挝-?PCwe⾕J碻Ᾱ䬈䈥뷰憵賣뵓痬+": {"a췩v礗X⋈耓ፊf罅靮!㔽YYᣓw澍33⎔芲F|\"䜏T↮輦挑6ᓘL侘?ᅥ]덆1R௯✎餘6ꏽ<\/௨\\?q喷ꁫj~@ulq": {"嗫欆뾔Xꆹ4H㌋F嵧]ࠎ]㠖1ꞤT<$m뫏O i댳0䲝i": {"?෩?\u20cd슮|ꯆjs{?d7?eNs⢚嫥氂䡮쎱:鑵롟2hJꎒﯭ鱢3춲亄:뼣v䊭諱Yj択cVmR䩃㘬T\"N홝*ै%x^F\\_s9보zz4淗?q": [ - null, - "?", - 2941869570821073737, - "{5{殇0䝾g6밖퍋臩綹R$䖭j紋釰7sXI繳漪행y", - false, - "aH磂?뛡#惇d婅?Fe,쐘+늵䍘\"3r瘆唊勐j⳧࠴ꇓ<\/唕윈x⬌讣䋵%拗ᛆⰿ妴᝔M2㳗必꧂淲?ゥ젯檢<8끒MidX䏒3᳻Q▮佐UT|⤪봦靏⊏", - [[{ - "颉(&뜸귙{y^\"P퟉춝Ჟ䮭D顡9=?}Y誱<$b뱣RvO8cH煉@tk~4ǂ⤧⩝屋SS;J{vV#剤餓ᯅc?#a6D,s": [ - -7.8781018564821536E16, - true, - [ - -2.28770899315832371E18, - false, - -1.0863912140143876E-20, - -6282721572097446995, - 6767121921199223078, - -2545487755405567831, - false, - null, - -9065970397975641765, - [ - -5.928721243413937E-20, - {"6촊\u001a홯kB0w撨燠룉{绎6⳹!턍贑y▾鱧ժ[;7ᨷ∀*땒䪮1x霆Hᩭ☔\"r䝐7毟ᝰr惃3ꉭE+>僒澐": [ - "Ta쎩aƝt쵯ⰪVb", - [ - -5222472249213580702, - null, - -2851641861541559595, - null, - 4808804630502809099, - 5657671602244269874, - "5犲﨣4mᥣ?yf젫꾯|䋬잁$`Iⳉﴷ扳兝,'c", - false, - [ - null, - { - "DyUIN쎾M仼惀⮥裎岶泭lh扠\u001e礼.tEC癯튻@_Qd4c5S熯A<\/\6U윲蹴Q=%푫汹\\\u20614b[௒C⒥Xe⊇囙b,服3ss땊뢍i~逇PA쇸1": -2.63273619193485312E17, - "Mq꺋貘k휕=nK硍뫞輩>㾆~἞ࡹ긐榵l⋙Hw뮢帋M엳뢯v⅃^": 1877913476688465125, - "ᶴ뻗`~筗免⚽টW˃⽝b犳䓺Iz篤p;乨A\u20ef쩏?疊m㝀컩뫡b탔鄃ᾈV(遢珳=뎲ିeF仢䆡谨8t0醄7㭧瘵⻰컆r厡궥d)a阄፷Ed&c﯄伮1p": null, - "⯁w4曢\"(欷輡": "\"M᭫]䣒頳B\\燧ࠃN㡇j姈g⊸⺌忉ꡥF矉স%^", - "㣡Oᄦ昵⫮Y祎S쐐級㭻撥>{I$": -378474210562741663, - "䛒掷留Q%쓗1*1J*끓헩ᦢ﫫哉쩧EↅIcꅡ\\?ⴊl귛顮4": false, - "寔愆샠5]䗄IH贈=d﯊/偶?ॊn%晥D視N򗘈'᫂⚦|X쵩넽z질tskxDQ莮Aoﱻ뛓": true, - "钣xp?&\u001e侉/y䴼~?U篔蘚缣/I畚?Q绊": -3034854258736382234, - "꺲໣眀)⿷J暘pИfAV삕쳭Nꯗ4々'唄ⶑ伻㷯騑倭D*Ok꧁3b␽_<\/챣Xm톰ၕ䆄`*fl㭀暮滠毡?": [ - "D男p`V뙸擨忝븪9c麺`淂⢦Yw⡢+kzܖ\fY1䬡H歁)벾Z♤溊-혰셢?1<-\u0005;搢Tᐁle\\ᛵߓﭩ榩訝-xJ;巡8깊蠝ﻓU$K": { - "Vꕡ諅搓W=斸s︪vﲜ츧$)iꡟ싉e寳?ጭムVથ嵬i楝Fg<\/Z|៪ꩆ-5'@ꃱ80!燱R쇤t糳]罛逇dṌ֣XHiͦ{": true, - "Ya矲C멗Q9膲墅携휻c\\딶G甔<\/.齵휴": -1.1456247877031811E-19, - "z#.OO￝J": -8263224695871959017, - "崍_3夼ᮟ1F븍뽯ᦓ鴭V豈Ь": [{ - "N蒬74": null, - "yuB?厅vK笗!ᔸcXQ旦컶P-녫mᄉ麟_": "1R@ 톘xa_|﩯遘s槞d!d껀筤⬫薐焵먑D{\\6k共倌☀G~AS_D\"딟쬚뮥馲렓쓠攥WTMܭ8nX㩴䕅檹E\u0007ﭨN 2 ℆涐ꥏ꠵3▙玽|됨_\u2048", - "恐A C䧩G": {":M큣5e들\\ꍀ恼ᔄ靸|I﨏$)n": { - "|U䬫㟯SKV6ꛤ㗮\bn봻䲄fXT:㾯쳤'笓0b/ೢC쳖?2浓uO.䰴": "ཐ꼋e?``,ᚇ慐^8ꜙNM䂱\u0001IᖙꝧM'vKdꌊH牮r\\O@䊷ᓵ쀆(fy聻i툺\"?<\/峧ࣞ⓺ᤤ쵒߯ꎺ騬?)刦\u2072l慪y꺜ﲖTj+u", - "뽫hh䈵w>1ⲏ쐭V[ⅎ\\헑벑F_㖝⠗㫇h恽;῝汰ᱼ瀖J옆9RR셏vsZ柺鶶툤r뢱橾/ꉇ囦FGm\"謗ꉦ⨶쒿⥡%]鵩#ᖣ_蹎 u5|祥?O", - null, - 2.0150326776036215E-19, - null, - true, - false, - true, - {"\fa᭶P捤WWc᠟f뚉ᬏ퓗ⳀW睹5:HXH=q7x찙X$)모r뚥ᆟ!Jﳸf": [ - -2995806398034583407, - [ - 6441377066589744683, - "Mﶒ醹i)Gἦ廃s6몞 KJ౹礎VZ螺费힀\u0000冺업{谥'꡾뱻:.ꘘ굄奉攼Di᷑K鶲y繈욊阓v㻘}枭캗e矮1c?휐\"4\u0005厑莔뀾墓낝⽴洗ṹ䇃糞@b1\u0016즽Y轹", - { - "1⽕⌰鉟픏M㤭n⧴ỼD#%鐘⊯쿼稁븣몐紧ᅇ㓕ᛖcw嬀~ഌ㖓(0r⧦Q䑕髍ര铂㓻R儮\"@ꇱm❈௿᦯頌8}㿹犴?xn잆꥽R": 2.07321075750427366E18, - "˳b18㗈䃟柵Z曆VTAu7+㛂cb0﯑Wp執<\/臋뭡뚋刼틮荋벲TLP预庰܈G\\O@VD'鱃#乖끺*鑪ꬳ?Mޞdﭹ{␇圯쇜㼞顄︖Y홡g": [{ - "0a,FZ": true, - "2z̬蝣ꧦ驸\u0006L↛Ḣ4๚뿀'?lcwᄧ㐮!蓚䃦-|7.飑挴.樵*+1ﮊ\u0010ꛌ%貨啺/JdM:똍!FBe?鰴㨗0O财I藻ʔWA᫓G쳛u`<\/I": [{ - "$τ5V鴐a뾆両環iZp頻යn븃v": -4869131188151215571, - "*즢[⦃b礞R◚nΰꕢH=귰燙[yc誘g䆌?ଜ臛": { - "洤湌鲒)⟻\\䥳va}PeAMnN[": "㐳ɪ/(軆lZR,Cp殍ȮN啷\"3B婴?i=r$펽ᤐ쀸", - "阄R4㒿㯔ڀ69ZᲦ2癁핌噗P崜#\\-쭍袛&鐑/$4童V꩑_ZHA澢fZ3": {"x;P{긳:G閉:9?活H": [ - "繺漮6?z犞焃슳\">ỏ[Ⳛ䌜녏䂹>聵⼶煜Y桥[泥뚩MvK$4jtロ", - "E#갶霠좭㦻ୗ먵F+䪀o蝒ba쮎4X㣵 h", - -335836610224228782, - null, - null, - [ - "r1᫩0>danjY짿bs{", - [ - -9.594464059325631E-23, - 1.0456894622831624E-20, - null, - 5.803973284253454E-20, - -8141787905188892123, - true, - -4735305442504973382, - 9.513150514479281E-20, - "7넳$螔忷㶪}䪪l짴\u0007鹁P鰚HF銏ZJﳴ/⍎1ᷓ忉睇ᜋ쓈x뵠m䷐窥Ꮤ^\u0019ᶌ偭#ヂt☆၃pᎍ臶䟱5$䰵&๵分숝]䝈뉍♂坎\u0011<>", - "C蒑貑藁lﰰ}X喇몛;t밿O7/᯹f\u0015kI嘦<ዴ㟮ᗎZ`GWퟩ瑹࡮ᅴB꿊칈??R校s脚", - { - "9珵戬+AU^洘拻ቒy柭床'粙XG鞕᠜繀伪%]hC,$輙?Ut乖Qm떚W8઼}~q⠪rU䤶CQ痗ig@#≲t샌f㈥酧l;y闥ZH斦e⸬]j⸗?ঢ拻퀆滌": null, - "畯}㧢J罚帐VX㨑>1ꢶkT⿄蘥㝑o|<嗸層沈挄GEOM@-䞚䧰$만峬輏䠱V✩5宸-揂D'㗪yP掶7b⠟J㕻SfP?d}v㼂Ꮕ'猘": { - "陓y잀v>╪": null, - "鬿L+7:됑Y=焠U;킻䯌잫!韎ஔ\f": { - "駫WmGጶ": { - "\\~m6狩K": -2586304199791962143, - "ႜࠀ%͑l⿅D.瑢Dk%0紪dḨTI픸%뗜☓s榗኉\"?V籄7w髄♲쟗翛歂E䤓皹t ?)ᄟ鬲鐜6C": { - "_췤a圷1\u000eB-XOy缿請∎$`쳌eZ~杁튻/蜞`塣৙\"⪰\"沒l}蕌\\롃荫氌.望wZ|o!)Hn獝qg}": null, - "kOSܧ䖨钨:಼鉝ꭝO醧S`십`ꓭ쭁ﯢN&Et㺪馻㍢ⅳ㢺崡ຊ蜚锫\\%ahx켨|ż劻ꎄ㢄쐟A躊᰹p譞綨Ir쿯\u0016ﵚOd럂*僨郀N*b㕷63z": { - ":L5r+T㡲": [{ - "VK泓돲ᮙRy㓤➙Ⱗ38oi}LJቨ7Ó㹡৘*q)1豢⛃e᫛뙪壥镇枝7G藯g㨛oI䄽 孂L缊ꋕ'EN`": -2148138481412096818, - "`⛝ᘑ$(खꊲ⤖ᄁꤒ䦦3=)]Y㢌跨NĴ驳줟秠++d孳>8ᎊ떩EꡣSv룃 쯫أ?#E|᭙㎐?zv:5祉^⋑V": [ - -1.4691944435285607E-19, - 3.4128661569395795E17, - "㐃촗^G9佭龶n募8R厞eEw⺡_ㆱ%⼨D뉄퉠2ꩵᛅⳍ搿L팹Lවn=\"慉념ᛮy>!`g!풲晴[/;?[v겁軇}⤳⤁핏∌T㽲R홓遉㓥", - "愰_⮹T䓒妒閤둥?0aB@㈧g焻-#~跬x<\/舁P݄ꐡ=\\׳P\u0015jᳪᢁq;㯏l%᭗;砢觨▝,謁ꍰGy?躤O黩퍋Y㒝a擯\n7覌똟_䔡]fJ晋IAS", - 4367930106786121250, - -4.9421193149720582E17, - null, - { - ";ᄌ똾柉곟ⰺKpፇ䱻ฺ䖝{o~h!eꁿ઻욄ښ\u0002y?xUd\u207c悜ꌭ": [ - 1.6010824122815255E-19, - [ - "宨︩9앉檥pr쇷?WxLb", - "氇9】J玚\u000f옛呲~ 輠1D嬛,*mW3?n휂糊γ虻*ᴫ꾠?q凐趗Ko↦GT铮", - "㶢ថmO㍔k'诔栀Z蛟}GZ钹D", - false, - -6.366995517736813E-20, - -4894479530745302899, - null, - "V%᫡II璅䅛䓎풹ﱢ/pU9se되뛞x梔~C)䨧䩻蜺(g㘚R?/Ự[忓C뾠ࢤc왈邠买?嫥挤풜隊枕", - ",v碍喔㌲쟚蔚톬៓ꭶ", - 3.9625444752577524E-19, - null, - [ - "kO8란뿒䱕馔b臻⍟隨\"㜮鲣Yq5m퐔K#ꢘug㼈ᝦ=P^6탲@䧔%$CqSw铜랊0&m⟭<\/a逎ym\u0013vᯗ": true, - "洫`|XN뤮\u0018詞=紩鴘_sX)㯅鿻Ố싹": 7.168252736947373E-20, - "ꛊ饤ﴏ袁(逊+~⽫얢鈮艬O힉7D筗S곯w操I斞᠈븘蓷x": [[[[ - -7.3136069426336952E18, - -2.13572396712722688E18, - { - "硢3㇩R:o칢行E<=\u0018ၬYuH!\u00044U%卝炼2>\u001eSi$⓷ꒈ'렢gᙫ番ꯒ㛹럥嶀澈v;葷鄕x蓎\\惩+稘UEᖸﳊ㊈壋N嫿⏾挎,袯苷ኢ\\x|3c": 7540762493381776411, - "?!*^ᢏ窯?\u0001ڔꙃw虜돳FgJ?&⨫*uo籤:?}ꃹ=ٴ惨瓜Z媊@ત戹㔏똩Ԛ耦Wt轁\\枒^\\ꩵ}}}ꀣD\\]6M_⌫)H豣:36섘㑜": { - ";홗ᰰU஋㙛`D왔ཿЃS회爁\u001b-㢈`봆?盂㛣듿ᦾ蒽_AD~EEຆ㊋(eNwk=Rɠ峭q\"5Ἠ婾^>'ls\n8QAK)- Q䲌mo펹L_칍樖庫9꩝쪹ᘹ䑖瀍aK ?*趤f뭓廝p=磕", - "哑z懅ᤏ-ꍹux쀭", - [ - true, - 3998739591332339511, - "ጻ㙙?᳸aK<\/囩U`B3袗ﱱ?\"/k鏔䍧2l@쿎VZ쨎/6ꃭ脥|B?31+on颼-ꮧ,O嫚m ࡭`KH葦:粘i]aSU쓙$쐂f+詛頖b", - [{"^<9<箝&絡;%i﫡2攑紴\\켉h쓙-柂䚝ven\u20f7浯-Ꮏ\r^훁䓚헬\u000e?\\ㅡֺJ떷VOt": [{ - "-௄卶k㘆혐஽y⎱㢬sS઄+^瞥h;ᾷj;抭\u0003밫f<\/5Ⱗ裏_朻%*[-撵䷮彈-芈": { - "㩩p3篊G|宮hz䑊o곥j^Co0": [ - 653239109285256503, - {"궲?|\":N1ۿ氃NZ#깩:쇡o8킗ࡊ[\"됸Po핇1(6鰏$膓}⽐*)渽J'DN<썙긘毦끲Ys칖": { - "2Pr?Xjㆠ?搮/?㓦柖馃5뚣Nᦼ|铢r衴㩖\"甝湗ܝ憍": "\"뾯i띇筝牻$珲/4ka $匝휴译zbAᩁꇸ瑅&뵲衯ꎀᆿ7@ꈋ'ᶨH@ᠴl+", - "7뢽뚐v?4^ꊥ_⪛.>pởr渲<\/⢕疻c\"g䇘vU剺dஔ鮥꒚(dv祴X⼹\\a8y5坆": true, - "o뼄B욞羁hr﷔폘뒚⿛U5pꪴfg!6\\\"爑쏍䢱W<ﶕ\\텣珇oI/BK뺡'谑♟[Ut븷亮g(\"t⡎有?ꬊ躺翁艩nl F⤿蠜": 1695826030502619742, - "ۊ깖>ࡹ햹^ⵕ쌾BnN〳2C䌕tʬ]찠?ݾ2饺蹳ぶꌭ訍\"◹ᬁD鯎4e滨T輀ﵣ੃3\u20f3킙D瘮g\\擦+泙ၧ 鬹ﯨַ肋7놷郟lP冝{ߒhড়r5,꓋": null, - "ΉN$y{}2\\N﹯ⱙK'8ɜͣwt,.钟廣䎘ꆚk媄_": null, - "䎥eᾆᝦ읉,Jުn岪㥐s搖謽䚔5t㯏㰳㱊ZhD䃭f絕s鋡篟a`Q鬃┦鸳n_靂(E4迠_觅뷝_宪D(NL疶hL追V熑%]v肫=惂!㇫5⬒\u001f喺4랪옑": { - "2a輍85먙R㮧㚪Sm}E2yꆣꫨrRym㐱膶ᔨ\\t綾A☰.焄뙗9<쫷챻䒵셴᭛䮜.<\/慌꽒9叻Ok䰊Z㥪幸k": [ - null, - true, - {"쌞쐍": { - "▟GL K2i뛱iQ\"̠.옛1X$}涺]靎懠ڦ늷?tf灟ݞゟ{": 1.227740268699265E-19, - "꒶]퓚%ฬK❅": [{ - "(ෛ@Ǯっ䧼䵤[aテൖvEnAdU렖뗈@볓yꈪ,mԴ|꟢캁(而첸죕CX4Y믅": "2⯩㳿ꢚ훀~迯?᪑\\啚;4X\u20c2襏B箹)俣eỻw䇄", - "75༂f詳䅫ꐧ鏿 }3\u20b5'∓䝱虀f菼Iq鈆﨤g퍩)BFa왢d0뮪痮M鋡nw∵謊;ꝧf美箈ḋ*\u001c`퇚퐋䳫$!V#N㹲抗ⱉ珎(V嵟鬒_b㳅\u0019": null, - "e_m@(i㜀3ꦗ䕯䭰Oc+-련0뭦⢹苿蟰ꂏSV䰭勢덥.ྈ爑Vd,ᕥ=퀍)vz뱊ꈊB_6듯\"?{㒲&㵞뵫疝돡믈%Qw限,?\r枮\"? N~癃ruࡗdn&": null, - "㉹&'Pfs䑜공j<\/?|8oc᧨L7\\pXᭁ 9᪘": -2.423073789014103E18, - "䝄瑄䢸穊f盈᥸,B뾧푗횵B1쟢f\u001f凄": "魖⚝2儉j꼂긾껢嗎0ࢇ纬xI4](੓`蕞;픬\fC\"斒\")2櫷I﹥迧", - "ퟯ詔x悝령+T?Bg⥄섅kOeQ큼㻴*{E靼6氿L缋\u001c둌๶-㥂2==-츫I즃㠐Lg踞ꙂEG貨鞠\"\u0014d'.缗gI-lIb䋱ᎂDy缦?": null, - "紝M㦁犿w浴詟棓쵫G:䜁?V2ힽ7N*n&㖊Nd-'ຊ?-樹DIv⊜)g䑜9뉂ㄹ푍阉~ꅐ쵃#R^\u000bB䌎䦾]p.䀳": [{"ϒ爛\"ꄱ︗竒G䃓-ま帳あ.j)qgu扐徣ਁZ鼗A9A鸦甈!k蔁喙:3T%&㠘+,䷞|챽v䚞문H<\/醯r셓㶾\\a볜卺zE䝷_죤ဵ뿰᎟CB": [ - 6233512720017661219, - null, - -1638543730522713294, - false, - -8901187771615024724, - [ - 3891351109509829590, - true, - false, - -1.03836679125188032E18, - { - "j랎:g曞ѕᘼ}链N", - -1.1103819473845426E-19, - true, - [ - true, - null, - -7.9091791735309888E17, - true, - {"}蔰鋈+ꐨ啵0?g*사%`J?*": [{ - "\"2wG?yn,癷BK\\龞䑞x?蠢": -3.7220345009853505E-19, - ";饹়❀)皋`噿焒j(3⿏w>偍5X薙婏聿3aFÆÝ": "2,ꓴg?_섦_>Y쪥션钺;=趘F~?D㨫\bX?㹤+>/믟kᠪ멅쬂Uzỵ]$珧`m雁瑊ඖ鯬cꙉ梢f묛bB", - "♽n$YjKiXX*GO贩鏃豮祴遞K醞眡}ꗨv嵎꼷0୸+M菋eH徸J꣆:⼐悥B켽迚㯃b諂\u000bjꠜ碱逮m8": [ - "푷᣺ﻯd8ﱖ嬇ភH鹎⡱᱅0g:果6$GQ췎{vᷧYy-脕x偹砡館⮸C蓼ꏚ=軄H犠G谖ES詤Z蠂3l봟hᅭ7䦹1GPQG癸숟~[#駥8zQ뛣J소obg,", - null, - 1513751096373485652, - null, - -6.851466660824754E-19, - {"䩂-⴮2ٰK솖풄꾚ႻP앳1H鷛wmR䗂皎칄?醜<\/&ࠧ㬍X濬䵈K`vJ륒Q/IC묛!;$vϑ": { - "@-ꚗxྐྵ@m瘬\u0010U絨ﮌ驐\\켑寛넆T=tQ㭤L연@脸삯e-:⩼u㎳VQ㋱襗ຓ<Ⅶ䌸cML3+\u001e_C)r\\9+Jn\\Pﺔ8蠱檾萅Pq鐳话T䄐I": -1.80683891195530061E18, - "ᷭዻU~ཷsgSJ`᪅'%㖔n5픆桪砳峣3獮枾䌷⊰呀": { - "Ş੉䓰邟自~X耤pl7间懑徛s첦5ਕXexh⬖鎥᐀nNr(J컗|ૃF\"Q겮葲놔엞^겄+㈆话〾희紐G'E?飕1f❼텬悚泬먐U睬훶Qs": false, - "(\u20dag8큽튣>^Y{뤋.袊䂓;_g]S\u202a꽬L;^'#땏bႌ?C緡<䝲䲝断ꏏ6\u001asD7IK5Wxo8\u0006p弊⼂ꯍ扵\u0003`뵂픋%ꄰ⫙됶l囏尛+䗅E쟇\\": [ - true, - { - "\n鱿aK㝡␒㼙2촹f;`쾏qIࡔG}㝷䐍瓰w늮*粅9뒪ㄊCj倡翑閳R渚MiUO~仨䜶RꙀA僈㉋⦋n{㖥0딿벑逦⥻0h薓쯴Ꝼ": [ - 5188716534221998369, - 2579413015347802508, - 9.010794400256652E-21, - -6.5327297761238093E17, - 1.11635352494065523E18, - -6656281618760253655, - { - "": ")?", - "TWKLꑙ裑꺔UE俸塑炌Ũ᜕-o\"徚#": {"M/癟6!oI51ni퐚=댡>xꍨ\u0004 ?": { - "皭": {"⢫䋖>u%w잼<䕏꘍P䋵$魋拝U䮎緧皇Y훂&|羋ꋕ잿cJ䨈跓齳5\u001a삱籷I꿾뤔S8㌷繖_Yឯ䲱B턼O歵F\\l醴o_欬6籏=D": [ - false, - true, - {"Mt|ꏞD|F궣MQ뵕T,띺k+?㍵i": [ - 7828094884540988137, - false, - { - "!༦鯠,&aﳑ>[euJꏽ綷搐B.h": -7648546591767075632, - "-n켧嘰{7挐毄Y,>❏螵煫乌pv醑Q嶚!|⌝責0왾덢ꏅ蛨S\\)竰'舓Q}A釡5#v": 3344849660672723988, - "8閪麁V=鈢1녈幬6棉⪮둌\u207d᚛驉ꛃ'r䆉惏ै|bἧﺢᒙ<=穊强s혧eꮿ慩⌡ \\槳W븧J檀C,ᘉ의0俯퀉M;筷ࣴ瓿{늊埂鄧_4揸Nn阼Jੵ˥(社": true, - "o뼀vw)4A뢵(a䵢)p姃뛸\u000fK#KiQp\u0005ꅍ芅쏅": null, - "砥$ꥸ┇耽u斮Gc{z빔깎밇\\숰\u001e괷各㶇쵿_ᴄ+h穢p촀Ნ䃬z䝁酳ӂ31xꔄ1_砚W렘G#2葊P ": [ - -3709692921720865059, - null, - [ - 6669892810652602379, - -135535375466621127, - "뎴iO}Z? 馢녱稹ᄾ䐩rSt帤넆&7i騏멗畖9誧鄜'w{Ͻ^2窭외b㑎粖i矪ꦨ탪跣)KEㆹ\u0015V8[W?⽉>'kc$䨘ᮛ뉻٬M5", - 1.10439588726055846E18, - false, - -4349729830749729097, - null, - [ - false, - "_蠢㠝^䟪/D녒㡋ỎC䒈판\u0006એq@O펢%;鹐쏌o戥~A[ꡉ濽ỳ&虃᩾荣唙藍茨Ig楡꒻M窓冉?", - true, - 2.17220752996421728E17, - -5079714907315156164, - -9.960375974658589E-20, - "ᾎ戞༒", - true, - false, - [[ - "ⶉᖌX⧕홇)g엃⹪x뚐癟\u0002", - -5185853871623955469, - { - "L㜤9ợㇶK鐰⋓V뽋˖!斫as|9"፬䆪?7胜&n薑~": -2.11545634977136992E17, - "O8뀩D}캖q萂6༣㏗䈓煮吽ਆᎼDᣘ폛;": false, - "YTᡅ^L㗎cbY$pᣞ縿#fh!ꘂb삵玊颟샞ဢ$䁗鼒몁~rkH^:닮먖츸륈⪺쒉砉?㙓扫㆕꣒`R䢱B酂?C뇞<5Iޚ讳騕S瞦z": null, - "\\RB?`mG댵鉡幐物䵎有5*e骄T㌓ᛪ琾駒Ku\u001a[柆jUq8⋈5鿋츿myﻗ?雍ux঴?": 5828963951918205428, - "n0晅:黯 xu씪^퓞cB㎊ᬍ⺘٤փ~B岚3㥕擄vᲂ~F?C䶖@$m~忔S왖㲚?챴⊟W#벌{'㰝I䝠縁s樘\\X뢻9핡I6菍ㄛ8쯶]wॽ0L\"q": null, - "x增줖j⦦t䏢᎙㛿Yf鼘~꫓恄4惊\u209c": "oOhbᤃ᛽z&Bi犑\\3B㩬劇䄑oŁ쨅孥멁ຖacA㖫借㞝vg싰샂㐜#譞⢤@k]鋰嘘䜾L熶塥_<\/⍾屈ﮊ_mY菹t뙺}Ox=w鮮4S1ꐩמּ'巑", - "㗓蟵ꂾe蠅匳(JP䗏෸\u0089耀왲": [{ - "ᤃ㵥韎뤽\r?挥O쯡⇔㞚3伖\u0005P⋪\"D궣QLn(⚘罩䩢Ŏv䤘尗뼤됛O淽鋋闚r崩a{4箙{煷m6〈": { - "l곺1L": { - "T'ਤ?砅|੬Km]䄩\"(࿶<\/6U爢䫈倔郴l2㴱^줣k'L浖L鰄Rp今鎗⒗C얨M훁㡧ΘX粜뫈N꤇輊㌻켑#㮮샶-䍗룲蠝癜㱐V>=\\I尬癤t=": 7648082845323511446, - "鋞EP:<\/_`ၧe混ㇹBd⯢㮂驋\\q碽饩跓྿ᴜ+j箿렏㗑yK毢宸p謹h䦹乕U媣\\炤": [[ - "3", - [ - true, - 3.4058271399411134E-20, - true, - "揀+憱f逮@먻BpW曉\u001a㣐⎊$n劈D枤㡞좾\u001aᛁ苔౩闝1B䷒Ṋ݋➐ꀞꐃ磍$t੤_:蘺⮼(#N", - 697483894874368636, - [ - "vᘯ锴)0訶}䳅⩚0O壱韈ߜ\u0018*U鍾䏖=䧉뽑单휻ID쿇嘗?ꌸῬ07", - -5.4858784319382006E18, - 7.5467775182251151E18, - -8911128589670029195, - -7531052386005780140, - null, - [ - null, - true, - [[{ - "1欯twG<\/Q:0怯押殃탷聫사<ỗꕧ蚨䡁nDꌕ\u001c녬~蓩鲃g儊>ꏡl㻿/⑷*챳6㻜W毤緛ﹺᨪ4\u0013뺚J髬e3쳸䘦伧?恪&{L掾p+꬜M䏊d娘6": { - "2p첼양棜h䜢﮶aQ*c扦v︥뮓kC寵횂S銩&ǝ{O*य़iH`U큅ࡓr䩕5ꄸ?`\\᧫?ᮼ?t〟崾훈k薐ì/iy꤃뵰z1<\/AQ#뿩8jJ1z@u䕥": 1.82135747285215155E18, - "ZdN &=d년ᅆ'쑏ⅉ:烋5&៏ᄂ汎来L㯄固{钧u\\㊏튚e摑&t嗄ꖄUb❌?m䴘熚9EW": [{ - "ଛ{i*a(": -8.0314147546006822E17, - "⫾ꃆY\u000e+W`௸ \"M뒶+\\뷐lKE}(NT킶Yj選篒쁶'jNQ硾(똡\\\"逌ⴍy? IRꜘ὞鄬﨧:M\\f⠋Cꚜ쫊ᚴNV^D䕗ㅖἔIao꿬C⍏8": [ - 287156137829026547, - { - "H丞N逕⯲": {"": { - "7-;枮阕梒9ᑄZ": [[[[ - null, - { - "": [[[[ - -7.365909561486078E-19, - 2948694324944243408, - null, - [ - true, - "荒\"并孷䂡쵼9o䀘F\u0002龬7⮹Wz%厖/*? a*R枈㌦됾g뒠䤈q딄㺿$쮸tᶎ릑弣^鏎<\/Y鷇驜L鿽<\/춋9Mᲆឨ^<\/庲3'l낢", - "c鮦\u001b두\\~?眾ಢu݆綑෪蘛轋◜gȃ<\/ⴃcpkDt誩܅\"Y", - [[ - null, - null, - [ - 3113744396744005402, - true, - "v(y", - { - "AQ幆h쾜O+꺷铀ꛉ練A蚗⼺螔j㌍3꽂楎䥯뎸먩?": null, - "蠗渗iz鱖w]擪E": 1.2927828494783804E-17, - "튷|䀭n*曎b✿~杤U]Gz鄭kW|㴚#㟗ഠ8u擨": [[ - true, - null, - null, - {"⾪壯톽g7?㥜ώQꑐ㦀恃㧽伓\\*᧰閖樧뢇赸N휶䎈pI氇镊maᬠ탷#X?A+kНM ༑᩟؝?5꧎鰜ṚY즫궔 =ঈ;ﳈ?*s|켦蜌wM笙莔": [ - null, - -3808207793125626469, - [ - -469910450345251234, - 7852761921290328872, - -2.7979740127017492E18, - 1.4458504352519893E-20, - true, - "㽙깹?먏䆢:䴎ۻg殠JBTU⇞}ꄹꗣi#I뵣鉍r혯~脀쏃#釯:场:䔁>䰮o'㼽HZ擓௧nd", - [ - 974441101787238751, - null, - -2.1647718292441327E-19, - 1.03602824249831488E18, - [ - null, - 1.0311977941822604E-17, - false, - true, - { - "": -3.7019778830816707E18, - "E峾恆茍6xLIm縂0n2视֯J-ᤜz+ᨣ跐mYD豍繹⹺䊓몓ﴀE(@詮(!Y膽#᎙2䟓섣A䈀㟎,囪QbK插wcG湎ꤧtG엝x⥏俎j'A一ᯥ뛙6ㅑ鬀": 8999803005418087004, - "よ殳\\zD⧅%Y泥簳Uꈩ*wRL{3#3FYHା[d岀䉯T稉駅䞘礄P:闈W怏ElB㤍喬赔bG䠼U଄Nw鰯闀楈ePsDꥷ꭬⊊": [ - 6.77723657904486E-20, - null, - [ - "ཚ_뷎꾑蹝q'㾱ꂓ钚蘞慵렜떆`ⴹ⎼櫯]J?[t9Ⓢ !컶躔I᮸uz>3a㠕i,錃L$氰텰@7녫W㸮?羧W뇧ꃞ,N鋮숪2ɼ콏┍䁲6", - "&y?뢶=킕올Za惻HZk>c\u20b58i?ꦶcfBv잉ET9j䡡", - "im珊Ճb칧校\\뼾쯀", - 9.555715121193197E-20, - true, - { - "<㫚v6腓㨭e1㕔&&V∌ᗈT奄5Lጥ>탤?튣瑦㳆ꉰ!(ᙪ㿬擇_n쌯IMΉ㕨␰櫈ᱷ5풔蟹&L.첽e鰷쯃劼﫭b#ﭶ퓀7뷄Wr㢈๧Tʴશ㶑澕鍍%": -1810142373373748101, - "fg晌o?߲ꗄ;>C>?=鑰監侯Kt굅": true, - "䫡蓺ꑷ]C蒹㦘\"1ః@呫\u0014NL䏾eg呮፳,r$裢k>/\\?ㄤᇰﻛ쉕1஥'Ċ\" \\_?쨔\"ʾr: 9S䘏禺ᪧꄂ㲄", - [[{ - "*硙^+E쌺I1䀖ju?:⦈Ꞓl๴竣迃xKC/饉:\fl\"XTFᄄ蟭,芢<\/骡軺띜hꏘ\u001f銿<棔햳▨(궆*=乥b8\\媦䷀뫝}닶ꇭ(Kej䤑M": [{ - "1Ꮼ?>옿I╅C<ގ?ꊌ冉SV5A㢊㶆z-๎玶绢2F뵨@㉌뀌o嶔f9-庒茪珓뷳4": null, - ";lᰳ": "CbB+肻a䄷苝*/볳+/4fq=㰁h6瘉샴4铢Y骐.⌖@哼猎㦞+'gꋸ㒕ߤ㞑(䶒跲ti⑴a硂#No볔", - "t?/jE幸YHT셵⩎K!Eq糦ꗣv刴w\"l$ο:=6:移": { - "z]鑪醊嫗J-Xm銌翁絨c里됏炙Ep㣋鏣똼嚌䀓GP﹖cmf4鹭T䅿꣭姧␸wy6ꦶ;S&(}ᎧKxᾂQ|t뻳k\"d6\"|Ml췆hwLt꼼4$&8Պ褵婶鯀9": {"嵃닢ᒯ'd᧫䳳#NXe3-붋鸿ଢ떓%dK\u0013䲎ꖍYV.裸R⍉rR3蟛\\:젯:南ĺLʆ넕>|텩鴷矔ꋅⒹ{t孶㓑4_": [ - true, - null, - [ - false, - "l怨콈lᏒ", - { - "0w䲏嬧-:`䉅쉇漧\\܂yㄨb%㽄j7ᦶ涶<": 3.7899452730383747E-19, - "ꯛTẀq纤q嶏V⿣?\"g}ი艹(쥯B T騠I=仵및X": {"KX6颠+&ᅃ^f畒y[": { - "H?뱜^?꤂-⦲1a㋞&ꍃ精Ii᤾챪咽쬘唂쫷<땡劈훫놡o㥂\\ KⴙD秼F氮[{'좴:례晰Iq+I쭥_T綺砸GO煝䟪ᚪ`↹l羉q쐼D꽁ᜅ훦: vUV": true, - "u^yﳍ0㱓#[y뜌앸ꊬL㷩?蕶蘾⻍KӼ": -7931695755102841701, - "䤬轉車>\u001c鴵惋\"$쯃྆⇻n뽀G氠S坪]ಲꨍ捇Qxኻ椕駔\\9ࣼ﫻읜磡煮뺪ᶚ볝l㕆t+sζ": [[[ - true, - false, - [ - null, - 3363739578828074923, - true, - { - "\"鸣詩 볰㑵gL㯦῅춝旫}ED辗ﮈI쀤-ꧤ|㠦Z\"娑ᕸ4爏騍㣐\"]쳝Af]茛⬻싦o蚁k䢯䩐菽3廇喑ޅ": 4.5017999150704666E17, - "TYႇ7ʠ值4챳唤~Zo&ݛ": false, - "`塄J袛㭆끺㳀N㺣`꽐嶥KﯝSVᶔ∲퀠獾N딂X\"ᤏhNﬨvI": {"\u20bb㭘I䖵䰼?sw䂷쇪](泒f\"~;꼪Fԝsᝦ": {"p,'ꉂ軿=A蚶?bƉ㏵䅰諬'LYKL6B깯⋩겦뎙(ᜭ\u0006噣d꾆㗼Z;䄝䚔cd<情@䞂3苼㸲U{)<6&ꩻ钛\u001au〷N숨囖愙j=BXW욕^x芜堏Ῑ爂뛷꒻t✘Q\b": [[ - "籛&ଃ䩹.ꃩ㦔\\C颫#暪&!勹ꇶ놽攺J堬镙~軌C'꾖䣹㮅岃ᙴ鵣", - 4.317829988264744E15, - 6.013585322002147E-20, - false, - true, - null, - null, - -3.084633632357326E-20, - false, - null, - { - "\"짫愔昻 X\"藣j\"\"먁ཅѻ㘤㬯0晲DU꟒㸃d벀윒l䦾c੻*3": null, - "谈Wm陧阦咟ฯ歖擓N喴㋐銭rCCnVࢥ^♼Ⅾ젲씗刊S༝+_t赔\\b䚍뉨ꬫ6펛cL䊘᜼<\/澤pF懽&H": [ - null, - { - "W\"HDUuΌ퀟M'P4࿰H똆ⰱﮯ<\/凐蘲\"C鴫ﭒж}ꭩ쥾t5yd诪ﮡ퍉ⴰ@?氐醳rj4I6Qt": 6.9090159359219891E17, - "絛ﳛ⺂": {"諰P㗮聦`ZQ?ꫦh*റcb⧱}埌茥h{棩렛툽o3钛5鮁l7Q榛6_g)ὄ\u0013kj뤬^爖eO4Ⱈ槞鉨ͺ订%qX0T썗嫷$?\\\"봅늆'%": [ - -2.348150870600346E-19, - [[ - true, - -6619392047819511778, - false, - [[ - -1.2929189982356161E-20, - 1.7417192219309838E-19, - {"?嵲2࿐2\u0001啑㷳c縯": [ - null, - [ - false, - true, - 2578060295690793218, - { - "?\"殃呎#㑑F": true, - "}F炊_殛oU헢兔Ꝉ,赭9703.B数gTz3⏬": { - "5&t3,햓Mݸᵣ㴵;꣫䩍↳#@뫷䠅+W-ࣇzᓃ鿕ಔ梭?T䮑ꥬ旴]u뫵막bB讍:왳둛lEh=숾鱠p咐$짏#?g⹷ᗊv㷵.斈u頻\u0018-G.": "뽙m-ouࣤ஫牷\"`Ksꕞ筼3HlȨvC堈\"I]㖡玎r먞#'W賜鴇k'c룼髋䆿飉㗆xg巤9;芔cጐ/ax䊨♢큓r吓㸫೼䢗da᩾\"]屣`", - ":M딪<䢥喠\u0013㖅x9蕐㑂XO]f*Q呰瞊吭VP@9,㨣 D\\穎vˤƩs㜂-曱唅L걬/롬j㈹EB8g<\/섩o渀\"u0y&룣": ">氍緩L/䕑돯Ꟙ蕞^aB뒣+0jK⪄瑨痜LXK^힦1qK{淚t츔X:Vm{2r獁B뾄H첚7氥?쉟䨗ꠂv팳圎踁齀\\", - "D彤5㢷Gꪻ[lㄆ@὜⓰絳[ଃ獽쮹☒[*0ꑚ㜳": 9022717159376231865, - "ҖaV銣tW+$魿\u20c3亜~뫡ᙰ禿쨽㏡fṼzE/h": "5臐㋇Ჯ쮺? 昨탰Wム밎#'\"崲钅U?幫뺀⍾@4kh>騧\\0ҾEV=爐͌U捀%ꉼ 㮋<{j]{R>:gԩL\u001c瀈锌ﯲﳡꚒ'⫿E4暍㌗뵉X\"H᝜", - "ᱚגּ;s醒}犍SἿ㦣&{T$jkB\\\tḮ앾䤹o<避(tW": "vb⯽䴪䮢@|)", - "⥒퐁껉%惀뗌+녣迺顀q條g⚯i⤭룐M琹j̈́⽜A": -8385214638503106917, - "逨ꊶZ<\/W⫟솪㎮ᘇb?ꠔi\"H㧺x෷韒Xꫨฟ|]窽\u001a熑}Agn?Mᶖa9韲4$3Ỵ^=쏍煤ፐ돷2䣃%鷠/eQ9頸쥎", - 2398360204813891033, - false, - 3.2658897259932633E-19, - null, - "?ꚃ8Nn㞷幵d䲳䱲뀙ꪛQ瑓鎴]䩋-鰾捡䳡??掊", - false, - -1309779089385483661, - "ᦲxu_/yecR.6芏.ᜇ過 ~", - -5658779764160586501, - "쒌:曠=l썜䢜wk#s蕚\"互㮉m䉤~0듐䋙#G;h숄옥顇෤勹(C7㢅雚㐯L⠅VV簅<", - null, - -4.664877097240962E18, - -4.1931322262828017E18, - { - ",": { - "v㮟麑䄠뤵g{M띮.\u001bzt뢜뵡0Ǥ龍떟Ᾰ怷ϓRT@Lꀌ樂U㏠⾕e扉|bJg(뵒㠶唺~ꂿ(땉x⻫싉쁊;%0鎻V(o\f,N鏊%nk郼螺": -1.73631993428376141E18, - "쟧摑繮Q@Rᕾ㭚㾣4隅待㓎3蒟": [ - 4971487283312058201, - 8973067552274458613, - { - "`a揙ᣗ\u0015iBo¸": 4.3236479112537999E18, - "HW&퉡ぁ圍Y?瑡Qy훍q!帰敏s舠㫸zꚗaS歲v`G株巷Jp6킼 (귶鍔⾏⡈>M汐㞍ቴ꙲dv@i㳓ᇆ?黍": [ - null, - 4997607199327183467, - "E㻎蠫ᐾ高䙟蘬洼旾﫠텛㇛?'M$㣒蔸=A_亀绉앭rN帮", - null, - [{ - "Eᑞ)8餧A5u&㗾q?": [ - -1.969987519306507E-19, - null, - [ - 3.42437673373841E-20, - true, - "e걷M墁\"割P␛퍧厀R䱜3ﻴO퓫r﹉⹊", - [ - -8164221302779285367, - [ - true, - null, - "爘y^-?蘞Ⲽꪓa␅ꍨ}I", - 1.4645984996724427E-19, - [{ - "tY좗⧑mrzﺝ㿥ⴖ᥷j諅\u0000q賋譁Ꞅ⮱S\nࡣB/큃굪3Zɑ复o<\/;롋": null, - "彟h浠_|V4䦭Dᙣ♞u쿻=삮㍦\u001e哀鬌": [{"6횣楠,qʎꗇ鎆빙]㱭R굋鈌%栲j分僅ペ䇰w폦p蛃N溈ꡐꏀ?@(GI뉬$ﮄ9誁ꓚ2e甸ڋ[䁺,\u0011\u001cࢃ=\\+衪䷨ᯕ鬸K": [[ - "ㅩ拏鈩勥\u000etgWVXs陂規p狵w퓼{뮵_i\u0002ퟑႢ⬐d6鋫F~챿搟\u0096䚼1ۼ칥0꣯儏=鋷牋ⅈꍞ龐", - -7283717290969427831, - true, - [ - 4911644391234541055, - { - "I鈒첽P릜朸W徨觘-Hᎄ퐟⓺>8kr1{겵䍃〛ᬡ̨O귑o䝕'쿡鉕p5": "fv粖RN瞖蛐a?q꤄\u001d⸥}'ꣴ犿ꦼ?뤋?鵆쥴덋䡫s矷̄?ඣ/;괱絢oWfV<\/\u202cC,㖦0䑾%n賹g&T;|lj_欂N4w", - "짨䠗;䌕u i+r๏0": [{"9䥁\\఩8\"馇z䇔<\/ႡY3e狚쐡\"ุ6ﰆZ遖c\"Ll:ꮾ疣<\/᭙O◌납୕湞9⡳Und㫜\u0018^4pj1;䧐儂䗷ୗ>@e톬": { - "a⑂F鋻Q螰'<퇽Q贝瀧{ᘪ,cP&~䮃Z?gI彃": [ - -1.69158726118025933E18, - [ - "궂z簽㔛㮨瘥⤜䛖Gℤ逆Y⪾j08Sn昞ꘔ캻禀鴚P謦b{ꓮmN靐Mᥙ5\"睏2냑I\u0011.L&=?6ᄠ뻷X鸌t刑\"#z)o꫚n쳟줋", - null, - 7517598198523963704, - "ኑQp襟`uᩄr方]*F48ꔵn俺ሙ9뇒", - null, - null, - 6645782462773449868, - 1219168146640438184, - null, - { - ")ယ넌竀Sd䰾zq⫣⏌ʥ\u0010ΐ' |磪&p牢蔑mV蘸૰짬꺵;K": [ - -7.539062290108008E-20, - [ - true, - false, - null, - true, - 6574577753576444630, - [[ - 1.2760162530699766E-19, - [ - null, - [ - "顊\\憎zXB,", - [{ - "㇆{CVC9-MN㜋ઘR눽#{h@ퟨ!鼚׼XOvXS\u0017ᝣ=cS+梽៲綆16s덽휐y屬?ᇳG2ᴭ\u00054쫖y룇nKcW̭炦s/鰘ᬽ?J|퓀髣n勌\u0010홠P>j": false, - "箴": [ - false, - "鍞j\"ꮾ*엇칬瘫xṬ⭽쩁䃳\"-⋵?ᦽ댎Ĝ": true, - "Pg帯佃籛n㔠⭹࠳뷏≻࿟3㞱!-쒾!}쭪䃕!籿n涻J5ਲ਼yvy;Rኂ%ᔡጀ裃;M⣼)쵂쑈": 1.80447711803435366E18, - "ꈑC⡂ᑆ㤉壂뎃Xub<\/쀆༈憓ق쨐ק\\": [ - 7706977185172797197, - {"": {"K╥踮砆NWࡆFy韣7ä밥{|紒︧䃀榫rᩛꦡTSy잺iH8}ퟴ,M?Ʂ勺ᴹ@T@~꾂=I㙕뾰_涀쑜嫴曣8IY?ҿo줫fऒ}\\S\"ᦨ뵼#nDX": { - "♘k6?଱癫d68?㽚乳䬳-V顷\u0005蝕?\u0018䞊V{邾zじl]雏k臤~ൖH뒐iꢥ]g?.G碄懺䔛pR$䅒X觨l봜A刊8R梒',}u邩퉕?;91Ea䈈믁G⊶芔h袪&廣㺄j;㡏綽\u001bN頸쳘橆": -2272208444812560733, - "拑Wﵚj鵼駳Oࣿ)#㾅顂N傓纝y僱栜'Bꐍ-!KF*ꭇK¦?䈴^:啤wG逭w᧯": "xᣱmYe1ۏ@霄F$ě꧘푫O䤕퀐Pq52憬ꀜ兴㑗ᡚ?L鷝ퟐ뭐zJꑙ}╆ᅨJB]\"袌㺲u8䯆f", - "꿽၅㔂긱Ǧ?SI": -1669030251960539193, - "쇝ɨ`!葎>瞺瘡驷錶❤ﻮ酜=": -6961311505642101651, - "?f7♄꫄Jᡔ훮e읇퍾፣䭴KhखT;Qty}O\\|뫁IῒNe(5惁ꥶㆷY9ﮡ\\ oy⭖-䆩婁m#x봉>Y鈕E疣s驇↙ᙰm<": {"퉻:dꂁ&efᅫ쫢[\"돈늖꺙|Ô剐1͖-K:ʚ᭕/;쏖㷛]I痐职4gZ4⍜kเꛘZ⥺\\Bʫᇩ鄨魢弞&幟ᓮ2̊盜", - -9006004849098116748, - -3118404930403695681, - { - "_彃Y艘-\"Xx㤩㳷瑃?%2䐡鵛o귵옔夘v*탋职&㳈챗|O钧": [ - false, - "daꧺdᗹ羞쯧H㍤鄳頳<型孒ン냆㹀f4㹰\u000f|C*ሟ鰠(O<ꨭ峹ipຠ*y೧4VQ蔔hV淬{?ᵌEfrI_", - "j;ꗣ밷邍副]ᗓ", - -4299029053086432759, - -5610837526958786727, - [ - null, - [ - -1.3958390678662759E-19, - { - "lh좈T_믝Y\"伨\u001cꔌG爔겕ꫳ晚踍⿻읐T䯎]~e#฽燇\"5hٔ嶰`泯r;ᗜ쮪Q):/t筑,榄&5懶뎫狝(": [{ - "2ፁⓛ]r3C攟וּ9賵s⛔6'ஂ|\"ⵈ鶆䐹禝3\"痰ࢤ霏䵩옆䌀?栕r7O簂Isd?K᫜`^讶}z8?z얰T:X倫⨎ꑹ": -6731128077618251511, - "|︦僰~m漿햭\\Y1'Vvخ굇ቍ챢c趖": [null] - }], - "虌魿閆5⛔煊뎰㞤ᗴꥰF䮥蘦䂪樳-K᝷-(^\u20dd_": 2.11318679791770592E17 - } - ] - ] - ]}, - "묗E䀳㧯᳀逞GMc\b墹㓄끖Ơ&U??펌鑍 媋k))ᄊ": null, - "묥7콽벼諌J_DɯﮪM殴䣏,煚ྼ`Y:씧<\/⩫%yf䦀!1Ჶk춎Q米W∠WC跉鬽*ᛱi㴕L꘻ꀏ쓪\"_g鿄'#t⽙?,Wg㥖|D鑆e⥏쪸僬h鯔咼ඡ;4TK聎졠嫞" - } - ] - ] - } - ] - ] - ]}} - } - ]} - }, - "뿋뀾淣截䔲踀&XJ펖꙯^Xb訅ꫥgᬐ>棟S\"혧騾밫겁7-": "擹8C憎W\"쵮yR뢩浗絆䠣簿9䏈引Wcy䤶孖ꯥ;퐌]輩䍐3@{叝 뽸0ᡈ쵡Ⲇ\u001dL匁꧐2F~ݕ㪂@W^靽L襒ᦘ~沦zZ棸!꒲栬R" - } - ] - ], - "Z:덃൛5Iz찇䅄駠㭧蓡K1": "e8᧤좱U%?ⵇ䯿鿝\u0013縮R∱骒EO\u000fg?幤@֗퉙vU`", - "䐃쪈埽້=Ij,쭗쓇చ": false - }]}} - ] - } - ]} - } - ] - ] - ], - "咰긖VM]᝼6䓑쇎琺etDҌ?㞏ꩄ퇫밉gj8蠃\"⩐5䛹1ࣚ㵪": "ക蹊?⎲⧘⾚̀I#\"䈈⦞돷`wo窭戕෱휾䃼)앷嵃꾞稧,Ⴆ윧9S?೗EMk3Მ3+e{⹔Te驨7䵒?타Ulg悳o43" - } - ], - "zQᤚ纂땺6#ٽ﹧v￿#ࠫ휊冟蹧텈ꃊʆ?&a䥯De潝|쿓pt瓞㭻啹^盚2Ꝋf醪,얏T窧\\Di䕎谄nn父ꋊE": -2914269627845628872, - "䉩跐|㨻ᷢ㝉B{蓧瞸`I!℄욃힕#ೲᙾ竛ᔺCjk췒늕貭词\u0017署?W딚%(pꍁ⤼띳^=on뺲l䆼bzrﳨ[&j狸䠠=ᜑꦦ\u2061յnj=牲攑)M\\龏": false, - "뎕y絬᫡⥮Ϙᯑ㌔/NF*˓.,QEzvK!Iwz?|쥾\"ꩻL꼗Bꔧ賴緜s뉣隤茛>ロ?(?^`>冺飒=噸泥⺭Ᲊ婓鎔븜z^坷裮êⓅ໗jM7ﶕ找\\O": 1.376745434746303E-19 - }, - "䐛r滖w㏤,|Nዜ": false - } - ]], - "@꿙?薕尬 gd晆(띄5躕ﻫS蔺4)떒錸瓍?~": 1665108992286702624, - "w믍nᏠ=`঺ᅥC>'從됐槷䤝眷螄㎻揰扰XᅧC贽uჍ낟jKD03T!lDV쀉Ӊy뢖,袛!终캨G?鉮Q)⑗1쾅庅O4ꁉH7?d\u0010蠈줘월ސ粯Q!낇껉6텝|{": null, - "~˷jg쿤촖쉯y": -5.5527605669177098E18, - "펅Wᶺzꐆと푭e?4j仪열[D<鈑皶婆䵽ehS?袪;HꍨM뗎ば[(嗏M3q퍟g4y╸鰧茀[Bi盤~﫝唎鋆彺⦊q?B4쉓癚O洙킋툈䶯_?ퟲ": null - } - ] - ]] - ]], - "꟱Ԕ㍤7曁聯ಃ錐V䷰?v㪃૦~K\"$%请|ꇹn\"k䫛㏨鲨\u2023䄢\u0004[︊VJ?䶟ាꮈ䗱=깘U빩": -4863152493797013264 - } - ]}]} - ] - }}} - ], - "쏷쐲۹퉃~aE唙a챑,9㮹gLHd'䔏|킗㍞䎥&KZYT맵7䥺Nⱳ同莞鿧w\\༌疣n/+ꎥU\"封랾○ퟙAJᭌ?9䛝$?驔9讐짘魡T֯c藳`虉C읇쐦T" - } - ], - "谶개gTR￐>ၵ͚dt晑䉇陏滺}9㉸P漄": -3350307268584339381 - }] - ] - ] - ]] - ] - ], - "0y꟭馋X뱔瑇:䌚￐廿jg-懲鸭䷭垤㒬茭u賚찶ಽ+\\mT땱\u20821殑㐄J쩩䭛ꬿNS潔*d\\X,壠뒦e殟%LxG9:摸": 3737064585881894882, - "풵O^-⧧ⅶvѪ8廸鉵㈉ר↝Q㿴뺟EႳvNM:磇>w/៻唎뷭୥!냹D䯙i뵱貁C#⼉NH6`柴ʗ#\\!2䂗Ⱨf?諳.P덈-返I꘶6?8ꐘ": -8934657287877777844, - "溎-蘍寃i诖ര\"汵\"\ftl,?d⼡쾪⺋h匱[,෩I8MҧF{k瓿PA'橸ꩯ綷퉲翓": null - } - ] - ], - "ោ係؁<元": 1.7926963090826924E-18 - }}] - } - ] - ]]}] - }] - ] - ] - ] - ], - "ጩV<\"ڸsOᤘ": 2.0527167903723048E-19 - }] - ]} - ] - ]], - "∳㙰3젴p᧗䱙?`yZA8Ez0,^ᙛ4_0븢\u001ft:~䎼s.bb룦明yNP8弆C偯;⪾짍'蕴뮛": -6976654157771105701, - "큵ꦀ\\㇑:nv+뒤燻䀪ﴣ﷍9ᚈ኷K㚊誦撪䚛,ꮪxሲ쳊\u0005HSf?asg昱dqꬌVꙇ㼺'k*'㈈": -5.937042203633044E-20 - } - ] - }], - "?}\u20e0],s嶳菋@#2u쒴sQS䩗=ꥮ;烌,|ꘔ䘆": "ᅩ영N璠kZ먕眻?2ቲ芋眑D륟渂⸑ﴃIRE]啗`K'" - }}, - "쨀jmV賂ﰊ姐䂦玞㬙ᏪM᪟Վ씜~`uOn*ॠ8\u000ef6??\\@/?9見d筜ﳋB|S䝬葫㽁o": true - }, - "즛ꄤ酳艚␂㺘봿㎨iG৕ࡿ?1\"䘓您\u001fSኝ⺿溏zៀ뻤B\u0019?윐a䳵᭱䉺膷d:<\/": 3935553551038864272 - } - ] - ]} - ]] - ]] - ]} - } - ] - } - ]]}}, - "᥺3h↛!ꋰy\"攜(ெl䪕oUkc1A㘞ᡲ촾ᣫ<\/䒌E㛝潨i{v?W౾H\\RჅpz蝬R脾;v:碽✘↯삞鷱o㸧瑠jcmK7㶧뾥찲n": true, - "ⶸ?x䊺⬝-䰅≁!e쩆2ꎿ准G踌XXᩯ1߁}0?.헀Z馟;稄\baDꟹ{-寪⚈ꉷ鮸_L7ƽᾚ<\u001bጨA䧆송뇵⨔\\礍뗔d设룱㶉cq{HyぱR㥽吢ſtp": -7985372423148569301, - "緫#콮IB6<\/=5Eh礹\t8럭@饹韠r㰛斣$甝LV췐a갵'请o0g:^": "䔨(.", - "띳℡圤pン௄ĝ倧訜B쁟G䙔\"Sb⓮;$$▏S1J뢙SF|赡g*\"Vu䲌y": "䪈&틐),\\kT鬜1풥;뷴'Zေ䩹@J鞽NぼM?坥eWb6榀ƩZڮ淽⺞삳煳xჿ絯8eⶍ羷V}ჿ쎱䄫R뱃9Z>'\u20f1ⓕ䏜齮" - } - ] - ]]] - }} - } - ] - ]}, - "펮b.h粔폯2npX詫g錰鷇㇒<쐙S値bBi@?镬矉`剔}c2壧ଭfhY깨R()痩⺃a\\⍔?M&ﯟ<劜꺄멊ᄟA\"_=": null - }, - "~潹Rqn榢㆓aR鬨侅?䜑亡V_翅㭔(䓷w劸ၳDp䀅<\/ﰎ鶊m䵱팱긽ꆘ긓准D3掱;o:_ќ)껚콥8곤d矦8nP倥ꃸI": null, - "뾎/Q㣩㫸벯➡㠦◕挮a鶧⋓偼\u00001뱓fm覞n?㛅\"": 2.8515592202045408E17 - }], - ",": -5426918750465854828, - "2櫫@0柡g䢻/gꆑ6演&D稒肩Y?艘/놘p{f투`飷ᒉ챻돎<늛䘍ﴡ줰쫄": false, - "8(鸑嵀⵹ퟡ<9㣎Tߗ┘d슒ل蘯&㠦뮮eࠍk砝g 엻": false, - "d-\u208b?0ﳮ嵙'(J`蔿d^踅⤔榥\\J⵲v7": 6.8002426206715341E17, - "ཎ耰큓ꐕ㱷\u0013y=詽I\"盈xm{0쾽倻䉚ષso#鰑/8㸴짯%ꀄ떸b츟*\\鲷礬ZQ兩?np㋄椂榨kc᡹醅3": false, - "싊j20": false - }]] - ]], - "俛\u0017n緽Tu뫉蜍鼟烬.ꭠIⰓ\"Ἀ᜾uC쎆J@古%ꛍm뻨ᾀ画蛐휃T:錖㑸ዚ9죡$": true - } - ] - ], - "㍵⇘ꦖ辈s}㱮慀밒s`\"㞟j:`i픻Z섫^諎0Ok{켿歁෣胰a2﨤[탳뚬쎼嫭뉮m": 409440660915023105, - "w墄#*ᢄ峠밮jLa`ㆪ꺊漓Lで끎!Agk'ꁛ뢃㯐岬D#㒦": false, - "ଦPGI䕺L몥罭ꃑ궩﮶#⮈ᢓӢ䚬p7웼臧%~S菠␌힀6&t䳙y㪘냏\\*;鉏ᅧ鿵'嗕pa\"oL쇿꬈Cg": "㶽1灸D⟸䴅ᆤ뉎﷛渤csx 䝔цꬃ锚捬?ຽ+x~꘩uI࡞\u0007栲5呚ẓem?袝\")=㥴䨃pac!/揎Y", - "ᷱo\\||뎂몷r篙|#X䦜I#딌媸픕叞RD斳X4t⯩夬=[뭲r=绥jh뷱츝⪘%]⚋܈㖴スH텹m(WO曝劉0~K3c柢Ր㏉着逳~": false, - "煽_qb[첑\\륌wE❽ZtCNﭝ+餌ᕜOꛭ": "{ﳾ쉌&s惧ᭁⵆ3䢫;䨞팑꒪흘褀࢖Q䠿V5뭀䎂澻%받u5텸oA⮥U㎦;B䳌wz䕙$ឿ\\௅婺돵⪾퐆\\`Kyौꋟ._\u0006L챯l뇠Hi䧈偒5", - "艊佁ࣃ롇䱠爬!*;⨣捎慓q靓|儑ᨋL+迥=6㒺딉6弄3辅J-㕎뛄듘SG㆛(\noAzQꝱ䰩X*ぢO퀌%펠낌mo틮a^<\/F&_눊ᾉ㨦ы4\"8H": 2974648459619059400, - "鬙@뎣䫳ၮ끡?){y?5K;TA*k溱䫜J汃ꂯ싔썍\u001dA}룖(<\/^,": false, - "몏@QꋦFꊩᒐ뎶lXl垨4^郣|ꮇ;䝴ᝓ}쵲z珖": null - } - ]]]], - ":_=닧弗D䙋暨鏛. 㱻붘䂍J儒&ZK/녩䪜r囁⽯D喠죥7⹌䪥c\u001a\u2076￞妈朹oLk菮F౟覛쐧㮏7T;}蛙2{9\"崓bB<\/⡷룀;즮鿹)丒툃୤뷠5W⊢嶜(fb뭳갣": "E{响1WM" - }}, - "䘨tjJ驳豨?y輊M*᳑梵瞻઻ofQG瑮e": 2.222802939724948E-19, - "䮴=❑➶T෋w䞜\"垦ꃼUt\u001dx;B$뵣䙶E↌艣ᡥ!᧟;䱀[䔯k쬃`੍8饙른熏'2_'袻tGf蒭J땟as꯳╖&啒zWࡇᒫYSᏬ\u0014ℑ첥鈤|cG~Pᓮ\">\"": "ႆl\f7V儊㦬nHꄬꨧC{쐢~C⮃⛓嶦vꄎ1w鰠嘩뿠魄&\"_qMⵖ釔녮ꝇ 㝚{糍J哋 cv?-jkﻯྌ鹑L舟r", - "龧葆yB✱H盋夔ﶉ?n*0(": "ꧣኆ㢓氥qZZ酒ຜ)鮢樛)X䣆gTSґG텞k.J圬疝롫쯭z L:\\ྤ@w炋塜쿖ᾳy뢀䶃뱝N䥨㚔勇겁#p", - "도畎Q娡\"@S/뼋:䵏!P衅촚fVHQs✜ᐫi㻑殡B䜇%믚k*U#濨낄~": "ꍟዕ쳸ꍈ敋&l妏\u0005憡멗瘌uPgᅪm<\/To쯬锩h뒓k" - } - ] - }], - "墥홞r绚<\/⸹ⰃB}<躅\\Y;๑@䔸>韫䜲뱀X뗩鿥쩗SI%ﴞ㳕䛇?<\/\u00018x\\&侂9鋙a[LR㋭W胕)⡿8㞙0JF,}?허d1cDMᐃ␛鄝ⱕ%X)!XQ": "ⳍꗳ=橇a;3t⦾꼑仈ူaᚯ⯋ꕃAs鴷N⍕_䎃ꙎAz\u0016䯷\\<࿫>8q{}キ?ᣰ}'0ᴕ펓B┦lF#趤厃T?㕊#撹圂䆲" - }, - "܋닐龫論c웑": false, - "ㇿ/q\"6-co髨휝C큦#\u001b4~?3䐹E삇<<": 7.600917488140322E-20, - "䁝E6?㣖ꃁ间t祗*鑠{ḣV(浾h逇큞=W?ૉ?nꇽ8ꅉຉj으쮺@Ꚅ㰤u]Oyr": "v≁᫸_*όAඤԆl)ۓᦇQ}폠z༏q滚", - "ソ᥊/넺I": true - }]] - ] - ] - ] - ]] - }, - "䭑Ik攑\u0002QV烄:芩.麑㟴㘨≕": true, - "坄꿕C쇻풉~崍%碼\\8\"䬦꣙": null, - "欌L圬䅘Y8c(♺2?ON}o椳s宥2䉀eJ%闹r冁O^K諭%凞⺉⡻,掜?$ꥉ?略焕찳㯊艼誜4?\"﯎<゛XፈINT:詓 +": -1.0750456770694562E-19, - "獒àc뜭싼ﺳ뎤K`]p隨LtE": null, - "甙8䵊神EIꩤ鐯ᢀ,ﵮU䝑u疒ử驺䚿≚ഋ梶秓F`覤譐#짾蔀묊4<媍쬦靪_Yzgcࡶ4k紥`kc[Lﮗ簐*I瀑[⾰L殽鑥_mGȠ<\/|囹灠g桰iri": true, - "챓ꖙꟻ좝菇ou,嗠0\\jK핻뜠qwQ?ഩ㼕3Y彦b\u009bJ榶N棨f?됦鏖綃6鳵M[OE봨u햏.Ꮁ癜蟳뽲ꩌ뻾rM豈R嗀羫 uDꎚ%": null - }, - "V傜2<": 7175127699521359521 - }], - "铫aG切<\/\"ী⊆e<^g࢛)D顝nאַ饼\u008c猪繩嵿ﱚCꡬ㻊g엺A엦\u000f暿_f꿤볝㦕桦`蒦䎔j甬%岝rj 糏": "䚢偎눴Au<4箞7礦Iﱔ坠eȧ䪸u䵁p|逹$嗫쨘ꖾ﷐!胠z寓팢^㨔|u8Nሇe텔ꅦ抷]،鹎㳁#༔繁 ", - "낂乕ꃻ볨ϱ-ꇋ㖍fs⿫)zꜦ/K?솞♞ꑌ宭hJ᤭瑥Fu": false, - "쟰ぜ魛G\u0003u?`㾕ℾ㣭5螠烶這趩ꖢ:@咕ꐶx뒘느m䰨b痃렐0鳊喵熬딃$摉_~7*ⱦ녯1錾GKhJ惎秴6'H妈Tᧅ窹㺒疄矤铟wላ": null, - "쯆q4!3錕㲏ⵆ㇛꘷Z瑩뭆\\◪NH\u001d\\㽰U~㯶<\"쑣낞3ᵤ'峉eꢬ;鬹o꣒木X*長PXᘱu\"䠹n惞": null, - "ᅸ祊\"&ꥴCjࢼ﴿?䡉`U效5殼㮞V昽ꏪ#ﺸ\\&t6x꠹盥꣰a[\u001aꪍSpe鎿蠹": -1.1564713893659811E-19 - } - ]] - ] - ] - ], - "羵䥳H,6ⱎ겾|@t\"#햊1|稃 섭)띜=뻔ꡜ???櫎~*ῡ꫌/繣ﻠq": null - } - ]} - ]}, - "츤": false - }}, - "s": 3.7339341963399598E18 - } - ], - "N,I?1+㢓|ࣱ嶃쩥V2\u0012(4EE虪朶$|w颇v步": "~읢~_,Mzr㐫YB溓E淚\"ⅹ䈔ᏺ抙 b,nt5V㐒J檶ꏨ⻔?", - "Q껑ꡡ}$넎qH煔惍/ez^!ẳF댙䝌馻剁8": "梲;yt钰$i冄}AL%a j뜐奷걳뚾d꿽*ሬuDY3?뮟鼯뮟w㍪틱V", - "o{Q/K O胟㍏zUdꀐm&⨺J舕⾏魸訟㌥[T籨櫉唐킝 aṭ뱫촙莛>碶覆⧬짙쭰ׯdAiH໥벤퐥_恸[ 0e:죃TC弼荎뵁DA:w唵ꣁ": null, - "὏樎䵮軧|?౗aWH쩃1 ꅭsu": null - } - ] - }, - "勂\\&m鰈J釮=Ⲽ鳋+䂡郑": null, - "殣b綊倶5㥗惢⳷萢ᑀ䬄镧M^ﱴ3⣢翣n櫻1㨵}ኯ뗙顖Z.Q➷ꮨ뗇\u0004": "ꔙ䁼>n^[GीA䨟AM琢ᒊS쨲w?d㶣젊嘶纝麓+愣a%気ྞSc됓ᔘ:8bM7Xd8㶑臌]Ꙥ0ꐭ쒙䫣挵C薽Dfⵃ떼᷸", - "?紡.셪_෨j\u0013Ox┠$Xᶨ-ᅇo薹-}軫;y毝㪜K㣁?.EV쮱4둽⛻䤜'2盡\u001f60(|e쐰㼎ᦀ㒧-$l@ﻑ坳\u0003䭱响巗WFo5c㧆T턁Y맸♤(": -2.50917882560589088E17 - }} - ], - "侸\\릩.᳠뎠狣살cs项䭩畳H1s瀉븇19?.w骴崖㤊h痠볭㞳㞳䁮Ql怠㦵": "@䟴-=7f", - "鹟1x௢+d ;vi䭴FSDS\u0004hꎹ㚍?⒍⦏ў6u,扩@됷Su)Pag휛TᒗV痩!瞏釀ꖞ蘥&ೞ蘐ꭰꞇᝎ": "ah懱Ժ&\u20f7䵅♎඀䞧鿪굛ౕ湚粎蚵ᯋ幌YOE)५襦㊝Y*^\"R+ඈ咷蝶9ꥂ榨艦멎헦閝돶v좛咊E)K㓷ྭr", - "搆q쮦4綱켙셁.f4<\/g<籽늷?#蚴픘:fF\u00051㹉뀭.ᰖ풎f֦Hv蔎㧤.!䭽=鞽]음H:?\"-4": 8.740133984938656E-20 - }]} - } - ], - "tVKn딩꘥⊾蹓᤹{\u0003lR꼽ᄲQFᅏ傅ﱋ猢⤊ᔁ,E㓒秤nTතv`♛I\u0000]꫔ṞD\"麵c踝杰X&濿또꣹깳౥葂鿎\\aꡨ?": 3900062609292104525 - } - ], - "ਉ샒⊩Lu@S䧰^g": -1.1487677090371648E18, - "⎢k⑊꬗yᏫ7^err糎Dt\u000bJ礯확ㆍ沑サꋽe赔㝢^J\u0004笲㿋idra剰-᪉C錇/Ĝ䂾ညS지?~콮gR敉⬹'䧭": 1901472137232418266, - "灗k䶥:?촽贍쓉꓈㒸g獘[뵎\\胕?\u0014_榙p.j稶,$`糉妋0>Fᡰly㘽$?": "]ꙛO赎&#㠃돱剳\"<◆>0誉齐_|z|裵씪>ᐌ㼍\"Z[琕}O?G뚇諦cs⠜撺5cu痑U圲\u001c?鴴計l춥/╓哼䄗茏ꮅ뫈댽A돌롖뤫V窗讬sHd&\nOi;_u" - } - ], - "Uﺗ\\Y\\梷䄬~\u0002": null, - "k\"Y磓ᗔ휎@U冈<\/w컑)[": false, - "曏J蝷⌻덦\u001f㙳s꥓⍟邫P늮쥄c∬ྡྷ舆렮칤Z趣5콡넛A쳨\\뀙骫(棻.*&輛LiIfi{@EA婳KᬰTXT": -4.3088230431977587E17 - }]} - ] - ], - "곃㲧<\/dఓꂟs其ࡧ&N葶=?c㠤Ჴ'횠숄臼#\u001a~": false - } - ] - ]}] - }] - }} - ], - "2f`⽰E쵟>J笂裭!〛觬囀ۺ쟰#桊l鹛ⲋ|RA_Vx፭gE됓h﵀mfỐ|?juTU档[d⢼⺻p濚7E峿": 5613688852456817133 - }, - "濘끶g忮7㏵殬W팕Q曁 뫰)惃廊5%-蹚zYZ樭ﴷQ锘쯤崫gg": true, - "絥ᇑ⦏쒓븣爚H.㗊߄o蘵貆ꂚ(쎔O᥉ﮓ]姨Wꁓ!RMA|o퉢THx轮7M껁U즨'i뾘舯o": "跥f꜃?" - }} - ], - "鷰鹮K-9k;ﰰ?_ݦѷ-ꅣ䩨Zꥱ\"mꠟ屎/콑Y╘2&鸞脇㏢ꀇ࠺ⰼ拾喭틮L꽩bt俸墶 [l/웄\"꾦\u20d3iও-&+\u000fQ+໱뵞": -1.296494662286671E-19 - }, - "HX੹/⨇୕붷Uﮘ旧\\쾜͔3l鄈磣糂̖䟎Eᐳw橖b῀_딕hu葰窳闹вU颵|染H죶.fP䗮:j䫢\\b뎖i燕ꜚG⮠W-≚뉗l趕": "ଊ칭Oa᡺$IV㷧L\u0019脴셀붿餲햪$迳向쐯켂PqfT\" ?I屉鴼쿕@硙z^鏕㊵M}㚛T젣쓌-W⩐-g%⺵<뮱~빅╴瑿浂脬\u0005왦燲4Ⴭb|D堧 <\/oEQh", - "䘶#㥘੐캔f巋ἡAJ䢚쭈ࣨ뫒*mᇊK,ࣺAꑱ\u000bR<\/A\"1a6鵌㯀bh곿w(\"$ꘁ*rಐ趣.d࿩k/抶면䒎9W⊃9": "漩b挋Sw藎\u0000", - "畀e㨼mK꙼HglKb,\"'䤜": null - }]}] - ] - ] - }] - ]} - ] - ]} - ], - "歙>駿ꣂ숰Q`J΋方樛(d鱾뼣(뫖턭\u20f9lচ9歌8o]8윶l얶?镖G摄탗6폋폵+g:䱫홊<멀뀿/س|ꭺs걐跶稚W々c㫣⎖": "㣮蔊깚Cꓔ舊|XRf遻㆚︆'쾉췝\\&言", - "殭\"cށɨꝙ䞘:嬮e潽Y펪㳅/\"O@ࠗ겴]췖YǞ(t>R\"N?梳LD恭=n氯T豰2R諸#N}*灧4}㶊G䍣b얚": null, - "襞<\/啧 B|싞W瓇)6簭鼡艆lN쩝`|펭佡\\間邝[z릶&쭟愱ꅅ\\T᰽1鯯偐栈4̸s윜R7⒝/똽?치X": "⏊躖Cﱰ2Qẫ脐&இ?%냝悊", - ",鰧偵셣싹xᎹ힨᯳EṬH㹖9": -4604276727380542356 - } - } - ]]]], - "웺㚑xs}q䭵䪠馯8?LB犯zK'os䚛HZ\"L?셎s^㿧㴘Cv2": null - }] - ] - ] - ], - "Kd2Kv+|z": 7367845130646124107, - "ᦂⶨ?ᝢ 祂些ഷ牢㋇操\"腭䙾㖪\\(y4cE뽺ㆷ쫺ᔖ%zfۻ$ў1柦,㶢9r漢": -3.133230960444846E-20, - "琘M焀q%㢟f鸯O⣏蓑맕鯊$O噷|)z褫^㢦⠮ꚯ꫞`毕1qꢚ{ĭ䎀বώT\"뱘3G൴?^^of": null - } - ], - "a8V᯺?:ﺃ/8ꉿBq|9啓댚;*i2": null, - "cpT瀇H珰Ừpೃi鎪Rr␣숬-鹸ҩ䠚z脚цGoN8入y%趌I┽2ឪЀiJNcN)槣/▟6S숆牟\"箑X僛G殱娇葱T%杻:J諹昰qV쨰": 8331037591040855245 - }], - "G5ᩜ䄗巢껳": true - } - }, - "Ồ巢ゕ@_譙A`碫鄐㡥砄㠓(^K": "?܃B혢▦@犑ὺD~T⧁|醁;o=J牌9냚⢽㨘{4觍蚔9#$∺\u0016p囅\\3Xk阖⪚\"UzA穕롬✎➁㭒춺C㣌ဉ\"2瓑员ᅽꝶ뫍}꽚ꞇ鶂舟彺]ꍽJC蝧銉", - "␆Ě膝\"b-퉐ACR言J謈53~V튥x䜢?ꃽɄY뮩ꚜ": "K/↾e萃}]Bs⾿q룅鷦-膋?m+死^魊镲6", - "粡霦c枋AHퟁo礼Ke?qWcA趸㡔ꂏ?\u000e춂8iতᦜ婪\u0015㢼nﵿꍻ!ᐴ関\u001d5j㨻gfῩUK5Ju丝tかTI'?㓏t>⼟o a>i}ᰗ;뤕ܝ": false, - "ꄮ匴껢ꂰ涽+䜨B蛹H䛓-k蕞fu7kL谖,'涃V~챳逋穞cT\"vQ쓕ObaCRQ㓡Ⲯ?轭⫦輢墳?vA餽=h䮇킵n폲퉅喙?\"'1疬V嬗Qd灗'Lự": "6v!s믁㭟㣯獃!磸餠ቂh0C뿯봗F鷭gꖶ~コkK<ᦈTt\\跓w㭣횋钘ᆹ듡䑚W䟾X'ꅔ4FL勉Vܴ邨y)2'〚쭉⽵-鞣E,Q.?块", - "?(˧쩯@崟吋歄K": null - }, - "Gc럃녧>?2DYI鴿\\륨)澔0ᔬlx'觔7젘⤡縷螩%Sv׫묈/]↱&S h\u0006歋ᑛxi̘}ひY蔯_醨鯘煑橾8?䵎쨋z儬ꁏ*@츾:": null - } - } - } - ] - ] - ]} - }, - "HO츧G": 3.694949578823609E17, - "QC\u0012(翻曇Tf㷟bGBJ옉53\\嚇ᛎD/\u001b夾၉4\"핀@祎)쫆yD\"i먎Vn㿿V1W᨝䶀": -6150931500380982286, - "Z㓮P翸鍱鉼K䋞꘺튿⭁Y": -7704503411315138850, - "]모开ꬖP븣c霤<[3aΠ\"黁䖖䰑뮋ꤦ秽∼㑷冹T+YUt\"싳F↭䖏&鋌": -2.7231911483181824E18, - "tꎖ": -4.9517948741799555E-19, - "䋘즊.⬅IꬃۣQ챢ꄑ黐|f?C⾺|兕읯sC鬸섾整腨솷V": "旆柩l쪦sᖸMy㦅울썉瘗㎜檵9ꍂ駓ૉᚿ/u3씅徐拉[Z䞸ࡗ1ꆱ&Q풘?ǂ8\u0011BCDY2볨;鸏": null, - "幫 n煥s쁇펇 왊-$C\"衝:\u0014㣯舼.3뙗Yl⋇\"K迎멎[꽵s}9鉳UK8쐥\"掄㹖h㙈!얄સ?Ꜳ봺R伕UTD媚I䜘W鏨蔮": -4.150842714188901E-17, - "ﺯ^㄄\b죵@fྉkf颡팋Ꞧ{/Pm0V둳⻿/落韒ꊔᚬ@5螺G\\咸a谆⊪ቧ慷绖?财(鷇u錝F=r၍橢ឳn:^iᴵtD볠覅N赴": null - }] - }] - } - ] - ]} - ]}, - "謯?w厓奰T李헗聝ឍ貖o⪇弒L!캶$ᆅ": -4299324168507841322, - "뺊奉_垐浸延몏孄Z舰2i$q붿좾껇d▵餏\"v暜Ҭ섁m￴g>": -1.60911932510533427E18 - } - ] - } - ] - ]], - "퉝꺔㠦楶Pꅱ": 7517896876489142899, - "": false - } - ]}, - "是u&I狻餼|谖j\"7c됮sסּ-踳鉷`䣷쉄_A艣鳞凃*m⯾☦椿q㎭N溔铉tlㆈ^": 1.93547720203604352E18, - "kⲨ\\%vr#\u000bⒺY\\t<\/3﬌R訤='﹠8蝤Ꞵ렴曔r": false - } - ]}, - "阨{c?C\u001d~K?鎌Ԭ8烫#뙣P초遗t㭱E­돒䆺}甗[R*1!\\~h㕅᰺@<9JꏏષI䳖栭6綘걹ᅩM\"▯是∔v鬽顭⋊譬": "운ﶁK敂(欖C취پ℄爦賾" - } - }} - }], - "鷨赼鸙+\\䭣t圙ڹx᜾ČN<\/踘\"S_맶a鷺漇T彚⎲i㈥LT-xA캔$\u001cUH=a0츺l릦": "溣㣂0濕=鉵氬駘>Pꌢpb솇쬤h힊줎獪㪬CrQ矠a&脍꼬爼M茴/΅\u0017弝轼y#Ꞡc6둴=?R崏뷠麖w?" - }, - "閕ᘜ]CT)䵞l9z'xZF{:ؐI/躅匽졁:䟇AGF૸\u001cퟗ9)駬慟ꡒꆒRS״툋A<>\u0010\"ꂔ炃7g덚E৏bꅰ輤]o㱏_뷕ܘ暂\"u": "芢+U^+㢩^鱆8*1鈶鮀\u0002뺰9⬳ꪮlL䃣괟,G8\u20a8DF㉪錖0ㄤ瓶8Nଷd?眡GLc陓\\_죌V쁰ल二?c띦捱 \u0019JC\u0011b⤉zẒT볕\"绣蘨뚋cꡉkI\u001e鳴", - "ꃣI'{6u^㡃#཰Kq4逹y൒䧠䵮!㱙/n??{L풓ZET㙠퍿X2᩟綳跠葿㚙w཮x캽扳B唕S|尾}촕%N?o䪨": null, - "ⰴFjෟ셈[\u0018辷px?椯\\1<ﲻ栘ᣁ봢憠뉴p": -5263694954586507640 - } - ] - ]] - ]} - ]}] - ] - ], - "?#癘82禩鋆ꊝty?&": -1.9419029518535086E-19 - } - ] - ] - ]} - ] - ] - ], - "훊榲.|῕戄&.㚏Zꛦ2\"䢥ሆ⤢fV_摕婔?≍Fji冀탆꜕i㏬_ẑKᅢ꫄蔻XWc|饡Siẘ^㲦?羡2ぴ1縁ᙅ?쐉Ou": false - }]] - ]}}}, - "慂뗄卓蓔ᐓ匐嚖/颹蘯/翻ㆼL?뇊,텵<\\獷ごCボ": null - }, - "p溉ᑟi짣z:䒤棇r^٫%G9缑r砌롧.물农g?0׼ሩ4ƸO㣥㯄쩞ጩ": null, - "껎繥YxK\"F젷쨹뤤1wq轫o?鱑뜀瘊?뎃h灑\\ꛣ}K峐^ኖ⤐林ꉓhy": null - } - ], - "᱀n肓ㄛ\"堻2>m殮'1橌%Ꞵ군=Ӳ鯨9耛<\/n據0u彘8㬇៩f᏿诙]嚊": "䋯쪦S럶匏ㅛ#)O`ሀX_鐪渲⛀㨻宅闩➈ꢙஶDR⪍" - }, - "tA썓龇 ⋥bj왎录r땽✒롰;羋^\\?툳*┎?썀ma䵳넅U䳆૘〹䆀LQ0\b疀U~u$M}(鵸g⳾i抦뛹?䤈땚검.鹆?ꩡtⶥGĒ;!ቹHS峻B츪켏f5≺": 2366175040075384032, - "전pJjleb]ួ": -7.5418493141528422E18, - "n.鎖ጲ\n?,$䪘": true - }, - "欈Ar㉣螵᪚茩?O)": null - }, - "쫸M#x}D秱欐K=侫们丐.KꕾxẠ\u001e㿯䣛F܍캗qq8꟞ṢFD훎⵳簕꭛^鳜\u205c٫~⑟~冫ऊ2쫰<\/戲윱o<\"": true - }, - "㷝聥/T뱂\u0010锕|内䞇x侁≦㭖:M?iM᣿IJe煜dG࣯尃⚩gPt*辂.{磼럾䝪@a\\袛?}ᓺB珼": true - } - } - ]]}]}}, - "tn\"6ꫤ샾䄄;銞^%VBPwu묪`Y僑N.↺Ws?3C⤻9唩S䠮ᐴm;sᇷ냞඘B/;툥B?lB∤)G+O9m裢0kC햪䪤": -4.5941249382502277E18, - "ᚔt'\\愫?鵀@\\びꂕP큠<<]煹G-b!S?\nꖽ鼫,ݛ&頺y踦?E揆릱H}햧캡b@手.p탻>췽㣬ꒅ`qe佭P>ᓂ&?u}毚ᜉ蟶頳졪ᎏzl2wO": -2.53561440423275936E17 - }]} - } - ] - ]], - "潈촒⿂叡": 5495738871964062986 - } - ]] - } - ] - ]} - ]] - ]] - ]} - ] - ]}, - "ႁq킍蓅R`謈蟐ᦏ儂槐僻ﹶ9婌櫞釈~\"%匹躾ɢ뤥>࢟瀴愅?殕节/냔O✬H鲽엢?ᮈੁ⋧d␽㫐zCe*": 2.15062231586689536E17, - "㶵Ui曚珰鋪ᾼ臧P{䍏䷪쨑̟A뼿T渠誈䏚D1!잶<\/㡍7?)2l≣穷᛾稝{:;㡹nemיּ訊`G": null, - "䀕\"飕辭p圁f#뫆䶷뛮;⛴ᩍ3灚덏ᰝ쎓⦷詵%᜖Մfs⇫(\u001e~P|ﭗCⲾផv湟W첋(텪બT<บSꏉ੗⋲X婵i ӵ⇮?L䬇|ꈏ?졸": 1.548341247351782E-19 - } - ] - }, - "t;:N\u0015q鐦Rt缆{ꮐC?஛㷱敪\\+鲊㉫㓪몗릙竏(氵kYS": "XᰂT?൮ô", - "碕飦幑|+ 㚦鏶`镥ꁩ B<\/加륙": -4314053432419755959, - "秌孳(p!G?V傫%8ሽ8w;5鲗㦙LI檸\u2098": "zG N볞䆭鎍흘\\ONK3횙<\/樚立圌Q튅k쩎Ff쁋aׂJK銆ઘ즐狩6༥✙䩜篥CzP(聻駇HHퟲ讃%,ά{렍p而刲vy䦅ክ^톺M楒鍢㹳]Mdg2>䤉洞", - "踛M젧>忔芿㌜Zk": 2215369545966507819, - "씐A`$槭頰퍻^U覒\bG毲aᣴU;8!팲f꜇E⸃_卵{嫏羃X쀳C7뗮m(嚼u N܁谟D劯9]#": true, - "ﻩ!뵸-筚P᭛}ἰ履lPh?౮ⶹꆛ穉뎃g萑㑓溢CX뾇G㖬A錟]RKaꄘ]Yo+@䘁's섎襠$^홰}F": null - }, - "粘ꪒ4HXᕘ蹵.$區\r\u001d묁77pPc^y笲Q<\/ꖶ 訍䃍ᨕG?*": 1.73773035935040224E17 - }, - "婅拳?bkU;#D矠❴vVN쩆t㜷A풃갮娪a%鮏絪3dAv룒#tm쑬⌛qYwc4|L8KZ;xU⓭㳔밆拓EZ7襨eD|隰ऌ䧼u9Ԣ+]贴P荿": 2.9628516456987075E18 - }]}}] - ]} - }} - ]}] - ], - "|g翉F*湹̶\u0005⏐1脉̀eI쩓ᖂ㫱0碞l䴨ꑅ㵽7AtἈ턧yq䳥塑:z:遀ᄐX눔擉)`N3昛oQ셖y-ڨ⾶恢ꈵq^<\/": null, - "菹\\랓G^璬x৴뭸ゆUS겧﮷Bꮤ ┉銜᯻0%N7}~f洋坄Xꔼ<\/4妟Vꄟ9:౟곡t킅冩䧉笭裟炂4봋ⱳ叺怊t+怯涗\"0㖈Hq": false, - "졬믟'ﺇফ圪쓬멤m邸QLব䗁愍4jvs翙 ྍ꧀艳H-|": null, - "컮襱⣱뗠 R毪/鹙꾀%헳8&": -5770986448525107020 - } - ], - "B䔚bꐻ뙏姓展槰T-똌鷺tc灿᫽^㓟䏀o3o$꘭趙萬I顩)뇭Ἑ䓝\f@{ᣨ`x3蔛": null - } - ] - ] - }], - "⦖扚vWꃱ꥙㾠壢輓{-⎳鹷贏璿䜑bG倛⋐磎c皇皩7a~ﳫU╣Q࠭ꎉS摅姽OW.홌ೞ.": null, - "蚪eVlH献r}ᮏ믠ﰩꔄ@瑄ⲱ": null, - "퀭$JWoꩢg역쁍䖔㑺h&ୢtXX愰㱇?㾫I_6 OaB瑈q裿": null, - "꽦ﲼLyr纛Zdu珍B絟쬴糔?㕂짹䏵e": "ḱ\u2009cX9멀i䶛簆㳀k" - } - ]]]], - "(_ꏮg່澮?ᩑyM<艷\u001aꪽ\\庼뙭Z맷㰩Vm\\lY筺]3㋲2㌩㄀Eਟ䝵⨄쐨ᔟgङHn鐖⤇놋瓇Q탚單oY\"♆臾jHᶈ征ቄ??uㇰA?#1侓": null - }, - "觓^~ሢ&iI띆g륎ḱ캀.ᓡꀮ胙鈉": 1.0664523593012836E-19, - "y詭Gbᔶऽs댁U:杜⤎ϲ쁗⮼D醄诿q뙰I#즧v蔎xHᵿt᡽[**?崮耖p缫쿃L菝,봬ꤦC쯵#=X1瞻@OZc鱗CQTx": null - } - ] - }}], - "剘紁\u0004\\Xn⊠6,တױ;嵣崇}讃iႽ)d1\\䔓": null - }, - "脨z\"{X,1u찜<'k&@?1}Yn$\u0015Rd輲ーa쮂굄+B$l": true, - "諳>*쭮괐䵟Ґ+<箁}빀䅱⡔檏臒hIH脟ꩪC핝ଗP좕\"0i<\/C褻D۞恗+^5?'ꂱ䚫^7}㡠cq6\\쨪ꔞꥢ?纖䫀氮蒫侲빦敶q{A煲G": -6880961710038544266 - }}] - }, - "5s⨲JvಽῶꭂᄢI.a৊": null, - "?1q꽏쿻ꛋDR%U娝>DgN乭G": -1.2105047302732358E-19 - } - ] - ]}, - "qZz`撋뙹둣j碇쁏\\ꆥ\u0018@藴疰Wz)O{F䶛l᷂绘訥$]뮍夻䢋䩇萿獰樧猵⣭j萶q)$꬚⵷0馢W:Ⱍ!Qoe": -1666634370862219540, - "t": "=wp|~碎Q鬳Ӎ\\l-<\/^ﳊhn퐖}䍔t碵ḛ혷?靻䊗", - "邙쇡㯇%#=,E4勃驆V繚q[Y댻XV㡸[逹ᰏ葢B@u=JS5?bLRn얮㍉⏅ﰳ?a6[&큟!藈": 1.2722786745736667E-19 - }, - "X블땨4{ph鵋ꉯ웸 5p簂䦭s_E徔濧d稝~No穔噕뽲)뉈c5M윅>⚋[岦䲟懷恁?鎐꓆ฬ爋獠䜔s{\u001bm鐚儸煛%bﯿXT>ꗘ@8G": 1157841540507770724, - "媤娪Q杸\u0011SAyᡈ쿯": true, - "灚^ಸ%걁<\/蛯?\"祴坓\\\\'흍": -3.4614808555942579E18, - "釴U:O湛㴑䀣렑縓\ta)(j:숾却䗌gCiB뽬Oyuq輥厁/7)?今hY︺Q": null - } - ] - ]]]}] - ], - "I笔趠Ph!<ཛྷ㸞诘X$畉F\u0005笷菟.Esr릙!W☆䲖뗷莾뒭U\"䀸犜Uo3Gꯌx4r蔇᡹㧪쨢準<䂀%ࡡꟼ瑍8炝Xs0䀝销?fi쥱ꆝલBB": -8571484181158525797, - "L⦁o#J|\"⽩-㱢d㌛8d\\㶤傩儻E[Y熯)r噤὘勇 }": "e(濨쓌K䧚僒㘍蠤Vᛸ\"络QJL2,嬓왍伢㋒䴿考澰@(㏾`kX$끑эE斡,蜍&~y", - "vj.|统圪ᵮPL?2oŶ`밧\"勃+0ue%⿥绬췈체$6:qa렐Q;~晘3㙘鹑": true, - "ශؙ4獄⶿c︋i⚅:ん閝Ⳙ苆籦kw{䙞셕pC췃ꍬ␜꟯ꚓ酄b힝hwk꭭M鬋8B耳쑘WQ\\偙ac'唀x᪌\u2048*h짎#ፇ鮠뾏ឿ뀌": false, - "⎀jꄒ牺3Ⓝ컴~?親ꕽぼܓ喏瘘!@<튋㐌꿱⩦{a?Yv%⪧笯Uܱ栅E搚i뚬:ꄃx7䙳ꦋ&䓹vq☶I䁘ᾘ涜\\썉뺌Lr%Bc㍜3?ꝭ砿裞]": null, - "⭤뙓z(㡂%亳K䌽꫿AԾ岺㦦㼴輞낚Vꦴw냟鬓㹈뽈+o3譻K1잞": 2091209026076965894, - "ㇲ\t⋇轑ꠤ룫X긒\"zoY읇희wj梐쐑l侸`e%s": -9.9240075473576563E17, - "啸ꮑ㉰!ᚓ}銏": -4.0694813896301194E18, - ">]囋੽EK뇜>_ꀣ緳碖{쐐裔[<ನ\"䇅\"5L?#xTwv#罐\u0005래t应\\N?빗;": "v쮽瞭p뭃" - } - ]], - "斴槾?Z翁\"~慍弞ﻆ=꜡o5鐋dw\"?K蠡i샾ogDﲰ_C*⬟iㇷ4nય蟏[㟉U꽌娛苸 ঢ়操贻洞펻)쿗૊許X⨪VY츚Z䍾㶭~튃ᵦ<\/E臭tve猑x嚢": null, - "锡⛩<\/칥ꈙᬙ蝀&Ꚑ籬■865?_>L詏쿨䈌浿弥爫̫lj&zx<\/C쉾?覯n?": null, - "꾳鑤/꼩d=ᘈn挫ᑩ䰬ZC": "3錢爋6Ƹ䴗v⪿Wr益G韠[\u0010屗9쁡钁u?殢c䳀蓃樄욂NAq赟c튒瘁렶Aૡɚ捍" - } - ] - ] - ]} - ] - ] - }]]]}} - ]}], - "Ej䗳U<\/Q=灒샎䞦,堰頠@褙g_\u0003ꤾfⶽ?퇋!łB〙ד3CC䌴鈌U:뭔咎(Qો臃䡬荋BO7㢝䟸\"Yb": 2.36010731779814E-20, - "逸'0岔j\u000e눘먷翌C츊秦=ꭣ棭ှ;鳸=麱$XP⩉駚橄A\\좱⛌jqv䰞3Ь踌v㳆¹gT┌gvLB賖烡m?@E঳i": null - }, - "曺v찘ׁ?&绫O័": 9107241066550187880 - } - ] - ], - "(e屄\u0019昜훕琖b蓘ᬄ0/۲묇Z蘮ဏ⨏蛘胯뢃@㘉8ሪWᨮ⦬ᅳ䅴HI၇쨳z囕陻엣1赳o": true, - ",b刈Z,ၠ晐T솝ŕB⩆ou'퐼≃绗雗d譊": null, - "a唥KB\"ﳝ肕$u\n^⅄P䟼냉䞸⩪u윗瀱ꔨ#yşs꒬=1|ﲤ爢`t౐튼쳫_Az(Ṋ擬㦷좕耈6": 2099309172767331582, - "?㴸U<\/䢔ꯡ阽扆㐤q鐋?f㔫wM嬙-;UV죫嚔픞G&\"Cᗍ䪏풊Q": "VM7疹+陕枡툩窲}翡䖶8欞čsT뮐}璤:jﺋ鎴}HfA൝⧻Zd#Qu茅J髒皣Y-︴[?-~쉜v딏璮㹚䅊﩯<-#\u000e걀h\u0004u抱﵊㼃U<㱷⊱IC進" - }, - "숌dee節鏽邺p넱蹓+e罕U": true - } - ], - "b⧴룏??ᔠ3ぱ>%郿劃翐ꏬꠛW瞳᫏누躨狀ໄy੽\"ីuS=㨞馸k乆E": "トz݈^9R䬑<ﮛGRꨳ\u000fTT泠纷꽀MRᴱ纊:㠭볮?%N56%鈕1䗍䜁a䲗j陇=뿻偂衋࿘ᓸ?ᕵZ+<\/}H耢b䀁z^f$&㝒LkꢳI脚뙛u": 5.694374481577558E-20 - }] - } - ]], - "obj": {"key": "wrong value"}, - "퓲꽪m{㶩/뇿#⼢&᭙硞㪔E嚉c樱㬇1a綑᝖DḾ䝩": null - } -} \ No newline at end of file diff --git a/resources/3rdparty/modernjson/test/src/catch.hpp b/resources/3rdparty/modernjson/test/src/catch.hpp deleted file mode 100755 index 5cc33a838..000000000 --- a/resources/3rdparty/modernjson/test/src/catch.hpp +++ /dev/null @@ -1,10359 +0,0 @@ -/* - * Catch v1.3.4 - * Generated: 2016-02-10 19:24:03.089683 - * ---------------------------------------------------------- - * This file has been merged from multiple headers. Please don't edit it directly - * Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED -#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED - -#define TWOBLUECUBES_CATCH_HPP_INCLUDED - -#ifdef __clang__ -# pragma clang system_header -#elif defined __GNUC__ -# pragma GCC system_header -#endif - -// #included from: internal/catch_suppress_warnings.h - -#ifdef __clang__ -# ifdef __ICC // icpc defines the __clang__ macro -# pragma warning(push) -# pragma warning(disable: 161 1682) -# else // __ICC -# pragma clang diagnostic ignored "-Wglobal-constructors" -# pragma clang diagnostic ignored "-Wvariadic-macros" -# pragma clang diagnostic ignored "-Wc99-extensions" -# pragma clang diagnostic ignored "-Wunused-variable" -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wpadded" -# pragma clang diagnostic ignored "-Wc++98-compat" -# pragma clang diagnostic ignored "-Wc++98-compat-pedantic" -# pragma clang diagnostic ignored "-Wswitch-enum" -# pragma clang diagnostic ignored "-Wcovered-switch-default" -# endif -#elif defined __GNUC__ -# pragma GCC diagnostic ignored "-Wvariadic-macros" -# pragma GCC diagnostic ignored "-Wunused-variable" -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wpadded" -#endif -#if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER) -# define CATCH_IMPL -#endif - -#ifdef CATCH_IMPL -# ifndef CLARA_CONFIG_MAIN -# define CLARA_CONFIG_MAIN_NOT_DEFINED -# define CLARA_CONFIG_MAIN -# endif -#endif - -// #included from: internal/catch_notimplemented_exception.h -#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED - -// #included from: catch_common.h -#define TWOBLUECUBES_CATCH_COMMON_H_INCLUDED - -#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line -#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) -#define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ ) - -#define INTERNAL_CATCH_STRINGIFY2( expr ) #expr -#define INTERNAL_CATCH_STRINGIFY( expr ) INTERNAL_CATCH_STRINGIFY2( expr ) - -#include -#include -#include - -// #included from: catch_compiler_capabilities.h -#define TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED - -// Detect a number of compiler features - mostly C++11/14 conformance - by compiler -// The following features are defined: -// -// CATCH_CONFIG_CPP11_NULLPTR : is nullptr supported? -// CATCH_CONFIG_CPP11_NOEXCEPT : is noexcept supported? -// CATCH_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods -// CATCH_CONFIG_CPP11_IS_ENUM : std::is_enum is supported? -// CATCH_CONFIG_CPP11_TUPLE : std::tuple is supported -// CATCH_CONFIG_CPP11_LONG_LONG : is long long supported? -// CATCH_CONFIG_CPP11_OVERRIDE : is override supported? -// CATCH_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr) - -// CATCH_CONFIG_CPP11_OR_GREATER : Is C++11 supported? - -// CATCH_CONFIG_VARIADIC_MACROS : are variadic macros supported? - -// **************** -// Note to maintainers: if new toggles are added please document them -// in configuration.md, too -// **************** - -// In general each macro has a _NO_ form -// (e.g. CATCH_CONFIG_CPP11_NO_NULLPTR) which disables the feature. -// Many features, at point of detection, define an _INTERNAL_ macro, so they -// can be combined, en-mass, with the _NO_ forms later. - -// All the C++11 features can be disabled with CATCH_CONFIG_NO_CPP11 - -#ifdef __clang__ - -# if __has_feature(cxx_nullptr) -# define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR -# endif - -# if __has_feature(cxx_noexcept) -# define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT -# endif - -#endif // __clang__ - -//////////////////////////////////////////////////////////////////////////////// -// Borland -#ifdef __BORLANDC__ - -#endif // __BORLANDC__ - -//////////////////////////////////////////////////////////////////////////////// -// EDG -#ifdef __EDG_VERSION__ - -#endif // __EDG_VERSION__ - -//////////////////////////////////////////////////////////////////////////////// -// Digital Mars -#ifdef __DMC__ - -#endif // __DMC__ - -//////////////////////////////////////////////////////////////////////////////// -// GCC -#ifdef __GNUC__ - -#if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__) -# define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR -#endif - -// - otherwise more recent versions define __cplusplus >= 201103L -// and will get picked up below - -#endif // __GNUC__ - -//////////////////////////////////////////////////////////////////////////////// -// Visual C++ -#ifdef _MSC_VER - -#if (_MSC_VER >= 1600) -# define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR -# define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR -#endif - -#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015)) -#define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT -#define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -#endif - -#endif // _MSC_VER - -//////////////////////////////////////////////////////////////////////////////// - -// Use variadic macros if the compiler supports them -#if ( defined _MSC_VER && _MSC_VER > 1400 && !defined __EDGE__) || \ - ( defined __WAVE__ && __WAVE_HAS_VARIADICS ) || \ - ( defined __GNUC__ && __GNUC__ >= 3 ) || \ - ( !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L ) - -#define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS - -#endif - -//////////////////////////////////////////////////////////////////////////////// -// C++ language feature support - -// catch all support for C++11 -#if defined(__cplusplus) && __cplusplus >= 201103L - -# define CATCH_CPP11_OR_GREATER - -# if !defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR) -# define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR -# endif - -# ifndef CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT -# define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT -# endif - -# ifndef CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -# define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -# endif - -# ifndef CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM -# define CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM -# endif - -# ifndef CATCH_INTERNAL_CONFIG_CPP11_TUPLE -# define CATCH_INTERNAL_CONFIG_CPP11_TUPLE -# endif - -# ifndef CATCH_INTERNAL_CONFIG_VARIADIC_MACROS -# define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS -# endif - -# if !defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) -# define CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG -# endif - -# if !defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) -# define CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE -# endif -# if !defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) -# define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR -# endif - -#endif // __cplusplus >= 201103L - -// Now set the actual defines based on the above + anything the user has configured -#if defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NO_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_NULLPTR -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_NOEXCEPT -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_GENERATED_METHODS -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_NO_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_IS_ENUM -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_CPP11_NO_TUPLE) && !defined(CATCH_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_TUPLE -#endif -#if defined(CATCH_INTERNAL_CONFIG_VARIADIC_MACROS) && !defined(CATCH_CONFIG_NO_VARIADIC_MACROS) && !defined(CATCH_CONFIG_VARIADIC_MACROS) -# define CATCH_CONFIG_VARIADIC_MACROS -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_LONG_LONG -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_OVERRIDE -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_UNIQUE_PTR -#endif - -// noexcept support: -#if defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_NOEXCEPT) -# define CATCH_NOEXCEPT noexcept -# define CATCH_NOEXCEPT_IS(x) noexcept(x) -#else -# define CATCH_NOEXCEPT throw() -# define CATCH_NOEXCEPT_IS(x) -#endif - -// nullptr support -#ifdef CATCH_CONFIG_CPP11_NULLPTR -# define CATCH_NULL nullptr -#else -# define CATCH_NULL NULL -#endif - -// override support -#ifdef CATCH_CONFIG_CPP11_OVERRIDE -# define CATCH_OVERRIDE override -#else -# define CATCH_OVERRIDE -#endif - -// unique_ptr support -#ifdef CATCH_CONFIG_CPP11_UNIQUE_PTR -# define CATCH_AUTO_PTR( T ) std::unique_ptr -#else -# define CATCH_AUTO_PTR( T ) std::auto_ptr -#endif - -namespace Catch { - - struct IConfig; - - struct CaseSensitive { enum Choice { - Yes, - No - }; }; - - class NonCopyable { -#ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - NonCopyable( NonCopyable const& ) = delete; - NonCopyable( NonCopyable && ) = delete; - NonCopyable& operator = ( NonCopyable const& ) = delete; - NonCopyable& operator = ( NonCopyable && ) = delete; -#else - NonCopyable( NonCopyable const& info ); - NonCopyable& operator = ( NonCopyable const& ); -#endif - - protected: - NonCopyable() {} - virtual ~NonCopyable(); - }; - - class SafeBool { - public: - typedef void (SafeBool::*type)() const; - - static type makeSafe( bool value ) { - return value ? &SafeBool::trueValue : 0; - } - private: - void trueValue() const {} - }; - - template - inline void deleteAll( ContainerT& container ) { - typename ContainerT::const_iterator it = container.begin(); - typename ContainerT::const_iterator itEnd = container.end(); - for(; it != itEnd; ++it ) - delete *it; - } - template - inline void deleteAllValues( AssociativeContainerT& container ) { - typename AssociativeContainerT::const_iterator it = container.begin(); - typename AssociativeContainerT::const_iterator itEnd = container.end(); - for(; it != itEnd; ++it ) - delete it->second; - } - - bool startsWith( std::string const& s, std::string const& prefix ); - bool endsWith( std::string const& s, std::string const& suffix ); - bool contains( std::string const& s, std::string const& infix ); - void toLowerInPlace( std::string& s ); - std::string toLower( std::string const& s ); - std::string trim( std::string const& str ); - bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ); - - struct pluralise { - pluralise( std::size_t count, std::string const& label ); - - friend std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser ); - - std::size_t m_count; - std::string m_label; - }; - - struct SourceLineInfo { - - SourceLineInfo(); - SourceLineInfo( char const* _file, std::size_t _line ); - SourceLineInfo( SourceLineInfo const& other ); -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - SourceLineInfo( SourceLineInfo && ) = default; - SourceLineInfo& operator = ( SourceLineInfo const& ) = default; - SourceLineInfo& operator = ( SourceLineInfo && ) = default; -# endif - bool empty() const; - bool operator == ( SourceLineInfo const& other ) const; - bool operator < ( SourceLineInfo const& other ) const; - - std::string file; - std::size_t line; - }; - - std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ); - - // This is just here to avoid compiler warnings with macro constants and boolean literals - inline bool isTrue( bool value ){ return value; } - inline bool alwaysTrue() { return true; } - inline bool alwaysFalse() { return false; } - - void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo ); - - void seedRng( IConfig const& config ); - unsigned int rngSeed(); - - // Use this in variadic streaming macros to allow - // >> +StreamEndStop - // as well as - // >> stuff +StreamEndStop - struct StreamEndStop { - std::string operator+() { - return std::string(); - } - }; - template - T const& operator + ( T const& value, StreamEndStop ) { - return value; - } -} - -#define CATCH_INTERNAL_LINEINFO ::Catch::SourceLineInfo( __FILE__, static_cast( __LINE__ ) ) -#define CATCH_INTERNAL_ERROR( msg ) ::Catch::throwLogicError( msg, CATCH_INTERNAL_LINEINFO ); - -#include - -namespace Catch { - - class NotImplementedException : public std::exception - { - public: - NotImplementedException( SourceLineInfo const& lineInfo ); - NotImplementedException( NotImplementedException const& ) {} - - virtual ~NotImplementedException() CATCH_NOEXCEPT {} - - virtual const char* what() const CATCH_NOEXCEPT; - - private: - std::string m_what; - SourceLineInfo m_lineInfo; - }; - -} // end namespace Catch - -/////////////////////////////////////////////////////////////////////////////// -#define CATCH_NOT_IMPLEMENTED throw Catch::NotImplementedException( CATCH_INTERNAL_LINEINFO ) - -// #included from: internal/catch_context.h -#define TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED - -// #included from: catch_interfaces_generators.h -#define TWOBLUECUBES_CATCH_INTERFACES_GENERATORS_H_INCLUDED - -#include - -namespace Catch { - - struct IGeneratorInfo { - virtual ~IGeneratorInfo(); - virtual bool moveNext() = 0; - virtual std::size_t getCurrentIndex() const = 0; - }; - - struct IGeneratorsForTest { - virtual ~IGeneratorsForTest(); - - virtual IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) = 0; - virtual bool moveNext() = 0; - }; - - IGeneratorsForTest* createGeneratorsForTest(); - -} // end namespace Catch - -// #included from: catch_ptr.hpp -#define TWOBLUECUBES_CATCH_PTR_HPP_INCLUDED - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wpadded" -#endif - -namespace Catch { - - // An intrusive reference counting smart pointer. - // T must implement addRef() and release() methods - // typically implementing the IShared interface - template - class Ptr { - public: - Ptr() : m_p( CATCH_NULL ){} - Ptr( T* p ) : m_p( p ){ - if( m_p ) - m_p->addRef(); - } - Ptr( Ptr const& other ) : m_p( other.m_p ){ - if( m_p ) - m_p->addRef(); - } - ~Ptr(){ - if( m_p ) - m_p->release(); - } - void reset() { - if( m_p ) - m_p->release(); - m_p = CATCH_NULL; - } - Ptr& operator = ( T* p ){ - Ptr temp( p ); - swap( temp ); - return *this; - } - Ptr& operator = ( Ptr const& other ){ - Ptr temp( other ); - swap( temp ); - return *this; - } - void swap( Ptr& other ) { std::swap( m_p, other.m_p ); } - T* get() const{ return m_p; } - T& operator*() const { return *m_p; } - T* operator->() const { return m_p; } - bool operator !() const { return m_p == CATCH_NULL; } - operator SafeBool::type() const { return SafeBool::makeSafe( m_p != CATCH_NULL ); } - - private: - T* m_p; - }; - - struct IShared : NonCopyable { - virtual ~IShared(); - virtual void addRef() const = 0; - virtual void release() const = 0; - }; - - template - struct SharedImpl : T { - - SharedImpl() : m_rc( 0 ){} - - virtual void addRef() const { - ++m_rc; - } - virtual void release() const { - if( --m_rc == 0 ) - delete this; - } - - mutable unsigned int m_rc; - }; - -} // end namespace Catch - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - -#include -#include -#include - -namespace Catch { - - class TestCase; - class Stream; - struct IResultCapture; - struct IRunner; - struct IGeneratorsForTest; - struct IConfig; - - struct IContext - { - virtual ~IContext(); - - virtual IResultCapture* getResultCapture() = 0; - virtual IRunner* getRunner() = 0; - virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) = 0; - virtual bool advanceGeneratorsForCurrentTest() = 0; - virtual Ptr getConfig() const = 0; - }; - - struct IMutableContext : IContext - { - virtual ~IMutableContext(); - virtual void setResultCapture( IResultCapture* resultCapture ) = 0; - virtual void setRunner( IRunner* runner ) = 0; - virtual void setConfig( Ptr const& config ) = 0; - }; - - IContext& getCurrentContext(); - IMutableContext& getCurrentMutableContext(); - void cleanUpContext(); - Stream createStream( std::string const& streamName ); - -} - -// #included from: internal/catch_test_registry.hpp -#define TWOBLUECUBES_CATCH_TEST_REGISTRY_HPP_INCLUDED - -// #included from: catch_interfaces_testcase.h -#define TWOBLUECUBES_CATCH_INTERFACES_TESTCASE_H_INCLUDED - -#include - -namespace Catch { - - class TestSpec; - - struct ITestCase : IShared { - virtual void invoke () const = 0; - protected: - virtual ~ITestCase(); - }; - - class TestCase; - struct IConfig; - - struct ITestCaseRegistry { - virtual ~ITestCaseRegistry(); - virtual std::vector const& getAllTests() const = 0; - virtual std::vector const& getAllTestsSorted( IConfig const& config ) const = 0; - }; - - bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ); - std::vector filterTests( std::vector const& testCases, TestSpec const& testSpec, IConfig const& config ); - std::vector const& getAllTestCasesSorted( IConfig const& config ); - -} - -namespace Catch { - -template -class MethodTestCase : public SharedImpl { - -public: - MethodTestCase( void (C::*method)() ) : m_method( method ) {} - - virtual void invoke() const { - C obj; - (obj.*m_method)(); - } - -private: - virtual ~MethodTestCase() {} - - void (C::*m_method)(); -}; - -typedef void(*TestFunction)(); - -struct NameAndDesc { - NameAndDesc( const char* _name = "", const char* _description= "" ) - : name( _name ), description( _description ) - {} - - const char* name; - const char* description; -}; - -void registerTestCase - ( ITestCase* testCase, - char const* className, - NameAndDesc const& nameAndDesc, - SourceLineInfo const& lineInfo ); - -struct AutoReg { - - AutoReg - ( TestFunction function, - SourceLineInfo const& lineInfo, - NameAndDesc const& nameAndDesc ); - - template - AutoReg - ( void (C::*method)(), - char const* className, - NameAndDesc const& nameAndDesc, - SourceLineInfo const& lineInfo ) { - - registerTestCase - ( new MethodTestCase( method ), - className, - nameAndDesc, - lineInfo ); - } - - ~AutoReg(); - -private: - AutoReg( AutoReg const& ); - void operator= ( AutoReg const& ); -}; - -void registerTestCaseFunction - ( TestFunction function, - SourceLineInfo const& lineInfo, - NameAndDesc const& nameAndDesc ); - -} // end namespace Catch - -#ifdef CATCH_CONFIG_VARIADIC_MACROS - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_TESTCASE( ... ) \ - static void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )(); \ - namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) ); }\ - static void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )() - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... ) \ - namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); } - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... )\ - namespace{ \ - struct INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ) : ClassName{ \ - void test(); \ - }; \ - Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )::test, #ClassName, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); \ - } \ - void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )::test() - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, ... ) \ - Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) ); - -#else - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_TESTCASE( Name, Desc ) \ - static void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )(); \ - namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) ); }\ - static void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )() - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, Name, Desc ) \ - namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( Name, Desc ), CATCH_INTERNAL_LINEINFO ); } - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, TestName, Desc )\ - namespace{ \ - struct INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ) : ClassName{ \ - void test(); \ - }; \ - Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )::test, #ClassName, Catch::NameAndDesc( TestName, Desc ), CATCH_INTERNAL_LINEINFO ); \ - } \ - void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )::test() - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, Name, Desc ) \ - Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) ); -#endif - -// #included from: internal/catch_capture.hpp -#define TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED - -// #included from: catch_result_builder.h -#define TWOBLUECUBES_CATCH_RESULT_BUILDER_H_INCLUDED - -// #included from: catch_result_type.h -#define TWOBLUECUBES_CATCH_RESULT_TYPE_H_INCLUDED - -namespace Catch { - - // ResultWas::OfType enum - struct ResultWas { enum OfType { - Unknown = -1, - Ok = 0, - Info = 1, - Warning = 2, - - FailureBit = 0x10, - - ExpressionFailed = FailureBit | 1, - ExplicitFailure = FailureBit | 2, - - Exception = 0x100 | FailureBit, - - ThrewException = Exception | 1, - DidntThrowException = Exception | 2, - - FatalErrorCondition = 0x200 | FailureBit - - }; }; - - inline bool isOk( ResultWas::OfType resultType ) { - return ( resultType & ResultWas::FailureBit ) == 0; - } - inline bool isJustInfo( int flags ) { - return flags == ResultWas::Info; - } - - // ResultDisposition::Flags enum - struct ResultDisposition { enum Flags { - Normal = 0x01, - - ContinueOnFailure = 0x02, // Failures fail test, but execution continues - FalseTest = 0x04, // Prefix expression with ! - SuppressFail = 0x08 // Failures are reported but do not fail the test - }; }; - - inline ResultDisposition::Flags operator | ( ResultDisposition::Flags lhs, ResultDisposition::Flags rhs ) { - return static_cast( static_cast( lhs ) | static_cast( rhs ) ); - } - - inline bool shouldContinueOnFailure( int flags ) { return ( flags & ResultDisposition::ContinueOnFailure ) != 0; } - inline bool isFalseTest( int flags ) { return ( flags & ResultDisposition::FalseTest ) != 0; } - inline bool shouldSuppressFailure( int flags ) { return ( flags & ResultDisposition::SuppressFail ) != 0; } - -} // end namespace Catch - -// #included from: catch_assertionresult.h -#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED - -#include - -namespace Catch { - - struct AssertionInfo - { - AssertionInfo() {} - AssertionInfo( std::string const& _macroName, - SourceLineInfo const& _lineInfo, - std::string const& _capturedExpression, - ResultDisposition::Flags _resultDisposition ); - - std::string macroName; - SourceLineInfo lineInfo; - std::string capturedExpression; - ResultDisposition::Flags resultDisposition; - }; - - struct AssertionResultData - { - AssertionResultData() : resultType( ResultWas::Unknown ) {} - - std::string reconstructedExpression; - std::string message; - ResultWas::OfType resultType; - }; - - class AssertionResult { - public: - AssertionResult(); - AssertionResult( AssertionInfo const& info, AssertionResultData const& data ); - ~AssertionResult(); -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - AssertionResult( AssertionResult const& ) = default; - AssertionResult( AssertionResult && ) = default; - AssertionResult& operator = ( AssertionResult const& ) = default; - AssertionResult& operator = ( AssertionResult && ) = default; -# endif - - bool isOk() const; - bool succeeded() const; - ResultWas::OfType getResultType() const; - bool hasExpression() const; - bool hasMessage() const; - std::string getExpression() const; - std::string getExpressionInMacro() const; - bool hasExpandedExpression() const; - std::string getExpandedExpression() const; - std::string getMessage() const; - SourceLineInfo getSourceInfo() const; - std::string getTestMacroName() const; - - protected: - AssertionInfo m_info; - AssertionResultData m_resultData; - }; - -} // end namespace Catch - -// #included from: catch_matchers.hpp -#define TWOBLUECUBES_CATCH_MATCHERS_HPP_INCLUDED - -namespace Catch { -namespace Matchers { - namespace Impl { - - namespace Generic { - template class AllOf; - template class AnyOf; - template class Not; - } - - template - struct Matcher : SharedImpl - { - typedef ExpressionT ExpressionType; - - virtual ~Matcher() {} - virtual Ptr clone() const = 0; - virtual bool match( ExpressionT const& expr ) const = 0; - virtual std::string toString() const = 0; - - Generic::AllOf operator && ( Matcher const& other ) const; - Generic::AnyOf operator || ( Matcher const& other ) const; - Generic::Not operator ! () const; - }; - - template - struct MatcherImpl : Matcher { - - virtual Ptr > clone() const { - return Ptr >( new DerivedT( static_cast( *this ) ) ); - } - }; - - namespace Generic { - template - class Not : public MatcherImpl, ExpressionT> { - public: - explicit Not( Matcher const& matcher ) : m_matcher(matcher.clone()) {} - Not( Not const& other ) : m_matcher( other.m_matcher ) {} - - virtual bool match( ExpressionT const& expr ) const CATCH_OVERRIDE { - return !m_matcher->match( expr ); - } - - virtual std::string toString() const CATCH_OVERRIDE { - return "not " + m_matcher->toString(); - } - private: - Ptr< Matcher > m_matcher; - }; - - template - class AllOf : public MatcherImpl, ExpressionT> { - public: - - AllOf() {} - AllOf( AllOf const& other ) : m_matchers( other.m_matchers ) {} - - AllOf& add( Matcher const& matcher ) { - m_matchers.push_back( matcher.clone() ); - return *this; - } - virtual bool match( ExpressionT const& expr ) const - { - for( std::size_t i = 0; i < m_matchers.size(); ++i ) - if( !m_matchers[i]->match( expr ) ) - return false; - return true; - } - virtual std::string toString() const { - std::ostringstream oss; - oss << "( "; - for( std::size_t i = 0; i < m_matchers.size(); ++i ) { - if( i != 0 ) - oss << " and "; - oss << m_matchers[i]->toString(); - } - oss << " )"; - return oss.str(); - } - - AllOf operator && ( Matcher const& other ) const { - AllOf allOfExpr( *this ); - allOfExpr.add( other ); - return allOfExpr; - } - - private: - std::vector > > m_matchers; - }; - - template - class AnyOf : public MatcherImpl, ExpressionT> { - public: - - AnyOf() {} - AnyOf( AnyOf const& other ) : m_matchers( other.m_matchers ) {} - - AnyOf& add( Matcher const& matcher ) { - m_matchers.push_back( matcher.clone() ); - return *this; - } - virtual bool match( ExpressionT const& expr ) const - { - for( std::size_t i = 0; i < m_matchers.size(); ++i ) - if( m_matchers[i]->match( expr ) ) - return true; - return false; - } - virtual std::string toString() const { - std::ostringstream oss; - oss << "( "; - for( std::size_t i = 0; i < m_matchers.size(); ++i ) { - if( i != 0 ) - oss << " or "; - oss << m_matchers[i]->toString(); - } - oss << " )"; - return oss.str(); - } - - AnyOf operator || ( Matcher const& other ) const { - AnyOf anyOfExpr( *this ); - anyOfExpr.add( other ); - return anyOfExpr; - } - - private: - std::vector > > m_matchers; - }; - - } // namespace Generic - - template - Generic::AllOf Matcher::operator && ( Matcher const& other ) const { - Generic::AllOf allOfExpr; - allOfExpr.add( *this ); - allOfExpr.add( other ); - return allOfExpr; - } - - template - Generic::AnyOf Matcher::operator || ( Matcher const& other ) const { - Generic::AnyOf anyOfExpr; - anyOfExpr.add( *this ); - anyOfExpr.add( other ); - return anyOfExpr; - } - - template - Generic::Not Matcher::operator ! () const { - return Generic::Not( *this ); - } - - namespace StdString { - - inline std::string makeString( std::string const& str ) { return str; } - inline std::string makeString( const char* str ) { return str ? std::string( str ) : std::string(); } - - struct CasedString - { - CasedString( std::string const& str, CaseSensitive::Choice caseSensitivity ) - : m_caseSensitivity( caseSensitivity ), - m_str( adjustString( str ) ) - {} - std::string adjustString( std::string const& str ) const { - return m_caseSensitivity == CaseSensitive::No - ? toLower( str ) - : str; - - } - std::string toStringSuffix() const - { - return m_caseSensitivity == CaseSensitive::No - ? " (case insensitive)" - : ""; - } - CaseSensitive::Choice m_caseSensitivity; - std::string m_str; - }; - - struct Equals : MatcherImpl { - Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) - : m_data( str, caseSensitivity ) - {} - Equals( Equals const& other ) : m_data( other.m_data ){} - - virtual ~Equals(); - - virtual bool match( std::string const& expr ) const { - return m_data.m_str == m_data.adjustString( expr );; - } - virtual std::string toString() const { - return "equals: \"" + m_data.m_str + "\"" + m_data.toStringSuffix(); - } - - CasedString m_data; - }; - - struct Contains : MatcherImpl { - Contains( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) - : m_data( substr, caseSensitivity ){} - Contains( Contains const& other ) : m_data( other.m_data ){} - - virtual ~Contains(); - - virtual bool match( std::string const& expr ) const { - return m_data.adjustString( expr ).find( m_data.m_str ) != std::string::npos; - } - virtual std::string toString() const { - return "contains: \"" + m_data.m_str + "\"" + m_data.toStringSuffix(); - } - - CasedString m_data; - }; - - struct StartsWith : MatcherImpl { - StartsWith( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) - : m_data( substr, caseSensitivity ){} - - StartsWith( StartsWith const& other ) : m_data( other.m_data ){} - - virtual ~StartsWith(); - - virtual bool match( std::string const& expr ) const { - return startsWith( m_data.adjustString( expr ), m_data.m_str ); - } - virtual std::string toString() const { - return "starts with: \"" + m_data.m_str + "\"" + m_data.toStringSuffix(); - } - - CasedString m_data; - }; - - struct EndsWith : MatcherImpl { - EndsWith( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) - : m_data( substr, caseSensitivity ){} - EndsWith( EndsWith const& other ) : m_data( other.m_data ){} - - virtual ~EndsWith(); - - virtual bool match( std::string const& expr ) const { - return endsWith( m_data.adjustString( expr ), m_data.m_str ); - } - virtual std::string toString() const { - return "ends with: \"" + m_data.m_str + "\"" + m_data.toStringSuffix(); - } - - CasedString m_data; - }; - } // namespace StdString - } // namespace Impl - - // The following functions create the actual matcher objects. - // This allows the types to be inferred - template - inline Impl::Generic::Not Not( Impl::Matcher const& m ) { - return Impl::Generic::Not( m ); - } - - template - inline Impl::Generic::AllOf AllOf( Impl::Matcher const& m1, - Impl::Matcher const& m2 ) { - return Impl::Generic::AllOf().add( m1 ).add( m2 ); - } - template - inline Impl::Generic::AllOf AllOf( Impl::Matcher const& m1, - Impl::Matcher const& m2, - Impl::Matcher const& m3 ) { - return Impl::Generic::AllOf().add( m1 ).add( m2 ).add( m3 ); - } - template - inline Impl::Generic::AnyOf AnyOf( Impl::Matcher const& m1, - Impl::Matcher const& m2 ) { - return Impl::Generic::AnyOf().add( m1 ).add( m2 ); - } - template - inline Impl::Generic::AnyOf AnyOf( Impl::Matcher const& m1, - Impl::Matcher const& m2, - Impl::Matcher const& m3 ) { - return Impl::Generic::AnyOf().add( m1 ).add( m2 ).add( m3 ); - } - - inline Impl::StdString::Equals Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) { - return Impl::StdString::Equals( str, caseSensitivity ); - } - inline Impl::StdString::Equals Equals( const char* str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) { - return Impl::StdString::Equals( Impl::StdString::makeString( str ), caseSensitivity ); - } - inline Impl::StdString::Contains Contains( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) { - return Impl::StdString::Contains( substr, caseSensitivity ); - } - inline Impl::StdString::Contains Contains( const char* substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) { - return Impl::StdString::Contains( Impl::StdString::makeString( substr ), caseSensitivity ); - } - inline Impl::StdString::StartsWith StartsWith( std::string const& substr ) { - return Impl::StdString::StartsWith( substr ); - } - inline Impl::StdString::StartsWith StartsWith( const char* substr ) { - return Impl::StdString::StartsWith( Impl::StdString::makeString( substr ) ); - } - inline Impl::StdString::EndsWith EndsWith( std::string const& substr ) { - return Impl::StdString::EndsWith( substr ); - } - inline Impl::StdString::EndsWith EndsWith( const char* substr ) { - return Impl::StdString::EndsWith( Impl::StdString::makeString( substr ) ); - } - -} // namespace Matchers - -using namespace Matchers; - -} // namespace Catch - -namespace Catch { - - struct TestFailureException{}; - - template class ExpressionLhs; - - struct STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison; - - struct CopyableStream { - CopyableStream() {} - CopyableStream( CopyableStream const& other ) { - oss << other.oss.str(); - } - CopyableStream& operator=( CopyableStream const& other ) { - oss.str(""); - oss << other.oss.str(); - return *this; - } - std::ostringstream oss; - }; - - class ResultBuilder { - public: - ResultBuilder( char const* macroName, - SourceLineInfo const& lineInfo, - char const* capturedExpression, - ResultDisposition::Flags resultDisposition, - char const* secondArg = "" ); - - template - ExpressionLhs operator <= ( T const& operand ); - ExpressionLhs operator <= ( bool value ); - - template - ResultBuilder& operator << ( T const& value ) { - m_stream.oss << value; - return *this; - } - - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator && ( RhsT const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator || ( RhsT const& ); - - ResultBuilder& setResultType( ResultWas::OfType result ); - ResultBuilder& setResultType( bool result ); - ResultBuilder& setLhs( std::string const& lhs ); - ResultBuilder& setRhs( std::string const& rhs ); - ResultBuilder& setOp( std::string const& op ); - - void endExpression(); - - std::string reconstructExpression() const; - AssertionResult build() const; - - void useActiveException( ResultDisposition::Flags resultDisposition = ResultDisposition::Normal ); - void captureResult( ResultWas::OfType resultType ); - void captureExpression(); - void captureExpectedException( std::string const& expectedMessage ); - void captureExpectedException( Matchers::Impl::Matcher const& matcher ); - void handleResult( AssertionResult const& result ); - void react(); - bool shouldDebugBreak() const; - bool allowThrows() const; - - private: - AssertionInfo m_assertionInfo; - AssertionResultData m_data; - struct ExprComponents { - ExprComponents() : testFalse( false ) {} - bool testFalse; - std::string lhs, rhs, op; - } m_exprComponents; - CopyableStream m_stream; - - bool m_shouldDebugBreak; - bool m_shouldThrow; - }; - -} // namespace Catch - -// Include after due to circular dependency: -// #included from: catch_expression_lhs.hpp -#define TWOBLUECUBES_CATCH_EXPRESSION_LHS_HPP_INCLUDED - -// #included from: catch_evaluate.hpp -#define TWOBLUECUBES_CATCH_EVALUATE_HPP_INCLUDED - -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable:4389) // '==' : signed/unsigned mismatch -#endif - -#include - -namespace Catch { -namespace Internal { - - enum Operator { - IsEqualTo, - IsNotEqualTo, - IsLessThan, - IsGreaterThan, - IsLessThanOrEqualTo, - IsGreaterThanOrEqualTo - }; - - template struct OperatorTraits { static const char* getName(){ return "*error*"; } }; - template<> struct OperatorTraits { static const char* getName(){ return "=="; } }; - template<> struct OperatorTraits { static const char* getName(){ return "!="; } }; - template<> struct OperatorTraits { static const char* getName(){ return "<"; } }; - template<> struct OperatorTraits { static const char* getName(){ return ">"; } }; - template<> struct OperatorTraits { static const char* getName(){ return "<="; } }; - template<> struct OperatorTraits{ static const char* getName(){ return ">="; } }; - - template - inline T& opCast(T const& t) { return const_cast(t); } - -// nullptr_t support based on pull request #154 from Konstantin Baumann -#ifdef CATCH_CONFIG_CPP11_NULLPTR - inline std::nullptr_t opCast(std::nullptr_t) { return nullptr; } -#endif // CATCH_CONFIG_CPP11_NULLPTR - - // So the compare overloads can be operator agnostic we convey the operator as a template - // enum, which is used to specialise an Evaluator for doing the comparison. - template - class Evaluator{}; - - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs) { - return opCast( lhs ) == opCast( rhs ); - } - }; - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs ) { - return opCast( lhs ) != opCast( rhs ); - } - }; - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs ) { - return opCast( lhs ) < opCast( rhs ); - } - }; - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs ) { - return opCast( lhs ) > opCast( rhs ); - } - }; - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs ) { - return opCast( lhs ) >= opCast( rhs ); - } - }; - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs ) { - return opCast( lhs ) <= opCast( rhs ); - } - }; - - template - bool applyEvaluator( T1 const& lhs, T2 const& rhs ) { - return Evaluator::evaluate( lhs, rhs ); - } - - // This level of indirection allows us to specialise for integer types - // to avoid signed/ unsigned warnings - - // "base" overload - template - bool compare( T1 const& lhs, T2 const& rhs ) { - return Evaluator::evaluate( lhs, rhs ); - } - - // unsigned X to int - template bool compare( unsigned int lhs, int rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - template bool compare( unsigned long lhs, int rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - template bool compare( unsigned char lhs, int rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - - // unsigned X to long - template bool compare( unsigned int lhs, long rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - template bool compare( unsigned long lhs, long rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - template bool compare( unsigned char lhs, long rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - - // int to unsigned X - template bool compare( int lhs, unsigned int rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( int lhs, unsigned long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( int lhs, unsigned char rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - - // long to unsigned X - template bool compare( long lhs, unsigned int rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( long lhs, unsigned long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( long lhs, unsigned char rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - - // pointer to long (when comparing against NULL) - template bool compare( long lhs, T* rhs ) { - return Evaluator::evaluate( reinterpret_cast( lhs ), rhs ); - } - template bool compare( T* lhs, long rhs ) { - return Evaluator::evaluate( lhs, reinterpret_cast( rhs ) ); - } - - // pointer to int (when comparing against NULL) - template bool compare( int lhs, T* rhs ) { - return Evaluator::evaluate( reinterpret_cast( lhs ), rhs ); - } - template bool compare( T* lhs, int rhs ) { - return Evaluator::evaluate( lhs, reinterpret_cast( rhs ) ); - } - -#ifdef CATCH_CONFIG_CPP11_LONG_LONG - // long long to unsigned X - template bool compare( long long lhs, unsigned int rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( long long lhs, unsigned long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( long long lhs, unsigned long long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( long long lhs, unsigned char rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - - // unsigned long long to X - template bool compare( unsigned long long lhs, int rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( unsigned long long lhs, long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( unsigned long long lhs, long long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( unsigned long long lhs, char rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - - // pointer to long long (when comparing against NULL) - template bool compare( long long lhs, T* rhs ) { - return Evaluator::evaluate( reinterpret_cast( lhs ), rhs ); - } - template bool compare( T* lhs, long long rhs ) { - return Evaluator::evaluate( lhs, reinterpret_cast( rhs ) ); - } -#endif // CATCH_CONFIG_CPP11_LONG_LONG - -#ifdef CATCH_CONFIG_CPP11_NULLPTR - // pointer to nullptr_t (when comparing against nullptr) - template bool compare( std::nullptr_t, T* rhs ) { - return Evaluator::evaluate( nullptr, rhs ); - } - template bool compare( T* lhs, std::nullptr_t ) { - return Evaluator::evaluate( lhs, nullptr ); - } -#endif // CATCH_CONFIG_CPP11_NULLPTR - -} // end of namespace Internal -} // end of namespace Catch - -#ifdef _MSC_VER -#pragma warning(pop) -#endif - -// #included from: catch_tostring.h -#define TWOBLUECUBES_CATCH_TOSTRING_H_INCLUDED - -#include -#include -#include -#include -#include - -#ifdef __OBJC__ -// #included from: catch_objc_arc.hpp -#define TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED - -#import - -#ifdef __has_feature -#define CATCH_ARC_ENABLED __has_feature(objc_arc) -#else -#define CATCH_ARC_ENABLED 0 -#endif - -void arcSafeRelease( NSObject* obj ); -id performOptionalSelector( id obj, SEL sel ); - -#if !CATCH_ARC_ENABLED -inline void arcSafeRelease( NSObject* obj ) { - [obj release]; -} -inline id performOptionalSelector( id obj, SEL sel ) { - if( [obj respondsToSelector: sel] ) - return [obj performSelector: sel]; - return nil; -} -#define CATCH_UNSAFE_UNRETAINED -#define CATCH_ARC_STRONG -#else -inline void arcSafeRelease( NSObject* ){} -inline id performOptionalSelector( id obj, SEL sel ) { -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Warc-performSelector-leaks" -#endif - if( [obj respondsToSelector: sel] ) - return [obj performSelector: sel]; -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - return nil; -} -#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained -#define CATCH_ARC_STRONG __strong -#endif - -#endif - -#ifdef CATCH_CONFIG_CPP11_TUPLE -#include -#endif - -#ifdef CATCH_CONFIG_CPP11_IS_ENUM -#include -#endif - -namespace Catch { - -// Why we're here. -template -std::string toString( T const& value ); - -// Built in overloads - -std::string toString( std::string const& value ); -std::string toString( std::wstring const& value ); -std::string toString( const char* const value ); -std::string toString( char* const value ); -std::string toString( const wchar_t* const value ); -std::string toString( wchar_t* const value ); -std::string toString( int value ); -std::string toString( unsigned long value ); -std::string toString( unsigned int value ); -std::string toString( const double value ); -std::string toString( const float value ); -std::string toString( bool value ); -std::string toString( char value ); -std::string toString( signed char value ); -std::string toString( unsigned char value ); - -#ifdef CATCH_CONFIG_CPP11_LONG_LONG -std::string toString( long long value ); -std::string toString( unsigned long long value ); -#endif - -#ifdef CATCH_CONFIG_CPP11_NULLPTR -std::string toString( std::nullptr_t ); -#endif - -#ifdef __OBJC__ - std::string toString( NSString const * const& nsstring ); - std::string toString( NSString * CATCH_ARC_STRONG const& nsstring ); - std::string toString( NSObject* const& nsObject ); -#endif - -namespace Detail { - - extern const std::string unprintableString; - - struct BorgType { - template BorgType( T const& ); - }; - - struct TrueType { char sizer[1]; }; - struct FalseType { char sizer[2]; }; - - TrueType& testStreamable( std::ostream& ); - FalseType testStreamable( FalseType ); - - FalseType operator<<( std::ostream const&, BorgType const& ); - - template - struct IsStreamInsertable { - static std::ostream &s; - static T const&t; - enum { value = sizeof( testStreamable(s << t) ) == sizeof( TrueType ) }; - }; - -#if defined(CATCH_CONFIG_CPP11_IS_ENUM) - template::value - > - struct EnumStringMaker - { - static std::string convert( T const& ) { return unprintableString; } - }; - - template - struct EnumStringMaker - { - static std::string convert( T const& v ) - { - return ::Catch::toString( - static_cast::type>(v) - ); - } - }; -#endif - template - struct StringMakerBase { -#if defined(CATCH_CONFIG_CPP11_IS_ENUM) - template - static std::string convert( T const& v ) - { - return EnumStringMaker::convert( v ); - } -#else - template - static std::string convert( T const& ) { return unprintableString; } -#endif - }; - - template<> - struct StringMakerBase { - template - static std::string convert( T const& _value ) { - std::ostringstream oss; - oss << _value; - return oss.str(); - } - }; - - std::string rawMemoryToString( const void *object, std::size_t size ); - - template - inline std::string rawMemoryToString( const T& object ) { - return rawMemoryToString( &object, sizeof(object) ); - } - -} // end namespace Detail - -template -struct StringMaker : - Detail::StringMakerBase::value> {}; - -template -struct StringMaker { - template - static std::string convert( U* p ) { - if( !p ) - return "NULL"; - else - return Detail::rawMemoryToString( p ); - } -}; - -template -struct StringMaker { - static std::string convert( R C::* p ) { - if( !p ) - return "NULL"; - else - return Detail::rawMemoryToString( p ); - } -}; - -namespace Detail { - template - std::string rangeToString( InputIterator first, InputIterator last ); -} - -//template -//struct StringMaker > { -// static std::string convert( std::vector const& v ) { -// return Detail::rangeToString( v.begin(), v.end() ); -// } -//}; - -template -std::string toString( std::vector const& v ) { - return Detail::rangeToString( v.begin(), v.end() ); -} - -#ifdef CATCH_CONFIG_CPP11_TUPLE - -// toString for tuples -namespace TupleDetail { - template< - typename Tuple, - std::size_t N = 0, - bool = (N < std::tuple_size::value) - > - struct ElementPrinter { - static void print( const Tuple& tuple, std::ostream& os ) - { - os << ( N ? ", " : " " ) - << Catch::toString(std::get(tuple)); - ElementPrinter::print(tuple,os); - } - }; - - template< - typename Tuple, - std::size_t N - > - struct ElementPrinter { - static void print( const Tuple&, std::ostream& ) {} - }; - -} - -template -struct StringMaker> { - - static std::string convert( const std::tuple& tuple ) - { - std::ostringstream os; - os << '{'; - TupleDetail::ElementPrinter>::print( tuple, os ); - os << " }"; - return os.str(); - } -}; -#endif // CATCH_CONFIG_CPP11_TUPLE - -namespace Detail { - template - std::string makeString( T const& value ) { - return StringMaker::convert( value ); - } -} // end namespace Detail - -/// \brief converts any type to a string -/// -/// The default template forwards on to ostringstream - except when an -/// ostringstream overload does not exist - in which case it attempts to detect -/// that and writes {?}. -/// Overload (not specialise) this template for custom typs that you don't want -/// to provide an ostream overload for. -template -std::string toString( T const& value ) { - return StringMaker::convert( value ); -} - - namespace Detail { - template - std::string rangeToString( InputIterator first, InputIterator last ) { - std::ostringstream oss; - oss << "{ "; - if( first != last ) { - oss << Catch::toString( *first ); - for( ++first ; first != last ; ++first ) - oss << ", " << Catch::toString( *first ); - } - oss << " }"; - return oss.str(); - } -} - -} // end namespace Catch - -namespace Catch { - -// Wraps the LHS of an expression and captures the operator and RHS (if any) - -// wrapping them all in a ResultBuilder object -template -class ExpressionLhs { - ExpressionLhs& operator = ( ExpressionLhs const& ); -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - ExpressionLhs& operator = ( ExpressionLhs && ) = delete; -# endif - -public: - ExpressionLhs( ResultBuilder& rb, T lhs ) : m_rb( rb ), m_lhs( lhs ) {} -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - ExpressionLhs( ExpressionLhs const& ) = default; - ExpressionLhs( ExpressionLhs && ) = default; -# endif - - template - ResultBuilder& operator == ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - template - ResultBuilder& operator != ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - template - ResultBuilder& operator < ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - template - ResultBuilder& operator > ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - template - ResultBuilder& operator <= ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - template - ResultBuilder& operator >= ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - ResultBuilder& operator == ( bool rhs ) { - return captureExpression( rhs ); - } - - ResultBuilder& operator != ( bool rhs ) { - return captureExpression( rhs ); - } - - void endExpression() { - bool value = m_lhs ? true : false; - m_rb - .setLhs( Catch::toString( value ) ) - .setResultType( value ) - .endExpression(); - } - - // Only simple binary expressions are allowed on the LHS. - // If more complex compositions are required then place the sub expression in parentheses - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator + ( RhsT const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator - ( RhsT const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator / ( RhsT const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator * ( RhsT const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator && ( RhsT const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator || ( RhsT const& ); - -private: - template - ResultBuilder& captureExpression( RhsT const& rhs ) { - return m_rb - .setResultType( Internal::compare( m_lhs, rhs ) ) - .setLhs( Catch::toString( m_lhs ) ) - .setRhs( Catch::toString( rhs ) ) - .setOp( Internal::OperatorTraits::getName() ); - } - -private: - ResultBuilder& m_rb; - T m_lhs; -}; - -} // end namespace Catch - - -namespace Catch { - - template - inline ExpressionLhs ResultBuilder::operator <= ( T const& operand ) { - return ExpressionLhs( *this, operand ); - } - - inline ExpressionLhs ResultBuilder::operator <= ( bool value ) { - return ExpressionLhs( *this, value ); - } - -} // namespace Catch - -// #included from: catch_message.h -#define TWOBLUECUBES_CATCH_MESSAGE_H_INCLUDED - -#include - -namespace Catch { - - struct MessageInfo { - MessageInfo( std::string const& _macroName, - SourceLineInfo const& _lineInfo, - ResultWas::OfType _type ); - - std::string macroName; - SourceLineInfo lineInfo; - ResultWas::OfType type; - std::string message; - unsigned int sequence; - - bool operator == ( MessageInfo const& other ) const { - return sequence == other.sequence; - } - bool operator < ( MessageInfo const& other ) const { - return sequence < other.sequence; - } - private: - static unsigned int globalCount; - }; - - struct MessageBuilder { - MessageBuilder( std::string const& macroName, - SourceLineInfo const& lineInfo, - ResultWas::OfType type ) - : m_info( macroName, lineInfo, type ) - {} - - template - MessageBuilder& operator << ( T const& value ) { - m_stream << value; - return *this; - } - - MessageInfo m_info; - std::ostringstream m_stream; - }; - - class ScopedMessage { - public: - ScopedMessage( MessageBuilder const& builder ); - ScopedMessage( ScopedMessage const& other ); - ~ScopedMessage(); - - MessageInfo m_info; - }; - -} // end namespace Catch - -// #included from: catch_interfaces_capture.h -#define TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED - -#include - -namespace Catch { - - class TestCase; - class AssertionResult; - struct AssertionInfo; - struct SectionInfo; - struct SectionEndInfo; - struct MessageInfo; - class ScopedMessageBuilder; - struct Counts; - - struct IResultCapture { - - virtual ~IResultCapture(); - - virtual void assertionEnded( AssertionResult const& result ) = 0; - virtual bool sectionStarted( SectionInfo const& sectionInfo, - Counts& assertions ) = 0; - virtual void sectionEnded( SectionEndInfo const& endInfo ) = 0; - virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) = 0; - virtual void pushScopedMessage( MessageInfo const& message ) = 0; - virtual void popScopedMessage( MessageInfo const& message ) = 0; - - virtual std::string getCurrentTestName() const = 0; - virtual const AssertionResult* getLastResult() const = 0; - - virtual void handleFatalErrorCondition( std::string const& message ) = 0; - }; - - IResultCapture& getResultCapture(); -} - -// #included from: catch_debugger.h -#define TWOBLUECUBES_CATCH_DEBUGGER_H_INCLUDED - -// #included from: catch_platform.h -#define TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED - -#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) -#define CATCH_PLATFORM_MAC -#elif defined(__IPHONE_OS_VERSION_MIN_REQUIRED) -#define CATCH_PLATFORM_IPHONE -#elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) -#define CATCH_PLATFORM_WINDOWS -#endif - -#include - -namespace Catch{ - - bool isDebuggerActive(); - void writeToDebugConsole( std::string const& text ); -} - -#ifdef CATCH_PLATFORM_MAC - - // The following code snippet based on: - // http://cocoawithlove.com/2008/03/break-into-debugger.html - #ifdef DEBUG - #if defined(__ppc64__) || defined(__ppc__) - #define CATCH_BREAK_INTO_DEBUGGER() \ - if( Catch::isDebuggerActive() ) { \ - __asm__("li r0, 20\nsc\nnop\nli r0, 37\nli r4, 2\nsc\nnop\n" \ - : : : "memory","r0","r3","r4" ); \ - } - #else - #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) {__asm__("int $3\n" : : );} - #endif - #endif - -#elif defined(_MSC_VER) - #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) { __debugbreak(); } -#elif defined(__MINGW32__) - extern "C" __declspec(dllimport) void __stdcall DebugBreak(); - #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) { DebugBreak(); } -#endif - -#ifndef CATCH_BREAK_INTO_DEBUGGER -#define CATCH_BREAK_INTO_DEBUGGER() Catch::alwaysTrue(); -#endif - -// #included from: catch_interfaces_runner.h -#define TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED - -namespace Catch { - class TestCase; - - struct IRunner { - virtual ~IRunner(); - virtual bool aborting() const = 0; - }; -} - -/////////////////////////////////////////////////////////////////////////////// -// In the event of a failure works out if the debugger needs to be invoked -// and/or an exception thrown and takes appropriate action. -// This needs to be done as a macro so the debugger will stop in the user -// source code rather than in Catch library code -#define INTERNAL_CATCH_REACT( resultBuilder ) \ - if( resultBuilder.shouldDebugBreak() ) CATCH_BREAK_INTO_DEBUGGER(); \ - resultBuilder.react(); - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \ - try { \ - ( __catchResult <= expr ).endExpression(); \ - } \ - catch( ... ) { \ - __catchResult.useActiveException( Catch::ResultDisposition::Normal ); \ - } \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::isTrue( false && static_cast(expr) ) ) // expr here is never evaluated at runtime but it forces the compiler to give it a look - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_IF( expr, resultDisposition, macroName ) \ - INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \ - if( Catch::getResultCapture().getLastResult()->succeeded() ) - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_ELSE( expr, resultDisposition, macroName ) \ - INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \ - if( !Catch::getResultCapture().getLastResult()->succeeded() ) - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_NO_THROW( expr, resultDisposition, macroName ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \ - try { \ - expr; \ - __catchResult.captureResult( Catch::ResultWas::Ok ); \ - } \ - catch( ... ) { \ - __catchResult.useActiveException( resultDisposition ); \ - } \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_THROWS( expr, resultDisposition, matcher, macroName ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition, #matcher ); \ - if( __catchResult.allowThrows() ) \ - try { \ - expr; \ - __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \ - } \ - catch( ... ) { \ - __catchResult.captureExpectedException( matcher ); \ - } \ - else \ - __catchResult.captureResult( Catch::ResultWas::Ok ); \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_THROWS_AS( expr, exceptionType, resultDisposition, macroName ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \ - if( __catchResult.allowThrows() ) \ - try { \ - expr; \ - __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \ - } \ - catch( exceptionType ) { \ - __catchResult.captureResult( Catch::ResultWas::Ok ); \ - } \ - catch( ... ) { \ - __catchResult.useActiveException( resultDisposition ); \ - } \ - else \ - __catchResult.captureResult( Catch::ResultWas::Ok ); \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) - -/////////////////////////////////////////////////////////////////////////////// -#ifdef CATCH_CONFIG_VARIADIC_MACROS - #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, ... ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \ - __catchResult << __VA_ARGS__ + ::Catch::StreamEndStop(); \ - __catchResult.captureResult( messageType ); \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) -#else - #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, log ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \ - __catchResult << log + ::Catch::StreamEndStop(); \ - __catchResult.captureResult( messageType ); \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) -#endif - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_INFO( log, macroName ) \ - Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME( scopedMessage ) = Catch::MessageBuilder( macroName, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log; - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CHECK_THAT( arg, matcher, resultDisposition, macroName ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #arg ", " #matcher, resultDisposition ); \ - try { \ - std::string matcherAsString = (matcher).toString(); \ - __catchResult \ - .setLhs( Catch::toString( arg ) ) \ - .setRhs( matcherAsString == Catch::Detail::unprintableString ? #matcher : matcherAsString ) \ - .setOp( "matches" ) \ - .setResultType( (matcher).match( arg ) ); \ - __catchResult.captureExpression(); \ - } catch( ... ) { \ - __catchResult.useActiveException( resultDisposition | Catch::ResultDisposition::ContinueOnFailure ); \ - } \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) - -// #included from: internal/catch_section.h -#define TWOBLUECUBES_CATCH_SECTION_H_INCLUDED - -// #included from: catch_section_info.h -#define TWOBLUECUBES_CATCH_SECTION_INFO_H_INCLUDED - -// #included from: catch_totals.hpp -#define TWOBLUECUBES_CATCH_TOTALS_HPP_INCLUDED - -#include - -namespace Catch { - - struct Counts { - Counts() : passed( 0 ), failed( 0 ), failedButOk( 0 ) {} - - Counts operator - ( Counts const& other ) const { - Counts diff; - diff.passed = passed - other.passed; - diff.failed = failed - other.failed; - diff.failedButOk = failedButOk - other.failedButOk; - return diff; - } - Counts& operator += ( Counts const& other ) { - passed += other.passed; - failed += other.failed; - failedButOk += other.failedButOk; - return *this; - } - - std::size_t total() const { - return passed + failed + failedButOk; - } - bool allPassed() const { - return failed == 0 && failedButOk == 0; - } - bool allOk() const { - return failed == 0; - } - - std::size_t passed; - std::size_t failed; - std::size_t failedButOk; - }; - - struct Totals { - - Totals operator - ( Totals const& other ) const { - Totals diff; - diff.assertions = assertions - other.assertions; - diff.testCases = testCases - other.testCases; - return diff; - } - - Totals delta( Totals const& prevTotals ) const { - Totals diff = *this - prevTotals; - if( diff.assertions.failed > 0 ) - ++diff.testCases.failed; - else if( diff.assertions.failedButOk > 0 ) - ++diff.testCases.failedButOk; - else - ++diff.testCases.passed; - return diff; - } - - Totals& operator += ( Totals const& other ) { - assertions += other.assertions; - testCases += other.testCases; - return *this; - } - - Counts assertions; - Counts testCases; - }; -} - -namespace Catch { - - struct SectionInfo { - SectionInfo - ( SourceLineInfo const& _lineInfo, - std::string const& _name, - std::string const& _description = std::string() ); - - std::string name; - std::string description; - SourceLineInfo lineInfo; - }; - - struct SectionEndInfo { - SectionEndInfo( SectionInfo const& _sectionInfo, Counts const& _prevAssertions, double _durationInSeconds ) - : sectionInfo( _sectionInfo ), prevAssertions( _prevAssertions ), durationInSeconds( _durationInSeconds ) - {} - - SectionInfo sectionInfo; - Counts prevAssertions; - double durationInSeconds; - }; - -} // end namespace Catch - -// #included from: catch_timer.h -#define TWOBLUECUBES_CATCH_TIMER_H_INCLUDED - -#ifdef CATCH_PLATFORM_WINDOWS -typedef unsigned long long uint64_t; -#else -#include -#endif - -namespace Catch { - - class Timer { - public: - Timer() : m_ticks( 0 ) {} - void start(); - unsigned int getElapsedMicroseconds() const; - unsigned int getElapsedMilliseconds() const; - double getElapsedSeconds() const; - - private: - uint64_t m_ticks; - }; - -} // namespace Catch - -#include - -namespace Catch { - - class Section : NonCopyable { - public: - Section( SectionInfo const& info ); - ~Section(); - - // This indicates whether the section should be executed or not - operator bool() const; - - private: - SectionInfo m_info; - - std::string m_name; - Counts m_assertions; - bool m_sectionIncluded; - Timer m_timer; - }; - -} // end namespace Catch - -#ifdef CATCH_CONFIG_VARIADIC_MACROS - #define INTERNAL_CATCH_SECTION( ... ) \ - if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, __VA_ARGS__ ) ) -#else - #define INTERNAL_CATCH_SECTION( name, desc ) \ - if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, name, desc ) ) -#endif - -// #included from: internal/catch_generators.hpp -#define TWOBLUECUBES_CATCH_GENERATORS_HPP_INCLUDED - -#include -#include -#include -#include - -namespace Catch { - -template -struct IGenerator { - virtual ~IGenerator() {} - virtual T getValue( std::size_t index ) const = 0; - virtual std::size_t size () const = 0; -}; - -template -class BetweenGenerator : public IGenerator { -public: - BetweenGenerator( T from, T to ) : m_from( from ), m_to( to ){} - - virtual T getValue( std::size_t index ) const { - return m_from+static_cast( index ); - } - - virtual std::size_t size() const { - return static_cast( 1+m_to-m_from ); - } - -private: - - T m_from; - T m_to; -}; - -template -class ValuesGenerator : public IGenerator { -public: - ValuesGenerator(){} - - void add( T value ) { - m_values.push_back( value ); - } - - virtual T getValue( std::size_t index ) const { - return m_values[index]; - } - - virtual std::size_t size() const { - return m_values.size(); - } - -private: - std::vector m_values; -}; - -template -class CompositeGenerator { -public: - CompositeGenerator() : m_totalSize( 0 ) {} - - // *** Move semantics, similar to auto_ptr *** - CompositeGenerator( CompositeGenerator& other ) - : m_fileInfo( other.m_fileInfo ), - m_totalSize( 0 ) - { - move( other ); - } - - CompositeGenerator& setFileInfo( const char* fileInfo ) { - m_fileInfo = fileInfo; - return *this; - } - - ~CompositeGenerator() { - deleteAll( m_composed ); - } - - operator T () const { - size_t overallIndex = getCurrentContext().getGeneratorIndex( m_fileInfo, m_totalSize ); - - typename std::vector*>::const_iterator it = m_composed.begin(); - typename std::vector*>::const_iterator itEnd = m_composed.end(); - for( size_t index = 0; it != itEnd; ++it ) - { - const IGenerator* generator = *it; - if( overallIndex >= index && overallIndex < index + generator->size() ) - { - return generator->getValue( overallIndex-index ); - } - index += generator->size(); - } - CATCH_INTERNAL_ERROR( "Indexed past end of generated range" ); - return T(); // Suppress spurious "not all control paths return a value" warning in Visual Studio - if you know how to fix this please do so - } - - void add( const IGenerator* generator ) { - m_totalSize += generator->size(); - m_composed.push_back( generator ); - } - - CompositeGenerator& then( CompositeGenerator& other ) { - move( other ); - return *this; - } - - CompositeGenerator& then( T value ) { - ValuesGenerator* valuesGen = new ValuesGenerator(); - valuesGen->add( value ); - add( valuesGen ); - return *this; - } - -private: - - void move( CompositeGenerator& other ) { - std::copy( other.m_composed.begin(), other.m_composed.end(), std::back_inserter( m_composed ) ); - m_totalSize += other.m_totalSize; - other.m_composed.clear(); - } - - std::vector*> m_composed; - std::string m_fileInfo; - size_t m_totalSize; -}; - -namespace Generators -{ - template - CompositeGenerator between( T from, T to ) { - CompositeGenerator generators; - generators.add( new BetweenGenerator( from, to ) ); - return generators; - } - - template - CompositeGenerator values( T val1, T val2 ) { - CompositeGenerator generators; - ValuesGenerator* valuesGen = new ValuesGenerator(); - valuesGen->add( val1 ); - valuesGen->add( val2 ); - generators.add( valuesGen ); - return generators; - } - - template - CompositeGenerator values( T val1, T val2, T val3 ){ - CompositeGenerator generators; - ValuesGenerator* valuesGen = new ValuesGenerator(); - valuesGen->add( val1 ); - valuesGen->add( val2 ); - valuesGen->add( val3 ); - generators.add( valuesGen ); - return generators; - } - - template - CompositeGenerator values( T val1, T val2, T val3, T val4 ) { - CompositeGenerator generators; - ValuesGenerator* valuesGen = new ValuesGenerator(); - valuesGen->add( val1 ); - valuesGen->add( val2 ); - valuesGen->add( val3 ); - valuesGen->add( val4 ); - generators.add( valuesGen ); - return generators; - } - -} // end namespace Generators - -using namespace Generators; - -} // end namespace Catch - -#define INTERNAL_CATCH_LINESTR2( line ) #line -#define INTERNAL_CATCH_LINESTR( line ) INTERNAL_CATCH_LINESTR2( line ) - -#define INTERNAL_CATCH_GENERATE( expr ) expr.setFileInfo( __FILE__ "(" INTERNAL_CATCH_LINESTR( __LINE__ ) ")" ) - -// #included from: internal/catch_interfaces_exception.h -#define TWOBLUECUBES_CATCH_INTERFACES_EXCEPTION_H_INCLUDED - -#include -#include - -// #included from: catch_interfaces_registry_hub.h -#define TWOBLUECUBES_CATCH_INTERFACES_REGISTRY_HUB_H_INCLUDED - -#include - -namespace Catch { - - class TestCase; - struct ITestCaseRegistry; - struct IExceptionTranslatorRegistry; - struct IExceptionTranslator; - struct IReporterRegistry; - struct IReporterFactory; - - struct IRegistryHub { - virtual ~IRegistryHub(); - - virtual IReporterRegistry const& getReporterRegistry() const = 0; - virtual ITestCaseRegistry const& getTestCaseRegistry() const = 0; - virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() = 0; - }; - - struct IMutableRegistryHub { - virtual ~IMutableRegistryHub(); - virtual void registerReporter( std::string const& name, Ptr const& factory ) = 0; - virtual void registerListener( Ptr const& factory ) = 0; - virtual void registerTest( TestCase const& testInfo ) = 0; - virtual void registerTranslator( const IExceptionTranslator* translator ) = 0; - }; - - IRegistryHub& getRegistryHub(); - IMutableRegistryHub& getMutableRegistryHub(); - void cleanUp(); - std::string translateActiveException(); - -} - -namespace Catch { - - typedef std::string(*exceptionTranslateFunction)(); - - struct IExceptionTranslator; - typedef std::vector ExceptionTranslators; - - struct IExceptionTranslator { - virtual ~IExceptionTranslator(); - virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const = 0; - }; - - struct IExceptionTranslatorRegistry { - virtual ~IExceptionTranslatorRegistry(); - - virtual std::string translateActiveException() const = 0; - }; - - class ExceptionTranslatorRegistrar { - template - class ExceptionTranslator : public IExceptionTranslator { - public: - - ExceptionTranslator( std::string(*translateFunction)( T& ) ) - : m_translateFunction( translateFunction ) - {} - - virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const CATCH_OVERRIDE { - try { - if( it == itEnd ) - throw; - else - return (*it)->translate( it+1, itEnd ); - } - catch( T& ex ) { - return m_translateFunction( ex ); - } - } - - protected: - std::string(*m_translateFunction)( T& ); - }; - - public: - template - ExceptionTranslatorRegistrar( std::string(*translateFunction)( T& ) ) { - getMutableRegistryHub().registerTranslator - ( new ExceptionTranslator( translateFunction ) ); - } - }; -} - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) \ - static std::string INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator )( signature ); \ - namespace{ Catch::ExceptionTranslatorRegistrar INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionRegistrar )( &INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ) ); }\ - static std::string INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator )( signature ) - -// #included from: internal/catch_approx.hpp -#define TWOBLUECUBES_CATCH_APPROX_HPP_INCLUDED - -#include -#include - -namespace Catch { -namespace Detail { - - class Approx { - public: - explicit Approx ( double value ) - : m_epsilon( std::numeric_limits::epsilon()*100 ), - m_scale( 1.0 ), - m_value( value ) - {} - - Approx( Approx const& other ) - : m_epsilon( other.m_epsilon ), - m_scale( other.m_scale ), - m_value( other.m_value ) - {} - - static Approx custom() { - return Approx( 0 ); - } - - Approx operator()( double value ) { - Approx approx( value ); - approx.epsilon( m_epsilon ); - approx.scale( m_scale ); - return approx; - } - - friend bool operator == ( double lhs, Approx const& rhs ) { - // Thanks to Richard Harris for his help refining this formula - return fabs( lhs - rhs.m_value ) < rhs.m_epsilon * (rhs.m_scale + (std::max)( fabs(lhs), fabs(rhs.m_value) ) ); - } - - friend bool operator == ( Approx const& lhs, double rhs ) { - return operator==( rhs, lhs ); - } - - friend bool operator != ( double lhs, Approx const& rhs ) { - return !operator==( lhs, rhs ); - } - - friend bool operator != ( Approx const& lhs, double rhs ) { - return !operator==( rhs, lhs ); - } - - Approx& epsilon( double newEpsilon ) { - m_epsilon = newEpsilon; - return *this; - } - - Approx& scale( double newScale ) { - m_scale = newScale; - return *this; - } - - std::string toString() const { - std::ostringstream oss; - oss << "Approx( " << Catch::toString( m_value ) << " )"; - return oss.str(); - } - - private: - double m_epsilon; - double m_scale; - double m_value; - }; -} - -template<> -inline std::string toString( Detail::Approx const& value ) { - return value.toString(); -} - -} // end namespace Catch - -// #included from: internal/catch_interfaces_tag_alias_registry.h -#define TWOBLUECUBES_CATCH_INTERFACES_TAG_ALIAS_REGISTRY_H_INCLUDED - -// #included from: catch_tag_alias.h -#define TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED - -#include - -namespace Catch { - - struct TagAlias { - TagAlias( std::string _tag, SourceLineInfo _lineInfo ) : tag( _tag ), lineInfo( _lineInfo ) {} - - std::string tag; - SourceLineInfo lineInfo; - }; - - struct RegistrarForTagAliases { - RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ); - }; - -} // end namespace Catch - -#define CATCH_REGISTER_TAG_ALIAS( alias, spec ) namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); } -// #included from: catch_option.hpp -#define TWOBLUECUBES_CATCH_OPTION_HPP_INCLUDED - -namespace Catch { - - // An optional type - template - class Option { - public: - Option() : nullableValue( CATCH_NULL ) {} - Option( T const& _value ) - : nullableValue( new( storage ) T( _value ) ) - {} - Option( Option const& _other ) - : nullableValue( _other ? new( storage ) T( *_other ) : CATCH_NULL ) - {} - - ~Option() { - reset(); - } - - Option& operator= ( Option const& _other ) { - if( &_other != this ) { - reset(); - if( _other ) - nullableValue = new( storage ) T( *_other ); - } - return *this; - } - Option& operator = ( T const& _value ) { - reset(); - nullableValue = new( storage ) T( _value ); - return *this; - } - - void reset() { - if( nullableValue ) - nullableValue->~T(); - nullableValue = CATCH_NULL; - } - - T& operator*() { return *nullableValue; } - T const& operator*() const { return *nullableValue; } - T* operator->() { return nullableValue; } - const T* operator->() const { return nullableValue; } - - T valueOr( T const& defaultValue ) const { - return nullableValue ? *nullableValue : defaultValue; - } - - bool some() const { return nullableValue != CATCH_NULL; } - bool none() const { return nullableValue == CATCH_NULL; } - - bool operator !() const { return nullableValue == CATCH_NULL; } - operator SafeBool::type() const { - return SafeBool::makeSafe( some() ); - } - - private: - T* nullableValue; - char storage[sizeof(T)]; - }; - -} // end namespace Catch - -namespace Catch { - - struct ITagAliasRegistry { - virtual ~ITagAliasRegistry(); - virtual Option find( std::string const& alias ) const = 0; - virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const = 0; - - static ITagAliasRegistry const& get(); - }; - -} // end namespace Catch - -// These files are included here so the single_include script doesn't put them -// in the conditionally compiled sections -// #included from: internal/catch_test_case_info.h -#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED - -#include -#include - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wpadded" -#endif - -namespace Catch { - - struct ITestCase; - - struct TestCaseInfo { - enum SpecialProperties{ - None = 0, - IsHidden = 1 << 1, - ShouldFail = 1 << 2, - MayFail = 1 << 3, - Throws = 1 << 4 - }; - - TestCaseInfo( std::string const& _name, - std::string const& _className, - std::string const& _description, - std::set const& _tags, - SourceLineInfo const& _lineInfo ); - - TestCaseInfo( TestCaseInfo const& other ); - - friend void setTags( TestCaseInfo& testCaseInfo, std::set const& tags ); - - bool isHidden() const; - bool throws() const; - bool okToFail() const; - bool expectedToFail() const; - - std::string name; - std::string className; - std::string description; - std::set tags; - std::set lcaseTags; - std::string tagsAsString; - SourceLineInfo lineInfo; - SpecialProperties properties; - }; - - class TestCase : public TestCaseInfo { - public: - - TestCase( ITestCase* testCase, TestCaseInfo const& info ); - TestCase( TestCase const& other ); - - TestCase withName( std::string const& _newName ) const; - - void invoke() const; - - TestCaseInfo const& getTestCaseInfo() const; - - void swap( TestCase& other ); - bool operator == ( TestCase const& other ) const; - bool operator < ( TestCase const& other ) const; - TestCase& operator = ( TestCase const& other ); - - private: - Ptr test; - }; - - TestCase makeTestCase( ITestCase* testCase, - std::string const& className, - std::string const& name, - std::string const& description, - SourceLineInfo const& lineInfo ); -} - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - - -#ifdef __OBJC__ -// #included from: internal/catch_objc.hpp -#define TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED - -#import - -#include - -// NB. Any general catch headers included here must be included -// in catch.hpp first to make sure they are included by the single -// header for non obj-usage - -/////////////////////////////////////////////////////////////////////////////// -// This protocol is really only here for (self) documenting purposes, since -// all its methods are optional. -@protocol OcFixture - -@optional - --(void) setUp; --(void) tearDown; - -@end - -namespace Catch { - - class OcMethod : public SharedImpl { - - public: - OcMethod( Class cls, SEL sel ) : m_cls( cls ), m_sel( sel ) {} - - virtual void invoke() const { - id obj = [[m_cls alloc] init]; - - performOptionalSelector( obj, @selector(setUp) ); - performOptionalSelector( obj, m_sel ); - performOptionalSelector( obj, @selector(tearDown) ); - - arcSafeRelease( obj ); - } - private: - virtual ~OcMethod() {} - - Class m_cls; - SEL m_sel; - }; - - namespace Detail{ - - inline std::string getAnnotation( Class cls, - std::string const& annotationName, - std::string const& testCaseName ) { - NSString* selStr = [[NSString alloc] initWithFormat:@"Catch_%s_%s", annotationName.c_str(), testCaseName.c_str()]; - SEL sel = NSSelectorFromString( selStr ); - arcSafeRelease( selStr ); - id value = performOptionalSelector( cls, sel ); - if( value ) - return [(NSString*)value UTF8String]; - return ""; - } - } - - inline size_t registerTestMethods() { - size_t noTestMethods = 0; - int noClasses = objc_getClassList( CATCH_NULL, 0 ); - - Class* classes = (CATCH_UNSAFE_UNRETAINED Class *)malloc( sizeof(Class) * noClasses); - objc_getClassList( classes, noClasses ); - - for( int c = 0; c < noClasses; c++ ) { - Class cls = classes[c]; - { - u_int count; - Method* methods = class_copyMethodList( cls, &count ); - for( u_int m = 0; m < count ; m++ ) { - SEL selector = method_getName(methods[m]); - std::string methodName = sel_getName(selector); - if( startsWith( methodName, "Catch_TestCase_" ) ) { - std::string testCaseName = methodName.substr( 15 ); - std::string name = Detail::getAnnotation( cls, "Name", testCaseName ); - std::string desc = Detail::getAnnotation( cls, "Description", testCaseName ); - const char* className = class_getName( cls ); - - getMutableRegistryHub().registerTest( makeTestCase( new OcMethod( cls, selector ), className, name.c_str(), desc.c_str(), SourceLineInfo() ) ); - noTestMethods++; - } - } - free(methods); - } - } - return noTestMethods; - } - - namespace Matchers { - namespace Impl { - namespace NSStringMatchers { - - template - struct StringHolder : MatcherImpl{ - StringHolder( NSString* substr ) : m_substr( [substr copy] ){} - StringHolder( StringHolder const& other ) : m_substr( [other.m_substr copy] ){} - StringHolder() { - arcSafeRelease( m_substr ); - } - - NSString* m_substr; - }; - - struct Equals : StringHolder { - Equals( NSString* substr ) : StringHolder( substr ){} - - virtual bool match( ExpressionType const& str ) const { - return (str != nil || m_substr == nil ) && - [str isEqualToString:m_substr]; - } - - virtual std::string toString() const { - return "equals string: " + Catch::toString( m_substr ); - } - }; - - struct Contains : StringHolder { - Contains( NSString* substr ) : StringHolder( substr ){} - - virtual bool match( ExpressionType const& str ) const { - return (str != nil || m_substr == nil ) && - [str rangeOfString:m_substr].location != NSNotFound; - } - - virtual std::string toString() const { - return "contains string: " + Catch::toString( m_substr ); - } - }; - - struct StartsWith : StringHolder { - StartsWith( NSString* substr ) : StringHolder( substr ){} - - virtual bool match( ExpressionType const& str ) const { - return (str != nil || m_substr == nil ) && - [str rangeOfString:m_substr].location == 0; - } - - virtual std::string toString() const { - return "starts with: " + Catch::toString( m_substr ); - } - }; - struct EndsWith : StringHolder { - EndsWith( NSString* substr ) : StringHolder( substr ){} - - virtual bool match( ExpressionType const& str ) const { - return (str != nil || m_substr == nil ) && - [str rangeOfString:m_substr].location == [str length] - [m_substr length]; - } - - virtual std::string toString() const { - return "ends with: " + Catch::toString( m_substr ); - } - }; - - } // namespace NSStringMatchers - } // namespace Impl - - inline Impl::NSStringMatchers::Equals - Equals( NSString* substr ){ return Impl::NSStringMatchers::Equals( substr ); } - - inline Impl::NSStringMatchers::Contains - Contains( NSString* substr ){ return Impl::NSStringMatchers::Contains( substr ); } - - inline Impl::NSStringMatchers::StartsWith - StartsWith( NSString* substr ){ return Impl::NSStringMatchers::StartsWith( substr ); } - - inline Impl::NSStringMatchers::EndsWith - EndsWith( NSString* substr ){ return Impl::NSStringMatchers::EndsWith( substr ); } - - } // namespace Matchers - - using namespace Matchers; - -} // namespace Catch - -/////////////////////////////////////////////////////////////////////////////// -#define OC_TEST_CASE( name, desc )\ -+(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Name_test ) \ -{\ -return @ name; \ -}\ -+(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Description_test ) \ -{ \ -return @ desc; \ -} \ --(void) INTERNAL_CATCH_UNIQUE_NAME( Catch_TestCase_test ) - -#endif - -#ifdef CATCH_IMPL -// #included from: internal/catch_impl.hpp -#define TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED - -// Collect all the implementation files together here -// These are the equivalent of what would usually be cpp files - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wweak-vtables" -#endif - -// #included from: ../catch_session.hpp -#define TWOBLUECUBES_CATCH_RUNNER_HPP_INCLUDED - -// #included from: internal/catch_commandline.hpp -#define TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED - -// #included from: catch_config.hpp -#define TWOBLUECUBES_CATCH_CONFIG_HPP_INCLUDED - -// #included from: catch_test_spec_parser.hpp -#define TWOBLUECUBES_CATCH_TEST_SPEC_PARSER_HPP_INCLUDED - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wpadded" -#endif - -// #included from: catch_test_spec.hpp -#define TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wpadded" -#endif - -// #included from: catch_wildcard_pattern.hpp -#define TWOBLUECUBES_CATCH_WILDCARD_PATTERN_HPP_INCLUDED - -namespace Catch -{ - class WildcardPattern { - enum WildcardPosition { - NoWildcard = 0, - WildcardAtStart = 1, - WildcardAtEnd = 2, - WildcardAtBothEnds = WildcardAtStart | WildcardAtEnd - }; - - public: - - WildcardPattern( std::string const& pattern, CaseSensitive::Choice caseSensitivity ) - : m_caseSensitivity( caseSensitivity ), - m_wildcard( NoWildcard ), - m_pattern( adjustCase( pattern ) ) - { - if( startsWith( m_pattern, "*" ) ) { - m_pattern = m_pattern.substr( 1 ); - m_wildcard = WildcardAtStart; - } - if( endsWith( m_pattern, "*" ) ) { - m_pattern = m_pattern.substr( 0, m_pattern.size()-1 ); - m_wildcard = static_cast( m_wildcard | WildcardAtEnd ); - } - } - virtual ~WildcardPattern(); - virtual bool matches( std::string const& str ) const { - switch( m_wildcard ) { - case NoWildcard: - return m_pattern == adjustCase( str ); - case WildcardAtStart: - return endsWith( adjustCase( str ), m_pattern ); - case WildcardAtEnd: - return startsWith( adjustCase( str ), m_pattern ); - case WildcardAtBothEnds: - return contains( adjustCase( str ), m_pattern ); - } - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wunreachable-code" -#endif - throw std::logic_error( "Unknown enum" ); -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - } - private: - std::string adjustCase( std::string const& str ) const { - return m_caseSensitivity == CaseSensitive::No ? toLower( str ) : str; - } - CaseSensitive::Choice m_caseSensitivity; - WildcardPosition m_wildcard; - std::string m_pattern; - }; -} - -#include -#include - -namespace Catch { - - class TestSpec { - struct Pattern : SharedImpl<> { - virtual ~Pattern(); - virtual bool matches( TestCaseInfo const& testCase ) const = 0; - }; - class NamePattern : public Pattern { - public: - NamePattern( std::string const& name ) - : m_wildcardPattern( toLower( name ), CaseSensitive::No ) - {} - virtual ~NamePattern(); - virtual bool matches( TestCaseInfo const& testCase ) const { - return m_wildcardPattern.matches( toLower( testCase.name ) ); - } - private: - WildcardPattern m_wildcardPattern; - }; - - class TagPattern : public Pattern { - public: - TagPattern( std::string const& tag ) : m_tag( toLower( tag ) ) {} - virtual ~TagPattern(); - virtual bool matches( TestCaseInfo const& testCase ) const { - return testCase.lcaseTags.find( m_tag ) != testCase.lcaseTags.end(); - } - private: - std::string m_tag; - }; - - class ExcludedPattern : public Pattern { - public: - ExcludedPattern( Ptr const& underlyingPattern ) : m_underlyingPattern( underlyingPattern ) {} - virtual ~ExcludedPattern(); - virtual bool matches( TestCaseInfo const& testCase ) const { return !m_underlyingPattern->matches( testCase ); } - private: - Ptr m_underlyingPattern; - }; - - struct Filter { - std::vector > m_patterns; - - bool matches( TestCaseInfo const& testCase ) const { - // All patterns in a filter must match for the filter to be a match - for( std::vector >::const_iterator it = m_patterns.begin(), itEnd = m_patterns.end(); it != itEnd; ++it ) - if( !(*it)->matches( testCase ) ) - return false; - return true; - } - }; - - public: - bool hasFilters() const { - return !m_filters.empty(); - } - bool matches( TestCaseInfo const& testCase ) const { - // A TestSpec matches if any filter matches - for( std::vector::const_iterator it = m_filters.begin(), itEnd = m_filters.end(); it != itEnd; ++it ) - if( it->matches( testCase ) ) - return true; - return false; - } - - private: - std::vector m_filters; - - friend class TestSpecParser; - }; -} - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - -namespace Catch { - - class TestSpecParser { - enum Mode{ None, Name, QuotedName, Tag }; - Mode m_mode; - bool m_exclusion; - std::size_t m_start, m_pos; - std::string m_arg; - TestSpec::Filter m_currentFilter; - TestSpec m_testSpec; - ITagAliasRegistry const* m_tagAliases; - - public: - TestSpecParser( ITagAliasRegistry const& tagAliases ) : m_tagAliases( &tagAliases ) {} - - TestSpecParser& parse( std::string const& arg ) { - m_mode = None; - m_exclusion = false; - m_start = std::string::npos; - m_arg = m_tagAliases->expandAliases( arg ); - for( m_pos = 0; m_pos < m_arg.size(); ++m_pos ) - visitChar( m_arg[m_pos] ); - if( m_mode == Name ) - addPattern(); - return *this; - } - TestSpec testSpec() { - addFilter(); - return m_testSpec; - } - private: - void visitChar( char c ) { - if( m_mode == None ) { - switch( c ) { - case ' ': return; - case '~': m_exclusion = true; return; - case '[': return startNewMode( Tag, ++m_pos ); - case '"': return startNewMode( QuotedName, ++m_pos ); - default: startNewMode( Name, m_pos ); break; - } - } - if( m_mode == Name ) { - if( c == ',' ) { - addPattern(); - addFilter(); - } - else if( c == '[' ) { - if( subString() == "exclude:" ) - m_exclusion = true; - else - addPattern(); - startNewMode( Tag, ++m_pos ); - } - } - else if( m_mode == QuotedName && c == '"' ) - addPattern(); - else if( m_mode == Tag && c == ']' ) - addPattern(); - } - void startNewMode( Mode mode, std::size_t start ) { - m_mode = mode; - m_start = start; - } - std::string subString() const { return m_arg.substr( m_start, m_pos - m_start ); } - template - void addPattern() { - std::string token = subString(); - if( startsWith( token, "exclude:" ) ) { - m_exclusion = true; - token = token.substr( 8 ); - } - if( !token.empty() ) { - Ptr pattern = new T( token ); - if( m_exclusion ) - pattern = new TestSpec::ExcludedPattern( pattern ); - m_currentFilter.m_patterns.push_back( pattern ); - } - m_exclusion = false; - m_mode = None; - } - void addFilter() { - if( !m_currentFilter.m_patterns.empty() ) { - m_testSpec.m_filters.push_back( m_currentFilter ); - m_currentFilter = TestSpec::Filter(); - } - } - }; - inline TestSpec parseTestSpec( std::string const& arg ) { - return TestSpecParser( ITagAliasRegistry::get() ).parse( arg ).testSpec(); - } - -} // namespace Catch - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - -// #included from: catch_interfaces_config.h -#define TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED - -#include -#include -#include - -namespace Catch { - - struct Verbosity { enum Level { - NoOutput = 0, - Quiet, - Normal - }; }; - - struct WarnAbout { enum What { - Nothing = 0x00, - NoAssertions = 0x01 - }; }; - - struct ShowDurations { enum OrNot { - DefaultForReporter, - Always, - Never - }; }; - struct RunTests { enum InWhatOrder { - InDeclarationOrder, - InLexicographicalOrder, - InRandomOrder - }; }; - - class TestSpec; - - struct IConfig : IShared { - - virtual ~IConfig(); - - virtual bool allowThrows() const = 0; - virtual std::ostream& stream() const = 0; - virtual std::string name() const = 0; - virtual bool includeSuccessfulResults() const = 0; - virtual bool shouldDebugBreak() const = 0; - virtual bool warnAboutMissingAssertions() const = 0; - virtual int abortAfter() const = 0; - virtual bool showInvisibles() const = 0; - virtual ShowDurations::OrNot showDurations() const = 0; - virtual TestSpec const& testSpec() const = 0; - virtual RunTests::InWhatOrder runOrder() const = 0; - virtual unsigned int rngSeed() const = 0; - virtual bool forceColour() const = 0; - }; -} - -// #included from: catch_stream.h -#define TWOBLUECUBES_CATCH_STREAM_H_INCLUDED - -// #included from: catch_streambuf.h -#define TWOBLUECUBES_CATCH_STREAMBUF_H_INCLUDED - -#include - -namespace Catch { - - class StreamBufBase : public std::streambuf { - public: - virtual ~StreamBufBase() CATCH_NOEXCEPT; - }; -} - -#include -#include -#include - -namespace Catch { - - std::ostream& cout(); - std::ostream& cerr(); - - struct IStream { - virtual ~IStream() CATCH_NOEXCEPT; - virtual std::ostream& stream() const = 0; - }; - - class FileStream : public IStream { - mutable std::ofstream m_ofs; - public: - FileStream( std::string const& filename ); - virtual ~FileStream() CATCH_NOEXCEPT; - public: // IStream - virtual std::ostream& stream() const CATCH_OVERRIDE; - }; - - class CoutStream : public IStream { - mutable std::ostream m_os; - public: - CoutStream(); - virtual ~CoutStream() CATCH_NOEXCEPT; - - public: // IStream - virtual std::ostream& stream() const CATCH_OVERRIDE; - }; - - class DebugOutStream : public IStream { - std::auto_ptr m_streamBuf; - mutable std::ostream m_os; - public: - DebugOutStream(); - virtual ~DebugOutStream() CATCH_NOEXCEPT; - - public: // IStream - virtual std::ostream& stream() const CATCH_OVERRIDE; - }; -} - -#include -#include -#include -#include -#include - -#ifndef CATCH_CONFIG_CONSOLE_WIDTH -#define CATCH_CONFIG_CONSOLE_WIDTH 80 -#endif - -namespace Catch { - - struct ConfigData { - - ConfigData() - : listTests( false ), - listTags( false ), - listReporters( false ), - listTestNamesOnly( false ), - showSuccessfulTests( false ), - shouldDebugBreak( false ), - noThrow( false ), - showHelp( false ), - showInvisibles( false ), - forceColour( false ), - filenamesAsTags( false ), - abortAfter( -1 ), - rngSeed( 0 ), - verbosity( Verbosity::Normal ), - warnings( WarnAbout::Nothing ), - showDurations( ShowDurations::DefaultForReporter ), - runOrder( RunTests::InDeclarationOrder ) - {} - - bool listTests; - bool listTags; - bool listReporters; - bool listTestNamesOnly; - - bool showSuccessfulTests; - bool shouldDebugBreak; - bool noThrow; - bool showHelp; - bool showInvisibles; - bool forceColour; - bool filenamesAsTags; - - int abortAfter; - unsigned int rngSeed; - - Verbosity::Level verbosity; - WarnAbout::What warnings; - ShowDurations::OrNot showDurations; - RunTests::InWhatOrder runOrder; - - std::string outputFilename; - std::string name; - std::string processName; - - std::vector reporterNames; - std::vector testsOrTags; - }; - - class Config : public SharedImpl { - private: - Config( Config const& other ); - Config& operator = ( Config const& other ); - virtual void dummy(); - public: - - Config() - {} - - Config( ConfigData const& data ) - : m_data( data ), - m_stream( openStream() ) - { - if( !data.testsOrTags.empty() ) { - TestSpecParser parser( ITagAliasRegistry::get() ); - for( std::size_t i = 0; i < data.testsOrTags.size(); ++i ) - parser.parse( data.testsOrTags[i] ); - m_testSpec = parser.testSpec(); - } - } - - virtual ~Config() { - } - - std::string const& getFilename() const { - return m_data.outputFilename ; - } - - bool listTests() const { return m_data.listTests; } - bool listTestNamesOnly() const { return m_data.listTestNamesOnly; } - bool listTags() const { return m_data.listTags; } - bool listReporters() const { return m_data.listReporters; } - - std::string getProcessName() const { return m_data.processName; } - - bool shouldDebugBreak() const { return m_data.shouldDebugBreak; } - - std::vector getReporterNames() const { return m_data.reporterNames; } - - int abortAfter() const { return m_data.abortAfter; } - - TestSpec const& testSpec() const { return m_testSpec; } - - bool showHelp() const { return m_data.showHelp; } - bool showInvisibles() const { return m_data.showInvisibles; } - - // IConfig interface - virtual bool allowThrows() const { return !m_data.noThrow; } - virtual std::ostream& stream() const { return m_stream->stream(); } - virtual std::string name() const { return m_data.name.empty() ? m_data.processName : m_data.name; } - virtual bool includeSuccessfulResults() const { return m_data.showSuccessfulTests; } - virtual bool warnAboutMissingAssertions() const { return m_data.warnings & WarnAbout::NoAssertions; } - virtual ShowDurations::OrNot showDurations() const { return m_data.showDurations; } - virtual RunTests::InWhatOrder runOrder() const { return m_data.runOrder; } - virtual unsigned int rngSeed() const { return m_data.rngSeed; } - virtual bool forceColour() const { return m_data.forceColour; } - - private: - - IStream const* openStream() { - if( m_data.outputFilename.empty() ) - return new CoutStream(); - else if( m_data.outputFilename[0] == '%' ) { - if( m_data.outputFilename == "%debug" ) - return new DebugOutStream(); - else - throw std::domain_error( "Unrecognised stream: " + m_data.outputFilename ); - } - else - return new FileStream( m_data.outputFilename ); - } - ConfigData m_data; - - std::auto_ptr m_stream; - TestSpec m_testSpec; - }; - -} // end namespace Catch - -// #included from: catch_clara.h -#define TWOBLUECUBES_CATCH_CLARA_H_INCLUDED - -// Use Catch's value for console width (store Clara's off to the side, if present) -#ifdef CLARA_CONFIG_CONSOLE_WIDTH -#define CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH CLARA_CONFIG_CONSOLE_WIDTH -#undef CLARA_CONFIG_CONSOLE_WIDTH -#endif -#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH - -// Declare Clara inside the Catch namespace -#define STITCH_CLARA_OPEN_NAMESPACE namespace Catch { -// #included from: ../external/clara.h - -// Version 0.0.1.1 - -// Only use header guard if we are not using an outer namespace -#if !defined(TWOBLUECUBES_CLARA_H_INCLUDED) || defined(STITCH_CLARA_OPEN_NAMESPACE) - -#ifndef STITCH_CLARA_OPEN_NAMESPACE -#define TWOBLUECUBES_CLARA_H_INCLUDED -#define STITCH_CLARA_OPEN_NAMESPACE -#define STITCH_CLARA_CLOSE_NAMESPACE -#else -#define STITCH_CLARA_CLOSE_NAMESPACE } -#endif - -#define STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE STITCH_CLARA_OPEN_NAMESPACE - -// ----------- #included from tbc_text_format.h ----------- - -// Only use header guard if we are not using an outer namespace -#if !defined(TBC_TEXT_FORMAT_H_INCLUDED) || defined(STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE) -#ifndef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE -#define TBC_TEXT_FORMAT_H_INCLUDED -#endif - -#include -#include -#include -#include - -// Use optional outer namespace -#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE -namespace STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE { -#endif - -namespace Tbc { - -#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH - const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH; -#else - const unsigned int consoleWidth = 80; -#endif - - struct TextAttributes { - TextAttributes() - : initialIndent( std::string::npos ), - indent( 0 ), - width( consoleWidth-1 ), - tabChar( '\t' ) - {} - - TextAttributes& setInitialIndent( std::size_t _value ) { initialIndent = _value; return *this; } - TextAttributes& setIndent( std::size_t _value ) { indent = _value; return *this; } - TextAttributes& setWidth( std::size_t _value ) { width = _value; return *this; } - TextAttributes& setTabChar( char _value ) { tabChar = _value; return *this; } - - std::size_t initialIndent; // indent of first line, or npos - std::size_t indent; // indent of subsequent lines, or all if initialIndent is npos - std::size_t width; // maximum width of text, including indent. Longer text will wrap - char tabChar; // If this char is seen the indent is changed to current pos - }; - - class Text { - public: - Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() ) - : attr( _attr ) - { - std::string wrappableChars = " [({.,/|\\-"; - std::size_t indent = _attr.initialIndent != std::string::npos - ? _attr.initialIndent - : _attr.indent; - std::string remainder = _str; - - while( !remainder.empty() ) { - if( lines.size() >= 1000 ) { - lines.push_back( "... message truncated due to excessive size" ); - return; - } - std::size_t tabPos = std::string::npos; - std::size_t width = (std::min)( remainder.size(), _attr.width - indent ); - std::size_t pos = remainder.find_first_of( '\n' ); - if( pos <= width ) { - width = pos; - } - pos = remainder.find_last_of( _attr.tabChar, width ); - if( pos != std::string::npos ) { - tabPos = pos; - if( remainder[width] == '\n' ) - width--; - remainder = remainder.substr( 0, tabPos ) + remainder.substr( tabPos+1 ); - } - - if( width == remainder.size() ) { - spliceLine( indent, remainder, width ); - } - else if( remainder[width] == '\n' ) { - spliceLine( indent, remainder, width ); - if( width <= 1 || remainder.size() != 1 ) - remainder = remainder.substr( 1 ); - indent = _attr.indent; - } - else { - pos = remainder.find_last_of( wrappableChars, width ); - if( pos != std::string::npos && pos > 0 ) { - spliceLine( indent, remainder, pos ); - if( remainder[0] == ' ' ) - remainder = remainder.substr( 1 ); - } - else { - spliceLine( indent, remainder, width-1 ); - lines.back() += "-"; - } - if( lines.size() == 1 ) - indent = _attr.indent; - if( tabPos != std::string::npos ) - indent += tabPos; - } - } - } - - void spliceLine( std::size_t _indent, std::string& _remainder, std::size_t _pos ) { - lines.push_back( std::string( _indent, ' ' ) + _remainder.substr( 0, _pos ) ); - _remainder = _remainder.substr( _pos ); - } - - typedef std::vector::const_iterator const_iterator; - - const_iterator begin() const { return lines.begin(); } - const_iterator end() const { return lines.end(); } - std::string const& last() const { return lines.back(); } - std::size_t size() const { return lines.size(); } - std::string const& operator[]( std::size_t _index ) const { return lines[_index]; } - std::string toString() const { - std::ostringstream oss; - oss << *this; - return oss.str(); - } - - inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) { - for( Text::const_iterator it = _text.begin(), itEnd = _text.end(); - it != itEnd; ++it ) { - if( it != _text.begin() ) - _stream << "\n"; - _stream << *it; - } - return _stream; - } - - private: - std::string str; - TextAttributes attr; - std::vector lines; - }; - -} // end namespace Tbc - -#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE -} // end outer namespace -#endif - -#endif // TBC_TEXT_FORMAT_H_INCLUDED - -// ----------- end of #include from tbc_text_format.h ----------- -// ........... back in clara.h - -#undef STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE - -// ----------- #included from clara_compilers.h ----------- - -#ifndef TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED -#define TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED - -// Detect a number of compiler features - mostly C++11/14 conformance - by compiler -// The following features are defined: -// -// CLARA_CONFIG_CPP11_NULLPTR : is nullptr supported? -// CLARA_CONFIG_CPP11_NOEXCEPT : is noexcept supported? -// CLARA_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods -// CLARA_CONFIG_CPP11_OVERRIDE : is override supported? -// CLARA_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr) - -// CLARA_CONFIG_CPP11_OR_GREATER : Is C++11 supported? - -// CLARA_CONFIG_VARIADIC_MACROS : are variadic macros supported? - -// In general each macro has a _NO_ form -// (e.g. CLARA_CONFIG_CPP11_NO_NULLPTR) which disables the feature. -// Many features, at point of detection, define an _INTERNAL_ macro, so they -// can be combined, en-mass, with the _NO_ forms later. - -// All the C++11 features can be disabled with CLARA_CONFIG_NO_CPP11 - -#ifdef __clang__ - -#if __has_feature(cxx_nullptr) -#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR -#endif - -#if __has_feature(cxx_noexcept) -#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT -#endif - -#endif // __clang__ - -//////////////////////////////////////////////////////////////////////////////// -// GCC -#ifdef __GNUC__ - -#if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__) -#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR -#endif - -// - otherwise more recent versions define __cplusplus >= 201103L -// and will get picked up below - -#endif // __GNUC__ - -//////////////////////////////////////////////////////////////////////////////// -// Visual C++ -#ifdef _MSC_VER - -#if (_MSC_VER >= 1600) -#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR -#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR -#endif - -#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015)) -#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT -#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -#endif - -#endif // _MSC_VER - -//////////////////////////////////////////////////////////////////////////////// -// C++ language feature support - -// catch all support for C++11 -#if defined(__cplusplus) && __cplusplus >= 201103L - -#define CLARA_CPP11_OR_GREATER - -#if !defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR) -#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR -#endif - -#ifndef CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT -#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT -#endif - -#ifndef CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -#endif - -#if !defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE) -#define CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE -#endif -#if !defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) -#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR -#endif - -#endif // __cplusplus >= 201103L - -// Now set the actual defines based on the above + anything the user has configured -#if defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NO_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_NO_CPP11) -#define CLARA_CONFIG_CPP11_NULLPTR -#endif -#if defined(CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_NO_CPP11) -#define CLARA_CONFIG_CPP11_NOEXCEPT -#endif -#if defined(CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_NO_CPP11) -#define CLARA_CONFIG_CPP11_GENERATED_METHODS -#endif -#if defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_OVERRIDE) && !defined(CLARA_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_CPP11) -#define CLARA_CONFIG_CPP11_OVERRIDE -#endif -#if defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_UNIQUE_PTR) && !defined(CLARA_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_CPP11) -#define CLARA_CONFIG_CPP11_UNIQUE_PTR -#endif - -// noexcept support: -#if defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_NOEXCEPT) -#define CLARA_NOEXCEPT noexcept -# define CLARA_NOEXCEPT_IS(x) noexcept(x) -#else -#define CLARA_NOEXCEPT throw() -# define CLARA_NOEXCEPT_IS(x) -#endif - -// nullptr support -#ifdef CLARA_CONFIG_CPP11_NULLPTR -#define CLARA_NULL nullptr -#else -#define CLARA_NULL NULL -#endif - -// override support -#ifdef CLARA_CONFIG_CPP11_OVERRIDE -#define CLARA_OVERRIDE override -#else -#define CLARA_OVERRIDE -#endif - -// unique_ptr support -#ifdef CLARA_CONFIG_CPP11_UNIQUE_PTR -# define CLARA_AUTO_PTR( T ) std::unique_ptr -#else -# define CLARA_AUTO_PTR( T ) std::auto_ptr -#endif - -#endif // TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED - -// ----------- end of #include from clara_compilers.h ----------- -// ........... back in clara.h - -#include -#include -#include - -// Use optional outer namespace -#ifdef STITCH_CLARA_OPEN_NAMESPACE -STITCH_CLARA_OPEN_NAMESPACE -#endif - -namespace Clara { - - struct UnpositionalTag {}; - - extern UnpositionalTag _; - -#ifdef CLARA_CONFIG_MAIN - UnpositionalTag _; -#endif - - namespace Detail { - -#ifdef CLARA_CONSOLE_WIDTH - const unsigned int consoleWidth = CLARA_CONFIG_CONSOLE_WIDTH; -#else - const unsigned int consoleWidth = 80; -#endif - - // Use this to try and stop compiler from warning about unreachable code - inline bool isTrue( bool value ) { return value; } - - using namespace Tbc; - - inline bool startsWith( std::string const& str, std::string const& prefix ) { - return str.size() >= prefix.size() && str.substr( 0, prefix.size() ) == prefix; - } - - template struct RemoveConstRef{ typedef T type; }; - template struct RemoveConstRef{ typedef T type; }; - template struct RemoveConstRef{ typedef T type; }; - template struct RemoveConstRef{ typedef T type; }; - - template struct IsBool { static const bool value = false; }; - template<> struct IsBool { static const bool value = true; }; - - template - void convertInto( std::string const& _source, T& _dest ) { - std::stringstream ss; - ss << _source; - ss >> _dest; - if( ss.fail() ) - throw std::runtime_error( "Unable to convert " + _source + " to destination type" ); - } - inline void convertInto( std::string const& _source, std::string& _dest ) { - _dest = _source; - } - inline void convertInto( std::string const& _source, bool& _dest ) { - std::string sourceLC = _source; - std::transform( sourceLC.begin(), sourceLC.end(), sourceLC.begin(), ::tolower ); - if( sourceLC == "y" || sourceLC == "1" || sourceLC == "true" || sourceLC == "yes" || sourceLC == "on" ) - _dest = true; - else if( sourceLC == "n" || sourceLC == "0" || sourceLC == "false" || sourceLC == "no" || sourceLC == "off" ) - _dest = false; - else - throw std::runtime_error( "Expected a boolean value but did not recognise:\n '" + _source + "'" ); - } - inline void convertInto( bool _source, bool& _dest ) { - _dest = _source; - } - template - inline void convertInto( bool, T& ) { - if( isTrue( true ) ) - throw std::runtime_error( "Invalid conversion" ); - } - - template - struct IArgFunction { - virtual ~IArgFunction() {} -#ifdef CLARA_CONFIG_CPP11_GENERATED_METHODS - IArgFunction() = default; - IArgFunction( IArgFunction const& ) = default; -#endif - virtual void set( ConfigT& config, std::string const& value ) const = 0; - virtual void setFlag( ConfigT& config ) const = 0; - virtual bool takesArg() const = 0; - virtual IArgFunction* clone() const = 0; - }; - - template - class BoundArgFunction { - public: - BoundArgFunction() : functionObj( CLARA_NULL ) {} - BoundArgFunction( IArgFunction* _functionObj ) : functionObj( _functionObj ) {} - BoundArgFunction( BoundArgFunction const& other ) : functionObj( other.functionObj ? other.functionObj->clone() : CLARA_NULL ) {} - BoundArgFunction& operator = ( BoundArgFunction const& other ) { - IArgFunction* newFunctionObj = other.functionObj ? other.functionObj->clone() : CLARA_NULL; - delete functionObj; - functionObj = newFunctionObj; - return *this; - } - ~BoundArgFunction() { delete functionObj; } - - void set( ConfigT& config, std::string const& value ) const { - functionObj->set( config, value ); - } - void setFlag( ConfigT& config ) const { - functionObj->setFlag( config ); - } - bool takesArg() const { return functionObj->takesArg(); } - - bool isSet() const { - return functionObj != CLARA_NULL; - } - private: - IArgFunction* functionObj; - }; - - template - struct NullBinder : IArgFunction{ - virtual void set( C&, std::string const& ) const {} - virtual void setFlag( C& ) const {} - virtual bool takesArg() const { return true; } - virtual IArgFunction* clone() const { return new NullBinder( *this ); } - }; - - template - struct BoundDataMember : IArgFunction{ - BoundDataMember( M C::* _member ) : member( _member ) {} - virtual void set( C& p, std::string const& stringValue ) const { - convertInto( stringValue, p.*member ); - } - virtual void setFlag( C& p ) const { - convertInto( true, p.*member ); - } - virtual bool takesArg() const { return !IsBool::value; } - virtual IArgFunction* clone() const { return new BoundDataMember( *this ); } - M C::* member; - }; - template - struct BoundUnaryMethod : IArgFunction{ - BoundUnaryMethod( void (C::*_member)( M ) ) : member( _member ) {} - virtual void set( C& p, std::string const& stringValue ) const { - typename RemoveConstRef::type value; - convertInto( stringValue, value ); - (p.*member)( value ); - } - virtual void setFlag( C& p ) const { - typename RemoveConstRef::type value; - convertInto( true, value ); - (p.*member)( value ); - } - virtual bool takesArg() const { return !IsBool::value; } - virtual IArgFunction* clone() const { return new BoundUnaryMethod( *this ); } - void (C::*member)( M ); - }; - template - struct BoundNullaryMethod : IArgFunction{ - BoundNullaryMethod( void (C::*_member)() ) : member( _member ) {} - virtual void set( C& p, std::string const& stringValue ) const { - bool value; - convertInto( stringValue, value ); - if( value ) - (p.*member)(); - } - virtual void setFlag( C& p ) const { - (p.*member)(); - } - virtual bool takesArg() const { return false; } - virtual IArgFunction* clone() const { return new BoundNullaryMethod( *this ); } - void (C::*member)(); - }; - - template - struct BoundUnaryFunction : IArgFunction{ - BoundUnaryFunction( void (*_function)( C& ) ) : function( _function ) {} - virtual void set( C& obj, std::string const& stringValue ) const { - bool value; - convertInto( stringValue, value ); - if( value ) - function( obj ); - } - virtual void setFlag( C& p ) const { - function( p ); - } - virtual bool takesArg() const { return false; } - virtual IArgFunction* clone() const { return new BoundUnaryFunction( *this ); } - void (*function)( C& ); - }; - - template - struct BoundBinaryFunction : IArgFunction{ - BoundBinaryFunction( void (*_function)( C&, T ) ) : function( _function ) {} - virtual void set( C& obj, std::string const& stringValue ) const { - typename RemoveConstRef::type value; - convertInto( stringValue, value ); - function( obj, value ); - } - virtual void setFlag( C& obj ) const { - typename RemoveConstRef::type value; - convertInto( true, value ); - function( obj, value ); - } - virtual bool takesArg() const { return !IsBool::value; } - virtual IArgFunction* clone() const { return new BoundBinaryFunction( *this ); } - void (*function)( C&, T ); - }; - - } // namespace Detail - - struct Parser { - Parser() : separators( " \t=:" ) {} - - struct Token { - enum Type { Positional, ShortOpt, LongOpt }; - Token( Type _type, std::string const& _data ) : type( _type ), data( _data ) {} - Type type; - std::string data; - }; - - void parseIntoTokens( int argc, char const* const argv[], std::vector& tokens ) const { - const std::string doubleDash = "--"; - for( int i = 1; i < argc && argv[i] != doubleDash; ++i ) - parseIntoTokens( argv[i] , tokens); - } - void parseIntoTokens( std::string arg, std::vector& tokens ) const { - while( !arg.empty() ) { - Parser::Token token( Parser::Token::Positional, arg ); - arg = ""; - if( token.data[0] == '-' ) { - if( token.data.size() > 1 && token.data[1] == '-' ) { - token = Parser::Token( Parser::Token::LongOpt, token.data.substr( 2 ) ); - } - else { - token = Parser::Token( Parser::Token::ShortOpt, token.data.substr( 1 ) ); - if( token.data.size() > 1 && separators.find( token.data[1] ) == std::string::npos ) { - arg = "-" + token.data.substr( 1 ); - token.data = token.data.substr( 0, 1 ); - } - } - } - if( token.type != Parser::Token::Positional ) { - std::size_t pos = token.data.find_first_of( separators ); - if( pos != std::string::npos ) { - arg = token.data.substr( pos+1 ); - token.data = token.data.substr( 0, pos ); - } - } - tokens.push_back( token ); - } - } - std::string separators; - }; - - template - struct CommonArgProperties { - CommonArgProperties() {} - CommonArgProperties( Detail::BoundArgFunction const& _boundField ) : boundField( _boundField ) {} - - Detail::BoundArgFunction boundField; - std::string description; - std::string detail; - std::string placeholder; // Only value if boundField takes an arg - - bool takesArg() const { - return !placeholder.empty(); - } - void validate() const { - if( !boundField.isSet() ) - throw std::logic_error( "option not bound" ); - } - }; - struct OptionArgProperties { - std::vector shortNames; - std::string longName; - - bool hasShortName( std::string const& shortName ) const { - return std::find( shortNames.begin(), shortNames.end(), shortName ) != shortNames.end(); - } - bool hasLongName( std::string const& _longName ) const { - return _longName == longName; - } - }; - struct PositionalArgProperties { - PositionalArgProperties() : position( -1 ) {} - int position; // -1 means non-positional (floating) - - bool isFixedPositional() const { - return position != -1; - } - }; - - template - class CommandLine { - - struct Arg : CommonArgProperties, OptionArgProperties, PositionalArgProperties { - Arg() {} - Arg( Detail::BoundArgFunction const& _boundField ) : CommonArgProperties( _boundField ) {} - - using CommonArgProperties::placeholder; // !TBD - - std::string dbgName() const { - if( !longName.empty() ) - return "--" + longName; - if( !shortNames.empty() ) - return "-" + shortNames[0]; - return "positional args"; - } - std::string commands() const { - std::ostringstream oss; - bool first = true; - std::vector::const_iterator it = shortNames.begin(), itEnd = shortNames.end(); - for(; it != itEnd; ++it ) { - if( first ) - first = false; - else - oss << ", "; - oss << "-" << *it; - } - if( !longName.empty() ) { - if( !first ) - oss << ", "; - oss << "--" << longName; - } - if( !placeholder.empty() ) - oss << " <" << placeholder << ">"; - return oss.str(); - } - }; - - typedef CLARA_AUTO_PTR( Arg ) ArgAutoPtr; - - friend void addOptName( Arg& arg, std::string const& optName ) - { - if( optName.empty() ) - return; - if( Detail::startsWith( optName, "--" ) ) { - if( !arg.longName.empty() ) - throw std::logic_error( "Only one long opt may be specified. '" - + arg.longName - + "' already specified, now attempting to add '" - + optName + "'" ); - arg.longName = optName.substr( 2 ); - } - else if( Detail::startsWith( optName, "-" ) ) - arg.shortNames.push_back( optName.substr( 1 ) ); - else - throw std::logic_error( "option must begin with - or --. Option was: '" + optName + "'" ); - } - friend void setPositionalArg( Arg& arg, int position ) - { - arg.position = position; - } - - class ArgBuilder { - public: - ArgBuilder( Arg* arg ) : m_arg( arg ) {} - - // Bind a non-boolean data member (requires placeholder string) - template - void bind( M C::* field, std::string const& placeholder ) { - m_arg->boundField = new Detail::BoundDataMember( field ); - m_arg->placeholder = placeholder; - } - // Bind a boolean data member (no placeholder required) - template - void bind( bool C::* field ) { - m_arg->boundField = new Detail::BoundDataMember( field ); - } - - // Bind a method taking a single, non-boolean argument (requires a placeholder string) - template - void bind( void (C::* unaryMethod)( M ), std::string const& placeholder ) { - m_arg->boundField = new Detail::BoundUnaryMethod( unaryMethod ); - m_arg->placeholder = placeholder; - } - - // Bind a method taking a single, boolean argument (no placeholder string required) - template - void bind( void (C::* unaryMethod)( bool ) ) { - m_arg->boundField = new Detail::BoundUnaryMethod( unaryMethod ); - } - - // Bind a method that takes no arguments (will be called if opt is present) - template - void bind( void (C::* nullaryMethod)() ) { - m_arg->boundField = new Detail::BoundNullaryMethod( nullaryMethod ); - } - - // Bind a free function taking a single argument - the object to operate on (no placeholder string required) - template - void bind( void (* unaryFunction)( C& ) ) { - m_arg->boundField = new Detail::BoundUnaryFunction( unaryFunction ); - } - - // Bind a free function taking a single argument - the object to operate on (requires a placeholder string) - template - void bind( void (* binaryFunction)( C&, T ), std::string const& placeholder ) { - m_arg->boundField = new Detail::BoundBinaryFunction( binaryFunction ); - m_arg->placeholder = placeholder; - } - - ArgBuilder& describe( std::string const& description ) { - m_arg->description = description; - return *this; - } - ArgBuilder& detail( std::string const& detail ) { - m_arg->detail = detail; - return *this; - } - - protected: - Arg* m_arg; - }; - - class OptBuilder : public ArgBuilder { - public: - OptBuilder( Arg* arg ) : ArgBuilder( arg ) {} - OptBuilder( OptBuilder& other ) : ArgBuilder( other ) {} - - OptBuilder& operator[]( std::string const& optName ) { - addOptName( *ArgBuilder::m_arg, optName ); - return *this; - } - }; - - public: - - CommandLine() - : m_boundProcessName( new Detail::NullBinder() ), - m_highestSpecifiedArgPosition( 0 ), - m_throwOnUnrecognisedTokens( false ) - {} - CommandLine( CommandLine const& other ) - : m_boundProcessName( other.m_boundProcessName ), - m_options ( other.m_options ), - m_positionalArgs( other.m_positionalArgs ), - m_highestSpecifiedArgPosition( other.m_highestSpecifiedArgPosition ), - m_throwOnUnrecognisedTokens( other.m_throwOnUnrecognisedTokens ) - { - if( other.m_floatingArg.get() ) - m_floatingArg.reset( new Arg( *other.m_floatingArg ) ); - } - - CommandLine& setThrowOnUnrecognisedTokens( bool shouldThrow = true ) { - m_throwOnUnrecognisedTokens = shouldThrow; - return *this; - } - - OptBuilder operator[]( std::string const& optName ) { - m_options.push_back( Arg() ); - addOptName( m_options.back(), optName ); - OptBuilder builder( &m_options.back() ); - return builder; - } - - ArgBuilder operator[]( int position ) { - m_positionalArgs.insert( std::make_pair( position, Arg() ) ); - if( position > m_highestSpecifiedArgPosition ) - m_highestSpecifiedArgPosition = position; - setPositionalArg( m_positionalArgs[position], position ); - ArgBuilder builder( &m_positionalArgs[position] ); - return builder; - } - - // Invoke this with the _ instance - ArgBuilder operator[]( UnpositionalTag ) { - if( m_floatingArg.get() ) - throw std::logic_error( "Only one unpositional argument can be added" ); - m_floatingArg.reset( new Arg() ); - ArgBuilder builder( m_floatingArg.get() ); - return builder; - } - - template - void bindProcessName( M C::* field ) { - m_boundProcessName = new Detail::BoundDataMember( field ); - } - template - void bindProcessName( void (C::*_unaryMethod)( M ) ) { - m_boundProcessName = new Detail::BoundUnaryMethod( _unaryMethod ); - } - - void optUsage( std::ostream& os, std::size_t indent = 0, std::size_t width = Detail::consoleWidth ) const { - typename std::vector::const_iterator itBegin = m_options.begin(), itEnd = m_options.end(), it; - std::size_t maxWidth = 0; - for( it = itBegin; it != itEnd; ++it ) - maxWidth = (std::max)( maxWidth, it->commands().size() ); - - for( it = itBegin; it != itEnd; ++it ) { - Detail::Text usage( it->commands(), Detail::TextAttributes() - .setWidth( maxWidth+indent ) - .setIndent( indent ) ); - Detail::Text desc( it->description, Detail::TextAttributes() - .setWidth( width - maxWidth - 3 ) ); - - for( std::size_t i = 0; i < (std::max)( usage.size(), desc.size() ); ++i ) { - std::string usageCol = i < usage.size() ? usage[i] : ""; - os << usageCol; - - if( i < desc.size() && !desc[i].empty() ) - os << std::string( indent + 2 + maxWidth - usageCol.size(), ' ' ) - << desc[i]; - os << "\n"; - } - } - } - std::string optUsage() const { - std::ostringstream oss; - optUsage( oss ); - return oss.str(); - } - - void argSynopsis( std::ostream& os ) const { - for( int i = 1; i <= m_highestSpecifiedArgPosition; ++i ) { - if( i > 1 ) - os << " "; - typename std::map::const_iterator it = m_positionalArgs.find( i ); - if( it != m_positionalArgs.end() ) - os << "<" << it->second.placeholder << ">"; - else if( m_floatingArg.get() ) - os << "<" << m_floatingArg->placeholder << ">"; - else - throw std::logic_error( "non consecutive positional arguments with no floating args" ); - } - // !TBD No indication of mandatory args - if( m_floatingArg.get() ) { - if( m_highestSpecifiedArgPosition > 1 ) - os << " "; - os << "[<" << m_floatingArg->placeholder << "> ...]"; - } - } - std::string argSynopsis() const { - std::ostringstream oss; - argSynopsis( oss ); - return oss.str(); - } - - void usage( std::ostream& os, std::string const& procName ) const { - validate(); - os << "usage:\n " << procName << " "; - argSynopsis( os ); - if( !m_options.empty() ) { - os << " [options]\n\nwhere options are: \n"; - optUsage( os, 2 ); - } - os << "\n"; - } - std::string usage( std::string const& procName ) const { - std::ostringstream oss; - usage( oss, procName ); - return oss.str(); - } - - ConfigT parse( int argc, char const* const argv[] ) const { - ConfigT config; - parseInto( argc, argv, config ); - return config; - } - - std::vector parseInto( int argc, char const* argv[], ConfigT& config ) const { - std::string processName = argv[0]; - std::size_t lastSlash = processName.find_last_of( "/\\" ); - if( lastSlash != std::string::npos ) - processName = processName.substr( lastSlash+1 ); - m_boundProcessName.set( config, processName ); - std::vector tokens; - Parser parser; - parser.parseIntoTokens( argc, argv, tokens ); - return populate( tokens, config ); - } - - std::vector populate( std::vector const& tokens, ConfigT& config ) const { - validate(); - std::vector unusedTokens = populateOptions( tokens, config ); - unusedTokens = populateFixedArgs( unusedTokens, config ); - unusedTokens = populateFloatingArgs( unusedTokens, config ); - return unusedTokens; - } - - std::vector populateOptions( std::vector const& tokens, ConfigT& config ) const { - std::vector unusedTokens; - std::vector errors; - for( std::size_t i = 0; i < tokens.size(); ++i ) { - Parser::Token const& token = tokens[i]; - typename std::vector::const_iterator it = m_options.begin(), itEnd = m_options.end(); - for(; it != itEnd; ++it ) { - Arg const& arg = *it; - - try { - if( ( token.type == Parser::Token::ShortOpt && arg.hasShortName( token.data ) ) || - ( token.type == Parser::Token::LongOpt && arg.hasLongName( token.data ) ) ) { - if( arg.takesArg() ) { - if( i == tokens.size()-1 || tokens[i+1].type != Parser::Token::Positional ) - errors.push_back( "Expected argument to option: " + token.data ); - else - arg.boundField.set( config, tokens[++i].data ); - } - else { - arg.boundField.setFlag( config ); - } - break; - } - } - catch( std::exception& ex ) { - errors.push_back( std::string( ex.what() ) + "\n- while parsing: (" + arg.commands() + ")" ); - } - } - if( it == itEnd ) { - if( token.type == Parser::Token::Positional || !m_throwOnUnrecognisedTokens ) - unusedTokens.push_back( token ); - else if( errors.empty() && m_throwOnUnrecognisedTokens ) - errors.push_back( "unrecognised option: " + token.data ); - } - } - if( !errors.empty() ) { - std::ostringstream oss; - for( std::vector::const_iterator it = errors.begin(), itEnd = errors.end(); - it != itEnd; - ++it ) { - if( it != errors.begin() ) - oss << "\n"; - oss << *it; - } - throw std::runtime_error( oss.str() ); - } - return unusedTokens; - } - std::vector populateFixedArgs( std::vector const& tokens, ConfigT& config ) const { - std::vector unusedTokens; - int position = 1; - for( std::size_t i = 0; i < tokens.size(); ++i ) { - Parser::Token const& token = tokens[i]; - typename std::map::const_iterator it = m_positionalArgs.find( position ); - if( it != m_positionalArgs.end() ) - it->second.boundField.set( config, token.data ); - else - unusedTokens.push_back( token ); - if( token.type == Parser::Token::Positional ) - position++; - } - return unusedTokens; - } - std::vector populateFloatingArgs( std::vector const& tokens, ConfigT& config ) const { - if( !m_floatingArg.get() ) - return tokens; - std::vector unusedTokens; - for( std::size_t i = 0; i < tokens.size(); ++i ) { - Parser::Token const& token = tokens[i]; - if( token.type == Parser::Token::Positional ) - m_floatingArg->boundField.set( config, token.data ); - else - unusedTokens.push_back( token ); - } - return unusedTokens; - } - - void validate() const - { - if( m_options.empty() && m_positionalArgs.empty() && !m_floatingArg.get() ) - throw std::logic_error( "No options or arguments specified" ); - - for( typename std::vector::const_iterator it = m_options.begin(), - itEnd = m_options.end(); - it != itEnd; ++it ) - it->validate(); - } - - private: - Detail::BoundArgFunction m_boundProcessName; - std::vector m_options; - std::map m_positionalArgs; - ArgAutoPtr m_floatingArg; - int m_highestSpecifiedArgPosition; - bool m_throwOnUnrecognisedTokens; - }; - -} // end namespace Clara - -STITCH_CLARA_CLOSE_NAMESPACE -#undef STITCH_CLARA_OPEN_NAMESPACE -#undef STITCH_CLARA_CLOSE_NAMESPACE - -#endif // TWOBLUECUBES_CLARA_H_INCLUDED -#undef STITCH_CLARA_OPEN_NAMESPACE - -// Restore Clara's value for console width, if present -#ifdef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH -#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH -#undef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH -#endif - -#include - -namespace Catch { - - inline void abortAfterFirst( ConfigData& config ) { config.abortAfter = 1; } - inline void abortAfterX( ConfigData& config, int x ) { - if( x < 1 ) - throw std::runtime_error( "Value after -x or --abortAfter must be greater than zero" ); - config.abortAfter = x; - } - inline void addTestOrTags( ConfigData& config, std::string const& _testSpec ) { config.testsOrTags.push_back( _testSpec ); } - inline void addReporterName( ConfigData& config, std::string const& _reporterName ) { config.reporterNames.push_back( _reporterName ); } - - inline void addWarning( ConfigData& config, std::string const& _warning ) { - if( _warning == "NoAssertions" ) - config.warnings = static_cast( config.warnings | WarnAbout::NoAssertions ); - else - throw std::runtime_error( "Unrecognised warning: '" + _warning + "'" ); - } - inline void setOrder( ConfigData& config, std::string const& order ) { - if( startsWith( "declared", order ) ) - config.runOrder = RunTests::InDeclarationOrder; - else if( startsWith( "lexical", order ) ) - config.runOrder = RunTests::InLexicographicalOrder; - else if( startsWith( "random", order ) ) - config.runOrder = RunTests::InRandomOrder; - else - throw std::runtime_error( "Unrecognised ordering: '" + order + "'" ); - } - inline void setRngSeed( ConfigData& config, std::string const& seed ) { - if( seed == "time" ) { - config.rngSeed = static_cast( std::time(0) ); - } - else { - std::stringstream ss; - ss << seed; - ss >> config.rngSeed; - if( ss.fail() ) - throw std::runtime_error( "Argment to --rng-seed should be the word 'time' or a number" ); - } - } - inline void setVerbosity( ConfigData& config, int level ) { - // !TBD: accept strings? - config.verbosity = static_cast( level ); - } - inline void setShowDurations( ConfigData& config, bool _showDurations ) { - config.showDurations = _showDurations - ? ShowDurations::Always - : ShowDurations::Never; - } - inline void loadTestNamesFromFile( ConfigData& config, std::string const& _filename ) { - std::ifstream f( _filename.c_str() ); - if( !f.is_open() ) - throw std::domain_error( "Unable to load input file: " + _filename ); - - std::string line; - while( std::getline( f, line ) ) { - line = trim(line); - if( !line.empty() && !startsWith( line, "#" ) ) - addTestOrTags( config, "\"" + line + "\"," ); - } - } - - inline Clara::CommandLine makeCommandLineParser() { - - using namespace Clara; - CommandLine cli; - - cli.bindProcessName( &ConfigData::processName ); - - cli["-?"]["-h"]["--help"] - .describe( "display usage information" ) - .bind( &ConfigData::showHelp ); - - cli["-l"]["--list-tests"] - .describe( "list all/matching test cases" ) - .bind( &ConfigData::listTests ); - - cli["-t"]["--list-tags"] - .describe( "list all/matching tags" ) - .bind( &ConfigData::listTags ); - - cli["-s"]["--success"] - .describe( "include successful tests in output" ) - .bind( &ConfigData::showSuccessfulTests ); - - cli["-b"]["--break"] - .describe( "break into debugger on failure" ) - .bind( &ConfigData::shouldDebugBreak ); - - cli["-e"]["--nothrow"] - .describe( "skip exception tests" ) - .bind( &ConfigData::noThrow ); - - cli["-i"]["--invisibles"] - .describe( "show invisibles (tabs, newlines)" ) - .bind( &ConfigData::showInvisibles ); - - cli["-o"]["--out"] - .describe( "output filename" ) - .bind( &ConfigData::outputFilename, "filename" ); - - cli["-r"]["--reporter"] -// .placeholder( "name[:filename]" ) - .describe( "reporter to use (defaults to console)" ) - .bind( &addReporterName, "name" ); - - cli["-n"]["--name"] - .describe( "suite name" ) - .bind( &ConfigData::name, "name" ); - - cli["-a"]["--abort"] - .describe( "abort at first failure" ) - .bind( &abortAfterFirst ); - - cli["-x"]["--abortx"] - .describe( "abort after x failures" ) - .bind( &abortAfterX, "no. failures" ); - - cli["-w"]["--warn"] - .describe( "enable warnings" ) - .bind( &addWarning, "warning name" ); - -// - needs updating if reinstated -// cli.into( &setVerbosity ) -// .describe( "level of verbosity (0=no output)" ) -// .shortOpt( "v") -// .longOpt( "verbosity" ) -// .placeholder( "level" ); - - cli[_] - .describe( "which test or tests to use" ) - .bind( &addTestOrTags, "test name, pattern or tags" ); - - cli["-d"]["--durations"] - .describe( "show test durations" ) - .bind( &setShowDurations, "yes/no" ); - - cli["-f"]["--input-file"] - .describe( "load test names to run from a file" ) - .bind( &loadTestNamesFromFile, "filename" ); - - cli["-#"]["--filenames-as-tags"] - .describe( "adds a tag for the filename" ) - .bind( &ConfigData::filenamesAsTags ); - - // Less common commands which don't have a short form - cli["--list-test-names-only"] - .describe( "list all/matching test cases names only" ) - .bind( &ConfigData::listTestNamesOnly ); - - cli["--list-reporters"] - .describe( "list all reporters" ) - .bind( &ConfigData::listReporters ); - - cli["--order"] - .describe( "test case order (defaults to decl)" ) - .bind( &setOrder, "decl|lex|rand" ); - - cli["--rng-seed"] - .describe( "set a specific seed for random numbers" ) - .bind( &setRngSeed, "'time'|number" ); - - cli["--force-colour"] - .describe( "force colourised output" ) - .bind( &ConfigData::forceColour ); - - return cli; - } - -} // end namespace Catch - -// #included from: internal/catch_list.hpp -#define TWOBLUECUBES_CATCH_LIST_HPP_INCLUDED - -// #included from: catch_text.h -#define TWOBLUECUBES_CATCH_TEXT_H_INCLUDED - -#define TBC_TEXT_FORMAT_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH - -#define CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE Catch -// #included from: ../external/tbc_text_format.h -// Only use header guard if we are not using an outer namespace -#ifndef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE -# ifdef TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED -# ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED -# define TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED -# endif -# else -# define TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED -# endif -#endif -#ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED -#include -#include -#include - -// Use optional outer namespace -#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE -namespace CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE { -#endif - -namespace Tbc { - -#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH - const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH; -#else - const unsigned int consoleWidth = 80; -#endif - - struct TextAttributes { - TextAttributes() - : initialIndent( std::string::npos ), - indent( 0 ), - width( consoleWidth-1 ), - tabChar( '\t' ) - {} - - TextAttributes& setInitialIndent( std::size_t _value ) { initialIndent = _value; return *this; } - TextAttributes& setIndent( std::size_t _value ) { indent = _value; return *this; } - TextAttributes& setWidth( std::size_t _value ) { width = _value; return *this; } - TextAttributes& setTabChar( char _value ) { tabChar = _value; return *this; } - - std::size_t initialIndent; // indent of first line, or npos - std::size_t indent; // indent of subsequent lines, or all if initialIndent is npos - std::size_t width; // maximum width of text, including indent. Longer text will wrap - char tabChar; // If this char is seen the indent is changed to current pos - }; - - class Text { - public: - Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() ) - : attr( _attr ) - { - std::string wrappableChars = " [({.,/|\\-"; - std::size_t indent = _attr.initialIndent != std::string::npos - ? _attr.initialIndent - : _attr.indent; - std::string remainder = _str; - - while( !remainder.empty() ) { - if( lines.size() >= 1000 ) { - lines.push_back( "... message truncated due to excessive size" ); - return; - } - std::size_t tabPos = std::string::npos; - std::size_t width = (std::min)( remainder.size(), _attr.width - indent ); - std::size_t pos = remainder.find_first_of( '\n' ); - if( pos <= width ) { - width = pos; - } - pos = remainder.find_last_of( _attr.tabChar, width ); - if( pos != std::string::npos ) { - tabPos = pos; - if( remainder[width] == '\n' ) - width--; - remainder = remainder.substr( 0, tabPos ) + remainder.substr( tabPos+1 ); - } - - if( width == remainder.size() ) { - spliceLine( indent, remainder, width ); - } - else if( remainder[width] == '\n' ) { - spliceLine( indent, remainder, width ); - if( width <= 1 || remainder.size() != 1 ) - remainder = remainder.substr( 1 ); - indent = _attr.indent; - } - else { - pos = remainder.find_last_of( wrappableChars, width ); - if( pos != std::string::npos && pos > 0 ) { - spliceLine( indent, remainder, pos ); - if( remainder[0] == ' ' ) - remainder = remainder.substr( 1 ); - } - else { - spliceLine( indent, remainder, width-1 ); - lines.back() += "-"; - } - if( lines.size() == 1 ) - indent = _attr.indent; - if( tabPos != std::string::npos ) - indent += tabPos; - } - } - } - - void spliceLine( std::size_t _indent, std::string& _remainder, std::size_t _pos ) { - lines.push_back( std::string( _indent, ' ' ) + _remainder.substr( 0, _pos ) ); - _remainder = _remainder.substr( _pos ); - } - - typedef std::vector::const_iterator const_iterator; - - const_iterator begin() const { return lines.begin(); } - const_iterator end() const { return lines.end(); } - std::string const& last() const { return lines.back(); } - std::size_t size() const { return lines.size(); } - std::string const& operator[]( std::size_t _index ) const { return lines[_index]; } - std::string toString() const { - std::ostringstream oss; - oss << *this; - return oss.str(); - } - - inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) { - for( Text::const_iterator it = _text.begin(), itEnd = _text.end(); - it != itEnd; ++it ) { - if( it != _text.begin() ) - _stream << "\n"; - _stream << *it; - } - return _stream; - } - - private: - std::string str; - TextAttributes attr; - std::vector lines; - }; - -} // end namespace Tbc - -#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE -} // end outer namespace -#endif - -#endif // TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED -#undef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE - -namespace Catch { - using Tbc::Text; - using Tbc::TextAttributes; -} - -// #included from: catch_console_colour.hpp -#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_HPP_INCLUDED - -namespace Catch { - - struct Colour { - enum Code { - None = 0, - - White, - Red, - Green, - Blue, - Cyan, - Yellow, - Grey, - - Bright = 0x10, - - BrightRed = Bright | Red, - BrightGreen = Bright | Green, - LightGrey = Bright | Grey, - BrightWhite = Bright | White, - - // By intention - FileName = LightGrey, - Warning = Yellow, - ResultError = BrightRed, - ResultSuccess = BrightGreen, - ResultExpectedFailure = Warning, - - Error = BrightRed, - Success = Green, - - OriginalExpression = Cyan, - ReconstructedExpression = Yellow, - - SecondaryText = LightGrey, - Headers = White - }; - - // Use constructed object for RAII guard - Colour( Code _colourCode ); - Colour( Colour const& other ); - ~Colour(); - - // Use static method for one-shot changes - static void use( Code _colourCode ); - - private: - bool m_moved; - }; - - inline std::ostream& operator << ( std::ostream& os, Colour const& ) { return os; } - -} // end namespace Catch - -// #included from: catch_interfaces_reporter.h -#define TWOBLUECUBES_CATCH_INTERFACES_REPORTER_H_INCLUDED - -#include -#include -#include -#include - -namespace Catch -{ - struct ReporterConfig { - explicit ReporterConfig( Ptr const& _fullConfig ) - : m_stream( &_fullConfig->stream() ), m_fullConfig( _fullConfig ) {} - - ReporterConfig( Ptr const& _fullConfig, std::ostream& _stream ) - : m_stream( &_stream ), m_fullConfig( _fullConfig ) {} - - std::ostream& stream() const { return *m_stream; } - Ptr fullConfig() const { return m_fullConfig; } - - private: - std::ostream* m_stream; - Ptr m_fullConfig; - }; - - struct ReporterPreferences { - ReporterPreferences() - : shouldRedirectStdOut( false ) - {} - - bool shouldRedirectStdOut; - }; - - template - struct LazyStat : Option { - LazyStat() : used( false ) {} - LazyStat& operator=( T const& _value ) { - Option::operator=( _value ); - used = false; - return *this; - } - void reset() { - Option::reset(); - used = false; - } - bool used; - }; - - struct TestRunInfo { - TestRunInfo( std::string const& _name ) : name( _name ) {} - std::string name; - }; - struct GroupInfo { - GroupInfo( std::string const& _name, - std::size_t _groupIndex, - std::size_t _groupsCount ) - : name( _name ), - groupIndex( _groupIndex ), - groupsCounts( _groupsCount ) - {} - - std::string name; - std::size_t groupIndex; - std::size_t groupsCounts; - }; - - struct AssertionStats { - AssertionStats( AssertionResult const& _assertionResult, - std::vector const& _infoMessages, - Totals const& _totals ) - : assertionResult( _assertionResult ), - infoMessages( _infoMessages ), - totals( _totals ) - { - if( assertionResult.hasMessage() ) { - // Copy message into messages list. - // !TBD This should have been done earlier, somewhere - MessageBuilder builder( assertionResult.getTestMacroName(), assertionResult.getSourceInfo(), assertionResult.getResultType() ); - builder << assertionResult.getMessage(); - builder.m_info.message = builder.m_stream.str(); - - infoMessages.push_back( builder.m_info ); - } - } - virtual ~AssertionStats(); - -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - AssertionStats( AssertionStats const& ) = default; - AssertionStats( AssertionStats && ) = default; - AssertionStats& operator = ( AssertionStats const& ) = default; - AssertionStats& operator = ( AssertionStats && ) = default; -# endif - - AssertionResult assertionResult; - std::vector infoMessages; - Totals totals; - }; - - struct SectionStats { - SectionStats( SectionInfo const& _sectionInfo, - Counts const& _assertions, - double _durationInSeconds, - bool _missingAssertions ) - : sectionInfo( _sectionInfo ), - assertions( _assertions ), - durationInSeconds( _durationInSeconds ), - missingAssertions( _missingAssertions ) - {} - virtual ~SectionStats(); -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - SectionStats( SectionStats const& ) = default; - SectionStats( SectionStats && ) = default; - SectionStats& operator = ( SectionStats const& ) = default; - SectionStats& operator = ( SectionStats && ) = default; -# endif - - SectionInfo sectionInfo; - Counts assertions; - double durationInSeconds; - bool missingAssertions; - }; - - struct TestCaseStats { - TestCaseStats( TestCaseInfo const& _testInfo, - Totals const& _totals, - std::string const& _stdOut, - std::string const& _stdErr, - bool _aborting ) - : testInfo( _testInfo ), - totals( _totals ), - stdOut( _stdOut ), - stdErr( _stdErr ), - aborting( _aborting ) - {} - virtual ~TestCaseStats(); - -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - TestCaseStats( TestCaseStats const& ) = default; - TestCaseStats( TestCaseStats && ) = default; - TestCaseStats& operator = ( TestCaseStats const& ) = default; - TestCaseStats& operator = ( TestCaseStats && ) = default; -# endif - - TestCaseInfo testInfo; - Totals totals; - std::string stdOut; - std::string stdErr; - bool aborting; - }; - - struct TestGroupStats { - TestGroupStats( GroupInfo const& _groupInfo, - Totals const& _totals, - bool _aborting ) - : groupInfo( _groupInfo ), - totals( _totals ), - aborting( _aborting ) - {} - TestGroupStats( GroupInfo const& _groupInfo ) - : groupInfo( _groupInfo ), - aborting( false ) - {} - virtual ~TestGroupStats(); - -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - TestGroupStats( TestGroupStats const& ) = default; - TestGroupStats( TestGroupStats && ) = default; - TestGroupStats& operator = ( TestGroupStats const& ) = default; - TestGroupStats& operator = ( TestGroupStats && ) = default; -# endif - - GroupInfo groupInfo; - Totals totals; - bool aborting; - }; - - struct TestRunStats { - TestRunStats( TestRunInfo const& _runInfo, - Totals const& _totals, - bool _aborting ) - : runInfo( _runInfo ), - totals( _totals ), - aborting( _aborting ) - {} - virtual ~TestRunStats(); - -# ifndef CATCH_CONFIG_CPP11_GENERATED_METHODS - TestRunStats( TestRunStats const& _other ) - : runInfo( _other.runInfo ), - totals( _other.totals ), - aborting( _other.aborting ) - {} -# else - TestRunStats( TestRunStats const& ) = default; - TestRunStats( TestRunStats && ) = default; - TestRunStats& operator = ( TestRunStats const& ) = default; - TestRunStats& operator = ( TestRunStats && ) = default; -# endif - - TestRunInfo runInfo; - Totals totals; - bool aborting; - }; - - struct IStreamingReporter : IShared { - virtual ~IStreamingReporter(); - - // Implementing class must also provide the following static method: - // static std::string getDescription(); - - virtual ReporterPreferences getPreferences() const = 0; - - virtual void noMatchingTestCases( std::string const& spec ) = 0; - - virtual void testRunStarting( TestRunInfo const& testRunInfo ) = 0; - virtual void testGroupStarting( GroupInfo const& groupInfo ) = 0; - - virtual void testCaseStarting( TestCaseInfo const& testInfo ) = 0; - virtual void sectionStarting( SectionInfo const& sectionInfo ) = 0; - - virtual void assertionStarting( AssertionInfo const& assertionInfo ) = 0; - - // The return value indicates if the messages buffer should be cleared: - virtual bool assertionEnded( AssertionStats const& assertionStats ) = 0; - - virtual void sectionEnded( SectionStats const& sectionStats ) = 0; - virtual void testCaseEnded( TestCaseStats const& testCaseStats ) = 0; - virtual void testGroupEnded( TestGroupStats const& testGroupStats ) = 0; - virtual void testRunEnded( TestRunStats const& testRunStats ) = 0; - - virtual void skipTest( TestCaseInfo const& testInfo ) = 0; - }; - - struct IReporterFactory : IShared { - virtual ~IReporterFactory(); - virtual IStreamingReporter* create( ReporterConfig const& config ) const = 0; - virtual std::string getDescription() const = 0; - }; - - struct IReporterRegistry { - typedef std::map > FactoryMap; - typedef std::vector > Listeners; - - virtual ~IReporterRegistry(); - virtual IStreamingReporter* create( std::string const& name, Ptr const& config ) const = 0; - virtual FactoryMap const& getFactories() const = 0; - virtual Listeners const& getListeners() const = 0; - }; - - Ptr addReporter( Ptr const& existingReporter, Ptr const& additionalReporter ); - -} - -#include -#include - -namespace Catch { - - inline std::size_t listTests( Config const& config ) { - - TestSpec testSpec = config.testSpec(); - if( config.testSpec().hasFilters() ) - Catch::cout() << "Matching test cases:\n"; - else { - Catch::cout() << "All available test cases:\n"; - testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec(); - } - - std::size_t matchedTests = 0; - TextAttributes nameAttr, tagsAttr; - nameAttr.setInitialIndent( 2 ).setIndent( 4 ); - tagsAttr.setIndent( 6 ); - - std::vector matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config ); - for( std::vector::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end(); - it != itEnd; - ++it ) { - matchedTests++; - TestCaseInfo const& testCaseInfo = it->getTestCaseInfo(); - Colour::Code colour = testCaseInfo.isHidden() - ? Colour::SecondaryText - : Colour::None; - Colour colourGuard( colour ); - - Catch::cout() << Text( testCaseInfo.name, nameAttr ) << std::endl; - if( !testCaseInfo.tags.empty() ) - Catch::cout() << Text( testCaseInfo.tagsAsString, tagsAttr ) << std::endl; - } - - if( !config.testSpec().hasFilters() ) - Catch::cout() << pluralise( matchedTests, "test case" ) << "\n" << std::endl; - else - Catch::cout() << pluralise( matchedTests, "matching test case" ) << "\n" << std::endl; - return matchedTests; - } - - inline std::size_t listTestsNamesOnly( Config const& config ) { - TestSpec testSpec = config.testSpec(); - if( !config.testSpec().hasFilters() ) - testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec(); - std::size_t matchedTests = 0; - std::vector matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config ); - for( std::vector::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end(); - it != itEnd; - ++it ) { - matchedTests++; - TestCaseInfo const& testCaseInfo = it->getTestCaseInfo(); - Catch::cout() << testCaseInfo.name << std::endl; - } - return matchedTests; - } - - struct TagInfo { - TagInfo() : count ( 0 ) {} - void add( std::string const& spelling ) { - ++count; - spellings.insert( spelling ); - } - std::string all() const { - std::string out; - for( std::set::const_iterator it = spellings.begin(), itEnd = spellings.end(); - it != itEnd; - ++it ) - out += "[" + *it + "]"; - return out; - } - std::set spellings; - std::size_t count; - }; - - inline std::size_t listTags( Config const& config ) { - TestSpec testSpec = config.testSpec(); - if( config.testSpec().hasFilters() ) - Catch::cout() << "Tags for matching test cases:\n"; - else { - Catch::cout() << "All available tags:\n"; - testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec(); - } - - std::map tagCounts; - - std::vector matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config ); - for( std::vector::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end(); - it != itEnd; - ++it ) { - for( std::set::const_iterator tagIt = it->getTestCaseInfo().tags.begin(), - tagItEnd = it->getTestCaseInfo().tags.end(); - tagIt != tagItEnd; - ++tagIt ) { - std::string tagName = *tagIt; - std::string lcaseTagName = toLower( tagName ); - std::map::iterator countIt = tagCounts.find( lcaseTagName ); - if( countIt == tagCounts.end() ) - countIt = tagCounts.insert( std::make_pair( lcaseTagName, TagInfo() ) ).first; - countIt->second.add( tagName ); - } - } - - for( std::map::const_iterator countIt = tagCounts.begin(), - countItEnd = tagCounts.end(); - countIt != countItEnd; - ++countIt ) { - std::ostringstream oss; - oss << " " << std::setw(2) << countIt->second.count << " "; - Text wrapper( countIt->second.all(), TextAttributes() - .setInitialIndent( 0 ) - .setIndent( oss.str().size() ) - .setWidth( CATCH_CONFIG_CONSOLE_WIDTH-10 ) ); - Catch::cout() << oss.str() << wrapper << "\n"; - } - Catch::cout() << pluralise( tagCounts.size(), "tag" ) << "\n" << std::endl; - return tagCounts.size(); - } - - inline std::size_t listReporters( Config const& /*config*/ ) { - Catch::cout() << "Available reporters:\n"; - IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories(); - IReporterRegistry::FactoryMap::const_iterator itBegin = factories.begin(), itEnd = factories.end(), it; - std::size_t maxNameLen = 0; - for(it = itBegin; it != itEnd; ++it ) - maxNameLen = (std::max)( maxNameLen, it->first.size() ); - - for(it = itBegin; it != itEnd; ++it ) { - Text wrapper( it->second->getDescription(), TextAttributes() - .setInitialIndent( 0 ) - .setIndent( 7+maxNameLen ) - .setWidth( CATCH_CONFIG_CONSOLE_WIDTH - maxNameLen-8 ) ); - Catch::cout() << " " - << it->first - << ":" - << std::string( maxNameLen - it->first.size() + 2, ' ' ) - << wrapper << "\n"; - } - Catch::cout() << std::endl; - return factories.size(); - } - - inline Option list( Config const& config ) { - Option listedCount; - if( config.listTests() ) - listedCount = listedCount.valueOr(0) + listTests( config ); - if( config.listTestNamesOnly() ) - listedCount = listedCount.valueOr(0) + listTestsNamesOnly( config ); - if( config.listTags() ) - listedCount = listedCount.valueOr(0) + listTags( config ); - if( config.listReporters() ) - listedCount = listedCount.valueOr(0) + listReporters( config ); - return listedCount; - } - -} // end namespace Catch - -// #included from: internal/catch_run_context.hpp -#define TWOBLUECUBES_CATCH_RUNNER_IMPL_HPP_INCLUDED - -// #included from: catch_test_case_tracker.hpp -#define TWOBLUECUBES_CATCH_TEST_CASE_TRACKER_HPP_INCLUDED - -#include -#include -#include -#include - -namespace Catch { -namespace TestCaseTracking { - - struct ITracker : SharedImpl<> { - virtual ~ITracker(); - - // static queries - virtual std::string name() const = 0; - - // dynamic queries - virtual bool isComplete() const = 0; // Successfully completed or failed - virtual bool isSuccessfullyCompleted() const = 0; - virtual bool isOpen() const = 0; // Started but not complete - virtual bool hasChildren() const = 0; - - virtual ITracker& parent() = 0; - - // actions - virtual void close() = 0; // Successfully complete - virtual void fail() = 0; - virtual void markAsNeedingAnotherRun() = 0; - - virtual void addChild( Ptr const& child ) = 0; - virtual ITracker* findChild( std::string const& name ) = 0; - virtual void openChild() = 0; - }; - - class TrackerContext { - - enum RunState { - NotStarted, - Executing, - CompletedCycle - }; - - Ptr m_rootTracker; - ITracker* m_currentTracker; - RunState m_runState; - - public: - - static TrackerContext& instance() { - static TrackerContext s_instance; - return s_instance; - } - - TrackerContext() - : m_currentTracker( CATCH_NULL ), - m_runState( NotStarted ) - {} - - ITracker& startRun(); - - void endRun() { - m_rootTracker.reset(); - m_currentTracker = CATCH_NULL; - m_runState = NotStarted; - } - - void startCycle() { - m_currentTracker = m_rootTracker.get(); - m_runState = Executing; - } - void completeCycle() { - m_runState = CompletedCycle; - } - - bool completedCycle() const { - return m_runState == CompletedCycle; - } - ITracker& currentTracker() { - return *m_currentTracker; - } - void setCurrentTracker( ITracker* tracker ) { - m_currentTracker = tracker; - } - }; - - class TrackerBase : public ITracker { - protected: - enum CycleState { - NotStarted, - Executing, - ExecutingChildren, - NeedsAnotherRun, - CompletedSuccessfully, - Failed - }; - class TrackerHasName { - std::string m_name; - public: - TrackerHasName( std::string const& name ) : m_name( name ) {} - bool operator ()( Ptr const& tracker ) { - return tracker->name() == m_name; - } - }; - typedef std::vector > Children; - std::string m_name; - TrackerContext& m_ctx; - ITracker* m_parent; - Children m_children; - CycleState m_runState; - public: - TrackerBase( std::string const& name, TrackerContext& ctx, ITracker* parent ) - : m_name( name ), - m_ctx( ctx ), - m_parent( parent ), - m_runState( NotStarted ) - {} - virtual ~TrackerBase(); - - virtual std::string name() const CATCH_OVERRIDE { - return m_name; - } - virtual bool isComplete() const CATCH_OVERRIDE { - return m_runState == CompletedSuccessfully || m_runState == Failed; - } - virtual bool isSuccessfullyCompleted() const CATCH_OVERRIDE { - return m_runState == CompletedSuccessfully; - } - virtual bool isOpen() const CATCH_OVERRIDE { - return m_runState != NotStarted && !isComplete(); - } - virtual bool hasChildren() const CATCH_OVERRIDE { - return !m_children.empty(); - } - - virtual void addChild( Ptr const& child ) CATCH_OVERRIDE { - m_children.push_back( child ); - } - - virtual ITracker* findChild( std::string const& name ) CATCH_OVERRIDE { - Children::const_iterator it = std::find_if( m_children.begin(), m_children.end(), TrackerHasName( name ) ); - return( it != m_children.end() ) - ? it->get() - : CATCH_NULL; - } - virtual ITracker& parent() CATCH_OVERRIDE { - assert( m_parent ); // Should always be non-null except for root - return *m_parent; - } - - virtual void openChild() CATCH_OVERRIDE { - if( m_runState != ExecutingChildren ) { - m_runState = ExecutingChildren; - if( m_parent ) - m_parent->openChild(); - } - } - void open() { - m_runState = Executing; - moveToThis(); - if( m_parent ) - m_parent->openChild(); - } - - virtual void close() CATCH_OVERRIDE { - - // Close any still open children (e.g. generators) - while( &m_ctx.currentTracker() != this ) - m_ctx.currentTracker().close(); - - switch( m_runState ) { - case NotStarted: - case CompletedSuccessfully: - case Failed: - throw std::logic_error( "Illogical state" ); - - case NeedsAnotherRun: - break;; - - case Executing: - m_runState = CompletedSuccessfully; - break; - case ExecutingChildren: - if( m_children.empty() || m_children.back()->isComplete() ) - m_runState = CompletedSuccessfully; - break; - - default: - throw std::logic_error( "Unexpected state" ); - } - moveToParent(); - m_ctx.completeCycle(); - } - virtual void fail() CATCH_OVERRIDE { - m_runState = Failed; - if( m_parent ) - m_parent->markAsNeedingAnotherRun(); - moveToParent(); - m_ctx.completeCycle(); - } - virtual void markAsNeedingAnotherRun() CATCH_OVERRIDE { - m_runState = NeedsAnotherRun; - } - private: - void moveToParent() { - assert( m_parent ); - m_ctx.setCurrentTracker( m_parent ); - } - void moveToThis() { - m_ctx.setCurrentTracker( this ); - } - }; - - class SectionTracker : public TrackerBase { - public: - SectionTracker( std::string const& name, TrackerContext& ctx, ITracker* parent ) - : TrackerBase( name, ctx, parent ) - {} - virtual ~SectionTracker(); - - static SectionTracker& acquire( TrackerContext& ctx, std::string const& name ) { - SectionTracker* section = CATCH_NULL; - - ITracker& currentTracker = ctx.currentTracker(); - if( ITracker* childTracker = currentTracker.findChild( name ) ) { - section = dynamic_cast( childTracker ); - assert( section ); - } - else { - section = new SectionTracker( name, ctx, ¤tTracker ); - currentTracker.addChild( section ); - } - if( !ctx.completedCycle() && !section->isComplete() ) { - - section->open(); - } - return *section; - } - }; - - class IndexTracker : public TrackerBase { - int m_size; - int m_index; - public: - IndexTracker( std::string const& name, TrackerContext& ctx, ITracker* parent, int size ) - : TrackerBase( name, ctx, parent ), - m_size( size ), - m_index( -1 ) - {} - virtual ~IndexTracker(); - - static IndexTracker& acquire( TrackerContext& ctx, std::string const& name, int size ) { - IndexTracker* tracker = CATCH_NULL; - - ITracker& currentTracker = ctx.currentTracker(); - if( ITracker* childTracker = currentTracker.findChild( name ) ) { - tracker = dynamic_cast( childTracker ); - assert( tracker ); - } - else { - tracker = new IndexTracker( name, ctx, ¤tTracker, size ); - currentTracker.addChild( tracker ); - } - - if( !ctx.completedCycle() && !tracker->isComplete() ) { - if( tracker->m_runState != ExecutingChildren && tracker->m_runState != NeedsAnotherRun ) - tracker->moveNext(); - tracker->open(); - } - - return *tracker; - } - - int index() const { return m_index; } - - void moveNext() { - m_index++; - m_children.clear(); - } - - virtual void close() CATCH_OVERRIDE { - TrackerBase::close(); - if( m_runState == CompletedSuccessfully && m_index < m_size-1 ) - m_runState = Executing; - } - }; - - inline ITracker& TrackerContext::startRun() { - m_rootTracker = new SectionTracker( "{root}", *this, CATCH_NULL ); - m_currentTracker = CATCH_NULL; - m_runState = Executing; - return *m_rootTracker; - } - -} // namespace TestCaseTracking - -using TestCaseTracking::ITracker; -using TestCaseTracking::TrackerContext; -using TestCaseTracking::SectionTracker; -using TestCaseTracking::IndexTracker; - -} // namespace Catch - -// #included from: catch_fatal_condition.hpp -#define TWOBLUECUBES_CATCH_FATAL_CONDITION_H_INCLUDED - -namespace Catch { - - // Report the error condition then exit the process - inline void fatal( std::string const& message, int exitCode ) { - IContext& context = Catch::getCurrentContext(); - IResultCapture* resultCapture = context.getResultCapture(); - resultCapture->handleFatalErrorCondition( message ); - - if( Catch::alwaysTrue() ) // avoids "no return" warnings - exit( exitCode ); - } - -} // namespace Catch - -#if defined ( CATCH_PLATFORM_WINDOWS ) ///////////////////////////////////////// - -namespace Catch { - - struct FatalConditionHandler { - void reset() {} - }; - -} // namespace Catch - -#else // Not Windows - assumed to be POSIX compatible ////////////////////////// - -#include - -namespace Catch { - - struct SignalDefs { int id; const char* name; }; - extern SignalDefs signalDefs[]; - SignalDefs signalDefs[] = { - { SIGINT, "SIGINT - Terminal interrupt signal" }, - { SIGILL, "SIGILL - Illegal instruction signal" }, - { SIGFPE, "SIGFPE - Floating point error signal" }, - { SIGSEGV, "SIGSEGV - Segmentation violation signal" }, - { SIGTERM, "SIGTERM - Termination request signal" }, - { SIGABRT, "SIGABRT - Abort (abnormal termination) signal" } - }; - - struct FatalConditionHandler { - - static void handleSignal( int sig ) { - for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i ) - if( sig == signalDefs[i].id ) - fatal( signalDefs[i].name, -sig ); - fatal( "", -sig ); - } - - FatalConditionHandler() : m_isSet( true ) { - for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i ) - signal( signalDefs[i].id, handleSignal ); - } - ~FatalConditionHandler() { - reset(); - } - void reset() { - if( m_isSet ) { - for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i ) - signal( signalDefs[i].id, SIG_DFL ); - m_isSet = false; - } - } - - bool m_isSet; - }; - -} // namespace Catch - -#endif // not Windows - -#include -#include - -namespace Catch { - - class StreamRedirect { - - public: - StreamRedirect( std::ostream& stream, std::string& targetString ) - : m_stream( stream ), - m_prevBuf( stream.rdbuf() ), - m_targetString( targetString ) - { - stream.rdbuf( m_oss.rdbuf() ); - } - - ~StreamRedirect() { - m_targetString += m_oss.str(); - m_stream.rdbuf( m_prevBuf ); - } - - private: - std::ostream& m_stream; - std::streambuf* m_prevBuf; - std::ostringstream m_oss; - std::string& m_targetString; - }; - - /////////////////////////////////////////////////////////////////////////// - - class RunContext : public IResultCapture, public IRunner { - - RunContext( RunContext const& ); - void operator =( RunContext const& ); - - public: - - explicit RunContext( Ptr const& _config, Ptr const& reporter ) - : m_runInfo( _config->name() ), - m_context( getCurrentMutableContext() ), - m_activeTestCase( CATCH_NULL ), - m_config( _config ), - m_reporter( reporter ) - { - m_context.setRunner( this ); - m_context.setConfig( m_config ); - m_context.setResultCapture( this ); - m_reporter->testRunStarting( m_runInfo ); - } - - virtual ~RunContext() { - m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, aborting() ) ); - } - - void testGroupStarting( std::string const& testSpec, std::size_t groupIndex, std::size_t groupsCount ) { - m_reporter->testGroupStarting( GroupInfo( testSpec, groupIndex, groupsCount ) ); - } - void testGroupEnded( std::string const& testSpec, Totals const& totals, std::size_t groupIndex, std::size_t groupsCount ) { - m_reporter->testGroupEnded( TestGroupStats( GroupInfo( testSpec, groupIndex, groupsCount ), totals, aborting() ) ); - } - - Totals runTest( TestCase const& testCase ) { - Totals prevTotals = m_totals; - - std::string redirectedCout; - std::string redirectedCerr; - - TestCaseInfo testInfo = testCase.getTestCaseInfo(); - - m_reporter->testCaseStarting( testInfo ); - - m_activeTestCase = &testCase; - - do { - m_trackerContext.startRun(); - do { - m_trackerContext.startCycle(); - m_testCaseTracker = &SectionTracker::acquire( m_trackerContext, testInfo.name ); - runCurrentTest( redirectedCout, redirectedCerr ); - } - while( !m_testCaseTracker->isSuccessfullyCompleted() && !aborting() ); - } - // !TBD: deprecated - this will be replaced by indexed trackers - while( getCurrentContext().advanceGeneratorsForCurrentTest() && !aborting() ); - - Totals deltaTotals = m_totals.delta( prevTotals ); - m_totals.testCases += deltaTotals.testCases; - m_reporter->testCaseEnded( TestCaseStats( testInfo, - deltaTotals, - redirectedCout, - redirectedCerr, - aborting() ) ); - - m_activeTestCase = CATCH_NULL; - m_testCaseTracker = CATCH_NULL; - - return deltaTotals; - } - - Ptr config() const { - return m_config; - } - - private: // IResultCapture - - virtual void assertionEnded( AssertionResult const& result ) { - if( result.getResultType() == ResultWas::Ok ) { - m_totals.assertions.passed++; - } - else if( !result.isOk() ) { - m_totals.assertions.failed++; - } - - if( m_reporter->assertionEnded( AssertionStats( result, m_messages, m_totals ) ) ) - m_messages.clear(); - - // Reset working state - m_lastAssertionInfo = AssertionInfo( "", m_lastAssertionInfo.lineInfo, "{Unknown expression after the reported line}" , m_lastAssertionInfo.resultDisposition ); - m_lastResult = result; - } - - virtual bool sectionStarted ( - SectionInfo const& sectionInfo, - Counts& assertions - ) - { - std::ostringstream oss; - oss << sectionInfo.name << "@" << sectionInfo.lineInfo; - - ITracker& sectionTracker = SectionTracker::acquire( m_trackerContext, oss.str() ); - if( !sectionTracker.isOpen() ) - return false; - m_activeSections.push_back( §ionTracker ); - - m_lastAssertionInfo.lineInfo = sectionInfo.lineInfo; - - m_reporter->sectionStarting( sectionInfo ); - - assertions = m_totals.assertions; - - return true; - } - bool testForMissingAssertions( Counts& assertions ) { - if( assertions.total() != 0 ) - return false; - if( !m_config->warnAboutMissingAssertions() ) - return false; - if( m_trackerContext.currentTracker().hasChildren() ) - return false; - m_totals.assertions.failed++; - assertions.failed++; - return true; - } - - virtual void sectionEnded( SectionEndInfo const& endInfo ) { - Counts assertions = m_totals.assertions - endInfo.prevAssertions; - bool missingAssertions = testForMissingAssertions( assertions ); - - if( !m_activeSections.empty() ) { - m_activeSections.back()->close(); - m_activeSections.pop_back(); - } - - m_reporter->sectionEnded( SectionStats( endInfo.sectionInfo, assertions, endInfo.durationInSeconds, missingAssertions ) ); - m_messages.clear(); - } - - virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) { - if( m_unfinishedSections.empty() ) - m_activeSections.back()->fail(); - else - m_activeSections.back()->close(); - m_activeSections.pop_back(); - - m_unfinishedSections.push_back( endInfo ); - } - - virtual void pushScopedMessage( MessageInfo const& message ) { - m_messages.push_back( message ); - } - - virtual void popScopedMessage( MessageInfo const& message ) { - m_messages.erase( std::remove( m_messages.begin(), m_messages.end(), message ), m_messages.end() ); - } - - virtual std::string getCurrentTestName() const { - return m_activeTestCase - ? m_activeTestCase->getTestCaseInfo().name - : ""; - } - - virtual const AssertionResult* getLastResult() const { - return &m_lastResult; - } - - virtual void handleFatalErrorCondition( std::string const& message ) { - ResultBuilder resultBuilder = makeUnexpectedResultBuilder(); - resultBuilder.setResultType( ResultWas::FatalErrorCondition ); - resultBuilder << message; - resultBuilder.captureExpression(); - - handleUnfinishedSections(); - - // Recreate section for test case (as we will lose the one that was in scope) - TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo(); - SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description ); - - Counts assertions; - assertions.failed = 1; - SectionStats testCaseSectionStats( testCaseSection, assertions, 0, false ); - m_reporter->sectionEnded( testCaseSectionStats ); - - TestCaseInfo testInfo = m_activeTestCase->getTestCaseInfo(); - - Totals deltaTotals; - deltaTotals.testCases.failed = 1; - m_reporter->testCaseEnded( TestCaseStats( testInfo, - deltaTotals, - "", - "", - false ) ); - m_totals.testCases.failed++; - testGroupEnded( "", m_totals, 1, 1 ); - m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, false ) ); - } - - public: - // !TBD We need to do this another way! - bool aborting() const { - return m_totals.assertions.failed == static_cast( m_config->abortAfter() ); - } - - private: - - void runCurrentTest( std::string& redirectedCout, std::string& redirectedCerr ) { - TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo(); - SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description ); - m_reporter->sectionStarting( testCaseSection ); - Counts prevAssertions = m_totals.assertions; - double duration = 0; - try { - m_lastAssertionInfo = AssertionInfo( "TEST_CASE", testCaseInfo.lineInfo, "", ResultDisposition::Normal ); - - seedRng( *m_config ); - - Timer timer; - timer.start(); - if( m_reporter->getPreferences().shouldRedirectStdOut ) { - StreamRedirect coutRedir( Catch::cout(), redirectedCout ); - StreamRedirect cerrRedir( Catch::cerr(), redirectedCerr ); - invokeActiveTestCase(); - } - else { - invokeActiveTestCase(); - } - duration = timer.getElapsedSeconds(); - } - catch( TestFailureException& ) { - // This just means the test was aborted due to failure - } - catch(...) { - makeUnexpectedResultBuilder().useActiveException(); - } - m_testCaseTracker->close(); - handleUnfinishedSections(); - m_messages.clear(); - - Counts assertions = m_totals.assertions - prevAssertions; - bool missingAssertions = testForMissingAssertions( assertions ); - - if( testCaseInfo.okToFail() ) { - std::swap( assertions.failedButOk, assertions.failed ); - m_totals.assertions.failed -= assertions.failedButOk; - m_totals.assertions.failedButOk += assertions.failedButOk; - } - - SectionStats testCaseSectionStats( testCaseSection, assertions, duration, missingAssertions ); - m_reporter->sectionEnded( testCaseSectionStats ); - } - - void invokeActiveTestCase() { - FatalConditionHandler fatalConditionHandler; // Handle signals - m_activeTestCase->invoke(); - fatalConditionHandler.reset(); - } - - private: - - ResultBuilder makeUnexpectedResultBuilder() const { - return ResultBuilder( m_lastAssertionInfo.macroName.c_str(), - m_lastAssertionInfo.lineInfo, - m_lastAssertionInfo.capturedExpression.c_str(), - m_lastAssertionInfo.resultDisposition ); - } - - void handleUnfinishedSections() { - // If sections ended prematurely due to an exception we stored their - // infos here so we can tear them down outside the unwind process. - for( std::vector::const_reverse_iterator it = m_unfinishedSections.rbegin(), - itEnd = m_unfinishedSections.rend(); - it != itEnd; - ++it ) - sectionEnded( *it ); - m_unfinishedSections.clear(); - } - - TestRunInfo m_runInfo; - IMutableContext& m_context; - TestCase const* m_activeTestCase; - ITracker* m_testCaseTracker; - ITracker* m_currentSectionTracker; - AssertionResult m_lastResult; - - Ptr m_config; - Totals m_totals; - Ptr m_reporter; - std::vector m_messages; - AssertionInfo m_lastAssertionInfo; - std::vector m_unfinishedSections; - std::vector m_activeSections; - TrackerContext m_trackerContext; - }; - - IResultCapture& getResultCapture() { - if( IResultCapture* capture = getCurrentContext().getResultCapture() ) - return *capture; - else - throw std::logic_error( "No result capture instance" ); - } - -} // end namespace Catch - -// #included from: internal/catch_version.h -#define TWOBLUECUBES_CATCH_VERSION_H_INCLUDED - -namespace Catch { - - // Versioning information - struct Version { - Version( unsigned int _majorVersion, - unsigned int _minorVersion, - unsigned int _patchNumber, - std::string const& _branchName, - unsigned int _buildNumber ); - - unsigned int const majorVersion; - unsigned int const minorVersion; - unsigned int const patchNumber; - - // buildNumber is only used if branchName is not null - std::string const branchName; - unsigned int const buildNumber; - - friend std::ostream& operator << ( std::ostream& os, Version const& version ); - - private: - void operator=( Version const& ); - }; - - extern Version libraryVersion; -} - -#include -#include -#include - -namespace Catch { - - Ptr createReporter( std::string const& reporterName, Ptr const& config ) { - Ptr reporter = getRegistryHub().getReporterRegistry().create( reporterName, config.get() ); - if( !reporter ) { - std::ostringstream oss; - oss << "No reporter registered with name: '" << reporterName << "'"; - throw std::domain_error( oss.str() ); - } - return reporter; - } - - Ptr makeReporter( Ptr const& config ) { - std::vector reporters = config->getReporterNames(); - if( reporters.empty() ) - reporters.push_back( "console" ); - - Ptr reporter; - for( std::vector::const_iterator it = reporters.begin(), itEnd = reporters.end(); - it != itEnd; - ++it ) - reporter = addReporter( reporter, createReporter( *it, config ) ); - return reporter; - } - Ptr addListeners( Ptr const& config, Ptr reporters ) { - IReporterRegistry::Listeners listeners = getRegistryHub().getReporterRegistry().getListeners(); - for( IReporterRegistry::Listeners::const_iterator it = listeners.begin(), itEnd = listeners.end(); - it != itEnd; - ++it ) - reporters = addReporter(reporters, (*it)->create( ReporterConfig( config ) ) ); - return reporters; - } - - Totals runTests( Ptr const& config ) { - - Ptr iconfig = config.get(); - - Ptr reporter = makeReporter( config ); - reporter = addListeners( iconfig, reporter ); - - RunContext context( iconfig, reporter ); - - Totals totals; - - context.testGroupStarting( config->name(), 1, 1 ); - - TestSpec testSpec = config->testSpec(); - if( !testSpec.hasFilters() ) - testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "~[.]" ).testSpec(); // All not hidden tests - - std::vector const& allTestCases = getAllTestCasesSorted( *iconfig ); - for( std::vector::const_iterator it = allTestCases.begin(), itEnd = allTestCases.end(); - it != itEnd; - ++it ) { - if( !context.aborting() && matchTest( *it, testSpec, *iconfig ) ) - totals += context.runTest( *it ); - else - reporter->skipTest( *it ); - } - - context.testGroupEnded( iconfig->name(), totals, 1, 1 ); - return totals; - } - - void applyFilenamesAsTags( IConfig const& config ) { - std::vector const& tests = getAllTestCasesSorted( config ); - for(std::size_t i = 0; i < tests.size(); ++i ) { - TestCase& test = const_cast( tests[i] ); - std::set tags = test.tags; - - std::string filename = test.lineInfo.file; - std::string::size_type lastSlash = filename.find_last_of( "\\/" ); - if( lastSlash != std::string::npos ) - filename = filename.substr( lastSlash+1 ); - - std::string::size_type lastDot = filename.find_last_of( "." ); - if( lastDot != std::string::npos ) - filename = filename.substr( 0, lastDot ); - - tags.insert( "#" + filename ); - setTags( test, tags ); - } - } - - class Session : NonCopyable { - static bool alreadyInstantiated; - - public: - - struct OnUnusedOptions { enum DoWhat { Ignore, Fail }; }; - - Session() - : m_cli( makeCommandLineParser() ) { - if( alreadyInstantiated ) { - std::string msg = "Only one instance of Catch::Session can ever be used"; - Catch::cerr() << msg << std::endl; - throw std::logic_error( msg ); - } - alreadyInstantiated = true; - } - ~Session() { - Catch::cleanUp(); - } - - void showHelp( std::string const& processName ) { - Catch::cout() << "\nCatch v" << libraryVersion << "\n"; - - m_cli.usage( Catch::cout(), processName ); - Catch::cout() << "For more detail usage please see the project docs\n" << std::endl; - } - - int applyCommandLine( int argc, char const* argv[], OnUnusedOptions::DoWhat unusedOptionBehaviour = OnUnusedOptions::Fail ) { - try { - m_cli.setThrowOnUnrecognisedTokens( unusedOptionBehaviour == OnUnusedOptions::Fail ); - m_unusedTokens = m_cli.parseInto( argc, argv, m_configData ); - if( m_configData.showHelp ) - showHelp( m_configData.processName ); - m_config.reset(); - } - catch( std::exception& ex ) { - { - Colour colourGuard( Colour::Red ); - Catch::cerr() - << "\nError(s) in input:\n" - << Text( ex.what(), TextAttributes().setIndent(2) ) - << "\n\n"; - } - m_cli.usage( Catch::cout(), m_configData.processName ); - return (std::numeric_limits::max)(); - } - return 0; - } - - void useConfigData( ConfigData const& _configData ) { - m_configData = _configData; - m_config.reset(); - } - - int run( int argc, char const* argv[] ) { - - int returnCode = applyCommandLine( argc, argv ); - if( returnCode == 0 ) - returnCode = run(); - return returnCode; - } - int run( int argc, char* argv[] ) { - return run( argc, const_cast( argv ) ); - } - - int run() { - if( m_configData.showHelp ) - return 0; - - try - { - config(); // Force config to be constructed - - seedRng( *m_config ); - - if( m_configData.filenamesAsTags ) - applyFilenamesAsTags( *m_config ); - - // Handle list request - if( Option listed = list( config() ) ) - return static_cast( *listed ); - - return static_cast( runTests( m_config ).assertions.failed ); - } - catch( std::exception& ex ) { - Catch::cerr() << ex.what() << std::endl; - return (std::numeric_limits::max)(); - } - } - - Clara::CommandLine const& cli() const { - return m_cli; - } - std::vector const& unusedTokens() const { - return m_unusedTokens; - } - ConfigData& configData() { - return m_configData; - } - Config& config() { - if( !m_config ) - m_config = new Config( m_configData ); - return *m_config; - } - private: - Clara::CommandLine m_cli; - std::vector m_unusedTokens; - ConfigData m_configData; - Ptr m_config; - }; - - bool Session::alreadyInstantiated = false; - -} // end namespace Catch - -// #included from: catch_registry_hub.hpp -#define TWOBLUECUBES_CATCH_REGISTRY_HUB_HPP_INCLUDED - -// #included from: catch_test_case_registry_impl.hpp -#define TWOBLUECUBES_CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace Catch { - - struct LexSort { - bool operator() (TestCase i,TestCase j) const { return (i sortTests( IConfig const& config, std::vector const& unsortedTestCases ) { - - std::vector sorted = unsortedTestCases; - - switch( config.runOrder() ) { - case RunTests::InLexicographicalOrder: - std::sort( sorted.begin(), sorted.end(), LexSort() ); - break; - case RunTests::InRandomOrder: - { - seedRng( config ); - - RandomNumberGenerator rng; - std::random_shuffle( sorted.begin(), sorted.end(), rng ); - } - break; - case RunTests::InDeclarationOrder: - // already in declaration order - break; - } - return sorted; - } - bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ) { - return testSpec.matches( testCase ) && ( config.allowThrows() || !testCase.throws() ); - } - - void enforceNoDuplicateTestCases( std::vector const& functions ) { - std::set seenFunctions; - for( std::vector::const_iterator it = functions.begin(), itEnd = functions.end(); - it != itEnd; - ++it ) { - std::pair::const_iterator, bool> prev = seenFunctions.insert( *it ); - if( !prev.second ){ - Catch::cerr() - << Colour( Colour::Red ) - << "error: TEST_CASE( \"" << it->name << "\" ) already defined.\n" - << "\tFirst seen at " << prev.first->getTestCaseInfo().lineInfo << "\n" - << "\tRedefined at " << it->getTestCaseInfo().lineInfo << std::endl; - exit(1); - } - } - } - - std::vector filterTests( std::vector const& testCases, TestSpec const& testSpec, IConfig const& config ) { - std::vector filtered; - filtered.reserve( testCases.size() ); - for( std::vector::const_iterator it = testCases.begin(), itEnd = testCases.end(); - it != itEnd; - ++it ) - if( matchTest( *it, testSpec, config ) ) - filtered.push_back( *it ); - return filtered; - } - std::vector const& getAllTestCasesSorted( IConfig const& config ) { - return getRegistryHub().getTestCaseRegistry().getAllTestsSorted( config ); - } - - class TestRegistry : public ITestCaseRegistry { - public: - TestRegistry() - : m_currentSortOrder( RunTests::InDeclarationOrder ), - m_unnamedCount( 0 ) - {} - virtual ~TestRegistry(); - - virtual void registerTest( TestCase const& testCase ) { - std::string name = testCase.getTestCaseInfo().name; - if( name == "" ) { - std::ostringstream oss; - oss << "Anonymous test case " << ++m_unnamedCount; - return registerTest( testCase.withName( oss.str() ) ); - } - m_functions.push_back( testCase ); - } - - virtual std::vector const& getAllTests() const { - return m_functions; - } - virtual std::vector const& getAllTestsSorted( IConfig const& config ) const { - if( m_sortedFunctions.empty() ) - enforceNoDuplicateTestCases( m_functions ); - - if( m_currentSortOrder != config.runOrder() || m_sortedFunctions.empty() ) { - m_sortedFunctions = sortTests( config, m_functions ); - m_currentSortOrder = config.runOrder(); - } - return m_sortedFunctions; - } - - private: - std::vector m_functions; - mutable RunTests::InWhatOrder m_currentSortOrder; - mutable std::vector m_sortedFunctions; - size_t m_unnamedCount; - std::ios_base::Init m_ostreamInit; // Forces cout/ cerr to be initialised - }; - - /////////////////////////////////////////////////////////////////////////// - - class FreeFunctionTestCase : public SharedImpl { - public: - - FreeFunctionTestCase( TestFunction fun ) : m_fun( fun ) {} - - virtual void invoke() const { - m_fun(); - } - - private: - virtual ~FreeFunctionTestCase(); - - TestFunction m_fun; - }; - - inline std::string extractClassName( std::string const& classOrQualifiedMethodName ) { - std::string className = classOrQualifiedMethodName; - if( startsWith( className, "&" ) ) - { - std::size_t lastColons = className.rfind( "::" ); - std::size_t penultimateColons = className.rfind( "::", lastColons-1 ); - if( penultimateColons == std::string::npos ) - penultimateColons = 1; - className = className.substr( penultimateColons, lastColons-penultimateColons ); - } - return className; - } - - void registerTestCase - ( ITestCase* testCase, - char const* classOrQualifiedMethodName, - NameAndDesc const& nameAndDesc, - SourceLineInfo const& lineInfo ) { - - getMutableRegistryHub().registerTest - ( makeTestCase - ( testCase, - extractClassName( classOrQualifiedMethodName ), - nameAndDesc.name, - nameAndDesc.description, - lineInfo ) ); - } - void registerTestCaseFunction - ( TestFunction function, - SourceLineInfo const& lineInfo, - NameAndDesc const& nameAndDesc ) { - registerTestCase( new FreeFunctionTestCase( function ), "", nameAndDesc, lineInfo ); - } - - /////////////////////////////////////////////////////////////////////////// - - AutoReg::AutoReg - ( TestFunction function, - SourceLineInfo const& lineInfo, - NameAndDesc const& nameAndDesc ) { - registerTestCaseFunction( function, lineInfo, nameAndDesc ); - } - - AutoReg::~AutoReg() {} - -} // end namespace Catch - -// #included from: catch_reporter_registry.hpp -#define TWOBLUECUBES_CATCH_REPORTER_REGISTRY_HPP_INCLUDED - -#include - -namespace Catch { - - class ReporterRegistry : public IReporterRegistry { - - public: - - virtual ~ReporterRegistry() CATCH_OVERRIDE {} - - virtual IStreamingReporter* create( std::string const& name, Ptr const& config ) const CATCH_OVERRIDE { - FactoryMap::const_iterator it = m_factories.find( name ); - if( it == m_factories.end() ) - return CATCH_NULL; - return it->second->create( ReporterConfig( config ) ); - } - - void registerReporter( std::string const& name, Ptr const& factory ) { - m_factories.insert( std::make_pair( name, factory ) ); - } - void registerListener( Ptr const& factory ) { - m_listeners.push_back( factory ); - } - - virtual FactoryMap const& getFactories() const CATCH_OVERRIDE { - return m_factories; - } - virtual Listeners const& getListeners() const CATCH_OVERRIDE { - return m_listeners; - } - - private: - FactoryMap m_factories; - Listeners m_listeners; - }; -} - -// #included from: catch_exception_translator_registry.hpp -#define TWOBLUECUBES_CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED - -#ifdef __OBJC__ -#import "Foundation/Foundation.h" -#endif - -namespace Catch { - - class ExceptionTranslatorRegistry : public IExceptionTranslatorRegistry { - public: - ~ExceptionTranslatorRegistry() { - deleteAll( m_translators ); - } - - virtual void registerTranslator( const IExceptionTranslator* translator ) { - m_translators.push_back( translator ); - } - - virtual std::string translateActiveException() const { - try { -#ifdef __OBJC__ - // In Objective-C try objective-c exceptions first - @try { - return tryTranslators(); - } - @catch (NSException *exception) { - return Catch::toString( [exception description] ); - } -#else - return tryTranslators(); -#endif - } - catch( TestFailureException& ) { - throw; - } - catch( std::exception& ex ) { - return ex.what(); - } - catch( std::string& msg ) { - return msg; - } - catch( const char* msg ) { - return msg; - } - catch(...) { - return "Unknown exception"; - } - } - - std::string tryTranslators() const { - if( m_translators.empty() ) - throw; - else - return m_translators[0]->translate( m_translators.begin()+1, m_translators.end() ); - } - - private: - std::vector m_translators; - }; -} - -namespace Catch { - - namespace { - - class RegistryHub : public IRegistryHub, public IMutableRegistryHub { - - RegistryHub( RegistryHub const& ); - void operator=( RegistryHub const& ); - - public: // IRegistryHub - RegistryHub() { - } - virtual IReporterRegistry const& getReporterRegistry() const CATCH_OVERRIDE { - return m_reporterRegistry; - } - virtual ITestCaseRegistry const& getTestCaseRegistry() const CATCH_OVERRIDE { - return m_testCaseRegistry; - } - virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() CATCH_OVERRIDE { - return m_exceptionTranslatorRegistry; - } - - public: // IMutableRegistryHub - virtual void registerReporter( std::string const& name, Ptr const& factory ) CATCH_OVERRIDE { - m_reporterRegistry.registerReporter( name, factory ); - } - virtual void registerListener( Ptr const& factory ) CATCH_OVERRIDE { - m_reporterRegistry.registerListener( factory ); - } - virtual void registerTest( TestCase const& testInfo ) CATCH_OVERRIDE { - m_testCaseRegistry.registerTest( testInfo ); - } - virtual void registerTranslator( const IExceptionTranslator* translator ) CATCH_OVERRIDE { - m_exceptionTranslatorRegistry.registerTranslator( translator ); - } - - private: - TestRegistry m_testCaseRegistry; - ReporterRegistry m_reporterRegistry; - ExceptionTranslatorRegistry m_exceptionTranslatorRegistry; - }; - - // Single, global, instance - inline RegistryHub*& getTheRegistryHub() { - static RegistryHub* theRegistryHub = CATCH_NULL; - if( !theRegistryHub ) - theRegistryHub = new RegistryHub(); - return theRegistryHub; - } - } - - IRegistryHub& getRegistryHub() { - return *getTheRegistryHub(); - } - IMutableRegistryHub& getMutableRegistryHub() { - return *getTheRegistryHub(); - } - void cleanUp() { - delete getTheRegistryHub(); - getTheRegistryHub() = CATCH_NULL; - cleanUpContext(); - } - std::string translateActiveException() { - return getRegistryHub().getExceptionTranslatorRegistry().translateActiveException(); - } - -} // end namespace Catch - -// #included from: catch_notimplemented_exception.hpp -#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_HPP_INCLUDED - -#include - -namespace Catch { - - NotImplementedException::NotImplementedException( SourceLineInfo const& lineInfo ) - : m_lineInfo( lineInfo ) { - std::ostringstream oss; - oss << lineInfo << ": function "; - oss << "not implemented"; - m_what = oss.str(); - } - - const char* NotImplementedException::what() const CATCH_NOEXCEPT { - return m_what.c_str(); - } - -} // end namespace Catch - -// #included from: catch_context_impl.hpp -#define TWOBLUECUBES_CATCH_CONTEXT_IMPL_HPP_INCLUDED - -// #included from: catch_stream.hpp -#define TWOBLUECUBES_CATCH_STREAM_HPP_INCLUDED - -#include -#include -#include - -namespace Catch { - - template - class StreamBufImpl : public StreamBufBase { - char data[bufferSize]; - WriterF m_writer; - - public: - StreamBufImpl() { - setp( data, data + sizeof(data) ); - } - - ~StreamBufImpl() CATCH_NOEXCEPT { - sync(); - } - - private: - int overflow( int c ) { - sync(); - - if( c != EOF ) { - if( pbase() == epptr() ) - m_writer( std::string( 1, static_cast( c ) ) ); - else - sputc( static_cast( c ) ); - } - return 0; - } - - int sync() { - if( pbase() != pptr() ) { - m_writer( std::string( pbase(), static_cast( pptr() - pbase() ) ) ); - setp( pbase(), epptr() ); - } - return 0; - } - }; - - /////////////////////////////////////////////////////////////////////////// - - FileStream::FileStream( std::string const& filename ) { - m_ofs.open( filename.c_str() ); - if( m_ofs.fail() ) { - std::ostringstream oss; - oss << "Unable to open file: '" << filename << "'"; - throw std::domain_error( oss.str() ); - } - } - - std::ostream& FileStream::stream() const { - return m_ofs; - } - - struct OutputDebugWriter { - - void operator()( std::string const&str ) { - writeToDebugConsole( str ); - } - }; - - DebugOutStream::DebugOutStream() - : m_streamBuf( new StreamBufImpl() ), - m_os( m_streamBuf.get() ) - {} - - std::ostream& DebugOutStream::stream() const { - return m_os; - } - - // Store the streambuf from cout up-front because - // cout may get redirected when running tests - CoutStream::CoutStream() - : m_os( Catch::cout().rdbuf() ) - {} - - std::ostream& CoutStream::stream() const { - return m_os; - } - -#ifndef CATCH_CONFIG_NOSTDOUT // If you #define this you must implement these functions - std::ostream& cout() { - return std::cout; - } - std::ostream& cerr() { - return std::cerr; - } -#endif -} - -namespace Catch { - - class Context : public IMutableContext { - - Context() : m_config( CATCH_NULL ), m_runner( CATCH_NULL ), m_resultCapture( CATCH_NULL ) {} - Context( Context const& ); - void operator=( Context const& ); - - public: // IContext - virtual IResultCapture* getResultCapture() { - return m_resultCapture; - } - virtual IRunner* getRunner() { - return m_runner; - } - virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) { - return getGeneratorsForCurrentTest() - .getGeneratorInfo( fileInfo, totalSize ) - .getCurrentIndex(); - } - virtual bool advanceGeneratorsForCurrentTest() { - IGeneratorsForTest* generators = findGeneratorsForCurrentTest(); - return generators && generators->moveNext(); - } - - virtual Ptr getConfig() const { - return m_config; - } - - public: // IMutableContext - virtual void setResultCapture( IResultCapture* resultCapture ) { - m_resultCapture = resultCapture; - } - virtual void setRunner( IRunner* runner ) { - m_runner = runner; - } - virtual void setConfig( Ptr const& config ) { - m_config = config; - } - - friend IMutableContext& getCurrentMutableContext(); - - private: - IGeneratorsForTest* findGeneratorsForCurrentTest() { - std::string testName = getResultCapture()->getCurrentTestName(); - - std::map::const_iterator it = - m_generatorsByTestName.find( testName ); - return it != m_generatorsByTestName.end() - ? it->second - : CATCH_NULL; - } - - IGeneratorsForTest& getGeneratorsForCurrentTest() { - IGeneratorsForTest* generators = findGeneratorsForCurrentTest(); - if( !generators ) { - std::string testName = getResultCapture()->getCurrentTestName(); - generators = createGeneratorsForTest(); - m_generatorsByTestName.insert( std::make_pair( testName, generators ) ); - } - return *generators; - } - - private: - Ptr m_config; - IRunner* m_runner; - IResultCapture* m_resultCapture; - std::map m_generatorsByTestName; - }; - - namespace { - Context* currentContext = CATCH_NULL; - } - IMutableContext& getCurrentMutableContext() { - if( !currentContext ) - currentContext = new Context(); - return *currentContext; - } - IContext& getCurrentContext() { - return getCurrentMutableContext(); - } - - void cleanUpContext() { - delete currentContext; - currentContext = CATCH_NULL; - } -} - -// #included from: catch_console_colour_impl.hpp -#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_IMPL_HPP_INCLUDED - -namespace Catch { - namespace { - - struct IColourImpl { - virtual ~IColourImpl() {} - virtual void use( Colour::Code _colourCode ) = 0; - }; - - struct NoColourImpl : IColourImpl { - void use( Colour::Code ) {} - - static IColourImpl* instance() { - static NoColourImpl s_instance; - return &s_instance; - } - }; - - } // anon namespace -} // namespace Catch - -#if !defined( CATCH_CONFIG_COLOUR_NONE ) && !defined( CATCH_CONFIG_COLOUR_WINDOWS ) && !defined( CATCH_CONFIG_COLOUR_ANSI ) -# ifdef CATCH_PLATFORM_WINDOWS -# define CATCH_CONFIG_COLOUR_WINDOWS -# else -# define CATCH_CONFIG_COLOUR_ANSI -# endif -#endif - -#if defined ( CATCH_CONFIG_COLOUR_WINDOWS ) ///////////////////////////////////////// - -#ifndef NOMINMAX -#define NOMINMAX -#endif - -#ifdef __AFXDLL -#include -#else -#include -#endif - -namespace Catch { -namespace { - - class Win32ColourImpl : public IColourImpl { - public: - Win32ColourImpl() : stdoutHandle( GetStdHandle(STD_OUTPUT_HANDLE) ) - { - CONSOLE_SCREEN_BUFFER_INFO csbiInfo; - GetConsoleScreenBufferInfo( stdoutHandle, &csbiInfo ); - originalForegroundAttributes = csbiInfo.wAttributes & ~( BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_BLUE | BACKGROUND_INTENSITY ); - originalBackgroundAttributes = csbiInfo.wAttributes & ~( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY ); - } - - virtual void use( Colour::Code _colourCode ) { - switch( _colourCode ) { - case Colour::None: return setTextAttribute( originalForegroundAttributes ); - case Colour::White: return setTextAttribute( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE ); - case Colour::Red: return setTextAttribute( FOREGROUND_RED ); - case Colour::Green: return setTextAttribute( FOREGROUND_GREEN ); - case Colour::Blue: return setTextAttribute( FOREGROUND_BLUE ); - case Colour::Cyan: return setTextAttribute( FOREGROUND_BLUE | FOREGROUND_GREEN ); - case Colour::Yellow: return setTextAttribute( FOREGROUND_RED | FOREGROUND_GREEN ); - case Colour::Grey: return setTextAttribute( 0 ); - - case Colour::LightGrey: return setTextAttribute( FOREGROUND_INTENSITY ); - case Colour::BrightRed: return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_RED ); - case Colour::BrightGreen: return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN ); - case Colour::BrightWhite: return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE ); - - case Colour::Bright: throw std::logic_error( "not a colour" ); - } - } - - private: - void setTextAttribute( WORD _textAttribute ) { - SetConsoleTextAttribute( stdoutHandle, _textAttribute | originalBackgroundAttributes ); - } - HANDLE stdoutHandle; - WORD originalForegroundAttributes; - WORD originalBackgroundAttributes; - }; - - IColourImpl* platformColourInstance() { - static Win32ColourImpl s_instance; - return &s_instance; - } - -} // end anon namespace -} // end namespace Catch - -#elif defined( CATCH_CONFIG_COLOUR_ANSI ) ////////////////////////////////////// - -#include - -namespace Catch { -namespace { - - // use POSIX/ ANSI console terminal codes - // Thanks to Adam Strzelecki for original contribution - // (http://github.com/nanoant) - // https://github.com/philsquared/Catch/pull/131 - class PosixColourImpl : public IColourImpl { - public: - virtual void use( Colour::Code _colourCode ) { - switch( _colourCode ) { - case Colour::None: - case Colour::White: return setColour( "[0m" ); - case Colour::Red: return setColour( "[0;31m" ); - case Colour::Green: return setColour( "[0;32m" ); - case Colour::Blue: return setColour( "[0:34m" ); - case Colour::Cyan: return setColour( "[0;36m" ); - case Colour::Yellow: return setColour( "[0;33m" ); - case Colour::Grey: return setColour( "[1;30m" ); - - case Colour::LightGrey: return setColour( "[0;37m" ); - case Colour::BrightRed: return setColour( "[1;31m" ); - case Colour::BrightGreen: return setColour( "[1;32m" ); - case Colour::BrightWhite: return setColour( "[1;37m" ); - - case Colour::Bright: throw std::logic_error( "not a colour" ); - } - } - static IColourImpl* instance() { - static PosixColourImpl s_instance; - return &s_instance; - } - - private: - void setColour( const char* _escapeCode ) { - Catch::cout() << '\033' << _escapeCode; - } - }; - - IColourImpl* platformColourInstance() { - Ptr config = getCurrentContext().getConfig(); - return (config && config->forceColour()) || isatty(STDOUT_FILENO) - ? PosixColourImpl::instance() - : NoColourImpl::instance(); - } - -} // end anon namespace -} // end namespace Catch - -#else // not Windows or ANSI /////////////////////////////////////////////// - -namespace Catch { - - static IColourImpl* platformColourInstance() { return NoColourImpl::instance(); } - -} // end namespace Catch - -#endif // Windows/ ANSI/ None - -namespace Catch { - - Colour::Colour( Code _colourCode ) : m_moved( false ) { use( _colourCode ); } - Colour::Colour( Colour const& _other ) : m_moved( false ) { const_cast( _other ).m_moved = true; } - Colour::~Colour(){ if( !m_moved ) use( None ); } - - void Colour::use( Code _colourCode ) { - static IColourImpl* impl = isDebuggerActive() - ? NoColourImpl::instance() - : platformColourInstance(); - impl->use( _colourCode ); - } - -} // end namespace Catch - -// #included from: catch_generators_impl.hpp -#define TWOBLUECUBES_CATCH_GENERATORS_IMPL_HPP_INCLUDED - -#include -#include -#include - -namespace Catch { - - struct GeneratorInfo : IGeneratorInfo { - - GeneratorInfo( std::size_t size ) - : m_size( size ), - m_currentIndex( 0 ) - {} - - bool moveNext() { - if( ++m_currentIndex == m_size ) { - m_currentIndex = 0; - return false; - } - return true; - } - - std::size_t getCurrentIndex() const { - return m_currentIndex; - } - - std::size_t m_size; - std::size_t m_currentIndex; - }; - - /////////////////////////////////////////////////////////////////////////// - - class GeneratorsForTest : public IGeneratorsForTest { - - public: - ~GeneratorsForTest() { - deleteAll( m_generatorsInOrder ); - } - - IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) { - std::map::const_iterator it = m_generatorsByName.find( fileInfo ); - if( it == m_generatorsByName.end() ) { - IGeneratorInfo* info = new GeneratorInfo( size ); - m_generatorsByName.insert( std::make_pair( fileInfo, info ) ); - m_generatorsInOrder.push_back( info ); - return *info; - } - return *it->second; - } - - bool moveNext() { - std::vector::const_iterator it = m_generatorsInOrder.begin(); - std::vector::const_iterator itEnd = m_generatorsInOrder.end(); - for(; it != itEnd; ++it ) { - if( (*it)->moveNext() ) - return true; - } - return false; - } - - private: - std::map m_generatorsByName; - std::vector m_generatorsInOrder; - }; - - IGeneratorsForTest* createGeneratorsForTest() - { - return new GeneratorsForTest(); - } - -} // end namespace Catch - -// #included from: catch_assertionresult.hpp -#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_HPP_INCLUDED - -namespace Catch { - - AssertionInfo::AssertionInfo( std::string const& _macroName, - SourceLineInfo const& _lineInfo, - std::string const& _capturedExpression, - ResultDisposition::Flags _resultDisposition ) - : macroName( _macroName ), - lineInfo( _lineInfo ), - capturedExpression( _capturedExpression ), - resultDisposition( _resultDisposition ) - {} - - AssertionResult::AssertionResult() {} - - AssertionResult::AssertionResult( AssertionInfo const& info, AssertionResultData const& data ) - : m_info( info ), - m_resultData( data ) - {} - - AssertionResult::~AssertionResult() {} - - // Result was a success - bool AssertionResult::succeeded() const { - return Catch::isOk( m_resultData.resultType ); - } - - // Result was a success, or failure is suppressed - bool AssertionResult::isOk() const { - return Catch::isOk( m_resultData.resultType ) || shouldSuppressFailure( m_info.resultDisposition ); - } - - ResultWas::OfType AssertionResult::getResultType() const { - return m_resultData.resultType; - } - - bool AssertionResult::hasExpression() const { - return !m_info.capturedExpression.empty(); - } - - bool AssertionResult::hasMessage() const { - return !m_resultData.message.empty(); - } - - std::string AssertionResult::getExpression() const { - if( isFalseTest( m_info.resultDisposition ) ) - return "!" + m_info.capturedExpression; - else - return m_info.capturedExpression; - } - std::string AssertionResult::getExpressionInMacro() const { - if( m_info.macroName.empty() ) - return m_info.capturedExpression; - else - return m_info.macroName + "( " + m_info.capturedExpression + " )"; - } - - bool AssertionResult::hasExpandedExpression() const { - return hasExpression() && getExpandedExpression() != getExpression(); - } - - std::string AssertionResult::getExpandedExpression() const { - return m_resultData.reconstructedExpression; - } - - std::string AssertionResult::getMessage() const { - return m_resultData.message; - } - SourceLineInfo AssertionResult::getSourceInfo() const { - return m_info.lineInfo; - } - - std::string AssertionResult::getTestMacroName() const { - return m_info.macroName; - } - -} // end namespace Catch - -// #included from: catch_test_case_info.hpp -#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_HPP_INCLUDED - -namespace Catch { - - inline TestCaseInfo::SpecialProperties parseSpecialTag( std::string const& tag ) { - if( startsWith( tag, "." ) || - tag == "hide" || - tag == "!hide" ) - return TestCaseInfo::IsHidden; - else if( tag == "!throws" ) - return TestCaseInfo::Throws; - else if( tag == "!shouldfail" ) - return TestCaseInfo::ShouldFail; - else if( tag == "!mayfail" ) - return TestCaseInfo::MayFail; - else - return TestCaseInfo::None; - } - inline bool isReservedTag( std::string const& tag ) { - return parseSpecialTag( tag ) == TestCaseInfo::None && tag.size() > 0 && !isalnum( tag[0] ); - } - inline void enforceNotReservedTag( std::string const& tag, SourceLineInfo const& _lineInfo ) { - if( isReservedTag( tag ) ) { - { - Colour colourGuard( Colour::Red ); - Catch::cerr() - << "Tag name [" << tag << "] not allowed.\n" - << "Tag names starting with non alpha-numeric characters are reserved\n"; - } - { - Colour colourGuard( Colour::FileName ); - Catch::cerr() << _lineInfo << std::endl; - } - exit(1); - } - } - - TestCase makeTestCase( ITestCase* _testCase, - std::string const& _className, - std::string const& _name, - std::string const& _descOrTags, - SourceLineInfo const& _lineInfo ) - { - bool isHidden( startsWith( _name, "./" ) ); // Legacy support - - // Parse out tags - std::set tags; - std::string desc, tag; - bool inTag = false; - for( std::size_t i = 0; i < _descOrTags.size(); ++i ) { - char c = _descOrTags[i]; - if( !inTag ) { - if( c == '[' ) - inTag = true; - else - desc += c; - } - else { - if( c == ']' ) { - TestCaseInfo::SpecialProperties prop = parseSpecialTag( tag ); - if( prop == TestCaseInfo::IsHidden ) - isHidden = true; - else if( prop == TestCaseInfo::None ) - enforceNotReservedTag( tag, _lineInfo ); - - tags.insert( tag ); - tag.clear(); - inTag = false; - } - else - tag += c; - } - } - if( isHidden ) { - tags.insert( "hide" ); - tags.insert( "." ); - } - - TestCaseInfo info( _name, _className, desc, tags, _lineInfo ); - return TestCase( _testCase, info ); - } - - void setTags( TestCaseInfo& testCaseInfo, std::set const& tags ) - { - testCaseInfo.tags = tags; - testCaseInfo.lcaseTags.clear(); - - std::ostringstream oss; - for( std::set::const_iterator it = tags.begin(), itEnd = tags.end(); it != itEnd; ++it ) { - oss << "[" << *it << "]"; - std::string lcaseTag = toLower( *it ); - testCaseInfo.properties = static_cast( testCaseInfo.properties | parseSpecialTag( lcaseTag ) ); - testCaseInfo.lcaseTags.insert( lcaseTag ); - } - testCaseInfo.tagsAsString = oss.str(); - } - - TestCaseInfo::TestCaseInfo( std::string const& _name, - std::string const& _className, - std::string const& _description, - std::set const& _tags, - SourceLineInfo const& _lineInfo ) - : name( _name ), - className( _className ), - description( _description ), - lineInfo( _lineInfo ), - properties( None ) - { - setTags( *this, _tags ); - } - - TestCaseInfo::TestCaseInfo( TestCaseInfo const& other ) - : name( other.name ), - className( other.className ), - description( other.description ), - tags( other.tags ), - lcaseTags( other.lcaseTags ), - tagsAsString( other.tagsAsString ), - lineInfo( other.lineInfo ), - properties( other.properties ) - {} - - bool TestCaseInfo::isHidden() const { - return ( properties & IsHidden ) != 0; - } - bool TestCaseInfo::throws() const { - return ( properties & Throws ) != 0; - } - bool TestCaseInfo::okToFail() const { - return ( properties & (ShouldFail | MayFail ) ) != 0; - } - bool TestCaseInfo::expectedToFail() const { - return ( properties & (ShouldFail ) ) != 0; - } - - TestCase::TestCase( ITestCase* testCase, TestCaseInfo const& info ) : TestCaseInfo( info ), test( testCase ) {} - - TestCase::TestCase( TestCase const& other ) - : TestCaseInfo( other ), - test( other.test ) - {} - - TestCase TestCase::withName( std::string const& _newName ) const { - TestCase other( *this ); - other.name = _newName; - return other; - } - - void TestCase::swap( TestCase& other ) { - test.swap( other.test ); - name.swap( other.name ); - className.swap( other.className ); - description.swap( other.description ); - tags.swap( other.tags ); - lcaseTags.swap( other.lcaseTags ); - tagsAsString.swap( other.tagsAsString ); - std::swap( TestCaseInfo::properties, static_cast( other ).properties ); - std::swap( lineInfo, other.lineInfo ); - } - - void TestCase::invoke() const { - test->invoke(); - } - - bool TestCase::operator == ( TestCase const& other ) const { - return test.get() == other.test.get() && - name == other.name && - className == other.className; - } - - bool TestCase::operator < ( TestCase const& other ) const { - return name < other.name; - } - TestCase& TestCase::operator = ( TestCase const& other ) { - TestCase temp( other ); - swap( temp ); - return *this; - } - - TestCaseInfo const& TestCase::getTestCaseInfo() const - { - return *this; - } - -} // end namespace Catch - -// #included from: catch_version.hpp -#define TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED - -namespace Catch { - - Version::Version - ( unsigned int _majorVersion, - unsigned int _minorVersion, - unsigned int _patchNumber, - std::string const& _branchName, - unsigned int _buildNumber ) - : majorVersion( _majorVersion ), - minorVersion( _minorVersion ), - patchNumber( _patchNumber ), - branchName( _branchName ), - buildNumber( _buildNumber ) - {} - - std::ostream& operator << ( std::ostream& os, Version const& version ) { - os << version.majorVersion << "." - << version.minorVersion << "." - << version.patchNumber; - - if( !version.branchName.empty() ) { - os << "-" << version.branchName - << "." << version.buildNumber; - } - return os; - } - - Version libraryVersion( 1, 3, 4, "", 0 ); - -} - -// #included from: catch_message.hpp -#define TWOBLUECUBES_CATCH_MESSAGE_HPP_INCLUDED - -namespace Catch { - - MessageInfo::MessageInfo( std::string const& _macroName, - SourceLineInfo const& _lineInfo, - ResultWas::OfType _type ) - : macroName( _macroName ), - lineInfo( _lineInfo ), - type( _type ), - sequence( ++globalCount ) - {} - - // This may need protecting if threading support is added - unsigned int MessageInfo::globalCount = 0; - - //////////////////////////////////////////////////////////////////////////// - - ScopedMessage::ScopedMessage( MessageBuilder const& builder ) - : m_info( builder.m_info ) - { - m_info.message = builder.m_stream.str(); - getResultCapture().pushScopedMessage( m_info ); - } - ScopedMessage::ScopedMessage( ScopedMessage const& other ) - : m_info( other.m_info ) - {} - - ScopedMessage::~ScopedMessage() { - getResultCapture().popScopedMessage( m_info ); - } - -} // end namespace Catch - -// #included from: catch_legacy_reporter_adapter.hpp -#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_HPP_INCLUDED - -// #included from: catch_legacy_reporter_adapter.h -#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED - -namespace Catch -{ - // Deprecated - struct IReporter : IShared { - virtual ~IReporter(); - - virtual bool shouldRedirectStdout() const = 0; - - virtual void StartTesting() = 0; - virtual void EndTesting( Totals const& totals ) = 0; - virtual void StartGroup( std::string const& groupName ) = 0; - virtual void EndGroup( std::string const& groupName, Totals const& totals ) = 0; - virtual void StartTestCase( TestCaseInfo const& testInfo ) = 0; - virtual void EndTestCase( TestCaseInfo const& testInfo, Totals const& totals, std::string const& stdOut, std::string const& stdErr ) = 0; - virtual void StartSection( std::string const& sectionName, std::string const& description ) = 0; - virtual void EndSection( std::string const& sectionName, Counts const& assertions ) = 0; - virtual void NoAssertionsInSection( std::string const& sectionName ) = 0; - virtual void NoAssertionsInTestCase( std::string const& testName ) = 0; - virtual void Aborted() = 0; - virtual void Result( AssertionResult const& result ) = 0; - }; - - class LegacyReporterAdapter : public SharedImpl - { - public: - LegacyReporterAdapter( Ptr const& legacyReporter ); - virtual ~LegacyReporterAdapter(); - - virtual ReporterPreferences getPreferences() const; - virtual void noMatchingTestCases( std::string const& ); - virtual void testRunStarting( TestRunInfo const& ); - virtual void testGroupStarting( GroupInfo const& groupInfo ); - virtual void testCaseStarting( TestCaseInfo const& testInfo ); - virtual void sectionStarting( SectionInfo const& sectionInfo ); - virtual void assertionStarting( AssertionInfo const& ); - virtual bool assertionEnded( AssertionStats const& assertionStats ); - virtual void sectionEnded( SectionStats const& sectionStats ); - virtual void testCaseEnded( TestCaseStats const& testCaseStats ); - virtual void testGroupEnded( TestGroupStats const& testGroupStats ); - virtual void testRunEnded( TestRunStats const& testRunStats ); - virtual void skipTest( TestCaseInfo const& ); - - private: - Ptr m_legacyReporter; - }; -} - -namespace Catch -{ - LegacyReporterAdapter::LegacyReporterAdapter( Ptr const& legacyReporter ) - : m_legacyReporter( legacyReporter ) - {} - LegacyReporterAdapter::~LegacyReporterAdapter() {} - - ReporterPreferences LegacyReporterAdapter::getPreferences() const { - ReporterPreferences prefs; - prefs.shouldRedirectStdOut = m_legacyReporter->shouldRedirectStdout(); - return prefs; - } - - void LegacyReporterAdapter::noMatchingTestCases( std::string const& ) {} - void LegacyReporterAdapter::testRunStarting( TestRunInfo const& ) { - m_legacyReporter->StartTesting(); - } - void LegacyReporterAdapter::testGroupStarting( GroupInfo const& groupInfo ) { - m_legacyReporter->StartGroup( groupInfo.name ); - } - void LegacyReporterAdapter::testCaseStarting( TestCaseInfo const& testInfo ) { - m_legacyReporter->StartTestCase( testInfo ); - } - void LegacyReporterAdapter::sectionStarting( SectionInfo const& sectionInfo ) { - m_legacyReporter->StartSection( sectionInfo.name, sectionInfo.description ); - } - void LegacyReporterAdapter::assertionStarting( AssertionInfo const& ) { - // Not on legacy interface - } - - bool LegacyReporterAdapter::assertionEnded( AssertionStats const& assertionStats ) { - if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) { - for( std::vector::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end(); - it != itEnd; - ++it ) { - if( it->type == ResultWas::Info ) { - ResultBuilder rb( it->macroName.c_str(), it->lineInfo, "", ResultDisposition::Normal ); - rb << it->message; - rb.setResultType( ResultWas::Info ); - AssertionResult result = rb.build(); - m_legacyReporter->Result( result ); - } - } - } - m_legacyReporter->Result( assertionStats.assertionResult ); - return true; - } - void LegacyReporterAdapter::sectionEnded( SectionStats const& sectionStats ) { - if( sectionStats.missingAssertions ) - m_legacyReporter->NoAssertionsInSection( sectionStats.sectionInfo.name ); - m_legacyReporter->EndSection( sectionStats.sectionInfo.name, sectionStats.assertions ); - } - void LegacyReporterAdapter::testCaseEnded( TestCaseStats const& testCaseStats ) { - m_legacyReporter->EndTestCase - ( testCaseStats.testInfo, - testCaseStats.totals, - testCaseStats.stdOut, - testCaseStats.stdErr ); - } - void LegacyReporterAdapter::testGroupEnded( TestGroupStats const& testGroupStats ) { - if( testGroupStats.aborting ) - m_legacyReporter->Aborted(); - m_legacyReporter->EndGroup( testGroupStats.groupInfo.name, testGroupStats.totals ); - } - void LegacyReporterAdapter::testRunEnded( TestRunStats const& testRunStats ) { - m_legacyReporter->EndTesting( testRunStats.totals ); - } - void LegacyReporterAdapter::skipTest( TestCaseInfo const& ) { - } -} - -// #included from: catch_timer.hpp - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wc++11-long-long" -#endif - -#ifdef CATCH_PLATFORM_WINDOWS -#include -#else -#include -#endif - -namespace Catch { - - namespace { -#ifdef CATCH_PLATFORM_WINDOWS - uint64_t getCurrentTicks() { - static uint64_t hz=0, hzo=0; - if (!hz) { - QueryPerformanceFrequency( reinterpret_cast( &hz ) ); - QueryPerformanceCounter( reinterpret_cast( &hzo ) ); - } - uint64_t t; - QueryPerformanceCounter( reinterpret_cast( &t ) ); - return ((t-hzo)*1000000)/hz; - } -#else - uint64_t getCurrentTicks() { - timeval t; - gettimeofday(&t,CATCH_NULL); - return static_cast( t.tv_sec ) * 1000000ull + static_cast( t.tv_usec ); - } -#endif - } - - void Timer::start() { - m_ticks = getCurrentTicks(); - } - unsigned int Timer::getElapsedMicroseconds() const { - return static_cast(getCurrentTicks() - m_ticks); - } - unsigned int Timer::getElapsedMilliseconds() const { - return static_cast(getElapsedMicroseconds()/1000); - } - double Timer::getElapsedSeconds() const { - return getElapsedMicroseconds()/1000000.0; - } - -} // namespace Catch - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif -// #included from: catch_common.hpp -#define TWOBLUECUBES_CATCH_COMMON_HPP_INCLUDED - -namespace Catch { - - bool startsWith( std::string const& s, std::string const& prefix ) { - return s.size() >= prefix.size() && s.substr( 0, prefix.size() ) == prefix; - } - bool endsWith( std::string const& s, std::string const& suffix ) { - return s.size() >= suffix.size() && s.substr( s.size()-suffix.size(), suffix.size() ) == suffix; - } - bool contains( std::string const& s, std::string const& infix ) { - return s.find( infix ) != std::string::npos; - } - void toLowerInPlace( std::string& s ) { - std::transform( s.begin(), s.end(), s.begin(), ::tolower ); - } - std::string toLower( std::string const& s ) { - std::string lc = s; - toLowerInPlace( lc ); - return lc; - } - std::string trim( std::string const& str ) { - static char const* whitespaceChars = "\n\r\t "; - std::string::size_type start = str.find_first_not_of( whitespaceChars ); - std::string::size_type end = str.find_last_not_of( whitespaceChars ); - - return start != std::string::npos ? str.substr( start, 1+end-start ) : ""; - } - - bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ) { - bool replaced = false; - std::size_t i = str.find( replaceThis ); - while( i != std::string::npos ) { - replaced = true; - str = str.substr( 0, i ) + withThis + str.substr( i+replaceThis.size() ); - if( i < str.size()-withThis.size() ) - i = str.find( replaceThis, i+withThis.size() ); - else - i = std::string::npos; - } - return replaced; - } - - pluralise::pluralise( std::size_t count, std::string const& label ) - : m_count( count ), - m_label( label ) - {} - - std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser ) { - os << pluraliser.m_count << " " << pluraliser.m_label; - if( pluraliser.m_count != 1 ) - os << "s"; - return os; - } - - SourceLineInfo::SourceLineInfo() : line( 0 ){} - SourceLineInfo::SourceLineInfo( char const* _file, std::size_t _line ) - : file( _file ), - line( _line ) - {} - SourceLineInfo::SourceLineInfo( SourceLineInfo const& other ) - : file( other.file ), - line( other.line ) - {} - bool SourceLineInfo::empty() const { - return file.empty(); - } - bool SourceLineInfo::operator == ( SourceLineInfo const& other ) const { - return line == other.line && file == other.file; - } - bool SourceLineInfo::operator < ( SourceLineInfo const& other ) const { - return line < other.line || ( line == other.line && file < other.file ); - } - - void seedRng( IConfig const& config ) { - if( config.rngSeed() != 0 ) - std::srand( config.rngSeed() ); - } - unsigned int rngSeed() { - return getCurrentContext().getConfig()->rngSeed(); - } - - std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ) { -#ifndef __GNUG__ - os << info.file << "(" << info.line << ")"; -#else - os << info.file << ":" << info.line; -#endif - return os; - } - - void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo ) { - std::ostringstream oss; - oss << locationInfo << ": Internal Catch error: '" << message << "'"; - if( alwaysTrue() ) - throw std::logic_error( oss.str() ); - } -} - -// #included from: catch_section.hpp -#define TWOBLUECUBES_CATCH_SECTION_HPP_INCLUDED - -namespace Catch { - - SectionInfo::SectionInfo - ( SourceLineInfo const& _lineInfo, - std::string const& _name, - std::string const& _description ) - : name( _name ), - description( _description ), - lineInfo( _lineInfo ) - {} - - Section::Section( SectionInfo const& info ) - : m_info( info ), - m_sectionIncluded( getResultCapture().sectionStarted( m_info, m_assertions ) ) - { - m_timer.start(); - } - - Section::~Section() { - if( m_sectionIncluded ) { - SectionEndInfo endInfo( m_info, m_assertions, m_timer.getElapsedSeconds() ); - if( std::uncaught_exception() ) - getResultCapture().sectionEndedEarly( endInfo ); - else - getResultCapture().sectionEnded( endInfo ); - } - } - - // This indicates whether the section should be executed or not - Section::operator bool() const { - return m_sectionIncluded; - } - -} // end namespace Catch - -// #included from: catch_debugger.hpp -#define TWOBLUECUBES_CATCH_DEBUGGER_HPP_INCLUDED - -#include - -#ifdef CATCH_PLATFORM_MAC - - #include - #include - #include - #include - #include - - namespace Catch{ - - // The following function is taken directly from the following technical note: - // http://developer.apple.com/library/mac/#qa/qa2004/qa1361.html - - // Returns true if the current process is being debugged (either - // running under the debugger or has a debugger attached post facto). - bool isDebuggerActive(){ - - int mib[4]; - struct kinfo_proc info; - size_t size; - - // Initialize the flags so that, if sysctl fails for some bizarre - // reason, we get a predictable result. - - info.kp_proc.p_flag = 0; - - // Initialize mib, which tells sysctl the info we want, in this case - // we're looking for information about a specific process ID. - - mib[0] = CTL_KERN; - mib[1] = KERN_PROC; - mib[2] = KERN_PROC_PID; - mib[3] = getpid(); - - // Call sysctl. - - size = sizeof(info); - if( sysctl(mib, sizeof(mib) / sizeof(*mib), &info, &size, CATCH_NULL, 0) != 0 ) { - Catch::cerr() << "\n** Call to sysctl failed - unable to determine if debugger is active **\n" << std::endl; - return false; - } - - // We're being debugged if the P_TRACED flag is set. - - return ( (info.kp_proc.p_flag & P_TRACED) != 0 ); - } - } // namespace Catch - -#elif defined(_MSC_VER) - extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent(); - namespace Catch { - bool isDebuggerActive() { - return IsDebuggerPresent() != 0; - } - } -#elif defined(__MINGW32__) - extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent(); - namespace Catch { - bool isDebuggerActive() { - return IsDebuggerPresent() != 0; - } - } -#else - namespace Catch { - inline bool isDebuggerActive() { return false; } - } -#endif // Platform - -#ifdef CATCH_PLATFORM_WINDOWS - extern "C" __declspec(dllimport) void __stdcall OutputDebugStringA( const char* ); - namespace Catch { - void writeToDebugConsole( std::string const& text ) { - ::OutputDebugStringA( text.c_str() ); - } - } -#else - namespace Catch { - void writeToDebugConsole( std::string const& text ) { - // !TBD: Need a version for Mac/ XCode and other IDEs - Catch::cout() << text; - } - } -#endif // Platform - -// #included from: catch_tostring.hpp -#define TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED - -namespace Catch { - -namespace Detail { - - const std::string unprintableString = "{?}"; - - namespace { - const int hexThreshold = 255; - - struct Endianness { - enum Arch { Big, Little }; - - static Arch which() { - union _{ - int asInt; - char asChar[sizeof (int)]; - } u; - - u.asInt = 1; - return ( u.asChar[sizeof(int)-1] == 1 ) ? Big : Little; - } - }; - } - - std::string rawMemoryToString( const void *object, std::size_t size ) - { - // Reverse order for little endian architectures - int i = 0, end = static_cast( size ), inc = 1; - if( Endianness::which() == Endianness::Little ) { - i = end-1; - end = inc = -1; - } - - unsigned char const *bytes = static_cast(object); - std::ostringstream os; - os << "0x" << std::setfill('0') << std::hex; - for( ; i != end; i += inc ) - os << std::setw(2) << static_cast(bytes[i]); - return os.str(); - } -} - -std::string toString( std::string const& value ) { - std::string s = value; - if( getCurrentContext().getConfig()->showInvisibles() ) { - for(size_t i = 0; i < s.size(); ++i ) { - std::string subs; - switch( s[i] ) { - case '\n': subs = "\\n"; break; - case '\t': subs = "\\t"; break; - default: break; - } - if( !subs.empty() ) { - s = s.substr( 0, i ) + subs + s.substr( i+1 ); - ++i; - } - } - } - return "\"" + s + "\""; -} -std::string toString( std::wstring const& value ) { - - std::string s; - s.reserve( value.size() ); - for(size_t i = 0; i < value.size(); ++i ) - s += value[i] <= 0xff ? static_cast( value[i] ) : '?'; - return Catch::toString( s ); -} - -std::string toString( const char* const value ) { - return value ? Catch::toString( std::string( value ) ) : std::string( "{null string}" ); -} - -std::string toString( char* const value ) { - return Catch::toString( static_cast( value ) ); -} - -std::string toString( const wchar_t* const value ) -{ - return value ? Catch::toString( std::wstring(value) ) : std::string( "{null string}" ); -} - -std::string toString( wchar_t* const value ) -{ - return Catch::toString( static_cast( value ) ); -} - -std::string toString( int value ) { - std::ostringstream oss; - oss << value; - if( value > Detail::hexThreshold ) - oss << " (0x" << std::hex << value << ")"; - return oss.str(); -} - -std::string toString( unsigned long value ) { - std::ostringstream oss; - oss << value; - if( value > Detail::hexThreshold ) - oss << " (0x" << std::hex << value << ")"; - return oss.str(); -} - -std::string toString( unsigned int value ) { - return Catch::toString( static_cast( value ) ); -} - -template -std::string fpToString( T value, int precision ) { - std::ostringstream oss; - oss << std::setprecision( precision ) - << std::fixed - << value; - std::string d = oss.str(); - std::size_t i = d.find_last_not_of( '0' ); - if( i != std::string::npos && i != d.size()-1 ) { - if( d[i] == '.' ) - i++; - d = d.substr( 0, i+1 ); - } - return d; -} - -std::string toString( const double value ) { - return fpToString( value, 10 ); -} -std::string toString( const float value ) { - return fpToString( value, 5 ) + "f"; -} - -std::string toString( bool value ) { - return value ? "true" : "false"; -} - -std::string toString( char value ) { - return value < ' ' - ? toString( static_cast( value ) ) - : Detail::makeString( value ); -} - -std::string toString( signed char value ) { - return toString( static_cast( value ) ); -} - -std::string toString( unsigned char value ) { - return toString( static_cast( value ) ); -} - -#ifdef CATCH_CONFIG_CPP11_LONG_LONG -std::string toString( long long value ) { - std::ostringstream oss; - oss << value; - if( value > Detail::hexThreshold ) - oss << " (0x" << std::hex << value << ")"; - return oss.str(); -} -std::string toString( unsigned long long value ) { - std::ostringstream oss; - oss << value; - if( value > Detail::hexThreshold ) - oss << " (0x" << std::hex << value << ")"; - return oss.str(); -} -#endif - -#ifdef CATCH_CONFIG_CPP11_NULLPTR -std::string toString( std::nullptr_t ) { - return "nullptr"; -} -#endif - -#ifdef __OBJC__ - std::string toString( NSString const * const& nsstring ) { - if( !nsstring ) - return "nil"; - return "@" + toString([nsstring UTF8String]); - } - std::string toString( NSString * CATCH_ARC_STRONG const& nsstring ) { - if( !nsstring ) - return "nil"; - return "@" + toString([nsstring UTF8String]); - } - std::string toString( NSObject* const& nsObject ) { - return toString( [nsObject description] ); - } -#endif - -} // end namespace Catch - -// #included from: catch_result_builder.hpp -#define TWOBLUECUBES_CATCH_RESULT_BUILDER_HPP_INCLUDED - -namespace Catch { - - std::string capturedExpressionWithSecondArgument( std::string const& capturedExpression, std::string const& secondArg ) { - return secondArg.empty() || secondArg == "\"\"" - ? capturedExpression - : capturedExpression + ", " + secondArg; - } - ResultBuilder::ResultBuilder( char const* macroName, - SourceLineInfo const& lineInfo, - char const* capturedExpression, - ResultDisposition::Flags resultDisposition, - char const* secondArg ) - : m_assertionInfo( macroName, lineInfo, capturedExpressionWithSecondArgument( capturedExpression, secondArg ), resultDisposition ), - m_shouldDebugBreak( false ), - m_shouldThrow( false ) - {} - - ResultBuilder& ResultBuilder::setResultType( ResultWas::OfType result ) { - m_data.resultType = result; - return *this; - } - ResultBuilder& ResultBuilder::setResultType( bool result ) { - m_data.resultType = result ? ResultWas::Ok : ResultWas::ExpressionFailed; - return *this; - } - ResultBuilder& ResultBuilder::setLhs( std::string const& lhs ) { - m_exprComponents.lhs = lhs; - return *this; - } - ResultBuilder& ResultBuilder::setRhs( std::string const& rhs ) { - m_exprComponents.rhs = rhs; - return *this; - } - ResultBuilder& ResultBuilder::setOp( std::string const& op ) { - m_exprComponents.op = op; - return *this; - } - - void ResultBuilder::endExpression() { - m_exprComponents.testFalse = isFalseTest( m_assertionInfo.resultDisposition ); - captureExpression(); - } - - void ResultBuilder::useActiveException( ResultDisposition::Flags resultDisposition ) { - m_assertionInfo.resultDisposition = resultDisposition; - m_stream.oss << Catch::translateActiveException(); - captureResult( ResultWas::ThrewException ); - } - - void ResultBuilder::captureResult( ResultWas::OfType resultType ) { - setResultType( resultType ); - captureExpression(); - } - void ResultBuilder::captureExpectedException( std::string const& expectedMessage ) { - if( expectedMessage.empty() ) - captureExpectedException( Matchers::Impl::Generic::AllOf() ); - else - captureExpectedException( Matchers::Equals( expectedMessage ) ); - } - - void ResultBuilder::captureExpectedException( Matchers::Impl::Matcher const& matcher ) { - - assert( m_exprComponents.testFalse == false ); - AssertionResultData data = m_data; - data.resultType = ResultWas::Ok; - data.reconstructedExpression = m_assertionInfo.capturedExpression; - - std::string actualMessage = Catch::translateActiveException(); - if( !matcher.match( actualMessage ) ) { - data.resultType = ResultWas::ExpressionFailed; - data.reconstructedExpression = actualMessage; - } - AssertionResult result( m_assertionInfo, data ); - handleResult( result ); - } - - void ResultBuilder::captureExpression() { - AssertionResult result = build(); - handleResult( result ); - } - void ResultBuilder::handleResult( AssertionResult const& result ) - { - getResultCapture().assertionEnded( result ); - - if( !result.isOk() ) { - if( getCurrentContext().getConfig()->shouldDebugBreak() ) - m_shouldDebugBreak = true; - if( getCurrentContext().getRunner()->aborting() || (m_assertionInfo.resultDisposition & ResultDisposition::Normal) ) - m_shouldThrow = true; - } - } - void ResultBuilder::react() { - if( m_shouldThrow ) - throw Catch::TestFailureException(); - } - - bool ResultBuilder::shouldDebugBreak() const { return m_shouldDebugBreak; } - bool ResultBuilder::allowThrows() const { return getCurrentContext().getConfig()->allowThrows(); } - - AssertionResult ResultBuilder::build() const - { - assert( m_data.resultType != ResultWas::Unknown ); - - AssertionResultData data = m_data; - - // Flip bool results if testFalse is set - if( m_exprComponents.testFalse ) { - if( data.resultType == ResultWas::Ok ) - data.resultType = ResultWas::ExpressionFailed; - else if( data.resultType == ResultWas::ExpressionFailed ) - data.resultType = ResultWas::Ok; - } - - data.message = m_stream.oss.str(); - data.reconstructedExpression = reconstructExpression(); - if( m_exprComponents.testFalse ) { - if( m_exprComponents.op == "" ) - data.reconstructedExpression = "!" + data.reconstructedExpression; - else - data.reconstructedExpression = "!(" + data.reconstructedExpression + ")"; - } - return AssertionResult( m_assertionInfo, data ); - } - std::string ResultBuilder::reconstructExpression() const { - if( m_exprComponents.op == "" ) - return m_exprComponents.lhs.empty() ? m_assertionInfo.capturedExpression : m_exprComponents.op + m_exprComponents.lhs; - else if( m_exprComponents.op == "matches" ) - return m_exprComponents.lhs + " " + m_exprComponents.rhs; - else if( m_exprComponents.op != "!" ) { - if( m_exprComponents.lhs.size() + m_exprComponents.rhs.size() < 40 && - m_exprComponents.lhs.find("\n") == std::string::npos && - m_exprComponents.rhs.find("\n") == std::string::npos ) - return m_exprComponents.lhs + " " + m_exprComponents.op + " " + m_exprComponents.rhs; - else - return m_exprComponents.lhs + "\n" + m_exprComponents.op + "\n" + m_exprComponents.rhs; - } - else - return "{can't expand - use " + m_assertionInfo.macroName + "_FALSE( " + m_assertionInfo.capturedExpression.substr(1) + " ) instead of " + m_assertionInfo.macroName + "( " + m_assertionInfo.capturedExpression + " ) for better diagnostics}"; - } - -} // end namespace Catch - -// #included from: catch_tag_alias_registry.hpp -#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_HPP_INCLUDED - -// #included from: catch_tag_alias_registry.h -#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_H_INCLUDED - -#include - -namespace Catch { - - class TagAliasRegistry : public ITagAliasRegistry { - public: - virtual ~TagAliasRegistry(); - virtual Option find( std::string const& alias ) const; - virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const; - void add( char const* alias, char const* tag, SourceLineInfo const& lineInfo ); - static TagAliasRegistry& get(); - - private: - std::map m_registry; - }; - -} // end namespace Catch - -#include -#include - -namespace Catch { - - TagAliasRegistry::~TagAliasRegistry() {} - - Option TagAliasRegistry::find( std::string const& alias ) const { - std::map::const_iterator it = m_registry.find( alias ); - if( it != m_registry.end() ) - return it->second; - else - return Option(); - } - - std::string TagAliasRegistry::expandAliases( std::string const& unexpandedTestSpec ) const { - std::string expandedTestSpec = unexpandedTestSpec; - for( std::map::const_iterator it = m_registry.begin(), itEnd = m_registry.end(); - it != itEnd; - ++it ) { - std::size_t pos = expandedTestSpec.find( it->first ); - if( pos != std::string::npos ) { - expandedTestSpec = expandedTestSpec.substr( 0, pos ) + - it->second.tag + - expandedTestSpec.substr( pos + it->first.size() ); - } - } - return expandedTestSpec; - } - - void TagAliasRegistry::add( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) { - - if( !startsWith( alias, "[@" ) || !endsWith( alias, "]" ) ) { - std::ostringstream oss; - oss << "error: tag alias, \"" << alias << "\" is not of the form [@alias name].\n" << lineInfo; - throw std::domain_error( oss.str().c_str() ); - } - if( !m_registry.insert( std::make_pair( alias, TagAlias( tag, lineInfo ) ) ).second ) { - std::ostringstream oss; - oss << "error: tag alias, \"" << alias << "\" already registered.\n" - << "\tFirst seen at " << find(alias)->lineInfo << "\n" - << "\tRedefined at " << lineInfo; - throw std::domain_error( oss.str().c_str() ); - } - } - - TagAliasRegistry& TagAliasRegistry::get() { - static TagAliasRegistry instance; - return instance; - - } - - ITagAliasRegistry::~ITagAliasRegistry() {} - ITagAliasRegistry const& ITagAliasRegistry::get() { return TagAliasRegistry::get(); } - - RegistrarForTagAliases::RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) { - try { - TagAliasRegistry::get().add( alias, tag, lineInfo ); - } - catch( std::exception& ex ) { - Colour colourGuard( Colour::Red ); - Catch::cerr() << ex.what() << std::endl; - exit(1); - } - } - -} // end namespace Catch - -// #included from: ../reporters/catch_reporter_multi.hpp -#define TWOBLUECUBES_CATCH_REPORTER_MULTI_HPP_INCLUDED - -namespace Catch { - -class MultipleReporters : public SharedImpl { - typedef std::vector > Reporters; - Reporters m_reporters; - -public: - void add( Ptr const& reporter ) { - m_reporters.push_back( reporter ); - } - -public: // IStreamingReporter - - virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE { - return m_reporters[0]->getPreferences(); - } - - virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->noMatchingTestCases( spec ); - } - - virtual void testRunStarting( TestRunInfo const& testRunInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testRunStarting( testRunInfo ); - } - - virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testGroupStarting( groupInfo ); - } - - virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testCaseStarting( testInfo ); - } - - virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->sectionStarting( sectionInfo ); - } - - virtual void assertionStarting( AssertionInfo const& assertionInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->assertionStarting( assertionInfo ); - } - - // The return value indicates if the messages buffer should be cleared: - virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE { - bool clearBuffer = false; - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - clearBuffer |= (*it)->assertionEnded( assertionStats ); - return clearBuffer; - } - - virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->sectionEnded( sectionStats ); - } - - virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testCaseEnded( testCaseStats ); - } - - virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testGroupEnded( testGroupStats ); - } - - virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testRunEnded( testRunStats ); - } - - virtual void skipTest( TestCaseInfo const& testInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->skipTest( testInfo ); - } -}; - -Ptr addReporter( Ptr const& existingReporter, Ptr const& additionalReporter ) { - Ptr resultingReporter; - - if( existingReporter ) { - MultipleReporters* multi = dynamic_cast( existingReporter.get() ); - if( !multi ) { - multi = new MultipleReporters; - resultingReporter = Ptr( multi ); - if( existingReporter ) - multi->add( existingReporter ); - } - else - resultingReporter = existingReporter; - multi->add( additionalReporter ); - } - else - resultingReporter = additionalReporter; - - return resultingReporter; -} - -} // end namespace Catch - -// #included from: ../reporters/catch_reporter_xml.hpp -#define TWOBLUECUBES_CATCH_REPORTER_XML_HPP_INCLUDED - -// #included from: catch_reporter_bases.hpp -#define TWOBLUECUBES_CATCH_REPORTER_BASES_HPP_INCLUDED - -#include - -namespace Catch { - - struct StreamingReporterBase : SharedImpl { - - StreamingReporterBase( ReporterConfig const& _config ) - : m_config( _config.fullConfig() ), - stream( _config.stream() ) - { - m_reporterPrefs.shouldRedirectStdOut = false; - } - - virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE { - return m_reporterPrefs; - } - - virtual ~StreamingReporterBase() CATCH_OVERRIDE; - - virtual void noMatchingTestCases( std::string const& ) CATCH_OVERRIDE {} - - virtual void testRunStarting( TestRunInfo const& _testRunInfo ) CATCH_OVERRIDE { - currentTestRunInfo = _testRunInfo; - } - virtual void testGroupStarting( GroupInfo const& _groupInfo ) CATCH_OVERRIDE { - currentGroupInfo = _groupInfo; - } - - virtual void testCaseStarting( TestCaseInfo const& _testInfo ) CATCH_OVERRIDE { - currentTestCaseInfo = _testInfo; - } - virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE { - m_sectionStack.push_back( _sectionInfo ); - } - - virtual void sectionEnded( SectionStats const& /* _sectionStats */ ) CATCH_OVERRIDE { - m_sectionStack.pop_back(); - } - virtual void testCaseEnded( TestCaseStats const& /* _testCaseStats */ ) CATCH_OVERRIDE { - currentTestCaseInfo.reset(); - } - virtual void testGroupEnded( TestGroupStats const& /* _testGroupStats */ ) CATCH_OVERRIDE { - currentGroupInfo.reset(); - } - virtual void testRunEnded( TestRunStats const& /* _testRunStats */ ) CATCH_OVERRIDE { - currentTestCaseInfo.reset(); - currentGroupInfo.reset(); - currentTestRunInfo.reset(); - } - - virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE { - // Don't do anything with this by default. - // It can optionally be overridden in the derived class. - } - - Ptr m_config; - std::ostream& stream; - - LazyStat currentTestRunInfo; - LazyStat currentGroupInfo; - LazyStat currentTestCaseInfo; - - std::vector m_sectionStack; - ReporterPreferences m_reporterPrefs; - }; - - struct CumulativeReporterBase : SharedImpl { - template - struct Node : SharedImpl<> { - explicit Node( T const& _value ) : value( _value ) {} - virtual ~Node() {} - - typedef std::vector > ChildNodes; - T value; - ChildNodes children; - }; - struct SectionNode : SharedImpl<> { - explicit SectionNode( SectionStats const& _stats ) : stats( _stats ) {} - virtual ~SectionNode(); - - bool operator == ( SectionNode const& other ) const { - return stats.sectionInfo.lineInfo == other.stats.sectionInfo.lineInfo; - } - bool operator == ( Ptr const& other ) const { - return operator==( *other ); - } - - SectionStats stats; - typedef std::vector > ChildSections; - typedef std::vector Assertions; - ChildSections childSections; - Assertions assertions; - std::string stdOut; - std::string stdErr; - }; - - struct BySectionInfo { - BySectionInfo( SectionInfo const& other ) : m_other( other ) {} - BySectionInfo( BySectionInfo const& other ) : m_other( other.m_other ) {} - bool operator() ( Ptr const& node ) const { - return node->stats.sectionInfo.lineInfo == m_other.lineInfo; - } - private: - void operator=( BySectionInfo const& ); - SectionInfo const& m_other; - }; - - typedef Node TestCaseNode; - typedef Node TestGroupNode; - typedef Node TestRunNode; - - CumulativeReporterBase( ReporterConfig const& _config ) - : m_config( _config.fullConfig() ), - stream( _config.stream() ) - { - m_reporterPrefs.shouldRedirectStdOut = false; - } - ~CumulativeReporterBase(); - - virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE { - return m_reporterPrefs; - } - - virtual void testRunStarting( TestRunInfo const& ) CATCH_OVERRIDE {} - virtual void testGroupStarting( GroupInfo const& ) CATCH_OVERRIDE {} - - virtual void testCaseStarting( TestCaseInfo const& ) CATCH_OVERRIDE {} - - virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE { - SectionStats incompleteStats( sectionInfo, Counts(), 0, false ); - Ptr node; - if( m_sectionStack.empty() ) { - if( !m_rootSection ) - m_rootSection = new SectionNode( incompleteStats ); - node = m_rootSection; - } - else { - SectionNode& parentNode = *m_sectionStack.back(); - SectionNode::ChildSections::const_iterator it = - std::find_if( parentNode.childSections.begin(), - parentNode.childSections.end(), - BySectionInfo( sectionInfo ) ); - if( it == parentNode.childSections.end() ) { - node = new SectionNode( incompleteStats ); - parentNode.childSections.push_back( node ); - } - else - node = *it; - } - m_sectionStack.push_back( node ); - m_deepestSection = node; - } - - virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {} - - virtual bool assertionEnded( AssertionStats const& assertionStats ) { - assert( !m_sectionStack.empty() ); - SectionNode& sectionNode = *m_sectionStack.back(); - sectionNode.assertions.push_back( assertionStats ); - return true; - } - virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE { - assert( !m_sectionStack.empty() ); - SectionNode& node = *m_sectionStack.back(); - node.stats = sectionStats; - m_sectionStack.pop_back(); - } - virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE { - Ptr node = new TestCaseNode( testCaseStats ); - assert( m_sectionStack.size() == 0 ); - node->children.push_back( m_rootSection ); - m_testCases.push_back( node ); - m_rootSection.reset(); - - assert( m_deepestSection ); - m_deepestSection->stdOut = testCaseStats.stdOut; - m_deepestSection->stdErr = testCaseStats.stdErr; - } - virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE { - Ptr node = new TestGroupNode( testGroupStats ); - node->children.swap( m_testCases ); - m_testGroups.push_back( node ); - } - virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE { - Ptr node = new TestRunNode( testRunStats ); - node->children.swap( m_testGroups ); - m_testRuns.push_back( node ); - testRunEndedCumulative(); - } - virtual void testRunEndedCumulative() = 0; - - virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {} - - Ptr m_config; - std::ostream& stream; - std::vector m_assertions; - std::vector > > m_sections; - std::vector > m_testCases; - std::vector > m_testGroups; - - std::vector > m_testRuns; - - Ptr m_rootSection; - Ptr m_deepestSection; - std::vector > m_sectionStack; - ReporterPreferences m_reporterPrefs; - - }; - - template - char const* getLineOfChars() { - static char line[CATCH_CONFIG_CONSOLE_WIDTH] = {0}; - if( !*line ) { - memset( line, C, CATCH_CONFIG_CONSOLE_WIDTH-1 ); - line[CATCH_CONFIG_CONSOLE_WIDTH-1] = 0; - } - return line; - } - - struct TestEventListenerBase : StreamingReporterBase { - TestEventListenerBase( ReporterConfig const& _config ) - : StreamingReporterBase( _config ) - {} - - virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {} - virtual bool assertionEnded( AssertionStats const& ) CATCH_OVERRIDE { - return false; - } - }; - -} // end namespace Catch - -// #included from: ../internal/catch_reporter_registrars.hpp -#define TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED - -namespace Catch { - - template - class LegacyReporterRegistrar { - - class ReporterFactory : public IReporterFactory { - virtual IStreamingReporter* create( ReporterConfig const& config ) const { - return new LegacyReporterAdapter( new T( config ) ); - } - - virtual std::string getDescription() const { - return T::getDescription(); - } - }; - - public: - - LegacyReporterRegistrar( std::string const& name ) { - getMutableRegistryHub().registerReporter( name, new ReporterFactory() ); - } - }; - - template - class ReporterRegistrar { - - class ReporterFactory : public SharedImpl { - - // *** Please Note ***: - // - If you end up here looking at a compiler error because it's trying to register - // your custom reporter class be aware that the native reporter interface has changed - // to IStreamingReporter. The "legacy" interface, IReporter, is still supported via - // an adapter. Just use REGISTER_LEGACY_REPORTER to take advantage of the adapter. - // However please consider updating to the new interface as the old one is now - // deprecated and will probably be removed quite soon! - // Please contact me via github if you have any questions at all about this. - // In fact, ideally, please contact me anyway to let me know you've hit this - as I have - // no idea who is actually using custom reporters at all (possibly no-one!). - // The new interface is designed to minimise exposure to interface changes in the future. - virtual IStreamingReporter* create( ReporterConfig const& config ) const { - return new T( config ); - } - - virtual std::string getDescription() const { - return T::getDescription(); - } - }; - - public: - - ReporterRegistrar( std::string const& name ) { - getMutableRegistryHub().registerReporter( name, new ReporterFactory() ); - } - }; - - template - class ListenerRegistrar { - - class ListenerFactory : public SharedImpl { - - virtual IStreamingReporter* create( ReporterConfig const& config ) const { - return new T( config ); - } - virtual std::string getDescription() const { - return ""; - } - }; - - public: - - ListenerRegistrar() { - getMutableRegistryHub().registerListener( new ListenerFactory() ); - } - }; -} - -#define INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) \ - namespace{ Catch::LegacyReporterRegistrar catch_internal_RegistrarFor##reporterType( name ); } - -#define INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType ) \ - namespace{ Catch::ReporterRegistrar catch_internal_RegistrarFor##reporterType( name ); } - -#define INTERNAL_CATCH_REGISTER_LISTENER( listenerType ) \ - namespace{ Catch::ListenerRegistrar catch_internal_RegistrarFor##listenerType; } - -// #included from: ../internal/catch_xmlwriter.hpp -#define TWOBLUECUBES_CATCH_XMLWRITER_HPP_INCLUDED - -#include -#include -#include -#include - -namespace Catch { - - class XmlEncode { - public: - enum ForWhat { ForTextNodes, ForAttributes }; - - XmlEncode( std::string const& str, ForWhat forWhat = ForTextNodes ) - : m_str( str ), - m_forWhat( forWhat ) - {} - - void encodeTo( std::ostream& os ) const { - - // Apostrophe escaping not necessary if we always use " to write attributes - // (see: http://www.w3.org/TR/xml/#syntax) - - for( std::size_t i = 0; i < m_str.size(); ++ i ) { - char c = m_str[i]; - switch( c ) { - case '<': os << "<"; break; - case '&': os << "&"; break; - - case '>': - // See: http://www.w3.org/TR/xml/#syntax - if( i > 2 && m_str[i-1] == ']' && m_str[i-2] == ']' ) - os << ">"; - else - os << c; - break; - - case '\"': - if( m_forWhat == ForAttributes ) - os << """; - else - os << c; - break; - - default: - // Escape control chars - based on contribution by @espenalb in PR #465 - if ( ( c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' ) - os << "&#x" << std::uppercase << std::hex << static_cast( c ); - else - os << c; - } - } - } - - friend std::ostream& operator << ( std::ostream& os, XmlEncode const& xmlEncode ) { - xmlEncode.encodeTo( os ); - return os; - } - - private: - std::string m_str; - ForWhat m_forWhat; - }; - - class XmlWriter { - public: - - class ScopedElement { - public: - ScopedElement( XmlWriter* writer ) - : m_writer( writer ) - {} - - ScopedElement( ScopedElement const& other ) - : m_writer( other.m_writer ){ - other.m_writer = CATCH_NULL; - } - - ~ScopedElement() { - if( m_writer ) - m_writer->endElement(); - } - - ScopedElement& writeText( std::string const& text, bool indent = true ) { - m_writer->writeText( text, indent ); - return *this; - } - - template - ScopedElement& writeAttribute( std::string const& name, T const& attribute ) { - m_writer->writeAttribute( name, attribute ); - return *this; - } - - private: - mutable XmlWriter* m_writer; - }; - - XmlWriter() - : m_tagIsOpen( false ), - m_needsNewline( false ), - m_os( &Catch::cout() ) - {} - - XmlWriter( std::ostream& os ) - : m_tagIsOpen( false ), - m_needsNewline( false ), - m_os( &os ) - {} - - ~XmlWriter() { - while( !m_tags.empty() ) - endElement(); - } - - XmlWriter& startElement( std::string const& name ) { - ensureTagClosed(); - newlineIfNecessary(); - stream() << m_indent << "<" << name; - m_tags.push_back( name ); - m_indent += " "; - m_tagIsOpen = true; - return *this; - } - - ScopedElement scopedElement( std::string const& name ) { - ScopedElement scoped( this ); - startElement( name ); - return scoped; - } - - XmlWriter& endElement() { - newlineIfNecessary(); - m_indent = m_indent.substr( 0, m_indent.size()-2 ); - if( m_tagIsOpen ) { - stream() << "/>\n"; - m_tagIsOpen = false; - } - else { - stream() << m_indent << "\n"; - } - m_tags.pop_back(); - return *this; - } - - XmlWriter& writeAttribute( std::string const& name, std::string const& attribute ) { - if( !name.empty() && !attribute.empty() ) - stream() << " " << name << "=\"" << XmlEncode( attribute, XmlEncode::ForAttributes ) << "\""; - return *this; - } - - XmlWriter& writeAttribute( std::string const& name, bool attribute ) { - stream() << " " << name << "=\"" << ( attribute ? "true" : "false" ) << "\""; - return *this; - } - - template - XmlWriter& writeAttribute( std::string const& name, T const& attribute ) { - std::ostringstream oss; - oss << attribute; - return writeAttribute( name, oss.str() ); - } - - XmlWriter& writeText( std::string const& text, bool indent = true ) { - if( !text.empty() ){ - bool tagWasOpen = m_tagIsOpen; - ensureTagClosed(); - if( tagWasOpen && indent ) - stream() << m_indent; - stream() << XmlEncode( text ); - m_needsNewline = true; - } - return *this; - } - - XmlWriter& writeComment( std::string const& text ) { - ensureTagClosed(); - stream() << m_indent << ""; - m_needsNewline = true; - return *this; - } - - XmlWriter& writeBlankLine() { - ensureTagClosed(); - stream() << "\n"; - return *this; - } - - void setStream( std::ostream& os ) { - m_os = &os; - } - - private: - XmlWriter( XmlWriter const& ); - void operator=( XmlWriter const& ); - - std::ostream& stream() { - return *m_os; - } - - void ensureTagClosed() { - if( m_tagIsOpen ) { - stream() << ">\n"; - m_tagIsOpen = false; - } - } - - void newlineIfNecessary() { - if( m_needsNewline ) { - stream() << "\n"; - m_needsNewline = false; - } - } - - bool m_tagIsOpen; - bool m_needsNewline; - std::vector m_tags; - std::string m_indent; - std::ostream* m_os; - }; - -} -// #included from: catch_reenable_warnings.h - -#define TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED - -#ifdef __clang__ -# ifdef __ICC // icpc defines the __clang__ macro -# pragma warning(pop) -# else -# pragma clang diagnostic pop -# endif -#elif defined __GNUC__ -# pragma GCC diagnostic pop -#endif - - -namespace Catch { - class XmlReporter : public StreamingReporterBase { - public: - XmlReporter( ReporterConfig const& _config ) - : StreamingReporterBase( _config ), - m_sectionDepth( 0 ) - { - m_reporterPrefs.shouldRedirectStdOut = true; - } - - virtual ~XmlReporter() CATCH_OVERRIDE; - - static std::string getDescription() { - return "Reports test results as an XML document"; - } - - public: // StreamingReporterBase - - virtual void noMatchingTestCases( std::string const& s ) CATCH_OVERRIDE { - StreamingReporterBase::noMatchingTestCases( s ); - } - - virtual void testRunStarting( TestRunInfo const& testInfo ) CATCH_OVERRIDE { - StreamingReporterBase::testRunStarting( testInfo ); - m_xml.setStream( stream ); - m_xml.startElement( "Catch" ); - if( !m_config->name().empty() ) - m_xml.writeAttribute( "name", m_config->name() ); - } - - virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE { - StreamingReporterBase::testGroupStarting( groupInfo ); - m_xml.startElement( "Group" ) - .writeAttribute( "name", groupInfo.name ); - } - - virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE { - StreamingReporterBase::testCaseStarting(testInfo); - m_xml.startElement( "TestCase" ).writeAttribute( "name", trim( testInfo.name ) ); - - if ( m_config->showDurations() == ShowDurations::Always ) - m_testCaseTimer.start(); - } - - virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE { - StreamingReporterBase::sectionStarting( sectionInfo ); - if( m_sectionDepth++ > 0 ) { - m_xml.startElement( "Section" ) - .writeAttribute( "name", trim( sectionInfo.name ) ) - .writeAttribute( "description", sectionInfo.description ); - } - } - - virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE { } - - virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE { - const AssertionResult& assertionResult = assertionStats.assertionResult; - - // Print any info messages in tags. - if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) { - for( std::vector::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end(); - it != itEnd; - ++it ) { - if( it->type == ResultWas::Info ) { - m_xml.scopedElement( "Info" ) - .writeText( it->message ); - } else if ( it->type == ResultWas::Warning ) { - m_xml.scopedElement( "Warning" ) - .writeText( it->message ); - } - } - } - - // Drop out if result was successful but we're not printing them. - if( !m_config->includeSuccessfulResults() && isOk(assertionResult.getResultType()) ) - return true; - - // Print the expression if there is one. - if( assertionResult.hasExpression() ) { - m_xml.startElement( "Expression" ) - .writeAttribute( "success", assertionResult.succeeded() ) - .writeAttribute( "type", assertionResult.getTestMacroName() ) - .writeAttribute( "filename", assertionResult.getSourceInfo().file ) - .writeAttribute( "line", assertionResult.getSourceInfo().line ); - - m_xml.scopedElement( "Original" ) - .writeText( assertionResult.getExpression() ); - m_xml.scopedElement( "Expanded" ) - .writeText( assertionResult.getExpandedExpression() ); - } - - // And... Print a result applicable to each result type. - switch( assertionResult.getResultType() ) { - case ResultWas::ThrewException: - m_xml.scopedElement( "Exception" ) - .writeAttribute( "filename", assertionResult.getSourceInfo().file ) - .writeAttribute( "line", assertionResult.getSourceInfo().line ) - .writeText( assertionResult.getMessage() ); - break; - case ResultWas::FatalErrorCondition: - m_xml.scopedElement( "Fatal Error Condition" ) - .writeAttribute( "filename", assertionResult.getSourceInfo().file ) - .writeAttribute( "line", assertionResult.getSourceInfo().line ) - .writeText( assertionResult.getMessage() ); - break; - case ResultWas::Info: - m_xml.scopedElement( "Info" ) - .writeText( assertionResult.getMessage() ); - break; - case ResultWas::Warning: - // Warning will already have been written - break; - case ResultWas::ExplicitFailure: - m_xml.scopedElement( "Failure" ) - .writeText( assertionResult.getMessage() ); - break; - default: - break; - } - - if( assertionResult.hasExpression() ) - m_xml.endElement(); - - return true; - } - - virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE { - StreamingReporterBase::sectionEnded( sectionStats ); - if( --m_sectionDepth > 0 ) { - XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResults" ); - e.writeAttribute( "successes", sectionStats.assertions.passed ); - e.writeAttribute( "failures", sectionStats.assertions.failed ); - e.writeAttribute( "expectedFailures", sectionStats.assertions.failedButOk ); - - if ( m_config->showDurations() == ShowDurations::Always ) - e.writeAttribute( "durationInSeconds", sectionStats.durationInSeconds ); - - m_xml.endElement(); - } - } - - virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE { - StreamingReporterBase::testCaseEnded( testCaseStats ); - XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResult" ); - e.writeAttribute( "success", testCaseStats.totals.assertions.allOk() ); - - if ( m_config->showDurations() == ShowDurations::Always ) - e.writeAttribute( "durationInSeconds", m_testCaseTimer.getElapsedSeconds() ); - - m_xml.endElement(); - } - - virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE { - StreamingReporterBase::testGroupEnded( testGroupStats ); - // TODO: Check testGroupStats.aborting and act accordingly. - m_xml.scopedElement( "OverallResults" ) - .writeAttribute( "successes", testGroupStats.totals.assertions.passed ) - .writeAttribute( "failures", testGroupStats.totals.assertions.failed ) - .writeAttribute( "expectedFailures", testGroupStats.totals.assertions.failedButOk ); - m_xml.endElement(); - } - - virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE { - StreamingReporterBase::testRunEnded( testRunStats ); - m_xml.scopedElement( "OverallResults" ) - .writeAttribute( "successes", testRunStats.totals.assertions.passed ) - .writeAttribute( "failures", testRunStats.totals.assertions.failed ) - .writeAttribute( "expectedFailures", testRunStats.totals.assertions.failedButOk ); - m_xml.endElement(); - } - - private: - Timer m_testCaseTimer; - XmlWriter m_xml; - int m_sectionDepth; - }; - - INTERNAL_CATCH_REGISTER_REPORTER( "xml", XmlReporter ) - -} // end namespace Catch - -// #included from: ../reporters/catch_reporter_junit.hpp -#define TWOBLUECUBES_CATCH_REPORTER_JUNIT_HPP_INCLUDED - -#include - -namespace Catch { - - class JunitReporter : public CumulativeReporterBase { - public: - JunitReporter( ReporterConfig const& _config ) - : CumulativeReporterBase( _config ), - xml( _config.stream() ) - { - m_reporterPrefs.shouldRedirectStdOut = true; - } - - virtual ~JunitReporter() CATCH_OVERRIDE; - - static std::string getDescription() { - return "Reports test results in an XML format that looks like Ant's junitreport target"; - } - - virtual void noMatchingTestCases( std::string const& /*spec*/ ) CATCH_OVERRIDE {} - - virtual void testRunStarting( TestRunInfo const& runInfo ) CATCH_OVERRIDE { - CumulativeReporterBase::testRunStarting( runInfo ); - xml.startElement( "testsuites" ); - } - - virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE { - suiteTimer.start(); - stdOutForSuite.str(""); - stdErrForSuite.str(""); - unexpectedExceptions = 0; - CumulativeReporterBase::testGroupStarting( groupInfo ); - } - - virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE { - if( assertionStats.assertionResult.getResultType() == ResultWas::ThrewException ) - unexpectedExceptions++; - return CumulativeReporterBase::assertionEnded( assertionStats ); - } - - virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE { - stdOutForSuite << testCaseStats.stdOut; - stdErrForSuite << testCaseStats.stdErr; - CumulativeReporterBase::testCaseEnded( testCaseStats ); - } - - virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE { - double suiteTime = suiteTimer.getElapsedSeconds(); - CumulativeReporterBase::testGroupEnded( testGroupStats ); - writeGroup( *m_testGroups.back(), suiteTime ); - } - - virtual void testRunEndedCumulative() CATCH_OVERRIDE { - xml.endElement(); - } - - void writeGroup( TestGroupNode const& groupNode, double suiteTime ) { - XmlWriter::ScopedElement e = xml.scopedElement( "testsuite" ); - TestGroupStats const& stats = groupNode.value; - xml.writeAttribute( "name", stats.groupInfo.name ); - xml.writeAttribute( "errors", unexpectedExceptions ); - xml.writeAttribute( "failures", stats.totals.assertions.failed-unexpectedExceptions ); - xml.writeAttribute( "tests", stats.totals.assertions.total() ); - xml.writeAttribute( "hostname", "tbd" ); // !TBD - if( m_config->showDurations() == ShowDurations::Never ) - xml.writeAttribute( "time", "" ); - else - xml.writeAttribute( "time", suiteTime ); - xml.writeAttribute( "timestamp", "tbd" ); // !TBD - - // Write test cases - for( TestGroupNode::ChildNodes::const_iterator - it = groupNode.children.begin(), itEnd = groupNode.children.end(); - it != itEnd; - ++it ) - writeTestCase( **it ); - - xml.scopedElement( "system-out" ).writeText( trim( stdOutForSuite.str() ), false ); - xml.scopedElement( "system-err" ).writeText( trim( stdErrForSuite.str() ), false ); - } - - void writeTestCase( TestCaseNode const& testCaseNode ) { - TestCaseStats const& stats = testCaseNode.value; - - // All test cases have exactly one section - which represents the - // test case itself. That section may have 0-n nested sections - assert( testCaseNode.children.size() == 1 ); - SectionNode const& rootSection = *testCaseNode.children.front(); - - std::string className = stats.testInfo.className; - - if( className.empty() ) { - if( rootSection.childSections.empty() ) - className = "global"; - } - writeSection( className, "", rootSection ); - } - - void writeSection( std::string const& className, - std::string const& rootName, - SectionNode const& sectionNode ) { - std::string name = trim( sectionNode.stats.sectionInfo.name ); - if( !rootName.empty() ) - name = rootName + "/" + name; - - if( !sectionNode.assertions.empty() || - !sectionNode.stdOut.empty() || - !sectionNode.stdErr.empty() ) { - XmlWriter::ScopedElement e = xml.scopedElement( "testcase" ); - if( className.empty() ) { - xml.writeAttribute( "classname", name ); - xml.writeAttribute( "name", "root" ); - } - else { - xml.writeAttribute( "classname", className ); - xml.writeAttribute( "name", name ); - } - xml.writeAttribute( "time", Catch::toString( sectionNode.stats.durationInSeconds ) ); - - writeAssertions( sectionNode ); - - if( !sectionNode.stdOut.empty() ) - xml.scopedElement( "system-out" ).writeText( trim( sectionNode.stdOut ), false ); - if( !sectionNode.stdErr.empty() ) - xml.scopedElement( "system-err" ).writeText( trim( sectionNode.stdErr ), false ); - } - for( SectionNode::ChildSections::const_iterator - it = sectionNode.childSections.begin(), - itEnd = sectionNode.childSections.end(); - it != itEnd; - ++it ) - if( className.empty() ) - writeSection( name, "", **it ); - else - writeSection( className, name, **it ); - } - - void writeAssertions( SectionNode const& sectionNode ) { - for( SectionNode::Assertions::const_iterator - it = sectionNode.assertions.begin(), itEnd = sectionNode.assertions.end(); - it != itEnd; - ++it ) - writeAssertion( *it ); - } - void writeAssertion( AssertionStats const& stats ) { - AssertionResult const& result = stats.assertionResult; - if( !result.isOk() ) { - std::string elementName; - switch( result.getResultType() ) { - case ResultWas::ThrewException: - case ResultWas::FatalErrorCondition: - elementName = "error"; - break; - case ResultWas::ExplicitFailure: - elementName = "failure"; - break; - case ResultWas::ExpressionFailed: - elementName = "failure"; - break; - case ResultWas::DidntThrowException: - elementName = "failure"; - break; - - // We should never see these here: - case ResultWas::Info: - case ResultWas::Warning: - case ResultWas::Ok: - case ResultWas::Unknown: - case ResultWas::FailureBit: - case ResultWas::Exception: - elementName = "internalError"; - break; - } - - XmlWriter::ScopedElement e = xml.scopedElement( elementName ); - - xml.writeAttribute( "message", result.getExpandedExpression() ); - xml.writeAttribute( "type", result.getTestMacroName() ); - - std::ostringstream oss; - if( !result.getMessage().empty() ) - oss << result.getMessage() << "\n"; - for( std::vector::const_iterator - it = stats.infoMessages.begin(), - itEnd = stats.infoMessages.end(); - it != itEnd; - ++it ) - if( it->type == ResultWas::Info ) - oss << it->message << "\n"; - - oss << "at " << result.getSourceInfo(); - xml.writeText( oss.str(), false ); - } - } - - XmlWriter xml; - Timer suiteTimer; - std::ostringstream stdOutForSuite; - std::ostringstream stdErrForSuite; - unsigned int unexpectedExceptions; - }; - - INTERNAL_CATCH_REGISTER_REPORTER( "junit", JunitReporter ) - -} // end namespace Catch - -// #included from: ../reporters/catch_reporter_console.hpp -#define TWOBLUECUBES_CATCH_REPORTER_CONSOLE_HPP_INCLUDED - -namespace Catch { - - struct ConsoleReporter : StreamingReporterBase { - ConsoleReporter( ReporterConfig const& _config ) - : StreamingReporterBase( _config ), - m_headerPrinted( false ) - {} - - virtual ~ConsoleReporter() CATCH_OVERRIDE; - static std::string getDescription() { - return "Reports test results as plain lines of text"; - } - - virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE { - stream << "No test cases matched '" << spec << "'" << std::endl; - } - - virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE { - } - - virtual bool assertionEnded( AssertionStats const& _assertionStats ) CATCH_OVERRIDE { - AssertionResult const& result = _assertionStats.assertionResult; - - bool printInfoMessages = true; - - // Drop out if result was successful and we're not printing those - if( !m_config->includeSuccessfulResults() && result.isOk() ) { - if( result.getResultType() != ResultWas::Warning ) - return false; - printInfoMessages = false; - } - - lazyPrint(); - - AssertionPrinter printer( stream, _assertionStats, printInfoMessages ); - printer.print(); - stream << std::endl; - return true; - } - - virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE { - m_headerPrinted = false; - StreamingReporterBase::sectionStarting( _sectionInfo ); - } - virtual void sectionEnded( SectionStats const& _sectionStats ) CATCH_OVERRIDE { - if( _sectionStats.missingAssertions ) { - lazyPrint(); - Colour colour( Colour::ResultError ); - if( m_sectionStack.size() > 1 ) - stream << "\nNo assertions in section"; - else - stream << "\nNo assertions in test case"; - stream << " '" << _sectionStats.sectionInfo.name << "'\n" << std::endl; - } - if( m_headerPrinted ) { - if( m_config->showDurations() == ShowDurations::Always ) - stream << "Completed in " << _sectionStats.durationInSeconds << "s" << std::endl; - m_headerPrinted = false; - } - else { - if( m_config->showDurations() == ShowDurations::Always ) - stream << _sectionStats.sectionInfo.name << " completed in " << _sectionStats.durationInSeconds << "s" << std::endl; - } - StreamingReporterBase::sectionEnded( _sectionStats ); - } - - virtual void testCaseEnded( TestCaseStats const& _testCaseStats ) CATCH_OVERRIDE { - StreamingReporterBase::testCaseEnded( _testCaseStats ); - m_headerPrinted = false; - } - virtual void testGroupEnded( TestGroupStats const& _testGroupStats ) CATCH_OVERRIDE { - if( currentGroupInfo.used ) { - printSummaryDivider(); - stream << "Summary for group '" << _testGroupStats.groupInfo.name << "':\n"; - printTotals( _testGroupStats.totals ); - stream << "\n" << std::endl; - } - StreamingReporterBase::testGroupEnded( _testGroupStats ); - } - virtual void testRunEnded( TestRunStats const& _testRunStats ) CATCH_OVERRIDE { - printTotalsDivider( _testRunStats.totals ); - printTotals( _testRunStats.totals ); - stream << std::endl; - StreamingReporterBase::testRunEnded( _testRunStats ); - } - - private: - - class AssertionPrinter { - void operator= ( AssertionPrinter const& ); - public: - AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages ) - : stream( _stream ), - stats( _stats ), - result( _stats.assertionResult ), - colour( Colour::None ), - message( result.getMessage() ), - messages( _stats.infoMessages ), - printInfoMessages( _printInfoMessages ) - { - switch( result.getResultType() ) { - case ResultWas::Ok: - colour = Colour::Success; - passOrFail = "PASSED"; - //if( result.hasMessage() ) - if( _stats.infoMessages.size() == 1 ) - messageLabel = "with message"; - if( _stats.infoMessages.size() > 1 ) - messageLabel = "with messages"; - break; - case ResultWas::ExpressionFailed: - if( result.isOk() ) { - colour = Colour::Success; - passOrFail = "FAILED - but was ok"; - } - else { - colour = Colour::Error; - passOrFail = "FAILED"; - } - if( _stats.infoMessages.size() == 1 ) - messageLabel = "with message"; - if( _stats.infoMessages.size() > 1 ) - messageLabel = "with messages"; - break; - case ResultWas::ThrewException: - colour = Colour::Error; - passOrFail = "FAILED"; - messageLabel = "due to unexpected exception with message"; - break; - case ResultWas::FatalErrorCondition: - colour = Colour::Error; - passOrFail = "FAILED"; - messageLabel = "due to a fatal error condition"; - break; - case ResultWas::DidntThrowException: - colour = Colour::Error; - passOrFail = "FAILED"; - messageLabel = "because no exception was thrown where one was expected"; - break; - case ResultWas::Info: - messageLabel = "info"; - break; - case ResultWas::Warning: - messageLabel = "warning"; - break; - case ResultWas::ExplicitFailure: - passOrFail = "FAILED"; - colour = Colour::Error; - if( _stats.infoMessages.size() == 1 ) - messageLabel = "explicitly with message"; - if( _stats.infoMessages.size() > 1 ) - messageLabel = "explicitly with messages"; - break; - // These cases are here to prevent compiler warnings - case ResultWas::Unknown: - case ResultWas::FailureBit: - case ResultWas::Exception: - passOrFail = "** internal error **"; - colour = Colour::Error; - break; - } - } - - void print() const { - printSourceInfo(); - if( stats.totals.assertions.total() > 0 ) { - if( result.isOk() ) - stream << "\n"; - printResultType(); - printOriginalExpression(); - printReconstructedExpression(); - } - else { - stream << "\n"; - } - printMessage(); - } - - private: - void printResultType() const { - if( !passOrFail.empty() ) { - Colour colourGuard( colour ); - stream << passOrFail << ":\n"; - } - } - void printOriginalExpression() const { - if( result.hasExpression() ) { - Colour colourGuard( Colour::OriginalExpression ); - stream << " "; - stream << result.getExpressionInMacro(); - stream << "\n"; - } - } - void printReconstructedExpression() const { - if( result.hasExpandedExpression() ) { - stream << "with expansion:\n"; - Colour colourGuard( Colour::ReconstructedExpression ); - stream << Text( result.getExpandedExpression(), TextAttributes().setIndent(2) ) << "\n"; - } - } - void printMessage() const { - if( !messageLabel.empty() ) - stream << messageLabel << ":" << "\n"; - for( std::vector::const_iterator it = messages.begin(), itEnd = messages.end(); - it != itEnd; - ++it ) { - // If this assertion is a warning ignore any INFO messages - if( printInfoMessages || it->type != ResultWas::Info ) - stream << Text( it->message, TextAttributes().setIndent(2) ) << "\n"; - } - } - void printSourceInfo() const { - Colour colourGuard( Colour::FileName ); - stream << result.getSourceInfo() << ": "; - } - - std::ostream& stream; - AssertionStats const& stats; - AssertionResult const& result; - Colour::Code colour; - std::string passOrFail; - std::string messageLabel; - std::string message; - std::vector messages; - bool printInfoMessages; - }; - - void lazyPrint() { - - if( !currentTestRunInfo.used ) - lazyPrintRunInfo(); - if( !currentGroupInfo.used ) - lazyPrintGroupInfo(); - - if( !m_headerPrinted ) { - printTestCaseAndSectionHeader(); - m_headerPrinted = true; - } - } - void lazyPrintRunInfo() { - stream << "\n" << getLineOfChars<'~'>() << "\n"; - Colour colour( Colour::SecondaryText ); - stream << currentTestRunInfo->name - << " is a Catch v" << libraryVersion << " host application.\n" - << "Run with -? for options\n\n"; - - if( m_config->rngSeed() != 0 ) - stream << "Randomness seeded to: " << m_config->rngSeed() << "\n\n"; - - currentTestRunInfo.used = true; - } - void lazyPrintGroupInfo() { - if( !currentGroupInfo->name.empty() && currentGroupInfo->groupsCounts > 1 ) { - printClosedHeader( "Group: " + currentGroupInfo->name ); - currentGroupInfo.used = true; - } - } - void printTestCaseAndSectionHeader() { - assert( !m_sectionStack.empty() ); - printOpenHeader( currentTestCaseInfo->name ); - - if( m_sectionStack.size() > 1 ) { - Colour colourGuard( Colour::Headers ); - - std::vector::const_iterator - it = m_sectionStack.begin()+1, // Skip first section (test case) - itEnd = m_sectionStack.end(); - for( ; it != itEnd; ++it ) - printHeaderString( it->name, 2 ); - } - - SourceLineInfo lineInfo = m_sectionStack.front().lineInfo; - - if( !lineInfo.empty() ){ - stream << getLineOfChars<'-'>() << "\n"; - Colour colourGuard( Colour::FileName ); - stream << lineInfo << "\n"; - } - stream << getLineOfChars<'.'>() << "\n" << std::endl; - } - - void printClosedHeader( std::string const& _name ) { - printOpenHeader( _name ); - stream << getLineOfChars<'.'>() << "\n"; - } - void printOpenHeader( std::string const& _name ) { - stream << getLineOfChars<'-'>() << "\n"; - { - Colour colourGuard( Colour::Headers ); - printHeaderString( _name ); - } - } - - // if string has a : in first line will set indent to follow it on - // subsequent lines - void printHeaderString( std::string const& _string, std::size_t indent = 0 ) { - std::size_t i = _string.find( ": " ); - if( i != std::string::npos ) - i+=2; - else - i = 0; - stream << Text( _string, TextAttributes() - .setIndent( indent+i) - .setInitialIndent( indent ) ) << "\n"; - } - - struct SummaryColumn { - - SummaryColumn( std::string const& _label, Colour::Code _colour ) - : label( _label ), - colour( _colour ) - {} - SummaryColumn addRow( std::size_t count ) { - std::ostringstream oss; - oss << count; - std::string row = oss.str(); - for( std::vector::iterator it = rows.begin(); it != rows.end(); ++it ) { - while( it->size() < row.size() ) - *it = " " + *it; - while( it->size() > row.size() ) - row = " " + row; - } - rows.push_back( row ); - return *this; - } - - std::string label; - Colour::Code colour; - std::vector rows; - - }; - - void printTotals( Totals const& totals ) { - if( totals.testCases.total() == 0 ) { - stream << Colour( Colour::Warning ) << "No tests ran\n"; - } - else if( totals.assertions.total() > 0 && totals.assertions.allPassed() ) { - stream << Colour( Colour::ResultSuccess ) << "All tests passed"; - stream << " (" - << pluralise( totals.assertions.passed, "assertion" ) << " in " - << pluralise( totals.testCases.passed, "test case" ) << ")" - << "\n"; - } - else { - - std::vector columns; - columns.push_back( SummaryColumn( "", Colour::None ) - .addRow( totals.testCases.total() ) - .addRow( totals.assertions.total() ) ); - columns.push_back( SummaryColumn( "passed", Colour::Success ) - .addRow( totals.testCases.passed ) - .addRow( totals.assertions.passed ) ); - columns.push_back( SummaryColumn( "failed", Colour::ResultError ) - .addRow( totals.testCases.failed ) - .addRow( totals.assertions.failed ) ); - columns.push_back( SummaryColumn( "failed as expected", Colour::ResultExpectedFailure ) - .addRow( totals.testCases.failedButOk ) - .addRow( totals.assertions.failedButOk ) ); - - printSummaryRow( "test cases", columns, 0 ); - printSummaryRow( "assertions", columns, 1 ); - } - } - void printSummaryRow( std::string const& label, std::vector const& cols, std::size_t row ) { - for( std::vector::const_iterator it = cols.begin(); it != cols.end(); ++it ) { - std::string value = it->rows[row]; - if( it->label.empty() ) { - stream << label << ": "; - if( value != "0" ) - stream << value; - else - stream << Colour( Colour::Warning ) << "- none -"; - } - else if( value != "0" ) { - stream << Colour( Colour::LightGrey ) << " | "; - stream << Colour( it->colour ) - << value << " " << it->label; - } - } - stream << "\n"; - } - - static std::size_t makeRatio( std::size_t number, std::size_t total ) { - std::size_t ratio = total > 0 ? CATCH_CONFIG_CONSOLE_WIDTH * number/ total : 0; - return ( ratio == 0 && number > 0 ) ? 1 : ratio; - } - static std::size_t& findMax( std::size_t& i, std::size_t& j, std::size_t& k ) { - if( i > j && i > k ) - return i; - else if( j > k ) - return j; - else - return k; - } - - void printTotalsDivider( Totals const& totals ) { - if( totals.testCases.total() > 0 ) { - std::size_t failedRatio = makeRatio( totals.testCases.failed, totals.testCases.total() ); - std::size_t failedButOkRatio = makeRatio( totals.testCases.failedButOk, totals.testCases.total() ); - std::size_t passedRatio = makeRatio( totals.testCases.passed, totals.testCases.total() ); - while( failedRatio + failedButOkRatio + passedRatio < CATCH_CONFIG_CONSOLE_WIDTH-1 ) - findMax( failedRatio, failedButOkRatio, passedRatio )++; - while( failedRatio + failedButOkRatio + passedRatio > CATCH_CONFIG_CONSOLE_WIDTH-1 ) - findMax( failedRatio, failedButOkRatio, passedRatio )--; - - stream << Colour( Colour::Error ) << std::string( failedRatio, '=' ); - stream << Colour( Colour::ResultExpectedFailure ) << std::string( failedButOkRatio, '=' ); - if( totals.testCases.allPassed() ) - stream << Colour( Colour::ResultSuccess ) << std::string( passedRatio, '=' ); - else - stream << Colour( Colour::Success ) << std::string( passedRatio, '=' ); - } - else { - stream << Colour( Colour::Warning ) << std::string( CATCH_CONFIG_CONSOLE_WIDTH-1, '=' ); - } - stream << "\n"; - } - void printSummaryDivider() { - stream << getLineOfChars<'-'>() << "\n"; - } - - private: - bool m_headerPrinted; - }; - - INTERNAL_CATCH_REGISTER_REPORTER( "console", ConsoleReporter ) - -} // end namespace Catch - -// #included from: ../reporters/catch_reporter_compact.hpp -#define TWOBLUECUBES_CATCH_REPORTER_COMPACT_HPP_INCLUDED - -namespace Catch { - - struct CompactReporter : StreamingReporterBase { - - CompactReporter( ReporterConfig const& _config ) - : StreamingReporterBase( _config ) - {} - - virtual ~CompactReporter(); - - static std::string getDescription() { - return "Reports test results on a single line, suitable for IDEs"; - } - - virtual ReporterPreferences getPreferences() const { - ReporterPreferences prefs; - prefs.shouldRedirectStdOut = false; - return prefs; - } - - virtual void noMatchingTestCases( std::string const& spec ) { - stream << "No test cases matched '" << spec << "'" << std::endl; - } - - virtual void assertionStarting( AssertionInfo const& ) { - } - - virtual bool assertionEnded( AssertionStats const& _assertionStats ) { - AssertionResult const& result = _assertionStats.assertionResult; - - bool printInfoMessages = true; - - // Drop out if result was successful and we're not printing those - if( !m_config->includeSuccessfulResults() && result.isOk() ) { - if( result.getResultType() != ResultWas::Warning ) - return false; - printInfoMessages = false; - } - - AssertionPrinter printer( stream, _assertionStats, printInfoMessages ); - printer.print(); - - stream << std::endl; - return true; - } - - virtual void testRunEnded( TestRunStats const& _testRunStats ) { - printTotals( _testRunStats.totals ); - stream << "\n" << std::endl; - StreamingReporterBase::testRunEnded( _testRunStats ); - } - - private: - class AssertionPrinter { - void operator= ( AssertionPrinter const& ); - public: - AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages ) - : stream( _stream ) - , stats( _stats ) - , result( _stats.assertionResult ) - , messages( _stats.infoMessages ) - , itMessage( _stats.infoMessages.begin() ) - , printInfoMessages( _printInfoMessages ) - {} - - void print() { - printSourceInfo(); - - itMessage = messages.begin(); - - switch( result.getResultType() ) { - case ResultWas::Ok: - printResultType( Colour::ResultSuccess, passedString() ); - printOriginalExpression(); - printReconstructedExpression(); - if ( ! result.hasExpression() ) - printRemainingMessages( Colour::None ); - else - printRemainingMessages(); - break; - case ResultWas::ExpressionFailed: - if( result.isOk() ) - printResultType( Colour::ResultSuccess, failedString() + std::string( " - but was ok" ) ); - else - printResultType( Colour::Error, failedString() ); - printOriginalExpression(); - printReconstructedExpression(); - printRemainingMessages(); - break; - case ResultWas::ThrewException: - printResultType( Colour::Error, failedString() ); - printIssue( "unexpected exception with message:" ); - printMessage(); - printExpressionWas(); - printRemainingMessages(); - break; - case ResultWas::FatalErrorCondition: - printResultType( Colour::Error, failedString() ); - printIssue( "fatal error condition with message:" ); - printMessage(); - printExpressionWas(); - printRemainingMessages(); - break; - case ResultWas::DidntThrowException: - printResultType( Colour::Error, failedString() ); - printIssue( "expected exception, got none" ); - printExpressionWas(); - printRemainingMessages(); - break; - case ResultWas::Info: - printResultType( Colour::None, "info" ); - printMessage(); - printRemainingMessages(); - break; - case ResultWas::Warning: - printResultType( Colour::None, "warning" ); - printMessage(); - printRemainingMessages(); - break; - case ResultWas::ExplicitFailure: - printResultType( Colour::Error, failedString() ); - printIssue( "explicitly" ); - printRemainingMessages( Colour::None ); - break; - // These cases are here to prevent compiler warnings - case ResultWas::Unknown: - case ResultWas::FailureBit: - case ResultWas::Exception: - printResultType( Colour::Error, "** internal error **" ); - break; - } - } - - private: - // Colour::LightGrey - - static Colour::Code dimColour() { return Colour::FileName; } - -#ifdef CATCH_PLATFORM_MAC - static const char* failedString() { return "FAILED"; } - static const char* passedString() { return "PASSED"; } -#else - static const char* failedString() { return "failed"; } - static const char* passedString() { return "passed"; } -#endif - - void printSourceInfo() const { - Colour colourGuard( Colour::FileName ); - stream << result.getSourceInfo() << ":"; - } - - void printResultType( Colour::Code colour, std::string passOrFail ) const { - if( !passOrFail.empty() ) { - { - Colour colourGuard( colour ); - stream << " " << passOrFail; - } - stream << ":"; - } - } - - void printIssue( std::string issue ) const { - stream << " " << issue; - } - - void printExpressionWas() { - if( result.hasExpression() ) { - stream << ";"; - { - Colour colour( dimColour() ); - stream << " expression was:"; - } - printOriginalExpression(); - } - } - - void printOriginalExpression() const { - if( result.hasExpression() ) { - stream << " " << result.getExpression(); - } - } - - void printReconstructedExpression() const { - if( result.hasExpandedExpression() ) { - { - Colour colour( dimColour() ); - stream << " for: "; - } - stream << result.getExpandedExpression(); - } - } - - void printMessage() { - if ( itMessage != messages.end() ) { - stream << " '" << itMessage->message << "'"; - ++itMessage; - } - } - - void printRemainingMessages( Colour::Code colour = dimColour() ) { - if ( itMessage == messages.end() ) - return; - - // using messages.end() directly yields compilation error: - std::vector::const_iterator itEnd = messages.end(); - const std::size_t N = static_cast( std::distance( itMessage, itEnd ) ); - - { - Colour colourGuard( colour ); - stream << " with " << pluralise( N, "message" ) << ":"; - } - - for(; itMessage != itEnd; ) { - // If this assertion is a warning ignore any INFO messages - if( printInfoMessages || itMessage->type != ResultWas::Info ) { - stream << " '" << itMessage->message << "'"; - if ( ++itMessage != itEnd ) { - Colour colourGuard( dimColour() ); - stream << " and"; - } - } - } - } - - private: - std::ostream& stream; - AssertionStats const& stats; - AssertionResult const& result; - std::vector messages; - std::vector::const_iterator itMessage; - bool printInfoMessages; - }; - - // Colour, message variants: - // - white: No tests ran. - // - red: Failed [both/all] N test cases, failed [both/all] M assertions. - // - white: Passed [both/all] N test cases (no assertions). - // - red: Failed N tests cases, failed M assertions. - // - green: Passed [both/all] N tests cases with M assertions. - - std::string bothOrAll( std::size_t count ) const { - return count == 1 ? "" : count == 2 ? "both " : "all " ; - } - - void printTotals( const Totals& totals ) const { - if( totals.testCases.total() == 0 ) { - stream << "No tests ran."; - } - else if( totals.testCases.failed == totals.testCases.total() ) { - Colour colour( Colour::ResultError ); - const std::string qualify_assertions_failed = - totals.assertions.failed == totals.assertions.total() ? - bothOrAll( totals.assertions.failed ) : ""; - stream << - "Failed " << bothOrAll( totals.testCases.failed ) - << pluralise( totals.testCases.failed, "test case" ) << ", " - "failed " << qualify_assertions_failed << - pluralise( totals.assertions.failed, "assertion" ) << "."; - } - else if( totals.assertions.total() == 0 ) { - stream << - "Passed " << bothOrAll( totals.testCases.total() ) - << pluralise( totals.testCases.total(), "test case" ) - << " (no assertions)."; - } - else if( totals.assertions.failed ) { - Colour colour( Colour::ResultError ); - stream << - "Failed " << pluralise( totals.testCases.failed, "test case" ) << ", " - "failed " << pluralise( totals.assertions.failed, "assertion" ) << "."; - } - else { - Colour colour( Colour::ResultSuccess ); - stream << - "Passed " << bothOrAll( totals.testCases.passed ) - << pluralise( totals.testCases.passed, "test case" ) << - " with " << pluralise( totals.assertions.passed, "assertion" ) << "."; - } - } - }; - - INTERNAL_CATCH_REGISTER_REPORTER( "compact", CompactReporter ) - -} // end namespace Catch - -namespace Catch { - // These are all here to avoid warnings about not having any out of line - // virtual methods - NonCopyable::~NonCopyable() {} - IShared::~IShared() {} - IStream::~IStream() CATCH_NOEXCEPT {} - FileStream::~FileStream() CATCH_NOEXCEPT {} - CoutStream::~CoutStream() CATCH_NOEXCEPT {} - DebugOutStream::~DebugOutStream() CATCH_NOEXCEPT {} - StreamBufBase::~StreamBufBase() CATCH_NOEXCEPT {} - IContext::~IContext() {} - IResultCapture::~IResultCapture() {} - ITestCase::~ITestCase() {} - ITestCaseRegistry::~ITestCaseRegistry() {} - IRegistryHub::~IRegistryHub() {} - IMutableRegistryHub::~IMutableRegistryHub() {} - IExceptionTranslator::~IExceptionTranslator() {} - IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() {} - IReporter::~IReporter() {} - IReporterFactory::~IReporterFactory() {} - IReporterRegistry::~IReporterRegistry() {} - IStreamingReporter::~IStreamingReporter() {} - AssertionStats::~AssertionStats() {} - SectionStats::~SectionStats() {} - TestCaseStats::~TestCaseStats() {} - TestGroupStats::~TestGroupStats() {} - TestRunStats::~TestRunStats() {} - CumulativeReporterBase::SectionNode::~SectionNode() {} - CumulativeReporterBase::~CumulativeReporterBase() {} - - StreamingReporterBase::~StreamingReporterBase() {} - ConsoleReporter::~ConsoleReporter() {} - CompactReporter::~CompactReporter() {} - IRunner::~IRunner() {} - IMutableContext::~IMutableContext() {} - IConfig::~IConfig() {} - XmlReporter::~XmlReporter() {} - JunitReporter::~JunitReporter() {} - TestRegistry::~TestRegistry() {} - FreeFunctionTestCase::~FreeFunctionTestCase() {} - IGeneratorInfo::~IGeneratorInfo() {} - IGeneratorsForTest::~IGeneratorsForTest() {} - WildcardPattern::~WildcardPattern() {} - TestSpec::Pattern::~Pattern() {} - TestSpec::NamePattern::~NamePattern() {} - TestSpec::TagPattern::~TagPattern() {} - TestSpec::ExcludedPattern::~ExcludedPattern() {} - - Matchers::Impl::StdString::Equals::~Equals() {} - Matchers::Impl::StdString::Contains::~Contains() {} - Matchers::Impl::StdString::StartsWith::~StartsWith() {} - Matchers::Impl::StdString::EndsWith::~EndsWith() {} - - void Config::dummy() {} - - namespace TestCaseTracking { - ITracker::~ITracker() {} - TrackerBase::~TrackerBase() {} - SectionTracker::~SectionTracker() {} - IndexTracker::~IndexTracker() {} - } -} - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - -#endif - -#ifdef CATCH_CONFIG_MAIN -// #included from: internal/catch_default_main.hpp -#define TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED - -#ifndef __OBJC__ - -// Standard C/C++ main entry point -int main (int argc, char * argv[]) { - return Catch::Session().run( argc, argv ); -} - -#else // __OBJC__ - -// Objective-C entry point -int main (int argc, char * const argv[]) { -#if !CATCH_ARC_ENABLED - NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; -#endif - - Catch::registerTestMethods(); - int result = Catch::Session().run( argc, (char* const*)argv ); - -#if !CATCH_ARC_ENABLED - [pool drain]; -#endif - - return result; -} - -#endif // __OBJC__ - -#endif - -#ifdef CLARA_CONFIG_MAIN_NOT_DEFINED -# undef CLARA_CONFIG_MAIN -#endif - -////// - -// If this config identifier is defined then all CATCH macros are prefixed with CATCH_ -#ifdef CATCH_CONFIG_PREFIX_ALL - -#define CATCH_REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE" ) -#define CATCH_REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "CATCH_REQUIRE_FALSE" ) - -#define CATCH_REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "CATCH_REQUIRE_THROWS" ) -#define CATCH_REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THROWS_AS" ) -#define CATCH_REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "CATCH_REQUIRE_THROWS_WITH" ) -#define CATCH_REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_NOTHROW" ) - -#define CATCH_CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK" ) -#define CATCH_CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CATCH_CHECK_FALSE" ) -#define CATCH_CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_IF" ) -#define CATCH_CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_ELSE" ) -#define CATCH_CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CATCH_CHECK_NOFAIL" ) - -#define CATCH_CHECK_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THROWS" ) -#define CATCH_CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THROWS_AS" ) -#define CATCH_CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CATCH_CHECK_THROWS_WITH" ) -#define CATCH_CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_NOTHROW" ) - -#define CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THAT" ) -#define CATCH_REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THAT" ) - -#define CATCH_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" ) -#define CATCH_WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "CATCH_WARN", msg ) -#define CATCH_SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" ) -#define CATCH_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" ) -#define CATCH_SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" ) - -#ifdef CATCH_CONFIG_VARIADIC_MACROS - #define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ ) - #define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ ) - #define CATCH_METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ ) - #define CATCH_REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ ) - #define CATCH_SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ ) - #define CATCH_FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", __VA_ARGS__ ) - #define CATCH_SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", __VA_ARGS__ ) -#else - #define CATCH_TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description ) - #define CATCH_TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description ) - #define CATCH_METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description ) - #define CATCH_REGISTER_TEST_CASE( function, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( function, name, description ) - #define CATCH_SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description ) - #define CATCH_FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", msg ) - #define CATCH_SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", msg ) -#endif -#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" ) - -#define CATCH_REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType ) -#define CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) - -#define CATCH_GENERATE( expr) INTERNAL_CATCH_GENERATE( expr ) - -// "BDD-style" convenience wrappers -#ifdef CATCH_CONFIG_VARIADIC_MACROS -#define CATCH_SCENARIO( ... ) CATCH_TEST_CASE( "Scenario: " __VA_ARGS__ ) -#define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ ) -#else -#define CATCH_SCENARIO( name, tags ) CATCH_TEST_CASE( "Scenario: " name, tags ) -#define CATCH_SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags ) -#endif -#define CATCH_GIVEN( desc ) CATCH_SECTION( std::string( "Given: ") + desc, "" ) -#define CATCH_WHEN( desc ) CATCH_SECTION( std::string( " When: ") + desc, "" ) -#define CATCH_AND_WHEN( desc ) CATCH_SECTION( std::string( " And: ") + desc, "" ) -#define CATCH_THEN( desc ) CATCH_SECTION( std::string( " Then: ") + desc, "" ) -#define CATCH_AND_THEN( desc ) CATCH_SECTION( std::string( " And: ") + desc, "" ) - -// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required -#else - -#define REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "REQUIRE" ) -#define REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "REQUIRE_FALSE" ) - -#define REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "REQUIRE_THROWS" ) -#define REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "REQUIRE_THROWS_AS" ) -#define REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "REQUIRE_THROWS_WITH" ) -#define REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "REQUIRE_NOTHROW" ) - -#define CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK" ) -#define CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CHECK_FALSE" ) -#define CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_IF" ) -#define CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_ELSE" ) -#define CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CHECK_NOFAIL" ) - -#define CHECK_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CHECK_THROWS" ) -#define CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THROWS_AS" ) -#define CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CHECK_THROWS_WITH" ) -#define CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK_NOTHROW" ) - -#define CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THAT" ) -#define REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "REQUIRE_THAT" ) - -#define INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" ) -#define WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "WARN", msg ) -#define SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" ) -#define CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" ) -#define SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" ) - -#ifdef CATCH_CONFIG_VARIADIC_MACROS - #define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ ) - #define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ ) - #define METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ ) - #define REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ ) - #define SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ ) - #define FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", __VA_ARGS__ ) - #define SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", __VA_ARGS__ ) -#else - #define TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description ) - #define TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description ) - #define METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description ) - #define REGISTER_TEST_CASE( method, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( method, name, description ) - #define SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description ) - #define FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", msg ) - #define SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", msg ) -#endif -#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" ) - -#define REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType ) -#define REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) - -#define GENERATE( expr) INTERNAL_CATCH_GENERATE( expr ) - -#endif - -#define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) - -// "BDD-style" convenience wrappers -#ifdef CATCH_CONFIG_VARIADIC_MACROS -#define SCENARIO( ... ) TEST_CASE( "Scenario: " __VA_ARGS__ ) -#define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ ) -#else -#define SCENARIO( name, tags ) TEST_CASE( "Scenario: " name, tags ) -#define SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags ) -#endif -#define GIVEN( desc ) SECTION( std::string(" Given: ") + desc, "" ) -#define WHEN( desc ) SECTION( std::string(" When: ") + desc, "" ) -#define AND_WHEN( desc ) SECTION( std::string("And when: ") + desc, "" ) -#define THEN( desc ) SECTION( std::string(" Then: ") + desc, "" ) -#define AND_THEN( desc ) SECTION( std::string(" And: ") + desc, "" ) - -using Catch::Detail::Approx; - -#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED - diff --git a/resources/3rdparty/modernjson/test/src/fuzz.cpp b/resources/3rdparty/modernjson/test/src/fuzz.cpp deleted file mode 100755 index d8b7ef7cf..000000000 --- a/resources/3rdparty/modernjson/test/src/fuzz.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/* - __ _____ _____ _____ - __| | __| | | | JSON for Modern C++ (fuzz test support) -| | |__ | | | | | | version 2.0.0 -|_____|_____|_____|_|___| https://github.com/nlohmann/json - -Run "make fuzz_testing" and follow the instructions. - -Licensed under the MIT License . -*/ - -#include - -using json = nlohmann::json; - -int main() -{ -#ifdef __AFL_HAVE_MANUAL_CONTROL - while (__AFL_LOOP(1000)) - { -#endif - try - { - json j(std::cin); - std::cout << j << std::endl; - } - catch (std::invalid_argument& e) - { - std::cout << "Invalid argument in parsing" << e.what() << '\n'; - } -#ifdef __AFL_HAVE_MANUAL_CONTROL - } -#endif -} diff --git a/resources/3rdparty/modernjson/test/src/unit.cpp b/resources/3rdparty/modernjson/test/src/unit.cpp deleted file mode 100755 index 0a2bdd104..000000000 --- a/resources/3rdparty/modernjson/test/src/unit.cpp +++ /dev/null @@ -1,14107 +0,0 @@ -/* - __ _____ _____ _____ - __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.0 -|_____|_____|_____|_|___| https://github.com/nlohmann/json - -Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#define CATCH_CONFIG_MAIN -#include "catch.hpp" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define private public -#include "json.hpp" -using nlohmann::json; - -// disable float-equal warnings on GCC/clang -#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) - #pragma GCC diagnostic ignored "-Wfloat-equal" -#endif - -TEST_CASE("constructors") -{ - SECTION("create an empty value with a given type") - { - SECTION("null") - { - auto t = json::value_t::null; - json j(t); - CHECK(j.type() == t); - } - - SECTION("discarded") - { - auto t = json::value_t::discarded; - json j(t); - CHECK(j.type() == t); - } - - SECTION("object") - { - auto t = json::value_t::object; - json j(t); - CHECK(j.type() == t); - } - - SECTION("array") - { - auto t = json::value_t::array; - json j(t); - CHECK(j.type() == t); - } - - SECTION("boolean") - { - auto t = json::value_t::boolean; - json j(t); - CHECK(j.type() == t); - } - - SECTION("string") - { - auto t = json::value_t::string; - json j(t); - CHECK(j.type() == t); - } - - SECTION("number_integer") - { - auto t = json::value_t::number_integer; - json j(t); - CHECK(j.type() == t); - } - - SECTION("number_unsigned") - { - auto t = json::value_t::number_unsigned; - json j(t); - CHECK(j.type() == t); - } - - SECTION("number_float") - { - auto t = json::value_t::number_float; - json j(t); - CHECK(j.type() == t); - } - } - - SECTION("create a null object (implicitly)") - { - SECTION("no parameter") - { - json j{}; - CHECK(j.type() == json::value_t::null); - } - } - - SECTION("create a null object (explicitly)") - { - SECTION("parameter") - { - json j(nullptr); - CHECK(j.type() == json::value_t::null); - } - } - - SECTION("create an object (explicit)") - { - SECTION("empty object") - { - json::object_t o; - json j(o); - CHECK(j.type() == json::value_t::object); - } - - SECTION("filled object") - { - json::object_t o {{"a", json(1)}, {"b", json(1u)}, {"c", json(2.2)}, {"d", json(false)}, {"e", json("string")}, {"f", json()}}; - json j(o); - CHECK(j.type() == json::value_t::object); - } - } - - SECTION("create an object (implicit)") - { - // reference object - json::object_t o_reference {{"a", json(1)}, {"b", json(1u)}, {"c", json(2.2)}, {"d", json(false)}, {"e", json("string")}, {"f", json()}}; - json j_reference(o_reference); - - SECTION("std::map") - { - std::map o {{"a", json(1)}, {"b", json(1u)}, {"c", json(2.2)}, {"d", json(false)}, {"e", json("string")}, {"f", json()}}; - json j(o); - CHECK(j.type() == json::value_t::object); - CHECK(j == j_reference); - } - - SECTION("std::map") - { - std::map o {{"a", json(1)}, {"b", json(1u)}, {"c", json(2.2)}, {"d", json(false)}, {"e", json("string")}, {"f", json()}}; - json j(o); - CHECK(j.type() == json::value_t::object); - CHECK(j == j_reference); - } - - SECTION("std::multimap") - { - std::multimap o {{"a", json(1)}, {"b", json(1u)}, {"c", json(2.2)}, {"d", json(false)}, {"e", json("string")}, {"f", json()}}; - json j(o); - CHECK(j.type() == json::value_t::object); - CHECK(j == j_reference); - } - - SECTION("std::unordered_map") - { - std::unordered_map o {{"a", json(1)}, {"b", json(1u)}, {"c", json(2.2)}, {"d", json(false)}, {"e", json("string")}, {"f", json()}}; - json j(o); - CHECK(j.type() == json::value_t::object); - CHECK(j == j_reference); - } - - SECTION("std::unordered_multimap") - { - std::unordered_multimap o {{"a", json(1)}, {"b", json(1u)}, {"c", json(2.2)}, {"d", json(false)}, {"e", json("string")}, {"f", json()}}; - json j(o); - CHECK(j.type() == json::value_t::object); - CHECK(j == j_reference); - } - - SECTION("associative container literal") - { - json j({{"a", json(1)}, {"b", json(1u)}, {"c", json(2.2)}, {"d", json(false)}, {"e", json("string")}, {"f", json()}}); - CHECK(j.type() == json::value_t::object); - CHECK(j == j_reference); - } - } - - SECTION("create an array (explicit)") - { - SECTION("empty array") - { - json::array_t a; - json j(a); - CHECK(j.type() == json::value_t::array); - } - - SECTION("filled array") - { - json::array_t a {json(1), json(1u), json(2.2), json(false), json("string"), json()}; - json j(a); - CHECK(j.type() == json::value_t::array); - } - } - - SECTION("create an array (implicit)") - { - // reference array - json::array_t a_reference {json(1), json(1u), json(2.2), json(false), json("string"), json()}; - json j_reference(a_reference); - - SECTION("std::list") - { - std::list a {json(1), json(1u), json(2.2), json(false), json("string"), json()}; - json j(a); - CHECK(j.type() == json::value_t::array); - CHECK(j == j_reference); - } - - SECTION("std::forward_list") - { - std::forward_list a {json(1), json(1u), json(2.2), json(false), json("string"), json()}; - json j(a); - CHECK(j.type() == json::value_t::array); - CHECK(j == j_reference); - } - - SECTION("std::array") - { - std::array a {{json(1), json(1u), json(2.2), json(false), json("string"), json()}}; - json j(a); - CHECK(j.type() == json::value_t::array); - CHECK(j == j_reference); - } - - SECTION("std::vector") - { - std::vector a {json(1), json(1u), json(2.2), json(false), json("string"), json()}; - json j(a); - CHECK(j.type() == json::value_t::array); - CHECK(j == j_reference); - } - - SECTION("std::deque") - { - std::deque a {json(1), json(1u), json(2.2), json(false), json("string"), json()}; - json j(a); - CHECK(j.type() == json::value_t::array); - CHECK(j == j_reference); - } - - SECTION("std::set") - { - std::set a {json(1), json(1u), json(2.2), json(false), json("string"), json()}; - json j(a); - CHECK(j.type() == json::value_t::array); - // we cannot really check for equality here - } - - SECTION("std::unordered_set") - { - std::unordered_set a {json(1), json(1u), json(2.2), json(false), json("string"), json()}; - json j(a); - CHECK(j.type() == json::value_t::array); - // we cannot really check for equality here - } - - SECTION("sequence container literal") - { - json j({json(1), json(1u), json(2.2), json(false), json("string"), json()}); - CHECK(j.type() == json::value_t::array); - CHECK(j == j_reference); - } - } - - SECTION("create a string (explicit)") - { - SECTION("empty string") - { - json::string_t s; - json j(s); - CHECK(j.type() == json::value_t::string); - } - - SECTION("filled string") - { - json::string_t s {"Hello world"}; - json j(s); - CHECK(j.type() == json::value_t::string); - } - } - - SECTION("create a string (implicit)") - { - // reference string - json::string_t s_reference {"Hello world"}; - json j_reference(s_reference); - - SECTION("std::string") - { - std::string s {"Hello world"}; - json j(s); - CHECK(j.type() == json::value_t::string); - CHECK(j == j_reference); - } - - SECTION("char[]") - { - char s[] {"Hello world"}; - json j(s); - CHECK(j.type() == json::value_t::string); - CHECK(j == j_reference); - } - - SECTION("const char*") - { - const char* s {"Hello world"}; - json j(s); - CHECK(j.type() == json::value_t::string); - CHECK(j == j_reference); - } - - SECTION("string literal") - { - json j("Hello world"); - CHECK(j.type() == json::value_t::string); - CHECK(j == j_reference); - } - } - - SECTION("create a boolean (explicit)") - { - SECTION("empty boolean") - { - json::boolean_t b{}; - json j(b); - CHECK(j.type() == json::value_t::boolean); - } - - SECTION("filled boolean (true)") - { - json j(true); - CHECK(j.type() == json::value_t::boolean); - } - - SECTION("filled boolean (false)") - { - json j(false); - CHECK(j.type() == json::value_t::boolean); - } - } - - SECTION("create an integer number (explicit)") - { - SECTION("uninitialized value") - { - json::number_integer_t n{}; - json j(n); - CHECK(j.type() == json::value_t::number_integer); - } - - SECTION("initialized value") - { - json::number_integer_t n(42); - json j(n); - CHECK(j.type() == json::value_t::number_integer); - } - } - - SECTION("create an integer number (implicit)") - { - // reference objects - json::number_integer_t n_reference = 42; - json j_reference(n_reference); - json::number_unsigned_t n_unsigned_reference = 42; - json j_unsigned_reference(n_unsigned_reference); - - SECTION("short") - { - short n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("unsigned short") - { - unsigned short n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("int") - { - int n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("unsigned int") - { - unsigned int n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("long") - { - long n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("unsigned long") - { - unsigned long n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("long long") - { - long long n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("unsigned long long") - { - unsigned long long n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("int8_t") - { - int8_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("int16_t") - { - int16_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("int32_t") - { - int32_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("int64_t") - { - int64_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("int_fast8_t") - { - int_fast8_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("int_fast16_t") - { - int_fast16_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("int_fast32_t") - { - int_fast32_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("int_fast64_t") - { - int_fast64_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("int_least8_t") - { - int_least8_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("int_least16_t") - { - int_least16_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("int_least32_t") - { - int_least32_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("int_least64_t") - { - int_least64_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("uint8_t") - { - uint8_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("uint16_t") - { - uint16_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("uint32_t") - { - uint32_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("uint64_t") - { - uint64_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("uint_fast8_t") - { - uint_fast8_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("uint_fast16_t") - { - uint_fast16_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("uint_fast32_t") - { - uint_fast32_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("uint_fast64_t") - { - uint_fast64_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("uint_least8_t") - { - uint_least8_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("uint_least16_t") - { - uint_least16_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("uint_least32_t") - { - uint_least32_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("uint_least64_t") - { - uint_least64_t n = 42; - json j(n); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("integer literal without suffix") - { - json j(42); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("integer literal with u suffix") - { - json j(42u); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("integer literal with l suffix") - { - json j(42l); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("integer literal with ul suffix") - { - json j(42ul); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - - SECTION("integer literal with ll suffix") - { - json j(42ll); - CHECK(j.type() == json::value_t::number_integer); - CHECK(j == j_reference); - } - - SECTION("integer literal with ull suffix") - { - json j(42ull); - CHECK(j.type() == json::value_t::number_unsigned); - CHECK(j == j_unsigned_reference); - } - } - - SECTION("create a floating-point number (explicit)") - { - SECTION("uninitialized value") - { - json::number_float_t n{}; - json j(n); - CHECK(j.type() == json::value_t::number_float); - } - - SECTION("initialized value") - { - json::number_float_t n(42.23); - json j(n); - CHECK(j.type() == json::value_t::number_float); - } - } - - SECTION("create a floating-point number (implicit)") - { - // reference object - json::number_float_t n_reference = 42.23; - json j_reference(n_reference); - - SECTION("float") - { - float n = 42.23; - json j(n); - CHECK(j.type() == json::value_t::number_float); - CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float)); - } - - SECTION("double") - { - double n = 42.23; - json j(n); - CHECK(j.type() == json::value_t::number_float); - CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float)); - } - - SECTION("long double") - { - long double n = 42.23; - json j(n); - CHECK(j.type() == json::value_t::number_float); - CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float)); - } - - SECTION("floating-point literal without suffix") - { - json j(42.23); - CHECK(j.type() == json::value_t::number_float); - CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float)); - } - - SECTION("integer literal with f suffix") - { - json j(42.23f); - CHECK(j.type() == json::value_t::number_float); - CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float)); - } - - SECTION("integer literal with l suffix") - { - json j(42.23l); - CHECK(j.type() == json::value_t::number_float); - CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float)); - } - } - - SECTION("create a container (array or object) from an initializer list") - { - SECTION("empty initializer list") - { - SECTION("explicit") - { - std::initializer_list l; - json j(l); - CHECK(j.type() == json::value_t::object); - } - - SECTION("implicit") - { - json j {}; - CHECK(j.type() == json::value_t::null); - } - } - - SECTION("one element") - { - SECTION("array") - { - SECTION("explicit") - { - std::initializer_list l = {json(json::array_t())}; - json j(l); - CHECK(j.type() == json::value_t::array); - } - - SECTION("implicit") - { - json j {json::array_t()}; - CHECK(j.type() == json::value_t::array); - } - } - - SECTION("object") - { - SECTION("explicit") - { - std::initializer_list l = {json(json::object_t())}; - json j(l); - CHECK(j.type() == json::value_t::array); - } - - SECTION("implicit") - { - json j {json::object_t()}; - CHECK(j.type() == json::value_t::array); - } - } - - SECTION("string") - { - SECTION("explicit") - { - std::initializer_list l = {json("Hello world")}; - json j(l); - CHECK(j.type() == json::value_t::array); - } - - SECTION("implicit") - { - json j {"Hello world"}; - CHECK(j.type() == json::value_t::array); - } - } - - SECTION("boolean") - { - SECTION("explicit") - { - std::initializer_list l = {json(true)}; - json j(l); - CHECK(j.type() == json::value_t::array); - } - - SECTION("implicit") - { - json j {true}; - CHECK(j.type() == json::value_t::array); - } - } - - SECTION("number (integer)") - { - SECTION("explicit") - { - std::initializer_list l = {json(1)}; - json j(l); - CHECK(j.type() == json::value_t::array); - } - - SECTION("implicit") - { - json j {1}; - CHECK(j.type() == json::value_t::array); - } - } - - SECTION("number (unsigned)") - { - SECTION("explicit") - { - std::initializer_list l = {json(1u)}; - json j(l); - CHECK(j.type() == json::value_t::array); - } - - SECTION("implicit") - { - json j {1u}; - CHECK(j.type() == json::value_t::array); - } - } - - SECTION("number (floating-point)") - { - SECTION("explicit") - { - std::initializer_list l = {json(42.23)}; - json j(l); - CHECK(j.type() == json::value_t::array); - } - - SECTION("implicit") - { - json j {42.23}; - CHECK(j.type() == json::value_t::array); - } - } - } - - SECTION("more elements") - { - SECTION("explicit") - { - std::initializer_list l = {1, 1u, 42.23, true, nullptr, json::object_t(), json::array_t()}; - json j(l); - CHECK(j.type() == json::value_t::array); - } - - SECTION("implicit") - { - json j {1, 1u, 42.23, true, nullptr, json::object_t(), json::array_t()}; - CHECK(j.type() == json::value_t::array); - } - } - - SECTION("implicit type deduction") - { - SECTION("object") - { - json j { {"one", 1}, {"two", 1u}, {"three", 2.2}, {"four", false} }; - CHECK(j.type() == json::value_t::object); - } - - SECTION("array") - { - json j { {"one", 1}, {"two", 1u}, {"three", 2.2}, {"four", false} , 13 }; - CHECK(j.type() == json::value_t::array); - } - } - - SECTION("explicit type deduction") - { - SECTION("empty object") - { - json j = json::object(); - CHECK(j.type() == json::value_t::object); - } - - SECTION("object") - { - json j = json::object({ {"one", 1}, {"two", 1u}, {"three", 2.2}, {"four", false} }); - CHECK(j.type() == json::value_t::object); - } - - SECTION("object with error") - { - CHECK_THROWS_AS(json::object({ {"one", 1}, {"two", 1u}, {"three", 2.2}, {"four", false}, 13 }), - std::logic_error); - CHECK_THROWS_WITH(json::object({ {"one", 1}, {"two", 1u}, {"three", 2.2}, {"four", false}, 13 }), - "cannot create object from initializer list"); - } - - SECTION("empty array") - { - json j = json::array(); - CHECK(j.type() == json::value_t::array); - } - - SECTION("array") - { - json j = json::array({ {"one", 1}, {"two", 1u}, {"three", 2.2}, {"four", false} }); - CHECK(j.type() == json::value_t::array); - } - } - } - - SECTION("create an array of n copies of a given value") - { - json v = {1, "foo", 34.23, {1, 2, 3}, {{"A", 1}, {"B", 2u}}}; - json arr(3, v); - CHECK(arr.size() == 3); - for (auto& x : arr) - { - CHECK(x == v); - } - } - - SECTION("create a JSON container from an iterator range") - { - SECTION("object") - { - SECTION("json(begin(), end())") - { - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}}; - json j_new(jobject.begin(), jobject.end()); - CHECK(j_new == jobject); - } - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}}; - json j_new(jobject.cbegin(), jobject.cend()); - CHECK(j_new == jobject); - } - } - - SECTION("json(begin(), begin())") - { - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}}; - json j_new(jobject.begin(), jobject.begin()); - CHECK(j_new == json::object()); - } - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}}; - json j_new(jobject.cbegin(), jobject.cbegin()); - CHECK(j_new == json::object()); - } - } - - SECTION("construct from subrange") - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}, {"d", false}, {"e", true}}; - json j_new(jobject.find("b"), jobject.find("e")); - CHECK(j_new == json({{"b", 1}, {"c", 17u}, {"d", false}})); - } - - SECTION("incompatible iterators") - { - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}, {"d", false}, {"e", true}}; - json jobject2 = {{"a", "a"}, {"b", 1}, {"c", 17u}}; - CHECK_THROWS_AS(json(jobject.begin(), jobject2.end()), std::domain_error); - CHECK_THROWS_AS(json(jobject2.begin(), jobject.end()), std::domain_error); - CHECK_THROWS_WITH(json(jobject.begin(), jobject2.end()), "iterators are not compatible"); - CHECK_THROWS_WITH(json(jobject2.begin(), jobject.end()), "iterators are not compatible"); - } - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}, {"d", false}, {"e", true}}; - json jobject2 = {{"a", "a"}, {"b", 1}, {"c", 17u}}; - CHECK_THROWS_AS(json(jobject.cbegin(), jobject2.cend()), std::domain_error); - CHECK_THROWS_AS(json(jobject2.cbegin(), jobject.cend()), std::domain_error); - CHECK_THROWS_WITH(json(jobject.cbegin(), jobject2.cend()), "iterators are not compatible"); - CHECK_THROWS_WITH(json(jobject2.cbegin(), jobject.cend()), "iterators are not compatible"); - } - } - } - - SECTION("array") - { - SECTION("json(begin(), end())") - { - { - json jarray = {1, 2, 3, 4, 5}; - json j_new(jarray.begin(), jarray.end()); - CHECK(j_new == jarray); - } - { - json jarray = {1, 2, 3, 4, 5}; - json j_new(jarray.cbegin(), jarray.cend()); - CHECK(j_new == jarray); - } - } - - SECTION("json(begin(), begin())") - { - { - json jarray = {1, 2, 3, 4, 5}; - json j_new(jarray.begin(), jarray.begin()); - CHECK(j_new == json::array()); - } - { - json jarray = {1, 2, 3, 4, 5}; - json j_new(jarray.cbegin(), jarray.cbegin()); - CHECK(j_new == json::array()); - } - } - - SECTION("construct from subrange") - { - { - json jarray = {1, 2, 3, 4, 5}; - json j_new(jarray.begin() + 1, jarray.begin() + 3); - CHECK(j_new == json({2, 3})); - } - { - json jarray = {1, 2, 3, 4, 5}; - json j_new(jarray.cbegin() + 1, jarray.cbegin() + 3); - CHECK(j_new == json({2, 3})); - } - } - - SECTION("incompatible iterators") - { - { - json jarray = {1, 2, 3, 4}; - json jarray2 = {2, 3, 4, 5}; - CHECK_THROWS_AS(json(jarray.begin(), jarray2.end()), std::domain_error); - CHECK_THROWS_AS(json(jarray2.begin(), jarray.end()), std::domain_error); - CHECK_THROWS_WITH(json(jarray.begin(), jarray2.end()), "iterators are not compatible"); - CHECK_THROWS_WITH(json(jarray2.begin(), jarray.end()), "iterators are not compatible"); - } - { - json jarray = {1, 2, 3, 4}; - json jarray2 = {2, 3, 4, 5}; - CHECK_THROWS_AS(json(jarray.cbegin(), jarray2.cend()), std::domain_error); - CHECK_THROWS_AS(json(jarray2.cbegin(), jarray.cend()), std::domain_error); - CHECK_THROWS_WITH(json(jarray.cbegin(), jarray2.cend()), "iterators are not compatible"); - CHECK_THROWS_WITH(json(jarray2.cbegin(), jarray.cend()), "iterators are not compatible"); - } - } - } - - SECTION("other values") - { - SECTION("construct with two valid iterators") - { - SECTION("null") - { - { - json j; - CHECK_THROWS_AS(json(j.begin(), j.end()), std::domain_error); - CHECK_THROWS_WITH(json(j.begin(), j.end()), "cannot use construct with iterators from null"); - } - { - json j; - CHECK_THROWS_AS(json(j.cbegin(), j.cend()), std::domain_error); - CHECK_THROWS_WITH(json(j.cbegin(), j.cend()), "cannot use construct with iterators from null"); - } - } - - SECTION("string") - { - { - json j = "foo"; - json j_new(j.begin(), j.end()); - CHECK(j == j_new); - } - { - json j = "bar"; - json j_new(j.cbegin(), j.cend()); - CHECK(j == j_new); - } - } - - SECTION("number (boolean)") - { - { - json j = false; - json j_new(j.begin(), j.end()); - CHECK(j == j_new); - } - { - json j = true; - json j_new(j.cbegin(), j.cend()); - CHECK(j == j_new); - } - } - - SECTION("number (integer)") - { - { - json j = 17; - json j_new(j.begin(), j.end()); - CHECK(j == j_new); - } - { - json j = 17; - json j_new(j.cbegin(), j.cend()); - CHECK(j == j_new); - } - } - - SECTION("number (unsigned)") - { - { - json j = 17u; - json j_new(j.begin(), j.end()); - CHECK(j == j_new); - } - { - json j = 17u; - json j_new(j.cbegin(), j.cend()); - CHECK(j == j_new); - } - } - - SECTION("number (floating point)") - { - { - json j = 23.42; - json j_new(j.begin(), j.end()); - CHECK(j == j_new); - } - { - json j = 23.42; - json j_new(j.cbegin(), j.cend()); - CHECK(j == j_new); - } - } - } - - SECTION("construct with two invalid iterators") - { - SECTION("string") - { - { - json j = "foo"; - CHECK_THROWS_AS(json(j.end(), j.end()), std::out_of_range); - CHECK_THROWS_AS(json(j.begin(), j.begin()), std::out_of_range); - CHECK_THROWS_WITH(json(j.end(), j.end()), "iterators out of range"); - CHECK_THROWS_WITH(json(j.begin(), j.begin()), "iterators out of range"); - } - { - json j = "bar"; - CHECK_THROWS_AS(json(j.cend(), j.cend()), std::out_of_range); - CHECK_THROWS_AS(json(j.cbegin(), j.cbegin()), std::out_of_range); - CHECK_THROWS_WITH(json(j.cend(), j.cend()), "iterators out of range"); - CHECK_THROWS_WITH(json(j.cbegin(), j.cbegin()), "iterators out of range"); - } - } - - SECTION("number (boolean)") - { - { - json j = false; - CHECK_THROWS_AS(json(j.end(), j.end()), std::out_of_range); - CHECK_THROWS_AS(json(j.begin(), j.begin()), std::out_of_range); - CHECK_THROWS_WITH(json(j.end(), j.end()), "iterators out of range"); - CHECK_THROWS_WITH(json(j.begin(), j.begin()), "iterators out of range"); - } - { - json j = true; - CHECK_THROWS_AS(json(j.cend(), j.cend()), std::out_of_range); - CHECK_THROWS_AS(json(j.cbegin(), j.cbegin()), std::out_of_range); - CHECK_THROWS_WITH(json(j.cend(), j.cend()), "iterators out of range"); - CHECK_THROWS_WITH(json(j.cbegin(), j.cbegin()), "iterators out of range"); - } - } - - SECTION("number (integer)") - { - { - json j = 17; - CHECK_THROWS_AS(json(j.end(), j.end()), std::out_of_range); - CHECK_THROWS_AS(json(j.begin(), j.begin()), std::out_of_range); - CHECK_THROWS_WITH(json(j.end(), j.end()), "iterators out of range"); - CHECK_THROWS_WITH(json(j.begin(), j.begin()), "iterators out of range"); - } - { - json j = 17; - CHECK_THROWS_AS(json(j.cend(), j.cend()), std::out_of_range); - CHECK_THROWS_AS(json(j.cbegin(), j.cbegin()), std::out_of_range); - CHECK_THROWS_WITH(json(j.cend(), j.cend()), "iterators out of range"); - CHECK_THROWS_WITH(json(j.cbegin(), j.cbegin()), "iterators out of range"); - } - } - - SECTION("number (integer)") - { - { - json j = 17u; - CHECK_THROWS_AS(json(j.end(), j.end()), std::out_of_range); - CHECK_THROWS_AS(json(j.begin(), j.begin()), std::out_of_range); - CHECK_THROWS_WITH(json(j.end(), j.end()), "iterators out of range"); - CHECK_THROWS_WITH(json(j.begin(), j.begin()), "iterators out of range"); - } - { - json j = 17u; - CHECK_THROWS_AS(json(j.cend(), j.cend()), std::out_of_range); - CHECK_THROWS_AS(json(j.cbegin(), j.cbegin()), std::out_of_range); - CHECK_THROWS_WITH(json(j.cend(), j.cend()), "iterators out of range"); - CHECK_THROWS_WITH(json(j.cbegin(), j.cbegin()), "iterators out of range"); - } - } - - SECTION("number (floating point)") - { - { - json j = 23.42; - CHECK_THROWS_AS(json(j.end(), j.end()), std::out_of_range); - CHECK_THROWS_AS(json(j.begin(), j.begin()), std::out_of_range); - CHECK_THROWS_WITH(json(j.end(), j.end()), "iterators out of range"); - CHECK_THROWS_WITH(json(j.begin(), j.begin()), "iterators out of range"); - } - { - json j = 23.42; - CHECK_THROWS_AS(json(j.cend(), j.cend()), std::out_of_range); - CHECK_THROWS_AS(json(j.cbegin(), j.cbegin()), std::out_of_range); - CHECK_THROWS_WITH(json(j.cend(), j.cend()), "iterators out of range"); - CHECK_THROWS_WITH(json(j.cbegin(), j.cbegin()), "iterators out of range"); - } - } - } - } - } - - SECTION("create a JSON value from an input stream") - { - SECTION("sts::stringstream") - { - std::stringstream ss; - ss << "[\"foo\",1,2,3,false,{\"one\":1}]"; - json j(ss); - CHECK(j == json({"foo", 1, 2, 3, false, {{"one", 1}}})); - } - - SECTION("with callback function") - { - std::stringstream ss; - ss << "[\"foo\",1,2,3,false,{\"one\":1}]"; - json j(ss, [](int, json::parse_event_t, const json & val) - { - // filter all number(2) elements - if (val == json(2)) - { - return false; - } - else - { - return true; - } - }); - CHECK(j == json({"foo", 1, 3, false, {{"one", 1}}})); - } - - SECTION("std::ifstream") - { - std::ifstream f("test/data/json_tests/pass1.json"); - json j(f); - } - } -} - -TEST_CASE("other constructors and destructor") -{ - SECTION("copy constructor") - { - SECTION("object") - { - json j {{"foo", 1}, {"bar", false}}; - json k(j); - CHECK(j == k); - } - - SECTION("array") - { - json j {"foo", 1, 42.23, false}; - json k(j); - CHECK(j == k); - } - - SECTION("null") - { - json j(nullptr); - json k(j); - CHECK(j == k); - } - - SECTION("boolean") - { - json j(true); - json k(j); - CHECK(j == k); - } - - SECTION("string") - { - json j("Hello world"); - json k(j); - CHECK(j == k); - } - - SECTION("number (integer)") - { - json j(42); - json k(j); - CHECK(j == k); - } - - SECTION("number (unsigned)") - { - json j(42u); - json k(j); - CHECK(j == k); - } - - SECTION("number (floating-point)") - { - json j(42.23); - json k(j); - CHECK(j == k); - } - } - - SECTION("move constructor") - { - json j {{"foo", "bar"}, {"baz", {1, 2, 3, 4}}, {"a", 42u}, {"b", 42.23}, {"c", nullptr}}; - CHECK(j.type() == json::value_t::object); - json k(std::move(j)); - CHECK(k.type() == json::value_t::object); - CHECK(j.type() == json::value_t::null); - } - - SECTION("copy assignment") - { - SECTION("object") - { - json j {{"foo", 1}, {"bar", false}}; - json k; - k = j; - CHECK(j == k); - } - - SECTION("array") - { - json j {"foo", 1, 42.23, false}; - json k; - k = j; - CHECK(j == k); - } - - SECTION("null") - { - json j(nullptr); - json k; - k = j; - CHECK(j == k); - } - - SECTION("boolean") - { - json j(true); - json k; - k = j; - CHECK(j == k); - } - - SECTION("string") - { - json j("Hello world"); - json k; - k = j; - CHECK(j == k); - } - - SECTION("number (integer)") - { - json j(42); - json k; - k = j; - CHECK(j == k); - } - - SECTION("number (unsigned)") - { - json j(42u); - json k; - k = j; - CHECK(j == k); - } - - SECTION("number (floating-point)") - { - json j(42.23); - json k; - k = j; - CHECK(j == k); - } - } - - SECTION("destructor") - { - SECTION("object") - { - auto j = new json {{"foo", 1}, {"bar", false}}; - delete j; - } - - SECTION("array") - { - auto j = new json {"foo", 1, 1u, false, 23.42}; - delete j; - } - - SECTION("string") - { - auto j = new json("Hello world"); - delete j; - } - } -} - -TEST_CASE("object inspection") -{ - SECTION("convenience type checker") - { - SECTION("object") - { - json j {{"foo", 1}, {"bar", false}}; - CHECK(not j.is_null()); - CHECK(not j.is_boolean()); - CHECK(not j.is_number()); - CHECK(not j.is_number_integer()); - CHECK(not j.is_number_unsigned()); - CHECK(not j.is_number_float()); - CHECK(j.is_object()); - CHECK(not j.is_array()); - CHECK(not j.is_string()); - CHECK(not j.is_discarded()); - CHECK(not j.is_primitive()); - CHECK(j.is_structured()); - } - - SECTION("array") - { - json j {"foo", 1, 1u, 42.23, false}; - CHECK(not j.is_null()); - CHECK(not j.is_boolean()); - CHECK(not j.is_number()); - CHECK(not j.is_number_integer()); - CHECK(not j.is_number_unsigned()); - CHECK(not j.is_number_float()); - CHECK(not j.is_object()); - CHECK(j.is_array()); - CHECK(not j.is_string()); - CHECK(not j.is_discarded()); - CHECK(not j.is_primitive()); - CHECK(j.is_structured()); - } - - SECTION("null") - { - json j(nullptr); - CHECK(j.is_null()); - CHECK(not j.is_boolean()); - CHECK(not j.is_number()); - CHECK(not j.is_number_integer()); - CHECK(not j.is_number_unsigned()); - CHECK(not j.is_number_float()); - CHECK(not j.is_object()); - CHECK(not j.is_array()); - CHECK(not j.is_string()); - CHECK(not j.is_discarded()); - CHECK(j.is_primitive()); - CHECK(not j.is_structured()); - } - - SECTION("boolean") - { - json j(true); - CHECK(not j.is_null()); - CHECK(j.is_boolean()); - CHECK(not j.is_number()); - CHECK(not j.is_number_integer()); - CHECK(not j.is_number_unsigned()); - CHECK(not j.is_number_float()); - CHECK(not j.is_object()); - CHECK(not j.is_array()); - CHECK(not j.is_string()); - CHECK(not j.is_discarded()); - CHECK(j.is_primitive()); - CHECK(not j.is_structured()); - } - - SECTION("string") - { - json j("Hello world"); - CHECK(not j.is_null()); - CHECK(not j.is_boolean()); - CHECK(not j.is_number()); - CHECK(not j.is_number_integer()); - CHECK(not j.is_number_unsigned()); - CHECK(not j.is_number_float()); - CHECK(not j.is_object()); - CHECK(not j.is_array()); - CHECK(j.is_string()); - CHECK(not j.is_discarded()); - CHECK(j.is_primitive()); - CHECK(not j.is_structured()); - } - - SECTION("number (integer)") - { - json j(42); - CHECK(not j.is_null()); - CHECK(not j.is_boolean()); - CHECK(j.is_number()); - CHECK(j.is_number_integer()); - CHECK(not j.is_number_unsigned()); - CHECK(not j.is_number_float()); - CHECK(not j.is_object()); - CHECK(not j.is_array()); - CHECK(not j.is_string()); - CHECK(not j.is_discarded()); - CHECK(j.is_primitive()); - CHECK(not j.is_structured()); - } - - SECTION("number (unsigned)") - { - json j(42u); - CHECK(not j.is_null()); - CHECK(not j.is_boolean()); - CHECK(j.is_number()); - CHECK(j.is_number_integer()); - CHECK(j.is_number_unsigned()); - CHECK(not j.is_number_float()); - CHECK(not j.is_object()); - CHECK(not j.is_array()); - CHECK(not j.is_string()); - CHECK(not j.is_discarded()); - CHECK(j.is_primitive()); - CHECK(not j.is_structured()); - } - - SECTION("number (floating-point)") - { - json j(42.23); - CHECK(not j.is_null()); - CHECK(not j.is_boolean()); - CHECK(j.is_number()); - CHECK(not j.is_number_integer()); - CHECK(not j.is_number_unsigned()); - CHECK(j.is_number_float()); - CHECK(not j.is_object()); - CHECK(not j.is_array()); - CHECK(not j.is_string()); - CHECK(not j.is_discarded()); - CHECK(j.is_primitive()); - CHECK(not j.is_structured()); - } - - SECTION("discarded") - { - json j(json::value_t::discarded); - CHECK(not j.is_null()); - CHECK(not j.is_boolean()); - CHECK(not j.is_number()); - CHECK(not j.is_number_integer()); - CHECK(not j.is_number_unsigned()); - CHECK(not j.is_number_float()); - CHECK(not j.is_object()); - CHECK(not j.is_array()); - CHECK(not j.is_string()); - CHECK(j.is_discarded()); - CHECK(not j.is_primitive()); - CHECK(not j.is_structured()); - } - } - - SECTION("serialization") - { - json j {{"object", json::object()}, {"array", {1, 2, 3, 4}}, {"number", 42}, {"boolean", false}, {"null", nullptr}, {"string", "Hello world"} }; - - SECTION("no indent / indent=-1") - { - CHECK(j.dump() == - "{\"array\":[1,2,3,4],\"boolean\":false,\"null\":null,\"number\":42,\"object\":{},\"string\":\"Hello world\"}"); - - CHECK(j.dump() == j.dump(-1)); - } - - SECTION("indent=0") - { - CHECK(j.dump(0) == - "{\n\"array\": [\n1,\n2,\n3,\n4\n],\n\"boolean\": false,\n\"null\": null,\n\"number\": 42,\n\"object\": {},\n\"string\": \"Hello world\"\n}"); - } - - SECTION("indent=4") - { - CHECK(j.dump(4) == - "{\n \"array\": [\n 1,\n 2,\n 3,\n 4\n ],\n \"boolean\": false,\n \"null\": null,\n \"number\": 42,\n \"object\": {},\n \"string\": \"Hello world\"\n}"); - } - - SECTION("dump and floating-point numbers") - { - auto s = json(42.23).dump(); - CHECK(s.find("42.23") != std::string::npos); - } - - SECTION("dump and small floating-point numbers") - { - auto s = json(1.23456e-78).dump(); - CHECK(s.find("1.23456e-78") != std::string::npos); - } - - SECTION("dump and non-ASCII characters") - { - CHECK(json("ä").dump() == "\"ä\""); - CHECK(json("Ö").dump() == "\"Ö\""); - CHECK(json("❤️").dump() == "\"❤️\""); - } - - SECTION("serialization of discarded element") - { - json j_discarded(json::value_t::discarded); - CHECK(j_discarded.dump() == ""); - } - } - - SECTION("return the type of the object (explicit)") - { - SECTION("null") - { - json j = nullptr; - CHECK(j.type() == json::value_t::null); - } - - SECTION("object") - { - json j = {{"foo", "bar"}}; - CHECK(j.type() == json::value_t::object); - } - - SECTION("array") - { - json j = {1, 2, 3, 4}; - CHECK(j.type() == json::value_t::array); - } - - SECTION("boolean") - { - json j = true; - CHECK(j.type() == json::value_t::boolean); - } - - SECTION("string") - { - json j = "Hello world"; - CHECK(j.type() == json::value_t::string); - } - - SECTION("number (integer)") - { - json j = 23; - CHECK(j.type() == json::value_t::number_integer); - } - - SECTION("number (unsigned)") - { - json j = 23u; - CHECK(j.type() == json::value_t::number_unsigned); - } - - SECTION("number (floating-point)") - { - json j = 42.23; - CHECK(j.type() == json::value_t::number_float); - } - } - - SECTION("return the type of the object (implicit)") - { - SECTION("null") - { - json j = nullptr; - json::value_t t = j; - CHECK(t == j.type()); - } - - SECTION("object") - { - json j = {{"foo", "bar"}}; - json::value_t t = j; - CHECK(t == j.type()); - } - - SECTION("array") - { - json j = {1, 2, 3, 4}; - json::value_t t = j; - CHECK(t == j.type()); - } - - SECTION("boolean") - { - json j = true; - json::value_t t = j; - CHECK(t == j.type()); - } - - SECTION("string") - { - json j = "Hello world"; - json::value_t t = j; - CHECK(t == j.type()); - } - - SECTION("number (integer)") - { - json j = 23; - json::value_t t = j; - CHECK(t == j.type()); - } - - SECTION("number (unsigned)") - { - json j = 23u; - json::value_t t = j; - CHECK(t == j.type()); - } - - SECTION("number (floating-point)") - { - json j = 42.23; - json::value_t t = j; - CHECK(t == j.type()); - } - } -} - -TEST_CASE("value conversion") -{ - SECTION("get an object (explicit)") - { - json::object_t o_reference = {{"object", json::object()}, {"array", {1, 2, 3, 4}}, {"number", 42}, {"boolean", false}, {"null", nullptr}, {"string", "Hello world"} }; - json j(o_reference); - - SECTION("json::object_t") - { - json::object_t o = j.get(); - CHECK(json(o) == j); - } - - SECTION("std::map") - { - std::map o = j.get>(); - CHECK(json(o) == j); - } - - SECTION("std::multimap") - { - std::multimap o = j.get>(); - CHECK(json(o) == j); - } - - SECTION("std::unordered_map") - { - std::unordered_map o = j.get>(); - CHECK(json(o) == j); - } - - SECTION("std::unordered_multimap") - { - std::unordered_multimap o = - j.get>(); - CHECK(json(o) == j); - } - - SECTION("exception in case of a non-object type") - { - CHECK_THROWS_AS(json(json::value_t::null).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::array).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::string).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::boolean).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::number_integer).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::number_unsigned).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::number_float).get(), std::logic_error); - - CHECK_THROWS_WITH(json(json::value_t::null).get(), - "type must be object, but is null"); - CHECK_THROWS_WITH(json(json::value_t::array).get(), - "type must be object, but is array"); - CHECK_THROWS_WITH(json(json::value_t::string).get(), - "type must be object, but is string"); - CHECK_THROWS_WITH(json(json::value_t::boolean).get(), - "type must be object, but is boolean"); - CHECK_THROWS_WITH(json(json::value_t::number_integer).get(), - "type must be object, but is number"); - CHECK_THROWS_WITH(json(json::value_t::number_unsigned).get(), - "type must be object, but is number"); - CHECK_THROWS_WITH(json(json::value_t::number_float).get(), - "type must be object, but is number"); - } - } - - SECTION("get an object (implicit)") - { - json::object_t o_reference = {{"object", json::object()}, {"array", {1, 2, 3, 4}}, {"number", 42}, {"boolean", false}, {"null", nullptr}, {"string", "Hello world"} }; - json j(o_reference); - - SECTION("json::object_t") - { - json::object_t o = j; - CHECK(json(o) == j); - } - - SECTION("std::map") - { - std::map o = j; - CHECK(json(o) == j); - } - - SECTION("std::multimap") - { - std::multimap o = j; - CHECK(json(o) == j); - } - - SECTION("std::unordered_map") - { - std::unordered_map o = j; - CHECK(json(o) == j); - } - - SECTION("std::unordered_multimap") - { - std::unordered_multimap o = j; - CHECK(json(o) == j); - } - } - - SECTION("get an array (explicit)") - { - json::array_t a_reference {json(1), json(1u), json(2.2), json(false), json("string"), json()}; - json j(a_reference); - - SECTION("json::array_t") - { - json::array_t a = j.get(); - CHECK(json(a) == j); - } - - SECTION("std::list") - { - std::list a = j.get>(); - CHECK(json(a) == j); - } - - SECTION("std::forward_list") - { - std::forward_list a = j.get>(); - CHECK(json(a) == j); - } - - SECTION("std::vector") - { - std::vector a = j.get>(); - CHECK(json(a) == j); - } - - SECTION("std::deque") - { - std::deque a = j.get>(); - CHECK(json(a) == j); - } - - SECTION("exception in case of a non-array type") - { - CHECK_THROWS_AS(json(json::value_t::null).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::object).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::string).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::boolean).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::number_integer).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::number_unsigned).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::number_float).get(), std::logic_error); - - CHECK_THROWS_WITH(json(json::value_t::null).get(), - "type must be array, but is null"); - CHECK_THROWS_WITH(json(json::value_t::object).get(), - "type must be array, but is object"); - CHECK_THROWS_WITH(json(json::value_t::string).get(), - "type must be array, but is string"); - CHECK_THROWS_WITH(json(json::value_t::boolean).get(), - "type must be array, but is boolean"); - CHECK_THROWS_WITH(json(json::value_t::number_integer).get(), - "type must be array, but is number"); - CHECK_THROWS_WITH(json(json::value_t::number_unsigned).get(), - "type must be array, but is number"); - CHECK_THROWS_WITH(json(json::value_t::number_float).get(), - "type must be array, but is number"); - } - } - - SECTION("get an array (implicit)") - { - json::array_t a_reference {json(1), json(1u), json(2.2), json(false), json("string"), json()}; - json j(a_reference); - - SECTION("json::array_t") - { - json::array_t a = j; - CHECK(json(a) == j); - } - - SECTION("std::list") - { - std::list a = j; - CHECK(json(a) == j); - } - - SECTION("std::forward_list") - { - std::forward_list a = j; - CHECK(json(a) == j); - } - - SECTION("std::vector") - { - std::vector a = j; - CHECK(json(a) == j); - } - - SECTION("std::deque") - { - std::deque a = j; - CHECK(json(a) == j); - } - } - - SECTION("get a string (explicit)") - { - json::string_t s_reference {"Hello world"}; - json j(s_reference); - - SECTION("string_t") - { - json::string_t s = j.get(); - CHECK(json(s) == j); - } - - SECTION("std::string") - { - std::string s = j.get(); - CHECK(json(s) == j); - } - - SECTION("exception in case of a non-string type") - { - CHECK_THROWS_AS(json(json::value_t::null).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::object).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::array).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::boolean).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::number_integer).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::number_unsigned).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::number_float).get(), std::logic_error); - - CHECK_THROWS_WITH(json(json::value_t::null).get(), - "type must be string, but is null"); - CHECK_THROWS_WITH(json(json::value_t::object).get(), - "type must be string, but is object"); - CHECK_THROWS_WITH(json(json::value_t::array).get(), - "type must be string, but is array"); - CHECK_THROWS_WITH(json(json::value_t::boolean).get(), - "type must be string, but is boolean"); - CHECK_THROWS_WITH(json(json::value_t::number_integer).get(), - "type must be string, but is number"); - CHECK_THROWS_WITH(json(json::value_t::number_unsigned).get(), - "type must be string, but is number"); - CHECK_THROWS_WITH(json(json::value_t::number_float).get(), - "type must be string, but is number"); - } - } - - SECTION("get a string (implicit)") - { - json::string_t s_reference {"Hello world"}; - json j(s_reference); - - SECTION("string_t") - { - json::string_t s = j; - CHECK(json(s) == j); - } - - SECTION("std::string") - { - std::string s = j; - CHECK(json(s) == j); - } - } - - SECTION("get a boolean (explicit)") - { - json::boolean_t b_reference {true}; - json j(b_reference); - - SECTION("boolean_t") - { - json::boolean_t b = j.get(); - CHECK(json(b) == j); - } - - SECTION("bool") - { - bool b = j.get(); - CHECK(json(b) == j); - } - - SECTION("exception in case of a non-string type") - { - CHECK_THROWS_AS(json(json::value_t::null).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::object).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::array).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::string).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::number_integer).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::number_unsigned).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::number_float).get(), std::logic_error); - - CHECK_THROWS_WITH(json(json::value_t::null).get(), - "type must be boolean, but is null"); - CHECK_THROWS_WITH(json(json::value_t::object).get(), - "type must be boolean, but is object"); - CHECK_THROWS_WITH(json(json::value_t::array).get(), - "type must be boolean, but is array"); - CHECK_THROWS_WITH(json(json::value_t::string).get(), - "type must be boolean, but is string"); - CHECK_THROWS_WITH(json(json::value_t::number_integer).get(), - "type must be boolean, but is number"); - CHECK_THROWS_WITH(json(json::value_t::number_unsigned).get(), - "type must be boolean, but is number"); - CHECK_THROWS_WITH(json(json::value_t::number_float).get(), - "type must be boolean, but is number"); - } - } - - SECTION("get a boolean (implicit)") - { - json::boolean_t b_reference {true}; - json j(b_reference); - - SECTION("boolean_t") - { - json::boolean_t b = j; - CHECK(json(b) == j); - } - - SECTION("bool") - { - bool b = j; - CHECK(json(b) == j); - } - } - - SECTION("get an integer number (explicit)") - { - json::number_integer_t n_reference {42}; - json j(n_reference); - json::number_unsigned_t n_unsigned_reference {42u}; - json j_unsigned(n_unsigned_reference); - - SECTION("number_integer_t") - { - json::number_integer_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("number_unsigned_t") - { - json::number_unsigned_t n = j_unsigned.get(); - CHECK(json(n) == j_unsigned); - } - - SECTION("short") - { - short n = j.get(); - CHECK(json(n) == j); - } - - SECTION("unsigned short") - { - unsigned short n = j.get(); - CHECK(json(n) == j); - } - - SECTION("int") - { - int n = j.get(); - CHECK(json(n) == j); - } - - SECTION("unsigned int") - { - unsigned int n = j.get(); - CHECK(json(n) == j); - } - - SECTION("long") - { - long n = j.get(); - CHECK(json(n) == j); - } - - SECTION("unsigned long") - { - unsigned long n = j.get(); - CHECK(json(n) == j); - } - - SECTION("long long") - { - long long n = j.get(); - CHECK(json(n) == j); - } - - SECTION("unsigned long long") - { - unsigned long long n = j.get(); - CHECK(json(n) == j); - } - - SECTION("int8_t") - { - int8_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("int16_t") - { - int16_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("int32_t") - { - int32_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("int64_t") - { - int64_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("int8_fast_t") - { - int_fast8_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("int16_fast_t") - { - int_fast16_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("int32_fast_t") - { - int_fast32_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("int64_fast_t") - { - int_fast64_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("int8_least_t") - { - int_least8_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("int16_least_t") - { - int_least16_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("int32_least_t") - { - int_least32_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("int64_least_t") - { - int_least64_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("uint8_t") - { - uint8_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("uint16_t") - { - uint16_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("uint32_t") - { - uint32_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("uint64_t") - { - uint64_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("uint8_fast_t") - { - uint_fast8_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("uint16_fast_t") - { - uint_fast16_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("uint32_fast_t") - { - uint_fast32_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("uint64_fast_t") - { - uint_fast64_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("uint8_least_t") - { - uint_least8_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("uint16_least_t") - { - uint_least16_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("uint32_least_t") - { - uint_least32_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("uint64_least_t") - { - uint_least64_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("exception in case of a non-number type") - { - CHECK_THROWS_AS(json(json::value_t::null).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::object).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::array).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::string).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::boolean).get(), std::logic_error); - - CHECK_THROWS_WITH(json(json::value_t::null).get(), - "type must be number, but is null"); - CHECK_THROWS_WITH(json(json::value_t::object).get(), - "type must be number, but is object"); - CHECK_THROWS_WITH(json(json::value_t::array).get(), - "type must be number, but is array"); - CHECK_THROWS_WITH(json(json::value_t::string).get(), - "type must be number, but is string"); - CHECK_THROWS_WITH(json(json::value_t::boolean).get(), - "type must be number, but is boolean"); - - CHECK_NOTHROW(json(json::value_t::number_float).get()); - CHECK_NOTHROW(json(json::value_t::number_float).get()); - } - } - - SECTION("get an integer number (implicit)") - { - json::number_integer_t n_reference {42}; - json j(n_reference); - json::number_unsigned_t n_unsigned_reference {42u}; - json j_unsigned(n_unsigned_reference); - - SECTION("number_integer_t") - { - json::number_integer_t n = j.get(); - CHECK(json(n) == j); - } - - SECTION("number_unsigned_t") - { - json::number_unsigned_t n = j_unsigned.get(); - CHECK(json(n) == j_unsigned); - } - - SECTION("short") - { - short n = j; - CHECK(json(n) == j); - } - - SECTION("unsigned short") - { - unsigned short n = j_unsigned; - CHECK(json(n) == j_unsigned); - } - - SECTION("int") - { - int n = j; - CHECK(json(n) == j); - } - - SECTION("unsigned int") - { - unsigned int n = j_unsigned; - CHECK(json(n) == j_unsigned); - } - - SECTION("long") - { - long n = j; - CHECK(json(n) == j); - } - - SECTION("unsigned long") - { - unsigned long n = j_unsigned; - CHECK(json(n) == j_unsigned); - } - - SECTION("long long") - { - long long n = j; - CHECK(json(n) == j); - } - - SECTION("unsigned long long") - { - unsigned long long n = j_unsigned; - CHECK(json(n) == j_unsigned); - } - - SECTION("int8_t") - { - int8_t n = j; - CHECK(json(n) == j); - } - - SECTION("int16_t") - { - int16_t n = j; - CHECK(json(n) == j); - } - - SECTION("int32_t") - { - int32_t n = j; - CHECK(json(n) == j); - } - - SECTION("int64_t") - { - int64_t n = j; - CHECK(json(n) == j); - } - - SECTION("int8_fast_t") - { - int_fast8_t n = j; - CHECK(json(n) == j); - } - - SECTION("int16_fast_t") - { - int_fast16_t n = j; - CHECK(json(n) == j); - } - - SECTION("int32_fast_t") - { - int_fast32_t n = j; - CHECK(json(n) == j); - } - - SECTION("int64_fast_t") - { - int_fast64_t n = j; - CHECK(json(n) == j); - } - - SECTION("int8_least_t") - { - int_least8_t n = j; - CHECK(json(n) == j); - } - - SECTION("int16_least_t") - { - int_least16_t n = j; - CHECK(json(n) == j); - } - - SECTION("int32_least_t") - { - int_least32_t n = j; - CHECK(json(n) == j); - } - - SECTION("int64_least_t") - { - int_least64_t n = j; - CHECK(json(n) == j); - } - - SECTION("uint8_t") - { - uint8_t n = j_unsigned; - CHECK(json(n) == j_unsigned); - } - - SECTION("uint16_t") - { - uint16_t n = j_unsigned; - CHECK(json(n) == j_unsigned); - } - - SECTION("uint32_t") - { - uint32_t n = j_unsigned; - CHECK(json(n) == j_unsigned); - } - - SECTION("uint64_t") - { - uint64_t n = j_unsigned; - CHECK(json(n) == j_unsigned); - } - - SECTION("uint8_fast_t") - { - uint_fast8_t n = j_unsigned; - CHECK(json(n) == j_unsigned); - } - - SECTION("uint16_fast_t") - { - uint_fast16_t n = j_unsigned; - CHECK(json(n) == j_unsigned); - } - - SECTION("uint32_fast_t") - { - uint_fast32_t n = j_unsigned; - CHECK(json(n) == j_unsigned); - } - - SECTION("uint64_fast_t") - { - uint_fast64_t n = j_unsigned; - CHECK(json(n) == j_unsigned); - } - - SECTION("uint8_least_t") - { - uint_least8_t n = j_unsigned; - CHECK(json(n) == j_unsigned); - } - - SECTION("uint16_least_t") - { - uint_least16_t n = j_unsigned; - CHECK(json(n) == j_unsigned); - } - - SECTION("uint32_least_t") - { - uint_least32_t n = j_unsigned; - CHECK(json(n) == j_unsigned); - } - - SECTION("uint64_least_t") - { - uint_least64_t n = j_unsigned; - CHECK(json(n) == j_unsigned); - } - } - - SECTION("get a floating-point number (explicit)") - { - json::number_float_t n_reference {42.23}; - json j(n_reference); - - SECTION("number_float_t") - { - json::number_float_t n = j.get(); - CHECK(json(n).m_value.number_float == Approx(j.m_value.number_float)); - } - - SECTION("float") - { - float n = j.get(); - CHECK(json(n).m_value.number_float == Approx(j.m_value.number_float)); - } - - SECTION("double") - { - double n = j.get(); - CHECK(json(n).m_value.number_float == Approx(j.m_value.number_float)); - } - - SECTION("exception in case of a non-string type") - { - CHECK_THROWS_AS(json(json::value_t::null).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::object).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::array).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::string).get(), std::logic_error); - CHECK_THROWS_AS(json(json::value_t::boolean).get(), std::logic_error); - - CHECK_THROWS_WITH(json(json::value_t::null).get(), - "type must be number, but is null"); - CHECK_THROWS_WITH(json(json::value_t::object).get(), - "type must be number, but is object"); - CHECK_THROWS_WITH(json(json::value_t::array).get(), - "type must be number, but is array"); - CHECK_THROWS_WITH(json(json::value_t::string).get(), - "type must be number, but is string"); - CHECK_THROWS_WITH(json(json::value_t::boolean).get(), - "type must be number, but is boolean"); - - CHECK_NOTHROW(json(json::value_t::number_integer).get()); - CHECK_NOTHROW(json(json::value_t::number_unsigned).get()); - } - } - - SECTION("get a floating-point number (implicit)") - { - json::number_float_t n_reference {42.23}; - json j(n_reference); - - SECTION("number_float_t") - { - json::number_float_t n = j; - CHECK(json(n).m_value.number_float == Approx(j.m_value.number_float)); - } - - SECTION("float") - { - float n = j; - CHECK(json(n).m_value.number_float == Approx(j.m_value.number_float)); - } - - SECTION("double") - { - double n = j; - CHECK(json(n).m_value.number_float == Approx(j.m_value.number_float)); - } - } - - SECTION("more involved conversions") - { - SECTION("object-like STL containers") - { - json j1 = {{"one", 1}, {"two", 2}, {"three", 3}}; - json j2 = {{"one", 1u}, {"two", 2u}, {"three", 3u}}; - json j3 = {{"one", 1.1}, {"two", 2.2}, {"three", 3.3}}; - json j4 = {{"one", true}, {"two", false}, {"three", true}}; - json j5 = {{"one", "eins"}, {"two", "zwei"}, {"three", "drei"}}; - - SECTION("std::map") - { - auto m1 = j1.get>(); - auto m2 = j2.get>(); - auto m3 = j3.get>(); - auto m4 = j4.get>(); - //auto m5 = j5.get>(); - } - - SECTION("std::unordered_map") - { - auto m1 = j1.get>(); - auto m2 = j2.get>(); - auto m3 = j3.get>(); - auto m4 = j4.get>(); - //auto m5 = j5.get>(); - //CHECK(m5["one"] == "eins"); - } - - SECTION("std::multimap") - { - auto m1 = j1.get>(); - auto m2 = j2.get>(); - auto m3 = j3.get>(); - auto m4 = j4.get>(); - //auto m5 = j5.get>(); - //CHECK(m5["one"] == "eins"); - } - - SECTION("std::unordered_multimap") - { - auto m1 = j1.get>(); - auto m2 = j2.get>(); - auto m3 = j3.get>(); - auto m4 = j4.get>(); - //auto m5 = j5.get>(); - //CHECK(m5["one"] == "eins"); - } - - SECTION("exception in case of a non-object type") - { - CHECK_THROWS_AS((json().get>()), std::logic_error); - CHECK_THROWS_WITH((json().get>()), "type must be object, but is null"); - } - } - - SECTION("array-like STL containers") - { - json j1 = {1, 2, 3, 4}; - json j2 = {1u, 2u, 3u, 4u}; - json j3 = {1.2, 2.3, 3.4, 4.5}; - json j4 = {true, false, true}; - json j5 = {"one", "two", "three"}; - - SECTION("std::list") - { - auto m1 = j1.get>(); - auto m2 = j2.get>(); - auto m3 = j3.get>(); - auto m4 = j4.get>(); - auto m5 = j5.get>(); - } - - //SECTION("std::forward_list") - //{ - // auto m1 = j1.get>(); - // auto m2 = j2.get>(); - // auto m3 = j3.get>(); - // auto m4 = j4.get>(); - // auto m5 = j5.get>(); - //} - - SECTION("std::vector") - { - auto m1 = j1.get>(); - auto m2 = j2.get>(); - auto m3 = j3.get>(); - auto m4 = j4.get>(); - auto m5 = j5.get>(); - } - - SECTION("std::deque") - { - auto m1 = j1.get>(); - auto m2 = j2.get>(); - auto m3 = j2.get>(); - auto m4 = j4.get>(); - auto m5 = j5.get>(); - } - - SECTION("std::set") - { - auto m1 = j1.get>(); - auto m2 = j2.get>(); - auto m3 = j3.get>(); - auto m4 = j4.get>(); - auto m5 = j5.get>(); - } - - SECTION("std::unordered_set") - { - auto m1 = j1.get>(); - auto m2 = j2.get>(); - auto m3 = j3.get>(); - auto m4 = j4.get>(); - auto m5 = j5.get>(); - } - - SECTION("exception in case of a non-object type") - { - CHECK_THROWS_AS((json().get>()), std::logic_error); - CHECK_THROWS_AS((json().get>()), std::logic_error); - CHECK_THROWS_AS((json().get>()), std::logic_error); - CHECK_THROWS_AS((json().get>()), std::logic_error); - - CHECK_THROWS_WITH((json().get>()), "type must be array, but is null"); - CHECK_THROWS_WITH((json().get>()), "type must be array, but is null"); - CHECK_THROWS_WITH((json().get>()), "type must be array, but is null"); - CHECK_THROWS_WITH((json().get>()), "type must be array, but is null"); - } - } - } -} - -TEST_CASE("pointer access") -{ - // create a JSON value with different types - json json_types = - { - {"boolean", true}, - { - "number", { - {"integer", 42}, - {"unsigned", 42u}, - {"floating-point", 17.23} - } - }, - {"string", "Hello, world!"}, - {"array", {1, 2, 3, 4, 5}}, - {"null", nullptr} - }; - - SECTION("pointer access to object_t") - { - using test_type = json::object_t; - json value = {{"one", 1}, {"two", 2}}; - - // check if pointers are returned correctly - test_type* p1 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p1 == value.get()); - - const test_type* p2 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p2 == value.get()); - - const test_type* const p3 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p3 == value.get()); - - // check if null pointers are returned correctly - CHECK(value.get_ptr() != nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - } - - SECTION("pointer access to const object_t") - { - using test_type = json::object_t; - const json value = {{"one", 1}, {"two", 2}}; - - // this should not compile - // test_type* p1 = value.get_ptr(); - - // check if pointers are returned correctly - const test_type* p2 = value.get_ptr(); - CHECK(*p2 == value.get()); - - const test_type* const p3 = value.get_ptr(); - CHECK(p2 == p3); - } - - SECTION("pointer access to array_t") - { - using test_type = json::array_t; - json value = {1, 2, 3, 4}; - - // check if pointers are returned correctly - test_type* p1 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p1 == value.get()); - - const test_type* p2 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p2 == value.get()); - - const test_type* const p3 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p3 == value.get()); - - // check if null pointers are returned correctly - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() != nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - } - - SECTION("pointer access to string_t") - { - using test_type = json::string_t; - json value = "hello"; - - // check if pointers are returned correctly - test_type* p1 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p1 == value.get()); - - const test_type* p2 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p2 == value.get()); - - const test_type* const p3 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p3 == value.get()); - - // check if null pointers are returned correctly - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() != nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - } - - SECTION("pointer access to boolean_t") - { - using test_type = json::boolean_t; - json value = false; - - // check if pointers are returned correctly - test_type* p1 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p1 == value.get()); - - const test_type* p2 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p2 == value.get()); - - const test_type* const p3 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p3 == value.get()); - - // check if null pointers are returned correctly - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() != nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - } - - SECTION("pointer access to number_integer_t") - { - using test_type = json::number_integer_t; - json value = 23; - - // check if pointers are returned correctly - test_type* p1 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p1 == value.get()); - - const test_type* p2 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p2 == value.get()); - - const test_type* const p3 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p3 == value.get()); - - // check if null pointers are returned correctly - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() != nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - } - - SECTION("pointer access to number_unsigned_t") - { - using test_type = json::number_unsigned_t; - json value = 23u; - - // check if pointers are returned correctly - test_type* p1 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p1 == value.get()); - - const test_type* p2 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p2 == value.get()); - - const test_type* const p3 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p3 == value.get()); - - // check if null pointers are returned correctly - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() != nullptr); - CHECK(value.get_ptr() != nullptr); - CHECK(value.get_ptr() == nullptr); - } - - SECTION("pointer access to number_float_t") - { - using test_type = json::number_float_t; - json value = 42.23; - - // check if pointers are returned correctly - test_type* p1 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p1 == Approx(value.get())); - - const test_type* p2 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p2 == Approx(value.get())); - - const test_type* const p3 = value.get_ptr(); - CHECK(p1 == value.get_ptr()); - CHECK(*p3 == Approx(value.get())); - - // check if null pointers are returned correctly - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() == nullptr); - CHECK(value.get_ptr() != nullptr); - } -} - -TEST_CASE("reference access") -{ - // create a JSON value with different types - json json_types = - { - {"boolean", true}, - { - "number", { - {"integer", 42}, - {"floating-point", 17.23} - } - }, - {"string", "Hello, world!"}, - {"array", {1, 2, 3, 4, 5}}, - {"null", nullptr} - }; - - SECTION("reference access to object_t") - { - using test_type = json::object_t; - json value = {{"one", 1}, {"two", 2}}; - - // check if references are returned correctly - test_type& p1 = value.get_ref(); - CHECK(&p1 == value.get_ptr()); - CHECK(p1 == value.get()); - - const test_type& p2 = value.get_ref(); - CHECK(&p2 == value.get_ptr()); - CHECK(p2 == value.get()); - - // check if mismatching references throw correctly - CHECK_NOTHROW(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - } - - SECTION("const reference access to const object_t") - { - using test_type = json::object_t; - const json value = {{"one", 1}, {"two", 2}}; - - // this should not compile - // test_type& p1 = value.get_ref(); - - // check if references are returned correctly - const test_type& p2 = value.get_ref(); - CHECK(&p2 == value.get_ptr()); - CHECK(p2 == value.get()); - } - - SECTION("reference access to array_t") - { - using test_type = json::array_t; - json value = {1, 2, 3, 4}; - - // check if references are returned correctly - test_type& p1 = value.get_ref(); - CHECK(&p1 == value.get_ptr()); - CHECK(p1 == value.get()); - - const test_type& p2 = value.get_ref(); - CHECK(&p2 == value.get_ptr()); - CHECK(p2 == value.get()); - - // check if mismatching references throw correctly - CHECK_THROWS(value.get_ref()); - CHECK_NOTHROW(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - } - - SECTION("reference access to string_t") - { - using test_type = json::string_t; - json value = "hello"; - - // check if references are returned correctly - test_type& p1 = value.get_ref(); - CHECK(&p1 == value.get_ptr()); - CHECK(p1 == value.get()); - - const test_type& p2 = value.get_ref(); - CHECK(&p2 == value.get_ptr()); - CHECK(p2 == value.get()); - - // check if mismatching references throw correctly - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_NOTHROW(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - } - - SECTION("reference access to boolean_t") - { - using test_type = json::boolean_t; - json value = false; - - // check if references are returned correctly - test_type& p1 = value.get_ref(); - CHECK(&p1 == value.get_ptr()); - CHECK(p1 == value.get()); - - const test_type& p2 = value.get_ref(); - CHECK(&p2 == value.get_ptr()); - CHECK(p2 == value.get()); - - // check if mismatching references throw correctly - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_NOTHROW(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - } - - SECTION("reference access to number_integer_t") - { - using test_type = json::number_integer_t; - json value = 23; - - // check if references are returned correctly - test_type& p1 = value.get_ref(); - CHECK(&p1 == value.get_ptr()); - CHECK(p1 == value.get()); - - const test_type& p2 = value.get_ref(); - CHECK(&p2 == value.get_ptr()); - CHECK(p2 == value.get()); - - // check if mismatching references throw correctly - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_NOTHROW(value.get_ref()); - CHECK_THROWS(value.get_ref()); - } - - SECTION("reference access to number_float_t") - { - using test_type = json::number_float_t; - json value = 42.23; - - // check if references are returned correctly - test_type& p1 = value.get_ref(); - CHECK(&p1 == value.get_ptr()); - CHECK(p1 == value.get()); - - const test_type& p2 = value.get_ref(); - CHECK(&p2 == value.get_ptr()); - CHECK(p2 == value.get()); - - // check if mismatching references throw correctly - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_THROWS(value.get_ref()); - CHECK_NOTHROW(value.get_ref()); - } -} - -TEST_CASE("element access") -{ - SECTION("array") - { - json j = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - const json j_const = j; - - SECTION("access specified element with bounds checking") - { - SECTION("access within bounds") - { - CHECK(j.at(0) == json(1)); - CHECK(j.at(1) == json(1u)); - CHECK(j.at(2) == json(true)); - CHECK(j.at(3) == json(nullptr)); - CHECK(j.at(4) == json("string")); - CHECK(j.at(5) == json(42.23)); - CHECK(j.at(6) == json(json::object())); - CHECK(j.at(7) == json({1, 2, 3})); - - CHECK(j_const.at(0) == json(1)); - CHECK(j_const.at(1) == json(1u)); - CHECK(j_const.at(2) == json(true)); - CHECK(j_const.at(3) == json(nullptr)); - CHECK(j_const.at(4) == json("string")); - CHECK(j_const.at(5) == json(42.23)); - CHECK(j_const.at(6) == json(json::object())); - CHECK(j_const.at(7) == json({1, 2, 3})); - } - - SECTION("access outside bounds") - { - CHECK_THROWS_AS(j.at(8), std::out_of_range); - CHECK_THROWS_AS(j_const.at(8), std::out_of_range); - - CHECK_THROWS_WITH(j.at(8), "array index 8 is out of range"); - CHECK_THROWS_WITH(j_const.at(8), "array index 8 is out of range"); - } - - SECTION("access on non-array type") - { - SECTION("null") - { - json j_nonarray(json::value_t::null); - const json j_nonarray_const(j_nonarray); - CHECK_THROWS_AS(j_nonarray.at(0), std::domain_error); - CHECK_THROWS_AS(j_nonarray_const.at(0), std::domain_error); - - CHECK_THROWS_WITH(j_nonarray.at(0), "cannot use at() with null"); - CHECK_THROWS_WITH(j_nonarray_const.at(0), "cannot use at() with null"); - } - - SECTION("boolean") - { - json j_nonarray(json::value_t::boolean); - const json j_nonarray_const(j_nonarray); - CHECK_THROWS_AS(j_nonarray.at(0), std::domain_error); - CHECK_THROWS_AS(j_nonarray_const.at(0), std::domain_error); - - CHECK_THROWS_WITH(j_nonarray.at(0), "cannot use at() with boolean"); - CHECK_THROWS_WITH(j_nonarray_const.at(0), "cannot use at() with boolean"); - } - - SECTION("string") - { - json j_nonarray(json::value_t::string); - const json j_nonarray_const(j_nonarray); - CHECK_THROWS_AS(j_nonarray.at(0), std::domain_error); - CHECK_THROWS_AS(j_nonarray_const.at(0), std::domain_error); - - CHECK_THROWS_WITH(j_nonarray.at(0), "cannot use at() with string"); - CHECK_THROWS_WITH(j_nonarray_const.at(0), "cannot use at() with string"); - } - - SECTION("object") - { - json j_nonarray(json::value_t::object); - const json j_nonarray_const(j_nonarray); - CHECK_THROWS_AS(j_nonarray.at(0), std::domain_error); - CHECK_THROWS_AS(j_nonarray_const.at(0), std::domain_error); - - CHECK_THROWS_WITH(j_nonarray.at(0), "cannot use at() with object"); - CHECK_THROWS_WITH(j_nonarray_const.at(0), "cannot use at() with object"); - } - - SECTION("number (integer)") - { - json j_nonarray(json::value_t::number_integer); - const json j_nonarray_const(j_nonarray); - CHECK_THROWS_AS(j_nonarray.at(0), std::domain_error); - CHECK_THROWS_AS(j_nonarray_const.at(0), std::domain_error); - - CHECK_THROWS_WITH(j_nonarray.at(0), "cannot use at() with number"); - CHECK_THROWS_WITH(j_nonarray_const.at(0), "cannot use at() with number"); - } - - SECTION("number (unsigned)") - { - json j_nonarray(json::value_t::number_unsigned); - const json j_nonarray_const(j_nonarray); - CHECK_THROWS_AS(j_nonarray.at(0), std::domain_error); - CHECK_THROWS_AS(j_nonarray_const.at(0), std::domain_error); - - CHECK_THROWS_WITH(j_nonarray.at(0), "cannot use at() with number"); - CHECK_THROWS_WITH(j_nonarray_const.at(0), "cannot use at() with number"); - } - - SECTION("number (floating-point)") - { - json j_nonarray(json::value_t::number_float); - const json j_nonarray_const(j_nonarray); - CHECK_THROWS_AS(j_nonarray.at(0), std::domain_error); - CHECK_THROWS_AS(j_nonarray_const.at(0), std::domain_error); - - CHECK_THROWS_WITH(j_nonarray.at(0), "cannot use at() with number"); - CHECK_THROWS_WITH(j_nonarray_const.at(0), "cannot use at() with number"); - } - } - } - - SECTION("front and back") - { - CHECK(j.front() == json(1)); - CHECK(j_const.front() == json(1)); - CHECK(j.back() == json({1, 2, 3})); - CHECK(j_const.back() == json({1, 2, 3})); - } - - SECTION("access specified element") - { - SECTION("access within bounds") - { - CHECK(j[0] == json(1)); - CHECK(j[1] == json(1u)); - CHECK(j[2] == json(true)); - CHECK(j[3] == json(nullptr)); - CHECK(j[4] == json("string")); - CHECK(j[5] == json(42.23)); - CHECK(j[6] == json(json::object())); - CHECK(j[7] == json({1, 2, 3})); - - CHECK(j_const[0] == json(1)); - CHECK(j_const[1] == json(1u)); - CHECK(j_const[2] == json(true)); - CHECK(j_const[3] == json(nullptr)); - CHECK(j_const[4] == json("string")); - CHECK(j_const[5] == json(42.23)); - CHECK(j_const[6] == json(json::object())); - CHECK(j_const[7] == json({1, 2, 3})); - } - - SECTION("access on non-array type") - { - SECTION("null") - { - SECTION("standard tests") - { - json j_nonarray(json::value_t::null); - const json j_nonarray_const(j_nonarray); - CHECK_NOTHROW(j_nonarray[0]); - CHECK_THROWS_AS(j_nonarray_const[0], std::domain_error); - CHECK_THROWS_WITH(j_nonarray_const[0], "cannot use operator[] with null"); - } - - SECTION("implicit transformation to properly filled array") - { - json j_nonarray; - j_nonarray[3] = 42; - CHECK(j_nonarray == json({nullptr, nullptr, nullptr, 42})); - } - } - - SECTION("boolean") - { - json j_nonarray(json::value_t::boolean); - const json j_nonarray_const(j_nonarray); - CHECK_THROWS_AS(j_nonarray[0], std::domain_error); - CHECK_THROWS_AS(j_nonarray_const[0], std::domain_error); - CHECK_THROWS_WITH(j_nonarray[0], "cannot use operator[] with boolean"); - CHECK_THROWS_WITH(j_nonarray_const[0], "cannot use operator[] with boolean"); - } - - SECTION("string") - { - json j_nonarray(json::value_t::string); - const json j_nonarray_const(j_nonarray); - CHECK_THROWS_AS(j_nonarray[0], std::domain_error); - CHECK_THROWS_AS(j_nonarray_const[0], std::domain_error); - CHECK_THROWS_WITH(j_nonarray[0], "cannot use operator[] with string"); - CHECK_THROWS_WITH(j_nonarray_const[0], "cannot use operator[] with string"); - } - - SECTION("object") - { - json j_nonarray(json::value_t::object); - const json j_nonarray_const(j_nonarray); - CHECK_THROWS_AS(j_nonarray[0], std::domain_error); - CHECK_THROWS_AS(j_nonarray_const[0], std::domain_error); - CHECK_THROWS_WITH(j_nonarray[0], "cannot use operator[] with object"); - CHECK_THROWS_WITH(j_nonarray_const[0], "cannot use operator[] with object"); - } - - SECTION("number (integer)") - { - json j_nonarray(json::value_t::number_integer); - const json j_nonarray_const(j_nonarray); - CHECK_THROWS_AS(j_nonarray[0], std::domain_error); - CHECK_THROWS_AS(j_nonarray_const[0], std::domain_error); - CHECK_THROWS_WITH(j_nonarray[0], "cannot use operator[] with number"); - CHECK_THROWS_WITH(j_nonarray_const[0], "cannot use operator[] with number"); - } - - SECTION("number (unsigned)") - { - json j_nonarray(json::value_t::number_unsigned); - const json j_nonarray_const(j_nonarray); - CHECK_THROWS_AS(j_nonarray[0], std::domain_error); - CHECK_THROWS_AS(j_nonarray_const[0], std::domain_error); - CHECK_THROWS_WITH(j_nonarray[0], "cannot use operator[] with number"); - CHECK_THROWS_WITH(j_nonarray_const[0], "cannot use operator[] with number"); - } - - SECTION("number (floating-point)") - { - json j_nonarray(json::value_t::number_float); - const json j_nonarray_const(j_nonarray); - CHECK_THROWS_AS(j_nonarray[0], std::domain_error); - CHECK_THROWS_AS(j_nonarray_const[0], std::domain_error); - CHECK_THROWS_WITH(j_nonarray[0], "cannot use operator[] with number"); - CHECK_THROWS_WITH(j_nonarray_const[0], "cannot use operator[] with number"); - } - } - } - - SECTION("remove specified element") - { - SECTION("remove element by index") - { - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - jarray.erase(0); - CHECK(jarray == json({1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}})); - } - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - jarray.erase(1); - CHECK(jarray == json({1, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}})); - } - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - jarray.erase(2); - CHECK(jarray == json({1, 1u, nullptr, "string", 42.23, json::object(), {1, 2, 3}})); - } - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - jarray.erase(3); - CHECK(jarray == json({1, 1u, true, "string", 42.23, json::object(), {1, 2, 3}})); - } - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - jarray.erase(4); - CHECK(jarray == json({1, 1u, true, nullptr, 42.23, json::object(), {1, 2, 3}})); - } - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - jarray.erase(5); - CHECK(jarray == json({1, 1u, true, nullptr, "string", json::object(), {1, 2, 3}})); - } - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - jarray.erase(6); - CHECK(jarray == json({1, 1u, true, nullptr, "string", 42.23, {1, 2, 3}})); - } - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - jarray.erase(7); - CHECK(jarray == json({1, 1u, true, nullptr, "string", 42.23, json::object()})); - } - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - CHECK_THROWS_AS(jarray.erase(8), std::out_of_range); - CHECK_THROWS_WITH(jarray.erase(8), "array index 8 is out of range"); - } - } - - SECTION("remove element by iterator") - { - SECTION("erase(begin())") - { - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - json::iterator it2 = jarray.erase(jarray.begin()); - CHECK(jarray == json({1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}})); - CHECK(*it2 == json(1u)); - } - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - json::const_iterator it2 = jarray.erase(jarray.cbegin()); - CHECK(jarray == json({1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}})); - CHECK(*it2 == json(1u)); - } - } - - SECTION("erase(begin(), end())") - { - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - json::iterator it2 = jarray.erase(jarray.begin(), jarray.end()); - CHECK(jarray == json::array()); - CHECK(it2 == jarray.end()); - } - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - json::const_iterator it2 = jarray.erase(jarray.cbegin(), jarray.cend()); - CHECK(jarray == json::array()); - CHECK(it2 == jarray.cend()); - } - } - - SECTION("erase(begin(), begin())") - { - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - json::iterator it2 = jarray.erase(jarray.begin(), jarray.begin()); - CHECK(jarray == json({1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}})); - CHECK(*it2 == json(1)); - } - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - json::const_iterator it2 = jarray.erase(jarray.cbegin(), jarray.cbegin()); - CHECK(jarray == json({1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}})); - CHECK(*it2 == json(1)); - } - } - - SECTION("erase at offset") - { - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - json::iterator it = jarray.begin() + 4; - json::iterator it2 = jarray.erase(it); - CHECK(jarray == json({1, 1u, true, nullptr, 42.23, json::object(), {1, 2, 3}})); - CHECK(*it2 == json(42.23)); - } - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - json::const_iterator it = jarray.cbegin() + 4; - json::const_iterator it2 = jarray.erase(it); - CHECK(jarray == json({1, 1u, true, nullptr, 42.23, json::object(), {1, 2, 3}})); - CHECK(*it2 == json(42.23)); - } - } - - SECTION("erase subrange") - { - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - json::iterator it2 = jarray.erase(jarray.begin() + 3, jarray.begin() + 6); - CHECK(jarray == json({1, 1u, true, json::object(), {1, 2, 3}})); - CHECK(*it2 == json::object()); - } - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - json::const_iterator it2 = jarray.erase(jarray.cbegin() + 3, jarray.cbegin() + 6); - CHECK(jarray == json({1, 1u, true, json::object(), {1, 2, 3}})); - CHECK(*it2 == json::object()); - } - } - - SECTION("different arrays") - { - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - json jarray2 = {"foo", "bar"}; - CHECK_THROWS_AS(jarray.erase(jarray2.begin()), std::domain_error); - CHECK_THROWS_AS(jarray.erase(jarray.begin(), jarray2.end()), std::domain_error); - CHECK_THROWS_AS(jarray.erase(jarray2.begin(), jarray.end()), std::domain_error); - CHECK_THROWS_AS(jarray.erase(jarray2.begin(), jarray2.end()), std::domain_error); - - CHECK_THROWS_WITH(jarray.erase(jarray2.begin()), "iterator does not fit current value"); - CHECK_THROWS_WITH(jarray.erase(jarray.begin(), jarray2.end()), - "iterators do not fit current value"); - CHECK_THROWS_WITH(jarray.erase(jarray2.begin(), jarray.end()), - "iterators do not fit current value"); - CHECK_THROWS_WITH(jarray.erase(jarray2.begin(), jarray2.end()), - "iterators do not fit current value"); - } - { - json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}; - json jarray2 = {"foo", "bar"}; - CHECK_THROWS_AS(jarray.erase(jarray2.cbegin()), std::domain_error); - CHECK_THROWS_AS(jarray.erase(jarray.cbegin(), jarray2.cend()), std::domain_error); - CHECK_THROWS_AS(jarray.erase(jarray2.cbegin(), jarray.cend()), std::domain_error); - CHECK_THROWS_AS(jarray.erase(jarray2.cbegin(), jarray2.cend()), std::domain_error); - - CHECK_THROWS_WITH(jarray.erase(jarray2.cbegin()), "iterator does not fit current value"); - CHECK_THROWS_WITH(jarray.erase(jarray.cbegin(), jarray2.cend()), - "iterators do not fit current value"); - CHECK_THROWS_WITH(jarray.erase(jarray2.cbegin(), jarray.cend()), - "iterators do not fit current value"); - CHECK_THROWS_WITH(jarray.erase(jarray2.cbegin(), jarray2.cend()), - "iterators do not fit current value"); - } - } - } - - SECTION("remove element by index in non-array type") - { - SECTION("null") - { - json j_nonobject(json::value_t::null); - CHECK_THROWS_AS(j_nonobject.erase(0), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.erase(0), "cannot use erase() with null"); - } - - SECTION("boolean") - { - json j_nonobject(json::value_t::boolean); - CHECK_THROWS_AS(j_nonobject.erase(0), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.erase(0), "cannot use erase() with boolean"); - } - - SECTION("string") - { - json j_nonobject(json::value_t::string); - CHECK_THROWS_AS(j_nonobject.erase(0), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.erase(0), "cannot use erase() with string"); - } - - SECTION("object") - { - json j_nonobject(json::value_t::object); - CHECK_THROWS_AS(j_nonobject.erase(0), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.erase(0), "cannot use erase() with object"); - } - - SECTION("number (integer)") - { - json j_nonobject(json::value_t::number_integer); - CHECK_THROWS_AS(j_nonobject.erase(0), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.erase(0), "cannot use erase() with number"); - } - - SECTION("number (unsigned)") - { - json j_nonobject(json::value_t::number_unsigned); - CHECK_THROWS_AS(j_nonobject.erase(0), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.erase(0), "cannot use erase() with number"); - } - - SECTION("number (floating-point)") - { - json j_nonobject(json::value_t::number_float); - CHECK_THROWS_AS(j_nonobject.erase(0), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.erase(0), "cannot use erase() with number"); - } - } - } - } - - SECTION("object") - { - json j = {{"integer", 1}, {"unsigned", 1u}, {"floating", 42.23}, {"null", nullptr}, {"string", "hello world"}, {"boolean", true}, {"object", json::object()}, {"array", {1, 2, 3}}}; - const json j_const = j; - - SECTION("access specified element with bounds checking") - { - SECTION("access within bounds") - { - CHECK(j.at("integer") == json(1)); - CHECK(j.at("unsigned") == json(1u)); - CHECK(j.at("boolean") == json(true)); - CHECK(j.at("null") == json(nullptr)); - CHECK(j.at("string") == json("hello world")); - CHECK(j.at("floating") == json(42.23)); - CHECK(j.at("object") == json(json::object())); - CHECK(j.at("array") == json({1, 2, 3})); - - CHECK(j_const.at("integer") == json(1)); - CHECK(j_const.at("unsigned") == json(1u)); - CHECK(j_const.at("boolean") == json(true)); - CHECK(j_const.at("null") == json(nullptr)); - CHECK(j_const.at("string") == json("hello world")); - CHECK(j_const.at("floating") == json(42.23)); - CHECK(j_const.at("object") == json(json::object())); - CHECK(j_const.at("array") == json({1, 2, 3})); - } - - SECTION("access outside bounds") - { - CHECK_THROWS_AS(j.at("foo"), std::out_of_range); - CHECK_THROWS_AS(j_const.at("foo"), std::out_of_range); - CHECK_THROWS_WITH(j.at("foo"), "key 'foo' not found"); - CHECK_THROWS_WITH(j_const.at("foo"), "key 'foo' not found"); - } - - SECTION("access on non-object type") - { - SECTION("null") - { - json j_nonobject(json::value_t::null); - const json j_nonobject_const(j_nonobject); - CHECK_THROWS_AS(j_nonobject.at("foo"), std::domain_error); - CHECK_THROWS_AS(j_nonobject_const.at("foo"), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.at("foo"), "cannot use at() with null"); - CHECK_THROWS_WITH(j_nonobject_const.at("foo"), "cannot use at() with null"); - } - - SECTION("boolean") - { - json j_nonobject(json::value_t::boolean); - const json j_nonobject_const(j_nonobject); - CHECK_THROWS_AS(j_nonobject.at("foo"), std::domain_error); - CHECK_THROWS_AS(j_nonobject_const.at("foo"), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.at("foo"), "cannot use at() with boolean"); - CHECK_THROWS_WITH(j_nonobject_const.at("foo"), "cannot use at() with boolean"); - } - - SECTION("string") - { - json j_nonobject(json::value_t::string); - const json j_nonobject_const(j_nonobject); - CHECK_THROWS_AS(j_nonobject.at("foo"), std::domain_error); - CHECK_THROWS_AS(j_nonobject_const.at("foo"), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.at("foo"), "cannot use at() with string"); - CHECK_THROWS_WITH(j_nonobject_const.at("foo"), "cannot use at() with string"); - } - - SECTION("array") - { - json j_nonobject(json::value_t::array); - const json j_nonobject_const(j_nonobject); - CHECK_THROWS_AS(j_nonobject.at("foo"), std::domain_error); - CHECK_THROWS_AS(j_nonobject_const.at("foo"), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.at("foo"), "cannot use at() with array"); - CHECK_THROWS_WITH(j_nonobject_const.at("foo"), "cannot use at() with array"); - } - - SECTION("number (integer)") - { - json j_nonobject(json::value_t::number_integer); - const json j_nonobject_const(j_nonobject); - CHECK_THROWS_AS(j_nonobject.at("foo"), std::domain_error); - CHECK_THROWS_AS(j_nonobject_const.at("foo"), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.at("foo"), "cannot use at() with number"); - CHECK_THROWS_WITH(j_nonobject_const.at("foo"), "cannot use at() with number"); - } - - SECTION("number (unsigned)") - { - json j_nonobject(json::value_t::number_unsigned); - const json j_nonobject_const(j_nonobject); - CHECK_THROWS_AS(j_nonobject.at("foo"), std::domain_error); - CHECK_THROWS_AS(j_nonobject_const.at("foo"), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.at("foo"), "cannot use at() with number"); - CHECK_THROWS_WITH(j_nonobject_const.at("foo"), "cannot use at() with number"); - } - - SECTION("number (floating-point)") - { - json j_nonobject(json::value_t::number_float); - const json j_nonobject_const(j_nonobject); - CHECK_THROWS_AS(j_nonobject.at("foo"), std::domain_error); - CHECK_THROWS_AS(j_nonobject_const.at("foo"), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.at("foo"), "cannot use at() with number"); - CHECK_THROWS_WITH(j_nonobject_const.at("foo"), "cannot use at() with number"); - } - } - } - - SECTION("access specified element with default value") - { - SECTION("access existing value") - { - CHECK(j.value("integer", 2) == 1); - CHECK(j.value("integer", 1.0) == Approx(1)); - CHECK(j.value("unsigned", 2) == 1u); - CHECK(j.value("unsigned", 1.0) == Approx(1u)); - CHECK(j.value("null", json(1)) == json()); - CHECK(j.value("boolean", false) == true); - CHECK(j.value("string", "bar") == "hello world"); - CHECK(j.value("string", std::string("bar")) == "hello world"); - CHECK(j.value("floating", 12.34) == Approx(42.23)); - CHECK(j.value("floating", 12) == 42); - CHECK(j.value("object", json({{"foo", "bar"}})) == json(json::object())); - CHECK(j.value("array", json({10, 100})) == json({1, 2, 3})); - - CHECK(j_const.value("integer", 2) == 1); - CHECK(j_const.value("integer", 1.0) == Approx(1)); - CHECK(j_const.value("unsigned", 2) == 1u); - CHECK(j_const.value("unsigned", 1.0) == Approx(1u)); - CHECK(j_const.value("boolean", false) == true); - CHECK(j_const.value("string", "bar") == "hello world"); - CHECK(j_const.value("string", std::string("bar")) == "hello world"); - CHECK(j_const.value("floating", 12.34) == Approx(42.23)); - CHECK(j_const.value("floating", 12) == 42); - CHECK(j_const.value("object", json({{"foo", "bar"}})) == json(json::object())); - CHECK(j_const.value("array", json({10, 100})) == json({1, 2, 3})); - } - - SECTION("access non-existing value") - { - CHECK(j.value("_", 2) == 2); - CHECK(j.value("_", 2u) == 2u); - CHECK(j.value("_", false) == false); - CHECK(j.value("_", "bar") == "bar"); - CHECK(j.value("_", 12.34) == Approx(12.34)); - CHECK(j.value("_", json({{"foo", "bar"}})) == json({{"foo", "bar"}})); - CHECK(j.value("_", json({10, 100})) == json({10, 100})); - - CHECK(j_const.value("_", 2) == 2); - CHECK(j_const.value("_", 2u) == 2u); - CHECK(j_const.value("_", false) == false); - CHECK(j_const.value("_", "bar") == "bar"); - CHECK(j_const.value("_", 12.34) == Approx(12.34)); - CHECK(j_const.value("_", json({{"foo", "bar"}})) == json({{"foo", "bar"}})); - CHECK(j_const.value("_", json({10, 100})) == json({10, 100})); - } - - SECTION("access on non-object type") - { - SECTION("null") - { - json j_nonobject(json::value_t::null); - const json j_nonobject_const(j_nonobject); - CHECK_THROWS_AS(j_nonobject.value("foo", 1), std::domain_error); - CHECK_THROWS_AS(j_nonobject_const.value("foo", 1), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.value("foo", 1), "cannot use value() with null"); - CHECK_THROWS_WITH(j_nonobject_const.value("foo", 1), "cannot use value() with null"); - } - - SECTION("boolean") - { - json j_nonobject(json::value_t::boolean); - const json j_nonobject_const(j_nonobject); - CHECK_THROWS_AS(j_nonobject.value("foo", 1), std::domain_error); - CHECK_THROWS_AS(j_nonobject_const.value("foo", 1), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.value("foo", 1), "cannot use value() with boolean"); - CHECK_THROWS_WITH(j_nonobject_const.value("foo", 1), "cannot use value() with boolean"); - } - - SECTION("string") - { - json j_nonobject(json::value_t::string); - const json j_nonobject_const(j_nonobject); - CHECK_THROWS_AS(j_nonobject.value("foo", 1), std::domain_error); - CHECK_THROWS_AS(j_nonobject_const.value("foo", 1), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.value("foo", 1), "cannot use value() with string"); - CHECK_THROWS_WITH(j_nonobject_const.value("foo", 1), "cannot use value() with string"); - } - - SECTION("array") - { - json j_nonobject(json::value_t::array); - const json j_nonobject_const(j_nonobject); - CHECK_THROWS_AS(j_nonobject.value("foo", 1), std::domain_error); - CHECK_THROWS_AS(j_nonobject_const.value("foo", 1), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.value("foo", 1), "cannot use value() with array"); - CHECK_THROWS_WITH(j_nonobject_const.value("foo", 1), "cannot use value() with array"); - } - - SECTION("number (integer)") - { - json j_nonobject(json::value_t::number_integer); - const json j_nonobject_const(j_nonobject); - CHECK_THROWS_AS(j_nonobject.value("foo", 1), std::domain_error); - CHECK_THROWS_AS(j_nonobject_const.value("foo", 1), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.value("foo", 1), "cannot use value() with number"); - CHECK_THROWS_WITH(j_nonobject_const.value("foo", 1), "cannot use value() with number"); - } - - SECTION("number (unsigned)") - { - json j_nonobject(json::value_t::number_unsigned); - const json j_nonobject_const(j_nonobject); - CHECK_THROWS_AS(j_nonobject.value("foo", 1), std::domain_error); - CHECK_THROWS_AS(j_nonobject_const.value("foo", 1), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.value("foo", 1), "cannot use value() with number"); - CHECK_THROWS_WITH(j_nonobject_const.value("foo", 1), "cannot use value() with number"); - } - - SECTION("number (floating-point)") - { - json j_nonobject(json::value_t::number_float); - const json j_nonobject_const(j_nonobject); - CHECK_THROWS_AS(j_nonobject.value("foo", 1), std::domain_error); - CHECK_THROWS_AS(j_nonobject_const.value("foo", 1), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.value("foo", 1), "cannot use value() with number"); - CHECK_THROWS_WITH(j_nonobject_const.value("foo", 1), "cannot use value() with number"); - } - } - } - - SECTION("front and back") - { - // "array" is the smallest key - CHECK(j.front() == json({1, 2, 3})); - CHECK(j_const.front() == json({1, 2, 3})); - // "unsigned" is the largest key - CHECK(j.back() == json(1u)); - CHECK(j_const.back() == json(1u)); - } - - SECTION("access specified element") - { - SECTION("access within bounds") - { - CHECK(j["integer"] == json(1)); - CHECK(j[json::object_t::key_type("integer")] == j["integer"]); - - CHECK(j["unsigned"] == json(1u)); - CHECK(j[json::object_t::key_type("unsigned")] == j["unsigned"]); - - CHECK(j["boolean"] == json(true)); - CHECK(j[json::object_t::key_type("boolean")] == j["boolean"]); - - CHECK(j["null"] == json(nullptr)); - CHECK(j[json::object_t::key_type("null")] == j["null"]); - - CHECK(j["string"] == json("hello world")); - CHECK(j[json::object_t::key_type("string")] == j["string"]); - - CHECK(j["floating"] == json(42.23)); - CHECK(j[json::object_t::key_type("floating")] == j["floating"]); - - CHECK(j["object"] == json(json::object())); - CHECK(j[json::object_t::key_type("object")] == j["object"]); - - CHECK(j["array"] == json({1, 2, 3})); - CHECK(j[json::object_t::key_type("array")] == j["array"]); - - CHECK(j_const["integer"] == json(1)); - CHECK(j_const[json::object_t::key_type("integer")] == j["integer"]); - - CHECK(j_const["boolean"] == json(true)); - CHECK(j_const[json::object_t::key_type("boolean")] == j["boolean"]); - - CHECK(j_const["null"] == json(nullptr)); - CHECK(j_const[json::object_t::key_type("null")] == j["null"]); - - CHECK(j_const["string"] == json("hello world")); - CHECK(j_const[json::object_t::key_type("string")] == j["string"]); - - CHECK(j_const["floating"] == json(42.23)); - CHECK(j_const[json::object_t::key_type("floating")] == j["floating"]); - - CHECK(j_const["object"] == json(json::object())); - CHECK(j_const[json::object_t::key_type("object")] == j["object"]); - - CHECK(j_const["array"] == json({1, 2, 3})); - CHECK(j_const[json::object_t::key_type("array")] == j["array"]); - } - - SECTION("access on non-object type") - { - SECTION("null") - { - json j_nonobject(json::value_t::null); - json j_nonobject2(json::value_t::null); - const json j_const_nonobject(j_nonobject); - CHECK_NOTHROW(j_nonobject["foo"]); - CHECK_NOTHROW(j_nonobject2[json::object_t::key_type("foo")]); - CHECK_THROWS_AS(j_const_nonobject["foo"], std::domain_error); - CHECK_THROWS_AS(j_const_nonobject[json::object_t::key_type("foo")], std::domain_error); - CHECK_THROWS_WITH(j_const_nonobject["foo"], "cannot use operator[] with null"); - CHECK_THROWS_WITH(j_const_nonobject[json::object_t::key_type("foo")], - "cannot use operator[] with null"); - } - - SECTION("boolean") - { - json j_nonobject(json::value_t::boolean); - const json j_const_nonobject(j_nonobject); - CHECK_THROWS_AS(j_nonobject["foo"], std::domain_error); - CHECK_THROWS_AS(j_nonobject[json::object_t::key_type("foo")], std::domain_error); - CHECK_THROWS_AS(j_const_nonobject["foo"], std::domain_error); - CHECK_THROWS_AS(j_const_nonobject[json::object_t::key_type("foo")], std::domain_error); - CHECK_THROWS_WITH(j_nonobject["foo"], "cannot use operator[] with boolean"); - CHECK_THROWS_WITH(j_nonobject[json::object_t::key_type("foo")], - "cannot use operator[] with boolean"); - CHECK_THROWS_WITH(j_const_nonobject["foo"], "cannot use operator[] with boolean"); - CHECK_THROWS_WITH(j_const_nonobject[json::object_t::key_type("foo")], - "cannot use operator[] with boolean"); - } - - SECTION("string") - { - json j_nonobject(json::value_t::string); - const json j_const_nonobject(j_nonobject); - CHECK_THROWS_AS(j_nonobject["foo"], std::domain_error); - CHECK_THROWS_AS(j_nonobject[json::object_t::key_type("foo")], std::domain_error); - CHECK_THROWS_AS(j_const_nonobject["foo"], std::domain_error); - CHECK_THROWS_AS(j_const_nonobject[json::object_t::key_type("foo")], std::domain_error); - CHECK_THROWS_WITH(j_nonobject["foo"], "cannot use operator[] with string"); - CHECK_THROWS_WITH(j_nonobject[json::object_t::key_type("foo")], - "cannot use operator[] with string"); - CHECK_THROWS_WITH(j_const_nonobject["foo"], "cannot use operator[] with string"); - CHECK_THROWS_WITH(j_const_nonobject[json::object_t::key_type("foo")], - "cannot use operator[] with string"); - } - - SECTION("array") - { - json j_nonobject(json::value_t::array); - const json j_const_nonobject(j_nonobject); - CHECK_THROWS_AS(j_nonobject["foo"], std::domain_error); - CHECK_THROWS_AS(j_nonobject[json::object_t::key_type("foo")], std::domain_error); - CHECK_THROWS_AS(j_const_nonobject["foo"], std::domain_error); - CHECK_THROWS_AS(j_const_nonobject[json::object_t::key_type("foo")], std::domain_error); - CHECK_THROWS_WITH(j_nonobject["foo"], "cannot use operator[] with array"); - CHECK_THROWS_WITH(j_nonobject[json::object_t::key_type("foo")], "cannot use operator[] with array"); - CHECK_THROWS_WITH(j_const_nonobject["foo"], "cannot use operator[] with array"); - CHECK_THROWS_WITH(j_const_nonobject[json::object_t::key_type("foo")], - "cannot use operator[] with array"); - } - - SECTION("number (integer)") - { - json j_nonobject(json::value_t::number_integer); - const json j_const_nonobject(j_nonobject); - CHECK_THROWS_AS(j_nonobject["foo"], std::domain_error); - CHECK_THROWS_AS(j_nonobject[json::object_t::key_type("foo")], std::domain_error); - CHECK_THROWS_AS(j_const_nonobject["foo"], std::domain_error); - CHECK_THROWS_AS(j_const_nonobject[json::object_t::key_type("foo")], std::domain_error); - CHECK_THROWS_WITH(j_nonobject["foo"], "cannot use operator[] with number"); - CHECK_THROWS_WITH(j_nonobject[json::object_t::key_type("foo")], - "cannot use operator[] with number"); - CHECK_THROWS_WITH(j_const_nonobject["foo"], "cannot use operator[] with number"); - CHECK_THROWS_WITH(j_const_nonobject[json::object_t::key_type("foo")], - "cannot use operator[] with number"); - } - - SECTION("number (unsigned)") - { - json j_nonobject(json::value_t::number_unsigned); - const json j_const_nonobject(j_nonobject); - CHECK_THROWS_AS(j_nonobject["foo"], std::domain_error); - CHECK_THROWS_AS(j_nonobject[json::object_t::key_type("foo")], std::domain_error); - CHECK_THROWS_AS(j_const_nonobject["foo"], std::domain_error); - CHECK_THROWS_AS(j_const_nonobject[json::object_t::key_type("foo")], std::domain_error); - CHECK_THROWS_WITH(j_nonobject["foo"], "cannot use operator[] with number"); - CHECK_THROWS_WITH(j_nonobject[json::object_t::key_type("foo")], - "cannot use operator[] with number"); - CHECK_THROWS_WITH(j_const_nonobject["foo"], "cannot use operator[] with number"); - CHECK_THROWS_WITH(j_const_nonobject[json::object_t::key_type("foo")], - "cannot use operator[] with number"); - } - - SECTION("number (floating-point)") - { - json j_nonobject(json::value_t::number_float); - const json j_const_nonobject(j_nonobject); - CHECK_THROWS_AS(j_nonobject["foo"], std::domain_error); - CHECK_THROWS_AS(j_nonobject[json::object_t::key_type("foo")], std::domain_error); - CHECK_THROWS_AS(j_const_nonobject["foo"], std::domain_error); - CHECK_THROWS_AS(j_const_nonobject[json::object_t::key_type("foo")], std::domain_error); - CHECK_THROWS_WITH(j_nonobject["foo"], "cannot use operator[] with number"); - CHECK_THROWS_WITH(j_nonobject[json::object_t::key_type("foo")], - "cannot use operator[] with number"); - CHECK_THROWS_WITH(j_const_nonobject["foo"], "cannot use operator[] with number"); - CHECK_THROWS_WITH(j_const_nonobject[json::object_t::key_type("foo")], - "cannot use operator[] with number"); - } - } - } - - SECTION("remove specified element") - { - SECTION("remove element by key") - { - CHECK(j.find("integer") != j.end()); - CHECK(j.erase("integer") == 1); - CHECK(j.find("integer") == j.end()); - CHECK(j.erase("integer") == 0); - - CHECK(j.find("unsigned") != j.end()); - CHECK(j.erase("unsigned") == 1); - CHECK(j.find("unsigned") == j.end()); - CHECK(j.erase("unsigned") == 0); - - CHECK(j.find("boolean") != j.end()); - CHECK(j.erase("boolean") == 1); - CHECK(j.find("boolean") == j.end()); - CHECK(j.erase("boolean") == 0); - - CHECK(j.find("null") != j.end()); - CHECK(j.erase("null") == 1); - CHECK(j.find("null") == j.end()); - CHECK(j.erase("null") == 0); - - CHECK(j.find("string") != j.end()); - CHECK(j.erase("string") == 1); - CHECK(j.find("string") == j.end()); - CHECK(j.erase("string") == 0); - - CHECK(j.find("floating") != j.end()); - CHECK(j.erase("floating") == 1); - CHECK(j.find("floating") == j.end()); - CHECK(j.erase("floating") == 0); - - CHECK(j.find("object") != j.end()); - CHECK(j.erase("object") == 1); - CHECK(j.find("object") == j.end()); - CHECK(j.erase("object") == 0); - - CHECK(j.find("array") != j.end()); - CHECK(j.erase("array") == 1); - CHECK(j.find("array") == j.end()); - CHECK(j.erase("array") == 0); - } - - SECTION("remove element by iterator") - { - SECTION("erase(begin())") - { - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}}; - json::iterator it2 = jobject.erase(jobject.begin()); - CHECK(jobject == json({{"b", 1}, {"c", 17u}})); - CHECK(*it2 == json(1)); - } - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}}; - json::const_iterator it2 = jobject.erase(jobject.cbegin()); - CHECK(jobject == json({{"b", 1}, {"c", 17u}})); - CHECK(*it2 == json(1)); - } - } - - SECTION("erase(begin(), end())") - { - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}}; - json::iterator it2 = jobject.erase(jobject.begin(), jobject.end()); - CHECK(jobject == json::object()); - CHECK(it2 == jobject.end()); - } - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}}; - json::const_iterator it2 = jobject.erase(jobject.cbegin(), jobject.cend()); - CHECK(jobject == json::object()); - CHECK(it2 == jobject.cend()); - } - } - - SECTION("erase(begin(), begin())") - { - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}}; - json::iterator it2 = jobject.erase(jobject.begin(), jobject.begin()); - CHECK(jobject == json({{"a", "a"}, {"b", 1}, {"c", 17u}})); - CHECK(*it2 == json("a")); - } - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}}; - json::const_iterator it2 = jobject.erase(jobject.cbegin(), jobject.cbegin()); - CHECK(jobject == json({{"a", "a"}, {"b", 1}, {"c", 17u}})); - CHECK(*it2 == json("a")); - } - } - - SECTION("erase at offset") - { - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}}; - json::iterator it = jobject.find("b"); - json::iterator it2 = jobject.erase(it); - CHECK(jobject == json({{"a", "a"}, {"c", 17u}})); - CHECK(*it2 == json(17)); - } - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}}; - json::const_iterator it = jobject.find("b"); - json::const_iterator it2 = jobject.erase(it); - CHECK(jobject == json({{"a", "a"}, {"c", 17u}})); - CHECK(*it2 == json(17)); - } - } - - SECTION("erase subrange") - { - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}, {"d", false}, {"e", true}}; - json::iterator it2 = jobject.erase(jobject.find("b"), jobject.find("e")); - CHECK(jobject == json({{"a", "a"}, {"e", true}})); - CHECK(*it2 == json(true)); - } - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}, {"d", false}, {"e", true}}; - json::const_iterator it2 = jobject.erase(jobject.find("b"), jobject.find("e")); - CHECK(jobject == json({{"a", "a"}, {"e", true}})); - CHECK(*it2 == json(true)); - } - } - - SECTION("different objects") - { - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}, {"d", false}, {"e", true}}; - json jobject2 = {{"a", "a"}, {"b", 1}, {"c", 17u}}; - CHECK_THROWS_AS(jobject.erase(jobject2.begin()), std::domain_error); - CHECK_THROWS_AS(jobject.erase(jobject.begin(), jobject2.end()), std::domain_error); - CHECK_THROWS_AS(jobject.erase(jobject2.begin(), jobject.end()), std::domain_error); - CHECK_THROWS_AS(jobject.erase(jobject2.begin(), jobject2.end()), std::domain_error); - CHECK_THROWS_WITH(jobject.erase(jobject2.begin()), "iterator does not fit current value"); - CHECK_THROWS_WITH(jobject.erase(jobject.begin(), jobject2.end()), - "iterators do not fit current value"); - CHECK_THROWS_WITH(jobject.erase(jobject2.begin(), jobject.end()), - "iterators do not fit current value"); - CHECK_THROWS_WITH(jobject.erase(jobject2.begin(), jobject2.end()), - "iterators do not fit current value"); - } - { - json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}, {"d", false}, {"e", true}}; - json jobject2 = {{"a", "a"}, {"b", 1}, {"c", 17u}}; - CHECK_THROWS_AS(jobject.erase(jobject2.cbegin()), std::domain_error); - CHECK_THROWS_AS(jobject.erase(jobject.cbegin(), jobject2.cend()), std::domain_error); - CHECK_THROWS_AS(jobject.erase(jobject2.cbegin(), jobject.cend()), std::domain_error); - CHECK_THROWS_AS(jobject.erase(jobject2.cbegin(), jobject2.cend()), std::domain_error); - CHECK_THROWS_WITH(jobject.erase(jobject2.cbegin()), "iterator does not fit current value"); - CHECK_THROWS_WITH(jobject.erase(jobject.cbegin(), jobject2.cend()), - "iterators do not fit current value"); - CHECK_THROWS_WITH(jobject.erase(jobject2.cbegin(), jobject.cend()), - "iterators do not fit current value"); - CHECK_THROWS_WITH(jobject.erase(jobject2.cbegin(), jobject2.cend()), - "iterators do not fit current value"); - } - } - } - - SECTION("remove element by key in non-object type") - { - SECTION("null") - { - json j_nonobject(json::value_t::null); - CHECK_THROWS_AS(j_nonobject.erase("foo"), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.erase("foo"), "cannot use erase() with null"); - } - - SECTION("boolean") - { - json j_nonobject(json::value_t::boolean); - CHECK_THROWS_AS(j_nonobject.erase("foo"), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.erase("foo"), "cannot use erase() with boolean"); - } - - SECTION("string") - { - json j_nonobject(json::value_t::string); - CHECK_THROWS_AS(j_nonobject.erase("foo"), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.erase("foo"), "cannot use erase() with string"); - } - - SECTION("array") - { - json j_nonobject(json::value_t::array); - CHECK_THROWS_AS(j_nonobject.erase("foo"), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.erase("foo"), "cannot use erase() with array"); - } - - SECTION("number (integer)") - { - json j_nonobject(json::value_t::number_integer); - CHECK_THROWS_AS(j_nonobject.erase("foo"), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.erase("foo"), "cannot use erase() with number"); - } - - SECTION("number (floating-point)") - { - json j_nonobject(json::value_t::number_float); - CHECK_THROWS_AS(j_nonobject.erase("foo"), std::domain_error); - CHECK_THROWS_WITH(j_nonobject.erase("foo"), "cannot use erase() with number"); - } - } - } - - SECTION("find an element in an object") - { - SECTION("existing element") - { - for (auto key : - {"integer", "unsigned", "floating", "null", "string", "boolean", "object", "array" - }) - { - CHECK(j.find(key) != j.end()); - CHECK(*j.find(key) == j.at(key)); - CHECK(j_const.find(key) != j_const.end()); - CHECK(*j_const.find(key) == j_const.at(key)); - } - } - - SECTION("nonexisting element") - { - CHECK(j.find("foo") == j.end()); - CHECK(j_const.find("foo") == j_const.end()); - } - - SECTION("all types") - { - SECTION("null") - { - json j_nonarray(json::value_t::null); - const json j_nonarray_const(j_nonarray); - CHECK(j_nonarray.find("foo") == j_nonarray.end()); - CHECK(j_nonarray_const.find("foo") == j_nonarray_const.end()); - } - - SECTION("string") - { - json j_nonarray(json::value_t::string); - const json j_nonarray_const(j_nonarray); - CHECK(j_nonarray.find("foo") == j_nonarray.end()); - CHECK(j_nonarray_const.find("foo") == j_nonarray_const.end()); - } - - SECTION("object") - { - json j_nonarray(json::value_t::object); - const json j_nonarray_const(j_nonarray); - CHECK(j_nonarray.find("foo") == j_nonarray.end()); - CHECK(j_nonarray_const.find("foo") == j_nonarray_const.end()); - } - - SECTION("array") - { - json j_nonarray(json::value_t::array); - const json j_nonarray_const(j_nonarray); - CHECK(j_nonarray.find("foo") == j_nonarray.end()); - CHECK(j_nonarray_const.find("foo") == j_nonarray_const.end()); - } - - SECTION("boolean") - { - json j_nonarray(json::value_t::boolean); - const json j_nonarray_const(j_nonarray); - CHECK(j_nonarray.find("foo") == j_nonarray.end()); - CHECK(j_nonarray_const.find("foo") == j_nonarray_const.end()); - } - - SECTION("number (integer)") - { - json j_nonarray(json::value_t::number_integer); - const json j_nonarray_const(j_nonarray); - CHECK(j_nonarray.find("foo") == j_nonarray.end()); - CHECK(j_nonarray_const.find("foo") == j_nonarray_const.end()); - } - - SECTION("number (unsigned)") - { - json j_nonarray(json::value_t::number_unsigned); - const json j_nonarray_const(j_nonarray); - CHECK(j_nonarray.find("foo") == j_nonarray.end()); - CHECK(j_nonarray_const.find("foo") == j_nonarray_const.end()); - } - - SECTION("number (floating-point)") - { - json j_nonarray(json::value_t::number_float); - const json j_nonarray_const(j_nonarray); - CHECK(j_nonarray.find("foo") == j_nonarray.end()); - CHECK(j_nonarray_const.find("foo") == j_nonarray_const.end()); - } - } - } - - SECTION("count keys in an object") - { - SECTION("existing element") - { - for (auto key : - {"integer", "unsigned", "floating", "null", "string", "boolean", "object", "array" - }) - { - CHECK(j.count(key) == 1); - CHECK(j_const.count(key) == 1); - } - } - - SECTION("nonexisting element") - { - CHECK(j.count("foo") == 0); - CHECK(j_const.count("foo") == 0); - } - - SECTION("all types") - { - SECTION("null") - { - json j_nonobject(json::value_t::null); - const json j_nonobject_const(j_nonobject); - CHECK(j_nonobject.count("foo") == 0); - CHECK(j_nonobject_const.count("foo") == 0); - } - - SECTION("string") - { - json j_nonobject(json::value_t::string); - const json j_nonobject_const(j_nonobject); - CHECK(j_nonobject.count("foo") == 0); - CHECK(j_nonobject_const.count("foo") == 0); - } - - SECTION("object") - { - json j_nonobject(json::value_t::object); - const json j_nonobject_const(j_nonobject); - CHECK(j_nonobject.count("foo") == 0); - CHECK(j_nonobject_const.count("foo") == 0); - } - - SECTION("array") - { - json j_nonobject(json::value_t::array); - const json j_nonobject_const(j_nonobject); - CHECK(j_nonobject.count("foo") == 0); - CHECK(j_nonobject_const.count("foo") == 0); - } - - SECTION("boolean") - { - json j_nonobject(json::value_t::boolean); - const json j_nonobject_const(j_nonobject); - CHECK(j_nonobject.count("foo") == 0); - CHECK(j_nonobject_const.count("foo") == 0); - } - - SECTION("number (integer)") - { - json j_nonobject(json::value_t::number_integer); - const json j_nonobject_const(j_nonobject); - CHECK(j_nonobject.count("foo") == 0); - CHECK(j_nonobject_const.count("foo") == 0); - } - - SECTION("number (unsigned)") - { - json j_nonobject(json::value_t::number_unsigned); - const json j_nonobject_const(j_nonobject); - CHECK(j_nonobject.count("foo") == 0); - CHECK(j_nonobject_const.count("foo") == 0); - } - - SECTION("number (floating-point)") - { - json j_nonobject(json::value_t::number_float); - const json j_nonobject_const(j_nonobject); - CHECK(j_nonobject.count("foo") == 0); - CHECK(j_nonobject_const.count("foo") == 0); - } - } - } - } - - SECTION("other values") - { - SECTION("front and back") - { - SECTION("null") - { - { - json j; - CHECK_THROWS_AS(j.front(), std::out_of_range); - CHECK_THROWS_AS(j.back(), std::out_of_range); - CHECK_THROWS_WITH(j.front(), "cannot get value"); - CHECK_THROWS_WITH(j.back(), "cannot get value"); - } - { - const json j{}; - CHECK_THROWS_AS(j.front(), std::out_of_range); - CHECK_THROWS_AS(j.back(), std::out_of_range); - CHECK_THROWS_WITH(j.front(), "cannot get value"); - CHECK_THROWS_WITH(j.back(), "cannot get value"); - } - } - - SECTION("string") - { - { - json j = "foo"; - CHECK(j.front() == j); - CHECK(j.back() == j); - } - { - const json j = "bar"; - CHECK(j.front() == j); - CHECK(j.back() == j); - } - } - - SECTION("number (boolean)") - { - { - json j = false; - CHECK(j.front() == j); - CHECK(j.back() == j); - } - { - const json j = true; - CHECK(j.front() == j); - CHECK(j.back() == j); - } - } - - SECTION("number (integer)") - { - { - json j = 17; - CHECK(j.front() == j); - CHECK(j.back() == j); - } - { - const json j = 17; - CHECK(j.front() == j); - CHECK(j.back() == j); - } - } - - SECTION("number (unsigned)") - { - { - json j = 17u; - CHECK(j.front() == j); - CHECK(j.back() == j); - } - { - const json j = 17u; - CHECK(j.front() == j); - CHECK(j.back() == j); - } - } - - SECTION("number (floating point)") - { - { - json j = 23.42; - CHECK(j.front() == j); - CHECK(j.back() == j); - } - { - const json j = 23.42; - CHECK(j.front() == j); - CHECK(j.back() == j); - } - } - } - - SECTION("erase with one valid iterator") - { - SECTION("null") - { - { - json j; - CHECK_THROWS_AS(j.erase(j.begin()), std::domain_error); - CHECK_THROWS_WITH(j.erase(j.begin()), "cannot use erase() with null"); - } - { - json j; - CHECK_THROWS_AS(j.erase(j.cbegin()), std::domain_error); - CHECK_THROWS_WITH(j.erase(j.begin()), "cannot use erase() with null"); - } - } - - SECTION("string") - { - { - json j = "foo"; - json::iterator it = j.erase(j.begin()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - { - json j = "bar"; - json::const_iterator it = j.erase(j.cbegin()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - } - - SECTION("number (boolean)") - { - { - json j = false; - json::iterator it = j.erase(j.begin()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - { - json j = true; - json::const_iterator it = j.erase(j.cbegin()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - } - - SECTION("number (integer)") - { - { - json j = 17; - json::iterator it = j.erase(j.begin()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - { - json j = 17; - json::const_iterator it = j.erase(j.cbegin()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - } - - SECTION("number (unsigned)") - { - { - json j = 17u; - json::iterator it = j.erase(j.begin()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - { - json j = 17u; - json::const_iterator it = j.erase(j.cbegin()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - } - - SECTION("number (floating point)") - { - { - json j = 23.42; - json::iterator it = j.erase(j.begin()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - { - json j = 23.42; - json::const_iterator it = j.erase(j.cbegin()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - } - } - - SECTION("erase with one invalid iterator") - { - SECTION("string") - { - { - json j = "foo"; - CHECK_THROWS_AS(j.erase(j.end()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.end()), "iterator out of range"); - } - { - json j = "bar"; - CHECK_THROWS_AS(j.erase(j.cend()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.cend()), "iterator out of range"); - } - } - - SECTION("number (boolean)") - { - { - json j = false; - CHECK_THROWS_AS(j.erase(j.end()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.end()), "iterator out of range"); - } - { - json j = true; - CHECK_THROWS_AS(j.erase(j.cend()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.cend()), "iterator out of range"); - } - } - - SECTION("number (integer)") - { - { - json j = 17; - CHECK_THROWS_AS(j.erase(j.end()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.end()), "iterator out of range"); - } - { - json j = 17; - CHECK_THROWS_AS(j.erase(j.cend()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.cend()), "iterator out of range"); - } - } - - SECTION("number (unsigned)") - { - { - json j = 17u; - CHECK_THROWS_AS(j.erase(j.end()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.end()), "iterator out of range"); - } - { - json j = 17u; - CHECK_THROWS_AS(j.erase(j.cend()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.cend()), "iterator out of range"); - } - } - - SECTION("number (floating point)") - { - { - json j = 23.42; - CHECK_THROWS_AS(j.erase(j.end()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.end()), "iterator out of range"); - } - { - json j = 23.42; - CHECK_THROWS_AS(j.erase(j.cend()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.cend()), "iterator out of range"); - } - } - } - - SECTION("erase with two valid iterators") - { - SECTION("null") - { - { - json j; - CHECK_THROWS_AS(j.erase(j.begin(), j.end()), std::domain_error); - CHECK_THROWS_WITH(j.erase(j.begin(), j.end()), "cannot use erase() with null"); - } - { - json j; - CHECK_THROWS_AS(j.erase(j.cbegin(), j.cend()), std::domain_error); - CHECK_THROWS_WITH(j.erase(j.cbegin(), j.cend()), "cannot use erase() with null"); - } - } - - SECTION("string") - { - { - json j = "foo"; - json::iterator it = j.erase(j.begin(), j.end()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - { - json j = "bar"; - json::const_iterator it = j.erase(j.cbegin(), j.cend()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - } - - SECTION("number (boolean)") - { - { - json j = false; - json::iterator it = j.erase(j.begin(), j.end()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - { - json j = true; - json::const_iterator it = j.erase(j.cbegin(), j.cend()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - } - - SECTION("number (integer)") - { - { - json j = 17; - json::iterator it = j.erase(j.begin(), j.end()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - { - json j = 17; - json::const_iterator it = j.erase(j.cbegin(), j.cend()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - } - - SECTION("number (unsigned)") - { - { - json j = 17u; - json::iterator it = j.erase(j.begin(), j.end()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - { - json j = 17u; - json::const_iterator it = j.erase(j.cbegin(), j.cend()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - } - - SECTION("number (floating point)") - { - { - json j = 23.42; - json::iterator it = j.erase(j.begin(), j.end()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - { - json j = 23.42; - json::const_iterator it = j.erase(j.cbegin(), j.cend()); - CHECK(j.type() == json::value_t::null); - CHECK(it == j.end()); - } - } - } - - SECTION("erase with two invalid iterators") - { - SECTION("string") - { - { - json j = "foo"; - CHECK_THROWS_AS(j.erase(j.end(), j.end()), std::out_of_range); - CHECK_THROWS_AS(j.erase(j.begin(), j.begin()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.end(), j.end()), "iterators out of range"); - CHECK_THROWS_WITH(j.erase(j.begin(), j.begin()), "iterators out of range"); - } - { - json j = "bar"; - CHECK_THROWS_AS(j.erase(j.cend(), j.cend()), std::out_of_range); - CHECK_THROWS_AS(j.erase(j.cbegin(), j.cbegin()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.cend(), j.cend()), "iterators out of range"); - CHECK_THROWS_WITH(j.erase(j.cbegin(), j.cbegin()), "iterators out of range"); - } - } - - SECTION("number (boolean)") - { - { - json j = false; - CHECK_THROWS_AS(j.erase(j.end(), j.end()), std::out_of_range); - CHECK_THROWS_AS(j.erase(j.begin(), j.begin()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.end(), j.end()), "iterators out of range"); - CHECK_THROWS_WITH(j.erase(j.begin(), j.begin()), "iterators out of range"); - } - { - json j = true; - CHECK_THROWS_AS(j.erase(j.cend(), j.cend()), std::out_of_range); - CHECK_THROWS_AS(j.erase(j.cbegin(), j.cbegin()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.cend(), j.cend()), "iterators out of range"); - CHECK_THROWS_WITH(j.erase(j.cbegin(), j.cbegin()), "iterators out of range"); - } - } - - SECTION("number (integer)") - { - { - json j = 17; - CHECK_THROWS_AS(j.erase(j.end(), j.end()), std::out_of_range); - CHECK_THROWS_AS(j.erase(j.begin(), j.begin()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.end(), j.end()), "iterators out of range"); - CHECK_THROWS_WITH(j.erase(j.begin(), j.begin()), "iterators out of range"); - } - { - json j = 17; - CHECK_THROWS_AS(j.erase(j.cend(), j.cend()), std::out_of_range); - CHECK_THROWS_AS(j.erase(j.cbegin(), j.cbegin()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.cend(), j.cend()), "iterators out of range"); - CHECK_THROWS_WITH(j.erase(j.cbegin(), j.cbegin()), "iterators out of range"); - } - } - - SECTION("number (unsigned)") - { - { - json j = 17u; - CHECK_THROWS_AS(j.erase(j.end(), j.end()), std::out_of_range); - CHECK_THROWS_AS(j.erase(j.begin(), j.begin()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.end(), j.end()), "iterators out of range"); - CHECK_THROWS_WITH(j.erase(j.begin(), j.begin()), "iterators out of range"); - } - { - json j = 17u; - CHECK_THROWS_AS(j.erase(j.cend(), j.cend()), std::out_of_range); - CHECK_THROWS_AS(j.erase(j.cbegin(), j.cbegin()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.cend(), j.cend()), "iterators out of range"); - CHECK_THROWS_WITH(j.erase(j.cbegin(), j.cbegin()), "iterators out of range"); - } - } - - SECTION("number (floating point)") - { - { - json j = 23.42; - CHECK_THROWS_AS(j.erase(j.end(), j.end()), std::out_of_range); - CHECK_THROWS_AS(j.erase(j.begin(), j.begin()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.end(), j.end()), "iterators out of range"); - CHECK_THROWS_WITH(j.erase(j.begin(), j.begin()), "iterators out of range"); - } - { - json j = 23.42; - CHECK_THROWS_AS(j.erase(j.cend(), j.cend()), std::out_of_range); - CHECK_THROWS_AS(j.erase(j.cbegin(), j.cbegin()), std::out_of_range); - CHECK_THROWS_WITH(j.erase(j.cend(), j.cend()), "iterators out of range"); - CHECK_THROWS_WITH(j.erase(j.cbegin(), j.cbegin()), "iterators out of range"); - } - } - } - } -} - -TEST_CASE("iterators") -{ - SECTION("basic behavior") - { - SECTION("uninitialized") - { - json::iterator it; - CHECK(it.m_object == nullptr); - - json::const_iterator cit; - CHECK(cit.m_object == nullptr); - } - - SECTION("boolean") - { - json j = true; - json j_const(j); - - SECTION("json + begin/end") - { - json::iterator it = j.begin(); - CHECK(it != j.end()); - CHECK(*it == j); - - it++; - CHECK(it != j.begin()); - CHECK(it == j.end()); - - it--; - CHECK(it == j.begin()); - CHECK(it != j.end()); - CHECK(*it == j); - - ++it; - CHECK(it != j.begin()); - CHECK(it == j.end()); - - --it; - CHECK(it == j.begin()); - CHECK(it != j.end()); - CHECK(*it == j); - } - - SECTION("const json + begin/end") - { - json::const_iterator it = j_const.begin(); - CHECK(it != j_const.end()); - CHECK(*it == j_const); - - it++; - CHECK(it != j_const.begin()); - CHECK(it == j_const.end()); - - it--; - CHECK(it == j_const.begin()); - CHECK(it != j_const.end()); - CHECK(*it == j_const); - - ++it; - CHECK(it != j_const.begin()); - CHECK(it == j_const.end()); - - --it; - CHECK(it == j_const.begin()); - CHECK(it != j_const.end()); - CHECK(*it == j_const); - } - - SECTION("json + cbegin/cend") - { - json::const_iterator it = j.cbegin(); - CHECK(it != j.cend()); - CHECK(*it == j); - - it++; - CHECK(it != j.cbegin()); - CHECK(it == j.cend()); - - it--; - CHECK(it == j.cbegin()); - CHECK(it != j.cend()); - CHECK(*it == j); - - ++it; - CHECK(it != j.cbegin()); - CHECK(it == j.cend()); - - --it; - CHECK(it == j.cbegin()); - CHECK(it != j.cend()); - CHECK(*it == j); - } - - SECTION("const json + cbegin/cend") - { - json::const_iterator it = j_const.cbegin(); - CHECK(it != j_const.cend()); - CHECK(*it == j_const); - - it++; - CHECK(it != j_const.cbegin()); - CHECK(it == j_const.cend()); - - it--; - CHECK(it == j_const.cbegin()); - CHECK(it != j_const.cend()); - CHECK(*it == j_const); - - ++it; - CHECK(it != j_const.cbegin()); - CHECK(it == j_const.cend()); - - --it; - CHECK(it == j_const.cbegin()); - CHECK(it != j_const.cend()); - CHECK(*it == j_const); - } - - SECTION("json + rbegin/rend") - { - json::reverse_iterator it = j.rbegin(); - CHECK(it != j.rend()); - CHECK(*it == j); - - it++; - CHECK(it != j.rbegin()); - CHECK(it == j.rend()); - - it--; - CHECK(it == j.rbegin()); - CHECK(it != j.rend()); - CHECK(*it == j); - - ++it; - CHECK(it != j.rbegin()); - CHECK(it == j.rend()); - - --it; - CHECK(it == j.rbegin()); - CHECK(it != j.rend()); - CHECK(*it == j); - } - - SECTION("json + crbegin/crend") - { - json::const_reverse_iterator it = j.crbegin(); - CHECK(it != j.crend()); - CHECK(*it == j); - - it++; - CHECK(it != j.crbegin()); - CHECK(it == j.crend()); - - it--; - CHECK(it == j.crbegin()); - CHECK(it != j.crend()); - CHECK(*it == j); - - ++it; - CHECK(it != j.crbegin()); - CHECK(it == j.crend()); - - --it; - CHECK(it == j.crbegin()); - CHECK(it != j.crend()); - CHECK(*it == j); - } - - SECTION("const json + crbegin/crend") - { - json::const_reverse_iterator it = j_const.crbegin(); - CHECK(it != j_const.crend()); - CHECK(*it == j_const); - - it++; - CHECK(it != j_const.crbegin()); - CHECK(it == j_const.crend()); - - it--; - CHECK(it == j_const.crbegin()); - CHECK(it != j_const.crend()); - CHECK(*it == j_const); - - ++it; - CHECK(it != j_const.crbegin()); - CHECK(it == j_const.crend()); - - --it; - CHECK(it == j_const.crbegin()); - CHECK(it != j_const.crend()); - CHECK(*it == j_const); - } - - SECTION("key/value") - { - auto it = j.begin(); - auto cit = j_const.cbegin(); - CHECK_THROWS_AS(it.key(), std::domain_error); - CHECK_THROWS_WITH(it.key(), "cannot use key() for non-object iterators"); - CHECK(it.value() == json(true)); - CHECK_THROWS_AS(cit.key(), std::domain_error); - CHECK_THROWS_WITH(cit.key(), "cannot use key() for non-object iterators"); - CHECK(cit.value() == json(true)); - - auto rit = j.rend(); - auto crit = j.crend(); - CHECK_THROWS_AS(rit.key(), std::domain_error); - CHECK_THROWS_AS(rit.value(), std::out_of_range); - CHECK_THROWS_AS(crit.key(), std::domain_error); - CHECK_THROWS_AS(crit.value(), std::out_of_range); - CHECK_THROWS_WITH(rit.key(), "cannot use key() for non-object iterators"); - CHECK_THROWS_WITH(rit.value(), "cannot get value"); - CHECK_THROWS_WITH(crit.key(), "cannot use key() for non-object iterators"); - CHECK_THROWS_WITH(crit.value(), "cannot get value"); - } - } - - SECTION("string") - { - json j = "hello world"; - json j_const(j); - - SECTION("json + begin/end") - { - json::iterator it = j.begin(); - CHECK(it != j.end()); - CHECK(*it == j); - - it++; - CHECK(it != j.begin()); - CHECK(it == j.end()); - - it--; - CHECK(it == j.begin()); - CHECK(it != j.end()); - CHECK(*it == j); - - ++it; - CHECK(it != j.begin()); - CHECK(it == j.end()); - - --it; - CHECK(it == j.begin()); - CHECK(it != j.end()); - CHECK(*it == j); - } - - SECTION("const json + begin/end") - { - json::const_iterator it = j_const.begin(); - CHECK(it != j_const.end()); - CHECK(*it == j_const); - - it++; - CHECK(it != j_const.begin()); - CHECK(it == j_const.end()); - - it--; - CHECK(it == j_const.begin()); - CHECK(it != j_const.end()); - CHECK(*it == j_const); - - ++it; - CHECK(it != j_const.begin()); - CHECK(it == j_const.end()); - - --it; - CHECK(it == j_const.begin()); - CHECK(it != j_const.end()); - CHECK(*it == j_const); - } - - SECTION("json + cbegin/cend") - { - json::const_iterator it = j.cbegin(); - CHECK(it != j.cend()); - CHECK(*it == j); - - it++; - CHECK(it != j.cbegin()); - CHECK(it == j.cend()); - - it--; - CHECK(it == j.cbegin()); - CHECK(it != j.cend()); - CHECK(*it == j); - - ++it; - CHECK(it != j.cbegin()); - CHECK(it == j.cend()); - - --it; - CHECK(it == j.cbegin()); - CHECK(it != j.cend()); - CHECK(*it == j); - } - - SECTION("const json + cbegin/cend") - { - json::const_iterator it = j_const.cbegin(); - CHECK(it != j_const.cend()); - CHECK(*it == j_const); - - it++; - CHECK(it != j_const.cbegin()); - CHECK(it == j_const.cend()); - - it--; - CHECK(it == j_const.cbegin()); - CHECK(it != j_const.cend()); - CHECK(*it == j_const); - - ++it; - CHECK(it != j_const.cbegin()); - CHECK(it == j_const.cend()); - - --it; - CHECK(it == j_const.cbegin()); - CHECK(it != j_const.cend()); - CHECK(*it == j_const); - } - - SECTION("json + rbegin/rend") - { - json::reverse_iterator it = j.rbegin(); - CHECK(it != j.rend()); - CHECK(*it == j); - - it++; - CHECK(it != j.rbegin()); - CHECK(it == j.rend()); - - it--; - CHECK(it == j.rbegin()); - CHECK(it != j.rend()); - CHECK(*it == j); - - ++it; - CHECK(it != j.rbegin()); - CHECK(it == j.rend()); - - --it; - CHECK(it == j.rbegin()); - CHECK(it != j.rend()); - CHECK(*it == j); - } - - SECTION("json + crbegin/crend") - { - json::const_reverse_iterator it = j.crbegin(); - CHECK(it != j.crend()); - CHECK(*it == j); - - it++; - CHECK(it != j.crbegin()); - CHECK(it == j.crend()); - - it--; - CHECK(it == j.crbegin()); - CHECK(it != j.crend()); - CHECK(*it == j); - - ++it; - CHECK(it != j.crbegin()); - CHECK(it == j.crend()); - - --it; - CHECK(it == j.crbegin()); - CHECK(it != j.crend()); - CHECK(*it == j); - } - - SECTION("const json + crbegin/crend") - { - json::const_reverse_iterator it = j_const.crbegin(); - CHECK(it != j_const.crend()); - CHECK(*it == j_const); - - it++; - CHECK(it != j_const.crbegin()); - CHECK(it == j_const.crend()); - - it--; - CHECK(it == j_const.crbegin()); - CHECK(it != j_const.crend()); - CHECK(*it == j_const); - - ++it; - CHECK(it != j_const.crbegin()); - CHECK(it == j_const.crend()); - - --it; - CHECK(it == j_const.crbegin()); - CHECK(it != j_const.crend()); - CHECK(*it == j_const); - } - - SECTION("key/value") - { - auto it = j.begin(); - auto cit = j_const.cbegin(); - CHECK_THROWS_AS(it.key(), std::domain_error); - CHECK_THROWS_WITH(it.key(), "cannot use key() for non-object iterators"); - CHECK(it.value() == json("hello world")); - CHECK_THROWS_AS(cit.key(), std::domain_error); - CHECK_THROWS_WITH(cit.key(), "cannot use key() for non-object iterators"); - CHECK(cit.value() == json("hello world")); - - auto rit = j.rend(); - auto crit = j.crend(); - CHECK_THROWS_AS(rit.key(), std::domain_error); - CHECK_THROWS_AS(rit.value(), std::out_of_range); - CHECK_THROWS_AS(crit.key(), std::domain_error); - CHECK_THROWS_AS(crit.value(), std::out_of_range); - CHECK_THROWS_WITH(rit.key(), "cannot use key() for non-object iterators"); - CHECK_THROWS_WITH(rit.value(), "cannot get value"); - CHECK_THROWS_WITH(crit.key(), "cannot use key() for non-object iterators"); - CHECK_THROWS_WITH(crit.value(), "cannot get value"); - } - } - - SECTION("array") - { - json j = {1, 2, 3}; - json j_const(j); - - SECTION("json + begin/end") - { - json::iterator it_begin = j.begin(); - json::iterator it_end = j.end(); - - auto it = it_begin; - CHECK(it != it_end); - CHECK(*it == j[0]); - - it++; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j[1]); - - ++it; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j[2]); - - ++it; - CHECK(it != it_begin); - CHECK(it == it_end); - } - - SECTION("const json + begin/end") - { - json::const_iterator it_begin = j_const.begin(); - json::const_iterator it_end = j_const.end(); - - auto it = it_begin; - CHECK(it != it_end); - CHECK(*it == j_const[0]); - - it++; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j_const[1]); - - ++it; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j_const[2]); - - ++it; - CHECK(it != it_begin); - CHECK(it == it_end); - } - - SECTION("json + cbegin/cend") - { - json::const_iterator it_begin = j.cbegin(); - json::const_iterator it_end = j.cend(); - - auto it = it_begin; - CHECK(it != it_end); - CHECK(*it == j[0]); - - it++; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j[1]); - - ++it; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j[2]); - - ++it; - CHECK(it != it_begin); - CHECK(it == it_end); - } - - SECTION("const json + cbegin/cend") - { - json::const_iterator it_begin = j_const.cbegin(); - json::const_iterator it_end = j_const.cend(); - - auto it = it_begin; - CHECK(it != it_end); - CHECK(*it == j[0]); - - it++; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j[1]); - - ++it; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j[2]); - - ++it; - CHECK(it != it_begin); - CHECK(it == it_end); - } - - SECTION("json + rbegin/rend") - { - json::reverse_iterator it_begin = j.rbegin(); - json::reverse_iterator it_end = j.rend(); - - auto it = it_begin; - CHECK(it != it_end); - CHECK(*it == j[2]); - - it++; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j[1]); - - ++it; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j[0]); - - ++it; - CHECK(it != it_begin); - CHECK(it == it_end); - } - - SECTION("json + crbegin/crend") - { - json::const_reverse_iterator it_begin = j.crbegin(); - json::const_reverse_iterator it_end = j.crend(); - - auto it = it_begin; - CHECK(it != it_end); - CHECK(*it == j[2]); - - it++; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j[1]); - - ++it; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j[0]); - - ++it; - CHECK(it != it_begin); - CHECK(it == it_end); - } - - SECTION("const json + crbegin/crend") - { - json::const_reverse_iterator it_begin = j_const.crbegin(); - json::const_reverse_iterator it_end = j_const.crend(); - - auto it = it_begin; - CHECK(it != it_end); - CHECK(*it == j[2]); - - it++; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j[1]); - - ++it; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j[0]); - - ++it; - CHECK(it != it_begin); - CHECK(it == it_end); - } - - SECTION("key/value") - { - auto it = j.begin(); - auto cit = j_const.cbegin(); - CHECK_THROWS_AS(it.key(), std::domain_error); - CHECK_THROWS_WITH(it.key(), "cannot use key() for non-object iterators"); - CHECK(it.value() == json(1)); - CHECK_THROWS_AS(cit.key(), std::domain_error); - CHECK_THROWS_WITH(cit.key(), "cannot use key() for non-object iterators"); - CHECK(cit.value() == json(1)); - } - } - - SECTION("object") - { - json j = {{"A", 1}, {"B", 2}, {"C", 3}}; - json j_const(j); - - SECTION("json + begin/end") - { - json::iterator it_begin = j.begin(); - json::iterator it_end = j.end(); - - auto it = it_begin; - CHECK(it != it_end); - CHECK(*it == j["A"]); - - it++; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j["B"]); - - ++it; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j["C"]); - - ++it; - CHECK(it != it_begin); - CHECK(it == it_end); - } - - SECTION("const json + begin/end") - { - json::const_iterator it_begin = j_const.begin(); - json::const_iterator it_end = j_const.end(); - - auto it = it_begin; - CHECK(it != it_end); - CHECK(*it == j_const["A"]); - - it++; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j_const["B"]); - - ++it; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j_const["C"]); - - ++it; - CHECK(it != it_begin); - CHECK(it == it_end); - } - - SECTION("json + cbegin/cend") - { - json::const_iterator it_begin = j.cbegin(); - json::const_iterator it_end = j.cend(); - - auto it = it_begin; - CHECK(it != it_end); - CHECK(*it == j["A"]); - - it++; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j["B"]); - - ++it; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j["C"]); - - ++it; - CHECK(it != it_begin); - CHECK(it == it_end); - } - - SECTION("const json + cbegin/cend") - { - json::const_iterator it_begin = j_const.cbegin(); - json::const_iterator it_end = j_const.cend(); - - auto it = it_begin; - CHECK(it != it_end); - CHECK(*it == j_const["A"]); - - it++; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j_const["B"]); - - ++it; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j_const["C"]); - - ++it; - CHECK(it != it_begin); - CHECK(it == it_end); - } - - SECTION("json + rbegin/rend") - { - json::reverse_iterator it_begin = j.rbegin(); - json::reverse_iterator it_end = j.rend(); - - auto it = it_begin; - CHECK(it != it_end); - CHECK(*it == j["C"]); - - it++; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j["B"]); - - ++it; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j["A"]); - - ++it; - CHECK(it != it_begin); - CHECK(it == it_end); - } - - SECTION("json + crbegin/crend") - { - json::const_reverse_iterator it_begin = j.crbegin(); - json::const_reverse_iterator it_end = j.crend(); - - auto it = it_begin; - CHECK(it != it_end); - CHECK(*it == j["C"]); - - it++; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j["B"]); - - ++it; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j["A"]); - - ++it; - CHECK(it != it_begin); - CHECK(it == it_end); - } - - SECTION("const json + crbegin/crend") - { - json::const_reverse_iterator it_begin = j_const.crbegin(); - json::const_reverse_iterator it_end = j_const.crend(); - - auto it = it_begin; - CHECK(it != it_end); - CHECK(*it == j["C"]); - - it++; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j["B"]); - - ++it; - CHECK(it != it_begin); - CHECK(it != it_end); - CHECK(*it == j["A"]); - - ++it; - CHECK(it != it_begin); - CHECK(it == it_end); - } - - SECTION("key/value") - { - auto it = j.begin(); - auto cit = j_const.cbegin(); - CHECK(it.key() == "A"); - CHECK(it.value() == json(1)); - CHECK(cit.key() == "A"); - CHECK(cit.value() == json(1)); - } - } - - SECTION("number (integer)") - { - json j = 23; - json j_const(j); - - SECTION("json + begin/end") - { - json::iterator it = j.begin(); - CHECK(it != j.end()); - CHECK(*it == j); - - it++; - CHECK(it != j.begin()); - CHECK(it == j.end()); - - it--; - CHECK(it == j.begin()); - CHECK(it != j.end()); - CHECK(*it == j); - - ++it; - CHECK(it != j.begin()); - CHECK(it == j.end()); - - --it; - CHECK(it == j.begin()); - CHECK(it != j.end()); - CHECK(*it == j); - } - - SECTION("const json + begin/end") - { - json::const_iterator it = j_const.begin(); - CHECK(it != j_const.end()); - CHECK(*it == j_const); - - it++; - CHECK(it != j_const.begin()); - CHECK(it == j_const.end()); - - it--; - CHECK(it == j_const.begin()); - CHECK(it != j_const.end()); - CHECK(*it == j_const); - - ++it; - CHECK(it != j_const.begin()); - CHECK(it == j_const.end()); - - --it; - CHECK(it == j_const.begin()); - CHECK(it != j_const.end()); - CHECK(*it == j_const); - } - - SECTION("json + cbegin/cend") - { - json::const_iterator it = j.cbegin(); - CHECK(it != j.cend()); - CHECK(*it == j); - - it++; - CHECK(it != j.cbegin()); - CHECK(it == j.cend()); - - it--; - CHECK(it == j.cbegin()); - CHECK(it != j.cend()); - CHECK(*it == j); - - ++it; - CHECK(it != j.cbegin()); - CHECK(it == j.cend()); - - --it; - CHECK(it == j.cbegin()); - CHECK(it != j.cend()); - CHECK(*it == j); - } - - SECTION("const json + cbegin/cend") - { - json::const_iterator it = j_const.cbegin(); - CHECK(it != j_const.cend()); - CHECK(*it == j_const); - - it++; - CHECK(it != j_const.cbegin()); - CHECK(it == j_const.cend()); - - it--; - CHECK(it == j_const.cbegin()); - CHECK(it != j_const.cend()); - CHECK(*it == j_const); - - ++it; - CHECK(it != j_const.cbegin()); - CHECK(it == j_const.cend()); - - --it; - CHECK(it == j_const.cbegin()); - CHECK(it != j_const.cend()); - CHECK(*it == j_const); - } - - SECTION("json + rbegin/rend") - { - json::reverse_iterator it = j.rbegin(); - CHECK(it != j.rend()); - CHECK(*it == j); - - it++; - CHECK(it != j.rbegin()); - CHECK(it == j.rend()); - - it--; - CHECK(it == j.rbegin()); - CHECK(it != j.rend()); - CHECK(*it == j); - - ++it; - CHECK(it != j.rbegin()); - CHECK(it == j.rend()); - - --it; - CHECK(it == j.rbegin()); - CHECK(it != j.rend()); - CHECK(*it == j); - } - - SECTION("json + crbegin/crend") - { - json::const_reverse_iterator it = j.crbegin(); - CHECK(it != j.crend()); - CHECK(*it == j); - - it++; - CHECK(it != j.crbegin()); - CHECK(it == j.crend()); - - it--; - CHECK(it == j.crbegin()); - CHECK(it != j.crend()); - CHECK(*it == j); - - ++it; - CHECK(it != j.crbegin()); - CHECK(it == j.crend()); - - --it; - CHECK(it == j.crbegin()); - CHECK(it != j.crend()); - CHECK(*it == j); - } - - SECTION("const json + crbegin/crend") - { - json::const_reverse_iterator it = j_const.crbegin(); - CHECK(it != j_const.crend()); - CHECK(*it == j_const); - - it++; - CHECK(it != j_const.crbegin()); - CHECK(it == j_const.crend()); - - it--; - CHECK(it == j_const.crbegin()); - CHECK(it != j_const.crend()); - CHECK(*it == j_const); - - ++it; - CHECK(it != j_const.crbegin()); - CHECK(it == j_const.crend()); - - --it; - CHECK(it == j_const.crbegin()); - CHECK(it != j_const.crend()); - CHECK(*it == j_const); - } - - SECTION("key/value") - { - auto it = j.begin(); - auto cit = j_const.cbegin(); - CHECK_THROWS_AS(it.key(), std::domain_error); - CHECK_THROWS_WITH(it.key(), "cannot use key() for non-object iterators"); - CHECK(it.value() == json(23)); - CHECK_THROWS_AS(cit.key(), std::domain_error); - CHECK_THROWS_WITH(cit.key(), "cannot use key() for non-object iterators"); - CHECK(cit.value() == json(23)); - - auto rit = j.rend(); - auto crit = j.crend(); - CHECK_THROWS_AS(rit.key(), std::domain_error); - CHECK_THROWS_AS(rit.value(), std::out_of_range); - CHECK_THROWS_AS(crit.key(), std::domain_error); - CHECK_THROWS_AS(crit.value(), std::out_of_range); - CHECK_THROWS_WITH(rit.key(), "cannot use key() for non-object iterators"); - CHECK_THROWS_WITH(rit.value(), "cannot get value"); - CHECK_THROWS_WITH(crit.key(), "cannot use key() for non-object iterators"); - CHECK_THROWS_WITH(crit.value(), "cannot get value"); - } - } - - SECTION("number (unsigned)") - { - json j = 23u; - json j_const(j); - - SECTION("json + begin/end") - { - json::iterator it = j.begin(); - CHECK(it != j.end()); - CHECK(*it == j); - - it++; - CHECK(it != j.begin()); - CHECK(it == j.end()); - - it--; - CHECK(it == j.begin()); - CHECK(it != j.end()); - CHECK(*it == j); - - ++it; - CHECK(it != j.begin()); - CHECK(it == j.end()); - - --it; - CHECK(it == j.begin()); - CHECK(it != j.end()); - CHECK(*it == j); - } - - SECTION("const json + begin/end") - { - json::const_iterator it = j_const.begin(); - CHECK(it != j_const.end()); - CHECK(*it == j_const); - - it++; - CHECK(it != j_const.begin()); - CHECK(it == j_const.end()); - - it--; - CHECK(it == j_const.begin()); - CHECK(it != j_const.end()); - CHECK(*it == j_const); - - ++it; - CHECK(it != j_const.begin()); - CHECK(it == j_const.end()); - - --it; - CHECK(it == j_const.begin()); - CHECK(it != j_const.end()); - CHECK(*it == j_const); - } - - SECTION("json + cbegin/cend") - { - json::const_iterator it = j.cbegin(); - CHECK(it != j.cend()); - CHECK(*it == j); - - it++; - CHECK(it != j.cbegin()); - CHECK(it == j.cend()); - - it--; - CHECK(it == j.cbegin()); - CHECK(it != j.cend()); - CHECK(*it == j); - - ++it; - CHECK(it != j.cbegin()); - CHECK(it == j.cend()); - - --it; - CHECK(it == j.cbegin()); - CHECK(it != j.cend()); - CHECK(*it == j); - } - - SECTION("const json + cbegin/cend") - { - json::const_iterator it = j_const.cbegin(); - CHECK(it != j_const.cend()); - CHECK(*it == j_const); - - it++; - CHECK(it != j_const.cbegin()); - CHECK(it == j_const.cend()); - - it--; - CHECK(it == j_const.cbegin()); - CHECK(it != j_const.cend()); - CHECK(*it == j_const); - - ++it; - CHECK(it != j_const.cbegin()); - CHECK(it == j_const.cend()); - - --it; - CHECK(it == j_const.cbegin()); - CHECK(it != j_const.cend()); - CHECK(*it == j_const); - } - - SECTION("json + rbegin/rend") - { - json::reverse_iterator it = j.rbegin(); - CHECK(it != j.rend()); - CHECK(*it == j); - - it++; - CHECK(it != j.rbegin()); - CHECK(it == j.rend()); - - it--; - CHECK(it == j.rbegin()); - CHECK(it != j.rend()); - CHECK(*it == j); - - ++it; - CHECK(it != j.rbegin()); - CHECK(it == j.rend()); - - --it; - CHECK(it == j.rbegin()); - CHECK(it != j.rend()); - CHECK(*it == j); - } - - SECTION("json + crbegin/crend") - { - json::const_reverse_iterator it = j.crbegin(); - CHECK(it != j.crend()); - CHECK(*it == j); - - it++; - CHECK(it != j.crbegin()); - CHECK(it == j.crend()); - - it--; - CHECK(it == j.crbegin()); - CHECK(it != j.crend()); - CHECK(*it == j); - - ++it; - CHECK(it != j.crbegin()); - CHECK(it == j.crend()); - - --it; - CHECK(it == j.crbegin()); - CHECK(it != j.crend()); - CHECK(*it == j); - } - - SECTION("const json + crbegin/crend") - { - json::const_reverse_iterator it = j_const.crbegin(); - CHECK(it != j_const.crend()); - CHECK(*it == j_const); - - it++; - CHECK(it != j_const.crbegin()); - CHECK(it == j_const.crend()); - - it--; - CHECK(it == j_const.crbegin()); - CHECK(it != j_const.crend()); - CHECK(*it == j_const); - - ++it; - CHECK(it != j_const.crbegin()); - CHECK(it == j_const.crend()); - - --it; - CHECK(it == j_const.crbegin()); - CHECK(it != j_const.crend()); - CHECK(*it == j_const); - } - - SECTION("key/value") - { - auto it = j.begin(); - auto cit = j_const.cbegin(); - CHECK_THROWS_AS(it.key(), std::domain_error); - CHECK_THROWS_WITH(it.key(), "cannot use key() for non-object iterators"); - CHECK(it.value() == json(23)); - CHECK_THROWS_AS(cit.key(), std::domain_error); - CHECK_THROWS_WITH(cit.key(), "cannot use key() for non-object iterators"); - CHECK(cit.value() == json(23)); - - auto rit = j.rend(); - auto crit = j.crend(); - CHECK_THROWS_AS(rit.key(), std::domain_error); - CHECK_THROWS_AS(rit.value(), std::out_of_range); - CHECK_THROWS_AS(crit.key(), std::domain_error); - CHECK_THROWS_AS(crit.value(), std::out_of_range); - CHECK_THROWS_WITH(rit.key(), "cannot use key() for non-object iterators"); - CHECK_THROWS_WITH(rit.value(), "cannot get value"); - CHECK_THROWS_WITH(crit.key(), "cannot use key() for non-object iterators"); - CHECK_THROWS_WITH(crit.value(), "cannot get value"); - } - } - - SECTION("number (float)") - { - json j = 23.42; - json j_const(j); - - SECTION("json + begin/end") - { - json::iterator it = j.begin(); - CHECK(it != j.end()); - CHECK(*it == j); - - it++; - CHECK(it != j.begin()); - CHECK(it == j.end()); - - it--; - CHECK(it == j.begin()); - CHECK(it != j.end()); - CHECK(*it == j); - - ++it; - CHECK(it != j.begin()); - CHECK(it == j.end()); - - --it; - CHECK(it == j.begin()); - CHECK(it != j.end()); - CHECK(*it == j); - } - - SECTION("const json + begin/end") - { - json::const_iterator it = j_const.begin(); - CHECK(it != j_const.end()); - CHECK(*it == j_const); - - it++; - CHECK(it != j_const.begin()); - CHECK(it == j_const.end()); - - it--; - CHECK(it == j_const.begin()); - CHECK(it != j_const.end()); - CHECK(*it == j_const); - - ++it; - CHECK(it != j_const.begin()); - CHECK(it == j_const.end()); - - --it; - CHECK(it == j_const.begin()); - CHECK(it != j_const.end()); - CHECK(*it == j_const); - } - - SECTION("json + cbegin/cend") - { - json::const_iterator it = j.cbegin(); - CHECK(it != j.cend()); - CHECK(*it == j); - - it++; - CHECK(it != j.cbegin()); - CHECK(it == j.cend()); - - it--; - CHECK(it == j.cbegin()); - CHECK(it != j.cend()); - CHECK(*it == j); - - ++it; - CHECK(it != j.cbegin()); - CHECK(it == j.cend()); - - --it; - CHECK(it == j.cbegin()); - CHECK(it != j.cend()); - CHECK(*it == j); - } - - SECTION("const json + cbegin/cend") - { - json::const_iterator it = j_const.cbegin(); - CHECK(it != j_const.cend()); - CHECK(*it == j_const); - - it++; - CHECK(it != j_const.cbegin()); - CHECK(it == j_const.cend()); - - it--; - CHECK(it == j_const.cbegin()); - CHECK(it != j_const.cend()); - CHECK(*it == j_const); - - ++it; - CHECK(it != j_const.cbegin()); - CHECK(it == j_const.cend()); - - --it; - CHECK(it == j_const.cbegin()); - CHECK(it != j_const.cend()); - CHECK(*it == j_const); - } - - SECTION("json + rbegin/rend") - { - json::reverse_iterator it = j.rbegin(); - CHECK(it != j.rend()); - CHECK(*it == j); - - it++; - CHECK(it != j.rbegin()); - CHECK(it == j.rend()); - - it--; - CHECK(it == j.rbegin()); - CHECK(it != j.rend()); - CHECK(*it == j); - - ++it; - CHECK(it != j.rbegin()); - CHECK(it == j.rend()); - - --it; - CHECK(it == j.rbegin()); - CHECK(it != j.rend()); - CHECK(*it == j); - } - - SECTION("json + crbegin/crend") - { - json::const_reverse_iterator it = j.crbegin(); - CHECK(it != j.crend()); - CHECK(*it == j); - - it++; - CHECK(it != j.crbegin()); - CHECK(it == j.crend()); - - it--; - CHECK(it == j.crbegin()); - CHECK(it != j.crend()); - CHECK(*it == j); - - ++it; - CHECK(it != j.crbegin()); - CHECK(it == j.crend()); - - --it; - CHECK(it == j.crbegin()); - CHECK(it != j.crend()); - CHECK(*it == j); - } - - SECTION("const json + crbegin/crend") - { - json::const_reverse_iterator it = j_const.crbegin(); - CHECK(it != j_const.crend()); - CHECK(*it == j_const); - - it++; - CHECK(it != j_const.crbegin()); - CHECK(it == j_const.crend()); - - it--; - CHECK(it == j_const.crbegin()); - CHECK(it != j_const.crend()); - CHECK(*it == j_const); - - ++it; - CHECK(it != j_const.crbegin()); - CHECK(it == j_const.crend()); - - --it; - CHECK(it == j_const.crbegin()); - CHECK(it != j_const.crend()); - CHECK(*it == j_const); - } - - SECTION("key/value") - { - auto it = j.begin(); - auto cit = j_const.cbegin(); - CHECK_THROWS_AS(it.key(), std::domain_error); - CHECK_THROWS_WITH(it.key(), "cannot use key() for non-object iterators"); - CHECK(it.value() == json(23.42)); - CHECK_THROWS_AS(cit.key(), std::domain_error); - CHECK_THROWS_WITH(cit.key(), "cannot use key() for non-object iterators"); - CHECK(cit.value() == json(23.42)); - - auto rit = j.rend(); - auto crit = j.crend(); - CHECK_THROWS_AS(rit.key(), std::domain_error); - CHECK_THROWS_AS(rit.value(), std::out_of_range); - CHECK_THROWS_AS(crit.key(), std::domain_error); - CHECK_THROWS_AS(crit.value(), std::out_of_range); - CHECK_THROWS_WITH(rit.key(), "cannot use key() for non-object iterators"); - CHECK_THROWS_WITH(rit.value(), "cannot get value"); - CHECK_THROWS_WITH(crit.key(), "cannot use key() for non-object iterators"); - CHECK_THROWS_WITH(crit.value(), "cannot get value"); - } - } - - SECTION("null") - { - json j = nullptr; - json j_const(j); - - SECTION("json + begin/end") - { - json::iterator it = j.begin(); - CHECK(it == j.end()); - } - - SECTION("const json + begin/end") - { - json::const_iterator it_begin = j_const.begin(); - json::const_iterator it_end = j_const.end(); - CHECK(it_begin == it_end); - } - - SECTION("json + cbegin/cend") - { - json::const_iterator it_begin = j.cbegin(); - json::const_iterator it_end = j.cend(); - CHECK(it_begin == it_end); - } - - SECTION("const json + cbegin/cend") - { - json::const_iterator it_begin = j_const.cbegin(); - json::const_iterator it_end = j_const.cend(); - CHECK(it_begin == it_end); - } - - SECTION("json + rbegin/rend") - { - json::reverse_iterator it = j.rbegin(); - CHECK(it == j.rend()); - } - - SECTION("json + crbegin/crend") - { - json::const_reverse_iterator it = j.crbegin(); - CHECK(it == j.crend()); - } - - SECTION("const json + crbegin/crend") - { - json::const_reverse_iterator it = j_const.crbegin(); - CHECK(it == j_const.crend()); - } - - SECTION("key/value") - { - auto it = j.begin(); - auto cit = j_const.cbegin(); - CHECK_THROWS_AS(it.key(), std::domain_error); - CHECK_THROWS_AS(it.value(), std::out_of_range); - CHECK_THROWS_AS(cit.key(), std::domain_error); - CHECK_THROWS_AS(cit.value(), std::out_of_range); - CHECK_THROWS_WITH(it.key(), "cannot use key() for non-object iterators"); - CHECK_THROWS_WITH(it.value(), "cannot get value"); - CHECK_THROWS_WITH(cit.key(), "cannot use key() for non-object iterators"); - CHECK_THROWS_WITH(cit.value(), "cannot get value"); - - auto rit = j.rend(); - auto crit = j.crend(); - CHECK_THROWS_AS(rit.key(), std::domain_error); - CHECK_THROWS_AS(rit.value(), std::out_of_range); - CHECK_THROWS_AS(crit.key(), std::domain_error); - CHECK_THROWS_AS(crit.value(), std::out_of_range); - CHECK_THROWS_WITH(rit.key(), "cannot use key() for non-object iterators"); - CHECK_THROWS_WITH(rit.value(), "cannot get value"); - CHECK_THROWS_WITH(crit.key(), "cannot use key() for non-object iterators"); - CHECK_THROWS_WITH(crit.value(), "cannot get value"); - } - } - } - - SECTION("iterator comparisons") - { - json j_values = {nullptr, true, 42, 42u, 23.23, {{"one", 1}, {"two", 2}}, {1, 2, 3, 4, 5}, "Hello, world"}; - - for (json& j : j_values) - { - auto it1 = j.begin(); - auto it2 = j.begin(); - auto it3 = j.begin(); - ++it2; - ++it3; - ++it3; - auto it1_c = j.cbegin(); - auto it2_c = j.cbegin(); - auto it3_c = j.cbegin(); - ++it2_c; - ++it3_c; - ++it3_c; - - // comparison: equal - { - CHECK(it1 == it1); - CHECK(not (it1 == it2)); - CHECK(not (it1 == it3)); - CHECK(not (it2 == it3)); - CHECK(it1_c == it1_c); - CHECK(not (it1_c == it2_c)); - CHECK(not (it1_c == it3_c)); - CHECK(not (it2_c == it3_c)); - } - - // comparison: not equal - { - // check definition - CHECK( (it1 != it1) == not(it1 == it1) ); - CHECK( (it1 != it2) == not(it1 == it2) ); - CHECK( (it1 != it3) == not(it1 == it3) ); - CHECK( (it2 != it3) == not(it2 == it3) ); - CHECK( (it1_c != it1_c) == not(it1_c == it1_c) ); - CHECK( (it1_c != it2_c) == not(it1_c == it2_c) ); - CHECK( (it1_c != it3_c) == not(it1_c == it3_c) ); - CHECK( (it2_c != it3_c) == not(it2_c == it3_c) ); - } - - // comparison: smaller - { - if (j.type() == json::value_t::object) - { - CHECK_THROWS_AS(it1 < it1, std::domain_error); - CHECK_THROWS_AS(it1 < it2, std::domain_error); - CHECK_THROWS_AS(it2 < it3, std::domain_error); - CHECK_THROWS_AS(it1 < it3, std::domain_error); - CHECK_THROWS_AS(it1_c < it1_c, std::domain_error); - CHECK_THROWS_AS(it1_c < it2_c, std::domain_error); - CHECK_THROWS_AS(it2_c < it3_c, std::domain_error); - CHECK_THROWS_AS(it1_c < it3_c, std::domain_error); - CHECK_THROWS_WITH(it1 < it1, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1 < it2, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it2 < it3, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1 < it3, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c < it1_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c < it2_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it2_c < it3_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c < it3_c, "cannot compare order of object iterators"); - } - else - { - CHECK(not (it1 < it1)); - CHECK(it1 < it2); - CHECK(it1 < it3); - CHECK(it2 < it3); - CHECK(not (it1_c < it1_c)); - CHECK(it1_c < it2_c); - CHECK(it1_c < it3_c); - CHECK(it2_c < it3_c); - } - } - - // comparison: less than or equal - { - if (j.type() == json::value_t::object) - { - CHECK_THROWS_AS(it1 <= it1, std::domain_error); - CHECK_THROWS_AS(it1 <= it2, std::domain_error); - CHECK_THROWS_AS(it2 <= it3, std::domain_error); - CHECK_THROWS_AS(it1 <= it3, std::domain_error); - CHECK_THROWS_AS(it1_c <= it1_c, std::domain_error); - CHECK_THROWS_AS(it1_c <= it2_c, std::domain_error); - CHECK_THROWS_AS(it2_c <= it3_c, std::domain_error); - CHECK_THROWS_AS(it1_c <= it3_c, std::domain_error); - CHECK_THROWS_WITH(it1 <= it1, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1 <= it2, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it2 <= it3, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1 <= it3, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c <= it1_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c <= it2_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it2_c <= it3_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c <= it3_c, "cannot compare order of object iterators"); - } - else - { - // check definition - CHECK( (it1 <= it1) == not(it1 < it1) ); - CHECK( (it1 <= it2) == not(it2 < it1) ); - CHECK( (it1 <= it3) == not(it3 < it1) ); - CHECK( (it2 <= it3) == not(it3 < it2) ); - CHECK( (it1_c <= it1_c) == not(it1_c < it1_c) ); - CHECK( (it1_c <= it2_c) == not(it2_c < it1_c) ); - CHECK( (it1_c <= it3_c) == not(it3_c < it1_c) ); - CHECK( (it2_c <= it3_c) == not(it3_c < it2_c) ); - } - } - - // comparison: greater than - { - if (j.type() == json::value_t::object) - { - CHECK_THROWS_AS(it1 > it1, std::domain_error); - CHECK_THROWS_AS(it1 > it2, std::domain_error); - CHECK_THROWS_AS(it2 > it3, std::domain_error); - CHECK_THROWS_AS(it1 > it3, std::domain_error); - CHECK_THROWS_AS(it1_c > it1_c, std::domain_error); - CHECK_THROWS_AS(it1_c > it2_c, std::domain_error); - CHECK_THROWS_AS(it2_c > it3_c, std::domain_error); - CHECK_THROWS_AS(it1_c > it3_c, std::domain_error); - CHECK_THROWS_WITH(it1 > it1, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1 > it2, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it2 > it3, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1 > it3, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c > it1_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c > it2_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it2_c > it3_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c > it3_c, "cannot compare order of object iterators"); - } - else - { - // check definition - CHECK( (it1 > it1) == (it1 < it1) ); - CHECK( (it1 > it2) == (it2 < it1) ); - CHECK( (it1 > it3) == (it3 < it1) ); - CHECK( (it2 > it3) == (it3 < it2) ); - CHECK( (it1_c > it1_c) == (it1_c < it1_c) ); - CHECK( (it1_c > it2_c) == (it2_c < it1_c) ); - CHECK( (it1_c > it3_c) == (it3_c < it1_c) ); - CHECK( (it2_c > it3_c) == (it3_c < it2_c) ); - } - } - - // comparison: greater than or equal - { - if (j.type() == json::value_t::object) - { - CHECK_THROWS_AS(it1 >= it1, std::domain_error); - CHECK_THROWS_AS(it1 >= it2, std::domain_error); - CHECK_THROWS_AS(it2 >= it3, std::domain_error); - CHECK_THROWS_AS(it1 >= it3, std::domain_error); - CHECK_THROWS_AS(it1_c >= it1_c, std::domain_error); - CHECK_THROWS_AS(it1_c >= it2_c, std::domain_error); - CHECK_THROWS_AS(it2_c >= it3_c, std::domain_error); - CHECK_THROWS_AS(it1_c >= it3_c, std::domain_error); - CHECK_THROWS_WITH(it1 >= it1, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1 >= it2, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it2 >= it3, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1 >= it3, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c >= it1_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c >= it2_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it2_c >= it3_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c >= it3_c, "cannot compare order of object iterators"); - } - else - { - // check definition - CHECK( (it1 >= it1) == not(it1 < it1) ); - CHECK( (it1 >= it2) == not(it1 < it2) ); - CHECK( (it1 >= it3) == not(it1 < it3) ); - CHECK( (it2 >= it3) == not(it2 < it3) ); - CHECK( (it1_c >= it1_c) == not(it1_c < it1_c) ); - CHECK( (it1_c >= it2_c) == not(it1_c < it2_c) ); - CHECK( (it1_c >= it3_c) == not(it1_c < it3_c) ); - CHECK( (it2_c >= it3_c) == not(it2_c < it3_c) ); - } - } - } - - // check exceptions if different objects are compared - for (auto j : j_values) - { - for (auto k : j_values) - { - if (j != k) - { - CHECK_THROWS_AS(j.begin() == k.begin(), std::domain_error); - CHECK_THROWS_AS(j.cbegin() == k.cbegin(), std::domain_error); - CHECK_THROWS_WITH(j.begin() == k.begin(), "cannot compare iterators of different containers"); - CHECK_THROWS_WITH(j.cbegin() == k.cbegin(), "cannot compare iterators of different containers"); - - CHECK_THROWS_AS(j.begin() < k.begin(), std::domain_error); - CHECK_THROWS_AS(j.cbegin() < k.cbegin(), std::domain_error); - CHECK_THROWS_WITH(j.begin() < k.begin(), "cannot compare iterators of different containers"); - CHECK_THROWS_WITH(j.cbegin() < k.cbegin(), "cannot compare iterators of different containers"); - } - } - } - } - - SECTION("iterator arithmetic") - { - json j_object = {{"one", 1}, {"two", 2}, {"three", 3}}; - json j_array = {1, 2, 3, 4, 5, 6}; - json j_null = nullptr; - json j_value = 42; - - SECTION("addition and subtraction") - { - SECTION("object") - { - { - auto it = j_object.begin(); - CHECK_THROWS_AS(it += 1, std::domain_error); - CHECK_THROWS_WITH(it += 1, "cannot use offsets with object iterators"); - } - { - auto it = j_object.cbegin(); - CHECK_THROWS_AS(it += 1, std::domain_error); - CHECK_THROWS_WITH(it += 1, "cannot use offsets with object iterators"); - } - { - auto it = j_object.begin(); - CHECK_THROWS_AS(it + 1, std::domain_error); - CHECK_THROWS_WITH(it + 1, "cannot use offsets with object iterators"); - } - { - auto it = j_object.cbegin(); - CHECK_THROWS_AS(it + 1, std::domain_error); - CHECK_THROWS_WITH(it + 1, "cannot use offsets with object iterators"); - } - { - auto it = j_object.begin(); - CHECK_THROWS_AS(it -= 1, std::domain_error); - CHECK_THROWS_WITH(it -= 1, "cannot use offsets with object iterators"); - } - { - auto it = j_object.cbegin(); - CHECK_THROWS_AS(it -= 1, std::domain_error); - CHECK_THROWS_WITH(it -= 1, "cannot use offsets with object iterators"); - } - { - auto it = j_object.begin(); - CHECK_THROWS_AS(it - 1, std::domain_error); - CHECK_THROWS_WITH(it - 1, "cannot use offsets with object iterators"); - } - { - auto it = j_object.cbegin(); - CHECK_THROWS_AS(it - 1, std::domain_error); - CHECK_THROWS_WITH(it - 1, "cannot use offsets with object iterators"); - } - { - auto it = j_object.begin(); - CHECK_THROWS_AS(it - it, std::domain_error); - CHECK_THROWS_WITH(it - it, "cannot use offsets with object iterators"); - } - { - auto it = j_object.cbegin(); - CHECK_THROWS_AS(it - it, std::domain_error); - CHECK_THROWS_WITH(it - it, "cannot use offsets with object iterators"); - } - } - - SECTION("array") - { - { - auto it = j_array.begin(); - it += 3; - CHECK((j_array.begin() + 3) == it); - CHECK((it - 3) == j_array.begin()); - CHECK((it - j_array.begin()) == 3); - CHECK(*it == json(4)); - it -= 2; - CHECK(*it == json(2)); - } - { - auto it = j_array.cbegin(); - it += 3; - CHECK((j_array.cbegin() + 3) == it); - CHECK((it - 3) == j_array.cbegin()); - CHECK((it - j_array.cbegin()) == 3); - CHECK(*it == json(4)); - it -= 2; - CHECK(*it == json(2)); - } - } - - SECTION("null") - { - { - auto it = j_null.begin(); - it += 3; - CHECK((j_null.begin() + 3) == it); - CHECK((it - 3) == j_null.begin()); - CHECK((it - j_null.begin()) == 3); - CHECK(it != j_null.end()); - it -= 3; - CHECK(it == j_null.end()); - } - { - auto it = j_null.cbegin(); - it += 3; - CHECK((j_null.cbegin() + 3) == it); - CHECK((it - 3) == j_null.cbegin()); - CHECK((it - j_null.cbegin()) == 3); - CHECK(it != j_null.cend()); - it -= 3; - CHECK(it == j_null.cend()); - } - } - - SECTION("value") - { - { - auto it = j_value.begin(); - it += 3; - CHECK((j_value.begin() + 3) == it); - CHECK((it - 3) == j_value.begin()); - CHECK((it - j_value.begin()) == 3); - CHECK(it != j_value.end()); - it -= 3; - CHECK(*it == json(42)); - } - { - auto it = j_value.cbegin(); - it += 3; - CHECK((j_value.cbegin() + 3) == it); - CHECK((it - 3) == j_value.cbegin()); - CHECK((it - j_value.cbegin()) == 3); - CHECK(it != j_value.cend()); - it -= 3; - CHECK(*it == json(42)); - } - } - } - - SECTION("subscript operator") - { - SECTION("object") - { - { - auto it = j_object.begin(); - CHECK_THROWS_AS(it[0], std::domain_error); - CHECK_THROWS_AS(it[1], std::domain_error); - CHECK_THROWS_WITH(it[0], "cannot use operator[] for object iterators"); - CHECK_THROWS_WITH(it[1], "cannot use operator[] for object iterators"); - } - { - auto it = j_object.cbegin(); - CHECK_THROWS_AS(it[0], std::domain_error); - CHECK_THROWS_AS(it[1], std::domain_error); - CHECK_THROWS_WITH(it[0], "cannot use operator[] for object iterators"); - CHECK_THROWS_WITH(it[1], "cannot use operator[] for object iterators"); - } - } - - SECTION("array") - { - { - auto it = j_array.begin(); - CHECK(it[0] == json(1)); - CHECK(it[1] == json(2)); - CHECK(it[2] == json(3)); - CHECK(it[3] == json(4)); - CHECK(it[4] == json(5)); - CHECK(it[5] == json(6)); - } - { - auto it = j_array.cbegin(); - CHECK(it[0] == json(1)); - CHECK(it[1] == json(2)); - CHECK(it[2] == json(3)); - CHECK(it[3] == json(4)); - CHECK(it[4] == json(5)); - CHECK(it[5] == json(6)); - } - } - - SECTION("null") - { - { - auto it = j_null.begin(); - CHECK_THROWS_AS(it[0], std::out_of_range); - CHECK_THROWS_AS(it[1], std::out_of_range); - CHECK_THROWS_WITH(it[0], "cannot get value"); - CHECK_THROWS_WITH(it[1], "cannot get value"); - } - { - auto it = j_null.cbegin(); - CHECK_THROWS_AS(it[0], std::out_of_range); - CHECK_THROWS_AS(it[1], std::out_of_range); - CHECK_THROWS_WITH(it[0], "cannot get value"); - CHECK_THROWS_WITH(it[1], "cannot get value"); - } - } - - SECTION("value") - { - { - auto it = j_value.begin(); - CHECK(it[0] == json(42)); - CHECK_THROWS_AS(it[1], std::out_of_range); - CHECK_THROWS_WITH(it[1], "cannot get value"); - } - { - auto it = j_value.cbegin(); - CHECK(it[0] == json(42)); - CHECK_THROWS_AS(it[1], std::out_of_range); - CHECK_THROWS_WITH(it[1], "cannot get value"); - } - } - } - } - - SECTION("reverse iterator comparisons") - { - json j_values = {nullptr, true, 42, 42u, 23.23, {{"one", 1}, {"two", 2}}, {1, 2, 3, 4, 5}, "Hello, world"}; - - for (json& j : j_values) - { - auto it1 = j.rbegin(); - auto it2 = j.rbegin(); - auto it3 = j.rbegin(); - ++it2; - ++it3; - ++it3; - auto it1_c = j.crbegin(); - auto it2_c = j.crbegin(); - auto it3_c = j.crbegin(); - ++it2_c; - ++it3_c; - ++it3_c; - - // comparison: equal - { - CHECK(it1 == it1); - CHECK(not (it1 == it2)); - CHECK(not (it1 == it3)); - CHECK(not (it2 == it3)); - CHECK(it1_c == it1_c); - CHECK(not (it1_c == it2_c)); - CHECK(not (it1_c == it3_c)); - CHECK(not (it2_c == it3_c)); - } - - // comparison: not equal - { - // check definition - CHECK( (it1 != it1) == not(it1 == it1) ); - CHECK( (it1 != it2) == not(it1 == it2) ); - CHECK( (it1 != it3) == not(it1 == it3) ); - CHECK( (it2 != it3) == not(it2 == it3) ); - CHECK( (it1_c != it1_c) == not(it1_c == it1_c) ); - CHECK( (it1_c != it2_c) == not(it1_c == it2_c) ); - CHECK( (it1_c != it3_c) == not(it1_c == it3_c) ); - CHECK( (it2_c != it3_c) == not(it2_c == it3_c) ); - } - - // comparison: smaller - { - if (j.type() == json::value_t::object) - { - CHECK_THROWS_AS(it1 < it1, std::domain_error); - CHECK_THROWS_AS(it1 < it2, std::domain_error); - CHECK_THROWS_AS(it2 < it3, std::domain_error); - CHECK_THROWS_AS(it1 < it3, std::domain_error); - CHECK_THROWS_AS(it1_c < it1_c, std::domain_error); - CHECK_THROWS_AS(it1_c < it2_c, std::domain_error); - CHECK_THROWS_AS(it2_c < it3_c, std::domain_error); - CHECK_THROWS_AS(it1_c < it3_c, std::domain_error); - CHECK_THROWS_WITH(it1 < it1, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1 < it2, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it2 < it3, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1 < it3, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c < it1_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c < it2_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it2_c < it3_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c < it3_c, "cannot compare order of object iterators"); - } - else - { - CHECK(not (it1 < it1)); - CHECK(it1 < it2); - CHECK(it1 < it3); - CHECK(it2 < it3); - CHECK(not (it1_c < it1_c)); - CHECK(it1_c < it2_c); - CHECK(it1_c < it3_c); - CHECK(it2_c < it3_c); - } - } - - // comparison: less than or equal - { - if (j.type() == json::value_t::object) - { - CHECK_THROWS_AS(it1 <= it1, std::domain_error); - CHECK_THROWS_AS(it1 <= it2, std::domain_error); - CHECK_THROWS_AS(it2 <= it3, std::domain_error); - CHECK_THROWS_AS(it1 <= it3, std::domain_error); - CHECK_THROWS_AS(it1_c <= it1_c, std::domain_error); - CHECK_THROWS_AS(it1_c <= it2_c, std::domain_error); - CHECK_THROWS_AS(it2_c <= it3_c, std::domain_error); - CHECK_THROWS_AS(it1_c <= it3_c, std::domain_error); - CHECK_THROWS_WITH(it1 <= it1, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1 <= it2, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it2 <= it3, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1 <= it3, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c <= it1_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c <= it2_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it2_c <= it3_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c <= it3_c, "cannot compare order of object iterators"); - } - else - { - // check definition - CHECK( (it1 <= it1) == not(it1 < it1) ); - CHECK( (it1 <= it2) == not(it2 < it1) ); - CHECK( (it1 <= it3) == not(it3 < it1) ); - CHECK( (it2 <= it3) == not(it3 < it2) ); - CHECK( (it1_c <= it1_c) == not(it1_c < it1_c) ); - CHECK( (it1_c <= it2_c) == not(it2_c < it1_c) ); - CHECK( (it1_c <= it3_c) == not(it3_c < it1_c) ); - CHECK( (it2_c <= it3_c) == not(it3_c < it2_c) ); - } - } - - // comparison: greater than - { - if (j.type() == json::value_t::object) - { - CHECK_THROWS_AS(it1 > it1, std::domain_error); - CHECK_THROWS_AS(it1 > it2, std::domain_error); - CHECK_THROWS_AS(it2 > it3, std::domain_error); - CHECK_THROWS_AS(it1 > it3, std::domain_error); - CHECK_THROWS_AS(it1_c > it1_c, std::domain_error); - CHECK_THROWS_AS(it1_c > it2_c, std::domain_error); - CHECK_THROWS_AS(it2_c > it3_c, std::domain_error); - CHECK_THROWS_AS(it1_c > it3_c, std::domain_error); - CHECK_THROWS_WITH(it1 > it1, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1 > it2, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it2 > it3, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1 > it3, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c > it1_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c > it2_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it2_c > it3_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c > it3_c, "cannot compare order of object iterators"); - } - else - { - // check definition - CHECK( (it1 > it1) == (it1 < it1) ); - CHECK( (it1 > it2) == (it2 < it1) ); - CHECK( (it1 > it3) == (it3 < it1) ); - CHECK( (it2 > it3) == (it3 < it2) ); - CHECK( (it1_c > it1_c) == (it1_c < it1_c) ); - CHECK( (it1_c > it2_c) == (it2_c < it1_c) ); - CHECK( (it1_c > it3_c) == (it3_c < it1_c) ); - CHECK( (it2_c > it3_c) == (it3_c < it2_c) ); - } - } - - // comparison: greater than or equal - { - if (j.type() == json::value_t::object) - { - CHECK_THROWS_AS(it1 >= it1, std::domain_error); - CHECK_THROWS_AS(it1 >= it2, std::domain_error); - CHECK_THROWS_AS(it2 >= it3, std::domain_error); - CHECK_THROWS_AS(it1 >= it3, std::domain_error); - CHECK_THROWS_AS(it1_c >= it1_c, std::domain_error); - CHECK_THROWS_AS(it1_c >= it2_c, std::domain_error); - CHECK_THROWS_AS(it2_c >= it3_c, std::domain_error); - CHECK_THROWS_AS(it1_c >= it3_c, std::domain_error); - CHECK_THROWS_WITH(it1 >= it1, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1 >= it2, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it2 >= it3, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1 >= it3, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c >= it1_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c >= it2_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it2_c >= it3_c, "cannot compare order of object iterators"); - CHECK_THROWS_WITH(it1_c >= it3_c, "cannot compare order of object iterators"); - } - else - { - // check definition - CHECK( (it1 >= it1) == not(it1 < it1) ); - CHECK( (it1 >= it2) == not(it1 < it2) ); - CHECK( (it1 >= it3) == not(it1 < it3) ); - CHECK( (it2 >= it3) == not(it2 < it3) ); - CHECK( (it1_c >= it1_c) == not(it1_c < it1_c) ); - CHECK( (it1_c >= it2_c) == not(it1_c < it2_c) ); - CHECK( (it1_c >= it3_c) == not(it1_c < it3_c) ); - CHECK( (it2_c >= it3_c) == not(it2_c < it3_c) ); - } - } - } - - // check exceptions if different objects are compared - for (auto j : j_values) - { - for (auto k : j_values) - { - if (j != k) - { - CHECK_THROWS_AS(j.rbegin() == k.rbegin(), std::domain_error); - CHECK_THROWS_AS(j.crbegin() == k.crbegin(), std::domain_error); - CHECK_THROWS_WITH(j.rbegin() == k.rbegin(), "cannot compare iterators of different containers"); - CHECK_THROWS_WITH(j.crbegin() == k.crbegin(), "cannot compare iterators of different containers"); - - CHECK_THROWS_AS(j.rbegin() < k.rbegin(), std::domain_error); - CHECK_THROWS_AS(j.crbegin() < k.crbegin(), std::domain_error); - CHECK_THROWS_WITH(j.rbegin() < k.rbegin(), "cannot compare iterators of different containers"); - CHECK_THROWS_WITH(j.crbegin() < k.crbegin(), "cannot compare iterators of different containers"); - } - } - } - } - - SECTION("reverse iterator arithmetic") - { - json j_object = {{"one", 1}, {"two", 2}, {"three", 3}}; - json j_array = {1, 2, 3, 4, 5, 6}; - json j_null = nullptr; - json j_value = 42; - - SECTION("addition and subtraction") - { - SECTION("object") - { - { - auto it = j_object.rbegin(); - CHECK_THROWS_AS(it += 1, std::domain_error); - CHECK_THROWS_WITH(it += 1, "cannot use offsets with object iterators"); - } - { - auto it = j_object.crbegin(); - CHECK_THROWS_AS(it += 1, std::domain_error); - CHECK_THROWS_WITH(it += 1, "cannot use offsets with object iterators"); - } - { - auto it = j_object.rbegin(); - CHECK_THROWS_AS(it + 1, std::domain_error); - CHECK_THROWS_WITH(it + 1, "cannot use offsets with object iterators"); - } - { - auto it = j_object.crbegin(); - CHECK_THROWS_AS(it + 1, std::domain_error); - CHECK_THROWS_WITH(it + 1, "cannot use offsets with object iterators"); - } - { - auto it = j_object.rbegin(); - CHECK_THROWS_AS(it -= 1, std::domain_error); - CHECK_THROWS_WITH(it -= 1, "cannot use offsets with object iterators"); - } - { - auto it = j_object.crbegin(); - CHECK_THROWS_AS(it -= 1, std::domain_error); - CHECK_THROWS_WITH(it -= 1, "cannot use offsets with object iterators"); - } - { - auto it = j_object.rbegin(); - CHECK_THROWS_AS(it - 1, std::domain_error); - CHECK_THROWS_WITH(it - 1, "cannot use offsets with object iterators"); - } - { - auto it = j_object.crbegin(); - CHECK_THROWS_AS(it - 1, std::domain_error); - CHECK_THROWS_WITH(it - 1, "cannot use offsets with object iterators"); - } - { - auto it = j_object.rbegin(); - CHECK_THROWS_AS(it - it, std::domain_error); - CHECK_THROWS_WITH(it - it, "cannot use offsets with object iterators"); - } - { - auto it = j_object.crbegin(); - CHECK_THROWS_AS(it - it, std::domain_error); - CHECK_THROWS_WITH(it - it, "cannot use offsets with object iterators"); - } - } - - SECTION("array") - { - { - auto it = j_array.rbegin(); - it += 3; - CHECK((j_array.rbegin() + 3) == it); - CHECK((it - 3) == j_array.rbegin()); - CHECK((j_array.rbegin() - it) == 3); - CHECK(*it == json(3)); - it -= 2; - CHECK(*it == json(5)); - } - { - auto it = j_array.crbegin(); - it += 3; - CHECK((j_array.crbegin() + 3) == it); - CHECK((it - 3) == j_array.crbegin()); - CHECK((j_array.crbegin() - it) == 3); - CHECK(*it == json(3)); - it -= 2; - CHECK(*it == json(5)); - } - } - - SECTION("null") - { - { - auto it = j_null.rbegin(); - it += 3; - CHECK((j_null.rbegin() + 3) == it); - CHECK((it - 3) == j_null.rbegin()); - CHECK((j_null.rbegin() - it) == 3); - CHECK(it != j_null.rend()); - it -= 3; - CHECK(it == j_null.rend()); - } - { - auto it = j_null.crbegin(); - it += 3; - CHECK((j_null.crbegin() + 3) == it); - CHECK((it - 3) == j_null.crbegin()); - CHECK((j_null.crbegin() - it) == 3); - CHECK(it != j_null.crend()); - it -= 3; - CHECK(it == j_null.crend()); - } - } - - SECTION("value") - { - { - auto it = j_value.rbegin(); - it += 3; - CHECK((j_value.rbegin() + 3) == it); - CHECK((it - 3) == j_value.rbegin()); - CHECK((j_value.rbegin() - it) == 3); - CHECK(it != j_value.rend()); - it -= 3; - CHECK(*it == json(42)); - } - { - auto it = j_value.crbegin(); - it += 3; - CHECK((j_value.crbegin() + 3) == it); - CHECK((it - 3) == j_value.crbegin()); - CHECK((j_value.crbegin() - it) == 3); - CHECK(it != j_value.crend()); - it -= 3; - CHECK(*it == json(42)); - } - } - } - - SECTION("subscript operator") - { - SECTION("object") - { - { - auto it = j_object.rbegin(); - CHECK_THROWS_AS(it[0], std::domain_error); - CHECK_THROWS_AS(it[1], std::domain_error); - CHECK_THROWS_WITH(it[0], "cannot use offsets with object iterators"); - CHECK_THROWS_WITH(it[1], "cannot use offsets with object iterators"); - } - { - auto it = j_object.crbegin(); - CHECK_THROWS_AS(it[0], std::domain_error); - CHECK_THROWS_AS(it[1], std::domain_error); - CHECK_THROWS_WITH(it[0], "cannot use offsets with object iterators"); - CHECK_THROWS_WITH(it[1], "cannot use offsets with object iterators"); - } - } - - SECTION("array") - { - { - auto it = j_array.rbegin(); - CHECK(it[0] == json(6)); - CHECK(it[1] == json(5)); - CHECK(it[2] == json(4)); - CHECK(it[3] == json(3)); - CHECK(it[4] == json(2)); - CHECK(it[5] == json(1)); - } - { - auto it = j_array.crbegin(); - CHECK(it[0] == json(6)); - CHECK(it[1] == json(5)); - CHECK(it[2] == json(4)); - CHECK(it[3] == json(3)); - CHECK(it[4] == json(2)); - CHECK(it[5] == json(1)); - } - } - - SECTION("null") - { - { - auto it = j_null.rbegin(); - CHECK_THROWS_AS(it[0], std::out_of_range); - CHECK_THROWS_AS(it[1], std::out_of_range); - CHECK_THROWS_WITH(it[0], "cannot get value"); - CHECK_THROWS_WITH(it[1], "cannot get value"); - } - { - auto it = j_null.crbegin(); - CHECK_THROWS_AS(it[0], std::out_of_range); - CHECK_THROWS_AS(it[1], std::out_of_range); - CHECK_THROWS_WITH(it[0], "cannot get value"); - CHECK_THROWS_WITH(it[1], "cannot get value"); - } - } - - SECTION("value") - { - { - auto it = j_value.rbegin(); - CHECK(it[0] == json(42)); - CHECK_THROWS_AS(it[1], std::out_of_range); - CHECK_THROWS_WITH(it[1], "cannot get value"); - } - { - auto it = j_value.crbegin(); - CHECK(it[0] == json(42)); - CHECK_THROWS_AS(it[1], std::out_of_range); - CHECK_THROWS_WITH(it[1], "cannot get value"); - } - } - } - } -} - -TEST_CASE("capacity") -{ - SECTION("empty()") - { - SECTION("boolean") - { - json j = true; - json j_const(j); - - SECTION("result of empty") - { - CHECK(j.empty() == false); - CHECK(j_const.empty() == false); - } - - SECTION("definition of empty") - { - CHECK(j.begin() != j.end()); - CHECK(j_const.begin() != j_const.end()); - } - } - - SECTION("string") - { - json j = "hello world"; - json j_const(j); - - SECTION("result of empty") - { - CHECK(j.empty() == false); - CHECK(j_const.empty() == false); - } - - SECTION("definition of empty") - { - CHECK(j.begin() != j.end()); - CHECK(j_const.begin() != j_const.end()); - } - } - - SECTION("array") - { - SECTION("empty array") - { - json j = json::array(); - json j_const(j); - - SECTION("result of empty") - { - CHECK(j.empty() == true); - CHECK(j_const.empty() == true); - } - - SECTION("definition of empty") - { - CHECK(j.begin() == j.end()); - CHECK(j_const.begin() == j_const.end()); - } - } - - SECTION("filled array") - { - json j = {1, 2, 3}; - json j_const(j); - - SECTION("result of empty") - { - CHECK(j.empty() == false); - CHECK(j_const.empty() == false); - } - - SECTION("definition of empty") - { - CHECK(j.begin() != j.end()); - CHECK(j_const.begin() != j_const.end()); - } - } - } - - SECTION("object") - { - SECTION("empty object") - { - json j = json::object(); - json j_const(j); - - SECTION("result of empty") - { - CHECK(j.empty() == true); - CHECK(j_const.empty() == true); - } - - SECTION("definition of empty") - { - CHECK(j.begin() == j.end()); - CHECK(j_const.begin() == j_const.end()); - } - } - - SECTION("filled object") - { - json j = {{"one", 1}, {"two", 2}, {"three", 3}}; - json j_const(j); - - SECTION("result of empty") - { - CHECK(j.empty() == false); - CHECK(j_const.empty() == false); - } - - SECTION("definition of empty") - { - CHECK(j.begin() != j.end()); - CHECK(j_const.begin() != j_const.end()); - } - } - } - - SECTION("number (integer)") - { - json j = 23; - json j_const(j); - - SECTION("result of empty") - { - CHECK(j.empty() == false); - CHECK(j_const.empty() == false); - } - - SECTION("definition of empty") - { - CHECK(j.begin() != j.end()); - CHECK(j_const.begin() != j_const.end()); - } - } - - SECTION("number (unsigned)") - { - json j = 23u; - json j_const(j); - - SECTION("result of empty") - { - CHECK(j.empty() == false); - CHECK(j_const.empty() == false); - } - - SECTION("definition of empty") - { - CHECK(j.begin() != j.end()); - CHECK(j_const.begin() != j_const.end()); - } - } - - SECTION("number (float)") - { - json j = 23.42; - json j_const(j); - - SECTION("result of empty") - { - CHECK(j.empty() == false); - CHECK(j_const.empty() == false); - } - - SECTION("definition of empty") - { - CHECK(j.begin() != j.end()); - CHECK(j_const.begin() != j_const.end()); - } - } - - SECTION("null") - { - json j = nullptr; - json j_const(j); - - SECTION("result of empty") - { - CHECK(j.empty() == true); - CHECK(j_const.empty() == true); - } - - SECTION("definition of empty") - { - CHECK(j.begin() == j.end()); - CHECK(j_const.begin() == j_const.end()); - } - } - } - - SECTION("size()") - { - SECTION("boolean") - { - json j = true; - json j_const(j); - - SECTION("result of size") - { - CHECK(j.size() == 1); - CHECK(j_const.size() == 1); - } - - SECTION("definition of size") - { - CHECK(std::distance(j.begin(), j.end()) == j.size()); - CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size()); - CHECK(std::distance(j.rbegin(), j.rend()) == j.size()); - CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size()); - } - } - - SECTION("string") - { - json j = "hello world"; - json j_const(j); - - SECTION("result of size") - { - CHECK(j.size() == 1); - CHECK(j_const.size() == 1); - } - - SECTION("definition of size") - { - CHECK(std::distance(j.begin(), j.end()) == j.size()); - CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size()); - CHECK(std::distance(j.rbegin(), j.rend()) == j.size()); - CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size()); - } - } - - SECTION("array") - { - SECTION("empty array") - { - json j = json::array(); - json j_const(j); - - SECTION("result of size") - { - CHECK(j.size() == 0); - CHECK(j_const.size() == 0); - } - - SECTION("definition of size") - { - CHECK(std::distance(j.begin(), j.end()) == j.size()); - CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size()); - CHECK(std::distance(j.rbegin(), j.rend()) == j.size()); - CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size()); - } - } - - SECTION("filled array") - { - json j = {1, 2, 3}; - json j_const(j); - - SECTION("result of size") - { - CHECK(j.size() == 3); - CHECK(j_const.size() == 3); - } - - SECTION("definition of size") - { - CHECK(std::distance(j.begin(), j.end()) == j.size()); - CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size()); - CHECK(std::distance(j.rbegin(), j.rend()) == j.size()); - CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size()); - } - } - } - - SECTION("object") - { - SECTION("empty object") - { - json j = json::object(); - json j_const(j); - - SECTION("result of size") - { - CHECK(j.size() == 0); - CHECK(j_const.size() == 0); - } - - SECTION("definition of size") - { - CHECK(std::distance(j.begin(), j.end()) == j.size()); - CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size()); - CHECK(std::distance(j.rbegin(), j.rend()) == j.size()); - CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size()); - } - } - - SECTION("filled object") - { - json j = {{"one", 1}, {"two", 2}, {"three", 3}}; - json j_const(j); - - SECTION("result of size") - { - CHECK(j.size() == 3); - CHECK(j_const.size() == 3); - } - - SECTION("definition of size") - { - CHECK(std::distance(j.begin(), j.end()) == j.size()); - CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size()); - CHECK(std::distance(j.rbegin(), j.rend()) == j.size()); - CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size()); - } - } - } - - SECTION("number (integer)") - { - json j = 23; - json j_const(j); - - SECTION("result of size") - { - CHECK(j.size() == 1); - CHECK(j_const.size() == 1); - } - - SECTION("definition of size") - { - CHECK(std::distance(j.begin(), j.end()) == j.size()); - CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size()); - CHECK(std::distance(j.rbegin(), j.rend()) == j.size()); - CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size()); - } - } - - SECTION("number (unsigned)") - { - json j = 23u; - json j_const(j); - - SECTION("result of size") - { - CHECK(j.size() == 1); - CHECK(j_const.size() == 1); - } - - SECTION("definition of size") - { - CHECK(std::distance(j.begin(), j.end()) == j.size()); - CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size()); - CHECK(std::distance(j.rbegin(), j.rend()) == j.size()); - CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size()); - } - } - - SECTION("number (float)") - { - json j = 23.42; - json j_const(j); - - SECTION("result of size") - { - CHECK(j.size() == 1); - CHECK(j_const.size() == 1); - } - - SECTION("definition of size") - { - CHECK(std::distance(j.begin(), j.end()) == j.size()); - CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size()); - CHECK(std::distance(j.rbegin(), j.rend()) == j.size()); - CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size()); - } - } - - SECTION("null") - { - json j = nullptr; - json j_const(j); - - SECTION("result of size") - { - CHECK(j.size() == 0); - CHECK(j_const.size() == 0); - } - - SECTION("definition of size") - { - CHECK(std::distance(j.begin(), j.end()) == j.size()); - CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size()); - CHECK(std::distance(j.rbegin(), j.rend()) == j.size()); - CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size()); - } - } - } - - SECTION("max_size()") - { - SECTION("boolean") - { - json j = true; - json j_const(j); - - SECTION("result of max_size") - { - CHECK(j.max_size() == 1); - CHECK(j_const.max_size() == 1); - } - } - - SECTION("string") - { - json j = "hello world"; - json j_const(j); - - SECTION("result of max_size") - { - CHECK(j.max_size() == 1); - CHECK(j_const.max_size() == 1); - } - } - - SECTION("array") - { - SECTION("empty array") - { - json j = json::array(); - json j_const(j); - - SECTION("result of max_size") - { - CHECK(j.max_size() >= j.size()); - CHECK(j_const.max_size() >= j_const.size()); - } - } - - SECTION("filled array") - { - json j = {1, 2, 3}; - json j_const(j); - - SECTION("result of max_size") - { - CHECK(j.max_size() >= j.size()); - CHECK(j_const.max_size() >= j_const.size()); - } - } - } - - SECTION("object") - { - SECTION("empty object") - { - json j = json::object(); - json j_const(j); - - SECTION("result of max_size") - { - CHECK(j.max_size() >= j.size()); - CHECK(j_const.max_size() >= j_const.size()); - } - } - - SECTION("filled object") - { - json j = {{"one", 1}, {"two", 2}, {"three", 3}}; - json j_const(j); - - SECTION("result of max_size") - { - CHECK(j.max_size() >= j.size()); - CHECK(j_const.max_size() >= j_const.size()); - } - } - } - - SECTION("number (integer)") - { - json j = 23; - json j_const(j); - - SECTION("result of max_size") - { - CHECK(j.max_size() == 1); - CHECK(j_const.max_size() == 1); - } - } - - SECTION("number (unsigned)") - { - json j = 23u; - json j_const(j); - - SECTION("result of max_size") - { - CHECK(j.max_size() == 1); - CHECK(j_const.max_size() == 1); - } - } - - SECTION("number (float)") - { - json j = 23.42; - json j_const(j); - - SECTION("result of max_size") - { - CHECK(j.max_size() == 1); - CHECK(j_const.max_size() == 1); - } - } - - SECTION("null") - { - json j = nullptr; - json j_const(j); - - SECTION("result of max_size") - { - CHECK(j.max_size() == 0); - CHECK(j_const.max_size() == 0); - } - } - } -} - -TEST_CASE("modifiers") -{ - SECTION("clear()") - { - SECTION("boolean") - { - json j = true; - - j.clear(); - CHECK(j == json(json::value_t::boolean)); - } - - SECTION("string") - { - json j = "hello world"; - - j.clear(); - CHECK(j == json(json::value_t::string)); - } - - SECTION("array") - { - SECTION("empty array") - { - json j = json::array(); - - j.clear(); - CHECK(j.empty()); - CHECK(j == json(json::value_t::array)); - } - - SECTION("filled array") - { - json j = {1, 2, 3}; - - j.clear(); - CHECK(j.empty()); - CHECK(j == json(json::value_t::array)); - } - } - - SECTION("object") - { - SECTION("empty object") - { - json j = json::object(); - - j.clear(); - CHECK(j.empty()); - CHECK(j == json(json::value_t::object)); - } - - SECTION("filled object") - { - json j = {{"one", 1}, {"two", 2}, {"three", 3}}; - - j.clear(); - CHECK(j.empty()); - CHECK(j == json(json::value_t::object)); - } - } - - SECTION("number (integer)") - { - json j = 23; - - j.clear(); - CHECK(j == json(json::value_t::number_integer)); - } - - SECTION("number (unsigned)") - { - json j = 23u; - - j.clear(); - CHECK(j == json(json::value_t::number_integer)); - } - - SECTION("number (float)") - { - json j = 23.42; - - j.clear(); - CHECK(j == json(json::value_t::number_float)); - } - - SECTION("null") - { - json j = nullptr; - - j.clear(); - CHECK(j == json(json::value_t::null)); - } - } - - SECTION("push_back()") - { - SECTION("to array") - { - SECTION("json&&") - { - SECTION("null") - { - json j; - j.push_back(1); - j.push_back(2); - CHECK(j.type() == json::value_t::array); - CHECK(j == json({1, 2})); - } - - SECTION("array") - { - json j = {1, 2, 3}; - j.push_back("Hello"); - CHECK(j.type() == json::value_t::array); - CHECK(j == json({1, 2, 3, "Hello"})); - } - - SECTION("other type") - { - json j = 1; - CHECK_THROWS_AS(j.push_back("Hello"), std::domain_error); - CHECK_THROWS_WITH(j.push_back("Hello"), "cannot use push_back() with number"); - } - } - - SECTION("const json&") - { - SECTION("null") - { - json j; - json k(1); - j.push_back(k); - j.push_back(k); - CHECK(j.type() == json::value_t::array); - CHECK(j == json({1, 1})); - } - - SECTION("array") - { - json j = {1, 2, 3}; - json k("Hello"); - j.push_back(k); - CHECK(j.type() == json::value_t::array); - CHECK(j == json({1, 2, 3, "Hello"})); - } - - SECTION("other type") - { - json j = 1; - json k("Hello"); - CHECK_THROWS_AS(j.push_back(k), std::domain_error); - CHECK_THROWS_WITH(j.push_back(k), "cannot use push_back() with number"); - } - } - } - - SECTION("to object") - { - SECTION("null") - { - json j; - j.push_back(json::object_t::value_type({"one", 1})); - j.push_back(json::object_t::value_type({"two", 2})); - CHECK(j.type() == json::value_t::object); - CHECK(j.size() == 2); - CHECK(j["one"] == json(1)); - CHECK(j["two"] == json(2)); - } - - SECTION("object") - { - json j(json::value_t::object); - j.push_back(json::object_t::value_type({"one", 1})); - j.push_back(json::object_t::value_type({"two", 2})); - CHECK(j.size() == 2); - CHECK(j["one"] == json(1)); - CHECK(j["two"] == json(2)); - } - - SECTION("other type") - { - json j = 1; - json k("Hello"); - CHECK_THROWS_AS(j.push_back(json::object_t::value_type({"one", 1})), std::domain_error); - CHECK_THROWS_WITH(j.push_back(json::object_t::value_type({"one", 1})), - "cannot use push_back() with number"); - } - } - - SECTION("with initializer_list") - { - SECTION("null") - { - json j; - j.push_back({"foo", "bar"}); - CHECK(j == json::array({{"foo", "bar"}})); - - json k; - k.push_back({1, 2, 3}); - CHECK(k == json::array({{1, 2, 3}})); - } - - SECTION("array") - { - json j = {1, 2, 3}; - j.push_back({"foo", "bar"}); - CHECK(j == json({1, 2, 3, {"foo", "bar"}})); - - json k = {1, 2, 3}; - k.push_back({1, 2, 3}); - CHECK(k == json({1, 2, 3, {1, 2, 3}})); - } - - SECTION("object") - { - json j = {{"key1", 1}}; - j.push_back({"key2", "bar"}); - CHECK(j == json({{"key1", 1}, {"key2", "bar"}})); - - json k = {{"key1", 1}}; - CHECK_THROWS_AS(k.push_back({1, 2, 3, 4}), std::domain_error); - CHECK_THROWS_WITH(k.push_back({1, 2, 3, 4}), "cannot use push_back() with object"); - } - } - } - - SECTION("operator+=") - { - SECTION("to array") - { - SECTION("json&&") - { - SECTION("null") - { - json j; - j += 1; - j += 2; - CHECK(j.type() == json::value_t::array); - CHECK(j == json({1, 2})); - } - - SECTION("array") - { - json j = {1, 2, 3}; - j += "Hello"; - CHECK(j.type() == json::value_t::array); - CHECK(j == json({1, 2, 3, "Hello"})); - } - - SECTION("other type") - { - json j = 1; - CHECK_THROWS_AS(j += "Hello", std::domain_error); - CHECK_THROWS_WITH(j += "Hello", "cannot use push_back() with number"); - } - } - - SECTION("const json&") - { - SECTION("null") - { - json j; - json k(1); - j += k; - j += k; - CHECK(j.type() == json::value_t::array); - CHECK(j == json({1, 1})); - } - - SECTION("array") - { - json j = {1, 2, 3}; - json k("Hello"); - j += k; - CHECK(j.type() == json::value_t::array); - CHECK(j == json({1, 2, 3, "Hello"})); - } - - SECTION("other type") - { - json j = 1; - json k("Hello"); - CHECK_THROWS_AS(j += k, std::domain_error); - CHECK_THROWS_WITH(j += k, "cannot use push_back() with number"); - } - } - } - - SECTION("to object") - { - SECTION("null") - { - json j; - j += json::object_t::value_type({"one", 1}); - j += json::object_t::value_type({"two", 2}); - CHECK(j.type() == json::value_t::object); - CHECK(j.size() == 2); - CHECK(j["one"] == json(1)); - CHECK(j["two"] == json(2)); - } - - SECTION("object") - { - json j(json::value_t::object); - j += json::object_t::value_type({"one", 1}); - j += json::object_t::value_type({"two", 2}); - CHECK(j.size() == 2); - CHECK(j["one"] == json(1)); - CHECK(j["two"] == json(2)); - } - - SECTION("other type") - { - json j = 1; - json k("Hello"); - CHECK_THROWS_AS(j += json::object_t::value_type({"one", 1}), std::domain_error); - CHECK_THROWS_WITH(j += json::object_t::value_type({"one", 1}), - "cannot use push_back() with number"); - } - } - - SECTION("with initializer_list") - { - SECTION("null") - { - json j; - j += {"foo", "bar"}; - CHECK(j == json::array({{"foo", "bar"}})); - - json k; - k += {1, 2, 3}; - CHECK(k == json::array({{1, 2, 3}})); - } - - SECTION("array") - { - json j = {1, 2, 3}; - j += {"foo", "bar"}; - CHECK(j == json({1, 2, 3, {"foo", "bar"}})); - - json k = {1, 2, 3}; - k += {1, 2, 3}; - CHECK(k == json({1, 2, 3, {1, 2, 3}})); - } - - SECTION("object") - { - json j = {{"key1", 1}}; - j += {"key2", "bar"}; - CHECK(j == json({{"key1", 1}, {"key2", "bar"}})); - - json k = {{"key1", 1}}; - CHECK_THROWS_AS((k += {1, 2, 3, 4}), std::domain_error); - CHECK_THROWS_WITH((k += {1, 2, 3, 4}), "cannot use push_back() with object"); - } - } - } - - SECTION("insert") - { - json j_array = {1, 2, 3, 4}; - json j_value = 5; - - SECTION("value at position") - { - SECTION("insert before begin()") - { - auto it = j_array.insert(j_array.begin(), j_value); - CHECK(j_array.size() == 5); - CHECK(*it == j_value); - CHECK(j_array.begin() == it); - CHECK(j_array == json({5, 1, 2, 3, 4})); - } - - SECTION("insert in the middle") - { - auto it = j_array.insert(j_array.begin() + 2, j_value); - CHECK(j_array.size() == 5); - CHECK(*it == j_value); - CHECK((it - j_array.begin()) == 2); - CHECK(j_array == json({1, 2, 5, 3, 4})); - } - - SECTION("insert before end()") - { - auto it = j_array.insert(j_array.end(), j_value); - CHECK(j_array.size() == 5); - CHECK(*it == j_value); - CHECK((j_array.end() - it) == 1); - CHECK(j_array == json({1, 2, 3, 4, 5})); - } - } - - SECTION("rvalue at position") - { - SECTION("insert before begin()") - { - auto it = j_array.insert(j_array.begin(), 5); - CHECK(j_array.size() == 5); - CHECK(*it == j_value); - CHECK(j_array.begin() == it); - CHECK(j_array == json({5, 1, 2, 3, 4})); - } - - SECTION("insert in the middle") - { - auto it = j_array.insert(j_array.begin() + 2, 5); - CHECK(j_array.size() == 5); - CHECK(*it == j_value); - CHECK((it - j_array.begin()) == 2); - CHECK(j_array == json({1, 2, 5, 3, 4})); - } - - SECTION("insert before end()") - { - auto it = j_array.insert(j_array.end(), 5); - CHECK(j_array.size() == 5); - CHECK(*it == j_value); - CHECK((j_array.end() - it) == 1); - CHECK(j_array == json({1, 2, 3, 4, 5})); - } - } - - SECTION("copies at position") - { - SECTION("insert before begin()") - { - auto it = j_array.insert(j_array.begin(), 3, 5); - CHECK(j_array.size() == 7); - CHECK(*it == j_value); - CHECK(j_array.begin() == it); - CHECK(j_array == json({5, 5, 5, 1, 2, 3, 4})); - } - - SECTION("insert in the middle") - { - auto it = j_array.insert(j_array.begin() + 2, 3, 5); - CHECK(j_array.size() == 7); - CHECK(*it == j_value); - CHECK((it - j_array.begin()) == 2); - CHECK(j_array == json({1, 2, 5, 5, 5, 3, 4})); - } - - SECTION("insert before end()") - { - auto it = j_array.insert(j_array.end(), 3, 5); - CHECK(j_array.size() == 7); - CHECK(*it == j_value); - CHECK((j_array.end() - it) == 3); - CHECK(j_array == json({1, 2, 3, 4, 5, 5, 5})); - } - - SECTION("insert nothing (count = 0)") - { - auto pos = j_array.end(); - auto it = j_array.insert(j_array.end(), 0, 5); - CHECK(j_array.size() == 4); - CHECK(it == pos); - CHECK(j_array == json({1, 2, 3, 4})); - } - } - - SECTION("range") - { - json j_other_array = {"first", "second"}; - - SECTION("proper usage") - { - auto it = j_array.insert(j_array.end(), j_other_array.begin(), j_other_array.end()); - CHECK(j_array.size() == 6); - CHECK(*it == *j_other_array.begin()); - CHECK((j_array.end() - it) == 2); - CHECK(j_array == json({1, 2, 3, 4, "first", "second"})); - } - - SECTION("empty range") - { - auto it = j_array.insert(j_array.end(), j_other_array.begin(), j_other_array.begin()); - CHECK(j_array.size() == 4); - CHECK(it == j_array.end()); - CHECK(j_array == json({1, 2, 3, 4})); - } - - SECTION("invalid iterators") - { - json j_other_array2 = {"first", "second"}; - - CHECK_THROWS_AS(j_array.insert(j_array.end(), j_array.begin(), j_array.end()), std::domain_error); - CHECK_THROWS_AS(j_array.insert(j_array.end(), j_other_array.begin(), j_other_array2.end()), - std::domain_error); - - CHECK_THROWS_WITH(j_array.insert(j_array.end(), j_array.begin(), j_array.end()), - "passed iterators may not belong to container"); - CHECK_THROWS_WITH(j_array.insert(j_array.end(), j_other_array.begin(), j_other_array2.end()), - "iterators do not fit"); - } - } - - SECTION("initializer list at position") - { - SECTION("insert before begin()") - { - auto it = j_array.insert(j_array.begin(), {7, 8, 9}); - CHECK(j_array.size() == 7); - CHECK(*it == json(7)); - CHECK(j_array.begin() == it); - CHECK(j_array == json({7, 8, 9, 1, 2, 3, 4})); - } - - SECTION("insert in the middle") - { - auto it = j_array.insert(j_array.begin() + 2, {7, 8, 9}); - CHECK(j_array.size() == 7); - CHECK(*it == json(7)); - CHECK((it - j_array.begin()) == 2); - CHECK(j_array == json({1, 2, 7, 8, 9, 3, 4})); - } - - SECTION("insert before end()") - { - auto it = j_array.insert(j_array.end(), {7, 8, 9}); - CHECK(j_array.size() == 7); - CHECK(*it == json(7)); - CHECK((j_array.end() - it) == 3); - CHECK(j_array == json({1, 2, 3, 4, 7, 8, 9})); - } - } - - SECTION("invalid iterator") - { - // pass iterator to a different array - json j_another_array = {1, 2}; - json j_yet_another_array = {"first", "second"}; - CHECK_THROWS_AS(j_array.insert(j_another_array.end(), 10), std::domain_error); - CHECK_THROWS_AS(j_array.insert(j_another_array.end(), j_value), std::domain_error); - CHECK_THROWS_AS(j_array.insert(j_another_array.end(), 10, 11), std::domain_error); - CHECK_THROWS_AS(j_array.insert(j_another_array.end(), j_yet_another_array.begin(), - j_yet_another_array.end()), std::domain_error); - CHECK_THROWS_AS(j_array.insert(j_another_array.end(), {1, 2, 3, 4}), std::domain_error); - - CHECK_THROWS_WITH(j_array.insert(j_another_array.end(), 10), "iterator does not fit current value"); - CHECK_THROWS_WITH(j_array.insert(j_another_array.end(), j_value), - "iterator does not fit current value"); - CHECK_THROWS_WITH(j_array.insert(j_another_array.end(), 10, 11), - "iterator does not fit current value"); - CHECK_THROWS_WITH(j_array.insert(j_another_array.end(), j_yet_another_array.begin(), - j_yet_another_array.end()), "iterator does not fit current value"); - CHECK_THROWS_WITH(j_array.insert(j_another_array.end(), {1, 2, 3, 4}), - "iterator does not fit current value"); - } - - SECTION("non-array type") - { - // call insert on a non-array type - json j_nonarray = 3; - json j_yet_another_array = {"first", "second"}; - CHECK_THROWS_AS(j_nonarray.insert(j_nonarray.end(), 10), std::domain_error); - CHECK_THROWS_AS(j_nonarray.insert(j_nonarray.end(), j_value), std::domain_error); - CHECK_THROWS_AS(j_nonarray.insert(j_nonarray.end(), 10, 11), std::domain_error); - CHECK_THROWS_AS(j_nonarray.insert(j_nonarray.end(), j_yet_another_array.begin(), - j_yet_another_array.end()), std::domain_error); - CHECK_THROWS_AS(j_nonarray.insert(j_nonarray.end(), {1, 2, 3, 4}), std::domain_error); - - CHECK_THROWS_WITH(j_nonarray.insert(j_nonarray.end(), 10), "cannot use insert() with number"); - CHECK_THROWS_WITH(j_nonarray.insert(j_nonarray.end(), j_value), "cannot use insert() with number"); - CHECK_THROWS_WITH(j_nonarray.insert(j_nonarray.end(), 10, 11), "cannot use insert() with number"); - CHECK_THROWS_WITH(j_nonarray.insert(j_nonarray.end(), j_yet_another_array.begin(), - j_yet_another_array.end()), "cannot use insert() with number"); - CHECK_THROWS_WITH(j_nonarray.insert(j_nonarray.end(), {1, 2, 3, 4}), - "cannot use insert() with number"); - } - } - - SECTION("swap()") - { - SECTION("json") - { - SECTION("member swap") - { - json j("hello world"); - json k(42.23); - - j.swap(k); - - CHECK(j == json(42.23)); - CHECK(k == json("hello world")); - } - - SECTION("nonmember swap") - { - json j("hello world"); - json k(42.23); - - std::swap(j, k); - - CHECK(j == json(42.23)); - CHECK(k == json("hello world")); - } - } - - SECTION("array_t") - { - SECTION("array_t type") - { - json j = {1, 2, 3, 4}; - json::array_t a = {"foo", "bar", "baz"}; - - j.swap(a); - - CHECK(j == json({"foo", "bar", "baz"})); - - j.swap(a); - - CHECK(j == json({1, 2, 3, 4})); - } - - SECTION("non-array_t type") - { - json j = 17; - json::array_t a = {"foo", "bar", "baz"}; - - CHECK_THROWS_AS(j.swap(a), std::domain_error); - CHECK_THROWS_WITH(j.swap(a), "cannot use swap() with number"); - } - } - - SECTION("object_t") - { - SECTION("object_t type") - { - json j = {{"one", 1}, {"two", 2}}; - json::object_t o = {{"cow", "Kuh"}, {"chicken", "Huhn"}}; - - j.swap(o); - - CHECK(j == json({{"cow", "Kuh"}, {"chicken", "Huhn"}})); - - j.swap(o); - - CHECK(j == json({{"one", 1}, {"two", 2}})); - } - - SECTION("non-object_t type") - { - json j = 17; - json::object_t o = {{"cow", "Kuh"}, {"chicken", "Huhn"}}; - - CHECK_THROWS_AS(j.swap(o), std::domain_error); - CHECK_THROWS_WITH(j.swap(o), "cannot use swap() with number"); - } - } - - SECTION("string_t") - { - SECTION("string_t type") - { - json j = "Hello world"; - json::string_t s = "Hallo Welt"; - - j.swap(s); - - CHECK(j == json("Hallo Welt")); - - j.swap(s); - - CHECK(j == json("Hello world")); - } - - SECTION("non-string_t type") - { - json j = 17; - json::string_t s = "Hallo Welt"; - - CHECK_THROWS_AS(j.swap(s), std::domain_error); - CHECK_THROWS_WITH(j.swap(s), "cannot use swap() with number"); - } - } - } -} - -TEST_CASE("lexicographical comparison operators") -{ - SECTION("types") - { - std::vector j_types = - { - json::value_t::null, - json::value_t::boolean, - json::value_t::number_integer, - json::value_t::number_unsigned, - json::value_t::number_float, - json::value_t::object, - json::value_t::array, - json::value_t::string - }; - - SECTION("comparison: less") - { - std::vector> expected = - { - {false, true, true, true, true, true, true, true}, - {false, false, true, true, true, true, true, true}, - {false, false, false, false, false, true, true, true}, - {false, false, false, false, false, true, true, true}, - {false, false, false, false, false, true, true, true}, - {false, false, false, false, false, false, true, true}, - {false, false, false, false, false, false, false, true}, - {false, false, false, false, false, false, false, false} - }; - - for (size_t i = 0; i < j_types.size(); ++i) - { - for (size_t j = 0; j < j_types.size(); ++j) - { - CAPTURE(i); - CAPTURE(j); - // check precomputed values - CHECK(operator<(j_types[i], j_types[j]) == expected[i][j]); - } - } - } - } - - SECTION("values") - { - json j_values = - { - nullptr, nullptr, - 17, 42, - 8u, 13u, - 3.14159, 23.42, - "foo", "bar", - true, false, - {1, 2, 3}, {"one", "two", "three"}, - {{"first", 1}, {"second", 2}}, {{"a", "A"}, {"b", {"B"}}} - }; - - SECTION("comparison: equal") - { - std::vector> expected = - { - {true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false}, - {true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false}, - {false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false}, - {false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false}, - {false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false}, - {false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false}, - {false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false}, - {false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false}, - {false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false}, - {false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false}, - {false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false}, - {false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false}, - {false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false}, - {false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false}, - {false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false}, - {false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true} - }; - - for (size_t i = 0; i < j_values.size(); ++i) - { - for (size_t j = 0; j < j_values.size(); ++j) - { - CAPTURE(i); - CAPTURE(j); - // check precomputed values - CHECK( (j_values[i] == j_values[j]) == expected[i][j] ); - } - } - - // comparison with discarded elements - json j_discarded(json::value_t::discarded); - for (size_t i = 0; i < j_values.size(); ++i) - { - CHECK( (j_values[i] == j_discarded) == false); - CHECK( (j_discarded == j_values[i]) == false); - CHECK( (j_discarded == j_discarded) == false); - } - - // compare with null pointer - json j_null; - CHECK(j_null == nullptr); - CHECK(nullptr == j_null); - } - - SECTION("comparison: not equal") - { - for (size_t i = 0; i < j_values.size(); ++i) - { - for (size_t j = 0; j < j_values.size(); ++j) - { - CAPTURE(i); - CAPTURE(j); - // check definition - CHECK( (j_values[i] != j_values[j]) == not(j_values[i] == j_values[j]) ); - } - } - - // compare with null pointer - json j_null; - CHECK( (j_null != nullptr) == false); - CHECK( (nullptr != j_null) == false); - CHECK( (j_null != nullptr) == not(j_null == nullptr)); - CHECK( (nullptr != j_null) == not(nullptr == j_null)); - } - - SECTION("comparison: less") - { - std::vector> expected = - { - {false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true}, - {false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true}, - {false, false, false, true, false, false, false, true, true, true, false, false, true, true, true, true}, - {false, false, false, false, false, false, false, false, true, true, false, false, true, true, true, true}, - {false, false, true, true, false, true, false, true, true, true, false, false, true, true, true, true}, - {false, false, true, true, false, false, false, true, true, true, false, false, true, true, true, true}, - {false, false, true, true, true, true, false, true, true, true, false, false, true, true, true, true}, - {false, false, false, true, false, false, false, false, true, true, false, false, true, true, true, true}, - {false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false}, - {false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false}, - {false, false, true, true, true, true, true, true, true, true, false, false, true, true, true, true}, - {false, false, true, true, true, true, true, true, true, true, true, false, true, true, true, true}, - {false, false, false, false, false, false, false, false, true, true, false, false, false, true, false, false}, - {false, false, false, false, false, false, false, false, true, true, false, false, false, false, false, false}, - {false, false, false, false, false, false, false, false, true, true, false, false, true, true, false, false}, - {false, false, false, false, false, false, false, false, true, true, false, false, true, true, true, false} - }; - - for (size_t i = 0; i < j_values.size(); ++i) - { - for (size_t j = 0; j < j_values.size(); ++j) - { - CAPTURE(i); - CAPTURE(j); - // check precomputed values - CHECK( (j_values[i] < j_values[j]) == expected[i][j] ); - } - } - - // comparison with discarded elements - json j_discarded(json::value_t::discarded); - for (size_t i = 0; i < j_values.size(); ++i) - { - CAPTURE(i); - CHECK( (j_values[i] < j_discarded) == false); - CHECK( (j_discarded < j_values[i]) == false); - CHECK( (j_discarded < j_discarded) == false); - } - } - - SECTION("comparison: less than or equal equal") - { - for (size_t i = 0; i < j_values.size(); ++i) - { - for (size_t j = 0; j < j_values.size(); ++j) - { - CAPTURE(i); - CAPTURE(j); - // check definition - CHECK( (j_values[i] <= j_values[j]) == not(j_values[j] < j_values[i]) ); - } - } - } - - SECTION("comparison: greater than") - { - for (size_t i = 0; i < j_values.size(); ++i) - { - for (size_t j = 0; j < j_values.size(); ++j) - { - CAPTURE(i); - CAPTURE(j); - // check definition - CHECK( (j_values[i] > j_values[j]) == (j_values[j] < j_values[i]) ); - } - } - } - - SECTION("comparison: greater than or equal") - { - for (size_t i = 0; i < j_values.size(); ++i) - { - for (size_t j = 0; j < j_values.size(); ++j) - { - CAPTURE(i); - CAPTURE(j); - // check definition - CHECK( (j_values[i] >= j_values[j]) == not(j_values[i] < j_values[j]) ); - } - } - } - } -} - -TEST_CASE("serialization") -{ - SECTION("operator<<") - { - SECTION("no given width") - { - std::stringstream ss; - json j = {"foo", 1, 2, 3, false, {{"one", 1}}}; - ss << j; - CHECK(ss.str() == "[\"foo\",1,2,3,false,{\"one\":1}]"); - } - - SECTION("given width") - { - std::stringstream ss; - json j = {"foo", 1, 2, 3, false, {{"one", 1}}}; - ss << std::setw(4) << j; - CHECK(ss.str() == - "[\n \"foo\",\n 1,\n 2,\n 3,\n false,\n {\n \"one\": 1\n }\n]"); - } - } - - SECTION("operator>>") - { - SECTION("no given width") - { - std::stringstream ss; - json j = {"foo", 1, 2, 3, false, {{"one", 1}}}; - j >> ss; - CHECK(ss.str() == "[\"foo\",1,2,3,false,{\"one\":1}]"); - } - - SECTION("given width") - { - std::stringstream ss; - json j = {"foo", 1, 2, 3, false, {{"one", 1}}}; - ss.width(4); - j >> ss; - CHECK(ss.str() == - "[\n \"foo\",\n 1,\n 2,\n 3,\n false,\n {\n \"one\": 1\n }\n]"); - } - } -} - -TEST_CASE("deserialization") -{ - SECTION("stream") - { - std::stringstream ss; - ss << "[\"foo\",1,2,3,false,{\"one\":1}]"; - json j = json::parse(ss); - CHECK(j == json({"foo", 1, 2, 3, false, {{"one", 1}}})); - } - - SECTION("string") - { - auto s = "[\"foo\",1,2,3,false,{\"one\":1}]"; - json j = json::parse(s); - CHECK(j == json({"foo", 1, 2, 3, false, {{"one", 1}}})); - } - - SECTION("operator<<") - { - std::stringstream ss; - ss << "[\"foo\",1,2,3,false,{\"one\":1}]"; - json j; - j << ss; - CHECK(j == json({"foo", 1, 2, 3, false, {{"one", 1}}})); - } - - SECTION("operator>>") - { - std::stringstream ss; - ss << "[\"foo\",1,2,3,false,{\"one\":1}]"; - json j; - ss >> j; - CHECK(j == json({"foo", 1, 2, 3, false, {{"one", 1}}})); - } - - SECTION("user-defined string literal") - { - CHECK("[\"foo\",1,2,3,false,{\"one\":1}]"_json == json({"foo", 1, 2, 3, false, {{"one", 1}}})); - } -} - -TEST_CASE("iterator class") -{ - SECTION("construction") - { - SECTION("constructor") - { - SECTION("null") - { - json j(json::value_t::null); - json::iterator it(&j); - } - - SECTION("object") - { - json j(json::value_t::object); - json::iterator it(&j); - } - - SECTION("array") - { - json j(json::value_t::array); - json::iterator it(&j); - } - } - - SECTION("copy assignment") - { - json j(json::value_t::null); - json::iterator it(&j); - json::iterator it2(&j); - it2 = it; - } - } - - SECTION("initialization") - { - SECTION("set_begin") - { - SECTION("null") - { - json j(json::value_t::null); - json::iterator it(&j); - it.set_begin(); - CHECK(it == j.begin()); - } - - SECTION("object") - { - json j(json::value_t::object); - json::iterator it(&j); - it.set_begin(); - CHECK(it == j.begin()); - } - - SECTION("array") - { - json j(json::value_t::array); - json::iterator it(&j); - it.set_begin(); - CHECK(it == j.begin()); - } - } - - SECTION("set_end") - { - SECTION("null") - { - json j(json::value_t::null); - json::iterator it(&j); - it.set_end(); - CHECK(it == j.end()); - } - - SECTION("object") - { - json j(json::value_t::object); - json::iterator it(&j); - it.set_end(); - CHECK(it == j.end()); - } - - SECTION("array") - { - json j(json::value_t::array); - json::iterator it(&j); - it.set_end(); - CHECK(it == j.end()); - } - } - } - - SECTION("element access") - { - SECTION("operator*") - { - SECTION("null") - { - json j(json::value_t::null); - json::iterator it = j.begin(); - CHECK_THROWS_AS(*it, std::out_of_range); - CHECK_THROWS_WITH(*it, "cannot get value"); - } - - SECTION("number") - { - json j(17); - json::iterator it = j.begin(); - CHECK(*it == json(17)); - it = j.end(); - CHECK_THROWS_AS(*it, std::out_of_range); - CHECK_THROWS_WITH(*it, "cannot get value"); - } - - SECTION("object") - { - json j({{"foo", "bar"}}); - json::iterator it = j.begin(); - CHECK(*it == json("bar")); - } - - SECTION("array") - { - json j({1, 2, 3, 4}); - json::iterator it = j.begin(); - CHECK(*it == json(1)); - } - } - - SECTION("operator->") - { - SECTION("null") - { - json j(json::value_t::null); - json::iterator it = j.begin(); - CHECK_THROWS_AS(it->type_name(), std::out_of_range); - CHECK_THROWS_WITH(it->type_name(), "cannot get value"); - } - - SECTION("number") - { - json j(17); - json::iterator it = j.begin(); - CHECK(it->type_name() == "number"); - it = j.end(); - CHECK_THROWS_AS(it->type_name(), std::out_of_range); - CHECK_THROWS_WITH(it->type_name(), "cannot get value"); - } - - SECTION("object") - { - json j({{"foo", "bar"}}); - json::iterator it = j.begin(); - CHECK(it->type_name() == "string"); - } - - SECTION("array") - { - json j({1, 2, 3, 4}); - json::iterator it = j.begin(); - CHECK(it->type_name() == "number"); - } - } - } - - SECTION("increment/decrement") - { - SECTION("post-increment") - { - SECTION("null") - { - json j(json::value_t::null); - json::iterator it = j.begin(); - CHECK(it.m_it.primitive_iterator == 1); - it++; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); - } - - SECTION("number") - { - json j(17); - json::iterator it = j.begin(); - CHECK(it.m_it.primitive_iterator == 0); - it++; - CHECK(it.m_it.primitive_iterator == 1); - it++; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); - } - - SECTION("object") - { - json j({{"foo", "bar"}}); - json::iterator it = j.begin(); - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin()); - it++; - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end()); - } - - SECTION("array") - { - json j({1, 2, 3, 4}); - json::iterator it = j.begin(); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin()); - it++; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - it++; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - it++; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - it++; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end()); - } - } - - SECTION("pre-increment") - { - SECTION("null") - { - json j(json::value_t::null); - json::iterator it = j.begin(); - CHECK(it.m_it.primitive_iterator == 1); - ++it; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); - } - - SECTION("number") - { - json j(17); - json::iterator it = j.begin(); - CHECK(it.m_it.primitive_iterator == 0); - ++it; - CHECK(it.m_it.primitive_iterator == 1); - ++it; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); - } - - SECTION("object") - { - json j({{"foo", "bar"}}); - json::iterator it = j.begin(); - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin()); - ++it; - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end()); - } - - SECTION("array") - { - json j({1, 2, 3, 4}); - json::iterator it = j.begin(); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin()); - ++it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - ++it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - ++it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - ++it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end()); - } - } - - SECTION("post-decrement") - { - SECTION("null") - { - json j(json::value_t::null); - json::iterator it = j.end(); - CHECK(it.m_it.primitive_iterator == 1); - } - - SECTION("number") - { - json j(17); - json::iterator it = j.end(); - CHECK(it.m_it.primitive_iterator == 1); - it--; - CHECK(it.m_it.primitive_iterator == 0); - it--; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); - } - - SECTION("object") - { - json j({{"foo", "bar"}}); - json::iterator it = j.end(); - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end()); - it--; - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin()); - } - - SECTION("array") - { - json j({1, 2, 3, 4}); - json::iterator it = j.end(); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end()); - it--; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - it--; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - it--; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - it--; - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - } - } - - SECTION("pre-decrement") - { - SECTION("null") - { - json j(json::value_t::null); - json::iterator it = j.end(); - CHECK(it.m_it.primitive_iterator == 1); - } - - SECTION("number") - { - json j(17); - json::iterator it = j.end(); - CHECK(it.m_it.primitive_iterator == 1); - --it; - CHECK(it.m_it.primitive_iterator == 0); - --it; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); - } - - SECTION("object") - { - json j({{"foo", "bar"}}); - json::iterator it = j.end(); - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end()); - --it; - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin()); - } - - SECTION("array") - { - json j({1, 2, 3, 4}); - json::iterator it = j.end(); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end()); - --it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - --it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - --it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - --it; - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - } - } - } -} - -TEST_CASE("const_iterator class") -{ - SECTION("construction") - { - SECTION("constructor") - { - SECTION("null") - { - json j(json::value_t::null); - json::const_iterator it(&j); - } - - SECTION("object") - { - json j(json::value_t::object); - json::const_iterator it(&j); - } - - SECTION("array") - { - json j(json::value_t::array); - json::const_iterator it(&j); - } - } - - SECTION("copy assignment") - { - json j(json::value_t::null); - json::const_iterator it(&j); - json::const_iterator it2(&j); - it2 = it; - } - } - - SECTION("initialization") - { - SECTION("set_begin") - { - SECTION("null") - { - json j(json::value_t::null); - json::const_iterator it(&j); - it.set_begin(); - CHECK(it == j.cbegin()); - } - - SECTION("object") - { - json j(json::value_t::object); - json::const_iterator it(&j); - it.set_begin(); - CHECK(it == j.cbegin()); - } - - SECTION("array") - { - json j(json::value_t::array); - json::const_iterator it(&j); - it.set_begin(); - CHECK(it == j.cbegin()); - } - } - - SECTION("set_end") - { - SECTION("null") - { - json j(json::value_t::null); - json::const_iterator it(&j); - it.set_end(); - CHECK(it == j.cend()); - } - - SECTION("object") - { - json j(json::value_t::object); - json::const_iterator it(&j); - it.set_end(); - CHECK(it == j.cend()); - } - - SECTION("array") - { - json j(json::value_t::array); - json::const_iterator it(&j); - it.set_end(); - CHECK(it == j.cend()); - } - } - } - - SECTION("element access") - { - SECTION("operator*") - { - SECTION("null") - { - json j(json::value_t::null); - json::const_iterator it = j.cbegin(); - CHECK_THROWS_AS(*it, std::out_of_range); - CHECK_THROWS_WITH(*it, "cannot get value"); - } - - SECTION("number") - { - json j(17); - json::const_iterator it = j.cbegin(); - CHECK(*it == json(17)); - it = j.cend(); - CHECK_THROWS_AS(*it, std::out_of_range); - CHECK_THROWS_WITH(*it, "cannot get value"); - } - - SECTION("object") - { - json j({{"foo", "bar"}}); - json::const_iterator it = j.cbegin(); - CHECK(*it == json("bar")); - } - - SECTION("array") - { - json j({1, 2, 3, 4}); - json::const_iterator it = j.cbegin(); - CHECK(*it == json(1)); - } - } - - SECTION("operator->") - { - SECTION("null") - { - json j(json::value_t::null); - json::const_iterator it = j.cbegin(); - CHECK_THROWS_AS(it->type_name(), std::out_of_range); - CHECK_THROWS_WITH(it->type_name(), "cannot get value"); - } - - SECTION("number") - { - json j(17); - json::const_iterator it = j.cbegin(); - CHECK(it->type_name() == "number"); - it = j.cend(); - CHECK_THROWS_AS(it->type_name(), std::out_of_range); - CHECK_THROWS_WITH(it->type_name(), "cannot get value"); - } - - SECTION("object") - { - json j({{"foo", "bar"}}); - json::const_iterator it = j.cbegin(); - CHECK(it->type_name() == "string"); - } - - SECTION("array") - { - json j({1, 2, 3, 4}); - json::const_iterator it = j.cbegin(); - CHECK(it->type_name() == "number"); - } - } - } - - SECTION("increment/decrement") - { - SECTION("post-increment") - { - SECTION("null") - { - json j(json::value_t::null); - json::const_iterator it = j.cbegin(); - CHECK(it.m_it.primitive_iterator == 1); - it++; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); - } - - SECTION("number") - { - json j(17); - json::const_iterator it = j.cbegin(); - CHECK(it.m_it.primitive_iterator == 0); - it++; - CHECK(it.m_it.primitive_iterator == 1); - it++; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); - } - - SECTION("object") - { - json j({{"foo", "bar"}}); - json::const_iterator it = j.cbegin(); - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin()); - it++; - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end()); - } - - SECTION("array") - { - json j({1, 2, 3, 4}); - json::const_iterator it = j.cbegin(); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin()); - it++; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - it++; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - it++; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - it++; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end()); - } - } - - SECTION("pre-increment") - { - SECTION("null") - { - json j(json::value_t::null); - json::const_iterator it = j.cbegin(); - CHECK(it.m_it.primitive_iterator == 1); - ++it; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); - } - - SECTION("number") - { - json j(17); - json::const_iterator it = j.cbegin(); - CHECK(it.m_it.primitive_iterator == 0); - ++it; - CHECK(it.m_it.primitive_iterator == 1); - ++it; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); - } - - SECTION("object") - { - json j({{"foo", "bar"}}); - json::const_iterator it = j.cbegin(); - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin()); - ++it; - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end()); - } - - SECTION("array") - { - json j({1, 2, 3, 4}); - json::const_iterator it = j.cbegin(); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin()); - ++it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - ++it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - ++it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - ++it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end()); - } - } - - SECTION("post-decrement") - { - SECTION("null") - { - json j(json::value_t::null); - json::const_iterator it = j.cend(); - CHECK(it.m_it.primitive_iterator == 1); - } - - SECTION("number") - { - json j(17); - json::const_iterator it = j.cend(); - CHECK(it.m_it.primitive_iterator == 1); - it--; - CHECK(it.m_it.primitive_iterator == 0); - it--; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); - } - - SECTION("object") - { - json j({{"foo", "bar"}}); - json::const_iterator it = j.cend(); - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end()); - it--; - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin()); - } - - SECTION("array") - { - json j({1, 2, 3, 4}); - json::const_iterator it = j.cend(); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end()); - it--; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - it--; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - it--; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - it--; - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - } - } - - SECTION("pre-decrement") - { - SECTION("null") - { - json j(json::value_t::null); - json::const_iterator it = j.cend(); - CHECK(it.m_it.primitive_iterator == 1); - } - - SECTION("number") - { - json j(17); - json::const_iterator it = j.cend(); - CHECK(it.m_it.primitive_iterator == 1); - --it; - CHECK(it.m_it.primitive_iterator == 0); - --it; - CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1)); - } - - SECTION("object") - { - json j({{"foo", "bar"}}); - json::const_iterator it = j.cend(); - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end()); - --it; - CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin()); - } - - SECTION("array") - { - json j({1, 2, 3, 4}); - json::const_iterator it = j.cend(); - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end()); - --it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - --it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - --it; - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - --it; - CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin()); - CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end()); - } - } - } -} - -TEST_CASE("convenience functions") -{ - SECTION("type name as string") - { - CHECK(json(json::value_t::null).type_name() == "null"); - CHECK(json(json::value_t::object).type_name() == "object"); - CHECK(json(json::value_t::array).type_name() == "array"); - CHECK(json(json::value_t::number_integer).type_name() == "number"); - CHECK(json(json::value_t::number_float).type_name() == "number"); - CHECK(json(json::value_t::boolean).type_name() == "boolean"); - CHECK(json(json::value_t::string).type_name() == "string"); - CHECK(json(json::value_t::discarded).type_name() == "discarded"); - } - - SECTION("string escape") - { - CHECK(json::escape_string("\"") == "\\\""); - CHECK(json::escape_string("\\") == "\\\\"); - CHECK(json::escape_string("\b") == "\\b"); - CHECK(json::escape_string("\f") == "\\f"); - CHECK(json::escape_string("\n") == "\\n"); - CHECK(json::escape_string("\r") == "\\r"); - CHECK(json::escape_string("\t") == "\\t"); - - CHECK(json::escape_string("\x01") == "\\u0001"); - CHECK(json::escape_string("\x02") == "\\u0002"); - CHECK(json::escape_string("\x03") == "\\u0003"); - CHECK(json::escape_string("\x04") == "\\u0004"); - CHECK(json::escape_string("\x05") == "\\u0005"); - CHECK(json::escape_string("\x06") == "\\u0006"); - CHECK(json::escape_string("\x07") == "\\u0007"); - CHECK(json::escape_string("\x08") == "\\b"); - CHECK(json::escape_string("\x09") == "\\t"); - CHECK(json::escape_string("\x0a") == "\\n"); - CHECK(json::escape_string("\x0b") == "\\u000b"); - CHECK(json::escape_string("\x0c") == "\\f"); - CHECK(json::escape_string("\x0d") == "\\r"); - CHECK(json::escape_string("\x0e") == "\\u000e"); - CHECK(json::escape_string("\x0f") == "\\u000f"); - CHECK(json::escape_string("\x10") == "\\u0010"); - CHECK(json::escape_string("\x11") == "\\u0011"); - CHECK(json::escape_string("\x12") == "\\u0012"); - CHECK(json::escape_string("\x13") == "\\u0013"); - CHECK(json::escape_string("\x14") == "\\u0014"); - CHECK(json::escape_string("\x15") == "\\u0015"); - CHECK(json::escape_string("\x16") == "\\u0016"); - CHECK(json::escape_string("\x17") == "\\u0017"); - CHECK(json::escape_string("\x18") == "\\u0018"); - CHECK(json::escape_string("\x19") == "\\u0019"); - CHECK(json::escape_string("\x1a") == "\\u001a"); - CHECK(json::escape_string("\x1b") == "\\u001b"); - CHECK(json::escape_string("\x1c") == "\\u001c"); - CHECK(json::escape_string("\x1d") == "\\u001d"); - CHECK(json::escape_string("\x1e") == "\\u001e"); - CHECK(json::escape_string("\x1f") == "\\u001f"); - } -} - -TEST_CASE("lexer class") -{ - SECTION("scan") - { - SECTION("structural characters") - { - CHECK(json::lexer("[").scan() == json::lexer::token_type::begin_array); - CHECK(json::lexer("]").scan() == json::lexer::token_type::end_array); - CHECK(json::lexer("{").scan() == json::lexer::token_type::begin_object); - CHECK(json::lexer("}").scan() == json::lexer::token_type::end_object); - CHECK(json::lexer(",").scan() == json::lexer::token_type::value_separator); - CHECK(json::lexer(":").scan() == json::lexer::token_type::name_separator); - } - - SECTION("literal names") - { - CHECK(json::lexer("null").scan() == json::lexer::token_type::literal_null); - CHECK(json::lexer("true").scan() == json::lexer::token_type::literal_true); - CHECK(json::lexer("false").scan() == json::lexer::token_type::literal_false); - } - - SECTION("numbers") - { - CHECK(json::lexer("0").scan() == json::lexer::token_type::value_number); - CHECK(json::lexer("1").scan() == json::lexer::token_type::value_number); - CHECK(json::lexer("2").scan() == json::lexer::token_type::value_number); - CHECK(json::lexer("3").scan() == json::lexer::token_type::value_number); - CHECK(json::lexer("4").scan() == json::lexer::token_type::value_number); - CHECK(json::lexer("5").scan() == json::lexer::token_type::value_number); - CHECK(json::lexer("6").scan() == json::lexer::token_type::value_number); - CHECK(json::lexer("7").scan() == json::lexer::token_type::value_number); - CHECK(json::lexer("8").scan() == json::lexer::token_type::value_number); - CHECK(json::lexer("9").scan() == json::lexer::token_type::value_number); - } - - SECTION("whitespace") - { - // result is end_of_input, because not token is following - CHECK(json::lexer(" ").scan() == json::lexer::token_type::end_of_input); - CHECK(json::lexer("\t").scan() == json::lexer::token_type::end_of_input); - CHECK(json::lexer("\n").scan() == json::lexer::token_type::end_of_input); - CHECK(json::lexer("\r").scan() == json::lexer::token_type::end_of_input); - CHECK(json::lexer(" \t\n\r\n\t ").scan() == json::lexer::token_type::end_of_input); - } - } - - SECTION("token_type_name") - { - CHECK(json::lexer::token_type_name(json::lexer::token_type::uninitialized) == ""); - CHECK(json::lexer::token_type_name(json::lexer::token_type::literal_true) == "true literal"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::literal_false) == "false literal"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::literal_null) == "null literal"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::value_string) == "string literal"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::value_number) == "number literal"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::begin_array) == "'['"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::begin_object) == "'{'"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::end_array) == "']'"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::end_object) == "'}'"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::name_separator) == "':'"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::value_separator) == "','"); - CHECK(json::lexer::token_type_name(json::lexer::token_type::parse_error) == ""); - CHECK(json::lexer::token_type_name(json::lexer::token_type::end_of_input) == "end of input"); - } - - SECTION("parse errors on first character") - { - for (int c = 1; c < 128; ++c) - { - auto s = std::string(1, c); - - switch (c) - { - // single characters that are valid tokens - case ('['): - case (']'): - case ('{'): - case ('}'): - case (','): - case (':'): - case ('0'): - case ('1'): - case ('2'): - case ('3'): - case ('4'): - case ('5'): - case ('6'): - case ('7'): - case ('8'): - case ('9'): - { - CHECK(json::lexer(s.c_str()).scan() != json::lexer::token_type::parse_error); - break; - } - - // whitespace - case (' '): - case ('\t'): - case ('\n'): - case ('\r'): - { - CHECK(json::lexer(s.c_str()).scan() == json::lexer::token_type::end_of_input); - break; - } - - // anything else is not expected - default: - { - CHECK(json::lexer(s.c_str()).scan() == json::lexer::token_type::parse_error); - break; - } - } - } - } - - SECTION("to_unicode") - { - CHECK(json::lexer::to_unicode(0x1F4A9) == "💩"); - CHECK_THROWS_AS(json::lexer::to_unicode(0x200000), std::out_of_range); - CHECK_THROWS_WITH(json::lexer::to_unicode(0x200000), "code points above 0x10FFFF are invalid"); - } -} - -TEST_CASE("parser class") -{ - SECTION("parse") - { - SECTION("null") - { - CHECK(json::parser("null").parse() == json(nullptr)); - } - - SECTION("true") - { - CHECK(json::parser("true").parse() == json(true)); - } - - SECTION("false") - { - CHECK(json::parser("false").parse() == json(false)); - } - - SECTION("array") - { - SECTION("empty array") - { - CHECK(json::parser("[]").parse() == json(json::value_t::array)); - CHECK(json::parser("[ ]").parse() == json(json::value_t::array)); - } - - SECTION("nonempty array") - { - CHECK(json::parser("[true, false, null]").parse() == json({true, false, nullptr})); - } - } - - SECTION("object") - { - SECTION("empty object") - { - CHECK(json::parser("{}").parse() == json(json::value_t::object)); - CHECK(json::parser("{ }").parse() == json(json::value_t::object)); - } - - SECTION("nonempty object") - { - CHECK(json::parser("{\"\": true, \"one\": 1, \"two\": null}").parse() == json({{"", true}, {"one", 1}, {"two", nullptr}})); - } - } - - SECTION("string") - { - // empty string - CHECK(json::parser("\"\"").parse() == json(json::value_t::string)); - - SECTION("errors") - { - // error: tab in string - CHECK_THROWS_AS(json::parser("\"\t\"").parse(), std::invalid_argument); - CHECK_THROWS_WITH(json::parser("\"\t\"").parse(), "parse error - unexpected '\"'"); - // error: newline in string - CHECK_THROWS_AS(json::parser("\"\n\"").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("\"\r\"").parse(), std::invalid_argument); - CHECK_THROWS_WITH(json::parser("\"\n\"").parse(), "parse error - unexpected '\"'"); - CHECK_THROWS_WITH(json::parser("\"\r\"").parse(), "parse error - unexpected '\"'"); - // error: backspace in string - CHECK_THROWS_AS(json::parser("\"\b\"").parse(), std::invalid_argument); - CHECK_THROWS_WITH(json::parser("\"\b\"").parse(), "parse error - unexpected '\"'"); - // improve code coverage - CHECK_THROWS_AS(json::parser("\uFF01").parse(), std::invalid_argument); - } - - SECTION("escaped") - { - // quotation mark "\"" - auto r1 = R"("\"")"_json; - CHECK(json::parser("\"\\\"\"").parse() == r1); - // reverse solidus "\\" - auto r2 = R"("\\")"_json; - CHECK(json::parser("\"\\\\\"").parse() == r2); - // solidus - CHECK(json::parser("\"\\/\"").parse() == R"("/")"_json); - // backspace - CHECK(json::parser("\"\\b\"").parse() == json("\b")); - // formfeed - CHECK(json::parser("\"\\f\"").parse() == json("\f")); - // newline - CHECK(json::parser("\"\\n\"").parse() == json("\n")); - // carriage return - CHECK(json::parser("\"\\r\"").parse() == json("\r")); - // horizontal tab - CHECK(json::parser("\"\\t\"").parse() == json("\t")); - - CHECK(json::parser("\"\\u0001\"").parse().get() == "\x01"); - CHECK(json::parser("\"\\u000a\"").parse().get() == "\n"); - CHECK(json::parser("\"\\u00b0\"").parse().get() == "°"); - CHECK(json::parser("\"\\u0c00\"").parse().get() == "ఀ"); - CHECK(json::parser("\"\\ud000\"").parse().get() == "퀀"); - CHECK(json::parser("\"\\u000E\"").parse().get() == "\x0E"); - CHECK(json::parser("\"\\u00F0\"").parse().get() == "ð"); - CHECK(json::parser("\"\\u0100\"").parse().get() == "Ā"); - CHECK(json::parser("\"\\u2000\"").parse().get() == " "); - CHECK(json::parser("\"\\uFFFF\"").parse().get() == "￿"); - CHECK(json::parser("\"\\u20AC\"").parse().get() == "€"); - CHECK(json::parser("\"€\"").parse().get() == "€"); - CHECK(json::parser("\"🎈\"").parse().get() == "🎈"); - - CHECK(json::parse("\"\\ud80c\\udc60\"").get() == u8"\U00013060"); - CHECK(json::parse("\"\\ud83c\\udf1e\"").get() == "🌞"); - } - } - - SECTION("number") - { - SECTION("integers") - { - SECTION("without exponent") - { - CHECK(json::parser("-128").parse() == json(-128)); - CHECK(json::parser("-0").parse() == json(-0)); - CHECK(json::parser("0").parse() == json(0)); - CHECK(json::parser("128").parse() == json(128)); - } - - SECTION("with exponent") - { - CHECK(json::parser("0e1").parse() == json(0e1)); - CHECK(json::parser("0E1").parse() == json(0e1)); - - CHECK(json::parser("10000E-4").parse() == json(10000e-4)); - CHECK(json::parser("10000E-3").parse() == json(10000e-3)); - CHECK(json::parser("10000E-2").parse() == json(10000e-2)); - CHECK(json::parser("10000E-1").parse() == json(10000e-1)); - CHECK(json::parser("10000E0").parse() == json(10000e0)); - CHECK(json::parser("10000E1").parse() == json(10000e1)); - CHECK(json::parser("10000E2").parse() == json(10000e2)); - CHECK(json::parser("10000E3").parse() == json(10000e3)); - CHECK(json::parser("10000E4").parse() == json(10000e4)); - - CHECK(json::parser("10000e-4").parse() == json(10000e-4)); - CHECK(json::parser("10000e-3").parse() == json(10000e-3)); - CHECK(json::parser("10000e-2").parse() == json(10000e-2)); - CHECK(json::parser("10000e-1").parse() == json(10000e-1)); - CHECK(json::parser("10000e0").parse() == json(10000e0)); - CHECK(json::parser("10000e1").parse() == json(10000e1)); - CHECK(json::parser("10000e2").parse() == json(10000e2)); - CHECK(json::parser("10000e3").parse() == json(10000e3)); - CHECK(json::parser("10000e4").parse() == json(10000e4)); - - CHECK(json::parser("-0e1").parse() == json(-0e1)); - CHECK(json::parser("-0E1").parse() == json(-0e1)); - CHECK(json::parser("-0E123").parse() == json(-0e123)); - } - - SECTION("edge cases") - { - // From RFC7159, Section 6: - // Note that when such software is used, numbers that are - // integers and are in the range [-(2**53)+1, (2**53)-1] - // are interoperable in the sense that implementations will - // agree exactly on their numeric values. - - // -(2**53)+1 - CHECK(json::parser("-9007199254740991").parse().get() == -9007199254740991); - // (2**53)-1 - CHECK(json::parser("9007199254740991").parse().get() == 9007199254740991); - } - - SECTION("over the edge cases") // issue #178 - Integer conversion to unsigned (incorrect handling of 64 bit integers) - { - // While RFC7159, Section 6 specifies a preference for support - // for ranges in range of IEEE 754-2008 binary64 (double precision) - // this does not accommodate 64 bit integers without loss of accuracy. - // As 64 bit integers are now widely used in software, it is desirable - // to expand support to to the full 64 bit (signed and unsigned) range - // i.e. -(2**63) -> (2**64)-1. - - // -(2**63) ** Note: compilers see negative literals as negated positive numbers (hence the -1)) - CHECK(json::parser("-9223372036854775808").parse().get() == -9223372036854775807 - 1); - // (2**63)-1 - CHECK(json::parser("9223372036854775807").parse().get() == 9223372036854775807); - // (2**64)-1 - CHECK(json::parser("18446744073709551615").parse().get() == 18446744073709551615u); - } - } - - SECTION("floating-point") - { - SECTION("without exponent") - { - CHECK(json::parser("-128.5").parse() == json(-128.5)); - CHECK(json::parser("0.999").parse() == json(0.999)); - CHECK(json::parser("128.5").parse() == json(128.5)); - CHECK(json::parser("-0.0").parse() == json(-0.0)); - } - - SECTION("with exponent") - { - CHECK(json::parser("-128.5E3").parse() == json(-128.5E3)); - CHECK(json::parser("-128.5E-3").parse() == json(-128.5E-3)); - CHECK(json::parser("-0.0e1").parse() == json(-0.0e1)); - CHECK(json::parser("-0.0E1").parse() == json(-0.0e1)); - } - } - - SECTION("invalid numbers") - { - CHECK_THROWS_AS(json::parser("01").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("--1").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("1.").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("1E").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("1E-").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("1.E1").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("-1E").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("-0E#").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("-0E-#").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("-0#").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("-0.0:").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("-0.0Z").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("-0E123:").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("-0e0-:").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("-0e-:").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("-0f").parse(), std::invalid_argument); - - // numbers must not begin with "+" - CHECK_THROWS_AS(json::parser("+1").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("+0").parse(), std::invalid_argument); - - CHECK_THROWS_WITH(json::parser("01").parse(), - "parse error - unexpected number literal; expected end of input"); - CHECK_THROWS_WITH(json::parser("--1").parse(), "parse error - unexpected '-'"); - CHECK_THROWS_WITH(json::parser("1.").parse(), - "parse error - unexpected '.'; expected end of input"); - CHECK_THROWS_WITH(json::parser("1E").parse(), - "parse error - unexpected 'E'; expected end of input"); - CHECK_THROWS_WITH(json::parser("1E-").parse(), - "parse error - unexpected 'E'; expected end of input"); - CHECK_THROWS_WITH(json::parser("1.E1").parse(), - "parse error - unexpected '.'; expected end of input"); - CHECK_THROWS_WITH(json::parser("-1E").parse(), - "parse error - unexpected 'E'; expected end of input"); - CHECK_THROWS_WITH(json::parser("-0E#").parse(), - "parse error - unexpected 'E'; expected end of input"); - CHECK_THROWS_WITH(json::parser("-0E-#").parse(), - "parse error - unexpected 'E'; expected end of input"); - CHECK_THROWS_WITH(json::parser("-0#").parse(), - "parse error - unexpected '#'; expected end of input"); - CHECK_THROWS_WITH(json::parser("-0.0:").parse(), - "parse error - unexpected ':'; expected end of input"); - CHECK_THROWS_WITH(json::parser("-0.0Z").parse(), - "parse error - unexpected 'Z'; expected end of input"); - CHECK_THROWS_WITH(json::parser("-0E123:").parse(), - "parse error - unexpected ':'; expected end of input"); - CHECK_THROWS_WITH(json::parser("-0e0-:").parse(), - "parse error - unexpected '-'; expected end of input"); - CHECK_THROWS_WITH(json::parser("-0e-:").parse(), - "parse error - unexpected 'e'; expected end of input"); - CHECK_THROWS_WITH(json::parser("-0f").parse(), - "parse error - unexpected 'f'; expected end of input"); - } - } - } - - SECTION("parse errors") - { - // unexpected end of number - CHECK_THROWS_AS(json::parser("0.").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("-").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("--").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("-0.").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("-.").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("-:").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("0.:").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("e.").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("1e.").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("1e/").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("1e:").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("1E.").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("1E/").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("1E:").parse(), std::invalid_argument); - CHECK_THROWS_WITH(json::parser("0.").parse(), - "parse error - unexpected '.'; expected end of input"); - CHECK_THROWS_WITH(json::parser("-").parse(), "parse error - unexpected '-'"); - CHECK_THROWS_WITH(json::parser("--").parse(), - "parse error - unexpected '-'"); - CHECK_THROWS_WITH(json::parser("-0.").parse(), - "parse error - unexpected '.'; expected end of input"); - CHECK_THROWS_WITH(json::parser("-.").parse(), - "parse error - unexpected '-'"); - CHECK_THROWS_WITH(json::parser("-:").parse(), - "parse error - unexpected '-'"); - CHECK_THROWS_WITH(json::parser("0.:").parse(), - "parse error - unexpected '.'; expected end of input"); - CHECK_THROWS_WITH(json::parser("e.").parse(), - "parse error - unexpected 'e'"); - CHECK_THROWS_WITH(json::parser("1e.").parse(), - "parse error - unexpected 'e'; expected end of input"); - CHECK_THROWS_WITH(json::parser("1e/").parse(), - "parse error - unexpected 'e'; expected end of input"); - CHECK_THROWS_WITH(json::parser("1e:").parse(), - "parse error - unexpected 'e'; expected end of input"); - CHECK_THROWS_WITH(json::parser("1E.").parse(), - "parse error - unexpected 'E'; expected end of input"); - CHECK_THROWS_WITH(json::parser("1E/").parse(), - "parse error - unexpected 'E'; expected end of input"); - CHECK_THROWS_WITH(json::parser("1E:").parse(), - "parse error - unexpected 'E'; expected end of input"); - - // unexpected end of null - CHECK_THROWS_AS(json::parser("n").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("nu").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("nul").parse(), std::invalid_argument); - CHECK_THROWS_WITH(json::parser("n").parse(), "parse error - unexpected 'n'"); - CHECK_THROWS_WITH(json::parser("nu").parse(), - "parse error - unexpected 'n'"); - CHECK_THROWS_WITH(json::parser("nul").parse(), - "parse error - unexpected 'n'"); - - // unexpected end of true - CHECK_THROWS_AS(json::parser("t").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("tr").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("tru").parse(), std::invalid_argument); - CHECK_THROWS_WITH(json::parser("t").parse(), "parse error - unexpected 't'"); - CHECK_THROWS_WITH(json::parser("tr").parse(), - "parse error - unexpected 't'"); - CHECK_THROWS_WITH(json::parser("tru").parse(), - "parse error - unexpected 't'"); - - // unexpected end of false - CHECK_THROWS_AS(json::parser("f").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("fa").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("fal").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("fals").parse(), std::invalid_argument); - CHECK_THROWS_WITH(json::parser("f").parse(), "parse error - unexpected 'f'"); - CHECK_THROWS_WITH(json::parser("fa").parse(), - "parse error - unexpected 'f'"); - CHECK_THROWS_WITH(json::parser("fal").parse(), - "parse error - unexpected 'f'"); - CHECK_THROWS_WITH(json::parser("fals").parse(), - "parse error - unexpected 'f'"); - - // missing/unexpected end of array - CHECK_THROWS_AS(json::parser("[").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("[1").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("[1,").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("[1,]").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("]").parse(), std::invalid_argument); - CHECK_THROWS_WITH(json::parser("[").parse(), - "parse error - unexpected end of input"); - CHECK_THROWS_WITH(json::parser("[1").parse(), - "parse error - unexpected end of input; expected ']'"); - CHECK_THROWS_WITH(json::parser("[1,").parse(), - "parse error - unexpected end of input"); - CHECK_THROWS_WITH(json::parser("[1,]").parse(), - "parse error - unexpected ']'"); - CHECK_THROWS_WITH(json::parser("]").parse(), "parse error - unexpected ']'"); - - // missing/unexpected end of object - CHECK_THROWS_AS(json::parser("{").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("{\"foo\"").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("{\"foo\":").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("{\"foo\":}").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("{\"foo\":1,}").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("}").parse(), std::invalid_argument); - CHECK_THROWS_WITH(json::parser("{").parse(), - "parse error - unexpected end of input; expected string literal"); - CHECK_THROWS_WITH(json::parser("{\"foo\"").parse(), - "parse error - unexpected end of input; expected ':'"); - CHECK_THROWS_WITH(json::parser("{\"foo\":").parse(), - "parse error - unexpected end of input"); - CHECK_THROWS_WITH(json::parser("{\"foo\":}").parse(), - "parse error - unexpected '}'"); - CHECK_THROWS_WITH(json::parser("{\"foo\":1,}").parse(), - "parse error - unexpected '}'; expected string literal"); - CHECK_THROWS_WITH(json::parser("}").parse(), "parse error - unexpected '}'"); - - // missing/unexpected end of string - CHECK_THROWS_AS(json::parser("\"").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("\"\\\"").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("\"\\u\"").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("\"\\u0\"").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("\"\\u01\"").parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser("\"\\u012\"").parse(), std::invalid_argument); - CHECK_THROWS_WITH(json::parser("\"").parse(), - "parse error - unexpected '\"'"); - CHECK_THROWS_WITH(json::parser("\"\\\"").parse(), - "parse error - unexpected '\"'"); - CHECK_THROWS_WITH(json::parser("\"\\u\"").parse(), - "parse error - unexpected '\"'"); - CHECK_THROWS_WITH(json::parser("\"\\u0\"").parse(), - "parse error - unexpected '\"'"); - CHECK_THROWS_WITH(json::parser("\"\\u01\"").parse(), - "parse error - unexpected '\"'"); - CHECK_THROWS_WITH(json::parser("\"\\u012\"").parse(), - "parse error - unexpected '\"'"); - - // invalid escapes - for (int c = 1; c < 128; ++c) - { - auto s = std::string("\"\\") + std::string(1, c) + "\""; - - switch (c) - { - // valid escapes - case ('"'): - case ('\\'): - case ('/'): - case ('b'): - case ('f'): - case ('n'): - case ('r'): - case ('t'): - { - CHECK_NOTHROW(json::parser(s).parse()); - break; - } - - // \u must be followed with four numbers, so we skip it here - case ('u'): - { - break; - } - - // any other combination of backslash and character is invalid - default: - { - CHECK_THROWS_AS(json::parser(s).parse(), std::invalid_argument); - CHECK_THROWS_WITH(json::parser(s).parse(), "parse error - unexpected '\"'"); - break; - } - } - } - - // invalid \uxxxx escapes - { - // check whether character is a valid hex character - const auto valid = [](int c) - { - switch (c) - { - case ('0'): - case ('1'): - case ('2'): - case ('3'): - case ('4'): - case ('5'): - case ('6'): - case ('7'): - case ('8'): - case ('9'): - case ('a'): - case ('b'): - case ('c'): - case ('d'): - case ('e'): - case ('f'): - case ('A'): - case ('B'): - case ('C'): - case ('D'): - case ('E'): - case ('F'): - { - return true; - } - - default: - { - return false; - } - } - }; - - for (int c = 1; c < 128; ++c) - { - std::string s = "\"\\u"; - - // create a string with the iterated character at each position - auto s1 = s + "000" + std::string(1, c) + "\""; - auto s2 = s + "00" + std::string(1, c) + "0\""; - auto s3 = s + "0" + std::string(1, c) + "00\""; - auto s4 = s + std::string(1, c) + "000\""; - - if (valid(c)) - { - CHECK_NOTHROW(json::parser(s1).parse()); - CHECK_NOTHROW(json::parser(s2).parse()); - CHECK_NOTHROW(json::parser(s3).parse()); - CHECK_NOTHROW(json::parser(s4).parse()); - } - else - { - CHECK_THROWS_AS(json::parser(s1).parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser(s2).parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser(s3).parse(), std::invalid_argument); - CHECK_THROWS_AS(json::parser(s4).parse(), std::invalid_argument); - - CHECK_THROWS_WITH(json::parser(s1).parse(), "parse error - unexpected '\"'"); - CHECK_THROWS_WITH(json::parser(s2).parse(), "parse error - unexpected '\"'"); - CHECK_THROWS_WITH(json::parser(s3).parse(), "parse error - unexpected '\"'"); - CHECK_THROWS_WITH(json::parser(s4).parse(), "parse error - unexpected '\"'"); - } - } - } - - // missing part of a surrogate pair - CHECK_THROWS_AS(json::parse("\"\\uD80C\""), std::invalid_argument); - CHECK_THROWS_WITH(json::parse("\"\\uD80C\""), "missing low surrogate"); - // invalid surrogate pair - CHECK_THROWS_AS(json::parse("\"\\uD80C\\uD80C\""), std::invalid_argument); - CHECK_THROWS_AS(json::parse("\"\\uD80C\\u0000\""), std::invalid_argument); - CHECK_THROWS_AS(json::parse("\"\\uD80C\\uFFFF\""), std::invalid_argument); - CHECK_THROWS_WITH(json::parse("\"\\uD80C\\uD80C\""), - "missing or wrong low surrogate"); - CHECK_THROWS_WITH(json::parse("\"\\uD80C\\u0000\""), - "missing or wrong low surrogate"); - CHECK_THROWS_WITH(json::parse("\"\\uD80C\\uFFFF\""), - "missing or wrong low surrogate"); - } - - SECTION("callback function") - { - auto s_object = R"( - { - "foo": 2, - "bar": { - "baz": 1 - } - } - )"; - - auto s_array = R"( - [1,2,[3,4,5],4,5] - )"; - - SECTION("filter nothing") - { - json j_object = json::parse(s_object, [](int, json::parse_event_t, const json&) - { - return true; - }); - - CHECK (j_object == json({{"foo", 2}, {"bar", {{"baz", 1}}}})); - - json j_array = json::parse(s_array, [](int, json::parse_event_t, const json&) - { - return true; - }); - - CHECK (j_array == json({1, 2, {3, 4, 5}, 4, 5})); - } - - SECTION("filter everything") - { - json j_object = json::parse(s_object, [](int, json::parse_event_t, const json&) - { - return false; - }); - - // the top-level object will be discarded, leaving a null - CHECK (j_object.is_null()); - - json j_array = json::parse(s_array, [](int, json::parse_event_t, const json&) - { - return false; - }); - - // the top-level array will be discarded, leaving a null - CHECK (j_array.is_null()); - } - - SECTION("filter specific element") - { - json j_object = json::parse(s_object, [](int, json::parse_event_t, const json & j) - { - // filter all number(2) elements - if (j == json(2)) - { - return false; - } - else - { - return true; - } - }); - - CHECK (j_object == json({{"bar", {{"baz", 1}}}})); - - json j_array = json::parse(s_array, [](int, json::parse_event_t, const json & j) - { - if (j == json(2)) - { - return false; - } - else - { - return true; - } - }); - - CHECK (j_array == json({1, {3, 4, 5}, 4, 5})); - } - - SECTION("filter specific events") - { - SECTION("first closing event") - { - { - json j_object = json::parse(s_object, [](int, json::parse_event_t e, const json&) - { - static bool first = true; - if (e == json::parse_event_t::object_end and first) - { - first = false; - return false; - } - else - { - return true; - } - }); - - // the first completed object will be discarded - CHECK (j_object == json({{"foo", 2}})); - } - - { - json j_array = json::parse(s_array, [](int, json::parse_event_t e, const json&) - { - static bool first = true; - if (e == json::parse_event_t::array_end and first) - { - first = false; - return false; - } - else - { - return true; - } - }); - - // the first completed array will be discarded - CHECK (j_array == json({1, 2, 4, 5})); - } - } - } - - SECTION("special cases") - { - // the following test cases cover the situation in which an empty - // object and array is discarded only after the closing character - // has been read - - json j_empty_object = json::parse("{}", [](int, json::parse_event_t e, const json&) - { - if (e == json::parse_event_t::object_end) - { - return false; - } - else - { - return true; - } - }); - CHECK(j_empty_object == json()); - - json j_empty_array = json::parse("[]", [](int, json::parse_event_t e, const json&) - { - if (e == json::parse_event_t::array_end) - { - return false; - } - else - { - return true; - } - }); - CHECK(j_empty_array == json()); - } - } -} - -TEST_CASE("README", "[hide]") -{ - { - // create an empty structure (null) - json j; - - // add a number that is stored as double (note the implicit conversion of j to an object) - j["pi"] = 3.141; - - // add a Boolean that is stored as bool - j["happy"] = true; - - // add a string that is stored as std::string - j["name"] = "Niels"; - - // add another null object by passing nullptr - j["nothing"] = nullptr; - - // add an object inside the object - j["answer"]["everything"] = 42; - - // add an array that is stored as std::vector (using an initializer list) - j["list"] = { 1, 0, 2 }; - - // add another object (using an initializer list of pairs) - j["object"] = { {"currency", "USD"}, {"value", 42.99} }; - - // instead, you could also write (which looks very similar to the JSON above) - json j2 = - { - {"pi", 3.141}, - {"happy", true}, - {"name", "Niels"}, - {"nothing", nullptr}, - { - "answer", { - {"everything", 42} - } - }, - {"list", {1, 0, 2}}, - { - "object", { - {"currency", "USD"}, - {"value", 42.99} - } - } - }; - } - - { - // ways to express the empty array [] - json empty_array_implicit = {{}}; - json empty_array_explicit = json::array(); - - // a way to express the empty object {} - json empty_object_explicit = json::object(); - - // a way to express an _array_ of key/value pairs [["currency", "USD"], ["value", 42.99]] - json array_not_object = { json::array({"currency", "USD"}), json::array({"value", 42.99}) }; - } - - { - // create object from string literal - json j = "{ \"happy\": true, \"pi\": 3.141 }"_json; - - // or even nicer (thanks http://isocpp.org/blog/2015/01/json-for-modern-cpp) - auto j2 = R"( - { - "happy": true, - "pi": 3.141 - } - )"_json; - - // or explicitly - auto j3 = json::parse("{ \"happy\": true, \"pi\": 3.141 }"); - - // explicit conversion to string - std::string s = j.dump(); // {\"happy\":true,\"pi\":3.141} - - // serialization with pretty printing - // pass in the amount of spaces to indent - std::cout << j.dump(4) << std::endl; - // { - // "happy": true, - // "pi": 3.141 - // } - - std::cout << std::setw(2) << j << std::endl; - } - - { - // create an array using push_back - json j; - j.push_back("foo"); - j.push_back(1); - j.push_back(true); - - // iterate the array - for (json::iterator it = j.begin(); it != j.end(); ++it) - { - std::cout << *it << '\n'; - } - - // range-based for - for (auto element : j) - { - std::cout << element << '\n'; - } - - // getter/setter - const std::string tmp = j[0]; - j[1] = 42; - bool foo = j.at(2); - - // other stuff - j.size(); // 3 entries - j.empty(); // false - j.type(); // json::value_t::array - j.clear(); // the array is empty again - - // comparison - j == "[\"foo\", 1, true]"_json; // true - - // create an object - json o; - o["foo"] = 23; - o["bar"] = false; - o["baz"] = 3.141; - - // find an entry - if (o.find("foo") != o.end()) - { - // there is an entry with key "foo" - } - } - - { - std::vector c_vector {1, 2, 3, 4}; - json j_vec(c_vector); - // [1, 2, 3, 4] - - std::deque c_deque {1.2f, 2.3f, 3.4f, 5.6f}; - json j_deque(c_deque); - // [1.2, 2.3, 3.4, 5.6] - - std::list c_list {true, true, false, true}; - json j_list(c_list); - // [true, true, false, true] - - std::forward_list c_flist {12345678909876, 23456789098765, 34567890987654, 45678909876543}; - json j_flist(c_flist); - // [12345678909876, 23456789098765, 34567890987654, 45678909876543] - - std::array c_array {{1, 2, 3, 4}}; - json j_array(c_array); - // [1, 2, 3, 4] - - std::set c_set {"one", "two", "three", "four", "one"}; - json j_set(c_set); // only one entry for "one" is used - // ["four", "one", "three", "two"] - - std::unordered_set c_uset {"one", "two", "three", "four", "one"}; - json j_uset(c_uset); // only one entry for "one" is used - // maybe ["two", "three", "four", "one"] - - std::multiset c_mset {"one", "two", "one", "four"}; - json j_mset(c_mset); // only one entry for "one" is used - // maybe ["one", "two", "four"] - - std::unordered_multiset c_umset {"one", "two", "one", "four"}; - json j_umset(c_umset); // both entries for "one" are used - // maybe ["one", "two", "one", "four"] - } - - { - std::map c_map { {"one", 1}, {"two", 2}, {"three", 3} }; - json j_map(c_map); - // {"one": 1, "two": 2, "three": 3} - - std::unordered_map c_umap { {"one", 1.2f}, {"two", 2.3f}, {"three", 3.4f} }; - json j_umap(c_umap); - // {"one": 1.2, "two": 2.3, "three": 3.4} - - std::multimap c_mmap { {"one", true}, {"two", true}, {"three", false}, {"three", true} }; - json j_mmap(c_mmap); // only one entry for key "three" is used - // maybe {"one": true, "two": true, "three": true} - - std::unordered_multimap c_ummap { {"one", true}, {"two", true}, {"three", false}, {"three", true} }; - json j_ummap(c_ummap); // only one entry for key "three" is used - // maybe {"one": true, "two": true, "three": true} - } - - { - /// strings - std::string s1 = "Hello, world!"; - json js = s1; - std::string s2 = js; - - // Booleans - bool b1 = true; - json jb = b1; - bool b2 = jb; - - // numbers - int i = 42; - json jn = i; - double f = jn; - - // etc. - - std::string vs = js.get(); - bool vb = jb.get(); - int vi = jn.get(); - - // etc. - } -} - -TEST_CASE("algorithms") -{ - json j_array = {13, 29, 3, {{"one", 1}, {"two", 2}}, true, false, {1, 2, 3}, "foo", "baz"}; - json j_object = {{"one", 1}, {"two", 2}}; - - SECTION("non-modifying sequence operations") - { - SECTION("std::all_of") - { - CHECK(std::all_of(j_array.begin(), j_array.end(), [](const json & value) - { - return value.size() > 0; - })); - CHECK(std::all_of(j_object.begin(), j_object.end(), [](const json & value) - { - return value.type() == json::value_t::number_integer; - })); - } - - SECTION("std::any_of") - { - CHECK(std::any_of(j_array.begin(), j_array.end(), [](const json & value) - { - return value.is_string() and value.get() == "foo"; - })); - CHECK(std::any_of(j_object.begin(), j_object.end(), [](const json & value) - { - return value.get() > 1; - })); - } - - SECTION("std::none_of") - { - CHECK(std::none_of(j_array.begin(), j_array.end(), [](const json & value) - { - return value.size() == 0; - })); - CHECK(std::none_of(j_object.begin(), j_object.end(), [](const json & value) - { - return value.get() <= 0; - })); - } - - SECTION("std::for_each") - { - SECTION("reading") - { - int sum = 0; - - std::for_each(j_array.cbegin(), j_array.cend(), [&sum](const json & value) - { - if (value.is_number()) - { - sum += static_cast(value); - } - }); - - CHECK(sum == 45); - } - - SECTION("writing") - { - auto add17 = [](json & value) - { - if (value.is_array()) - { - value.push_back(17); - } - }; - - std::for_each(j_array.begin(), j_array.end(), add17); - - CHECK(j_array[6] == json({1, 2, 3, 17})); - } - } - - SECTION("std::count") - { - CHECK(std::count(j_array.begin(), j_array.end(), json(true)) == 1); - } - - SECTION("std::count_if") - { - CHECK(std::count_if(j_array.begin(), j_array.end(), [](const json & value) - { - return (value.is_number()); - }) == 3); - CHECK(std::count_if(j_array.begin(), j_array.end(), [](const json&) - { - return true; - }) == 9); - } - - SECTION("std::mismatch") - { - json j_array2 = {13, 29, 3, {{"one", 1}, {"two", 2}, {"three", 3}}, true, false, {1, 2, 3}, "foo", "baz"}; - auto res = std::mismatch(j_array.begin(), j_array.end(), j_array2.begin()); - CHECK(*res.first == json({{"one", 1}, {"two", 2}})); - CHECK(*res.second == json({{"one", 1}, {"two", 2}, {"three", 3}})); - } - - SECTION("std::equal") - { - SECTION("using operator==") - { - CHECK(std::equal(j_array.begin(), j_array.end(), j_array.begin())); - CHECK(std::equal(j_object.begin(), j_object.end(), j_object.begin())); - CHECK(not std::equal(j_array.begin(), j_array.end(), j_object.begin())); - } - - SECTION("using user-defined comparison") - { - // compare objects only by size of its elements - json j_array2 = {13, 29, 3, {"Hello", "World"}, true, false, {{"one", 1}, {"two", 2}, {"three", 3}}, "foo", "baz"}; - CHECK(not std::equal(j_array.begin(), j_array.end(), j_array2.begin())); - CHECK(std::equal(j_array.begin(), j_array.end(), j_array2.begin(), - [](const json & a, const json & b) - { - return (a.size() == b.size()); - })); - } - } - - SECTION("std::find") - { - auto it = std::find(j_array.begin(), j_array.end(), json(false)); - CHECK(std::distance(j_array.begin(), it) == 5); - } - - SECTION("std::find_if") - { - auto it = std::find_if(j_array.begin(), j_array.end(), - [](const json & value) - { - return value.is_boolean(); - }); - CHECK(std::distance(j_array.begin(), it) == 4); - } - - SECTION("std::find_if_not") - { - auto it = std::find_if_not(j_array.begin(), j_array.end(), - [](const json & value) - { - return value.is_number(); - }); - CHECK(std::distance(j_array.begin(), it) == 3); - } - - SECTION("std::adjacent_find") - { - CHECK(std::adjacent_find(j_array.begin(), j_array.end()) == j_array.end()); - CHECK(std::adjacent_find(j_array.begin(), j_array.end(), - [](const json & v1, const json & v2) - { - return v1.type() == v2.type(); - }) == j_array.begin()); - } - } - - SECTION("modifying sequence operations") - { - SECTION("std::reverse") - { - std::reverse(j_array.begin(), j_array.end()); - CHECK(j_array == json({"baz", "foo", {1, 2, 3}, false, true, {{"one", 1}, {"two", 2}}, 3, 29, 13})); - } - - SECTION("std::rotate") - { - std::rotate(j_array.begin(), j_array.begin() + 1, j_array.end()); - CHECK(j_array == json({29, 3, {{"one", 1}, {"two", 2}}, true, false, {1, 2, 3}, "foo", "baz", 13})); - } - - SECTION("std::partition") - { - auto it = std::partition(j_array.begin(), j_array.end(), [](const json & v) - { - return v.is_string(); - }); - CHECK(std::distance(j_array.begin(), it) == 2); - CHECK(not it[2].is_string()); - } - } - - SECTION("sorting operations") - { - SECTION("std::sort") - { - SECTION("with standard comparison") - { - json j = {13, 29, 3, {{"one", 1}, {"two", 2}}, true, false, {1, 2, 3}, "foo", "baz", nullptr}; - std::sort(j.begin(), j.end()); - CHECK(j == json({nullptr, false, true, 3, 13, 29, {{"one", 1}, {"two", 2}}, {1, 2, 3}, "baz", "foo"})); - } - - SECTION("with user-defined comparison") - { - json j = {3, {{"one", 1}, {"two", 2}}, {1, 2, 3}, nullptr}; - std::sort(j.begin(), j.end(), [](const json & a, const json & b) - { - return a.size() < b.size(); - }); - CHECK(j == json({nullptr, 3, {{"one", 1}, {"two", 2}}, {1, 2, 3}})); - } - - SECTION("sorting an object") - { - json j({{"one", 1}, {"two", 2}}); - CHECK_THROWS_AS(std::sort(j.begin(), j.end()), std::domain_error); - CHECK_THROWS_WITH(std::sort(j.begin(), j.end()), "cannot use offsets with object iterators"); - } - } - - SECTION("std::partial_sort") - { - json j = {13, 29, 3, {{"one", 1}, {"two", 2}}, true, false, {1, 2, 3}, "foo", "baz", nullptr}; - std::partial_sort(j.begin(), j.begin() + 4, j.end()); - CHECK(j == json({nullptr, false, true, 3, {{"one", 1}, {"two", 2}}, 29, {1, 2, 3}, "foo", "baz", 13})); - } - } - - SECTION("set operations") - { - SECTION("std::merge") - { - { - json j1 = {2, 4, 6, 8}; - json j2 = {1, 2, 3, 5, 7}; - json j3; - - std::merge(j1.begin(), j1.end(), j2.begin(), j2.end(), std::back_inserter(j3)); - CHECK(j3 == json({1, 2, 2, 3, 4, 5, 6, 7, 8})); - } - } - - SECTION("std::set_difference") - { - json j1 = {1, 2, 3, 4, 5, 6, 7, 8}; - json j2 = {1, 2, 3, 5, 7}; - json j3; - - std::set_difference(j1.begin(), j1.end(), j2.begin(), j2.end(), std::back_inserter(j3)); - CHECK(j3 == json({4, 6, 8})); - } - - SECTION("std::set_intersection") - { - json j1 = {1, 2, 3, 4, 5, 6, 7, 8}; - json j2 = {1, 2, 3, 5, 7}; - json j3; - - std::set_intersection(j1.begin(), j1.end(), j2.begin(), j2.end(), std::back_inserter(j3)); - CHECK(j3 == json({1, 2, 3, 5, 7})); - } - - SECTION("std::set_union") - { - json j1 = {2, 4, 6, 8}; - json j2 = {1, 2, 3, 5, 7}; - json j3; - - std::set_union(j1.begin(), j1.end(), j2.begin(), j2.end(), std::back_inserter(j3)); - CHECK(j3 == json({1, 2, 3, 4, 5, 6, 7, 8})); - } - - SECTION("std::set_symmetric_difference") - { - json j1 = {2, 4, 6, 8}; - json j2 = {1, 2, 3, 5, 7}; - json j3; - - std::set_symmetric_difference(j1.begin(), j1.end(), j2.begin(), j2.end(), std::back_inserter(j3)); - CHECK(j3 == json({1, 3, 4, 5, 6, 7, 8})); - } - } - - SECTION("heap operations") - { - std::make_heap(j_array.begin(), j_array.end()); - CHECK(std::is_heap(j_array.begin(), j_array.end())); - std::sort_heap(j_array.begin(), j_array.end()); - CHECK(j_array == json({false, true, 3, 13, 29, {{"one", 1}, {"two", 2}}, {1, 2, 3}, "baz", "foo"})); - } -} - -TEST_CASE("concepts") -{ - SECTION("container requirements for json") - { - // X: container class: json - // T: type of objects: json - // a, b: values of type X: json - - // TABLE 96 - Container Requirements - - // X::value_type must return T - CHECK((std::is_same::value)); - - // X::reference must return lvalue of T - CHECK((std::is_same::value)); - - // X::const_reference must return const lvalue of T - CHECK((std::is_same::value)); - - // X::iterator must return iterator whose value_type is T - CHECK((std::is_same::value)); - // X::iterator must meet the forward iterator requirements - CHECK((std::is_base_of::iterator_category>::value)); - // X::iterator must be convertible to X::const_iterator - CHECK((std::is_convertible::value)); - - // X::const_iterator must return iterator whose value_type is T - CHECK((std::is_same::value)); - // X::const_iterator must meet the forward iterator requirements - CHECK((std::is_base_of::iterator_category>::value)); - - // X::difference_type must return a signed integer - CHECK((std::is_signed::value)); - // X::difference_type must be identical to X::iterator::difference_type - CHECK((std::is_same::value)); - // X::difference_type must be identical to X::const_iterator::difference_type - CHECK((std::is_same::value)); - - // X::size_type must return an unsigned integer - CHECK((std::is_unsigned::value)); - // X::size_type can represent any non-negative value of X::difference_type - CHECK(std::numeric_limits::max() <= - std::numeric_limits::max()); - - // the expression "X u" has the post-condition "u.empty()" - { - json u; - CHECK(u.empty()); - } - - // the expression "X()" has the post-condition "X().empty()" - CHECK(json().empty()); - } - - SECTION("class json") - { - SECTION("DefaultConstructible") - { - CHECK(std::is_nothrow_default_constructible::value); - } - - SECTION("MoveConstructible") - { - CHECK(std::is_nothrow_move_constructible::value); - } - - SECTION("CopyConstructible") - { - CHECK(std::is_copy_constructible::value); - } - - SECTION("MoveAssignable") - { - CHECK(std::is_nothrow_move_assignable::value); - } - - SECTION("CopyAssignable") - { - CHECK(std::is_copy_assignable::value); - } - - SECTION("Destructible") - { - CHECK(std::is_nothrow_destructible::value); - } - - SECTION("StandardLayoutType") - { - CHECK(std::is_standard_layout::value); - } - } - - SECTION("class iterator") - { - SECTION("CopyConstructible") - { - CHECK(std::is_nothrow_copy_constructible::value); - CHECK(std::is_nothrow_copy_constructible::value); - } - - SECTION("CopyAssignable") - { - // STL iterators used by json::iterator don't pass this test in Debug mode -#if !defined(_MSC_VER) || (_ITERATOR_DEBUG_LEVEL == 0) - CHECK(std::is_nothrow_copy_assignable::value); - CHECK(std::is_nothrow_copy_assignable::value); -#endif - } - - SECTION("Destructible") - { - CHECK(std::is_nothrow_destructible::value); - CHECK(std::is_nothrow_destructible::value); - } - - SECTION("Swappable") - { - { - json j {1, 2, 3}; - json::iterator it1 = j.begin(); - json::iterator it2 = j.end(); - std::swap(it1, it2); - CHECK(it1 == j.end()); - CHECK(it2 == j.begin()); - } - { - json j {1, 2, 3}; - json::const_iterator it1 = j.cbegin(); - json::const_iterator it2 = j.cend(); - std::swap(it1, it2); - CHECK(it1 == j.end()); - CHECK(it2 == j.begin()); - } - } - } -} - -TEST_CASE("iterator_wrapper") -{ - SECTION("object") - { - SECTION("value") - { - json j = {{"A", 1}, {"B", 2}}; - int counter = 1; - - for (auto i : json::iterator_wrapper(j)) - { - switch (counter++) - { - case 1: - { - CHECK(i.key() == "A"); - CHECK(i.value() == json(1)); - break; - } - - case 2: - { - CHECK(i.key() == "B"); - CHECK(i.value() == json(2)); - break; - } - - default: - { - break; - } - } - } - - CHECK(counter == 3); - } - - SECTION("reference") - { - json j = {{"A", 1}, {"B", 2}}; - int counter = 1; - - for (auto& i : json::iterator_wrapper(j)) - { - switch (counter++) - { - case 1: - { - CHECK(i.key() == "A"); - CHECK(i.value() == json(1)); - - // change the value - i.value() = json(11); - CHECK(i.value() == json(11)); - break; - } - - case 2: - { - CHECK(i.key() == "B"); - CHECK(i.value() == json(2)); - - // change the value - i.value() = json(22); - CHECK(i.value() == json(22)); - break; - } - - default: - { - break; - } - } - } - - CHECK(counter == 3); - - // check if values where changed - CHECK(j == json({{"A", 11}, {"B", 22}})); - } - - SECTION("const value") - { - json j = {{"A", 1}, {"B", 2}}; - int counter = 1; - - for (const auto i : json::iterator_wrapper(j)) - { - switch (counter++) - { - case 1: - { - CHECK(i.key() == "A"); - CHECK(i.value() == json(1)); - break; - } - - case 2: - { - CHECK(i.key() == "B"); - CHECK(i.value() == json(2)); - break; - } - - default: - { - break; - } - } - } - - CHECK(counter == 3); - } - - SECTION("const reference") - { - json j = {{"A", 1}, {"B", 2}}; - int counter = 1; - - for (const auto& i : json::iterator_wrapper(j)) - { - switch (counter++) - { - case 1: - { - CHECK(i.key() == "A"); - CHECK(i.value() == json(1)); - break; - } - - case 2: - { - CHECK(i.key() == "B"); - CHECK(i.value() == json(2)); - break; - } - - default: - { - break; - } - } - } - - CHECK(counter == 3); - } - } - - SECTION("const object") - { - SECTION("value") - { - const json j = {{"A", 1}, {"B", 2}}; - int counter = 1; - - for (auto i : json::iterator_wrapper(j)) - { - switch (counter++) - { - case 1: - { - CHECK(i.key() == "A"); - CHECK(i.value() == json(1)); - break; - } - - case 2: - { - CHECK(i.key() == "B"); - CHECK(i.value() == json(2)); - break; - } - - default: - { - break; - } - } - } - - CHECK(counter == 3); - } - - SECTION("reference") - { - const json j = {{"A", 1}, {"B", 2}}; - int counter = 1; - - for (auto& i : json::iterator_wrapper(j)) - { - switch (counter++) - { - case 1: - { - CHECK(i.key() == "A"); - CHECK(i.value() == json(1)); - break; - } - - case 2: - { - CHECK(i.key() == "B"); - CHECK(i.value() == json(2)); - break; - } - - default: - { - break; - } - } - } - - CHECK(counter == 3); - } - - SECTION("const value") - { - const json j = {{"A", 1}, {"B", 2}}; - int counter = 1; - - for (const auto i : json::iterator_wrapper(j)) - { - switch (counter++) - { - case 1: - { - CHECK(i.key() == "A"); - CHECK(i.value() == json(1)); - break; - } - - case 2: - { - CHECK(i.key() == "B"); - CHECK(i.value() == json(2)); - break; - } - - default: - { - break; - } - } - } - - CHECK(counter == 3); - } - - SECTION("const reference") - { - const json j = {{"A", 1}, {"B", 2}}; - int counter = 1; - - for (const auto& i : json::iterator_wrapper(j)) - { - switch (counter++) - { - case 1: - { - CHECK(i.key() == "A"); - CHECK(i.value() == json(1)); - break; - } - - case 2: - { - CHECK(i.key() == "B"); - CHECK(i.value() == json(2)); - break; - } - - default: - { - break; - } - } - } - - CHECK(counter == 3); - } - } - - SECTION("array") - { - SECTION("value") - { - json j = {"A", "B"}; - int counter = 1; - - for (auto i : json::iterator_wrapper(j)) - { - switch (counter++) - { - case 1: - { - CHECK(i.key() == "0"); - CHECK(i.value() == "A"); - break; - } - - case 2: - { - CHECK(i.key() == "1"); - CHECK(i.value() == "B"); - break; - } - - default: - { - break; - } - } - } - - CHECK(counter == 3); - } - - SECTION("reference") - { - json j = {"A", "B"}; - int counter = 1; - - for (auto& i : json::iterator_wrapper(j)) - { - switch (counter++) - { - case 1: - { - CHECK(i.key() == "0"); - CHECK(i.value() == "A"); - - // change the value - i.value() = "AA"; - CHECK(i.value() == "AA"); - break; - } - - case 2: - { - CHECK(i.key() == "1"); - CHECK(i.value() == "B"); - - // change the value - i.value() = "BB"; - CHECK(i.value() == "BB"); - break; - } - - default: - { - break; - } - } - } - - CHECK(counter == 3); - - // check if values where changed - CHECK(j == json({"AA", "BB"})); - } - - SECTION("const value") - { - json j = {"A", "B"}; - int counter = 1; - - for (const auto i : json::iterator_wrapper(j)) - { - switch (counter++) - { - case 1: - { - CHECK(i.key() == "0"); - CHECK(i.value() == "A"); - break; - } - - case 2: - { - CHECK(i.key() == "1"); - CHECK(i.value() == "B"); - break; - } - - default: - { - break; - } - } - } - - CHECK(counter == 3); - } - - SECTION("const reference") - { - json j = {"A", "B"}; - int counter = 1; - - for (const auto& i : json::iterator_wrapper(j)) - { - switch (counter++) - { - case 1: - { - CHECK(i.key() == "0"); - CHECK(i.value() == "A"); - break; - } - - case 2: - { - CHECK(i.key() == "1"); - CHECK(i.value() == "B"); - break; - } - - default: - { - break; - } - } - } - - CHECK(counter == 3); - } - } - - SECTION("const array") - { - SECTION("value") - { - const json j = {"A", "B"}; - int counter = 1; - - for (auto i : json::iterator_wrapper(j)) - { - switch (counter++) - { - case 1: - { - CHECK(i.key() == "0"); - CHECK(i.value() == "A"); - break; - } - - case 2: - { - CHECK(i.key() == "1"); - CHECK(i.value() == "B"); - break; - } - - default: - { - break; - } - } - } - - CHECK(counter == 3); - } - - SECTION("reference") - { - const json j = {"A", "B"}; - int counter = 1; - - for (auto& i : json::iterator_wrapper(j)) - { - switch (counter++) - { - case 1: - { - CHECK(i.key() == "0"); - CHECK(i.value() == "A"); - break; - } - - case 2: - { - CHECK(i.key() == "1"); - CHECK(i.value() == "B"); - break; - } - - default: - { - break; - } - } - } - - CHECK(counter == 3); - } - - SECTION("const value") - { - const json j = {"A", "B"}; - int counter = 1; - - for (const auto i : json::iterator_wrapper(j)) - { - switch (counter++) - { - case 1: - { - CHECK(i.key() == "0"); - CHECK(i.value() == "A"); - break; - } - - case 2: - { - CHECK(i.key() == "1"); - CHECK(i.value() == "B"); - break; - } - - default: - { - break; - } - } - } - - CHECK(counter == 3); - } - - SECTION("const reference") - { - const json j = {"A", "B"}; - int counter = 1; - - for (const auto& i : json::iterator_wrapper(j)) - { - switch (counter++) - { - case 1: - { - CHECK(i.key() == "0"); - CHECK(i.value() == "A"); - break; - } - - case 2: - { - CHECK(i.key() == "1"); - CHECK(i.value() == "B"); - break; - } - - default: - { - break; - } - } - } - - CHECK(counter == 3); - } - } - - SECTION("primitive") - { - SECTION("value") - { - json j = 1; - int counter = 1; - - for (auto i : json::iterator_wrapper(j)) - { - ++counter; - CHECK(i.key() == ""); - CHECK(i.value() == json(1)); - } - - CHECK(counter == 2); - } - - SECTION("reference") - { - json j = 1; - int counter = 1; - - for (auto& i : json::iterator_wrapper(j)) - { - ++counter; - CHECK(i.key() == ""); - CHECK(i.value() == json(1)); - - // change value - i.value() = json(2); - } - - CHECK(counter == 2); - - // check if value has changed - CHECK(j == json(2)); - } - - SECTION("const value") - { - json j = 1; - int counter = 1; - - for (const auto i : json::iterator_wrapper(j)) - { - ++counter; - CHECK(i.key() == ""); - CHECK(i.value() == json(1)); - } - - CHECK(counter == 2); - } - - SECTION("const reference") - { - json j = 1; - int counter = 1; - - for (const auto& i : json::iterator_wrapper(j)) - { - ++counter; - CHECK(i.key() == ""); - CHECK(i.value() == json(1)); - } - - CHECK(counter == 2); - } - } - - SECTION("const primitive") - { - SECTION("value") - { - const json j = 1; - int counter = 1; - - for (auto i : json::iterator_wrapper(j)) - { - ++counter; - CHECK(i.key() == ""); - CHECK(i.value() == json(1)); - } - - CHECK(counter == 2); - } - - SECTION("reference") - { - const json j = 1; - int counter = 1; - - for (auto& i : json::iterator_wrapper(j)) - { - ++counter; - CHECK(i.key() == ""); - CHECK(i.value() == json(1)); - } - - CHECK(counter == 2); - } - - SECTION("const value") - { - const json j = 1; - int counter = 1; - - for (const auto i : json::iterator_wrapper(j)) - { - ++counter; - CHECK(i.key() == ""); - CHECK(i.value() == json(1)); - } - - CHECK(counter == 2); - } - - SECTION("const reference") - { - const json j = 1; - int counter = 1; - - for (const auto& i : json::iterator_wrapper(j)) - { - ++counter; - CHECK(i.key() == ""); - CHECK(i.value() == json(1)); - } - - CHECK(counter == 2); - } - } -} - -TEST_CASE("compliance tests from json.org") -{ - // test cases are from http://json.org/JSON_checker/ - - SECTION("expected failures") - { - for (auto filename : - { - //"test/data/json_tests/fail1.json", - "test/data/json_tests/fail2.json", - "test/data/json_tests/fail3.json", - "test/data/json_tests/fail4.json", - "test/data/json_tests/fail5.json", - "test/data/json_tests/fail6.json", - "test/data/json_tests/fail7.json", - "test/data/json_tests/fail8.json", - "test/data/json_tests/fail9.json", - "test/data/json_tests/fail10.json", - "test/data/json_tests/fail11.json", - "test/data/json_tests/fail12.json", - "test/data/json_tests/fail13.json", - "test/data/json_tests/fail14.json", - "test/data/json_tests/fail15.json", - "test/data/json_tests/fail16.json", - "test/data/json_tests/fail17.json", - //"test/data/json_tests/fail18.json", - "test/data/json_tests/fail19.json", - "test/data/json_tests/fail20.json", - "test/data/json_tests/fail21.json", - "test/data/json_tests/fail22.json", - "test/data/json_tests/fail23.json", - "test/data/json_tests/fail24.json", - "test/data/json_tests/fail25.json", - "test/data/json_tests/fail26.json", - "test/data/json_tests/fail27.json", - "test/data/json_tests/fail28.json", - "test/data/json_tests/fail29.json", - "test/data/json_tests/fail30.json", - "test/data/json_tests/fail31.json", - "test/data/json_tests/fail32.json", - "test/data/json_tests/fail33.json" - }) - { - CAPTURE(filename); - json j; - std::ifstream f(filename); - CHECK_THROWS_AS(j << f, std::invalid_argument); - } - } - - SECTION("expected passes") - { - for (auto filename : - { - "test/data/json_tests/pass1.json", - "test/data/json_tests/pass2.json", - "test/data/json_tests/pass3.json" - }) - { - CAPTURE(filename); - json j; - std::ifstream f(filename); - CHECK_NOTHROW(j << f); - } - } -} - -TEST_CASE("compliance tests from nativejson-benchmark") -{ - // test cases from https://github.com/miloyip/nativejson-benchmark/blob/master/src/main.cpp - - SECTION("doubles") - { - auto TEST_DOUBLE = [](const std::string & json_string, const double expected) - { - CAPTURE(json_string); - CAPTURE(expected); - CHECK(json::parse(json_string)[0].get() == Approx(expected)); - }; - - TEST_DOUBLE("[0.0]", 0.0); - TEST_DOUBLE("[-0.0]", -0.0); - TEST_DOUBLE("[1.0]", 1.0); - TEST_DOUBLE("[-1.0]", -1.0); - TEST_DOUBLE("[1.5]", 1.5); - TEST_DOUBLE("[-1.5]", -1.5); - TEST_DOUBLE("[3.1416]", 3.1416); - TEST_DOUBLE("[1E10]", 1E10); - TEST_DOUBLE("[1e10]", 1e10); - TEST_DOUBLE("[1E+10]", 1E+10); - TEST_DOUBLE("[1E-10]", 1E-10); - TEST_DOUBLE("[-1E10]", -1E10); - TEST_DOUBLE("[-1e10]", -1e10); - TEST_DOUBLE("[-1E+10]", -1E+10); - TEST_DOUBLE("[-1E-10]", -1E-10); - TEST_DOUBLE("[1.234E+10]", 1.234E+10); - TEST_DOUBLE("[1.234E-10]", 1.234E-10); - TEST_DOUBLE("[1.79769e+308]", 1.79769e+308); - TEST_DOUBLE("[2.22507e-308]", 2.22507e-308); - TEST_DOUBLE("[-1.79769e+308]", -1.79769e+308); - TEST_DOUBLE("[-2.22507e-308]", -2.22507e-308); - TEST_DOUBLE("[4.9406564584124654e-324]", 4.9406564584124654e-324); // minimum denormal - TEST_DOUBLE("[2.2250738585072009e-308]", 2.2250738585072009e-308); // Max subnormal double - TEST_DOUBLE("[2.2250738585072014e-308]", 2.2250738585072014e-308); // Min normal positive double - TEST_DOUBLE("[1.7976931348623157e+308]", 1.7976931348623157e+308); // Max double - TEST_DOUBLE("[1e-10000]", 0.0); // must underflow - TEST_DOUBLE("[18446744073709551616]", - 18446744073709551616.0); // 2^64 (max of uint64_t + 1, force to use double) - TEST_DOUBLE("[-9223372036854775809]", - -9223372036854775809.0); // -2^63 - 1(min of int64_t + 1, force to use double) - TEST_DOUBLE("[0.9868011474609375]", - 0.9868011474609375); // https://github.com/miloyip/rapidjson/issues/120 - TEST_DOUBLE("[123e34]", 123e34); // Fast Path Cases In Disguise - TEST_DOUBLE("[45913141877270640000.0]", 45913141877270640000.0); - TEST_DOUBLE("[2.2250738585072011e-308]", - 2.2250738585072011e-308); - //TEST_DOUBLE("[1e-00011111111111]", 0.0); - //TEST_DOUBLE("[-1e-00011111111111]", -0.0); - TEST_DOUBLE("[1e-214748363]", 0.0); - TEST_DOUBLE("[1e-214748364]", 0.0); - //TEST_DOUBLE("[1e-21474836311]", 0.0); - TEST_DOUBLE("[0.017976931348623157e+310]", 1.7976931348623157e+308); // Max double in another form - - // Since - // abs((2^-1022 - 2^-1074) - 2.2250738585072012e-308) = 3.109754131239141401123495768877590405345064751974375599... ¡Á 10^-324 - // abs((2^-1022) - 2.2250738585072012e-308) = 1.830902327173324040642192159804623318305533274168872044... ¡Á 10 ^ -324 - // So 2.2250738585072012e-308 should round to 2^-1022 = 2.2250738585072014e-308 - TEST_DOUBLE("[2.2250738585072012e-308]", - 2.2250738585072014e-308); - - // More closer to normal/subnormal boundary - // boundary = 2^-1022 - 2^-1075 = 2.225073858507201136057409796709131975934819546351645648... ¡Á 10^-308 - TEST_DOUBLE("[2.22507385850720113605740979670913197593481954635164564e-308]", - 2.2250738585072009e-308); - TEST_DOUBLE("[2.22507385850720113605740979670913197593481954635164565e-308]", - 2.2250738585072014e-308); - - // 1.0 is in (1.0 - 2^-54, 1.0 + 2^-53) - // 1.0 - 2^-54 = 0.999999999999999944488848768742172978818416595458984375 - TEST_DOUBLE("[0.999999999999999944488848768742172978818416595458984375]", 1.0); // round to even - TEST_DOUBLE("[0.999999999999999944488848768742172978818416595458984374]", - 0.99999999999999989); // previous double - TEST_DOUBLE("[0.999999999999999944488848768742172978818416595458984376]", 1.0); // next double - // 1.0 + 2^-53 = 1.00000000000000011102230246251565404236316680908203125 - TEST_DOUBLE("[1.00000000000000011102230246251565404236316680908203125]", 1.0); // round to even - TEST_DOUBLE("[1.00000000000000011102230246251565404236316680908203124]", 1.0); // previous double - TEST_DOUBLE("[1.00000000000000011102230246251565404236316680908203126]", - 1.00000000000000022); // next double - - // Numbers from https://github.com/floitsch/double-conversion/blob/master/test/cctest/test-strtod.cc - - TEST_DOUBLE("[72057594037927928.0]", 72057594037927928.0); - TEST_DOUBLE("[72057594037927936.0]", 72057594037927936.0); - TEST_DOUBLE("[72057594037927932.0]", 72057594037927936.0); - TEST_DOUBLE("[7205759403792793199999e-5]", 72057594037927928.0); - TEST_DOUBLE("[7205759403792793200001e-5]", 72057594037927936.0); - - TEST_DOUBLE("[9223372036854774784.0]", 9223372036854774784.0); - TEST_DOUBLE("[9223372036854775808.0]", 9223372036854775808.0); - TEST_DOUBLE("[9223372036854775296.0]", 9223372036854775808.0); - TEST_DOUBLE("[922337203685477529599999e-5]", 9223372036854774784.0); - TEST_DOUBLE("[922337203685477529600001e-5]", 9223372036854775808.0); - - TEST_DOUBLE("[10141204801825834086073718800384]", 10141204801825834086073718800384.0); - TEST_DOUBLE("[10141204801825835211973625643008]", 10141204801825835211973625643008.0); - TEST_DOUBLE("[10141204801825834649023672221696]", 10141204801825835211973625643008.0); - TEST_DOUBLE("[1014120480182583464902367222169599999e-5]", 10141204801825834086073718800384.0); - TEST_DOUBLE("[1014120480182583464902367222169600001e-5]", 10141204801825835211973625643008.0); - - TEST_DOUBLE("[5708990770823838890407843763683279797179383808]", - 5708990770823838890407843763683279797179383808.0); - TEST_DOUBLE("[5708990770823839524233143877797980545530986496]", - 5708990770823839524233143877797980545530986496.0); - TEST_DOUBLE("[5708990770823839207320493820740630171355185152]", - 5708990770823839524233143877797980545530986496.0); - TEST_DOUBLE("[5708990770823839207320493820740630171355185151999e-3]", - 5708990770823838890407843763683279797179383808.0); - TEST_DOUBLE("[5708990770823839207320493820740630171355185152001e-3]", - 5708990770823839524233143877797980545530986496.0); - - { - char n1e308[312]; // '1' followed by 308 '0' - n1e308[0] = '['; - n1e308[1] = '1'; - for (int j = 2; j < 310; j++) - { - n1e308[j] = '0'; - } - n1e308[310] = ']'; - n1e308[311] = '\0'; - TEST_DOUBLE(n1e308, 1E308); - } - - // Cover trimming - TEST_DOUBLE( - "[2.22507385850720113605740979670913197593481954635164564802342610972482222202107694551652952390813508" - "7914149158913039621106870086438694594645527657207407820621743379988141063267329253552286881372149012" - "9811224514518898490572223072852551331557550159143974763979834118019993239625482890171070818506906306" - "6665599493827577257201576306269066333264756530000924588831643303777979186961204949739037782970490505" - "1080609940730262937128958950003583799967207254304360284078895771796150945516748243471030702609144621" - "5722898802581825451803257070188608721131280795122334262883686223215037756666225039825343359745688844" - "2390026549819838548794829220689472168983109969836584681402285424333066033985088644580400103493397042" - "7567186443383770486037861622771738545623065874679014086723327636718751234567890123456789012345678901" - "e-308]", - 2.2250738585072014e-308); - } - - SECTION("strings") - { - auto TEST_STRING = [](const std::string & json_string, const std::string & expected) - { - CAPTURE(json_string); - CAPTURE(expected); - CHECK(json::parse(json_string)[0].get() == expected); - }; - - TEST_STRING("[\"\"]", ""); - TEST_STRING("[\"Hello\"]", "Hello"); - TEST_STRING("[\"Hello\\nWorld\"]", "Hello\nWorld"); - //TEST_STRING("[\"Hello\\u0000World\"]", "Hello\0World"); - TEST_STRING("[\"\\\"\\\\/\\b\\f\\n\\r\\t\"]", "\"\\/\b\f\n\r\t"); - TEST_STRING("[\"\\u0024\"]", "\x24"); // Dollar sign U+0024 - TEST_STRING("[\"\\u00A2\"]", "\xC2\xA2"); // Cents sign U+00A2 - TEST_STRING("[\"\\u20AC\"]", "\xE2\x82\xAC"); // Euro sign U+20AC - TEST_STRING("[\"\\uD834\\uDD1E\"]", "\xF0\x9D\x84\x9E"); // G clef sign U+1D11E - } - - SECTION("roundtrip") - { - // test cases are from https://github.com/miloyip/nativejson-benchmark/tree/master/test/data/roundtrip - - for (auto filename : - { - "test/data/json_roundtrip/roundtrip01.json", - "test/data/json_roundtrip/roundtrip02.json", - "test/data/json_roundtrip/roundtrip03.json", - "test/data/json_roundtrip/roundtrip04.json", - "test/data/json_roundtrip/roundtrip05.json", - "test/data/json_roundtrip/roundtrip06.json", - "test/data/json_roundtrip/roundtrip07.json", - "test/data/json_roundtrip/roundtrip08.json", - "test/data/json_roundtrip/roundtrip09.json", - "test/data/json_roundtrip/roundtrip10.json", - "test/data/json_roundtrip/roundtrip11.json", - "test/data/json_roundtrip/roundtrip12.json", - "test/data/json_roundtrip/roundtrip13.json", - "test/data/json_roundtrip/roundtrip14.json", - "test/data/json_roundtrip/roundtrip15.json", - "test/data/json_roundtrip/roundtrip16.json", - "test/data/json_roundtrip/roundtrip17.json", - "test/data/json_roundtrip/roundtrip18.json", - "test/data/json_roundtrip/roundtrip19.json", - "test/data/json_roundtrip/roundtrip20.json", - "test/data/json_roundtrip/roundtrip21.json", - "test/data/json_roundtrip/roundtrip22.json", - "test/data/json_roundtrip/roundtrip23.json", - "test/data/json_roundtrip/roundtrip24.json", - "test/data/json_roundtrip/roundtrip25.json", - "test/data/json_roundtrip/roundtrip26.json", - "test/data/json_roundtrip/roundtrip27.json", - "test/data/json_roundtrip/roundtrip28.json", - "test/data/json_roundtrip/roundtrip29.json", - "test/data/json_roundtrip/roundtrip30.json", - "test/data/json_roundtrip/roundtrip31.json", - "test/data/json_roundtrip/roundtrip32.json" - }) - { - CAPTURE(filename); - std::ifstream f(filename); - std::string json_string( (std::istreambuf_iterator(f) ), - (std::istreambuf_iterator()) ); - - json j = json::parse(json_string); - CHECK(j.dump() == json_string); - } - } -} - -TEST_CASE("test suite from json-test-suite") -{ - SECTION("read all sample.json") - { - // read a file with all unicode characters stored as single-character - // strings in a JSON array - std::ifstream f("test/data/json_testsuite/sample.json"); - json j; - CHECK_NOTHROW(j << f); - - // the array has 3 elements - CHECK(j.size() == 3); - } -} - -TEST_CASE("json.org examples") -{ - // here, we list all JSON values from http://json.org/example - - SECTION("1.json") - { - std::ifstream f("test/data/json.org/1.json"); - json j; - CHECK_NOTHROW(j << f); - } - - SECTION("2.json") - { - std::ifstream f("test/data/json.org/2.json"); - json j; - CHECK_NOTHROW(j << f); - } - - SECTION("3.json") - { - std::ifstream f("test/data/json.org/3.json"); - json j; - CHECK_NOTHROW(j << f); - } - - SECTION("4.json") - { - std::ifstream f("test/data/json.org/4.json"); - json j; - CHECK_NOTHROW(j << f); - } - - SECTION("5.json") - { - std::ifstream f("test/data/json.org/5.json"); - json j; - CHECK_NOTHROW(j << f); - } -} - -TEST_CASE("RFC 7159 examples") -{ - // here, we list all JSON values from the RFC 7159 document - - SECTION("7. Strings") - { - CHECK(json::parse("\"\\u005C\"") == json("\\")); - CHECK(json::parse("\"\\uD834\\uDD1E\"") == json("𝄞")); - CHECK(json::parse("\"𝄞\"") == json("𝄞")); - } - - SECTION("8.3 String Comparison") - { - CHECK(json::parse("\"a\\b\"") == json::parse("\"a\u005Cb\"")); - } - - SECTION("13 Examples") - { - { - CHECK_NOTHROW(json(R"( - { - "Image": { - "Width": 800, - "Height": 600, - "Title": "View from 15th Floor", - "Thumbnail": { - "Url": "http://www.example.com/image/481989943", - "Height": 125, - "Width": 100 - }, - "Animated" : false, - "IDs": [116, 943, 234, 38793] - } - } - )")); - } - - { - CHECK_NOTHROW(json(R"( - [ - { - "precision": "zip", - "Latitude": 37.7668, - "Longitude": -122.3959, - "Address": "", - "City": "SAN FRANCISCO", - "State": "CA", - "Zip": "94107", - "Country": "US" - }, - { - "precision": "zip", - "Latitude": 37.371991, - "Longitude": -122.026020, - "Address": "", - "City": "SUNNYVALE", - "State": "CA", - "Zip": "94085", - "Country": "US" - } - ])")); - } - - CHECK(json::parse("\"Hello world!\"") == json("Hello world!")); - CHECK(json::parse("42") == json(42)); - CHECK(json::parse("true") == json(true)); - } -} - -TEST_CASE("Unicode", "[hide]") -{ - SECTION("full enumeration of Unicode codepoints") - { - // create a string from a codepoint - auto codepoint_to_unicode = [](std::size_t cp) - { - char* buffer = new char[10]; - sprintf(buffer, "\\u%04lx", cp); - std::string result(buffer); - delete[] buffer; - return result; - }; - - // generate all codepoints - for (std::size_t cp = 0; cp <= 0x10FFFFu; ++cp) - { - // The Unicode standard permanently reserves these code point - // values for UTF-16 encoding of the high and low surrogates, and - // they will never be assigned a character, so there should be no - // reason to encode them. The official Unicode standard says that - // no UTF forms, including UTF-16, can encode these code points. - if (cp >= 0xD800u and cp <= 0xDFFFu) - { - continue; - } - - std::string res; - - if (cp < 0x10000u) - { - // codepoint can be represented with 16 bit - res += codepoint_to_unicode(cp); - } - else - { - // codepoint can be represented with a pair - res += codepoint_to_unicode(0xd800u + (((cp - 0x10000u) >> 10) & 0x3ffu)); - res += codepoint_to_unicode(0xdc00u + ((cp - 0x10000u) & 0x3ffu)); - } - - try - { - json j1, j2; - CHECK_NOTHROW(j1 = json::parse("\"" + res + "\"")); - CHECK_NOTHROW(j2 = json::parse(j1.dump())); - CHECK(j1 == j2); - } - catch (std::invalid_argument) - { - // we ignore parsing errors - } - } - } - - SECTION("read all unicode characters") - { - // read a file with all unicode characters stored as single-character - // strings in a JSON array - std::ifstream f("test/data/json_nlohmann_tests/all_unicode.json"); - json j; - CHECK_NOTHROW(j << f); - - // the array has 1112064 + 1 elemnts (a terminating "null" value) - CHECK(j.size() == 1112065); - - SECTION("check JSON Pointers") - { - for (auto s : j) - { - // skip non-string JSON values - if (not s.is_string()) - { - continue; - } - - std::string ptr = s; - - // tilde must be followed by 0 or 1 - if (ptr == "~") - { - ptr += "0"; - } - - // JSON Pointers must begin with "/" - ptr = "/" + ptr; - - CHECK_NOTHROW(json::json_pointer("/" + ptr)); - - // check escape/unescape roundtrip - auto escaped = json::json_pointer::escape(ptr); - json::json_pointer::unescape(escaped); - CHECK(escaped == ptr); - } - } - } - - SECTION("ignore byte-order-mark") - { - // read a file with a UTF-8 BOM - std::ifstream f("test/data/json_nlohmann_tests/bom.json"); - json j; - CHECK_NOTHROW(j << f); - } - - SECTION("error for incomplete/wrong BOM") - { - CHECK_THROWS_AS(json::parse("\xef\xbb"), std::invalid_argument); - CHECK_THROWS_AS(json::parse("\xef\xbb\xbb"), std::invalid_argument); - } -} - -TEST_CASE("JSON pointers") -{ - SECTION("errors") - { - CHECK_THROWS_AS(json::json_pointer("foo"), std::domain_error); - CHECK_THROWS_WITH(json::json_pointer("foo"), "JSON pointer must be empty or begin with '/'"); - - CHECK_THROWS_AS(json::json_pointer("/~~"), std::domain_error); - CHECK_THROWS_WITH(json::json_pointer("/~~"), "escape error: '~' must be followed with '0' or '1'"); - - CHECK_THROWS_AS(json::json_pointer("/~"), std::domain_error); - CHECK_THROWS_WITH(json::json_pointer("/~"), "escape error: '~' must be followed with '0' or '1'"); - - json::json_pointer p; - CHECK_THROWS_AS(p.top(), std::domain_error); - CHECK_THROWS_WITH(p.top(), "JSON pointer has no parent"); - CHECK_THROWS_AS(p.pop_back(), std::domain_error); - CHECK_THROWS_WITH(p.pop_back(), "JSON pointer has no parent"); - } - - SECTION("examples from RFC 6901") - { - SECTION("nonconst access") - { - json j = R"( - { - "foo": ["bar", "baz"], - "": 0, - "a/b": 1, - "c%d": 2, - "e^f": 3, - "g|h": 4, - "i\\j": 5, - "k\"l": 6, - " ": 7, - "m~n": 8 - } - )"_json; - - // the whole document - CHECK(j[json::json_pointer()] == j); - CHECK(j[json::json_pointer("")] == j); - - // array access - CHECK(j[json::json_pointer("/foo")] == j["foo"]); - CHECK(j[json::json_pointer("/foo/0")] == j["foo"][0]); - CHECK(j[json::json_pointer("/foo/1")] == j["foo"][1]); - CHECK(j["/foo/1"_json_pointer] == j["foo"][1]); - - // checked array access - CHECK(j.at(json::json_pointer("/foo/0")) == j["foo"][0]); - CHECK(j.at(json::json_pointer("/foo/1")) == j["foo"][1]); - - // empty string access - CHECK(j[json::json_pointer("/")] == j[""]); - - // other cases - CHECK(j[json::json_pointer("/ ")] == j[" "]); - CHECK(j[json::json_pointer("/c%d")] == j["c%d"]); - CHECK(j[json::json_pointer("/e^f")] == j["e^f"]); - CHECK(j[json::json_pointer("/g|h")] == j["g|h"]); - CHECK(j[json::json_pointer("/i\\j")] == j["i\\j"]); - CHECK(j[json::json_pointer("/k\"l")] == j["k\"l"]); - - // checked access - CHECK(j.at(json::json_pointer("/ ")) == j[" "]); - CHECK(j.at(json::json_pointer("/c%d")) == j["c%d"]); - CHECK(j.at(json::json_pointer("/e^f")) == j["e^f"]); - CHECK(j.at(json::json_pointer("/g|h")) == j["g|h"]); - CHECK(j.at(json::json_pointer("/i\\j")) == j["i\\j"]); - CHECK(j.at(json::json_pointer("/k\"l")) == j["k\"l"]); - - // escaped access - CHECK(j[json::json_pointer("/a~1b")] == j["a/b"]); - CHECK(j[json::json_pointer("/m~0n")] == j["m~n"]); - - // unescaped access - CHECK_THROWS_AS(j[json::json_pointer("/a/b")], std::out_of_range); - CHECK_THROWS_WITH(j[json::json_pointer("/a/b")], "unresolved reference token 'b'"); - // "/a/b" works for JSON {"a": {"b": 42}} - CHECK(json({{"a", {{"b", 42}}}})[json::json_pointer("/a/b")] == json(42)); - - // unresolved access - json j_primitive = 1; - CHECK_THROWS_AS(j_primitive["/foo"_json_pointer], std::out_of_range); - CHECK_THROWS_WITH(j_primitive["/foo"_json_pointer], "unresolved reference token 'foo'"); - CHECK_THROWS_AS(j_primitive.at("/foo"_json_pointer), std::out_of_range); - CHECK_THROWS_WITH(j_primitive.at("/foo"_json_pointer), "unresolved reference token 'foo'"); - } - - SECTION("const access") - { - const json j = R"( - { - "foo": ["bar", "baz"], - "": 0, - "a/b": 1, - "c%d": 2, - "e^f": 3, - "g|h": 4, - "i\\j": 5, - "k\"l": 6, - " ": 7, - "m~n": 8 - } - )"_json; - - // the whole document - CHECK(j[json::json_pointer()] == j); - CHECK(j[json::json_pointer("")] == j); - - // array access - CHECK(j[json::json_pointer("/foo")] == j["foo"]); - CHECK(j[json::json_pointer("/foo/0")] == j["foo"][0]); - CHECK(j[json::json_pointer("/foo/1")] == j["foo"][1]); - CHECK(j["/foo/1"_json_pointer] == j["foo"][1]); - - // checked array access - CHECK(j.at(json::json_pointer("/foo/0")) == j["foo"][0]); - CHECK(j.at(json::json_pointer("/foo/1")) == j["foo"][1]); - - // empty string access - CHECK(j[json::json_pointer("/")] == j[""]); - - // other cases - CHECK(j[json::json_pointer("/ ")] == j[" "]); - CHECK(j[json::json_pointer("/c%d")] == j["c%d"]); - CHECK(j[json::json_pointer("/e^f")] == j["e^f"]); - CHECK(j[json::json_pointer("/g|h")] == j["g|h"]); - CHECK(j[json::json_pointer("/i\\j")] == j["i\\j"]); - CHECK(j[json::json_pointer("/k\"l")] == j["k\"l"]); - - // checked access - CHECK(j.at(json::json_pointer("/ ")) == j[" "]); - CHECK(j.at(json::json_pointer("/c%d")) == j["c%d"]); - CHECK(j.at(json::json_pointer("/e^f")) == j["e^f"]); - CHECK(j.at(json::json_pointer("/g|h")) == j["g|h"]); - CHECK(j.at(json::json_pointer("/i\\j")) == j["i\\j"]); - CHECK(j.at(json::json_pointer("/k\"l")) == j["k\"l"]); - - // escaped access - CHECK(j[json::json_pointer("/a~1b")] == j["a/b"]); - CHECK(j[json::json_pointer("/m~0n")] == j["m~n"]); - - // unescaped access - CHECK_THROWS_AS(j.at(json::json_pointer("/a/b")), std::out_of_range); - CHECK_THROWS_WITH(j.at(json::json_pointer("/a/b")), "key 'a' not found"); - - // unresolved access - const json j_primitive = 1; - CHECK_THROWS_AS(j_primitive["/foo"_json_pointer], std::out_of_range); - CHECK_THROWS_WITH(j_primitive["/foo"_json_pointer], "unresolved reference token 'foo'"); - CHECK_THROWS_AS(j_primitive.at("/foo"_json_pointer), std::out_of_range); - CHECK_THROWS_WITH(j_primitive.at("/foo"_json_pointer), "unresolved reference token 'foo'"); - } - - SECTION("user-defined string literal") - { - json j = R"( - { - "foo": ["bar", "baz"], - "": 0, - "a/b": 1, - "c%d": 2, - "e^f": 3, - "g|h": 4, - "i\\j": 5, - "k\"l": 6, - " ": 7, - "m~n": 8 - } - )"_json; - - // the whole document - CHECK(j[""_json_pointer] == j); - - // array access - CHECK(j["/foo"_json_pointer] == j["foo"]); - CHECK(j["/foo/0"_json_pointer] == j["foo"][0]); - CHECK(j["/foo/1"_json_pointer] == j["foo"][1]); - } - } - - SECTION("array access") - { - SECTION("nonconst access") - { - json j = {1, 2, 3}; - const json j_const = j; - - // check reading access - CHECK(j["/0"_json_pointer] == j[0]); - CHECK(j["/1"_json_pointer] == j[1]); - CHECK(j["/2"_json_pointer] == j[2]); - - // assign to existing index - j["/1"_json_pointer] = 13; - CHECK(j[1] == json(13)); - - // assign to nonexisting index - j["/3"_json_pointer] = 33; - CHECK(j[3] == json(33)); - - // assign to nonexisting index (with gap) - j["/5"_json_pointer] = 55; - CHECK(j == json({1, 13, 3, 33, nullptr, 55})); - - // error with leading 0 - CHECK_THROWS_AS(j["/01"_json_pointer], std::domain_error); - CHECK_THROWS_WITH(j["/01"_json_pointer], "array index must not begin with '0'"); - CHECK_THROWS_AS(j_const["/01"_json_pointer], std::domain_error); - CHECK_THROWS_WITH(j_const["/01"_json_pointer], "array index must not begin with '0'"); - CHECK_THROWS_AS(j.at("/01"_json_pointer), std::domain_error); - CHECK_THROWS_WITH(j.at("/01"_json_pointer), "array index must not begin with '0'"); - CHECK_THROWS_AS(j_const.at("/01"_json_pointer), std::domain_error); - CHECK_THROWS_WITH(j_const.at("/01"_json_pointer), "array index must not begin with '0'"); - - // error with incorrect numbers - CHECK_THROWS_AS(j["/one"_json_pointer] = 1, std::invalid_argument); - - // assign to "-" - j["/-"_json_pointer] = 99; - CHECK(j == json({1, 13, 3, 33, nullptr, 55, 99})); - - // error when using "-" in const object - CHECK_THROWS_AS(j_const["/-"_json_pointer], std::out_of_range); - CHECK_THROWS_WITH(j_const["/-"_json_pointer], "array index '-' (3) is out of range"); - - // error when using "-" with at - CHECK_THROWS_AS(j.at("/-"_json_pointer), std::out_of_range); - CHECK_THROWS_WITH(j.at("/-"_json_pointer), "array index '-' (7) is out of range"); - CHECK_THROWS_AS(j_const.at("/-"_json_pointer), std::out_of_range); - CHECK_THROWS_WITH(j_const.at("/-"_json_pointer), "array index '-' (3) is out of range"); - } - - SECTION("const access") - { - const json j = {1, 2, 3}; - - // check reading access - CHECK(j["/0"_json_pointer] == j[0]); - CHECK(j["/1"_json_pointer] == j[1]); - CHECK(j["/2"_json_pointer] == j[2]); - - // assign to nonexisting index - CHECK_THROWS_AS(j.at("/3"_json_pointer), std::out_of_range); - CHECK_THROWS_WITH(j.at("/3"_json_pointer), "array index 3 is out of range"); - - // assign to nonexisting index (with gap) - CHECK_THROWS_AS(j.at("/5"_json_pointer), std::out_of_range); - CHECK_THROWS_WITH(j.at("/5"_json_pointer), "array index 5 is out of range"); - - // assign to "-" - CHECK_THROWS_AS(j["/-"_json_pointer], std::out_of_range); - CHECK_THROWS_WITH(j["/-"_json_pointer], "array index '-' (3) is out of range"); - CHECK_THROWS_AS(j.at("/-"_json_pointer), std::out_of_range); - CHECK_THROWS_WITH(j.at("/-"_json_pointer), "array index '-' (3) is out of range"); - } - - } - - SECTION("flatten") - { - json j = - { - {"pi", 3.141}, - {"happy", true}, - {"name", "Niels"}, - {"nothing", nullptr}, - { - "answer", { - {"everything", 42} - } - }, - {"list", {1, 0, 2}}, - { - "object", { - {"currency", "USD"}, - {"value", 42.99}, - {"", "empty string"}, - {"/", "slash"}, - {"~", "tilde"}, - {"~1", "tilde1"} - } - } - }; - - json j_flatten = - { - {"/pi", 3.141}, - {"/happy", true}, - {"/name", "Niels"}, - {"/nothing", nullptr}, - {"/answer/everything", 42}, - {"/list/0", 1}, - {"/list/1", 0}, - {"/list/2", 2}, - {"/object/currency", "USD"}, - {"/object/value", 42.99}, - {"/object/", "empty string"}, - {"/object/~1", "slash"}, - {"/object/~0", "tilde"}, - {"/object/~01", "tilde1"} - }; - - // check if flattened result is as expected - CHECK(j.flatten() == j_flatten); - - // check if unflattened result is as expected - CHECK(j_flatten.unflatten() == j); - - // error for nonobjects - CHECK_THROWS_AS(json(1).unflatten(), std::domain_error); - CHECK_THROWS_WITH(json(1).unflatten(), "only objects can be unflattened"); - - // error for nonprimitve values - CHECK_THROWS_AS(json({{"/1", {1, 2, 3}}}).unflatten(), std::domain_error); - CHECK_THROWS_WITH(json({{"/1", {1, 2, 3}}}).unflatten(), "values in object must be primitive"); - - // error for conflicting values - json j_error = {{"", 42}, {"/foo", 17}}; - CHECK_THROWS_AS(j_error.unflatten(), std::domain_error); - CHECK_THROWS_WITH(j_error.unflatten(), "invalid value to unflatten"); - - // explicit roundtrip check - CHECK(j.flatten().unflatten() == j); - - // roundtrip for primitive values - json j_null; - CHECK(j_null.flatten().unflatten() == j_null); - json j_number = 42; - CHECK(j_number.flatten().unflatten() == j_number); - json j_boolean = false; - CHECK(j_boolean.flatten().unflatten() == j_boolean); - json j_string = "foo"; - CHECK(j_string.flatten().unflatten() == j_string); - - // roundtrip for empty structured values (will be unflattened to null) - json j_array(json::value_t::array); - CHECK(j_array.flatten().unflatten() == json()); - json j_object(json::value_t::object); - CHECK(j_object.flatten().unflatten() == json()); - } - - SECTION("string representation") - { - for (auto ptr : - {"", "/foo", "/foo/0", "/", "/a~1b", "/c%d", "/e^f", "/g|h", "/i\\j", "/k\"l", "/ ", "/m~0n" - }) - { - CHECK(json::json_pointer(ptr).to_string() == ptr); - } - } -} - -TEST_CASE("JSON patch") -{ - SECTION("examples from RFC 6902") - { - SECTION("4. Operations") - { - // the ordering of members in JSON objects is not significant: - json op1 = R"({ "op": "add", "path": "/a/b/c", "value": "foo" })"_json; - json op2 = R"({ "path": "/a/b/c", "op": "add", "value": "foo" })"_json; - json op3 = R"({ "value": "foo", "path": "/a/b/c", "op": "add" })"_json; - - // check if the operation objects are equivalent - CHECK(op1 == op2); - CHECK(op1 == op3); - } - - SECTION("4.1 add") - { - json patch = R"([{ "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] }])"_json; - - // However, the object itself or an array containing it does need - // to exist, and it remains an error for that not to be the case. - // For example, an "add" with a target location of "/a/b" starting - // with this document - json doc1 = R"({ "a": { "foo": 1 } })"_json; - - // is not an error, because "a" exists, and "b" will be added to - // its value. - CHECK_NOTHROW(doc1.patch(patch)); - CHECK(doc1.patch(patch) == R"( - { - "a": { - "foo": 1, - "b": { - "c": [ "foo", "bar" ] - } - } - } - )"_json); - - // It is an error in this document: - json doc2 = R"({ "q": { "bar": 2 } })"_json; - - // because "a" does not exist. - CHECK_THROWS_AS(doc2.patch(patch), std::out_of_range); - CHECK_THROWS_WITH(doc2.patch(patch), "key 'a' not found"); - } - - SECTION("4.2 remove") - { - // If removing an element from an array, any elements above the - // specified index are shifted one position to the left. - json doc = {1, 2, 3, 4}; - json patch = {{{"op", "remove"}, {"path", "/1"}}}; - CHECK(doc.patch(patch) == json({1, 3, 4})); - } - - SECTION("A.1. Adding an Object Member") - { - // An example target JSON document: - json doc = R"( - { "foo": "bar"} - )"_json; - - // A JSON Patch document: - json patch = R"( - [ - { "op": "add", "path": "/baz", "value": "qux" } - ] - )"_json; - - // The resulting JSON document: - json expected = R"( - { - "baz": "qux", - "foo": "bar" - } - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == expected); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, expected)) == expected); - } - - SECTION("A.2. Adding an Array Element") - { - // An example target JSON document: - json doc = R"( - { "foo": [ "bar", "baz" ] } - )"_json; - - // A JSON Patch document: - json patch = R"( - [ - { "op": "add", "path": "/foo/1", "value": "qux" } - ] - )"_json; - - // The resulting JSON document: - json expected = R"( - { "foo": [ "bar", "qux", "baz" ] } - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == expected); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, expected)) == expected); - } - - SECTION("A.3. Removing an Object Member") - { - // An example target JSON document: - json doc = R"( - { - "baz": "qux", - "foo": "bar" - } - )"_json; - - // A JSON Patch document: - json patch = R"( - [ - { "op": "remove", "path": "/baz" } - ] - )"_json; - - // The resulting JSON document: - json expected = R"( - { "foo": "bar" } - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == expected); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, expected)) == expected); - } - - SECTION("A.4. Removing an Array Element") - { - // An example target JSON document: - json doc = R"( - { "foo": [ "bar", "qux", "baz" ] } - )"_json; - - // A JSON Patch document: - json patch = R"( - [ - { "op": "remove", "path": "/foo/1" } - ] - )"_json; - - // The resulting JSON document: - json expected = R"( - { "foo": [ "bar", "baz" ] } - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == expected); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, expected)) == expected); - } - - SECTION("A.5. Replacing a Value") - { - // An example target JSON document: - json doc = R"( - { - "baz": "qux", - "foo": "bar" - } - )"_json; - - // A JSON Patch document: - json patch = R"( - [ - { "op": "replace", "path": "/baz", "value": "boo" } - ] - )"_json; - - json expected = R"( - { - "baz": "boo", - "foo": "bar" - } - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == expected); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, expected)) == expected); - } - - SECTION("A.6. Moving a Value") - { - // An example target JSON document: - json doc = R"( - { - "foo": { - "bar": "baz", - "waldo": "fred" - }, - "qux": { - "corge": "grault" - } - } - )"_json; - - // A JSON Patch document: - json patch = R"( - [ - { "op": "move", "from": "/foo/waldo", "path": "/qux/thud" } - ] - )"_json; - - // The resulting JSON document: - json expected = R"( - { - "foo": { - "bar": "baz" - }, - "qux": { - "corge": "grault", - "thud": "fred" - } - } - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == expected); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, expected)) == expected); - } - - SECTION("A.7. Moving a Value") - { - // An example target JSON document: - json doc = R"( - { "foo": [ "all", "grass", "cows", "eat" ] } - )"_json; - - // A JSON Patch document: - json patch = R"( - [ - { "op": "move", "from": "/foo/1", "path": "/foo/3" } - ] - )"_json; - - // The resulting JSON document: - json expected = R"( - { "foo": [ "all", "cows", "eat", "grass" ] } - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == expected); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, expected)) == expected); - } - - SECTION("A.8. Testing a Value: Success") - { - // An example target JSON document: - json doc = R"( - { - "baz": "qux", - "foo": [ "a", 2, "c" ] - } - )"_json; - - // A JSON Patch document that will result in successful evaluation: - json patch = R"( - [ - { "op": "test", "path": "/baz", "value": "qux" }, - { "op": "test", "path": "/foo/1", "value": 2 } - ] - )"_json; - - // check if evaluation does not throw - CHECK_NOTHROW(doc.patch(patch)); - // check if patched document is unchanged - CHECK(doc.patch(patch) == doc); - } - - SECTION("A.9. Testing a Value: Error") - { - // An example target JSON document: - json doc = R"( - { "baz": "qux" } - )"_json; - - // A JSON Patch document that will result in an error condition: - json patch = R"( - [ - { "op": "test", "path": "/baz", "value": "bar" } - ] - )"_json; - - // check that evaluation throws - CHECK_THROWS_AS(doc.patch(patch), std::domain_error); - CHECK_THROWS_WITH(doc.patch(patch), "unsuccessful: " + patch[0].dump()); - } - - SECTION("A.10. Adding a Nested Member Object") - { - // An example target JSON document: - json doc = R"( - { "foo": "bar" } - )"_json; - - // A JSON Patch document: - json patch = R"( - [ - { "op": "add", "path": "/child", "value": { "grandchild": { } } } - ] - )"_json; - - // The resulting JSON document: - json expected = R"( - { - "foo": "bar", - "child": { - "grandchild": { - } - } - } - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == expected); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, expected)) == expected); - } - - SECTION("A.11. Ignoring Unrecognized Elements") - { - // An example target JSON document: - json doc = R"( - { "foo": "bar" } - )"_json; - - // A JSON Patch document: - json patch = R"( - [ - { "op": "add", "path": "/baz", "value": "qux", "xyz": 123 } - ] - )"_json; - - json expected = R"( - { - "foo": "bar", - "baz": "qux" - } - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == expected); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, expected)) == expected); - } - - SECTION("A.12. Adding to a Nonexistent Target") - { - // An example target JSON document: - json doc = R"( - { "foo": "bar" } - )"_json; - - // A JSON Patch document: - json patch = R"( - [ - { "op": "add", "path": "/baz/bat", "value": "qux" } - ] - )"_json; - - // This JSON Patch document, applied to the target JSON document - // above, would result in an error (therefore, it would not be - // applied), because the "add" operation's target location that - // references neither the root of the document, nor a member of - // an existing object, nor a member of an existing array. - - CHECK_THROWS_AS(doc.patch(patch), std::out_of_range); - CHECK_THROWS_WITH(doc.patch(patch), "key 'baz' not found"); - } - - // A.13. Invalid JSON Patch Document - // not applicable - - SECTION("A.14. Escape Ordering") - { - // An example target JSON document: - json doc = R"( - { - "/": 9, - "~1": 10 - } - )"_json; - - // A JSON Patch document: - json patch = R"( - [ - {"op": "test", "path": "/~01", "value": 10} - ] - )"_json; - - json expected = R"( - { - "/": 9, - "~1": 10 - } - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == expected); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, expected)) == expected); - } - - SECTION("A.15. Comparing Strings and Numbers") - { - // An example target JSON document: - json doc = R"( - { - "/": 9, - "~1": 10 - } - )"_json; - - // A JSON Patch document that will result in an error condition: - json patch = R"( - [ - {"op": "test", "path": "/~01", "value": "10"} - ] - )"_json; - - // check that evaluation throws - CHECK_THROWS_AS(doc.patch(patch), std::domain_error); - CHECK_THROWS_WITH(doc.patch(patch), "unsuccessful: " + patch[0].dump()); - } - - SECTION("A.16. Adding an Array Value") - { - // An example target JSON document: - json doc = R"( - { "foo": ["bar"] } - )"_json; - - // A JSON Patch document: - json patch = R"( - [ - { "op": "add", "path": "/foo/-", "value": ["abc", "def"] } - ] - )"_json; - - // The resulting JSON document: - json expected = R"( - { "foo": ["bar", ["abc", "def"]] } - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == expected); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, expected)) == expected); - } - } - - SECTION("own examples") - { - SECTION("add") - { - SECTION("add to the root element") - { - // If the path is the root of the target document - the - // specified value becomes the entire content of the target - // document. - - // An example target JSON document: - json doc = 17; - - // A JSON Patch document: - json patch = R"( - [ - { "op": "add", "path": "", "value": [1,2,3] } - ] - )"_json; - - // The resulting JSON document: - json expected = {1, 2, 3}; - - // check if patched value is as expected - CHECK(doc.patch(patch) == expected); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, expected)) == expected); - } - - SECTION("add to end of the array") - { - // The specified index MUST NOT be greater than the number of - // elements in the array. The example below uses and index of - // exactly the number of elements in the array which is legal. - - // An example target JSON document: - json doc = {0, 1, 2}; - - // A JSON Patch document: - json patch = R"( - [ - { "op": "add", "path": "/3", "value": 3 } - ] - )"_json; - - // The resulting JSON document: - json expected = {0, 1, 2, 3}; - - // check if patched value is as expected - CHECK(doc.patch(patch) == expected); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, expected)) == expected); - } - } - - SECTION("copy") - { - // An example target JSON document: - json doc = R"( - { - "foo": { - "bar": "baz", - "waldo": "fred" - }, - "qux": { - "corge": "grault" - } - } - )"_json; - - // A JSON Patch document: - json patch = R"( - [ - { "op": "copy", "from": "/foo/waldo", "path": "/qux/thud" } - ] - )"_json; - - // The resulting JSON document: - json expected = R"( - { - "foo": { - "bar": "baz", - "waldo": "fred" - }, - "qux": { - "corge": "grault", - "thud": "fred" - } - } - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == expected); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, expected)) == expected); - } - - SECTION("replace") - { - json j = "string"; - json patch = {{{"op", "replace"}, {"path", ""}, {"value", 1}}}; - CHECK(j.patch(patch) == json(1)); - } - - SECTION("documentation GIF") - { - { - // a JSON patch - json p1 = R"( - [{"op": "add", "path": "/GB", "value": "London"}] - )"_json; - - // a JSON value - json source = R"( - {"D": "Berlin", "F": "Paris"} - )"_json; - - // apply the patch - json target = source.patch(p1); - // target = { "D": "Berlin", "F": "Paris", "GB": "London" } - CHECK(target == R"({ "D": "Berlin", "F": "Paris", "GB": "London" })"_json); - - // create a diff from two JSONs - json p2 = json::diff(target, source); - // p2 = [{"op": "delete", "path": "/GB"}] - CHECK(p2 == R"([{"op":"remove","path":"/GB"}])"_json); - } - { - // a JSON value - json j = {"good", "bad", "ugly"}; - - // a JSON pointer - auto ptr = json::json_pointer("/2"); - - // use to access elements - j[ptr] = {{"it", "cattivo"}}; - CHECK(j == R"(["good","bad",{"it":"cattivo"}])"_json); - - // use user-defined string literal - j["/2/en"_json_pointer] = "ugly"; - CHECK(j == R"(["good","bad",{"en":"ugly","it":"cattivo"}])"_json); - - json flat = j.flatten(); - CHECK(flat == R"({"/0":"good","/1":"bad","/2/en":"ugly","/2/it":"cattivo"})"_json); - } - } - } - - SECTION("errors") - { - SECTION("unknown operation") - { - SECTION("not an array") - { - json j; - json patch = {{"op", "add"}, {"path", ""}, {"value", 1}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "JSON patch must be an array of objects"); - } - - SECTION("not an array of objects") - { - json j; - json patch = {"op", "add", "path", "", "value", 1}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "JSON patch must be an array of objects"); - } - - SECTION("missing 'op'") - { - json j; - json patch = {{{"foo", "bar"}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation must have member 'op'"); - } - - SECTION("non-string 'op'") - { - json j; - json patch = {{{"op", 1}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation must have string member 'op'"); - } - - SECTION("invalid operation") - { - json j; - json patch = {{{"op", "foo"}, {"path", ""}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation value 'foo' is invalid"); - } - } - - SECTION("add") - { - SECTION("missing 'path'") - { - json j; - json patch = {{{"op", "add"}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'add' must have member 'path'"); - } - - SECTION("non-string 'path'") - { - json j; - json patch = {{{"op", "add"}, {"path", 1}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'add' must have string member 'path'"); - } - - SECTION("missing 'value'") - { - json j; - json patch = {{{"op", "add"}, {"path", ""}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'add' must have member 'value'"); - } - - SECTION("invalid array index") - { - json j = {1, 2}; - json patch = {{{"op", "add"}, {"path", "/4"}, {"value", 4}}}; - CHECK_THROWS_AS(j.patch(patch), std::out_of_range); - CHECK_THROWS_WITH(j.patch(patch), "array index 4 is out of range"); - } - } - - SECTION("remove") - { - SECTION("missing 'path'") - { - json j; - json patch = {{{"op", "remove"}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'remove' must have member 'path'"); - } - - SECTION("non-string 'path'") - { - json j; - json patch = {{{"op", "remove"}, {"path", 1}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'remove' must have string member 'path'"); - } - - SECTION("nonexisting target location (array)") - { - json j = {1, 2, 3}; - json patch = {{{"op", "remove"}, {"path", "/17"}}}; - CHECK_THROWS_AS(j.patch(patch), std::out_of_range); - CHECK_THROWS_WITH(j.patch(patch), "array index 17 is out of range"); - } - - SECTION("nonexisting target location (object)") - { - json j = {{"foo", 1}, {"bar", 2}}; - json patch = {{{"op", "remove"}, {"path", "/baz"}}}; - CHECK_THROWS_AS(j.patch(patch), std::out_of_range); - CHECK_THROWS_WITH(j.patch(patch), "key 'baz' not found"); - } - - SECTION("root element as target location") - { - json j = "string"; - json patch = {{{"op", "remove"}, {"path", ""}}}; - CHECK_THROWS_AS(j.patch(patch), std::domain_error); - CHECK_THROWS_WITH(j.patch(patch), "JSON pointer has no parent"); - } - } - - SECTION("replace") - { - SECTION("missing 'path'") - { - json j; - json patch = {{{"op", "replace"}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'replace' must have member 'path'"); - } - - SECTION("non-string 'path'") - { - json j; - json patch = {{{"op", "replace"}, {"path", 1}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'replace' must have string member 'path'"); - } - - SECTION("missing 'value'") - { - json j; - json patch = {{{"op", "replace"}, {"path", ""}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'replace' must have member 'value'"); - } - - SECTION("nonexisting target location (array)") - { - json j = {1, 2, 3}; - json patch = {{{"op", "replace"}, {"path", "/17"}, {"value", 19}}}; - CHECK_THROWS_AS(j.patch(patch), std::out_of_range); - CHECK_THROWS_WITH(j.patch(patch), "array index 17 is out of range"); - } - - SECTION("nonexisting target location (object)") - { - json j = {{"foo", 1}, {"bar", 2}}; - json patch = {{{"op", "replace"}, {"path", "/baz"}, {"value", 3}}}; - CHECK_THROWS_AS(j.patch(patch), std::out_of_range); - CHECK_THROWS_WITH(j.patch(patch), "key 'baz' not found"); - } - } - - SECTION("move") - { - SECTION("missing 'path'") - { - json j; - json patch = {{{"op", "move"}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'move' must have member 'path'"); - } - - SECTION("non-string 'path'") - { - json j; - json patch = {{{"op", "move"}, {"path", 1}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'move' must have string member 'path'"); - } - - SECTION("missing 'from'") - { - json j; - json patch = {{{"op", "move"}, {"path", ""}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'move' must have member 'from'"); - } - - SECTION("non-string 'from'") - { - json j; - json patch = {{{"op", "move"}, {"path", ""}, {"from", 1}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'move' must have string member 'from'"); - } - - SECTION("nonexisting from location (array)") - { - json j = {1, 2, 3}; - json patch = {{{"op", "move"}, {"path", "/0"}, {"from", "/5"}}}; - CHECK_THROWS_AS(j.patch(patch), std::out_of_range); - CHECK_THROWS_WITH(j.patch(patch), "array index 5 is out of range"); - } - - SECTION("nonexisting from location (object)") - { - json j = {{"foo", 1}, {"bar", 2}}; - json patch = {{{"op", "move"}, {"path", "/baz"}, {"from", "/baz"}}}; - CHECK_THROWS_AS(j.patch(patch), std::out_of_range); - CHECK_THROWS_WITH(j.patch(patch), "key 'baz' not found"); - } - } - - SECTION("copy") - { - SECTION("missing 'path'") - { - json j; - json patch = {{{"op", "copy"}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'copy' must have member 'path'"); - } - - SECTION("non-string 'path'") - { - json j; - json patch = {{{"op", "copy"}, {"path", 1}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'copy' must have string member 'path'"); - } - - SECTION("missing 'from'") - { - json j; - json patch = {{{"op", "copy"}, {"path", ""}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'copy' must have member 'from'"); - } - - SECTION("non-string 'from'") - { - json j; - json patch = {{{"op", "copy"}, {"path", ""}, {"from", 1}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'copy' must have string member 'from'"); - } - - SECTION("nonexisting from location (array)") - { - json j = {1, 2, 3}; - json patch = {{{"op", "copy"}, {"path", "/0"}, {"from", "/5"}}}; - CHECK_THROWS_AS(j.patch(patch), std::out_of_range); - CHECK_THROWS_WITH(j.patch(patch), "array index 5 is out of range"); - } - - SECTION("nonexisting from location (object)") - { - json j = {{"foo", 1}, {"bar", 2}}; - json patch = {{{"op", "copy"}, {"path", "/fob"}, {"from", "/baz"}}}; - CHECK_THROWS_AS(j.patch(patch), std::out_of_range); - CHECK_THROWS_WITH(j.patch(patch), "key 'baz' not found"); - } - } - - SECTION("test") - { - SECTION("missing 'path'") - { - json j; - json patch = {{{"op", "test"}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'test' must have member 'path'"); - } - - SECTION("non-string 'path'") - { - json j; - json patch = {{{"op", "test"}, {"path", 1}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'test' must have string member 'path'"); - } - - SECTION("missing 'value'") - { - json j; - json patch = {{{"op", "test"}, {"path", ""}}}; - CHECK_THROWS_AS(j.patch(patch), std::invalid_argument); - CHECK_THROWS_WITH(j.patch(patch), "operation 'test' must have member 'value'"); - } - } - } - - SECTION("Examples from jsonpatch.com") - { - SECTION("Simple Example") - { - // The original document - json doc = R"( - { - "baz": "qux", - "foo": "bar" - } - )"_json; - - // The patch - json patch = R"( - [ - { "op": "replace", "path": "/baz", "value": "boo" }, - { "op": "add", "path": "/hello", "value": ["world"] }, - { "op": "remove", "path": "/foo"} - ] - )"_json; - - // The result - json result = R"( - { - "baz": "boo", - "hello": ["world"] - } - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == result); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, result)) == result); - } - - SECTION("Operations") - { - // The original document - json doc = R"( - { - "biscuits": [ - {"name":"Digestive"}, - {"name": "Choco Liebniz"} - ] - } - )"_json; - - SECTION("add") - { - // The patch - json patch = R"( - [ - {"op": "add", "path": "/biscuits/1", "value": {"name": "Ginger Nut"}} - ] - )"_json; - - // The result - json result = R"( - { - "biscuits": [ - {"name": "Digestive"}, - {"name": "Ginger Nut"}, - {"name": "Choco Liebniz"} - ] - } - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == result); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, result)) == result); - } - - SECTION("remove") - { - // The patch - json patch = R"( - [ - {"op": "remove", "path": "/biscuits"} - ] - )"_json; - - // The result - json result = R"( - {} - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == result); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, result)) == result); - } - - SECTION("replace") - { - // The patch - json patch = R"( - [ - {"op": "replace", "path": "/biscuits/0/name", "value": "Chocolate Digestive"} - ] - )"_json; - - // The result - json result = R"( - { - "biscuits": [ - {"name": "Chocolate Digestive"}, - {"name": "Choco Liebniz"} - ] - } - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == result); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, result)) == result); - } - - SECTION("copy") - { - // The patch - json patch = R"( - [ - {"op": "copy", "from": "/biscuits/0", "path": "/best_biscuit"} - ] - )"_json; - - // The result - json result = R"( - { - "biscuits": [ - {"name": "Digestive"}, - {"name": "Choco Liebniz"} - ], - "best_biscuit": { - "name": "Digestive" - } - } - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == result); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, result)) == result); - } - - SECTION("move") - { - // The patch - json patch = R"( - [ - {"op": "move", "from": "/biscuits", "path": "/cookies"} - ] - )"_json; - - // The result - json result = R"( - { - "cookies": [ - {"name": "Digestive"}, - {"name": "Choco Liebniz"} - ] - } - )"_json; - - // check if patched value is as expected - CHECK(doc.patch(patch) == result); - - // check roundtrip - CHECK(doc.patch(json::diff(doc, result)) == result); - } - - SECTION("test") - { - // The patch - json patch = R"( - [ - {"op": "test", "path": "/best_biscuit/name", "value": "Choco Liebniz"} - ] - )"_json; - - // the test will fail - CHECK_THROWS_AS(doc.patch(patch), std::domain_error); - CHECK_THROWS_WITH(doc.patch(patch), "unsuccessful: " + patch[0].dump()); - } - } - } - - SECTION("Examples from bruth.github.io/jsonpatch-js") - { - SECTION("add") - { - CHECK(R"( {} )"_json.patch( - R"( [{"op": "add", "path": "/foo", "value": "bar"}] )"_json - ) == R"( {"foo": "bar"} )"_json); - - CHECK(R"( {"foo": [1, 3]} )"_json.patch( - R"( [{"op": "add", "path": "/foo", "value": "bar"}] )"_json - ) == R"( {"foo": "bar"} )"_json); - - CHECK(R"( {"foo": [{}]} )"_json.patch( - R"( [{"op": "add", "path": "/foo/0/bar", "value": "baz"}] )"_json - ) == R"( {"foo": [{"bar": "baz"}]} )"_json); - } - - SECTION("remove") - { - CHECK(R"( {"foo": "bar"} )"_json.patch( - R"( [{"op": "remove", "path": "/foo"}] )"_json - ) == R"( {} )"_json); - - CHECK(R"( {"foo": [1, 2, 3]} )"_json.patch( - R"( [{"op": "remove", "path": "/foo/1"}] )"_json - ) == R"( {"foo": [1, 3]} )"_json); - - CHECK(R"( {"foo": [{"bar": "baz"}]} )"_json.patch( - R"( [{"op": "remove", "path": "/foo/0/bar"}] )"_json - ) == R"( {"foo": [{}]} )"_json); - } - - SECTION("replace") - { - CHECK(R"( {"foo": "bar"} )"_json.patch( - R"( [{"op": "replace", "path": "/foo", "value": 1}] )"_json - ) == R"( {"foo": 1} )"_json); - - CHECK(R"( {"foo": [1, 2, 3]} )"_json.patch( - R"( [{"op": "replace", "path": "/foo/1", "value": 4}] )"_json - ) == R"( {"foo": [1, 4, 3]} )"_json); - - CHECK(R"( {"foo": [{"bar": "baz"}]} )"_json.patch( - R"( [{"op": "replace", "path": "/foo/0/bar", "value": 1}] )"_json - ) == R"( {"foo": [{"bar": 1}]} )"_json); - } - - SECTION("move") - { - CHECK(R"( {"foo": [1, 2, 3]} )"_json.patch( - R"( [{"op": "move", "from": "/foo", "path": "/bar"}] )"_json - ) == R"( {"bar": [1, 2, 3]} )"_json); - } - - SECTION("copy") - { - CHECK(R"( {"foo": [1, 2, 3]} )"_json.patch( - R"( [{"op": "copy", "from": "/foo/1", "path": "/bar"}] )"_json - ) == R"( {"foo": [1, 2, 3], "bar": 2} )"_json); - } - - SECTION("copy") - { - CHECK_NOTHROW(R"( {"foo": "bar"} )"_json.patch( - R"( [{"op": "test", "path": "/foo", "value": "bar"}] )"_json)); - } - } -} - -TEST_CASE("regression tests") -{ - SECTION("issue #60 - Double quotation mark is not parsed correctly") - { - SECTION("escape_dobulequote") - { - auto s = "[\"\\\"foo\\\"\"]"; - json j = json::parse(s); - auto expected = R"(["\"foo\""])"_json; - CHECK(j == expected); - } - } - - SECTION("issue #70 - Handle infinity and NaN cases") - { - SECTION("NAN value") - { - CHECK(json(NAN) == json()); - CHECK(json(json::number_float_t(NAN)) == json()); - } - - SECTION("infinity") - { - CHECK(json(INFINITY) == json()); - CHECK(json(json::number_float_t(INFINITY)) == json()); - } - } - - SECTION("pull request #71 - handle enum type") - { - enum { t = 0 }; - json j = json::array(); - j.push_back(t); - - j.push_back(json::object( - { - {"game_type", t} - })); - } - - SECTION("issue #76 - dump() / parse() not idempotent") - { - // create JSON object - json fields; - fields["one"] = std::string("one"); - fields["two"] = std::string("two three"); - fields["three"] = std::string("three \"four\""); - - // create another JSON object by deserializing the serialization - std::string payload = fields.dump(); - json parsed_fields = json::parse(payload); - - // check individual fields to match both objects - CHECK(parsed_fields["one"] == fields["one"]); - CHECK(parsed_fields["two"] == fields["two"]); - CHECK(parsed_fields["three"] == fields["three"]); - - // check individual fields to match original input - CHECK(parsed_fields["one"] == std::string("one")); - CHECK(parsed_fields["two"] == std::string("two three")); - CHECK(parsed_fields["three"] == std::string("three \"four\"")); - - // check equality of the objects - CHECK(parsed_fields == fields); - - // check equality of the serialized objects - CHECK(fields.dump() == parsed_fields.dump()); - - // check everything in one line - CHECK(fields == json::parse(fields.dump())); - } - - SECTION("issue #82 - lexer::get_number return NAN") - { - const auto content = R"( - { - "Test":"Test1", - "Number":100, - "Foo":42.42 - })"; - - std::stringstream ss; - ss << content; - json j; - ss >> j; - - std::string test = j["Test"]; - CHECK(test == "Test1"); - int number = j["Number"]; - CHECK(number == 100); - float foo = j["Foo"]; - CHECK(foo == Approx(42.42)); - } - - SECTION("issue #89 - nonstandard integer type") - { - // create JSON class with nonstandard integer number type - using custom_json = - nlohmann::basic_json; - custom_json j; - j["int_1"] = 1; - // we need to cast to int to compile with Catch - the value is int32_t - CHECK(static_cast(j["int_1"]) == 1); - - // tests for correct handling of non-standard integers that overflow the type selected by the user - - // unsigned integer object creation - expected to wrap and still be stored as an integer - j = 4294967296U; // 2^32 - CHECK(static_cast(j.type()) == static_cast(custom_json::value_t::number_unsigned)); - CHECK(j.get() == 0); // Wrap - - // unsigned integer parsing - expected to overflow and be stored as a float - j = custom_json::parse("4294967296"); // 2^32 - CHECK(static_cast(j.type()) == static_cast(custom_json::value_t::number_float)); - CHECK(j.get() == 4294967296.0f); - - // integer object creation - expected to wrap and still be stored as an integer - j = -2147483649LL; // -2^31-1 - CHECK(static_cast(j.type()) == static_cast(custom_json::value_t::number_integer)); - CHECK(j.get() == 2147483647); // Wrap - - // integer parsing - expected to overflow and be stored as a float with rounding - j = custom_json::parse("-2147483649"); // -2^31 - CHECK(static_cast(j.type()) == static_cast(custom_json::value_t::number_float)); - CHECK(j.get() == -2147483650.0f); - } - - SECTION("issue #93 reverse_iterator operator inheritance problem") - { - { - json a = {1, 2, 3}; - json::reverse_iterator rit = a.rbegin(); - ++rit; - CHECK(*rit == json(2)); - CHECK(rit.value() == json(2)); - } - { - json a = {1, 2, 3}; - json::reverse_iterator rit = ++a.rbegin(); - } - { - json a = {1, 2, 3}; - json::reverse_iterator rit = a.rbegin(); - ++rit; - json b = {0, 0, 0}; - std::transform(rit, a.rend(), b.rbegin(), [](json el) - { - return el; - }); - CHECK(b == json({0, 1, 2})); - } - { - json a = {1, 2, 3}; - json b = {0, 0, 0}; - std::transform(++a.rbegin(), a.rend(), b.rbegin(), [](json el) - { - return el; - }); - CHECK(b == json({0, 1, 2})); - } - } - - SECTION("issue #100 - failed to iterator json object with reverse_iterator") - { - json config = - { - { "111", 111 }, - { "112", 112 }, - { "113", 113 } - }; - - std::stringstream ss; - - for (auto it = config.begin(); it != config.end(); ++it) - { - ss << it.key() << ": " << it.value() << '\n'; - } - - for (auto it = config.rbegin(); it != config.rend(); ++it) - { - ss << it.key() << ": " << it.value() << '\n'; - } - - CHECK(ss.str() == "111: 111\n112: 112\n113: 113\n113: 113\n112: 112\n111: 111\n"); - } - - SECTION("issue #101 - binary string causes numbers to be dumped as hex") - { - int64_t number = 10; - std::string bytes{"\x00" "asdf\n", 6}; - json j; - j["int64"] = number; - j["binary string"] = bytes; - // make sure the number is really printed as decimal "10" and not as - // hexadecimal "a" - CHECK(j.dump() == "{\"binary string\":\"\\u0000asdf\\n\",\"int64\":10}"); - } - - SECTION("issue #111 - subsequent unicode chars") - { - std::string bytes{0x7, 0x7}; - json j; - j["string"] = bytes; - CHECK(j["string"] == "\u0007\u0007"); - } - - SECTION("issue #144 - implicit assignment to std::string fails") - { - json o = {{"name", "value"}}; - - std::string s1 = o["name"]; - CHECK(s1 == "value"); - - std::string s2; - s2 = o["name"]; - - CHECK(s2 == "value"); - } - - SECTION("issue #146 - character following a surrogate pair is skipped") - { - CHECK(json::parse("\"\\ud80c\\udc60abc\"").get() == u8"\U00013060abc"); - } - - SECTION("issue #171 - Cannot index by key of type static constexpr const char*") - { - json j; - - // Non-const access with key as "char []" - char array_key[] = "Key1"; - CHECK_NOTHROW(j[array_key] = 1); - CHECK(j[array_key] == json(1)); - - // Non-const access with key as "const char[]" - const char const_array_key[] = "Key2"; - CHECK_NOTHROW(j[const_array_key] = 2); - CHECK(j[const_array_key] == json(2)); - - // Non-const access with key as "char *" - char _ptr_key[] = "Key3"; - char* ptr_key = &_ptr_key[0]; - CHECK_NOTHROW(j[ptr_key] = 3); - CHECK(j[ptr_key] == json(3)); - - // Non-const access with key as "const char *" - const char* const_ptr_key = "Key4"; - CHECK_NOTHROW(j[const_ptr_key] = 4); - CHECK(j[const_ptr_key] == json(4)); - - // Non-const access with key as "static constexpr const char *" - static constexpr const char* constexpr_ptr_key = "Key5"; - CHECK_NOTHROW(j[constexpr_ptr_key] = 5); - CHECK(j[constexpr_ptr_key] == json(5)); - - const json j_const = j; - - // Const access with key as "char []" - CHECK(j_const[array_key] == json(1)); - - // Const access with key as "const char[]" - CHECK(j_const[const_array_key] == json(2)); - - // Const access with key as "char *" - CHECK(j_const[ptr_key] == json(3)); - - // Const access with key as "const char *" - CHECK(j_const[const_ptr_key] == json(4)); - - // Const access with key as "static constexpr const char *" - CHECK(j_const[constexpr_ptr_key] == json(5)); - } - - SECTION("issue #186 miloyip/nativejson-benchmark: floating-point parsing") - { - json j; - - j = json::parse("-0.0"); - CHECK(j.get() == -0.0); - - j = json::parse("2.22507385850720113605740979670913197593481954635164564e-308"); - CHECK(j.get() == 2.2250738585072009e-308); - - j = json::parse("0.999999999999999944488848768742172978818416595458984374"); - CHECK(j.get() == 0.99999999999999989); - - j = json::parse("1.00000000000000011102230246251565404236316680908203126"); - CHECK(j.get() == 1.00000000000000022); - - j = json::parse("7205759403792793199999e-5"); - CHECK(j.get() == 72057594037927928.0); - - j = json::parse("922337203685477529599999e-5"); - CHECK(j.get() == 9223372036854774784.0); - - j = json::parse("1014120480182583464902367222169599999e-5"); - CHECK(j.get() == 10141204801825834086073718800384.0); - - j = json::parse("5708990770823839207320493820740630171355185151999e-3"); - CHECK(j.get() == 5708990770823838890407843763683279797179383808.0); - - // create JSON class with nonstandard float number type - - // float - nlohmann::basic_json j_float = - 1.23e25f; - CHECK(j_float.get() == 1.23e25f); - - // double - nlohmann::basic_json j_double = - 1.23e35f; - CHECK(j_double.get() == 1.23e35f); - - // long double - nlohmann::basic_json - j_long_double = 1.23e45L; - CHECK(j_long_double.get() == 1.23e45L); - } - - SECTION("issue #228 - double values are serialized with commas as decimal points") - { - json j1a = 23.42; - json j1b = json::parse("23.42"); - - json j2a = 2342e-2; - //issue #230 - //json j2b = json::parse("2342e-2"); - - json j3a = 10E3; - json j3b = json::parse("10E3"); - json j3c = json::parse("10e3"); - - // class to create a locale that would use a comma for decimals - class CommaDecimalSeparator : public std::numpunct - { - protected: - char do_decimal_point() const - { - return ','; - } - }; - - // change locale to mess with decimal points - std::locale::global(std::locale(std::locale(), new CommaDecimalSeparator)); - - CHECK(j1a.dump() == "23.42"); - CHECK(j1b.dump() == "23.42"); - - CHECK(j2a.dump() == "23.42"); - //issue #230 - //CHECK(j2b.dump() == "23.42"); - - CHECK(j3a.dump() == "10000"); - CHECK(j3b.dump() == "1E04"); - CHECK(j3c.dump() == "1e04"); - } - - SECTION("issue #233 - Can't use basic_json::iterator as a base iterator for std::move_iterator") - { - json source = {"a", "b", "c"}; - json expected = {"a", "b"}; - json dest; - - std::copy_n(std::make_move_iterator(source.begin()), 2, std::back_inserter(dest)); - - CHECK(dest == expected); - } - - SECTION("issue ##235 - ambiguous overload for 'push_back' and 'operator+='") - { - json data = {{"key", "value"}}; - data.push_back({"key2", "value2"}); - data += {"key3", "value3"}; - - CHECK(data == json({{"key", "value"}, {"key2", "value2"}, {"key3", "value3"}})); - } -} - -// special test case to check if memory is leaked if constructor throws - -template -struct my_allocator : std::allocator -{ - template - void construct(T*, Args&& ...) - { - throw std::bad_alloc(); - } -}; - -TEST_CASE("bad_alloc") -{ - SECTION("bad_alloc") - { - // create JSON type using the throwing allocator - using my_json = nlohmann::basic_json; - - // creating an object should throw - CHECK_THROWS_AS(my_json j(my_json::value_t::object), std::bad_alloc); - } -} diff --git a/src/adapters/CarlAdapter.h b/src/adapters/CarlAdapter.h index 89bc869a9..d5cc0ce5c 100644 --- a/src/adapters/CarlAdapter.h +++ b/src/adapters/CarlAdapter.h @@ -63,12 +63,10 @@ namespace cln { } #endif + +#include "NumberAdapter.h" + namespace storm { -#if defined STORM_HAVE_CLN && defined STORM_USE_CLN_NUMBERS - typedef cln::cl_RA RationalNumber; -#else - typedef mpq_class RationalNumber; -#endif typedef carl::Variable RationalFunctionVariable; typedef carl::MultivariatePolynomial RawPolynomial; typedef carl::FactorizedPolynomial Polynomial; diff --git a/src/adapters/DereferenceIteratorAdapter.h b/src/adapters/DereferenceIteratorAdapter.h index 16ac0834e..9a6e2b4fc 100644 --- a/src/adapters/DereferenceIteratorAdapter.h +++ b/src/adapters/DereferenceIteratorAdapter.h @@ -37,10 +37,18 @@ namespace storm { return boost::make_transform_iterator(it, Dereferencer()); } + bool empty() const { + return it == ite; + } + + std::size_t size() const { + return std::distance(it, ite); + } + private: input_iterator it; input_iterator ite; }; } -} \ No newline at end of file +} diff --git a/src/adapters/NumberAdapter.h b/src/adapters/NumberAdapter.h new file mode 100644 index 000000000..73d567353 --- /dev/null +++ b/src/adapters/NumberAdapter.h @@ -0,0 +1,17 @@ +#pragma once + +#include "storm-config.h" + +#include + +#ifdef STORM_HAVE_CARL + +#include +namespace storm { +#if defined STORM_HAVE_CLN && defined USE_CLN_NUMBERS + typedef cln::cl_RA RationalNumber; +#else + typedef mpq_class RationalNumber; +#endif +} +#endif \ No newline at end of file diff --git a/src/builder/DdJaniModelBuilder.cpp b/src/builder/DdJaniModelBuilder.cpp index 9f700c9ef..325cfb3a5 100644 --- a/src/builder/DdJaniModelBuilder.cpp +++ b/src/builder/DdJaniModelBuilder.cpp @@ -7,10 +7,9 @@ #include "src/logic/Formulas.h" #include "src/storage/jani/Model.h" -#include "src/storage/jani/RenameComposition.h" #include "src/storage/jani/AutomatonComposition.h" #include "src/storage/jani/ParallelComposition.h" -#include "src/storage/jani/CompositionActionInformationVisitor.h" +#include "src/storage/jani/CompositionInformationVisitor.h" #include "src/storage/dd/Add.h" #include "src/storage/dd/Bdd.h" @@ -31,6 +30,7 @@ #include "src/exceptions/WrongFormatException.h" #include "src/exceptions/InvalidArgumentException.h" #include "src/exceptions/InvalidStateException.h" +#include "src/exceptions/NotSupportedException.h" namespace storm { namespace builder { @@ -147,6 +147,10 @@ namespace storm { // The meta variables used to encode the remaining nondeterminism. std::vector localNondeterminismVariables; + // The meta variable used to distinguish Markovian from probabilistic choices in Markov automata. + storm::expressions::Variable markovNondeterminismVariable; + storm::dd::Bdd markovMarker; + // The meta variables used to encode the actions and nondeterminism. std::set allNondeterminismVariables; @@ -173,7 +177,7 @@ namespace storm { template class CompositionVariableCreator : public storm::jani::CompositionVisitor { public: - CompositionVariableCreator(storm::jani::Model const& model, storm::jani::ActionInformation const& actionInformation) : model(model), automata(), actionInformation(actionInformation) { + CompositionVariableCreator(storm::jani::Model const& model, storm::jani::CompositionInformation const& actionInformation) : model(model), automata(), actionInformation(actionInformation) { // Intentionally left empty. } @@ -184,13 +188,13 @@ namespace storm { this->model.getSystemComposition().accept(*this, boost::none); STORM_LOG_THROW(automata.size() == this->model.getNumberOfAutomata(), storm::exceptions::InvalidArgumentException, "Cannot build symbolic model from JANI model whose system composition refers to a subset of automata."); - // Then, check that the model does not contain unbounded integer or non-transient real variables. - STORM_LOG_THROW(!this->model.getGlobalVariables().containsUnboundedIntegerVariables(), storm::exceptions::InvalidArgumentException, "Cannot build symbolic model from JANI model that contains global unbounded integer variables."); - for (auto const& automaton : this->model.getAutomata()) { - STORM_LOG_THROW(!automaton.getVariables().containsUnboundedIntegerVariables(), storm::exceptions::InvalidArgumentException, "Cannot build symbolic model from JANI model that contains unbounded integer variables in automaton '" << automaton.getName() << "'."); - } + STORM_LOG_THROW(!this->model.hasTransientEdgeDestinationAssignments(), storm::exceptions::InvalidArgumentException, "The symbolic JANI model builder currently does not support transient edge destination assignments."); + + // Then, check that the model does not contain non-transient unbounded integer or non-transient real variables. + STORM_LOG_THROW(!this->model.getGlobalVariables().containsNonTransientUnboundedIntegerVariables(), storm::exceptions::InvalidArgumentException, "Cannot build symbolic model from JANI model that contains non-transient global unbounded integer variables."); STORM_LOG_THROW(!this->model.getGlobalVariables().containsNonTransientRealVariables(), storm::exceptions::InvalidArgumentException, "Cannot build symbolic model from JANI model that contains global non-transient real variables."); for (auto const& automaton : this->model.getAutomata()) { + STORM_LOG_THROW(!automaton.getVariables().containsNonTransientUnboundedIntegerVariables(), storm::exceptions::InvalidArgumentException, "Cannot build symbolic model from JANI model that contains non-transient unbounded integer variables in automaton '" << automaton.getName() << "'."); STORM_LOG_THROW(!automaton.getVariables().containsNonTransientRealVariables(), storm::exceptions::InvalidArgumentException, "Cannot build symbolic model from JANI model that contains non-transient real variables in automaton '" << automaton.getName() << "'."); } @@ -204,12 +208,7 @@ namespace storm { automata.insert(it, composition.getAutomatonName()); return boost::none; } - - boost::any visit(storm::jani::RenameComposition const& composition, boost::any const& data) override { - boost::any_cast>(composition.getSubcomposition().accept(*this, boost::none)); - return boost::none; - } - + boost::any visit(storm::jani::ParallelComposition const& composition, boost::any const& data) override { for (auto const& subcomposition : composition.getSubcompositions()) { subcomposition->accept(*this, boost::none); @@ -238,6 +237,12 @@ namespace storm { result.allNondeterminismVariables.insert(variablePair.first); } + if (this->model.getModelType() == storm::jani::ModelType::MA) { + result.markovNondeterminismVariable = result.manager->addMetaVariable("markov").first; + result.markovMarker = result.manager->getEncoding(result.markovNondeterminismVariable, 1); + result.allNondeterminismVariables.insert(result.markovNondeterminismVariable); + } + for (auto const& automaton : this->model.getAutomata()) { // Start by creating a meta variable for the location of the automaton. std::pair variablePair = result.manager->addMetaVariable("l_" + automaton.getName(), 0, automaton.getNumberOfLocations() - 1); @@ -309,9 +314,9 @@ namespace storm { void createVariable(storm::jani::BoundedIntegerVariable const& variable, CompositionVariables& result) { int_fast64_t low = variable.getLowerBound().evaluateAsInt(); int_fast64_t high = variable.getUpperBound().evaluateAsInt(); - std::pair variablePair = result.manager->addMetaVariable(variable.getName(), low, high); + std::pair variablePair = result.manager->addMetaVariable(variable.getExpressionVariable().getName(), low, high); - STORM_LOG_TRACE("Created meta variables for global integer variable: " << variablePair.first.getName() << "] and " << variablePair.second.getName() << "."); + STORM_LOG_TRACE("Created meta variables for global integer variable: " << variablePair.first.getName() << " and " << variablePair.second.getName() << "."); result.rowMetaVariables.insert(variablePair.first); result.variableToRowMetaVariableMap->emplace(variable.getExpressionVariable(), variablePair.first); @@ -329,7 +334,7 @@ namespace storm { } void createVariable(storm::jani::BooleanVariable const& variable, CompositionVariables& result) { - std::pair variablePair = result.manager->addMetaVariable(variable.getName()); + std::pair variablePair = result.manager->addMetaVariable(variable.getExpressionVariable().getName()); STORM_LOG_TRACE("Created meta variables for global boolean variable: " << variablePair.first.getName() << " and " << variablePair.second.getName() << "."); @@ -351,7 +356,7 @@ namespace storm { storm::jani::Model const& model; std::set automata; - storm::jani::ActionInformation actionInformation; + storm::jani::CompositionInformation actionInformation; }; template @@ -489,444 +494,26 @@ namespace storm { result.setValue(metaVariableNameToValueMap, 1); return result; } - -// template -// class SeparateEdgesSystemComposer : public SystemComposer { -// public: -// // This structure represents an edge. -// struct EdgeDd { -// EdgeDd(storm::dd::Add const& guard = storm::dd::Add(), storm::dd::Add const& transitions = storm::dd::Add(), std::set const& writtenGlobalVariables = {}, std::set const& globalVariablesWrittenMultipleTimes = {}) : guard(guard), transitions(transitions), writtenGlobalVariables(writtenGlobalVariables), globalVariablesWrittenMultipleTimes(globalVariablesWrittenMultipleTimes) { -// // Intentionally left empty. -// } -// -// EdgeDd(EdgeDd const& other) : guard(other.guard), transitions(other.transitions), writtenGlobalVariables(other.writtenGlobalVariables), globalVariablesWrittenMultipleTimes(other.globalVariablesWrittenMultipleTimes) { -// // Intentionally left empty. -// } -// -// EdgeDd& operator=(EdgeDd const& other) { -// if (this != &other) { -// globalVariablesWrittenMultipleTimes = other.globalVariablesWrittenMultipleTimes; -// writtenGlobalVariables = other.writtenGlobalVariables; -// guard = other.guard; -// transitions = other.transitions; -// } -// return *this; -// } -// -// storm::dd::Add guard; -// storm::dd::Add transitions; -// std::set writtenGlobalVariables; -// std::set globalVariablesWrittenMultipleTimes; -// }; -// -// // This structure represents a subcomponent of a composition. -// struct AutomatonDd { -// AutomatonDd(storm::dd::Add const& identity) : identity(identity) { -// // Intentionally left empty. -// } -// -// std::map> actionIndexToEdges; -// storm::dd::Add identity; -// }; -// -// SeparateEdgesSystemComposer(storm::jani::Model const& model, CompositionVariables const& variables) : SystemComposer(model, variables) { -// // Intentionally left empty. -// } -// -// ComposerResult compose() override { -// AutomatonDd globalAutomaton = boost::any_cast(this->model.getSystemComposition().accept(*this, boost::none)); -// return buildSystemFromAutomaton(globalAutomaton); -// } -// -// boost::any visit(storm::jani::AutomatonComposition const& composition, boost::any const& data) override { -// return buildAutomatonDd(composition.getAutomatonName()); -// } -// -// boost::any visit(storm::jani::RenameComposition const& composition, boost::any const& data) override { -// AutomatonDd subautomaton = boost::any_cast(composition.getSubcomposition().accept(*this, boost::none)); -// -// // Build a mapping from indices to indices for the renaming. -// std::map renamingIndexToIndex; -// for (auto const& entry : composition.getRenaming()) { -// if (this->model.getActionIndex(entry.first) != this->model.getSilentActionIndex()) { -// // Distinguish the cases where we hide the action or properly rename it. -// if (entry.second) { -// renamingIndexToIndex.emplace(this->model.getActionIndex(entry.first), this->model.getActionIndex(entry.second.get())); -// } else { -// renamingIndexToIndex.emplace(this->model.getActionIndex(entry.first), this->model.getSilentActionIndex()); -// } -// } else { -// STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Renaming composition must not rename the silent action."); -// } -// } -// -// // Finally, apply the renaming. -// AutomatonDd result(subautomaton.identity); -// for (auto const& actionEdges : subautomaton.actionIndexToEdges) { -// auto it = renamingIndexToIndex.find(actionEdges.first); -// if (it != renamingIndexToIndex.end()) { -// // If we are to rename the action, do so. -// result.actionIndexToEdges[it->second].insert(result.actionIndexToEdges[it->second].end(), actionEdges.second.begin(), actionEdges.second.end()); -// } else { -// // Otherwise copy over the edges. -// result.actionIndexToEdges[it->first].insert(result.actionIndexToEdges[it->first].begin(), actionEdges.second.begin(), actionEdges.second.end()); -// } -// } -// return result; -// } -// -// boost::any visit(storm::jani::ParallelComposition const& composition, boost::any const& data) override { -// AutomatonDd leftSubautomaton = boost::any_cast(composition.getLeftSubcomposition().accept(*this, boost::none)); -// AutomatonDd rightSubautomaton = boost::any_cast(composition.getRightSubcomposition().accept(*this, boost::none)); -// -// // Build the set of synchronizing action indices. -// std::set synchronizingActionIndices; -// for (auto const& entry : composition.getSynchronizationAlphabet()) { -// if (this->model.getActionIndex(entry) != this->model.getSilentActionIndex()) { -// synchronizingActionIndices.insert(this->model.getActionIndex(entry)); -// } else { -// STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Parallel composition must not synchronize over silent action."); -// } -// } -// -// // Perform the composition. -// -// // First, consider all actions in the left subcomposition. -// AutomatonDd result(leftSubautomaton.identity * rightSubautomaton.identity); -// uint64_t index = 0; -// for (auto const& actionEdges : leftSubautomaton.actionIndexToEdges) { -// // If we need to synchronize over this action, do so now. -// if (synchronizingActionIndices.find(actionEdges.first) != synchronizingActionIndices.end()) { -// auto rightIt = rightSubautomaton.actionIndexToEdges.find(actionEdges.first); -// if (rightIt != rightSubautomaton.actionIndexToEdges.end()) { -// for (auto const& edge1 : actionEdges.second) { -// for (auto const& edge2 : rightIt->second) { -// EdgeDd edgeDd = composeEdgesInParallel(edge1, edge2); -// if (!edgeDd.guard.isZero()) { -// result.actionIndexToEdges[actionEdges.first].push_back(edgeDd); -// } -// index++; -// } -// } -// } -// } else { -// // Extend all edges by the missing identity (unsynchronizing) and copy them over. -// for (auto const& edge : actionEdges.second) { -// result.actionIndexToEdges[actionEdges.first].push_back(extendEdgeWithIdentity(edge, rightSubautomaton.identity)); -// } -// } -// } -// -// // Then, consider all actions in the right subcomposition. All synchronizing actions can be ignored, because -// // we would have dealt with them earlier if there was a suitable synchronization partner. Since there is none, -// // such transitions can not be taken and we can drop them. -// for (auto const& actionEdges : rightSubautomaton.actionIndexToEdges) { -// if (synchronizingActionIndices.find(actionEdges.first) == synchronizingActionIndices.end()) { -// for (auto const& edge : actionEdges.second) { -// result.actionIndexToEdges[actionEdges.first].push_back(extendEdgeWithIdentity(edge, leftSubautomaton.identity)); -// } -// } -// } -// -// return result; -// } -// -// private: -// storm::dd::Add combineEdgesBySummation(std::vector const& edges, CompositionVariables const& variables) { -// storm::dd::Add result = variables.manager->template getAddZero(); -// for (auto const& edge : edges) { -// // Simply add all actions, but make sure to include the missing global variable identities. -// result += edge.transitions * computeMissingGlobalVariableIdentities(edge, variables); -// } -// return result; -// } -// -// std::pair> combineEdgesByNondeterministicChoice(std::vector& edges) { -// // Complete all edges by adding the missing global variable identities. -// for (auto& edge : edges) { -// edge.transitions *= computeMissingGlobalVariableIdentities(edge, this->variables); -// } -// -// // Sum all guards, so we can read off the maximal number of nondeterministic choices in any given state. -// storm::dd::Add sumOfGuards = this->variables.manager->template getAddZero(); -// for (auto const& edge : edges) { -// sumOfGuards += edge.guard; -// } -// uint_fast64_t maxChoices = static_cast(sumOfGuards.getMax()); -// STORM_LOG_TRACE("Found " << maxChoices << " local choices."); -// -// // Depending on the maximal number of nondeterminstic choices, we need to use some variables to encode the nondeterminism. -// if (maxChoices == 0) { -// return std::make_pair(0, this->variables.manager->template getAddZero()); -// } else if (maxChoices == 1) { -// return std::make_pair(0, combineEdgesBySummation(edges, this->variables)); -// } else { -// // Calculate number of required variables to encode the nondeterminism. -// uint_fast64_t numberOfBinaryVariables = static_cast(std::ceil(storm::utility::math::log2(maxChoices))); -// -// storm::dd::Add allEdges = this->variables.manager->template getAddZero(); -// -// storm::dd::Bdd equalsNumberOfChoicesDd; -// std::vector> choiceDds(maxChoices, this->variables.manager->template getAddZero()); -// std::vector> remainingDds(maxChoices, this->variables.manager->getBddZero()); -// -// for (uint_fast64_t currentChoices = 1; currentChoices <= maxChoices; ++currentChoices) { -// // Determine the set of states with exactly currentChoices choices. -// equalsNumberOfChoicesDd = sumOfGuards.equals(this->variables.manager->getConstant(static_cast(currentChoices))); -// -// // If there is no such state, continue with the next possible number of choices. -// if (equalsNumberOfChoicesDd.isZero()) { -// continue; -// } -// -// // Reset the previously used intermediate storage. -// for (uint_fast64_t j = 0; j < currentChoices; ++j) { -// choiceDds[j] = this->variables.manager->template getAddZero(); -// remainingDds[j] = equalsNumberOfChoicesDd; -// } -// -// for (std::size_t j = 0; j < edges.size(); ++j) { -// // Check if edge guard overlaps with equalsNumberOfChoicesDd. That is, there are states with exactly currentChoices -// // choices such that one outgoing choice is given by the j-th edge. -// storm::dd::Bdd guardChoicesIntersection = edges[j].guard.toBdd() && equalsNumberOfChoicesDd; -// -// // If there is no such state, continue with the next command. -// if (guardChoicesIntersection.isZero()) { -// continue; -// } -// -// // Split the currentChoices nondeterministic choices. -// for (uint_fast64_t k = 0; k < currentChoices; ++k) { -// // Calculate the overlapping part of command guard and the remaining DD. -// storm::dd::Bdd remainingGuardChoicesIntersection = guardChoicesIntersection && remainingDds[k]; -// -// // Check if we can add some overlapping parts to the current index. -// if (!remainingGuardChoicesIntersection.isZero()) { -// // Remove overlapping parts from the remaining DD. -// remainingDds[k] = remainingDds[k] && !remainingGuardChoicesIntersection; -// -// // Combine the overlapping part of the guard with command updates and add it to the resulting DD. -// choiceDds[k] += remainingGuardChoicesIntersection.template toAdd() * edges[j].transitions; -// } -// -// // Remove overlapping parts from the command guard DD -// guardChoicesIntersection = guardChoicesIntersection && !remainingGuardChoicesIntersection; -// -// // If the guard DD has become equivalent to false, we can stop here. -// if (guardChoicesIntersection.isZero()) { -// break; -// } -// } -// } -// -// // Add the meta variables that encode the nondeterminisim to the different choices. -// for (uint_fast64_t j = 0; j < currentChoices; ++j) { -// allEdges += encodeIndex(j, 0, numberOfBinaryVariables, this->variables) * choiceDds[j]; -// } -// -// // Delete currentChoices out of overlapping DD -// sumOfGuards = sumOfGuards * (!equalsNumberOfChoicesDd).template toAdd(); -// } -// -// return std::make_pair(numberOfBinaryVariables, allEdges); -// } -// } -// -// storm::dd::Bdd computeIllegalFragmentFromEdges(std::map> const& actionIndexToEdges) { -// // Create the illegal fragment. For this, we need to find the edges that write global variables multiple times. -// storm::dd::Bdd illegalFragment = this->variables.manager->getBddZero(); -// for (auto const& action : actionIndexToEdges) { -// for (auto const& edge : action.second) { -// if (!edge.globalVariablesWrittenMultipleTimes.empty()) { -// for (auto const& variable : edge.globalVariablesWrittenMultipleTimes) { -// STORM_LOG_WARN("The global variable '" << variable.getName() << "' is written along multiple synchronizing edges. If such a transition is contained in the reachable state space, an error is raised."); -// illegalFragment |= edge.guard.toBdd(); -// } -// } -// } -// } -// return illegalFragment; -// } -// -// ComposerResult buildSystemFromAutomaton(AutomatonDd& automatonDd) { -// // If the model is an MDP, we need to encode the nondeterminism using additional variables. -// if (this->model.getModelType() == storm::jani::ModelType::MDP) { -// std::map>> actionIndexToUsedVariablesAndDd; -// -// // Combine the edges of each action individually and keep track of how many local nondeterminism variables -// // were used. -// uint64_t highestNumberOfUsedNondeterminismVariables = 0; -// for (auto& action : automatonDd.actionIndexToEdges) { -// std::pair> usedVariablesAndDd = combineEdgesByNondeterministicChoice(action.second); -// actionIndexToUsedVariablesAndDd.emplace(action.first, usedVariablesAndDd); -// highestNumberOfUsedNondeterminismVariables = std::max(highestNumberOfUsedNondeterminismVariables, usedVariablesAndDd.first); -// } -// -// storm::dd::Add result = this->variables.manager->template getAddZero(); -// for (auto const& element : actionIndexToUsedVariablesAndDd) { -// result += element.second.second * encodeAction(element.first != this->model.getSilentActionIndex() ? boost::optional(element.first) : boost::none, this->variables) * encodeIndex(0, element.second.first, highestNumberOfUsedNondeterminismVariables - element.second.first, this->variables); -// } -// -// return ComposerResult(result, computeIllegalFragmentFromEdges(automatonDd.actionIndexToEdges), highestNumberOfUsedNondeterminismVariables); -// } else if (this->model.getModelType() == storm::jani::ModelType::DTMC || this->model.getModelType() == storm::jani::ModelType::CTMC) { -// storm::dd::Add result = this->variables.manager->template getAddZero(); -// for (auto const& action : automatonDd.actionIndexToEdges) { -// result += combineEdgesBySummation(action.second, this->variables); -// } -// return ComposerResult(result, computeIllegalFragmentFromEdges(automatonDd.actionIndexToEdges), 0); -// } -// -// STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Illegal model type."); -// } -// -// storm::dd::Add computeMissingGlobalVariableIdentities(EdgeDd const& edge, CompositionVariables const& variables) { -// std::set missingIdentities; -// std::set_difference(variables.allGlobalVariables.begin(), variables.allGlobalVariables.end(), edge.writtenGlobalVariables.begin(), edge.writtenGlobalVariables.end(), std::inserter(missingIdentities, missingIdentities.begin())); -// storm::dd::Add identityEncoding = variables.manager->template getAddOne(); -// for (auto const& variable : missingIdentities) { -// identityEncoding *= variables.variableToIdentityMap.at(variable); -// } -// return identityEncoding; -// } -// -// EdgeDd extendEdgeWithIdentity(EdgeDd const& edge, storm::dd::Add const& identity) { -// EdgeDd result(edge); -// result.transitions *= identity; -// return result; -// } -// -// EdgeDd composeEdgesInParallel(EdgeDd const& edge1, EdgeDd const& edge2) { -// EdgeDd result; -// -// // Compose the guards. -// result.guard = edge1.guard * edge2.guard; -// -// // If the composed guard is already zero, we can immediately return an empty result. -// if (result.guard.isZero()) { -// result.transitions = edge1.transitions.getDdManager().template getAddZero(); -// return result; -// } -// -// // Compute the set of variables written multiple times by the composition. -// std::set oldVariablesWrittenMultipleTimes; -// std::set_union(edge1.globalVariablesWrittenMultipleTimes.begin(), edge1.globalVariablesWrittenMultipleTimes.end(), edge2.globalVariablesWrittenMultipleTimes.begin(), edge2.globalVariablesWrittenMultipleTimes.end(), std::inserter(oldVariablesWrittenMultipleTimes, oldVariablesWrittenMultipleTimes.begin())); -// -// std::set newVariablesWrittenMultipleTimes; -// std::set_intersection(edge1.writtenGlobalVariables.begin(), edge1.writtenGlobalVariables.end(), edge2.writtenGlobalVariables.begin(), edge2.writtenGlobalVariables.end(), std::inserter(newVariablesWrittenMultipleTimes, newVariablesWrittenMultipleTimes.begin())); -// -// std::set variablesWrittenMultipleTimes; -// std::set_union(oldVariablesWrittenMultipleTimes.begin(), oldVariablesWrittenMultipleTimes.end(), newVariablesWrittenMultipleTimes.begin(), newVariablesWrittenMultipleTimes.end(), std::inserter(variablesWrittenMultipleTimes, variablesWrittenMultipleTimes.begin())); -// -// result.globalVariablesWrittenMultipleTimes = std::move(variablesWrittenMultipleTimes); -// -// // Compute the set of variables written by the composition. -// std::set variablesWritten; -// std::set_union(edge1.writtenGlobalVariables.begin(), edge1.writtenGlobalVariables.end(), edge2.writtenGlobalVariables.begin(), edge2.writtenGlobalVariables.end(), std::inserter(variablesWritten, variablesWritten.begin())); -// -// result.writtenGlobalVariables = variablesWritten; -// -// // Compose the guards. -// result.guard = edge1.guard * edge2.guard; -// -// // Compose the transitions. -// result.transitions = edge1.transitions * edge2.transitions; -// -// return result; -// } -// -// /*! -// * Builds the DD for the given edge. -// */ -// EdgeDd buildEdgeDd(storm::jani::Automaton const& automaton, storm::jani::Edge const& edge) { -// STORM_LOG_TRACE("Translating guard " << edge.getGuard()); -// storm::dd::Add guard = this->variables.rowExpressionAdapter->translateExpression(edge.getGuard());// * this->variables.automatonToRangeMap.at(automaton.getName()); -// STORM_LOG_WARN_COND(!guard.isZero(), "The guard '" << edge.getGuard() << "' is unsatisfiable."); -// -// if (!guard.isZero()) { -// // Create the DDs representing the individual updates. -// std::vector> destinationDds; -// for (storm::jani::EdgeDestination const& destination : edge.getDestinations()) { -// destinationDds.push_back(buildEdgeDestinationDd(automaton, destination, guard, this->variables)); -// -// STORM_LOG_WARN_COND(!destinationDds.back().transitions.isZero(), "Destination does not have any effect."); -// } -// -// // Start by gathering all variables that were written in at least one update. -// std::set globalVariablesInSomeUpdate; -// -// // If the edge is not labeled with the silent action, we have to analyze which portion of the global -// // variables was written by any of the updates and make all update results equal w.r.t. this set. If -// // the edge is labeled with the silent action, we can already multiply the identities of all global variables. -// if (edge.getActionIndex() != this->model.getSilentActionIndex()) { -// for (auto const& edgeDestinationDd : destinationDds) { -// globalVariablesInSomeUpdate.insert(edgeDestinationDd.writtenGlobalVariables.begin(), edgeDestinationDd.writtenGlobalVariables.end()); -// } -// } else { -// globalVariablesInSomeUpdate = this->variables.allGlobalVariables; -// } -// -// // Then, multiply the missing identities. -// for (auto& destinationDd : destinationDds) { -// std::set missingIdentities; -// std::set_difference(globalVariablesInSomeUpdate.begin(), globalVariablesInSomeUpdate.end(), destinationDd.writtenGlobalVariables.begin(), destinationDd.writtenGlobalVariables.end(), std::inserter(missingIdentities, missingIdentities.begin())); -// -// for (auto const& variable : missingIdentities) { -// STORM_LOG_TRACE("Multiplying identity for variable " << variable.getName() << " to destination DD."); -// destinationDd.transitions *= this->variables.variableToIdentityMap.at(variable); -// } -// } -// -// // Now combine the destination DDs to the edge DD. -// storm::dd::Add transitions = this->variables.manager->template getAddZero(); -// for (auto const& destinationDd : destinationDds) { -// transitions += destinationDd.transitions; -// } -// -// // Add the source location and the guard. -// transitions *= this->variables.manager->getEncoding(this->variables.automatonToLocationVariableMap.at(automaton.getName()).first, edge.getSourceLocationIndex()).template toAdd() * guard; -// -// // If we multiply the ranges of global variables, make sure everything stays within its bounds. -// if (!globalVariablesInSomeUpdate.empty()) { -// transitions *= this->variables.globalVariableRanges; -// } -// -// // If the edge has a rate, we multiply it to the DD. -// if (edge.hasRate()) { -// transitions *= this->variables.rowExpressionAdapter->translateExpression(edge.getRate()); -// } -// return EdgeDd(guard, transitions, globalVariablesInSomeUpdate); -// } else { -// return EdgeDd(this->variables.manager->template getAddZero(), this->variables.manager->template getAddZero()); -// } -// } -// -// /*! -// * Builds the DD for the automaton with the given name. -// */ -// AutomatonDd buildAutomatonDd(std::string const& automatonName) { -// AutomatonDd result(this->variables.automatonToIdentityMap.at(automatonName)); -// -// storm::jani::Automaton const& automaton = this->model.getAutomaton(automatonName); -// for (auto const& edge : automaton.getEdges()) { -// // Build the edge and add it if it adds transitions. -// EdgeDd edgeDd = buildEdgeDd(automaton, edge); -// if (!edgeDd.guard.isZero()) { -// result.actionIndexToEdges[edge.getActionIndex()].push_back(edgeDd); -// } -// } -// -// return result; -// } -// }; - + template class CombinedEdgesSystemComposer : public SystemComposer { public: // This structure represents an edge. struct EdgeDd { - EdgeDd(storm::dd::Add const& guard = storm::dd::Add(), storm::dd::Add const& transitions = storm::dd::Add(), std::map> const& transientEdgeAssignments = {}, std::set const& writtenGlobalVariables = {}) : guard(guard), transitions(transitions), transientEdgeAssignments(transientEdgeAssignments), writtenGlobalVariables(writtenGlobalVariables) { + EdgeDd(bool isMarkovian, storm::dd::Add const& guard, storm::dd::Add const& transitions, std::map> const& transientEdgeAssignments, std::set const& writtenGlobalVariables) : isMarkovian(isMarkovian), guard(guard), transitions(transitions), transientEdgeAssignments(transientEdgeAssignments), variableToWritingFragment() { + + // Convert the set of written variables to a mapping from variable to the writing fragments. + for (auto const& variable : writtenGlobalVariables) { + variableToWritingFragment[variable] = guard.toBdd(); + } + } + + EdgeDd(bool isMarkovian, storm::dd::Add const& guard, storm::dd::Add const& transitions, std::map> const& transientEdgeAssignments, std::map> const& variableToWritingFragment) : isMarkovian(isMarkovian), guard(guard), transitions(transitions), transientEdgeAssignments(transientEdgeAssignments), variableToWritingFragment(variableToWritingFragment) { // Intentionally left empty. } + + // A flag storing whether this edge is a Markovian one (i.e. one with a rate). + bool isMarkovian; // A DD that represents all states that have this edge enabled. storm::dd::Add guard; @@ -937,13 +524,13 @@ namespace storm { // A mapping from transient variables to the DDs representing their value assignments. std::map> transientEdgeAssignments; - // The set of global variables written by this edge. - std::set writtenGlobalVariables; + // A mapping of variables to the variables to the fragment of transitions that is writing the corresponding variable. + std::map> variableToWritingFragment; }; // This structure represents an edge. struct ActionDd { - ActionDd(storm::dd::Add const& guard = storm::dd::Add(), storm::dd::Add const& transitions = storm::dd::Add(), std::map> const& transientEdgeAssignments = {}, std::pair localNondeterminismVariables = std::pair(0, 0), std::map> const& variableToWritingFragment = {}, storm::dd::Bdd const& illegalFragment = storm::dd::Bdd()) : guard(guard), transitions(transitions), transientEdgeAssignments(transientEdgeAssignments), localNondeterminismVariables(localNondeterminismVariables), variableToWritingFragment(variableToWritingFragment), illegalFragment(illegalFragment) { + ActionDd(storm::dd::Add const& guard = storm::dd::Add(), storm::dd::Add const& transitions = storm::dd::Add(), std::map> const& transientEdgeAssignments = {}, std::pair localNondeterminismVariables = std::pair(0, 0), std::map> const& variableToWritingFragment = {}, storm::dd::Bdd const& illegalFragment = storm::dd::Bdd()) : guard(guard), transitions(transitions), transientEdgeAssignments(transientEdgeAssignments), localNondeterminismVariables(localNondeterminismVariables), variableToWritingFragment(variableToWritingFragment), illegalFragment(illegalFragment), inputEnabled(false) { // Intentionally left empty. } @@ -963,6 +550,14 @@ namespace storm { return ActionDd(guard, transitions * factor, transientEdgeAssignments, localNondeterminismVariables, variableToWritingFragment, illegalFragment); } + bool isInputEnabled() const { + return inputEnabled; + } + + void setIsInputEnabled() { + inputEnabled = true; + } + // A DD that represents all states that have this edge enabled. storm::dd::Add guard; @@ -982,6 +577,9 @@ namespace storm { // A DD characterizing the fragment of the states satisfying the guard that are illegal because // there are synchronizing edges enabled that write to the same global variable. storm::dd::Bdd illegalFragment; + + // A flag storing whether this action is input-enabled. + bool inputEnabled; }; // This structure represents a subcomponent of a composition. @@ -1025,18 +623,18 @@ namespace storm { }; - CombinedEdgesSystemComposer(storm::jani::Model const& model, storm::jani::ActionInformation const& actionInformation, CompositionVariables const& variables, std::vector const& transientVariables) : SystemComposer(model, variables, transientVariables), actionInformation(actionInformation) { + CombinedEdgesSystemComposer(storm::jani::Model const& model, storm::jani::CompositionInformation const& actionInformation, CompositionVariables const& variables, std::vector const& transientVariables) : SystemComposer(model, variables, transientVariables), actionInformation(actionInformation) { // Intentionally left empty. } - storm::jani::ActionInformation const& actionInformation; + storm::jani::CompositionInformation const& actionInformation; ComposerResult compose() override { std::map actionIndexToLocalNondeterminismVariableOffset; for (auto const& actionIndex : actionInformation.getNonSilentActionIndices()) { actionIndexToLocalNondeterminismVariableOffset[actionIndex] = 0; } - actionIndexToLocalNondeterminismVariableOffset[actionInformation.getSilentActionIndex()] = 0; + actionIndexToLocalNondeterminismVariableOffset[storm::jani::Model::SILENT_ACTION_INDEX] = 0; AutomatonDd globalAutomaton = boost::any_cast(this->model.getSystemComposition().accept(*this, actionIndexToLocalNondeterminismVariableOffset)); return buildSystemFromAutomaton(globalAutomaton); @@ -1044,40 +642,13 @@ namespace storm { boost::any visit(storm::jani::AutomatonComposition const& composition, boost::any const& data) override { std::map const& actionIndexToLocalNondeterminismVariableOffset = boost::any_cast const&>(data); - return buildAutomatonDd(composition.getAutomatonName(), actionIndexToLocalNondeterminismVariableOffset); - } - - boost::any visit(storm::jani::RenameComposition const& composition, boost::any const& data) override { - // Build a mapping from indices to indices for the renaming. - std::map renamingIndexToIndex; - for (auto const& entry : composition.getRenaming()) { - if (actionInformation.getActionIndex(entry.first) != this->model.getSilentActionIndex()) { - // Distinguish the cases where we hide the action or properly rename it. - if (entry.second) { - renamingIndexToIndex.emplace(actionInformation.getActionIndex(entry.first), actionInformation.getActionIndex(entry.second.get())); - } else { - renamingIndexToIndex.emplace(actionInformation.getActionIndex(entry.first), this->model.getSilentActionIndex()); - } - } else { - STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Renaming composition must not rename the silent action."); - } - } - // Prepare the new offset mapping. - std::map const& actionIndexToLocalNondeterminismVariableOffset = boost::any_cast const&>(data); - std::map newSynchronizingActionToOffsetMap = actionIndexToLocalNondeterminismVariableOffset; - for (auto const& indexPair : renamingIndexToIndex) { - // FIXME: Check correct? Introduce zero if not contained? - auto it = actionIndexToLocalNondeterminismVariableOffset.find(indexPair.second); - STORM_LOG_THROW(it != actionIndexToLocalNondeterminismVariableOffset.end(), storm::exceptions::InvalidArgumentException, "Invalid action index " << indexPair.second << "."); - newSynchronizingActionToOffsetMap[indexPair.first] = it->second; + std::set inputEnabledActionIndices; + for (auto const& actionName : composition.getInputEnabledActions()) { + inputEnabledActionIndices.insert(actionInformation.getActionIndex(actionName)); } - // Then, we translate the subcomposition. - AutomatonDd subautomaton = boost::any_cast(composition.getSubcomposition().accept(*this, newSynchronizingActionToOffsetMap)); - - // Now perform the renaming and return result. - return rename(subautomaton, renamingIndexToIndex); + return buildAutomatonDd(composition.getAutomatonName(), actionIndexToLocalNondeterminismVariableOffset, inputEnabledActionIndices); } boost::any visit(storm::jani::ParallelComposition const& composition, boost::any const& data) override { @@ -1087,22 +658,31 @@ namespace storm { for (uint64_t subcompositionIndex = 0; subcompositionIndex < composition.getNumberOfSubcompositions(); ++subcompositionIndex) { // Prepare the new offset mapping. std::map newSynchronizingActionToOffsetMap = actionIndexToLocalNondeterminismVariableOffset; + if (subcompositionIndex == 0) { for (auto const& synchVector : composition.getSynchronizationVectors()) { auto it = actionIndexToLocalNondeterminismVariableOffset.find(actionInformation.getActionIndex(synchVector.getOutput())); STORM_LOG_THROW(it != actionIndexToLocalNondeterminismVariableOffset.end(), storm::exceptions::InvalidArgumentException, "Invalid action " << synchVector.getOutput() << "."); - newSynchronizingActionToOffsetMap[actionInformation.getActionIndex(synchVector.getInput(0))] = it->second; + if (synchVector.getInput(0) != storm::jani::SynchronizationVector::NO_ACTION_INPUT) { + newSynchronizingActionToOffsetMap[actionInformation.getActionIndex(synchVector.getInput(0))] = it->second; + } } } else { - AutomatonDd const& previousAutomatonDd = subautomata.back(); - // Based on the previous results, we need to update the offsets. for (auto const& synchVector : composition.getSynchronizationVectors()) { - auto it = previousAutomatonDd.actionIndexToAction.find(actionInformation.getActionIndex(synchVector.getInput(subcompositionIndex - 1))); - if (it != previousAutomatonDd.actionIndexToAction.end()) { - newSynchronizingActionToOffsetMap[actionInformation.getActionIndex(synchVector.getInput(subcompositionIndex))] = it->second.getHighestLocalNondeterminismVariable(); - } else { - STORM_LOG_ASSERT(false, "Subcomposition does not have action that is mentioned in parallel composition."); + if (synchVector.getInput(subcompositionIndex) != storm::jani::SynchronizationVector::NO_ACTION_INPUT) { + boost::optional previousActionPosition = synchVector.getPositionOfPrecedingParticipatingAction(subcompositionIndex); + if (previousActionPosition) { + AutomatonDd const& previousAutomatonDd = subautomata[previousActionPosition.get()]; + + std::string const& previousAction = synchVector.getInput(previousActionPosition.get()); + auto it = previousAutomatonDd.actionIndexToAction.find(actionInformation.getActionIndex(previousAction)); + if (it != previousAutomatonDd.actionIndexToAction.end()) { + newSynchronizingActionToOffsetMap[actionInformation.getActionIndex(synchVector.getInput(subcompositionIndex))] = it->second.getHighestLocalNondeterminismVariable(); + } else { + STORM_LOG_ASSERT(false, "Subcomposition does not have action that is mentioned in parallel composition."); + } + } } } } @@ -1116,10 +696,15 @@ namespace storm { private: AutomatonDd composeInParallel(std::vector const& subautomata, std::vector const& synchronizationVectors) { + typedef storm::dd::Add IdentityAdd; + typedef std::pair ActionAndAutomatonIdentity; + typedef std::vector ActionAndAutomatonIdentities; + typedef std::vector>> SynchronizationVectorActionsAndIdentities; + AutomatonDd result(this->variables.manager->template getAddOne()); std::map> nonSynchronizingActions; - std::vector> synchronizationVectorActions(synchronizationVectors.size(), boost::none); + SynchronizationVectorActionsAndIdentities synchronizationVectorActions(synchronizationVectors.size(), boost::none); for (uint64_t automatonIndex = 0; automatonIndex < subautomata.size(); ++automatonIndex) { AutomatonDd const& subautomaton = subautomata[automatonIndex]; @@ -1137,28 +722,41 @@ namespace storm { for (uint64_t synchVectorIndex = 0; synchVectorIndex < synchronizationVectors.size(); ++synchVectorIndex) { auto const& synchVector = synchronizationVectors[synchVectorIndex]; - // Determine the indices of input (at the current automaton position) and the output. - uint64_t inputActionIndex = actionInformation.getActionIndex(synchVector.getInput(automatonIndex)); - actionsInSynch.insert(inputActionIndex); - - // Either set the action (if it's the first of the ones to compose) or compose the actions directly. - if (automatonIndex == 0) { - // If the action cannot be found, the particular spot in the output will be left empty. - auto inputActionIt = subautomaton.actionIndexToAction.find(inputActionIndex); - if (inputActionIt != subautomaton.actionIndexToAction.end()) { - synchronizationVectorActions[synchVectorIndex] = inputActionIt->second; + if (synchVector.isNoActionInput(synchVector.getInput(automatonIndex))) { + if (automatonIndex == 0) { + // Create a new action that is the identity over the first automaton. + synchronizationVectorActions[synchVectorIndex] = std::make_pair(ActionAndAutomatonIdentities{std::make_pair(ActionDd(this->variables.manager->template getAddOne(), subautomaton.identity, {}, subautomaton.localNondeterminismVariables, {}, this->variables.manager->getBddZero()), subautomaton.identity)}, this->variables.manager->template getAddOne()); + } else { + // If there is no action in the output spot, this means that some other subcomposition did + // not provide the action necessary for the synchronization vector to resolve. + if (synchronizationVectorActions[synchVectorIndex]) { + synchronizationVectorActions[synchVectorIndex].get().second *= subautomaton.identity; + } } } else { - // If there is no action in the output spot, this means that some other subcomposition did - // not provide the action necessary for the synchronization vector to resolve. - if (synchronizationVectorActions[synchVectorIndex]) { + // Determine the indices of input (at the current automaton position) and the output. + uint64_t inputActionIndex = actionInformation.getActionIndex(synchVector.getInput(automatonIndex)); + actionsInSynch.insert(inputActionIndex); + + // Either set the action (if it's the first of the ones to compose) or compose the actions directly. + if (automatonIndex == 0) { + // If the action cannot be found, the particular spot in the output will be left empty. auto inputActionIt = subautomaton.actionIndexToAction.find(inputActionIndex); if (inputActionIt != subautomaton.actionIndexToAction.end()) { - synchronizationVectorActions[synchVectorIndex] = combineSynchronizingActions(synchronizationVectorActions[synchVectorIndex].get(), inputActionIt->second); - } else { - // If the current subcomposition does not provide the required action for the synchronization - // vector, we clear the action. - synchronizationVectorActions[synchVectorIndex] = boost::none; + synchronizationVectorActions[synchVectorIndex] = std::make_pair(ActionAndAutomatonIdentities{std::make_pair(inputActionIt->second, subautomaton.identity)}, this->variables.manager->template getAddOne()); + } + } else { + // If there is no action in the output spot, this means that some other subcomposition did + // not provide the action necessary for the synchronization vector to resolve. + if (synchronizationVectorActions[synchVectorIndex]) { + auto inputActionIt = subautomaton.actionIndexToAction.find(inputActionIndex); + if (inputActionIt != subautomaton.actionIndexToAction.end()) { + synchronizationVectorActions[synchVectorIndex].get().first.push_back(std::make_pair(inputActionIt->second, subautomaton.identity)); + } else { + // If the current subcomposition does not provide the required action for the synchronization + // vector, we clear the action. + synchronizationVectorActions[synchVectorIndex] = boost::none; + } } } } @@ -1176,6 +774,7 @@ namespace storm { // Extend all other non-synchronizing actions with the identity of the current subautomaton. for (auto& actions : nonSynchronizingActions) { for (auto& action : actions.second) { + STORM_LOG_TRACE("Extending action '" << actionInformation.getActionName(actions.first) << "' with identity of next composition."); action.transitions *= subautomaton.identity; } } @@ -1184,6 +783,7 @@ namespace storm { // add it to the overall non-synchronizing action result. for (auto const& action : subautomaton.actionIndexToAction) { if (actionsInSynch.find(action.first) == actionsInSynch.end()) { + STORM_LOG_TRACE("Adding action " << actionInformation.getActionName(action.first) << " to non-synchronizing actions and multiply it with system identity."); nonSynchronizingActions[action.first].push_back(action.second.multiplyTransitions(result.identity)); } } @@ -1200,7 +800,7 @@ namespace storm { // If there is an action resulting from this combination of actions, add it to the output action. if (synchronizationVectorActions[synchVectorIndex]) { uint64_t outputActionIndex = actionInformation.getActionIndex(synchVector.getOutput()); - nonSynchronizingActions[outputActionIndex].push_back(synchronizationVectorActions[synchVectorIndex].get()); + nonSynchronizingActions[outputActionIndex].push_back(combineSynchronizingActions(synchronizationVectorActions[synchVectorIndex].get().first, synchronizationVectorActions[synchVectorIndex].get().second)); } } @@ -1221,33 +821,111 @@ namespace storm { return result; } - ActionDd combineSynchronizingActions(ActionDd action1, ActionDd action2) { + ActionDd combineSynchronizingActions(std::vector>> const& actionsAndIdentities, storm::dd::Add const& nonSynchronizingAutomataIdentities) { + // If there is just one action, no need to combine anything. + if (actionsAndIdentities.size() == 1) { + return actionsAndIdentities.front().first; + } + + // If there are only input-enabled actions, we also need to build the disjunction of the guards. + bool allActionsInputEnabled = true; + for (auto const& actionIdentityPair : actionsAndIdentities) { + auto const& action = actionIdentityPair.first; + if (!action.isInputEnabled()) { + allActionsInputEnabled = false; + } + } + + boost::optional> guardDisjunction; + if (allActionsInputEnabled) { + guardDisjunction = this->variables.manager->getBddZero(); + } + + // Otherwise, construct the synchronization. storm::dd::Bdd illegalFragment = this->variables.manager->getBddZero(); - storm::dd::Bdd guard1 = action1.guard.toBdd(); - storm::dd::Bdd guard2 = action2.guard.toBdd(); - storm::dd::Bdd combinedGuard = guard1 && guard2; - // Cross-multiply the guards to the other fragments that write global variables and check for overlapping - // parts. This finds illegal parts in which a global variable is written multiple times. std::map> globalVariableToWritingFragment; - for (auto& entry : action1.variableToWritingFragment) { - entry.second &= guard2; - globalVariableToWritingFragment[entry.first] = entry.second; - } - for (auto& entry : action2.variableToWritingFragment) { - entry.second &= guard1; - auto it = globalVariableToWritingFragment.find(entry.first); - if (it != globalVariableToWritingFragment.end()) { - auto action1LocalNondeterminismVariableSet = std::set(this->variables.localNondeterminismVariables.begin() + action1.getLowestLocalNondeterminismVariable(), this->variables.localNondeterminismVariables.begin() + action1.getHighestLocalNondeterminismVariable()); - auto action2LocalNondeterminismVariableSet = std::set(this->variables.localNondeterminismVariables.begin() + action2.getLowestLocalNondeterminismVariable(), this->variables.localNondeterminismVariables.begin() + action2.getHighestLocalNondeterminismVariable()); - illegalFragment |= it->second.existsAbstract(action1LocalNondeterminismVariableSet) && entry.second.existsAbstract(action2LocalNondeterminismVariableSet); - it->second &= entry.second; + std::map> globalVariableToWritingFragmentWithoutNondeterminism; + + storm::dd::Bdd inputEnabledGuard = this->variables.manager->getBddOne(); + storm::dd::Add transitions = this->variables.manager->template getAddOne(); + std::map> transientEdgeAssignments; + + uint64_t lowestNondeterminismVariable = actionsAndIdentities.front().first.getLowestLocalNondeterminismVariable(); + uint64_t highestNondeterminismVariable = actionsAndIdentities.front().first.getHighestLocalNondeterminismVariable(); + + storm::dd::Bdd newIllegalFragment = this->variables.manager->getBddZero(); + for (auto const& actionIdentityPair : actionsAndIdentities) { + auto const& action = actionIdentityPair.first; + storm::dd::Bdd actionGuard = action.guard.toBdd(); + if (guardDisjunction) { + guardDisjunction.get() |= actionGuard; + } + + lowestNondeterminismVariable = std::min(lowestNondeterminismVariable, action.getLowestLocalNondeterminismVariable()); + highestNondeterminismVariable = std::max(highestNondeterminismVariable, action.getHighestLocalNondeterminismVariable()); + transientEdgeAssignments = joinTransientAssignmentMaps(transientEdgeAssignments, action.transientEdgeAssignments); + + if (action.isInputEnabled()) { + // If the action is input-enabled, we add self-loops to all states. + transitions *= actionGuard.ite(action.transitions, encodeIndex(0, action.getLowestLocalNondeterminismVariable(), action.getHighestLocalNondeterminismVariable() - action.getLowestLocalNondeterminismVariable(), this->variables) * actionIdentityPair.second); + actionGuard.ite(action.transitions, encodeIndex(0, action.getLowestLocalNondeterminismVariable(), action.getHighestLocalNondeterminismVariable() - action.getLowestLocalNondeterminismVariable(), this->variables) * actionIdentityPair.second).exportToDot("this.dot"); } else { - globalVariableToWritingFragment[entry.first] = entry.second; + transitions *= action.transitions; + } + + // Create a set of variables that is used as nondeterminism variables in this action. + auto nondetVariables = std::set(this->variables.localNondeterminismVariables.begin() + action.getLowestLocalNondeterminismVariable(), this->variables.localNondeterminismVariables.begin() + action.getHighestLocalNondeterminismVariable()); + + for (auto const& entry : action.variableToWritingFragment) { + storm::dd::Bdd guardedWritingFragment = inputEnabledGuard && entry.second; + + // Check whether there already is an entry for this variable in the mapping of global variables + // to their writing fragments. + auto globalFragmentIt = globalVariableToWritingFragment.find(entry.first); + if (globalFragmentIt != globalVariableToWritingFragment.end()) { + // If there is, take the conjunction of the entries and also of their versions without nondeterminism + // variables. + globalFragmentIt->second &= guardedWritingFragment; + illegalFragment |= globalVariableToWritingFragmentWithoutNondeterminism[entry.first] && guardedWritingFragment.existsAbstract(nondetVariables); + globalVariableToWritingFragmentWithoutNondeterminism[entry.first] |= guardedWritingFragment.existsAbstract(nondetVariables); + } else { + // If not, create the entry and also create a version of the entry that abstracts from the + // used nondeterminism variables. + globalVariableToWritingFragment[entry.first] = guardedWritingFragment; + globalVariableToWritingFragmentWithoutNondeterminism[entry.first] = guardedWritingFragment.existsAbstract(nondetVariables); + } + + // Join all individual illegal fragments so we can see whether any of these elements lie in the + // conjunction of all guards. + illegalFragment |= action.illegalFragment; } + + // Now go through all fragments that are not written by the current action and join them with the + // guard of the current action if the current action is not input enabled. + for (auto& entry : globalVariableToWritingFragment) { + if (action.variableToWritingFragment.find(entry.first) == action.variableToWritingFragment.end() && !action.isInputEnabled()) { + entry.second &= actionGuard; + } + } + + if (!action.isInputEnabled()) { + inputEnabledGuard &= actionGuard; + } + } + + // If all actions were input-enabled, we need to constrain the transitions with the disjunction of all + // guards to make sure there are not transitions resulting from input enabledness alone. + if (allActionsInputEnabled) { + inputEnabledGuard &= guardDisjunction.get(); + transitions *= guardDisjunction.get().template toAdd(); } - return ActionDd(combinedGuard.template toAdd(), action1.transitions * action2.transitions, joinTransientAssignmentMaps(action1.transientEdgeAssignments, action2.transientEdgeAssignments), std::make_pair(std::min(action1.getLowestLocalNondeterminismVariable(), action2.getLowestLocalNondeterminismVariable()), std::max(action1.getHighestLocalNondeterminismVariable(), action2.getHighestLocalNondeterminismVariable())), globalVariableToWritingFragment, illegalFragment); + // Cut the union of the illegal fragments to the conjunction of the guards since only these states have + // such a combined transition. + illegalFragment &= inputEnabledGuard; + + return ActionDd(inputEnabledGuard.template toAdd(), transitions * nonSynchronizingAutomataIdentities, transientEdgeAssignments, std::make_pair(lowestNondeterminismVariable, highestNondeterminismVariable), globalVariableToWritingFragment, illegalFragment); } ActionDd combineUnsynchronizedActions(ActionDd action1, ActionDd action2, storm::dd::Add const& identity1, storm::dd::Add const& identity2) { @@ -1281,16 +959,22 @@ namespace storm { uint_fast64_t highestLocalNondeterminismVariable = actions.front().getHighestLocalNondeterminismVariable(); for (auto const& action : actions) { STORM_LOG_ASSERT(action.getLowestLocalNondeterminismVariable() == lowestLocalNondeterminismVariable, "Mismatching lowest nondeterminism variable indices."); + highestLocalNondeterminismVariable = std::max(highestLocalNondeterminismVariable, action.getHighestLocalNondeterminismVariable()); } // Bring all actions to the same number of variables that encode the nondeterminism. for (auto& action : actions) { - storm::dd::Add nondeterminismEncoding = this->variables.manager->template getAddOne(); + storm::dd::Bdd nondeterminismEncodingBdd = this->variables.manager->getBddOne(); for (uint_fast64_t i = action.getHighestLocalNondeterminismVariable(); i < highestLocalNondeterminismVariable; ++i) { - nondeterminismEncoding *= this->variables.manager->getEncoding(this->variables.localNondeterminismVariables[i], 0).template toAdd(); + nondeterminismEncodingBdd &= this->variables.manager->getEncoding(this->variables.localNondeterminismVariables[i], 0); } + storm::dd::Add nondeterminismEncoding = nondeterminismEncodingBdd.template toAdd(); + action.transitions *= nondeterminismEncoding; + for (auto& variableFragment : action.variableToWritingFragment) { + variableFragment.second &= nondeterminismEncodingBdd; + } for (auto& transientAssignment : action.transientEdgeAssignments) { transientAssignment.second *= nondeterminismEncoding; } @@ -1327,37 +1011,6 @@ namespace storm { } } - AutomatonDd rename(AutomatonDd const& automaton, std::map const& indexToIndex) { - AutomatonDd result(automaton.identity, automaton.transientLocationAssignments); - - for (auto const& action : automaton.actionIndexToAction) { - auto renamingIt = indexToIndex.find(action.first); - if (renamingIt != indexToIndex.end()) { - // If the action is to be renamed and an action with the target index already exists, we need - // to combine the action DDs. - auto itNewActions = result.actionIndexToAction.find(renamingIt->second); - if (itNewActions != result.actionIndexToAction.end()) { - itNewActions->second = combineUnsynchronizedActions(action.second, itNewActions->second); - } else { - // In this case, we can simply copy the action over. - result.actionIndexToAction[renamingIt->second] = action.second; - } - } else { - // If the action is not to be renamed, we need to copy it over. However, if some other action - // was renamed to the very same action name before, we need to combine the transitions. - auto itNewActions = result.actionIndexToAction.find(action.first); - if (itNewActions != result.actionIndexToAction.end()) { - itNewActions->second = combineUnsynchronizedActions(action.second, itNewActions->second); - } else { - // In this case, we can simply copy the action over. - result.actionIndexToAction[action.first] = action.second; - } - } - } - - return result; - } - void performTransientAssignments(storm::jani::detail::ConstAssignments const& transientAssignments, std::function const& callback) { auto transientVariableIt = this->transientVariables.begin(); auto transientVariableIte = this->transientVariables.end(); @@ -1402,7 +1055,7 @@ namespace storm { // If the edge is not labeled with the silent action, we have to analyze which portion of the global // variables was written by any of the updates and make all update results equal w.r.t. this set. If // the edge is labeled with the silent action, we can already multiply the identities of all global variables. - if (edge.getActionIndex() != this->model.getSilentActionIndex()) { + if (edge.getActionIndex() != storm::jani::Model::SILENT_ACTION_INDEX) { for (auto const& edgeDestinationDd : destinationDds) { globalVariablesInSomeDestination.insert(edgeDestinationDd.writtenGlobalVariables.begin(), edgeDestinationDd.writtenGlobalVariables.end()); } @@ -1436,8 +1089,10 @@ namespace storm { } // If the edge has a rate, we multiply it to the DD. + bool isMarkovian = false; if (edge.hasRate()) { - transitions *= this->variables.rowExpressionAdapter->translateExpression(edge.getRate()); + transitions *= this->variables.rowExpressionAdapter->translateExpression(edge.getRate()); + isMarkovian = true; } // Finally treat the transient assignments. @@ -1446,33 +1101,77 @@ namespace storm { performTransientAssignments(edge.getAssignments().getTransientAssignments(), [this, &transientEdgeAssignments, &guard] (storm::jani::Assignment const& assignment) { transientEdgeAssignments[assignment.getExpressionVariable()] = guard * this->variables.rowExpressionAdapter->translateExpression(assignment.getAssignedExpression()); } ); } - return EdgeDd(guard, guard * transitions, transientEdgeAssignments, globalVariablesInSomeDestination); + return EdgeDd(isMarkovian, guard, guard * transitions, transientEdgeAssignments, globalVariablesInSomeDestination); } else { - return EdgeDd(this->variables.manager->template getAddZero(), this->variables.manager->template getAddZero()); + return EdgeDd(false, rangedGuard, rangedGuard, std::map>(), std::set()); } } + EdgeDd combineMarkovianEdgesToSingleEdge(std::vector const& edgeDds) { + storm::dd::Bdd guard = this->variables.manager->getBddZero(); + storm::dd::Add transitions = this->variables.manager->template getAddZero(); + std::map> transientEdgeAssignments; + std::map> variableToWritingFragment; + + bool overlappingGuards = false; + for (auto const& edge : edgeDds) { + STORM_LOG_THROW(edge.isMarkovian, storm::exceptions::InvalidArgumentException, "Can only combine Markovian edges."); + + if (!overlappingGuards) { + overlappingGuards |= !(guard && edge.guard.toBdd()).isZero(); + } + + guard |= edge.guard.toBdd(); + transitions += edge.transitions; + variableToWritingFragment = joinVariableWritingFragmentMaps(variableToWritingFragment, edge.variableToWritingFragment); + joinTransientAssignmentMaps(transientEdgeAssignments, edge.transientEdgeAssignments); + } + + // Currently, we can only combine the transient edge assignments if there is no overlap of the guards of the edges. + STORM_LOG_THROW(!overlappingGuards || transientEdgeAssignments.empty(), storm::exceptions::NotSupportedException, "Cannot have transient edge assignments when combining Markovian edges with overlapping guards."); + + return EdgeDd(true, guard.template toAdd(), transitions, transientEdgeAssignments, variableToWritingFragment); + } + ActionDd buildActionDdForActionIndex(storm::jani::Automaton const& automaton, uint64_t actionIndex, uint64_t localNondeterminismVariableOffset) { // Translate the individual edges. - std::vector edgeDds; + std::vector markovianEdges; + std::vector nonMarkovianEdges; + uint64_t numberOfEdges = 0; for (auto const& edge : automaton.getEdges()) { + ++numberOfEdges; if (edge.getActionIndex() == actionIndex) { - edgeDds.push_back(buildEdgeDd(automaton, edge)); + EdgeDd result = buildEdgeDd(automaton, edge); + if (result.isMarkovian) { + markovianEdges.push_back(result); + } else { + nonMarkovianEdges.push_back(result); + } } } // Now combine the edges to a single action. - if (!edgeDds.empty()) { - switch (this->model.getModelType()){ - case storm::jani::ModelType::DTMC: - case storm::jani::ModelType::CTMC: - return combineEdgesToActionMarkovChain(edgeDds); - break; - case storm::jani::ModelType::MDP: - return combineEdgesToActionMdp(edgeDds, localNondeterminismVariableOffset); - break; - default: - STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Cannot translate model of this type."); + if (numberOfEdges > 0) { + storm::jani::ModelType modelType = this->model.getModelType(); + if (modelType == storm::jani::ModelType::DTMC) { + STORM_LOG_THROW(markovianEdges.empty(), storm::exceptions::WrongFormatException, "Illegal Markovian edges in DTMC."); + return combineEdgesToActionDeterministic(nonMarkovianEdges); + } else if (modelType == storm::jani::ModelType::CTMC) { + STORM_LOG_THROW(nonMarkovianEdges.empty(), storm::exceptions::WrongFormatException, "Illegal non-Markovian edges in CTMC."); + return combineEdgesToActionDeterministic(markovianEdges); + } else if (modelType == storm::jani::ModelType::MDP) { + STORM_LOG_THROW(markovianEdges.empty(), storm::exceptions::WrongFormatException, "Illegal Markovian edges in MDP."); + return combineEdgesToActionNondeterministic(nonMarkovianEdges, boost::none, localNondeterminismVariableOffset); + } else if (modelType == storm::jani::ModelType::MA) { + boost::optional markovianEdge = boost::none; + if (markovianEdges.size() > 1) { + markovianEdge = combineMarkovianEdgesToSingleEdge(markovianEdges); + } else if (markovianEdges.size() == 1) { + markovianEdge = markovianEdges.front(); + } + return combineEdgesToActionNondeterministic(nonMarkovianEdges, markovianEdge, localNondeterminismVariableOffset); + } else { + STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Cannot translate model of this type."); } } else { return ActionDd(this->variables.manager->template getAddZero(), this->variables.manager->template getAddZero(), {}, std::make_pair(0, 0), {}, this->variables.manager->getBddZero()); @@ -1514,38 +1213,38 @@ namespace storm { return result; } - ActionDd combineEdgesToActionMarkovChain(std::vector const& edgeDds) { + ActionDd combineEdgesToActionDeterministic(std::vector const& edgeDds) { storm::dd::Bdd allGuards = this->variables.manager->getBddZero(); storm::dd::Add allTransitions = this->variables.manager->template getAddZero(); storm::dd::Bdd temporary; std::map> globalVariableToWritingFragment; std::map> transientEdgeAssignments; + bool overlappingGuards = false; for (auto const& edgeDd : edgeDds) { + STORM_LOG_THROW((this->model.getModelType() == storm::jani::ModelType::CTMC) == edgeDd.isMarkovian, storm::exceptions::WrongFormatException, "Unexpected non-Markovian edge in CTMC."); + // Check for overlapping guards. storm::dd::Bdd guardBdd = edgeDd.guard.toBdd(); - temporary = guardBdd && allGuards; + overlappingGuards = !(guardBdd && allGuards).isZero(); // Issue a warning if there are overlapping guards in a DTMC. - STORM_LOG_WARN_COND(temporary.isZero() || this->model.getModelType() == storm::jani::ModelType::CTMC, "Guard of a command overlaps with previous guards."); + STORM_LOG_WARN_COND(!overlappingGuards || this->model.getModelType() == storm::jani::ModelType::CTMC, "Guard of an edge in a DTMC overlaps with previous guards."); // Add the elements of the current edge to the global ones. allGuards |= guardBdd; allTransitions += edgeDd.transitions; - // Add the transient variable assignments to the resulting one. + // Add the transient variable assignments to the resulting one. This transformation is illegal for + // CTMCs for which there is some overlap in edges that have some transient assignment (this needs to + // be checked later). addToTransientAssignmentMap(transientEdgeAssignments, edgeDd.transientEdgeAssignments); // Keep track of the fragment that is writing global variables. - for (auto const& variable : edgeDd.writtenGlobalVariables) { - auto it = globalVariableToWritingFragment.find(variable); - if (it != globalVariableToWritingFragment.end()) { - it->second |= guardBdd; - } else { - globalVariableToWritingFragment[variable] = guardBdd; - } - } + globalVariableToWritingFragment = joinVariableWritingFragmentMaps(globalVariableToWritingFragment, edgeDd.variableToWritingFragment); } + + STORM_LOG_THROW(this->model.getModelType() == storm::jani::ModelType::DTMC || !overlappingGuards || transientEdgeAssignments.empty(), storm::exceptions::NotSupportedException, "Cannot have transient edge assignments when combining Markovian edges with overlapping guards."); return ActionDd(allGuards.template toAdd(), allTransitions, transientEdgeAssignments, std::make_pair(0, 0), globalVariableToWritingFragment, this->variables.manager->getBddZero()); } @@ -1580,34 +1279,59 @@ namespace storm { return result; } - ActionDd combineEdgesBySummation(storm::dd::Add const& guard, std::vector const& edges) { + ActionDd combineEdgesBySummation(storm::dd::Add const& guard, std::vector const& edges, boost::optional const& markovianEdge) { + bool addMarkovianFlag = this->model.getModelType() == storm::jani::ModelType::MA; + STORM_LOG_ASSERT(addMarkovianFlag || !markovianEdge, "Illegally adding Markovian edge without marker."); + storm::dd::Add transitions = this->variables.manager->template getAddZero(); std::map> globalVariableToWritingFragment; std::map> transientEdgeAssignments; + + storm::dd::Bdd flagBdd = addMarkovianFlag ? !this->variables.markovMarker : this->variables.manager->getBddOne(); + storm::dd::Add flag = flagBdd.template toAdd(); for (auto const& edge : edges) { - transitions += edge.transitions; - addToTransientAssignmentMap(transientEdgeAssignments, edge.transientEdgeAssignments); - for (auto const& variable : edge.writtenGlobalVariables) { - addToVariableWritingFragmentMap(globalVariableToWritingFragment, variable, edge.guard.toBdd()); + transitions += addMarkovianFlag ? flag * edge.transitions : edge.transitions; + for (auto const& assignment : edge.transientEdgeAssignments) { + addToTransientAssignmentMap(transientEdgeAssignments, assignment.first, addMarkovianFlag ? flag * assignment.second : assignment.second); + } + for (auto const& variableFragment : edge.variableToWritingFragment) { + addToVariableWritingFragmentMap(globalVariableToWritingFragment, variableFragment.first, addMarkovianFlag ? flagBdd && variableFragment.second : variableFragment.second); } } + + // Add the Markovian edge (if any). + if (markovianEdge) { + flagBdd = addMarkovianFlag ? !this->variables.markovMarker : this->variables.manager->getBddOne(); + flag = flagBdd.template toAdd(); + EdgeDd const& edge = markovianEdge.get(); + + transitions += flag * edge.transitions; + for (auto const& assignment : edge.transientEdgeAssignments) { + addToTransientAssignmentMap(transientEdgeAssignments, assignment.first, addMarkovianFlag ? flag * assignment.second : assignment.second); + } + for (auto const& variableFragment : edge.variableToWritingFragment) { + addToVariableWritingFragmentMap(globalVariableToWritingFragment, variableFragment.first, addMarkovianFlag ? flagBdd && variableFragment.second : variableFragment.second); + } + } + return ActionDd(guard, transitions, transientEdgeAssignments, std::make_pair(0, 0), globalVariableToWritingFragment, this->variables.manager->getBddZero()); } - ActionDd combineEdgesToActionMdp(std::vector const& edges, uint64_t localNondeterminismVariableOffset) { + ActionDd combineEdgesToActionNondeterministic(std::vector const& nonMarkovianEdges, boost::optional const& markovianEdge, uint64_t localNondeterminismVariableOffset) { // Sum all guards, so we can read off the maximal number of nondeterministic choices in any given state. storm::dd::Bdd allGuards = this->variables.manager->getBddZero(); storm::dd::Add sumOfGuards = this->variables.manager->template getAddZero(); - for (auto const& edge : edges) { + for (auto const& edge : nonMarkovianEdges) { + STORM_LOG_ASSERT(!edge.isMarkovian, "Unexpected Markovian edge."); sumOfGuards += edge.guard; allGuards |= edge.guard.toBdd(); } uint_fast64_t maxChoices = static_cast(sumOfGuards.getMax()); - STORM_LOG_TRACE("Found " << maxChoices << " local choices."); + STORM_LOG_TRACE("Found " << maxChoices << " non-Markovian local choices."); // Depending on the maximal number of nondeterminstic choices, we need to use some variables to encode the nondeterminism. if (maxChoices <= 1) { - return combineEdgesBySummation(allGuards.template toAdd(), edges); + return combineEdgesBySummation(allGuards.template toAdd(), nonMarkovianEdges, markovianEdge); } else { // Calculate number of required variables to encode the nondeterminism. uint_fast64_t numberOfBinaryVariables = static_cast(std::ceil(storm::utility::math::log2(maxChoices))); @@ -1640,8 +1364,8 @@ namespace storm { remainingDds[j] = equalsNumberOfChoicesDd; } - for (std::size_t j = 0; j < edges.size(); ++j) { - EdgeDd const& currentEdge = edges[j]; + for (std::size_t j = 0; j < nonMarkovianEdges.size(); ++j) { + EdgeDd const& currentEdge = nonMarkovianEdges[j]; // Check if edge guard overlaps with equalsNumberOfChoicesDd. That is, there are states with exactly currentChoices // choices such that one outgoing choice is given by the j-th edge. @@ -1671,8 +1395,8 @@ namespace storm { } // Keep track of the written global variables of the fragment. - for (auto const& variable : currentEdge.writtenGlobalVariables) { - addToVariableWritingFragmentMap(globalVariableToWritingFragment, variable, remainingGuardChoicesIntersection && indicesEncodedWithLocalNondeterminismVariables[k].first); + for (auto const& variableFragment : currentEdge.variableToWritingFragment) { + addToVariableWritingFragmentMap(globalVariableToWritingFragment, variableFragment.first, remainingGuardChoicesIntersection && variableFragment.second && indicesEncodedWithLocalNondeterminismVariables[k].first); } } @@ -1695,11 +1419,41 @@ namespace storm { sumOfGuards = sumOfGuards * (!equalsNumberOfChoicesDd).template toAdd(); } + // Extend the transitions with the appropriate flag if needed. + bool addMarkovianFlag = this->model.getModelType() == storm::jani::ModelType::MA; + STORM_LOG_ASSERT(addMarkovianFlag || !markovianEdge, "Illegally adding Markovian edge without marker."); + if (addMarkovianFlag) { + storm::dd::Bdd flagBdd = !this->variables.markovMarker; + storm::dd::Add flag = flagBdd.template toAdd(); + allEdges *= flag; + for (auto& assignment : transientAssignments) { + assignment.second *= flag; + } + for (auto& writingFragment : globalVariableToWritingFragment) { + writingFragment.second &= flagBdd; + } + } + + // Add Markovian edge (if there is any). + if (markovianEdge) { + storm::dd::Bdd flagBdd = this->variables.markovMarker; + storm::dd::Add flag = flagBdd.template toAdd(); + EdgeDd const& edge = markovianEdge.get(); + + allEdges += flag * edge.transitions; + for (auto const& assignment : edge.transientEdgeAssignments) { + addToTransientAssignmentMap(transientAssignments, assignment.first, flag * assignment.second); + } + for (auto const& variableFragment : edge.variableToWritingFragment) { + addToVariableWritingFragmentMap(globalVariableToWritingFragment, variableFragment.first, flagBdd && variableFragment.second); + } + } + return ActionDd(allGuards.template toAdd(), allEdges, transientAssignments, std::make_pair(localNondeterminismVariableOffset, localNondeterminismVariableOffset + numberOfBinaryVariables), globalVariableToWritingFragment, this->variables.manager->getBddZero()); } } - AutomatonDd buildAutomatonDd(std::string const& automatonName, std::map const& actionIndexToLocalNondeterminismVariableOffset) { + AutomatonDd buildAutomatonDd(std::string const& automatonName, std::map const& actionIndexToLocalNondeterminismVariableOffset, std::set const& inputEnabledActionIndices) { AutomatonDd result(this->variables.automatonToIdentityMap.at(automatonName)); storm::jani::Automaton const& automaton = this->model.getAutomaton(automatonName); @@ -1709,6 +1463,10 @@ namespace storm { continue; } ActionDd actionDd = buildActionDdForActionIndex(automaton, actionIndex, actionIndexToLocalNondeterminismVariableOffset.at(actionIndex)); + if (inputEnabledActionIndices.find(actionIndex) != inputEnabledActionIndices.end()) { + actionDd.setIsInputEnabled(); + } + result.actionIndexToAction[actionIndex] = actionDd; result.setLowestLocalNondeterminismVariable(std::max(result.getLowestLocalNondeterminismVariable(), actionDd.getLowestLocalNondeterminismVariable())); result.setHighestLocalNondeterminismVariable(std::max(result.getHighestLocalNondeterminismVariable(), actionDd.getHighestLocalNondeterminismVariable())); @@ -1761,10 +1519,9 @@ namespace storm { for (auto& action : automaton.actionIndexToAction) { illegalFragment |= action.second.illegalFragment; addMissingGlobalVariableIdentities(action.second); - storm::dd::Add actionEncoding = encodeAction(action.first != this->model.getSilentActionIndex() ? boost::optional(action.first) : boost::none, this->variables); + storm::dd::Add actionEncoding = encodeAction(action.first != storm::jani::Model::SILENT_ACTION_INDEX ? boost::optional(action.first) : boost::none, this->variables); storm::dd::Add missingNondeterminismEncoding = encodeIndex(0, action.second.getHighestLocalNondeterminismVariable(), numberOfUsedNondeterminismVariables - action.second.getHighestLocalNondeterminismVariable(), this->variables); storm::dd::Add extendedTransitions = actionEncoding * missingNondeterminismEncoding * action.second.transitions; - for (auto const& transientAssignment : action.second.transientEdgeAssignments) { addToTransientAssignmentMap(transientEdgeAssignments, transientAssignment.first, actionEncoding * missingNondeterminismEncoding * transientAssignment.second); } @@ -1804,6 +1561,7 @@ namespace storm { template std::shared_ptr> createModel(storm::jani::ModelType const& modelType, CompositionVariables const& variables, ModelComponents const& modelComponents) { + if (modelType == storm::jani::ModelType::DTMC) { return std::shared_ptr>(new storm::models::symbolic::Dtmc(variables.manager, modelComponents.reachableStates, modelComponents.initialStates, modelComponents.deadlockStates, modelComponents.transitionMatrix, variables.rowMetaVariables, variables.rowExpressionAdapter, variables.columnMetaVariables, variables.columnExpressionAdapter, variables.rowColumnMetaVariablePairs, std::map(), modelComponents.rewardModels)); } else if (modelType == storm::jani::ModelType::CTMC) { @@ -2003,9 +1761,11 @@ namespace storm { STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Model still contains these undefined constants: " << boost::join(strings, ", ") << "."); } + STORM_LOG_THROW(!model.hasTransientEdgeDestinationAssignments(), storm::exceptions::WrongFormatException, "The symbolic JANI model builder currently does not support transient edge destination assignments."); + // Determine the actions that will appear in the parallel composition. - storm::jani::CompositionActionInformationVisitor actionInformationVisitor(model); - storm::jani::ActionInformation actionInformation = actionInformationVisitor.getActionInformation(); + storm::jani::CompositionInformationVisitor visitor(model, model.getSystemComposition()); + storm::jani::CompositionInformation actionInformation = visitor.getInformation(); // Create all necessary variables. CompositionVariableCreator variableCreator(model, actionInformation); diff --git a/src/builder/ExplicitModelBuilder.cpp b/src/builder/ExplicitModelBuilder.cpp index 8d2164f9f..42321169f 100644 --- a/src/builder/ExplicitModelBuilder.cpp +++ b/src/builder/ExplicitModelBuilder.cpp @@ -169,16 +169,16 @@ namespace storm { } template - void ExplicitModelBuilder::buildMatrices(storm::storage::SparseMatrixBuilder& transitionMatrixBuilder, std::vector>& rewardModelBuilders, boost::optional>>& choiceLabels , boost::optional& markovianChoices) { + void ExplicitModelBuilder::buildMatrices(storm::storage::SparseMatrixBuilder& transitionMatrixBuilder, std::vector>& rewardModelBuilders, boost::optional>>& choiceLabels, boost::optional& markovianStates) { // Create choice labels, if requested, if (generator->getOptions().isBuildChoiceLabelsSet()) { choiceLabels = std::vector>(); } - // Create markovian states bit vector, if required + // Create markovian states bit vector, if required. if (generator->getModelType() == storm::generator::ModelType::MA) { - // The BitVector will be resized when the correct size is known - markovianChoices = storm::storage::BitVector(); + // The bit vector will be resized when the correct size is known. + markovianStates = storm::storage::BitVector(1000); } // Create a callback for the next-state generator to enable it to request the index of states. @@ -229,9 +229,9 @@ namespace storm { choiceLabels.get().push_back(boost::container::flat_set()); } - if (generator->getModelType() == storm::generator::ModelType::MA) { - markovianChoices->enlargeLiberally(currentRow+1, false); - markovianChoices->set(currentRow); + if (markovianStates) { + markovianStates.get().grow(currentRowGroup + 1, false); + markovianStates.get().set(currentRowGroup); } if (!generator->isDeterministicModel()) { @@ -278,9 +278,9 @@ namespace storm { } // If we keep track of the Markovian choices, store whether the current one is Markovian. - if( markovianChoices && choice.isMarkovian() ) { - markovianChoices->enlargeLiberally(currentRow+1, false); - markovianChoices->set(currentRow); + if (markovianStates && choice.isMarkovian()) { + markovianStates.get().grow(currentRowGroup + 1, false); + markovianStates.get().set(currentRowGroup); } // Add the probabilistic behavior to the matrix. @@ -302,9 +302,9 @@ namespace storm { } } - if (markovianChoices) { - // We now know the correct size - markovianChoices->resize(currentRow, false); + if (markovianStates) { + // Since we now know the correct size, cut the bit vector to the correct length. + markovianStates->resize(currentRowGroup, false); } // If the exploration order was not breadth-first, we need to fix the entries in the matrix according to @@ -348,9 +348,9 @@ namespace storm { } boost::optional markovianChoices; - buildMatrices(transitionMatrixBuilder, rewardModelBuilders, modelComponents.choiceLabeling, markovianChoices); + buildMatrices(transitionMatrixBuilder, rewardModelBuilders, modelComponents.choiceLabeling, modelComponents.markovianStates); modelComponents.transitionMatrix = transitionMatrixBuilder.build(); - + // Now finalize all reward models. for (auto& rewardModelBuilder : rewardModelBuilders) { modelComponents.rewardModels.emplace(rewardModelBuilder.getName(), rewardModelBuilder.build(modelComponents.transitionMatrix.getRowCount(), modelComponents.transitionMatrix.getColumnCount(), modelComponents.transitionMatrix.getRowGroupCount())); @@ -367,44 +367,9 @@ namespace storm { } } - if (generator->getModelType() == storm::generator::ModelType::MA) { - STORM_LOG_ASSERT(markovianChoices, "No information regarding markovian choices available."); - buildMarkovianStates(modelComponents, *markovianChoices); - } - return modelComponents; } - template - void ExplicitModelBuilder::buildMarkovianStates(ModelComponents& modelComponents, storm::storage::BitVector const& markovianChoices) const { - modelComponents.markovianStates = storm::storage::BitVector(modelComponents.transitionMatrix.getRowGroupCount(), false); - // Check for each state whether it contains a markovian choice. - for (uint_fast64_t state = 0; state < modelComponents.transitionMatrix.getRowGroupCount(); ++state ) { - uint_fast64_t firstChoice = modelComponents.transitionMatrix.getRowGroupIndices()[state]; - uint_fast64_t markovianChoice = markovianChoices.getNextSetIndex(firstChoice); - if (markovianChoice < modelComponents.transitionMatrix.getRowGroupIndices()[state+1]) { - // Found a markovian choice. Assert that there is not a second one. - STORM_LOG_THROW(markovianChoices.getNextSetIndex(markovianChoice+1) >= modelComponents.transitionMatrix.getRowGroupIndices()[state+1], storm::exceptions::WrongFormatException, "Multiple Markovian choices defined for some state"); - modelComponents.markovianStates->set(state); - // Swap the first choice and the found markovian choice (if they are not equal) - if (firstChoice != markovianChoice) { - modelComponents.transitionMatrix.swapRows(firstChoice, markovianChoice); - for (auto& rewardModel : modelComponents.rewardModels) { - if (rewardModel.second.hasStateActionRewards()) { - std::swap(rewardModel.second.getStateActionRewardVector()[firstChoice], rewardModel.second.getStateActionRewardVector()[markovianChoice]); - } - if (rewardModel.second.hasTransitionRewards()) { - rewardModel.second.getTransitionRewardMatrix().swapRows(firstChoice, markovianChoice); - } - } - if (modelComponents.choiceLabeling) { - std::swap(modelComponents.choiceLabeling.get()[firstChoice], modelComponents.choiceLabeling.get()[markovianChoice]); - } - } - } - } - } - template storm::models::sparse::StateLabeling ExplicitModelBuilder::buildStateLabeling() { return generator->label(stateStorage.stateToId, stateStorage.initialStateIndices, stateStorage.deadlockStateIndices); diff --git a/src/builder/ExplicitModelBuilder.h b/src/builder/ExplicitModelBuilder.h index bb404f088..83ca54f6c 100644 --- a/src/builder/ExplicitModelBuilder.h +++ b/src/builder/ExplicitModelBuilder.h @@ -1,5 +1,5 @@ -#ifndef STORM_BUILDER_ExplicitModelBuilder_H -#define STORM_BUILDER_ExplicitModelBuilder_H +#ifndef STORM_BUILDER_EXPLICITMODELBUILDER_H +#define STORM_BUILDER_EXPLICITMODELBUILDER_H #include #include @@ -195,4 +195,4 @@ namespace storm { } // namespace adapters } // namespace storm -#endif /* STORM_BUILDER_ExplicitModelBuilder_H */ +#endif /* STORM_BUILDER_EXPLICITMODELBUILDER_H */ diff --git a/src/builder/JaniProgramGraphBuilder.cpp b/src/builder/JaniProgramGraphBuilder.cpp index 1549b4988..d6ecb3c23 100644 --- a/src/builder/JaniProgramGraphBuilder.cpp +++ b/src/builder/JaniProgramGraphBuilder.cpp @@ -5,12 +5,12 @@ namespace storm { namespace builder { unsigned JaniProgramGraphBuilder::janiVersion = 1; - storm::jani::OrderedAssignments buildOrderedAssignments(storm::jani::Automaton& automaton, storm::ppg::DeterministicProgramAction const& act) { + storm::jani::OrderedAssignments JaniProgramGraphBuilder::buildOrderedAssignments(storm::jani::Automaton& automaton, storm::ppg::DeterministicProgramAction const& act) { std::vector vec; uint64_t level = 0; for(auto const& group : act) { for(auto const& assignment : group) { - vec.emplace_back(automaton.getVariables().getVariable(act.getProgramGraph().getVariableName(assignment.first)) , assignment.second, level); + vec.emplace_back(*(variables.at(assignment.first)), assignment.second, level); } ++level; } @@ -47,25 +47,31 @@ namespace storm { storm::expressions::Expression newGuard; newGuard = expManager->boolean(true); if (edge.getAction().isProbabilistic()) { - + // No check necessary currently, but at least we should statically check that the bounds are okay. + storm::ppg::ProbabilisticProgramAction const& act = static_cast(edge.getAction()); + if (isUserRestrictedVariable(act.getVariableIdentifier())) { + storm::storage::IntegerInterval const& bound = userVariableRestrictions.at(act.getVariableIdentifier()); + storm::storage::IntegerInterval supportInterval = act.getSupportInterval(); + STORM_LOG_THROW(bound.contains(supportInterval), storm::exceptions::NotSupportedException, "User provided bounds must contain all constant expressions"); + } } else { storm::ppg::DeterministicProgramAction const& act = static_cast(edge.getAction()); STORM_LOG_THROW(act.nrLevels() <= 1, storm::exceptions::NotSupportedException, "Multi-level assignments with user variable bounds not supported"); for(auto const& group : act) { for(auto const& assignment : group) { - if (isUserRestricted(assignment.first)) { - assert(variableRestrictions.count(assignment.first) == 1); - storm::storage::IntegerInterval const& bound = variableRestrictions.at(assignment.first); + if (isUserRestrictedVariable(assignment.first)) { + assert(userVariableRestrictions.count(assignment.first) == 1); + storm::storage::IntegerInterval const& bound = userVariableRestrictions.at(assignment.first); if (!assignment.second.containsVariables()) { // Constant assignments can be checked statically. // TODO we might still want to allow assignments which go out of bounds. STORM_LOG_THROW(bound.contains(assignment.second.evaluateAsInt()), storm::exceptions::NotSupportedException, "User provided bounds must contain all constant expressions"); } else { // TODO currently only fully bounded restrictions are supported; - assert(variableRestrictions.at(assignment.first).hasLeftBound() && variableRestrictions.at(assignment.first).hasRightBound()); + assert(userVariableRestrictions.at(assignment.first).hasLeftBound() && userVariableRestrictions.at(assignment.first).hasRightBound()); storm::expressions::Expression newCondition = simplifyExpression(edge.getCondition() && (assignment.second > bound.getRightBound().get() || assignment.second < bound.getLeftBound().get())); storm::jani::EdgeDestination dest(varOutOfBoundsLocations.at(assignment.first), expManager->rational(1.0), storm::jani::OrderedAssignments()); - storm::jani::Edge e(janiLocId.at(edge.getSourceId()), storm::jani::Model::silentActionIndex, boost::none, newCondition, {dest}); + storm::jani::Edge e(janiLocId.at(edge.getSourceId()), storm::jani::Model::SILENT_ACTION_INDEX, boost::none, newCondition, {dest}); edges.push_back(e); newGuard = newGuard && assignment.second <= bound.getRightBound().get() && assignment.second >= bound.getLeftBound().get(); } @@ -81,14 +87,17 @@ namespace storm { for(auto it = programGraph.locationBegin(); it != programGraph.locationEnd(); ++it) { ppg::ProgramLocation const& loc = it->second; if (loc.nrOutgoingEdgeGroups() == 0) { - // TODO deadlock! + storm::jani::OrderedAssignments oa; + storm::jani::EdgeDestination dest(janiLocId.at(loc.id()), expManager->integer(1), oa); + storm::jani::Edge e(janiLocId.at(loc.id()), storm::jani::Model::SILENT_ACTION_INDEX, boost::none, expManager->boolean(true), {dest}); + automaton.addEdge(e); } else if (loc.nrOutgoingEdgeGroups() == 1) { for(auto const& edge : **(loc.begin())) { std::pair, storm::expressions::Expression> checks = addVariableChecks(*edge); for(auto const& check : checks.first) { automaton.addEdge(check); } - storm::jani::Edge e(janiLocId.at(loc.id()), storm::jani::Model::silentActionIndex, boost::none, simplifyExpression(edge->getCondition() && checks.second), buildDestinations(automaton, *edge)); + storm::jani::Edge e(janiLocId.at(loc.id()), storm::jani::Model::SILENT_ACTION_INDEX, boost::none, simplifyExpression(edge->getCondition() && checks.second), buildDestinations(automaton, *edge)); automaton.addEdge(e); } } else { @@ -105,7 +114,7 @@ namespace storm { uint64_t target = janiLocId.at((*eg->begin())->getTargetId()); destinations.emplace_back(target, eg->getProbability()); } - storm::jani::Edge e(janiLocId.at(it->second.id()), storm::jani::Model::silentActionIndex, boost::none, expManager->boolean(true), destinations); + storm::jani::Edge e(janiLocId.at(it->second.id()), storm::jani::Model::SILENT_ACTION_INDEX, boost::none, expManager->boolean(true), destinations); automaton.addEdge(e); } } @@ -113,4 +122,4 @@ namespace storm { } } -} \ No newline at end of file +} diff --git a/src/builder/JaniProgramGraphBuilder.h b/src/builder/JaniProgramGraphBuilder.h index 5bbce1d15..4f6c5fc9f 100644 --- a/src/builder/JaniProgramGraphBuilder.h +++ b/src/builder/JaniProgramGraphBuilder.h @@ -25,7 +25,18 @@ namespace storm { static unsigned janiVersion; JaniProgramGraphBuilder(storm::ppg::ProgramGraph const& pg) : programGraph(pg) { - + rewards = programGraph.rewardVariables(); + constants = programGraph.constants(); + auto boundedVars = programGraph.constantAssigned(); + for(auto const& v : boundedVars) { + variableRestrictions.emplace(v, programGraph.supportForConstAssignedVariable(v)); + } + } + + virtual ~JaniProgramGraphBuilder() { + for (auto& var : variables ) { + delete var.second; + } } //void addVariableRestriction(storm::expressions::Variable const& var, storm::IntegerInterval const& interval ) { @@ -35,7 +46,15 @@ namespace storm { void restrictAllVariables(int64_t from, int64_t to) { for (auto const& v : programGraph.getVariables()) { - variableRestrictions.emplace(v.first, storm::storage::IntegerInterval(from, to)); + if(isConstant(v.first)) { + continue; + } + if(variableRestrictions.count(v.first) > 0) { + continue; // Currently we ignore user bounds if we have bounded integers; + } + if(v.second.hasIntegerType() ) { + userVariableRestrictions.emplace(v.first, storm::storage::IntegerInterval(from, to)); + } } } @@ -43,7 +62,7 @@ namespace storm { expManager = programGraph.getExpressionManager(); storm::jani::Model* model = new storm::jani::Model(name, storm::jani::ModelType::MDP, janiVersion, expManager); storm::jani::Automaton mainAutomaton("main"); - addProcedureVariables(mainAutomaton); + addProcedureVariables(*model, mainAutomaton); janiLocId = addProcedureLocations(mainAutomaton); addVariableOoBLocations(mainAutomaton); addEdges(mainAutomaton); @@ -61,7 +80,7 @@ namespace storm { return "oob-" + programGraph.getVariableName(i); } - + storm::jani::OrderedAssignments buildOrderedAssignments(storm::jani::Automaton& automaton, storm::ppg::DeterministicProgramAction const& act) ; void addEdges(storm::jani::Automaton& automaton); std::vector buildDestinations(storm::jani::Automaton& automaton, storm::ppg::ProgramEdge const& edge ); /** @@ -71,18 +90,49 @@ namespace storm { std::pair, storm::expressions::Expression> addVariableChecks(storm::ppg::ProgramEdge const& edge); - bool isUserRestricted(storm::ppg::ProgramVariableIdentifier i) { - return variableRestrictions.count(i) == 1; + bool isUserRestrictedVariable(storm::ppg::ProgramVariableIdentifier i) const { + return userVariableRestrictions.count(i) == 1 && !isRewardVariable(i); + } + + bool isRestrictedVariable(storm::ppg::ProgramVariableIdentifier i) const { + // Might be different from user restricted in near future. + return (variableRestrictions.count(i) == 1 && !isRewardVariable(i)) || isUserRestrictedVariable(i); } - void addProcedureVariables(storm::jani::Automaton& automaton) { + storm::storage::IntegerInterval const& variableBounds(storm::ppg::ProgramVariableIdentifier i) const { + assert(isRestrictedVariable(i)); + if (userVariableRestrictions.count(i) == 1) { + return userVariableRestrictions.at(i); + } else { + return variableRestrictions.at(i); + } + + } + + bool isRewardVariable(storm::ppg::ProgramVariableIdentifier i) const { + return std::find(rewards.begin(), rewards.end(), i) != rewards.end(); + } + + bool isConstant(storm::ppg::ProgramVariableIdentifier i) const { + return std::find(constants.begin(), constants.end(), i) != constants.end(); + } + + void addProcedureVariables(storm::jani::Model& model, storm::jani::Automaton& automaton) { for (auto const& v : programGraph.getVariables()) { - if(variableRestrictions.count(v.first) == 1) { - storm::storage::IntegerInterval const& bounds = variableRestrictions.at(v.first); + if (isConstant(v.first)) { + storm::jani::Constant constant(v.second.getName(), v.second, programGraph.getInitialValue(v.first)); + model.addConstant(constant); + } else if (v.second.hasBooleanType()) { + storm::jani::BooleanVariable* janiVar = new storm::jani::BooleanVariable(v.second.getName(), v.second, programGraph.getInitialValue(v.first), false); + automaton.addVariable(*janiVar); + variables.emplace(v.first, janiVar); + } else if (isRestrictedVariable(v.first) && !isRewardVariable(v.first)) { + storm::storage::IntegerInterval const& bounds = variableBounds(v.first); if (bounds.hasLeftBound()) { if (bounds.hasRightBound()) { - storm::jani::BoundedIntegerVariable janiVar(v.second.getName(), v.second, expManager->integer(0), false, expManager->integer(bounds.getLeftBound().get()), expManager->integer(bounds.getRightBound().get())); - automaton.addVariable(janiVar); + storm::jani::BoundedIntegerVariable* janiVar = new storm::jani::BoundedIntegerVariable (v.second.getName(), v.second, programGraph.getInitialValue(v.first), false, expManager->integer(bounds.getLeftBound().get()), expManager->integer(bounds.getRightBound().get())); + variables.emplace(v.first, janiVar); + automaton.addVariable(*janiVar); } else { // Not yet supported. assert(false); @@ -92,8 +142,14 @@ namespace storm { assert(false); } } else { - storm::jani::UnboundedIntegerVariable janiVar(v.second.getName(), v.second, expManager->integer(0), false); - automaton.addVariable(janiVar); + storm::jani::UnboundedIntegerVariable* janiVar = new storm::jani::UnboundedIntegerVariable(v.second.getName(), v.second, programGraph.getInitialValue(v.first), isRewardVariable(v.first)); + if(isRewardVariable(v.first)) { + model.addVariable(*janiVar); + } else { + automaton.addVariable(*janiVar); + } + variables.emplace(v.first, janiVar); + } } } @@ -111,19 +167,29 @@ namespace storm { } void addVariableOoBLocations(storm::jani::Automaton& automaton) { - for(auto const& restr : variableRestrictions) { - storm::jani::Location janiLoc(janiVariableOutOfBoundsLocationName(restr.first)); - uint64_t locId = automaton.addLocation(janiLoc); - varOutOfBoundsLocations[restr.first] = locId; + for(auto const& restr : userVariableRestrictions) { + if(!isRewardVariable(restr.first)) { + storm::jani::Location janiLoc(janiVariableOutOfBoundsLocationName(restr.first)); + uint64_t locId = automaton.addLocation(janiLoc); + varOutOfBoundsLocations[restr.first] = locId; + } } } - - /// Restrictions on variables + /// Transient variables + std::vector rewards; + /// Variables that are constants + std::vector constants; + /// Restrictions on variables (automatic) std::map variableRestrictions; + /// Restrictions on variables (provided by users) + std::map userVariableRestrictions; + /// Locations for variables that would have gone ot o std::map varOutOfBoundsLocations; std::map janiLocId; + std::map variables; + /// The expression manager std::shared_ptr expManager; /// The program graph to be translated diff --git a/src/builder/ProgramGraphBuilder.h b/src/builder/ProgramGraphBuilder.h index 9c856704b..90f78f112 100644 --- a/src/builder/ProgramGraphBuilder.h +++ b/src/builder/ProgramGraphBuilder.h @@ -108,7 +108,7 @@ namespace storm { ProgramGraphBuilder(storm::pgcl::PgclProgram const& program) : program(program) { - graph = new storm::ppg::ProgramGraph(program.getExpressionManager(), program.getVariables()); + graph = new storm::ppg::ProgramGraph(program.getExpressionManager(), program.getVariableDeclarations()); noActionId = graph->getNoActionId(); } @@ -116,10 +116,10 @@ namespace storm { void run() { currentStack.push_back(graph->addLocation(true)); // Terminal state. - nextStack.push_back(graph->addLocation(false)); + nextStack.push_back(graph->addLocation(false, true)); // Observe Violated State. if (program.hasObserve()) { - observeFailedState = graph->addLocation(); + observeFailedState = graph->addLocation(false, false, true); } buildBlock(program); } diff --git a/src/cli/cli.cpp b/src/cli/cli.cpp index 6b4c93fdf..2c5104123 100644 --- a/src/cli/cli.cpp +++ b/src/cli/cli.cpp @@ -223,7 +223,13 @@ namespace storm { } if(model.isJaniModel() && storm::settings::getModule().isJaniFileSet()) { - storm::jani::JsonExporter::toFile(model.asJaniModel(), storm::settings::getModule().getJaniFilename()); + if (storm::settings::getModule().isExportAsStandardJaniSet()) { + storm::jani::Model normalisedModel = storm::jani::Model(model.asJaniModel()); + normalisedModel.makeStandardJaniCompliant(); + storm::jani::JsonExporter::toFile(normalisedModel, storm::settings::getModule().getJaniFilename()); + } else { + storm::jani::JsonExporter::toFile(model.asJaniModel(), storm::settings::getModule().getJaniFilename()); + } } // Get the string that assigns values to the unknown currently undefined constants in the model. diff --git a/src/generator/Choice.cpp b/src/generator/Choice.cpp index 4337fffd4..151716340 100644 --- a/src/generator/Choice.cpp +++ b/src/generator/Choice.cpp @@ -4,6 +4,9 @@ #include "src/utility/constants.h" +#include "src/utility/macros.h" +#include "src/exceptions/InvalidOperationException.h" + namespace storm { namespace generator { @@ -12,6 +15,38 @@ namespace storm { // Intentionally left empty. } + template + void Choice::add(Choice const& other) { + STORM_LOG_THROW(this->markovian == other.markovian, storm::exceptions::InvalidOperationException, "Type of choices do not match."); + STORM_LOG_THROW(this->actionIndex == other.actionIndex, storm::exceptions::InvalidOperationException, "Action index of choices do not match."); + STORM_LOG_THROW(this->rewards.size() == other.rewards.size(), storm::exceptions::InvalidOperationException, "Reward value sizes of choices do not match."); + + // Add the elements to the distribution. + this->distribution.add(other.distribution); + + // Update the total mass of the choice. + this->totalMass += other.totalMass; + + // Add all reward values. + auto otherRewIt = other.rewards.begin(); + for (auto& rewardValue : this->rewards) { + rewardValue += *otherRewIt; + } + + // Join label sets. + if (this->labels) { + if (other.labels) { + LabelSet newLabelSet; + std::set_union(this->labels.get().begin(), this->labels.get().end(), other.labels.get().begin(), other.labels.get().end(), std::inserter(newLabelSet, newLabelSet.begin())); + this->labels = std::move(newLabelSet); + } + } else { + if (other.labels) { + this->labels = std::move(other.labels); + } + } + } + template typename storm::storage::Distribution::iterator Choice::begin() { return distribution.begin(); diff --git a/src/generator/Choice.h b/src/generator/Choice.h index bd20af0f0..ca4e9e748 100644 --- a/src/generator/Choice.h +++ b/src/generator/Choice.h @@ -25,6 +25,11 @@ namespace storm { Choice(Choice&& other) = default; Choice& operator=(Choice&& other) = default; + /*! + * Adds the given choice to the current one. + */ + void add(Choice const& other); + /*! * Returns an iterator to the distribution associated with this choice. * @@ -152,4 +157,4 @@ namespace storm { } } -#endif /* STORM_GENERATOR_CHOICE_H_ */ \ No newline at end of file +#endif /* STORM_GENERATOR_CHOICE_H_ */ diff --git a/src/generator/JaniNextStateGenerator.cpp b/src/generator/JaniNextStateGenerator.cpp index c0aae624a..b84ffca3c 100644 --- a/src/generator/JaniNextStateGenerator.cpp +++ b/src/generator/JaniNextStateGenerator.cpp @@ -22,11 +22,16 @@ namespace storm { } template - JaniNextStateGenerator::JaniNextStateGenerator(storm::jani::Model const& model, NextStateGeneratorOptions const& options, bool flag) : NextStateGenerator(model.getExpressionManager(), VariableInformation(model), options), model(model), rewardVariables(), hasStateActionRewards(false) { - STORM_LOG_THROW(model.hasDefaultComposition(), storm::exceptions::WrongFormatException, "The explicit next-state generator currently does not support custom system compositions."); + JaniNextStateGenerator::JaniNextStateGenerator(storm::jani::Model const& model, NextStateGeneratorOptions const& options, bool flag) : NextStateGenerator(model.getExpressionManager(), options), model(model), rewardVariables(), hasStateActionRewards(false) { + STORM_LOG_THROW(model.hasStandardComposition(), storm::exceptions::WrongFormatException, "The explicit next-state generator currently does not support custom system compositions."); STORM_LOG_THROW(!model.hasNonGlobalTransientVariable(), storm::exceptions::InvalidSettingsException, "The explicit next-state generator currently does not support automata-local transient variables."); + STORM_LOG_THROW(!model.hasTransientEdgeDestinationAssignments(), storm::exceptions::InvalidSettingsException, "The explicit next-state generator currently does not support transient edge destination assignments."); STORM_LOG_THROW(!this->options.isBuildChoiceLabelsSet(), storm::exceptions::InvalidSettingsException, "JANI next-state generator cannot generate choice labels."); + // Only after checking validity of the program, we initialize the variable information. + this->checkValid(); + this->variableInformation = VariableInformation(model); + if (this->options.isBuildAllRewardModelsSet()) { for (auto const& variable : model.getGlobalVariables()) { if (variable.isTransient()) { @@ -200,9 +205,13 @@ namespace storm { } template - CompressedState JaniNextStateGenerator::applyUpdate(CompressedState const& state, storm::jani::EdgeDestination const& destination) { + CompressedState JaniNextStateGenerator::applyUpdate(CompressedState const& state, storm::jani::EdgeDestination const& destination, storm::generator::LocationVariableInformation const& locationVariable) { CompressedState newState(state); + // Update the location of the state. + setLocation(newState, locationVariable, destination.getLocationIndex()); + + // Then perform the assignments. auto assignmentIt = destination.getOrderedAssignments().getNonTransientAssignments().begin(); auto assignmentIte = destination.getOrderedAssignments().getNonTransientAssignments().end(); @@ -229,7 +238,7 @@ namespace storm { // Check that we processed all assignments. STORM_LOG_ASSERT(assignmentIt == assignmentIte, "Not all assignments were consumed."); - + return newState; } @@ -264,6 +273,7 @@ namespace storm { } // Get all choices for the state. + result.setExpanded(); std::vector> allChoices = getSilentActionChoices(locations, *this->state, stateToIdCallback); std::vector> allLabeledChoices = getNonsilentActionChoices(locations, *this->state, stateToIdCallback); for (auto& choice : allLabeledChoices) { @@ -323,7 +333,8 @@ namespace storm { result.addChoice(std::move(choice)); } - result.setExpanded(); + this->postprocess(result); + return result; } @@ -333,13 +344,14 @@ namespace storm { // Iterate over all automata. uint64_t automatonIndex = 0; + for (auto const& automaton : model.getAutomata()) { uint64_t location = locations[automatonIndex]; // Iterate over all edges from the source location. for (auto const& edge : automaton.getEdgesFromLocation(location)) { // Skip the edge if it is labeled with a non-silent action. - if (edge.getActionIndex() != model.getSilentActionIndex()) { + if (edge.getActionIndex() != storm::jani::Model::SILENT_ACTION_INDEX) { continue; } @@ -348,7 +360,13 @@ namespace storm { continue; } - result.push_back(Choice(edge.getActionIndex())); + // Determine the exit rate if it's a Markovian edge. + boost::optional exitRate = boost::none; + if (edge.hasRate()) { + exitRate = this->evaluator.asRational(edge.getRate()); + } + + result.push_back(Choice(edge.getActionIndex(), static_cast(exitRate))); Choice& choice = result.back(); // Iterate over all updates of the current command. @@ -356,10 +374,11 @@ namespace storm { for (auto const& destination : edge.getDestinations()) { // Obtain target state index and add it to the list of known states. If it has not yet been // seen, we also add it to the set of states that have yet to be explored. - StateType stateIndex = stateToIdCallback(applyUpdate(state, destination)); + StateType stateIndex = stateToIdCallback(applyUpdate(state, destination, this->variableInformation.locationVariables[automatonIndex])); // Update the choice by adding the probability/target state to it. ValueType probability = this->evaluator.asRational(destination.getProbability()); + probability = exitRate ? exitRate.get() * probability : probability; choice.addProbability(stateIndex, probability); probabilitySum += probability; } @@ -405,13 +424,14 @@ namespace storm { currentTargetStates->emplace(state, storm::utility::one()); + auto locationVariableIt = this->variableInformation.locationVariables.cbegin(); for (uint_fast64_t i = 0; i < iteratorList.size(); ++i) { storm::jani::Edge const& edge = **iteratorList[i]; for (auto const& destination : edge.getDestinations()) { for (auto const& stateProbabilityPair : *currentTargetStates) { // Compute the new state under the current update and add it to the set of new target states. - CompressedState newTargetState = applyUpdate(stateProbabilityPair.first, destination); + CompressedState newTargetState = applyUpdate(stateProbabilityPair.first, destination, *locationVariableIt); // If the new state was already found as a successor state, update the probability // and otherwise insert it. @@ -633,6 +653,36 @@ namespace storm { } } + template + void JaniNextStateGenerator::checkValid() const { + // If the program still contains undefined constants and we are not in a parametric setting, assemble an appropriate error message. +#ifdef STORM_HAVE_CARL + if (!std::is_same::value && model.hasUndefinedConstants()) { +#else + if (model.hasUndefinedConstants()) { +#endif + std::vector> undefinedConstants = model.getUndefinedConstants(); + std::stringstream stream; + bool printComma = false; + for (auto const& constant : undefinedConstants) { + if (printComma) { + stream << ", "; + } else { + printComma = true; + } + stream << constant.get().getName() << " (" << constant.get().getType() << ")"; + } + stream << "."; + STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Program still contains these undefined constants: " + stream.str()); + } + +#ifdef STORM_HAVE_CARL + else if (std::is_same::value && !model.undefinedConstantsAreGraphPreserving()) { + STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "The input model contains undefined constants that influence the graph structure of the underlying model, which is not allowed."); + } +#endif + } + template class JaniNextStateGenerator; #ifdef STORM_HAVE_CARL diff --git a/src/generator/JaniNextStateGenerator.h b/src/generator/JaniNextStateGenerator.h index d0b5707a6..7855bc5cf 100644 --- a/src/generator/JaniNextStateGenerator.h +++ b/src/generator/JaniNextStateGenerator.h @@ -54,9 +54,10 @@ namespace storm { * the given compressed state. * @params state The state to which to apply the new values. * @params update The update to apply. + * @params locationVariable The location variable that is being updated. * @return The resulting state. */ - CompressedState applyUpdate(CompressedState const& state, storm::jani::EdgeDestination const& update); + CompressedState applyUpdate(CompressedState const& state, storm::jani::EdgeDestination const& update, storm::generator::LocationVariableInformation const& locationVariable); /*! * Retrieves all choices labeled with the silent action possible from the given state. @@ -100,6 +101,11 @@ namespace storm { */ void buildRewardModelInformation(); + /*! + * Checks the underlying model for validity for this next-state generator. + */ + void checkValid() const; + /// The model used for the generation of next states. storm::jani::Model model; @@ -114,4 +120,4 @@ namespace storm { }; } -} \ No newline at end of file +} diff --git a/src/generator/NextStateGenerator.cpp b/src/generator/NextStateGenerator.cpp index fccf7b783..08fe61ba1 100644 --- a/src/generator/NextStateGenerator.cpp +++ b/src/generator/NextStateGenerator.cpp @@ -309,6 +309,48 @@ namespace storm { return result; } + template + void NextStateGenerator::postprocess(StateBehavior& result) { + // If the model we build is a Markov Automaton, we postprocess the choices to sum all Markovian choices + // and make the Markovian choice the very first one (if there is any). + bool foundPreviousMarkovianChoice = false; + if (this->getModelType() == ModelType::MA) { + uint64_t numberOfChoicesToDelete = 0; + + for (uint_fast64_t index = 0; index + numberOfChoicesToDelete < result.getNumberOfChoices();) { + Choice& choice = result.getChoices()[index]; + + if (choice.isMarkovian()) { + if (foundPreviousMarkovianChoice) { + // If there was a previous Markovian choice, we need to sum them. Note that we can assume + // that the previous Markovian choice is the very first one in the choices vector. + result.getChoices().front().add(choice); + + // Swap the choice to the end to indicate it can be removed (if it's not already there). + if (index != result.getNumberOfChoices() - 1) { + std::swap(choice, result.getChoices().back()); + } + ++numberOfChoicesToDelete; + } else { + // If there is no previous Markovian choice, just move the Markovian choice to the front. + if (index != 0) { + std::swap(result.getChoices().front(), choice); + foundPreviousMarkovianChoice = true; + } + ++index; + } + } else { + ++index; + } + } + + // Finally remove the choices that were added to other Markovian choices. + if (numberOfChoicesToDelete > 0) { + result.getChoices().resize(result.getChoices().size() - numberOfChoicesToDelete); + } + } + } + template storm::expressions::SimpleValuation NextStateGenerator::toValuation(CompressedState const& state) const { return unpackStateIntoValuation(state, variableInformation, *expressionManager); diff --git a/src/generator/NextStateGenerator.h b/src/generator/NextStateGenerator.h index 553e7871d..b2989b256 100644 --- a/src/generator/NextStateGenerator.h +++ b/src/generator/NextStateGenerator.h @@ -196,6 +196,8 @@ namespace storm { */ storm::models::sparse::StateLabeling label(storm::storage::BitVectorHashMap const& states, std::vector const& initialStateIndices, std::vector const& deadlockStateIndices, std::vector> labelsAndExpressions); + void postprocess(StateBehavior& result); + /// The options to be used for next-state generation. NextStateGeneratorOptions options; @@ -220,4 +222,4 @@ namespace storm { } } -#endif /* STORM_GENERATOR_NEXTSTATEGENERATOR_H_ */ \ No newline at end of file +#endif /* STORM_GENERATOR_NEXTSTATEGENERATOR_H_ */ diff --git a/src/generator/PrismNextStateGenerator.cpp b/src/generator/PrismNextStateGenerator.cpp index 6c24cd00b..6eceb0c26 100644 --- a/src/generator/PrismNextStateGenerator.cpp +++ b/src/generator/PrismNextStateGenerator.cpp @@ -27,7 +27,7 @@ namespace storm { STORM_LOG_THROW(!this->program.specifiesSystemComposition(), storm::exceptions::WrongFormatException, "The explicit next-state generator currently does not support custom system compositions."); // Only after checking validity of the program, we initialize the variable information. - this->checkValid(program); + this->checkValid(); this->variableInformation = VariableInformation(program); if (this->options.isBuildAllRewardModelsSet()) { @@ -75,7 +75,7 @@ namespace storm { } template - void PrismNextStateGenerator::checkValid(storm::prism::Program const& program) { + void PrismNextStateGenerator::checkValid() const { // If the program still contains undefined constants and we are not in a parametric setting, assemble an appropriate error message. #ifdef STORM_HAVE_CARL if (!std::is_same::value && program.hasUndefinedConstants()) { @@ -98,7 +98,7 @@ namespace storm { } #ifdef STORM_HAVE_CARL - else if (std::is_same::value && !program.hasUndefinedConstantsOnlyInUpdateProbabilitiesAndRewards()) { + else if (std::is_same::value && !program.undefinedConstantsAreGraphPreserving()) { STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "The program contains undefined constants that appear in some places other than update probabilities and reward value expressions, which is not admitted."); } #endif @@ -272,6 +272,8 @@ namespace storm { result.addChoice(std::move(choice)); } + this->postprocess(result); + return result; } @@ -304,6 +306,7 @@ namespace storm { } int_fast64_t assignedValue = this->evaluator.asInt(assignmentIt->getExpression()); STORM_LOG_THROW(assignedValue <= integerIt->upperBound, storm::exceptions::WrongFormatException, "The update " << update << " leads to an out-of-bounds value (" << assignedValue << ") for the variable '" << assignmentIt->getVariableName() << "'."); + STORM_LOG_THROW(assignedValue >= integerIt->lowerBound, storm::exceptions::WrongFormatException, "The update " << update << " leads to an out-of-bounds value (" << assignedValue << ") for the variable '" << assignmentIt->getVariableName() << "'."); newState.setFromInt(integerIt->bitOffset, integerIt->bitWidth, assignedValue - integerIt->lowerBound); STORM_LOG_ASSERT(static_cast(newState.getAsInt(integerIt->bitOffset, integerIt->bitWidth)) + integerIt->lowerBound == assignedValue, "Writing to the bit vector bucket failed (read " << newState.getAsInt(integerIt->bitOffset, integerIt->bitWidth) << " but wrote " << assignedValue << ")."); } diff --git a/src/generator/PrismNextStateGenerator.h b/src/generator/PrismNextStateGenerator.h index d2004b9d3..dcf2e3f73 100644 --- a/src/generator/PrismNextStateGenerator.h +++ b/src/generator/PrismNextStateGenerator.h @@ -27,9 +27,9 @@ namespace storm { virtual storm::models::sparse::StateLabeling label(storm::storage::BitVectorHashMap const& states, std::vector const& initialStateIndices = {}, std::vector const& deadlockStateIndices = {}) override; - static void checkValid(storm::prism::Program const& program); - private: + void checkValid() const; + /*! * A delegate constructor that is used to preprocess the program before the constructor of the superclass is * being called. The last argument is only present to distinguish the signature of this constructor from the @@ -93,4 +93,4 @@ namespace storm { } } -#endif /* STORM_GENERATOR_PRISMNEXTSTATEGENERATOR_H_ */ \ No newline at end of file +#endif /* STORM_GENERATOR_PRISMNEXTSTATEGENERATOR_H_ */ diff --git a/src/generator/StateBehavior.cpp b/src/generator/StateBehavior.cpp index 8ad2c1e91..ecd770941 100644 --- a/src/generator/StateBehavior.cpp +++ b/src/generator/StateBehavior.cpp @@ -50,6 +50,16 @@ namespace storm { return choices.end(); } + template + std::vector> const& StateBehavior::getChoices() const { + return choices; + } + + template + std::vector>& StateBehavior::getChoices() { + return choices; + } + template std::vector const& StateBehavior::getStateRewards() const { return stateRewards; diff --git a/src/generator/StateBehavior.h b/src/generator/StateBehavior.h index 1082e9045..f6219c996 100644 --- a/src/generator/StateBehavior.h +++ b/src/generator/StateBehavior.h @@ -56,6 +56,16 @@ namespace storm { */ typename std::vector>::const_iterator end() const; + /*! + * Retrieves the vector of choices. + */ + std::vector> const& getChoices() const; + + /*! + * Retrieves the vector of choices. + */ + std::vector>& getChoices(); + /*! * Retrieves the list of state rewards under selected reward models. */ diff --git a/src/generator/VariableInformation.cpp b/src/generator/VariableInformation.cpp index b329cd42f..125e6089d 100644 --- a/src/generator/VariableInformation.cpp +++ b/src/generator/VariableInformation.cpp @@ -53,6 +53,14 @@ namespace storm { } VariableInformation::VariableInformation(storm::jani::Model const& model) : totalBitOffset(0) { + // Check that the model does not contain non-transient unbounded integer or non-transient real variables. + STORM_LOG_THROW(!model.getGlobalVariables().containsNonTransientRealVariables(), storm::exceptions::InvalidArgumentException, "Cannot build model from JANI model that contains global non-transient real variables."); + STORM_LOG_THROW(!model.getGlobalVariables().containsNonTransientUnboundedIntegerVariables(), storm::exceptions::InvalidArgumentException, "Cannot build model from JANI model that contains non-transient unbounded integer variables."); + for (auto const& automaton : model.getAutomata()) { + STORM_LOG_THROW(!automaton.getVariables().containsNonTransientUnboundedIntegerVariables(), storm::exceptions::InvalidArgumentException, "Cannot build model from JANI model that contains non-transient unbounded integer variables in automaton '" << automaton.getName() << "'."); + STORM_LOG_THROW(!automaton.getVariables().containsNonTransientRealVariables(), storm::exceptions::InvalidArgumentException, "Cannot build model from JANI model that contains non-transient real variables in automaton '" << automaton.getName() << "'."); + } + for (auto const& variable : model.getGlobalVariables().getBooleanVariables()) { booleanVariables.emplace_back(variable.getExpressionVariable(), totalBitOffset, true); ++totalBitOffset; diff --git a/src/modelchecker/region/ApproximationModel.cpp b/src/modelchecker/region/ApproximationModel.cpp index 2c5ab2e3c..1c9b9d5c2 100644 --- a/src/modelchecker/region/ApproximationModel.cpp +++ b/src/modelchecker/region/ApproximationModel.cpp @@ -33,7 +33,7 @@ namespace storm { this->computeRewards=true; STORM_LOG_THROW(this->typeOfParametricModel==storm::models::ModelType::Dtmc, storm::exceptions::InvalidArgumentException, "Approximation with rewards is only implemented for Dtmcs"); STORM_LOG_THROW(parametricModel.hasUniqueRewardModel(), storm::exceptions::InvalidArgumentException, "The rewardmodel of the approximation model should be unique"); - STORM_LOG_THROW(parametricModel.getUniqueRewardModel()->second.hasOnlyStateRewards(), storm::exceptions::InvalidArgumentException, "The rewardmodel of the approximation model should have state rewards only"); + STORM_LOG_THROW(parametricModel.getUniqueRewardModel().hasOnlyStateRewards(), storm::exceptions::InvalidArgumentException, "The rewardmodel of the approximation model should have state rewards only"); } else { STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Invalid formula: " << formula << ". Approximation model only supports eventually or reachability reward formulae."); } @@ -211,8 +211,8 @@ namespace storm { ConstantType dummyNonZeroValue = storm::utility::one(); auto vectorIt = this->vectorData.vector.begin(); for(auto oldState : this->maybeStates){ - if(storm::utility::isConstant(parametricModel.getUniqueRewardModel()->second.getStateRewardVector()[oldState])){ - ConstantType reward = storm::utility::region::convertNumber(storm::utility::region::getConstantPart(parametricModel.getUniqueRewardModel()->second.getStateRewardVector()[oldState])); + if(storm::utility::isConstant(parametricModel.getUniqueRewardModel().getStateRewardVector()[oldState])){ + ConstantType reward = storm::utility::region::convertNumber(storm::utility::region::getConstantPart(parametricModel.getUniqueRewardModel().getStateRewardVector()[oldState])); //Add one of these entries for every row in the row group of oldState for(auto matrixRow=this->matrixData.matrix.getRowGroupIndices()[oldState]; matrixRowmatrixData.matrix.getRowGroupIndices()[oldState+1]; ++matrixRow){ *vectorIt = reward; @@ -220,7 +220,7 @@ namespace storm { } } else { std::set occurringRewVariables; - storm::utility::region::gatherOccurringVariables(parametricModel.getUniqueRewardModel()->second.getStateRewardVector()[oldState], occurringRewVariables); + storm::utility::region::gatherOccurringVariables(parametricModel.getUniqueRewardModel().getStateRewardVector()[oldState], occurringRewVariables); // For each row in the row group of oldState, we get the corresponding substitution and insert the FunctionSubstitution for(auto matrixRow=this->matrixData.matrix.getRowGroupIndices()[oldState]; matrixRowmatrixData.matrix.getRowGroupIndices()[oldState+1]; ++matrixRow){ //Extend the substitution for the probabilities with the reward parameters @@ -230,7 +230,7 @@ namespace storm { substitution.insert(typename std::map::value_type(rewardVar, RegionBoundary::UNSPECIFIED)); } // insert the FunctionSubstitution - auto functionsIt = this->funcSubData.functions.insert(FunctionEntry(FunctionSubstitution(parametricModel.getUniqueRewardModel()->second.getStateRewardVector()[oldState], this->matrixData.rowSubstitutions[matrixRow]), dummyNonZeroValue)).first; + auto functionsIt = this->funcSubData.functions.insert(FunctionEntry(FunctionSubstitution(parametricModel.getUniqueRewardModel().getStateRewardVector()[oldState], this->matrixData.rowSubstitutions[matrixRow]), dummyNonZeroValue)).first; //insert assignment and dummy data this->vectorData.assignment.emplace_back(vectorIt, functionsIt->second); *vectorIt = dummyNonZeroValue; diff --git a/src/modelchecker/region/SamplingModel.cpp b/src/modelchecker/region/SamplingModel.cpp index 81c7aa61f..2a3d960dc 100644 --- a/src/modelchecker/region/SamplingModel.cpp +++ b/src/modelchecker/region/SamplingModel.cpp @@ -43,7 +43,7 @@ namespace storm { this->computeRewards=true; STORM_LOG_THROW(this->typeOfParametricModel==storm::models::ModelType::Dtmc, storm::exceptions::InvalidArgumentException, "Sampling with rewards is only implemented for Dtmcs"); STORM_LOG_THROW(parametricModel.hasUniqueRewardModel(), storm::exceptions::InvalidArgumentException, "The rewardmodel of the sampling model should be unique"); - STORM_LOG_THROW(parametricModel.getUniqueRewardModel()->second.hasOnlyStateRewards(), storm::exceptions::InvalidArgumentException, "The rewardmodel of the sampling model should have state rewards only"); + STORM_LOG_THROW(parametricModel.getUniqueRewardModel().hasOnlyStateRewards(), storm::exceptions::InvalidArgumentException, "The rewardmodel of the sampling model should have state rewards only"); STORM_LOG_THROW(formula->getSubformula().isEventuallyFormula(), storm::exceptions::InvalidArgumentException, "The subformula should be a reachabilityreward formula"); STORM_LOG_THROW(formula->getSubformula().asEventuallyFormula().getSubformula().isInFragment(storm::logic::propositional()), storm::exceptions::InvalidArgumentException, "The subsubformula should be a propositional formula"); } else { @@ -131,7 +131,7 @@ namespace storm { std::vector b; if(this->computeRewards){ b.resize(submatrix.getRowCount()); - storm::utility::vector::selectVectorValues(b, this->maybeStates, instantiatedModel.getUniqueRewardModel()->second.getStateRewardVector()); + storm::utility::vector::selectVectorValues(b, this->maybeStates, instantiatedModel.getUniqueRewardModel().getStateRewardVector()); } else { b = instantiatedModel.getTransitionMatrix().getConstrainedRowSumVector(this->maybeStates, this->targetStates); } diff --git a/src/modelchecker/region/SparseDtmcRegionModelChecker.cpp b/src/modelchecker/region/SparseDtmcRegionModelChecker.cpp index 099eeb62f..3c091ab9f 100644 --- a/src/modelchecker/region/SparseDtmcRegionModelChecker.cpp +++ b/src/modelchecker/region/SparseDtmcRegionModelChecker.cpp @@ -317,7 +317,7 @@ namespace storm { } else { STORM_LOG_THROW(this->getModel()->hasRewardModel(), storm::exceptions::InvalidArgumentException, "No reward model specified"); STORM_LOG_THROW(this->getModel()->hasUniqueRewardModel(), storm::exceptions::InvalidArgumentException, "Ambiguous reward model. Specify it in the formula!"); - rewardModel=&(this->getModel()->getUniqueRewardModel()->second); + rewardModel=&(this->getModel()->getUniqueRewardModel()); } //Get target states storm::modelchecker::SparsePropositionalModelChecker modelChecker(*(this->getModel())); @@ -416,7 +416,7 @@ namespace storm { storm::storage::BitVector phiStates(simpleModel.getNumberOfStates(), true); std::vector values; if(this->isComputeRewards()){ - values = simpleModel.getUniqueRewardModel()->second.getTotalRewardVector(maybeStates.getNumberOfSetBits(), simpleModel.getTransitionMatrix(), maybeStates); + values = simpleModel.getUniqueRewardModel().getTotalRewardVector(maybeStates.getNumberOfSetBits(), simpleModel.getTransitionMatrix(), maybeStates); } else { values = oneStepProbabilities; } diff --git a/src/models/sparse/MarkovAutomaton.cpp b/src/models/sparse/MarkovAutomaton.cpp index 887d3a13b..e50d10bef 100644 --- a/src/models/sparse/MarkovAutomaton.cpp +++ b/src/models/sparse/MarkovAutomaton.cpp @@ -259,15 +259,15 @@ namespace storm { this->exitRates.resize(this->getNumberOfStates()); for (uint_fast64_t state = 0; state< this->getNumberOfStates(); ++state) { uint_fast64_t row = this->getTransitionMatrix().getRowGroupIndices()[state]; - if(this->markovianStates.get(state)) { + if (this->markovianStates.get(state)) { this->exitRates[state] = this->getTransitionMatrix().getRowSum(row); for (auto& transition : this->getTransitionMatrix().getRow(row)) { transition.setValue(transition.getValue() / this->exitRates[state]); } ++row; } - for(; row < this->getTransitionMatrix().getRowGroupIndices()[state+1]; ++row) { - STORM_LOG_THROW(storm::utility::isOne(this->getTransitionMatrix().getRowSum(row)), storm::exceptions::InvalidArgumentException, "Transitions of rateMatrix do not sum up to one for some non-Markovian choice. Sum is " << this->getTransitionMatrix().getRowSum(row) << ". State is " << state << ". Choice is " << row << "."); + for (; row < this->getTransitionMatrix().getRowGroupIndices()[state+1]; ++row) { + STORM_LOG_THROW(storm::utility::isOne(this->getTransitionMatrix().getRowSum(row)), storm::exceptions::InvalidArgumentException, "Entries of transition matrix do not sum up to one for (non-Markovian) choice " << row << " of state " << state << " (sum is " << this->getTransitionMatrix().getRowSum(row) << ")."); } } } diff --git a/src/models/sparse/Model.cpp b/src/models/sparse/Model.cpp index 5e4b5d54b..14f9fa8a3 100644 --- a/src/models/sparse/Model.cpp +++ b/src/models/sparse/Model.cpp @@ -101,7 +101,7 @@ namespace storm { if (it == this->rewardModels.end()) { if (rewardModelName.empty()) { if (this->hasUniqueRewardModel()) { - return this->getUniqueRewardModel()->second; + return this->getUniqueRewardModel(); } else { STORM_LOG_THROW(false, storm::exceptions::IllegalArgumentException, "Unable to refer to default reward model, because there is no default model or it is not unique."); } @@ -142,15 +142,15 @@ namespace storm { } template - typename std::unordered_map::const_iterator Model::getUniqueRewardModel() const { + RewardModelType const& Model::getUniqueRewardModel() const { STORM_LOG_THROW(this->getNumberOfRewardModels() == 1, storm::exceptions::IllegalFunctionCallException, "The reward model is not unique."); - return this->rewardModels.cbegin(); + return this->rewardModels.cbegin()->second; } template - typename std::unordered_map::iterator Model::getUniqueRewardModel() { + RewardModelType& Model::getUniqueRewardModel() { STORM_LOG_THROW(this->getNumberOfRewardModels() == 1, storm::exceptions::IllegalFunctionCallException, "The reward model is not unique."); - return this->rewardModels.begin(); + return this->rewardModels.begin()->second; } template diff --git a/src/models/sparse/Model.h b/src/models/sparse/Model.h index 99288fd4a..8087df6a9 100644 --- a/src/models/sparse/Model.h +++ b/src/models/sparse/Model.h @@ -180,16 +180,16 @@ namespace storm { /*! * Retrieves the unique reward model, if there exists exactly one. Otherwise, an exception is thrown. * - * @return An iterator to the name and the reward model. + * @return The requested reward model. */ - typename std::unordered_map::const_iterator getUniqueRewardModel() const; + RewardModelType const& getUniqueRewardModel() const; /*! * Retrieves the unique reward model, if there exists exactly one. Otherwise, an exception is thrown. * - * @return An iterator to the name and the reward model. + * @return The requested reward model. */ - typename std::unordered_map::iterator getUniqueRewardModel(); + RewardModelType& getUniqueRewardModel(); /*! * Retrieves whether the model has a unique reward model. diff --git a/src/models/symbolic/Model.cpp b/src/models/symbolic/Model.cpp index 16339c0d1..cfca623dc 100644 --- a/src/models/symbolic/Model.cpp +++ b/src/models/symbolic/Model.cpp @@ -156,7 +156,7 @@ namespace storm { if (it == this->rewardModels.end()) { if (rewardModelName.empty()) { if (this->hasUniqueRewardModel()) { - return this->getUniqueRewardModel()->second; + return this->getUniqueRewardModel(); } else { STORM_LOG_THROW(false, storm::exceptions::IllegalArgumentException, "Unable to refer to default reward model, because there is no default model or it is not unique."); } @@ -168,11 +168,17 @@ namespace storm { } template - typename std::unordered_map::RewardModelType>::const_iterator Model::getUniqueRewardModel() const { + typename Model::RewardModelType const& Model::getUniqueRewardModel() const { STORM_LOG_THROW(this->hasUniqueRewardModel(), storm::exceptions::InvalidOperationException, "Cannot retrieve unique reward model, because there is no unique one."); - return this->rewardModels.begin(); + return this->rewardModels.cbegin()->second; } - + + template + typename Model::RewardModelType& Model::getUniqueRewardModel() { + STORM_LOG_THROW(this->hasUniqueRewardModel(), storm::exceptions::InvalidOperationException, "Cannot retrieve unique reward model, because there is no unique one."); + return this->rewardModels.begin()->second; + } + template bool Model::hasUniqueRewardModel() const { return this->rewardModels.size() == 1; diff --git a/src/models/symbolic/Model.h b/src/models/symbolic/Model.h index b2e9d3e87..e9ebf8ddf 100644 --- a/src/models/symbolic/Model.h +++ b/src/models/symbolic/Model.h @@ -207,9 +207,16 @@ namespace storm { /*! * Retrieves the unique reward model, if there exists exactly one. Otherwise, an exception is thrown. * - * @return An iterator to the name and the reward model. + * @return The requested reward model. */ - typename std::unordered_map::const_iterator getUniqueRewardModel() const; + RewardModelType const& getUniqueRewardModel() const; + + /*! + * Retrieves the unique reward model, if there exists exactly one. Otherwise, an exception is thrown. + * + * @return The requested reward model. + */ + RewardModelType& getUniqueRewardModel(); /*! * Retrieves whether the model has a unique reward model. diff --git a/src/parser/ExpressionCreator.cpp b/src/parser/ExpressionCreator.cpp new file mode 100644 index 000000000..85f65b012 --- /dev/null +++ b/src/parser/ExpressionCreator.cpp @@ -0,0 +1,265 @@ +#include "ExpressionCreator.h" + +#include "src/storage/expressions/Expression.h" +#include "src/storage/expressions/ExpressionManager.h" +#include "src/exceptions/InvalidTypeException.h" +#include "src/exceptions/InvalidArgumentException.h" +#include "src/exceptions/WrongFormatException.h" + +#include "src/utility/constants.h" +#include "src/utility/macros.h" + +namespace storm { + namespace parser { + + ExpressionCreator::ExpressionCreator(storm::expressions::ExpressionManager const& manager) : manager(manager) { + // Intenetionally left empty. + } + + storm::expressions::Expression ExpressionCreator::createIteExpression(storm::expressions::Expression const& e1, storm::expressions::Expression const& e2, storm::expressions::Expression const& e3, bool& pass) const { + if (this->createExpressions) { + try { + return storm::expressions::ite(e1, e2, e3); + } catch (storm::exceptions::InvalidTypeException const& e) { + pass = false; + } + } + return manager.boolean(false); + } + + storm::expressions::Expression ExpressionCreator::createOrExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const { + if (this->createExpressions) { + try { + switch (operatorType) { + case storm::expressions::OperatorType::Or: return e1 || e2; break; + case storm::expressions::OperatorType::Implies: return storm::expressions::implies(e1, e2); break; + default: STORM_LOG_ASSERT(false, "Invalid operation."); break; + } + } catch (storm::exceptions::InvalidTypeException const& e) { + pass = false; + } + } + return manager.boolean(false); + } + + storm::expressions::Expression ExpressionCreator::createAndExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const { + if (this->createExpressions) { + storm::expressions::Expression result; + try { + switch (operatorType) { + case storm::expressions::OperatorType::And: result = e1 && e2; break; + default: STORM_LOG_ASSERT(false, "Invalid operation."); break; + } + } catch (storm::exceptions::InvalidTypeException const& e) { + pass = false; + } + return result; + } + return manager.boolean(false); + } + + storm::expressions::Expression ExpressionCreator::createRelationalExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const { + if (this->createExpressions) { + try { + switch (operatorType) { + case storm::expressions::OperatorType::GreaterOrEqual: return e1 >= e2; break; + case storm::expressions::OperatorType::Greater: return e1 > e2; break; + case storm::expressions::OperatorType::LessOrEqual: return e1 <= e2; break; + case storm::expressions::OperatorType::Less: return e1 < e2; break; + default: STORM_LOG_ASSERT(false, "Invalid operation."); break; + } + } catch (storm::exceptions::InvalidTypeException const& e) { + pass = false; + } + } + return manager.boolean(false); + } + + storm::expressions::Expression ExpressionCreator::createEqualsExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const { + if (this->createExpressions) { + try { + switch (operatorType) { + case storm::expressions::OperatorType::Equal: return e1.hasBooleanType() && e2.hasBooleanType() ? storm::expressions::iff(e1, e2) : e1 == e2; break; + case storm::expressions::OperatorType::NotEqual: return e1 != e2; break; + default: STORM_LOG_ASSERT(false, "Invalid operation."); break; + } + } catch (storm::exceptions::InvalidTypeException const& e) { + pass = false; + } + } + return manager.boolean(false); + } + + storm::expressions::Expression ExpressionCreator::createPlusExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const { + if (this->createExpressions) { + try { + switch (operatorType) { + case storm::expressions::OperatorType::Plus: return e1 + e2; break; + case storm::expressions::OperatorType::Minus: return e1 - e2; break; + default: STORM_LOG_ASSERT(false, "Invalid operation."); break; + } + } catch (storm::exceptions::InvalidTypeException const& e) { + pass = false; + } + } + return manager.boolean(false); + } + + storm::expressions::Expression ExpressionCreator::createMultExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const { + if (this->createExpressions) { + try { + switch (operatorType) { + case storm::expressions::OperatorType::Times: return e1 * e2; break; + case storm::expressions::OperatorType::Divide: return e1 / e2; break; + default: STORM_LOG_ASSERT(false, "Invalid operation."); break; + } + } catch (storm::exceptions::InvalidTypeException const& e) { + pass = false; + } + } + return manager.boolean(false); + } + + storm::expressions::Expression ExpressionCreator::createPowerExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const { + if (this->createExpressions) { + try { + switch (operatorType) { + case storm::expressions::OperatorType::Power: return e1 ^ e2; break; + default: STORM_LOG_ASSERT(false, "Invalid operation."); break; + } + } catch (storm::exceptions::InvalidTypeException const& e) { + pass = false; + } + } + return manager.boolean(false); + } + + storm::expressions::Expression ExpressionCreator::createUnaryExpression(boost::optional const& operatorType, storm::expressions::Expression const& e1, bool& pass) const { + if (this->createExpressions) { + try { + if (operatorType) { + switch (operatorType.get()) { + case storm::expressions::OperatorType::Not: return !e1; break; + case storm::expressions::OperatorType::Minus: return -e1; break; + default: STORM_LOG_ASSERT(false, "Invalid operation."); break; + } + } else { + return e1; + } + } catch (storm::exceptions::InvalidTypeException const& e) { + pass = false; + } + } + return manager.boolean(false); + } + + storm::expressions::Expression ExpressionCreator::createRationalLiteralExpression(storm::RationalNumber const& value, bool& pass) const { + // If we are not supposed to accept double expressions, we reject it by setting pass to false. + if (!this->acceptDoubleLiterals) { + pass = false; + } + + if (this->createExpressions) { + return manager.rational(value); + } else { + return manager.boolean(false); + } + } + + storm::expressions::Expression ExpressionCreator::createIntegerLiteralExpression(int value, bool& pass) const { + if (this->createExpressions) { + return manager.integer(value); + } else { + return manager.boolean(false); + } + } + + + storm::expressions::Expression ExpressionCreator::createBooleanLiteralExpression(bool value, bool& pass) const { + if (this->createExpressions) { + return manager.boolean(value); + } else { + return manager.boolean(false); + } + } + + storm::expressions::Expression ExpressionCreator::createMinimumMaximumExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const { + if (this->createExpressions) { + try { + switch (operatorType) { + case storm::expressions::OperatorType::Min: return storm::expressions::minimum(e1, e2); break; + case storm::expressions::OperatorType::Max: return storm::expressions::maximum(e1, e2); break; + default: STORM_LOG_ASSERT(false, "Invalid operation."); break; + } + } catch (storm::exceptions::InvalidTypeException const& e) { + pass = false; + } + } + return manager.boolean(false); + } + + storm::expressions::Expression ExpressionCreator::createFloorCeilExpression(storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e1, bool& pass) const { + if (this->createExpressions) { + try { + switch (operatorType) { + case storm::expressions::OperatorType::Floor: return storm::expressions::floor(e1); break; + case storm::expressions::OperatorType::Ceil: return storm::expressions::ceil(e1); break; + default: STORM_LOG_ASSERT(false, "Invalid operation."); break; + } + } catch (storm::exceptions::InvalidTypeException const& e) { + pass = false; + } + } + return manager.boolean(false); + } + + storm::expressions::Expression ExpressionCreator::getIdentifierExpression(std::string const& identifier, bool allowBacktracking, bool& pass) const { + if (this->createExpressions) { + STORM_LOG_THROW(this->identifiers != nullptr, storm::exceptions::WrongFormatException, "Unable to substitute identifier expressions without given mapping."); + storm::expressions::Expression const* expression = this->identifiers->find(identifier); + if (expression == nullptr) { + pass = false; + return manager.boolean(false); + } + return *expression; + } else { + return manager.boolean(false); + } + } + + void ExpressionCreator::setIdentifierMapping(qi::symbols const* identifiers_) { + + if (identifiers_ != nullptr) { + createExpressions = true; + identifiers = identifiers_; + } else { + createExpressions = false; + identifiers = nullptr; + } + } + + void ExpressionCreator::setIdentifierMapping(std::unordered_map const& identifierMapping) { + unsetIdentifierMapping(); + + createExpressions =true; + identifiers = new qi::symbols(); + for (auto const& identifierExpressionPair : identifierMapping) { + identifiers->add(identifierExpressionPair.first, identifierExpressionPair.second); + } + deleteIdentifierMapping = true; + } + + void ExpressionCreator::unsetIdentifierMapping() { + createExpressions = false; + if (deleteIdentifierMapping) { + delete this->identifiers; + deleteIdentifierMapping = false; + } + this->identifiers = nullptr; + } + + + + + } +} \ No newline at end of file diff --git a/src/parser/ExpressionCreator.h b/src/parser/ExpressionCreator.h new file mode 100644 index 000000000..0d6d45c5e --- /dev/null +++ b/src/parser/ExpressionCreator.h @@ -0,0 +1,93 @@ +#pragma once +#include +// Very ugly, but currently we would like to have the symbol table here. +#include "src/parser/SpiritParserDefinitions.h" + +#include +#include "src/adapters/NumberAdapter.h" + +namespace storm { + + namespace expressions { + class Expression; + class ExpressionManager; + enum struct OperatorType; + } + + namespace parser { + class ExpressionCreator { + public: + ExpressionCreator(storm::expressions::ExpressionManager const& manager); + + virtual ~ExpressionCreator() { + if (deleteIdentifierMapping) { + delete this->identifiers; + } + } + + /*! + * Sets an identifier mapping that is used to determine valid variables in the expression. The mapped-to + * expressions will be substituted wherever the key value appears in the parsed expression. After setting + * this, the parser will generate expressions. + * + * @param identifiers_ A pointer to a mapping from identifiers to expressions. + */ + void setIdentifierMapping(qi::symbols const* identifiers_); + + /*! + * Sets an identifier mapping that is used to determine valid variables in the expression. The mapped-to + * expressions will be substituted wherever the key value appears in the parsed expression. After setting + * this, the parser will generate expressions. + * + * @param identifierMapping A mapping from identifiers to expressions. + */ + void setIdentifierMapping(std::unordered_map const& identifierMapping); + + /*! + * Unsets a previously set identifier mapping. This will make the parser not generate expressions any more + * but merely check for syntactic correctness of an expression. + */ + void unsetIdentifierMapping(); + + bool getAcceptDoubleLiterals() const { + return acceptDoubleLiterals; + } + + void setAcceptDoubleLiterals(bool set = true) { + acceptDoubleLiterals = set; + } + + + + storm::expressions::Expression createIteExpression(storm::expressions::Expression const& e1, storm::expressions::Expression const& e2, storm::expressions::Expression const& e3, bool& pass) const; + + storm::expressions::Expression createOrExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const; + storm::expressions::Expression createAndExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const; + storm::expressions::Expression createRelationalExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const; + storm::expressions::Expression createEqualsExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const; + storm::expressions::Expression createPlusExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const; + storm::expressions::Expression createMultExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const; + storm::expressions::Expression createPowerExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const; + storm::expressions::Expression createUnaryExpression(boost::optional const& operatorType, storm::expressions::Expression const& e1, bool& pass) const; + storm::expressions::Expression createRationalLiteralExpression(storm::RationalNumber const& value, bool& pass) const; + storm::expressions::Expression createIntegerLiteralExpression(int value, bool& pass) const; + storm::expressions::Expression createBooleanLiteralExpression(bool value, bool& pass) const; + storm::expressions::Expression createMinimumMaximumExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const; + storm::expressions::Expression createFloorCeilExpression(storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e1, bool& pass) const; + storm::expressions::Expression getIdentifierExpression(std::string const& identifier, bool allowBacktracking, bool& pass) const; + + + private: + // The manager responsible for the expressions. + storm::expressions::ExpressionManager const& manager; + qi::symbols const* identifiers = nullptr; + + bool createExpressions = false; + + bool acceptDoubleLiterals = true; + + bool deleteIdentifierMapping = false; + + }; + } +} \ No newline at end of file diff --git a/src/parser/ExpressionParser.cpp b/src/parser/ExpressionParser.cpp index 3054f2fe0..1d78a2c64 100644 --- a/src/parser/ExpressionParser.cpp +++ b/src/parser/ExpressionParser.cpp @@ -4,6 +4,9 @@ #include "src/exceptions/WrongFormatException.h" #include "src/utility/constants.h" +#include "src/parser/ExpressionCreator.h" +#include "src/storage/expressions/Expression.h" + namespace boost { namespace spirit { @@ -33,85 +36,91 @@ namespace boost { namespace storm { namespace parser { - ExpressionParser::ExpressionParser(storm::expressions::ExpressionManager const& manager, qi::symbols const& invalidIdentifiers_, bool enableErrorHandling, bool allowBacktracking) : ExpressionParser::base_type(expression), orOperator_(), andOperator_(), equalityOperator_(), relationalOperator_(), plusOperator_(), multiplicationOperator_(), infixPowerOperator_(), unaryOperator_(), floorCeilOperator_(), minMaxOperator_(), prefixPowerOperator_(), trueFalse_(manager), manager(manager.getSharedPointer()), createExpressions(false), acceptDoubleLiterals(true), identifiers_(nullptr), invalidIdentifiers_(invalidIdentifiers_) { - identifier %= qi::as_string[qi::raw[qi::lexeme[((qi::alpha | qi::char_('_')) >> *(qi::alnum | qi::char_('_')))]]][qi::_pass = phoenix::bind(&ExpressionParser::isValidIdentifier, phoenix::ref(*this), qi::_1)]; + ExpressionParser::ExpressionParser(storm::expressions::ExpressionManager const& manager, qi::symbols const& invalidIdentifiers_, bool enableErrorHandling, bool allowBacktracking) : ExpressionParser::base_type(expression), orOperator_(), andOperator_(), equalityOperator_(), relationalOperator_(), plusOperator_(), multiplicationOperator_(), infixPowerOperator_(), unaryOperator_(), floorCeilOperator_(), minMaxOperator_(), prefixPowerOperator_(), invalidIdentifiers_(invalidIdentifiers_) { + + expressionCreator = new ExpressionCreator(manager); + + identifier %= qi::as_string[qi::raw[qi::lexeme[((qi::alpha | qi::char_('_') | qi::char_('.')) >> *(qi::alnum | qi::char_('_')))]]][qi::_pass = phoenix::bind(&ExpressionParser::isValidIdentifier, phoenix::ref(*this), qi::_1)]; identifier.name("identifier"); if (allowBacktracking) { - floorCeilExpression = ((floorCeilOperator_ >> qi::lit("(")) >> expression >> qi::lit(")"))[qi::_val = phoenix::bind(&ExpressionParser::createFloorCeilExpression, phoenix::ref(*this), qi::_1, qi::_2, qi::_pass)]; + floorCeilExpression = ((floorCeilOperator_ >> qi::lit("(")) >> expression >> qi::lit(")"))[qi::_val = phoenix::bind(&ExpressionCreator::createFloorCeilExpression, phoenix::ref(*expressionCreator), qi::_1, qi::_2, qi::_pass)]; } else { - floorCeilExpression = ((floorCeilOperator_ >> qi::lit("(")) > expression > qi::lit(")"))[qi::_val = phoenix::bind(&ExpressionParser::createFloorCeilExpression, phoenix::ref(*this), qi::_1, qi::_2, qi::_pass)]; + floorCeilExpression = ((floorCeilOperator_ >> qi::lit("(")) > expression > qi::lit(")"))[qi::_val = phoenix::bind(&ExpressionCreator::createFloorCeilExpression, phoenix::ref(*expressionCreator), qi::_1, qi::_2, qi::_pass)]; } floorCeilExpression.name("floor/ceil expression"); if (allowBacktracking) { - minMaxExpression = ((minMaxOperator_[qi::_a = qi::_1] >> qi::lit("(")) >> expression[qi::_val = qi::_1] >> +(qi::lit(",") >> expression)[qi::_val = phoenix::bind(&ExpressionParser::createMinimumMaximumExpression, phoenix::ref(*this), qi::_val, qi::_a, qi::_1, qi::_pass)]) >> qi::lit(")"); + minMaxExpression = ((minMaxOperator_[qi::_a = qi::_1] >> qi::lit("(")) >> expression[qi::_val = qi::_1] >> +(qi::lit(",") >> expression)[qi::_val = phoenix::bind(&ExpressionCreator::createMinimumMaximumExpression, phoenix::ref(*expressionCreator), qi::_val, qi::_a, qi::_1, qi::_pass)]) >> qi::lit(")"); } else { - minMaxExpression = ((minMaxOperator_[qi::_a = qi::_1] >> qi::lit("(")) > expression[qi::_val = qi::_1] > +(qi::lit(",") > expression)[qi::_val = phoenix::bind(&ExpressionParser::createMinimumMaximumExpression, phoenix::ref(*this), qi::_val, qi::_a, qi::_1, qi::_pass)]) > qi::lit(")"); + minMaxExpression = ((minMaxOperator_[qi::_a = qi::_1] >> qi::lit("(")) > expression[qi::_val = qi::_1] > +(qi::lit(",") > expression)[qi::_val = phoenix::bind(&ExpressionCreator::createMinimumMaximumExpression, phoenix::ref(*expressionCreator), qi::_val, qi::_a, qi::_1, qi::_pass)]) > qi::lit(")"); } minMaxExpression.name("min/max expression"); if (allowBacktracking) { - prefixPowerExpression = ((prefixPowerOperator_ >> qi::lit("(")) >> expression >> qi::lit(",") >> expression >> qi::lit(")"))[qi::_val = phoenix::bind(&ExpressionParser::createPowerExpression, phoenix::ref(*this), qi::_2, qi::_1, qi::_3, qi::_pass)]; + prefixPowerExpression = ((prefixPowerOperator_ >> qi::lit("(")) >> expression >> qi::lit(",") >> expression >> qi::lit(")"))[qi::_val = phoenix::bind(&ExpressionCreator::createPowerExpression, phoenix::ref(*expressionCreator), qi::_2, qi::_1, qi::_3, qi::_pass)]; } else { - prefixPowerExpression = ((prefixPowerOperator_ >> qi::lit("(")) > expression > qi::lit(",") > expression > qi::lit(")"))[qi::_val = phoenix::bind(&ExpressionParser::createPowerExpression, phoenix::ref(*this), qi::_2, qi::_1, qi::_3, qi::_pass)]; + prefixPowerExpression = ((prefixPowerOperator_ >> qi::lit("(")) > expression > qi::lit(",") > expression > qi::lit(")"))[qi::_val = phoenix::bind(&ExpressionCreator::createPowerExpression, phoenix::ref(*expressionCreator), qi::_2, qi::_1, qi::_3, qi::_pass)]; } prefixPowerExpression.name("pow expression"); - identifierExpression = identifier[qi::_val = phoenix::bind(&ExpressionParser::getIdentifierExpression, phoenix::ref(*this), qi::_1, allowBacktracking, qi::_pass)]; + identifierExpression = identifier[qi::_val = phoenix::bind(&ExpressionCreator::getIdentifierExpression, phoenix::ref(*expressionCreator), qi::_1, allowBacktracking, qi::_pass)]; identifierExpression.name("identifier expression"); - literalExpression = trueFalse_[qi::_val = qi::_1] | rationalLiteral_[qi::_val = phoenix::bind(&ExpressionParser::createRationalLiteralExpression, phoenix::ref(*this), qi::_1, qi::_pass)] | qi::int_[qi::_val = phoenix::bind(&ExpressionParser::createIntegerLiteralExpression, phoenix::ref(*this), qi::_1, qi::_pass)]; + literalExpression = qi::lit("true")[qi::_val = phoenix::bind(&ExpressionCreator::createBooleanLiteralExpression, phoenix::ref(*expressionCreator), true, qi::_pass)] + | qi::lit("false")[qi::_val = phoenix::bind(&ExpressionCreator::createBooleanLiteralExpression, phoenix::ref(*expressionCreator), false, qi::_pass)] + | rationalLiteral_[qi::_val = phoenix::bind(&ExpressionCreator::createRationalLiteralExpression, phoenix::ref(*expressionCreator), qi::_1, qi::_pass)] + | qi::int_[qi::_val = phoenix::bind(&ExpressionCreator::createIntegerLiteralExpression, phoenix::ref(*expressionCreator), qi::_1, qi::_pass)]; literalExpression.name("literal expression"); atomicExpression = floorCeilExpression | prefixPowerExpression | minMaxExpression | (qi::lit("(") >> expression >> qi::lit(")")) | literalExpression | identifierExpression; atomicExpression.name("atomic expression"); - unaryExpression = (-unaryOperator_ >> atomicExpression)[qi::_val = phoenix::bind(&ExpressionParser::createUnaryExpression, phoenix::ref(*this), qi::_1, qi::_2, qi::_pass)]; + unaryExpression = (-unaryOperator_ >> atomicExpression)[qi::_val = phoenix::bind(&ExpressionCreator::createUnaryExpression, phoenix::ref(*expressionCreator), qi::_1, qi::_2, qi::_pass)]; unaryExpression.name("unary expression"); if (allowBacktracking) { - infixPowerExpression = unaryExpression[qi::_val = qi::_1] > -(infixPowerOperator_ > expression)[qi::_val = phoenix::bind(&ExpressionParser::createPowerExpression, phoenix::ref(*this), qi::_val, qi::_1, qi::_2, qi::_pass)]; + infixPowerExpression = unaryExpression[qi::_val = qi::_1] > -(infixPowerOperator_ > expression)[qi::_val = phoenix::bind(&ExpressionCreator::createPowerExpression, phoenix::ref(*expressionCreator), qi::_val, qi::_1, qi::_2, qi::_pass)]; } else { - infixPowerExpression = unaryExpression[qi::_val = qi::_1] > -(infixPowerOperator_ >> expression)[qi::_val = phoenix::bind(&ExpressionParser::createPowerExpression, phoenix::ref(*this), qi::_val, qi::_1, qi::_2, qi::_pass)]; + infixPowerExpression = unaryExpression[qi::_val = qi::_1] > -(infixPowerOperator_ >> expression)[qi::_val = phoenix::bind(&ExpressionCreator::createPowerExpression, phoenix::ref(*expressionCreator), qi::_val, qi::_1, qi::_2, qi::_pass)]; } infixPowerExpression.name("power expression"); if (allowBacktracking) { - multiplicationExpression = infixPowerExpression[qi::_val = qi::_1] >> *(multiplicationOperator_ >> infixPowerExpression)[qi::_val = phoenix::bind(&ExpressionParser::createMultExpression, phoenix::ref(*this), qi::_val, qi::_1, qi::_2, qi::_pass)]; + multiplicationExpression = infixPowerExpression[qi::_val = qi::_1] >> *(multiplicationOperator_ >> infixPowerExpression)[qi::_val = phoenix::bind(&ExpressionCreator::createMultExpression, phoenix::ref(*expressionCreator), qi::_val, qi::_1, qi::_2, qi::_pass)]; } else { - multiplicationExpression = infixPowerExpression[qi::_val = qi::_1] > *(multiplicationOperator_ > infixPowerExpression)[qi::_val = phoenix::bind(&ExpressionParser::createMultExpression, phoenix::ref(*this), qi::_val, qi::_1, qi::_2, qi::_pass)]; + multiplicationExpression = infixPowerExpression[qi::_val = qi::_1] > *(multiplicationOperator_ > infixPowerExpression)[qi::_val = phoenix::bind(&ExpressionCreator::createMultExpression, phoenix::ref(*expressionCreator), qi::_val, qi::_1, qi::_2, qi::_pass)]; } multiplicationExpression.name("multiplication expression"); - plusExpression = multiplicationExpression[qi::_val = qi::_1] > *(plusOperator_ >> multiplicationExpression)[qi::_val = phoenix::bind(&ExpressionParser::createPlusExpression, phoenix::ref(*this), qi::_val, qi::_1, qi::_2, qi::_pass)]; + plusExpression = multiplicationExpression[qi::_val = qi::_1] > *(plusOperator_ >> multiplicationExpression)[qi::_val = phoenix::bind(&ExpressionCreator::createPlusExpression, phoenix::ref(*expressionCreator), qi::_val, qi::_1, qi::_2, qi::_pass)]; plusExpression.name("plus expression"); if (allowBacktracking) { - relativeExpression = plusExpression[qi::_val = qi::_1] >> -(relationalOperator_ >> plusExpression)[qi::_val = phoenix::bind(&ExpressionParser::createRelationalExpression, phoenix::ref(*this), qi::_val, qi::_1, qi::_2, qi::_pass)]; + relativeExpression = plusExpression[qi::_val = qi::_1] >> -(relationalOperator_ >> plusExpression)[qi::_val = phoenix::bind(&ExpressionCreator::createRelationalExpression, phoenix::ref(*expressionCreator), qi::_val, qi::_1, qi::_2, qi::_pass)]; } else { - relativeExpression = plusExpression[qi::_val = qi::_1] > -(relationalOperator_ > plusExpression)[qi::_val = phoenix::bind(&ExpressionParser::createRelationalExpression, phoenix::ref(*this), qi::_val, qi::_1, qi::_2, qi::_pass)]; + relativeExpression = plusExpression[qi::_val = qi::_1] > -(relationalOperator_ > plusExpression)[qi::_val = phoenix::bind(&ExpressionCreator::createRelationalExpression, phoenix::ref(*expressionCreator), qi::_val, qi::_1, qi::_2, qi::_pass)]; } relativeExpression.name("relative expression"); - equalityExpression = relativeExpression[qi::_val = qi::_1] >> *(equalityOperator_ >> relativeExpression)[qi::_val = phoenix::bind(&ExpressionParser::createEqualsExpression, phoenix::ref(*this), qi::_val, qi::_1, qi::_2, qi::_pass)]; + equalityExpression = relativeExpression[qi::_val = qi::_1] >> *(equalityOperator_ >> relativeExpression)[qi::_val = phoenix::bind(&ExpressionCreator::createEqualsExpression, phoenix::ref(*expressionCreator), qi::_val, qi::_1, qi::_2, qi::_pass)]; equalityExpression.name("equality expression"); if (allowBacktracking) { - andExpression = equalityExpression[qi::_val = qi::_1] >> *(andOperator_ >> equalityExpression)[qi::_val = phoenix::bind(&ExpressionParser::createAndExpression, phoenix::ref(*this), qi::_val, qi::_1, qi::_2, qi::_pass)]; + andExpression = equalityExpression[qi::_val = qi::_1] >> *(andOperator_ >> equalityExpression)[qi::_val = phoenix::bind(&ExpressionCreator::createAndExpression, phoenix::ref(*expressionCreator), qi::_val, qi::_1, qi::_2, qi::_pass)]; } else { - andExpression = equalityExpression[qi::_val = qi::_1] >> *(andOperator_ > equalityExpression)[qi::_val = phoenix::bind(&ExpressionParser::createAndExpression, phoenix::ref(*this), qi::_val, qi::_1, qi::_2, qi::_pass)]; + andExpression = equalityExpression[qi::_val = qi::_1] >> *(andOperator_ > equalityExpression)[qi::_val = phoenix::bind(&ExpressionCreator::createAndExpression, phoenix::ref(*expressionCreator), qi::_val, qi::_1, qi::_2, qi::_pass)]; } andExpression.name("and expression"); if (allowBacktracking) { - orExpression = andExpression[qi::_val = qi::_1] >> *(orOperator_ >> andExpression)[qi::_val = phoenix::bind(&ExpressionParser::createOrExpression, phoenix::ref(*this), qi::_val, qi::_1, qi::_2, qi::_pass)]; + orExpression = andExpression[qi::_val = qi::_1] >> *(orOperator_ >> andExpression)[qi::_val = phoenix::bind(&ExpressionCreator::createOrExpression, phoenix::ref(*expressionCreator), qi::_val, qi::_1, qi::_2, qi::_pass)]; } else { - orExpression = andExpression[qi::_val = qi::_1] > *(orOperator_ > andExpression)[qi::_val = phoenix::bind(&ExpressionParser::createOrExpression, phoenix::ref(*this), qi::_val, qi::_1, qi::_2, qi::_pass)]; + orExpression = andExpression[qi::_val = qi::_1] > *(orOperator_ > andExpression)[qi::_val = phoenix::bind(&ExpressionCreator::createOrExpression, phoenix::ref(*expressionCreator), qi::_val, qi::_1, qi::_2, qi::_pass)]; } orExpression.name("or expression"); - iteExpression = orExpression[qi::_val = qi::_1] > -(qi::lit("?") > orExpression > qi::lit(":") > orExpression)[qi::_val = phoenix::bind(&ExpressionParser::createIteExpression, phoenix::ref(*this), qi::_val, qi::_1, qi::_2, qi::_pass)]; + iteExpression = orExpression[qi::_val = qi::_1] > -(qi::lit("?") > orExpression > qi::lit(":") > orExpression)[qi::_val = phoenix::bind(&ExpressionCreator::createIteExpression, phoenix::ref(*expressionCreator), qi::_val, qi::_1, qi::_2, qi::_pass)]; iteExpression.name("if-then-else expression"); expression %= iteExpression; @@ -154,240 +163,22 @@ namespace storm { } void ExpressionParser::setIdentifierMapping(qi::symbols const* identifiers_) { - if (identifiers_ != nullptr) { - this->createExpressions = true; - this->identifiers_ = identifiers_; - } else { - this->createExpressions = false; - this->identifiers_ = nullptr; - } + expressionCreator->setIdentifierMapping(identifiers_); } void ExpressionParser::setIdentifierMapping(std::unordered_map const& identifierMapping) { - unsetIdentifierMapping(); - this->createExpressions = true; - this->identifiers_ = new qi::symbols(); - for (auto const& identifierExpressionPair : identifierMapping) { - this->identifiers_->add(identifierExpressionPair.first, identifierExpressionPair.second); - } - deleteIdentifierMapping = true; + expressionCreator->setIdentifierMapping(identifierMapping); } void ExpressionParser::unsetIdentifierMapping() { - this->createExpressions = false; - if (deleteIdentifierMapping) { - delete this->identifiers_; - deleteIdentifierMapping = false; - } - this->identifiers_ = nullptr; + expressionCreator->unsetIdentifierMapping(); } void ExpressionParser::setAcceptDoubleLiterals(bool flag) { - this->acceptDoubleLiterals = flag; - } - - storm::expressions::Expression ExpressionParser::createIteExpression(storm::expressions::Expression e1, storm::expressions::Expression e2, storm::expressions::Expression e3, bool& pass) const { - if (this->createExpressions) { - try { - return storm::expressions::ite(e1, e2, e3); - } catch (storm::exceptions::InvalidTypeException const& e) { - pass = false; - } - } - return manager->boolean(false); - } - - storm::expressions::Expression ExpressionParser::createOrExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const { - if (this->createExpressions) { - try { - switch (operatorType) { - case storm::expressions::OperatorType::Or: return e1 || e2; break; - case storm::expressions::OperatorType::Implies: return storm::expressions::implies(e1, e2); break; - default: STORM_LOG_ASSERT(false, "Invalid operation."); break; - } - } catch (storm::exceptions::InvalidTypeException const& e) { - pass = false; - } - } - return manager->boolean(false); - } - - storm::expressions::Expression ExpressionParser::createAndExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const { - if (this->createExpressions) { - storm::expressions::Expression result; - try { - switch (operatorType) { - case storm::expressions::OperatorType::And: result = e1 && e2; break; - default: STORM_LOG_ASSERT(false, "Invalid operation."); break; - } - } catch (storm::exceptions::InvalidTypeException const& e) { - pass = false; - } - return result; - } - return manager->boolean(false); - } - - storm::expressions::Expression ExpressionParser::createRelationalExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const { - if (this->createExpressions) { - try { - switch (operatorType) { - case storm::expressions::OperatorType::GreaterOrEqual: return e1 >= e2; break; - case storm::expressions::OperatorType::Greater: return e1 > e2; break; - case storm::expressions::OperatorType::LessOrEqual: return e1 <= e2; break; - case storm::expressions::OperatorType::Less: return e1 < e2; break; - default: STORM_LOG_ASSERT(false, "Invalid operation."); break; - } - } catch (storm::exceptions::InvalidTypeException const& e) { - pass = false; - } - } - return manager->boolean(false); - } - - storm::expressions::Expression ExpressionParser::createEqualsExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const { - if (this->createExpressions) { - try { - switch (operatorType) { - case storm::expressions::OperatorType::Equal: return e1.hasBooleanType() && e2.hasBooleanType() ? storm::expressions::iff(e1, e2) : e1 == e2; break; - case storm::expressions::OperatorType::NotEqual: return e1 != e2; break; - default: STORM_LOG_ASSERT(false, "Invalid operation."); break; - } - } catch (storm::exceptions::InvalidTypeException const& e) { - pass = false; - } - } - return manager->boolean(false); - } - - storm::expressions::Expression ExpressionParser::createPlusExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const { - if (this->createExpressions) { - try { - switch (operatorType) { - case storm::expressions::OperatorType::Plus: return e1 + e2; break; - case storm::expressions::OperatorType::Minus: return e1 - e2; break; - default: STORM_LOG_ASSERT(false, "Invalid operation."); break; - } - } catch (storm::exceptions::InvalidTypeException const& e) { - pass = false; - } - } - return manager->boolean(false); - } - - storm::expressions::Expression ExpressionParser::createMultExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const { - if (this->createExpressions) { - try { - switch (operatorType) { - case storm::expressions::OperatorType::Times: return e1 * e2; break; - case storm::expressions::OperatorType::Divide: return e1 / e2; break; - default: STORM_LOG_ASSERT(false, "Invalid operation."); break; - } - } catch (storm::exceptions::InvalidTypeException const& e) { - pass = false; - } - } - return manager->boolean(false); - } - - storm::expressions::Expression ExpressionParser::createPowerExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const { - if (this->createExpressions) { - try { - switch (operatorType) { - case storm::expressions::OperatorType::Power: return e1 ^ e2; break; - default: STORM_LOG_ASSERT(false, "Invalid operation."); break; - } - } catch (storm::exceptions::InvalidTypeException const& e) { - pass = false; - } - } - return manager->boolean(false); - } - - storm::expressions::Expression ExpressionParser::createUnaryExpression(boost::optional const& operatorType, storm::expressions::Expression const& e1, bool& pass) const { - if (this->createExpressions) { - try { - if (operatorType) { - switch (operatorType.get()) { - case storm::expressions::OperatorType::Not: return !e1; break; - case storm::expressions::OperatorType::Minus: return -e1; break; - default: STORM_LOG_ASSERT(false, "Invalid operation."); break; - } - } else { - return e1; - } - } catch (storm::exceptions::InvalidTypeException const& e) { - pass = false; - } - } - return manager->boolean(false); + expressionCreator->setAcceptDoubleLiterals(flag); } + - storm::expressions::Expression ExpressionParser::createRationalLiteralExpression(storm::RationalNumber const& value, bool& pass) const { - // If we are not supposed to accept double expressions, we reject it by setting pass to false. - if (!this->acceptDoubleLiterals) { - pass = false; - } - - if (this->createExpressions) { - return manager->rational(value); - } else { - return manager->boolean(false); - } - } - - storm::expressions::Expression ExpressionParser::createIntegerLiteralExpression(int value, bool& pass) const { - if (this->createExpressions) { - return manager->integer(value); - } else { - return manager->boolean(false); - } - } - - storm::expressions::Expression ExpressionParser::createMinimumMaximumExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const { - if (this->createExpressions) { - try { - switch (operatorType) { - case storm::expressions::OperatorType::Min: return storm::expressions::minimum(e1, e2); break; - case storm::expressions::OperatorType::Max: return storm::expressions::maximum(e1, e2); break; - default: STORM_LOG_ASSERT(false, "Invalid operation."); break; - } - } catch (storm::exceptions::InvalidTypeException const& e) { - pass = false; - } - } - return manager->boolean(false); - } - - storm::expressions::Expression ExpressionParser::createFloorCeilExpression(storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e1, bool& pass) const { - if (this->createExpressions) { - try { - switch (operatorType) { - case storm::expressions::OperatorType::Floor: return storm::expressions::floor(e1); break; - case storm::expressions::OperatorType::Ceil: return storm::expressions::ceil(e1); break; - default: STORM_LOG_ASSERT(false, "Invalid operation."); break; - } - } catch (storm::exceptions::InvalidTypeException const& e) { - pass = false; - } - } - return manager->boolean(false); - } - - storm::expressions::Expression ExpressionParser::getIdentifierExpression(std::string const& identifier, bool allowBacktracking, bool& pass) const { - if (this->createExpressions) { - STORM_LOG_THROW(this->identifiers_ != nullptr, storm::exceptions::WrongFormatException, "Unable to substitute identifier expressions without given mapping."); - storm::expressions::Expression const* expression = this->identifiers_->find(identifier); - if (expression == nullptr) { - pass = false; - return manager->boolean(false); - } - return *expression; - } else { - return manager->boolean(false); - } - } - bool ExpressionParser::isValidIdentifier(std::string const& identifier) { if (this->invalidIdentifiers_.find(identifier) != nullptr) { return false; diff --git a/src/parser/ExpressionParser.h b/src/parser/ExpressionParser.h index 077be8db2..15c039255 100644 --- a/src/parser/ExpressionParser.h +++ b/src/parser/ExpressionParser.h @@ -1,16 +1,19 @@ -#ifndef STORM_PARSER_EXPRESSIONPARSER_H_ -#define STORM_PARSER_EXPRESSIONPARSER_H_ +#pragma once #include #include "src/parser/SpiritParserDefinitions.h" #include "src/parser/SpiritErrorHandler.h" -#include "src/storage/expressions/Expression.h" -#include "src/storage/expressions/ExpressionManager.h" +#include "src/storage/expressions/OperatorType.h" -#include "src/adapters/CarlAdapter.h" +#include "src/adapters/NumberAdapter.h" namespace storm { + namespace expressions { + class Expression; + class ExpressionManager; + } + namespace parser { template struct RationalPolicies : boost::spirit::qi::strict_real_policies { @@ -22,6 +25,8 @@ namespace storm { static bool parse_inf(It&, It const&, Attr&) { return false; } }; + class ExpressionCreator; + class ExpressionParser : public qi::grammar { public: /*! @@ -197,33 +202,9 @@ namespace storm { // A parser used for recognizing the operators at the "power" precedence level. prefixPowerOperatorStruct prefixPowerOperator_; - struct trueFalseOperatorStruct : qi::symbols { - trueFalseOperatorStruct(storm::expressions::ExpressionManager const& manager) { - add - ("true", manager.boolean(true)) - ("false", manager.boolean(false)); - } - }; - - // A parser used for recognizing the literals true and false. - trueFalseOperatorStruct trueFalse_; - - // The manager responsible for the expressions. - std::shared_ptr manager; - - // A flag that indicates whether expressions should actually be generated or just a syntax check shall be - // performed. - bool createExpressions; - - // A flag that indicates whether double literals are accepted. - bool acceptDoubleLiterals; - // A flag that indicates whether the mapping must be deleted on unsetting. - bool deleteIdentifierMapping; + ExpressionCreator* expressionCreator; - // The currently used mapping of identifiers to expressions. This is used if the parser is set to create - // expressions. - qi::symbols const* identifiers_; // The symbol table of invalid identifiers. qi::symbols invalidIdentifiers_; @@ -250,21 +231,6 @@ namespace storm { // Parser that is used to recognize doubles only (as opposed to Spirit's double_ parser). boost::spirit::qi::real_parser> rationalLiteral_; - // Helper functions to create expressions. - storm::expressions::Expression createIteExpression(storm::expressions::Expression e1, storm::expressions::Expression e2, storm::expressions::Expression e3, bool& pass) const; - storm::expressions::Expression createOrExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const; - storm::expressions::Expression createAndExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const; - storm::expressions::Expression createRelationalExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const; - storm::expressions::Expression createEqualsExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const; - storm::expressions::Expression createPlusExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const; - storm::expressions::Expression createMultExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const; - storm::expressions::Expression createPowerExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const; - storm::expressions::Expression createUnaryExpression(boost::optional const& operatorType, storm::expressions::Expression const& e1, bool& pass) const; - storm::expressions::Expression createRationalLiteralExpression(storm::RationalNumber const& value, bool& pass) const; - storm::expressions::Expression createIntegerLiteralExpression(int value, bool& pass) const; - storm::expressions::Expression createMinimumMaximumExpression(storm::expressions::Expression const& e1, storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e2, bool& pass) const; - storm::expressions::Expression createFloorCeilExpression(storm::expressions::OperatorType const& operatorType, storm::expressions::Expression const& e1, bool& pass) const; - storm::expressions::Expression getIdentifierExpression(std::string const& identifier, bool allowBacktracking, bool& pass) const; bool isValidIdentifier(std::string const& identifier); @@ -274,4 +240,3 @@ namespace storm { } // namespace parser } // namespace storm -#endif /* STORM_PARSER_EXPRESSIONPARSER_H_ */ diff --git a/src/parser/FormulaParser.cpp b/src/parser/FormulaParser.cpp index f6aaf82a4..2bf1c392d 100644 --- a/src/parser/FormulaParser.cpp +++ b/src/parser/FormulaParser.cpp @@ -11,173 +11,17 @@ #include "src/exceptions/WrongFormatException.h" #include "src/storage/expressions/ExpressionEvaluator.h" +#include "FormulaParserGrammar.h" +#include "src/storage/expressions/ExpressionManager.h" namespace storm { namespace parser { - class FormulaParserGrammar : public qi::grammar>(), Skipper> { - public: - FormulaParserGrammar(std::shared_ptr const& manager = std::shared_ptr(new storm::expressions::ExpressionManager())); - - FormulaParserGrammar(FormulaParserGrammar const& other) = default; - FormulaParserGrammar& operator=(FormulaParserGrammar const& other) = default; - - /*! - * Adds an identifier and the expression it is supposed to be replaced with. This can, for example be used - * to substitute special identifiers in the formula by expressions. - * - * @param identifier The identifier that is supposed to be substituted. - * @param expression The expression it is to be substituted with. - */ - void addIdentifierExpression(std::string const& identifier, storm::expressions::Expression const& expression); - - private: - struct keywordsStruct : qi::symbols { - keywordsStruct() { - add - ("true", 1) - ("false", 2) - ("min", 3) - ("max", 4) - ("F", 5) - ("G", 6) - ("X", 7); - } - }; - - // A parser used for recognizing the keywords. - keywordsStruct keywords_; - - struct relationalOperatorStruct : qi::symbols { - relationalOperatorStruct() { - add - (">=", storm::logic::ComparisonType::GreaterEqual) - (">", storm::logic::ComparisonType::Greater) - ("<=", storm::logic::ComparisonType::LessEqual) - ("<", storm::logic::ComparisonType::Less); - } - }; - - // A parser used for recognizing the operators at the "relational" precedence level. - relationalOperatorStruct relationalOperator_; - - struct binaryBooleanOperatorStruct : qi::symbols { - binaryBooleanOperatorStruct() { - add - ("&", storm::logic::BinaryBooleanStateFormula::OperatorType::And) - ("|", storm::logic::BinaryBooleanStateFormula::OperatorType::Or); - } - }; - - // A parser used for recognizing the operators at the "binary" precedence level. - binaryBooleanOperatorStruct binaryBooleanOperator_; - - struct unaryBooleanOperatorStruct : qi::symbols { - unaryBooleanOperatorStruct() { - add - ("!", storm::logic::UnaryBooleanStateFormula::OperatorType::Not); - } - }; - - // A parser used for recognizing the operators at the "unary" precedence level. - unaryBooleanOperatorStruct unaryBooleanOperator_; - - struct optimalityOperatorStruct : qi::symbols { - optimalityOperatorStruct() { - add - ("min", storm::OptimizationDirection::Minimize) - ("max", storm::OptimizationDirection::Maximize); - } - }; - - // A parser used for recognizing the optimality operators. - optimalityOperatorStruct optimalityOperator_; - - struct rewardMeasureTypeStruct : qi::symbols { - rewardMeasureTypeStruct() { - add - ("exp", storm::logic::RewardMeasureType::Expectation) - ("var", storm::logic::RewardMeasureType::Variance); - } - }; + + FormulaParser::FormulaParser() : manager(new storm::expressions::ExpressionManager()), grammar(new FormulaParserGrammar(manager)) { + // Intentionally left empty. + } - // A parser used for recognizing the reward measure types. - rewardMeasureTypeStruct rewardMeasureType_; - - // The manager used to parse expressions. - std::shared_ptr manager; - - // Parser and manager used for recognizing expressions. - storm::parser::ExpressionParser expressionParser; - - // A symbol table that is a mapping from identifiers that can be used in expressions to the expressions - // they are to be replaced with. - qi::symbols identifiers_; - - qi::rule>(), Skipper> start; - - qi::rule, boost::optional, boost::optional>, Skipper> operatorInformation; - qi::rule rewardMeasureType; - qi::rule(), Skipper> probabilityOperator; - qi::rule(), Skipper> rewardOperator; - qi::rule(), Skipper> timeOperator; - qi::rule(), Skipper> longRunAverageOperator; - - qi::rule(), Skipper> simpleFormula; - qi::rule(), Skipper> stateFormula; - qi::rule(storm::logic::FormulaContext), Skipper> pathFormula; - qi::rule(storm::logic::FormulaContext), Skipper> pathFormulaWithoutUntil; - qi::rule(), Skipper> simplePathFormula; - qi::rule(), Skipper> atomicStateFormula; - qi::rule(), Skipper> operatorFormula; - qi::rule label; - qi::rule rewardModelName; - - qi::rule(), Skipper> andStateFormula; - qi::rule(), Skipper> orStateFormula; - qi::rule(), Skipper> notStateFormula; - qi::rule(), Skipper> labelFormula; - qi::rule(), Skipper> expressionFormula; - qi::rule(), qi::locals, Skipper> booleanLiteralFormula; - - qi::rule(storm::logic::FormulaContext), Skipper> conditionalFormula; - qi::rule(storm::logic::FormulaContext), Skipper> eventuallyFormula; - qi::rule(storm::logic::FormulaContext), Skipper> nextFormula; - qi::rule(storm::logic::FormulaContext), Skipper> globallyFormula; - qi::rule(storm::logic::FormulaContext), Skipper> untilFormula; - qi::rule, uint_fast64_t>(), Skipper> timeBound; - - qi::rule(), Skipper> rewardPathFormula; - qi::rule(), Skipper> cumulativeRewardFormula; - qi::rule(), Skipper> instantaneousRewardFormula; - qi::rule(), Skipper> longRunAverageRewardFormula; - - // Parser that is used to recognize doubles only (as opposed to Spirit's double_ parser). - boost::spirit::qi::real_parser> strict_double; - - // Methods that actually create the expression objects. - std::shared_ptr createInstantaneousRewardFormula(boost::variant const& timeBound) const; - std::shared_ptr createCumulativeRewardFormula(boost::variant const& timeBound) const; - std::shared_ptr createLongRunAverageRewardFormula() const; - std::shared_ptr createAtomicExpressionFormula(storm::expressions::Expression const& expression) const; - std::shared_ptr createBooleanLiteralFormula(bool literal) const; - std::shared_ptr createAtomicLabelFormula(std::string const& label) const; - std::shared_ptr createEventuallyFormula(boost::optional, uint_fast64_t>> const& timeBound, storm::logic::FormulaContext context, std::shared_ptr const& subformula) const; - std::shared_ptr createGloballyFormula(std::shared_ptr const& subformula) const; - std::shared_ptr createNextFormula(std::shared_ptr const& subformula) const; - std::shared_ptr createUntilFormula(std::shared_ptr const& leftSubformula, boost::optional, uint_fast64_t>> const& timeBound, std::shared_ptr const& rightSubformula); - std::shared_ptr createConditionalFormula(std::shared_ptr const& leftSubformula, std::shared_ptr const& rightSubformula, storm::logic::FormulaContext context) const; - storm::logic::OperatorInformation createOperatorInformation(boost::optional const& optimizationDirection, boost::optional const& comparisonType, boost::optional const& threshold) const; - std::shared_ptr createLongRunAverageOperatorFormula(storm::logic::OperatorInformation const& operatorInformation, std::shared_ptr const& subformula) const; - std::shared_ptr createRewardOperatorFormula(boost::optional const& rewardMeasureType, boost::optional const& rewardModelName, storm::logic::OperatorInformation const& operatorInformation, std::shared_ptr const& subformula) const; - std::shared_ptr createTimeOperatorFormula(boost::optional const& rewardMeasureType, storm::logic::OperatorInformation const& operatorInformation, std::shared_ptr const& subformula) const; - std::shared_ptr createProbabilityOperatorFormula(storm::logic::OperatorInformation const& operatorInformation, std::shared_ptr const& subformula); - std::shared_ptr createBinaryBooleanStateFormula(std::shared_ptr const& leftSubformula, std::shared_ptr const& rightSubformula, storm::logic::BinaryBooleanStateFormula::OperatorType operatorType); - std::shared_ptr createUnaryBooleanStateFormula(std::shared_ptr const& subformula, boost::optional const& operatorType); - - // An error handler function. - phoenix::function handler; - }; FormulaParser::FormulaParser(std::shared_ptr const& manager) : manager(manager), grammar(new FormulaParserGrammar(manager)) { // Intentionally left empty. @@ -256,278 +100,5 @@ namespace storm { grammar->addIdentifierExpression(identifier, expression); } - FormulaParserGrammar::FormulaParserGrammar(std::shared_ptr const& manager) : FormulaParserGrammar::base_type(start), manager(manager), expressionParser(*manager, keywords_, true, true) { - // Register all variables so we can parse them in the expressions. - for (auto variableTypePair : *manager) { - identifiers_.add(variableTypePair.first.getName(), variableTypePair.first); - } - // Set the identifier mapping to actually generate expressions. - expressionParser.setIdentifierMapping(&identifiers_); - - longRunAverageRewardFormula = (qi::lit("LRA") | qi::lit("S"))[qi::_val = phoenix::bind(&FormulaParserGrammar::createLongRunAverageRewardFormula, phoenix::ref(*this))]; - longRunAverageRewardFormula.name("long run average reward formula"); - - instantaneousRewardFormula = (qi::lit("I=") >> strict_double)[qi::_val = phoenix::bind(&FormulaParserGrammar::createInstantaneousRewardFormula, phoenix::ref(*this), qi::_1)] | (qi::lit("I=") > qi::uint_)[qi::_val = phoenix::bind(&FormulaParserGrammar::createInstantaneousRewardFormula, phoenix::ref(*this), qi::_1)]; - instantaneousRewardFormula.name("instantaneous reward formula"); - - cumulativeRewardFormula = (qi::lit("C<=") >> strict_double)[qi::_val = phoenix::bind(&FormulaParserGrammar::createCumulativeRewardFormula, phoenix::ref(*this), qi::_1)] | (qi::lit("C<=") > qi::uint_)[qi::_val = phoenix::bind(&FormulaParserGrammar::createCumulativeRewardFormula, phoenix::ref(*this), qi::_1)]; - cumulativeRewardFormula.name("cumulative reward formula"); - - rewardPathFormula = longRunAverageRewardFormula | conditionalFormula(storm::logic::FormulaContext::Reward) | eventuallyFormula(storm::logic::FormulaContext::Reward) | cumulativeRewardFormula | instantaneousRewardFormula; - rewardPathFormula.name("reward path formula"); - - expressionFormula = expressionParser[qi::_val = phoenix::bind(&FormulaParserGrammar::createAtomicExpressionFormula, phoenix::ref(*this), qi::_1)]; - expressionFormula.name("expression formula"); - - label = qi::as_string[qi::raw[qi::lexeme[((qi::alpha | qi::char_('_')) >> *(qi::alnum | qi::char_('_')))]]]; - label.name("label"); - - labelFormula = (qi::lit("\"") >> label >> qi::lit("\""))[qi::_val = phoenix::bind(&FormulaParserGrammar::createAtomicLabelFormula, phoenix::ref(*this), qi::_1)]; - labelFormula.name("label formula"); - - booleanLiteralFormula = (qi::lit("true")[qi::_a = true] | qi::lit("false")[qi::_a = false])[qi::_val = phoenix::bind(&FormulaParserGrammar::createBooleanLiteralFormula, phoenix::ref(*this), qi::_a)]; - booleanLiteralFormula.name("boolean literal formula"); - - operatorFormula = probabilityOperator | rewardOperator | longRunAverageOperator | timeOperator; - operatorFormula.name("operator formulas"); - - atomicStateFormula = booleanLiteralFormula | labelFormula | expressionFormula | (qi::lit("(") > stateFormula > qi::lit(")")) | operatorFormula; - atomicStateFormula.name("atomic state formula"); - - notStateFormula = (-unaryBooleanOperator_ >> atomicStateFormula)[qi::_val = phoenix::bind(&FormulaParserGrammar::createUnaryBooleanStateFormula, phoenix::ref(*this), qi::_2, qi::_1)]; - notStateFormula.name("negation formula"); - - eventuallyFormula = (qi::lit("F") >> -timeBound >> pathFormulaWithoutUntil(qi::_r1))[qi::_val = phoenix::bind(&FormulaParserGrammar::createEventuallyFormula, phoenix::ref(*this), qi::_1, qi::_r1, qi::_2)]; - eventuallyFormula.name("eventually formula"); - - globallyFormula = (qi::lit("G") >> pathFormulaWithoutUntil(qi::_r1))[qi::_val = phoenix::bind(&FormulaParserGrammar::createGloballyFormula, phoenix::ref(*this), qi::_1)]; - globallyFormula.name("globally formula"); - - nextFormula = (qi::lit("X") >> pathFormulaWithoutUntil(qi::_r1))[qi::_val = phoenix::bind(&FormulaParserGrammar::createNextFormula, phoenix::ref(*this), qi::_1)]; - nextFormula.name("next formula"); - - pathFormulaWithoutUntil = eventuallyFormula(qi::_r1) | globallyFormula(qi::_r1) | nextFormula(qi::_r1) | stateFormula; - pathFormulaWithoutUntil.name("path formula"); - - untilFormula = pathFormulaWithoutUntil(qi::_r1)[qi::_val = qi::_1] >> *(qi::lit("U") >> -timeBound >> pathFormulaWithoutUntil(qi::_r1))[qi::_val = phoenix::bind(&FormulaParserGrammar::createUntilFormula, phoenix::ref(*this), qi::_val, qi::_1, qi::_2)]; - untilFormula.name("until formula"); - - conditionalFormula = untilFormula(qi::_r1)[qi::_val = qi::_1] >> *(qi::lit("||") >> untilFormula(storm::logic::FormulaContext::Probability))[qi::_val = phoenix::bind(&FormulaParserGrammar::createConditionalFormula, phoenix::ref(*this), qi::_val, qi::_1, qi::_r1)]; - conditionalFormula.name("conditional formula"); - - timeBound = (qi::lit("[") > qi::double_ > qi::lit(",") > qi::double_ > qi::lit("]"))[qi::_val = phoenix::construct>(qi::_1, qi::_2)] | (qi::lit("<=") >> strict_double)[qi::_val = phoenix::construct>(0, qi::_1)] | (qi::lit("<=") > qi::uint_)[qi::_val = qi::_1]; - timeBound.name("time bound"); - - pathFormula = conditionalFormula(qi::_r1); - pathFormula.name("path formula"); - - rewardMeasureType = qi::lit("[") >> rewardMeasureType_ >> qi::lit("]"); - rewardMeasureType.name("reward measure type"); - - operatorInformation = (-optimalityOperator_[qi::_a = qi::_1] >> ((relationalOperator_[qi::_b = qi::_1] > expressionParser[qi::_c = qi::_1]) | (qi::lit("=") > qi::lit("?"))))[qi::_val = phoenix::bind(&FormulaParserGrammar::createOperatorInformation, phoenix::ref(*this), qi::_a, qi::_b, qi::_c)]; - operatorInformation.name("operator information"); - - longRunAverageOperator = ((qi::lit("LRA") | qi::lit("S")) > operatorInformation > qi::lit("[") > stateFormula > qi::lit("]"))[qi::_val = phoenix::bind(&FormulaParserGrammar::createLongRunAverageOperatorFormula, phoenix::ref(*this), qi::_1, qi::_2)]; - longRunAverageOperator.name("long-run average operator"); - - rewardModelName = qi::lit("{\"") > label > qi::lit("\"}"); - rewardModelName.name("reward model name"); - - rewardOperator = (qi::lit("R") > -rewardMeasureType > -rewardModelName > operatorInformation > qi::lit("[") > rewardPathFormula > qi::lit("]"))[qi::_val = phoenix::bind(&FormulaParserGrammar::createRewardOperatorFormula, phoenix::ref(*this), qi::_1, qi::_2, qi::_3, qi::_4)]; - rewardOperator.name("reward operator"); - - timeOperator = (qi::lit("T") > -rewardMeasureType > operatorInformation > qi::lit("[") > eventuallyFormula(storm::logic::FormulaContext::Time) > qi::lit("]"))[qi::_val = phoenix::bind(&FormulaParserGrammar::createTimeOperatorFormula, phoenix::ref(*this), qi::_1, qi::_2, qi::_3)]; - timeOperator.name("time operator"); - - probabilityOperator = (qi::lit("P") > operatorInformation > qi::lit("[") > pathFormula(storm::logic::FormulaContext::Probability) > qi::lit("]"))[qi::_val = phoenix::bind(&FormulaParserGrammar::createProbabilityOperatorFormula, phoenix::ref(*this), qi::_1, qi::_2)]; - probabilityOperator.name("probability operator"); - - andStateFormula = notStateFormula[qi::_val = qi::_1] >> *(qi::lit("&") >> notStateFormula)[qi::_val = phoenix::bind(&FormulaParserGrammar::createBinaryBooleanStateFormula, phoenix::ref(*this), qi::_val, qi::_1, storm::logic::BinaryBooleanStateFormula::OperatorType::And)]; - andStateFormula.name("and state formula"); - - orStateFormula = andStateFormula[qi::_val = qi::_1] >> *(qi::lit("|") >> andStateFormula)[qi::_val = phoenix::bind(&FormulaParserGrammar::createBinaryBooleanStateFormula, phoenix::ref(*this), qi::_val, qi::_1, storm::logic::BinaryBooleanStateFormula::OperatorType::Or)]; - orStateFormula.name("or state formula"); - - stateFormula = (orStateFormula); - stateFormula.name("state formula"); - - start = qi::eps > (stateFormula % +(qi::char_("\n;"))) >> qi::skip(boost::spirit::ascii::space | qi::lit("//") >> *(qi::char_ - (qi::eol | qi::eoi)))[qi::eps] >> qi::eoi; - start.name("start"); - - //Enable the following lines to print debug output for most the rules. - /* - debug(start); - debug(stateFormula); - debug(orStateFormula); - debug(andStateFormula); - debug(probabilityOperator); - debug(rewardOperator); - debug(longRunAverageOperator); - debug(timeOperator); - debug(pathFormulaWithoutUntil); - debug(pathFormula); -// debug(conditionalFormula); - debug(nextFormula); - debug(globallyFormula); -// debug(eventuallyFormula); - debug(atomicStateFormula); - debug(booleanLiteralFormula); - debug(labelFormula); - debug(expressionFormula); - debug(rewardPathFormula); - debug(cumulativeRewardFormula); - debug(instantaneousRewardFormula); - */ - - // Enable error reporting. - qi::on_error(start, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(stateFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(orStateFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(andStateFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(probabilityOperator, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(rewardOperator, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(longRunAverageOperator, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(timeOperator, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(operatorInformation, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(pathFormulaWithoutUntil, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(pathFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(conditionalFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(untilFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(nextFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(globallyFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(eventuallyFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(atomicStateFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(booleanLiteralFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(labelFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(expressionFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(rewardPathFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(cumulativeRewardFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - qi::on_error(instantaneousRewardFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); - } - - void FormulaParserGrammar::addIdentifierExpression(std::string const& identifier, storm::expressions::Expression const& expression) { - this->identifiers_.add(identifier, expression); - } - - std::shared_ptr FormulaParserGrammar::createInstantaneousRewardFormula(boost::variant const& timeBound) const { - if (timeBound.which() == 0) { - return std::shared_ptr(new storm::logic::InstantaneousRewardFormula(static_cast(boost::get(timeBound)))); - } else { - double timeBoundAsDouble = boost::get(timeBound); - STORM_LOG_THROW(timeBoundAsDouble >= 0, storm::exceptions::WrongFormatException, "Instantaneous reward property must have non-negative bound."); - return std::shared_ptr(new storm::logic::InstantaneousRewardFormula(timeBoundAsDouble)); - } - } - - std::shared_ptr FormulaParserGrammar::createCumulativeRewardFormula(boost::variant const& timeBound) const { - if (timeBound.which() == 0) { - return std::shared_ptr(new storm::logic::CumulativeRewardFormula(static_cast(boost::get(timeBound)))); - } else { - double timeBoundAsDouble = boost::get(timeBound); - STORM_LOG_THROW(timeBoundAsDouble >= 0, storm::exceptions::WrongFormatException, "Cumulative reward property must have non-negative bound."); - return std::shared_ptr(new storm::logic::CumulativeRewardFormula(static_cast(timeBoundAsDouble))); - } - } - - std::shared_ptr FormulaParserGrammar::createLongRunAverageRewardFormula() const { - return std::shared_ptr(new storm::logic::LongRunAverageRewardFormula()); - } - - std::shared_ptr FormulaParserGrammar::createAtomicExpressionFormula(storm::expressions::Expression const& expression) const { - STORM_LOG_THROW(expression.hasBooleanType(), storm::exceptions::WrongFormatException, "Expected expression of boolean type."); - return std::shared_ptr(new storm::logic::AtomicExpressionFormula(expression)); - } - - std::shared_ptr FormulaParserGrammar::createBooleanLiteralFormula(bool literal) const { - return std::shared_ptr(new storm::logic::BooleanLiteralFormula(literal)); - } - - std::shared_ptr FormulaParserGrammar::createAtomicLabelFormula(std::string const& label) const { - return std::shared_ptr(new storm::logic::AtomicLabelFormula(label)); - } - - std::shared_ptr FormulaParserGrammar::createEventuallyFormula(boost::optional, uint_fast64_t>> const& timeBound, storm::logic::FormulaContext context, std::shared_ptr const& subformula) const { - if (timeBound) { - if (timeBound.get().which() == 0) { - std::pair const& bounds = boost::get>(timeBound.get()); - return std::shared_ptr(new storm::logic::BoundedUntilFormula(createBooleanLiteralFormula(true), subformula, bounds.first, bounds.second)); - } else { - return std::shared_ptr(new storm::logic::BoundedUntilFormula(createBooleanLiteralFormula(true), subformula, static_cast(boost::get(timeBound.get())))); - } - } else { - return std::shared_ptr(new storm::logic::EventuallyFormula(subformula, context)); - } - } - - std::shared_ptr FormulaParserGrammar::createGloballyFormula(std::shared_ptr const& subformula) const { - return std::shared_ptr(new storm::logic::GloballyFormula(subformula)); - } - - std::shared_ptr FormulaParserGrammar::createNextFormula(std::shared_ptr const& subformula) const { - return std::shared_ptr(new storm::logic::NextFormula(subformula)); - } - - std::shared_ptr FormulaParserGrammar::createUntilFormula(std::shared_ptr const& leftSubformula, boost::optional, uint_fast64_t>> const& timeBound, std::shared_ptr const& rightSubformula) { - if (timeBound) { - if (timeBound.get().which() == 0) { - std::pair const& bounds = boost::get>(timeBound.get()); - return std::shared_ptr(new storm::logic::BoundedUntilFormula(leftSubformula, rightSubformula, bounds.first, bounds.second)); - } else { - return std::shared_ptr(new storm::logic::BoundedUntilFormula(leftSubformula, rightSubformula, static_cast(boost::get(timeBound.get())))); - } - } else { - return std::shared_ptr(new storm::logic::UntilFormula(leftSubformula, rightSubformula)); - } - } - - std::shared_ptr FormulaParserGrammar::createConditionalFormula(std::shared_ptr const& leftSubformula, std::shared_ptr const& rightSubformula, storm::logic::FormulaContext context) const { - return std::shared_ptr(new storm::logic::ConditionalFormula(leftSubformula, rightSubformula, context)); - } - - storm::logic::OperatorInformation FormulaParserGrammar::createOperatorInformation(boost::optional const& optimizationDirection, boost::optional const& comparisonType, boost::optional const& threshold) const { - if (comparisonType && threshold) { - storm::expressions::ExpressionEvaluator evaluator(*manager); - return storm::logic::OperatorInformation(optimizationDirection, storm::logic::Bound(comparisonType.get(), evaluator.asRational(threshold.get()))); - } else { - return storm::logic::OperatorInformation(optimizationDirection, boost::none); - } - } - - std::shared_ptr FormulaParserGrammar::createLongRunAverageOperatorFormula(storm::logic::OperatorInformation const& operatorInformation, std::shared_ptr const& subformula) const { - return std::shared_ptr(new storm::logic::LongRunAverageOperatorFormula(subformula, operatorInformation)); - } - - std::shared_ptr FormulaParserGrammar::createRewardOperatorFormula(boost::optional const& rewardMeasureType, boost::optional const& rewardModelName, storm::logic::OperatorInformation const& operatorInformation, std::shared_ptr const& subformula) const { - storm::logic::RewardMeasureType measureType = storm::logic::RewardMeasureType::Expectation; - if (rewardMeasureType) { - measureType = rewardMeasureType.get(); - } - return std::shared_ptr(new storm::logic::RewardOperatorFormula(subformula, rewardModelName, operatorInformation, measureType)); - } - - std::shared_ptr FormulaParserGrammar::createTimeOperatorFormula(boost::optional const& rewardMeasureType, storm::logic::OperatorInformation const& operatorInformation, std::shared_ptr const& subformula) const { - storm::logic::RewardMeasureType measureType = storm::logic::RewardMeasureType::Expectation; - if (rewardMeasureType) { - measureType = rewardMeasureType.get(); - } - return std::shared_ptr(new storm::logic::TimeOperatorFormula(subformula, operatorInformation, measureType)); - } - - std::shared_ptr FormulaParserGrammar::createProbabilityOperatorFormula(storm::logic::OperatorInformation const& operatorInformation, std::shared_ptr const& subformula) { - return std::shared_ptr(new storm::logic::ProbabilityOperatorFormula(subformula, operatorInformation)); - } - - std::shared_ptr FormulaParserGrammar::createBinaryBooleanStateFormula(std::shared_ptr const& leftSubformula, std::shared_ptr const& rightSubformula, storm::logic::BinaryBooleanStateFormula::OperatorType operatorType) { - return std::shared_ptr(new storm::logic::BinaryBooleanStateFormula(operatorType, leftSubformula, rightSubformula)); - } - - std::shared_ptr FormulaParserGrammar::createUnaryBooleanStateFormula(std::shared_ptr const& subformula, boost::optional const& operatorType) { - if (operatorType) { - return std::shared_ptr(new storm::logic::UnaryBooleanStateFormula(operatorType.get(), subformula)); - } else { - return subformula; - } - } - } // namespace parser } // namespace storm diff --git a/src/parser/FormulaParser.h b/src/parser/FormulaParser.h index f69fa6eb2..6afacf173 100644 --- a/src/parser/FormulaParser.h +++ b/src/parser/FormulaParser.h @@ -21,8 +21,9 @@ namespace storm { class FormulaParser { public: - FormulaParser(std::shared_ptr const& manager = std::shared_ptr(new storm::expressions::ExpressionManager())); - FormulaParser(storm::prism::Program const& program); + FormulaParser(); + explicit FormulaParser(std::shared_ptr const& manager); + explicit FormulaParser(storm::prism::Program const& program); FormulaParser(FormulaParser const& other); FormulaParser& operator=(FormulaParser const& other); diff --git a/src/parser/FormulaParserGrammar.cpp b/src/parser/FormulaParserGrammar.cpp new file mode 100644 index 000000000..a4bc1bc73 --- /dev/null +++ b/src/parser/FormulaParserGrammar.cpp @@ -0,0 +1,281 @@ +#include "FormulaParserGrammar.h" +#include "src/storage/expressions/ExpressionManager.h" + +namespace storm { + namespace parser { + + FormulaParserGrammar::FormulaParserGrammar(std::shared_ptr const& manager) : FormulaParserGrammar::base_type(start), manager(manager), expressionParser(*manager, keywords_, true, true) { + // Register all variables so we can parse them in the expressions. + for (auto variableTypePair : *manager) { + identifiers_.add(variableTypePair.first.getName(), variableTypePair.first); + } + // Set the identifier mapping to actually generate expressions. + expressionParser.setIdentifierMapping(&identifiers_); + + longRunAverageRewardFormula = (qi::lit("LRA") | qi::lit("S"))[qi::_val = phoenix::bind(&FormulaParserGrammar::createLongRunAverageRewardFormula, phoenix::ref(*this))]; + longRunAverageRewardFormula.name("long run average reward formula"); + + instantaneousRewardFormula = (qi::lit("I=") >> strict_double)[qi::_val = phoenix::bind(&FormulaParserGrammar::createInstantaneousRewardFormula, phoenix::ref(*this), qi::_1)] | (qi::lit("I=") > qi::uint_)[qi::_val = phoenix::bind(&FormulaParserGrammar::createInstantaneousRewardFormula, phoenix::ref(*this), qi::_1)]; + instantaneousRewardFormula.name("instantaneous reward formula"); + + cumulativeRewardFormula = (qi::lit("C<=") >> strict_double)[qi::_val = phoenix::bind(&FormulaParserGrammar::createCumulativeRewardFormula, phoenix::ref(*this), qi::_1)] | (qi::lit("C<=") > qi::uint_)[qi::_val = phoenix::bind(&FormulaParserGrammar::createCumulativeRewardFormula, phoenix::ref(*this), qi::_1)]; + cumulativeRewardFormula.name("cumulative reward formula"); + + rewardPathFormula = longRunAverageRewardFormula | conditionalFormula(storm::logic::FormulaContext::Reward) | eventuallyFormula(storm::logic::FormulaContext::Reward) | cumulativeRewardFormula | instantaneousRewardFormula; + rewardPathFormula.name("reward path formula"); + + expressionFormula = expressionParser[qi::_val = phoenix::bind(&FormulaParserGrammar::createAtomicExpressionFormula, phoenix::ref(*this), qi::_1)]; + expressionFormula.name("expression formula"); + + label = qi::as_string[qi::raw[qi::lexeme[((qi::alpha | qi::char_('_')) >> *(qi::alnum | qi::char_('_')))]]]; + label.name("label"); + + labelFormula = (qi::lit("\"") >> label >> qi::lit("\""))[qi::_val = phoenix::bind(&FormulaParserGrammar::createAtomicLabelFormula, phoenix::ref(*this), qi::_1)]; + labelFormula.name("label formula"); + + booleanLiteralFormula = (qi::lit("true")[qi::_a = true] | qi::lit("false")[qi::_a = false])[qi::_val = phoenix::bind(&FormulaParserGrammar::createBooleanLiteralFormula, phoenix::ref(*this), qi::_a)]; + booleanLiteralFormula.name("boolean literal formula"); + + operatorFormula = probabilityOperator | rewardOperator | longRunAverageOperator | timeOperator; + operatorFormula.name("operator formulas"); + + atomicStateFormula = booleanLiteralFormula | labelFormula | expressionFormula | (qi::lit("(") > stateFormula > qi::lit(")")) | operatorFormula; + atomicStateFormula.name("atomic state formula"); + + notStateFormula = (-unaryBooleanOperator_ >> atomicStateFormula)[qi::_val = phoenix::bind(&FormulaParserGrammar::createUnaryBooleanStateFormula, phoenix::ref(*this), qi::_2, qi::_1)]; + notStateFormula.name("negation formula"); + + eventuallyFormula = (qi::lit("F") >> -timeBound >> pathFormulaWithoutUntil(qi::_r1))[qi::_val = phoenix::bind(&FormulaParserGrammar::createEventuallyFormula, phoenix::ref(*this), qi::_1, qi::_r1, qi::_2)]; + eventuallyFormula.name("eventually formula"); + + globallyFormula = (qi::lit("G") >> pathFormulaWithoutUntil(qi::_r1))[qi::_val = phoenix::bind(&FormulaParserGrammar::createGloballyFormula, phoenix::ref(*this), qi::_1)]; + globallyFormula.name("globally formula"); + + nextFormula = (qi::lit("X") >> pathFormulaWithoutUntil(qi::_r1))[qi::_val = phoenix::bind(&FormulaParserGrammar::createNextFormula, phoenix::ref(*this), qi::_1)]; + nextFormula.name("next formula"); + + pathFormulaWithoutUntil = eventuallyFormula(qi::_r1) | globallyFormula(qi::_r1) | nextFormula(qi::_r1) | stateFormula; + pathFormulaWithoutUntil.name("path formula"); + + untilFormula = pathFormulaWithoutUntil(qi::_r1)[qi::_val = qi::_1] >> *(qi::lit("U") >> -timeBound >> pathFormulaWithoutUntil(qi::_r1))[qi::_val = phoenix::bind(&FormulaParserGrammar::createUntilFormula, phoenix::ref(*this), qi::_val, qi::_1, qi::_2)]; + untilFormula.name("until formula"); + + conditionalFormula = untilFormula(qi::_r1)[qi::_val = qi::_1] >> *(qi::lit("||") >> untilFormula(storm::logic::FormulaContext::Probability))[qi::_val = phoenix::bind(&FormulaParserGrammar::createConditionalFormula, phoenix::ref(*this), qi::_val, qi::_1, qi::_r1)]; + conditionalFormula.name("conditional formula"); + + timeBound = (qi::lit("[") > qi::double_ > qi::lit(",") > qi::double_ > qi::lit("]"))[qi::_val = phoenix::construct>(qi::_1, qi::_2)] | (qi::lit("<=") >> strict_double)[qi::_val = phoenix::construct>(0, qi::_1)] | (qi::lit("<=") > qi::uint_)[qi::_val = qi::_1]; + timeBound.name("time bound"); + + pathFormula = conditionalFormula(qi::_r1); + pathFormula.name("path formula"); + + rewardMeasureType = qi::lit("[") >> rewardMeasureType_ >> qi::lit("]"); + rewardMeasureType.name("reward measure type"); + + operatorInformation = (-optimalityOperator_[qi::_a = qi::_1] >> ((relationalOperator_[qi::_b = qi::_1] > expressionParser[qi::_c = qi::_1]) | (qi::lit("=") > qi::lit("?"))))[qi::_val = phoenix::bind(&FormulaParserGrammar::createOperatorInformation, phoenix::ref(*this), qi::_a, qi::_b, qi::_c)]; + operatorInformation.name("operator information"); + + longRunAverageOperator = ((qi::lit("LRA") | qi::lit("S")) > operatorInformation > qi::lit("[") > stateFormula > qi::lit("]"))[qi::_val = phoenix::bind(&FormulaParserGrammar::createLongRunAverageOperatorFormula, phoenix::ref(*this), qi::_1, qi::_2)]; + longRunAverageOperator.name("long-run average operator"); + + rewardModelName = qi::lit("{\"") > label > qi::lit("\"}"); + rewardModelName.name("reward model name"); + + rewardOperator = (qi::lit("R") > -rewardMeasureType > -rewardModelName > operatorInformation > qi::lit("[") > rewardPathFormula > qi::lit("]"))[qi::_val = phoenix::bind(&FormulaParserGrammar::createRewardOperatorFormula, phoenix::ref(*this), qi::_1, qi::_2, qi::_3, qi::_4)]; + rewardOperator.name("reward operator"); + + timeOperator = (qi::lit("T") > -rewardMeasureType > operatorInformation > qi::lit("[") > eventuallyFormula(storm::logic::FormulaContext::Time) > qi::lit("]"))[qi::_val = phoenix::bind(&FormulaParserGrammar::createTimeOperatorFormula, phoenix::ref(*this), qi::_1, qi::_2, qi::_3)]; + timeOperator.name("time operator"); + + probabilityOperator = (qi::lit("P") > operatorInformation > qi::lit("[") > pathFormula(storm::logic::FormulaContext::Probability) > qi::lit("]"))[qi::_val = phoenix::bind(&FormulaParserGrammar::createProbabilityOperatorFormula, phoenix::ref(*this), qi::_1, qi::_2)]; + probabilityOperator.name("probability operator"); + + andStateFormula = notStateFormula[qi::_val = qi::_1] >> *(qi::lit("&") >> notStateFormula)[qi::_val = phoenix::bind(&FormulaParserGrammar::createBinaryBooleanStateFormula, phoenix::ref(*this), qi::_val, qi::_1, storm::logic::BinaryBooleanStateFormula::OperatorType::And)]; + andStateFormula.name("and state formula"); + + orStateFormula = andStateFormula[qi::_val = qi::_1] >> *(qi::lit("|") >> andStateFormula)[qi::_val = phoenix::bind(&FormulaParserGrammar::createBinaryBooleanStateFormula, phoenix::ref(*this), qi::_val, qi::_1, storm::logic::BinaryBooleanStateFormula::OperatorType::Or)]; + orStateFormula.name("or state formula"); + + stateFormula = (orStateFormula); + stateFormula.name("state formula"); + + start = qi::eps > (stateFormula % +(qi::char_("\n;"))) >> qi::skip(boost::spirit::ascii::space | qi::lit("//") >> *(qi::char_ - (qi::eol | qi::eoi)))[qi::eps] >> qi::eoi; + start.name("start"); + + //Enable the following lines to print debug output for most the rules. + /* + debug(start); + debug(stateFormula); + debug(orStateFormula); + debug(andStateFormula); + debug(probabilityOperator); + debug(rewardOperator); + debug(longRunAverageOperator); + debug(timeOperator); + debug(pathFormulaWithoutUntil); + debug(pathFormula); + // debug(conditionalFormula); + debug(nextFormula); + debug(globallyFormula); + // debug(eventuallyFormula); + debug(atomicStateFormula); + debug(booleanLiteralFormula); + debug(labelFormula); + debug(expressionFormula); + debug(rewardPathFormula); + debug(cumulativeRewardFormula); + debug(instantaneousRewardFormula); + */ + + // Enable error reporting. + qi::on_error(start, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(stateFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(orStateFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(andStateFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(probabilityOperator, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(rewardOperator, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(longRunAverageOperator, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(timeOperator, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(operatorInformation, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(pathFormulaWithoutUntil, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(pathFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(conditionalFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(untilFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(nextFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(globallyFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(eventuallyFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(atomicStateFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(booleanLiteralFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(labelFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(expressionFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(rewardPathFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(cumulativeRewardFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(instantaneousRewardFormula, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + } + + void FormulaParserGrammar::addIdentifierExpression(std::string const& identifier, storm::expressions::Expression const& expression) { + this->identifiers_.add(identifier, expression); + } + + std::shared_ptr FormulaParserGrammar::createInstantaneousRewardFormula(boost::variant const& timeBound) const { + if (timeBound.which() == 0) { + return std::shared_ptr(new storm::logic::InstantaneousRewardFormula(static_cast(boost::get(timeBound)))); + } else { + double timeBoundAsDouble = boost::get(timeBound); + STORM_LOG_THROW(timeBoundAsDouble >= 0, storm::exceptions::WrongFormatException, "Instantaneous reward property must have non-negative bound."); + return std::shared_ptr(new storm::logic::InstantaneousRewardFormula(timeBoundAsDouble)); + } + } + + std::shared_ptr FormulaParserGrammar::createCumulativeRewardFormula(boost::variant const& timeBound) const { + if (timeBound.which() == 0) { + return std::shared_ptr(new storm::logic::CumulativeRewardFormula(static_cast(boost::get(timeBound)))); + } else { + double timeBoundAsDouble = boost::get(timeBound); + STORM_LOG_THROW(timeBoundAsDouble >= 0, storm::exceptions::WrongFormatException, "Cumulative reward property must have non-negative bound."); + return std::shared_ptr(new storm::logic::CumulativeRewardFormula(static_cast(timeBoundAsDouble))); + } + } + + std::shared_ptr FormulaParserGrammar::createLongRunAverageRewardFormula() const { + return std::shared_ptr(new storm::logic::LongRunAverageRewardFormula()); + } + + std::shared_ptr FormulaParserGrammar::createAtomicExpressionFormula(storm::expressions::Expression const& expression) const { + STORM_LOG_THROW(expression.hasBooleanType(), storm::exceptions::WrongFormatException, "Expected expression of boolean type."); + return std::shared_ptr(new storm::logic::AtomicExpressionFormula(expression)); + } + + std::shared_ptr FormulaParserGrammar::createBooleanLiteralFormula(bool literal) const { + return std::shared_ptr(new storm::logic::BooleanLiteralFormula(literal)); + } + + std::shared_ptr FormulaParserGrammar::createAtomicLabelFormula(std::string const& label) const { + return std::shared_ptr(new storm::logic::AtomicLabelFormula(label)); + } + + std::shared_ptr FormulaParserGrammar::createEventuallyFormula(boost::optional, uint_fast64_t>> const& timeBound, storm::logic::FormulaContext context, std::shared_ptr const& subformula) const { + if (timeBound) { + if (timeBound.get().which() == 0) { + std::pair const& bounds = boost::get>(timeBound.get()); + return std::shared_ptr(new storm::logic::BoundedUntilFormula(createBooleanLiteralFormula(true), subformula, bounds.first, bounds.second)); + } else { + return std::shared_ptr(new storm::logic::BoundedUntilFormula(createBooleanLiteralFormula(true), subformula, static_cast(boost::get(timeBound.get())))); + } + } else { + return std::shared_ptr(new storm::logic::EventuallyFormula(subformula, context)); + } + } + + std::shared_ptr FormulaParserGrammar::createGloballyFormula(std::shared_ptr const& subformula) const { + return std::shared_ptr(new storm::logic::GloballyFormula(subformula)); + } + + std::shared_ptr FormulaParserGrammar::createNextFormula(std::shared_ptr const& subformula) const { + return std::shared_ptr(new storm::logic::NextFormula(subformula)); + } + + std::shared_ptr FormulaParserGrammar::createUntilFormula(std::shared_ptr const& leftSubformula, boost::optional, uint_fast64_t>> const& timeBound, std::shared_ptr const& rightSubformula) { + if (timeBound) { + if (timeBound.get().which() == 0) { + std::pair const& bounds = boost::get>(timeBound.get()); + return std::shared_ptr(new storm::logic::BoundedUntilFormula(leftSubformula, rightSubformula, bounds.first, bounds.second)); + } else { + return std::shared_ptr(new storm::logic::BoundedUntilFormula(leftSubformula, rightSubformula, static_cast(boost::get(timeBound.get())))); + } + } else { + return std::shared_ptr(new storm::logic::UntilFormula(leftSubformula, rightSubformula)); + } + } + + std::shared_ptr FormulaParserGrammar::createConditionalFormula(std::shared_ptr const& leftSubformula, std::shared_ptr const& rightSubformula, storm::logic::FormulaContext context) const { + return std::shared_ptr(new storm::logic::ConditionalFormula(leftSubformula, rightSubformula, context)); + } + + storm::logic::OperatorInformation FormulaParserGrammar::createOperatorInformation(boost::optional const& optimizationDirection, boost::optional const& comparisonType, boost::optional const& threshold) const { + if (comparisonType && threshold) { + storm::expressions::ExpressionEvaluator evaluator(*manager); + return storm::logic::OperatorInformation(optimizationDirection, storm::logic::Bound(comparisonType.get(), evaluator.asRational(threshold.get()))); + } else { + return storm::logic::OperatorInformation(optimizationDirection, boost::none); + } + } + + std::shared_ptr FormulaParserGrammar::createLongRunAverageOperatorFormula(storm::logic::OperatorInformation const& operatorInformation, std::shared_ptr const& subformula) const { + return std::shared_ptr(new storm::logic::LongRunAverageOperatorFormula(subformula, operatorInformation)); + } + + std::shared_ptr FormulaParserGrammar::createRewardOperatorFormula(boost::optional const& rewardMeasureType, boost::optional const& rewardModelName, storm::logic::OperatorInformation const& operatorInformation, std::shared_ptr const& subformula) const { + storm::logic::RewardMeasureType measureType = storm::logic::RewardMeasureType::Expectation; + if (rewardMeasureType) { + measureType = rewardMeasureType.get(); + } + return std::shared_ptr(new storm::logic::RewardOperatorFormula(subformula, rewardModelName, operatorInformation, measureType)); + } + + std::shared_ptr FormulaParserGrammar::createTimeOperatorFormula(boost::optional const& rewardMeasureType, storm::logic::OperatorInformation const& operatorInformation, std::shared_ptr const& subformula) const { + storm::logic::RewardMeasureType measureType = storm::logic::RewardMeasureType::Expectation; + if (rewardMeasureType) { + measureType = rewardMeasureType.get(); + } + return std::shared_ptr(new storm::logic::TimeOperatorFormula(subformula, operatorInformation, measureType)); + } + + std::shared_ptr FormulaParserGrammar::createProbabilityOperatorFormula(storm::logic::OperatorInformation const& operatorInformation, std::shared_ptr const& subformula) { + return std::shared_ptr(new storm::logic::ProbabilityOperatorFormula(subformula, operatorInformation)); + } + + std::shared_ptr FormulaParserGrammar::createBinaryBooleanStateFormula(std::shared_ptr const& leftSubformula, std::shared_ptr const& rightSubformula, storm::logic::BinaryBooleanStateFormula::OperatorType operatorType) { + return std::shared_ptr(new storm::logic::BinaryBooleanStateFormula(operatorType, leftSubformula, rightSubformula)); + } + + std::shared_ptr FormulaParserGrammar::createUnaryBooleanStateFormula(std::shared_ptr const& subformula, boost::optional const& operatorType) { + if (operatorType) { + return std::shared_ptr(new storm::logic::UnaryBooleanStateFormula(operatorType.get(), subformula)); + } else { + return subformula; + } + } + + } +} \ No newline at end of file diff --git a/src/parser/FormulaParserGrammar.h b/src/parser/FormulaParserGrammar.h new file mode 100644 index 000000000..227c5aa47 --- /dev/null +++ b/src/parser/FormulaParserGrammar.h @@ -0,0 +1,185 @@ +#pragma once + +#include +#include + +#include "src/parser/SpiritErrorHandler.h" +#include "src/exceptions/WrongFormatException.h" +#include "src/logic/Formulas.h" +#include "src/parser/ExpressionParser.h" + +#include "src/storage/expressions/ExpressionEvaluator.h" + +namespace storm { + namespace logic { + class Formula; + } + + namespace parser { + + class FormulaParserGrammar : public qi::grammar>(), Skipper> { + public: + FormulaParserGrammar(std::shared_ptr const& manager); + + FormulaParserGrammar(FormulaParserGrammar const& other) = default; + FormulaParserGrammar& operator=(FormulaParserGrammar const& other) = default; + + /*! + * Adds an identifier and the expression it is supposed to be replaced with. This can, for example be used + * to substitute special identifiers in the formula by expressions. + * + * @param identifier The identifier that is supposed to be substituted. + * @param expression The expression it is to be substituted with. + */ + void addIdentifierExpression(std::string const& identifier, storm::expressions::Expression const& expression); + + private: + struct keywordsStruct : qi::symbols { + keywordsStruct() { + add + ("true", 1) + ("false", 2) + ("min", 3) + ("max", 4) + ("F", 5) + ("G", 6) + ("X", 7); + } + }; + + // A parser used for recognizing the keywords. + keywordsStruct keywords_; + + struct relationalOperatorStruct : qi::symbols { + relationalOperatorStruct() { + add + (">=", storm::logic::ComparisonType::GreaterEqual) + (">", storm::logic::ComparisonType::Greater) + ("<=", storm::logic::ComparisonType::LessEqual) + ("<", storm::logic::ComparisonType::Less); + } + }; + + // A parser used for recognizing the operators at the "relational" precedence level. + relationalOperatorStruct relationalOperator_; + + struct binaryBooleanOperatorStruct : qi::symbols { + binaryBooleanOperatorStruct() { + add + ("&", storm::logic::BinaryBooleanStateFormula::OperatorType::And) + ("|", storm::logic::BinaryBooleanStateFormula::OperatorType::Or); + } + }; + + // A parser used for recognizing the operators at the "binary" precedence level. + binaryBooleanOperatorStruct binaryBooleanOperator_; + + struct unaryBooleanOperatorStruct : qi::symbols { + unaryBooleanOperatorStruct() { + add + ("!", storm::logic::UnaryBooleanStateFormula::OperatorType::Not); + } + }; + + // A parser used for recognizing the operators at the "unary" precedence level. + unaryBooleanOperatorStruct unaryBooleanOperator_; + + struct optimalityOperatorStruct : qi::symbols { + optimalityOperatorStruct() { + add + ("min", storm::OptimizationDirection::Minimize) + ("max", storm::OptimizationDirection::Maximize); + } + }; + + // A parser used for recognizing the optimality operators. + optimalityOperatorStruct optimalityOperator_; + + struct rewardMeasureTypeStruct : qi::symbols { + rewardMeasureTypeStruct() { + add + ("exp", storm::logic::RewardMeasureType::Expectation) + ("var", storm::logic::RewardMeasureType::Variance); + } + }; + + // A parser used for recognizing the reward measure types. + rewardMeasureTypeStruct rewardMeasureType_; + + // The manager used to parse expressions. + std::shared_ptr manager; + + // Parser and manager used for recognizing expressions. + storm::parser::ExpressionParser expressionParser; + + // A symbol table that is a mapping from identifiers that can be used in expressions to the expressions + // they are to be replaced with. + qi::symbols identifiers_; + + qi::rule>(), Skipper> start; + + qi::rule, boost::optional, boost::optional>, Skipper> operatorInformation; + qi::rule rewardMeasureType; + qi::rule(), Skipper> probabilityOperator; + qi::rule(), Skipper> rewardOperator; + qi::rule(), Skipper> timeOperator; + qi::rule(), Skipper> longRunAverageOperator; + + qi::rule(), Skipper> simpleFormula; + qi::rule(), Skipper> stateFormula; + qi::rule(storm::logic::FormulaContext), Skipper> pathFormula; + qi::rule(storm::logic::FormulaContext), Skipper> pathFormulaWithoutUntil; + qi::rule(), Skipper> simplePathFormula; + qi::rule(), Skipper> atomicStateFormula; + qi::rule(), Skipper> operatorFormula; + qi::rule label; + qi::rule rewardModelName; + + qi::rule(), Skipper> andStateFormula; + qi::rule(), Skipper> orStateFormula; + qi::rule(), Skipper> notStateFormula; + qi::rule(), Skipper> labelFormula; + qi::rule(), Skipper> expressionFormula; + qi::rule(), qi::locals, Skipper> booleanLiteralFormula; + + qi::rule(storm::logic::FormulaContext), Skipper> conditionalFormula; + qi::rule(storm::logic::FormulaContext), Skipper> eventuallyFormula; + qi::rule(storm::logic::FormulaContext), Skipper> nextFormula; + qi::rule(storm::logic::FormulaContext), Skipper> globallyFormula; + qi::rule(storm::logic::FormulaContext), Skipper> untilFormula; + qi::rule, uint_fast64_t>(), Skipper> timeBound; + + qi::rule(), Skipper> rewardPathFormula; + qi::rule(), Skipper> cumulativeRewardFormula; + qi::rule(), Skipper> instantaneousRewardFormula; + qi::rule(), Skipper> longRunAverageRewardFormula; + + // Parser that is used to recognize doubles only (as opposed to Spirit's double_ parser). + boost::spirit::qi::real_parser> strict_double; + + // Methods that actually create the expression objects. + std::shared_ptr createInstantaneousRewardFormula(boost::variant const& timeBound) const; + std::shared_ptr createCumulativeRewardFormula(boost::variant const& timeBound) const; + std::shared_ptr createLongRunAverageRewardFormula() const; + std::shared_ptr createAtomicExpressionFormula(storm::expressions::Expression const& expression) const; + std::shared_ptr createBooleanLiteralFormula(bool literal) const; + std::shared_ptr createAtomicLabelFormula(std::string const& label) const; + std::shared_ptr createEventuallyFormula(boost::optional, uint_fast64_t>> const& timeBound, storm::logic::FormulaContext context, std::shared_ptr const& subformula) const; + std::shared_ptr createGloballyFormula(std::shared_ptr const& subformula) const; + std::shared_ptr createNextFormula(std::shared_ptr const& subformula) const; + std::shared_ptr createUntilFormula(std::shared_ptr const& leftSubformula, boost::optional, uint_fast64_t>> const& timeBound, std::shared_ptr const& rightSubformula); + std::shared_ptr createConditionalFormula(std::shared_ptr const& leftSubformula, std::shared_ptr const& rightSubformula, storm::logic::FormulaContext context) const; + storm::logic::OperatorInformation createOperatorInformation(boost::optional const& optimizationDirection, boost::optional const& comparisonType, boost::optional const& threshold) const; + std::shared_ptr createLongRunAverageOperatorFormula(storm::logic::OperatorInformation const& operatorInformation, std::shared_ptr const& subformula) const; + std::shared_ptr createRewardOperatorFormula(boost::optional const& rewardMeasureType, boost::optional const& rewardModelName, storm::logic::OperatorInformation const& operatorInformation, std::shared_ptr const& subformula) const; + std::shared_ptr createTimeOperatorFormula(boost::optional const& rewardMeasureType, storm::logic::OperatorInformation const& operatorInformation, std::shared_ptr const& subformula) const; + std::shared_ptr createProbabilityOperatorFormula(storm::logic::OperatorInformation const& operatorInformation, std::shared_ptr const& subformula); + std::shared_ptr createBinaryBooleanStateFormula(std::shared_ptr const& leftSubformula, std::shared_ptr const& rightSubformula, storm::logic::BinaryBooleanStateFormula::OperatorType operatorType); + std::shared_ptr createUnaryBooleanStateFormula(std::shared_ptr const& subformula, boost::optional const& operatorType); + + // An error handler function. + phoenix::function handler; + }; + + } +} \ No newline at end of file diff --git a/src/parser/JaniParser.cpp b/src/parser/JaniParser.cpp index 3986f5bec..6953c70ea 100644 --- a/src/parser/JaniParser.cpp +++ b/src/parser/JaniParser.cpp @@ -26,6 +26,7 @@ namespace storm { const bool JaniParser::defaultBooleanInitialValue = false; const double JaniParser::defaultRationalInitialValue = 0.0; const int64_t JaniParser::defaultIntegerInitialValue = 0; + const std::string VARIABLE_AUTOMATON_DELIMITER = "."; const std::set JaniParser::unsupportedOpstrings({"sin", "cos", "tan", "cot", "sec", "csc", "asin", "acos", "atan", "acot", "asec", "acsc", "sinh", "cosh", "tanh", "coth", "sech", "csch", "asinh", "acosh", "atanh", "asinh", "acosh"}); @@ -207,7 +208,7 @@ namespace storm { std::shared_ptr JaniParser::parseVariable(json const &variableStructure, std::string const& scopeDescription, bool prefWithScope) { STORM_LOG_THROW(variableStructure.count("name") == 1, storm::exceptions::InvalidJaniException, "Variable (scope: " + scopeDescription + ") must have a name"); - std::string pref = prefWithScope ? scopeDescription + "." : ""; + std::string pref = prefWithScope ? scopeDescription + VARIABLE_AUTOMATON_DELIMITER : ""; std::string name = getString(variableStructure.at("name"), "variable-name in " + scopeDescription + "-scope"); // TODO check existance of name. // TODO store prefix in variable. @@ -743,4 +744,4 @@ namespace storm { } } -} \ No newline at end of file +} diff --git a/src/parser/PgclParser.cpp b/src/parser/PgclParser.cpp index 7ca50095e..e65ff912d 100755 --- a/src/parser/PgclParser.cpp +++ b/src/parser/PgclParser.cpp @@ -1,10 +1,3 @@ -/* - * File: PgclParser.cpp - * Author: Lukas Westhofen - * - * Created on 1. April 2015, 19:12 - */ - #include "src/parser/PgclParser.h" // If the parser fails due to ill-formed data, this exception is thrown. #include "src/exceptions/WrongFormatException.h" @@ -60,54 +53,67 @@ namespace storm { } PgclParser::PgclParser(std::string const& filename, Iterator first) : - PgclParser::base_type(program, "PGCL grammar"), - annotate(first), - expressionManager(std::shared_ptr(new storm::expressions::ExpressionManager())), - expressionParser(*expressionManager, invalidIdentifiers) { + PgclParser::base_type(program, "PGCL grammar"), + annotate(first), + expressionManager(std::shared_ptr(new storm::expressions::ExpressionManager())), + expressionParser(*expressionManager, invalidIdentifiers) + { this->enableExpressions(); /* * PGCL grammar is defined here */ // Rough program structure - program = (qi::lit("function ") >> programName >> qi::lit("(") >> -(doubleDeclaration % qi::lit(",")) >> qi::lit(")") >> qi::lit("{") >> - sequenceOfStatements >> - qi::lit("}")) - [qi::_val = phoenix::bind(&PgclParser::createProgram, phoenix::ref(*this), qi::_1, qi::_2, qi::_3)]; + program = (qi::lit("function ") > programName > qi::lit("(") > -(doubleDeclaration % qi::lit(",")) > qi::lit(")") > qi::lit("{") > + variableDeclarations > + sequenceOfStatements > + qi::lit("}"))[qi::_val = phoenix::bind(&PgclParser::createProgram, phoenix::ref(*this), qi::_1, qi::_2, qi::_3, qi::_4)]; sequenceOfStatements %= +(statement); + sequenceOfStatements.name("sequence of statements"); + variableDeclarations %= qi::lit("var") > qi::lit("{") > +(integerDeclaration | booleanDeclaration) > qi::lit("}"); + variableDeclarations.name("variable declarations"); + // Statements statement %= simpleStatement | compoundStatement; - simpleStatement %= assignmentStatement | integerDeclarationStatement | observeStatement; + simpleStatement %= assignmentStatement | observeStatement; compoundStatement %= ifElseStatement | loopStatement | branchStatement; // Simple statements doubleDeclaration = (qi::lit("double ") >> variableName)[qi::_val = phoenix::bind(&PgclParser::declareDoubleVariable, phoenix::ref(*this), qi::_1)]; - integerDeclarationStatement = (qi::lit("int ") >> variableName >> qi::lit(":=") >> expression >> qi::lit(";"))[qi::_val = phoenix::bind(&PgclParser::createIntegerDeclarationStatement, phoenix::ref(*this), qi::_1, qi::_2)]; - - assignmentStatement = (variableName >> qi::lit(":=") >> (expression | uniformExpression) >> qi::lit(";"))[qi::_val = phoenix::bind(&PgclParser::createAssignmentStatement, phoenix::ref(*this), qi::_1, qi::_2)]; - observeStatement = (qi::lit("observe") >> qi::lit("(") >> booleanCondition >> qi::lit(")") >> qi::lit(";"))[qi::_val = phoenix::bind(&PgclParser::createObserveStatement, phoenix::ref(*this), qi::_1)]; + integerDeclaration = (qi::lit("int ") > variableName > qi::lit(":=") > expression > qi::lit(";"))[qi::_val = phoenix::bind(&PgclParser::createIntegerDeclarationStatement, phoenix::ref(*this), qi::_1, qi::_2)]; + integerDeclaration.name("integer declaration"); + booleanDeclaration = (qi::lit("bool ") > variableName > qi::lit(":=") > expression > qi::lit(";"))[qi::_val = phoenix::bind(&PgclParser::createBooleanDeclarationStatement, phoenix::ref(*this), qi::_1, qi::_2)]; + booleanDeclaration.name("boolean declaration"); + + assignmentStatement = (variableName > qi::lit(":=") > (expression | uniformExpression) > qi::lit(";"))[qi::_val = phoenix::bind(&PgclParser::createAssignmentStatement, phoenix::ref(*this), qi::_1, qi::_2)]; + observeStatement = (qi::lit("observe") > qi::lit("(") >> booleanCondition >> qi::lit(")") > qi::lit(";"))[qi::_val = phoenix::bind(&PgclParser::createObserveStatement, phoenix::ref(*this), qi::_1)]; // Compound statements - ifElseStatement = (qi::lit("if") >> qi::lit("(") >> booleanCondition >> qi::lit(")") >> qi::lit("{") >> + ifElseStatement = (qi::lit("if") > qi::lit("(") >> booleanCondition >> qi::lit(")") >> qi::lit("{") >> sequenceOfStatements >> qi::lit("}") >> -(qi::lit("else") >> qi::lit("{") >> sequenceOfStatements >> qi::lit("}"))) [qi::_val = phoenix::bind(&PgclParser::createIfElseStatement, phoenix::ref(*this), qi::_1, qi::_2, qi::_3)]; + ifElseStatement.name("if/else statement"); branchStatement = nondeterministicBranch | probabilisticBranch; - loopStatement = (qi::lit("while") >> qi::lit("(") >> booleanCondition >> qi::lit(")") >> qi::lit("{") >> + loopStatement = (qi::lit("while") > qi::lit("(") > booleanCondition > qi::lit(")") > qi::lit("{") >> sequenceOfStatements >> qi::lit("}")) [qi::_val = phoenix::bind(&PgclParser::createLoopStatement, phoenix::ref(*this), qi::_1, qi::_2)]; + loopStatement.name("loop statement"); nondeterministicBranch = (qi::lit("{") >> sequenceOfStatements >> qi::lit("}") >> qi::lit("[]") >> qi::lit("{") >> sequenceOfStatements>> qi::lit("}"))[qi::_val = phoenix::bind(&PgclParser::createNondeterministicBranch, phoenix::ref(*this), qi::_1, qi::_2)]; probabilisticBranch = (qi::lit("{") >> sequenceOfStatements >> qi::lit("}") >> qi::lit("[") >> expression >> qi::lit("]") >> qi::lit("{") >> sequenceOfStatements >> qi::lit("}"))[qi::_val = phoenix::bind(&PgclParser::createProbabilisticBranch, phoenix::ref(*this), qi::_2, qi::_1, qi::_3)]; // Expression and condition building, and basic identifiers expression %= expressionParser; + expression.name("expression"); booleanCondition = expressionParser[qi::_val = phoenix::bind(&PgclParser::createBooleanExpression, phoenix::ref(*this), qi::_1)]; uniformExpression = (qi::lit("unif") >> qi::lit("(") >> qi::int_ >> qi::lit(",") >> qi::int_ >> qi::lit(")"))[qi::_val = phoenix::bind(&PgclParser::createUniformExpression, phoenix::ref(*this), qi::_1, qi::_2)]; - variableName %= (+(qi::alnum | qi::lit("_"))) - (qi::lit("int") >> +(qi::alnum | qi::lit("_"))); + variableName %= (+(qi::alnum | qi::lit("_"))) - invalidIdentifiers; + variableName.name("variable name"); programName %= +(qi::alnum | qi::lit("_")); + programName.name("program name"); // Enables location tracking for important entities auto setLocationInfoFunction = this->annotate(*qi::_val, qi::_1, qi::_3); @@ -117,8 +123,24 @@ namespace storm { qi::on_success(probabilisticBranch, setLocationInfoFunction); qi::on_success(loopStatement, setLocationInfoFunction); qi::on_success(ifElseStatement, setLocationInfoFunction); - qi::on_success(integerDeclarationStatement, setLocationInfoFunction); - + + // Enable error reporting. + qi::on_error(program, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(variableDeclarations, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(integerDeclaration, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(booleanDeclaration, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + + qi::on_error(assignmentStatement, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(observeStatement, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(ifElseStatement, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(loopStatement, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(branchStatement, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + + + qi::on_error(expression, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(booleanCondition, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + qi::on_error(uniformExpression, handler(qi::_1, qi::_2, qi::_3, qi::_4)); + // Adds dummy to the 0-th location. std::shared_ptr dummy(new storm::pgcl::AssignmentStatement()); this->locationToStatement.insert(this->locationToStatement.begin(), dummy); @@ -135,15 +157,20 @@ namespace storm { * throw excpetions in case something unexpected was parsed, e.g. * (x+5) as a boolean expression, or types of assignments don't match. */ - storm::pgcl::PgclProgram PgclParser::createProgram(std::string const& programName, boost::optional > parameters, std::vector > statements) { + storm::pgcl::PgclProgram PgclParser::createProgram(std::string const& programName, boost::optional> parameters, std::vector> const& variableDeclarations, std::vector> const& statements) { // Creates an empty paramter list in case no parameters were given. std::vector params; if(parameters != boost::none) { params = *parameters; } + std::vector declarations; + for (auto const& decl : variableDeclarations) { + declarations.push_back(*decl); + } + // Creates the actual program. std::shared_ptr result( - new storm::pgcl::PgclProgram(statements, this->locationToStatement, params, this->expressionManager, this->loopCreated, this->nondetCreated, this->observeCreated) + new storm::pgcl::PgclProgram(declarations, statements, this->locationToStatement, params, this->expressionManager, this->loopCreated, this->nondetCreated, this->observeCreated) ); result->back()->setLast(true); // Sets the current program as a parent to all its direct children statements. @@ -177,7 +204,7 @@ namespace storm { return newAssignment; } - std::shared_ptr PgclParser::createIntegerDeclarationStatement(std::string const& variableName, storm::expressions::Expression const& assignedExpression) { + std::shared_ptr PgclParser::createIntegerDeclarationStatement(std::string const& variableName, storm::expressions::Expression const& assignedExpression) { storm::expressions::Variable variable; if(!(*expressionManager).hasVariable(variableName)) { variable = (*expressionManager).declareIntegerVariable(variableName); @@ -187,11 +214,22 @@ namespace storm { variable = (*expressionManager).getVariable(variableName); STORM_LOG_THROW(false, storm::exceptions::WrongFormatException, "Declaration of integer variable " << variableName << " which was already declared previously."); } - std::shared_ptr newAssignment(new storm::pgcl::AssignmentStatement(variable, assignedExpression)); - newAssignment->setLocationNumber(this->currentLocationNumber); - this->locationToStatement.insert(this->locationToStatement.begin() + this->currentLocationNumber, newAssignment); - currentLocationNumber++; - return newAssignment; + // Todo add some checks + return std::make_shared(variable, assignedExpression); + } + + std::shared_ptr PgclParser::createBooleanDeclarationStatement(std::string const& variableName, storm::expressions::Expression const& assignedExpression) { + storm::expressions::Variable variable; + if(!(*expressionManager).hasVariable(variableName)) { + variable = (*expressionManager).declareBooleanVariable(variableName); + this->identifiers_.add(variableName, variable.getExpression()); + } else { + // In case that a declaration already happened. + variable = (*expressionManager).getVariable(variableName); + STORM_LOG_THROW(false, storm::exceptions::WrongFormatException, "Declaration of boolean variable " << variableName << " which was already declared previously."); + } + // TODO add some checks. + return std::make_shared(variable, assignedExpression); } std::shared_ptr PgclParser::createObserveStatement(storm::pgcl::BooleanExpression const& condition) { diff --git a/src/parser/PgclParser.h b/src/parser/PgclParser.h index 23da1d2e9..223079e3b 100755 --- a/src/parser/PgclParser.h +++ b/src/parser/PgclParser.h @@ -1,12 +1,4 @@ -/* - * File: PgclParser.h - * Author: Lukas Westhofen - * - * Created on 1. April 2015, 19:12 - */ - -#ifndef PGCLPARSER_H -#define PGCLPARSER_H +#pragma once // Includes files for file input. #include @@ -14,6 +6,7 @@ #include // Includes files for building and parsing the PGCL program #include "src/parser/SpiritParserDefinitions.h" +#include "src/parser/SpiritErrorHandler.h" #include "src/parser/ExpressionParser.h" #include "src/storage/expressions/ExpressionManager.h" #include "src/storage/expressions/Expression.h" @@ -29,6 +22,10 @@ #include "src/storage/pgcl/Statement.h" namespace storm { + namespace pgcl { + class IfStatement; + } + namespace parser { class PgclParser : public qi::grammar { @@ -67,8 +64,6 @@ namespace storm { qi::rule(), Skipper> probabilisticBranch; qi::rule(), Skipper> assignmentStatement; qi::rule declaration; - qi::rule doubleDeclaration; - qi::rule(), Skipper> integerDeclarationStatement; qi::rule(), Skipper> observeStatement; qi::rule expression; qi::rule booleanCondition; @@ -76,6 +71,14 @@ namespace storm { qi::rule variableName; qi::rule programName; + qi::rule>(), Skipper> variableDeclarations; + qi::rule(), Skipper> integerDeclaration; + qi::rule(), Skipper> booleanDeclaration; + qi::rule doubleDeclaration; + + // An error handler function. + phoenix::function handler; + /// Denotes the invalid identifiers, which are later passed to the expression parser. struct keywordsStruct : qi::symbols { keywordsStruct() { @@ -84,7 +87,8 @@ namespace storm { ("if", 2) ("observe", 3) ("int", 4) - ("function", 5); + ("bool", 5) + ("function", 6); } }; @@ -135,10 +139,11 @@ namespace storm { void enableExpressions(); // Constructors for the single program parts. They just wrap the statement constructors and throw exceptions in case something unexpected was parsed. - storm::pgcl::PgclProgram createProgram(std::string const& programName, boost::optional > parameters, std::vector > statements); + storm::pgcl::PgclProgram createProgram(std::string const& programName, boost::optional > parameters, std::vector> const& variableDeclarations, std::vector > const& statements); storm::expressions::Variable declareDoubleVariable(std::string const& variableName); std::shared_ptr createAssignmentStatement(std::string const& variableName, boost::variant const& assignedExpression); - std::shared_ptr createIntegerDeclarationStatement(std::string const& variableName, storm::expressions::Expression const& assignedExpression); + std::shared_ptr createIntegerDeclarationStatement(std::string const& variableName, storm::expressions::Expression const& assignedExpression); + std::shared_ptr createBooleanDeclarationStatement(std::string const& variableName, storm::expressions::Expression const& assignedExpression); std::shared_ptr createObserveStatement(storm::pgcl::BooleanExpression const& condition); std::shared_ptr createIfElseStatement(storm::pgcl::BooleanExpression const& condition, std::vector > const& if_body, boost::optional > > const& else_body); std::shared_ptr createLoopStatement(storm::pgcl::BooleanExpression const& condition, std::vector > const& body); @@ -150,5 +155,4 @@ namespace storm { } // namespace parser } // namespace storm -#endif /* PGCLPARSER_H */ diff --git a/src/parser/PrismParser.cpp b/src/parser/PrismParser.cpp index d3e5191e2..ba7546a6e 100644 --- a/src/parser/PrismParser.cpp +++ b/src/parser/PrismParser.cpp @@ -9,6 +9,10 @@ #include "src/utility/macros.h" #include "src/exceptions/WrongFormatException.h" +#include "src/storage/expressions/ExpressionManager.h" + +#include "src/parser/ExpressionParser.h" + namespace storm { namespace parser { storm::prism::Program PrismParser::parse(std::string const& filename) { @@ -70,7 +74,9 @@ namespace storm { return result; } - PrismParser::PrismParser(std::string const& filename, Iterator first) : PrismParser::base_type(start), secondRun(false), filename(filename), annotate(first), manager(new storm::expressions::ExpressionManager()), expressionParser(*manager, keywords_, false, false) { + PrismParser::PrismParser(std::string const& filename, Iterator first) : PrismParser::base_type(start), secondRun(false), filename(filename), annotate(first), manager(new storm::expressions::ExpressionManager()), expressionParser(new ExpressionParser(*manager, keywords_, false, false)) { + + ExpressionParser& expression_ = *expressionParser; // Parse simple identifier. identifier %= qi::as_string[qi::raw[qi::lexeme[((qi::alpha | qi::char_('_')) >> *(qi::alnum | qi::char_('_')))]]][qi::_pass = phoenix::bind(&PrismParser::isValidIdentifier, phoenix::ref(*this), qi::_1)]; identifier.name("identifier"); @@ -90,25 +96,25 @@ namespace storm { undefinedConstantDefinition = (undefinedBooleanConstantDefinition | undefinedIntegerConstantDefinition | undefinedDoubleConstantDefinition); undefinedConstantDefinition.name("undefined constant definition"); - definedBooleanConstantDefinition = ((qi::lit("const") >> qi::lit("bool") >> identifier >> qi::lit("=")) > expressionParser > qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createDefinedBooleanConstant, phoenix::ref(*this), qi::_1, qi::_2)]; + definedBooleanConstantDefinition = ((qi::lit("const") >> qi::lit("bool") >> identifier >> qi::lit("=")) > expression_ > qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createDefinedBooleanConstant, phoenix::ref(*this), qi::_1, qi::_2)]; definedBooleanConstantDefinition.name("defined boolean constant declaration"); - definedIntegerConstantDefinition = ((qi::lit("const") >> qi::lit("int") >> identifier >> qi::lit("=")) > expressionParser >> qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createDefinedIntegerConstant, phoenix::ref(*this), qi::_1, qi::_2)]; + definedIntegerConstantDefinition = ((qi::lit("const") >> qi::lit("int") >> identifier >> qi::lit("=")) > expression_ >> qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createDefinedIntegerConstant, phoenix::ref(*this), qi::_1, qi::_2)]; definedIntegerConstantDefinition.name("defined integer constant declaration"); - definedDoubleConstantDefinition = ((qi::lit("const") >> qi::lit("double") >> identifier >> qi::lit("=")) > expressionParser > qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createDefinedDoubleConstant, phoenix::ref(*this), qi::_1, qi::_2)]; + definedDoubleConstantDefinition = ((qi::lit("const") >> qi::lit("double") >> identifier >> qi::lit("=")) > expression_ > qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createDefinedDoubleConstant, phoenix::ref(*this), qi::_1, qi::_2)]; definedDoubleConstantDefinition.name("defined double constant declaration"); definedConstantDefinition %= (definedBooleanConstantDefinition | definedIntegerConstantDefinition | definedDoubleConstantDefinition); definedConstantDefinition.name("defined constant definition"); - formulaDefinition = (qi::lit("formula") > identifier > qi::lit("=") > expressionParser > qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createFormula, phoenix::ref(*this), qi::_1, qi::_2)]; + formulaDefinition = (qi::lit("formula") > identifier > qi::lit("=") > expression_ > qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createFormula, phoenix::ref(*this), qi::_1, qi::_2)]; formulaDefinition.name("formula definition"); - booleanVariableDefinition = ((identifier >> qi::lit(":") >> qi::lit("bool")) > -((qi::lit("init") > expressionParser[qi::_a = qi::_1]) | qi::attr(manager->boolean(false))) > qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createBooleanVariable, phoenix::ref(*this), qi::_1, qi::_a)]; + booleanVariableDefinition = ((identifier >> qi::lit(":") >> qi::lit("bool")) > -((qi::lit("init") > expression_[qi::_a = qi::_1]) | qi::attr(manager->boolean(false))) > qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createBooleanVariable, phoenix::ref(*this), qi::_1, qi::_a)]; booleanVariableDefinition.name("boolean variable definition"); - integerVariableDefinition = ((identifier >> qi::lit(":") >> qi::lit("[")[phoenix::bind(&PrismParser::allowDoubleLiterals, phoenix::ref(*this), false)]) > expressionParser > qi::lit("..") > expressionParser > qi::lit("]")[phoenix::bind(&PrismParser::allowDoubleLiterals, phoenix::ref(*this), true)] > -(qi::lit("init") > expressionParser[qi::_a = qi::_1]) > qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createIntegerVariable, phoenix::ref(*this), qi::_1, qi::_2, qi::_3, qi::_a)]; + integerVariableDefinition = ((identifier >> qi::lit(":") >> qi::lit("[")[phoenix::bind(&PrismParser::allowDoubleLiterals, phoenix::ref(*this), false)]) > expression_ > qi::lit("..") > expression_ > qi::lit("]")[phoenix::bind(&PrismParser::allowDoubleLiterals, phoenix::ref(*this), true)] > -(qi::lit("init") > expression_[qi::_a = qi::_1]) > qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createIntegerVariable, phoenix::ref(*this), qi::_1, qi::_2, qi::_3, qi::_a)]; integerVariableDefinition.name("integer variable definition"); variableDefinition = (booleanVariableDefinition[phoenix::push_back(qi::_r1, qi::_1)] | integerVariableDefinition[phoenix::push_back(qi::_r2, qi::_1)]); @@ -117,13 +123,13 @@ namespace storm { globalVariableDefinition = (qi::lit("global") > (booleanVariableDefinition[phoenix::push_back(phoenix::bind(&GlobalProgramInformation::globalBooleanVariables, qi::_r1), qi::_1)] | integerVariableDefinition[phoenix::push_back(phoenix::bind(&GlobalProgramInformation::globalIntegerVariables, qi::_r1), qi::_1)])); globalVariableDefinition.name("global variable declaration list"); - stateRewardDefinition = (expressionParser > qi::lit(":") > expressionParser >> qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createStateReward, phoenix::ref(*this), qi::_1, qi::_2)]; + stateRewardDefinition = (expression_ > qi::lit(":") > expression_ >> qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createStateReward, phoenix::ref(*this), qi::_1, qi::_2)]; stateRewardDefinition.name("state reward definition"); - stateActionRewardDefinition = (qi::lit("[") >> -identifier >> qi::lit("]") >> expressionParser >> qi::lit(":") >> expressionParser >> qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createStateActionReward, phoenix::ref(*this), qi::_1, qi::_2, qi::_3, qi::_r1)]; + stateActionRewardDefinition = (qi::lit("[") >> -identifier >> qi::lit("]") >> expression_ >> qi::lit(":") >> expression_ >> qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createStateActionReward, phoenix::ref(*this), qi::_1, qi::_2, qi::_3, qi::_r1)]; stateActionRewardDefinition.name("state action reward definition"); - transitionRewardDefinition = (qi::lit("[") > -identifier > qi::lit("]") > expressionParser > qi::lit("->") > expressionParser > qi::lit(":") > expressionParser > qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createTransitionReward, phoenix::ref(*this), qi::_1, qi::_2, qi::_3, qi::_4, qi::_r1)]; + transitionRewardDefinition = (qi::lit("[") > -identifier > qi::lit("]") > expression_ > qi::lit("->") > expression_ > qi::lit(":") > expression_ > qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createTransitionReward, phoenix::ref(*this), qi::_1, qi::_2, qi::_3, qi::_4, qi::_r1)]; transitionRewardDefinition.name("transition reward definition"); rewardModelDefinition = (qi::lit("rewards") > -(qi::lit("\"") > identifier[qi::_a = qi::_1] > qi::lit("\"")) @@ -134,7 +140,7 @@ namespace storm { >> qi::lit("endrewards"))[qi::_val = phoenix::bind(&PrismParser::createRewardModel, phoenix::ref(*this), qi::_a, qi::_b, qi::_c, qi::_d)]; rewardModelDefinition.name("reward model definition"); - initialStatesConstruct = (qi::lit("init") > expressionParser > qi::lit("endinit"))[qi::_pass = phoenix::bind(&PrismParser::addInitialStatesConstruct, phoenix::ref(*this), qi::_1, qi::_r1)]; + initialStatesConstruct = (qi::lit("init") > expression_ > qi::lit("endinit"))[qi::_pass = phoenix::bind(&PrismParser::addInitialStatesConstruct, phoenix::ref(*this), qi::_1, qi::_r1)]; initialStatesConstruct.name("initial construct"); systemCompositionConstruct = (qi::lit("system") > parallelComposition > qi::lit("endsystem"))[phoenix::bind(&PrismParser::addSystemCompositionConstruct, phoenix::ref(*this), qi::_1, qi::_r1)]; @@ -176,16 +182,16 @@ namespace storm { moduleComposition = identifier[qi::_val = phoenix::bind(&PrismParser::createModuleComposition, phoenix::ref(*this), qi::_1)]; moduleComposition.name("module composition"); - labelDefinition = (qi::lit("label") > -qi::lit("\"") > identifier > -qi::lit("\"") > qi::lit("=") > expressionParser >> qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createLabel, phoenix::ref(*this), qi::_1, qi::_2)]; + labelDefinition = (qi::lit("label") > -qi::lit("\"") > identifier > -qi::lit("\"") > qi::lit("=") > expression_ >> qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createLabel, phoenix::ref(*this), qi::_1, qi::_2)]; labelDefinition.name("label definition"); - assignmentDefinition = (qi::lit("(") > identifier > qi::lit("'") > qi::lit("=") > expressionParser > qi::lit(")"))[qi::_val = phoenix::bind(&PrismParser::createAssignment, phoenix::ref(*this), qi::_1, qi::_2)]; + assignmentDefinition = (qi::lit("(") > identifier > qi::lit("'") > qi::lit("=") > expression_ > qi::lit(")"))[qi::_val = phoenix::bind(&PrismParser::createAssignment, phoenix::ref(*this), qi::_1, qi::_2)]; assignmentDefinition.name("assignment"); assignmentDefinitionList = (assignmentDefinition % "&")[qi::_val = qi::_1] | (qi::lit("true"))[qi::_val = phoenix::construct>()]; assignmentDefinitionList.name("assignment list"); - updateDefinition = (((expressionParser >> qi::lit(":")) | qi::attr(manager->rational(1))) >> assignmentDefinitionList)[qi::_val = phoenix::bind(&PrismParser::createUpdate, phoenix::ref(*this), qi::_1, qi::_2, qi::_r1)]; + updateDefinition = (((expression_ >> qi::lit(":")) | qi::attr(manager->rational(1))) >> assignmentDefinitionList)[qi::_val = phoenix::bind(&PrismParser::createUpdate, phoenix::ref(*this), qi::_1, qi::_2, qi::_r1)]; updateDefinition.name("update"); updateListDefinition %= +updateDefinition(qi::_r1) % "+"; @@ -254,17 +260,17 @@ namespace storm { commandDefinition = (((qi::lit("[") > -identifier > qi::lit("]")) | (qi::lit("<") > -identifier > qi::lit(">")[qi::_a = true])) - > expressionParser + > *expressionParser > qi::lit("->") > updateListDefinition(qi::_r1) > qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createCommand, phoenix::ref(*this), qi::_a, qi::_1, qi::_2, qi::_3, qi::_r1)]; this->secondRun = true; - this->expressionParser.setIdentifierMapping(&this->identifiers_); + this->expressionParser->setIdentifierMapping(&this->identifiers_); } void PrismParser::allowDoubleLiterals(bool flag) { - this->expressionParser.setAcceptDoubleLiterals(flag); + this->expressionParser->setAcceptDoubleLiterals(flag); } std::string const& PrismParser::getFilename() const { diff --git a/src/parser/PrismParser.h b/src/parser/PrismParser.h index 2a83e3193..911dbe479 100644 --- a/src/parser/PrismParser.h +++ b/src/parser/PrismParser.h @@ -7,10 +7,9 @@ #include #include "src/parser/SpiritParserDefinitions.h" -#include "src/parser/ExpressionParser.h" +#include "src/parser/SpiritErrorHandler.h" #include "src/storage/prism/Program.h" #include "src/storage/expressions/Expression.h" -#include "src/storage/expressions/Expressions.h" namespace storm { namespace expressions { @@ -20,6 +19,8 @@ namespace storm { namespace storm { namespace parser { + class ExpressionParser; + // A class that stores information about the parsed program. class GlobalProgramInformation { public: @@ -237,7 +238,8 @@ namespace storm { // Parser and manager used for recognizing expressions. std::shared_ptr manager; - storm::parser::ExpressionParser expressionParser; + // TODO shared? + std::shared_ptr expressionParser; // Helper methods used in the grammar. bool isValidIdentifier(std::string const& identifier); diff --git a/src/parser/SpiritErrorHandler.h b/src/parser/SpiritErrorHandler.h index 949ad9b12..6374ccfba 100644 --- a/src/parser/SpiritErrorHandler.h +++ b/src/parser/SpiritErrorHandler.h @@ -1,5 +1,4 @@ -#ifndef STORM_PARSER_SPIRITERRORHANDLER_H_ -#define STORM_PARSER_SPIRITERRORHANDLER_H_ +#pragma once #include "src/parser/SpiritParserDefinitions.h" @@ -30,5 +29,3 @@ namespace storm { }; } } - -#endif /* STORM_PARSER_SPIRITERRORHANDLER_H_ */ \ No newline at end of file diff --git a/src/settings/modules/JaniExportSettings.cpp b/src/settings/modules/JaniExportSettings.cpp index faa68b0b0..a702f6117 100644 --- a/src/settings/modules/JaniExportSettings.cpp +++ b/src/settings/modules/JaniExportSettings.cpp @@ -16,10 +16,13 @@ namespace storm { const std::string JaniExportSettings::janiFileOptionName = "jani-output"; const std::string JaniExportSettings::janiFileOptionShortName = "output"; + const std::string JaniExportSettings::standardCompliantOptionName = "standard-compliant"; + const std::string JaniExportSettings::standardCompliantOptionShortName = "standard"; JaniExportSettings::JaniExportSettings() : ModuleSettings(moduleName) { this->addOption(storm::settings::OptionBuilder(moduleName, janiFileOptionName, false, "Destination for the jani model.").setShortName(janiFileOptionShortName).addArgument(storm::settings::ArgumentBuilder::createStringArgument("filename", "path to file").build()).build()); + this->addOption(storm::settings::OptionBuilder(moduleName, standardCompliantOptionName, false, "Export in standard compliant variant.").setShortName(standardCompliantOptionShortName).build()); } bool JaniExportSettings::isJaniFileSet() const { @@ -30,6 +33,10 @@ namespace storm { return this->getOption(janiFileOptionName).getArgumentByName("filename").getValueAsString(); } + bool JaniExportSettings::isExportAsStandardJaniSet() const { + return this->getOption(standardCompliantOptionName).getHasOptionBeenSet(); + } + void JaniExportSettings::finalize() { } diff --git a/src/settings/modules/JaniExportSettings.h b/src/settings/modules/JaniExportSettings.h index dc356189a..83b77d15a 100644 --- a/src/settings/modules/JaniExportSettings.h +++ b/src/settings/modules/JaniExportSettings.h @@ -24,6 +24,8 @@ namespace storm { */ std::string getJaniFilename() const; + bool isExportAsStandardJaniSet() const; + bool check() const override; void finalize() override; @@ -32,6 +34,9 @@ namespace storm { private: static const std::string janiFileOptionName; static const std::string janiFileOptionShortName; + static const std::string standardCompliantOptionName; + static const std::string standardCompliantOptionShortName; + }; } } diff --git a/src/storage/BitVector.cpp b/src/storage/BitVector.cpp index d7676c973..c806b29da 100644 --- a/src/storage/BitVector.cpp +++ b/src/storage/BitVector.cpp @@ -253,11 +253,10 @@ namespace storm { } } - void BitVector::enlargeLiberally(uint_fast64_t minimumLength, bool init) { - if(minimumLength > this->size()) { - uint_fast64_t newLength = this->bucketCount(); - newLength = std::max(newLength, static_cast(1u)) << 6; - while(newLength < minimumLength) { + void BitVector::grow(uint_fast64_t minimumLength, bool init) { + if (minimumLength > bitCount) { + uint_fast64_t newLength = bitCount; + while (newLength < minimumLength) { newLength = newLength << 1; } resize(newLength, init); diff --git a/src/storage/BitVector.h b/src/storage/BitVector.h index 6ae966379..c8b81709f 100644 --- a/src/storage/BitVector.h +++ b/src/storage/BitVector.h @@ -243,7 +243,7 @@ namespace storm { * @param minimumLength The minimum number of bits that the bit vector should hold. * @param init The truth value to which to initialize newly created bits. */ - void enlargeLiberally(uint_fast64_t minimumLength, bool init = false); + void grow(uint_fast64_t minimumLength, bool init = false); /*! * Performs a logical "and" with the given bit vector. In case the sizes of the bit vectors do not match, diff --git a/src/storage/Distribution.cpp b/src/storage/Distribution.cpp index 78e4a477d..4c2816467 100644 --- a/src/storage/Distribution.cpp +++ b/src/storage/Distribution.cpp @@ -19,6 +19,13 @@ namespace storm { // Intentionally left empty. } + template + void Distribution::add(Distribution const& other) { + container_type newDistribution; + std::set_union(this->distribution.begin(), this->distribution.end(), other.distribution.begin(), other.distribution.end(), std::inserter(newDistribution, newDistribution.begin())); + this->distribution = std::move(newDistribution); + } + template bool Distribution::equals(Distribution const& other, storm::utility::ConstantsComparator const& comparator) const { // We need to check equality by ourselves, because we need to account for epsilon differences. diff --git a/src/storage/Distribution.h b/src/storage/Distribution.h index ba61f0fbd..88e008108 100644 --- a/src/storage/Distribution.h +++ b/src/storage/Distribution.h @@ -5,8 +5,6 @@ #include #include -#include "src/utility/OsDetection.h" - #include "src/storage/sparse/StateType.h" namespace storm { @@ -31,11 +29,13 @@ namespace storm { Distribution(Distribution const& other) = default; Distribution& operator=(Distribution const& other) = default; - -#ifndef WINDOWS Distribution(Distribution&& other) = default; Distribution& operator=(Distribution&& other) = default; -#endif + + /*! + * Adds the given distribution to the current one. + */ + void add(Distribution const& other); /*! * Checks whether the two distributions specify the same probabilities to go to the same states. @@ -154,4 +154,4 @@ namespace std { } -#endif /* STORM_STORAGE_DISTRIBUTION_H_ */ \ No newline at end of file +#endif /* STORM_STORAGE_DISTRIBUTION_H_ */ diff --git a/src/storage/IntegerInterval.h b/src/storage/IntegerInterval.h index 4459b1569..f662f1a6d 100644 --- a/src/storage/IntegerInterval.h +++ b/src/storage/IntegerInterval.h @@ -37,6 +37,49 @@ namespace storm { return true; } + bool contains(IntegerInterval const& i) const { + if (hasLeftBound()) { + if (!i.hasLeftBound()) { + return false; + } + if (leftBound.get() > i.getLeftBound().get()) { + return false; + } + } + if (hasRightBound()) { + if (!i.hasRightBound()) { + return false; + } + if (rightBound.get() < i.getRightBound().get()) { + return false; + } + } + return true; + } + + void extend(int64_t val) { + if (hasLeftBound()) { + if(val < leftBound.get()) { + leftBound = val; + return; + } + } + if (hasRightBound()) { + if(val > rightBound.get()) { + rightBound = val; + } + } + } + + void extend(IntegerInterval const& i) { + if(i.hasLeftBound()) { + extend(i.getLeftBound().get()); + } + if(i.hasRightBound()) { + extend(i.getRightBound().get()); + } + } + boost::optional getLeftBound() const { return leftBound; } diff --git a/src/storage/SparseMatrix.cpp b/src/storage/SparseMatrix.cpp index 3d1e16796..401fc4082 100644 --- a/src/storage/SparseMatrix.cpp +++ b/src/storage/SparseMatrix.cpp @@ -660,64 +660,82 @@ namespace storm { template void SparseMatrix::swapRows(index_type const& row1, index_type const& row2) { - if(row1==row2) { + if (row1 == row2) { return; } - // Get the index of the row that has more / less entries than the other + // Get the index of the row that has more / less entries than the other. index_type largerRow = getRow(row1).getNumberOfEntries() > getRow(row2).getNumberOfEntries() ? row1 : row2; index_type smallerRow = largerRow == row1 ? row2 : row1; index_type rowSizeDifference = getRow(largerRow).getNumberOfEntries() - getRow(smallerRow).getNumberOfEntries(); - // Save contents of larger row - std::vector> largerRowContents(getRow(largerRow).begin(), getRow(largerRow).end()); - if(largerRow < smallerRow) { - auto writeIt = getRows(largerRow, smallerRow+1).begin(); - // write smaller row in its new position - for(auto& smallerRowEntry : getRow(smallerRow)) { + // Save contents of larger row. + auto copyRow = getRow(largerRow); + std::vector> largerRowContents(copyRow.begin(), copyRow.end()); + + if (largerRow < smallerRow) { + auto writeIt = getRows(largerRow, smallerRow + 1).begin(); + + // Write smaller row to its new position. + for (auto& smallerRowEntry : getRow(smallerRow)) { *writeIt = std::move(smallerRowEntry); ++writeIt; } - if(!storm::utility::isZero(rowSizeDifference)) { - // write the intermediate rows into their correct position - for(auto& intermediateRowEntry : getRows(largerRow+1, smallerRow)) { + + // Write the intermediate rows into their correct position. + if (!storm::utility::isZero(rowSizeDifference)) { + for (auto& intermediateRowEntry : getRows(largerRow + 1, smallerRow)) { *writeIt = std::move(intermediateRowEntry); ++writeIt; } } - // write the larger row - for(auto& largerRowEntry : largerRowContents) { + + // Write the larger row to its new position. + for (auto& largerRowEntry : largerRowContents) { *writeIt = std::move(largerRowEntry); ++writeIt; } - STORM_LOG_ASSERT(writeIt == getRow(smallerRow).end(), "Unexpected position of write iterator"); - //Update row indications - for(index_type row = largerRow +1; row <= smallerRow; ++row) { - rowIndications[row] -= rowSizeDifference; + + STORM_LOG_ASSERT(writeIt == getRow(smallerRow).end(), "Unexpected position of write iterator."); + + // Update the row indications to account for the shift of indices at where the rows now start. + if (!storm::utility::isZero(rowSizeDifference)) { + for (index_type row = largerRow + 1; row <= smallerRow; ++row) { + rowIndications[row] -= rowSizeDifference; + } } } else { - auto writeIt = getRows(smallerRow, largerRow+1).end() -1; - // write smaller row in its new position - for(auto smallerRowEntryIt = getRow(smallerRow).end() -1; smallerRowEntryIt != getRow(smallerRow).begin()-1; --smallerRowEntryIt) { + auto writeIt = getRows(smallerRow, largerRow + 1).end() - 1; + + // Write smaller row to its new position + auto copyRow = getRow(smallerRow); + for (auto smallerRowEntryIt = copyRow.end() - 1; smallerRowEntryIt != copyRow.begin() - 1; --smallerRowEntryIt) { *writeIt = std::move(*smallerRowEntryIt); --writeIt; } - if(!storm::utility::isZero(rowSizeDifference)) { - // write the intermediate rows into their correct position - for(auto intermediateRowEntryIt = getRows(smallerRow+1, largerRow).end() -1; intermediateRowEntryIt != getRows(smallerRow+1, largerRow).begin()-1; --intermediateRowEntryIt) { + + // Write the intermediate rows into their correct position. + if (!storm::utility::isZero(rowSizeDifference)) { + for (auto intermediateRowEntryIt = getRows(smallerRow + 1, largerRow).end() - 1; intermediateRowEntryIt != getRows(smallerRow + 1, largerRow).begin() - 1; --intermediateRowEntryIt) { *writeIt = std::move(*intermediateRowEntryIt); --writeIt; } } - // write the larger row - for(auto largerRowEntryIt = largerRowContents.rbegin(); largerRowEntryIt != largerRowContents.rend(); ++largerRowEntryIt) { + + // Write the larger row to its new position. + for (auto largerRowEntryIt = largerRowContents.rbegin(); largerRowEntryIt != largerRowContents.rend(); ++largerRowEntryIt) { *writeIt = std::move(*largerRowEntryIt); --writeIt; } - STORM_LOG_ASSERT(writeIt == getRow(smallerRow).begin()-1, "Unexpected position of write iterator"); - //Update row indications - for(index_type row = smallerRow +1; row <= largerRow; ++row) { - rowIndications[row] += rowSizeDifference; + + STORM_LOG_ASSERT(writeIt == getRow(smallerRow).begin() - 1, "Unexpected position of write iterator."); + + // Update row indications. + // Update the row indications to account for the shift of indices at where the rows now start. + if (!storm::utility::isZero(rowSizeDifference)) { + for (index_type row = smallerRow + 1; row <= largerRow; ++row) { + rowIndications[row] += rowSizeDifference; + } } } } diff --git a/src/storage/SymbolicModelDescription.cpp b/src/storage/SymbolicModelDescription.cpp index 1058e464f..4c144eff8 100644 --- a/src/storage/SymbolicModelDescription.cpp +++ b/src/storage/SymbolicModelDescription.cpp @@ -71,7 +71,14 @@ namespace storm { SymbolicModelDescription SymbolicModelDescription::preprocess(std::string const& constantDefinitionString) const { if (this->isJaniModel()) { std::map substitution = storm::utility::jani::parseConstantDefinitionString(this->asJaniModel(), constantDefinitionString); - return SymbolicModelDescription(this->asJaniModel().defineUndefinedConstants(substitution).substituteConstants()); + storm::jani::Model preparedModel = this->asJaniModel().defineUndefinedConstants(substitution).substituteConstants(); + if (preparedModel.hasTransientEdgeDestinationAssignments()) { + preparedModel.liftTransientEdgeDestinationAssignments(); + if (preparedModel.hasTransientEdgeDestinationAssignments()) { + STORM_LOG_WARN("JANI model has non-liftable transient edge-destinations assignments, which are currently not supported. Trying to lift these assignments to edges rather than destinations failed."); + } + } + return SymbolicModelDescription(preparedModel); } else if (this->isPrismProgram()) { std::map substitution = storm::utility::prism::parseConstantDefinitionString(this->asPrismProgram(), constantDefinitionString); return SymbolicModelDescription(this->asPrismProgram().defineUndefinedConstants(substitution).substituteConstants()); @@ -80,4 +87,4 @@ namespace storm { } } -} \ No newline at end of file +} diff --git a/src/storage/bisimulation/BisimulationDecomposition.cpp b/src/storage/bisimulation/BisimulationDecomposition.cpp index dbad8c633..cfd43923b 100644 --- a/src/storage/bisimulation/BisimulationDecomposition.cpp +++ b/src/storage/bisimulation/BisimulationDecomposition.cpp @@ -168,7 +168,7 @@ namespace storm { template BisimulationDecomposition::BisimulationDecomposition(ModelType const& model, storm::storage::SparseMatrix const& backwardTransitions, Options const& options) : model(model), backwardTransitions(backwardTransitions), options(options), partition(), comparator(), quotient(nullptr) { STORM_LOG_THROW(!options.getKeepRewards() || !model.hasRewardModel() || model.hasUniqueRewardModel(), storm::exceptions::IllegalFunctionCallException, "Bisimulation currently only supports models with at most one reward model."); - STORM_LOG_THROW(!options.getKeepRewards() || !model.hasRewardModel() || model.getUniqueRewardModel()->second.hasOnlyStateRewards(), storm::exceptions::IllegalFunctionCallException, "Bisimulation is currently supported for models with state rewards only. Consider converting the transition rewards to state rewards (via suitable function calls)."); + STORM_LOG_THROW(!options.getKeepRewards() || !model.hasRewardModel() || model.getUniqueRewardModel().hasOnlyStateRewards(), storm::exceptions::IllegalFunctionCallException, "Bisimulation is currently supported for models with state rewards only. Consider converting the transition rewards to state rewards (via suitable function calls)."); STORM_LOG_THROW(options.getType() != BisimulationType::Weak || !options.getBounded(), storm::exceptions::IllegalFunctionCallException, "Weak bisimulation cannot preserve bounded properties."); // Fix the respected atomic propositions if they were not explicitly given. @@ -260,7 +260,7 @@ namespace storm { template void BisimulationDecomposition::splitInitialPartitionBasedOnStateRewards() { - std::vector const& stateRewardVector = model.getUniqueRewardModel()->second.getStateRewardVector(); + std::vector const& stateRewardVector = model.getUniqueRewardModel().getStateRewardVector(); partition.split([&stateRewardVector] (storm::storage::sparse::state_type const& a, storm::storage::sparse::state_type const& b) { return stateRewardVector[a] < stateRewardVector[b]; }); } diff --git a/src/storage/bisimulation/DeterministicModelBisimulationDecomposition.cpp b/src/storage/bisimulation/DeterministicModelBisimulationDecomposition.cpp index 3f70fd379..0b0574737 100644 --- a/src/storage/bisimulation/DeterministicModelBisimulationDecomposition.cpp +++ b/src/storage/bisimulation/DeterministicModelBisimulationDecomposition.cpp @@ -627,8 +627,7 @@ namespace storm { // If the model has state rewards, we simply copy the state reward of the representative state, because // all states in a block are guaranteed to have the same state reward. if (this->options.getKeepRewards() && this->model.hasRewardModel()) { - typename std::unordered_map::const_iterator nameRewardModelPair = this->model.getUniqueRewardModel(); - stateRewards.get()[blockIndex] = nameRewardModelPair->second.getStateRewardVector()[representativeState]; + stateRewards.get()[blockIndex] = this->model.getUniqueRewardModel().getStateRewardVector()[representativeState]; } } @@ -641,7 +640,8 @@ namespace storm { // Construct the reward model mapping. std::unordered_map rewardModels; if (this->options.getKeepRewards() && this->model.hasRewardModel()) { - typename std::unordered_map::const_iterator nameRewardModelPair = this->model.getUniqueRewardModel(); + STORM_LOG_THROW(this->model.hasUniqueRewardModel(), storm::exceptions::IllegalFunctionCallException, "Cannot preserve more than one reward model."); + typename std::unordered_map::const_iterator nameRewardModelPair = this->model.getRewardModels().begin(); rewardModels.insert(std::make_pair(nameRewardModelPair->first, typename ModelType::RewardModelType(stateRewards))); } diff --git a/src/storage/bisimulation/NondeterministicModelBisimulationDecomposition.cpp b/src/storage/bisimulation/NondeterministicModelBisimulationDecomposition.cpp index 64a7efe45..547d4dc29 100644 --- a/src/storage/bisimulation/NondeterministicModelBisimulationDecomposition.cpp +++ b/src/storage/bisimulation/NondeterministicModelBisimulationDecomposition.cpp @@ -170,8 +170,7 @@ namespace storm { // If the model has state rewards, we simply copy the state reward of the representative state, because // all states in a block are guaranteed to have the same state reward. if (this->options.getKeepRewards() && this->model.hasRewardModel()) { - typename std::unordered_map::const_iterator nameRewardModelPair = this->model.getUniqueRewardModel(); - stateRewards.get()[blockIndex] = nameRewardModelPair->second.getStateRewardVector()[representativeState]; + stateRewards.get()[blockIndex] = this->model.getUniqueRewardModel().getStateRewardVector()[representativeState]; } } @@ -184,12 +183,13 @@ namespace storm { // Construct the reward model mapping. std::unordered_map rewardModels; if (this->options.getKeepRewards() && this->model.hasRewardModel()) { - typename std::unordered_map::const_iterator nameRewardModelPair = this->model.getUniqueRewardModel(); + STORM_LOG_THROW(this->model.hasUniqueRewardModel(), storm::exceptions::IllegalFunctionCallException, "Cannot preserve more than one reward model."); + typename std::unordered_map::const_iterator nameRewardModelPair = this->model.getRewardModels().begin(); rewardModels.insert(std::make_pair(nameRewardModelPair->first, typename ModelType::RewardModelType(stateRewards))); } // Finally construct the quotient model. - this->quotient = std::shared_ptr(new ModelType(builder.build(), std::move(newLabeling), std::move(rewardModels))); + this->quotient = std::make_shared(builder.build(), std::move(newLabeling), std::move(rewardModels)); } template diff --git a/src/storage/expressions/ExprtkExpressionEvaluator.cpp b/src/storage/expressions/ExprtkExpressionEvaluator.cpp index d24bc742c..b1cc76c9d 100755 --- a/src/storage/expressions/ExprtkExpressionEvaluator.cpp +++ b/src/storage/expressions/ExprtkExpressionEvaluator.cpp @@ -2,7 +2,9 @@ #include "src/storage/expressions/ExpressionManager.h" #include "src/adapters/CarlAdapter.h" + #include "src/utility/macros.h" +#include "src/exceptions/UnexpectedException.h" namespace storm { namespace expressions { @@ -49,7 +51,7 @@ namespace storm { CompiledExpressionType& compiledExpression = result.first->second; compiledExpression.register_symbol_table(symbolTable); bool parsingOk = parser.compile(ToExprtkStringVisitor().toString(expression), compiledExpression); - STORM_LOG_ASSERT(parsingOk, "Expression was not properly parsed by ExprTk: " << expression); + STORM_LOG_THROW(parsingOk, storm::exceptions::UnexpectedException, "Expression was not properly parsed by ExprTk: " << expression << ". (Returned error: " << parser.error() << ")"); return compiledExpression; } diff --git a/src/storage/expressions/UnaryExpression.cpp b/src/storage/expressions/UnaryExpression.cpp index 1223368fd..e24a726e0 100644 --- a/src/storage/expressions/UnaryExpression.cpp +++ b/src/storage/expressions/UnaryExpression.cpp @@ -18,7 +18,7 @@ namespace storm { } void UnaryExpression::gatherVariables(std::set& variables) const { - return; + return this->getOperand()->gatherVariables(variables); } std::shared_ptr const& UnaryExpression::getOperand() const { diff --git a/src/storage/jani/Automaton.cpp b/src/storage/jani/Automaton.cpp index aeb59e4b3..8e99f25c1 100644 --- a/src/storage/jani/Automaton.cpp +++ b/src/storage/jani/Automaton.cpp @@ -358,8 +358,12 @@ namespace storm { result = this->getInitialStatesRestriction(); } - // Add the expressions for all variables that have initial expressions. + // Add the expressions for all non-transient variables that have initial expressions. for (auto const& variable : this->getVariables()) { + if (variable.isTransient()) { + continue; + } + if (variable.hasInitExpression()) { storm::expressions::Expression newInitExpression = variable.isBooleanVariable() ? storm::expressions::iff(variable.getExpressionVariable(), variable.getInitExpression()) : variable.getExpressionVariable() == variable.getInitExpression(); if (result.isInitialized()) { @@ -407,13 +411,48 @@ namespace storm { } } - std::set Automaton::getUsedActionIndices() const { - std::set result; + bool Automaton::containsVariablesOnlyInProbabilitiesOrTransientAssignments(std::set const& variables) const { + // Check initial states restriction expression. + if (this->hasInitialStatesRestriction()) { + if (this->getInitialStatesRestriction().containsVariable(variables)) { + return false; + } + } + + // Check global variable definitions. + if (this->getVariables().containsVariablesInBoundExpressionsOrInitialValues(variables)) { + return false; + } + + // Check edges. for (auto const& edge : edges) { - result.insert(edge.getActionIndex()); + if (edge.usesVariablesInNonTransientAssignments(variables)) { + return false; + } + } + + return true; + } + + void Automaton::pushEdgeAssignmentsToDestinations() { + for (auto& edge : edges) { + edge.pushAssignmentsToDestinations(); + } + } + + bool Automaton::hasTransientEdgeDestinationAssignments() const { + for (auto const& edge : this->getEdges()) { + if (edge.hasTransientEdgeDestinationAssignments()) { + return true; + } + } + return false; + } + + void Automaton::liftTransientEdgeDestinationAssignments() { + for (auto& edge : this->getEdges()) { + edge.liftTransientDestinationAssignments(); } - return result; } - } -} \ No newline at end of file +} diff --git a/src/storage/jani/Automaton.h b/src/storage/jani/Automaton.h index 83d31db83..5ae609853 100644 --- a/src/storage/jani/Automaton.h +++ b/src/storage/jani/Automaton.h @@ -308,7 +308,25 @@ namespace storm { * Retrieves the action indices appearing at some edge of the automaton. */ std::set getUsedActionIndices() const; - + + /*! + * Checks whether the provided variables only appear in the probability expressions or the expressions being + * assigned in transient assignments. + */ + bool containsVariablesOnlyInProbabilitiesOrTransientAssignments(std::set const& variables) const; + + void pushEdgeAssignmentsToDestinations(); + + /*! + * Retrieves whether there is any transient edge destination assignment in the automaton. + */ + bool hasTransientEdgeDestinationAssignments() const; + + /*! + * Lifts the common edge destination assignments to edge assignments. + */ + void liftTransientEdgeDestinationAssignments(); + private: /// The name of the automaton. std::string name; diff --git a/src/storage/jani/AutomatonComposition.cpp b/src/storage/jani/AutomatonComposition.cpp index f8ca57212..ae1fe999e 100644 --- a/src/storage/jani/AutomatonComposition.cpp +++ b/src/storage/jani/AutomatonComposition.cpp @@ -3,7 +3,7 @@ namespace storm { namespace jani { - AutomatonComposition::AutomatonComposition(std::string const& name) : name(name) { + AutomatonComposition::AutomatonComposition(std::string const& name, std::set const& inputEnabledActions) : name(name), inputEnabledActions(inputEnabledActions) { // Intentionally left empty. } @@ -15,6 +15,14 @@ namespace storm { return name; } + std::set const& AutomatonComposition::getInputEnabledActions() const { + return inputEnabledActions; + } + + bool AutomatonComposition::isAutomaton() const { + return true; + } + void AutomatonComposition::write(std::ostream& stream) const { stream << name; } diff --git a/src/storage/jani/AutomatonComposition.h b/src/storage/jani/AutomatonComposition.h index 1df440365..d1e7604ba 100644 --- a/src/storage/jani/AutomatonComposition.h +++ b/src/storage/jani/AutomatonComposition.h @@ -1,5 +1,7 @@ #pragma once +#include + #include "src/storage/jani/Composition.h" namespace storm { @@ -10,7 +12,7 @@ namespace storm { /*! * Creates a reference to an automaton to be used in a composition. */ - AutomatonComposition(std::string const& name); + AutomatonComposition(std::string const& name, std::set const& inputEnabledActions = {}); /*! * Retrieves the name of the automaton this composition element refers to. @@ -21,12 +23,17 @@ namespace storm { virtual void write(std::ostream& stream) const override; - bool isAutomaton() const override { return true; } + std::set const& getInputEnabledActions() const; + + bool isAutomaton() const override; private: - // The name of the automaton this composition element refers to. + /// The name of the automaton this composition element refers to. std::string name; + + /// The names of the actions for which to make this automaton input-enabled. + std::set inputEnabledActions; }; } -} \ No newline at end of file +} diff --git a/src/storage/jani/Composition.cpp b/src/storage/jani/Composition.cpp index 7059c7c85..7ba39eaba 100644 --- a/src/storage/jani/Composition.cpp +++ b/src/storage/jani/Composition.cpp @@ -9,4 +9,4 @@ namespace storm { } } -} \ No newline at end of file +} diff --git a/src/storage/jani/Composition.h b/src/storage/jani/Composition.h index b337f8015..0e5c10bbe 100644 --- a/src/storage/jani/Composition.h +++ b/src/storage/jani/Composition.h @@ -17,6 +17,6 @@ namespace storm { friend std::ostream& operator<<(std::ostream& stream, Composition const& composition); }; - + } -} \ No newline at end of file +} diff --git a/src/storage/jani/CompositionActionInformationVisitor.cpp b/src/storage/jani/CompositionActionInformationVisitor.cpp deleted file mode 100644 index 683995d07..000000000 --- a/src/storage/jani/CompositionActionInformationVisitor.cpp +++ /dev/null @@ -1,144 +0,0 @@ -#include "src/storage/jani/CompositionActionInformationVisitor.h" - -#include "src/storage/jani/Model.h" -#include "src/storage/jani/Compositions.h" - -namespace storm { - namespace jani { - - ActionInformation::ActionInformation(std::set const& nonsilentActionIndices, std::map const& indexToNameMap, std::map const& nameToIndexMap, uint64_t silentActionIndex) : silentActionIndex(silentActionIndex), nonsilentActionIndices(nonsilentActionIndices), indexToNameMap(indexToNameMap), nameToIndexMap(nameToIndexMap) { - // Intentionally left empty. - } - - std::string const& ActionInformation::getActionName(uint64_t index) const { - return indexToNameMap.at(index); - } - - uint64_t ActionInformation::getActionIndex(std::string const& name) const { - return nameToIndexMap.at(name); - } - - std::set const& ActionInformation::getNonSilentActionIndices() const { - return nonsilentActionIndices; - } - - uint64_t ActionInformation::getSilentActionIndex() const { - return silentActionIndex; - } - - CompositionActionInformationVisitor::CompositionActionInformationVisitor(storm::jani::Model const& model) : model(model), nextFreeActionIndex(0), nameToIndexMap(), indexToNameMap() { - // Intentionally left empty. - } - - ActionInformation CompositionActionInformationVisitor::getActionInformation() { - indexToNameMap.clear(); - nameToIndexMap.clear(); - - // Determine the next free index we can give out to a new action. - for (auto const& action : model.getActions()) { - uint64_t actionIndex = model.getActionIndex(action.getName()); - - nameToIndexMap[action.getName()] = model.getActionIndex(action.getName()); - indexToNameMap[actionIndex] = action.getName(); - - nextFreeActionIndex = std::max(nextFreeActionIndex, model.getActionIndex(action.getName())); - } - ++nextFreeActionIndex; - - std::set nonSilentActionIndices = boost::any_cast>(model.getSystemComposition().accept(*this, boost::none)); - - return ActionInformation(nonSilentActionIndices, indexToNameMap, nameToIndexMap); - } - - boost::any CompositionActionInformationVisitor::visit(AutomatonComposition const& composition, boost::any const& data) { - std::set result = model.getAutomaton(composition.getAutomatonName()).getUsedActionIndices(); - result.erase(model.getSilentActionIndex()); - return result; - } - - boost::any CompositionActionInformationVisitor::visit(RenameComposition const& composition, boost::any const& data) { - std::set usedActions = boost::any_cast>(composition.getSubcomposition().accept(*this, boost::none)); - - std::set newUsedActions; - for (auto const& index : usedActions) { - auto renamingIt = composition.getRenaming().find(indexToNameMap.at(index)); - if (renamingIt != composition.getRenaming().end()) { - if (renamingIt->second) { - newUsedActions.insert(addOrGetActionIndex(renamingIt->second.get())); - - auto actionIndexIt = nameToIndexMap.find(renamingIt->second.get()); - if (actionIndexIt != nameToIndexMap.end()) { - newUsedActions.insert(actionIndexIt->second); - } else { - nameToIndexMap[renamingIt->second.get()] = nextFreeActionIndex; - indexToNameMap[nextFreeActionIndex] = renamingIt->second.get(); - ++nextFreeActionIndex; - } - } - } else { - newUsedActions.insert(index); - } - } - - return newUsedActions; - } - - boost::any CompositionActionInformationVisitor::visit(ParallelComposition const& composition, boost::any const& data) { - std::vector> subresults; - for (auto const& subcomposition : composition.getSubcompositions()) { - subresults.push_back(boost::any_cast>(subcomposition->accept(*this, boost::none))); - } - - std::set effectiveSynchronizationVectors; - for (uint64_t index = 0; index < composition.getNumberOfSynchronizationVectors(); ++index) { - effectiveSynchronizationVectors.insert(index); - } - - // Determine all actions that do not take part in synchronization vectors. - std::set result; - for (uint64_t subresultIndex = 0; subresultIndex < subresults.size(); ++subresultIndex) { - - std::set actionsInSynch; - std::set localEffectiveSynchVectors; - for (uint64_t synchVectorIndex = 0; synchVectorIndex < composition.getNumberOfSynchronizationVectors(); ++synchVectorIndex) { - auto const& synchVector = composition.getSynchronizationVector(synchVectorIndex); - uint64_t synchVectorActionIndex = nameToIndexMap.at(synchVector.getInput(subresultIndex)); - actionsInSynch.insert(synchVectorActionIndex); - - // If the action of they synchronization vector at this position is one that is actually contained - // in the corresponding subcomposition, the synchronization vector is effective. - if (subresults[subresultIndex].find(synchVectorActionIndex) != subresults[subresultIndex].end()) { - effectiveSynchronizationVectors.insert(synchVectorIndex); - } - } - - std::set_difference(subresults[subresultIndex].begin(), subresults[subresultIndex].end(), actionsInSynch.begin(), actionsInSynch.end(), std::inserter(result, result.begin())); - - // Intersect the previously effective synchronization vectors with the ones that were derived to be - // effective for the current subcomposition. - std::set newEffectiveSynchVectors; - std::set_intersection(effectiveSynchronizationVectors.begin(), effectiveSynchronizationVectors.end(), newEffectiveSynchVectors.begin(), newEffectiveSynchVectors.end(), std::inserter(newEffectiveSynchVectors, newEffectiveSynchVectors.begin())); - effectiveSynchronizationVectors = std::move(newEffectiveSynchVectors); - } - - // Now add all outputs of synchronization vectors. - for (auto const& synchVector : composition.getSynchronizationVectors()) { - result.insert(addOrGetActionIndex(synchVector.getOutput())); - } - - return result; - } - - uint64_t CompositionActionInformationVisitor::addOrGetActionIndex(std::string const& name) { - auto it = nameToIndexMap.find(name); - if (it != nameToIndexMap.end()) { - return it->second; - } else { - nameToIndexMap[name] = nextFreeActionIndex; - indexToNameMap[nextFreeActionIndex] = name; - return nextFreeActionIndex++; - } - } - - } -} diff --git a/src/storage/jani/CompositionActionInformationVisitor.h b/src/storage/jani/CompositionActionInformationVisitor.h deleted file mode 100644 index 705773c27..000000000 --- a/src/storage/jani/CompositionActionInformationVisitor.h +++ /dev/null @@ -1,50 +0,0 @@ -#pragma once - -#include -#include - -#include "src/storage/jani/CompositionVisitor.h" - -namespace storm { - namespace jani { - - class Model; - - class ActionInformation { - public: - ActionInformation(std::set const& nonsilentActionIndices, std::map const& indexToNameMap, std::map const& nameToIndexMap, uint64_t silentActionIndex = 0); - - std::string const& getActionName(uint64_t index) const; - uint64_t getActionIndex(std::string const& name) const; - std::set const& getNonSilentActionIndices() const; - uint64_t getSilentActionIndex() const; - - private: - uint64_t silentActionIndex; - std::set nonsilentActionIndices; - std::map indexToNameMap; - std::map nameToIndexMap; - }; - - class CompositionActionInformationVisitor : public CompositionVisitor { - public: - CompositionActionInformationVisitor(storm::jani::Model const& model); - - ActionInformation getActionInformation(); - - virtual boost::any visit(AutomatonComposition const& composition, boost::any const& data) override; - virtual boost::any visit(RenameComposition const& composition, boost::any const& data) override; - virtual boost::any visit(ParallelComposition const& composition, boost::any const& data) override; - - private: - uint64_t addOrGetActionIndex(std::string const& name); - - storm::jani::Model const& model; - uint64_t nextFreeActionIndex; - std::map nameToIndexMap; - std::map indexToNameMap; - }; - - - } -} diff --git a/src/storage/jani/CompositionInformationVisitor.cpp b/src/storage/jani/CompositionInformationVisitor.cpp index b07911ca6..d2635c882 100644 --- a/src/storage/jani/CompositionInformationVisitor.cpp +++ b/src/storage/jani/CompositionInformationVisitor.cpp @@ -3,76 +3,100 @@ #include "src/storage/jani/Model.h" #include "src/storage/jani/Compositions.h" +#include "src/utility/macros.h" +#include "src/exceptions/WrongFormatException.h" + namespace storm { namespace jani { - CompositionInformation::CompositionInformation() : automatonNameToMultiplicity(), nonsilentActions(), renameComposition(false), nonStandardParallelComposition(false) { - // Intentionally left empty. - } - - CompositionInformation::CompositionInformation(std::map const& automatonNameToMultiplicity, std::set const& nonsilentActions, bool containsRenameComposition, bool nonStandardParallelComposition) : automatonNameToMultiplicity(automatonNameToMultiplicity), nonsilentActions(nonsilentActions), renameComposition(containsRenameComposition), nonStandardParallelComposition(nonStandardParallelComposition) { + CompositionInformation::CompositionInformation() : nonStandardParallelComposition(false) { // Intentionally left empty. } void CompositionInformation::increaseAutomatonMultiplicity(std::string const& automatonName, uint64_t count) { automatonNameToMultiplicity[automatonName] += count; } + + std::map const& CompositionInformation::getAutomatonToMultiplicityMap() const { + return automatonNameToMultiplicity; + } + + void CompositionInformation::addMultiplicityMap(std::map const& multiplicityMap) { + automatonNameToMultiplicity = joinMultiplicityMaps(automatonNameToMultiplicity, multiplicityMap); + } - void CompositionInformation::addNonsilentAction(std::string const& actionName) { - nonsilentActions.insert(actionName); + std::map CompositionInformation::joinMultiplicityMaps(std::map const& first, std::map const& second) { + std::map result = first; + for (auto const& element : second) { + result[element.first] += element.second; + } + return result; } - std::set const& CompositionInformation::getNonsilentActions() const { - return nonsilentActions; + void CompositionInformation::setContainsNonStandardParallelComposition(bool value) { + nonStandardParallelComposition = value; } - std::set CompositionInformation::renameNonsilentActions(std::set const& nonsilentActions, std::map> const& renaming) { - std::set newNonsilentActions; - for (auto const& entry : nonsilentActions) { - auto it = renaming.find(entry); - if (it != renaming.end()) { - if (it->second) { - newNonsilentActions.insert(it->second.get()); - } - } else { - newNonsilentActions.insert(entry); - } - } - return newNonsilentActions; + bool CompositionInformation::containsNonStandardParallelComposition() const { + return nonStandardParallelComposition; } - void CompositionInformation::setContainsRenameComposition() { - renameComposition = true; + std::string const& CompositionInformation::getActionName(uint64_t index) const { + return indexToNameMap.at(index); } - bool CompositionInformation::containsRenameComposition() const { - return renameComposition; + uint64_t CompositionInformation::getActionIndex(std::string const& name) const { + return nameToIndexMap.at(name); } - void CompositionInformation::setContainsNonStandardParallelComposition() { - nonStandardParallelComposition = true; + void CompositionInformation::addNonSilentActionIndex(uint64_t index) { + nonSilentActionIndices.insert(index); } - bool CompositionInformation::containsNonStandardParallelComposition() const { - return nonStandardParallelComposition; + void CompositionInformation::addNonSilentActionIndices(std::set const& indices) { + nonSilentActionIndices.insert(indices.begin(), indices.end()); } - std::map CompositionInformation::joinMultiplicityMaps(std::map const& first, std::map const& second) { - std::map result = first; - for (auto const& element : second) { - result[element.first] += element.second; - } - return result; + bool CompositionInformation::hasNonSilentActionIndex(uint64_t index) { + return nonSilentActionIndices.find(index) != nonSilentActionIndices.end(); } - std::map const& CompositionInformation::getAutomatonToMultiplicityMap() const { - return automatonNameToMultiplicity; + void CompositionInformation::addInputEnabledActionIndex(uint64_t index) { + inputEnabledActionIndices.insert(index); + } + + std::set const& CompositionInformation::getNonSilentActionIndices() const { + return nonSilentActionIndices; + } + + std::set const& CompositionInformation::getInputEnabledActionIndices() const { + return inputEnabledActionIndices; } - CompositionInformation CompositionInformationVisitor::getInformation(Composition const& composition, Model const& model) { - return boost::any_cast(composition.accept(*this, model)); + void CompositionInformation::setMappings(std::map const& indexToNameMap, std::map const& nameToIndexMap) { + this->indexToNameMap = indexToNameMap; + this->nameToIndexMap = nameToIndexMap; } + CompositionInformationVisitor::CompositionInformationVisitor(Model const& model, Composition const& composition) : model(model), composition(composition), nextFreeActionIndex(0) { + // Determine the next free index we can give out to a new action. + for (auto const& action : model.getActions()) { + uint64_t actionIndex = model.getActionIndex(action.getName()); + + nameToIndexMap[action.getName()] = model.getActionIndex(action.getName()); + indexToNameMap[actionIndex] = action.getName(); + + nextFreeActionIndex = std::max(nextFreeActionIndex, model.getActionIndex(action.getName())); + } + ++nextFreeActionIndex; + } + + CompositionInformation CompositionInformationVisitor::getInformation() { + CompositionInformation result = boost::any_cast(composition.accept(*this, model)); + result.setMappings(indexToNameMap, nameToIndexMap); + return result; + } + boost::any CompositionInformationVisitor::visit(AutomatonComposition const& composition, boost::any const& data) { Model const& model = boost::any_cast(data); Automaton const& automaton = model.getAutomaton(composition.getAutomatonName()); @@ -80,35 +104,36 @@ namespace storm { CompositionInformation result; result.increaseAutomatonMultiplicity(composition.getAutomatonName()); for (auto const& actionIndex : automaton.getActionIndices()) { - if (actionIndex != model.getSilentActionIndex()) { - result.addNonsilentAction(model.getAction(actionIndex).getName()); + if (actionIndex != storm::jani::Model::SILENT_ACTION_INDEX) { + result.addNonSilentActionIndex(actionIndex); } } + for (auto const& action : composition.getInputEnabledActions()) { + auto it = nameToIndexMap.find(action); + STORM_LOG_THROW(it != nameToIndexMap.end(), storm::exceptions::WrongFormatException, "Illegal action name '" << action << "' in when input-enabling automaton '" << composition.getAutomatonName() << "'."); + uint64_t actionIndex = it->second; + STORM_LOG_THROW(result.hasNonSilentActionIndex(actionIndex), storm::exceptions::WrongFormatException, "Cannot make automaton '" << composition.getAutomatonName() << "' input enabled for action " << action << ", because it has no such action."); + result.addInputEnabledActionIndex(actionIndex); + } return result; } - boost::any CompositionInformationVisitor::visit(RenameComposition const& composition, boost::any const& data) { - CompositionInformation subresult = boost::any_cast(composition.getSubcomposition().accept(*this, data)); - std::set nonsilentActions = CompositionInformation::renameNonsilentActions(subresult.getNonsilentActions(), composition.getRenaming()); - return CompositionInformation(subresult.getAutomatonToMultiplicityMap(), nonsilentActions, true, subresult.containsNonStandardParallelComposition()); - } - boost::any CompositionInformationVisitor::visit(ParallelComposition const& composition, boost::any const& data) { + CompositionInformation result; + std::vector subinformation; + std::set nonsilentSubActionIndices; for (auto const& subcomposition : composition.getSubcompositions()) { subinformation.push_back(boost::any_cast(subcomposition->accept(*this, data))); + nonsilentSubActionIndices.insert(subinformation.back().getNonSilentActionIndices().begin(), subinformation.back().getNonSilentActionIndices().end()); } - std::map joinedAutomatonToMultiplicityMap; - bool containsRenameComposition = false; bool containsNonStandardParallelComposition = false; for (auto const& subinfo : subinformation) { - containsRenameComposition |= subinfo.containsRenameComposition(); containsNonStandardParallelComposition |= subinfo.containsNonStandardParallelComposition(); - joinedAutomatonToMultiplicityMap = CompositionInformation::joinMultiplicityMaps(joinedAutomatonToMultiplicityMap, subinfo.getAutomatonToMultiplicityMap()); - + result.addMultiplicityMap(subinfo.getAutomatonToMultiplicityMap()); } // Keep track of the synchronization vectors that are effective, meaning that the subcompositions all have @@ -119,33 +144,94 @@ namespace storm { } // Now compute non-silent actions. - std::set nonsilentActions; + std::set nonSilentActionIndices; for (uint_fast64_t infoIndex = 0; infoIndex < subinformation.size(); ++infoIndex) { auto const& subinfo = subinformation[infoIndex]; std::set enabledSynchVectors; - for (auto const& nonsilentAction : subinfo.getNonsilentActions()) { - bool appearsInSomeSynchVector = false; - for (uint64_t synchVectorIndex = 0; synchVectorIndex < composition.getNumberOfSynchronizationVectors(); ++synchVectorIndex) { - auto const& synchVector = composition.getSynchronizationVector(synchVectorIndex); - if (synchVector.getInput(infoIndex) == nonsilentAction) { - appearsInSomeSynchVector = true; - enabledSynchVectors.insert(synchVectorIndex); + std::set actionsInSynch; + for (uint64_t synchVectorIndex = 0; synchVectorIndex < composition.getNumberOfSynchronizationVectors(); ++synchVectorIndex) { + auto const& synchVector = composition.getSynchronizationVector(synchVectorIndex); + if (synchVector.getInput(infoIndex) != SynchronizationVector::NO_ACTION_INPUT) { + for (auto const& nonSilentActionIndex : subinfo.getNonSilentActionIndices()) { + std::string const& nonSilentAction = indexToNameMap.at(nonSilentActionIndex); + if (synchVector.getInput(infoIndex) == nonSilentAction) { + enabledSynchVectors.insert(synchVectorIndex); + actionsInSynch.insert(nonSilentActionIndex); + } } - } - - if (!appearsInSomeSynchVector) { - nonsilentActions.insert(nonsilentAction); + } else { + enabledSynchVectors.insert(synchVectorIndex); } } + std::set_difference(subinfo.getNonSilentActionIndices().begin(), subinfo.getNonSilentActionIndices().end(), actionsInSynch.begin(), actionsInSynch.end(), std::inserter(nonSilentActionIndices, nonSilentActionIndices.begin())); + std::set newEffectiveSynchVectors; std::set_intersection(effectiveSynchVectors.begin(), effectiveSynchVectors.end(), enabledSynchVectors.begin(), enabledSynchVectors.end(), std::inserter(newEffectiveSynchVectors, newEffectiveSynchVectors.begin())); effectiveSynchVectors = std::move(newEffectiveSynchVectors); } - return CompositionInformation(joinedAutomatonToMultiplicityMap, nonsilentActions, containsRenameComposition, containsNonStandardParallelComposition); + // Now add all outputs of effective synchronization vectors. + for (auto const& synchVectorIndex : effectiveSynchVectors) { + auto const& synchVector = composition.getSynchronizationVector(synchVectorIndex); + if (synchVector.getOutput() != storm::jani::Model::SILENT_ACTION_NAME) { + nonSilentActionIndices.insert(addOrGetActionIndex(synchVector.getOutput())); + } + } + + // Finally check whether it's a non-standard parallel composition. We do that by first constructing a set of + // all effective synchronization vectors and then checking whether this set is fully contained within the + // set of expected synchronization vectors. + + std::set synchVectorSet; + for (auto synchVectorIndex : effectiveSynchVectors) { + synchVectorSet.insert(composition.getSynchronizationVector(synchVectorIndex)); + } + + // Construct the set of expected synchronization vectors. + std::set expectedSynchVectorSetUnderApprox; + std::set expectedSynchVectorSetOverApprox; + for (auto actionIndex : nonsilentSubActionIndices) { + std::string const& actionName = indexToNameMap.at(actionIndex); + std::vector input; + uint64_t numberOfParticipatingAutomata = 0; + for (auto const& subcomposition : subinformation) { + if (subcomposition.getNonSilentActionIndices().find(actionIndex) != subcomposition.getNonSilentActionIndices().end()) { + input.push_back(actionName); + ++numberOfParticipatingAutomata; + } else { + input.push_back(SynchronizationVector::NO_ACTION_INPUT); + } + } + + storm::jani::SynchronizationVector newSynchVector(input, actionName); + expectedSynchVectorSetOverApprox.insert(newSynchVector); + if (numberOfParticipatingAutomata > 1) { + expectedSynchVectorSetUnderApprox.insert(newSynchVector); + } + } + + containsNonStandardParallelComposition |= !std::includes(expectedSynchVectorSetOverApprox.begin(), expectedSynchVectorSetOverApprox.end(), synchVectorSet.begin(), synchVectorSet.end(), SynchronizationVectorLexicographicalLess()); + + containsNonStandardParallelComposition |= !std::includes(synchVectorSet.begin(), synchVectorSet.end(), expectedSynchVectorSetUnderApprox.begin(), expectedSynchVectorSetUnderApprox.end(), SynchronizationVectorLexicographicalLess()); + + result.setContainsNonStandardParallelComposition(containsNonStandardParallelComposition); + + result.addNonSilentActionIndices(nonSilentActionIndices); + return result; + } + + uint64_t CompositionInformationVisitor::addOrGetActionIndex(std::string const& name) { + auto it = nameToIndexMap.find(name); + if (it != nameToIndexMap.end()) { + return it->second; + } else { + nameToIndexMap[name] = nextFreeActionIndex; + indexToNameMap[nextFreeActionIndex] = name; + return nextFreeActionIndex++; + } } } -} \ No newline at end of file +} diff --git a/src/storage/jani/CompositionInformationVisitor.h b/src/storage/jani/CompositionInformationVisitor.h index 786078e2e..7dfcb5a56 100644 --- a/src/storage/jani/CompositionInformationVisitor.h +++ b/src/storage/jani/CompositionInformationVisitor.h @@ -16,32 +16,44 @@ namespace storm { class CompositionInformation { public: CompositionInformation(); - CompositionInformation(std::map const& automatonNameToMultiplicity, std::set const& nonsilentActions, bool containsRenaming, bool nonStandardParallelComposition); void increaseAutomatonMultiplicity(std::string const& automatonName, uint64_t count = 1); + std::map const& getAutomatonToMultiplicityMap() const; + static std::map joinMultiplicityMaps(std::map const& first, std::map const& second); + void addMultiplicityMap(std::map const& multiplicityMap); - void addNonsilentAction(std::string const& actionName); - std::set const& getNonsilentActions() const; - static std::set renameNonsilentActions(std::set const& nonsilentActions, std::map> const& renaming); - - void setContainsRenameComposition(); - bool containsRenameComposition() const; - - void setContainsNonStandardParallelComposition(); + void setContainsNonStandardParallelComposition(bool value); bool containsNonStandardParallelComposition() const; - static std::map joinMultiplicityMaps(std::map const& first, std::map const& second); - std::map const& getAutomatonToMultiplicityMap() const; + std::string const& getActionName(uint64_t index) const; + uint64_t getActionIndex(std::string const& name) const; + + void addNonSilentActionIndex(uint64_t index); + void addNonSilentActionIndices(std::set const& indices); + bool hasNonSilentActionIndex(uint64_t index); + void addInputEnabledActionIndex(uint64_t index); + + std::set const& getNonSilentActionIndices() const; + std::set const& getInputEnabledActionIndices() const; + + void setMappings(std::map const& indexToNameMap, std::map const& nameToIndexMap); private: - /// A mapping from the automata's names to the amount of times they occur in the composition. - std::map automatonNameToMultiplicity; + /// The indices of the non-silent actions appearing in the topmost element of the composition. + std::set nonSilentActionIndices; + + /// The set of indices of actions for which the topmost element of the composition is input-enabled. + std::set inputEnabledActionIndices; - /// The set of non-silent actions contained in the composition. - std::set nonsilentActions; + /// A mapping from action indices to names. Since the composition may introduce new action names, this may + /// extend the one from the underlying model. + std::map indexToNameMap; - /// A flag indicating whether the composition contains a renaming composition. - bool renameComposition; + /// A mapping from action names to their indices. + std::map nameToIndexMap; + + /// A mapping from the automata's names to the amount of times they occur in the composition. + std::map automatonNameToMultiplicity; /// A flag indicating whether the composition contains any non-standard parallel composition. bool nonStandardParallelComposition; @@ -49,14 +61,21 @@ namespace storm { class CompositionInformationVisitor : public CompositionVisitor { public: - CompositionInformationVisitor() = default; - - CompositionInformation getInformation(Composition const& composition, Model const& model); - + CompositionInformationVisitor(Model const& model, Composition const& composition); + CompositionInformation getInformation(); + virtual boost::any visit(AutomatonComposition const& composition, boost::any const& data) override; - virtual boost::any visit(RenameComposition const& composition, boost::any const& data) override; virtual boost::any visit(ParallelComposition const& composition, boost::any const& data) override; + + private: + uint64_t addOrGetActionIndex(std::string const& name); + + storm::jani::Model const& model; + Composition const& composition; + uint64_t nextFreeActionIndex; + std::map nameToIndexMap; + std::map indexToNameMap; }; } -} \ No newline at end of file +} diff --git a/src/storage/jani/CompositionVisitor.h b/src/storage/jani/CompositionVisitor.h index d8c62a788..c346826e2 100644 --- a/src/storage/jani/CompositionVisitor.h +++ b/src/storage/jani/CompositionVisitor.h @@ -7,15 +7,13 @@ namespace storm { class Composition; class AutomatonComposition; - class RenameComposition; class ParallelComposition; class CompositionVisitor { public: virtual boost::any visit(AutomatonComposition const& composition, boost::any const& data) = 0; - virtual boost::any visit(RenameComposition const& composition, boost::any const& data) = 0; virtual boost::any visit(ParallelComposition const& composition, boost::any const& data) = 0; }; } -} \ No newline at end of file +} diff --git a/src/storage/jani/Compositions.h b/src/storage/jani/Compositions.h index ea74f3ac4..b32464d91 100644 --- a/src/storage/jani/Compositions.h +++ b/src/storage/jani/Compositions.h @@ -1,3 +1,2 @@ #include "src/storage/jani/AutomatonComposition.h" -#include "src/storage/jani/RenameComposition.h" #include "src/storage/jani/ParallelComposition.h" diff --git a/src/storage/jani/Edge.cpp b/src/storage/jani/Edge.cpp index b0a7ef943..69c85db59 100644 --- a/src/storage/jani/Edge.cpp +++ b/src/storage/jani/Edge.cpp @@ -80,7 +80,7 @@ namespace storm { } bool Edge::hasSilentAction() const { - return actionIndex == Model::silentActionIndex; + return actionIndex == Model::SILENT_ACTION_INDEX; } bool Edge::addTransientAssignment(Assignment const& assignment) { @@ -113,8 +113,38 @@ namespace storm { } } + void Edge::pushAssignmentsToDestinations() { + assert(!destinations.empty()); + for (auto const& assignment : this->getAssignments()) { + for (auto& destination : destinations) { + destination.addAssignment(assignment); + } + } + assignments = OrderedAssignments(); + } + boost::container::flat_set const& Edge::getWrittenGlobalVariables() const { return writtenGlobalVariables; } + + bool Edge::usesVariablesInNonTransientAssignments(std::set const& variables) const { + for (auto const& destination : destinations) { + for (auto const& assignment : destination.getOrderedAssignments().getNonTransientAssignments()) { + if (assignment.getAssignedExpression().containsVariable(variables)) { + return true; + } + } + } + return false; + } + + bool Edge::hasTransientEdgeDestinationAssignments() const { + for (auto const& destination : this->getDestinations()) { + if (destination.hasTransientAssignment()) { + return true; + } + } + return false; + } } -} \ No newline at end of file +} diff --git a/src/storage/jani/Edge.h b/src/storage/jani/Edge.h index 828f992a3..de4becb3e 100644 --- a/src/storage/jani/Edge.h +++ b/src/storage/jani/Edge.h @@ -106,6 +106,21 @@ namespace storm { */ void liftTransientDestinationAssignments(); + /** + * Shifts the assingments from the edges to the destinations. + */ + void pushAssignmentsToDestinations(); + + /*! + * Checks whether the provided variables appear on the right-hand side of non-transient assignments. + */ + bool usesVariablesInNonTransientAssignments(std::set const& variables) const; + + /*! + * Retrieves whether there is any transient edge destination assignment in the edge. + */ + bool hasTransientEdgeDestinationAssignments() const; + private: /// The index of the source location. uint64_t sourceLocationIndex; @@ -132,4 +147,4 @@ namespace storm { }; } -} \ No newline at end of file +} diff --git a/src/storage/jani/EdgeDestination.cpp b/src/storage/jani/EdgeDestination.cpp index 1136c1318..b5c785c05 100644 --- a/src/storage/jani/EdgeDestination.cpp +++ b/src/storage/jani/EdgeDestination.cpp @@ -51,5 +51,9 @@ namespace storm { return assignments.remove(assignment); } + bool EdgeDestination::hasTransientAssignment() const { + return !assignments.getTransientAssignments().empty(); + } + } -} \ No newline at end of file +} diff --git a/src/storage/jani/EdgeDestination.h b/src/storage/jani/EdgeDestination.h index 4071f83d8..c9e5e5e64 100644 --- a/src/storage/jani/EdgeDestination.h +++ b/src/storage/jani/EdgeDestination.h @@ -39,8 +39,11 @@ namespace storm { */ void setProbability(storm::expressions::Expression const& probability); + /*! + * Retrieves the assignments to make when choosing this destination. + */ OrderedAssignments const& getOrderedAssignments() const; - + /*! * Substitutes all variables in all expressions according to the given substitution. */ @@ -50,6 +53,11 @@ namespace storm { bool hasAssignment(Assignment const& assignment) const; bool removeAssignment(Assignment const& assignment); + /*! + * Retrieves whether this destination has transient assignments. + */ + bool hasTransientAssignment() const; + private: // The index of the destination location. uint64_t locationIndex; @@ -62,4 +70,4 @@ namespace storm { }; } -} \ No newline at end of file +} diff --git a/src/storage/jani/JSONExporter.cpp b/src/storage/jani/JSONExporter.cpp index 5d71540c4..3493affe4 100644 --- a/src/storage/jani/JSONExporter.cpp +++ b/src/storage/jani/JSONExporter.cpp @@ -21,10 +21,8 @@ #include "src/storage/expressions/VariableExpression.h" #include "src/storage/jani/AutomatonComposition.h" -#include "src/storage/jani/RenameComposition.h" #include "src/storage/jani/ParallelComposition.h" - namespace storm { namespace jani { @@ -50,9 +48,6 @@ namespace storm { return compDecl; } - virtual boost::any visit(RenameComposition const& composition, boost::any const& data) { - - } virtual boost::any visit(ParallelComposition const& composition, boost::any const& data) { modernjson::json compDecl; @@ -233,7 +228,7 @@ namespace storm { std::vector actionReprs; uint64_t actIndex = 0; for(auto const& act : actions) { - if(actIndex == storm::jani::Model::silentActionIndex) { + if(actIndex == storm::jani::Model::SILENT_ACTION_INDEX) { actIndex++; continue; } @@ -399,7 +394,7 @@ namespace storm { jsonStruct["constants"] = buildConstantsArray(janiModel.getConstants()); jsonStruct["variables"] = buildVariablesArray(janiModel.getGlobalVariables()); jsonStruct["restrict-initial"]["exp"] = buildExpression(janiModel.getInitialStatesRestriction()); - jsonStruct["automata"] = buildAutomataArray(janiModel.getAutomata(), janiModel.buildActionToNameMap()); + jsonStruct["automata"] = buildAutomataArray(janiModel.getAutomata(), janiModel.getActionIndexToNameMap()); jsonStruct["system"] = CompositionJsonExporter::translate(janiModel.getSystemComposition()); } @@ -407,4 +402,4 @@ namespace storm { } -} \ No newline at end of file +} diff --git a/src/storage/jani/JSONExporter.h b/src/storage/jani/JSONExporter.h index a52b84b5d..604a27a47 100644 --- a/src/storage/jani/JSONExporter.h +++ b/src/storage/jani/JSONExporter.h @@ -48,4 +48,4 @@ namespace storm { }; } -} \ No newline at end of file +} diff --git a/src/storage/jani/Model.cpp b/src/storage/jani/Model.cpp index 19d8bb1d5..343d88d78 100644 --- a/src/storage/jani/Model.cpp +++ b/src/storage/jani/Model.cpp @@ -13,8 +13,8 @@ namespace storm { namespace jani { - static const std::string SILENT_ACTION_NAME = ""; - const uint64_t Model::silentActionIndex = 0; + const std::string Model::SILENT_ACTION_NAME = ""; + const uint64_t Model::SILENT_ACTION_INDEX = 0; Model::Model() { // Intentionally left empty. @@ -33,7 +33,7 @@ namespace storm { // Add a prefined action that represents the silent action. uint64_t actionIndex = addAction(storm::jani::Action(SILENT_ACTION_NAME)); - assert(actionIndex == silentActionIndex); + STORM_LOG_ASSERT(actionIndex == SILENT_ACTION_INDEX, "Illegal silent action index."); } storm::expressions::ExpressionManager& Model::getManager() const { @@ -217,35 +217,47 @@ namespace storm { } std::shared_ptr Model::getStandardSystemComposition() const { - std::shared_ptr current; - current = std::make_shared(this->automata.front().getName()); - std::set leftHandActionIndices = this->automata.front().getActionIndices(); + // If there's just one automaton, we must not use the parallel composition operator. + if (this->getNumberOfAutomata() == 1) { + return std::make_shared(this->getAutomata().front().getName()); + } - for (uint64_t index = 1; index < automata.size(); ++index) { - std::set newActionIndices = automata[index].getActionIndices(); - - // Compute the intersection of actions of the left- and right-hand side. - std::set intersectionActions; - std::set_intersection(leftHandActionIndices.begin(), leftHandActionIndices.end(), newActionIndices.begin(), newActionIndices.end(), std::inserter(intersectionActions, intersectionActions.begin())); - - // If the silent action is in the intersection, we remove it since we cannot synchronize over it. - auto it = intersectionActions.find(this->getSilentActionIndex()); - if (it != intersectionActions.end()) { - intersectionActions.erase(it); + // Determine the action indices used by each of the automata and create the standard subcompositions. + std::set allActionIndices; + std::vector> automatonActionIndices; + std::vector> subcompositions; + for (auto const& automaton : automata) { + automatonActionIndices.push_back(automaton.getActionIndices()); + automatonActionIndices.back().erase(SILENT_ACTION_INDEX); + allActionIndices.insert(automatonActionIndices.back().begin(), automatonActionIndices.back().end()); + subcompositions.push_back(std::make_shared(automaton.getName())); + } + + // Create the standard synchronization vectors: every automaton with that action participates in the + // synchronization. + std::vector synchVectors; + for (auto actionIndex : allActionIndices) { + std::string const& actionName = this->getAction(actionIndex).getName(); + std::vector synchVectorInputs; + uint64_t numberOfParticipatingAutomata = 0; + int i = 0; + for (auto const& actionIndices : automatonActionIndices) { + if (actionIndices.find(actionIndex) != actionIndices.end()) { + ++numberOfParticipatingAutomata; + synchVectorInputs.push_back(actionName); + } else { + synchVectorInputs.push_back(storm::jani::SynchronizationVector::NO_ACTION_INPUT); + } + ++i; } - // Then join the actions to reflect the actions of the new left-hand side. - leftHandActionIndices.insert(newActionIndices.begin(), newActionIndices.end()); - - // Create the set of strings that represents the actions over which to synchronize. - std::set intersectionActionNames; - for (auto const& actionIndex : intersectionActions) { - intersectionActionNames.insert(this->getAction(actionIndex).getName()); + // Only add the synchronization vector if there is more than one participating automaton. + if (numberOfParticipatingAutomata > 1) { + synchVectors.push_back(storm::jani::SynchronizationVector(synchVectorInputs, actionName)); } - - current = std::make_shared(current, std::make_shared(automata[index].getName()), intersectionActionNames); } - return current; + + return std::make_shared(subcompositions, synchVectors); } Composition const& Model::getSystemComposition() const { @@ -263,14 +275,14 @@ namespace storm { std::set Model::getActionNames(bool includeSilent) const { std::set result; for (auto const& entry : actionToIndex) { - if (includeSilent || entry.second != silentActionIndex) { + if (includeSilent || entry.second != SILENT_ACTION_INDEX) { result.insert(entry.first); } } return result; } - - std::map Model::buildActionToNameMap() const { + + std::map Model::getActionIndexToNameMap() const { std::map mapping; uint64_t i = 0; for(auto const& act : actions) { @@ -280,14 +292,6 @@ namespace storm { return mapping; } - std::string const& Model::getSilentActionName() const { - return actions[silentActionIndex].getName(); - } - - uint64_t Model::getSilentActionIndex() const { - return silentActionIndex; - } - Model Model::defineUndefinedConstants(std::map const& constantDefinitions) const { Model result(*this); @@ -395,8 +399,12 @@ namespace storm { // Start with the restriction of variables. storm::expressions::Expression result = initialStatesRestriction; - // Then add initial values for those variables that have one. + // Then add initial values for those non-transient variables that have one. for (auto const& variable : globalVariables) { + if (variable.isTransient()) { + continue; + } + if (variable.hasInitExpression()) { result = result && (variable.isBooleanVariable() ? storm::expressions::iff(variable.getExpressionVariable(), variable.getInitExpression()) : variable.getExpressionVariable() == variable.getInitExpression()); } @@ -451,10 +459,10 @@ namespace storm { } - bool Model::hasDefaultComposition() const { - CompositionInformationVisitor visitor; - CompositionInformation info = visitor.getInformation(this->getSystemComposition(), *this); - if (info.containsNonStandardParallelComposition() || info.containsRenameComposition()) { + bool Model::hasStandardComposition() const { + CompositionInformationVisitor visitor(*this, this->getSystemComposition()); + CompositionInformation info = visitor.getInformation(); + if (info.containsNonStandardParallelComposition()) { return false; } for (auto const& multiplicity : info.getAutomatonToMultiplicityMap()) { @@ -465,5 +473,67 @@ namespace storm { return true; } + bool Model::undefinedConstantsAreGraphPreserving() const { + if (!this->hasUndefinedConstants()) { + return true; + } + + // Gather the variables of all undefined constants. + std::set undefinedConstantVariables; + for (auto const& constant : this->getConstants()) { + if (!constant.isDefined()) { + undefinedConstantVariables.insert(constant.getExpressionVariable()); + } + } + + // Start by checking the defining expressions of all defined constants. If it contains a currently undefined + // constant, we need to mark the target constant as undefined as well. + for (auto const& constant : this->getConstants()) { + if (constant.isDefined()) { + if (constant.getExpression().containsVariable(undefinedConstantVariables)) { + undefinedConstantVariables.insert(constant.getExpressionVariable()); + } + } + } + + // Check global variable definitions. + if (this->getGlobalVariables().containsVariablesInBoundExpressionsOrInitialValues(undefinedConstantVariables)) { + return false; + } + + // Check the automata. + for (auto const& automaton : this->getAutomata()) { + if (!automaton.containsVariablesOnlyInProbabilitiesOrTransientAssignments(undefinedConstantVariables)) { + return false; + } + } + + // Check initial states restriction. + if (initialStatesRestriction.containsVariable(undefinedConstantVariables)) { + return false; + } + return true; + } + + void Model::makeStandardJaniCompliant() { + for (auto& automaton : automata) { + automaton.pushEdgeAssignmentsToDestinations(); + } + } + + void Model::liftTransientEdgeDestinationAssignments() { + for (auto& automaton : this->getAutomata()) { + automaton.liftTransientEdgeDestinationAssignments(); + } + } + + bool Model::hasTransientEdgeDestinationAssignments() const { + for (auto const& automaton : this->getAutomata()) { + if (automaton.hasTransientEdgeDestinationAssignments()) { + return true; + } + } + return false; + } } -} \ No newline at end of file +} diff --git a/src/storage/jani/Model.h b/src/storage/jani/Model.h index 7d9431d0a..9a941a48f 100644 --- a/src/storage/jani/Model.h +++ b/src/storage/jani/Model.h @@ -17,12 +17,8 @@ namespace storm { class Exporter; - - class Model { public: - static const uint64_t silentActionIndex; - friend class Exporter; /*! @@ -94,7 +90,7 @@ namespace storm { /*! * Builds a map with action indices mapped to their names */ - std::map buildActionToNameMap() const; + std::map getActionIndexToNameMap() const; /*! * Retrieves all non-silent action indices of the model. @@ -246,16 +242,6 @@ namespace storm { */ std::set getActionNames(bool includeSilent = true) const; - /*! - * Retrieves the name of the silent action. - */ - std::string const& getSilentActionName() const; - - /*! - * Retrieves the index of the silent action. - */ - uint64_t getSilentActionIndex() const; - /*! * Defines the undefined constants of the model by the given expressions. The original model is not modified, * but instead a new model is created. @@ -323,10 +309,10 @@ namespace storm { std::vector getAllRangeExpressions() const; /*! - * Retrieves whether this model has the default composition, that is it composes all automata in parallel + * Retrieves whether this model has the standard composition, that is it composes all automata in parallel * and synchronizes over all common actions. */ - bool hasDefaultComposition() const; + bool hasStandardComposition() const; /*! * After adding all components to the model, this method has to be called. It recursively calls @@ -340,6 +326,31 @@ namespace storm { */ void checkValid() const; + /*! + * Checks that undefined constants (parameters) of the model preserve the graph of the underlying model. + * That is, undefined constants may only appear in the probability expressions of edge destinations as well + * as on the right-hand sides of transient assignments. + */ + bool undefinedConstantsAreGraphPreserving() const; + + /*! + * Lifts the common edge destination assignments to edge assignments. + */ + void liftTransientEdgeDestinationAssignments(); + + /*! + * Retrieves whether there is any transient edge destination assignment in the model. + */ + bool hasTransientEdgeDestinationAssignments() const; + + void makeStandardJaniCompliant(); + + /// The name of the silent action. + static const std::string SILENT_ACTION_NAME; + + /// The index of the silent action. + static const uint64_t SILENT_ACTION_INDEX; + private: /// The model name. std::string name; diff --git a/src/storage/jani/ParallelComposition.cpp b/src/storage/jani/ParallelComposition.cpp index fac8e2ad7..aad0e2d3d 100644 --- a/src/storage/jani/ParallelComposition.cpp +++ b/src/storage/jani/ParallelComposition.cpp @@ -6,14 +6,21 @@ #include "src/utility/macros.h" #include "src/exceptions/WrongFormatException.h" +#include "src/storage/jani/Model.h" namespace storm { namespace jani { + const std::string SynchronizationVector::NO_ACTION_INPUT = "-"; + SynchronizationVector::SynchronizationVector(std::vector const& input, std::string const& output) : input(input), output(output) { // Intentionally left empty. } + SynchronizationVector::SynchronizationVector(std::vector const& input) : input(input), output(storm::jani::Model::SILENT_ACTION_NAME) { + + } + std::size_t SynchronizationVector::size() const { return input.size(); } @@ -25,11 +32,52 @@ namespace storm { std::string const& SynchronizationVector::getInput(uint64_t index) const { return input[index]; } - std::string const& SynchronizationVector::getOutput() const { return output; } + boost::optional SynchronizationVector::getPrecedingParticipatingAction(uint64_t index) const { + boost::optional position = getPositionOfPrecedingParticipatingAction(index); + if (position) { + return getInput(position.get()); + } else { + return boost::none; + } + } + + boost::optional SynchronizationVector::getPositionOfPrecedingParticipatingAction(uint64_t index) const { + if (index == 0) { + return boost::none; + } + + uint64_t i = index - 1; + for (; i > 0; --i) { + if (this->getInput(i) != NO_ACTION_INPUT) { + return boost::make_optional(i); + } + } + + // Check the 0-index. + if (this->getInput(i) != NO_ACTION_INPUT) { + return boost::make_optional(i); + } + + return boost::none; + } + + uint64_t SynchronizationVector::getPositionOfFirstParticipatingAction() const { + for (uint64_t result = 0; result < this->size(); ++result) { + if (this->getInput(result) != NO_ACTION_INPUT) { + return result; + } + } + STORM_LOG_THROW(false, storm::exceptions::WrongFormatException, "Synchronization vector must have at least one participating action."); + } + + bool SynchronizationVector::isNoActionInput(std::string const& action) { + return action == NO_ACTION_INPUT; + } + std::ostream& operator<<(std::ostream& stream, SynchronizationVector const& synchronizationVector) { bool first = true; stream << "("; @@ -38,18 +86,54 @@ namespace storm { stream << ", "; } stream << element; + first = false; } stream << ") -> " << synchronizationVector.getOutput(); return stream; } + bool operator==(SynchronizationVector const& vector1, SynchronizationVector const& vector2) { + if (vector1.getOutput() != vector2.getOutput()) { + return false; + } + if (vector1.getInput() != vector1.getInput()) { + return false; + } + return true; + } + + bool operator!=(SynchronizationVector const& vector1, SynchronizationVector const& vector2) { + return !(vector1 == vector2); + } + + bool SynchronizationVectorLexicographicalLess::operator()(SynchronizationVector const& vector1, SynchronizationVector const& vector2) { + STORM_LOG_THROW(vector1.size() == vector2.size(), storm::exceptions::WrongFormatException, "Cannot compare synchronization vectors of different size."); + for (uint64_t i = 0; i < vector1.size(); ++i) { + if (vector1.getInput(i) < vector2.getInput(i)) { + return true; + } else if (vector1.getInput(i) > vector2.getInput(i)) { + return false; + } + } + if (vector1.getOutput() < vector2.getOutput()) { + return true; + } else if (vector1.getOutput() > vector2.getOutput()) { + return false; + } + return false; + } + + ParallelComposition::ParallelComposition(std::shared_ptr const& subcomposition, std::vector const& synchronizationVectors) : ParallelComposition(std::vector>{subcomposition}, synchronizationVectors) { + // Intentionally left empty. + } + ParallelComposition::ParallelComposition(std::vector> const& subcompositions, std::vector const& synchronizationVectors) : subcompositions(subcompositions), synchronizationVectors(synchronizationVectors) { - STORM_LOG_THROW(subcompositions.size() > 1, storm::exceptions::WrongFormatException, "At least two automata required for parallel composition."); + STORM_LOG_THROW(!subcompositions.empty(), storm::exceptions::WrongFormatException, "At least one automaton required for parallel composition."); this->checkSynchronizationVectors(); } ParallelComposition::ParallelComposition(std::vector> const& subcompositions, std::set const& synchronizationAlphabet) : subcompositions(subcompositions), synchronizationVectors() { - STORM_LOG_THROW(subcompositions.size() > 1, storm::exceptions::WrongFormatException, "At least two automata required for parallel composition."); + STORM_LOG_THROW(!subcompositions.empty(), storm::exceptions::WrongFormatException, "At least one automaton required for parallel composition."); // Manually construct the synchronization vectors for all elements of the synchronization alphabet. for (auto const& action : synchronizationAlphabet) { @@ -97,10 +181,23 @@ namespace storm { for (auto const& vector : synchronizationVectors) { STORM_LOG_THROW(vector.size() == this->subcompositions.size(), storm::exceptions::WrongFormatException, "Synchronization vectors must match parallel composition size."); std::string const& action = vector.getInput(inputIndex); - STORM_LOG_THROW(actions.find(action) == actions.end(), storm::exceptions::WrongFormatException, "Cannot use the same action multiple times as input in synchronization vectors."); - actions.insert(action); + if (action != SynchronizationVector::NO_ACTION_INPUT) { + STORM_LOG_THROW(actions.find(action) == actions.end(), storm::exceptions::WrongFormatException, "Cannot use the same action ('" << action << "') multiple times as input for index " << inputIndex << " in synchronization vectors."); + actions.insert(action); + } } } + + for (auto const& vector : synchronizationVectors) { + bool hasInput = false; + for (auto const& input : vector.getInput()) { + if (input != SynchronizationVector::NO_ACTION_INPUT) { + hasInput = true; + break; + } + } + STORM_LOG_THROW(hasInput, storm::exceptions::WrongFormatException, "Synchronization vector must have at least one proper input."); + } } boost::any ParallelComposition::accept(CompositionVisitor& visitor, boost::any const& data) const { @@ -116,15 +213,19 @@ namespace storm { } bool first = true; + bool hasSynchVectors = !synchronizationVectors.empty(); stream << "("; for (auto const& subcomposition : subcompositions) { if (!first) { - stream << " || "; - first = false; + stream << (hasSynchVectors ? " || " : " ||| "); } stream << *subcomposition; + first = false; + } + stream << ")"; + if (hasSynchVectors) { + stream << "[" << boost::algorithm::join(synchronizationVectorsAsStrings, ", ") << "]"; } - stream << ")[" << boost::algorithm::join(synchronizationVectorsAsStrings, ", ") << "]"; } } diff --git a/src/storage/jani/ParallelComposition.h b/src/storage/jani/ParallelComposition.h index 3138261a8..b6ae63fdd 100644 --- a/src/storage/jani/ParallelComposition.h +++ b/src/storage/jani/ParallelComposition.h @@ -5,6 +5,8 @@ #include #include +#include + #include "src/storage/jani/Composition.h" namespace storm { @@ -13,13 +15,38 @@ namespace storm { class SynchronizationVector { public: SynchronizationVector(std::vector const& input, std::string const& output); + SynchronizationVector(std::vector const& input); std::size_t size() const; std::vector const& getInput() const; std::string const& getInput(uint64_t index) const; std::string const& getOutput() const; + + static bool isNoActionInput(std::string const& action); + /*! + * Retrieves the action name that is the last participating action before the given input index. If there is + * no such action none is returned. + */ + boost::optional getPrecedingParticipatingAction(uint64_t index) const; + + /*! + * Retrieves the position of the last participating action before the given input index. If there is + * no such action none is returned. + */ + boost::optional getPositionOfPrecedingParticipatingAction(uint64_t index) const; + + /*! + * Retrieves the position of the first participating action. + */ + uint64_t getPositionOfFirstParticipatingAction() const; + + + // A marker that can be used as one of the inputs. The semantics is that no action of the corresponding + // automaton takes part in the synchronization. + static const std::string NO_ACTION_INPUT; private: + /// The input to the synchronization. std::vector input; @@ -27,10 +54,22 @@ namespace storm { std::string output; }; + bool operator==(SynchronizationVector const& vector1, SynchronizationVector const& vector2); + bool operator!=(SynchronizationVector const& vector1, SynchronizationVector const& vector2); + + struct SynchronizationVectorLexicographicalLess { + bool operator()(SynchronizationVector const& vector1, SynchronizationVector const& vector2); + }; + std::ostream& operator<<(std::ostream& stream, SynchronizationVector const& synchronizationVector); class ParallelComposition : public Composition { public: + /*! + * Creates a parallel composition of the subcomposition and the provided synchronization vectors. + */ + ParallelComposition(std::shared_ptr const& subcomposition, std::vector const& synchronizationVectors); + /*! * Creates a parallel composition of the subcompositions and the provided synchronization vectors. */ @@ -94,4 +133,4 @@ namespace storm { }; } -} \ No newline at end of file +} diff --git a/src/storage/jani/RenameComposition.cpp b/src/storage/jani/RenameComposition.cpp deleted file mode 100644 index 77ab94f5c..000000000 --- a/src/storage/jani/RenameComposition.cpp +++ /dev/null @@ -1,45 +0,0 @@ -#include "src/storage/jani/RenameComposition.h" - -#include -#include - -#include - -namespace storm { - namespace jani { - - RenameComposition::RenameComposition(std::shared_ptr const& subcomposition, std::map> const& renaming) : subcomposition(subcomposition), renaming(renaming) { - // Intentionally left empty. - } - - Composition const& RenameComposition::getSubcomposition() const { - return *subcomposition; - } - - boost::any RenameComposition::accept(CompositionVisitor& visitor, boost::any const& data) const { - return visitor.visit(*this, data); - } - - std::map> const& RenameComposition::getRenaming() const { - return renaming; - } - - void RenameComposition::write(std::ostream& stream) const { - std::vector renamingStrings; - - for (auto const& entry : renaming) { - std::stringstream stream; - stream << entry.first << " -> "; - if (entry.second) { - stream << entry.second.get(); - } else { - stream << "tau"; - } - } - - stream << "(" << subcomposition << ") / {" << boost::join(renamingStrings, ", ") << "}"; - } - - - } -} \ No newline at end of file diff --git a/src/storage/jani/RenameComposition.h b/src/storage/jani/RenameComposition.h deleted file mode 100644 index 169a8d738..000000000 --- a/src/storage/jani/RenameComposition.h +++ /dev/null @@ -1,42 +0,0 @@ -#pragma once - -#include -#include - -#include - -#include "src/storage/jani/Composition.h" - -namespace storm { - namespace jani { - - class RenameComposition : public Composition { - public: - RenameComposition(std::shared_ptr const& subcomposition, std::map> const& renaming = {}); - - /*! - * Retrieves the subcomposition of this rename composition. - */ - Composition const& getSubcomposition() const; - - /*! - * Retrieves the renaming of actions. If some action name is mapped to none, this indicates the action is to - * be renamed to the silent action. - */ - std::map> const& getRenaming() const; - - virtual boost::any accept(CompositionVisitor& visitor, boost::any const& data) const override; - - virtual void write(std::ostream& stream) const override; - - private: - // The subcomposition. - std::shared_ptr subcomposition; - - // The renaming to perform. If one cation is mapped to none, this means that the action is to be renamed to - // the silent action. - std::map> renaming; - }; - - } -} \ No newline at end of file diff --git a/src/storage/jani/Variable.cpp b/src/storage/jani/Variable.cpp index 9280b7c8e..8551f14df 100644 --- a/src/storage/jani/Variable.cpp +++ b/src/storage/jani/Variable.cpp @@ -16,6 +16,10 @@ namespace storm { // Intentionally left empty. } + Variable::~Variable() { + // Intentionally left empty. + } + storm::expressions::Variable const& Variable::getExpressionVariable() const { return variable; } @@ -95,4 +99,4 @@ namespace storm { } } -} \ No newline at end of file +} diff --git a/src/storage/jani/Variable.h b/src/storage/jani/Variable.h index 1add2768b..cbbe4aa69 100644 --- a/src/storage/jani/Variable.h +++ b/src/storage/jani/Variable.h @@ -27,6 +27,8 @@ namespace storm { */ Variable(std::string const& name, storm::expressions::Variable const& variable, bool transient = false); + virtual ~Variable(); + /*! * Retrieves the associated expression variable */ @@ -93,4 +95,4 @@ namespace storm { }; } -} \ No newline at end of file +} diff --git a/src/storage/jani/VariableSet.cpp b/src/storage/jani/VariableSet.cpp index 4caae4269..a5468f63a 100644 --- a/src/storage/jani/VariableSet.cpp +++ b/src/storage/jani/VariableSet.cpp @@ -147,7 +147,15 @@ namespace storm { bool VariableSet::containsNonTransientRealVariables() const { for (auto const& variable : realVariables) { if (!variable->isTransient()) { - std::cout << "var " << variable->getName() << "is non-transient " << std::endl; + return true; + } + } + return false; + } + + bool VariableSet::containsNonTransientUnboundedIntegerVariables() const { + for (auto const& variable : unboundedIntegerVariables) { + if (!variable->isTransient()) { return true; } } @@ -178,5 +186,29 @@ namespace storm { return result; } + bool VariableSet::containsVariablesInBoundExpressionsOrInitialValues(std::set const& variables) const { + for (auto const& booleanVariable : this->getBooleanVariables()) { + if (booleanVariable.hasInitExpression()) { + if (booleanVariable.getInitExpression().containsVariable(variables)) { + return true; + } + } + } + for (auto const& integerVariable : this->getBoundedIntegerVariables()) { + if (integerVariable.hasInitExpression()) { + if (integerVariable.getInitExpression().containsVariable(variables)) { + return true; + } + } + if (integerVariable.getLowerBound().containsVariable(variables)) { + return true; + } + if (integerVariable.getUpperBound().containsVariable(variables)) { + return true; + } + } + return false; + } + } } diff --git a/src/storage/jani/VariableSet.h b/src/storage/jani/VariableSet.h index 78275de0b..1c947669e 100644 --- a/src/storage/jani/VariableSet.h +++ b/src/storage/jani/VariableSet.h @@ -157,7 +157,12 @@ namespace storm { * Retrieves whether the set of variables contains a non-transient real variable. */ bool containsNonTransientRealVariables() const; - + + /*! + * Retrieves whether the set of variables contains a non-transient unbounded integer variable. + */ + bool containsNonTransientUnboundedIntegerVariables() const; + /*! * Retrieves whether this variable set is empty. */ @@ -173,6 +178,12 @@ namespace storm { */ std::vector> getTransientVariables() const; + /*! + * Checks whether any of the provided variables appears in bound expressions or initial values of the + * variables contained in this variable set. + */ + bool containsVariablesInBoundExpressionsOrInitialValues(std::set const& variables) const; + private: /// The vector of all variables. std::vector> variables; diff --git a/src/storage/pgcl/PgclProgram.cpp b/src/storage/pgcl/PgclProgram.cpp index 93a599bf6..d0bba935e 100755 --- a/src/storage/pgcl/PgclProgram.cpp +++ b/src/storage/pgcl/PgclProgram.cpp @@ -4,11 +4,12 @@ namespace storm { namespace pgcl { - PgclProgram::PgclProgram(vector const& statements, vector const& locationToStatement, std::vector const& parameters, std::shared_ptr expressions, bool hasLoop, bool hasNondet, bool hasObserve) : + PgclProgram::PgclProgram(std::vector variables, vector const& statements, vector const& locationToStatement, std::vector const& parameters, std::shared_ptr expressions, bool hasLoop, bool hasNondet, bool hasObserve) : PgclBlock(statements, expressions, hasLoop, hasNondet, hasObserve), - locationToStatement(locationToStatement) + locationToStatement(locationToStatement),variables(variables) { + // Intentionally left empty. } @@ -24,6 +25,10 @@ namespace storm { return vars; } + + std::vector const& PgclProgram::getVariableDeclarations() const { + return variables; + } std::ostream& operator<<(std::ostream& stream, PgclProgram& program) { storm::pgcl::StatementPrinterVisitor printer(stream); diff --git a/src/storage/pgcl/PgclProgram.h b/src/storage/pgcl/PgclProgram.h index 8c6bffc57..79d755a66 100755 --- a/src/storage/pgcl/PgclProgram.h +++ b/src/storage/pgcl/PgclProgram.h @@ -2,6 +2,7 @@ #include #include "Block.h" +#include "VariableDeclaration.h" #include "src/storage/pgcl/Statement.h" #include "src/storage/pgcl/StatementPrinterVisitor.h" #include "src/storage/expressions/ExpressionManager.h" @@ -36,7 +37,7 @@ namespace storm { * statement. * @param hasParam Whether the program is parameterized. */ - PgclProgram(vector const& statements, vector const& locationToStatement, std::vector const& parameters, std::shared_ptr expressions, bool hasLoop, bool hasNondet, bool hasObserve); + PgclProgram(std::vector variables, vector const& statements, vector const& locationToStatement, std::vector const& parameters, std::shared_ptr expressions, bool hasLoop, bool hasNondet, bool hasObserve); PgclProgram(const PgclProgram & orig) = default; @@ -48,6 +49,9 @@ namespace storm { vector getLocationToStatementVector(); std::vector getVariables() const; + std::vector const& getVariableDeclarations() const; + + private: /** @@ -56,7 +60,8 @@ namespace storm { * recursion is resolved here. */ vector locationToStatement; - }; + std::vector variables; + }; /** * Prints every statement of the program along with their location * numbers. diff --git a/src/storage/pgcl/VariableDeclaration.cpp b/src/storage/pgcl/VariableDeclaration.cpp new file mode 100644 index 000000000..241437821 --- /dev/null +++ b/src/storage/pgcl/VariableDeclaration.cpp @@ -0,0 +1 @@ +#include "VariableDeclaration.h" diff --git a/src/storage/pgcl/VariableDeclaration.h b/src/storage/pgcl/VariableDeclaration.h new file mode 100644 index 000000000..a2f7b8d37 --- /dev/null +++ b/src/storage/pgcl/VariableDeclaration.h @@ -0,0 +1,36 @@ +#pragma once + +#include "src/storage/expressions/Expression.h" +#include "src/storage/expressions/Variable.h" + +namespace storm { + namespace pgcl { + class VariableDeclaration { + public: + + VariableDeclaration(storm::expressions::Variable const& var, storm::expressions::Expression const& exp) + : variable(var), initialValue(exp) + { + // Not implemented. + } + + storm::expressions::Variable const& getVariable() const { + return variable; + } + + storm::expressions::Expression const& getInitialValueExpression() const { + return initialValue; + } + + private: + storm::expressions::Variable variable; + storm::expressions::Expression initialValue; + + }; + } +} + + + + + diff --git a/src/storage/ppg/ProgramAction.h b/src/storage/ppg/ProgramAction.h index 4220a207d..6241645b9 100644 --- a/src/storage/ppg/ProgramAction.h +++ b/src/storage/ppg/ProgramAction.h @@ -1,5 +1,6 @@ #pragma once #include "defines.h" +#include "src/storage/IntegerInterval.h" #include "src/storage/expressions/Expression.h" #include "src/storage/expressions/Variable.h" #include "src/storage/expressions/ExpressionManager.h" @@ -57,6 +58,24 @@ namespace storm { std::string const& getVariableName() const; + ProgramVariableIdentifier getVariableIdentifier() const { + return var; + } + + storm::storage::IntegerInterval getSupportInterval() const { + assert(!values.empty()); + int64_t min = values.front().value; + int64_t max = values.front().value; + for (auto const& valEntry : values) { + if (valEntry.value < min) { + min = valEntry.value; + } else if (valEntry.value > max) { + max = valEntry.value; + } + } + return storm::storage::IntegerInterval(min, max); + } + iterator begin() { return values.begin(); } diff --git a/src/storage/ppg/ProgramEdgeGroup.h b/src/storage/ppg/ProgramEdgeGroup.h index 235ee694a..13d63df99 100644 --- a/src/storage/ppg/ProgramEdgeGroup.h +++ b/src/storage/ppg/ProgramEdgeGroup.h @@ -8,6 +8,7 @@ namespace storm { class ProgramEdgeGroup { public: + using iterator = std::vector::iterator; using const_iterator = std::vector::const_iterator; ProgramEdgeGroup(ProgramGraph* graph, ProgramEdgeGroupIdentifier id, ProgramLocationIdentifier sourceId, storm::expressions::Expression const& probability) @@ -33,6 +34,14 @@ namespace storm { return edges.back(); } + iterator begin() { + return edges.begin(); + } + + iterator end() { + return edges.end(); + } + const_iterator begin() const { return edges.begin(); } diff --git a/src/storage/ppg/ProgramGraph.cpp b/src/storage/ppg/ProgramGraph.cpp index b6e951aca..ab094b273 100644 --- a/src/storage/ppg/ProgramGraph.cpp +++ b/src/storage/ppg/ProgramGraph.cpp @@ -4,6 +4,182 @@ namespace storm { namespace ppg { + + std::vector ProgramGraph::noeffectVariables() const { + std::vector transientCandidates = variablesNotInGuards(); + bool removedCandidate = true; // tmp + while(removedCandidate && !transientCandidates.empty()) { + removedCandidate = false; + for (auto const& act : this->deterministicActions) { + for (auto const& group : act.second) { + for (auto const& assignment : group) { + if (std::find(transientCandidates.begin(), transientCandidates.end(), assignment.first) == transientCandidates.end()) { + for (auto const& vars : assignment.second.getVariables()) { + auto it = std::find(transientCandidates.begin(), transientCandidates.end(), vars.getIndex()); + if (it != transientCandidates.end()) { + transientCandidates.erase(it); + removedCandidate = true; + } + } + } + } + } + } + } + return transientCandidates; + } + + std::pair ProgramGraph::checkIfRewardVariableHelper(storm::expressions::Variable const& var, std::unordered_map const& detActions) const { + bool pos = true; + bool first = true; + for (auto const& act : detActions) { + for (auto const& group : act.second) { + for (auto const& assignment : group) { + if (assignment.first == var.getIndex()) { + //storm::expressions::Expression expr = (assignment.second - var.getExpression()).simplify(); + if(!assignment.second.isLinear()) { + return {false, true}; + } + auto const& vars = assignment.second.getVariables(); + if(vars.empty() || vars.size() > 1) { + return {false, true}; + } + if(vars.begin()->getIndex() == assignment.first) { + std::map eta0; + std::map eta1; + eta0.emplace(var, expManager->integer(0)); + eta1.emplace(var, expManager->integer(1)); + if(assignment.second.substitute(eta1).evaluateAsInt() - assignment.second.substitute(eta0).evaluateAsInt() != 1) { + return {false, true}; + } + if(assignment.second.substitute(eta0).evaluateAsInt() < 0) { + if(!first && pos) { + return {false, true}; + } + pos = false; + } + first = false; + } + } + } + } + } + return {true, pos}; + } + + + std::vector ProgramGraph::constantAssigned() const { + std::set contained; + for (auto const& act : deterministicActions) { + for (auto const& group : act.second) { + for (auto const& assignment : group) { + if (assignment.second.containsVariables()) { + contained.insert(assignment.first); + } + } + } + } + std::vector result; + for (auto const& varEntry : variables) { + if (contained.count(varEntry.second.getIndex()) == 0) { + // Currently we can only do this for integer assigned initials + if(initialValues.at(varEntry.second.getIndex()).containsVariables() || !varEntry.second.hasIntegerType()) { + continue; + } + result.push_back(varEntry.first); + } + } + return result; + } + + std::vector ProgramGraph::constants() const { + std::set contained; + for (auto const& act : deterministicActions) { + for (auto const& group : act.second) { + for (auto const& assignment : group) { + contained.insert(assignment.first); + } + } + } + for (auto const& act : probabilisticActions) { + contained.insert(act.second.getVariableIdentifier()); + } + std::vector result; + for (auto const& varEntry : variables) { + if (contained.count(varEntry.second.getIndex()) == 0) { + result.push_back(varEntry.first); + } + } + return result; + } + + storm::storage::IntegerInterval ProgramGraph::supportForConstAssignedVariable(ProgramVariableIdentifier i) const { + storm::storage::IntegerInterval support(initialValues.at(i).evaluateAsInt()); + for (auto const& act : deterministicActions) { + for (auto const& group : act.second) { + for (auto const& assignment : group) { + if (assignment.first == i) { + support.extend(assignment.second.evaluateAsInt()); + } + } + } + } + for (auto const& act : probabilisticActions) { + if(act.second.getVariableIdentifier() == i) { + support.extend(act.second.getSupportInterval()); + } + } + return support; + } + + + std::vector ProgramGraph::rewardVariables() const { + std::vector rewardCandidates = noeffectVariables(); + std::vector result; + for (auto const& var : rewardCandidates) { + if(variables.at(var).hasIntegerType()) { + + // TODO add some checks here; refine the evaluate as int stuff. + if(initialValues.at(var).evaluateAsInt() == 0 && checkIfRewardVariableHelper(variables.at(var), this->deterministicActions).first) { + result.push_back(var); + } + } + } + return result; + } + + std::vector ProgramGraph::variablesNotInGuards() const { + std::vector result; + std::set contained; + for (auto const& loc : locations) { + for (auto const& edgegroup : loc.second) { + for (auto const& edge : *edgegroup) { + auto conditionVars = edge->getCondition().getVariables(); + contained.insert(conditionVars.begin(), conditionVars.end()); + } + } + } + for (auto const& varEntry : variables) { + if (contained.count(varEntry.second) == 0) { + result.push_back(varEntry.first); + } + } + + return result; + } + +// void ProgramGraph::mergeActions() { +// auto initialLocs = initialLocations(); +// assert(initialLocs.size() == 1); +// // For now, we only follow the unique path. +// ProgramLocationIdentifier currentLocId = initialLocs.front(); +// while(locations.at(currentLocId).hasUniqueSuccessor()) { +// auto& edgeGroup = **locations.at(currentLocId()).begin(); +// auto& edge = **edgeGroup.begin(); +// +// } +// } + void ProgramGraph::printDot(std::ostream& os) const { os << "digraph ppg {" << std::endl; diff --git a/src/storage/ppg/ProgramGraph.h b/src/storage/ppg/ProgramGraph.h index 1b83eac1f..dc0c58ab6 100644 --- a/src/storage/ppg/ProgramGraph.h +++ b/src/storage/ppg/ProgramGraph.h @@ -10,6 +10,8 @@ #include "ProgramEdgeGroup.h" #include "ProgramAction.h" +#include "src/storage/pgcl/VariableDeclaration.h" + namespace storm { namespace ppg { /** @@ -21,9 +23,10 @@ namespace storm { using EdgeGroupIterator = ProgramLocation::EdgeGroupIterator; using ConstLocationIterator = std::unordered_map::const_iterator; - ProgramGraph(std::shared_ptr const& expManager, std::vector const& variables) : expManager(expManager), variables() { + ProgramGraph(std::shared_ptr const& expManager, std::vector const& variables) : variables(), expManager(expManager) { for(auto const& v : variables) { - this->variables.emplace(v.getIndex(), v); + this->variables.emplace(v.getVariable().getIndex(), v.getVariable()); + this->initialValues.emplace(v.getVariable().getIndex(), v.getInitialValueExpression()); } // No Action: deterministicActions.emplace(noActionId, DeterministicProgramAction(this, noActionId)); @@ -46,9 +49,10 @@ namespace storm { return &(probabilisticActions.emplace(newId, ProbabilisticProgramAction(this, newId, var, from, to)).first->second); } - ProgramLocation* addLocation(bool isInitial = false) { + ProgramLocation* addLocation(bool isInitial = false, bool successfulTermination = false, bool aborted = false, std::vector const& labels = {}) { ProgramLocationIdentifier newId = freeLocationIndex(); assert(!hasLocation(newId)); + locationLabels[newId] = labels; return &(locations.emplace(newId, ProgramLocation(this, newId, isInitial)).first->second); } @@ -92,10 +96,26 @@ namespace storm { } return res; - } + + bool hasLabel(ProgramLocationIdentifier loc, std::string const& label) const { + return std::find(locationLabels.at(loc).begin(), locationLabels.at(loc).end(), label) != locationLabels.at(loc).end(); + } + + bool hasSuccessfulTerminationLabel(ProgramLocationIdentifier loc) const { + return hasLabel(loc, succesfulTerminationLabel); + } + + bool hasAbortLabel(ProgramLocationIdentifier loc) const { + return hasLabel(loc, abortLabel); + } + + bool hasTerminationLabel(ProgramLocationIdentifier loc) const { + return hasSuccessfulTerminationLabel(loc) || hasAbortLabel(loc); + } + ProgramActionIdentifier getNoActionId() const { return noActionId; } @@ -163,6 +183,11 @@ namespace storm { return variables.size(); } + storm::expressions::Expression getInitialValue(ProgramVariableIdentifier v) const { + return initialValues.at(v); + } + + void collectInitialValues(); ConstLocationIterator locationBegin() const { return locations.begin(); @@ -180,6 +205,17 @@ namespace storm { return expManager; } + std::vector noeffectVariables() const; + + std::vector rewardVariables() const; + + std::vector constantAssigned() const; + + std::vector constants() const; + + storm::storage::IntegerInterval supportForConstAssignedVariable(ProgramVariableIdentifier i) const; + + void checkValid() { } @@ -193,6 +229,25 @@ namespace storm { void printDot(std::ostream& os) const; protected: + + std::vector initialLocationIdentifiers() const { + std::vector result; + for (auto const& loc : locations) { + if(loc.second.isInitial()) { + result.push_back(loc.first); + } + } + return result; + } + + /** + * Returns the set of variables which do not occur in guards. + */ + std::vector variablesNotInGuards() const; + + std::pair checkIfRewardVariableHelper(storm::expressions::Variable const& var, std::unordered_map const& detActions) const; + + ProgramLocation& getLocation(ProgramLocationIdentifier id) { return locations.at(id); } @@ -221,7 +276,10 @@ namespace storm { std::unordered_map locations; storm::expressions::Expression initialValueRestriction; std::unordered_map variables; - + /// + std::unordered_map initialValues; + // If heavily used, then it might be better to use a bitvector and a seperate list for the names. + std::unordered_map> locationLabels; std::shared_ptr expManager; private: // Helper for IDs, may be changed later. @@ -230,6 +288,9 @@ namespace storm { ProgramEdgeIdentifier newEdgeId = 0; ProgramActionIdentifier newActionId = 1; ProgramActionIdentifier noActionId = 0; + std::string succesfulTerminationLabel = "__ret0__"; + std::string abortLabel = "__ret1__"; + }; } diff --git a/src/storage/ppg/ProgramLocation.h b/src/storage/ppg/ProgramLocation.h index e88f0e85d..48b92dfed 100644 --- a/src/storage/ppg/ProgramLocation.h +++ b/src/storage/ppg/ProgramLocation.h @@ -46,6 +46,10 @@ namespace storm { return false; } + bool hasUniqueSuccessor() const { + return nrOutgoingEdgeGroups() == 1 && !hasNonDeterminism(); + } + const_iterator begin() const { return edgeGroups.begin(); } diff --git a/src/storage/prism/CompositionToJaniVisitor.cpp b/src/storage/prism/CompositionToJaniVisitor.cpp index 173a70bdc..d5a6ee9a1 100644 --- a/src/storage/prism/CompositionToJaniVisitor.cpp +++ b/src/storage/prism/CompositionToJaniVisitor.cpp @@ -2,13 +2,15 @@ #include "src/storage/prism/Compositions.h" #include "src/storage/jani/Compositions.h" +#include "src/storage/jani/CompositionInformationVisitor.h" #include "src/storage/jani/Model.h" namespace storm { namespace prism { std::shared_ptr CompositionToJaniVisitor::toJani(Composition const& composition, storm::jani::Model const& model) { - return boost::any_cast>(composition.accept(*this, model)); + auto result = boost::any_cast>(composition.accept(*this, model)); + return result; } boost::any CompositionToJaniVisitor::visit(ModuleComposition const& composition, boost::any const& data) { @@ -17,22 +19,20 @@ namespace storm { } boost::any CompositionToJaniVisitor::visit(RenamingComposition const& composition, boost::any const& data) { - std::map> newRenaming; + std::vector synchronizationVectors; for (auto const& renamingPair : composition.getActionRenaming()) { - newRenaming.emplace(renamingPair.first, renamingPair.second); + synchronizationVectors.push_back(storm::jani::SynchronizationVector({renamingPair.first}, renamingPair.second)); } - auto subcomposition = boost::any_cast>(composition.getSubcomposition().accept(*this, data)); - std::shared_ptr result = std::make_shared(subcomposition, newRenaming); + std::shared_ptr result = std::make_shared(boost::any_cast>(composition.getSubcomposition().accept(*this, data)), synchronizationVectors); return result; } boost::any CompositionToJaniVisitor::visit(HidingComposition const& composition, boost::any const& data) { - std::map> newRenaming; + std::vector synchronizationVectors; for (auto const& action : composition.getActionsToHide()) { - newRenaming.emplace(action, boost::none); + synchronizationVectors.push_back(storm::jani::SynchronizationVector({action}, storm::jani::Model::SILENT_ACTION_NAME)); } - auto subcomposition = boost::any_cast>(composition.getSubcomposition().accept(*this, data)); - std::shared_ptr result = std::make_shared(subcomposition, newRenaming); + std::shared_ptr result = std::make_shared(boost::any_cast>(composition.getSubcomposition().accept(*this, data)), synchronizationVectors); return result; } @@ -41,11 +41,22 @@ namespace storm { auto rightSubcomposition = boost::any_cast>(composition.getRightSubcomposition().accept(*this, data)); storm::jani::Model const& model = boost::any_cast(data); - std::set allActions; - for (auto const& action : model.getActions()) { - allActions.insert(action.getName()); + storm::jani::CompositionInformation leftActionInformation = storm::jani::CompositionInformationVisitor(model, *leftSubcomposition).getInformation(); + storm::jani::CompositionInformation rightActionInformation = storm::jani::CompositionInformationVisitor(model, *rightSubcomposition).getInformation(); + + std::set leftActions; + for (auto const& actionIndex : leftActionInformation.getNonSilentActionIndices()) { + leftActions.insert(leftActionInformation.getActionName(actionIndex)); + } + std::set rightActions; + for (auto const& actionIndex : rightActionInformation.getNonSilentActionIndices()) { + rightActions.insert(rightActionInformation.getActionName(actionIndex)); } - std::shared_ptr result = std::make_shared(leftSubcomposition, rightSubcomposition, allActions); + + std::set commonActions; + std::set_intersection(leftActions.begin(), leftActions.end(), rightActions.begin(), rightActions.end(), std::inserter(commonActions, commonActions.begin())); + + std::shared_ptr result = std::make_shared(leftSubcomposition, rightSubcomposition, commonActions); return result; } @@ -63,4 +74,4 @@ namespace storm { return result; } } -} \ No newline at end of file +} diff --git a/src/storage/prism/Program.cpp b/src/storage/prism/Program.cpp index 126f53c4e..f187ecc08 100644 --- a/src/storage/prism/Program.cpp +++ b/src/storage/prism/Program.cpp @@ -200,7 +200,7 @@ namespace storm { return false; } - bool Program::hasUndefinedConstantsOnlyInUpdateProbabilitiesAndRewards() const { + bool Program::undefinedConstantsAreGraphPreserving() const { if (!this->hasUndefinedConstants()) { return true; } @@ -212,10 +212,7 @@ namespace storm { undefinedConstantVariables.insert(constant.getExpressionVariable()); } } - - // Now it remains to check that the intersection of the variables used in the program with the undefined - // constants' variables is empty (except for the update probabilities). - + // Start by checking the defining expressions of all defined constants. If it contains a currently undefined // constant, we need to mark the target constant as undefined as well. for (auto const& constant : this->getConstants()) { @@ -226,7 +223,7 @@ namespace storm { } } - // Now check initial value expressions of global variables. + // Now check initial value and range expressions of global variables. for (auto const& booleanVariable : this->getGlobalBooleanVariables()) { if (booleanVariable.hasInitialValue()) { if (booleanVariable.getInitialValueExpression().containsVariable(undefinedConstantVariables)) { diff --git a/src/storage/prism/Program.h b/src/storage/prism/Program.h index bc17072e1..9e4617913 100644 --- a/src/storage/prism/Program.h +++ b/src/storage/prism/Program.h @@ -94,13 +94,13 @@ namespace storm { bool hasUndefinedConstants() const; /*! - * Retrieves whether there are undefined constants appearing in any place other than the update probabilities - * of the commands and the reward expressions. This is to be used for parametric model checking where the - * parameters are only allowed to govern the probabilities, not the underlying graph of the model. + * Checks that undefined constants (parameters) of the model preserve the graph of the underlying model. + * That is, undefined constants may only appear in the probability expressions of updates as well as in the + * values in reward models. * - * @return True iff all undefined constants of the model only appear in update probabilities. + * @return True iff the undefined constants are graph-preserving. */ - bool hasUndefinedConstantsOnlyInUpdateProbabilitiesAndRewards() const; + bool undefinedConstantsAreGraphPreserving() const; /*! * Retrieves the undefined constants in the program. diff --git a/src/storage/prism/ToJaniConverter.cpp b/src/storage/prism/ToJaniConverter.cpp index 08819964a..65289382a 100644 --- a/src/storage/prism/ToJaniConverter.cpp +++ b/src/storage/prism/ToJaniConverter.cpp @@ -192,7 +192,7 @@ namespace storm { boost::optional rateExpression; std::vector destinations; - if (program.getModelType() == Program::ModelType::CTMC || program.getModelType() == Program::ModelType::CTMDP) { + if (program.getModelType() == Program::ModelType::CTMC || program.getModelType() == Program::ModelType::CTMDP || (program.getModelType() == Program::ModelType::MA && command.isMarkovian())) { for (auto const& update : command.getUpdates()) { if (rateExpression) { rateExpression = rateExpression.get() + update.getLikelihoodExpression(); @@ -201,7 +201,7 @@ namespace storm { } } } - + for (auto const& update : command.getUpdates()) { std::vector assignments; for (auto const& assignment : update.getAssignments()) { @@ -209,7 +209,7 @@ namespace storm { } if (rateExpression) { - destinations.push_back(storm::jani::EdgeDestination(onlyLocationIndex, manager->integer(1) / rateExpression.get(), assignments)); + destinations.push_back(storm::jani::EdgeDestination(onlyLocationIndex, update.getLikelihoodExpression() / rateExpression.get(), assignments)); } else { destinations.push_back(storm::jani::EdgeDestination(onlyLocationIndex, update.getLikelihoodExpression(), assignments)); } @@ -266,4 +266,4 @@ namespace storm { } } -} \ No newline at end of file +} diff --git a/src/storm-pgcl.cpp b/src/storm-pgcl.cpp index b9d97b391..66e227d75 100644 --- a/src/storm-pgcl.cpp +++ b/src/storm-pgcl.cpp @@ -34,8 +34,7 @@ void initializeSettings() { storm::settings::addModule(); } -int handleJani(storm::jani::Model& model) { - +void handleJani(storm::jani::Model& model) { if (!storm::settings::getModule().isJaniFileSet()) { // For now, we have to have a jani file storm::jani::JsonExporter::toStream(model, std::cout); diff --git a/src/utility/storm.cpp b/src/utility/storm.cpp index bc38baea4..2154761c3 100644 --- a/src/utility/storm.cpp +++ b/src/utility/storm.cpp @@ -38,7 +38,8 @@ namespace storm { } std::vector> parseFormulasForExplicit(std::string const& inputString) { - storm::parser::FormulaParser formulaParser; + auto exprManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(exprManager); return parseFormulas(formulaParser, inputString); } diff --git a/test/functional/builder/DdJaniModelBuilderTest.cpp b/test/functional/builder/DdJaniModelBuilderTest.cpp index 1b0248ce5..20602d97f 100644 --- a/test/functional/builder/DdJaniModelBuilderTest.cpp +++ b/test/functional/builder/DdJaniModelBuilderTest.cpp @@ -365,3 +365,173 @@ TEST(DdJaniModelBuilderTest_Cudd, SynchronizationVectors) { synchronizationVectors.push_back(storm::jani::SynchronizationVector(inputVector, "e")); EXPECT_THROW(newComposition = std::make_shared(automataCompositions, synchronizationVectors), storm::exceptions::WrongFormatException); } + +TEST(DdJaniModelBuilderTest_Sylvan, SynchronizationVectors) { + storm::storage::SymbolicModelDescription modelDescription = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/SmallPrismTest.nm"); + storm::jani::Model janiModel = modelDescription.toJani(true).preprocess().asJaniModel(); + + storm::builder::DdJaniModelBuilder builder; + + // Start by checking the original composition. + std::shared_ptr> model = builder.build(janiModel); + EXPECT_EQ(7ul, model->getNumberOfStates()); + EXPECT_EQ(10ul, model->getNumberOfTransitions()); + + // Now we tweak it's system composition to check whether synchronization vectors work. + std::vector> automataCompositions; + automataCompositions.push_back(std::make_shared("one")); + automataCompositions.push_back(std::make_shared("two")); + automataCompositions.push_back(std::make_shared("three")); + + // First, make all actions non-synchronizing. + std::vector synchronizationVectors; + std::shared_ptr newComposition = std::make_shared(automataCompositions, synchronizationVectors); + janiModel.setSystemComposition(newComposition); + model = builder.build(janiModel); + EXPECT_EQ(24ul, model->getNumberOfStates()); + EXPECT_EQ(48ul, model->getNumberOfTransitions()); + + // Then, make only a, b and c synchronize. + std::vector inputVector; + inputVector.push_back("a"); + inputVector.push_back("b"); + inputVector.push_back("c"); + synchronizationVectors.push_back(storm::jani::SynchronizationVector(inputVector, "d")); + newComposition = std::make_shared(automataCompositions, synchronizationVectors); + janiModel.setSystemComposition(newComposition); + model = builder.build(janiModel); + EXPECT_EQ(7ul, model->getNumberOfStates()); + EXPECT_EQ(10ul, model->getNumberOfTransitions()); + + inputVector.clear(); + inputVector.push_back("c"); + inputVector.push_back("c"); + inputVector.push_back("a"); + synchronizationVectors.push_back(storm::jani::SynchronizationVector(inputVector, "d")); + newComposition = std::make_shared(automataCompositions, synchronizationVectors); + janiModel.setSystemComposition(newComposition); + model = builder.build(janiModel); + EXPECT_EQ(3ul, model->getNumberOfStates()); + EXPECT_EQ(3ul, model->getNumberOfTransitions()); + + inputVector.clear(); + inputVector.push_back("b"); + inputVector.push_back("c"); + inputVector.push_back("b"); + synchronizationVectors.push_back(storm::jani::SynchronizationVector(inputVector, "e")); + EXPECT_THROW(newComposition = std::make_shared(automataCompositions, synchronizationVectors), storm::exceptions::WrongFormatException); +} + +TEST(DdJaniModelBuilderTest_Sylvan, Composition) { + storm::storage::SymbolicModelDescription modelDescription = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/system_composition.nm"); + storm::jani::Model janiModel = modelDescription.toJani(true).preprocess().asJaniModel(); + + storm::builder::DdJaniModelBuilder builder; + std::shared_ptr> model = builder.build(janiModel); + + EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp); + std::shared_ptr> mdp = model->as>(); + + EXPECT_EQ(21ul, mdp->getNumberOfStates()); + EXPECT_EQ(61ul, mdp->getNumberOfTransitions()); + EXPECT_EQ(61ul, mdp->getNumberOfChoices()); + + modelDescription = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/system_composition2.nm"); + janiModel = modelDescription.toJani(true).preprocess().asJaniModel(); + model = builder.build(janiModel); + EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp); + mdp = model->as>(); + + EXPECT_EQ(8ul, mdp->getNumberOfStates()); + EXPECT_EQ(21ul, mdp->getNumberOfTransitions()); + EXPECT_EQ(21ul, mdp->getNumberOfChoices()); +} + +TEST(DdJaniModelBuilderTest_Cudd, Composition) { + storm::storage::SymbolicModelDescription modelDescription = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/system_composition.nm"); + storm::jani::Model janiModel = modelDescription.toJani(true).preprocess().asJaniModel(); + + storm::builder::DdJaniModelBuilder builder; + std::shared_ptr> model = builder.build(janiModel); + + EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp); + std::shared_ptr> mdp = model->as>(); + + EXPECT_EQ(21ul, mdp->getNumberOfStates()); + EXPECT_EQ(61ul, mdp->getNumberOfTransitions()); + EXPECT_EQ(61ul, mdp->getNumberOfChoices()); + + modelDescription = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/system_composition2.nm"); + janiModel = modelDescription.toJani(true).preprocess().asJaniModel(); + model = builder.build(janiModel); + EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp); + mdp = model->as>(); + + EXPECT_EQ(8ul, mdp->getNumberOfStates()); + EXPECT_EQ(21ul, mdp->getNumberOfTransitions()); + EXPECT_EQ(21ul, mdp->getNumberOfChoices()); +} + +TEST(DdJaniModelBuilderTest_Cudd, InputEnabling) { + storm::storage::SymbolicModelDescription modelDescription = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/SmallPrismTest2.nm"); + storm::jani::Model janiModel = modelDescription.toJani(true).preprocess().asJaniModel(); + + storm::builder::DdJaniModelBuilder builder; + + // Make some automaton compositions input-enabled. + std::vector> automataCompositions; + automataCompositions.push_back(std::make_shared("one")); + automataCompositions.push_back(std::make_shared("two")); + automataCompositions.push_back(std::make_shared("three", std::set{"a"})); + + // Create the synchronization vectors. + std::vector synchronizationVectors; + std::vector inputVector; + inputVector.push_back("a"); + inputVector.push_back("b"); + inputVector.push_back("c"); + synchronizationVectors.push_back(storm::jani::SynchronizationVector(inputVector, "d")); + inputVector.clear(); + inputVector.push_back("c"); + inputVector.push_back("c"); + inputVector.push_back("a"); + synchronizationVectors.push_back(storm::jani::SynchronizationVector(inputVector, "d")); + + std::shared_ptr newComposition = std::make_shared(automataCompositions, synchronizationVectors); + janiModel.setSystemComposition(newComposition); + std::shared_ptr> model = builder.build(janiModel); + EXPECT_EQ(4ul, model->getNumberOfStates()); + EXPECT_EQ(5ul, model->getNumberOfTransitions()); +} + +TEST(DdJaniModelBuilderTest_Sylvan, InputEnabling) { + storm::storage::SymbolicModelDescription modelDescription = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/SmallPrismTest2.nm"); + storm::jani::Model janiModel = modelDescription.toJani(true).preprocess().asJaniModel(); + + storm::builder::DdJaniModelBuilder builder; + + // Make some automaton compositions input-enabled. + std::vector> automataCompositions; + automataCompositions.push_back(std::make_shared("one")); + automataCompositions.push_back(std::make_shared("two")); + automataCompositions.push_back(std::make_shared("three", std::set{"a"})); + + // Create the synchronization vectors. + std::vector synchronizationVectors; + std::vector inputVector; + inputVector.push_back("a"); + inputVector.push_back("b"); + inputVector.push_back("c"); + synchronizationVectors.push_back(storm::jani::SynchronizationVector(inputVector, "d")); + inputVector.clear(); + inputVector.push_back("c"); + inputVector.push_back("c"); + inputVector.push_back("a"); + synchronizationVectors.push_back(storm::jani::SynchronizationVector(inputVector, "d")); + + std::shared_ptr newComposition = std::make_shared(automataCompositions, synchronizationVectors); + janiModel.setSystemComposition(newComposition); + std::shared_ptr> model = builder.build(janiModel); + EXPECT_EQ(4ul, model->getNumberOfStates()); + EXPECT_EQ(5ul, model->getNumberOfTransitions()); +} diff --git a/test/functional/builder/ExplicitJaniModelBuilderTest.cpp b/test/functional/builder/ExplicitJaniModelBuilderTest.cpp index 17df2ca97..405b6d248 100644 --- a/test/functional/builder/ExplicitJaniModelBuilderTest.cpp +++ b/test/functional/builder/ExplicitJaniModelBuilderTest.cpp @@ -1,6 +1,7 @@ #include "gtest/gtest.h" #include "storm-config.h" #include "src/models/sparse/StandardRewardModel.h" +#include "src/models/sparse/MarkovAutomaton.h" #include "src/settings/SettingMemento.h" #include "src/parser/PrismParser.h" #include "src/builder/ExplicitModelBuilder.h" @@ -48,7 +49,7 @@ TEST(ExplicitJaniModelBuilderTest, Ctmc) { storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/cluster2.sm"); storm::jani::Model janiModel = program.toJani(); - std::shared_ptr> model = storm::builder::ExplicitModelBuilder(program).build(); + std::shared_ptr> model = storm::builder::ExplicitModelBuilder(janiModel).build(); EXPECT_EQ(276ul, model->getNumberOfStates()); EXPECT_EQ(1120ul, model->getNumberOfTransitions()); @@ -81,7 +82,7 @@ TEST(ExplicitJaniModelBuilderTest, Mdp) { storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/two_dice.nm"); storm::jani::Model janiModel = program.toJani(); - std::shared_ptr> model = storm::builder::ExplicitModelBuilder(program).build(); + std::shared_ptr> model = storm::builder::ExplicitModelBuilder(janiModel).build(); EXPECT_EQ(169ul, model->getNumberOfStates()); EXPECT_EQ(436ul, model->getNumberOfTransitions()); @@ -116,6 +117,33 @@ TEST(ExplicitJaniModelBuilderTest, Mdp) { EXPECT_EQ(59ul, model->getNumberOfTransitions()); } +TEST(ExplicitJaniModelBuilderTest, Ma) { + storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/simple.ma"); + storm::jani::Model janiModel = program.toJani(); + + std::shared_ptr> model = storm::builder::ExplicitModelBuilder(janiModel).build(); + EXPECT_EQ(5ul, model->getNumberOfStates()); + EXPECT_EQ(8ul, model->getNumberOfTransitions()); + ASSERT_TRUE(model->isOfType(storm::models::ModelType::MarkovAutomaton)); + EXPECT_EQ(4ul, model->as>()->getMarkovianStates().getNumberOfSetBits()); + + program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/hybrid_states.ma"); + janiModel = program.toJani(); + model = storm::builder::ExplicitModelBuilder(janiModel).build(); + EXPECT_EQ(5ul, model->getNumberOfStates()); + EXPECT_EQ(13ul, model->getNumberOfTransitions()); + ASSERT_TRUE(model->isOfType(storm::models::ModelType::MarkovAutomaton)); + EXPECT_EQ(5ul, model->as>()->getMarkovianStates().getNumberOfSetBits()); + + program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/stream2.ma"); + janiModel = program.toJani(); + model = storm::builder::ExplicitModelBuilder(janiModel).build(); + EXPECT_EQ(12ul, model->getNumberOfStates()); + EXPECT_EQ(14ul, model->getNumberOfTransitions()); + ASSERT_TRUE(model->isOfType(storm::models::ModelType::MarkovAutomaton)); + EXPECT_EQ(7ul, model->as>()->getMarkovianStates().getNumberOfSetBits()); +} + TEST(ExplicitJaniModelBuilderTest, FailComposition) { storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/system_composition.nm"); storm::jani::Model janiModel = program.toJani(); diff --git a/test/functional/builder/ExplicitPrismModelBuilderTest.cpp b/test/functional/builder/ExplicitPrismModelBuilderTest.cpp index 66906c2c5..d5e5a1771 100644 --- a/test/functional/builder/ExplicitPrismModelBuilderTest.cpp +++ b/test/functional/builder/ExplicitPrismModelBuilderTest.cpp @@ -122,7 +122,6 @@ TEST(ExplicitPrismModelBuilderTest, Ma) { EXPECT_EQ(14ul, model->getNumberOfTransitions()); ASSERT_TRUE(model->isOfType(storm::models::ModelType::MarkovAutomaton)); EXPECT_EQ(7ul, model->as>()->getMarkovianStates().getNumberOfSetBits()); - } TEST(ExplicitPrismModelBuilderTest, FailComposition) { diff --git a/test/functional/builder/SmallPrismTest.nm b/test/functional/builder/SmallPrismTest.nm index 9d33b5c89..399635ee9 100644 --- a/test/functional/builder/SmallPrismTest.nm +++ b/test/functional/builder/SmallPrismTest.nm @@ -19,9 +19,8 @@ module two endmodule module three - s3 : [0 .. 1]; + s3 : [0 .. 2]; [c] s3=0 -> (s3'=1); endmodule -// (one || two || three)[(a, b, c) -> d, (c, c, a) -> a] diff --git a/test/functional/builder/SmallPrismTest2.nm b/test/functional/builder/SmallPrismTest2.nm new file mode 100644 index 000000000..7c81cbbb9 --- /dev/null +++ b/test/functional/builder/SmallPrismTest2.nm @@ -0,0 +1,28 @@ +mdp + +module one + s1 : [0 .. 3]; + + [a] s1=0 -> (s1'=1); + + [c] s1=1 -> (s1'=2); + + [d] s1=1 -> (s1'=3); +endmodule + +module two + s2 : [0 .. 2]; + + [b] s2=0 -> (s2'=1); + + [c] s2=1 -> (s2'=2); +endmodule + +module three + s3 : [0 .. 2]; + + [c] s3=0 -> (s3'=1); + + [a] s3=2 -> (s3'=2); +endmodule + diff --git a/test/functional/logic/FragmentCheckerTest.cpp b/test/functional/logic/FragmentCheckerTest.cpp index 0280844d3..3ae4d52e3 100644 --- a/test/functional/logic/FragmentCheckerTest.cpp +++ b/test/functional/logic/FragmentCheckerTest.cpp @@ -3,12 +3,14 @@ #include "src/parser/FormulaParser.h" #include "src/logic/FragmentChecker.h" #include "src/exceptions/WrongFormatException.h" +#include "src/storage/expressions/ExpressionManager.h" TEST(FragmentCheckerTest, Propositional) { + auto expManager = std::make_shared(); storm::logic::FragmentChecker checker; storm::logic::FragmentSpecification prop = storm::logic::propositional(); - storm::parser::FormulaParser formulaParser; + storm::parser::FormulaParser formulaParser(expManager); std::shared_ptr formula; ASSERT_NO_THROW(formula = formulaParser.parseSingleFormulaFromString("\"label\"")); @@ -37,10 +39,11 @@ TEST(FragmentCheckerTest, Propositional) { } TEST(FragmentCheckerTest, Pctl) { + auto expManager = std::make_shared(); storm::logic::FragmentChecker checker; storm::logic::FragmentSpecification pctl = storm::logic::pctl(); - storm::parser::FormulaParser formulaParser; + storm::parser::FormulaParser formulaParser(expManager); std::shared_ptr formula; ASSERT_NO_THROW(formula = formulaParser.parseSingleFormulaFromString("\"label\"")); @@ -57,10 +60,11 @@ TEST(FragmentCheckerTest, Pctl) { } TEST(FragmentCheckerTest, Prctl) { + auto expManager = std::make_shared(); storm::logic::FragmentChecker checker; storm::logic::FragmentSpecification prctl = storm::logic::prctl(); - storm::parser::FormulaParser formulaParser; + storm::parser::FormulaParser formulaParser(expManager); std::shared_ptr formula; ASSERT_NO_THROW(formula = formulaParser.parseSingleFormulaFromString("\"label\"")); @@ -83,10 +87,11 @@ TEST(FragmentCheckerTest, Prctl) { } TEST(FragmentCheckerTest, Csl) { + auto expManager = std::make_shared(); storm::logic::FragmentChecker checker; storm::logic::FragmentSpecification csl = storm::logic::csl(); - storm::parser::FormulaParser formulaParser; + storm::parser::FormulaParser formulaParser(expManager); std::shared_ptr formula; ASSERT_NO_THROW(formula = formulaParser.parseSingleFormulaFromString("\"label\"")); @@ -106,10 +111,11 @@ TEST(FragmentCheckerTest, Csl) { } TEST(FragmentCheckerTest, Csrl) { + auto expManager = std::make_shared(); storm::logic::FragmentChecker checker; storm::logic::FragmentSpecification csrl = storm::logic::csrl(); - storm::parser::FormulaParser formulaParser; + storm::parser::FormulaParser formulaParser(expManager); std::shared_ptr formula; ASSERT_NO_THROW(formula = formulaParser.parseSingleFormulaFromString("\"label\"")); diff --git a/test/functional/modelchecker/EigenDtmcPrctlModelCheckerTest.cpp b/test/functional/modelchecker/EigenDtmcPrctlModelCheckerTest.cpp index b66c71f09..9b8b982f7 100644 --- a/test/functional/modelchecker/EigenDtmcPrctlModelCheckerTest.cpp +++ b/test/functional/modelchecker/EigenDtmcPrctlModelCheckerTest.cpp @@ -15,12 +15,15 @@ #include "src/parser/AutoParser.h" #include "src/parser/PrismParser.h" #include "src/builder/ExplicitModelBuilder.h" +#include "src/storage/expressions/ExpressionManager.h" TEST(EigenDtmcPrctlModelCheckerTest, Die) { std::shared_ptr> abstractModel = storm::parser::AutoParser<>::parseModel(STORM_CPP_BASE_PATH "/examples/dtmc/die/die.tra", STORM_CPP_BASE_PATH "/examples/dtmc/die/die.lab", "", STORM_CPP_BASE_PATH "/examples/dtmc/die/die.coin_flips.trans.rew"); // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); ASSERT_EQ(abstractModel->getType(), storm::models::ModelType::Dtmc); @@ -69,7 +72,9 @@ TEST(EigenDtmcPrctlModelCheckerTest, Die_RationalNumber) { std::shared_ptr> model = storm::builder::ExplicitModelBuilder(program, options).build(); // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); ASSERT_EQ(model->getType(), storm::models::ModelType::Dtmc); @@ -116,7 +121,9 @@ TEST(EigenDtmcPrctlModelCheckerTest, Die_RationalFunction) { std::shared_ptr> model = storm::builder::ExplicitModelBuilder(program, options).build(); // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); ASSERT_EQ(model->getType(), storm::models::ModelType::Dtmc); @@ -168,7 +175,9 @@ TEST(EigenDtmcPrctlModelCheckerTest, Crowds) { ASSERT_EQ(abstractModel->getType(), storm::models::ModelType::Dtmc); // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); std::shared_ptr> dtmc = abstractModel->as>(); @@ -205,7 +214,9 @@ TEST(EigenDtmcPrctlModelCheckerTest, SynchronousLeader) { ASSERT_EQ(abstractModel->getType(), storm::models::ModelType::Dtmc); // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); std::shared_ptr> dtmc = abstractModel->as>(); @@ -241,7 +252,9 @@ TEST(EigenDtmcPrctlModelCheckerTest, LRASingleBscc) { std::shared_ptr> dtmc; // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); { matrixBuilder = storm::storage::SparseMatrixBuilder(2, 2, 2); @@ -321,7 +334,9 @@ TEST(EigenDtmcPrctlModelCheckerTest, LRA) { std::shared_ptr> dtmc; // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); { matrixBuilder = storm::storage::SparseMatrixBuilder(15, 15, 20, true); @@ -398,7 +413,9 @@ TEST(EigenDtmcPrctlModelCheckerTest, Conditional) { storm::modelchecker::SparseDtmcPrctlModelChecker> checker(*dtmc, std::make_unique>()); // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); std::shared_ptr formula = formulaParser.parseSingleFormulaFromString("P=? [F \"target\"]"); std::unique_ptr result = checker.check(*formula); diff --git a/test/functional/modelchecker/GmmxxCtmcCslModelCheckerTest.cpp b/test/functional/modelchecker/GmmxxCtmcCslModelCheckerTest.cpp index 8f6814ded..7ae8fd860 100644 --- a/test/functional/modelchecker/GmmxxCtmcCslModelCheckerTest.cpp +++ b/test/functional/modelchecker/GmmxxCtmcCslModelCheckerTest.cpp @@ -18,6 +18,8 @@ #include "src/settings/modules/NativeEquationSolverSettings.h" #include "src/settings/modules/GmmxxEquationSolverSettings.h" +#include "src/storage/expressions/ExpressionManager.h" + TEST(GmmxxCtmcCslModelCheckerTest, Cluster) { // Set the PRISM compatibility mode temporarily. It is set to its old value once the returned object is destructed. std::unique_ptr enablePrismCompatibility = storm::settings::mutableIOSettings().overridePrismCompatibilityMode(true); diff --git a/test/functional/modelchecker/GmmxxDtmcPrctlModelCheckerTest.cpp b/test/functional/modelchecker/GmmxxDtmcPrctlModelCheckerTest.cpp index 2290a1cec..e28c643e5 100644 --- a/test/functional/modelchecker/GmmxxDtmcPrctlModelCheckerTest.cpp +++ b/test/functional/modelchecker/GmmxxDtmcPrctlModelCheckerTest.cpp @@ -15,12 +15,14 @@ #include "src/parser/AutoParser.h" #include "src/parser/PrismParser.h" #include "src/builder/ExplicitModelBuilder.h" +#include "src/storage/expressions/ExpressionManager.h" TEST(GmmxxDtmcPrctlModelCheckerTest, Die) { std::shared_ptr> abstractModel = storm::parser::AutoParser<>::parseModel(STORM_CPP_BASE_PATH "/examples/dtmc/die/die.tra", STORM_CPP_BASE_PATH "/examples/dtmc/die/die.lab", "", STORM_CPP_BASE_PATH "/examples/dtmc/die/die.coin_flips.trans.rew"); // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); ASSERT_EQ(abstractModel->getType(), storm::models::ModelType::Dtmc); @@ -66,7 +68,9 @@ TEST(GmmxxDtmcPrctlModelCheckerTest, Crowds) { ASSERT_EQ(abstractModel->getType(), storm::models::ModelType::Dtmc); // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); std::shared_ptr> dtmc = abstractModel->as>(); @@ -103,7 +107,9 @@ TEST(GmmxxDtmcPrctlModelCheckerTest, SynchronousLeader) { ASSERT_EQ(abstractModel->getType(), storm::models::ModelType::Dtmc); // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); std::shared_ptr> dtmc = abstractModel->as>(); @@ -139,7 +145,9 @@ TEST(GmmxxDtmcPrctlModelCheckerTest, LRASingleBscc) { std::shared_ptr> dtmc; // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); { matrixBuilder = storm::storage::SparseMatrixBuilder(2, 2, 2); @@ -219,7 +227,9 @@ TEST(GmmxxDtmcPrctlModelCheckerTest, LRA) { std::shared_ptr> dtmc; // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); { matrixBuilder = storm::storage::SparseMatrixBuilder(15, 15, 20, true); @@ -294,7 +304,9 @@ TEST(GmmxxDtmcPrctlModelCheckerTest, Conditional) { storm::modelchecker::SparseDtmcPrctlModelChecker> checker(*dtmc, std::make_unique>()); // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); std::shared_ptr formula = formulaParser.parseSingleFormulaFromString("P=? [F \"target\"]"); std::unique_ptr result = checker.check(*formula); diff --git a/test/functional/modelchecker/GmmxxHybridCtmcCslModelCheckerTest.cpp b/test/functional/modelchecker/GmmxxHybridCtmcCslModelCheckerTest.cpp index 96450fa35..c068fc292 100644 --- a/test/functional/modelchecker/GmmxxHybridCtmcCslModelCheckerTest.cpp +++ b/test/functional/modelchecker/GmmxxHybridCtmcCslModelCheckerTest.cpp @@ -21,6 +21,7 @@ #include "src/settings/modules/GmmxxEquationSolverSettings.h" #include "src/settings/modules/NativeEquationSolverSettings.h" +#include "src/storage/expressions/ExpressionManager.h" TEST(GmmxxHybridCtmcCslModelCheckerTest, Cluster_Cudd) { // Set the PRISM compatibility mode temporarily. It is set to its old value once the returned object is destructed. diff --git a/test/functional/modelchecker/GmmxxHybridDtmcPrctlModelCheckerTest.cpp b/test/functional/modelchecker/GmmxxHybridDtmcPrctlModelCheckerTest.cpp index 53e992fd3..1cf195a8d 100644 --- a/test/functional/modelchecker/GmmxxHybridDtmcPrctlModelCheckerTest.cpp +++ b/test/functional/modelchecker/GmmxxHybridDtmcPrctlModelCheckerTest.cpp @@ -13,18 +13,21 @@ #include "src/models/symbolic/Dtmc.h" #include "src/models/symbolic/StandardRewardModel.h" #include "src/storage/SymbolicModelDescription.h" +#include "src/storage/expressions/ExpressionManager.h" #include "src/settings/SettingsManager.h" #include "src/settings/modules/GeneralSettings.h" #include "src/settings/modules/GmmxxEquationSolverSettings.h" - #include "src/settings/modules/NativeEquationSolverSettings.h" + TEST(GmmxxHybridDtmcPrctlModelCheckerTest, Die_Cudd) { storm::storage::SymbolicModelDescription modelDescription = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/die.pm"); storm::prism::Program program = modelDescription.preprocess().asPrismProgram(); // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); // Build the die model with its reward model. #ifdef WINDOWS @@ -86,7 +89,9 @@ TEST(GmmxxHybridDtmcPrctlModelCheckerTest, Die_Sylvan) { storm::prism::Program program = modelDescription.preprocess().asPrismProgram(); // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); // Build the die model with its reward model. #ifdef WINDOWS @@ -148,7 +153,9 @@ TEST(GmmxxHybridDtmcPrctlModelCheckerTest, Crowds_Cudd) { storm::prism::Program program = modelDescription.preprocess().asPrismProgram(); // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); std::shared_ptr> model = storm::builder::DdPrismModelBuilder().build(program); EXPECT_EQ(8607ul, model->getNumberOfStates()); @@ -193,7 +200,9 @@ TEST(GmmxxHybridDtmcPrctlModelCheckerTest, Crowds_Sylvan) { storm::prism::Program program = modelDescription.preprocess().asPrismProgram(); // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); std::shared_ptr> model = storm::builder::DdPrismModelBuilder().build(program); EXPECT_EQ(8607ul, model->getNumberOfStates()); @@ -238,7 +247,9 @@ TEST(GmmxxHybridDtmcPrctlModelCheckerTest, SynchronousLeader_Cudd) { storm::prism::Program program = modelDescription.preprocess().asPrismProgram(); // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); // Build the die model with its reward model. #ifdef WINDOWS @@ -291,7 +302,9 @@ TEST(GmmxxHybridDtmcPrctlModelCheckerTest, SynchronousLeader_Sylvan) { storm::prism::Program program = modelDescription.preprocess().asPrismProgram(); // A parser that we use for conveniently constructing the formulas. - storm::parser::FormulaParser formulaParser; + + auto expManager = std::make_shared(); + storm::parser::FormulaParser formulaParser(expManager); // Build the die model with its reward model. #ifdef WINDOWS diff --git a/test/functional/modelchecker/GmmxxHybridMdpPrctlModelCheckerTest.cpp b/test/functional/modelchecker/GmmxxHybridMdpPrctlModelCheckerTest.cpp index eb00b67cd..2229546f1 100644 --- a/test/functional/modelchecker/GmmxxHybridMdpPrctlModelCheckerTest.cpp +++ b/test/functional/modelchecker/GmmxxHybridMdpPrctlModelCheckerTest.cpp @@ -26,6 +26,7 @@ TEST(GmmxxHybridMdpPrctlModelCheckerTest, Dice_Cudd) { storm::prism::Program program = modelDescription.preprocess().asPrismProgram(); // A parser that we use for conveniently constructing the formulas. + storm::parser::FormulaParser formulaParser; // Build the die model with its reward model. diff --git a/test/functional/modelchecker/NativeCtmcCslModelCheckerTest.cpp b/test/functional/modelchecker/NativeCtmcCslModelCheckerTest.cpp index 29a937a5e..93234108c 100644 --- a/test/functional/modelchecker/NativeCtmcCslModelCheckerTest.cpp +++ b/test/functional/modelchecker/NativeCtmcCslModelCheckerTest.cpp @@ -22,7 +22,7 @@ TEST(NativeCtmcCslModelCheckerTest, Cluster) { // Parse the model description. storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/cluster2.sm"); - storm::parser::FormulaParser formulaParser(program.getManager().getSharedPointer()); + storm::parser::FormulaParser formulaParser(program); std::shared_ptr formula(nullptr); // Build the model. @@ -91,7 +91,7 @@ TEST(NativeCtmcCslModelCheckerTest, Embedded) { // Parse the model description. storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/embedded2.sm"); - storm::parser::FormulaParser formulaParser(program.getManager().getSharedPointer()); + storm::parser::FormulaParser formulaParser(program); std::shared_ptr formula(nullptr); // Build the model. @@ -148,7 +148,7 @@ TEST(NativeCtmcCslModelCheckerTest, Polling) { // Parse the model description. storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/polling2.sm"); - storm::parser::FormulaParser formulaParser(program.getManager().getSharedPointer()); + storm::parser::FormulaParser formulaParser(program); std::shared_ptr formula(nullptr); // Build the model. @@ -182,7 +182,7 @@ TEST(NativeCtmcCslModelCheckerTest, Tandem) { // Parse the model description. storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/tandem5.sm"); - storm::parser::FormulaParser formulaParser(program.getManager().getSharedPointer()); + storm::parser::FormulaParser formulaParser(program); std::shared_ptr formula(nullptr); // Build the model with the customers reward structure. diff --git a/test/functional/modelchecker/NativeHybridCtmcCslModelCheckerTest.cpp b/test/functional/modelchecker/NativeHybridCtmcCslModelCheckerTest.cpp index 5d8391f5c..0bda60e39 100644 --- a/test/functional/modelchecker/NativeHybridCtmcCslModelCheckerTest.cpp +++ b/test/functional/modelchecker/NativeHybridCtmcCslModelCheckerTest.cpp @@ -28,7 +28,7 @@ TEST(NativeHybridCtmcCslModelCheckerTest, Cluster_Cudd) { // Parse the model description. storm::storage::SymbolicModelDescription modelDescription = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/cluster2.sm"); storm::prism::Program program = modelDescription.preprocess().asPrismProgram(); - storm::parser::FormulaParser formulaParser(program.getManager().getSharedPointer()); + storm::parser::FormulaParser formulaParser(program); std::shared_ptr formula(nullptr); // Build the model. @@ -126,7 +126,7 @@ TEST(NativeHybridCtmcCslModelCheckerTest, Cluster_Sylvan) { // Parse the model description. storm::storage::SymbolicModelDescription modelDescription = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/cluster2.sm"); storm::prism::Program program = modelDescription.preprocess().asPrismProgram(); - storm::parser::FormulaParser formulaParser(program.getManager().getSharedPointer()); + storm::parser::FormulaParser formulaParser(program); std::shared_ptr formula(nullptr); // Build the model. @@ -224,7 +224,7 @@ TEST(NativeHybridCtmcCslModelCheckerTest, Embedded_Cudd) { // Parse the model description. storm::storage::SymbolicModelDescription modelDescription = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/embedded2.sm"); storm::prism::Program program = modelDescription.preprocess().asPrismProgram(); - storm::parser::FormulaParser formulaParser(program.getManager().getSharedPointer()); + storm::parser::FormulaParser formulaParser(program); std::shared_ptr formula(nullptr); // Build the model. @@ -304,7 +304,7 @@ TEST(NativeHybridCtmcCslModelCheckerTest, Embedded_Sylvan) { // Parse the model description. storm::storage::SymbolicModelDescription modelDescription = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/embedded2.sm"); storm::prism::Program program = modelDescription.preprocess().asPrismProgram(); - storm::parser::FormulaParser formulaParser(program.getManager().getSharedPointer()); + storm::parser::FormulaParser formulaParser(program); std::shared_ptr formula(nullptr); // Build the model. @@ -384,7 +384,7 @@ TEST(NativeHybridCtmcCslModelCheckerTest, Polling_Cudd) { // Parse the model description. storm::storage::SymbolicModelDescription modelDescription = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/polling2.sm"); storm::prism::Program program = modelDescription.preprocess().asPrismProgram(); - storm::parser::FormulaParser formulaParser(program.getManager().getSharedPointer()); + storm::parser::FormulaParser formulaParser(program); std::shared_ptr formula(nullptr); // Build the model. @@ -421,7 +421,7 @@ TEST(NativeHybridCtmcCslModelCheckerTest, Polling_Sylvan) { // Parse the model description. storm::storage::SymbolicModelDescription modelDescription = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/polling2.sm"); storm::prism::Program program = modelDescription.preprocess().asPrismProgram(); - storm::parser::FormulaParser formulaParser(program.getManager().getSharedPointer()); + storm::parser::FormulaParser formulaParser(program); std::shared_ptr formula(nullptr); // Build the model. @@ -465,7 +465,7 @@ TEST(NativeHybridCtmcCslModelCheckerTest, Tandem_Cudd) { // Parse the model description. storm::storage::SymbolicModelDescription modelDescription = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/tandem5.sm"); storm::prism::Program program = modelDescription.preprocess().asPrismProgram(); - storm::parser::FormulaParser formulaParser(program.getManager().getSharedPointer()); + storm::parser::FormulaParser formulaParser(program); std::shared_ptr formula(nullptr); // Build the model with the customers reward structure. @@ -556,7 +556,7 @@ TEST(NativeHybridCtmcCslModelCheckerTest, Tandem_Sylvan) { // Parse the model description. storm::storage::SymbolicModelDescription modelDescription = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/tandem5.sm"); storm::prism::Program program = modelDescription.preprocess().asPrismProgram(); - storm::parser::FormulaParser formulaParser(program.getManager().getSharedPointer()); + storm::parser::FormulaParser formulaParser(program); std::shared_ptr formula(nullptr); // Build the model with the customers reward structure. diff --git a/test/functional/parser/FormulaParserTest.cpp b/test/functional/parser/FormulaParserTest.cpp index 1435806eb..14077658e 100644 --- a/test/functional/parser/FormulaParserTest.cpp +++ b/test/functional/parser/FormulaParserTest.cpp @@ -3,6 +3,7 @@ #include "src/parser/FormulaParser.h" #include "src/logic/FragmentSpecification.h" #include "src/exceptions/WrongFormatException.h" +#include "src/storage/expressions/ExpressionManager.h" TEST(FormulaParserTest, LabelTest) { storm::parser::FormulaParser formulaParser; diff --git a/test/functional/permissiveschedulers/SmtPermissiveSchedulerTest.cpp b/test/functional/permissiveschedulers/SmtPermissiveSchedulerTest.cpp index 85253c5ca..0d722d125 100644 --- a/test/functional/permissiveschedulers/SmtPermissiveSchedulerTest.cpp +++ b/test/functional/permissiveschedulers/SmtPermissiveSchedulerTest.cpp @@ -15,7 +15,7 @@ TEST(SmtPermissiveSchedulerTest, DieSelection) { storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/die_c1.nm"); - storm::parser::FormulaParser formulaParser(program.getManager().getSharedPointer()); + storm::parser::FormulaParser formulaParser(program); // auto formula02 = formulaParser.parseSingleFormulaFromString("P>=0.10 [ F \"one\"]")->asProbabilityOperatorFormula(); // ASSERT_TRUE(storm::logic::isLowerBound(formula02.getComparisonType())); diff --git a/test/functional/utility/ModelInstantiatorTest.cpp b/test/functional/utility/ModelInstantiatorTest.cpp index d1319613c..62cdb8c68 100644 --- a/test/functional/utility/ModelInstantiatorTest.cpp +++ b/test/functional/utility/ModelInstantiatorTest.cpp @@ -183,15 +183,15 @@ TEST(ModelInstantiatorTest, Brp_Rew) { } } ASSERT_TRUE(instantiated.hasUniqueRewardModel()); - EXPECT_FALSE(instantiated.getUniqueRewardModel()->second.hasStateRewards()); - EXPECT_FALSE(instantiated.getUniqueRewardModel()->second.hasTransitionRewards()); - EXPECT_TRUE(instantiated.getUniqueRewardModel()->second.hasStateActionRewards()); - ASSERT_TRUE(dtmc->getUniqueRewardModel()->second.hasStateActionRewards()); - std::size_t stateActionEntries = dtmc->getUniqueRewardModel()->second.getStateActionRewardVector().size(); - ASSERT_EQ(stateActionEntries, instantiated.getUniqueRewardModel()->second.getStateActionRewardVector().size()); + EXPECT_FALSE(instantiated.getUniqueRewardModel().hasStateRewards()); + EXPECT_FALSE(instantiated.getUniqueRewardModel().hasTransitionRewards()); + EXPECT_TRUE(instantiated.getUniqueRewardModel().hasStateActionRewards()); + ASSERT_TRUE(dtmc->getUniqueRewardModel().hasStateActionRewards()); + std::size_t stateActionEntries = dtmc->getUniqueRewardModel().getStateActionRewardVector().size(); + ASSERT_EQ(stateActionEntries, instantiated.getUniqueRewardModel().getStateActionRewardVector().size()); for(std::size_t i =0; igetUniqueRewardModel()->second.getStateActionRewardVector()[i].evaluate(valuation)); - EXPECT_EQ(evaluatedValue, instantiated.getUniqueRewardModel()->second.getStateActionRewardVector()[i]); + double evaluatedValue = carl::toDouble(dtmc->getUniqueRewardModel().getStateActionRewardVector()[i].evaluate(valuation)); + EXPECT_EQ(evaluatedValue, instantiated.getUniqueRewardModel().getStateActionRewardVector()[i]); } EXPECT_EQ(dtmc->getStateLabeling(), instantiated.getStateLabeling()); EXPECT_EQ(dtmc->getOptionalChoiceLabeling(), instantiated.getOptionalChoiceLabeling());