[
  {
    "path": ".gitignore",
    "content": "# JetBrains\n.idea/\n# Dart Editor\n*.dart.js\n*.dart.js.map\n*.dart.js.deps\n\n# pub\n.pub\npackages\n.packages\nbuild\n\n#other\n.settings\n.buildlog\n.DS_Store\n"
  },
  {
    "path": "LICENSE",
    "content": "Copyright 2012, the Dart project authors. All rights reserved.\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n    * Neither the name of Google Inc. nor the names of its\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n======================================================================\n\nPortions of these code samples were derived from tutorials or samples\non http://www.html5rocks.com. These portions are licensed as follows:\n\nCopyright 2012 - Google, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": "README.md",
    "content": "# DEPRECATED\n\nThis repo is deprecated; please use the new samples repo: https://github.com/dart-lang/samples\n\n##  Contents\n* [HTML5 samples](html5/README.md)\n* [Dart I/O mini samples](dart_io_mini_samples/README.md)\n* [Dart deferred loading samples](deferred_loading_samples/README.md)\n\nNote: The Angulardart examples have been moved to\n[https://github.com/shailen/angulardart-samples](https://github.com/shailen/angulardart-samples).\n\n"
  },
  {
    "path": "dart_io_mini_samples/AUTHORS",
    "content": "Mary Campione\nPatrice Chalin\nShailen Tuli\nGünter Zöchbauer\n\n"
  },
  {
    "path": "dart_io_mini_samples/LICENSE",
    "content": "Except as otherwise noted, the content of this page is licensed under the\nCreative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States\nLicense [1], and code samples are licensed\nunder the BSD License:\n\nCopyright 2012, the Dart project authors. All rights reserved.\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above\n      copyright notice, this list of conditions and the following\n      disclaimer in the documentation and/or other materials provided\n      with the distribution.\n    * Neither the name of Google Inc. nor the names of its\n      contributors may be used to endorse or promote products derived\n      from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n[1] http://creativecommons.org/licenses/by-nc-nd/3.0/us/\n"
  },
  {
    "path": "dart_io_mini_samples/README.md",
    "content": "* [Introduction](example/introduction.md)\n\n## Files, directories, and symlinks\n\n* [Deleting a file, directory, or symlink](example/files_directories_and_symlinks/deleting_a_file_directory_or_symlink.dart)\n* [Renaming a file, directory, or symlink](example/files_directories_and_symlinks/renaming_a_file_directory_or_symlink.dart)\n* [Finding the type of a filesystem object](example/files_directories_and_symlinks/finding_the_type_of_a_filesystem_object.dart)\n* [Getting the parent directory](example/files_directories_and_symlinks/getting_the_parent_directory.dart)\n* [Creating a file](example/files_directories_and_symlinks/files/creating_a_file.dart)\n* [Reading a file as a string](example/files_directories_and_symlinks/files/reading_a_file_as_a_string.dart)\n* [Reading a file as lines](example/files_directories_and_symlinks/files/reading_a_file_as_lines.dart)\n* [Reading a file as bytes](example/files_directories_and_symlinks/files/reading_a_file_as_bytes.dart)\n* [Handling errors when reading a file](example/files_directories_and_symlinks/files/handling_errors_when_reading_a_file.dart)\n* [Writing a string to a file](example/files_directories_and_symlinks/files/writing_a_string_to_a_file.dart)\n* [Writing bytes to a file](example/files_directories_and_symlinks/files/writing_bytes_to_a_file.dart)\n* [Using a stream to write to a file](example/files_directories_and_symlinks/files/writing_to_a_file_using_a_stream.dart)\n* [Creating a directory](example/files_directories_and_symlinks/directories/creating_a_directory.dart)\n* [Creating a temp directory](example/files_directories_and_symlinks/directories/creating_a_temporary_directory.dart)\n* [Listing the contents of a directory](example/files_directories_and_symlinks/directories/listing_the_contents_of_a_directory.dart)\n* [Creating a symlink](example/files_directories_and_symlinks/symlinks/creating_a_symlink.dart)\n* [Checking if a path represents a symlink](example/files_directories_and_symlinks/symlinks/checking_if_a_path_represents_a_symlink.dart)\n* [Getting the target of a symlink](example/files_directories_and_symlinks/symlinks/getting_the_target_of_a_link.dart)\n\n## HTTP requests and responses\n\n* [Making a GET request](example/http/making_a_get_request.dart)\n* [Making a POST request](example/http/making_a_post_request.dart)\n* [Adding custom headers to a request](example/http/adding_custom_headers.dart)\n* [Making multiple requests to the same server](example/http/making_multiple_requests_to_the_same_server.dart)\n* [Handling errors when making a request](example/http/handling_an_httprequest_error.dart)\n* [Getting redirection history](example/http/getting_redirection_history.dart)\n* [Getting the response body as a string](example/http/reading_the_response_body.dart)\n* [Getting the response content in binary format](example/http/getting_the_response_content_in_binary_format.dart)\n* [Getting the response headers](example/http/getting_the_response_headers.dart)\n\n## HTTP server\n\n* [Implementing a 'Hello world' HTTP server](example/http_server/implementing_a_Hello_World_http_server.dart)\n* [Routing requests based on URL patterns](example/http_server/routing_requests_based_on_url_patterns.dart)\n\n## Sockets\n\n* [Using serversockets server](example/sockets/using_serversockets_server.dart)\n* [Using serversockets client](example/sockets/using_serversockets_client.dart)\n\n## Websockets\n\n* [Using websockets server](example/websockets/using_websockets_server.dart)\n* [Using websockets client](example/websockets/using_websockets_client.dart)\n\n## OS and hardware information\n\n* [Getting environment variables](example/platform/getting_environment_variables.dart)\n* [Identifying the operating system](example/platform/identifying_the_operating_system.dart)\n* [Getting information about the script being run](example/platform/getting_information_about_the_script_being_run.dart)\n\n## Interacting with processes\n\n* [Running a process](example/interacting_with_processes/running_a_process.dart)\n* [Obtaining the exit code when running a process](example/interacting_with_processes/obtaining_the_exit_code_when_running_a_process.dart)\n\n## Working with paths\n\n* [Joining paths](example/paths/joining_paths.dart)\n* [Parsing a path into components](example/paths/parsing_a_path_into_components.dart)\n* [Calculating relative paths](example/paths/calculating_relative_paths.dart)\n* [Converting between a URI and a path](example/paths/converting_between_a_uri_and_a_path.dart)\n* [Getting information about a file path](example/paths/getting_information_about_a_file_path.dart)\n* [Getting the path separator for the current platform](example/paths/getting_the_path_separator_for_the_current_platform.dart)\n\n##  Other resources\n\n* [Other resources](example/other_resources.md)\n"
  },
  {
    "path": "dart_io_mini_samples/example/common.css",
    "content": "body {\n  padding-right: 15px;\n  padding-left: 15px;\n  margin: 20px auto 0 auto;\n  font-family: \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n  font-size: 14px;\n  line-height: 1.428571429;\n  color: #333;\n  background-color: #fff;\n}\n\ninput[type=\"text\"], textarea {\n  display: block;\n  width: 100%;\n  height: 34px;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 1.428571429;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fff;\n  background-image: none;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);\n  -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;\n  \n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\n\ninput[type=\"checkbox\"] {\n  float: left;\n  margin-left: -20px;\n  margin: 3px 5px 0 0;\n  margin-top: 1px \\9;\n  line-height: normal;\n  padding: 0;\n  box-sizing: border-box;\n}\n\n\nlabel {\n  display: inline;\n  margin-bottom: 0;\n  font-weight: normal;\n  cursor: pointer;\n}\n\nselect {\n  display: block;\n  width: 100%;\n  height: 34px;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 1.428571429;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fff;\n  background-image: none;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,0.075);\n  -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;\n}\n\nbutton, input[type='submit'] {\n  display: inline-block;\n  padding: 6px 12px;\n  margin-top: 10px;\n  margin-bottom: 0;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1.428571429;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  cursor: pointer;\n  background-image: none;\n  border: 1px solid transparent;\n  border-radius: 4px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  -o-user-select: none;\n  user-select: none;\n  color: #fff;\n  background-color: #428bca;\n  border-color: #357ebd;\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/deleting_a_file_directory_or_symlink.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the FilesSystemEntity `delete()` method to delete a file, directory, or\n/// symlink. This method is inherited by File, Directory, and Link.\n\nimport 'dart:io';\n\nmain() async {\n  // Create a temporary directory.\n  var dir = await Directory.systemTemp.createTemp('my_temp_dir');\n\n  // Confirm it exists.\n  print(await dir.exists());\n\n  // Delete the directory.\n  await dir.delete();\n\n  // Confirm it no longer exists.\n  print(await dir.exists());\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/directories/creating_a_directory.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the Directory `create()` method to create a directory.\n/// To create intermediate directories, set the `recursive` argument to `true`\n/// (default is `false`).\n\nimport 'dart:io';\n\nmain() async {\n  // Creates dir/ and dir/subdir/.\n  var directory = await new Directory('dir/subdir').create(recursive: true);\n  print(directory.path);\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/directories/creating_a_temporary_directory.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the Directory `createTemp()` method to create a temporary directory.\n/// This method appends random characters to the name of the directory to\n/// produce a unique directory name.\n\nimport 'dart:io';\n\nmain() async {\n  var directory = await Directory.systemTemp.createTemp('my_temp_dir');\n  print(directory.path);\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/directories/listing_the_contents_of_a_directory.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the `list()` method to list a directory's contents.  The method recurses\n/// into subdirectories if the `recursive` argument is `true` (default is\n/// `false`). It does not follow symlinks if the `followLinks` argument is\n/// `false` (default is `true`).\n\nimport 'dart:io';\nimport 'dart:async'; // Import not needed but added here to explicitly assign type for clarity below.\n\nmain() async {\n  // Get the system temp directory.\n  var systemTempDir = Directory.systemTemp;\n\n  // List directory contents, recursing into sub-directories, but not following\n  // symbolic links.\n  Stream<FileSystemEntity> entityList =\n      systemTempDir.list(recursive: true, followLinks: false);\n  await for (FileSystemEntity entity in entityList) print(entity.path);\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/file.txt",
    "content": "one banana\ntwo banana\nthree banana\nfour"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/files/creating_a_file.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the File `create()` method to create a file.\n/// To create intermediate directories, set the `recursive` argument to\n/// `true` (default is `false`).\n\nimport 'dart:io';\n\nmain() async {\n  // Get the system temp directory.\n  var systemTempDir = Directory.systemTemp;\n  // Creates dir/, dir/subdir/, and dir/subdir/file.txt in the system\n  // temp directory.\n  var file = await new File('${systemTempDir.path}/dir/subdir/file.txt')\n      .create(recursive: true);\n  print(file.path);\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/files/handling_errors_when_reading_a_file.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\nimport 'dart:io';\n\nmain() async {\n  final filename = 'non_existent_file.txt';\n  try {\n    var file = await new File(filename).readAsString();\n    print(file);\n  } catch (e) {\n    print('There was a ${e.runtimeType} error');\n    print('Could not read $filename');\n  }\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/files/reading_a_file_as_a_string.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the File `readAsString()` method to read a file as a string.\n\nimport 'dart:io';\n\nmain() async {\n  var contents = await new File('file.txt').readAsString();\n  print(contents);\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/files/reading_a_file_as_bytes.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the File `readAsBytes()` method to read file contents as bytes.\n\nimport 'dart:io';\n\nimport 'package:crypto/crypto.dart';\n\nmain() async {\n  var bytes = await new File('file.txt').readAsBytes();\n  // Do something with the bytes. For example, convert to base64.\n  String base64 = CryptoUtils.bytesToBase64(bytes);\n  print(base64);\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/files/reading_a_file_as_lines.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the File `readAsLines()` method to read file contents as lines.\n\nimport 'dart:io';\n\nmain() async {\n  List<String> lines = await new File('file.txt').readAsLines();\n  lines.forEach((String line) => print(line));\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/files/reading_a_file_using_a_stream.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the File `openRead()` method to read a file's contents a little at a\n/// time using a stream.\n///\n/// The example below reads the file fragments, decodes them to UTF8, and\n/// converts them to individual lines. The `onDone` callback executes when the\n/// stream exhausts. The `onError` callback executes when there is an error.\n\nimport 'dart:io';\nimport 'dart:convert';\nimport 'dart:async';\n\nmain() async {\n  final file = new File('file.txt');\n  Stream<List<int>> inputStream = file.openRead();\n\n  Stream<String> lines = inputStream\n      // Decode to UTF8.\n      .transform(UTF8.decoder)\n      // Convert stream to individual lines.\n      .transform(new LineSplitter());\n\n  try {\n    await for (String line in lines) print('$line: ${line.length} bytes');\n  } catch (e) {\n    print(e.toString());\n  }\n\n  print('File is now closed.');\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/files/writing_a_string_to_a_file.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the File object's `writeAsString()` method to write a string to a\n/// file. After writing the string, the method closes the file.\n\nimport 'dart:io';\n\nmain() async {\n  final filename = 'file.txt';\n  var file = await new File(filename).writeAsString('some content');\n  print(\"Content written to $file\");\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/files/writing_bytes_to_a_file.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the File `writeAsBytes()` method to write bytes to a file.\n\nimport 'dart:io';\nimport 'dart:convert';\n\nmain() async {\n  final string = 'Dart!';\n\n  // Encode to UTF8.\n  var encodedData = UTF8.encode(string);\n  var file = await new File('file.txt');\n  file.writeAsBytes(encodedData);\n  var data = await file.readAsBytes();\n\n  // Decode to a string, and print.\n  print(UTF8.decode(data)); // Prints 'Dart!'.\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/files/writing_to_a_file_using_a_stream.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the File `openWrite()` method to create a new IOSink for a file, to\n/// write to the file a little at a time.\n/// To append to the file, set the `mode` argument to `FileMode.APPEND`\n/// (it defaults to `FileMode.WRITE`).\n\nimport 'dart:io';\n\nmain() {\n  var file = new File('file.txt');\n  var sink = file.openWrite();\n  sink.write('FILE ACCESSED ${new DateTime.now()}\\n');\n\n  // Close the IOSink to free system resources.\n  sink.close();\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/finding_the_type_of_a_filesystem_object.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the `FileSystemEntity.type()` method to get the type of a file system\n/// object. This method is inherited by File, Directory, and Link.\n\nimport 'dart:io';\nimport 'dart:async'; // Import not needed but added here to explicitly assign type for clarity below.\n\nmain() async {\n  // List the contents of the system temp directory.\n  Stream<FileSystemEntity> entityList =\n      Directory.systemTemp.list(recursive: true, followLinks: false);\n\n  await for (FileSystemEntity entity in entityList) {\n    // Get the type of the FileSystemEntity, apply the appropiate label, and\n    // print the entity path.\n    FileSystemEntityType type = await FileSystemEntity.type(entity.path);\n\n    String label;\n    switch (type) {\n      case FileSystemEntityType.DIRECTORY:\n        label = 'D';\n        break;\n      case FileSystemEntityType.FILE:\n        label = 'F';\n        break;\n      case FileSystemEntityType.LINK:\n        label = 'L';\n        break;\n      default:\n        label = 'UNKNOWN';\n    }\n    print('$label: ${entity.path}');\n  }\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/getting_the_parent_directory.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the FileSystemEntity `parent` property to get the parent of a\n/// file, directory, or symlink. This property is inherited by File, Directory,\n/// and Link.\n\nimport 'dart:io';\nimport 'dart:async'; // Import not needed but added here to explicitly assign type for clarity below.\n\nmain() async {\n  // List the contents of the system temp directory.\n  Stream<FileSystemEntity> entityList =\n      Directory.systemTemp.list(recursive: true, followLinks: false);\n\n  await for (FileSystemEntity entity in entityList) print(entity.parent.path);\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/renaming_a_file_directory_or_symlink.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the FileSystemEntity `rename()` method to change the name of a\n/// file, directory or symlink. This method is inherited by\n/// File, Directory, and Link.\n\nimport 'dart:io';\n\nmain() async {\n  // Get the system temp directory.\n  var systemTempDir = Directory.systemTemp;\n\n  // Create a file.\n  var file = await new File('${systemTempDir.path}/foo.txt').create();\n\n  // Prints path ending with `foo.txt`.\n  print('The path is ${file.path}');\n\n  // Rename the file.\n  await file.rename('${systemTempDir.path}/bar.txt');\n\n  // Prints path ending with `bar.txt`.\n  print('The path is ${file.path}');\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/symlinks/checking_if_a_path_represents_a_symlink.dart",
    "content": "/// Use the FileSystemEntity `isLink()` method to check if path represents\n/// a symlink.\n\nimport 'dart:io';\nimport 'dart:async'; // Import not needed but added here to explicitly assign type for clarity below.\n\nmain() async {\n  // Get the system temp directory.\n  var systemTempDir = Directory.systemTemp;\n\n  // List the contents of the system temp directory.\n  Stream<FileSystemEntity> entityList =\n      systemTempDir.list(recursive: true, followLinks: false);\n  await for (FileSystemEntity entity in entityList) {\n    // Print the path only if it represents a symlink.\n    var isLink = await FileSystemEntity.isLink(entity.path);\n    if (isLink) print(entity.path);\n  }\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/symlinks/creating_a_symlink.dart",
    "content": "/// Use the Link `create()` method to create a symlink.\n\nimport 'dart:io';\n\nmain() async {\n  // Get the system temp directory.\n  var temp = await Directory.systemTemp.createTemp('my_temp_dir');\n\n  // Generate a couple of paths.\n  var first = '${temp.path}${Platform.pathSeparator}first';\n  var second = '${temp.path}${Platform.pathSeparator}second';\n\n  // Create a symlink.\n  Link symLink = await new Link(second).create(first);\n  print(symLink);\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/files_directories_and_symlinks/symlinks/getting_the_target_of_a_link.dart",
    "content": "/// Use the Link `target()` method to get the path that the link points to.\n\nimport 'dart:async';\nimport 'dart:io';\n\n// Creates temporary directory inside the system temp directory, creates a\n// couple of paths in the created directory, and creates a symlink.\nFuture<Link> createSymLink() async {\n  var temp = await Directory.systemTemp.createTemp('my_temp_dir');\n  var first = '${temp.path}${Platform.pathSeparator}first';\n  var second = '${temp.path}${Platform.pathSeparator}second';\n  return new Link(second).create(first);\n}\n\nmain() async {\n  try {\n    var link = await createSymLink();\n    print(link.path);\n    var targetPath = await link.target();\n    print(targetPath);\n  } catch (e) {\n    print(e.message);\n  }\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/http/adding_custom_headers.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the `headers` argument to the function used to make an HTTP request.\n/// The example below adds a 'User-Agent' header to a `get` request.\n\nimport 'dart:convert';\nimport 'package:http/http.dart' as http;\n\nmain() async {\n  var url = 'https://api.github.com/users/dart-lang/repos';\n  var response =\n      await http.get(url, headers: {'User-Agent': 'Dart/1.0 (My Dart client)'});\n\n  List<String> repos = JSON.decode(response.body);\n  var heading = 'Repository | Star count  | Fork count';\n  print(heading);\n  print(new List.filled(heading.length, '=').join());\n  for (var repo in repos) {\n    print(\"${repo['name']} | \"\n        \"${repo['stargazers_count']} | \"\n        \"${repo['forks_count']}\");\n  }\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/http/getting_redirection_history.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the `HttpClient` class in the 'dart:io' library to make a request, and\n/// use the Response `redirects` property to get a list of the redirects.\n\nimport \"dart:io\" show HttpClient, RedirectInfo;\n\nmain() async {\n  var client = new HttpClient();\n  var request = await client.getUrl(Uri.parse('http://google.com'));\n  var response = await request.close();\n  List<RedirectInfo> redirects = response.redirects;\n  redirects.forEach((redirect) {\n    print(redirect.location); // Prints 'http://www.google.com'.\n  });\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/http/getting_the_response_content_in_binary_format.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the `bodyBytes` field on the Response object to get the response\n/// in bytes.\n\nimport 'package:http/http.dart' as http;\nimport 'package:crypto/crypto.dart';\n\nmain() async {\n  var url = \"https://www.dartlang.org/logos/dart-logo.png\";\n  var response = await http.get(url);\n  List<int> bytes = response.bodyBytes;\n  // Do something with the bytes. For example, convert to base64.\n  String base64 = CryptoUtils.bytesToBase64(bytes);\n  print(base64);\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/http/getting_the_response_headers.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the `headers` field of the Response object to get a headers Map.\n/// The map keys are the header fields, and the map values are the values of\n/// those fields.\n\nimport 'package:http/http.dart' as http;\n\nmain() async {\n  var url = 'http://httpbin.org/';\n  var response = await http.get(url);\n\n  // Get the headers map.\n  print(response.headers.keys);\n\n  // Get header values.\n  print(\n      \"access-control-allow-origin' = ${response.headers['access-control-allow-origin']}\");\n  print(\"content-type = ${response.headers['content-type']}\");\n  print(\"date = ${response.headers['date']}\");\n  print(\"content-length = ${response.headers['content-length']}\");\n  print(\"connection = ${response.headers['connection']}\");\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/http/handling_an_httprequest_error.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// An HTTP request may return a response, or it may generate an error.\nimport 'package:http/http.dart' as http;\n\nhandleSuccess(http.Response response) {\n  print('something went right!');\n  print(response.body);\n}\n\nhandleFailure(error) {\n  print('Something went wrong.');\n  print(error.message);\n}\n\nmain() async {\n  try {\n    var response = await http.get(\"http://some_bogus_website.org\");\n    handleSuccess(response);\n  } catch (e) {\n    handleFailure(e);\n  }\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/http/making_a_get_request.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the http package `get()` function to make a GET request.\n\nimport 'package:http/http.dart' as http;\n\nmain() async {\n  var url = 'http://httpbin.org/';\n  var response = await http.get(url);\n  print(\"Response status: ${response.statusCode}\");\n  print(\"Response body: ${response.body}\");\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/http/making_a_post_request.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the http package `post()` function to make a POST request.\n\nimport 'package:http/http.dart' as http;\n\nmain() async {\n  var url = 'http://httpbin.org/post';\n  var response = await http.post(url, body: 'name=doodle&color=blue');\n  print(\"Response status: ${response.statusCode}\");\n  print(\"Response body: ${response.body}\");\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/http/making_multiple_requests_to_the_same_server.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the `Client` class in the http Pub package for making multiple requests\n/// to the same server. Using `Client` keeps keep a persistent connection open\n/// to the server and is better than making multiple single requests.\n\nimport 'package:http/http.dart' as http;\n\nprintResponseBody(response) {\n  print(response.body.length);\n  if (response.body.length > 100) {\n    print(response.body.substring(0, 100));\n  } else {\n    print(response.body);\n  }\n  print('...\\n');\n}\n\nmain() async {\n  var url = 'http://www.google.com/';\n  var client = new http.Client();\n  try {\n    var response = await client.get('$url/search');\n    printResponseBody(response);\n    response = await client.get('$url/doodles');\n    printResponseBody(response);\n  } finally {\n    client.close();\n  }\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/http/reading_the_response_body.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Read the response body using the `read()` function defined in the http Pub\n/// package.\n\nimport 'package:http/http.dart' as http;\n\nmain() async {\n  print(await http.read(\"http://www.google.com/\"));\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/http_server/implementing_a_Hello_World_http_server.dart",
    "content": "// Copyright (c) 2013-2014, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use `HttpServer.bind()` method to bind to a port.\n/// The await for listens for connections.\n/// Respond to an `HttpRequest` using the `response` property.\n\nimport 'dart:io';\n\nmain() async {\n  var server = await HttpServer.bind(InternetAddress.LOOPBACK_IP_V4, 8080);\n  print(\"Serving at ${server.address}:${server.port}\");\n  await for (HttpRequest request in server) {\n    request.response\n      ..headers.contentType = new ContentType(\"text\", \"plain\", charset: \"utf-8\")\n      ..write('Hello, world')\n      ..close();\n  }\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/http_server/routing_requests_based_on_url_patterns.dart",
    "content": "// Copyright (c) 2013-2014, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the `route` Pub package, and associate callbacks with URL patterns.\n\nimport 'dart:io';\nimport 'package:route/server.dart';\nimport 'package:route/url_pattern.dart';\n\n// Pattern for all posts (plural).\nfinal postsUrl = new UrlPattern(r'/posts\\/?');\n\n// Pattern for a single post('/post/24', for example).\nfinal postUrl = new UrlPattern(r'/post/(\\d+)\\/?');\n\n// Callback for all posts (plural).\nservePosts(req) {\n  req.response.write(\"All blog posts\");\n  req.response.close();\n}\n\n// Callback for a single post('/post/24', for example).\nservePost(req) {\n  var postId = postUrl.parse(req.uri.path)[0];\n  req.response.write('Blog post $postId');\n  req.response.close();\n}\n\n// Callback to handle illegal urls.\nserveNotFound(req) {\n  req.response.statusCode = HttpStatus.NOT_FOUND;\n  req.response.write('Not found');\n  req.response.close();\n}\n\nmain() async {\n  var server = await HttpServer.bind(InternetAddress.LOOPBACK_IP_V4, 8080);\n  var router = new Router(server)\n    // Associate callbacks with URLs.\n    ..serve(postsUrl, method: 'GET').listen(servePosts)\n    ..serve(postUrl, method: 'GET').listen(servePost)\n    ..defaultStream.listen(serveNotFound);\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/http_server/web/foo.html",
    "content": "<!DOCTYPE html>\n\n<html>\n  <body>   \n    <h2>This is foo.html</h2>\n  </body>\n</html>\n"
  },
  {
    "path": "dart_io_mini_samples/example/http_server/web/index.html",
    "content": "<!DOCTYPE html>\n\n<html>\n  <body>\n    <h2>This is index.html</h2>\n  </body>\n</html>\n"
  },
  {
    "path": "dart_io_mini_samples/example/interacting_with_processes/obtaining_the_exit_code_when_running_a_process.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use `Process.start()` to start a process to run an executable. This function\n/// returns a new process that you can use to interact with the original\n/// process. You can use this returned process to obtain the exit code from\n/// executing the original process.\n\nimport 'dart:io';\n\nmain() async {\n  var process = await Process.start('ls', ['-l']);\n  // Get the exit code from the new process.\n  var exitCode = await process.exitCode;\n  print('exit code: $exitCode');\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/interacting_with_processes/running_a_process.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use `Process.run()` to run a process. The results of the process are\n/// returned asynchronously using a ProcessResult object.\n\nimport 'dart:io';\n\nmain() async {\n  // List all files in the current directory in UNIX-like operating systems.\n  var results = await Process.run('ls', ['-l']);\n  print(results.stdout);\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/introduction.md",
    "content": "The following examples are all stand-alone apps, such as servers, that run\nfrom the command line. Most of the examples use the `dart:io` library, which is\nused solely for command-line applications running on a stand-alone Dart VM.\n<strong>The `dart:io` library does not work in browser-based\napplications</strong>.\nMany examples also use Pub packages.\n\n<aside class=\"alert alert-info\" markdown=\"1\">\n**Note:**\nMany server-side APIs provide both asynchronous and synchronous ways to\naccomplish a task. For example, to read a file as a string you can use either\nthe asynchronous `readAsString()` method from the File class, or its synchronous\ncounterpart, `readAsStringSync()`.\n<strong>The examples below use only the asynchronous versions.</strong>\n</aside>\n\nSee the\n[source on Github](https://github.com/dart-lang/dart-samples/tree/master/dart_io_mini_samples).\n\nAfter looking at the following code examples, refer to\n[Write Command-line Apps](/tutorials/dart-vm/cmdline)\nfor additional information about I/O and command-line apps.\n"
  },
  {
    "path": "dart_io_mini_samples/example/other_resources.md",
    "content": "Read the [dart:io library API docs]({{site.dart_api}}/dart-io/dart-io-library.html).\n\nHere are links to the commonly used classes and packages in these examples:\n\n* Using files, directories, and symlinks\n\n  * [FileSystemEntity class]({{site.dart_api}}/dart-io/FileSystemEntity-class.html)\n  * [File class]({{site.dart_api}}/dart-io/File-class.html)\n  * [Directory class]({{site.dart_api}}/dart-io/Directory-class.html)\n  * [Link class (for symlinks)]({{site.dart_api}}/dart-io/Link-class.html)\n\n* HTTP server\n\n  * [HttpServer class]({{site.dart_api}}/dart-io/HttpServer-class.html)\n  * [http_server Pub package](https://pub.dartlang.org/packages/http_server)\n\n* OS and hardware information\n\n  * [Platform class]({{site.dart_api}}/dart-io/Platform-class.html)\n\n* Interacting with processes\n\n  * [Process class]({{site.dart_api}}/dart-io/Process-class.html)\n\n* Working with paths\n\n  * [path Pub package](https://pub.dartlang.org/packages/path)\n"
  },
  {
    "path": "dart_io_mini_samples/example/paths/calculating_relative_paths.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the `relative()` function in the `path` Pub package to calculate\n/// relative paths.  This function calculates the relative path from the current\n/// directory by default. To calculate the relative path from another path,\n/// specify that path using the `from` argument.\n\nimport 'dart:io' show Directory;\nimport 'package:path/path.dart' as path;\n\nmain() {\n  // The path from the current directory to the system temp directory.\n  print(path.relative(Directory.systemTemp.path));\n\n  // You can work with relative paths.\n  var path1 = 'docs/book.html';\n  var path2 = 'articles/list';\n  print(path.relative(path1, from: path2)); // Prints '../../docs/book.html'.\n  print(path.relative(path2, from: path1)); // Prints '../../articles/list'.\n\n  // Or you can work with absolute paths.\n  var samples = 'http://www.dartlang.org/samples';\n  var docs = 'http://www.dartlang.org/docs';\n  print(path.relative(samples, from: docs)); // Prints '../samples'.\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/paths/converting_between_a_uri_and_a_path.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the `toUri()` and `fromUri()` functions in the `path` Pub package when\n/// converting between a URI and a path.\n\nimport 'package:path/path.dart' as path;\n\nmain() {\n  var uri = path.toUri('http://dartlang.org/samples');\n  print(path.fromUri(uri)); // Prints 'http:/dartlang.org/samples'.\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/paths/getting_information_about_a_file_path.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the `basename()`, `dirname()`, `basenameWithoutExtension()`, and\n/// `extension()` methods defined in the `path` Pub package when working with\n/// a file path.\n\nimport 'package:path/path.dart' as path;\n\nimport 'dart:io';\n\nmain() async {\n  // Create dir/ and dir/file.txt in the system temp directory.\n  var file = await new File('${Directory.systemTemp.path}/dir/myFile.txt')\n      .create(recursive: true);\n\n  print(path.basename(file.path)); // Prints 'file.txt'.\n  print(path.dirname(file.path)); // Prints path ending with 'dir'.\n  print(path.basenameWithoutExtension(file.path)); // Prints 'myFile'.\n  print(path.extension(file.path)); // Prints '.txt'.\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/paths/getting_the_path_separator_for_the_current_platform.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use `Platform.pathSeparator` to get the separator used by the operating\n/// system to separate components in file. Or, use the `separator` getter\n/// in the `path` Pub package.\n\nimport 'dart:io' show Platform;\nimport 'package:path/path.dart' as path;\n\nmain() {\n  // Prints  '\\' on Windows and '/' on other platforms.\n  print(Platform.pathSeparator);\n\n  // This does the same.\n  print(path.separator);\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/paths/joining_paths.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the path Pub package, and use `join()` to create a new path from\n/// existing paths. Using `join()` ensures that the current platform's directory\n/// separator is used in the path.\n\nimport 'package:path/path.dart' as path;\n\nmain() {\n  var newPath = path.join('/Users/shailen', 'dart/projects');\n  print(newPath); // Prints '/Users.shailen/dart/projects'.\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/paths/parsing_a_path_into_components.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use the `split()` function in the `path` Pub package to split a path into\n/// its components.\n\nimport 'package:path/path.dart' as path;\n\nmain() {\n  print(path.split('/Users/shailen')); // Prints ['/', 'Users', 'shailen'].\n\n  // Windows example.\n  print(path\n      .split(r'C:\\tempdir\\tmp.txt')); // Prints [r'C:\\', 'tempdir', 'tmp.txt'])\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/platform/getting_environment_variables.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use `Platform.environment` to get the environment for the current process.\n\nimport 'dart:io' show Platform;\n\nmain() {\n  Map<String, String> envVars = Platform.environment;\n  print(envVars['PATH']);\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/platform/getting_information_about_the_script_being_run.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use `Platform.script` to get the absolute URI of the script being run in\n/// the current isolate.\n\nimport 'dart:io' show Platform;\n\nmain() {\n  // Get the URI of the script being run.\n  var uri = Platform.script;\n  print(uri); // Prints something like '/Users/shailentuli/workspace/...'.\n\n  // Convert the URI to a path.\n  var path = uri.toFilePath();\n  print(\n      path); // Prints something like 'file:///Users/shailentuli/workspace/...'.\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/platform/identifying_the_operating_system.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use `Platform.operatingSystem` to get the operating system as a String.\n/// Or, use the `isMacOS`, `isAndroid`, `isLinux`, and `isWindows` static\n/// getters defined in `Platform`.\n\nimport 'dart:io' show Platform, stdout;\n\nmain() {\n  // Get the operating system as a string.\n  String os = Platform.operatingSystem;\n\n  // Or, use predicate getters for checking the operating system.\n  stdout.write(\"You are using \");\n  if (Platform.isMacOS) {\n    stdout.writeln('a Mac');\n  } else if (Platform.isAndroid) {\n    stdout.writeln('an Android device');\n  } else if (Platform.isIOS) {\n    stdout.writeln('an iOS device');\n  } else if (Platform.isLinux) {\n    stdout.writeln('Linux');\n  } else if (Platform.isWindows) {\n    stdout.writeln('Windows');\n  } else {\n    stdout.writeln('something other than MacOS, Android, Linux, or Windows');\n  }\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/sockets/using_serversockets_client.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Create a new socket connection using `Socket.connect()`. Send data over the\n/// socket using the Socket `write()` method.\n///\n\nimport 'dart:io';\n\nmain() async {\n  var socket = await Socket.connect('127.0.0.1', 4041);\n  print(socket.runtimeType);\n  socket.write('Hello, World!');\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/sockets/using_serversockets_server.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Use `ServerSocket.bind()` to bind to an address and a port.  Get the socket\n/// from the ServerSocket and listen to it for the data.\n\nimport 'dart:io';\nimport 'dart:convert';\n\nmain() async {\n  var serverSocket = await ServerSocket.bind('127.0.0.1', 4041);\n  print('connected');\n  await for (var socket in serverSocket)\n    socket.transform(UTF8.decoder).listen(print);\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/websockets/using_websockets_client.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Make a WebSocket connection using `WebSocket.connect()`, and send data\n/// over that connection using the WebSocket `add()` method.\n\nimport 'dart:io';\n\nmain() async {\n  var socket = await WebSocket.connect('ws://127.0.0.1:4040/ws');\n  socket.add('Hello, World!');\n}\n"
  },
  {
    "path": "dart_io_mini_samples/example/websockets/using_websockets_server.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/// Upgrade a regular HTTP request to a WebSocket request using\n/// `WebSocketTransformer.upgrade()`.\n\nimport 'dart:io';\n\nhandleMsg(msg) {\n  print('Message received: $msg');\n}\n\nmain() async {\n  try {\n    var server = await HttpServer.bind('127.0.0.1', 4040);\n    await for (HttpRequest req in server) {\n      if (req.uri.path == '/ws') {\n        // Upgrade an HttpRequest to a WebSocket connection.\n        var socket = await WebSocketTransformer.upgrade(req);\n        socket.listen(handleMsg);\n      }\n    }\n  } catch (e) {\n    print(e);\n  }\n}\n"
  },
  {
    "path": "dart_io_mini_samples/generate_md_for_dartlang.dart",
    "content": "//\n// Run \"dart generate_md_for_dartlang.dart > index.md\".\n// Copy that file to /dart-vm/dart-by-example in the www repo.\n// This file uses fodder from README.md and example/* to generate\n// the final page.\n//\nimport 'dart:io';\nimport 'package:path/path.dart' as PATH;\n\n// text.gsub /\\[([^\\]]+)\\]\\(([^)]+)\\)/, '<a href=\"\\2\">\\1</a>'\n\nprintExample(List<String> lines) {\n  var i = 0;\n  for (; i < lines.length; i++) {\n    var line = lines[i].trim();\n    // Get the first non-empty, non-comment line.\n    if (line.startsWith('//') || (line.isEmpty)) {\n      if (line.startsWith('/// ')) {\n        print(line.substring(3).trim());\n      }\n    } else {\n      break;\n    }\n  }\n  print('');\n  print('{% prettify dart %}');\n  print(lines.getRange(i, lines.length).join('\\n'));\n  print('{% endprettify %}');\n  print('');\n}\n\nconst fileHeader = '''\n---\nlayout: default\ntitle: \"Cookbook: Dart by Example\"\nshort-title: \"Cookbook\"\npermalink: /dart-vm/dart-by-example\ndescription: \"A cookbook, or set of examples, showing idiomatic Dart code.\"\n\nheader:\n  css: [\"index.css\"]\n---\n\n''';\n\nmain() {\n  print(fileHeader);\n\n  // RegExp to match a markdown link such as [Google](http://google.com)\n  var regExp = new RegExp(r'\\[([^\\]]+)\\]\\(([^)]+)\\)');\n  var readme = new File('README.md').readAsLinesSync();\n  for (var line in readme) {\n    line = line.trim();\n    if (line.startsWith(\"*\")) {\n      if (regExp.hasMatch(line)) {\n        var match = regExp.firstMatch(line);\n        print('');\n        var abspath = PATH.absolute(match.group(2));\n        var file = new File(abspath);\n\n        if (PATH.extension(abspath) != '.md') {\n          print('### ${match.group(1)}');\n          print('');\n          printExample(file.readAsLinesSync());\n        } else {\n          print(file.readAsStringSync());\n        }\n      }\n    } else {\n      // Print non-link lines from the README.\n      print(line);\n    }\n  }\n}\n"
  },
  {
    "path": "dart_io_mini_samples/pubspec.yaml",
    "content": "name: dart_by_example\ndescription: Examples that teach the use of Dart through short, directed code snippets.\ndependencies:\n  crypto: any\n  http: any\n  http_server: any\n  path: any\n  route: any\n"
  },
  {
    "path": "dart_io_mini_samples/runtests.sh",
    "content": "#!/bin/bash\n#\n#------------------------------------------------------------------------------\n\nfunction usage() {\n    cat <<'EOM'\n\nUsage: runtests.sh [-q|+h|-h]\n\n  -h print this usage message.\n  +h report all hints as problems; otherwise only unused imports are counted\n     as problems.\n  -q quiet mode (only emit output if the analyzer finds problems). Verbose by\n     default.\nEOM\n}\n\n#------------------------------------------------------------------------------\n\ndeclare -i problem_count\n\nEXIT_STATUS=0\nPASSING=0\nFAILURES=0\nVERBOSE=1;\nBASE_DIR=$(dirname $0)\n\nwhile [ $# -gt 0 ]; do\n    case $1 in\n\t-h) usage; exit 0;;\n\t+h) count_all_hints_as_problems=1;\n\t    shift;;\n\t-q) VERBOSE=;\n\t    shift;;\n\t-*) echo \"Invalid option: $1\";\n\t    usage;\n\t    exit 1;;\n    esac\ndone\n\n[[ -n \"$VERBOSE\" ]] && echo \"Running dartanalyzer on *.dart files in $BASE_DIR\"\n\nfor file in `find $BASE_DIR -name \"*.dart\"`\n  do\n    [[ -n \"$VERBOSE\" ]] && echo $file\n    results=$(dartanalyzer $file 2>&1)\n    problem_count=$(echo \"$results\" | grep -E \"^\\[(error|warning)\\]\" | wc -l)\n\n    if [[ -n \"$count_all_hints_as_problems\" ]]; then\n\tproblem_count+=$(echo \"$results\" | grep -E \"^\\[hint\\]\" | wc -l)\n    else\n\t# hints such as 'Unused import' should be treated as warnings.\n\tproblem_count+=$(echo \"$results\" | grep -E \"^\\[hint\\] Unused import\" | wc -l)\n    fi\n\n    if [ \"$problem_count\" -gt 0 ]; then\n\techo \"$results\"\n\tEXIT_STATUS=1\n\tlet FAILURES++\n    else\n\tlet PASSING++\t\n    fi;\n  done\n\nif [[ -n \"$VERBOSE\" || \"$FAILURES\" -gt 0 ]]; then\n    echo \"-------------------------------------------------------------------\"\n    echo \"$PASSING PASSED, $FAILURES FAILED \"\n    echo \"-------------------------------------------------------------------\"\nfi\nexit $EXIT_STATUS\n"
  },
  {
    "path": "deferred_loading_samples/README.md",
    "content": "dart-deferred-loading-examples\n==============================\n\nThis directory includes deferred loading examples for the Dart language.\n\n[deferred_loading_example](deferred_loading_example/README.md)\n: A tiny command-line example that loads a single deferred library on startup.\n \n[lazyloader](lazyloader/README.md)\n: A browser-based example that loads one of three libraries when the\n  user clicks the corresponding button.\n\nFor more information, see\n[Dart Deferred Loading](https://www.dartlang.org/docs/spec/deferred-loading.html).\n"
  },
  {
    "path": "deferred_loading_samples/deferred_loading_example/README.md",
    "content": "This project demonstrates the simplest example of deferred loading.\n\nThe lib/hello.dart file is loaded lazily, on startup.\nOnce loaded, the library prints a Hello World style greeting.\nYou can run this from the command line, using\n`pub run bin/main', for example.\n\nFor more information, see\n[Dart Deferred Loading](/docs/spec/deferred-loading.html).\n\n"
  },
  {
    "path": "deferred_loading_samples/deferred_loading_example/bin/main.dart",
    "content": "import 'package:deferred_loading_example/hello.dart' deferred as hello;\n\nmain() async {\n  await hello.loadLibrary();\n  hello.printGreeting();\n}\n"
  },
  {
    "path": "deferred_loading_samples/deferred_loading_example/lib/hello.dart",
    "content": "library deferred_loading_example.hello;\n\nprintGreeting() {\n  print('Hello World, from the deferred library!');\n}\n"
  },
  {
    "path": "deferred_loading_samples/deferred_loading_example/pubspec.yaml",
    "content": "name: deferred_loading_example\ndescription: A sample web application that loads a library lazily.\n"
  },
  {
    "path": "deferred_loading_samples/lazyloader/README.md",
    "content": "This project demonstrates a very simple example of deferred loading.\n\nThe breakfast.dart, lunch.dart, and dinner.dart libraries (in /lib)\nare loaded lazily, when the user clicks the **Breakfast menu**,\n**Lunch menu**, or **Dinner menu** buttons in the browser, respectively.\n\nFor more information, see the language tour's\n[deferred loading section](https://www.dartlang.org/guides/language/language-tour#lazily-loading-a-library).\n"
  },
  {
    "path": "deferred_loading_samples/lazyloader/lib/breakfast.dart",
    "content": "library lazyloader.breakfast;\n\nconst String menu = \"Scrambled eggs, toast, berries, and coffee.\";\n"
  },
  {
    "path": "deferred_loading_samples/lazyloader/lib/dinner.dart",
    "content": "library lazyloader.dinner;\n\nconst String menu = \"Lasagna, green salad, garlic bread, and red wine.\";\n"
  },
  {
    "path": "deferred_loading_samples/lazyloader/lib/lunch.dart",
    "content": "library lazyloader.lunch;\n\nconst String menu = \"Grilled cheese sandwich, tomato soup, and juice.\";\n"
  },
  {
    "path": "deferred_loading_samples/lazyloader/pubspec.yaml",
    "content": "name: lazyloader\ndescription: A sample web application\ndependencies:\n  browser: any\n"
  },
  {
    "path": "deferred_loading_samples/lazyloader/web/index.html",
    "content": "<!DOCTYPE html>\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n    <title>Choose a Meal!</title>\n    \n    <script async type=\"application/dart\" src=\"main.dart\"></script>\n    <script async src=\"packages/browser/dart.js\"></script>\n    \n    <link rel=\"stylesheet\" href=\"styles.css\">\n  </head>\n  <body>\n    <h1>Choose a Meal!</h1>\n    \n    <button id=\"show-breakfast\">Breakfast menu</button>\n    <button id=\"show-lunch\">Lunch menu</button>\n    <button id=\"show-dinner\">Dinner menu</button>\n\n    <p id=\"text_id\"> </p>\n    \n  </body>\n</html>\n"
  },
  {
    "path": "deferred_loading_samples/lazyloader/web/main.dart",
    "content": "import 'dart:html';\n\nimport \"package:lazyloader/breakfast.dart\" deferred as breakfast;\nimport \"package:lazyloader/lunch.dart\" deferred as lunch;\nimport \"package:lazyloader/dinner.dart\" deferred as dinner;\n\nmain() {\n  querySelector('#show-breakfast').onClick.listen((_) async {\n    await breakfast.loadLibrary();\n    onBreakfastLoaded();\n  });\n  querySelector('#show-lunch').onClick.listen((_) async {\n    await lunch.loadLibrary();\n    onLunchLoaded();\n  });\n  querySelector('#show-dinner').onClick.listen((_) async {\n    await dinner.loadLibrary();\n    onDinnerLoaded();\n  });\n}\n\nonBreakfastLoaded() {\n  print('breakfast loaded');\n  changeMenu(breakfast.menu);\n}\n\nonLunchLoaded() {\n  print('lunch loaded');\n  changeMenu(lunch.menu);\n}\n\nonDinnerLoaded() {\n  print('dinner loaded');\n  changeMenu(dinner.menu);\n}\n\nchangeMenu(String menu) {\n  var el = querySelector(\"#text_id\");\n  el.text = menu;\n}\n"
  },
  {
    "path": "deferred_loading_samples/lazyloader/web/styles.css",
    "content": "body {\n  background-color: #F8F8F8;\n  font-family: 'Open Sans', sans-serif;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1.2em;\n  margin: 15px;\n}\n\nh1, p {\n  color: #333;\n}\n\n#sample_text_id {\n  font-size: 24pt;\n  text-align: center;\n  margin-top: 140px;\n  -webkit-user-select: none;\n  user-select: none;\n}\n"
  },
  {
    "path": "html5/AUTHORS",
    "content": "Shannon -jj Behrens\nMatthew Butler\nJason Brooks\nRichard Griffith\nSeth Ladd\nAndrei Mouravski\nJohn McCutchan\nAdam Singer\nShailen Tuli\n"
  },
  {
    "path": "html5/README.md",
    "content": "## Dart HTML5 Samples\n\nMost of them were ported from [HTML5 Rocks](http://www.html5rocks.com/).\n\nSo far, the samples cover HTML5 topics. We want to expand the scope of the\nsamples to cover other topics as well.\n\n* [Using Application Cache](web/appcache/beginner)\n* [High DPI Canvas](web/canvas/hidpi)\n* [Using Image Filters with Canvas](web/canvas/imagefilters)\n* [Basic Drag and Drop](web/dnd/basics)\n* [Using the File APIs](web/file/dndfiles)\n* [Exploring the FileSystem APIs](web/file/filesystem)\n* [A Terminal Emulator that uses the FileSystem APIs](web/file/terminal)\n* [Trip Meter: A Basic Geolocation Example](web/geolocation/trip_meter)\n* [Simple Todo App using IndexedDB](web/indexeddb/todo)\n* [LocalStorage 101](web/localstorage/basics)\n* [Pointer Lock And First Person Shooter Controls](web/pointerlock/fps)\n* [Working with RequestAnimationFrame](web/speed/animations)\n* [HTML5 Video](web/video/basics)\n* [Getting Started with the Web Audio API](web/webaudio/intro)\n* [3D Solar System Simulation](web/webgl/solar3d)\n* [WebSockets 101](web/websockets/basics)\n"
  },
  {
    "path": "html5/pubspec.yaml",
    "content": "name: dart_samples\nversion: 0.0.1-dev\ndescription: Samples for Dart\nhomepage: https://github.com/dart-lang/dart-samples\nenvironment:\n  sdk: '>=0.6.17'\ndependencies:\n  browser: any\n  vector_math: any\n  hop: any\n  path: any\n  html5lib: any\n"
  },
  {
    "path": "html5/tool/hop_runner.dart",
    "content": "library hop_runner;\n\nimport 'dart:io';\nimport 'package:path/path.dart' as path;\nimport 'package:hop/hop.dart';\nimport 'package:hop/hop_tasks.dart';\n\nimport 'package:html5lib/parser.dart' show parse;\n\nIterable<String> getHtmlPaths() {\n  return new Directory('web').listSync(recursive: true, followLinks: false)\n      .map((File file) => file.path)\n      .where((_path) => path.extension(_path) == \".html\");\n}\n\nList<String> getDartPaths(htmlPaths) {\n  List<String> paths = [];\n  for (var htmlPath in htmlPaths) {\n    var file = new File(htmlPath).readAsStringSync();\n    var contents = parse(file);\n    var scripts = contents.body.querySelectorAll(\"script\");\n    if (!scripts.isEmpty) {\n      for(var script in scripts) {\n        if (script.attributes['type'] == 'application/dart') {\n          // Links to .dart files may not always be in the same directory as\n          // the .html file. The following line computes the correct path of\n          // the .dart file.\n          // So, given a web/app/index.html file that contains a\n          // <script type='application/dart' src=../../foo.dart'> tag, the .dart\n          // file is correctly identified as web/foo.dart.\n          paths.add(path.normalize(path.join(\n              path.dirname(htmlPath), script.attributes['src'])));\n        }\n      }\n    }\n  }\n  return paths;\n}\n\nvoid main(List<String> args) {\n  var paths = getDartPaths(getHtmlPaths());\n  print(paths);\n  addTask('analyze_libs', createAnalyzerTask(paths));\n  runHop(args);\n}\n"
  },
  {
    "path": "html5/web/appcache/beginner/README.md",
    "content": "## Using Application Cache\n\nA simple example to show the use of the Application Cache interface.\n\nFor a thorough exploration of this topic, read\n[A Beginner's Guide to Using the Application\nCache](http://www.html5rocks.com/en/tutorials/appcache/beginner/),\nan article by Eric Bidelman originally published on HTML5Rocks.\n\nApplication Cache allows you to specify which files the browser should cache\nand make available to offline users. Your app will\nload and work correctly, even if the user presses the refresh button while\noffline.\n\nTo see this example in action, make changes to `index.html` and then reload\nthe app. Your changes don't show up because the browser displays a cached\nversion of `index.html`. Next, change the date or version number in\nappcache.mf, and reload once more. You'll be prompted to load the new version.\n\nPlease report any [bugs or feature requests](http://dartbug.com/new).\n"
  },
  {
    "path": "html5/web/appcache/beginner/appcache.css",
    "content": "/*\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the LICENSE file.\n*/\n\nbody {\n  background: #f7f7f7;\n  color: #333;\n}\n\nh1, p {\n  font-family: 'Open Sans', Arial;\n}\n\nh1 {\n  margin-bottom: 40px;\n}\n\ncode {\n  color: #b33;\n  font-weight: bold;\n}\n\n#content {\n  background: #fff;\n  border: 1px solid #e1e1e1;\n  -webkit-border-radius: 8px;\n  -moz-border-radius: 8px;\n  border-radius: 8px;\n  -webkit-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);\n  -moz-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);\n  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);\n  margin: 40px auto;\n  padding: 40px;\n  width: 880px;\n}\n"
  },
  {
    "path": "html5/web/appcache/beginner/appcache.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n// This is a port of \"A Beginner's Guide to Using the Application Cache\" to\n// Dart. See: http://www.html5rocks.com/en/tutorials/appcache/beginner\n\nimport 'dart:html';\n\nclass AppCache {\n  ApplicationCache appCache;\n\n  AppCache(this.appCache) {\n    // Set up handlers to log all of the cache events or errors.\n    appCache.onCached.listen(onCacheEvent);\n    appCache.onChecking.listen(onCacheEvent);\n    appCache.onDownloading.listen(onCacheEvent);\n    appCache.onError.listen(onCacheError);\n    appCache.onNoUpdate.listen(onCacheEvent);\n    appCache.onObsolete.listen(onCacheEvent);\n    appCache.onProgress.listen(onCacheEvent);\n\n    // Set up a more interesting handler to swap in the new app when ready.\n    appCache.onUpdateReady.listen((e) => updateReady());\n  }\n\n  void updateReady() {\n    if (appCache.status == ApplicationCache.UPDATEREADY) {\n      // The browser downloaded a new app cache. Alert the user and swap it in\n      // to get the new hotness.\n      appCache.swapCache();\n\n      // TODO(jason9t): window.location.reload() is blocked by this bug:\n      // https://code.google.com/p/dart/issues/detail?id=5551\n      // So for now we'll just advise the user to refresh manually.\n      // if (window.confirm('A new version of this site is available. Reload?')) {\n      //   window.location.reload();\n      // }\n      window.alert('A new version of this site is available. Please reload.');\n    }\n  }\n\n  void onCacheEvent(Event e) {\n    print('Cache event: ${e}');\n  }\n\n  void onCacheError(Event e) {\n    // For the sake of this sample alert the reader that an error has occurred.\n    // Of course we would *never* do it this way in real life.\n    window.alert(\"Oh no! A cache error occurred: ${e}\");\n    print('Cache error: ${e}');\n  }\n}\n\nvoid main() {\n  new AppCache(window.applicationCache);\n}\n"
  },
  {
    "path": "html5/web/appcache/beginner/appcache.mf",
    "content": "CACHE MANIFEST\n# Adding a version number and/or timestamp here is a good strategy. Changing\n# the manifest file, even a comment line, will force the browser to refresh its\n# cached resources.\n# 2012-09-28:v2\n\n# Explicitly cached entries. This should be enough to run the sample.\nCACHE:\nindex.html\nappcache.css\nappcache.dart\nhttp://dart.googlecode.com/svn/branches/bleeding_edge/dart/client/dart.js\n\n# All other resources (e.g. sites) require the user to be online.\nNETWORK:\n*\n\n# offline.html will be displayed if the user is offline.\nFALLBACK:\n/ offline.html\n"
  },
  {
    "path": "html5/web/appcache/beginner/index.html",
    "content": "<!DOCTYPE html>\n\n<!--\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the LICENSE file.\n-->\n\n<html manifest=\"appcache.mf\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Appcache for Beginners</title>\n    <link rel=\"stylesheet\" href=\"appcache.css\">\n  </head>\n  <body>\n    <div id=\"content\">\n      <h1>This is my killer, cacheable application!</h1>\n      <p>\n        To see this example in action, make changes to <code>index.html</code>\n        and then reload this page. You'll notice that your changes don't show up\n        because we're showing the cached version instead. Next make a change\n        such as incrementing the date or version number in\n        <code>appcache.mf</code>. Now when you reload this page, you'll be\n        prompted to load the new version.\n      </p>\n    </div>\n    <script type=\"application/dart\" src=\"appcache.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/appcache/beginner/offline.html",
    "content": "<!DOCTYPE html>\n\n<!--\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the LICENSE file.\n-->\n\n<html manifest=\"appcache.mf\">\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Appcache for Beginners : Offline</title>\n    <link rel=\"stylesheet\" href=\"appcache.css\">\n  </head>\n  <body>\n    <div id=\"content\">\n      <h1>This application is offline.</h1>\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/canvas/hidpi/hidpi.css",
    "content": "/*\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the COPYING file.\n*/\n\nhtml, body {\n  font-family: Helvetica, sans-serif;\n}\n\nh1 {\n  margin: 2em 0 0.5em 0;\n  font-size: 16px;\n}\n\n/* \n  Do the typical thing of setting the image to be a proportion of its\n  natural dimensions.\n */\n#pic {\n  width: 300px;\n  height: 90px;\n}\n\n#canvas {\n  border: 1px solid #CCC;\n}"
  },
  {
    "path": "html5/web/canvas/hidpi/hidpi.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the COPYING file.\n\n// This is a port of \"High DPI Canvas\" to Dart.\n// See: http://www.html5rocks.com/en/tutorials/canvas/hidpi/\n\nimport 'dart:html';\n\nvoid drawImage(CanvasElement canvas, ImageElement image,\n               {bool auto: true,\n                srcX: 0,    srcY: 0,    srcW: null, srcH: null,\n                desX: null, desY: null, desW: null, desH: null}) {\n\n  if (srcW == null) srcW = image.naturalWidth;\n  if (srcH == null) srcH = image.naturalHeight;\n  if (desX == null) desX = srcX;\n  if (desY == null) desY = srcY;\n  if (desW == null) desW = srcW;\n  if (desH == null) desH = srcH;\n\n  CanvasRenderingContext2D context = canvas.getContext(\"2d\");\n\n  num devicePixelRatio = window.devicePixelRatio;\n  num backingStoreRatio = context.backingStorePixelRatio;\n  num ratio = devicePixelRatio / backingStoreRatio;\n\n  if (auto && devicePixelRatio != backingStoreRatio) {\n    num oldWidth = canvas.width;\n    num oldHeight = canvas.height;\n\n    canvas.width = (oldWidth * ratio).round();\n    canvas.height = (oldHeight * ratio).round();\n\n    canvas.style.width = \"${oldWidth}px\";\n    canvas.style.height = \"${oldHeight}px\";\n\n    context.scale(ratio, ratio);\n  }\n\n  context.drawImageScaledFromSource(image as CanvasImageSource, srcX, srcY, srcW, srcH, desX, desY, desW, desH);\n}\n\nvoid main() {\n  CanvasElement canvas = querySelector(\"#canvas\");\n  ImageElement pic = querySelector(\"#pic\");\n  drawImage(canvas, pic, desX: 10, desY: 10, desW: 300, desH: 90);\n}\n"
  },
  {
    "path": "html5/web/canvas/hidpi/hidpi.html",
    "content": "<!DOCTYPE html>\n\n<!--\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the COPYING file.\n-->\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Canvas Test</title>\n    <link href=\"hidpi.css\" rel=\"stylesheet\">\n  </head>\n  <body>\n    <h1>Original Image:</h1>    \n    <img id=\"pic\" src=\"images/html5rocks.png\" />\n\n    <h1>Canvas Version:</h1>\n    <canvas id=\"canvas\" width=\"500\" height=\"150\"></canvas>\n\n    <script type=\"application/dart\" src=\"hidpi.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script> \n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/canvas/imagefilters/README.md",
    "content": "## Using Image Filters with Canvas\n\nA port of the examples used in the\n[Image Filters with Canvas](http://www.html5rocks.com/en/tutorials/canvas/imagefilters/)\narticle by Ilmari Heikkinen, originally published on HTML5Rocks.\n\n\nThe article describes how to use image filters with an HTML5 Canvas element.\nIt explains how to process pixels, run simple filters, and blur,\nsharpen and emboss an image using convolution filters.\n\nPlease report any [bugs or feature requests](http://dartbug.com/new).\n"
  },
  {
    "path": "html5/web/canvas/imagefilters/imagefilters.css",
    "content": "/*\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the COPYING file.\n*/\n\nbody {\n  background-color: #F8F8F8;\n  font-family: 'Open Sans', sans-serif;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1.2em;\n  margin: 15px;\n}\n\np {\n  color: #333;\n}\n\nfigure {\n  width: 700px;\n  margin: 50px auto;\n  padding-left: 50px;\n}\n\n#container {\n  width: 100%;\n  border: 1px solid #ccc;\n  background-color: #fff;\n}\n\n.show {\n  display: inline;\n}\n\n.hide {\n  display: none;\n}\n"
  },
  {
    "path": "html5/web/canvas/imagefilters/imagefilters.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the COPYING file.\n\n// This is a port of \"Image Filters with Canvas\" to Dart.\n// See: http://www.html5rocks.com/en/tutorials/canvas/imagefilters/\n\n\nimport 'dart:html';\nimport 'dart:math';\nimport 'dart:typed_data';\n\nclass Filters {\n  ImageData pixels;\n\n  Filters(ImageElement img) {\n    pixels = getPixels(img);\n  }\n\n  // Get image pixels from image element.\n  ImageData getPixels(ImageElement img) {\n    var canvas = new CanvasElement(width: img.width, height: img.height);\n    CanvasRenderingContext2D context = canvas.getContext('2d');\n    context.drawImage(img, 0, 0);\n    return context.getImageData(0, 0, canvas.width, canvas.height);\n  }\n\n  // Create a temporary canvas to apply the filter to.\n  ImageData createTempCanvas(int width, int height) {\n    var tempCanvas = new CanvasElement(width: width, height: height);\n    CanvasRenderingContext2D tempContext = tempCanvas.getContext('2d');\n    return tempContext.createImageData(width, height);\n  }\n\n  // Apply grayscale filter.\n  ImageData grayscale() {\n    var d = pixels.data;\n    for (var i = 0; i < d.length; i += 4) {\n      var r = d[i];\n      var g = d[i+1];\n      var b = d[i+2];\n      // CIE luminance for the RGB\n      var v = (0.2126 * r).toInt() + (0.7152 * g).toInt() + (0.0722 * b).toInt();\n      d[i] = d[i + 1] = d[i + 2] = v;\n    }\n    return pixels;\n  }\n\n  // Apply brightness filter.\n  ImageData brightness(int brightAdj) {\n    var d = pixels.data;\n    for (var i=0; i<d.length; i+=4) {\n      d[i] += brightAdj;\n      d[i + 1] += brightAdj;\n      d[i + 2] += brightAdj;\n    }\n    return pixels;\n  }\n\n  // Apply threshold filter.\n  ImageData threshold(int thresholdVal) {\n    var d = pixels.data;\n    for (var i = 0; i < d.length; i += 4) {\n      var r = d[i];\n      var g = d[i + 1];\n      var b = d[i + 2];\n      var v = (0.2126 * r + 0.7152 * g + 0.0722 * b >= thresholdVal) ? 255 : 0;\n      d[i] = d[i + 1] = d[i + 2] = v;\n    }\n    return pixels;\n  }\n\n  // Apply convolution filter.\n  ImageData convolve(List weights, [bool opaque = false]) {\n    var alphaFac = opaque ? 1 : 0;\n    var side = (sqrt(weights.length).toInt());\n    var halfSide = side ~/ 2;\n\n    var d = pixels.data;\n    var width = pixels.width;\n    var height = pixels.height;\n\n    var output = createTempCanvas(width, height);\n    var dest = output.data;\n\n    //Loop over the image.\n    for (var y = 0; y < height; y++) {\n      for (var x = 0; x < width; x++) {\n        var r = 0.0, g = 0.0, b = 0.0, a = 0.0;\n        var destOff = (y * width + x) * 4;\n        //Now loop over the filter mask.\n        for (var fy = 0; fy < side; fy++) {\n          for (var fx = 0; fx < side; fx++) {\n            var srcy = min(height - 1, max(0, y + fy - halfSide));\n            var srcx = min(width - 1, max(0, x + fx - halfSide));\n            var srcOff = (srcy * width + srcx) * 4;\n            var weight = weights[(fy * side + fx)];\n            r += d[srcOff] * weight;\n            g += d[srcOff + 1] * weight;\n            b += d[srcOff + 2] * weight;\n            a += d[srcOff + 3] * weight;\n          }\n        }\n        dest[destOff] = r.toInt();\n        dest[destOff + 1] = g.toInt();\n        dest[destOff + 2] = b.toInt();\n        dest[destOff + 3] = (a + alphaFac * (255 - a)).toInt();\n      }\n    }\n    return output;\n  }\n\n  // Apply Sobel filter.\n  ImageData sobel(List hWeights, List vWeights) {\n    var grayPixels = grayscale();\n    var vpixels = convolveFloat32(grayPixels, vWeights);\n    var hpixels = convolveFloat32(grayPixels, hWeights);\n\n    var id = createTempCanvas(vpixels.width, vpixels.height);\n\n    for (var i = 0; i < id.data.length; i += 4) {\n      var v = vpixels.data[i].abs();\n      id.data[i] = v.toInt();\n      var h = hpixels.data[i].abs();\n      id.data[i + 1] = h.toInt();\n      id.data[i + 2] = ((v + h) / 4).toInt();\n      id.data[i + 3] = 255;\n    }\n    return id;\n  }\n\n  // Apply convolution filter and return data as a double array.\n  ImageDataFloat32 convolveFloat32(ImageData pixels, List weights, {bool opaque: false}) {\n    var alphaFac = opaque ? 1 : 0;\n    var side = (sqrt(weights.length).toInt());\n    var halfSide = side ~/ 2;\n\n    var d = pixels.data;\n    var width = pixels.width;\n    var height = pixels.height;\n\n    //Create data structure to store the filtered data of type double.\n    var output =\n        new ImageDataFloat32(new Float32List(width * height * 4), width, height);\n    var dest = output.data;\n\n    //Loop over the image.\n    for (var y = 0; y < height; y++) {\n      for (var x = 0; x < width; x++) {\n        var r = 0.0, g = 0.0, b = 0.0, a = 0.0;\n        var destOff = (y * width + x) * 4;\n        //Now loop over the filter mask.\n        for (var fy = 0; fy < side; fy++) {\n          for (var fx = 0; fx < side; fx++) {\n            var srcy = min(height - 1, max(0, y + fy - halfSide));\n            var srcx = min(width - 1, max(0, x + fx - halfSide));\n            var srcOff = (srcy * width + srcx) * 4;\n            var weight = weights[(fy * side + fx)];\n            r += d[srcOff] * weight;\n            g += d[srcOff + 1] * weight;\n            b += d[srcOff + 2] * weight;\n            a += d[srcOff + 3] * weight;\n          }\n        }\n        dest[destOff] = r;\n        dest[destOff + 1] = g;\n        dest[destOff + 2] = b;\n        dest[destOff + 3] = (a + alphaFac * (255 - a));\n      }\n    }\n    return output;\n  }\n}\n\n// Create a class to hold image data in a 32 bit float array.\nclass ImageDataFloat32 {\n  final Float32List data;\n  final width, height;\n\n  ImageDataFloat32(this.data, this.width, this.height);\n}\n\nvoid main() {\n\n  final brightAdj = 40;\n  final thresholdVal = 128;\n  final sharpenMask = [0, -1, 0,\n                       -1, 5, -1,\n                       0, -1, 0];\n  final blurMask = [1/9, 1/9, 1/9,\n                    1/9, 1/9, 1/9,\n                    1/9, 1/9, 1/9];\n  final hSobelMask = [-1, 0, 1,\n                      -2, 0, 2,\n                      -1, 0, 1];\n  final vSobelMask = [-1,-2,-1,\n                      0, 0, 0,\n                      1, 2, 1];\n\n  var img = querySelector('.orig');\n  window.onLoad.listen((e) => populateImages(img));\n\n  // Click listener for grayscale.\n  querySelector('[name = \"grayscale\"]').onClick.listen(\n      (e) => toggleFilter('grayscale',\n          () => new Filters(img).grayscale()));\n  // Click listener for brightness.\n  querySelector('[name = \"brightness\"]').onClick.listen(\n      (e) => toggleFilter('brightness',\n          () => new Filters(img).brightness(brightAdj)));\n  // Click listener for threshold.\n  querySelector('[name = \"threshold\"]').onClick.listen(\n      (e) => toggleFilter('threshold',\n          () => new Filters(img).threshold(thresholdVal)));\n  // Click listener for sharpen.\n  querySelector('[name = \"sharpen\"]').onClick.listen(\n      (e) => toggleFilter('sharpen',\n          () => new Filters(img).convolve(sharpenMask)));\n  // Click listener for blur.\n  querySelector('[name = \"blur\"]').onClick.listen(\n      (e) => toggleFilter('blur',\n          () => new Filters(img).convolve(blurMask)));\n  // Click listener for sobel.\n  querySelector('[name = \"sobel\"]').onClick.listen(\n      (e) => toggleFilter('sobel',\n          () => new Filters(img).sobel(hSobelMask, vSobelMask)));\n  // Click listener for custom.\n  querySelector('[name = \"custom\"]').onClick.listen(\n      (e) => toggleFilter('custom', () {\n        var matrix = querySelector('#customMatrix').querySelectorAll('input');\n        var mask = new List();\n        for (var i = 0; i < matrix.length; i++) {\n          mask.add(double.parse(matrix[i].value));\n        }\n        return new Filters(img).convolve(mask, true);\n      }));\n}\n\n// Add copies of the original image to each canvas element.\nvoid populateImages(ImageElement img) {\n  var canvases = querySelectorAll('canvas');\n  for(var i = 0; i < canvases.length; i++) {\n    var canvas = canvases[i];\n    canvas.parent.insertBefore(img.clone(true), canvas);\n    canvas.classes.add('hide');\n  }\n}\n\n// Put the filtered image back to its original (unfiltered) condition.\nvoid restoreContent(String id) {\n  var canvas = querySelector('#$id');\n  canvas.classes.remove('show');\n  canvas.classes.add('hide');\n  canvas.previousElementSibling.classes.remove('hide');\n  canvas.previousElementSibling.classes.add('show');\n  canvas.parent.querySelector('button').text = 'apply $id filter';\n}\n\n// Show the filtered image.\nvoid filterImage(String id, ImageData pixels) {\n  CanvasElement canvas = querySelector('#$id');\n  canvas.width = pixels.width;\n  canvas.height = pixels.height;\n  canvas.getContext('2d') as CanvasRenderingContext2D\n      ..putImageData(pixels, 0, 0);\n  canvas.previousElementSibling.classes.remove('show');\n  canvas.previousElementSibling.classes.add('hide');\n  canvas.classes.remove('hide');\n  canvas.classes.add('show');\n  canvas.parent.querySelector('button').text = 'remove $id filter';\n}\n\n// Handle applying the filter to the image.\ntypedef ImageData ApplyFilter();\nvoid toggleFilter(String id, ApplyFilter filter) {\n  if (querySelector('#$id').previousElementSibling.classes.contains('hide')) {\n    restoreContent(id);\n  } else {\n    filterImage(id, filter());\n  }\n}\n"
  },
  {
    "path": "html5/web/canvas/imagefilters/index.html",
    "content": "<!DOCTYPE html>\n\n<!--\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the COPYING file.\n-->\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Image Filters in Dart</title>\n    <link rel=\"stylesheet\" href=\"imagefilters.css\">\n  </head>\n  <body>\n    <h1>Image Filters in Dart</h1>\n    \n    <p>Image Filters with Canvas</p>\n    \n    <div id=\"container\">\n      <figure>\n        <img class=\"orig\" src=\"images/demo_small.png\" width=\"600\" height=\"337\">\n        <figcaption>The original test image</figcaption>\n      </figure>\n      \n      <figure>\n        <canvas id=\"grayscale\" width=\"600\" height=\"337\"></canvas>\n        <button name=\"grayscale\">apply grayscale filter</button>\n      </figure>\n      \n      <figure>\n        <canvas id=\"brightness\" width=\"600\" height=\"337\"></canvas>\n        <button name=\"brightness\">apply brighten filter</button>\n      </figure>\n      \n      <figure>\n        <canvas id=\"threshold\" width=\"600\" height=\"337\"></canvas>\n        <button name=\"threshold\">apply threshold filter</button>\n      </figure>\n      \n      <figure>\n        <canvas id=\"sharpen\" width=\"600\" height=\"337\"></canvas>\n        <button name=\"sharpen\">apply sharpen filter</button>\n      </figure>\n      \n      <figure>\n        <canvas id=\"blur\" width=\"600\" height=\"337\"></canvas>\n        <button name=\"blur\">apply blur filter</button>\n      </figure>\n      \n      <figure>\n        <canvas id=\"sobel\" width=\"600\" height=\"337\"></canvas>\n        <button name=\"sobel\">apply sobel filter</button>\n      </figure>\n      \n      <figure>\n        <canvas id=\"custom\" width=\"600\" height=\"337\"></canvas>\n        <div id=\"customMatrix\">\n          <input type=\"text\" value=\"1\" size=\"3\">\n          <input type=\"text\" value=\"1\" size=\"3\">\n          <input type=\"text\" value=\"1\" size=\"3\">\n          <br>\n          <input type=\"text\" value=\"1\" size=\"3\">\n          <input type=\"text\" value=\"0.7\" size=\"3\">\n          <input type=\"text\" value=\"-1\" size=\"3\">\n          <br>\n          <input type=\"text\" value=\"-1\" size=\"3\">\n          <input type=\"text\" value=\"-1\" size=\"3\">\n          <input type=\"text\" value=\"-1\" size=\"3\">\n          <br>\n        </div>\n        <button name=\"custom\">apply custom filter</button>\n      </figure>  \n      \n    </div>\n\n    <script type=\"application/dart\" src=\"imagefilters.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/dnd/basics/README.md",
    "content": "## Basic Drag and Drop\n\nA port of the Drag and Drop example used in the\n[Native HTML5 Drag and Drop](http://www.html5rocks.com/en/tutorials/dnd/basics/)\narticle by Eric Bidelman, originally published on HTML5Rocks.\n\nHTML5 Drag and drop (DnD) is event-based way of making an element draggable\non a page. Native browser support for this feature means faster, more responsive\nweb apps.\n\nPlease report any [bugs or feature requests](http://dartbug.com/new).\n"
  },
  {
    "path": "html5/web/dnd/basics/basics.css",
    "content": "/*\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the COPYING file.\n*/\n\nbody {\n  background-color: #F8F8F8;\n  font-family: 'Open Sans', sans-serif;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1.2em;\n  margin: 15px;\n}\n\n/* Prevent the text contents of draggable elements from being selectable. */\n[draggable] {\n  -moz-user-select: none;\n  -khtml-user-select: none;\n  -webkit-user-select: none;\n  user-select: none;\n}\n\n.column {\n  background-color: #ccc;\n  -webkit-border-radius: 10px;\n  -moz-border-radius: 10px;\n  -ms-border-radius: 10px;\n  border: 2px solid #666;\n  border-radius: 10px;\n  -webkit-box-shadow: inset 0 0 3px #000;\n  -ms-box-shadow: inset 0 0 3px #000;\n  box-shadow: inset 0 0 3px #000;\n  cursor: move;\n  height: 150px;\n  float: left;\n  margin-right: 5px;\n  text-align: center;\n  -webkit-transition: -webkit-transform 0.2s ease-out;\n  -moz-transition: -moz-transform 0.2s ease-out;\n  -ms-transition: -moz-transform 0.2s ease-out;\n  transition: transform 0.2s ease-out;\n  width: 150px;\n}\n\n.column header {\n  background: -moz-linear-gradient(left center,\n      rgb(0, 0, 0), rgb(79, 79, 79), rgb(21, 21, 21));\n  background: -webkit-linear-gradient(linear, left top, right top,\n      color-stop(0, rgb(0, 0, 0)),\n      color-stop(0.5, rgb(79, 79, 79)),\n      color-stop(1, rgb(21, 21, 21)));\n  background: -webkit-linear-gradient(left center,\n      rgb(0, 0, 0), rgb(79, 79, 79), rgb(21, 21, 21));\n  background: -ms-linear-gradient(left center,\n      rgb(0, 0, 0), rgb(79, 79, 79), rgb(21, 21, 21));\n  border-bottom: 1px solid #ddd;\n  -webkit-border-top-left-radius: 10px;\n  -moz-border-radius-topleft: 10px;\n  -ms-border-radius-topleft: 10px;\n  border-top-left-radius: 10px;\n  -webkit-border-top-right-radius: 10px;\n  -moz-border-radius-topright: 10px;\n  -ms-border-radius-topright: 10px;\n  border-top-right-radius: 10px;\n  box-shadow: 5px;\n  color: #fff;\n  padding: 5px;\n  text-shadow: #000 0 1px;\n}\n\n.column.over {\n  border: 2px dashed #000;\n}\n\n.column.moving {\n  opacity: 0.25;\n  -webkit-transform: scale(0.8);\n  -moz-transform: scale(0.8);\n  -ms-transform: scale(0.8);\n  transform: scale(0.8);\n}\n"
  },
  {
    "path": "html5/web/dnd/basics/basics.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the COPYING file.\n\n// This is a port of \"Native HTML5 Drag and Drop\" to Dart.\n// See: http://www.html5rocks.com/en/tutorials/dnd/basics/\n\n\nimport 'dart:html';\n\nclass Basics {\n  Element _dragSourceEl;\n\n  void start() {\n    var cols = document.querySelectorAll('#columns .column');\n    for (var col in cols) {\n      col.onDragStart.listen(_onDragStart);\n      col.onDragEnd.listen(_onDragEnd);\n      col.onDragEnter.listen(_onDragEnter);\n      col.onDragOver.listen(_onDragOver);\n      col.onDragLeave.listen(_onDragLeave);\n      col.onDrop.listen(_onDrop);\n    }\n  }\n\n  void _onDragStart(MouseEvent event) {\n    Element dragTarget = event.target;\n    dragTarget.classes.add('moving');\n    _dragSourceEl = dragTarget;\n    event.dataTransfer.effectAllowed = 'move';\n    event.dataTransfer.setData('text/html', dragTarget.innerHtml);\n  }\n\n  void _onDragEnd(MouseEvent event) {\n    Element dragTarget = event.target;\n    dragTarget.classes.remove('moving');\n    var cols = document.querySelectorAll('#columns .column');\n    for (var col in cols) {\n      col.classes.remove('over');\n    }\n  }\n\n  void _onDragEnter(MouseEvent event) {\n    Element dropTarget = event.target;\n    dropTarget.classes.add('over');\n  }\n\n  void _onDragOver(MouseEvent event) {\n    // This is necessary to allow us to drop.\n    event.preventDefault();\n    event.dataTransfer.dropEffect = 'move';\n  }\n\n  void _onDragLeave(MouseEvent event) {\n    Element dropTarget = event.target;\n    dropTarget.classes.remove('over');\n  }\n\n  void _onDrop(MouseEvent event) {\n    // Stop the browser from redirecting.\n    event.stopPropagation();\n\n    // Don't do anything if dropping onto the same column we're dragging.\n    Element dropTarget = event.target;\n    if (_dragSourceEl != dropTarget) {\n      // Set the source column's HTML to the HTML of the column we dropped on.\n      _dragSourceEl.innerHtml = dropTarget.innerHtml;\n      dropTarget.innerHtml = event.dataTransfer.getData('text/html');\n    }\n  }\n}\n\nvoid main() {\n  var basics = new Basics();\n  basics.start();\n}\n"
  },
  {
    "path": "html5/web/dnd/basics/index.html",
    "content": "<!DOCTYPE html>\n\n<!--\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the COPYING file.\n-->\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Drag and Drop: Basics</title>\n    <link rel=\"stylesheet\" href=\"basics.css\">\n  </head>\n  <body>\n    <div id=\"columns\">\n      <div class=\"column\" draggable=\"true\"><header>A</header></div>\n      <div class=\"column\" draggable=\"true\"><header>B</header></div>\n      <div class=\"column\" draggable=\"true\"><header>C</header></div>\n    </div>\n    <script type=\"application/dart\" src=\"basics.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/file/dndfiles/README.md",
    "content": "## Using the File APIs\n\nA Dart port of the Files API examples used in the\n[Reading files in JavaScript using the File APIs](http://www.html5rocks.com/en/tutorials/file/dndfiles/)\narticle by Eric Bidelman, originally published on HTML5Rocks.\n\nThe examples show how to select a file using a form input, or using drag and\ndrop. See how you can slice a file in separate byte range\nchunks for efficient uploading, and monitor progress while uploading a file.\n\nPlease report any [bugs or feature requests](http://dartbug.com/new).\n"
  },
  {
    "path": "html5/web/file/dndfiles/dndfiles.css",
    "content": "/*\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the LICENSE file.\n*/\n\nbody {\n  color: #333;\n  font-family: 'Open Sans', sans-serif;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1.2em;\n  margin: 15px;\n}\n\noutput {\n  display: block;\n}\n\n#byte-content {\n  margin: 5px 0;\n  max-height: 200px;\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n#byte-range {\n  margin-top: 5px;\n}\n\n#drop-zone {\n  border: 2px dashed #bbb;\n  -webkit-border-radius: 5px;\n  -moz-border-radius: 5px;\n  border-radius: 5px;\n  color: #bbb;\n  font-size: 20pt;\n  font-weight: bold;\n  padding: 25px;\n  text-align: center;\n}\n\n#drop-zone.hover {\n  background-color: #def;\n  border-color: #777;\n  color: #777;\n}\n\n#progress-bar {\n  background-color: #9cf;\n  border: 1px solid #000;\n  font-size: 14px;\n  margin: 10px 0;\n  opacity: 0;\n  -webkit-transition: opacity 0.5s linear;\n  -moz-transition: opacity 0.5s linear;\n  -o-transition: opacity 0.5s linear;\n  transition: opacity 0.5s linear;\n  padding: 3px;\n}\n\n#progress-bar.loading {\n  opacity: 1.0;\n}\n\n.thumb {\n  border: 1px solid #000;\n  height: 75px;\n  margin: 10px 5px 0 0;\n}\n"
  },
  {
    "path": "html5/web/file/dndfiles/dndfiles.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n// This is a port of \"Reading Files in JavaScript Using the File APIs\" to Dart.\n// See: http://www.html5rocks.com/en/tutorials/file/dndfiles/\n\nimport 'dart:convert' show HtmlEscape;\nimport 'dart:html';\n\n\nclass DndFiles {\n  FormElement _readForm;\n  InputElement _fileInput;\n  Element _dropZone;\n  OutputElement _output;\n  HtmlEscape sanitizer = new HtmlEscape();\n\n  DndFiles() {\n    _output = document.querySelector('#list');\n    _readForm = document.querySelector('#read');\n    _fileInput = document.querySelector('#files');\n    _fileInput.onChange.listen((e) => _onFileInputChange());\n\n    _dropZone = document.querySelector('#drop-zone');\n    _dropZone.onDragOver.listen(_onDragOver);\n    _dropZone.onDragEnter.listen((e) => _dropZone.classes.add('hover'));\n    _dropZone.onDragLeave.listen((e) => _dropZone.classes.remove('hover'));\n    _dropZone.onDrop.listen(_onDrop);\n  }\n\n  void _onDragOver(MouseEvent event) {\n    event.stopPropagation();\n    event.preventDefault();\n    event.dataTransfer.dropEffect = 'copy';\n  }\n\n  void _onDrop(MouseEvent event) {\n    event.stopPropagation();\n    event.preventDefault();\n    _dropZone.classes.remove('hover');\n    _readForm.reset();\n    _onFilesSelected(event.dataTransfer.files);\n  }\n\n  void _onFileInputChange() {\n    _onFilesSelected(_fileInput.files);\n  }\n\n  void _onFilesSelected(List<File> files) {\n    _output.nodes.clear();\n    var list = new Element.tag('ul');\n    for (var file in files) {\n      var item = new Element.tag('li');\n\n      // If the file is an image, read and display its thumbnail.\n      if (file.type.startsWith('image')) {\n        var thumbHolder = new Element.tag('span');\n        var reader = new FileReader();\n        reader.onLoad.listen((e) {\n          var thumbnail = new ImageElement(src: reader.result);\n          thumbnail.classes.add('thumb');\n          thumbnail.title = sanitizer.convert(file.name);\n          thumbHolder.nodes.add(thumbnail);\n        });\n        reader.readAsDataUrl(file);\n        item.nodes.add(thumbHolder);\n      }\n\n      // For all file types, display some properties.\n      var properties = new Element.tag('span');\n      properties.innerHtml = (new StringBuffer('<strong>')\n          ..write(sanitizer.convert(file.name))\n          ..write('</strong> (')\n          ..write(file.type != null ? sanitizer.convert(file.type) : 'n/a')\n          ..write(') ')\n          ..write(file.size)\n          ..write(' bytes')\n          // TODO(jason9t): Re-enable this when issue 5070 is resolved.\n          // http://code.google.com/p/dart/issues/detail?id=5070\n          // ..add(', last modified: ')\n          // ..add(file.lastModifiedDate != null ?\n          //       file.lastModifiedDate.toLocal().toString() :\n          //       'n/a')\n      ).toString();\n      item.nodes.add(properties);\n      list.nodes.add(item);\n    }\n    _output.nodes.add(list);\n  }\n}\n\nvoid main() {\n  new DndFiles();\n}\n"
  },
  {
    "path": "html5/web/file/dndfiles/dndfiles.html",
    "content": "<!DOCTYPE html>\n\n<!--\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the LICENSE file.\n-->\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Reading Files Using the File APIs</title>\n    <link rel=\"stylesheet\" href=\"dndfiles.css\">\n  </head>\n  <body>\n    <h3>Using Form Input, Drag and Drop, and Reading Files</h3>\n    <form id=\"read\">\n      <input type=\"file\" id=\"files\" name=\"files[]\" multiple />\n    </form>\n    <div id=\"drop-zone\">Drop files here</div>\n    <output id=\"list\"></output>\n    <script type=\"application/dart\" src=\"dndfiles.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/file/dndfiles/index.html",
    "content": "<!DOCTYPE html>\n\n<!--\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the LICENSE file.\n-->\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Reading Files Using the File APIs</title>\n    <link rel=\"stylesheet\" href=\"dndfiles.css\">\n  </head>\n  <body>\n    <h3>Using the File APIs: Choose an Example</h3>\n    <ol>\n      <li>\n        <a href=\"dndfiles.html\">\n          Using Form Input, Drag and Drop, and Reading Files\n        </a>\n      </li>\n      <li><a href=\"slicing.html\">Slicing a File</a></li>\n      <li><a href=\"monitoring.html\">Monitoring the Progress of a Read</a></li>\n    </ol>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/file/dndfiles/monitoring.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n// This is a port of \"Reading Files in JavaScript Using the File APIs\" to Dart.\n// See: http://www.html5rocks.com/en/tutorials/file/dndfiles/\n\nimport 'dart:html';\nimport 'dart:math';\nimport 'dart:async';\n\nclass Monitoring {\n  InputElement _fileInput;\n  Element _progressBar;\n  FileReader _reader;\n\n  Monitoring() {\n    _progressBar = querySelector('#progress-bar');\n    _fileInput = document.querySelector('#files');\n    _fileInput.onChange.listen((e) => _onFilesSelected());\n    var cancelButton = querySelector('#cancel-read');\n    cancelButton.onClick.listen((e) => _onCancel());\n  }\n\n  void _setProgress(int value) {\n    value = min(100, max(0, value));\n    _progressBar.style.width = '${value}%';\n    _progressBar.text = '${value}%';\n    if (value == 0 || value == 100) {\n      new Timer(const Duration(milliseconds: 2000), () => _progressBar.classes.remove('loading'));\n    }\n  }\n\n  void _onFilesSelected() {\n    // Reset progress indicator on new file selection.\n    _setProgress(0);\n    _progressBar.classes.remove('loading');\n\n    // Set up handlers and begin reading the file.\n    var file = _fileInput.files[0];\n    _reader = new FileReader();\n    _reader.onError.listen((e) => _onError());\n    _reader.onProgress.listen(_onProgress);\n    _reader.onAbort.listen((e) => window.alert('File read cancelled.'));\n    _reader.onLoadStart.listen((e) => _progressBar.classes.add('loading'));\n    _reader.onLoad.listen((e) => _setProgress(100));\n    _reader.readAsText(file);\n  }\n\n  void _onCancel() {\n    if (_reader != null) {\n      _reader.abort();\n    }\n  }\n\n  void _onProgress(ProgressEvent event) {\n    if (event.lengthComputable) {\n      var percentLoaded = (100 * event.loaded / event.total).round().toInt();\n      _setProgress(percentLoaded);\n    }\n  }\n\n  void _onError() {\n    switch(_reader.error.code) {\n      case FileError.NOT_FOUND_ERR:\n        window.alert('File not found!');\n        break;\n      case FileError.NOT_READABLE_ERR:\n        window.alert('File is not readable.');\n        break;\n      case FileError.ABORT_ERR:\n        break;  // no-op.\n      default:\n        window.alert('An error occurred reading this file.');\n        break;\n    }\n  }\n}\n\nvoid main() {\n  new Monitoring();\n}\n"
  },
  {
    "path": "html5/web/file/dndfiles/monitoring.html",
    "content": "<!DOCTYPE html>\n\n<!--\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the LICENSE file.\n-->\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Reading Files Using the File APIs</title>\n    <link rel=\"stylesheet\" href=\"dndfiles.css\">\n  </head>\n  <body>\n    <h3>Monitoring the Progress of a Read</h3>\n    <input type=\"file\" id=\"files\" name=\"file\" />\n    <button id=\"cancel-read\">Cancel read</button>\n    <div id=\"progress-bar\">0%</div>\n    <script type=\"application/dart\" src=\"monitoring.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/file/dndfiles/slicing.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n// This is a port of \"Reading Files in JavaScript Using the File APIs\" to Dart.\n// See: http://www.html5rocks.com/en/tutorials/file/dndfiles/\n\nimport 'dart:html';\n\nclass Slicing {\n  InputElement _fileInput;\n  Element _content;\n  Element _byteRange;\n\n  Slicing() {\n    _content = querySelector('#byte-content');\n    _byteRange = querySelector('#byte-range');\n\n    _fileInput = querySelector('#files');\n    _fileInput.onChange.listen((e) {\n      _content.text = '';\n      _byteRange.text = '';\n    });\n\n    var buttons = querySelector('#read-bytes-buttons');\n    buttons.onClick.listen(_onClick);\n  }\n\n  void _onClick(MouseEvent event) {\n    Element clicked = event.target;\n    if (clicked is ButtonElement) {\n      var start = clicked.attributes['data-startbyte'];\n      var end = clicked.attributes['data-endbyte'];\n      _readBlob(\n          start != null ? int.parse(start) : null,\n          end != null ? int.parse(end) : null);\n    }\n  }\n\n  void _readBlob([int startByte, int endByte]) {\n    var files = _fileInput.files;\n    if (files.length == 0) {\n      window.alert('Please select a file!');\n      return;\n    }\n\n    var file = files[0];\n    var start = startByte != null ? startByte : 0;\n    var end = endByte != null ? endByte : file.size;\n    var reader = new FileReader();\n    reader.onLoad.listen((e) {\n      _content.text = reader.result;\n      _byteRange.text =\n          'Read bytes ${start + 1} - ${end + 1} of ${file.size}.';\n    });\n    var slice = file.slice(start, end);\n    reader.readAsDataUrl(slice);\n  }\n}\n\nvoid main() {\n  new Slicing();\n}\n"
  },
  {
    "path": "html5/web/file/dndfiles/slicing.html",
    "content": "<!DOCTYPE html>\n\n<!--\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the LICENSE file.\n-->\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Reading Files Using the File APIs</title>\n    <link rel=\"stylesheet\" href=\"dndfiles.css\">\n  </head>\n  <body>\n    <h3>Slicing a File</h3>\n    <input type=\"file\" id=\"files\" name=\"file\" />\n    <span id=\"read-bytes-buttons\">\n      <button data-startbyte=\"0\" data-endbyte=\"4\">1-5</button>\n      <button data-startbyte=\"5\" data-endbyte=\"14\">6-15</button>\n      <button data-startbyte=\"6\" data-endbyte=\"7\">7-8</button>\n      <button>entire file</button>\n    </span>\n    <div id=\"byte-range\"></div>\n    <div id=\"byte-content\"></div>\n    <script type=\"application/dart\" src=\"slicing.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/file/filesystem/README.md",
    "content": "## Exploring the FileSystem APIs\n\nA port of the FileSystem example used in the\n[Exploring the FileSystem APIs](http://www.html5rocks.com/en/tutorials/file/filesystem/)\narticle by Eric Bidelman, originally published on HTML5Rocks.\n\nWith the FileSystem API, a web app can create, read, navigate, and write to a\nsandboxed section of the user's local file system.\n\nPlease report any [bugs or feature requests](http://dartbug.com/new).\n"
  },
  {
    "path": "html5/web/file/filesystem/filesystem.css",
    "content": "/*\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the LICENSE file.\n*/\n\n.example {\n  padding: 10px;\n  border: 1px solid #CCC;\n}\n\n#example-list-fs ul {\n  padding-left: 0;\n}\n\n#example-list-fs li {\n  list-style: none;\n}\n\n#example-list-fs img {\n  vertical-align: middle;\n}\n\nbutton {\n  padding: 5px 8px;\n  cursor: pointer;\n  text-shadow: 1px 1px white;\n  font-weight: 700;\n  font-size: 10pt;\n}\n\nbody {\n  font: 14px Arial;\n}\n"
  },
  {
    "path": "html5/web/file/filesystem/filesystem.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n// This is a port of \"Exploring the FileSystem APIs\" to Dart.\n// See: http://www.html5rocks.com/en/tutorials/file/filesystem/\n\nimport 'dart:convert' show HtmlEscape;\nimport 'dart:html';\n\nclass FileSystemExample {\n  FileSystem _filesystem;\n  Element _fileList;\n  HtmlEscape sanitizer = new HtmlEscape();\n\n  FileSystemExample() {\n    _fileList = querySelector('#example-list-fs-ul');\n\n    window.requestFileSystem(1024 * 1024, persistent: false)\n    .then(_requestFileSystemCallback, onError: _handleError);\n  }\n\n  void _requestFileSystemCallback(FileSystem filesystem) {\n    _filesystem = filesystem;\n    querySelector('#add-button').onClick.listen((e) => _addFiles());\n    querySelector('#list-button').onClick.listen((e) => _listFiles());\n    querySelector('#remove-button').onClick.listen((e) => _removeFiles());\n  }\n\n  void _handleError(FileError e) {\n    var msg = '';\n    switch (e.code) {\n      case FileError.QUOTA_EXCEEDED_ERR:\n        msg = 'QUOTA_EXCEEDED_ERR';\n        break;\n      case FileError.NOT_FOUND_ERR:\n        msg = 'NOT_FOUND_ERR';\n        break;\n      case FileError.SECURITY_ERR:\n        msg = 'SECURITY_ERR';\n        break;\n      case FileError.INVALID_MODIFICATION_ERR:\n        msg = 'INVALID_MODIFICATION_ERR';\n        break;\n      case FileError.INVALID_STATE_ERR:\n        msg = 'INVALID_STATE_ERR';\n        break;\n      default:\n        msg = 'Unknown Error';\n        break;\n    }\n    querySelector(\"#example-list-fs-ul\").text = \"Error: $msg\";\n  }\n\n  void _addFiles() {\n    _filesystem.root.createFile('log.txt').catchError(_handleError);\n    _filesystem.root.createFile('song.mp3').catchError(_handleError);\n    _filesystem.root.createDirectory('mypictures').catchError(_handleError);\n    _fileList.text = 'Files created.';\n  }\n\n  void _listFiles() {\n    var dirReader = _filesystem.root.createReader();\n    dirReader.readEntries().then((entries) {\n      if (entries.length == 0) {\n        _fileList.text = 'Filesystem is empty.';\n      } else {\n        _fileList.text = '';\n      }\n\n      var fragment = document.createDocumentFragment();\n      entries.forEach((entry) {\n        var img = entry.isDirectory ? '<img src=\"http://www.html5rocks.com/static/images/tutorials/icon-folder.gif\">' :\n                                      '<img src=\"http://www.html5rocks.com/static/images/tutorials/icon-file.gif\">';\n        var li = new Element.tag(\"li\");\n\n        li.innerHtml = \"$img<span>${sanitizer.convert(entry.name)}</span>\";\n        fragment.nodes.add(li);\n      });\n      _fileList.nodes.add(fragment);\n    }, onError: _handleError);\n  }\n\n  void _removeFiles() {\n    var dirReader = _filesystem.root.createReader();\n    dirReader.readEntries().then((entries) {\n      entries.forEach((entry) {\n        if (entry.isDirectory) {\n          entry.removeRecursively().then((_) {}, onError: _handleError);\n        } else {\n          entry.remove().then((_) {}, onError: _handleError);\n        }\n      });\n      _fileList.text = 'Directory emptied.';\n    }, onError: _handleError);\n  }\n}\n\nvoid main() {\n  new FileSystemExample();\n}\n"
  },
  {
    "path": "html5/web/file/filesystem/index.html",
    "content": "<!DOCTYPE html>\n\n<!--\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the LICENSE file.\n-->\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Filesystem</title>\n    <link rel=\"stylesheet\" href=\"filesystem.css\">\n  </head>\n  <body>\n    <div id=\"example-list-fs\" class=\"example\">\n      <button id=\"add-button\">Add some files</button>\n      <button id=\"list-button\">List files</button>\n      <button id=\"remove-button\">Remove all files</button>\n      <ul id=\"example-list-fs-ul\"></ul>\n    </div>\n\n    <script type=\"application/dart\" src=\"filesystem.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/file/terminal/README.md",
    "content": "## A Terminal Emulator that uses the FileSystem APIs\n\nA port of the Terminal example used in the\n[Exploring the FileSystem APIs](http://www.html5rocks.com/en/tutorials/file/filesystem/)\narticle by Eric Bidelman, originally published on HTML5Rocks.\n\nWith the FileSystem API, a web app can create, read, navigate, and write to a\nsandboxed section of the user's local file system.\n\nThis example simulates a UNIX terminal, and replicates common UNIX filesystem\noperations such as `cd`, `mkdir`, `rm`, `open`, and `cat` using the FileSystem\nAPI.  To add content, open the app, then drag and drop files from your\ndesktop onto the terminal window.\n\nPlease report any [bugs or feature requests](http://dartbug.com/new).\n"
  },
  {
    "path": "html5/web/file/terminal/index.html",
    "content": "<!DOCTYPE html>\n\n<!--\n\tCopyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n\tfor details. All rights reserved. Use of this source code is governed by a\n\tBSD-style license that can be found in the LICENSE file.\n\t\n\tThis is a port of \"Exploring the FileSystem APIs\" to Dart.\n\tSee: http://www.html5rocks.com/en/tutorials/file/filesystem/\n-->\n\n<html>\n  <head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<meta http-equiv=\"X-UA-Compatible\" content=\"chrome=1\" />\n\t\t<title>TerminalFilesystem</title>\n\t\t<link href=\"http://fonts.googleapis.com/css?family=Inconsolata\" rel=\"stylesheet\" type=\"text/css\" />\n\t\t<link rel=\"stylesheet\" href=\"terminal.css\">\n\t</head>\n  <body>\n    <h1>TerminalFilesystem</h1>\n\t\t<div id=\"container\">\n\t\t  <output id=\"output\"></output>\n\t\t  <div id=\"input-line\" class=\"input-line\">\n\t\t    <div class=\"prompt\">$&gt;</div><div><input id=\"cmdline\" class=\"cmdline\" autofocus /></div>\n\t\t  </div>\n\t\t</div>\n    <script type=\"application/dart\" src=\"terminal_filesystem.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/file/terminal/terminal.css",
    "content": "/*\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the COPYING file.\n*/\n\n::selection {\n  background: #FF5E99;\n}\n\nhtml, body {\n  width: 100%;\n  height: 100%;\n  margin: 0;\n}\n\nbody {\n  font-size: 12px;\n  font-family: Inconsolata, monospace;\n  color: white;\n  background-color: black;\n}\n\n.dropping {\n  background-image: -webkit-gradient(\n    linear, left bottom, left top,\n    color-stop(0.13, rgb(209,144,23)),\n    color-stop(0.57, rgb(251,173,51)),\n    color-stop(0.79, rgb(255,208,77))\n  );\n  background-image: -moz-linear-gradient(\n    center bottom,\n    rgb(209,144,23) 13%,\n    rgb(251,173,51) 57%,\n    rgb(255,208,77) 79%\n  );\n}\n\n#container {\n  padding: 1em 1.5em 1em 1em;\n}\n\n#container output {\n  clear: both;\n  width: 100%;\n}\n#container output h3 {\n  margin: 0;\n}\n\n#container output pre {\n  margin: 0;\n}\n\n.input-line {\n  display: -webkit-box;\n  -webkit-box-orient: horizontal;\n  -webkit-box-align: stretch;\n  display: -moz-box;\n  -moz-box-orient: horizontal;\n  -moz-box-align: stretch;\n  display: box;\n  box-orient: horizontal;\n  box-align: stretch;\n  clear: both;\n}\n\n.input-line > div:nth-child(2) {\n  -webkit-box-flex: 1;\n  -moz-box-flex: 1;\n  box-flex: 1;\n}\n\n.prompt {\n  white-space: nowrap;\n  color: green;\n  margin-right: 7px;\n  display: -webkit-box;\n  -webkit-box-pack: center;\n  -webkit-box-orient: vertical;\n  display: -moz-box;\n  -moz-box-pack: center;\n  -moz-box-orient: vertical;\n  display: box;\n  box-pack: center;\n  box-orient: vertical;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.cmdline {\n  outline: none;\n  background-color: transparent;\n  margin: 0;\n  width: 100%;\n  font: inherit;\n  border: none;\n  color: inherit;\n}\n\n.folder {\n  color: blue;\n}\n\n.ls-files {\n  height: 45px;\n  /* Default, but changed by js depending on length of filename */\n  -webkit-column-width: 100px;\n  -moz-column-width: 100px;\n  -o-column-width: 100px;\n  column-width: 100px;\n}\n\n/* Themes */\nbody.cream {\n  color: black;\n  background-color: #fffff3;\n}\n\n.cream .prompt {\n  color: purple;\n}\n\n.cream .cmdline {\n  color: black;\n}"
  },
  {
    "path": "html5/web/file/terminal/terminal.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n// This is a port of \"Exploring the FileSystem APIs\" to Dart.\n// See: http://www.html5rocks.com/en/tutorials/file/filesystem/\n\npart of terminal_filesystem;\n\nclass Terminal {\n  FileSystem fs;\n  DirectoryEntry cwd;\n  String cmdLineContainer;\n  String outputContainer;\n  String cmdLineInput;\n  OutputElement output;\n  InputElement input;\n  DivElement cmdLine;\n  String version = '0.0.1';\n  List<String> themes = ['default', 'cream'];\n  List<String> history = [];\n  int historyPosition = 0;\n  Map<String, Function> cmds;\n  HtmlEscape sanitizer = new HtmlEscape();\n\n  Terminal(this.cmdLineContainer, this.outputContainer, this.cmdLineInput) {\n    cmdLine = document.querySelector(cmdLineContainer);\n    output = document.querySelector(outputContainer);\n    input = document.querySelector(cmdLineInput);\n\n    // Always force text cursor to end of input line.\n    window.onClick.listen((event) => cmdLine.focus());\n\n    // Trick: Always force text cursor to end of input line.\n    cmdLine.onClick.listen((event) => input.value = input.value);\n\n    // Handle up/down key presses for shell history and enter for new command.\n    cmdLine.onKeyDown.listen(historyHandler);\n    cmdLine.onKeyDown.listen(processNewCommand);\n  }\n\n  void historyHandler(KeyboardEvent event) {\n    var histtemp = \"\";\n    int upArrowKey = 38;\n    int downArrowKey = 40;\n\n    /* keyCode == up-arrow || keyCode == down-arrow */\n    if (event.keyCode == upArrowKey || event.keyCode == downArrowKey) {\n      event.preventDefault();\n\n      // Up or down\n      if (historyPosition < history.length) {\n        history[historyPosition] = input.value;\n      } else {\n        histtemp = input.value;\n      }\n    }\n\n    if (event.keyCode == upArrowKey) { // Up-arrow keyCode\n      historyPosition--;\n      if (historyPosition < 0) {\n        historyPosition = 0;\n      }\n    } else if (event.keyCode == downArrowKey) { // Down-arrow keyCode\n      historyPosition++;\n      if (historyPosition >= history.length) {\n        historyPosition = history.length - 1;\n      }\n    }\n\n    /* keyCode == up-arrow || keyCode == down-arrow */\n    if (event.keyCode == upArrowKey || event.keyCode == downArrowKey) {\n      // Up or down\n      input.value = history[historyPosition] != null ? history[historyPosition]  : histtemp;\n    }\n  }\n\n  void processNewCommand(KeyboardEvent event) {\n    int enterKey = 13;\n    int tabKey = 9;\n\n    if (event.keyCode == tabKey) {\n      event.preventDefault();\n    } else if (event.keyCode == enterKey) {\n\n      if (!input.value.isEmpty) {\n        history.add(input.value);\n        historyPosition = history.length;\n      }\n\n      // Move the line to output and remove id's.\n      DivElement line = input.parent.parent.clone(true);\n      line.attributes.remove('id');\n      line.classes.add('line');\n      InputElement cmdInput = line.querySelector(cmdLineInput);\n      cmdInput.attributes.remove('id');\n      cmdInput.autofocus = false;\n      cmdInput.readOnly = true;\n      output.children.add(line);\n      String cmdline = input.value;\n      input.value = \"\"; // clear input\n\n      // Parse out command, args, and trim off whitespace.\n      List<String> args;\n      String cmd = \"\";\n      if (!cmdline.isEmpty) {\n        cmdline.trim();\n        args = sanitizer.convert(cmdline).split(' ');\n        cmd = args[0];\n        args.removeRange(0, 1);\n      }\n\n      // Function look up\n      if (cmds[cmd] is Function) {\n        cmds[cmd](cmd, args);\n      } else {\n        writeOutput('${sanitizer.convert(cmd)}: command not found');\n      }\n\n      window.scrollTo(0, window.innerHeight);\n    }\n  }\n\n  void initializeFilesystem(bool persistent, int size) {\n    cmds = {\n      'clear': clearCommand,\n      'help': helpCommand,\n      'version': versionCommand,\n      'cat': catCommand,\n      'cd': cdCommand,\n      'date': dateCommand,\n      'ls': lsCommand,\n      'mkdir': mkdirCommand,\n      'mv': mvCommand,\n      'cp': cpCommand,\n      'open': openCommand,\n      'pwd': pwdCommand,\n      'rm': rmCommand,\n      'rmdir': rmdirCommand,\n      'theme': themeCommand,\n      'who': whoCommand\n    };\n\n    writeOutput('<div>Welcome to ${sanitizer.convert(document.title)}! (v$version)</div>');\n    writeOutput(new DateTime.now().toLocal().toString());\n    writeOutput('<p>Documentation: type \"help\"</p>');\n    window.requestFileSystem(size, persistent: persistent)\n    .then(filesystemCallback, onError: errorHandler);\n  }\n\n  void filesystemNotInitialized(String cmd, List<String> args) {\n    writeOutput('<div>${sanitizer.convert(cmd)}: not available since filesystem was not initialized</div>');\n  }\n\n  void filesystemCallback(FileSystem filesystem) {\n    fs = filesystem;\n\n    if (fs is FileSystem) {\n      cwd = fs.root;\n    } else {\n      cmds['cat'] = filesystemNotInitialized;\n      cmds['cd'] = filesystemNotInitialized;\n      cmds['ls'] = filesystemNotInitialized;\n      cmds['mkdir'] = filesystemNotInitialized;\n      cmds['mv'] = filesystemNotInitialized;\n      cmds['cp'] = filesystemNotInitialized;\n      cmds['open'] = filesystemNotInitialized;\n      cmds['pwd'] = filesystemNotInitialized;\n      cmds['rm'] = filesystemNotInitialized;\n      cmds['rmdir'] = filesystemNotInitialized;\n    }\n\n    // Attempt to create a folder to test if we can.\n    cwd.createDirectory('testquotaforfsfolder')\n    .then((DirectoryEntry dirEntry) {\n      dirEntry.remove().then((_) {}); // If successfully created, just delete it.\n    }, onError: (error) {\n      if (error.code == FileError.QUOTA_EXCEEDED_ERR) {\n        writeOutput('ERROR: Write access to the filesystem is '\n            'unavailable. Are you running Google Chrome with '\n        '--unlimited-quota-for-files?');\n      } else {\n        errorHandler(error);\n      }\n    });\n  }\n\n  void errorHandler(error) {\n    var msg = '';\n    switch (error.code) {\n      case FileError.QUOTA_EXCEEDED_ERR:\n        msg = 'QUOTA_EXCEEDED_ERR';\n        break;\n      case FileError.NOT_FOUND_ERR:\n        msg = 'NOT_FOUND_ERR';\n        break;\n      case FileError.SECURITY_ERR:\n        msg = 'SECURITY_ERR';\n        break;\n      case FileError.INVALID_MODIFICATION_ERR:\n        msg = 'INVALID_MODIFICATION_ERR';\n        break;\n      case FileError.INVALID_STATE_ERR:\n        msg = 'INVALID_STATE_ERR';\n        break;\n      case FileError.TYPE_MISMATCH_ERR:\n        msg = 'TYPE_MISMATCH_ERR';\n        break;\n      default:\n        msg = 'FileError = ${error.code}: Error not handled';\n        break;\n    };\n    writeOutput('<div>Error: ${sanitizer.convert(msg)}</div>');\n  }\n\n  void invalidOpForEntryType(FileError error, String cmd, String dest) {\n    switch (error.code) {\n      case FileError.NOT_FOUND_ERR:\n        writeOutput('${sanitizer.convert(cmd)}: ${sanitizer.convert(dest)}: No such file or directory<br>');\n        break;\n      case FileError.INVALID_STATE_ERR:\n        writeOutput('${sanitizer.convert(cmd)}: ${sanitizer.convert(dest)}: Not a directory<br>');\n        break;\n      case FileError.INVALID_MODIFICATION_ERR:\n        writeOutput('${sanitizer.convert(cmd)}: ${sanitizer.convert(dest)}: File already exists<br>');\n        break;\n      default:\n        errorHandler(error);\n        break;\n    }\n  }\n\n  void setTheme([String theme='default']) {\n    if (theme == null || theme == 'default') {\n      window.localStorage.remove('theme');\n      document.body.classes.clear();\n    } else {\n      document.body.classes.add(theme);\n      window.localStorage['theme'] = theme;\n    }\n  }\n\n  void addDroppedFiles(List<File> files) {\n    files.forEach((file) {\n      cwd.createFile(file.name, exclusive: true)\n      .then((FileEntry fileEntry) {\n            fileEntry.createWriter().then((FileWriter fileWriter) {\n              fileWriter.onError.listen(errorHandler);\n              fileWriter.write(file);\n            }, onError: errorHandler);\n          }, onError: errorHandler);\n    });\n  }\n\n  void read(String cmd, String path, var callback) {\n    cwd.getFile(path).then((FileEntry fileEntry) {\n      fileEntry.file().then((file) {\n        var reader = new FileReader();\n        reader.onLoadEnd.listen((ProgressEvent event) => callback(reader.result));\n        reader.readAsText(file);\n      }, onError: errorHandler);\n    }, onError: (error) {\n      if (error.code == FileError.INVALID_STATE_ERR) {\n        writeOutput('${sanitizer.convert(cmd)}: ${sanitizer.convert(path)}): is a directory<br>');\n      } else if (error.code == FileError.NOT_FOUND_ERR) {\n        writeOutput('${sanitizer.convert(cmd)}: ${sanitizer.convert(path)}: No such file or directory<br>');\n      } else {\n        errorHandler(error);\n      }\n    });\n  }\n\n  void clearCommand(String cmd, List<String> args) {\n    output.innerHtml = '';\n  }\n\n  void helpCommand(String cmd, List<String> args) {\n    StringBuffer sb = new StringBuffer();\n    sb.write('<div class=\"ls-files\">');\n    cmds.keys.forEach((key) => sb.write('$key<br>'));\n    sb.write('</div>');\n    sb.write('<p>Add files by dragging them from your desktop.</p>');\n    writeOutput(sb.toString());\n  }\n\n  void versionCommand(String cmd, List<String> args) {\n    writeOutput(\"$version\");\n  }\n\n  void catCommand(String cmd, List<String> args) {\n    if (args.length >= 1) {\n      var fileName = args[0];\n      read(cmd, fileName, (result) => writeOutput('<pre>${sanitizer.convert(result)}</pre>'));\n    } else {\n      writeOutput('usage: ${sanitizer.convert(cmd)} filename');\n    }\n  }\n\n  void cdCommand(String cmd, List<String> args) {\n    var dest = args.join(' ').trim();\n    if (dest.isEmpty) {\n      dest = '/';\n    }\n\n    cwd.getDirectory(dest)\n    .then((DirectoryEntry dirEntry) {\n      cwd = dirEntry;\n      writeOutput('<div>${sanitizer.convert(dirEntry.fullPath)}</div>');\n    }, onError: (FileError error) {\n      invalidOpForEntryType(error, cmd, dest);\n    });\n  }\n\n  void dateCommand(String cmd, var args) {\n    writeOutput(new DateTime.now().toLocal().toString());\n  }\n\n  StringBuffer formatColumns(List<Entry> entries) {\n    var maxName = entries[0].name;\n    entries.forEach((entry) {\n      if (entry.name.length > maxName.length) {\n        maxName = entry.name;\n      }\n    });\n\n    // If we have 3 or less entires, shorten the output container's height.\n    var height = entries.length <= 3 ? 'height: ${entries.length}em;' : '${entries.length ~/ 3}em';\n    var colWidth = \"${maxName.length}em\";\n    StringBuffer sb = new StringBuffer();\n    sb.write('<div class=\"ls-files\" style=\"-webkit-column-width: $colWidth; height: $height\">');\n    return sb;\n  }\n\n\n  void lsCommand(String cmd, List<String> args) {\n    void displayFiles(List<Entry> entry) {\n      if (entry.length != 0) {\n\n        StringBuffer html = formatColumns(entry);\n        entry.forEach((file) {\n          var fileType = file.isDirectory ? 'folder' : 'file';\n          var span = '<span class=\"$fileType\">${sanitizer.convert(file.name)}</span><br>';\n          html.write(span);\n        });\n\n        html.write('</div>');\n        writeOutput(html.toString());\n      }\n    };\n\n    // Read contents of current working directory. According to spec, need to\n    // keep calling readEntries() until length of result array is 0. We're\n    // guarenteed the same entry won't be returned again.\n    List<Entry> entries = [];\n    DirectoryReader reader = cwd.createReader();\n\n    void readEntries() {\n      reader.readEntries()\n      .then((List<Entry> results) {\n        if (results.length == 0) {\n          displayFiles(entries);\n        } else {\n          entries.addAll(results);\n          readEntries();\n        }\n      }, onError: errorHandler);\n    };\n\n    readEntries();\n  }\n\n  void createDir(DirectoryEntry rootDirEntry, List<String> folders, [String createFromDir=\"\", String cmd=\"\"]) {\n    if (folders.length == 0) {\n      return;\n    }\n\n    if (createFromDir.isEmpty) {\n      rootDirEntry.createDirectory(folders[0])\n      .then((dirEntry) {\n        // Recursively add the new subfolder if we still have a subfolder to create.\n        if (folders.length != 0) {\n          folders.removeAt(0);\n          createDir(dirEntry, folders);\n        }\n      }, onError: errorHandler);\n    } else {\n      var fullPath = cwd.fullPath;\n      cwd.getDirectory(createFromDir)\n      .then((DirectoryEntry dirEntry) {\n        cwd = dirEntry;\n        // Create the folders\n        createDir(cwd, folders);\n\n        cwd.getDirectory(fullPath)\n        .then((DirectoryEntry dirEntry) => cwd = dirEntry,\n        onError: (FileError error) => invalidOpForEntryType(error, cmd, fullPath));\n      }, onError: (FileError error) => invalidOpForEntryType(error, cmd, createFromDir));\n    }\n  }\n\n  void mkdirCommand(String cmd, List<String> args) {\n    var dashP = false;\n    var index = args.indexOf('-p');\n    if (index != -1) {\n      args.removeAt(index);\n      dashP = true;\n    }\n\n    if (args.length == 0) {\n      writeOutput('usage: ${sanitizer.convert(cmd)} [-p] directory<br>');\n      return;\n    }\n\n    // Create each directory passed as an argument.\n    for (int i = 0; i < args.length; i++) {\n      String dirName = args[i];\n\n      if (dashP) {\n        var folders = dirName.split('/');\n        // Throw out './' or '/' if present on the beginning of our path.\n        if (folders[0] == '.' || folders[0] == '') {\n          folders.removeAt(0);\n        }\n\n        // If '/' is present then we change directories in createDir.\n        if (dirName[0] == \"/\") {\n          createDir(cwd, folders, dirName[0], cmd);\n        } else {\n          createDir(cwd, folders);\n        }\n      } else {\n        cwd.createDirectory(dirName, exclusive: true)\n        .then((_) {}, onError: (FileError error) {\n          invalidOpForEntryType(error, cmd, dirName);\n        });\n      }\n    }\n  }\n\n  void updateFilename(String cmd, List<String> args, Function action) {\n    if (args.length != 2) {\n      writeOutput('usage: ${sanitizer.convert(cmd)} source target<br>'\n                  '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${sanitizer.convert(cmd)}'\n                  ' source directory/');\n      return;\n    }\n\n    String src = args[0];\n    String dest = args[1];\n\n    // Moving to a folder? (e.g. second arg ends in '/').\n    if (dest[dest.length - 1].endsWith('/')) {\n      cwd.getDirectory(src)\n      .then((DirectoryEntry srcDirEntry) {\n            // Create blacklist for dirs we can't re-create.\n            var create = ['.', './', '..', '../', '/'].indexOf(dest) != -1 ? false : true;\n\n            if (create) {\n              cwd.createDirectory(dest)\n              .then((DirectoryEntry destDirEntry) => action(srcDirEntry, destDirEntry),\n              onError: errorHandler);\n            } else {\n              cwd.getDirectory(dest)\n              .then((DirectoryEntry destDirEntry) => action(srcDirEntry, destDirEntry),\n              onError: errorHandler);\n            }\n          }, onError: errorHandler);\n    } else {\n      // Treat src/destination as files.\n      cwd.getFile(src).then((FileEntry srcFileEntry) {\n            srcFileEntry.getParent()\n            .then((DirectoryEntry parentDirEntry) => action(srcFileEntry, parentDirEntry, dest),\n                onError: errorHandler);\n          },\n          onError: errorHandler);\n    }\n  }\n\n  void cpCommand(String cmd, List<String> args) {\n    updateFilename(cmd, args,\n        (srcDirEntry, destDirEntry, [name = \"\"]) {\n              if (name.isEmpty) {\n                srcDirEntry.copyTo(destDirEntry);\n              } else {\n                srcDirEntry.copyTo(destDirEntry, name);\n              }\n            });\n  }\n\n  void mvCommand(String cmd, List<String> args) {\n    updateFilename(cmd, args,\n        (srcDirEntry, destDirEntry, [name = \"\"]) {\n              if (name.isEmpty) {\n                srcDirEntry.moveTo(destDirEntry);\n              } else {\n                srcDirEntry.moveTo(destDirEntry, name);\n              }\n            });\n  }\n\n  void openCommand(String cmd, List<String> args) {\n    //var fileName = Strings.join(args, ' ').trim();\n    if (args.length == 0) {\n      writeOutput('usage: ${sanitizer.convert(cmd)} [filenames]');\n      return;\n    }\n\n    args.forEach((fileName) {\n      open(cmd, fileName, (FileEntry fileEntry) {\n        window.open(fileEntry.toUrl(), '$fileName');\n      });\n    });\n  }\n\n  void open(String cmd, String path, successCallback) {\n\n    cwd.getFile(path).then(successCallback, onError: (error) {\n          if (error.code == FileError.NOT_FOUND_ERR) {\n            writeOutput('${sanitizer.convert(cmd)}: ${sanitizer.convert(path)}: No such file or directory<br>');\n          } else {\n            errorHandler(error);\n          }\n        });\n  }\n\n  void pwdCommand(String cmd, List<String> args) {\n    writeOutput(sanitizer.convert(cwd.fullPath));\n  }\n\n  void rmCommand(String cmd, List<String> args) {\n    // Remove recursively? If so, remove the flag(s) from the arg list.\n    var recursive = false;\n    var switches = ['-r', '-f', '-rf', '-fr'];\n    switches.forEach((sw) {\n      var index = args.indexOf(sw);\n      if (index != -1) {\n        while (index != -1) {\n          args.removeAt(index);\n          index = args.indexOf(sw);\n        }\n        recursive = true;\n      }\n    });\n\n    args.forEach((fileName) {\n      cwd.getFile(fileName).then((fileEntry) {\n            fileEntry.remove().then((_) {}, onError: errorHandler);\n          },\n          onError: (error) {\n            if (recursive && error.code == FileError.TYPE_MISMATCH_ERR) {\n              cwd.getDirectory(fileName)\n              .then((DirectoryEntry dirEntry) => dirEntry.removeRecursively().then((_) {}, onError: errorHandler),\n                  onError: errorHandler);\n            } else if (error.code == FileError.INVALID_STATE_ERR) {\n              writeOutput('${sanitizer.convert(cmd)}: ${sanitizer.convert(fileName)}: is a directory<br>');\n            } else {\n              errorHandler(error);\n            }\n          });\n    });\n  }\n\n  void rmdirCommand(String cmd, List<String> args) {\n    args.forEach((dirName) {\n      cwd.getDirectory(dirName)\n      .then((dirEntry) {\n            dirEntry.remove().then((_) {}, onError: (error) {\n              if (error.code == FileError.INVALID_MODIFICATION_ERR) {\n                writeOutput('${sanitizer.convert(cmd)}: ${sanitizer.convert(dirName)}: Directory not empty<br>');\n              } else {\n                errorHandler(error);\n              }\n            });\n          },\n          onError: (error) => invalidOpForEntryType(error, cmd, dirName));\n    });\n  }\n\n  void themeCommand(String cmd, List<String> args) {\n    var theme = args.join(' ').trim();\n    if (theme.isEmpty) {\n      writeOutput('usage: ${sanitizer.convert(cmd)} ${sanitizer.convert(themes.toString())}');\n    } else {\n      if (themes.contains(theme)) {\n        setTheme(theme);\n      } else {\n        writeOutput('Error - Unrecognized theme used');\n      }\n    }\n  }\n\n  void whoCommand(String cmd, List<String> args) {\n    writeOutput('${sanitizer.convert(document.title)}'\n                ' - By:  Eric Bidelman &lt;ericbidelman@chromium.org&gt;,'\n                ' Adam Singer &lt;financeCoding@gmail.com&gt;');\n  }\n\n  void writeOutput(String h) {\n    output.insertAdjacentHtml('beforeEnd', h);\n  }\n}\n"
  },
  {
    "path": "html5/web/file/terminal/terminal_filesystem.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n// This is a port of \"Exploring the FileSystem APIs\" to Dart.\n// See: http://www.html5rocks.com/en/tutorials/file/filesystem/\n\nlibrary terminal_filesystem;\n\nimport 'dart:convert' show HtmlEscape;\nimport 'dart:html';\n\npart 'terminal.dart';\n\nclass TerminalFilesystem {\n  Terminal term;\n\n  void run() {\n    term = new Terminal('#input-line', '#output', '#cmdline');\n    term.initializeFilesystem(false, 1024 * 1024);\n\n    if (!window.location.hash.isEmpty) {\n      var theme = window.location.hash.substring(1, window.location.hash.length).split('=')[1];\n      term.setTheme(theme);\n    } else if (window.localStorage.containsKey('theme')) {\n      term.setTheme(window.localStorage['theme']);\n    }\n\n    // Setup the DnD listeners for file drop.\n    var body = document.body;\n    body.onDragEnter.listen(onDragEnter);\n    body.onDragOver.listen(onDragOver);\n    body.onDrop.listen(onDrop);\n  }\n\n  void onDragEnter(MouseEvent event) {\n    event.stopPropagation();\n    event.preventDefault();\n    Element dropTarget = event.target;\n    dropTarget.classes.add('dropping');\n  }\n\n  void onDragOver(MouseEvent event) {\n    event.stopPropagation();\n    event.preventDefault();\n\n    // Explicitly show this is a copy.\n    event.dataTransfer.dropEffect = 'copy';\n  }\n\n  void onDrop(MouseEvent event) {\n    event.stopPropagation();\n    event.preventDefault();\n    Element dropTarget = event.target;\n    dropTarget.classes.remove('dropping');\n    term.addDroppedFiles(event.dataTransfer.files);\n    term.writeOutput('<div>File(s) added!</div>');\n  }\n}\n\nvoid main() {\n  new TerminalFilesystem().run();\n}\n"
  },
  {
    "path": "html5/web/geolocation/trip_meter/README.md",
    "content": "## Trip Meter: A Basic Geolocaton Example\n\nA port of the Geolocation example used in the\n[A Simple Trip Meter Using the Geolocation API] (http://www.html5rocks.com/en/tutorials/geolocation/trip_meter/)\narticle by Michael Mahemoff, originally published on HTML5Rocks.\n\nThe Geolocation API lets you track a user's location. The API is\ndevice-agnostic; the underlying mechanism might be via GPS,\nwifi, or simply asking the user to enter their location manually. Since\nthese lookups can take some time, the API is asynchronous, and you\npass it a callback method whenever you request a location.\n\nThe Trip Meter example display's the user's initial location, and it\ntracks the distance the user has travelled since the page was loaded.\n\nPlease report any [bugs or feature requests](http://dartbug.com/new).\n"
  },
  {
    "path": "html5/web/geolocation/trip_meter/index.html",
    "content": "<!DOCTYPE html>\n\n<!--\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the COPYING file.\n-->\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>TripMeter</title>\n    <link rel=\"stylesheet\" href=\"trip_meter.css\">\n  </head>\n  <body>\n    <div id=\"tripmeter\">\n      <p>\n        Starting Location (lat, lon):<br/>\n        <span id=\"start-lat\">???</span>&deg;, <span id=\"start-lon\">???</span>&deg;\n      </p>\n      <p>\n        Current Location (lat, lon):<br/>\n        <span id=\"current-lat\">???</span>&deg;, <span id=\"current-lon\">???</span>&deg;\n      </p>\n      <p>\n        Distance from starting location:<br>\n        <span id=\"distance\">0</span> km\n      </p>\n    </div>\n    <script type=\"application/dart\" src=\"trip_meter.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/geolocation/trip_meter/trip_meter.css",
    "content": "/*\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the COPYING file.\n*/\n\n#tripmeter {\n  border: 3px double black;\n  padding: 10px;\n  margin: 10px 0;\n}\n\np {\n  color: #222;\n  font: 14px Arial;\n}\n\nspan {\n  color: #00C;\n}"
  },
  {
    "path": "html5/web/geolocation/trip_meter/trip_meter.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the COPYING file.\n\n// This is a port of \"A Simple Trip Meter Using the Geolocation API\" to Dart.\n// See: http://www.html5rocks.com/en/tutorials/geolocation/trip_meter/\n\nimport 'dart:html';\nimport 'dart:math';\n\n// Reused code - copyright Moveable Type Scripts\n// http://www.movable-type.co.uk/scripts/latlong.html\n// Under Creative Commons License http://creativecommons.org/licenses/by/3.0/\nnum calculateDistance(num lat1, num lon1, num lat2, num lon2) {\n  const EARTH_RADIUS = 6371; // km\n  num latDiff = lat2 - lat1;\n  num lonDiff = lon2 - lon1;\n\n  // a is the square of half the chord length between the points.\n  var a = pow(sin(latDiff / 2), 2) +\n          cos(lat1) * cos (lat2) *\n          pow(sin(lonDiff / 2), 2);\n\n  var angularDistance = 2 * atan2(sqrt(a), sqrt(1 - a));\n  return EARTH_RADIUS * angularDistance;\n}\n\n// Don't use alert() in real code ;)\nvoid alertError(PositionError error) {\n  window.alert(\"Error occurred. Error code: ${error.code}\");\n}\n\nvoid main(){\n  Geoposition startPosition;\n\n  window.navigator.geolocation.getCurrentPosition()\n  .then((Geoposition position) {\n    startPosition = position;\n    querySelector(\"#start-lat\").text = \"${startPosition.coords.latitude}\";\n    querySelector(\"#start-lon\").text = \"${startPosition.coords.longitude}\";\n  }, onError: (error) => alertError(error));\n\n  window.navigator.geolocation.watchPosition().listen((Geoposition position) {\n    querySelector(\"#current-lat\").text = \"${position.coords.latitude}\";\n    querySelector(\"#current-lon\").text = \"${position.coords.longitude}\";\n    num distance = calculateDistance(\n        startPosition.coords.latitude,\n        startPosition.coords.longitude,\n        position.coords.latitude,\n        position.coords.longitude);\n    querySelector(\"#distance\").text = \"$distance\";\n  }, onError: (error) => alertError(error));\n}\n"
  },
  {
    "path": "html5/web/indexeddb/todo/README.md",
    "content": "## Simple Todo App using IndexedDB\n\nA port of the Todo example used in the\n[A Simple TODO list using HTML5 IndexedDB](http://www.html5rocks.com/en/tutorials/file/filesystem/)\narticle by Paul Kinlan, originally published on HTML5Rocks.\n\nThe example demonstrates how to create a very simple todo\nlist manager using IndexedDB.\n\nIndexedDB is a data store that developers can use to store and manipulate data\non the client side. IndexedDB is usually used as an Asynchronous API where the\ndata is delivered to a defined callback function.\n\nYou can open the example in Dart Editor and run it by clicking `index.html`.\nOr, you can try this\n[live demo](http://www.html5rocks.com/en/tutorials/indexeddb/todo/).\n\nPlease report any [bugs or feature requests](http://dartbug.com/new).\n"
  },
  {
    "path": "html5/web/indexeddb/todo/index.html",
    "content": "<!DOCTYPE html>\n\n<!--\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the COPYING file.\n-->\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>A Simple ToDo List Using HTML5 IndexedDB</title>\n    <link rel=\"stylesheet\" href=\"todo.css\">\n  </head>\n  <body>\n    <input type=\"text\" id=\"todo\" name=\"todo\"\n        placeholder=\"What do you need to do?\">\n    <input type=\"submit\" id=\"submit\" value=\"Add Todo Item\">\n    <ul id=\"todo-items\"></ul>\n    <script type=\"application/dart\" src=\"todo.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/indexeddb/todo/todo.css",
    "content": "/*\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the COPYING file.\n*/\n\nbody {\n  color: #222;\n  font: 14px Arial;\n}\n\na {\n  color: #3D5C9D;\n  cursor: pointer;\n  text-decoration: none;\n}\n\nli a {\n  margin-left: 8px;\n}\n\n#todo {\n  width: 200px;\n}\n"
  },
  {
    "path": "html5/web/indexeddb/todo/todo.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the COPYING file.\n\n// This is a port of \"A Simple ToDo List Using HTML5 IndexedDB\" to Dart.\n// See: http://www.html5rocks.com/en/tutorials/indexeddb/todo/\n\nimport 'dart:html';\nimport 'dart:indexed_db' as idb;\nimport 'dart:async';\n\nclass TodoList {\n  static final String _TODOS_DB = \"todo\";\n  static final String _TODOS_STORE = \"todos\";\n\n  idb.Database _db;\n  int _version = 2;\n  InputElement _input;\n  Element _todoItems;\n\n  TodoList() {\n    _todoItems = querySelector('#todo-items');\n    _input = querySelector('#todo');\n    querySelector('input#submit').onClick.listen((e) => _onAddTodo());\n  }\n\n  Future open() {\n    return window.indexedDB.open(_TODOS_DB, version: _version,\n        onUpgradeNeeded: _onUpgradeNeeded)\n      .then(_onDbOpened)\n      .catchError(_onError);\n  }\n\n  void _onError(e) {\n    // Get the user's attention for the sake of this tutorial. (Of course we\n    // would *never* use window.alert() in real life.)\n    window.alert('Oh no! Something went wrong. See the console for details.');\n    window.console.log('An error occurred: {$e}');\n  }\n\n  void _onDbOpened(idb.Database db) {\n    _db = db;\n    _getAllTodoItems();\n  }\n\n  void _onUpgradeNeeded(idb.VersionChangeEvent e) {\n    idb.Database db = (e.target as idb.OpenDBRequest).result;\n    if (!db.objectStoreNames.contains(_TODOS_STORE)) {\n      db.createObjectStore(_TODOS_STORE, keyPath: 'timeStamp');\n    }\n  }\n\n  void _onAddTodo() {\n    var value = _input.value.trim();\n    if (value.length > 0) {\n      _addTodo(value);\n    }\n    _input.value = '';\n  }\n\n  Future _addTodo(String text) {\n    var trans = _db.transaction(_TODOS_STORE, 'readwrite');\n    var store = trans.objectStore(_TODOS_STORE);\n    return store.put({\n      'text': text,\n      'timeStamp': new DateTime.now().millisecondsSinceEpoch.toString()\n    }).then((_) => _getAllTodoItems())\n    .catchError((e) => _onError);\n  }\n\n  void _deleteTodo(String id) {\n    var trans = _db.transaction(_TODOS_STORE, 'readwrite');\n    var store =  trans.objectStore(_TODOS_STORE);\n    var request = store.delete(id);\n    request.then((e) => _getAllTodoItems(), onError: _onError);\n  }\n\n  void _getAllTodoItems() {\n    _todoItems.nodes.clear();\n\n    var trans = _db.transaction(_TODOS_STORE, 'readwrite');\n    var store = trans.objectStore(_TODOS_STORE);\n\n    // Get everything in the store.\n    var request = store.openCursor(autoAdvance:true).listen((cursor) {\n      _renderTodo(cursor.value);\n    }, onError: _onError);\n  }\n\n  void _renderTodo(Map todoItem) {\n    var textDisplay = new Element.tag('span');\n    textDisplay.text = todoItem['text'];\n\n    var deleteControl = new Element.tag('a');\n    deleteControl.text = '[Delete]';\n    deleteControl.onClick.listen((e) => _deleteTodo(todoItem['timeStamp']));\n\n    var item = new Element.tag('li');\n    item.nodes.add(textDisplay);\n    item.nodes.add(deleteControl);\n    _todoItems.nodes.add(item);\n  }\n}\n\nvoid main() {\n  new TodoList().open();\n}\n"
  },
  {
    "path": "html5/web/localstorage/basics/README.md",
    "content": "## LocalStorage 101\n\nA basic example showing the use of LocalStorage for persistence.\n\nLocalStorage is a simple key/value storage interface for Strings.\nThough widely supported, LocalStorage is a synchronous API. Because it involves\nI/O, this interface should not be used for high throughput operations.\nConsider IndexedDB as an alternative. For simple string keys and values, and as\na replacement for cookies, LocalStorage is useful.\n\nWhen you enter a value in the username input in the example,\nit is stored in LocalStorage.\nThe value is then retrieved from LocalStorage and displayed on the page.\n\nPlease report any [bugs or feature requests](http://dartbug.com/new).\n"
  },
  {
    "path": "html5/web/localstorage/basics/index.html",
    "content": "<!DOCTYPE html>\n\n<!--\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the LICENSE file.\n-->\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Local Storage in Dart</title>\n  </head>\n  <body>\n    <h1>Local Storage in Dart</h1>\n    \n    <p>\n      From local storage: <output id=\"username-output\"></output>\n    </p>\n\n  \t<label for=\"username\">Username:</label>\n  \t<input type=\"text\" name=\"username\" id=\"username\">\n  \t<input type=\"submit\" id=\"save\" value=\"Save\">\n\n    <script type=\"application/dart\" src=\"localstorage.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/localstorage/basics/localstorage.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\nimport 'dart:html';\n\nvoid main() {\n  InputElement username = querySelector('#username');\n  InputElement submit = querySelector('#save');\n  Element output = querySelector('#username-output');\n  Storage localStorage = window.localStorage;\n\n  // Local storage is a Map, supporting string keys and values.\n  String savedUsername = localStorage['username'];\n\n  if (savedUsername != null) {\n    output.text = savedUsername;\n  }\n\n  submit.onClick.listen((Event e) {\n    output.text = username.value;\n    localStorage['username'] = username.value;\n  });\n}\n"
  },
  {
    "path": "html5/web/pointerlock/fps/fps.css",
    "content": "/*\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the LICENSE file.\n*/\n\nbody {\n  background-color: #F8F8F8;\n  font-family: 'Open Sans', sans-serif;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1.2em;\n  margin: 15px;\n}\n\np {\n  color: #333;\n}\n\n#text {\n  font-size: 24pt;\n  text-align: center;\n  margin-top: 140px;\n}\n"
  },
  {
    "path": "html5/web/pointerlock/fps/fps.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n// This is a port of \"Pointer Lock And First Person Shooter Controls\" to Dart.\n// See: http://www.html5rocks.com/en/tutorials/pointerlock/intro/\n\nlibrary fps;\nimport 'dart:html';\nimport 'dart:web_gl';\nimport 'dart:typed_data';\nimport 'dart:math' as Math;\nimport 'package:vector_math/vector_math.dart';\npart 'fps_camera.dart';\npart 'fps_controller.dart';\npart 'quat.dart';\npart 'opengl.dart';\n\nFpsControllerView view;\n\nclass FpsControllerView {\n  final String elementId;\n  CanvasElement canvas;\n  Camera camera;\n  MouseKeyboardCameraController controller;\n  bool ownMouse;\n  RenderingContext webGL;\n  Shader vertexShader;\n  Shader fragmentShader;\n  Program shaderProgram;\n  Buffer vertexBuffer;\n  Float32List cameraTransform;\n  int numVertices;\n  double lastTime;\n\n  /**\n   * [elementId] The dom ID of the canvas element the view should render into\n   */\n  FpsControllerView(this.elementId) {\n    camera = new Camera();\n    controller = new MouseKeyboardCameraController();\n    canvas = querySelector(elementId);\n    ownMouse = false;\n    cameraTransform = new Float32List(16);\n  }\n\n  void _generateLine(List<double> vertexBuffer, Vector3 b, Vector3 e, Vector4 color) {\n    vertexBuffer.add(b.x);\n    vertexBuffer.add(b.y);\n    vertexBuffer.add(b.z);\n    vertexBuffer.add(color.r);\n    vertexBuffer.add(color.g);\n    vertexBuffer.add(color.b);\n    vertexBuffer.add(color.a);\n    vertexBuffer.add(e.x);\n    vertexBuffer.add(e.y);\n    vertexBuffer.add(e.z);\n    vertexBuffer.add(color.r);\n    vertexBuffer.add(color.g);\n    vertexBuffer.add(color.b);\n    vertexBuffer.add(color.a);\n  }\n\n  void _generateLines(List<double> vertexBuffer, Vector3 b,\n                      Vector3 e, Vector3 step, Vector4 color, int num) {\n    Vector3 lineStart = new Vector3.copy(b);\n    Vector3 lineEnd = new Vector3.copy(e);\n    for (int i = 0; i < num; i++) {\n      _generateLine(vertexBuffer, lineStart, lineEnd, color);\n      lineStart.add(step);\n      lineEnd.add(step);\n    }\n  }\n\n  void _generateVertexBuffer() {\n    vertexBuffer = webGL.createBuffer();\n    List<double> vertexBufferData = new List<double>();\n\n    var colors = {\n      'red': new Vector4(1.0, 0.0, 0.0, 1.0),\n      'green': new Vector4(0.0, 1.0, 0.0, 1.0),\n      'blue': new Vector4(0.0, 0.0, 1.0, 1.0)\n    };\n\n    // Bottom\n    Vector3 b = new Vector3(0.0, 0.0, -20.0);\n    Vector3 e = new Vector3(0.0, 0.0, 0.0);\n    Vector3 s = new Vector3(1.0, 0.0, 0.0);\n    _generateLines(vertexBufferData, b, e, s, colors['green'], 21);\n    b.setValues(0.0, 0.0, 0.0);\n    e.setValues(20.0, 0.0, 0.0);\n    s.setValues(0.0, 0.0, -1.0);\n    _generateLines(vertexBufferData, b, e, s, colors['green'], 21);\n\n    // Side\n    b.setValues(20.0, 0.0, 0.0);\n    e.setValues(20.0, 20.0, 0.0);\n    s.setValues(0.0, 0.0, -1.0);\n    _generateLines(vertexBufferData, b, e, s, colors['blue'], 21);\n    b.setValues(20.0, 0.0, 0.0);\n    e.setValues(20.0, 0.0, -20.0);\n    s.setValues(0.0, 1.0, 0.0);\n    _generateLines(vertexBufferData, b, e, s, colors['blue'], 21);\n\n    // Side\n    b.setValues(0.0, 0.0, -20.0);\n    e.setValues(0.0, 20.0, -20.0);\n    s.setValues(1.0, 0.0, 0.0);\n    _generateLines(vertexBufferData, b, e, s, colors['red'], 21);\n    b.setValues(0.0, 0.0, -20.0);\n    e.setValues(20.0, 0.0, -20.0);\n    s.setValues(0.0, 1.0, 0.0);\n    _generateLines(vertexBufferData, b, e, s, colors['red'], 21);\n\n    numVertices = vertexBufferData.length~/7;\n    webGL.bindBuffer(RenderingContext.ARRAY_BUFFER, vertexBuffer);\n    webGL.bufferDataTyped(RenderingContext.ARRAY_BUFFER,\n                     new Float32List.fromList(vertexBufferData),\n                     RenderingContext.STATIC_DRAW);\n  }\n\n  void initWebGL() {\n    if (canvas == null) {\n      throw new Exception('canvas not found $elementId can\\'t be found');\n    }\n    canvas.width = 640;\n    canvas.height = 480;\n    webGL = canvas.getContext(\"experimental-webgl\");\n    if (webGL == null) {\n      throw new Exception('WebGL is not supported');\n    }\n    vertexShader = webGL.createShader(RenderingContext.VERTEX_SHADER);\n    fragmentShader = webGL.createShader(RenderingContext.FRAGMENT_SHADER);\n    shaderProgram = webGL.createProgram();\n\n    webGL.shaderSource(vertexShader, '''\n      precision highp float;\n      attribute vec3 vPosition;\n      attribute vec4 vColor;\n      uniform mat4 cameraTransform;\n      varying vec4 fColor;\n      void main() {\n        fColor = vColor;\n        vec4 vPosition4 = vec4(vPosition.x, vPosition.y, vPosition.z, 1.0);\n        gl_Position = cameraTransform*vPosition4;\n      }\n    ''');\n\n    webGL.shaderSource(fragmentShader, '''\n      precision mediump float;\n      varying vec4 fColor;\n      void main() {\n        gl_FragColor = fColor;\n      }\n    ''');\n\n    webGL.compileShader(vertexShader);\n    webGL.compileShader(fragmentShader);\n    webGL.attachShader(shaderProgram, vertexShader);\n    webGL.attachShader(shaderProgram, fragmentShader);\n    webGL.linkProgram(shaderProgram);\n\n    _generateVertexBuffer();\n  }\n\n  void clicked(Event event) {\n    canvas.requestPointerLock();\n  }\n\n  /* Returns true if the pointer is owned by our canvas element */\n  bool get _pointerLocked => canvas == document.pointerLockElement;\n\n  void pointerLockChange(Event event) {\n    // Check if we own the mouse.\n    ownMouse = _pointerLocked;\n  }\n\n  static const keyCodeA = 65;\n  static const keyCodeD = 68;\n  static const keyCodeS = 83;\n  static const keyCodeW = 87;\n\n  void keydown(KeyboardEvent  event) {\n    if (!ownMouse) {\n      // We don't respond to keyboard commands if we don't own the mouse\n      return;\n    }\n\n    switch (event.keyCode) {\n      case keyCodeW:\n        controller.forward = true;\n        break;\n      case keyCodeA:\n        controller.strafeLeft = true;\n        break;\n      case keyCodeD:\n        controller.strafeRight = true;\n        break;\n      case keyCodeS:\n        controller.backward = true;\n        break;\n    }\n  }\n\n  void keyup(KeyboardEvent event) {\n    if (!ownMouse) {\n      // We don't respond to keyboard commands if we don't own the mouse\n      return;\n    }\n    switch (event.keyCode) {\n      case keyCodeW:\n        controller.forward = false;\n        break;\n      case keyCodeA:\n        controller.strafeLeft = false;\n        break;\n      case keyCodeD:\n        controller.strafeRight = false;\n        break;\n      case keyCodeS:\n        controller.backward = false;\n        break;\n    }\n  }\n\n  void mouseMove(MouseEvent event) {\n    if (!ownMouse) {\n      // We don't rotate the view if we don't own the mouse\n      return;\n    }\n    controller.accumDX += event.movement.x;\n    controller.accumDY += event.movement.y;\n  }\n\n  // Subscribe to input events\n  void bind() {\n    document.onPointerLockChange.listen(pointerLockChange);\n    canvas.onClick.listen(clicked);\n    document.onKeyDown.listen(keydown);\n    document.onKeyUp.listen(keyup);\n    document.onMouseMove.listen(mouseMove);\n  }\n\n  void update(double time) {\n    if (lastTime == null) {\n      // This skips the first frame but gives us an origin in time.\n      lastTime = time;\n      return;\n    }\n    var dt = (time - lastTime) / 1000.0;\n    lastTime = time;\n    controller.updateCamera(dt, camera);\n  }\n\n  void draw() {\n    webGL.viewport(0, 0, canvas.width, canvas.height);\n    webGL.clearColor(0.0, 0.0, 0.0, 1.0);\n    webGL.clearDepth(1.0);\n    webGL.clear(RenderingContext.COLOR_BUFFER_BIT |\n                RenderingContext.DEPTH_BUFFER_BIT);\n    webGL.disable(RenderingContext.DEPTH_TEST);\n\n    webGL.enableVertexAttribArray(0);\n    webGL.enableVertexAttribArray(1);\n    webGL.bindBuffer(RenderingContext.ARRAY_BUFFER, vertexBuffer);\n    webGL.vertexAttribPointer(0, 4, RenderingContext.FLOAT, false, 28, 12);\n    webGL.bindBuffer(RenderingContext.ARRAY_BUFFER, vertexBuffer);\n    webGL.vertexAttribPointer(1, 3, RenderingContext.FLOAT, false, 28, 0);\n\n    webGL.useProgram(shaderProgram);\n    var cameraTransformUniformIndex = webGL.getUniformLocation(shaderProgram,\n                                                               'cameraTransform');\n\n    Matrix4 view = camera.lookAtMatrix;\n    Matrix4 projection = camera.projectionMatrix;\n    Matrix4 projectionView = projection * view;\n    projectionView.copyIntoArray(cameraTransform, 0);\n    webGL.uniformMatrix4fv(cameraTransformUniformIndex,\n                           false,\n                           cameraTransform);\n    webGL.drawArrays(RenderingContext.LINES, 0, numVertices);\n    webGL.flush();\n  }\n}\n\nvoid animate(double time) {\n  view.update(time);\n  view.draw();\n  window.requestAnimationFrame(animate);\n}\n\nvoid main() {\n  view = new FpsControllerView('#webGLCanvas');\n  view.initWebGL();\n  view.bind();\n  window.requestAnimationFrame(animate);\n}\n"
  },
  {
    "path": "html5/web/pointerlock/fps/fps_camera.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\npart of fps;\n\nclass Camera {\n  Vector3 eyePosition;\n  Vector3 upDirection;\n  Vector3 lookAtPosition;\n  num zNear;\n  num zFar;\n  num aspectRatio;\n  num fOV;\n\n  Camera() {\n    eyePosition = new Vector3(0.0, 2.0, 0.0);\n    lookAtPosition = new Vector3(1.0, 2.0, -1.0);\n    upDirection = new Vector3(0.0, 1.0, 0.0);\n\n    fOV = 0.785398163; // 90 degrees\n    zNear = 1.0;\n    zFar = 1000.0;\n    aspectRatio = 1.7777778;\n  }\n\n  String toString() {\n    return '$eyePosition -> $lookAtPosition';\n  }\n\n  num get yaw {\n    Vector3 z = new Vector3(0.0, 0.0, 1.0);\n    Vector3 forward = frontDirection;\n    forward.normalize();\n    return degrees(Math.acos(forward.dot(z)));\n  }\n\n  num get pitch {\n    Vector3 y = new Vector3(0.0, 1.0, 0.0);\n    Vector3 forward = frontDirection;\n    forward.normalize();\n    return degrees(Math.acos(forward.dot(y)));\n  }\n\n  Matrix4 get projectionMatrix {\n    return makePerspective(fOV, aspectRatio, zNear, zFar);\n  }\n\n  Matrix4 get lookAtMatrix {\n    return makeLookAt(eyePosition, lookAtPosition, upDirection);\n  }\n\n  void copyProjectionMatrixIntoArray(Float32List pm) {\n    Matrix4 m = makePerspective(fOV, aspectRatio, zNear, zFar);\n    m.copyIntoArray(pm);\n  }\n\n  void copyViewMatrixIntoArray(Float32List vm) {\n    Matrix4 m = makeLookAt(eyePosition, lookAtPosition, upDirection);\n    m.copyIntoArray(vm);\n  }\n\n  void copyNormalMatrixIntoArray(Float32List nm) {\n    Matrix4 m = makeLookAt(eyePosition, lookAtPosition, upDirection);\n    m.copyIntoArray(nm);\n  }\n\n  void copyProjectionMatrix(Matrix4 pm) {\n    Matrix4 m = makePerspective(fOV, aspectRatio, zNear, zFar);\n    m.copyInto(pm);\n  }\n\n  void copyViewMatrix(Matrix4 vm) {\n    Matrix4 m = makeLookAt(eyePosition, lookAtPosition, upDirection);\n    m.copyInto(vm);\n  }\n\n  void copyNormalMatrix(Matrix4 nm) {\n    Matrix4 m = makeLookAt(eyePosition, lookAtPosition, upDirection);\n    m.copyInto(nm);\n  }\n\n  void copyEyePosition(Vector3 ep) {\n    eyePosition.copyInto(ep);\n  }\n\n  void copyLookAtPosition(Vector3 lap) {\n    lookAtPosition.copyInto(lap);\n  }\n\n  Vector3 get frontDirection => lookAtPosition - eyePosition;\n}\n"
  },
  {
    "path": "html5/web/pointerlock/fps/fps_controller.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n\npart of fps;\n\nclass MouseKeyboardCameraController {\n  bool up = false;\n  bool down = false;\n  bool strafeLeft = false;\n  bool strafeRight = false;\n  bool forward = false;\n  bool backward = false;\n\n  num floatVelocity = 5.0;\n  num strafeVelocity = 5.0;\n  num forwardVelocity = 5.0;\n  num mouseSensitivity = 360.0;\n\n  int accumDX = 0;\n  int accumDY = 0;\n\n  MouseKeyboardCameraController();\n\n  void updateCamera(num seconds, Camera cam) {\n    _moveFloat(seconds, up, down, cam);\n    _moveStrafe(seconds, strafeRight, strafeLeft, cam);\n    _moveForward(seconds, forward, backward, cam);\n    _rotateView(seconds, cam);\n  }\n\n  num _velocityScale(bool positive, bool negative) {\n    num scale = 0.0;\n    if (positive) {\n      scale += 1.0;\n    }\n    if (negative) {\n      scale -= 1.0;\n    }\n    return scale;\n  }\n\n  void _moveFloat(num dt, bool positive, bool negative, Camera cam) {\n    var scale = _velocityScale(positive, negative);\n    if (scale == 0.0) {\n      return;\n    }\n    scale = scale * dt * floatVelocity;\n    Vector3 upDirection = new Vector3(0.0, 1.0, 0.0);\n    upDirection.scale(scale);\n    cam.lookAtPosition.add(upDirection);\n    cam.eyePosition.add(upDirection);\n  }\n\n  void _moveStrafe(num dt, bool positive, bool negative, Camera cam) {\n    var scale = _velocityScale(positive, negative);\n    if (scale == 0.0) {\n      return;\n    }\n    scale = scale * dt * strafeVelocity;\n    Vector3 frontDirection = cam.frontDirection;\n    frontDirection.normalize();\n    Vector3 upDirection = new Vector3(0.0, 1.0, 0.0);\n    Vector3 strafeDirection = frontDirection.cross(upDirection);\n    strafeDirection.scale(scale);\n    cam.lookAtPosition.add(strafeDirection);\n    cam.eyePosition.add(strafeDirection);\n  }\n\n  void _moveForward(num dt, bool positive, bool negative, Camera cam) {\n    var scale = _velocityScale(positive, negative);\n    if (scale == 0.0) {\n      return;\n    }\n    scale = scale * dt * forwardVelocity;\n\n    Vector3 frontDirection = cam.frontDirection;\n    frontDirection.normalize();\n    frontDirection.scale(scale);\n    cam.lookAtPosition.add(frontDirection);\n    cam.eyePosition.add(frontDirection);\n  }\n\n  void _rotateView(num dt, Camera cam) {\n    Vector3 frontDirection = cam.frontDirection;\n    frontDirection.normalize();\n    Vector3 upDirection = new Vector3(0.0, 1.0, 0.0);\n    Vector3 strafeDirection = frontDirection.cross(upDirection);\n    strafeDirection.normalize();\n\n    num mouseYawDelta = accumDX / mouseSensitivity;\n    num mousePitchDelta = accumDY / mouseSensitivity;\n    accumDX = 0;\n    accumDY = 0;\n\n    // Pitch rotation\n    bool above = false;\n    if (frontDirection.y > 0.0) {\n      above = true;\n    }\n    num fDotUp = frontDirection.dot(upDirection);\n    num pitchAngle = Math.acos(fDotUp);\n    num pitchDegrees = degrees(pitchAngle);\n\n    const minPitchAngle = 0.785398163;\n    const maxPitchAngle = 2.35619449;\n    num minPitchDegrees = degrees(minPitchAngle);\n    num maxPitchDegrees = degrees(maxPitchAngle);\n\n    _rotateEyeAndLook(mousePitchDelta, strafeDirection, cam);\n\n    _rotateEyeAndLook(mouseYawDelta, upDirection, cam);\n  }\n\n  void _rotateEyeAndLook(num delta_angle, Vector3 axis, Camera cam) {\n    quat q = new quat(axis, delta_angle);\n    Vector3 frontDirection = cam.frontDirection;\n    frontDirection.normalize();\n    q.rotate(frontDirection);\n    frontDirection.normalize();\n    cam.lookAtPosition = cam.eyePosition + frontDirection;\n  }\n}\n"
  },
  {
    "path": "html5/web/pointerlock/fps/index.html",
    "content": "<!DOCTYPE html>\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Pointer Lock First Person Shooter Controls</title>\n    <link rel=\"stylesheet\" href=\"fps.css\">\n  </head>\n  <body>\n    <p>Click on view to active</p>\n    <p>Keys: W,A,S,D - Move forward, left, backward, and right respectively</p>\n    <p>Mouse: Rotates view</p>\n    <div id=\"container\">\n      <canvas id=\"webGLCanvas\"></canvas>\n    </div>\n    <script type=\"application/dart\" src=\"fps.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/pointerlock/fps/opengl.dart",
    "content": "/*\n  Copyright (C) 2013 John McCutchan <john@johnmccutchan.com>\n\n  This software is provided 'as-is', without any express or implied\n  warranty.  In no event will the authors be held liable for any damages\n  arising from the use of this software.\n\n  Permission is granted to anyone to use this software for any purpose,\n  including commercial applications, and to alter it and redistribute it\n  freely, subject to the following restrictions:\n\n  1. The origin of this software must not be misrepresented; you must not\n     claim that you wrote the original software. If you use this software\n     in a product, an acknowledgment in the product documentation would be\n     appreciated but is not required.\n  2. Altered source versions must be plainly marked as such, and must not be\n     misrepresented as being the original software.\n  3. This notice may not be removed or altered from any source distribution.\n*/\n\npart of fps;\n\n/**\n * Returns an OpenGL look at matrix.\n * The camera is located at [cameraPosition] and is focused\n * on [cameraFocusPostion].\n *\n * The [upDirection] is almost always (0, 1, 0).\n */\nMatrix4 makeLookAt(Vector3 cameraPosition, Vector3 cameraFocusPosition, Vector3 upDirection) {\n  Vector3 z = cameraPosition - cameraFocusPosition;\n  z.normalize();\n\n  Vector3 x = upDirection.cross(z);\n  x.normalize();\n\n  Vector3 y = z.cross(x);\n  y.normalize();\n\n  Matrix4 r = new Matrix4.zero();\n  r.row0 = new Vector4(x.x, x.y, x.z, 0.0);\n  r.row1 = new Vector4(y.x, y.y, y.z, 0.0);\n  r.row2 = new Vector4(z.x, z.y, z.z, 0.0);\n  r.row3 = new Vector4(1.0, 1.0, 1.0, 1.0);\n\n  r = r.transposed();\n  Vector3 rotatedEye = r * -cameraPosition;\n  r.row3 = new Vector4(rotatedEye.x, rotatedEye.y, rotatedEye.z, 0.0);\n\n  return r;\n}\n\n/**\n * Returns an OpenGL perspective camera projection matrix\n * */\nMatrix4 makePerspective(double fov_y_radians, double aspect_ratio, double znear, double zfar) {\n  double height = Math.tan(fov_y_radians * 0.5) * znear;\n  double width = height * aspect_ratio;\n\n  return makeFrustum(-width, width, -height, height, znear, zfar);\n}\n\n/**\n * Returns an OpenGL frustum camera projection matrix\n */\nMatrix4 makeFrustum(num left, num right, num bottom, num top, num near, num far) {\n  double two_near = 2.0 * near;\n  double right_minus_left = right - left;\n  double top_minus_bottom = top - bottom;\n  double far_minus_near = far - near;\n\n  Matrix4 view = new Matrix4.zero();\n  //view[0].x = two_near / right_minus_left;\n  view.row0 = new Vector4(two_near / right_minus_left, 0.0, 0.0, 0.0);\n\n  // view[1].y = two_near / top_minus_bottom;\n  view.row1 = new Vector4(0.0, two_near / top_minus_bottom, 0.0, 0.0);\n\n//  view[2].x = (right + left) / right_minus_left;\n//  view[2].y = (top + bottom) / top_minus_bottom;\n//  view[2].z = -(far + near) / far_minus_near;\n//  view[2].w = -1.0;\n  Vector4 row2 = new Vector4((right + left) / right_minus_left,\n      (top + bottom) / top_minus_bottom, -(far + near) / far_minus_near, -1.0);\n  view.row2 = row2;\n\n//  view[3].z = -(two_near * far) / far_minus_near;\n//  view[3].w = 0.0;\n  Vector4 row3 = new Vector4(0.0, 0.0, -(two_near * far) / far_minus_near, 0.0);\n  view.row3 = row3;\n\n  return view;\n}\n\n/**\n * Returns an OpenGL orthographic camera projection matrix\n */\nMatrix4 makeOrthographic(double left, double right, double bottom, double top, double znear, double zfar) {\n  double rml = right - left;\n  double rpl = right + left;\n  double tmb = top - bottom;\n  double tpb = top + bottom;\n  double fmn = zfar - znear;\n  double fpn = zfar + znear;\n\n  Matrix4 r = new Matrix4.zero();\n//  r[0].x = 2.0/rml;\n  r.row0 = new Vector4(2.0/rml, 0.0, 0.0, 0.0);\n//  r[1].y = 2.0/tmb;\n  r.row1 = new Vector4(0.0, 2.0/tmb, 0.0, 0.0);\n//  r[2].z = -2.0/fmn;\n  r.row2 = new Vector4(0.0, 0.0, -2.0/fmn, 0.0);\n//  r[3].x = -rpl/rml;\n//  r[3].y = -tpb/tmb;\n//  r[3].z = -fpn/fmn;\n//  r[3].w = 1.0;\n  r.row3 = new Vector4(-rpl/rml, -tpb/tmb, -fpn/fmn, 1.0);\n\n  return r;\n}\n\n/**\n * Returns a transformation matrix that transforms points onto\n * the plane specified with [planeNormal] and [planePoint]\n */\nMatrix4 makePlaneProjection(Vector3 planeNormal, Vector3 planePoint) {\n  Vector4 v = new Vector4(planeNormal.x, planeNormal.y, planeNormal.z, 0.0);\n  Matrix4 outer = new Matrix4.outer(v, v);\n  Matrix4 r = new Matrix4.zero();\n  r = r - outer;\n  //Vector3 scaledNormal = (planeNormal.scaled(dot(planePoint, planeNormal)));\n  double d = planePoint.dot(planeNormal);\n  Vector3 scaledNormal = planeNormal.scaled(d);\n  Vector4 T = new Vector4(scaledNormal.x, scaledNormal.y, scaledNormal.z, 1.0);\n  r.setColumn(3, T);\n  return r;\n}\n\n/**\n * Returns a transformation matrix that transforms points by reflecting\n * them through the plane specified with [planeNormal] and [planePoint]\n */\nMatrix4 makePlaneReflection(Vector3 planeNormal, Vector3 planePoint) {\n  Vector4 v = new Vector4(planeNormal.x, planeNormal.y, planeNormal.z, 0.0);\n  Matrix4 outer = new Matrix4.outer(v,v);\n  outer.scale(2.0);\n  Matrix4 r = new Matrix4.zero();\n  r = r - outer;\n//  double scale = 2.0 * dot(planePoint, planeNormal);\n  double scale = 2.0 * planePoint.dot(planeNormal);\n  Vector3 scaledNormal = (planeNormal.scaled(scale));\n  Vector4 T = new Vector4(scaledNormal.x, scaledNormal.y, scaledNormal.z, 1.0);\n  r.setColumn(3, T);\n  return r;\n}\n\n/**\n * On success, Sets [pickWorld] to be the world space position of\n * the screen space [pickX], [pickY], and [pickZ].\n *\n * The viewport is specified by ([viewportX], [viewportWidth]) and\n * ([viewportY], [viewportHeight]).\n *\n * [cameraMatrix] includes both the projection and view transforms.\n *\n * [pickZ] is typically either 0.0 (near plane) or 1.0 (far plane).\n *\n * Returns false on error, for example, the mouse is not in the viewport\n *\n */\nbool unproject(Matrix4 cameraMatrix, num viewportX, num viewportWidth,\n               num viewportY, num viewportHeight,\n               num pickX, num pickY, num pickZ,\n               Vector3 pickWorld) {\n  pickX = (pickX - viewportX);\n  pickY = (pickY - viewportY);\n  pickX = (2.0 * pickX / viewportWidth) - 1.0;\n  pickY = (2.0 * pickY / viewportHeight) - 1.0;\n  pickZ = (2.0 * pickZ) - 1.0;\n\n  // Check if pick point is inside unit cube\n  if (pickX < -1.0 || pickY < -1.0 || pickX > 1.0 || pickY > 1.0 ||\n      pickZ < -1.0 || pickZ > 1.0) {\n    return false;\n  }\n\n  // Copy camera matrix.\n  Matrix4 invertedCameraMatrix = new Matrix4.copy(cameraMatrix);\n  // Invert the camera matrix.\n  invertedCameraMatrix.invert();\n  // Determine intersection point.\n  Vector4 v = new Vector4(pickX, pickY, pickZ, 1.0);\n  invertedCameraMatrix.transform(v);\n  if (v.w == 0.0) {\n    return false;\n  }\n  double invW = 1.0 / v.w;\n  pickWorld.x = v.x * invW;\n  pickWorld.y = v.y * invW;\n  pickWorld.z = v.z * invW;\n\n  return true;\n}\n\n/**\n * On success, [rayNear] and [rayFar] are the points where\n * the screen space [pickX], [pickY] intersect with the near and far\n * planes respectively.\n *\n * The viewport is specified by ([viewportX], [viewportWidth]) and\n * ([viewportY], [viewportHeight]).\n *\n * [cameraMatrix] includes both the projection and view transforms.\n *\n * Returns false on error, for example, the mouse is not in the viewport\n *\n */\nbool pickRay(Matrix4 cameraMatrix, num viewportX, num viewportWidth,\n               num viewportY, num viewportHeight,\n               num pickX, num pickY,\n               Vector3 rayNear, Vector3 rayFar) {\n\n  bool r;\n\n  r = unproject(cameraMatrix, viewportX, viewportWidth,\n                viewportY, viewportHeight, pickX, viewportHeight-pickY, 0.0, rayNear);\n  if (!r) {\n    return false;\n  }\n\n  r = unproject(cameraMatrix, viewportX, viewportWidth,\n                viewportY, viewportHeight, pickX, viewportHeight-pickY, 1.0, rayFar);\n\n  return r;\n}"
  },
  {
    "path": "html5/web/pointerlock/fps/quat.dart",
    "content": "/*\n  Copyright (C) 2013 John McCutchan <john@johnmccutchan.com>\n\n  This software is provided 'as-is', without any express or implied\n  warranty.  In no event will the authors be held liable for any damages\n  arising from the use of this software.\n\n  Permission is granted to anyone to use this software for any purpose,\n  including commercial applications, and to alter it and redistribute it\n  freely, subject to the following restrictions:\n\n  1. The origin of this software must not be misrepresented; you must not\n     claim that you wrote the original software. If you use this software\n     in a product, an acknowledgment in the product documentation would be\n     appreciated but is not required.\n  2. Altered source versions must be plainly marked as such, and must not be\n     misrepresented as being the original software.\n  3. This notice may not be removed or altered from any source distribution.\n*/\n\npart of fps;\n\nclass quat {\n  double x;\n  double y;\n  double z;\n  double w;\n\n  /// Constructs a quaternion using the raw values [x], [y], [z], and [w]\n  quat.raw(this.x, this.y, this.z, this.w);\n  /**\n   *  Constructs a new quaternion. Behaviour depends on the types of arguments:\n   *\n   *  +  *([double] x,[double] y,[double] z,[double] w)* Raw values\n   *  +  *([vec3] axis,[double] angle)* Rotation of [angle] degrees around [axis]\n   *  +  *([quat] other)* Copy of other\n   *  +  *([mat3])* Convert rotation matrix into quaternion\n   *\n   *\n   */\n  quat([dynamic a, dynamic b, dynamic c, dynamic d]) {\n    x = 0.0;\n    y = 0.0;\n    z = 0.0;\n    w = 1.0;\n\n    if (a is double && b is double && c is double && d is double) {\n      x = a;\n      y = b;\n      z = c;\n      w = d;\n      return;\n    }\n\n    if (a is Vector3 && b is double) {\n      setAxisAngle(a, b);\n      return;\n    }\n\n    if (a is Vector3) {\n      x = a.x;\n      y = a.y;\n      z = a.z;\n      w = 0.0;\n      return;\n    }\n\n    if (a is quat) {\n      x = a.x;\n      y = a.y;\n      z = a.z;\n      w = a.w;\n      return;\n    }\n\n    if (a is Matrix3) {\n      double trace = (a as Matrix3).trace();\n      if (trace > 0.0) {\n        double s = Math.sqrt(trace + 1.0);\n        w = s * 0.5;\n        s = 0.5 / s;\n        x = (a.col1.z - a.col2.y) * s;\n        y = (a.col2.x - a.col0.z) * s;\n        z = (a.col0.y - a.col1.x) * s;\n      } else {\n        int i = a.col0.x < a.col1.y ? (a.col1.y < a.col2.z ? 2 : 1) : (a.col0.x < a.col2.z ? 2 : 0);\n        int j = (i + 1) % 3;\n        int k = (i + 2) % 3;\n\n        double s = Math.sqrt(a[i][i] - a[j][j] - a[k][k] + 1.0);\n        this[i] = s * 0.5;\n        s = 0.5 / s;\n        this[3] = (a[j][k] - a[k][j]) * s;\n        this[j] = (a[i][j] + a[j][i]) * s;\n        this[k] = (a[i][k] + a[k][i]) * s;\n      }\n    }\n  }\n\n  /// Constructs a new quaternion representing a rotation of [angle] around [axis]\n  quat.axisAngle(Vector3 axis, double angle) {\n    setAxisAngle(axis, angle);\n  }\n\n  /// Constructs a new quaternion which is a copy of [original]\n  quat.copy(quat original) {\n    x = original.x;\n    y = original.y;\n    z = original.z;\n    w = original.w;\n  }\n\n  /** Constructs a random rotation */\n  quat.random(Math.Random rn) {\n  // From: \"Uniform Random Rotations\", Ken Shoemake, Graphics Gems III,\n  //       pg. 124-132\n    double x0 = rn.nextDouble();\n    double r1 = Math.sqrt(1.0 - x0);\n    double r2 = Math.sqrt(x0);\n    double t1 = Math.PI*2.0 * rn.nextDouble();\n    double t2 = Math.PI*2.0 * rn.nextDouble();\n    double c1 = Math.cos(t1);\n    double s1 = Math.sin(t1);\n    double c2 = Math.cos(t2);\n    double s2 = Math.sin(t2);\n    x = s1 * r1;\n    y = c1 * r1;\n    z = s2 * r2;\n    w = c2 * r2;\n  }\n\n  /// Constructs the identity quaternion\n  quat.identity() {\n    x = 0.0;\n    y = 0.0;\n    z = 0.0;\n    w = 1.0;\n  }\n\n  /** Constructs the time derivative of [q] with angular velocity [omega] */\n  quat.dq(quat q, Vector3 omega) {\n    x = omega.x * q.w + omega.y * q.z - omega.z * q.y;\n    y = omega.y * q.w + omega.z * q.x - omega.x * q.z;\n    z = omega.z * q.w + omega.x * q.y - omega.y * q.x;\n    w = -omega.x * q.x - omega.y * q.y - omega.z * q.z;\n    x *= 0.5;\n    y *= 0.5;\n    z *= 0.5;\n    w *= 0.5;\n  }\n\n  /// Returns a new copy of this\n  quat clone() {\n    return new quat.copy(this);\n  }\n\n  /// Copy [source] into [this]\n  void copyFrom(quat source) {\n    x = source.x;\n    y = source.y;\n    z = source.z;\n    w = source.w;\n  }\n  /// Copy [this] into [target]\n  void copyTo(quat target) {\n    target.x = x;\n    target.y = y;\n    target.z = z;\n    target.w = w;\n  }\n  /** Set quaternion with rotation of [radians] around [axis] */\n  void setAxisAngle(Vector3 axis, double radians) {\n    double len = axis.length;\n    if (len == 0.0) {\n      return;\n    }\n    double halfSin = Math.sin(radians * 0.5) / len;\n    x = axis.x * halfSin;\n    y = axis.y * halfSin;\n    z = axis.z * halfSin;\n    w = Math.cos(radians * 0.5);\n  }\n\n  /** Set quaternion with rotation of [yaw], [pitch] and [roll] */\n  void setEuler(double yaw, double pitch, double roll) {\n    double halfYaw = yaw * 0.5;\n    double halfPitch = pitch * 0.5;\n    double halfRoll = roll * 0.5;\n    double cosYaw = Math.cos(halfYaw);\n    double sinYaw = Math.sin(halfYaw);\n    double cosPitch = Math.cos(halfPitch);\n    double sinPitch = Math.sin(halfPitch);\n    double cosRoll = Math.cos(halfRoll);\n    double sinRoll = Math.sin(halfRoll);\n    x = cosRoll * sinPitch * cosYaw + sinRoll * cosPitch * sinYaw;\n    y = cosRoll * cosPitch * sinYaw - sinRoll * sinPitch * cosYaw;\n    z = sinRoll * cosPitch * cosYaw - cosRoll * sinPitch * sinYaw;\n    w = cosRoll * cosPitch * cosYaw + sinRoll * sinPitch * sinYaw;\n  }\n\n  /** Normalize [this] */\n  quat normalize() {\n    double l = length;\n    if (l == 0.0) {\n      return this;\n    }\n    x /= l;\n    y /= l;\n    z /= l;\n    w /= l;\n    return this;\n  }\n\n  /** Conjugate [this] */\n  quat conjugate() {\n    x = -x;\n    y = -y;\n    z = -z;\n    w = w;\n    return this;\n  }\n\n  /** Invert [this]  */\n  quat inverse() {\n    double l = 1.0 / length2;\n    x = -x * l;\n    y = -y * l;\n    z = -z * l;\n    w = w * l;\n    return this;\n  }\n\n  /** Normalized copy of [this]. Optionally stored in [out]*/\n  quat normalized([quat out=null]) {\n    if (out == null) {\n      out = new quat.copy(this);\n    }\n    return out.normalize();\n  }\n\n  /** Conjugated copy of [this]. Optionally stored in [out] */\n  quat conjugated([quat out=null]) {\n    if (out == null) {\n      out = new quat.copy(this);\n    }\n    return out.conjugate();\n  }\n\n  /** Inverted copy of [this]. Optionally stored in [out] */\n  quat inverted([quat out=null]) {\n    if (out == null) {\n      out = new quat.copy(this);\n    }\n    return out.inverse();\n  }\n\n  /** Radians of rotation */\n  double get radians {\n    return 2.0 * Math.acos(w);\n  }\n\n  /** Axis of rotation */\n  Vector3 get axis {\n      double divisor = 1.0 - (w*w);\n      return new Vector3(x / divisor, y / divisor, z / divisor);\n  }\n\n  /** Squared length */\n  double get length2 {\n    return (x*x) + (y*y) + (z*z) + (w*w);\n  }\n\n  /** Length */\n  double get length {\n    return Math.sqrt(length2);\n  }\n\n  /** Returns a copy of [v] rotated by quaternion. Copy optionally stored in [out] */\n  Vector3 rotated(Vector3 v, [Vector3 out=null]) {\n    if (out == null) {\n      out = new Vector3.copy(v);\n    } else {\n      out.setFrom(v);\n    }\n    return rotate(out);\n  }\n\n  /** Rotates [v] by [this]. Returns [v]. */\n  Vector3 rotate(Vector3 v) {\n    // conjugate(this) * [v,0] * this\n    double tix = -x;\n    double tiy = -y;\n    double tiz = -z;\n    double tiw = w;\n    double tx = tiw * v.x + tix * 0.0 + tiy * v.z - tiz * v.y;\n    double ty = tiw * v.y + tiy * 0.0 + tiz * v.x - tix * v.z;\n    double tz = tiw * v.z + tiz * 0.0 + tix * v.y - tiy * v.x;\n    double tw = tiw * 0.0 - tix * v.x - tiy * v.y - tiz * v.z;\n    double result_x = tw * x + tx * w + ty * z - tz * y;\n    double result_y = tw * y + ty * w + tz * x - tx * z;\n    double result_z = tw * z + tz * w + tx * y - ty * x;\n    v.x = result_x;\n    v.y = result_y;\n    v.z = result_z;\n    return v;\n  }\n\n  /** Return a copy of [this] divided by [scale] */\n  quat operator/(double scale) {\n    return new quat(x / scale, y / scale, z / scale, w / scale);\n  }\n\n  /**  Returns copy of [this] multiplied by [scale]\n    *  Returns copy of [this] rotated by [otherQuat]\n    */\n  quat operator*(dynamic other) {\n    if (other is double) {\n      return new quat(x * other, y * other, z * other, w * other);\n    }\n    if (other is quat) {\n      return new quat(w * other.x + x * other.w + y * other.z - z * other.y,\n                      w * other.y + y * other.w + z * other.x - x * other.z,\n                      w * other.z + z * other.w + x * other.y - y * other.x,\n                      w * other.w - x * other.x - y * other.y - z * other.z);\n    }\n  }\n\n  /** Returns copy of [this] - [other] */\n  quat operator+(quat other) {\n    return new quat(x + other.x, y + other.y, z + other.z, w + other.w);\n  }\n\n  /** Returns copy of [this] + [other] */\n  quat operator-(quat other) {\n    return new quat(x - other.x, y - other.y, z - other.z, w - other.w);\n  }\n\n  /** Returns negated copy of [this] */\n  quat operator-() {\n    return new quat(-x, -y, -z, -w);\n  }\n\n  /** Treats [this] as an array and returns [x],[y],[z], or [w] */\n  double operator[](int i) {\n    assert(i >= 0 && i < 4);\n    switch (i) {\n    case 0: return x;\n    case 1: return y;\n    case 2: return z;\n    case 3: return w;\n    }\n    return 0.0;\n  }\n\n  /** Treats [this] as an array and assigns [x],[y],[z], or [w] the value of [arg]*/\n  void operator[]=(int i, double arg) {\n    assert(i >= 0 && i < 4);\n    switch (i) {\n    case 0: x = arg; break;\n    case 1: y = arg; break;\n    case 2: z = arg; break;\n    case 3: w = arg; break;\n    }\n  }\n\n  /** Returns a rotation matrix containing the same rotation as [this] */\n  Matrix3 asRotationMatrix() {\n    double d = length2;\n    assert(d != 0.0);\n    double s = 2.0 / d;\n\n    double xs = x * s;\n    double ys = y * s;\n    double zs = z * s;\n\n    double wx = w * xs;\n    double wy = w * ys;\n    double wz = w * zs;\n\n    double xx = x * xs;\n    double xy = x * ys;\n    double xz = x * zs;\n\n    double yy = y * ys;\n    double yz = y * zs;\n    double zz = z * zs;\n\n    return new Matrix3(1.0 - (yy + zz), xy + wz, xz - wy, // column 0\n      xy - wz, 1.0 - (xx + zz), yz + wx, // column 1\n      xz + wy, yz - wx, 1.0 - (xx + yy) // column 2\n      );\n  }\n\n  /** Returns a printable string */\n  String toString() {\n    return '$x, $y, $z @ $w';\n  }\n\n  /** Returns relative error between [this]  and [correct] */\n  double relativeError(quat correct) {\n    quat diff = correct - this;\n    double norm_diff = diff.length;\n    double correct_norm = correct.length;\n    return norm_diff/correct_norm;\n  }\n\n  /** Returns absolute error between [this] and [correct] */\n  double absoluteError(quat correct) {\n    double this_norm = length;\n    double correct_norm = correct.length;\n    double norm_diff = (this_norm - correct_norm).abs();\n    return norm_diff;\n  }\n}"
  },
  {
    "path": "html5/web/speed/animations/README.md",
    "content": "## Working with RequestAnimationFrame\n\nA port of the example used in the\n[Leaner, Meaner, Faster Animations with requestAnimationFrame](http://www.html5rocks.com/en/tutorials/speed/animations/)\narticle by Paul Lewis, originally published on HTML5Rocks.\n\nThe article explains how to correctly use requestAnimationFrame for your\nanimations. Here is a summary of the article contents:\n\n* Decouple your events from animations\n* Avoid animations that result in reflow-repaint loops\n* Update your RAF calls to expect a high resolution timestamp as the first\nparameter\n* Only call RAF when you have visual updates to do\n\nUse the up and down keys to activate the animation. The up key moves the\ncircles from right to left, and the down key moves them from left to right.\n\nPlease report any [bugs or feature requests](http://dartbug.com/new).\n"
  },
  {
    "path": "html5/web/speed/animations/animations.css",
    "content": "/*\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the COPYING file.\n*/\n\n.mover {\n  position: absolute;\n  width: 100px;\n  height: 100px;\n  background: url(http://1-ps.googleusercontent.com/x/s.html5rocks-hrd.appspot.com/www.html5rocks.com/en/tutorials/speed/animations/particle.png.pagespeed.ce.jWkhaHzlBa.png) center no-repeat;\n  left: 90%;\n  -webkit-transition: left 1.3s ease-out;\n  -moz-transition: left 1.3s ease-out;\n  -ms-transition: left 1.3s ease-out;\n  -o-transition: left 1.3s ease-out;\n  transition: left 1.3s ease-out;\n}\n\n.mover.left {\n  left: 10%;\n}"
  },
  {
    "path": "html5/web/speed/animations/animations.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n// This is a port of \"Leaner, Meaner, Faster Animations with\n// requestAnimationFrame\" to Dart.\n// See: http://www.html5rocks.com/en/tutorials/speed/animations/\n\nimport 'dart:html';\n\nclass AnimationExample {\n  final _numMovers = 500;\n  List<Element> _movers;\n  List<num> _moverTops;\n  num _lastScrollY = 0;\n  bool _ticking = false;\n\n  AnimationExample() {\n    _movers = new List<Element>(_numMovers);\n    _moverTops = new List<num>(_numMovers);\n    for (var i = 0; i < _numMovers; i++) {\n      var mover = new Element.tag(\"div\");\n      mover.classes.add(\"mover\");\n      mover.style.top = \"${i * 10}px\";\n      document.body.nodes.add(mover);\n      _movers[i] = mover;\n    }\n    window.onScroll.listen((e) => _onScroll());\n  }\n\n  void _onScroll() {\n    _lastScrollY = window.scrollY;\n    _requestTick();\n  }\n\n  void _requestTick() {\n    if (!_ticking) {\n      window.requestAnimationFrame(_update);\n      _ticking = true;\n    }\n  }\n\n  void _update(num time) {\n    var halfWindowHeight = window.innerHeight * 0.5;\n    var offset = 0;\n\n    for (var i = 0; i < _movers.length; i++) {\n      Element mover = _movers[i];\n      _moverTops[i] = mover.offsetTop;\n    }\n\n    // Using separate for loops is a subtle browser optimization. See the\n    // tutorial.\n    for (var i = 0; i < _movers.length; i++) {\n      Element mover = _movers[i];\n      if (_lastScrollY > _moverTops[i] - halfWindowHeight) {\n        mover.classes.add('left');\n      } else {\n        mover.classes.remove('left');\n      }\n    }\n\n    _ticking = false;\n  }\n}\n\nvoid main() {\n  new AnimationExample();\n}"
  },
  {
    "path": "html5/web/speed/animations/index.html",
    "content": "<!DOCTYPE html>\n\n<!--\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the COPYING file.\n-->\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Animations</title>\n    <link rel=\"stylesheet\" href=\"animations.css\">\n  </head>\n  <body>\n    <script type=\"application/dart\" src=\"animations.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/video/basics/README.md",
    "content": "## HTML5 Video\n\nA port of an example used in the\n[HTML5 Video](http://www.html5rocks.com/en/tutorials/video/basics/)\narticle by Ernest Delgado, originally published on HTML5Rocks.\n\nThe example shows how to use the `<video>` tag with different video formats.\n\nPlease report any [bugs or feature requests](http://dartbug.com/new).\n"
  },
  {
    "path": "html5/web/video/basics/index.html",
    "content": "<!DOCTYPE html>\n\n<!--\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the LICENSE file.\n-->\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <style>\n      video, canvas {\n        margin-top: 25px;\n        width: 200px;\n        height: 112px;\n        border: 1px solid black;\n      }\n    </style>\n  </head>\n  <body>\n    <video poster=\"http://www.html5rocks.com/en/tutorials/video/basics/star.png\" id=\"video-canvas-fancy\" controls>\n      <source src=\"http://www.html5rocks.com/en/tutorials/video/basics/Chrome_ImF.mp4\" type='video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'></source>\n      <source src=\"http://www.html5rocks.com/en/tutorials/video/basics/Chrome_ImF.webm\" type='video/webm; codecs=\"vp8, vorbis\"'></source>\n      <source src=\"http://www.html5rocks.com/en/tutorials/video/basics/Chrome_ImF.ogv\" type='video/ogg; codecs=\"theora, vorbis\"'></source>\n    </video>\n    <canvas id=\"canvas-copy-fancy\"></canvas>\n    <canvas id=\"canvas-draw-fancy\"></canvas>\n\n    <script type=\"application/dart\" src=\"video.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/video/basics/video.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n// This is a port of \"HTML5 Video\" to Dart.\n// See: http://www.html5rocks.com/en/tutorials/video/basics/\n\n// Note, the sound is very choppy when using dart2js and running on Google\n// Chrome (version 21 or 22). However, the sound is not choppy when running\n// under Dartium (version 23). It's not a bug in this code since the JavaScript\n// code has the same problem.\n// See also: http://code.google.com/p/chromium/issues/detail?id=141747#c15\n\nimport 'dart:html';\n\nclass VideoExample {\n  VideoElement _videoDom;\n  CanvasElement _canvasCopy;\n  CanvasElement _canvasDraw;\n  List<num> _offsets;\n  List<num> _inertias;\n  CanvasRenderingContext2D _ctxCopy, _ctxDraw;\n  bool _animationRunning = false;\n\n  final _outPadding = 100;\n  final _slices = 4;\n\n  VideoExample() {\n    var inertia = -2.0;\n\n    _videoDom = querySelector('#video-canvas-fancy');\n    _canvasCopy = querySelector('#canvas-copy-fancy');\n    _canvasDraw = querySelector('#canvas-draw-fancy');\n    _offsets = <num>[];\n    _inertias = <num>[];\n\n    for (var i = 0; i < _slices; i++) {\n      _offsets.add(0);\n      _inertias.add(inertia);\n      inertia += 0.4;\n    }\n\n    _videoDom.onCanPlay.listen((e) => _onCanPlay());\n    _videoDom.onPlay.listen((e) => _onPlay());\n    _videoDom.onPause.listen((e) => _stopAnimation());\n    _videoDom.onEnded.listen((e) => _stopAnimation());\n  }\n\n  void _onCanPlay() {\n    _canvasCopy.width = _canvasDraw.width = _videoDom.videoWidth;\n    _canvasCopy.height = _videoDom.videoHeight;\n    _canvasDraw.height = _videoDom.videoHeight + _outPadding;\n    _ctxCopy = _canvasCopy.context2D;\n    _ctxDraw = _canvasDraw.context2D;\n  }\n\n  void _onPlay() {\n    _animationRunning = true;\n    _processEffectFrame();\n  }\n\n  void _processEffectFrame() {\n    if (!_animationRunning) return;\n    var sliceWidth = _videoDom.videoWidth / _slices;\n    _ctxCopy.drawImage(_videoDom, 0, 0);\n    _ctxDraw.clearRect(0, 0, _canvasDraw.width, _canvasDraw.height);\n    for (var i = 0; i < _slices; i++) {\n      var sx = i * sliceWidth;\n      var sy = 0;\n      var sw = sliceWidth;\n      var sh = _videoDom.videoHeight;\n      var dx = sx;\n      var dy = _offsets[i] + sy + _outPadding;\n      var dw = sw;\n      var dh = sh;\n      _ctxDraw.drawImageScaledFromSource(_canvasCopy, sx, sy, sw, sh, dx, dy, dw, dh);\n      if ((_offsets[i] + _inertias[i]).abs() < _outPadding) {\n        _offsets[i] += _inertias[i];\n      } else {\n        _inertias[i] = -_inertias[i];\n      }\n    }\n    window.requestAnimationFrame((double time) {\n      _processEffectFrame();\n      return false;\n    });\n  }\n\n  void _stopAnimation() {\n    _animationRunning = false;\n  }\n}\n\nvoid main() {\n  new VideoExample();\n}\n"
  },
  {
    "path": "html5/web/webaudio/intro/README.md",
    "content": "## Getting Started with Web Audio API\n\nA port of an example used in the\n[Getting Started with Web Audio API](http://www.html5rocks.com/en/tutorials/webaudio/intro/)\narticle by Boris Smus, originally published on HTML5Rocks.\n\nYou can use the Web Audio API for processing and synthesizing audio in web\napplications. The API lets you use functionality found in modern game audio\nengines and mixing, processing, and filtering tasks found in modern desktop\naudio production applications.\n\nThe example lets you enable and disable a lowpass filter via a checkbox,\nas well as tweak the frequency and quality values with a slider.\n\nPlease report any [bugs or feature requests](http://dartbug.com/new).\n"
  },
  {
    "path": "html5/web/webaudio/intro/filter_sample.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the COPYING file.\n\n// This is a port of \"Getting Started with the Web Audio API\" (the filter\n// sample) to Dart. See: http://www.html5rocks.com/en/tutorials/webaudio/intro\n//\n// To run this code, you must use a web server. Dart Editor does this for you\n// automatically.\n\nimport 'dart:html';\nimport 'dart:math';\nimport 'dart:web_audio';\n\ntypedef void OnLoadCallback(List<AudioBuffer> bufferList);\n\nclass BufferLoader {\n  AudioContext audioCtx;\n  List<String> urlList;\n  OnLoadCallback callback;\n  int _loadCount = 0;\n  List<AudioBuffer> _bufferList;\n\n  BufferLoader(this.audioCtx, this.urlList, this.callback) {\n    _bufferList = new List<AudioBuffer>(urlList.length);\n  }\n\n  void load() {\n    for (var i = 0; i < urlList.length; i++) {\n      _loadBuffer(urlList[i], i);\n    }\n  }\n\n  void _loadBuffer(String url, int index) {\n    // Load the buffer asynchronously.\n    var request = new HttpRequest();\n    request.open(\"GET\", url, async: true);\n    request.responseType = \"arraybuffer\";\n    request.onLoad.listen((e) => _onLoad(request, url, index));\n\n    // Don't use alert in real life ;)\n    request.onError.listen((e) => window.alert(\"BufferLoader: XHR error\"));\n\n    request.send();\n  }\n\n  void _onLoad(HttpRequest request, String url, int index) {\n    // Asynchronously decode the audio file data in request.response.\n    audioCtx.decodeAudioData(request.response).then((AudioBuffer buffer) {\n      if (buffer == null) {\n\n        // Don't use alert in real life ;)\n        window.alert(\"Error decoding file data: $url\");\n\n        return;\n      }\n      _bufferList[index] = buffer;\n      if (++_loadCount == urlList.length) callback(_bufferList);\n    });\n  }\n}\n\n/**\n * This is the global, application context.\n *\n * In the JavaScript version, this stuff was in a file called init.js. I'm\n * keeping it separate of FilterSample in case we want to implement additional\n * samples.\n */\nclass ApplicationContext {\n  // Keep track of all loaded buffers.\n  Map<String, AudioBuffer> buffers;\n\n  // Page-wide AudioContext.\n  AudioContext audioCtx;\n\n  // An object to track the buffers to load \"{name: path}\".\n  static const buffersToLoad = const {\n    // There is also example.ogg and example.wav.\n    \"example\": \"sounds/example.ogg\"\n  };\n\n  ApplicationContext() {\n    buffers = new Map<String, AudioBuffer>();\n    audioCtx = new AudioContext();\n    _loadBuffers();\n  }\n\n  // Loads all sound samples into the buffers object.\n  void _loadBuffers() {\n    List<String> names = buffersToLoad.keys.toList();\n    List<String> paths = buffersToLoad.values.toList();\n    var bufferLoader = new BufferLoader(audioCtx, paths, (List<AudioBuffer> bufferList) {\n      for (var i = 0; i < bufferList.length; i++) {\n        AudioBuffer buffer = bufferList[i];\n        String name = names[i];\n        buffers[name] = buffer;\n      }\n    });\n    bufferLoader.load();\n  }\n}\n\nclass FilterSample {\n  final _FREQ = 5000;\n  final _FREQ_MUL = 7000;\n  final _QUAL_MUL = 30;\n  bool _playing = false;\n  ApplicationContext appCtx;\n  AudioBufferSourceNode _source;\n  BiquadFilterNode _filter;\n\n  FilterSample(this.appCtx) {\n    querySelector(\"#play-pause-button\").onClick.listen((Event e) {\n      _toggle();\n    });\n    querySelector(\"#enable-filter-checkbox\").onChange.listen((Event e) {\n      bool checked = (e.currentTarget as InputElement).checked;\n      _toggleFilter(checked);\n    });\n    querySelector(\"#frequency-range\").onInput.listen((Event e) {\n      num value = double.parse((e.currentTarget as InputElement).value);\n      _changeFrequency(value);\n    });\n    querySelector(\"#quality-range\").onInput.listen((Event e) {\n      num value = double.parse((e.currentTarget as InputElement).value);\n      _changeQuality(value);\n    });\n  }\n\n  void _play() {\n    // Create the source.\n    _source = appCtx.audioCtx.createBufferSource();\n    _source.buffer = appCtx.buffers['example'];\n\n    // Create the filter.\n    _filter = appCtx.audioCtx.createBiquadFilter();\n    _filter.type = \"lowpass\";\n    _filter.frequency.value = _FREQ;\n\n    // Connect everything.\n    _source.connectNode(_filter, 0, 0);\n    _filter.connectNode(appCtx.audioCtx.destination, 0, 0);\n\n    // Play!\n    _source.start(0);\n    _source.loop = true;\n  }\n\n  void _stop() {\n    _source.stop(0);\n  }\n\n  void _toggle() {\n    _playing ? _stop() : _play();\n    _playing = !_playing;\n  }\n\n  void _toggleFilter(bool checked) {\n    _source.disconnect(0);\n    _filter.disconnect(0);\n\n    // Check if we want to enable the filter.\n    if (checked) {\n      // Connect through the filter.\n      _source.connectNode(_filter, 0, 0);\n      _filter.connectNode(appCtx.audioCtx.destination, 0, 0);\n    } else {\n      // Otherwise, connect directly.\n      _source.connectNode(appCtx.audioCtx.destination, 0, 0);\n    }\n  }\n\n  void _changeFrequency(num value) {\n    // Clamp the frequency between the minimum value (40 Hz) and half of the\n    // sampling rate.\n    var minValue = 40;\n    var maxValue = appCtx.audioCtx.sampleRate / 2;\n\n    // Logarithm (base 2) to compute how many octaves fall in the range.\n    var numberOfOctaves = log(maxValue / minValue) / LN2;\n\n    // Compute a multiplier from 0 to 1 based on an exponential scale.\n    var multiplier = pow(2, numberOfOctaves * (value - 1.0));\n\n    // Get back to the frequency value between min and max.\n    _filter.frequency.value = maxValue * multiplier;\n  }\n\n  void _changeQuality(num value) {\n    _filter.Q.value = value * _QUAL_MUL;\n  }\n}\n\nvoid main() {\n  new FilterSample(new ApplicationContext());\n}\n"
  },
  {
    "path": "html5/web/webaudio/intro/index.html",
    "content": "<!DOCTYPE html>\n\n<!--\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the LICENSE file.\n-->\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Getting Started with the Web Audio API: Filter Sample</title>\n  </head>\n  <body>\n    <input type=\"button\" value=\"Play/Pause\" id=\"play-pause-button\">\n    Filter on:\n    <input type=\"checkbox\" checked=\"false\" id=\"enable-filter-checkbox\">\n    Frequency:\n    <input type=\"range\" min=\"0\" max=\"1\" step=\"0.01\" value=\"1\" id=\"frequency-range\">\n    Quality:\n    <input type=\"range\" min=\"0\" max=\"1\" step=\"0.01\" value=\"0\" id=\"quality-range\">\n\n    <script type=\"application/dart\" src=\"filter_sample.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/webgl/2d_image/2d_image.dart",
    "content": "import 'dart:html';\nimport 'dart:typed_data';\nimport 'dart:web_gl' as WebGL;\nimport '../utils/webgl_utils.dart';\n\nvoid main() {\n  ImageElement image = querySelector('#photo');\n  render(image);\n}\n\nvoid render(image) {\n  // Get a WebGL context\n  var canvas = querySelector(\"canvas\");\n  var gl = getWebGLContext(canvas);\n  if (canvas is! CanvasElement || gl is! WebGL.RenderingContext) {\n    print(\"Failed to load canvas\");\n    return;\n  }\n\n  // setup GLSL program\n  var vertexShader = createShaderFromScriptElement(gl, \"#v2d-vertex-shader\");\n  var fragmentShader = createShaderFromScriptElement(gl, \"#f2d-fragment-shader\");\n  var program = createProgram(gl, [vertexShader, fragmentShader]);\n  gl.useProgram(program);\n\n  // look up where the vertex data needs to go.\n  var positionLocation = gl.getAttribLocation(program, \"a_position\");\n  var texCoordLocation = gl.getAttribLocation(program, \"a_texCoord\");\n\n  // provide texture coordinates for the rectangle.\n  var texCoordBuffer = gl.createBuffer();\n  gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, texCoordBuffer);\n  var vertices = [0.0,  0.0,\n                  1.0,  0.0,\n                  0.0,  1.0,\n                  0.0,  1.0,\n                  1.0,  0.0,\n                  1.0,  1.0];\n  gl.bufferDataTyped(WebGL.RenderingContext.ARRAY_BUFFER, new Float32List.fromList(vertices), WebGL.RenderingContext.STATIC_DRAW);\n  gl.enableVertexAttribArray(texCoordLocation);\n  gl.vertexAttribPointer(texCoordLocation, 2, WebGL.RenderingContext.FLOAT, false, 0, 0);\n\n  // Create a texture.\n  var texture = gl.createTexture();\n  gl.bindTexture(WebGL.RenderingContext.TEXTURE_2D, texture);\n\n  // Set the parameters so we can render any size image.\n  gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_WRAP_S, WebGL.RenderingContext.CLAMP_TO_EDGE);\n  gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_WRAP_T, WebGL.RenderingContext.CLAMP_TO_EDGE);\n  gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_MIN_FILTER, WebGL.RenderingContext.NEAREST);\n  gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_MAG_FILTER, WebGL.RenderingContext.NEAREST);\n\n  // Upload the image into the texture.\n  gl.texImage2DImage(WebGL.RenderingContext.TEXTURE_2D, 0, WebGL.RenderingContext.RGBA, WebGL.RenderingContext.RGBA, WebGL.RenderingContext.UNSIGNED_BYTE, image);\n\n  // lookup uniforms\n  var resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n\n  // set the resolution\n  gl.uniform2f(resolutionLocation, canvas.width, canvas.height);\n\n  // Create a buffer for the position of the rectangle corners.\n  var buffer = gl.createBuffer();\n  gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, buffer);\n  gl.enableVertexAttribArray(positionLocation);\n  gl.vertexAttribPointer(positionLocation, 2, WebGL.RenderingContext.FLOAT, false, 0, 0);\n\n  // Set a rectangle the same size as the image.\n  setRectangle(gl, 0.0, 0.0, image.width.toDouble(), image.height.toDouble());\n\n  // Draw the rectangle.\n  gl.drawArrays(WebGL.RenderingContext.TRIANGLES, 0, 6);\n}\n"
  },
  {
    "path": "html5/web/webgl/2d_image/index.html",
    "content": "<html>\n  <head>\n    <title>WebGL - 2D Image</title>\n    <link type=\"text/css\" href=\"../resources/webgl-tutorials.css\" rel=\"stylesheet\" />\n    <!-- vertex shader -->\n\t<script id=\"v2d-vertex-shader\" type=\"x-shader/x-vertex\">\n\tattribute vec2 a_position;\n\tattribute vec2 a_texCoord;\n\t\n\tuniform vec2 u_resolution;\n\t\n\tvarying vec2 v_texCoord;\n\t\n\tvoid main() {\n\t   // convert the rectangle from pixels to 0.0 to 1.0\n\t   vec2 zeroToOne = a_position / u_resolution;\n\t\n\t   // convert from 0->1 to 0->2\n\t   vec2 zeroToTwo = zeroToOne * 2.0;\n\t\n\t   // convert from 0->2 to -1->+1 (clipspace)\n\t   vec2 clipSpace = zeroToTwo - 1.0;\n\t\n\t   gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);\n\t\n\t   // pass the texCoord to the fragment shader\n\t   // The GPU will interpolate this value between points.\n\t   v_texCoord = a_texCoord;\n\t}\n\t</script></script>\n\t<!-- fragment shader -->\n\t<script id=\"f2d-fragment-shader\" type=\"x-shader/x-fragment\">\n\tprecision mediump float;\n\t\n\t// our texture\n\tuniform sampler2D u_image;\n\t\n\t// the texCoords passed in from the vertex shader.\n\tvarying vec2 v_texCoord;\n\t\n\tvoid main() {\n\t   gl_FragColor = texture2D(u_image, v_texCoord);\n\t}\n\t</script>\n  </head>\n  <body>\n    <h1>WebGL - 2D Image</h1>\n    <img id=\"photo\" style=\"visibility:hidden;position:absolute;\" alt=\"\" src=\"../resources/photo.jpg\" />\n    <canvas id=\"canvas\" style=\"position:absolute;\" width=\"400\" height=\"300\"></canvas>\n    <script type=\"application/dart\" src=\"2d_image.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>  \n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/webgl/2d_image_3x3_convolution/2d_image_3x3_convolution.dart",
    "content": "import 'dart:html';\nimport 'dart:typed_data';\nimport 'dart:web_gl' as WebGL;\nimport '../utils/webgl_utils.dart';\n\nvoid main() {\n  ImageElement image = querySelector('#photo');\n  render(image);\n}\n\nvoid render(image) {\n  // Get a WebGL context\n  var canvas = querySelector(\"canvas\");\n  var gl = getWebGLContext(canvas);\n  if (canvas is! CanvasElement || gl is! WebGL.RenderingContext) {\n    print(\"Failed to load canvas\");\n    return;\n  }\n\n  // setup GLSL program\n  var vertexShader = createShaderFromScriptElement(gl, \"#v2d-vertex-shader\");\n  var fragmentShader = createShaderFromScriptElement(gl, \"#f2d-fragment-shader\");\n  var program = createProgram(gl, [vertexShader, fragmentShader]);\n  gl.useProgram(program);\n\n  // look up where the vertex data needs to go.\n  var positionLocation = gl.getAttribLocation(program, \"a_position\");\n  var texCoordLocation = gl.getAttribLocation(program, \"a_texCoord\");\n\n  // provide texture coordinates for the rectangle.\n  var texCoordBuffer = gl.createBuffer();\n  gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, texCoordBuffer);\n  var vertices = [0.0,  0.0,\n                  1.0,  0.0,\n                  0.0,  1.0,\n                  0.0,  1.0,\n                  1.0,  0.0,\n                  1.0,  1.0];\n  gl.bufferDataTyped(WebGL.RenderingContext.ARRAY_BUFFER, new Float32List.fromList(vertices), WebGL.RenderingContext.STATIC_DRAW);\n  gl.enableVertexAttribArray(texCoordLocation);\n  gl.vertexAttribPointer(texCoordLocation, 2, WebGL.RenderingContext.FLOAT, false, 0, 0);\n\n  // Create a texture.\n  var texture = gl.createTexture();\n  gl.bindTexture(WebGL.RenderingContext.TEXTURE_2D, texture);\n\n  // Set the parameters so we can render any size image.\n  gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_WRAP_S, WebGL.RenderingContext.CLAMP_TO_EDGE);\n  gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_WRAP_T, WebGL.RenderingContext.CLAMP_TO_EDGE);\n  gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_MIN_FILTER, WebGL.RenderingContext.NEAREST);\n  gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_MAG_FILTER, WebGL.RenderingContext.NEAREST);\n\n  // Upload the image into the texture.\n  gl.texImage2DImage(WebGL.RenderingContext.TEXTURE_2D, 0, WebGL.RenderingContext.RGBA, WebGL.RenderingContext.RGBA, WebGL.RenderingContext.UNSIGNED_BYTE, image);\n\n  // lookup uniforms\n  var resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n  var textureSizeLocation = gl.getUniformLocation(program, \"u_textureSize\");\n  var kernelLocation = gl.getUniformLocation(program, \"u_kernel[0]\");\n\n  // set the resolution\n  gl.uniform2f(resolutionLocation, canvas.width, canvas.height);\n\n  // set the size of the image\n  gl.uniform2f(textureSizeLocation, image.width, image.height);\n\n  // Define several convolution kernels\n  Map<String, List<num>> kernels = {\n    \"normal\": [\n      0, 0, 0,\n      0, 1, 0,\n      0, 0, 0\n    ],\n    \"gaussianBlur\": [\n      0.045, 0.122, 0.045,\n      0.122, 0.332, 0.122,\n      0.045, 0.122, 0.045\n    ],\n    \"gaussianBlur2\": [\n      1, 2, 1,\n      2, 4, 2,\n      1, 2, 1\n    ],\n    \"gaussianBlur3\": [\n      0, 1, 0,\n      1, 1, 1,\n      0, 1, 0\n    ],\n    \"unsharpen\": [\n      -1, -1, -1,\n      -1,  9, -1,\n      -1, -1, -1\n    ],\n    \"sharpness\": [\n       0,-1, 0,\n      -1, 5,-1,\n       0,-1, 0\n    ],\n    \"sharpen\": [\n       -1, -1, -1,\n       -1, 16, -1,\n       -1, -1, -1\n    ],\n    \"edgeDetect\": [\n       -0.125, -0.125, -0.125,\n       -0.125,  1,     -0.125,\n       -0.125, -0.125, -0.125\n    ],\n    \"edgeDetect2\": [\n       -1, -1, -1,\n       -1,  8, -1,\n       -1, -1, -1\n    ],\n    \"edgeDetect3\": [\n       -5, 0, 0,\n        0, 0, 0,\n        0, 0, 5\n    ],\n    \"edgeDetect4\": [\n       -1, -1, -1,\n        0,  0,  0,\n        1,  1,  1\n    ],\n    \"edgeDetect5\": [\n       -1, -1, -1,\n        2,  2,  2,\n       -1, -1, -1\n    ],\n    \"edgeDetect6\": [\n       -5, -5, -5,\n       -5, 39, -5,\n       -5, -5, -5\n    ],\n    \"sobelHorizontal\": [\n        1,  2,  1,\n        0,  0,  0,\n       -1, -2, -1\n    ],\n    \"sobelVertical\": [\n        1,  0, -1,\n        2,  0, -2,\n        1,  0, -1\n    ],\n    \"previtHorizontal\": [\n        1,  1,  1,\n        0,  0,  0,\n       -1, -1, -1\n    ],\n    \"previtVertical\": [\n        1,  0, -1,\n        1,  0, -1,\n        1,  0, -1\n    ],\n    \"boxBlur\": [\n        0.111, 0.111, 0.111,\n        0.111, 0.111, 0.111,\n        0.111, 0.111, 0.111\n    ],\n    \"triangleBlur\": [\n        0.0625, 0.125, 0.0625,\n        0.125,  0.25,  0.125,\n        0.0625, 0.125, 0.0625\n    ],\n    \"emboss\": [\n       -2, -1,  0,\n       -1,  1,  1,\n        0,  1,  2\n    ]\n  };\n\n  // Setup method to draw arrays\n  drawWithKernel(name) {\n    // set the kernel\n    gl.uniform1fv(kernelLocation,\n        new Float32List.fromList(kernels[name].map((n)=>n.toDouble()).toList()));\n\n    // Draw the rectangle.\n    gl.drawArrays(WebGL.RenderingContext.TRIANGLES, 0, 6);\n  };\n\n\n  // Setup UI to pick kernels.\n  var initialSelection = 'emboss';\n  var ui = querySelector('#ui');\n  SelectElement select = new Element.tag('select');\n  kernels.forEach((name, value) {\n    OptionElement option = new Element.tag('option');\n    option.value = name;\n    if (name == initialSelection) {\n      option.selected = true;\n    }\n\n    option.text = name;\n    select.nodes.add(option);\n  });\n\n  select.onChange.listen((var event) {\n    drawWithKernel(select.value);\n  });\n\n  ui.nodes.add(select);\n\n  // Create a buffer for the position of the rectangle corners.\n  var positionBuffer = gl.createBuffer();\n  gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, positionBuffer);\n  gl.enableVertexAttribArray(positionLocation);\n  gl.vertexAttribPointer(positionLocation, 2, WebGL.RenderingContext.FLOAT, false, 0, 0);\n\n  // Set a rectangle the same size as the image.\n  setRectangle(gl, 0.0, 0.0, image.width.toDouble(), image.height.toDouble());\n\n  drawWithKernel(initialSelection);\n}\n\n"
  },
  {
    "path": "html5/web/webgl/2d_image_3x3_convolution/index.html",
    "content": "<html>\n  <head>\n    <title>WebGL - 2D image 3x3 convolution</title>\n    <link type=\"text/css\" href=\"../resources/webgl-tutorials.css\" rel=\"stylesheet\" /></script>\n\t<!-- vertex shader -->\n\t<script id=\"v2d-vertex-shader\" type=\"x-shader/x-vertex\">\n\tattribute vec2 a_position;\n\tattribute vec2 a_texCoord;\n\t\n\tuniform vec2 u_resolution;\n\t\n\tvarying vec2 v_texCoord;\n\t\n\tvoid main() {\n\t   // convert the rectangle from pixels to 0.0 to 1.0\n\t   vec2 zeroToOne = a_position / u_resolution;\n\t\n\t   // convert from 0->1 to 0->2\n\t   vec2 zeroToTwo = zeroToOne * 2.0;\n\t\n\t   // convert from 0->2 to -1->+1 (clipspace)\n\t   vec2 clipSpace = zeroToTwo - 1.0;\n\t\n\t   gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);\n\t\n\t   // pass the texCoord to the fragment shader\n\t   // The GPU will interpolate this value between points.\n\t   v_texCoord = a_texCoord;\n\t}\n\t</script>\n\t<!-- fragment shader -->\n\t<script id=\"f2d-fragment-shader\" type=\"x-shader/x-fragment\">\n\tprecision mediump float;\n\t\n\t// our texture\n\tuniform sampler2D u_image;\n\tuniform vec2 u_textureSize;\n\tuniform float u_kernel[9];\n\t\n\t// the texCoords passed in from the vertex shader.\n\tvarying vec2 v_texCoord;\n\t\n\tvoid main() {\n\t   vec2 onePixel = vec2(1.0, 1.0) / u_textureSize;\n\t   vec4 colorSum =\n\t       texture2D(u_image, v_texCoord + onePixel * vec2(-1, -1)) * u_kernel[0] +\n\t       texture2D(u_image, v_texCoord + onePixel * vec2( 0, -1)) * u_kernel[1] +\n\t       texture2D(u_image, v_texCoord + onePixel * vec2( 1, -1)) * u_kernel[2] +\n\t       texture2D(u_image, v_texCoord + onePixel * vec2(-1,  0)) * u_kernel[3] +\n\t       texture2D(u_image, v_texCoord + onePixel * vec2( 0,  0)) * u_kernel[4] +\n\t       texture2D(u_image, v_texCoord + onePixel * vec2( 1,  0)) * u_kernel[5] +\n\t       texture2D(u_image, v_texCoord + onePixel * vec2(-1,  1)) * u_kernel[6] +\n\t       texture2D(u_image, v_texCoord + onePixel * vec2( 0,  1)) * u_kernel[7] +\n\t       texture2D(u_image, v_texCoord + onePixel * vec2( 1,  1)) * u_kernel[8] ;\n\t   float kernelWeight =\n\t       u_kernel[0] +\n\t       u_kernel[1] +\n\t       u_kernel[2] +\n\t       u_kernel[3] +\n\t       u_kernel[4] +\n\t       u_kernel[5] +\n\t       u_kernel[6] +\n\t       u_kernel[7] +\n\t       u_kernel[8] ;\n\t\n\t   if (kernelWeight <= 0.0) {\n\t     kernelWeight = 1.0;\n\t   }\n\t\n\t   gl_FragColor = vec4((colorSum / kernelWeight).rgb, 1);\n\t}\n\t</script>\n  </head>\n  <body>\n    <h1>WebGL - 2D image 3x3 convolution</h1>\n    <img id=\"photo\" style=\"visibility:hidden;position:absolute;\" alt=\"\" src=\"../resources/photo.jpg\" />\n    <canvas id=\"canvas\" style=\"position:absolute;\" width=\"400\" height=\"300\"></canvas>\n    <div id=\"uiContainer\">\n\t  <div id=\"ui\"></div>\n\t</div>\n    <script type=\"application/dart\" src=\"2d_image_3x3_convolution.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/webgl/2d_image_blend/2d_image_blend.dart",
    "content": "import 'dart:html';\nimport 'dart:typed_data';\nimport 'dart:web_gl' as WebGL;\nimport '../utils/webgl_utils.dart';\n\n//http://www.cake23.de/traveling-wavefronts-lit-up.html\nvoid main() {\n  ImageElement image = querySelector('#photo');\n  render(image);\n}\n\nvoid render(image) {\n  // Get a WebGL context\n  var canvas = querySelector(\"canvas\");\n  var gl = getWebGLContext(canvas);\n  if (canvas is! CanvasElement || gl is! WebGL.RenderingContext) {\n    print(\"Failed to load canvas\");\n    return;\n  }\n\n  // setup GLSL program\n  var vertexShader = createShaderFromScriptElement(gl, \"#v2d-vertex-shader\");\n  var fragmentShader = createShaderFromScriptElement(gl, \"#f2d-fragment-shader\");\n  var program = createProgram(gl, [vertexShader, fragmentShader]);\n  gl.useProgram(program);\n\n  // look up where the vertex data needs to go.\n  var positionLocation = gl.getAttribLocation(program, \"a_position\");\n  var texCoordLocation = gl.getAttribLocation(program, \"a_texCoord\");\n\n  // provide texture coordinates for the rectangle.\n  var texCoordBuffer = gl.createBuffer();\n  gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, texCoordBuffer);\n  var vertices = [0.0,  0.0,\n                  1.0,  0.0,\n                  0.0,  1.0,\n                  0.0,  1.0,\n                  1.0,  0.0,\n                  1.0,  1.0];\n  gl.bufferDataTyped(WebGL.RenderingContext.ARRAY_BUFFER, new Float32List.fromList(vertices), WebGL.RenderingContext.STATIC_DRAW);\n  gl.enableVertexAttribArray(texCoordLocation);\n  gl.vertexAttribPointer(texCoordLocation, 2, WebGL.RenderingContext.FLOAT, false, 0, 0);\n\n  // Create a texture.\n  var texture = gl.createTexture();\n  gl.bindTexture(WebGL.RenderingContext.TEXTURE_2D, texture);\n\n  // Set the parameters so we can render any size image.\n  gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_WRAP_S, WebGL.RenderingContext.CLAMP_TO_EDGE);\n  gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_WRAP_T, WebGL.RenderingContext.CLAMP_TO_EDGE);\n  gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_MIN_FILTER, WebGL.RenderingContext.NEAREST);\n  gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_MAG_FILTER, WebGL.RenderingContext.NEAREST);\n\n  // Upload the image into the texture.\n  gl.texImage2DImage(WebGL.RenderingContext.TEXTURE_2D, 0, WebGL.RenderingContext.RGBA, WebGL.RenderingContext.RGBA, WebGL.RenderingContext.UNSIGNED_BYTE, image);\n\n  // lookup uniforms\n  var resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n  var textureSizeLocation = gl.getUniformLocation(program, \"u_textureSize\");\n\n  // set the resolution\n  gl.uniform2f(resolutionLocation, canvas.width, canvas.height);\n\n  // set the size of the image\n  gl.uniform2f(textureSizeLocation, image.width, image.height);\n\n  // Create a buffer for the position of the rectangle corners.\n  var positionBuffer = gl.createBuffer();\n  gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, positionBuffer);\n  gl.enableVertexAttribArray(positionLocation);\n  gl.vertexAttribPointer(positionLocation, 2, WebGL.RenderingContext.FLOAT, false, 0, 0);\n\n  // Set a rectangle the same size as the image.\n  setRectangle(gl, 0.0, 0.0, image.width.toDouble(), image.height.toDouble());\n\n  // Draw the rectangle\n  gl.drawArrays(WebGL.RenderingContext.TRIANGLES, 0, 6);\n}\n"
  },
  {
    "path": "html5/web/webgl/2d_image_blend/index.html",
    "content": "<html>\n  <head>\n    <title>WebGL - 2D Image Blend</title>\n    <link type=\"text/css\" href=\"../resources/webgl-tutorials.css\" rel=\"stylesheet\" />\n    <!-- vertex shader -->\n\t<script id=\"v2d-vertex-shader\" type=\"x-shader/x-vertex\">\n\tattribute vec2 a_position;\n\tattribute vec2 a_texCoord;\n\t\n\tuniform vec2 u_resolution;\n\t\n\tvarying vec2 v_texCoord;\n\t\n\tvoid main() {\n\t   // convert the rectangle from pixels to 0.0 to 1.0\n\t   vec2 zeroToOne = a_position / u_resolution;\n\t\n\t   // convert from 0->1 to 0->2\n\t   vec2 zeroToTwo = zeroToOne * 2.0;\n\t\n\t   // convert from 0->2 to -1->+1 (clipspace)\n\t   vec2 clipSpace = zeroToTwo - 1.0;\n\t\n\t   gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);\n\t\n\t   // pass the texCoord to the fragment shader\n\t   // The GPU will interpolate this value between points.\n\t   v_texCoord = a_texCoord;\n\t}\n\t</script>\n\t<!-- fragment shader -->\n\t<script id=\"f2d-fragment-shader\" type=\"x-shader/x-fragment\">\n\tprecision mediump float;\n\t\n\t// our texture\n\tuniform sampler2D u_image;\n\tuniform vec2 u_textureSize;\n\t\n\t// the texCoords passed in from the vertex shader.\n\tvarying vec2 v_texCoord;\n\t\n\tvoid main() {\n\t   vec2 onePixel = vec2(1.0, 1.0) / u_textureSize;\n\t   gl_FragColor = (\n\t       texture2D(u_image, v_texCoord) +\n\t       texture2D(u_image, v_texCoord + vec2(onePixel.x, 0.0)) +\n\t       texture2D(u_image, v_texCoord + vec2(-onePixel.x, 0.0))) / 3.0;\n\t}\n\t</script>\n  </head>\n  <body>\n    <h1>WebGL - 2D Image Blend</h1>\n   \t<img id=\"photo\" style=\"visibility:hidden;position:absolute;\" alt=\"\" src=\"../resources/photo.jpg\" />\n   \t<canvas id=\"canvas\" style=\"position:absolute;\" width=\"400\" height=\"300\"></canvas>\n    <script type=\"application/dart\" src=\"2d_image_blend.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/webgl/2d_image_processing/2d_image_processing.dart",
    "content": "import 'dart:html';\nimport 'dart:typed_data';\nimport 'dart:web_gl' as WebGL;\nimport '../utils/webgl_utils.dart';\n\nList neffects = new List();\n\nvoid main() {\n  ImageElement image = querySelector('#photo');\n  render(image);\n}\n\nvoid render(image) {\n  // Get a WebGL context\n  var canvas = querySelector(\"canvas\");\n  var gl = getWebGLContext(canvas);\n  if (canvas is! CanvasElement || gl is! WebGL.RenderingContext) {\n    print(\"Failed to load canvas\");\n    return;\n  }\n\n  // setup GLSL program\n  var vertexShader = createShaderFromScriptElement(gl, \"#v2d-vertex-shader\");\n  var fragmentShader = createShaderFromScriptElement(gl, \"#f2d-fragment-shader\");\n  var program = createProgram(gl, [vertexShader, fragmentShader]);\n  gl.useProgram(program);\n\n  // look up where the vertex data needs to go.\n  var positionLocation = gl.getAttribLocation(program, \"a_position\");\n  var texCoordLocation = gl.getAttribLocation(program, \"a_texCoord\");\n\n  // provide texture coordinates for the rectangle.\n  var texCoordBuffer = gl.createBuffer();\n  gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, texCoordBuffer);\n  var vertices = [0.0,  0.0,\n                  1.0,  0.0,\n                  0.0,  1.0,\n                  0.0,  1.0,\n                  1.0,  0.0,\n                  1.0,  1.0];\n  gl.bufferDataTyped(WebGL.RenderingContext.ARRAY_BUFFER, new Float32List.fromList(vertices), WebGL.RenderingContext.STATIC_DRAW);\n  gl.enableVertexAttribArray(texCoordLocation);\n  gl.vertexAttribPointer(texCoordLocation, 2, WebGL.RenderingContext.FLOAT, false, 0, 0);\n\n  WebGL.Texture createAndSetupTexture() {\n    // Create a texture.\n    var texture = gl.createTexture();\n    gl.bindTexture(WebGL.RenderingContext.TEXTURE_2D, texture);\n\n    // Set the parameters so we can render any size image.\n    gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_WRAP_S, WebGL.RenderingContext.CLAMP_TO_EDGE);\n    gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_WRAP_T, WebGL.RenderingContext.CLAMP_TO_EDGE);\n    gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_MIN_FILTER, WebGL.RenderingContext.NEAREST);\n    gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_MAG_FILTER, WebGL.RenderingContext.NEAREST);\n\n    return texture;\n  };\n\n  // Create a texture and put the image in it.\n  var originalImageTexture = createAndSetupTexture();\n  gl.texImage2DImage(WebGL.RenderingContext.TEXTURE_2D, 0, WebGL.RenderingContext.RGBA, WebGL.RenderingContext.RGBA, WebGL.RenderingContext.UNSIGNED_BYTE, image);\n\n  // Create 2 textures and attach them to framebuffers.\n  var textures = [];\n  var framebuffers = [];\n  for (var i=0; i<2; ++i) {\n    var texture = createAndSetupTexture();\n    textures.add(texture);\n\n    // make the texture the same size as the image\n    gl.texImage2DTyped(WebGL.RenderingContext.TEXTURE_2D, 0, WebGL.RenderingContext.RGBA, image.width,\n      image.height, 0, WebGL.RenderingContext.RGBA, WebGL.RenderingContext.UNSIGNED_BYTE, null);\n\n    // Create a framebuffer\n    var fbo = gl.createFramebuffer();\n    framebuffers.add(fbo);\n    gl.bindFramebuffer(WebGL.RenderingContext.FRAMEBUFFER, fbo);\n\n    // Attach a texture to it.\n    gl.framebufferTexture2D(WebGL.RenderingContext.FRAMEBUFFER,\n      WebGL.RenderingContext.COLOR_ATTACHMENT0, WebGL.RenderingContext.TEXTURE_2D, texture, 0);\n\n  }\n\n  // lookup uniforms\n  var resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n  var textureSizeLocation = gl.getUniformLocation(program, \"u_textureSize\");\n  var kernelLocation = gl.getUniformLocation(program, \"u_kernel[0]\");\n  var flipYLocation = gl.getUniformLocation(program, \"u_flipY\");\n\n  // set the size of the image\n  gl.uniform2f(textureSizeLocation, image.width, image.height);\n\n  // Define several convolution kernels\n  var kernels = {\n    \"normal\": [\n      0, 0, 0,\n      0, 1, 0,\n      0, 0, 0\n    ],\n    \"gaussianBlur\": [\n      0.045, 0.122, 0.045,\n      0.122, 0.332, 0.122,\n      0.045, 0.122, 0.045\n    ],\n    \"gaussianBlur2\": [\n      1, 2, 1,\n      2, 4, 2,\n      1, 2, 1\n    ],\n    \"gaussianBlur3\": [\n      0, 1, 0,\n      1, 1, 1,\n      0, 1, 0\n    ],\n    \"unsharpen\": [\n      -1, -1, -1,\n      -1,  9, -1,\n      -1, -1, -1\n    ],\n    \"sharpness\": [\n       0,-1, 0,\n      -1, 5,-1,\n       0,-1, 0\n    ],\n    \"sharpen\": [\n       -1, -1, -1,\n       -1, 16, -1,\n       -1, -1, -1\n    ],\n    \"edgeDetect\": [\n       -0.125, -0.125, -0.125,\n       -0.125,  1,     -0.125,\n       -0.125, -0.125, -0.125\n    ],\n    \"edgeDetect2\": [\n       -1, -1, -1,\n       -1,  8, -1,\n       -1, -1, -1\n    ],\n    \"edgeDetect3\": [\n       -5, 0, 0,\n        0, 0, 0,\n        0, 0, 5\n    ],\n    \"edgeDetect4\": [\n       -1, -1, -1,\n        0,  0,  0,\n        1,  1,  1\n    ],\n    \"edgeDetect5\": [\n       -1, -1, -1,\n        2,  2,  2,\n       -1, -1, -1\n    ],\n    \"edgeDetect6\": [\n       -5, -5, -5,\n       -5, 39, -5,\n       -5, -5, -5\n    ],\n    \"sobelHorizontal\": [\n        1,  2,  1,\n        0,  0,  0,\n       -1, -2, -1\n    ],\n    \"sobelVertical\": [\n        1,  0, -1,\n        2,  0, -2,\n        1,  0, -1\n    ],\n    \"previtHorizontal\": [\n        1,  1,  1,\n        0,  0,  0,\n       -1, -1, -1\n    ],\n    \"previtVertical\": [\n        1,  0, -1,\n        1,  0, -1,\n        1,  0, -1\n    ],\n    \"boxBlur\": [\n        0.111, 0.111, 0.111,\n        0.111, 0.111, 0.111,\n        0.111, 0.111, 0.111\n    ],\n    \"triangleBlur\": [\n        0.0625, 0.125, 0.0625,\n        0.125,  0.25,  0.125,\n        0.0625, 0.125, 0.0625\n    ],\n    \"emboss\": [\n       -2, -1,  0,\n       -1,  1,  1,\n        0,  1,  2\n    ]\n  };\n\n  // Create a buffer for the position of the rectangle corners.\n  var positionBuffer = gl.createBuffer();\n  gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, positionBuffer);\n  gl.enableVertexAttribArray(positionLocation);\n  gl.vertexAttribPointer(positionLocation, 2, WebGL.RenderingContext.FLOAT, false, 0, 0);\n\n  // Set a rectangle the same size as the image.\n  setRectangle(gl, 0.0, 0.0, image.width.toDouble(), image.height.toDouble());\n\n  var effects = [\n                 { \"name\": \"normal\", \"on\": true },\n                 { \"name\": \"gaussianBlur3\", \"on\": false },\n                 { \"name\": \"gaussianBlur3\", \"on\": false },\n                 { \"name\": \"gaussianBlur3\", \"on\": false },\n                 { \"name\": \"sharpness\", \"on\": false},\n                 { \"name\": \"sharpness\", \"on\": false},\n                 { \"name\": \"sharpness\", \"on\": false},\n                 { \"name\": \"sharpen\", \"on\": false},\n                 { \"name\": \"sharpen\", \"on\": false},\n                 { \"name\": \"sharpen\", \"on\": false},\n                 { \"name\": \"unsharpen\", \"on\": false},\n                 { \"name\": \"unsharpen\", \"on\": false},\n                 { \"name\": \"unsharpen\", \"on\": false},\n                 { \"name\": \"emboss\", \"on\": false },\n                 { \"name\": \"edgeDetect\", \"on\": false},\n                 { \"name\": \"edgeDetect\", \"on\": false},\n                 { \"name\": \"edgeDetect3\", \"on\": false},\n                 { \"name\": \"edgeDetect3\", \"on\": false}\n               ];\n\n  // Setup a UI\n  var ui = document.querySelector('#ui');\n  var table = new Element.tag('table');\n  var tbody = new Element.tag('tbody');\n\n  setFramebuffer(l_fbo, l_width, l_height) {\n    // make this the framebuffer we are rendering to.\n    gl.bindFramebuffer(WebGL.RenderingContext.FRAMEBUFFER, l_fbo);\n\n    // Tell the shader the resolution of the framebuffer.\n    gl.uniform2f(resolutionLocation, l_width, l_height);\n\n    // Tell webgl the viewport setting needed for framebuffer;\n    gl.viewport(0, 0, l_width, l_height);\n  };\n\n  // Setup method to draw arrays\n  drawWithKernel(name) {\n    // set the kernel\n    gl.uniform1fv(kernelLocation,\n        new Float32List.fromList(kernels[name].map((n)=>n.toDouble()).toList()));\n\n    // Draw the rectangle.\n    gl.drawArrays(WebGL.RenderingContext.TRIANGLES, 0, 6);\n  };\n\n  drawEffects() {\n    // start with the original image\n    gl.bindTexture(WebGL.RenderingContext.TEXTURE_2D, originalImageTexture);\n\n    // don't y flip images while drawing to the textures\n    gl.uniform1f(flipYLocation, 1);\n\n    // loop through each effect we want to apply.\n    var count = 0;\n    neffects.forEach((var effect) {\n        // Setup to draw into one of the framebuffers.\n        setFramebuffer(framebuffers[count%2], image.width, image.height);\n\n        drawWithKernel(effect);\n\n        // for the next draw, use the texture we just rendered to.\n        gl.bindTexture(WebGL.RenderingContext.TEXTURE_2D, textures[count%2]);\n\n        // increment count so we use the other texture next time.\n        ++count;\n    });\n\n    // finally draw the result to the canvas.\n    gl.uniform1f(flipYLocation, -1); // need to y flip for canvas\n    setFramebuffer(null, canvas.width, canvas.height);\n    drawWithKernel(\"normal\");\n  };\n\n  List selects = new List();\n  // This is a little brain dead\n  for (int i=0; i<effects.length; ++i) {\n    var select = new Element.tag('select');\n    selects.add(select);\n    for (int j=0; j<effects.length; j++) {\n      effects.forEach((effect) {\n        OptionElement option = new Element.tag('option');\n        option.value = effect[\"name\"];\n        if (effect[\"name\"] == \"normal\") {\n          option.selected = true;\n        }\n        option.text = effect[\"name\"];\n        select.nodes.add(option);\n      });\n    }\n  }\n\n  // Its late and I'm tired. :(\n  List sss = selects; // Avoid bug with closure over selects\n  selects.forEach((s) {\n    ui.nodes.add(s);\n    s.onChange.listen((event) {\n      neffects.clear();\n      int ncount=0;\n      sss.forEach((select) {\n        if (!(select.name == \"normal\" && ncount != 0)) {\n          neffects.add(select.value);\n        }\n\n        if (select.name ==\"normal\" && ncount==0) {\n          ncount++;\n        }\n      });\n      // On a value change draw the effects.\n      drawEffects();\n    });\n  });\n\n  drawEffects();\n}\n"
  },
  {
    "path": "html5/web/webgl/2d_image_processing/index.html",
    "content": "<html>\n  <head>\n    <title>WebGL - 2D image processing</title>\n    <link type=\"text/css\" href=\"../resources/webgl-tutorials.css\" rel=\"stylesheet\" /></script>\n    <style>\n\t#ui {\n\t  font-size: x-small;\n\t}\n\ttable {\n\t    border-collapse: collapse;\n\t}\n\t.tDnD_whileDrag {\n\t  background-color: #daf !important;\n\t}\n\ttr:nth-child(odd) {\n\t  background-color: #eee;\n\t}\n\ttr:nth-child(even) {\n\t  background-color: #def;\n\t}\n\ttd {\n\t  border-width: 0px;\n\t  padding: 0px;\n\t  margin: 0px;\n\t}\n\t</style>\n\t    \n\t<!-- vertex shader -->\n\t<script id=\"v2d-vertex-shader\" type=\"x-shader/x-vertex\">\n\tattribute vec2 a_position;\n\tattribute vec2 a_texCoord;\n\t\n\tuniform vec2 u_resolution;\n\tuniform float u_flipY;\n\t\n\tvarying vec2 v_texCoord;\n\t\n\tvoid main() {\n\t   // convert the rectangle from pixels to 0.0 to 1.0\n\t   vec2 zeroToOne = a_position / u_resolution;\n\t\n\t   // convert from 0->1 to 0->2\n\t   vec2 zeroToTwo = zeroToOne * 2.0;\n\t\n\t   // convert from 0->2 to -1->+1 (clipspace)\n\t   vec2 clipSpace = zeroToTwo - 1.0;\n\t\n\t   gl_Position = vec4(clipSpace * vec2(1, u_flipY), 0, 1);\n\t\n\t   // pass the texCoord to the fragment shader\n\t   // The GPU will interpolate this value between points.\n\t   v_texCoord = a_texCoord;\n\t}\n\t</script>\n\t<!-- fragment shader -->\n\t<script id=\"f2d-fragment-shader\" type=\"x-shader/x-fragment\">\n\tprecision mediump float;\n\t\n\t// our texture\n\tuniform sampler2D u_image;\n\tuniform vec2 u_textureSize;\n\tuniform float u_kernel[9];\n\t\n\t// the texCoords passed in from the vertex shader.\n\tvarying vec2 v_texCoord;\n\t\n\tvoid main() {\n\t   vec2 onePixel = vec2(1.0, 1.0) / u_textureSize;\n\t   vec4 colorSum =\n\t       texture2D(u_image, v_texCoord + onePixel * vec2(-1, -1)) * u_kernel[0] +\n\t       texture2D(u_image, v_texCoord + onePixel * vec2( 0, -1)) * u_kernel[1] +\n\t       texture2D(u_image, v_texCoord + onePixel * vec2( 1, -1)) * u_kernel[2] +\n\t       texture2D(u_image, v_texCoord + onePixel * vec2(-1,  0)) * u_kernel[3] +\n\t       texture2D(u_image, v_texCoord + onePixel * vec2( 0,  0)) * u_kernel[4] +\n\t       texture2D(u_image, v_texCoord + onePixel * vec2( 1,  0)) * u_kernel[5] +\n\t       texture2D(u_image, v_texCoord + onePixel * vec2(-1,  1)) * u_kernel[6] +\n\t       texture2D(u_image, v_texCoord + onePixel * vec2( 0,  1)) * u_kernel[7] +\n\t       texture2D(u_image, v_texCoord + onePixel * vec2( 1,  1)) * u_kernel[8] ;\n\t   float kernelWeight =\n\t       u_kernel[0] +\n\t       u_kernel[1] +\n\t       u_kernel[2] +\n\t       u_kernel[3] +\n\t       u_kernel[4] +\n\t       u_kernel[5] +\n\t       u_kernel[6] +\n\t       u_kernel[7] +\n\t       u_kernel[8] ;\n\t\n\t   if (kernelWeight <= 0.0) {\n\t     kernelWeight = 1.0;\n\t   }\n\t\n\t   gl_FragColor = vec4((colorSum / kernelWeight).rgb, 1);\n\t}\n\t</script>\n  </head>\n  <body>\n    <h1>WebGL - 2D image processing</h1>\n\t<img id=\"photo\" style=\"visibility:hidden;position:absolute;\" alt=\"\" src=\"../resources/photo.jpg\" />\n\t<canvas id=\"canvas\" style=\"position:absolute;\" width=\"400\" height=\"300\"></canvas>\n    <div id=\"uiContainer\">\n\t  <div id=\"ui\" style=\"position:absolute;right:0px;width:200px;\"></div>\n\t</div>\n    <script type=\"application/dart\" src=\"2d_image_processing.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/webgl/2d_image_red_2_blue/2d_image_red_2_blue.dart",
    "content": "import 'dart:html';\nimport 'dart:typed_data';\nimport 'dart:web_gl' as WebGL;\nimport '../utils/webgl_utils.dart';\n\nvoid main() {\n  ImageElement image = querySelector('#photo');\n  render(image);\n}\n\nvoid render(image) {\n  // Get a WebGL context\n  var canvas = querySelector(\"canvas\");\n  var gl = getWebGLContext(canvas);\n  if (canvas is! CanvasElement || gl is! WebGL.RenderingContext) {\n    print(\"Failed to load canvas\");\n    return;\n  }\n\n  // setup GLSL program\n  var vertexShader = createShaderFromScriptElement(gl, \"#v2d-vertex-shader\");\n  var fragmentShader = createShaderFromScriptElement(gl, \"#f2d-fragment-shader\");\n  var program = createProgram(gl, [vertexShader, fragmentShader]);\n  gl.useProgram(program);\n\n  // look up where the vertex data needs to go.\n  var positionLocation = gl.getAttribLocation(program, \"a_position\");\n  var texCoordLocation = gl.getAttribLocation(program, \"a_texCoord\");\n\n  // provide texture coordinates for the rectangle.\n  var texCoordBuffer = gl.createBuffer();\n  gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, texCoordBuffer);\n  var vertices = [0.0,  0.0,\n                  1.0,  0.0,\n                  0.0,  1.0,\n                  0.0,  1.0,\n                  1.0,  0.0,\n                  1.0,  1.0];\n  gl.bufferDataTyped(WebGL.RenderingContext.ARRAY_BUFFER, new Float32List.fromList(vertices), WebGL.RenderingContext.STATIC_DRAW);\n  gl.enableVertexAttribArray(texCoordLocation);\n  gl.vertexAttribPointer(texCoordLocation, 2, WebGL.RenderingContext.FLOAT, false, 0, 0);\n\n  // Create a texture.\n  var texture = gl.createTexture();\n  gl.bindTexture(WebGL.RenderingContext.TEXTURE_2D, texture);\n\n  // Set the parameters so we can render any size image.\n  gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_WRAP_S, WebGL.RenderingContext.CLAMP_TO_EDGE);\n  gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_WRAP_T, WebGL.RenderingContext.CLAMP_TO_EDGE);\n  gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_MIN_FILTER, WebGL.RenderingContext.NEAREST);\n  gl.texParameteri(WebGL.RenderingContext.TEXTURE_2D, WebGL.RenderingContext.TEXTURE_MAG_FILTER, WebGL.RenderingContext.NEAREST);\n\n  // Upload the image into the texture.\n  gl.texImage2DImage(WebGL.RenderingContext.TEXTURE_2D, 0, WebGL.RenderingContext.RGBA, WebGL.RenderingContext.RGBA, WebGL.RenderingContext.UNSIGNED_BYTE, image);\n\n  // lookup uniforms\n  var resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n\n  // set the resolution\n  gl.uniform2f(resolutionLocation, canvas.width, canvas.height);\n\n  // Create a buffer for the position of the rectangle corners.\n  var positionBuffer = gl.createBuffer();\n  gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, positionBuffer);\n  gl.enableVertexAttribArray(positionLocation);\n  gl.vertexAttribPointer(positionLocation, 2, WebGL.RenderingContext.FLOAT, false, 0, 0);\n\n  // Set a rectangle the same size as the image.\n  setRectangle(gl, 0.0, 0.0, image.width.toDouble(), image.height.toDouble());\n\n  // Draw the rectangle\n  gl.drawArrays(WebGL.RenderingContext.TRIANGLES, 0, 6);\n}\n"
  },
  {
    "path": "html5/web/webgl/2d_image_red_2_blue/index.html",
    "content": "<html>\n  <head>\n    <title>WebGL - 2D Image Swap Red and Blue</title>\n    <link type=\"text/css\" href=\"../resources/webgl-tutorials.css\" rel=\"stylesheet\" />\n    <!-- vertex shader -->\n\t<script id=\"v2d-vertex-shader\" type=\"x-shader/x-vertex\">\n\tattribute vec2 a_position;\n\tattribute vec2 a_texCoord;\n\t\n\tuniform vec2 u_resolution;\n\t\n\tvarying vec2 v_texCoord;\n\t\n\tvoid main() {\n\t   // convert the rectangle from pixels to 0.0 to 1.0\n\t   vec2 zeroToOne = a_position / u_resolution;\n\t\n\t   // convert from 0->1 to 0->2\n\t   vec2 zeroToTwo = zeroToOne * 2.0;\n\t\n\t   // convert from 0->2 to -1->+1 (clipspace)\n\t   vec2 clipSpace = zeroToTwo - 1.0;\n\t\n\t   gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);\n\t\n\t   // pass the texCoord to the fragment shader\n\t   // The GPU will interpolate this value between points.\n\t   v_texCoord = a_texCoord;\n\t}\n\t</script></script>\n\t<!-- fragment shader -->\n\t<script id=\"f2d-fragment-shader\" type=\"x-shader/x-fragment\">\n\tprecision mediump float;\n\t\n\t// our texture\n\tuniform sampler2D u_image;\n\t\n\t// the texCoords passed in from the vertex shader.\n\tvarying vec2 v_texCoord;\n\t\n\tvoid main() {\n\t   gl_FragColor = texture2D(u_image, v_texCoord).bgra;\n\t}\n\t</script>\n  </head>\n  <body>\n    <h1>WebGL - 2D Image Swap Red and Blue</h1>\n    <img id=\"photo\" style=\"visibility:hidden;position:absolute;\" alt=\"\" src=\"../resources/photo.jpg\" />\n    <canvas id=\"canvas\" style=\"position:absolute;\" width=\"400\" height=\"300\"></canvas>\n    <script type=\"application/dart\" src=\"2d_image_red_2_blue.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/webgl/fundamentals/fundamentals.dart",
    "content": "import 'dart:html';\nimport 'dart:typed_data';\nimport 'dart:web_gl' as WebGL;\nimport '../utils/webgl_utils.dart';\n\nvoid main() {\n  var canvas = querySelector(\"canvas\");\n  var gl = getWebGLContext(canvas);\n  if (canvas is! CanvasElement || gl is! WebGL.RenderingContext) {\n    print(\"Failed to load canvas\");\n    return;\n  }\n\n  var vertexShader = createShaderFromScriptElement(gl, \"#v2d-vertex-shader\");\n  var fragmentShader = createShaderFromScriptElement(gl, \"#f2d-fragment-shader\");\n  var program = createProgram(gl, [vertexShader, fragmentShader]);\n  gl.useProgram(program);\n\n  // look up where the vertex data needs to go.\n  var positionLocation = gl.getAttribLocation(program, \"a_position\");\n\n  // Create a buffer and put a single clipspace rectangle in it (2 triangles)\n  var buffer = gl.createBuffer();\n  gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, buffer);\n  var vertices = [-1.0, -1.0,\n                   1.0, -1.0,\n                  -1.0,  1.0,\n                  -1.0,  1.0,\n                   1.0, -1.0,\n                   1.0,  1.0];\n  gl.bufferDataTyped(WebGL.RenderingContext.ARRAY_BUFFER, new Float32List.fromList(vertices), WebGL.RenderingContext.STATIC_DRAW);\n  gl.enableVertexAttribArray(positionLocation);\n  gl.vertexAttribPointer(positionLocation, 2, WebGL.RenderingContext.FLOAT, false, 0, 0);\n\n  // draw\n  gl.drawArrays(WebGL.RenderingContext.TRIANGLES, 0, 6);\n}\n"
  },
  {
    "path": "html5/web/webgl/fundamentals/index.html",
    "content": "<html>\n  <head>\n    <title>WebGL - Fundamentals</title>\n    <link type=\"text/css\" href=\"../resources/webgl-tutorials.css\" rel=\"stylesheet\" />\n    <!-- vertex shader -->\n\t<script id=\"v2d-vertex-shader\" type=\"x-shader/x-vertex\">\n\tattribute vec2 a_position;\n\tvoid main() {\n\t   gl_Position = vec4(a_position, 0, 1);\n\t}\n\t</script>\n\t<!-- fragment shader -->\n\t<script id=\"f2d-fragment-shader\" type=\"x-shader/x-fragment\">\n\tvoid main() {\n\t   gl_FragColor = vec4(0,1,0,1);  // green\n\t}\n\t</script>\n  </head>\n  <body>\n    <h1>WebGL - Fundamentals</h1>\n    <script type=\"application/dart\" src=\"fundamentals.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n\t<canvas id=\"canvas\" width=\"400\" height=\"300\"></canvas>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/webgl/rectangle/index.html",
    "content": "<html>\n  <head>\n    <title>WebGL - 2D Rectangle</title>\n    <link type=\"text/css\" href=\"../resources/webgl-tutorials.css\" rel=\"stylesheet\" />\n    <!-- vertex shader -->\n\t<script id=\"v2d-vertex-shader\" type=\"x-shader/x-vertex\">\n\tattribute vec2 a_position;\n\t\n\tuniform vec2 u_resolution;\n\t\n\tvoid main() {\n\t   // convert the rectangle from pixels to 0.0 to 1.0\n\t   vec2 zeroToOne = a_position / u_resolution;\n\t\n\t   // convert from 0->1 to 0->2\n\t   vec2 zeroToTwo = zeroToOne * 2.0;\n\t\n\t   // convert from 0->2 to -1->+1 (clipspace)\n\t   vec2 clipSpace = zeroToTwo - 1.0;\n\t\n\t   gl_Position = vec4(clipSpace, 0, 1);\n\t}\n\t</script>\n\t<!-- fragment shader -->\n\t<script id=\"f2d-fragment-shader\" type=\"x-shader/x-fragment\">\n\tvoid main() {\n\t   gl_FragColor = vec4(0,1,0,1);  // green\n\t}\n\t</script>\n  </head>\n  <body>\n    <h1>WebGL - 2D Rectangle</h1>\n    <script type=\"application/dart\" src=\"rectangle.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n    <canvas id=\"canvas\" width=\"400\" height=\"300\"></canvas>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/webgl/rectangle/rectangle.dart",
    "content": "import 'dart:html';\nimport 'dart:typed_data';\nimport 'dart:web_gl' as WebGL;\nimport '../utils/webgl_utils.dart';\n\nvoid main() {\n  // Get a WebGL context\n  var canvas = querySelector(\"canvas\");\n  var gl = getWebGLContext(canvas);\n  if (canvas is! CanvasElement || gl is! WebGL.RenderingContext) {\n    print(\"Failed to load canvas\");\n    return;\n  }\n\n  // setup GLSL program\n  var vertexShader = createShaderFromScriptElement(gl, \"#v2d-vertex-shader\");\n  var fragmentShader = createShaderFromScriptElement(gl, \"#f2d-fragment-shader\");\n  var program = createProgram(gl, [vertexShader, fragmentShader]);\n  gl.useProgram(program);\n\n  // look up where the vertext data needs to go.\n  var positionLocation = gl.getAttribLocation(program, \"a_position\");\n\n  // set the resolution\n  var resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n  gl.uniform2f(resolutionLocation, canvas.width, canvas.height);\n\n  // Create a buffer and put a single clipspace rectangle in it (2 triangles)\n  var buffer = gl.createBuffer();\n  gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, buffer);\n  var vertices = [10.0, 20.0,\n                  80.0, 20.0,\n                  10.0, 30.0,\n                  10.0, 30.0,\n                  80.0, 20.0,\n                  80.0, 30.0];\n  gl.bufferDataTyped(WebGL.RenderingContext.ARRAY_BUFFER, new Float32List.fromList(vertices), WebGL.RenderingContext.STATIC_DRAW);\n  gl.enableVertexAttribArray(positionLocation);\n  gl.vertexAttribPointer(positionLocation, 2, WebGL.RenderingContext.FLOAT, false, 0, 0);\n\n  // draw\n  gl.drawArrays(WebGL.RenderingContext.TRIANGLES, 0, 6);\n}\n\n"
  },
  {
    "path": "html5/web/webgl/rectangle_top_left/index.html",
    "content": "<html>\n  <head>\n    <title>WebGL - 2D Rectangle Top Left</title>\n    <link type=\"text/css\" href=\"../resources/webgl-tutorials.css\" rel=\"stylesheet\" />\n    <!-- vertex shader -->\n\t<script id=\"v2d-vertex-shader\" type=\"x-shader/x-vertex\">\n\tattribute vec2 a_position;\n\t\n\tuniform vec2 u_resolution;\n\t\n\tvoid main() {\n\t   // convert the rectangle from pixels to 0.0 to 1.0\n\t   vec2 zeroToOne = a_position / u_resolution;\n\t\n\t   // convert from 0->1 to 0->2\n\t   vec2 zeroToTwo = zeroToOne * 2.0;\n\t\n\t   // convert from 0->2 to -1->+1 (clipspace)\n\t   vec2 clipSpace = zeroToTwo - 1.0;\n\t\n\t   gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);\n\t}\n\t</script>\n\t<!-- fragment shader -->\n\t<script id=\"f2d-fragment-shader\" type=\"x-shader/x-fragment\">\n\tvoid main() {\n\t   gl_FragColor = vec4(0,1,0,1);  // green\n\t}\n\t</script>\n  </head>\n  <body>\n    <h1>WebGL - 2D Rectangle Top Left</h1>\n    <script type=\"application/dart\" src=\"rectangle_top_left.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n    <canvas id=\"canvas\" width=\"400\" height=\"300\"></canvas>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/webgl/rectangle_top_left/rectangle_top_left.dart",
    "content": "import 'dart:html';\nimport 'dart:typed_data';\nimport 'dart:web_gl' as WebGL;\nimport '../utils/webgl_utils.dart';\n\nvoid main() {\n  // Get a WebGL context\n  var canvas = querySelector(\"canvas\");\n  var gl = getWebGLContext(canvas);\n  if (canvas is! CanvasElement || gl is! WebGL.RenderingContext) {\n    print(\"Failed to load canvas\");\n    return;\n  }\n\n  // setup GLSL program\n  var vertexShader = createShaderFromScriptElement(gl, \"#v2d-vertex-shader\");\n  var fragmentShader = createShaderFromScriptElement(gl, \"#f2d-fragment-shader\");\n  var program = createProgram(gl, [vertexShader, fragmentShader]);\n  gl.useProgram(program);\n\n  // look up where the vertext data needs to go.\n  var positionLocation = gl.getAttribLocation(program, \"a_position\");\n\n  // set the resolution\n  var resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n  gl.uniform2f(resolutionLocation, canvas.width, canvas.height);\n\n  // Create a buffer and put a single clipspace rectangle in it (2 triangles)\n  var buffer = gl.createBuffer();\n  gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, buffer);\n  var vertices = [10.0, 20.0,\n                  80.0, 20.0,\n                  10.0, 30.0,\n                  10.0, 30.0,\n                  80.0, 20.0,\n                  80.0, 30.0];\n  gl.bufferDataTyped(WebGL.RenderingContext.ARRAY_BUFFER, new Float32List.fromList(vertices), WebGL.RenderingContext.STATIC_DRAW);\n  gl.enableVertexAttribArray(positionLocation);\n  gl.vertexAttribPointer(positionLocation, 2, WebGL.RenderingContext.FLOAT, false, 0, 0);\n\n  // draw\n  gl.drawArrays(WebGL.RenderingContext.TRIANGLES, 0, 6);\n}\n\n"
  },
  {
    "path": "html5/web/webgl/rectangles/index.html",
    "content": "<html>\n  <head>\n    <title>WebGL - 2D Rectangles</title>\n    <link type=\"text/css\" href=\"../resources/webgl-tutorials.css\" rel=\"stylesheet\" />\n    <!-- vertex shader -->\n\t<script id=\"v2d-vertex-shader\" type=\"x-shader/x-vertex\">\n\tattribute vec2 a_position;\n\t\n\tuniform vec2 u_resolution;\n\t\n\tvoid main() {\n\t   // convert the rectangle from pixels to 0.0 to 1.0\n\t   vec2 zeroToOne = a_position / u_resolution;\n\t\n\t   // convert from 0->1 to 0->2\n\t   vec2 zeroToTwo = zeroToOne * 2.0;\n\t\n\t   // convert from 0->2 to -1->+1 (clipspace)\n\t   vec2 clipSpace = zeroToTwo - 1.0;\n\t\n\t   gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);\n\t}\n\t</script>\n\t<!-- fragment shader -->\n\t<script id=\"f2d-fragment-shader\" type=\"x-shader/x-fragment\">\n\tprecision mediump float;\n\t\n\tuniform vec4 u_color;\n\t\n\tvoid main() {\n\t   gl_FragColor = u_color;\n\t}\n\t</script>\n  </head>\n  <body>\n    <h1>WebGL - 2D Rectangles</h1>\n    <script type=\"application/dart\" src=\"rectangles.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n    <canvas id=\"canvas\" width=\"400\" height=\"300\"></canvas>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/webgl/rectangles/rectangles.dart",
    "content": "import 'dart:html';\nimport 'dart:typed_data';\nimport 'dart:web_gl' as WebGL;\nimport 'dart:math';\nimport '../utils/webgl_utils.dart';\n\nvoid main() {\n  Random random = new Random();\n  // Get a WebGL context\n  var canvas = querySelector(\"canvas\");\n  var gl = getWebGLContext(canvas);\n  if (canvas is! CanvasElement || gl is! WebGL.RenderingContext) {\n    print(\"Failed to load canvas\");\n    return;\n  }\n\n  // setup GLSL program\n  var vertexShader = createShaderFromScriptElement(gl, \"#v2d-vertex-shader\");\n  var fragmentShader = createShaderFromScriptElement(gl, \"#f2d-fragment-shader\");\n  var program = createProgram(gl, [vertexShader, fragmentShader]);\n  gl.useProgram(program);\n\n  // look up where the vertext data needs to go.\n  var positionLocation = gl.getAttribLocation(program, \"a_position\");\n\n  // lookup uniforms\n  var resolutionLocation = gl.getUniformLocation(program, \"u_resolution\");\n  var colorLocation = gl.getUniformLocation(program, \"u_color\");\n\n  // set the resolution\n  gl.uniform2f(resolutionLocation, canvas.width, canvas.height);\n\n  // Create a buffer.\n  var buffer = gl.createBuffer();\n  gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, buffer);\n  gl.enableVertexAttribArray(positionLocation);\n  gl.vertexAttribPointer(positionLocation, 2, WebGL.RenderingContext.FLOAT, false, 0, 0);\n\n  // draw 50 random rectangles in random colors\n  for (int i=0; i<50; ++i) {\n    // Setup a random rectangle\n    setRectangle(gl, random.nextInt(300).toDouble(),\n        random.nextInt(300).toDouble(), random.nextInt(300).toDouble(),\n        random.nextInt(300).toDouble());\n\n    // Set a random color.\n    gl.uniform4f(colorLocation, random.nextDouble(), random.nextDouble(), random.nextDouble(), 1);\n\n    // Draw the rectangle.\n    gl.drawArrays(WebGL.RenderingContext.TRIANGLES, 0, 6);\n  }\n}\n"
  },
  {
    "path": "html5/web/webgl/resources/webgl-tutorials.css",
    "content": "/* Licensed under a BSD license. See ../license.html for license */\n\nhtml, body {\n  background-color: #aaa;\n  font-family: Sans-Serif;\n}\n\ncanvas {\n  background-color: #fff;\n  border: 1px solid black;\n}\n\n#uiContainer {\n  position: absolute;\n  top: 10px;\n  right: 10px;\n  z-index: 3;\n}\n\n.gman-slider-label {\n  float: left;\n  gbackground-color: green;\n}\n.gman-slider-value {\n  float: right;\n  gbackground-color: blue;\n}\n.gman-slider-upper {\n  gbackground-color: yellow;\n  height: 1.5em;\n}\n.gman-slider-outer {\n  gbackground-color: purple;\n  height: 2.5em;\n}\n.gman-slider-slider {\n  font-size: x-small;\n  gbackground-color: red;\n}\n\n/* styles to apply if in an iframe */\n\nbody.iframe {\n  width: 100%;\n  height: 100%;\n  margin: 0px;\n  padding: 0px;\n  overflow: hidden;\n}\n\n.iframe>.description {\n  display: none;\n}\n\n.iframe>canvas {\n  width: 100%;\n  height: 100%;\n}\n\n.iframe canvas {\n  border: none;\n}\n\n.iframe>#example {\n  width: 100%;\n  height: 100%;\n}\n\n"
  },
  {
    "path": "html5/web/webgl/solar3d/README.md",
    "content": "## 3D Solar System Simulation\n\nA 3D solar system visualization using WebGL.\n\nThe `solar.dart` file is the main entry point to the Dart code. This file\ncontains the `library solar3d` declaration.  It also contains the following\ndeclarations listing the other files that make up the the `solar3d`\nlibrary:\n\n    part 'sphere_model_data.dart';\n    part 'sphere_model.dart';\n    part 'shader.dart';\n    part 'planet_shader.dart';\n    part 'texture_manager.dart';\n    part 'grid.dart';\n    part 'camera.dart';\n    part 'sphere_controller.dart';\n    part 'skybox.dart';\n    part 'orbit_path.dart';\n\nIn addition to the `dart:web_gl` library, solar3d uses the `dart:typed_array`\nlibrary for specialized integers and floating point numbers, and efficient\nlists. Solar3d also uses the\n[vector_math pub package](http://pub.dartlang.org/packages/vector_math).\n\nPlease report any [bugs or feature requests](http://dartbug.com/new).\n"
  },
  {
    "path": "html5/web/webgl/solar3d/pubspec.yaml",
    "content": "name: solar3d\ndescription: 3D Solar System visualization using WebGL.\ndependencies:\n  browser: any\n  vector_math: '>=0.9.5'"
  },
  {
    "path": "html5/web/webgl/solar3d/web/camera.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\npart of solar3d;\n\nclass Camera {\n  Vector3 eyePosition;\n  Vector3 upDirection;\n  Vector3 lookAtPosition;\n  double zNear;\n  double zFar;\n  double aspectRatio;\n  double fOV;\n\n  Camera() {\n    eyePosition = new Vector3(0.0, 2.0, 0.0);\n    lookAtPosition = new Vector3(1.0, 2.0, -1.0);\n    upDirection = new Vector3(0.0, 1.0, 0.0);\n\n    // Note: this was originally set to 0.785398163 (90 degrees).  Different\n    // settings of fOV produce different visual results. Neither number is\n    // incorrect.\n    fOV = 0.35;\n    zNear = 1.0;\n    zFar = 1000.0;\n    aspectRatio = 1.7777778;\n  }\n\n  String toString() {\n    return '$eyePosition -> $lookAtPosition';\n  }\n\n  double get yaw {\n    var z = new Vector3(0.0, 0.0, 1.0);\n    var forward = frontDirection;\n    forward.normalize();\n    return degrees(Math.acos(forward.dot(z)));\n  }\n\n  double get pitch {\n    var y = new Vector3(0.0, 1.0, 0.0);\n    var forward = frontDirection;\n    forward.normalize();\n    return degrees(Math.acos(forward.dot(y)));\n  }\n\n  Matrix4 get projectionMatrix {\n    return makePerspectiveMatrix(fOV, aspectRatio, zNear, zFar);\n  }\n\n  Matrix4 get lookAtMatrix {\n    return makeViewMatrix(eyePosition, lookAtPosition, upDirection);\n  }\n\n  void copyProjectionMatrixIntoArray(Float32List pm) {\n    var m = makePerspectiveMatrix(fOV, aspectRatio, zNear, zFar);\n    m.copyIntoArray(pm);\n  }\n\n  void copyViewMatrixIntoArray(Float32List vm) {\n    var m = makeViewMatrix(eyePosition, lookAtPosition, upDirection);\n    m.copyIntoArray(vm);\n  }\n\n  void copyNormalMatrixIntoArray(Float32List nm) {\n    var m = makeViewMatrix(eyePosition, lookAtPosition, upDirection);\n    m.copyIntoArray(nm);\n  }\n\n  void copyProjectionMatrix(Matrix4 pm) {\n    var m = makePerspectiveMatrix(fOV, aspectRatio, zNear, zFar);\n    m.copyInto(pm);\n  }\n\n  void copyViewMatrix(Matrix4 vm) {\n    var m = makeViewMatrix(eyePosition, lookAtPosition, upDirection);\n    m.copyInto(vm);\n  }\n\n  void copyNormalMatrix(Matrix4 nm) {\n    var m = makeViewMatrix(eyePosition, lookAtPosition, upDirection);\n    m.copyInto(nm);\n  }\n\n  void copyEyePosition(Vector3 ep) {\n    eyePosition.copyInto(ep);\n  }\n\n  void copyLookAtPosition(Vector3 lap) {\n    lookAtPosition.copyInto(lap);\n  }\n\n  Vector3 get frontDirection => lookAtPosition - eyePosition;\n}\n"
  },
  {
    "path": "html5/web/webgl/solar3d/web/grid.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\npart of solar3d;\n\nclass Grid {\n  final WebGL.RenderingContext gl;\n  WebGL.Buffer vertexBuffer;\n  WebGL.Shader vertexShader;\n  WebGL.Shader fragmentShader;\n  WebGL.Program shaderProgram;\n  int numVertices;\n\n  Grid(this.gl) {\n    _generateVertexBuffer();\n\n    vertexShader = gl.createShader(WebGL.RenderingContext.VERTEX_SHADER);\n    fragmentShader = gl.createShader(WebGL.RenderingContext.FRAGMENT_SHADER);\n    shaderProgram = gl.createProgram();\n\n    gl.shaderSource(vertexShader, '''\n      precision highp float;\n      attribute vec3 vPosition;\n      attribute vec4 vColor;\n      uniform mat4 cameraTransform;\n      varying vec4 fColor;\n      void main() {\n        fColor = vColor;\n        vec4 vPosition4 = vec4(vPosition.x, vPosition.y, vPosition.z, 1.0);\n        gl_Position = cameraTransform*vPosition4;\n      }\n    ''');\n\n    gl.shaderSource(fragmentShader, '''\n      precision mediump float;\n      varying vec4 fColor;\n      void main() {\n        gl_FragColor = fColor;\n      }\n    ''');\n\n    gl.compileShader(vertexShader);\n    gl.compileShader(fragmentShader);\n    gl.attachShader(shaderProgram, vertexShader);\n    gl.attachShader(shaderProgram, fragmentShader);\n    gl.linkProgram(shaderProgram);\n  }\n\n  void _generateLine(List<double> vertexBuffer, Vector3 b, Vector3 e, Vector4 color) {\n    vertexBuffer.add(b.x);\n    vertexBuffer.add(b.y);\n    vertexBuffer.add(b.z);\n    vertexBuffer.add(color.r);\n    vertexBuffer.add(color.g);\n    vertexBuffer.add(color.b);\n    vertexBuffer.add(color.a);\n    vertexBuffer.add(e.x);\n    vertexBuffer.add(e.y);\n    vertexBuffer.add(e.z);\n    vertexBuffer.add(color.r);\n    vertexBuffer.add(color.g);\n    vertexBuffer.add(color.b);\n    vertexBuffer.add(color.a);\n  }\n\n  void _generateLines(List<double> vertexBuffer, Vector3 b,\n                      Vector3 e, Vector3 step, Vector4 color, int num) {\n    var lineStart = new Vector3.copy(b);\n    var lineEnd = new Vector3.copy(e);\n    for (int i = 0; i < num; i++) {\n      _generateLine(vertexBuffer, lineStart, lineEnd, color);\n      lineStart.add(step);\n      lineEnd.add(step);\n    }\n  }\n\n  void _generateVertexBuffer() {\n    vertexBuffer = gl.createBuffer();\n    List<double> vertexBufferData = new List<double>();\n\n    var colors = {\n      'red': new Vector4(1.0, 0.0, 0.0, 1.0),\n      'green': new Vector4(0.0, 1.0, 0.0, 1.0),\n      'blue': new Vector4(0.0, 0.0, 1.0, 1.0)\n    };\n\n    // Bottom\n    var b = new Vector3(0.0, 0.0, -20.0);\n    var e = new Vector3(0.0, 0.0, 0.0);\n    var s = new Vector3(1.0, 0.0, 0.0);\n    _generateLines(vertexBufferData, b, e, s, colors['green'], 21);\n    b.setComponents(0.0, 0.0, 0.0);\n    e.setComponents(20.0, 0.0, 0.0);\n    s.setComponents(0.0, 0.0, -1.0);\n    _generateLines(vertexBufferData, b, e, s, colors['green'], 21);\n\n    // Side\n    b.setComponents(20.0, 0.0, 0.0);\n    e.setComponents(20.0, 20.0, 0.0);\n    s.setComponents(0.0, 0.0, -1.0);\n    _generateLines(vertexBufferData, b, e, s, colors['blue'], 21);\n    b.setComponents(20.0, 0.0, 0.0);\n    e.setComponents(20.0, 0.0, -20.0);\n    s.setComponents(0.0, 1.0, 0.0);\n    _generateLines(vertexBufferData, b, e, s, colors['blue'], 21);\n\n    // Side\n    b.setComponents(0.0, 0.0, -20.0);\n    e.setComponents(0.0, 20.0, -20.0);\n    s.setComponents(1.0, 0.0, 0.0);\n    _generateLines(vertexBufferData, b, e, s, colors['red'], 21);\n    b.setComponents(0.0, 0.0, -20.0);\n    e.setComponents(20.0, 0.0, -20.0);\n    s.setComponents(0.0, 1.0, 0.0);\n    _generateLines(vertexBufferData, b, e, s, colors['red'], 21);\n\n    numVertices = vertexBufferData.length~/7;\n    gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, vertexBuffer);\n    gl.bufferDataTyped(WebGL.RenderingContext.ARRAY_BUFFER,\n                     new Float32List.fromList(vertexBufferData),\n                     WebGL.RenderingContext.STATIC_DRAW);\n  }\n\n  void draw(Float32List camera) {\n    gl.enableVertexAttribArray(0);\n    gl.enableVertexAttribArray(1);\n    gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, vertexBuffer);\n    gl.vertexAttribPointer(0, 4, WebGL.RenderingContext.FLOAT, false, 28, 12);\n    gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, vertexBuffer);\n    gl.vertexAttribPointer(1, 3, WebGL.RenderingContext.FLOAT, false, 28, 0);\n\n    gl.useProgram(shaderProgram);\n    var cameraTransformUniformIndex = gl.getUniformLocation(shaderProgram,\n                                                               'cameraTransform');\n\n    gl.uniformMatrix4fv(cameraTransformUniformIndex,\n                           false,\n                           camera);\n    gl.drawArrays(WebGL.RenderingContext.LINES, 0, numVertices);\n    gl.flush();\n  }\n}\n"
  },
  {
    "path": "html5/web/webgl/solar3d/web/orbit_path.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\npart of solar3d;\n\nclass OrbitPath {\n  final WebGL.RenderingContext _gl;\n  WebGL.Buffer _vertexBuffer;\n  Shader shader;\n  int _vertexStride;\n  int _vertexCount;\n  WebGL.UniformLocation _radiusLocation;\n  WebGL.UniformLocation _originLocation;\n  WebGL.UniformLocation _colorLocation;\n  WebGL.UniformLocation _cameraLocation;\n  int _positionAttributeIndex;\n\n  void _makeShader() {\n    String _vertexShader = '''\n      precision highp float;\n      attribute vec3 vPosition;\n\n      uniform vec4 origin;\n      uniform float radius;\n\n      uniform mat4 cameraTransform;\n      void main() {\n        vec4 vPosition4 = vec4(vPosition.x*radius,\n                               vPosition.y*radius,\n                               vPosition.z*radius, 1.0);\n        vPosition4 += origin;\n        gl_Position = cameraTransform*vPosition4;\n      }\n''';\n    String _fragmentShader = '''\n      precision highp float;\n      uniform vec4 color;\n      void main() {\n        gl_FragColor = color;\n      }\n''';\n    shader = new Shader(_vertexShader, _fragmentShader);\n    shader.compile(_gl);\n    shader.link(_gl);\n    _cameraLocation = _gl.getUniformLocation(shader.program, 'cameraTransform');\n    _originLocation = _gl.getUniformLocation(shader.program, 'origin');\n    _radiusLocation = _gl.getUniformLocation(shader.program, 'radius');\n    _colorLocation = _gl.getUniformLocation(shader.program, 'color');\n    _positionAttributeIndex = _gl.getAttribLocation(shader.program, 'vPosition');\n  }\n\n  set cameraTransform(Matrix4 m) {\n    var v = new Float32List(16);\n    m.copyIntoArray(v);\n    _gl.useProgram(shader.program);\n    _gl.uniformMatrix4fv(_cameraLocation, false, v);\n  }\n\n  void _makePath() {\n    final int segments = 64;\n\n    var alpha = 0.0;\n    var twoPi = (2.0 * 3.141592653589793238462643);\n    var _step = twoPi/segments;\n    var radius = 1.0;\n\n    var center = new Vector3.zero();\n    var _circle_u = new Vector3(1.0, 0.0, 0.0);\n    var _circle_v = new Vector3(0.0, 0.0, 1.0);\n    var last = center + _circle_u * radius;\n\n    var vertexPositions = new List<double>();\n    for (alpha = _step; alpha <= twoPi; alpha += _step) {\n      var p = center + (_circle_u.scaled(radius * Math.cos(alpha)));\n      p += (_circle_v.scaled(radius * Math.sin(alpha)));\n      vertexPositions.add(p.x);\n      vertexPositions.add(p.y);\n      vertexPositions.add(p.z);\n      vertexPositions.add(last.x);\n      vertexPositions.add(last.y);\n      vertexPositions.add(last.z);\n      last = p;\n    }\n    var pl = center + _circle_u * radius;\n    vertexPositions.add(pl.x);\n    vertexPositions.add(pl.y);\n    vertexPositions.add(pl.z);\n    vertexPositions.add(last.x);\n    vertexPositions.add(last.y);\n    vertexPositions.add(last.z);\n    var vertexData = new Float32List.fromList(vertexPositions);\n    _vertexBuffer = _gl.createBuffer();\n    _gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, _vertexBuffer);\n    _gl.bufferDataTyped(WebGL.RenderingContext.ARRAY_BUFFER,\n                   vertexData,\n                   WebGL.RenderingContext.STATIC_DRAW);\n    _vertexCount = vertexPositions.length ~/ 3;\n    _vertexStride = 12;\n  }\n\n  OrbitPath(this._gl) {\n    _makePath();\n    _makeShader();\n  }\n\n  void preRender() {\n    _gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, _vertexBuffer);\n    _gl.enableVertexAttribArray(_positionAttributeIndex);\n    _gl.vertexAttribPointer(_positionAttributeIndex,\n                           3, WebGL.RenderingContext.FLOAT, // 3 floats\n                           false, _vertexStride,\n                           0); // 0 offset\n  }\n\n  void render(double radius, Vector3 origin, Vector4 color) {\n    _gl.useProgram(shader.program);\n    _gl.uniform4f(_originLocation, origin.x, origin.y, origin.z, 0.0);\n    _gl.uniform4f(_colorLocation, color.x, color.y, color.z, color.w);\n    _gl.uniform1f(_radiusLocation, radius);\n    _gl.drawArrays(WebGL.RenderingContext.LINES, 0, _vertexCount);\n  }\n}\n"
  },
  {
    "path": "html5/web/webgl/solar3d/web/planet_shader.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\npart of solar3d;\n\nclass PlanetShader {\n  Shader shader;\n  WebGL.Program get program => shader.program;\n  WebGL.RenderingContext gl;\n  WebGL.UniformLocation cameraTransformLocation;\n  WebGL.UniformLocation objectTransformLocation;\n  WebGL.UniformLocation viewTransformLocation;\n  WebGL.UniformLocation objectScaleLocation;\n  WebGL.UniformLocation planetIndexLocation;\n  Float32List _cameraTransform;\n  Float32List _objectTransform;\n  Float32List _viewTransform;\n  Float32List _objectScale;\n\n  PlanetShader(this.gl) {\n    shader = new Shader(_planetVertexShader, _planetFragmentShader);\n    _cameraTransform = new Float32List(16);\n    _objectTransform = new Float32List(16);\n    _viewTransform = new Float32List(16);\n    _objectScale = new Float32List(4);\n  }\n\n  void prepare() {\n    shader.compile(gl);\n    shader.link(gl);\n    cameraTransformLocation = gl.getUniformLocation(program, 'cameraTransform');\n    objectTransformLocation = gl.getUniformLocation(program, 'objectTransform');\n    objectScaleLocation = gl.getUniformLocation(program, 'objectScale');\n    viewTransformLocation = gl.getUniformLocation(program, 'viewTransform');\n    planetIndexLocation = gl.getUniformLocation(program, 'planetIndex');\n    gl.useProgram(program);\n    gl.uniform1i(gl.getUniformLocation(program, 'diffuse'), 0);\n    gl.uniform1i(gl.getUniformLocation(program, 'clouds'), 1);\n  }\n\n  void enable() {\n    gl.useProgram(program);\n  }\n\n  set cameraTransform(Matrix4 m) {\n    m.copyIntoArray(_cameraTransform);\n    gl.uniformMatrix4fv(cameraTransformLocation, false, _cameraTransform);\n  }\n\n  set objectTransform(Matrix4 m) {\n    m.copyIntoArray(_objectTransform);\n    gl.uniformMatrix4fv(objectTransformLocation, false, _objectTransform);\n  }\n\n  set objectScale(double m) {\n    _objectScale[0] = m;\n    _objectScale[1] = m;\n    _objectScale[2] = m;\n    _objectScale[3] = 1.0;\n    gl.uniform4fv(objectScaleLocation, _objectScale);\n  }\n\n  set viewTransform(Matrix4 m) {\n    m.copyIntoArray(_viewTransform);\n    gl.uniformMatrix4fv(viewTransformLocation, false, _viewTransform);\n  }\n\n  set planetIndex(int i) {\n    gl.uniform1i(planetIndexLocation, i);\n  }\n}\n\nfinal String _planetVertexShader = '''\nprecision highp float;\n\nattribute vec3 vPosition;\nattribute vec3 vNormal;\nattribute vec2 vTexCoord;\n\nuniform mat4 objectTransform;\nuniform vec4 objectScale;\nuniform mat4 cameraTransform;\nuniform mat4 viewTransform;\n\nvarying vec2 samplePoint;\nvarying vec3 normal;\nvarying vec3 lightDir;\nvarying float lightDistance;\n\nvoid main() {\n  // modelView goes from model space to view space.\n  mat4 modelView = viewTransform*objectTransform;\n  // Transform light position into view space.\n  vec4 lightPosition = viewTransform * vec4(0.0, 0.0, 0.0, 1.0);\n  vec4 vPosition4 = vec4(vPosition.x*objectScale.x,\n                         vPosition.y*objectScale.y,\n                         vPosition.z*objectScale.z, 1.0);\n  // Vertex position in view space.\n  vec4 ecPos = modelView*vPosition4;\n  // Vector from light position to vertex position (both in view space).\n  vec3 aux = vec3(lightPosition-ecPos);\n  lightDistance = length(aux);\n  lightDir = normalize(aux);\n  // Translate normal by object's transformation.\n  vec4 vNormal4 = vec4(vNormal.x, vNormal.y, vNormal.z, 0.0);\n  normal = (modelView*vNormal4).xyz;\n  samplePoint = vTexCoord;\n  gl_Position = cameraTransform*objectTransform*vPosition4;\n}\n''';\n\nfinal String _planetFragmentShader = '''\nprecision mediump float;\n\nvarying vec2 samplePoint;\nvarying vec3 normal;\nvarying vec3 lightDir;\n\nuniform sampler2D diffuse;\nuniform sampler2D clouds;\nuniform int planetIndex;\n\nvoid main() {\n  vec4 mix = texture2D(diffuse, samplePoint);\n  vec3 n = normalize(normal);\n  vec3 ldn = normalize(lightDir);\n  float NdotL = max(dot(n, ldn), 0.0);\n  if (NdotL > 0.0) {\n    mix += NdotL * vec4(1.0, 0.5, 0.0, 0.0);\n  }\n  gl_FragColor = mix;\n}\n''';"
  },
  {
    "path": "html5/web/webgl/solar3d/web/shader.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\npart of solar3d;\n\nclass Shader {\n  final String vertexShaderSource;\n  final String fragmentShaderSource;\n  WebGL.Shader vertexShader;\n  WebGL.Shader fragmentShader;\n  WebGL.Program program;\n\n  Shader(this.vertexShaderSource, this.fragmentShaderSource);\n\n  void compile(WebGL.RenderingContext gl) {\n    vertexShader = gl.createShader(WebGL.RenderingContext.VERTEX_SHADER);\n    gl.shaderSource(vertexShader, vertexShaderSource);\n    gl.compileShader(vertexShader);\n    // Print compile log\n    printLog(gl.getShaderInfoLog(vertexShader));\n\n    fragmentShader = gl.createShader(WebGL.RenderingContext.FRAGMENT_SHADER);\n    gl.shaderSource(fragmentShader, fragmentShaderSource);\n    gl.compileShader(fragmentShader);\n    // Print compile log\n    printLog(gl.getShaderInfoLog(fragmentShader));\n  }\n\n  void link(WebGL.RenderingContext gl) {\n    program = gl.createProgram();\n    gl.attachShader(program, vertexShader);\n    gl.attachShader(program, fragmentShader);\n    gl.linkProgram(program);\n    printLog(gl.getProgramInfoLog(program));\n    dumpUniforms(gl);\n    dumpAttributes(gl);\n  }\n\n  void dumpUniforms(WebGL.RenderingContext gl) {\n    final int numUniforms = gl.getProgramParameter(program,\n                                 WebGL.RenderingContext.ACTIVE_UNIFORMS);\n    printLog('Dumping active uniforms:');\n    for (var i = 0; i < numUniforms; i++) {\n      var uniform = gl.getActiveUniform(program, i);\n      printLog('[$i] - ${uniform.name}');\n    }\n  }\n\n  void dumpAttributes(WebGL.RenderingContext gl) {\n    final int numAttributes = gl.getProgramParameter(program,\n                                WebGL.RenderingContext.ACTIVE_ATTRIBUTES);\n    printLog('Dumping active attributes:');\n    for (var i = 0; i < numAttributes; i++) {\n      var attribute = gl.getActiveAttrib(program, i);\n      printLog('[$i] - ${attribute.name}');\n    }\n  }\n}\n"
  },
  {
    "path": "html5/web/webgl/solar3d/web/skybox.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\npart of solar3d;\n\nclass Skybox {\n  final WebGL.RenderingContext gl;\n  WebGL.Buffer indexBuffer;\n  WebGL.Buffer vertexBuffer;\n  WebGL.Shader vertexShader;\n  WebGL.Shader fragmentShader;\n  WebGL.Program program;\n  WebGL.UniformLocation _cameraTransformLocation;\n\n  int _positionAttributeIndex;\n  int _textureAttributeIndex;\n  int _vertexCount;\n  int _vertexStride;\n\n  Float32List _cameraTransform;\n\n  void _setupBuffers() {\n    var vertexPositions = const [\n      -1.0, -1.0, -1.0,\n      -1.0,  1.0, -1.0,\n      1.0,  1.0, -1.0,\n      1.0, -1.0, -1.0,\n\n      -1.0, -1.0,  1.0,\n      -1.0,  1.0,  1.0,\n      1.0,  1.0,  1.0,\n      1.0, -1.0,  1.0,\n\n      -1.0, -1.0, -1.0,\n      -1.0, -1.0,  1.0,\n      1.0, -1.0,  1.0,\n      1.0, -1.0, -1.0,\n\n      -1.0,  1.0, -1.0,\n      -1.0,  1.0,  1.0,\n      1.0,  1.0,  1.0,\n      1.0,  1.0, -1.0,\n\n      -1.0, -1.0, -1.0,\n      -1.0, -1.0,  1.0,\n      -1.0,  1.0,  1.0,\n      -1.0,  1.0, -1.0,\n\n      1.0, -1.0, -1.0,\n      1.0, -1.0,  1.0,\n      1.0,  1.0,  1.0,\n      1.0,  1.0, -1.0];\n\n    var vertexTextureCoords = const [\n      -1.0, -1.0, -1.0,\n      -1.0,  1.0, -1.0,\n      1.0,  1.0, -1.0,\n      1.0, -1.0, -1.0,\n\n      -1.0, -1.0,  1.0,\n      -1.0,  1.0,  1.0,\n      1.0,  1.0,  1.0,\n      1.0, -1.0,  1.0,\n\n      -1.0, -1.0, -1.0,\n      -1.0, -1.0,  1.0,\n      1.0, -1.0,  1.0,\n      1.0, -1.0, -1.0,\n\n      -1.0,  1.0, -1.0,\n      -1.0,  1.0,  1.0,\n      1.0,  1.0,  1.0,\n      1.0,  1.0, -1.0,\n\n      -1.0, -1.0, -1.0,\n      -1.0, -1.0,  1.0,\n      -1.0,  1.0,  1.0,\n      -1.0,  1.0, -1.0,\n\n      1.0, -1.0, -1.0,\n      1.0, -1.0,  1.0,\n      1.0,  1.0,  1.0,\n      1.0,  1.0, -1.0];\n\n    var indices = const [\n      0,  1,  2, 0,  2,  3,\n      4,  5,  6, 4,  6,  7,\n      8,  9, 10, 8, 10, 11,\n      12, 13, 14, 12, 14, 15,\n      16, 17, 18, 16, 18, 19,\n      20, 21, 22, 20, 22, 23];\n\n    assert(vertexPositions.length == vertexTextureCoords.length);\n    var vertexData = new Float32List(vertexPositions.length*2);\n    int writeCursor = 0;\n    for (int i = 0; i < vertexPositions.length; i += 3) {\n      vertexData[writeCursor++] = vertexPositions[i];\n      vertexData[writeCursor++] = vertexPositions[i+1];\n      vertexData[writeCursor++] = vertexPositions[i+2];\n      vertexData[writeCursor++] = vertexTextureCoords[i];\n      vertexData[writeCursor++] = vertexTextureCoords[i+1];\n      vertexData[writeCursor++] = vertexTextureCoords[i+2];\n    }\n\n    vertexBuffer = gl.createBuffer();\n    gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, vertexBuffer);\n    gl.bufferDataTyped(WebGL.RenderingContext.ARRAY_BUFFER,\n                  vertexData,\n                  WebGL.RenderingContext.STATIC_DRAW);\n    indexBuffer = gl.createBuffer();\n    gl.bindBuffer(WebGL.RenderingContext.ELEMENT_ARRAY_BUFFER, indexBuffer);\n    gl.bufferDataTyped(WebGL.RenderingContext.ELEMENT_ARRAY_BUFFER,\n                  new Uint16List.fromList(indices),\n                  WebGL.RenderingContext.STATIC_DRAW);\n    _vertexCount = indices.length;\n    _vertexStride = 4*6; // 6 floats per vertex\n  }\n\n  void _setupProgram() {\n    final String _vertexShader = '''\n      attribute vec3 vPosition;\n      attribute vec3 vTexCoord;\n      uniform mat4 cameraTransform;\n\n      varying vec3 samplePoint;\n\n      void main(void)\n      {\n        vec4 vPosition4 = vec4(vPosition.x*512.0,\n                               vPosition.y*512.0,\n                               vPosition.z*512.0,\n                               1.0);\n        gl_Position = cameraTransform*vPosition4;\n        samplePoint = vTexCoord;\n      }\n    ''';\n    final String _fragmentShader = '''\n      precision highp float;\n      varying vec3 samplePoint;\n      uniform samplerCube skyMap;\n\n      void main(void)\n      {\n        vec4 color = textureCube(skyMap, samplePoint);\n        //gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);\n        gl_FragColor = vec4(color.xyz, 1.0);\n      }\n    ''';\n    vertexShader = gl.createShader(WebGL.RenderingContext.VERTEX_SHADER);\n    gl.shaderSource(vertexShader, _vertexShader);\n    gl.compileShader(vertexShader);\n    printLog(gl.getShaderInfoLog(vertexShader));\n    fragmentShader = gl.createShader(WebGL.RenderingContext.FRAGMENT_SHADER);\n    gl.shaderSource(fragmentShader, _fragmentShader);\n    gl.compileShader(fragmentShader);\n    printLog(gl.getShaderInfoLog(fragmentShader));\n    program = gl.createProgram();\n    gl.attachShader(program, vertexShader);\n    gl.attachShader(program, fragmentShader);\n    gl.linkProgram(program);\n    printLog(gl.getProgramInfoLog(program));\n    _cameraTransformLocation = gl.getUniformLocation(program,'cameraTransform');\n    _positionAttributeIndex = gl.getAttribLocation(program, 'vPosition');\n    _textureAttributeIndex = gl.getAttribLocation(program, 'vTexCoord');\n  }\n\n  Skybox(this.gl) {\n    _setupBuffers();\n    _setupProgram();\n    _cameraTransform = new Float32List(16);\n  }\n\n  void preRender() {\n    gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, vertexBuffer);\n    gl.enableVertexAttribArray(_positionAttributeIndex);\n    gl.vertexAttribPointer(_positionAttributeIndex,\n                           3, WebGL.RenderingContext.FLOAT, // 3 floats\n                           false, _vertexStride,\n                           0); // 0 offset\n    gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, vertexBuffer);\n    gl.enableVertexAttribArray(_textureAttributeIndex);\n    gl.vertexAttribPointer(_textureAttributeIndex,\n                           3, WebGL.RenderingContext.FLOAT,\n                           false, _vertexStride,\n                           12);\n  }\n\n  void render(Camera camera) {\n    var P = camera.projectionMatrix;\n    var LA = makeViewMatrix(new Vector3.zero(),\n                         camera.frontDirection,\n                         new Vector3(0.0, 1.0, 0.0));\n    P.multiply(LA);\n    P.copyIntoArray(_cameraTransform, 0);\n    gl.useProgram(program);\n    gl.uniformMatrix4fv(_cameraTransformLocation, false, _cameraTransform);\n    gl.bindBuffer(WebGL.RenderingContext.ELEMENT_ARRAY_BUFFER, indexBuffer);\n    gl.drawElements(WebGL.RenderingContext.TRIANGLES, _vertexCount,\n                    WebGL.RenderingContext.UNSIGNED_SHORT, 0);\n  }\n}\n"
  },
  {
    "path": "html5/web/webgl/solar3d/web/solar.css",
    "content": "/* Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file */\n/* for details. All rights reserved. Use of this source code is governed by a */\n/* BSD-style license that can be found in the LICENSE file. */\n\nbody {\n  background-color: #F8F8F8;\n  font-family: 'Open Sans', sans-serif;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1.2em;\n  margin: 15px;\n}\n\np {\n  color: #333;\n}\n\n#container {\n  width: 100%;\n  height: 400px;\n  border: 1px solid #ccc;\n  background-color: #fff;\n}\n\n#summary {\n  float: left;\n}\n\n#notes {\n  float: right;\n  width: 120px;\n  text-align: right;\n}\n\n.error {\n  font-style: italic;\n  color: red;\n}\n"
  },
  {
    "path": "html5/web/webgl/solar3d/web/solar.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\n/**\n * A solar system visualization.\n */\n\nlibrary solar3d;\n\nimport 'dart:async';\nimport 'dart:html';\nimport 'dart:convert';\nimport 'dart:math' as Math;\nimport 'dart:web_gl' as WebGL;\nimport 'dart:typed_data';\n\nimport 'package:vector_math/vector_math.dart';\n\npart 'sphere_model_data.dart';\npart 'sphere_model.dart';\npart 'shader.dart';\npart 'planet_shader.dart';\npart 'texture_manager.dart';\npart 'grid.dart';\npart 'camera.dart';\npart 'sphere_controller.dart';\npart 'skybox.dart';\npart 'orbit_path.dart';\n\nclass Solar3DApplication {\n  WebGL.RenderingContext glContext;\n  CanvasElement canvas;\n  PlanetShader planetShader;\n  TextureManager textureManager;\n  Math.Random random = new Math.Random();\n  Camera camera = new Camera();\n  Skybox skyBox;\n  int get width => canvas.width;\n  int get height => canvas.height;\n  MouseSphereCameraController controller = new MouseSphereCameraController();\n  SolarSystem solarSystem;\n  OrbitPath orbitPath;\n  bool ownMouse = false;\n\n  String getBaseUrl() {\n    var location = window.location.href;\n    return \"${location.substring(0, location.length - \"solar.html\".length)}\";\n  }\n\n  void startup(String canvasId) {\n    canvas = querySelector(canvasId);\n    glContext = canvas.getContext('experimental-webgl');\n    if (glContext == null) {\n      canvas.parent.text = \">>> Browser does not support WebGL <<<\";\n      return;\n    }\n    var baseUrl = getBaseUrl();\n    baseUrl = '${baseUrl}textures/';\n    textureManager = new TextureManager(baseUrl, glContext);\n    solarSystem = new SolarSystem();\n    skyBox = new Skybox(glContext);\n    orbitPath = new OrbitPath(glContext);\n    // Measure the canvas element.\n    canvas.width = canvas.parent.client.width;\n    canvas.height = 400;\n\n    Future f = setupAssets();\n    f.then((_) {\n      bind();\n      camera.aspectRatio = canvas.width / canvas.height;\n      // Initialize the planets and start the simulation.\n      solarSystem.start();\n      requestRedraw();\n    });\n  }\n\n  Future setupAssets() {\n    SphereModel.setup(glContext);\n    planetShader = new PlanetShader(glContext);\n    planetShader.prepare();\n    SphereModel.bindToProgram(glContext, planetShader.program);\n    return loadTextures();\n  }\n\n  Future loadTextures() {\n    var futures = new List<Future>();\n    futures.add(textureManager.load('earth_diffuse.jpg'));\n    futures.add(textureManager.load('sun_diffuse.jpg'));\n    futures.add(textureManager.load('mars_diffuse.jpg'));\n    futures.add(textureManager.load('venus_diffuse.jpg'));\n    futures.add(textureManager.load('mercury_diffuse.jpg'));\n    futures.add(textureManager.load('moon_diffuse.jpg'));\n    futures.add(textureManager.load('jupiter_diffuse.jpg'));\n    futures.add(textureManager.load('saturn_diffuse.jpg'));\n    futures.add(textureManager.load('uranus_diffuse.jpg'));\n    futures.add(textureManager.load('neptune_diffuse.jpg'));\n    futures.add(textureManager.loadCube('Sky', [\n                                          'positiveX.jpg',\n                                          'negativeX.jpg',\n                                          'positiveY.jpg',\n                                          'negativeY.jpg',\n                                          'positiveZ.jpg',\n                                          'negativeZ.jpg',\n                                          ]));\n    return Future.wait(futures);\n  }\n\n  bool get _fullScreened => canvas == document.fullscreenElement;\n\n  void clicked(Event event) {\n    canvas.requestPointerLock();\n  }\n\n  /* Returns true if the pointer is owned by our canvas element */\n  bool get _pointerLocked => canvas == document.pointerLockElement;\n\n  void pointerLockChange(Event event) {\n    // Check if we own the mouse.\n    ownMouse = _pointerLocked;\n  }\n\n  void toggleFullscreen() {\n    if (_fullScreened) {\n      document.exitFullscreen();\n    } else {\n      canvas.requestFullscreen();\n    }\n  }\n\n  var keyCodeLeft = 37;\n  var keyCodeRight = 39;\n\n  var keyCodeE = 69;\n  var keyCodeF = 70;\n  var keyCodeJ = 74;\n  var keyCodeS = 83;\n\n  void keydown(KeyboardEvent event) {\n    if (!ownMouse) {\n      // We don't respond to keyboard commands if we don't own the mouse\n      return;\n    }\n  }\n\n  void keyup(KeyboardEvent event) {\n    if (!ownMouse) {\n      // We don't respond to keyboard commands if we don't own the mouse\n      return;\n    }\n    if (event.keyCode == keyCodeLeft) {\n      solarSystem.selectPreviousPlanet();\n    }\n    if (event.keyCode == keyCodeRight) {\n      solarSystem.selectNextPlanet();\n    }\n    if (event.keyCode == keyCodeJ) {\n      solarSystem.selectPlanet('Jupiter');\n    }\n    if (event.keyCode == keyCodeS) {\n      solarSystem.selectPlanet('Sun');\n    }\n    if (event.keyCode == keyCodeF) {\n      toggleFullscreen();\n    }\n    if (event.keyCode == keyCodeE) {\n      solarSystem.selectPlanet('Earth');\n    }\n  }\n\n  void mouseMove(MouseEvent event) {\n    if (!ownMouse) {\n      // We don't rotate the view if we don't own the mouse\n      return;\n    }\n    controller.accumScroll += event.movement.y;\n    event.preventDefault();\n  }\n\n  void mouseWheel(MouseEvent event) {\n    if (!ownMouse) {\n      // We don't rotate the view if we don't own the mouse\n      return;\n    }\n    if (event is WheelEvent) {\n      WheelEvent e = event;\n      controller.mouseSensitivity = 720.0;\n      controller.accumDX -= e.deltaX.round();\n      controller.accumDY += e.deltaY.round();\n    }\n    event.preventDefault();\n  }\n\n  void fullscreenChange(Event event) {\n    canvas.width = canvas.parent.client.width;\n    canvas.height = canvas.parent.client.height;\n    camera.aspectRatio = canvas.width / canvas.height;\n  }\n\n  // Bind input event callbacks\n  void bind() {\n    document.onPointerLockChange.listen(pointerLockChange);\n    canvas.onClick.listen(clicked);\n    document.onKeyDown.listen(keydown);\n    document.onKeyUp.listen(keyup);\n    document.onMouseMove.listen(mouseMove);\n    window.onMouseWheel.listen(mouseWheel);\n    document.onFullscreenChange.listen(fullscreenChange);\n  }\n\n  double renderTime;\n\n  void update(double time) {\n    var t = new DateTime.now().millisecondsSinceEpoch;\n\n    if (renderTime != null) {\n      showFps((1000 / (t - renderTime)).round());\n    }\n\n    renderTime = t.toDouble();\n\n    glContext.viewport(0, 0, width, height);\n    glContext.clearColor(0.0, 0.0, 0.0, 1.0);\n    glContext.clearDepth(1.0);\n    glContext.clear(WebGL.RenderingContext.COLOR_BUFFER_BIT |\n                    WebGL.RenderingContext.DEPTH_BUFFER_BIT);\n\n    /* Render the sky box:\n     * Disable face culling\n     * Disable depth testing\n     */\n    glContext.disable(WebGL.RenderingContext.CULL_FACE);\n    glContext.disable(WebGL.RenderingContext.DEPTH_TEST);\n    textureManager.bind('Sky');\n    skyBox.preRender();\n    skyBox.render(camera);\n    /* Prepare to render planets:\n     * Enable face culling\n     * Enable depth testing\n     */\n    glContext.enable(WebGL.RenderingContext.CULL_FACE);\n    glContext.enable(WebGL.RenderingContext.DEPTH_TEST);\n    solarSystem.draw(glContext, controller, camera, time);\n    requestRedraw();\n  }\n\n  void requestRedraw() {\n    window.requestAnimationFrame(update);\n  }\n}\n\nSolar3DApplication application = new Solar3DApplication();\n\ndouble fpsAverage;\n\nfinal bool VERBOSE = false;\n\n/**\n * Display the animation's FPS in a div.\n */\nvoid showFps(int fps) {\n  if (fpsAverage == null) {\n    fpsAverage = fps.toDouble();\n  }\n\n  fpsAverage = fps * 0.05 + fpsAverage * 0.95;\n\n  querySelector(\"#notes\").text = \"${fpsAverage.round()} fps\";\n}\n\n/**\n * A representation of the solar system.\n *\n * This class maintains a list of planetary bodies, knows how to draw its\n * background and the planets, and requests that it be redraw at appropriate\n * intervals using the [Window.requestAnimationFrame] method.\n */\nclass SolarSystem {\n  PlanetaryBody sun;\n\n  double globalScale = 0.1;\n  SolarSystem();\n\n  int selectedPlanet = 0;\n  List<PlanetaryBody> planets = new List<PlanetaryBody>();\n\n  start() {\n    _start();\n  }\n\n  void selectNextPlanet() {\n    selectedPlanet = (selectedPlanet + 1) % planets.length;\n  }\n\n  void selectPreviousPlanet() {\n    selectedPlanet = (selectedPlanet - 1 ) % planets.length;\n  }\n\n  void selectPlanet(String planetName) {\n    for (int i = 0; i < planets.length; i++) {\n      var planet = planets[i];\n      if (planet.name == planetName) {\n        selectedPlanet = i;\n        break;\n      }\n    }\n  }\n\n  _start() {\n    var planet;\n\n    // Create the Sun.\n    sun = new PlanetaryBody(this,\n                            \"Sun\", // Name\n                            \"sun_diffuse.jpg\", // Texture\n                            50.0); // Planet Size\n    planets.add(sun);\n\n    // Add planets.\n    planet = new PlanetaryBody(this, \"Mercury\",\n                               \"mercury_diffuse.jpg\",\n                               4.0, // Planet Size\n                               57.0, // Orbit distance\n                               0.241); // Orbit period\n    planets.add(planet);\n    sun.addPlanet(planet);\n\n    planet = new PlanetaryBody(this, \"Venus\",\n                               \"venus_diffuse.jpg\",\n                               8.0,\n                               100.0,\n                               0.615);\n    sun.addPlanet(planet);\n    planets.add(planet);\n\n    var earth = new PlanetaryBody(this,\n                                  \"Earth\",\n                                  \"earth_diffuse.jpg\",\n                                  30.0, // Planet size\n                                  130.0, // Orbit distance\n                                  1.0);\n    sun.addPlanet(earth);\n    planets.add(earth);\n\n    planet = new PlanetaryBody(this, \"Moon\",\n                              \"moon_diffuse.jpg\",\n                              1.0, // Planet size\n                              20.0, // Orbit distance\n                              0.075);\n    planets.add(planet);\n    earth.addPlanet(planet);\n\n    planet = new PlanetaryBody(this, \"Mars\",\n                               \"mars_diffuse.jpg\",\n                               6.0, // Planet size\n                               180.0, // Orbit distance\n                               1.88);\n    sun.addPlanet(planet);\n    planets.add(planet);\n\n    planet = new PlanetaryBody(this,\n                              \"Jupiter\",\n                              \"jupiter_diffuse.jpg\",\n                              20.0, // Planet Size\n                              300.0, // Orbit Distance\n                              11.86);\n    sun.addPlanet(planet);\n    planets.add(planet);\n\n    planet = new PlanetaryBody(this,\n        \"Saturn\",\n        \"saturn_diffuse.jpg\",\n        17.0, // Planet Size\n        400.0, // Orbit Distance\n        9.86);\n    sun.addPlanet(planet);\n    planets.add(planet);\n\n    planet = new PlanetaryBody(this,\n        \"Uranus\",\n        \"uranus_diffuse.jpg\",\n        10.0, // Planet Size\n        450.0, // Orbit Distance\n        15.86);\n    sun.addPlanet(planet);\n    planets.add(planet);\n\n    planet = new PlanetaryBody(this,\n        \"Neptune\",\n        \"neptune_diffuse.jpg\",\n        10.0, // Planet size\n        500.0, // Orbit distance\n        8.86);\n    sun.addPlanet(planet);\n    planets.add(planet);\n  }\n\n  double lastTime;\n\n  void draw(WebGL.RenderingContext gl,\n            MouseSphereCameraController controller,\n            Camera camera,\n            double t) {\n\n    if (lastTime == null) {\n      // This skips the first frame but gives us an origin in time.\n      lastTime = t;\n      return;\n    }\n    var dt = (t - lastTime) / 1000.0;\n    lastTime = t;\n\n    PlanetaryBody planet = planets[selectedPlanet];\n    // Ensure we aren't too close to the selected body.\n    controller.minRadius = planet.bodySize*2.0+0.5;\n    // Adjust the camera origin to match the selected body.\n    controller.origin = planet.position;\n    // Update the camera.\n    controller.updateCamera(dt, camera);\n    /* Construct the Projection View matrix */\n    var projectionMatrix = camera.projectionMatrix;\n    var viewMatrix = camera.lookAtMatrix;\n    projectionMatrix.multiply(viewMatrix);\n    application.planetShader.enable();\n    application.planetShader.cameraTransform = projectionMatrix;\n    application.planetShader.viewTransform = viewMatrix;\n    application.planetShader.objectScale = 1.0;\n    application.orbitPath.cameraTransform = projectionMatrix;\n    drawPlanets(gl);\n  }\n\n  void drawPlanets(WebGL.RenderingContext context) {\n    sun.draw(context, 0.0, 0.0);\n  }\n}\n\n/**\n * A representation of a plantetary body.\n *\n * This class can calculate its position for a given time index, and draw itself\n * and any child planets.\n */\nclass PlanetaryBody {\n  final String name;\n  final String texture;\n  final double orbitPeriod;\n  final SolarSystem solarSystem;\n\n  double height;\n  double bodySize;\n  double angle;\n  double orbitRadius;\n  double orbitSpeed;\n  Vector3 position;\n\n  List<PlanetaryBody> planets;\n\n  PlanetaryBody(this.solarSystem, this.name, this.texture, this.bodySize,\n      [this.orbitRadius = 0.0, this.orbitPeriod = 0.0]) {\n    planets = [];\n    angle = 0.0;\n    height = application.random.nextDouble();\n    bodySize = solarSystem.globalScale*bodySize;\n    orbitRadius = solarSystem.globalScale*orbitRadius;\n    orbitSpeed = _calculateSpeed(orbitPeriod);\n    position = new Vector3.zero();\n  }\n\n  void addPlanet(PlanetaryBody planet) {\n    planets.add(planet);\n  }\n\n  void draw(WebGL.RenderingContext context, double x, double y) {\n    var pos = _calculatePos(x, y);\n    drawSelf(context, pos.x, pos.y, x, y);\n    drawChildren(context, pos.x, pos.y);\n  }\n\n  void drawSelf(WebGL.RenderingContext context, double x, double y, double px, double py) {\n    application.textureManager.bind(texture);\n    var T = new Matrix4.translationValues(x.toDouble(), height, y.toDouble());\n    position.x = x.toDouble();\n    position.y = height;\n    position.z = y.toDouble();\n    angle += 0.002;\n    T.rotateY(angle);\n    application.planetShader.enable();\n    application.planetShader.objectScale = bodySize;\n    application.planetShader.objectTransform = T;\n    SphereModel.prerender(context);\n    SphereModel.render(context);\n    application.orbitPath.preRender();\n    application.orbitPath.render(orbitRadius,\n        new Vector3(px.toDouble(), height, py.toDouble()),\n        new Vector4(1.0, 1.0, 0.8, 1.0));\n  }\n\n  void drawChildren(WebGL.RenderingContext context, double x, double y) {\n    for (var planet in planets) {\n      planet.draw(context, x, y);\n    }\n  }\n\n  double _calculateSpeed(double period) {\n    if (period == 0.0) {\n      return 0.0;\n    } else {\n      return 1 / (60.0 * 24.0 * 2 * period);\n    }\n  }\n\n  Vector2 _calculatePos(double x, double y) {\n    if (orbitSpeed == 0.0) {\n      return new Vector2(x, y);\n    } else {\n      double angle = application.renderTime * orbitSpeed;\n      //\n      return new Vector2(orbitRadius * Math.cos(angle) + x,\n                      orbitRadius * Math.sin(angle) + y);\n    }\n  }\n}\n\nvoid printLog(String log) {\n  if (VERBOSE && log != null && !log.isEmpty) {\n    print(log);\n  }\n}\n\n/**\n * The entry point to the application.\n */\nvoid main() {\n  application.startup('#container');\n}\n"
  },
  {
    "path": "html5/web/webgl/solar3d/web/solar.html",
    "content": "<!DOCTYPE html>\n\n<!-- Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n     for details. All rights reserved. Use of this source code is governed by a\n     BSD-style license that can be found in the LICENSE file. -->\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Solar System Demo</title>\n    <link type=\"text/css\" rel=\"stylesheet\" href=\"solar.css\">\n  </head>\n  <body>\n    <h1>Solar System 3D</h1>\n\n    <p>A 3D solar system visualization using WebGL.</p>\n\n    <div>\n      <canvas id=\"container\"></canvas>\n    </div>\n    <footer>\n      <p id=\"summary\">Click on the canvas to manipulate the simulation.<br>\n        Use the mouse to zoom and the scroll wheel to rotate the view.<br>\n        Key controls: <b>S</b>un, <b>J</b>upiter, <b>E</b>arth, and <b>F</b>ullscreen.\n      </p>\n      <p id=\"notes\"> </p>\n    </footer>\n\n    <script type=\"application/dart\" src=\"solar.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/webgl/solar3d/web/sphere_controller.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\npart of solar3d;\n\nclass MouseSphereCameraController {\n  double zoomVelocity = 5.0;\n  double mouseSensitivity = 360.0;\n\n  double upAngle = 180.0;\n  double sideAngle = 0.0;\n  double radius = 200.0;\n\n  int accumDX = 0;\n  int accumDY = 0;\n  int accumScroll = 0;\n\n  final Vector3 _origin = new Vector3.zero();\n\n  set origin(Vector3 o) {\n    _origin.setFrom(o);\n  }\n\n  Vector3 get origin {\n    return _origin.clone();\n  }\n\n  double _minRadius = 50.0;\n  set minRadius(double r) {\n    _minRadius = r;\n    if (radius < _minRadius) {\n      radius = _minRadius;\n    }\n  }\n  double get minRadius => _minRadius;\n\n  MouseSphereCameraController();\n\n  void updateCamera(num seconds, Camera cam) {\n    _zoomView(seconds);\n    _orbitView(seconds);\n    _updateCamera(cam);\n    accumDX = 0;\n    accumDY = 0;\n    accumScroll = 0;\n  }\n\n  void _zoomView(num seconds) {\n    var zoomValue = accumScroll.toDouble()*zoomVelocity*seconds;\n    radius += zoomValue;\n    if (radius < _minRadius) {\n      radius = _minRadius;\n    }\n  }\n\n  void _orbitView(num seconds) {\n    var mouseYawDelta = accumDX.toDouble() / mouseSensitivity;\n    var mousePitchDelta = accumDY.toDouble() / mouseSensitivity;\n\n    const verticalAngleThreshold = 1.04719;\n    sideAngle += mousePitchDelta;\n    if (sideAngle < verticalAngleThreshold) {\n      sideAngle = verticalAngleThreshold;\n    } else if (sideAngle > 2.0*verticalAngleThreshold) {\n      sideAngle = 2.0*verticalAngleThreshold;\n    }\n    upAngle += mouseYawDelta;\n  }\n\n  void _updateCamera(Camera cam) {\n    cam.lookAtPosition = origin;\n    var cosUpAngle = Math.cos(upAngle);\n    var sinUpAngle = Math.sin(upAngle);\n    var cosSideAngle = Math.cos(sideAngle);\n    var sinSideAngle = Math.sin(sideAngle);\n    var x = radius * sinSideAngle * cosUpAngle;\n    var y = radius * cosSideAngle;\n    var z = radius * sinSideAngle * sinUpAngle;\n    cam.eyePosition = cam.lookAtPosition + new Vector3(x,y,z);\n  }\n}\n"
  },
  {
    "path": "html5/web/webgl/solar3d/web/sphere_model.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\npart of solar3d;\n\nclass SphereModel {\n  static WebGL.Buffer indexBuffer;\n  static WebGL.Buffer vertexBuffer;\n  static int _vertexCount;\n  static int _vertexStride;\n  static int _positionAttributeIndex;\n  static int _textureAttributeIndex;\n  static int _normalAttributeIndex;\n\n  static void setup(WebGL.RenderingContext gl) {\n    assert(gl != null);\n\n    // Create WebGL. Buffer to store index data.\n    indexBuffer = gl.createBuffer();\n    gl.bindBuffer(WebGL.RenderingContext.ELEMENT_ARRAY_BUFFER, indexBuffer);\n    // Create Typed Array filled with index data.\n    var indexList = _sphereData['meshes'][0]['indices'];\n    var indexArray = new Uint16List.fromList(indexList);\n    // Upload index array to WebGL. index buffer\n    // Usage tagged as static because it will never change.\n    gl.bufferDataTyped(WebGL.RenderingContext.ELEMENT_ARRAY_BUFFER,\n                  indexArray,\n                  WebGL.RenderingContext.STATIC_DRAW);\n    _vertexCount = indexList.length;\n    _vertexStride = _sphereData['meshes'][0]['attributes']['POSITION']['stride'];\n    // Create WebGL. Buffer to store vertex data.\n    vertexBuffer = gl.createBuffer();\n    gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, vertexBuffer);\n    // Created Typed Array filled with vertex data.\n    var vertexList = _sphereData['meshes'][0]['vertices'];\n    var vertexArray = new Float32List.fromList(vertexList);\n    // Upload vertex array to WebGL. vertex buffer\n    // Usage tagged as static because it will never change.\n    gl.bufferDataTyped(WebGL.RenderingContext.ARRAY_BUFFER,\n                  vertexArray,\n                  WebGL.RenderingContext.STATIC_DRAW);\n  }\n\n  static void bindToProgram(WebGL.RenderingContext gl, WebGL.Program program) {\n    _positionAttributeIndex = gl.getAttribLocation(program, 'vPosition');\n    _textureAttributeIndex = gl.getAttribLocation(program, 'vTexCoord');\n    _normalAttributeIndex = gl.getAttribLocation(program, 'vNormal');\n  }\n\n  static void prerender(WebGL.RenderingContext gl) {\n    gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, vertexBuffer);\n    gl.enableVertexAttribArray(_positionAttributeIndex);\n    gl.vertexAttribPointer(_positionAttributeIndex,\n                           3, WebGL.RenderingContext.FLOAT, // 3 floats\n                           false, _vertexStride,\n                           0); // 0 offset\n    gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, vertexBuffer);\n    gl.enableVertexAttribArray(_normalAttributeIndex);\n    gl.vertexAttribPointer(_normalAttributeIndex,\n                           3, WebGL.RenderingContext.FLOAT,\n                           false, _vertexStride,\n                           12);\n    gl.bindBuffer(WebGL.RenderingContext.ARRAY_BUFFER, vertexBuffer);\n    gl.enableVertexAttribArray(_textureAttributeIndex);\n    gl.vertexAttribPointer(_textureAttributeIndex,\n                           2, WebGL.RenderingContext.FLOAT,\n                           false, _vertexStride,\n                           48);\n  }\n\n  static void render(WebGL.RenderingContext gl) {\n    gl.bindBuffer(WebGL.RenderingContext.ELEMENT_ARRAY_BUFFER, indexBuffer);\n    gl.drawElements(WebGL.RenderingContext.TRIANGLES, _vertexCount,\n                    WebGL.RenderingContext.UNSIGNED_SHORT, 0);\n  }\n}\n"
  },
  {
    "path": "html5/web/webgl/solar3d/web/sphere_model_data.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\npart of solar3d;\n\nfinal Map _sphereData = JSON.decode(_sphereDataString);\nfinal String _sphereDataString = '''\n{\n\"header\" : {\n\"filename\" : \"/Users/johnmccutchan/untitled5.obj\"\n},\n\"meshes\" : [\n{\n\"indexWidth\" : 2,\n\"attributes\" : {\n\"POSITION\" : {\n\"name\" : \"POSITION\",\n\"type\" : \"float\",\n\"numElements\" : 3,\n\"normalized\" : false,\n\"stride\" : 56,\n\"offset\" : 0\n}\n,\n\"NORMAL\" : {\n\"name\" : \"NORMAL\",\n\"type\" : \"float\",\n\"numElements\" : 3,\n\"normalized\" : false,\n\"stride\" : 56,\n\"offset\" : 12\n}\n,\n\"TANGENT\" : {\n\"name\" : \"TANGENT\",\n\"type\" : \"float\",\n\"numElements\" : 3,\n\"normalized\" : false,\n\"stride\" : 56,\n\"offset\" : 24\n}\n,\n\"BITANGENT\" : {\n\"name\" : \"BITANGENT\",\n\"type\" : \"float\",\n\"numElements\" : 3,\n\"normalized\" : false,\n\"stride\" : 56,\n\"offset\" : 36\n}\n,\n\"TEXCOORD0\" : {\n\"name\" : \"TEXCOORD0\",\n\"type\" : \"float\",\n\"numElements\" : 2,\n\"normalized\" : false,\n\"stride\" : 56,\n\"offset\" : 48\n}\n},\n\"bounds\" : [-0.500000, -0.500000, -0.500000, 0.500000, 0.500000, 0.500000],\n\"indices\" : [\n2, 1, 0,\n5, 4, 3,\n8, 7, 6,\n11, 10, 9,\n14, 13, 12,\n17, 16, 15,\n20, 19, 18,\n23, 22, 21,\n26, 25, 24,\n29, 28, 27,\n32, 31, 30,\n35, 34, 33,\n38, 37, 36,\n41, 40, 39,\n44, 43, 42,\n47, 46, 45,\n50, 49, 48,\n53, 52, 51,\n56, 55, 54,\n59, 58, 57,\n62, 61, 60,\n65, 64, 63,\n68, 67, 66,\n71, 70, 69,\n74, 73, 72,\n77, 76, 75,\n80, 79, 78,\n83, 82, 81,\n86, 85, 84,\n89, 88, 87,\n92, 91, 90,\n95, 94, 93,\n98, 97, 96,\n101, 100, 99,\n104, 103, 102,\n107, 106, 105,\n110, 109, 108,\n113, 112, 111,\n116, 115, 114,\n119, 118, 117,\n122, 121, 120,\n125, 124, 123,\n128, 127, 126,\n131, 130, 129,\n134, 133, 132,\n137, 136, 135,\n140, 139, 138,\n143, 142, 141,\n146, 145, 144,\n149, 148, 147,\n152, 151, 150,\n155, 154, 153,\n158, 157, 156,\n161, 160, 159,\n164, 163, 162,\n167, 166, 165,\n170, 169, 168,\n173, 172, 171,\n176, 175, 174,\n179, 178, 177,\n182, 181, 180,\n185, 184, 183,\n188, 187, 186,\n191, 190, 189,\n194, 193, 192,\n197, 196, 195,\n200, 199, 198,\n203, 202, 201,\n206, 205, 204,\n209, 208, 207,\n212, 211, 210,\n215, 214, 213,\n218, 217, 216,\n221, 220, 219,\n224, 223, 222,\n227, 226, 225,\n230, 229, 228,\n233, 232, 231,\n236, 235, 234,\n239, 238, 237,\n242, 241, 240,\n245, 244, 243,\n248, 247, 246,\n251, 250, 249,\n254, 253, 252,\n257, 256, 255,\n260, 259, 258,\n263, 262, 261,\n266, 265, 264,\n269, 268, 267,\n272, 271, 270,\n275, 274, 273,\n278, 277, 276,\n281, 280, 279,\n284, 283, 282,\n287, 286, 285,\n290, 289, 288,\n293, 292, 291,\n296, 295, 294,\n299, 298, 297,\n302, 301, 300,\n305, 304, 303,\n308, 307, 306,\n311, 310, 309,\n314, 313, 312,\n317, 316, 315,\n320, 319, 318,\n323, 322, 321,\n326, 325, 324,\n329, 328, 327,\n332, 331, 330,\n335, 334, 333,\n338, 337, 336,\n341, 340, 339,\n344, 343, 342,\n347, 346, 345,\n350, 349, 348,\n353, 352, 351,\n356, 355, 354,\n359, 358, 357,\n362, 361, 360,\n365, 364, 363,\n368, 367, 366,\n371, 370, 369,\n374, 373, 372,\n377, 376, 375,\n380, 379, 378,\n383, 382, 381,\n386, 385, 384,\n389, 388, 387,\n392, 391, 390,\n395, 394, 393,\n398, 397, 396,\n401, 400, 399,\n404, 403, 402,\n407, 406, 405,\n410, 409, 408,\n413, 412, 411,\n416, 415, 414,\n419, 418, 417,\n422, 421, 420,\n425, 424, 423,\n428, 427, 426,\n431, 430, 429,\n434, 433, 432,\n437, 436, 435,\n440, 439, 438,\n443, 442, 441,\n446, 445, 444,\n449, 448, 447,\n452, 451, 450,\n455, 454, 453,\n458, 457, 456,\n461, 460, 459,\n464, 463, 462,\n467, 466, 465,\n470, 469, 468,\n473, 472, 471,\n476, 475, 474,\n479, 478, 477,\n482, 481, 480,\n485, 484, 483,\n488, 487, 486,\n491, 490, 489,\n494, 493, 492,\n497, 496, 495,\n500, 499, 498,\n503, 502, 501,\n506, 505, 504,\n509, 508, 507,\n512, 511, 510,\n515, 514, 513,\n518, 517, 516,\n521, 520, 519,\n524, 523, 522,\n527, 526, 525,\n530, 529, 528,\n533, 532, 531,\n536, 535, 534,\n539, 538, 537,\n542, 541, 540,\n545, 544, 543,\n548, 547, 546,\n551, 550, 549,\n554, 553, 552,\n557, 556, 555,\n560, 559, 558,\n563, 562, 561,\n566, 565, 564,\n569, 568, 567,\n572, 571, 570,\n575, 574, 573,\n578, 577, 576,\n581, 580, 579,\n584, 583, 582,\n587, 586, 585,\n590, 589, 588,\n593, 592, 591,\n596, 595, 594,\n599, 598, 597,\n602, 601, 600,\n605, 604, 603,\n608, 607, 606,\n611, 610, 609,\n614, 613, 612,\n617, 616, 615,\n620, 619, 618,\n623, 622, 621,\n626, 625, 624,\n629, 628, 627,\n632, 631, 630,\n635, 634, 633,\n638, 637, 636,\n641, 640, 639,\n644, 643, 642,\n647, 646, 645,\n650, 649, 648,\n653, 652, 651,\n656, 655, 654,\n659, 658, 657,\n662, 661, 660,\n665, 664, 663,\n668, 667, 666,\n671, 670, 669,\n674, 673, 672,\n677, 676, 675,\n680, 679, 678,\n683, 682, 681,\n686, 685, 684,\n689, 688, 687,\n692, 691, 690,\n695, 694, 693,\n698, 697, 696,\n701, 700, 699,\n704, 703, 702,\n707, 706, 705,\n710, 709, 708,\n713, 712, 711,\n716, 715, 714,\n719, 718, 717,\n722, 721, 720,\n725, 724, 723,\n728, 727, 726,\n731, 730, 729,\n734, 733, 732,\n737, 736, 735,\n740, 739, 738,\n743, 742, 741,\n746, 745, 744,\n749, 748, 747,\n752, 751, 750,\n755, 754, 753,\n758, 757, 756,\n761, 760, 759,\n764, 763, 762,\n767, 766, 765,\n770, 769, 768,\n773, 772, 771,\n776, 775, 774,\n779, 778, 777,\n782, 781, 780,\n785, 784, 783,\n788, 787, 786,\n791, 790, 789,\n794, 793, 792,\n797, 796, 795,\n800, 799, 798,\n803, 802, 801,\n806, 805, 804,\n809, 808, 807,\n812, 811, 810,\n815, 814, 813,\n818, 817, 816,\n821, 820, 819,\n824, 823, 822,\n827, 826, 825,\n830, 829, 828,\n833, 832, 831,\n836, 835, 834,\n839, 838, 837,\n842, 841, 840,\n845, 844, 843,\n848, 847, 846,\n851, 850, 849,\n854, 853, 852,\n857, 856, 855,\n860, 859, 858,\n863, 862, 861,\n866, 865, 864,\n869, 868, 867,\n872, 871, 870,\n875, 874, 873,\n878, 877, 876,\n881, 880, 879,\n884, 883, 882,\n887, 886, 885,\n890, 889, 888,\n893, 892, 891,\n896, 895, 894,\n899, 898, 897,\n902, 901, 900,\n905, 904, 903,\n908, 907, 906,\n911, 910, 909,\n914, 913, 912,\n917, 916, 915,\n920, 919, 918,\n923, 922, 921,\n926, 925, 924,\n929, 928, 927,\n932, 931, 930,\n935, 934, 933,\n938, 937, 936,\n941, 940, 939,\n944, 943, 942,\n947, 946, 945,\n950, 949, 948,\n953, 952, 951,\n956, 955, 954,\n959, 958, 957,\n962, 961, 960,\n965, 964, 963,\n968, 967, 966,\n971, 970, 969,\n974, 973, 972,\n977, 976, 975,\n980, 979, 978,\n983, 982, 981,\n986, 985, 984,\n989, 988, 987,\n992, 991, 990,\n995, 994, 993,\n998, 997, 996,\n1001, 1000, 999,\n1004, 1003, 1002,\n1007, 1006, 1005,\n1010, 1009, 1008,\n1013, 1012, 1011,\n1016, 1015, 1014,\n1019, 1018, 1017,\n1022, 1021, 1020,\n1025, 1024, 1023,\n1028, 1027, 1026,\n1031, 1030, 1029,\n1034, 1033, 1032,\n1037, 1036, 1035,\n1040, 1039, 1038,\n1043, 1042, 1041,\n1046, 1045, 1044,\n1049, 1048, 1047,\n1052, 1051, 1050,\n1055, 1054, 1053,\n1058, 1057, 1056,\n1061, 1060, 1059,\n1064, 1063, 1062,\n1067, 1066, 1065,\n1070, 1069, 1068,\n1073, 1072, 1071,\n1076, 1075, 1074,\n1079, 1078, 1077,\n1082, 1081, 1080,\n1085, 1084, 1083,\n1088, 1087, 1086,\n1091, 1090, 1089,\n1094, 1093, 1092,\n1097, 1096, 1095,\n1100, 1099, 1098,\n1103, 1102, 1101,\n1106, 1105, 1104,\n1109, 1108, 1107,\n1112, 1111, 1110,\n1115, 1114, 1113,\n1118, 1117, 1116,\n1121, 1120, 1119,\n1124, 1123, 1122,\n1127, 1126, 1125,\n1130, 1129, 1128,\n1133, 1132, 1131,\n1136, 1135, 1134,\n1139, 1138, 1137,\n1142, 1141, 1140,\n1145, 1144, 1143,\n1148, 1147, 1146,\n1151, 1150, 1149,\n1154, 1153, 1152,\n1157, 1156, 1155,\n1160, 1159, 1158,\n1163, 1162, 1161,\n1166, 1165, 1164,\n1169, 1168, 1167,\n1172, 1171, 1170,\n1175, 1174, 1173,\n1178, 1177, 1176,\n1181, 1180, 1179,\n1184, 1183, 1182,\n1187, 1186, 1185,\n1190, 1189, 1188,\n1193, 1192, 1191,\n1196, 1195, 1194,\n1199, 1198, 1197,\n1202, 1201, 1200,\n1205, 1204, 1203,\n1208, 1207, 1206,\n1211, 1210, 1209,\n1214, 1213, 1212,\n1217, 1216, 1215,\n1220, 1219, 1218,\n1223, 1222, 1221,\n1226, 1225, 1224,\n1229, 1228, 1227,\n1232, 1231, 1230,\n1235, 1234, 1233,\n1238, 1237, 1236,\n1241, 1240, 1239,\n1244, 1243, 1242,\n1247, 1246, 1245,\n1250, 1249, 1248,\n1253, 1252, 1251,\n1256, 1255, 1254,\n1259, 1258, 1257,\n1262, 1261, 1260,\n1265, 1264, 1263,\n1268, 1267, 1266,\n1271, 1270, 1269,\n1274, 1273, 1272,\n1277, 1276, 1275,\n1280, 1279, 1278,\n1283, 1282, 1281,\n1286, 1285, 1284,\n1289, 1288, 1287,\n1292, 1291, 1290,\n1295, 1294, 1293,\n1298, 1297, 1296,\n1301, 1300, 1299,\n1304, 1303, 1302,\n1307, 1306, 1305,\n1310, 1309, 1308,\n1313, 1312, 1311,\n1316, 1315, 1314,\n1319, 1318, 1317,\n1322, 1321, 1320,\n1325, 1324, 1323,\n1328, 1327, 1326,\n1331, 1330, 1329,\n1334, 1333, 1332,\n1337, 1336, 1335,\n1340, 1339, 1338,\n1343, 1342, 1341,\n1346, 1345, 1344,\n1349, 1348, 1347,\n1352, 1351, 1350,\n1355, 1354, 1353,\n1358, 1357, 1356,\n1361, 1360, 1359,\n1364, 1363, 1362,\n1367, 1366, 1365,\n1370, 1369, 1368,\n1373, 1372, 1371,\n1376, 1375, 1374,\n1379, 1378, 1377,\n1382, 1381, 1380,\n1385, 1384, 1383,\n1388, 1387, 1386,\n1391, 1390, 1389,\n1394, 1393, 1392,\n1397, 1396, 1395,\n1400, 1399, 1398,\n1403, 1402, 1401,\n1406, 1405, 1404,\n1409, 1408, 1407,\n1412, 1411, 1410,\n1415, 1414, 1413,\n1418, 1417, 1416,\n1421, 1420, 1419,\n1424, 1423, 1422,\n1427, 1426, 1425,\n1430, 1429, 1428,\n1433, 1432, 1431,\n1436, 1435, 1434,\n1439, 1438, 1437,\n1442, 1441, 1440,\n1445, 1444, 1443,\n1448, 1447, 1446,\n1451, 1450, 1449,\n1454, 1453, 1452,\n1457, 1456, 1455,\n1460, 1459, 1458,\n1463, 1462, 1461,\n1466, 1465, 1464,\n1469, 1468, 1467,\n1472, 1471, 1470,\n1475, 1474, 1473,\n1478, 1477, 1476,\n1481, 1480, 1479,\n1484, 1483, 1482,\n1487, 1486, 1485,\n1490, 1489, 1488,\n1493, 1492, 1491,\n1496, 1495, 1494,\n1499, 1498, 1497,\n1502, 1501, 1500,\n1505, 1504, 1503,\n1508, 1507, 1506,\n1511, 1510, 1509,\n1514, 1513, 1512,\n1517, 1516, 1515,\n1520, 1519, 1518,\n1523, 1522, 1521,\n1526, 1525, 1524,\n1529, 1528, 1527,\n1532, 1531, 1530,\n1535, 1534, 1533,\n1538, 1537, 1536,\n1541, 1540, 1539,\n1544, 1543, 1542,\n1547, 1546, 1545,\n1550, 1549, 1548,\n1553, 1552, 1551,\n1556, 1555, 1554,\n1559, 1558, 1557,\n1562, 1561, 1560,\n1565, 1564, 1563,\n1568, 1567, 1566,\n1571, 1570, 1569,\n1574, 1573, 1572,\n1577, 1576, 1575,\n1580, 1579, 1578,\n1583, 1582, 1581,\n1586, 1585, 1584,\n1589, 1588, 1587,\n1592, 1591, 1590,\n1595, 1594, 1593,\n1598, 1597, 1596,\n1601, 1600, 1599,\n1604, 1603, 1602,\n1607, 1606, 1605,\n1610, 1609, 1608,\n1613, 1612, 1611,\n1616, 1615, 1614,\n1619, 1618, 1617,\n1622, 1621, 1620,\n1625, 1624, 1623,\n1628, 1627, 1626,\n1631, 1630, 1629,\n1634, 1633, 1632,\n1637, 1636, 1635,\n1640, 1639, 1638,\n1643, 1642, 1641,\n1646, 1645, 1644,\n1649, 1648, 1647,\n1652, 1651, 1650,\n1655, 1654, 1653,\n1658, 1657, 1656,\n1661, 1660, 1659,\n1664, 1663, 1662,\n1667, 1666, 1665,\n1670, 1669, 1668,\n1673, 1672, 1671,\n1676, 1675, 1674,\n1679, 1678, 1677,\n1682, 1681, 1680,\n1685, 1684, 1683,\n1688, 1687, 1686,\n1691, 1690, 1689,\n1694, 1693, 1692,\n1697, 1696, 1695,\n1700, 1699, 1698,\n1703, 1702, 1701,\n1706, 1705, 1704,\n1709, 1708, 1707,\n1712, 1711, 1710,\n1715, 1714, 1713,\n1718, 1717, 1716,\n1721, 1720, 1719,\n1724, 1723, 1722,\n1727, 1726, 1725,\n1730, 1729, 1728,\n1733, 1732, 1731,\n1736, 1735, 1734,\n1739, 1738, 1737,\n1742, 1741, 1740,\n1745, 1744, 1743,\n1748, 1747, 1746,\n1751, 1750, 1749,\n1754, 1753, 1752,\n1757, 1756, 1755,\n1760, 1759, 1758,\n1763, 1762, 1761,\n1766, 1765, 1764,\n1769, 1768, 1767,\n1772, 1771, 1770,\n1775, 1774, 1773,\n1778, 1777, 1776,\n1781, 1780, 1779,\n1784, 1783, 1782,\n1787, 1786, 1785,\n1790, 1789, 1788,\n1793, 1792, 1791,\n1796, 1795, 1794,\n1799, 1798, 1797,\n1802, 1801, 1800,\n1805, 1804, 1803,\n1808, 1807, 1806,\n1811, 1810, 1809,\n1814, 1813, 1812,\n1817, 1816, 1815,\n1820, 1819, 1818,\n1823, 1822, 1821,\n1826, 1825, 1824,\n1829, 1828, 1827,\n1832, 1831, 1830,\n1835, 1834, 1833,\n1838, 1837, 1836,\n1841, 1840, 1839,\n1844, 1843, 1842,\n1847, 1846, 1845,\n1850, 1849, 1848,\n1853, 1852, 1851,\n1856, 1855, 1854,\n1859, 1858, 1857,\n1862, 1861, 1860,\n1865, 1864, 1863,\n1868, 1867, 1866,\n1871, 1870, 1869,\n1874, 1873, 1872,\n1877, 1876, 1875,\n1880, 1879, 1878,\n1883, 1882, 1881,\n1886, 1885, 1884,\n1889, 1888, 1887,\n1892, 1891, 1890,\n1895, 1894, 1893,\n1898, 1897, 1896,\n1901, 1900, 1899,\n1904, 1903, 1902,\n1907, 1906, 1905,\n1910, 1909, 1908,\n1913, 1912, 1911,\n1916, 1915, 1914,\n1919, 1918, 1917,\n1922, 1921, 1920,\n1925, 1924, 1923,\n1928, 1927, 1926,\n1931, 1930, 1929,\n1934, 1933, 1932,\n1937, 1936, 1935,\n1940, 1939, 1938,\n1943, 1942, 1941,\n1946, 1945, 1944,\n1949, 1948, 1947,\n1952, 1951, 1950,\n1955, 1954, 1953,\n1958, 1957, 1956,\n1961, 1960, 1959,\n1964, 1963, 1962,\n1967, 1966, 1965,\n1970, 1969, 1968,\n1973, 1972, 1971,\n1976, 1975, 1974,\n1979, 1978, 1977,\n1982, 1981, 1980,\n1985, 1984, 1983,\n1988, 1987, 1986,\n1991, 1990, 1989,\n1994, 1993, 1992,\n1997, 1996, 1995,\n2000, 1999, 1998,\n2003, 2002, 2001,\n2006, 2005, 2004,\n2009, 2008, 2007,\n2012, 2011, 2010,\n2015, 2014, 2013,\n2018, 2017, 2016,\n2021, 2020, 2019,\n2024, 2023, 2022,\n2027, 2026, 2025,\n2030, 2029, 2028,\n2033, 2032, 2031,\n2036, 2035, 2034,\n2039, 2038, 2037,\n2042, 2041, 2040,\n2045, 2044, 2043,\n2048, 2047, 2046,\n2051, 2050, 2049,\n2054, 2053, 2052,\n2057, 2056, 2055,\n2060, 2059, 2058,\n2063, 2062, 2061,\n2066, 2065, 2064,\n2069, 2068, 2067,\n2072, 2071, 2070,\n2075, 2074, 2073,\n2078, 2077, 2076,\n2081, 2080, 2079,\n2084, 2083, 2082,\n2087, 2086, 2085,\n2090, 2089, 2088,\n2093, 2092, 2091,\n2096, 2095, 2094,\n2099, 2098, 2097,\n2102, 2101, 2100,\n2105, 2104, 2103,\n2108, 2107, 2106,\n2111, 2110, 2109,\n2114, 2113, 2112,\n2117, 2116, 2115,\n2120, 2119, 2118,\n2123, 2122, 2121,\n2126, 2125, 2124,\n2129, 2128, 2127,\n2132, 2131, 2130,\n2135, 2134, 2133,\n2138, 2137, 2136,\n2141, 2140, 2139,\n2144, 2143, 2142,\n2147, 2146, 2145,\n2150, 2149, 2148,\n2153, 2152, 2151,\n2156, 2155, 2154,\n2159, 2158, 2157,\n2162, 2161, 2160,\n2165, 2164, 2163,\n2168, 2167, 2166,\n2171, 2170, 2169,\n2174, 2173, 2172,\n2177, 2176, 2175,\n2180, 2179, 2178,\n2183, 2182, 2181,\n2186, 2185, 2184,\n2189, 2188, 2187,\n2192, 2191, 2190,\n2195, 2194, 2193,\n2198, 2197, 2196,\n2201, 2200, 2199,\n2204, 2203, 2202,\n2207, 2206, 2205,\n2210, 2209, 2208,\n2213, 2212, 2211,\n2216, 2215, 2214,\n2219, 2218, 2217,\n2222, 2221, 2220,\n2225, 2224, 2223,\n2228, 2227, 2226,\n2231, 2230, 2229,\n2234, 2233, 2232,\n2237, 2236, 2235,\n2240, 2239, 2238,\n2243, 2242, 2241,\n2246, 2245, 2244,\n2249, 2248, 2247,\n2252, 2251, 2250,\n2255, 2254, 2253,\n2258, 2257, 2256,\n2261, 2260, 2259,\n2264, 2263, 2262,\n2267, 2266, 2265,\n2270, 2269, 2268,\n2273, 2272, 2271,\n2276, 2275, 2274,\n2279, 2278, 2277,\n2282, 2281, 2280,\n2285, 2284, 2283,\n2288, 2287, 2286,\n2291, 2290, 2289,\n2294, 2293, 2292,\n2297, 2296, 2295,\n2300, 2299, 2298,\n2303, 2302, 2301,\n2306, 2305, 2304,\n2309, 2308, 2307,\n2312, 2311, 2310,\n2315, 2314, 2313,\n2318, 2317, 2316,\n2321, 2320, 2319,\n2324, 2323, 2322,\n2327, 2326, 2325,\n2330, 2329, 2328,\n2333, 2332, 2331,\n2336, 2335, 2334,\n2339, 2338, 2337,\n2342, 2341, 2340,\n2345, 2344, 2343,\n2348, 2347, 2346,\n2351, 2350, 2349,\n2354, 2353, 2352,\n2357, 2356, 2355,\n2360, 2359, 2358,\n2363, 2362, 2361,\n2366, 2365, 2364,\n2369, 2368, 2367,\n2372, 2371, 2370,\n2375, 2374, 2373,\n2378, 2377, 2376,\n2381, 2380, 2379,\n2384, 2383, 2382,\n2387, 2386, 2385,\n2390, 2389, 2388,\n2393, 2392, 2391,\n2396, 2395, 2394,\n2399, 2398, 2397,\n2402, 2401, 2400,\n2405, 2404, 2403,\n2408, 2407, 2406,\n2411, 2410, 2409,\n2414, 2413, 2412,\n2417, 2416, 2415,\n2420, 2419, 2418,\n2423, 2422, 2421,\n2426, 2425, 2424,\n2429, 2428, 2427,\n2432, 2431, 2430,\n2435, 2434, 2433,\n2438, 2437, 2436,\n2441, 2440, 2439,\n2444, 2443, 2442,\n2447, 2446, 2445,\n2450, 2449, 2448,\n2453, 2452, 2451,\n2456, 2455, 2454,\n2459, 2458, 2457,\n2462, 2461, 2460,\n2465, 2464, 2463,\n2468, 2467, 2466,\n2471, 2470, 2469,\n2474, 2473, 2472,\n2477, 2476, 2475,\n2480, 2479, 2478,\n2483, 2482, 2481,\n2486, 2485, 2484,\n2489, 2488, 2487,\n2492, 2491, 2490,\n2495, 2494, 2493,\n2498, 2497, 2496,\n2501, 2500, 2499,\n2504, 2503, 2502,\n2507, 2506, 2505,\n2510, 2509, 2508,\n2513, 2512, 2511,\n2516, 2515, 2514,\n2519, 2518, 2517,\n2522, 2521, 2520,\n2525, 2524, 2523,\n2528, 2527, 2526,\n2531, 2530, 2529,\n2534, 2533, 2532,\n2537, 2536, 2535,\n2540, 2539, 2538,\n2543, 2542, 2541,\n2546, 2545, 2544,\n2549, 2548, 2547,\n2552, 2551, 2550,\n2555, 2554, 2553,\n2558, 2557, 2556,\n2561, 2560, 2559,\n2564, 2563, 2562,\n2567, 2566, 2565,\n2570, 2569, 2568,\n2573, 2572, 2571,\n2576, 2575, 2574,\n2579, 2578, 2577,\n2582, 2581, 2580,\n2585, 2584, 2583,\n2588, 2587, 2586,\n2591, 2590, 2589,\n2594, 2593, 2592,\n2597, 2596, 2595,\n2600, 2599, 2598,\n2603, 2602, 2601,\n2606, 2605, 2604,\n2609, 2608, 2607,\n2612, 2611, 2610,\n2615, 2614, 2613,\n2618, 2617, 2616,\n2621, 2620, 2619,\n2624, 2623, 2622,\n2627, 2626, 2625,\n2630, 2629, 2628,\n2633, 2632, 2631,\n2636, 2635, 2634,\n2639, 2638, 2637,\n2642, 2641, 2640,\n2645, 2644, 2643,\n2648, 2647, 2646,\n2651, 2650, 2649,\n2654, 2653, 2652,\n2657, 2656, 2655,\n2660, 2659, 2658,\n2663, 2662, 2661,\n2666, 2665, 2664,\n2669, 2668, 2667,\n2672, 2671, 2670,\n2675, 2674, 2673,\n2678, 2677, 2676,\n2681, 2680, 2679,\n2684, 2683, 2682,\n2687, 2686, 2685,\n2690, 2689, 2688,\n2693, 2692, 2691,\n2696, 2695, 2694,\n2699, 2698, 2697,\n2702, 2701, 2700,\n2705, 2704, 2703,\n2708, 2707, 2706,\n2711, 2710, 2709,\n2714, 2713, 2712,\n2717, 2716, 2715,\n2720, 2719, 2718,\n2723, 2722, 2721,\n2726, 2725, 2724,\n2729, 2728, 2727,\n2732, 2731, 2730,\n2735, 2734, 2733,\n2738, 2737, 2736,\n2741, 2740, 2739,\n2744, 2743, 2742,\n2747, 2746, 2745,\n2750, 2749, 2748,\n2753, 2752, 2751,\n2756, 2755, 2754,\n2759, 2758, 2757,\n2762, 2761, 2760,\n2765, 2764, 2763,\n2768, 2767, 2766,\n2771, 2770, 2769,\n2774, 2773, 2772,\n2777, 2776, 2775,\n2780, 2779, 2778,\n2783, 2782, 2781,\n2786, 2785, 2784,\n2789, 2788, 2787,\n2792, 2791, 2790,\n2795, 2794, 2793,\n2798, 2797, 2796,\n2801, 2800, 2799,\n2804, 2803, 2802,\n2807, 2806, 2805,\n2810, 2809, 2808,\n2813, 2812, 2811,\n2816, 2815, 2814,\n2819, 2818, 2817,\n2822, 2821, 2820,\n2825, 2824, 2823,\n2828, 2827, 2826,\n2831, 2830, 2829,\n2834, 2833, 2832,\n2837, 2836, 2835,\n2840, 2839, 2838,\n2843, 2842, 2841,\n2846, 2845, 2844,\n2849, 2848, 2847,\n2852, 2851, 2850,\n2855, 2854, 2853,\n2858, 2857, 2856,\n2861, 2860, 2859,\n2864, 2863, 2862,\n2867, 2866, 2865,\n2870, 2869, 2868,\n2873, 2872, 2871,\n2876, 2875, 2874,\n2879, 2878, 2877\n],\n\"vertices\" : [\n-0.346760, -0.353553, 0.068975, -0.693044, -0.707137, 0.140172, -0.277094, 0.081800, -0.957355, -0.665774, 0.702406, 0.251738, 0.024121, 0.611887,\n-0.272448, -0.415735, 0.054193, -0.544337, -0.831489, 0.111008, -0.298466, 0.068298, -0.951973, -0.783031, 0.551109, 0.288344, 0.020139, 0.677216,\n-0.277785, -0.415735, -0.000000, -0.582526, -0.812812, -0.000003, -0.182415, 0.130737, -0.974491, -0.789993, 0.566171, 0.235289, 0.038786, 0.683738,\n-0.453064, 0.191342, 0.090120, -0.916862, 0.364377, 0.163075, -0.109371, 0.163588, -0.980447, 0.385547, 0.914179, 0.125021, 0.048498, 0.219973,\n-0.480970, 0.097545, 0.095671, -0.961806, 0.181272, 0.205110, -0.182105, 0.135711, -0.973869, 0.201708, 0.975890, 0.083381, 0.042455, 0.285041,\n-0.490393, 0.097545, -0.000000, -0.980782, 0.195105, -0.000626, 0.044366, 0.219896, -0.974514, 0.190567, 0.958649, 0.211369, 0.077252, 0.297212,\n-0.272448, -0.415735, 0.054193, -0.544337, -0.831489, 0.111008, -0.298466, 0.068298, -0.951973, -0.783031, 0.551109, 0.288344, 0.020139, 0.677216,\n-0.187665, -0.461940, 0.037329, -0.374717, -0.923888, 0.077578, -0.328642, 0.054119, -0.942903, -0.865090, 0.378509, 0.329166, 0.015120, 0.742415,\n-0.191342, -0.461940, -0.000000, -0.412766, -0.910837, -0.000002, -0.232681, 0.105446, -0.966820, -0.876357, 0.397140, 0.272541, 0.029845, 0.747594,\n-0.480970, 0.097545, 0.095671, -0.961806, 0.181272, 0.205110, -0.182105, 0.135711, -0.973869, 0.201708, 0.975890, 0.083381, 0.042455, 0.285041,\n-0.490393, 0.000000, 0.097545, -0.980786, -0.000000, 0.195089, -0.193401, 0.131241, -0.972302, 0.025229, 0.991603, 0.126836, 0.037959, 0.350306,\n-0.500000, 0.000000, -0.000000, -0.999462, -0.000000, 0.032810, -0.032196, 0.192512, -0.980766, 0.005789, 0.984313, 0.176334, 0.069762, 0.361393,\n-0.187665, 0.461940, 0.037329, -0.388811, 0.918409, 0.073153, 0.727220, 0.257180, 0.636404, -0.511054, -0.281057, 0.812300, 0.334831, 0.015378,\n-0.097545, 0.490393, -0.000000, -0.227152, 0.973859, 0.000000, 0.737153, 0.171940, 0.653485, -0.576689, -0.134512, 0.805814, 0.421200, 0.072930,\n-0.095671, 0.490393, 0.019030, -0.209109, 0.976740, 0.047449, 0.634606, 0.098625, 0.766517, -0.730319, -0.188252, 0.656655, 0.438189, 0.065976,\n-0.187665, -0.461940, 0.037329, -0.374717, -0.923888, 0.077578, -0.328642, 0.054119, -0.942903, -0.865090, 0.378509, 0.329166, 0.015120, 0.742415,\n-0.095671, -0.490393, 0.019030, -0.209109, -0.976740, 0.047449, -0.365074, 0.032961, -0.930395, -0.899781, 0.211182, 0.381832, 0.007995, 0.807346,\n-0.097545, -0.490393, -0.000000, -0.227152, -0.973859, 0.000000, -0.300081, 0.069994, -0.951342, -0.917744, 0.214063, 0.334550, 0.017133, 0.810598,\n-0.490393, 0.000000, 0.097545, -0.980786, -0.000000, 0.195089, -0.193401, 0.131241, -0.972302, 0.025229, 0.991603, 0.126836, 0.037959, 0.350306,\n-0.480970, -0.097545, 0.095671, -0.967698, -0.162818, 0.192487, -0.213135, 0.120517, -0.969561, -0.136223, 0.980125, 0.144214, 0.034240, 0.415668,\n-0.500000, 0.000000, -0.000000, -0.999462, -0.000000, 0.032810, -0.032196, 0.192512, -0.980766, 0.005789, 0.984313, 0.176334, 0.069762, 0.361393,\n-0.187665, 0.461940, 0.037329, -0.388811, 0.918409, 0.073153, 0.722431, 0.353191, -0.594432, 0.435443, 0.113211, 0.893069, 0.334831, 0.015378,\n-0.272448, 0.415735, 0.054193, -0.571333, 0.812813, 0.113643, 0.539261, 0.476166, -0.694596, 0.644250, 0.358383, 0.675650, 0.130135, 0.033229,\n-0.277785, 0.415735, -0.000000, -0.555535, 0.831489, -0.002683, 0.668118, 0.444458, -0.596720, 0.514926, 0.346562, 0.784057, 0.184327, 0.059204,\n-0.480970, -0.097545, 0.095671, -0.967698, -0.162818, 0.192487, -0.213135, 0.120517, -0.969561, -0.136223, 0.980125, 0.144214, 0.034240, 0.415668,\n-0.453064, -0.191342, 0.090120, -0.913669, -0.369648, 0.169024, -0.223858, 0.110540, -0.968333, -0.340064, 0.922966, 0.180251, 0.030880, 0.481076,\n-0.490393, -0.097545, -0.000000, -0.980782, -0.195105, -0.000626, -0.037587, 0.192093, -0.980657, -0.191292, 0.960975, 0.199836, 0.063447, 0.425835,\n-0.272448, 0.415735, 0.054193, -0.571333, 0.812813, 0.113643, 0.539261, 0.476166, -0.694596, 0.644250, 0.358383, 0.675650, 0.130135, 0.033229,\n-0.346760, 0.353553, 0.068975, -0.703949, 0.692994, 0.155612, 0.004292, 0.223241, -0.974754, 0.706666, 0.661393, 0.251362, 0.076103, 0.091824,\n-0.353553, 0.353553, -0.000000, -0.716925, 0.697092, 0.008971, 0.305508, 0.325714, -0.894749, 0.613601, 0.624846, 0.482763, 0.127116, 0.110949,\n-0.453064, -0.191342, 0.090120, -0.913669, -0.369648, 0.169024, -0.223858, 0.110540, -0.968333, -0.340064, 0.922966, 0.180251, 0.030880, 0.481076,\n-0.407747, -0.277785, 0.081106, -0.815119, -0.555608, 0.163956, -0.255986, 0.091573, -0.962333, -0.520218, 0.826582, 0.214791, 0.027594, 0.546493,\n-0.415735, -0.277785, -0.000000, -0.849229, -0.528024, -0.000003, -0.103524, 0.166506, -0.980591, -0.517614, 0.832485, 0.197593, 0.051941, 0.554970,\n-0.346760, 0.353553, 0.068975, -0.703949, 0.692994, 0.155612, 0.004292, 0.223241, -0.974754, 0.706666, 0.661393, 0.251362, 0.076103, 0.091824,\n-0.407747, 0.277785, 0.081106, -0.825138, 0.543823, 0.152983, -0.041640, 0.211515, -0.976487, 0.563453, 0.811807, 0.153267, 0.057879, 0.155328,\n-0.353553, 0.353553, -0.000000, -0.716925, 0.697092, 0.008971, 0.305508, 0.325714, -0.894749, 0.613601, 0.624846, 0.482763, 0.127116, 0.110949,\n-0.407747, -0.277785, 0.081106, -0.815119, -0.555608, 0.163956, -0.255986, 0.091573, -0.962333, -0.520218, 0.826582, 0.214791, 0.027594, 0.546493,\n-0.346760, -0.353553, 0.068975, -0.693044, -0.707137, 0.140172, -0.277094, 0.081800, -0.957355, -0.665774, 0.702406, 0.251738, 0.024121, 0.611887,\n-0.353553, -0.353553, -0.000000, -0.729900, -0.683554, -0.000002, -0.140775, 0.150322, -0.978563, -0.668029, 0.713322, 0.211917, 0.045839, 0.619459,\n-0.407747, 0.277785, 0.081106, -0.825138, 0.543823, 0.152983, -0.041640, 0.211515, -0.976487, 0.563453, 0.811807, 0.153267, 0.057879, 0.155328,\n-0.453064, 0.191342, 0.090120, -0.916862, 0.364377, 0.163075, -0.109371, 0.163588, -0.980447, 0.385547, 0.914179, 0.125021, 0.048498, 0.219973,\n-0.461940, 0.191342, -0.000000, -0.923866, 0.382714, -0.001228, 0.101278, 0.241387, -0.965130, 0.370193, 0.894446, 0.250848, 0.087048, 0.233548,\n-0.176777, -0.461940, 0.073223, -0.338927, -0.929163, 0.147597, -0.417462, 0.007936, -0.908660, -0.841006, 0.369541, 0.395157, 0.938354, 0.740118,\n-0.090120, -0.490393, 0.037329, -0.180222, -0.980789, 0.074651, -0.415009, 0.007012, -0.909790, -0.889096, 0.194896, 0.414155, 0.936766, 0.805903,\n-0.095671, -0.490393, 0.019030, -0.209109, -0.976740, 0.047449, -0.365074, 0.032961, -0.930395, -0.899781, 0.211182, 0.381832, 0.946066, 0.807346,\n-0.461940, 0.000000, 0.191342, -0.935939, 0.000000, 0.352163, -0.351751, 0.048347, -0.934844, 0.019936, 0.998396, 0.052983, 0.005423, 0.345283,\n-0.453064, -0.097545, 0.187665, -0.898027, -0.208865, 0.387200, -0.400145, 0.021991, -0.916188, -0.186296, 0.977851, 0.095402, 0.004575, 0.411089,\n-0.480970, -0.097545, 0.095671, -0.967698, -0.162818, 0.192487, -0.213135, 0.120517, -0.969561, -0.136223, 0.980125, 0.144214, 0.034240, 0.415668,\n-0.176777, 0.461940, 0.073223, -0.352384, 0.923888, 0.149190, 0.649316, 0.356167, -0.671963, -0.154699, -0.214727, 0.964345, 0.420408, -0.002041,\n-0.256640, 0.415735, 0.106304, -0.501570, 0.842235, 0.197657, 0.580758, 0.497142, -0.644648, -0.113083, -0.290342, 0.950218, 0.032509, 0.016900,\n-0.187665, 0.461940, 0.037329, -0.388811, 0.918409, 0.073153, 0.722431, 0.353191, -0.594432, 0.435443, 0.113211, 0.893069, 0.334831, 0.015378,\n-0.453064, -0.097545, 0.187665, -0.898027, -0.208865, 0.387200, -0.400145, 0.021991, -0.916188, -0.186296, 0.977851, 0.095402, 0.004575, 0.411089,\n-0.426777, -0.191342, 0.176777, -0.852963, -0.400772, 0.334417, -0.377536, 0.031270, -0.925467, -0.361266, 0.915710, 0.175961, 0.003813, 0.476897,\n-0.453064, -0.191342, 0.090120, -0.913669, -0.369648, 0.169024, -0.223858, 0.110540, -0.968333, -0.340064, 0.922966, 0.180251, 0.030880, 0.481076,\n-0.256640, 0.415735, 0.106304, -0.501570, 0.842235, 0.197657, -0.166634, 0.130142, -0.977392, 0.810822, 0.537323, -0.232060, 0.032509, 0.016900,\n-0.326641, 0.353553, 0.135299, -0.631468, 0.729955, 0.261563, -0.275142, 0.104439, -0.955714, 0.701533, 0.681517, -0.208291, 0.014728, 0.082226,\n-0.272448, 0.415735, 0.054193, -0.571333, 0.812813, 0.113643, 0.024842, 0.155531, -0.987519, 0.816774, 0.576669, -0.018255, 0.130135, 0.033229,\n-0.426777, -0.191342, 0.176777, -0.852963, -0.400772, 0.334417, -0.377536, 0.031270, -0.925467, -0.361266, 0.915710, 0.175961, 0.003813, 0.476897,\n-0.384089, -0.277785, 0.159095, -0.767470, -0.555607, 0.319829, -0.396341, 0.019091, -0.917905, -0.504907, 0.831272, 0.232499, 0.003073, 0.542706,\n-0.407747, -0.277785, 0.081106, -0.815119, -0.555608, 0.163956, -0.255986, 0.091573, -0.962333, -0.520218, 0.826582, 0.214791, 0.027594, 0.546493,\n-0.326641, 0.353553, 0.135299, -0.631468, 0.729955, 0.261563, -0.275142, 0.104439, -0.955714, 0.701533, 0.681517, -0.208291, 0.014728, 0.082226,\n-0.384089, 0.277785, 0.159095, -0.756029, 0.567206, 0.326646, -0.357502, 0.060193, -0.931970, 0.532505, 0.823195, -0.196945, 0.010109, 0.147925,\n-0.346760, 0.353553, 0.068975, -0.703949, 0.692994, 0.155612, 0.004292, 0.223241, -0.974754, 0.706666, 0.661393, 0.251362, 0.076103, 0.091824,\n-0.384089, -0.277785, 0.159095, -0.767470, -0.555607, 0.319829, -0.396341, 0.019091, -0.917905, -0.504907, 0.831272, 0.232499, 0.003073, 0.542706,\n-0.326641, -0.353553, 0.135299, -0.652380, -0.707137, 0.272688, -0.399798, 0.015427, -0.916473, -0.643679, 0.706901, 0.293203, 0.002293, 0.608514,\n-0.346760, -0.353553, 0.068975, -0.693044, -0.707137, 0.140172, -0.277094, 0.081800, -0.957355, -0.665774, 0.702406, 0.251738, 0.024121, 0.611887,\n-0.384089, 0.277785, 0.159095, -0.756029, 0.567206, 0.326646, -0.357502, 0.060193, -0.931970, 0.532505, 0.823195, -0.196945, 0.010109, 0.147925,\n-0.426777, 0.191342, 0.176777, -0.864751, 0.382538, 0.325378, -0.324074, 0.069883, -0.943447, 0.386897, 0.920540, -0.054004, 0.007867, 0.213692,\n-0.407747, 0.277785, 0.081106, -0.825138, 0.543823, 0.152983, -0.041640, 0.211515, -0.976487, 0.563453, 0.811807, 0.153267, 0.057879, 0.155328,\n-0.326641, -0.353553, 0.135299, -0.652380, -0.707137, 0.272688, -0.399798, 0.015427, -0.916473, -0.643679, 0.706901, 0.293203, 0.002293, 0.608514,\n-0.256640, -0.415735, 0.106304, -0.512220, -0.831490, 0.215071, -0.404111, 0.012369, -0.914626, -0.756546, 0.555360, 0.345271, 0.001402, 0.674319,\n-0.272448, -0.415735, 0.054193, -0.544337, -0.831489, 0.111008, -0.298466, 0.068298, -0.951973, -0.783031, 0.551109, 0.288344, 0.020139, 0.677216,\n-0.426777, 0.191342, 0.176777, -0.864751, 0.382538, 0.325378, -0.324074, 0.069883, -0.943447, 0.386897, 0.920540, -0.054004, 0.007867, 0.213692,\n-0.453064, 0.097545, 0.187665, -0.893338, 0.195006, 0.404870, -0.407862, 0.026410, -0.912661, 0.176343, 0.980797, -0.083305, 0.006457, 0.279482,\n-0.480970, 0.097545, 0.095671, -0.961806, 0.181272, 0.205110, -0.182105, 0.135711, -0.973869, 0.201708, 0.975890, 0.083381, 0.042455, 0.285041,\n-0.256640, -0.415735, 0.106304, -0.512220, -0.831490, 0.215071, -0.404111, 0.012369, -0.914626, -0.756546, 0.555360, 0.345271, 0.939473, 0.674319,\n-0.176777, -0.461940, 0.073223, -0.338927, -0.929163, 0.147597, -0.417462, 0.007936, -0.908660, -0.841006, 0.369541, 0.395157, 0.938354, 0.740118,\n-0.187665, -0.461940, 0.037329, -0.374717, -0.923888, 0.077578, -0.328642, 0.054119, -0.942903, -0.865090, 0.378509, 0.329166, 0.953191, 0.742415,\n-0.453064, 0.097545, 0.187665, -0.893338, 0.195006, 0.404870, -0.407862, 0.026410, -0.912661, 0.176343, 0.980797, -0.083305, 0.006457, 0.279482,\n-0.461940, 0.000000, 0.191342, -0.935939, 0.000000, 0.352163, -0.351751, 0.048347, -0.934844, 0.019936, 0.998396, 0.052983, 0.005423, 0.345283,\n-0.480970, 0.097545, 0.095671, -0.961806, 0.181272, 0.205110, -0.182105, 0.135711, -0.973869, 0.201708, 0.975890, 0.083381, 0.042455, 0.285041,\n-0.090120, 0.490393, 0.037329, -0.195833, 0.976741, 0.087334, 0.450796, 0.010576, 0.892564, -0.819617, -0.211923, 0.532274, 0.458801, 0.062690,\n-0.176777, 0.461940, 0.073223, -0.352384, 0.923888, 0.149190, 0.543442, 0.072225, 0.836334, -0.725657, -0.370409, 0.579843, 0.420408, -0.002041,\n-0.095671, 0.490393, 0.019030, -0.209109, 0.976740, 0.047449, 0.634606, 0.098625, 0.766517, -0.730319, -0.188252, 0.656655, 0.438189, 0.065976,\n-0.293969, -0.353553, 0.196424, -0.586645, -0.707137, 0.394721, -0.515355, -0.050005, -0.855517, -0.624613, 0.705315, 0.335246, 0.918510, 0.609427,\n-0.230970, -0.415735, 0.154329, -0.460422, -0.831489, 0.310867, -0.503538, -0.043772, -0.862863, -0.729441, 0.553953, 0.401314, 0.920717, 0.675103,\n-0.256640, -0.415735, 0.106304, -0.512220, -0.831490, 0.215071, -0.404111, 0.012369, -0.914626, -0.756546, 0.555360, 0.345271, 0.939473, 0.674319,\n-0.384089, 0.191342, 0.256640, -0.784657, 0.382537, 0.487830, -0.546746, -0.056118, -0.835416, 0.299004, 0.922863, -0.242735, 0.904787, 0.215406,\n-0.407746, 0.097545, 0.272448, -0.797188, 0.195006, 0.571370, -0.593675, -0.081185, -0.800599, 0.090166, 0.974241, -0.206702, 0.908239, 0.280994,\n-0.453064, 0.097545, 0.187665, -0.893338, 0.195006, 0.404870, -0.407862, 0.026410, -0.912661, 0.176343, 0.980797, -0.083305, 0.944528, 0.279482,\n-0.230970, -0.415735, 0.154329, -0.460422, -0.831489, 0.310867, -0.503538, -0.043772, -0.862863, -0.729441, 0.553953, 0.401314, 0.920717, 0.675103,\n-0.159095, -0.461940, 0.106304, -0.328037, -0.916136, 0.230404, -0.496723, -0.040181, -0.866979, -0.799560, 0.399154, 0.448753, 0.923492, 0.740739,\n-0.176777, -0.461940, 0.073223, -0.338927, -0.929163, 0.147597, -0.417462, 0.007936, -0.908660, -0.841006, 0.369541, 0.395157, 0.938354, 0.740118,\n-0.407746, 0.097545, 0.272448, -0.797188, 0.195006, 0.571370, -0.593675, -0.081185, -0.800599, 0.090166, 0.974241, -0.206702, 0.908239, 0.280994,\n-0.415735, 0.000000, 0.277785, -0.849250, 0.000000, 0.527990, -0.527366, -0.048621, -0.848246, -0.022233, 0.999113, -0.035762, 0.910782, 0.346647,\n-0.453064, 0.097545, 0.187665, -0.893338, 0.195006, 0.404870, -0.407862, 0.026410, -0.912661, 0.176343, 0.980797, -0.083305, 0.944528, 0.279482,\n-0.081106, 0.490393, 0.054193, -0.162196, 0.980789, 0.108375, 0.362059, -0.043016, 0.931162, -0.975824, -0.175734, 0.129942, 0.480346, 0.063591,\n-0.159095, 0.461940, 0.106304, -0.303619, 0.929163, 0.210883, 0.262363, -0.131243, 0.956003, -0.947559, -0.317631, 0.035252, 0.559425, 0.003678,\n-0.090120, 0.490393, 0.037329, -0.195833, 0.976741, 0.087334, 0.401855, -0.001306, 0.915702, -0.978702, -0.189077, -0.079957, 0.458801, 0.062690,\n-0.159095, -0.461940, 0.106304, -0.328037, -0.916136, 0.230404, -0.496723, -0.040181, -0.866979, -0.799560, 0.399154, 0.448753, 0.923492, 0.740739,\n-0.081106, -0.490393, 0.054193, -0.188870, -0.973859, 0.126198, -0.473215, -0.022346, -0.880663, -0.864501, 0.225849, 0.449032, 0.927429, 0.806293,\n-0.176777, -0.461940, 0.073223, -0.338927, -0.929163, 0.147597, -0.417462, 0.007936, -0.908660, -0.841006, 0.369541, 0.395157, 0.938354, 0.740118,\n-0.415735, 0.000000, 0.277785, -0.849250, 0.000000, 0.527990, -0.527366, -0.048621, -0.848246, -0.022233, 0.999113, -0.035762, 0.910782, 0.346647,\n-0.407746, -0.097545, 0.272448, -0.797188, -0.195006, 0.571370, -0.569116, -0.073122, -0.818999, -0.207860, 0.977191, 0.043499, 0.912871, 0.412331,\n-0.453064, -0.097545, 0.187665, -0.898027, -0.208865, 0.387200, -0.400145, 0.021991, -0.916188, -0.186296, 0.977851, 0.095402, 0.942646, 0.411089,\n-0.159095, 0.461940, 0.106304, -0.303619, 0.929163, 0.210883, 0.905828, 0.212862, 0.366285, 0.949277, 0.275997, 0.150663, 0.559425, 0.003678,\n-0.230970, 0.415735, 0.154329, -0.475288, 0.823575, 0.309558, 0.851340, 0.341682, 0.398086, 0.879481, 0.434804, 0.193544, 0.849384, 0.021864,\n-0.176777, 0.461940, 0.073223, -0.352384, 0.923888, 0.149190, 0.882594, 0.275066, 0.381268, 0.930033, 0.327957, 0.165781, 0.420408, -0.002041,\n-0.407746, -0.097545, 0.272448, -0.797188, -0.195006, 0.571370, -0.569116, -0.073122, -0.818999, -0.207860, 0.977191, 0.043499, 0.912871, 0.412331,\n-0.384089, -0.191342, 0.256640, -0.784657, -0.382537, 0.487830, -0.512101, -0.043519, -0.857822, -0.349112, 0.922937, 0.162196, 0.914751, 0.478029,\n-0.453064, -0.097545, 0.187665, -0.898027, -0.208865, 0.387200, -0.400145, 0.021991, -0.916188, -0.186296, 0.977851, 0.095402, 0.942646, 0.411089,\n-0.230970, 0.415735, 0.154329, -0.475288, 0.823575, 0.309558, -0.699189, -0.139982, -0.701099, 0.382476, 0.510258, -0.770291, 0.849384, 0.021864,\n-0.293969, 0.353553, 0.196424, -0.606889, 0.683554, 0.405511, -0.627957, -0.099639, -0.771843, 0.403052, 0.704434, -0.584228, 0.888292, 0.084903,\n-0.326641, 0.353553, 0.135299, -0.631468, 0.729955, 0.261563, -0.275142, 0.104439, -0.955714, 0.701533, 0.681517, -0.208291, 0.952799, 0.082226,\n-0.384089, -0.191342, 0.256640, -0.784657, -0.382537, 0.487830, -0.512101, -0.043519, -0.857822, -0.349112, 0.922937, 0.162196, 0.914751, 0.478029,\n-0.345671, -0.277785, 0.230970, -0.690329, -0.555606, 0.463409, -0.526129, -0.054145, -0.848679, -0.498075, 0.829528, 0.252596, 0.916581, 0.543731,\n-0.384089, -0.277785, 0.159095, -0.767470, -0.555607, 0.319829, -0.396341, 0.019091, -0.917905, -0.504907, 0.831272, 0.232499, 0.941144, 0.542706,\n-0.293969, 0.353553, 0.196424, -0.606889, 0.683554, 0.405511, -0.627957, -0.099639, -0.771843, 0.403052, 0.704434, -0.584228, 0.888292, 0.084903,\n-0.345671, 0.277785, 0.230970, -0.690488, 0.539041, 0.482349, -0.614333, -0.084979, -0.784458, 0.339030, 0.830224, -0.442477, 0.899334, 0.149958,\n-0.384089, 0.277785, 0.159095, -0.756029, 0.567206, 0.326646, -0.357502, 0.060193, -0.931970, 0.532505, 0.823195, -0.196945, 0.948180, 0.147925,\n-0.345671, -0.277785, 0.230970, -0.690329, -0.555606, 0.463409, -0.526129, -0.054145, -0.848679, -0.498075, 0.829528, 0.252596, 0.916581, 0.543731,\n-0.293969, -0.353553, 0.196424, -0.586645, -0.707137, 0.394721, -0.515355, -0.050005, -0.855517, -0.624613, 0.705315, 0.335246, 0.918510, 0.609427,\n-0.326641, -0.353553, 0.135299, -0.652380, -0.707137, 0.272688, -0.399798, 0.015427, -0.916473, -0.643679, 0.706901, 0.293203, 0.940364, 0.608514,\n-0.345671, 0.277785, 0.230970, -0.690488, 0.539041, 0.482349, -0.614333, -0.084979, -0.784458, 0.339030, 0.830224, -0.442477, 0.899334, 0.149958,\n-0.384089, 0.191342, 0.256640, -0.784657, 0.382537, 0.487830, -0.546746, -0.056118, -0.835416, 0.299004, 0.922863, -0.242735, 0.904787, 0.215406,\n-0.384089, 0.277785, 0.159095, -0.756029, 0.567206, 0.326646, -0.357502, 0.060193, -0.931970, 0.532505, 0.823195, -0.196945, 0.948180, 0.147925,\n-0.326641, -0.191342, 0.326641, -0.674410, -0.382537, 0.631535, -0.640365, -0.122758, -0.758197, -0.367033, 0.915850, 0.162803, 0.887781, 0.484426,\n-0.293969, -0.277785, 0.293969, -0.586657, -0.555607, 0.589182, -0.641183, -0.125746, -0.757016, -0.496410, 0.821541, 0.280443, 0.892120, 0.549535,\n-0.345671, -0.277785, 0.230970, -0.690329, -0.555606, 0.463409, -0.526129, -0.054145, -0.848679, -0.498075, 0.829528, 0.252596, 0.916581, 0.543731,\n-0.250000, 0.353553, 0.250000, -0.498368, 0.707137, 0.501585, -0.847765, -0.276403, -0.452654, 0.171823, 0.647638, -0.742322, 0.830912, 0.099015,\n-0.293969, 0.277785, 0.293969, -0.586657, 0.555607, 0.589182, -0.788526, -0.226098, -0.571933, 0.186215, 0.800587, -0.569548, 0.853037, 0.161076,\n-0.293969, 0.353553, 0.196424, -0.606889, 0.683554, 0.405511, -0.627957, -0.099639, -0.771843, 0.403052, 0.704434, -0.584228, 0.888292, 0.084903,\n-0.293969, -0.277785, 0.293969, -0.586657, -0.555607, 0.589182, -0.641183, -0.125746, -0.757016, -0.496410, 0.821541, 0.280443, 0.892120, 0.549535,\n-0.250000, -0.353553, 0.250000, -0.498368, -0.707137, 0.501585, -0.619865, -0.113856, -0.776405, -0.605821, 0.697907, 0.381977, 0.896720, 0.614601,\n-0.293969, -0.353553, 0.196424, -0.586645, -0.707137, 0.394721, -0.515355, -0.050005, -0.855517, -0.624613, 0.705315, 0.335246, 0.918510, 0.609427,\n-0.293969, 0.277785, 0.293969, -0.586657, 0.555607, 0.589182, -0.788526, -0.226098, -0.571933, 0.186215, 0.800587, -0.569548, 0.853037, 0.161076,\n-0.326641, 0.191342, 0.326641, -0.674410, 0.382537, 0.631535, -0.724649, -0.178874, -0.665498, 0.153103, 0.909186, -0.387221, 0.864885, 0.224918,\n-0.345671, 0.277785, 0.230970, -0.690488, 0.539041, 0.482349, -0.614333, -0.084979, -0.784458, 0.339030, 0.830224, -0.442477, 0.899334, 0.149958,\n-0.250000, -0.353553, 0.250000, -0.498368, -0.707137, 0.501585, -0.619865, -0.113856, -0.776405, -0.605821, 0.697907, 0.381977, 0.896720, 0.614601,\n-0.196424, -0.415735, 0.196424, -0.390927, -0.831489, 0.394718, -0.594841, -0.099022, -0.797721, -0.700439, 0.546965, 0.458491, 0.902010, 0.679551,\n-0.230970, -0.415735, 0.154329, -0.460422, -0.831489, 0.310867, -0.503538, -0.043772, -0.862863, -0.729441, 0.553953, 0.401314, 0.920717, 0.675103,\n-0.326641, 0.191342, 0.326641, -0.674410, 0.382537, 0.631535, -0.724649, -0.178874, -0.665498, 0.153103, 0.909186, -0.387221, 0.864885, 0.224918,\n-0.346760, 0.097545, 0.346760, -0.670402, 0.195005, 0.715915, -0.741984, -0.182321, -0.645151, -0.028063, 0.957494, -0.287086, 0.872656, 0.289451,\n-0.407746, 0.097545, 0.272448, -0.797188, 0.195006, 0.571370, -0.593675, -0.081185, -0.800599, 0.090166, 0.974241, -0.206702, 0.908239, 0.280994,\n-0.196424, -0.415735, 0.196424, -0.390927, -0.831489, 0.394718, -0.594841, -0.099022, -0.797721, -0.700439, 0.546965, 0.458491, 0.902010, 0.679551,\n-0.135299, -0.461940, 0.135299, -0.256643, -0.929163, 0.266065, -0.560977, -0.080965, -0.823863, -0.779982, 0.361677, 0.510703, 0.908692, 0.744267,\n-0.159095, -0.461940, 0.106304, -0.328037, -0.916136, 0.230404, -0.496723, -0.040181, -0.866979, -0.799560, 0.399154, 0.448753, 0.923492, 0.740739,\n-0.346760, 0.097545, 0.346760, -0.670402, 0.195005, 0.715915, -0.741984, -0.182321, -0.645151, -0.028063, 0.957494, -0.287086, 0.872656, 0.289451,\n-0.353553, 0.000000, 0.353554, -0.729928, -0.000000, 0.683524, -0.676348, -0.144515, -0.722266, -0.093881, 0.990523, -0.100254, 0.878497, 0.354309,\n-0.407746, 0.097545, 0.272448, -0.797188, 0.195006, 0.571370, -0.593675, -0.081185, -0.800599, 0.090166, 0.974241, -0.206702, 0.908239, 0.280994,\n-0.068975, 0.490393, 0.068975, -0.160620, 0.973859, 0.160620, 0.049797, -0.154530, 0.986732, -0.984709, -0.169230, 0.041350, 0.499668, 0.068531,\n-0.135299, 0.461940, 0.135299, -0.276784, 0.916136, 0.289974, -0.288406, -0.367051, 0.884362, -0.948483, -0.212046, -0.235407, 0.608139, 0.025300,\n-0.159095, 0.461940, 0.106304, -0.303619, 0.929163, 0.210883, 0.262363, -0.131243, 0.956003, -0.947559, -0.317631, 0.035252, 0.559425, 0.003678,\n-0.135299, -0.461940, 0.135299, -0.256643, -0.929163, 0.266065, -0.560977, -0.080965, -0.823863, -0.779982, 0.361677, 0.510703, 0.908692, 0.744267,\n-0.068975, -0.490393, 0.068975, -0.137937, -0.980789, 0.137937, -0.513926, -0.048176, -0.856481, -0.847505, 0.188951, 0.496017, 0.918182, 0.808510,\n-0.081106, -0.490393, 0.054193, -0.188870, -0.973859, 0.126198, -0.473215, -0.022346, -0.880663, -0.864501, 0.225849, 0.449032, 0.927429, 0.806293,\n-0.353553, 0.000000, 0.353554, -0.729928, -0.000000, 0.683524, -0.676348, -0.144515, -0.722266, -0.093881, 0.990523, -0.100254, 0.878497, 0.354309,\n-0.346760, -0.097545, 0.346760, -0.670401, -0.195005, 0.715915, -0.698879, -0.158168, -0.697532, -0.256624, 0.966240, 0.022881, 0.883363, 0.419330,\n-0.407746, -0.097545, 0.272448, -0.797188, -0.195006, 0.571370, -0.569116, -0.073122, -0.818999, -0.207860, 0.977191, 0.043499, 0.912871, 0.412331,\n-0.135299, 0.461940, 0.135299, -0.276784, 0.916136, 0.289974, -0.838980, -0.377520, 0.391908, -0.951430, -0.218939, -0.216442, 0.608139, 0.025300,\n-0.196424, 0.415735, 0.196424, -0.390926, 0.831489, 0.394718, -0.782018, -0.526214, 0.333985, -0.916734, -0.313390, -0.247760, 0.773239, 0.043658,\n-0.159095, 0.461940, 0.106304, -0.303619, 0.929163, 0.210883, -0.846521, -0.364644, 0.387862, -0.939026, -0.254321, -0.231412, 0.559425, 0.003678,\n-0.346760, -0.097545, 0.346760, -0.670401, -0.195005, 0.715915, -0.698879, -0.158168, -0.697532, -0.256624, 0.966240, 0.022881, 0.883363, 0.419330,\n-0.326641, -0.191342, 0.326641, -0.674410, -0.382537, 0.631535, -0.640365, -0.122758, -0.758197, -0.367033, 0.915850, 0.162803, 0.887781, 0.484426,\n-0.407746, -0.097545, 0.272448, -0.797188, -0.195006, 0.571370, -0.569116, -0.073122, -0.818999, -0.207860, 0.977191, 0.043499, 0.912871, 0.412331,\n-0.196424, 0.415735, 0.196424, -0.390926, 0.831489, 0.394718, -0.920222, -0.362023, -0.148766, 0.029442, 0.439922, -0.897554, 0.773239, 0.043658,\n-0.250000, 0.353553, 0.250000, -0.498368, 0.707137, 0.501585, -0.847765, -0.276403, -0.452654, 0.171823, 0.647638, -0.742322, 0.830912, 0.099015,\n-0.230970, 0.415735, 0.154329, -0.475288, 0.823575, 0.309558, -0.699189, -0.139982, -0.701099, 0.382476, 0.510258, -0.770291, 0.849384, 0.021864,\n-0.106304, -0.461940, 0.159095, -0.212592, -0.923892, 0.318165, -0.627722, -0.120406, -0.769069, -0.760208, 0.360953, 0.540183, 0.894040, 0.750649,\n-0.054193, -0.490393, 0.081106, -0.126198, -0.973859, 0.188870, -0.585134, -0.080668, -0.806914, -0.822650, 0.209137, 0.528685, 0.909154, 0.812515,\n-0.135299, -0.461940, 0.135299, -0.256643, -0.929163, 0.266065, -0.560977, -0.080965, -0.823863, -0.779982, 0.361677, 0.510703, 0.908692, 0.744267,\n-0.277785, 0.000000, 0.415735, -0.582554, 0.000000, 0.812792, -0.791757, -0.226031, -0.567477, -0.181593, 0.974723, -0.130153, 0.847136, 0.367787,\n-0.272447, -0.097545, 0.407747, -0.517853, -0.195006, 0.832947, -0.799603, -0.235756, -0.552316, -0.311033, 0.949956, 0.029027, 0.854434, 0.431735,\n-0.346760, -0.097545, 0.346760, -0.670401, -0.195005, 0.715915, -0.698879, -0.158168, -0.697532, -0.256624, 0.966240, 0.022881, 0.883363, 0.419330,\n-0.106304, 0.461940, 0.159095, -0.210110, 0.923888, 0.319821, -0.570695, -0.381507, 0.727159, -0.848846, -0.010079, -0.528543, 0.618674, 0.050065,\n-0.154329, 0.415735, 0.230970, -0.307228, 0.842235, 0.443003, -0.743979, -0.502845, 0.440048, -0.749952, 0.072286, -0.657530, 0.729617, 0.071276,\n-0.135299, 0.461940, 0.135299, -0.276784, 0.916136, 0.289974, -0.288406, -0.367051, 0.884362, -0.948483, -0.212046, -0.235407, 0.608139, 0.025300,\n-0.272447, -0.097545, 0.407747, -0.517853, -0.195006, 0.832947, -0.799603, -0.235756, -0.552316, -0.311033, 0.949956, 0.029027, 0.854434, 0.431735,\n-0.256640, -0.191342, 0.384089, -0.538245, -0.382537, 0.750971, -0.746275, -0.197719, -0.635595, -0.391554, 0.902554, 0.179113, 0.861172, 0.495829,\n-0.346760, -0.097545, 0.346760, -0.670401, -0.195005, 0.715915, -0.698879, -0.158168, -0.697532, -0.256624, 0.966240, 0.022881, 0.883363, 0.419330,\n-0.154329, 0.415735, 0.230970, -0.307228, 0.842235, 0.443003, -0.919147, -0.383226, 0.091147, -0.147007, 0.417926, -0.896508, 0.729617, 0.071276,\n-0.196424, 0.353553, 0.293969, -0.378161, 0.716973, 0.585615, -0.907376, -0.412446, -0.080977, -0.168253, 0.568824, -0.805065, 0.784585, 0.121024,\n-0.196424, 0.415735, 0.196424, -0.390926, 0.831489, 0.394718, -0.920222, -0.362023, -0.148766, 0.029442, 0.439922, -0.897554, 0.773239, 0.043658,\n-0.256640, -0.191342, 0.384089, -0.538245, -0.382537, 0.750971, -0.746275, -0.197719, -0.635595, -0.391554, 0.902554, 0.179113, 0.861172, 0.495829,\n-0.230970, -0.277785, 0.345671, -0.460442, -0.555607, 0.692311, -0.738187, -0.193503, -0.646248, -0.494685, 0.808177, 0.319589, 0.867877, 0.559931,\n-0.293969, -0.277785, 0.293969, -0.586657, -0.555607, 0.589182, -0.641183, -0.125746, -0.757016, -0.496410, 0.821541, 0.280443, 0.892120, 0.549535,\n-0.196424, 0.353553, 0.293969, -0.378161, 0.716973, 0.585615, -0.907376, -0.412446, -0.080977, -0.168253, 0.568824, -0.805065, 0.784585, 0.121024,\n-0.230970, 0.277785, 0.345671, -0.460442, 0.555607, 0.692311, -0.886261, -0.331959, -0.323025, -0.044234, 0.764572, -0.643018, 0.811543, 0.179584,\n-0.250000, 0.353553, 0.250000, -0.498368, 0.707137, 0.501585, -0.847765, -0.276403, -0.452654, 0.171823, 0.647638, -0.742322, 0.830912, 0.099015,\n-0.230970, -0.277785, 0.345671, -0.460442, -0.555607, 0.692311, -0.738187, -0.193503, -0.646248, -0.494685, 0.808177, 0.319589, 0.867877, 0.559931,\n-0.196424, -0.353553, 0.293969, -0.390937, -0.707137, 0.589174, -0.710445, -0.175141, -0.681611, -0.584656, 0.685172, 0.434416, 0.875068, 0.623907,\n-0.250000, -0.353553, 0.250000, -0.498368, -0.707137, 0.501585, -0.619865, -0.113856, -0.776405, -0.605821, 0.697907, 0.381977, 0.896720, 0.614601,\n-0.230970, 0.277785, 0.345671, -0.460442, 0.555607, 0.692311, -0.886261, -0.331959, -0.323025, -0.044234, 0.764572, -0.643018, 0.811543, 0.179584,\n-0.256640, 0.191342, 0.384089, -0.538245, 0.382537, 0.750971, -0.842125, -0.279453, -0.461228, -0.020441, 0.884868, -0.465394, 0.827524, 0.241215,\n-0.293969, 0.277785, 0.293969, -0.586657, 0.555607, 0.589182, -0.788526, -0.226098, -0.571933, 0.186215, 0.800587, -0.569548, 0.853037, 0.161076,\n-0.196424, -0.353553, 0.293969, -0.390937, -0.707137, 0.589174, -0.710445, -0.175141, -0.681611, -0.584656, 0.685172, 0.434416, 0.875068, 0.623907,\n-0.154329, -0.415735, 0.230970, -0.294645, -0.839192, 0.457102, -0.676270, -0.154843, -0.720196, -0.668082, 0.522910, 0.529369, 0.883418, 0.687578,\n-0.196424, -0.415735, 0.196424, -0.390927, -0.831489, 0.394718, -0.594841, -0.099022, -0.797721, -0.700439, 0.546965, 0.458491, 0.902010, 0.679551,\n-0.256640, 0.191342, 0.384089, -0.538245, 0.382537, 0.750971, -0.842125, -0.279453, -0.461228, -0.020441, 0.884868, -0.465394, 0.827524, 0.241215,\n-0.272447, 0.097545, 0.407747, -0.517853, 0.195006, 0.832947, -0.844805, -0.269843, -0.462050, -0.157309, 0.935362, -0.316784, 0.838568, 0.304174,\n-0.346760, 0.097545, 0.346760, -0.670402, 0.195005, 0.715915, -0.741984, -0.182321, -0.645151, -0.028063, 0.957494, -0.287086, 0.872656, 0.289451,\n-0.154329, -0.415735, 0.230970, -0.294645, -0.839192, 0.457102, -0.676270, -0.154843, -0.720196, -0.668082, 0.522910, 0.529369, 0.883418, 0.687578,\n-0.106304, -0.461940, 0.159095, -0.212592, -0.923892, 0.318165, -0.627722, -0.120406, -0.769069, -0.760208, 0.360953, 0.540183, 0.894040, 0.750649,\n-0.135299, -0.461940, 0.135299, -0.256643, -0.929163, 0.266065, -0.560977, -0.080965, -0.823863, -0.779982, 0.361677, 0.510703, 0.908692, 0.744267,\n-0.272447, 0.097545, 0.407747, -0.517853, 0.195006, 0.832947, -0.844805, -0.269843, -0.462050, -0.157309, 0.935362, -0.316784, 0.838568, 0.304174,\n-0.277785, 0.000000, 0.415735, -0.582554, 0.000000, 0.812792, -0.791757, -0.226031, -0.567477, -0.181593, 0.974723, -0.130153, 0.847136, 0.367787,\n-0.346760, 0.097545, 0.346760, -0.670402, 0.195005, 0.715915, -0.741984, -0.182321, -0.645151, -0.028063, 0.957494, -0.287086, 0.872656, 0.289451,\n-0.054193, 0.490393, 0.081106, -0.114308, 0.976741, 0.181415, 0.007857, -0.181717, 0.983319, -0.992883, -0.118463, 0.012200, 0.514668, 0.076778,\n-0.106304, 0.461940, 0.159095, -0.210110, 0.923888, 0.319821, -0.014031, -0.329939, 0.943898, -0.977433, -0.205823, -0.047561, 0.618674, 0.050065,\n-0.068975, 0.490393, 0.068975, -0.160620, 0.973859, 0.160620, 0.049797, -0.154530, 0.986732, -0.984709, -0.169230, 0.041350, 0.499668, 0.068531,\n-0.135299, -0.353553, 0.326641, -0.268483, -0.707137, 0.654121, -0.783142, -0.235163, -0.575662, -0.559335, 0.667292, 0.491798, 0.853599, 0.637120,\n-0.106304, -0.415735, 0.256640, -0.195712, -0.831354, 0.520142, -0.755147, -0.210632, -0.620795, -0.618809, 0.516163, 0.592157, 0.864986, 0.699035,\n-0.154329, -0.415735, 0.230970, -0.294645, -0.839192, 0.457102, -0.676270, -0.154843, -0.720196, -0.668082, 0.522910, 0.529369, 0.883418, 0.687578,\n-0.176777, 0.191342, 0.426777, -0.381396, 0.382538, 0.841547, -0.905356, -0.338466, -0.256460, -0.190001, 0.858483, -0.476347, 0.793211, 0.262838,\n-0.187665, 0.097545, 0.453064, -0.345401, 0.195006, 0.917971, -0.901796, -0.339696, -0.267153, -0.278623, 0.912758, -0.298735, 0.806381, 0.324118,\n-0.272447, 0.097545, 0.407747, -0.517853, 0.195006, 0.832947, -0.844805, -0.269843, -0.462050, -0.157309, 0.935362, -0.316784, 0.838568, 0.304174,\n-0.106304, -0.415735, 0.256640, -0.195712, -0.831354, 0.520142, -0.755147, -0.210632, -0.620795, -0.618809, 0.516163, 0.592157, 0.864986, 0.699035,\n-0.073223, -0.461940, 0.176777, -0.158028, -0.923819, 0.348692, -0.683486, -0.152523, -0.713851, -0.722049, 0.348989, 0.597371, 0.879619, 0.759787,\n-0.154329, -0.415735, 0.230970, -0.294645, -0.839192, 0.457102, -0.676270, -0.154843, -0.720196, -0.668082, 0.522910, 0.529369, 0.883418, 0.687578,\n-0.187665, 0.097545, 0.453064, -0.345401, 0.195006, 0.917971, -0.901796, -0.339696, -0.267153, -0.278623, 0.912758, -0.298735, 0.806381, 0.324118,\n-0.191342, 0.000000, 0.461940, -0.412793, 0.000000, 0.910825, -0.867602, -0.304395, -0.393205, -0.271698, 0.954473, -0.123136, 0.816990, 0.386308,\n-0.272447, 0.097545, 0.407747, -0.517853, 0.195006, 0.832947, -0.844805, -0.269843, -0.462050, -0.157309, 0.935362, -0.316784, 0.838568, 0.304174,\n-0.037329, 0.490393, 0.090120, -0.076720, 0.976740, 0.200230, -0.046042, -0.204078, 0.977871, -0.996782, -0.079813, 0.007405, 0.524796, 0.087364,\n-0.073223, 0.461940, 0.176777, -0.143677, 0.923888, 0.354666, -0.323732, -0.382545, 0.865365, -0.944356, -0.020846, -0.328263, 0.617332, 0.075210,\n-0.054193, 0.490393, 0.081106, -0.114308, 0.976741, 0.181415, 0.007857, -0.181717, 0.983319, -0.992883, -0.118463, 0.012200, 0.514668, 0.076778,\n-0.073223, -0.461940, 0.176777, -0.158028, -0.923819, 0.348692, -0.683486, -0.152523, -0.713851, -0.722049, 0.348989, 0.597371, 0.879619, 0.759787,\n-0.037329, -0.490393, 0.090120, -0.076720, -0.976741, 0.200230, -0.621151, -0.110267, -0.775894, -0.785454, 0.182906, 0.591276, 0.900481, 0.818239,\n-0.054193, -0.490393, 0.081106, -0.126198, -0.973859, 0.188870, -0.585134, -0.080668, -0.806914, -0.822650, 0.209137, 0.528685, 0.909154, 0.812515,\n-0.191342, 0.000000, 0.461940, -0.412793, 0.000000, 0.910825, -0.867602, -0.304395, -0.393205, -0.271698, 0.954473, -0.123136, 0.816990, 0.386308,\n-0.187665, -0.097545, 0.453064, -0.345401, -0.195006, 0.917971, -0.868976, -0.302909, -0.391314, -0.359737, 0.930964, 0.062409, 0.826278, 0.448964,\n-0.272447, -0.097545, 0.407747, -0.517853, -0.195006, 0.832947, -0.799603, -0.235756, -0.552316, -0.311033, 0.949956, 0.029027, 0.854434, 0.431735,\n-0.073223, 0.461940, 0.176777, -0.143677, 0.923888, 0.354666, -0.323732, -0.382545, 0.865365, -0.944356, -0.020846, -0.328263, 0.617332, 0.075210,\n-0.106304, 0.415735, 0.256640, -0.229408, 0.831354, 0.506185, -0.786014, -0.464962, 0.407422, -0.637678, 0.264527, -0.723458, 0.699594, 0.100450,\n-0.106304, 0.461940, 0.159095, -0.210110, 0.923888, 0.319821, -0.570695, -0.381507, 0.727159, -0.848846, -0.010079, -0.528543, 0.618674, 0.050065,\n-0.187665, -0.097545, 0.453064, -0.345401, -0.195006, 0.917971, -0.868976, -0.302909, -0.391314, -0.359737, 0.930964, 0.062409, 0.826278, 0.448964,\n-0.176777, -0.191342, 0.426777, -0.381396, -0.382538, 0.841547, -0.827334, -0.264856, -0.495349, -0.412806, 0.885027, 0.215215, 0.835042, 0.511803,\n-0.272447, -0.097545, 0.407747, -0.517853, -0.195006, 0.832947, -0.799603, -0.235756, -0.552316, -0.311033, 0.949956, 0.029027, 0.854434, 0.431735,\n-0.106304, 0.415735, 0.256640, -0.229408, 0.831354, 0.506185, -0.786014, -0.464962, 0.407422, -0.637678, 0.264527, -0.723458, 0.699594, 0.100450,\n-0.135299, 0.353553, 0.326641, -0.249073, 0.706948, 0.661957, -0.891428, -0.434521, 0.128639, -0.398036, 0.548382, -0.735422, 0.747516, 0.147506,\n-0.196424, 0.353553, 0.293969, -0.378161, 0.716973, 0.585615, -0.907376, -0.412446, -0.080977, -0.168253, 0.568824, -0.805065, 0.784585, 0.121024,\n-0.176777, -0.191342, 0.426777, -0.381396, -0.382538, 0.841547, -0.827334, -0.264856, -0.495349, -0.412806, 0.885027, 0.215215, 0.835042, 0.511803,\n-0.159095, -0.277785, 0.384089, -0.316532, -0.555607, 0.768836, -0.814925, -0.255551, -0.520183, -0.486793, 0.790790, 0.371058, 0.843924, 0.574600,\n-0.230970, -0.277785, 0.345671, -0.460442, -0.555607, 0.692311, -0.738187, -0.193503, -0.646248, -0.494685, 0.808177, 0.319589, 0.867877, 0.559931,\n-0.135299, 0.353553, 0.326641, -0.249073, 0.706948, 0.661957, -0.891428, -0.434521, 0.128639, -0.398036, 0.548382, -0.735422, 0.747516, 0.147506,\n-0.159095, 0.277785, 0.384089, -0.316532, 0.555607, 0.768836, -0.912857, -0.398758, -0.087659, -0.250957, 0.732583, -0.632727, 0.775195, 0.203324,\n-0.196424, 0.353553, 0.293969, -0.378161, 0.716973, 0.585615, -0.907376, -0.412446, -0.080977, -0.168253, 0.568824, -0.805065, 0.784585, 0.121024,\n-0.159095, -0.277785, 0.384089, -0.316532, -0.555607, 0.768836, -0.814925, -0.255551, -0.520183, -0.486793, 0.790790, 0.371058, 0.843924, 0.574600,\n-0.135299, -0.353553, 0.326641, -0.268483, -0.707137, 0.654121, -0.783142, -0.235163, -0.575662, -0.559335, 0.667292, 0.491798, 0.853599, 0.637120,\n-0.196424, -0.353553, 0.293969, -0.390937, -0.707137, 0.589174, -0.710445, -0.175141, -0.681611, -0.584656, 0.685172, 0.434416, 0.875068, 0.623907,\n-0.159095, 0.277785, 0.384089, -0.316532, 0.555607, 0.768836, -0.912857, -0.398758, -0.087659, -0.250957, 0.732583, -0.632727, 0.775195, 0.203324,\n-0.176777, 0.191342, 0.426777, -0.381396, 0.382538, 0.841547, -0.905356, -0.338466, -0.256460, -0.190001, 0.858483, -0.476347, 0.793211, 0.262838,\n-0.230970, 0.277785, 0.345671, -0.460442, 0.555607, 0.692311, -0.886261, -0.331959, -0.323025, -0.044234, 0.764572, -0.643018, 0.811543, 0.179584,\n-0.054193, 0.415735, 0.272448, -0.126245, 0.831354, 0.541214, -0.755722, -0.434023, 0.490416, -0.674138, 0.328341, -0.661612, 0.675659, 0.129678,\n-0.068975, 0.353553, 0.346760, -0.115141, 0.706949, 0.697829, -0.833800, -0.450621, 0.318933, -0.549654, 0.539813, -0.637560, 0.716770, 0.176135,\n-0.135299, 0.353553, 0.326641, -0.249073, 0.706948, 0.661957, -0.891428, -0.434521, 0.128639, -0.398036, 0.548382, -0.735422, 0.747516, 0.147506,\n-0.090120, -0.191342, 0.453064, -0.209889, -0.382537, 0.899784, -0.881719, -0.323636, -0.343267, -0.422672, 0.865347, 0.269301, 0.809410, 0.531778,\n-0.081106, -0.277785, 0.407747, -0.160456, -0.555607, 0.815815, -0.870186, -0.310475, -0.382597, -0.466542, 0.771059, 0.433366, 0.820258, 0.593116,\n-0.159095, -0.277785, 0.384089, -0.316532, -0.555607, 0.768836, -0.814925, -0.255551, -0.520183, -0.486793, 0.790790, 0.371058, 0.843924, 0.574600,\n-0.068975, 0.353553, 0.346760, -0.115141, 0.706949, 0.697829, -0.833800, -0.450621, 0.318933, -0.549654, 0.539813, -0.637560, 0.716770, 0.176135,\n-0.081106, 0.277785, 0.407747, -0.160456, 0.555607, 0.815815, -0.891798, -0.435835, 0.121423, -0.416879, 0.711041, -0.566244, 0.743218, 0.230344,\n-0.135299, 0.353553, 0.326641, -0.249073, 0.706948, 0.661957, -0.891428, -0.434521, 0.128639, -0.398036, 0.548382, -0.735422, 0.747516, 0.147506,\n-0.081106, -0.277785, 0.407747, -0.160456, -0.555607, 0.815815, -0.870186, -0.310475, -0.382597, -0.466542, 0.771059, 0.433366, 0.820258, 0.593116,\n-0.068975, -0.353553, 0.346760, -0.135710, -0.707138, 0.693930, -0.844001, -0.284314, -0.454784, -0.517668, 0.647807, 0.558898, 0.832307, 0.653935,\n-0.135299, -0.353553, 0.326641, -0.268483, -0.707137, 0.654121, -0.783142, -0.235163, -0.575662, -0.559335, 0.667292, 0.491798, 0.853599, 0.637120,\n-0.081106, 0.277785, 0.407747, -0.160456, 0.555607, 0.815815, -0.891798, -0.435835, 0.121423, -0.416879, 0.711041, -0.566244, 0.743218, 0.230344,\n-0.090120, 0.191342, 0.453064, -0.209889, 0.382537, 0.899784, -0.913308, -0.405225, -0.040765, -0.339629, 0.834451, -0.433985, 0.761800, 0.288261,\n-0.159095, 0.277785, 0.384089, -0.316532, 0.555607, 0.768836, -0.912857, -0.398758, -0.087659, -0.250957, 0.732583, -0.632727, 0.775195, 0.203324,\n-0.068975, -0.353553, 0.346760, -0.135710, -0.707138, 0.693930, -0.844001, -0.284314, -0.454784, -0.517668, 0.647807, 0.558898, 0.832307, 0.653935,\n-0.054193, -0.415735, 0.272448, -0.099235, -0.820324, 0.563224, -0.816853, -0.256076, -0.516891, -0.569698, 0.510908, 0.643752, 0.846733, 0.713716,\n-0.106304, -0.415735, 0.256640, -0.195712, -0.831354, 0.520142, -0.755147, -0.210632, -0.620795, -0.618809, 0.516163, 0.592157, 0.864986, 0.699035,\n-0.090120, 0.191342, 0.453064, -0.209889, 0.382537, 0.899784, -0.913308, -0.405225, -0.040765, -0.339629, 0.834451, -0.433985, 0.761800, 0.288261,\n-0.095671, 0.097545, 0.480970, -0.159677, 0.195006, 0.967717, -0.917587, -0.390841, -0.072647, -0.378232, 0.893400, -0.242440, 0.776121, 0.348088,\n-0.187665, 0.097545, 0.453064, -0.345401, 0.195006, 0.917971, -0.901796, -0.339696, -0.267153, -0.278623, 0.912758, -0.298735, 0.806381, 0.324118,\n-0.054193, -0.415735, 0.272448, -0.099235, -0.820324, 0.563224, -0.816853, -0.256076, -0.516891, -0.569698, 0.510908, 0.643752, 0.846733, 0.713716,\n-0.037329, -0.461940, 0.187665, -0.081206, -0.918409, 0.387209, -0.751926, -0.198553, -0.628637, -0.668925, 0.338220, 0.661926, 0.865508, 0.771545,\n-0.106304, -0.415735, 0.256640, -0.195712, -0.831354, 0.520142, -0.755147, -0.210632, -0.620795, -0.618809, 0.516163, 0.592157, 0.864986, 0.699035,\n-0.095671, 0.097545, 0.480970, -0.159677, 0.195006, 0.967717, -0.917587, -0.390841, -0.072647, -0.378232, 0.893400, -0.242440, 0.776121, 0.348088,\n-0.097545, 0.000000, 0.490393, -0.227166, 0.000000, 0.973856, -0.907657, -0.362397, -0.211724, -0.348241, 0.933879, -0.081232, 0.788114, 0.408932,\n-0.187665, 0.097545, 0.453064, -0.345401, 0.195006, 0.917971, -0.901796, -0.339696, -0.267153, -0.278623, 0.912758, -0.298735, 0.806381, 0.324118,\n-0.019030, 0.490393, 0.095671, -0.036183, 0.976741, 0.211349, -0.052590, -0.213056, 0.975624, -0.999332, -0.036442, -0.002671, 0.530504, 0.099377,\n-0.037329, 0.461940, 0.187665, -0.071725, 0.923888, 0.375881, -0.361520, -0.375307, 0.853492, -0.943286, 0.059637, -0.326580, 0.611040, 0.099926,\n-0.037329, 0.490393, 0.090120, -0.076720, 0.976740, 0.200230, -0.046042, -0.204078, 0.977871, -0.996782, -0.079813, 0.007405, 0.524796, 0.087364,\n-0.037329, -0.461940, 0.187665, -0.081206, -0.918409, 0.387209, -0.751926, -0.198553, -0.628637, -0.668925, 0.338220, 0.661926, 0.865508, 0.771545,\n-0.019030, -0.490393, 0.095671, -0.036183, -0.976740, 0.211349, -0.659716, -0.135510, -0.739196, -0.754210, 0.165440, 0.635450, 0.892313, 0.825579,\n-0.037329, -0.490393, 0.090120, -0.076720, -0.976741, 0.200230, -0.621151, -0.110267, -0.775894, -0.785454, 0.182906, 0.591276, 0.900481, 0.818239,\n-0.097545, 0.000000, 0.490393, -0.227166, 0.000000, 0.973856, -0.907657, -0.362397, -0.211724, -0.348241, 0.933879, -0.081232, 0.788114, 0.408932,\n-0.095671, -0.097545, 0.480970, -0.159677, -0.195006, 0.967717, -0.907051, -0.357871, -0.221782, -0.392773, 0.911910, 0.118951, 0.798937, 0.470280,\n-0.187665, -0.097545, 0.453064, -0.345401, -0.195006, 0.917971, -0.868976, -0.302909, -0.391314, -0.359737, 0.930964, 0.062409, 0.826278, 0.448964,\n-0.037329, 0.461940, 0.187665, -0.071725, 0.923888, 0.375881, -0.361520, -0.375307, 0.853492, -0.943286, 0.059637, -0.326580, 0.611040, 0.099926,\n-0.054193, 0.415735, 0.272448, -0.126245, 0.831354, 0.541214, -0.755722, -0.434023, 0.490416, -0.674138, 0.328341, -0.661612, 0.675659, 0.129678,\n-0.073223, 0.461940, 0.176777, -0.143677, 0.923888, 0.354666, -0.323732, -0.382545, 0.865365, -0.944356, -0.020846, -0.328263, 0.617332, 0.075210,\n-0.095671, -0.097545, 0.480970, -0.159677, -0.195006, 0.967717, -0.907051, -0.357871, -0.221782, -0.392773, 0.911910, 0.118951, 0.798937, 0.470280,\n-0.090120, -0.191342, 0.453064, -0.209889, -0.382537, 0.899784, -0.881719, -0.323636, -0.343267, -0.422672, 0.865347, 0.269301, 0.809410, 0.531778,\n-0.187665, -0.097545, 0.453064, -0.345401, -0.195006, 0.917971, -0.868976, -0.302909, -0.391314, -0.359737, 0.930964, 0.062409, 0.826278, 0.448964,\n0.000000, 0.097545, 0.490393, 0.032182, 0.195005, 0.980274, -0.898725, -0.423503, 0.113752, -0.441784, 0.882545, -0.161061, 0.747546, 0.374899,\n0.000000, 0.000000, 0.500000, -0.032814, 0.000000, 0.999461, -0.913871, -0.404896, -0.030004, -0.401232, 0.915882, -0.013173, 0.760371, 0.434664,\n-0.095671, 0.097545, 0.480970, -0.159677, 0.195006, 0.967717, -0.917587, -0.390841, -0.072647, -0.378232, 0.893400, -0.242440, 0.776121, 0.348088,\n0.000000, 0.490393, 0.097545, -0.000000, 0.980789, 0.195071, -0.010227, -0.195061, 0.980738, -0.998705, -0.009923, 0.049892, 0.532587, 0.112073,\n0.000000, 0.461940, 0.191342, 0.006661, 0.929163, 0.369610, -0.301158, -0.350594, 0.886785, -0.969313, 0.096831, -0.225956, 0.602177, 0.123791,\n-0.019030, 0.490393, 0.095671, -0.036183, 0.976741, 0.211349, -0.052590, -0.213056, 0.975624, -0.999332, -0.036442, -0.002671, 0.530504, 0.099377,\n0.000000, -0.461940, 0.191342, -0.000000, -0.935949, 0.352136, -0.754461, -0.231123, -0.614305, -0.645677, 0.268895, 0.714701, 0.851786, 0.785757,\n0.000000, -0.490393, 0.097545, -0.000000, -0.980789, 0.195071, -0.667310, -0.145285, -0.730472, -0.732975, 0.132698, 0.667187, 0.884825, 0.834401,\n-0.019030, -0.490393, 0.095671, -0.036183, -0.976740, 0.211349, -0.659716, -0.135510, -0.739196, -0.754210, 0.165440, 0.635450, 0.892313, 0.825579,\n0.000000, 0.000000, 0.500000, -0.032814, 0.000000, 0.999461, -0.913871, -0.404896, -0.030004, -0.401232, 0.915882, -0.013173, 0.760371, 0.434664,\n0.000000, -0.097545, 0.490393, 0.032182, -0.195005, 0.980274, -0.915229, -0.399881, -0.049501, -0.402667, 0.895136, 0.191288, 0.772312, 0.494867,\n-0.095671, -0.097545, 0.480970, -0.159677, -0.195006, 0.967717, -0.907051, -0.357871, -0.221782, -0.392773, 0.911910, 0.118951, 0.798937, 0.470280,\n0.000000, 0.461940, 0.191342, 0.006661, 0.929163, 0.369610, -0.301158, -0.350594, 0.886785, -0.969313, 0.096831, -0.225956, 0.602177, 0.123791,\n0.000000, 0.415735, 0.277785, -0.018236, 0.831353, 0.555445, -0.631677, -0.440203, 0.638127, -0.795024, 0.324824, -0.512275, 0.654747, 0.158232,\n-0.037329, 0.461940, 0.187665, -0.071725, 0.923888, 0.375881, -0.361520, -0.375307, 0.853492, -0.943286, 0.059637, -0.326580, 0.611040, 0.099926,\n0.000000, -0.097545, 0.490393, 0.032182, -0.195005, 0.980274, -0.915229, -0.399881, -0.049501, -0.402667, 0.895136, 0.191288, 0.772312, 0.494867,\n0.000000, -0.191342, 0.461940, -0.030317, -0.382538, 0.923442, -0.910709, -0.370177, -0.183246, -0.413963, 0.845716, 0.336749, 0.784187, 0.555103,\n-0.095671, -0.097545, 0.480970, -0.159677, -0.195006, 0.967717, -0.907051, -0.357871, -0.221782, -0.392773, 0.911910, 0.118951, 0.798937, 0.470280,\n0.000000, 0.415735, 0.277785, -0.018236, 0.831353, 0.555445, -0.631677, -0.440203, 0.638127, -0.795024, 0.324824, -0.512275, 0.654747, 0.158232,\n0.000000, 0.353553, 0.353553, 0.012557, 0.720869, 0.692958, -0.752990, -0.449160, 0.480896, -0.658624, 0.527404, -0.536712, 0.690070, 0.205446,\n-0.068975, 0.353553, 0.346760, -0.115141, 0.706949, 0.697829, -0.833800, -0.450621, 0.318933, -0.549654, 0.539813, -0.637560, 0.716770, 0.176135,\n0.000000, -0.191342, 0.461940, -0.030317, -0.382538, 0.923442, -0.910709, -0.370177, -0.183246, -0.413963, 0.845716, 0.336749, 0.784187, 0.555103,\n0.000000, -0.277785, 0.415735, 0.001785, -0.555608, 0.831443, -0.903472, -0.357289, -0.236817, -0.428605, 0.750778, 0.502624, 0.796797, 0.614975,\n-0.081106, -0.277785, 0.407747, -0.160456, -0.555607, 0.815815, -0.870186, -0.310475, -0.382597, -0.466542, 0.771059, 0.433366, 0.820258, 0.593116,\n0.000000, 0.353553, 0.353553, 0.012557, 0.720869, 0.692958, -0.752990, -0.449160, 0.480896, -0.658624, 0.527404, -0.536712, 0.690070, 0.205446,\n0.000000, 0.277785, 0.415735, 0.012460, 0.567207, 0.823481, -0.828915, -0.454732, 0.325758, -0.549922, 0.691702, -0.468117, 0.714533, 0.259103,\n-0.068975, 0.353553, 0.346760, -0.115141, 0.706949, 0.697829, -0.833800, -0.450621, 0.318933, -0.549654, 0.539813, -0.637560, 0.716770, 0.176135,\n0.000000, -0.277785, 0.415735, 0.001785, -0.555608, 0.831443, -0.903472, -0.357289, -0.236817, -0.428605, 0.750778, 0.502624, 0.796797, 0.614975,\n0.000000, -0.353553, 0.353553, 0.002276, -0.707137, 0.707073, -0.885216, -0.330339, -0.327520, -0.463661, 0.625730, 0.627280, 0.811127, 0.673987,\n-0.068975, -0.353553, 0.346760, -0.135710, -0.707138, 0.693930, -0.844001, -0.284314, -0.454784, -0.517668, 0.647807, 0.558898, 0.832307, 0.653935,\n0.000000, 0.277785, 0.415735, 0.012460, 0.567207, 0.823481, -0.828915, -0.454732, 0.325758, -0.549922, 0.691702, -0.468117, 0.714533, 0.259103,\n0.000000, 0.191342, 0.461940, -0.030317, 0.382538, 0.923442, -0.887540, -0.435230, 0.151157, -0.452760, 0.818396, -0.353887, 0.732796, 0.316099,\n-0.081106, 0.277785, 0.407747, -0.160456, 0.555607, 0.815815, -0.891798, -0.435835, 0.121423, -0.416879, 0.711041, -0.566244, 0.743218, 0.230344,\n0.000000, -0.353553, 0.353553, 0.002276, -0.707137, 0.707073, -0.885216, -0.330339, -0.327520, -0.463661, 0.625730, 0.627280, 0.811127, 0.673987,\n0.000000, -0.415735, 0.277785, 0.008963, -0.839191, 0.543763, -0.849186, -0.293527, -0.439004, -0.521149, 0.460174, 0.718779, 0.828642, 0.731372,\n-0.054193, -0.415735, 0.272448, -0.099235, -0.820324, 0.563224, -0.816853, -0.256076, -0.516891, -0.569698, 0.510908, 0.643752, 0.846733, 0.713716,\n0.000000, 0.191342, 0.461940, -0.030317, 0.382538, 0.923442, -0.887540, -0.435230, 0.151157, -0.452760, 0.818396, -0.353887, 0.732796, 0.316099,\n0.000000, 0.097545, 0.490393, 0.032182, 0.195005, 0.980274, -0.898725, -0.423503, 0.113752, -0.441784, 0.882545, -0.161061, 0.747546, 0.374899,\n-0.095671, 0.097545, 0.480970, -0.159677, 0.195006, 0.967717, -0.917587, -0.390841, -0.072647, -0.378232, 0.893400, -0.242440, 0.776121, 0.348088,\n0.000000, -0.415735, 0.277785, 0.008963, -0.839191, 0.543763, -0.849186, -0.293527, -0.439004, -0.521149, 0.460174, 0.718779, 0.828642, 0.731372,\n0.000000, -0.461940, 0.191342, -0.000000, -0.935949, 0.352136, -0.754461, -0.231123, -0.614305, -0.645677, 0.268895, 0.714701, 0.851786, 0.785757,\n-0.037329, -0.461940, 0.187665, -0.081206, -0.918409, 0.387209, -0.751926, -0.198553, -0.628637, -0.668925, 0.338220, 0.661926, 0.865508, 0.771545,\n0.081106, -0.277785, 0.407747, 0.163956, -0.555608, 0.815119, -0.912228, -0.399882, -0.089082, -0.374218, 0.729506, 0.572523, 0.773368, 0.639622,\n0.068975, -0.353553, 0.346760, 0.140172, -0.707137, 0.693044, -0.908721, -0.369819, -0.193545, -0.391505, 0.603327, 0.694780, 0.789921, 0.696864,\n0.000000, -0.353553, 0.353553, 0.002276, -0.707137, 0.707073, -0.885216, -0.330339, -0.327520, -0.463661, 0.625730, 0.627280, 0.811127, 0.673987,\n0.081106, 0.277785, 0.407747, 0.181394, 0.539042, 0.822514, -0.774078, -0.437604, 0.457500, -0.612223, 0.716441, -0.334508, 0.688154, 0.288422,\n0.090120, 0.191342, 0.453064, 0.150420, 0.382537, 0.911614, -0.832725, -0.447986, 0.325389, -0.527832, 0.810755, -0.253120, 0.705594, 0.345167,\n0.000000, 0.277785, 0.415735, 0.012460, 0.567207, 0.823481, -0.828915, -0.454732, 0.325758, -0.549922, 0.691702, -0.468117, 0.714533, 0.259103,\n0.068975, -0.353553, 0.346760, 0.140172, -0.707137, 0.693044, -0.908721, -0.369819, -0.193545, -0.391505, 0.603327, 0.694780, 0.789921, 0.696864,\n0.054193, -0.415735, 0.272448, 0.123852, -0.820324, 0.558327, -0.893831, -0.336591, -0.296263, -0.435664, 0.460577, 0.773347, 0.810650, 0.751723,\n0.000000, -0.415735, 0.277785, 0.008963, -0.839191, 0.543763, -0.849186, -0.293527, -0.439004, -0.521149, 0.460174, 0.718779, 0.828642, 0.731372,\n0.090120, 0.191342, 0.453064, 0.150420, 0.382537, 0.911614, -0.832725, -0.447986, 0.325389, -0.527832, 0.810755, -0.253120, 0.705594, 0.345167,\n0.095671, 0.097545, 0.480970, 0.222807, 0.195006, 0.955160, -0.849816, -0.441233, 0.288316, -0.484252, 0.872498, -0.065170, 0.720269, 0.403448,\n0.000000, 0.097545, 0.490393, 0.032182, 0.195005, 0.980274, -0.898725, -0.423503, 0.113752, -0.441784, 0.882545, -0.161061, 0.747546, 0.374899,\n0.054193, -0.415735, 0.272448, 0.123852, -0.820324, 0.558327, -0.893831, -0.336591, -0.296263, -0.435664, 0.460577, 0.773347, 0.810650, 0.751723,\n0.037329, -0.461940, 0.187665, 0.080526, -0.910837, 0.404836, -0.849838, -0.274976, -0.449625, -0.544394, 0.300037, 0.783335, 0.838536, 0.802228,\n0.000000, -0.415735, 0.277785, 0.008963, -0.839191, 0.543763, -0.849186, -0.293527, -0.439004, -0.521149, 0.460174, 0.718779, 0.828642, 0.731372,\n0.095671, 0.097545, 0.480970, 0.222807, 0.195006, 0.955160, -0.849816, -0.441233, 0.288316, -0.484252, 0.872498, -0.065170, 0.720269, 0.403448,\n0.097545, 0.000000, 0.490393, 0.162803, -0.000000, 0.986659, -0.889654, -0.432395, 0.146797, -0.424489, 0.902720, 0.070042, 0.733486, 0.462524,\n0.000000, 0.097545, 0.490393, 0.032182, 0.195005, 0.980274, -0.898725, -0.423503, 0.113752, -0.441784, 0.882545, -0.161061, 0.747546, 0.374899,\n0.019030, 0.490393, 0.095671, 0.044314, 0.973859, 0.222787, -0.038854, -0.221157, 0.974464, -0.994442, 0.064320, -0.083357, 0.531827, 0.124876,\n0.037329, 0.461940, 0.187665, 0.087331, 0.916136, 0.391239, -0.294404, -0.351461, 0.888708, -0.937031, 0.208860, -0.279912, 0.591752, 0.146494,\n0.000000, 0.461940, 0.191342, 0.006661, 0.929163, 0.369610, -0.301158, -0.350594, 0.886785, -0.969313, 0.096831, -0.225956, 0.602177, 0.123791,\n0.037329, -0.461940, 0.187665, 0.080526, -0.910837, 0.404836, -0.849838, -0.274976, -0.449625, -0.544394, 0.300037, 0.783335, 0.838536, 0.802228,\n0.019030, -0.490393, 0.095671, 0.044314, -0.973859, 0.222787, -0.736482, -0.182524, -0.651368, -0.682533, 0.133332, 0.718590, 0.878221, 0.844539,\n0.000000, -0.461940, 0.191342, -0.000000, -0.935949, 0.352136, -0.754461, -0.231123, -0.614305, -0.645677, 0.268895, 0.714701, 0.851786, 0.785757,\n0.097545, 0.000000, 0.490393, 0.162803, -0.000000, 0.986659, -0.889654, -0.432395, 0.146797, -0.424489, 0.902720, 0.070042, 0.733486, 0.462524,\n0.095671, -0.097545, 0.480970, 0.222807, -0.195006, 0.955160, -0.895241, -0.428756, 0.121295, -0.385003, 0.882541, 0.269989, 0.746184, 0.521879,\n0.000000, -0.097545, 0.490393, 0.032182, -0.195005, 0.980274, -0.915229, -0.399881, -0.049501, -0.402667, 0.895136, 0.191288, 0.772312, 0.494867,\n0.037329, 0.461940, 0.187665, 0.087331, 0.916136, 0.391239, -0.294404, -0.351461, 0.888708, -0.937031, 0.208860, -0.279912, 0.591752, 0.146494,\n0.054193, 0.415735, 0.272448, 0.104109, 0.823575, 0.557571, -0.551851, -0.418565, 0.721293, -0.839109, 0.373688, -0.395288, 0.635422, 0.185632,\n0.000000, 0.461940, 0.191342, 0.006661, 0.929163, 0.369610, -0.301158, -0.350594, 0.886785, -0.969313, 0.096831, -0.225956, 0.602177, 0.123791,\n0.095671, -0.097545, 0.480970, 0.222807, -0.195006, 0.955160, -0.895241, -0.428756, 0.121295, -0.385003, 0.882541, 0.269989, 0.746184, 0.521879,\n0.090120, -0.191342, 0.453064, 0.150420, -0.382537, 0.911613, -0.913342, -0.406704, -0.019959, -0.381307, 0.828310, 0.410498, 0.759182, 0.581072,\n0.000000, -0.097545, 0.490393, 0.032182, -0.195005, 0.980274, -0.915229, -0.399881, -0.049501, -0.402667, 0.895136, 0.191288, 0.772312, 0.494867,\n0.054193, 0.415735, 0.272448, 0.104109, 0.823575, 0.557571, -0.551851, -0.418565, 0.721293, -0.839109, 0.373688, -0.395288, 0.635422, 0.185632,\n0.068975, 0.353553, 0.346760, 0.142394, 0.683554, 0.715875, -0.709156, -0.434105, 0.555564, -0.707975, 0.575780, -0.408961, 0.665895, 0.234463,\n0.000000, 0.353553, 0.353553, 0.012557, 0.720869, 0.692958, -0.752990, -0.449160, 0.480896, -0.658624, 0.527404, -0.536712, 0.690070, 0.205446,\n0.090120, -0.191342, 0.453064, 0.150420, -0.382537, 0.911613, -0.913342, -0.406704, -0.019959, -0.381307, 0.828310, 0.410498, 0.759182, 0.581072,\n0.081106, -0.277785, 0.407747, 0.163956, -0.555608, 0.815119, -0.912228, -0.399882, -0.089082, -0.374218, 0.729506, 0.572523, 0.773368, 0.639622,\n0.000000, -0.277785, 0.415735, 0.001785, -0.555608, 0.831443, -0.903472, -0.357289, -0.236817, -0.428605, 0.750778, 0.502624, 0.796797, 0.614975,\n0.068975, 0.353553, 0.346760, 0.142394, 0.683554, 0.715875, -0.709156, -0.434105, 0.555564, -0.707975, 0.575780, -0.408961, 0.665895, 0.234463,\n0.081106, 0.277785, 0.407747, 0.181394, 0.539042, 0.822514, -0.774078, -0.437604, 0.457500, -0.612223, 0.716441, -0.334508, 0.688154, 0.288422,\n0.000000, 0.277785, 0.415735, 0.012460, 0.567207, 0.823481, -0.828915, -0.454732, 0.325758, -0.549922, 0.691702, -0.468117, 0.714533, 0.259103,\n0.187665, -0.097545, 0.453064, 0.404870, -0.195006, 0.893338, -0.848218, -0.444960, 0.287291, -0.341842, 0.873870, 0.345682, 0.720246, 0.550459,\n0.176777, -0.191342, 0.426777, 0.325378, -0.382538, 0.864751, -0.890388, -0.431827, 0.143998, -0.322113, 0.814978, 0.481720, 0.734107, 0.608949,\n0.095671, -0.097545, 0.480970, 0.222807, -0.195006, 0.955160, -0.895241, -0.428756, 0.121295, -0.385003, 0.882541, 0.269989, 0.746184, 0.521879,\n0.106304, 0.415735, 0.256640, 0.197657, 0.842234, 0.501571, -0.449178, -0.376972, 0.810019, -0.868760, 0.387518, -0.308360, 0.616925, 0.211494,\n0.135299, 0.353553, 0.326641, 0.261563, 0.729955, 0.631468, -0.555272, -0.421330, 0.717045, -0.780375, 0.544938, -0.306688, 0.643255, 0.262466,\n0.054193, 0.415735, 0.272448, 0.104109, 0.823575, 0.557571, -0.551851, -0.418565, 0.721293, -0.839109, 0.373688, -0.395288, 0.635422, 0.185632,\n0.176777, -0.191342, 0.426777, 0.325378, -0.382538, 0.864751, -0.890388, -0.431827, 0.143998, -0.322113, 0.814978, 0.481720, 0.734107, 0.608949,\n0.159095, -0.277785, 0.384089, 0.326646, -0.567206, 0.756029, -0.902076, -0.425816, 0.070281, -0.275374, 0.708089, 0.650215, 0.749700, 0.666456,\n0.081106, -0.277785, 0.407747, 0.163956, -0.555608, 0.815119, -0.912228, -0.399882, -0.089082, -0.374218, 0.729506, 0.572523, 0.773368, 0.639622,\n0.135299, 0.353553, 0.326641, 0.261563, 0.729955, 0.631468, -0.555272, -0.421330, 0.717045, -0.780375, 0.544938, -0.306688, 0.643255, 0.262466,\n0.159095, 0.277785, 0.384089, 0.326646, 0.567206, 0.756029, -0.658364, -0.437374, 0.612586, -0.672901, 0.701278, -0.235399, 0.663284, 0.317370,\n0.068975, 0.353553, 0.346760, 0.142394, 0.683554, 0.715875, -0.709156, -0.434105, 0.555564, -0.707975, 0.575780, -0.408961, 0.665895, 0.234463,\n0.159095, -0.277785, 0.384089, 0.326646, -0.567206, 0.756029, -0.902076, -0.425816, 0.070281, -0.275374, 0.708089, 0.650215, 0.749700, 0.666456,\n0.135299, -0.353553, 0.326641, 0.253581, -0.720868, 0.645016, -0.913094, -0.398493, -0.086381, -0.310930, 0.570681, 0.760030, 0.768457, 0.722120,\n0.068975, -0.353553, 0.346760, 0.140172, -0.707137, 0.693044, -0.908721, -0.369819, -0.193545, -0.391505, 0.603327, 0.694780, 0.789921, 0.696864,\n0.159095, 0.277785, 0.384089, 0.326646, 0.567206, 0.756029, -0.658364, -0.437374, 0.612586, -0.672901, 0.701278, -0.235399, 0.663284, 0.317370,\n0.176777, 0.191342, 0.426777, 0.325378, 0.382538, 0.864751, -0.754569, -0.446108, 0.481263, -0.566310, 0.811200, -0.145764, 0.679609, 0.374456,\n0.081106, 0.277785, 0.407747, 0.181394, 0.539042, 0.822514, -0.774078, -0.437604, 0.457500, -0.612223, 0.716441, -0.334508, 0.688154, 0.288422,\n0.135299, -0.353553, 0.326641, 0.253581, -0.720868, 0.645016, -0.913094, -0.398493, -0.086381, -0.310930, 0.570681, 0.760030, 0.768457, 0.722120,\n0.106304, -0.415735, 0.256640, 0.216371, -0.839191, 0.498940, -0.904748, -0.364402, -0.220551, -0.367123, 0.403604, 0.838048, 0.792639, 0.774468,\n0.054193, -0.415735, 0.272448, 0.123852, -0.820324, 0.558327, -0.893831, -0.336591, -0.296263, -0.435664, 0.460577, 0.773347, 0.810650, 0.751723,\n0.176777, 0.191342, 0.426777, 0.325378, 0.382538, 0.864751, -0.754569, -0.446108, 0.481263, -0.566310, 0.811200, -0.145764, 0.679609, 0.374456,\n0.187665, 0.097545, 0.453064, 0.404870, 0.195006, 0.893338, -0.775954, -0.443563, 0.448495, -0.487796, 0.872420, 0.030634, 0.693851, 0.432732,\n0.095671, 0.097545, 0.480970, 0.222807, 0.195006, 0.955160, -0.849816, -0.441233, 0.288316, -0.484252, 0.872498, -0.065170, 0.720269, 0.403448,\n0.106304, -0.415735, 0.256640, 0.216371, -0.839191, 0.498940, -0.904748, -0.364402, -0.220551, -0.367123, 0.403604, 0.838048, 0.792639, 0.774468,\n0.073224, -0.461940, 0.176777, 0.134132, -0.931233, 0.338842, -0.844094, -0.286498, -0.453237, -0.512969, 0.227307, 0.827765, 0.825855, 0.820746,\n0.037329, -0.461940, 0.187665, 0.080526, -0.910837, 0.404836, -0.849838, -0.274976, -0.449625, -0.544394, 0.300037, 0.783335, 0.838536, 0.802228,\n0.187665, 0.097545, 0.453064, 0.404870, 0.195006, 0.893338, -0.775954, -0.443563, 0.448495, -0.487796, 0.872420, 0.030634, 0.693851, 0.432732,\n0.191342, 0.000000, 0.461940, 0.352163, 0.000000, 0.935939, -0.837896, -0.445571, 0.315273, -0.416119, 0.895729, 0.156572, 0.707107, 0.491563,\n0.095671, 0.097545, 0.480970, 0.222807, 0.195006, 0.955160, -0.849816, -0.441233, 0.288316, -0.484252, 0.872498, -0.065170, 0.720269, 0.403448,\n0.037329, 0.490393, 0.090120, 0.087334, 0.976741, 0.195832, 0.029590, -0.199040, 0.979544, -0.996041, 0.082349, 0.033470, 0.528865, 0.137340,\n0.073224, 0.461940, 0.176777, 0.149190, 0.923888, 0.352383, -0.209827, -0.318676, 0.924348, -0.971200, 0.203867, -0.123323, 0.580255, 0.167767,\n0.019030, 0.490393, 0.095671, 0.044314, 0.973859, 0.222787, -0.038854, -0.221157, 0.974464, -0.994442, 0.064320, -0.083357, 0.531827, 0.124876,\n0.073224, -0.461940, 0.176777, 0.134132, -0.931233, 0.338842, -0.844094, -0.286498, -0.453237, -0.512969, 0.227307, 0.827765, 0.825855, 0.820746,\n0.037329, -0.490393, 0.090120, 0.087334, -0.976741, 0.195832, -0.744511, -0.194610, -0.638616, -0.657112, 0.091266, 0.748248, 0.872759, 0.855785,\n0.019030, -0.490393, 0.095671, 0.044314, -0.973859, 0.222787, -0.736482, -0.182524, -0.651368, -0.682533, 0.133332, 0.718590, 0.878221, 0.844539,\n0.191342, 0.000000, 0.461940, 0.352163, 0.000000, 0.935939, -0.837896, -0.445571, 0.315273, -0.416119, 0.895729, 0.156572, 0.707107, 0.491563,\n0.187665, -0.097545, 0.453064, 0.404870, -0.195006, 0.893338, -0.848218, -0.444960, 0.287291, -0.341842, 0.873870, 0.345682, 0.720246, 0.550459,\n0.095671, -0.097545, 0.480970, 0.222807, -0.195006, 0.955160, -0.895241, -0.428756, 0.121295, -0.385003, 0.882541, 0.269989, 0.746184, 0.521879,\n0.073224, 0.461940, 0.176777, 0.149190, 0.923888, 0.352383, -0.209827, -0.318676, 0.924348, -0.971200, 0.203867, -0.123323, 0.580255, 0.167767,\n0.106304, 0.415735, 0.256640, 0.197657, 0.842234, 0.501571, -0.449178, -0.376972, 0.810019, -0.868760, 0.387518, -0.308360, 0.616925, 0.211494,\n0.037329, 0.461940, 0.187665, 0.087331, 0.916136, 0.391239, -0.294404, -0.351461, 0.888708, -0.937031, 0.208860, -0.279912, 0.591752, 0.146494,\n0.154329, -0.415735, 0.230970, 0.323751, -0.831354, 0.451704, -0.911964, -0.401356, -0.085055, -0.276201, 0.373577, 0.885524, 0.774406, 0.799286,\n0.106304, -0.461940, 0.159095, 0.202132, -0.923819, 0.325118, -0.879274, -0.317380, -0.355171, -0.438512, 0.211461, 0.873494, 0.813873, 0.841082,\n0.106304, -0.415735, 0.256640, 0.216371, -0.839191, 0.498940, -0.904748, -0.364402, -0.220551, -0.367123, 0.403604, 0.838048, 0.792639, 0.774468,\n0.272448, 0.097545, 0.407746, 0.571370, 0.195006, 0.797188, -0.679619, -0.432092, 0.592802, -0.461244, 0.879738, 0.115390, 0.667855, 0.461824,\n0.277785, 0.000000, 0.415735, 0.527990, 0.000000, 0.849250, -0.760591, -0.444855, 0.472869, -0.377970, 0.895499, 0.234989, 0.680843, 0.520863,\n0.187665, 0.097545, 0.453064, 0.404870, 0.195006, 0.893338, -0.775954, -0.443563, 0.448495, -0.487796, 0.872420, 0.030634, 0.693851, 0.432732,\n0.054193, 0.490393, 0.081106, 0.123861, 0.976741, 0.175033, 0.067422, -0.184267, 0.980561, -0.990960, 0.112591, 0.072953, 0.524202, 0.149115,\n0.106304, 0.461940, 0.159095, 0.215072, 0.923888, 0.316505, -0.142089, -0.291038, 0.946101, -0.968208, 0.244107, -0.054637, 0.567957, 0.187359,\n0.037329, 0.490393, 0.090120, 0.087334, 0.976741, 0.195832, 0.029590, -0.199040, 0.979544, -0.996041, 0.082349, 0.033470, 0.528865, 0.137340,\n0.106304, -0.461940, 0.159095, 0.202132, -0.923819, 0.325118, -0.879274, -0.317380, -0.355171, -0.438512, 0.211461, 0.873494, 0.813873, 0.841082,\n0.054193, -0.490393, 0.081106, 0.123861, -0.976741, 0.175033, -0.764866, -0.206349, -0.610246, -0.629644, 0.058971, 0.774642, 0.868766, 0.867891,\n0.037329, -0.490393, 0.090120, 0.087334, -0.976741, 0.195832, -0.744511, -0.194610, -0.638616, -0.657112, 0.091266, 0.748248, 0.872759, 0.855785,\n0.277785, 0.000000, 0.415735, 0.527990, 0.000000, 0.849250, -0.760591, -0.444855, 0.472869, -0.377970, 0.895499, 0.234989, 0.680843, 0.520863,\n0.272448, -0.097545, 0.407746, 0.571370, -0.195006, 0.797188, -0.775311, -0.446789, 0.446399, -0.265374, 0.875277, 0.404310, 0.694122, 0.579742,\n0.187665, -0.097545, 0.453064, 0.404870, -0.195006, 0.893338, -0.848218, -0.444960, 0.287291, -0.341842, 0.873870, 0.345682, 0.720246, 0.550459,\n0.106304, 0.461940, 0.159095, 0.215072, 0.923888, 0.316505, -0.142089, -0.291038, 0.946101, -0.968208, 0.244107, -0.054637, 0.567957, 0.187359,\n0.154329, 0.415735, 0.230970, 0.309558, 0.823575, 0.475288, -0.362806, -0.359728, 0.859632, -0.882398, 0.435059, -0.179155, 0.598817, 0.235470,\n0.073224, 0.461940, 0.176777, 0.149190, 0.923888, 0.352383, -0.209827, -0.318676, 0.924348, -0.971200, 0.203867, -0.123323, 0.580255, 0.167767,\n0.272448, -0.097545, 0.407746, 0.571370, -0.195006, 0.797188, -0.775311, -0.446789, 0.446399, -0.265374, 0.875277, 0.404310, 0.694122, 0.579742,\n0.256640, -0.191342, 0.384089, 0.487830, -0.382537, 0.784657, -0.841552, -0.444954, 0.306278, -0.236581, 0.807292, 0.540656, 0.708586, 0.637959,\n0.187665, -0.097545, 0.453064, 0.404870, -0.195006, 0.893338, -0.848218, -0.444960, 0.287291, -0.341842, 0.873870, 0.345682, 0.720246, 0.550459,\n0.154329, 0.415735, 0.230970, 0.309558, 0.823575, 0.475288, -0.362806, -0.359728, 0.859632, -0.882398, 0.435059, -0.179155, 0.598817, 0.235470,\n0.196424, 0.353553, 0.293969, 0.405511, 0.683554, 0.606889, -0.503618, -0.387003, 0.772398, -0.774279, 0.609746, -0.169414, 0.621494, 0.288874,\n0.135299, 0.353553, 0.326641, 0.261563, 0.729955, 0.631468, -0.555272, -0.421330, 0.717045, -0.780375, 0.544938, -0.306688, 0.643255, 0.262466,\n0.256640, -0.191342, 0.384089, 0.487830, -0.382537, 0.784657, -0.841552, -0.444954, 0.306278, -0.236581, 0.807292, 0.540656, 0.708586, 0.637959,\n0.230970, -0.277785, 0.345671, 0.482349, -0.539041, 0.690488, -0.859848, -0.441928, 0.255659, -0.169141, 0.716102, 0.677192, 0.725412, 0.694835,\n0.159095, -0.277785, 0.384089, 0.326646, -0.567206, 0.756029, -0.902076, -0.425816, 0.070281, -0.275374, 0.708089, 0.650215, 0.749700, 0.666456,\n0.196424, 0.353553, 0.293969, 0.405511, 0.683554, 0.606889, -0.503618, -0.387003, 0.772398, -0.774279, 0.609746, -0.169414, 0.621494, 0.288874,\n0.230970, 0.277785, 0.345671, 0.482349, 0.539041, 0.690488, -0.570198, -0.405184, 0.714633, -0.674162, 0.731742, -0.100302, 0.639314, 0.345175,\n0.159095, 0.277785, 0.384089, 0.326646, 0.567206, 0.756029, -0.658364, -0.437374, 0.612586, -0.672901, 0.701278, -0.235399, 0.663284, 0.317370,\n0.230970, -0.277785, 0.345671, 0.482349, -0.539041, 0.690488, -0.859848, -0.441928, 0.255659, -0.169141, 0.716102, 0.677192, 0.725412, 0.694835,\n0.196424, -0.353553, 0.293969, 0.390842, -0.697093, 0.601086, -0.901249, -0.422534, 0.095994, -0.200693, 0.572779, 0.794762, 0.746387, 0.749272,\n0.159095, -0.277785, 0.384089, 0.326646, -0.567206, 0.756029, -0.902076, -0.425816, 0.070281, -0.275374, 0.708089, 0.650215, 0.749700, 0.666456,\n0.230970, 0.277785, 0.345671, 0.482349, 0.539041, 0.690488, -0.570198, -0.405184, 0.714633, -0.674162, 0.731742, -0.100302, 0.639314, 0.345175,\n0.256640, 0.191342, 0.384089, 0.487830, 0.382537, 0.784657, -0.656742, -0.431327, 0.618585, -0.572659, 0.818661, -0.043086, 0.654329, 0.403082,\n0.159095, 0.277785, 0.384089, 0.326646, 0.567206, 0.756029, -0.658364, -0.437374, 0.612586, -0.672901, 0.701278, -0.235399, 0.663284, 0.317370,\n0.196424, -0.353553, 0.293969, 0.390842, -0.697093, 0.601086, -0.901249, -0.422534, 0.095994, -0.200693, 0.572779, 0.794762, 0.746387, 0.749272,\n0.154329, -0.415735, 0.230970, 0.323751, -0.831354, 0.451704, -0.911964, -0.401356, -0.085055, -0.276201, 0.373577, 0.885524, 0.774406, 0.799286,\n0.106304, -0.415735, 0.256640, 0.216371, -0.839191, 0.498940, -0.904748, -0.364402, -0.220551, -0.367123, 0.403604, 0.838048, 0.792639, 0.774468,\n0.256640, 0.191342, 0.384089, 0.487830, 0.382537, 0.784657, -0.656742, -0.431327, 0.618585, -0.572659, 0.818661, -0.043086, 0.654329, 0.403082,\n0.272448, 0.097545, 0.407746, 0.571370, 0.195006, 0.797188, -0.679619, -0.432092, 0.592802, -0.461244, 0.879738, 0.115390, 0.667855, 0.461824,\n0.187665, 0.097545, 0.453064, 0.404870, 0.195006, 0.893338, -0.775954, -0.443563, 0.448495, -0.487796, 0.872420, 0.030634, 0.693851, 0.432732,\n0.293969, -0.277785, 0.293969, 0.589181, -0.555607, 0.586656, -0.805752, -0.458145, 0.375323, -0.058674, 0.694723, 0.716880, 0.699985, 0.724042,\n0.250000, -0.353553, 0.250000, 0.501585, -0.707137, 0.498368, -0.863572, -0.443584, 0.239742, -0.050333, 0.551246, 0.832823, 0.723190, 0.777783,\n0.196424, -0.353553, 0.293969, 0.390842, -0.697093, 0.601086, -0.901249, -0.422534, 0.095994, -0.200693, 0.572779, 0.794762, 0.746387, 0.749272,\n0.293969, 0.277785, 0.293969, 0.574714, 0.582587, 0.574714, -0.439014, -0.373186, 0.817312, -0.688256, 0.724028, -0.045690, 0.615788, 0.371156,\n0.326641, 0.191342, 0.326641, 0.639780, 0.395636, 0.658903, -0.525058, -0.401068, 0.750639, -0.559581, 0.827471, 0.046488, 0.629325, 0.430241,\n0.230970, 0.277785, 0.345671, 0.482349, 0.539041, 0.690488, -0.570198, -0.405184, 0.714633, -0.674162, 0.731742, -0.100302, 0.639314, 0.345175,\n0.250000, -0.353553, 0.250000, 0.501585, -0.707137, 0.498368, -0.863572, -0.443584, 0.239742, -0.050333, 0.551246, 0.832823, 0.723190, 0.777783,\n0.196424, -0.415735, 0.196424, 0.405652, -0.831354, 0.379865, -0.906402, -0.419454, 0.049937, -0.135568, 0.356274, 0.924495, 0.755624, 0.825846,\n0.154329, -0.415735, 0.230970, 0.323751, -0.831354, 0.451704, -0.911964, -0.401356, -0.085055, -0.276201, 0.373577, 0.885524, 0.774406, 0.799286,\n0.326641, 0.191342, 0.326641, 0.639780, 0.395636, 0.658903, -0.525058, -0.401068, 0.750639, -0.559581, 0.827471, 0.046488, 0.629325, 0.430241,\n0.346760, 0.097545, 0.346760, 0.715915, 0.195005, 0.670402, -0.562504, -0.407702, 0.719284, -0.414234, 0.891580, 0.183015, 0.641879, 0.489842,\n0.272448, 0.097545, 0.407746, 0.571370, 0.195006, 0.797188, -0.679619, -0.432092, 0.592802, -0.461244, 0.879738, 0.115390, 0.667855, 0.461824,\n0.196424, -0.415735, 0.196424, 0.405652, -0.831354, 0.379865, -0.906402, -0.419454, 0.049937, -0.135568, 0.356274, 0.924495, 0.755624, 0.825846,\n0.135299, -0.461940, 0.135299, 0.256643, -0.929163, 0.266065, -0.891552, -0.333886, -0.306030, -0.403189, 0.147263, 0.903190, 0.802789, 0.862995,\n0.154329, -0.415735, 0.230970, 0.323751, -0.831354, 0.451704, -0.911964, -0.401356, -0.085055, -0.276201, 0.373577, 0.885524, 0.774406, 0.799286,\n0.346760, 0.097545, 0.346760, 0.715915, 0.195005, 0.670402, -0.562504, -0.407702, 0.719284, -0.414234, 0.891580, 0.183015, 0.641879, 0.489842,\n0.353554, 0.000000, 0.353553, 0.683524, -0.000000, 0.729928, -0.658903, -0.430280, 0.617014, -0.315155, 0.901988, 0.295120, 0.654296, 0.549514,\n0.272448, 0.097545, 0.407746, 0.571370, 0.195006, 0.797188, -0.679619, -0.432092, 0.592802, -0.461244, 0.879738, 0.115390, 0.667855, 0.461824,\n0.068975, 0.490393, 0.068975, 0.155628, 0.976741, 0.147506, 0.108362, -0.165305, 0.980271, -0.982856, 0.138166, 0.122082, 0.518220, 0.159918,\n0.135299, 0.461940, 0.135299, 0.272685, 0.923888, 0.268466, -0.068741, -0.259619, 0.963261, -0.960121, 0.279218, 0.014321, 0.555020, 0.205035,\n0.054193, 0.490393, 0.081106, 0.123861, 0.976741, 0.175033, 0.067422, -0.184267, 0.980561, -0.990960, 0.112591, 0.072953, 0.524202, 0.149115,\n0.135299, -0.461940, 0.135299, 0.256643, -0.929163, 0.266065, -0.891552, -0.333886, -0.306030, -0.403189, 0.147263, 0.903190, 0.802789, 0.862995,\n0.068975, -0.490393, 0.068975, 0.137937, -0.980789, 0.137937, -0.762550, -0.194038, -0.617143, -0.658063, 0.013330, 0.752845, 0.866671, 0.880547,\n0.054193, -0.490393, 0.081106, 0.123861, -0.976741, 0.175033, -0.764866, -0.206349, -0.610246, -0.629644, 0.058971, 0.774642, 0.868766, 0.867891,\n0.353554, 0.000000, 0.353553, 0.683524, -0.000000, 0.729928, -0.658903, -0.430280, 0.617014, -0.315155, 0.901988, 0.295120, 0.654296, 0.549514,\n0.346760, -0.097545, 0.346760, 0.715915, -0.195005, 0.670402, -0.675718, -0.435157, 0.595015, -0.170762, 0.882136, 0.438949, 0.667393, 0.608830,\n0.272448, -0.097545, 0.407746, 0.571370, -0.195006, 0.797188, -0.775311, -0.446789, 0.446399, -0.265374, 0.875277, 0.404310, 0.694122, 0.579742,\n0.135299, 0.461940, 0.135299, 0.272685, 0.923888, 0.268466, -0.068741, -0.259619, 0.963261, -0.960121, 0.279218, 0.014321, 0.555020, 0.205035,\n0.196424, 0.415735, 0.196424, 0.394718, 0.831489, 0.390926, -0.237243, -0.318812, 0.917646, -0.887510, 0.455137, -0.071945, 0.580834, 0.257236,\n0.106304, 0.461940, 0.159095, 0.215072, 0.923888, 0.316505, -0.142089, -0.291038, 0.946101, -0.968208, 0.244107, -0.054637, 0.567957, 0.187359,\n0.346760, -0.097545, 0.346760, 0.715915, -0.195005, 0.670402, -0.675718, -0.435157, 0.595015, -0.170762, 0.882136, 0.438949, 0.667393, 0.608830,\n0.326641, -0.191342, 0.326641, 0.631535, -0.382537, 0.674410, -0.765616, -0.445052, 0.464501, -0.127864, 0.806523, 0.577209, 0.682151, 0.667268,\n0.272448, -0.097545, 0.407746, 0.571370, -0.195006, 0.797188, -0.775311, -0.446789, 0.446399, -0.265374, 0.875277, 0.404310, 0.694122, 0.579742,\n0.196424, 0.415735, 0.196424, 0.394718, 0.831489, 0.390926, -0.237243, -0.318812, 0.917646, -0.887510, 0.455137, -0.071945, 0.580834, 0.257236,\n0.250000, 0.353553, 0.250000, 0.481115, 0.720868, 0.498876, -0.357926, -0.357950, 0.862415, -0.796638, 0.597035, -0.094430, 0.600175, 0.313176,\n0.154329, 0.415735, 0.230970, 0.309558, 0.823575, 0.475288, -0.362806, -0.359728, 0.859632, -0.882398, 0.435059, -0.179155, 0.598817, 0.235470,\n0.326641, -0.191342, 0.326641, 0.631535, -0.382537, 0.674410, -0.765616, -0.445052, 0.464501, -0.127864, 0.806523, 0.577209, 0.682151, 0.667268,\n0.293969, -0.277785, 0.293969, 0.589181, -0.555607, 0.586656, -0.805752, -0.458145, 0.375323, -0.058674, 0.694723, 0.716880, 0.699985, 0.724042,\n0.230970, -0.277785, 0.345671, 0.482349, -0.539041, 0.690488, -0.859848, -0.441928, 0.255659, -0.169141, 0.716102, 0.677192, 0.725412, 0.694835,\n0.250000, 0.353553, 0.250000, 0.481115, 0.720868, 0.498876, -0.357926, -0.357950, 0.862415, -0.796638, 0.597035, -0.094430, 0.600175, 0.313176,\n0.293969, 0.277785, 0.293969, 0.574714, 0.582587, 0.574714, -0.439014, -0.373186, 0.817312, -0.688256, 0.724028, -0.045690, 0.615788, 0.371156,\n0.196424, 0.353553, 0.293969, 0.405511, 0.683554, 0.606889, -0.503618, -0.387003, 0.772398, -0.774279, 0.609746, -0.169414, 0.621494, 0.288874,\n0.407747, -0.097545, 0.272447, 0.832947, -0.195006, 0.517853, -0.548914, -0.409474, 0.728714, -0.068744, 0.892130, 0.446518, 0.639617, 0.636769,\n0.384089, -0.191342, 0.256640, 0.750971, -0.382537, 0.538245, -0.660325, -0.430450, 0.615373, -0.002364, 0.813546, 0.581496, 0.654257, 0.695946,\n0.346760, -0.097545, 0.346760, 0.715915, -0.195005, 0.670402, -0.675718, -0.435157, 0.595015, -0.170762, 0.882136, 0.438949, 0.667393, 0.608830,\n0.230970, 0.415735, 0.154329, 0.463399, 0.831489, 0.306409, -0.145438, -0.269724, 0.951891, -0.874467, 0.485046, 0.006256, 0.562811, 0.276478,\n0.293969, 0.353553, 0.196424, 0.591116, 0.697093, 0.405763, -0.254938, -0.315802, 0.913934, -0.765365, 0.643528, 0.009416, 0.579002, 0.334905,\n0.196424, 0.415735, 0.196424, 0.394718, 0.831489, 0.390926, -0.237243, -0.318812, 0.917646, -0.887510, 0.455137, -0.071945, 0.580834, 0.257236,\n0.384089, -0.191342, 0.256640, 0.750971, -0.382537, 0.538245, -0.660325, -0.430450, 0.615373, -0.002364, 0.813546, 0.581496, 0.654257, 0.695946,\n0.345671, -0.277785, 0.230970, 0.692311, -0.555607, 0.460442, -0.715184, -0.443416, 0.540273, 0.098946, 0.705151, 0.702119, 0.672735, 0.753249,\n0.293969, -0.277785, 0.293969, 0.589181, -0.555607, 0.586656, -0.805752, -0.458145, 0.375323, -0.058674, 0.694723, 0.716880, 0.699985, 0.724042,\n0.293969, 0.353553, 0.196424, 0.591116, 0.697093, 0.405763, -0.254938, -0.315802, 0.913934, -0.765365, 0.643528, 0.009416, 0.579002, 0.334905,\n0.345671, 0.277785, 0.230970, 0.706109, 0.528022, 0.471807, -0.336462, -0.336087, 0.879681, -0.627113, 0.775743, 0.070370, 0.592373, 0.394688,\n0.293969, 0.277785, 0.293969, 0.574714, 0.582587, 0.574714, -0.439014, -0.373186, 0.817312, -0.688256, 0.724028, -0.045690, 0.615788, 0.371156,\n0.345671, -0.277785, 0.230970, 0.692311, -0.555607, 0.460442, -0.715184, -0.443416, 0.540273, 0.098946, 0.705151, 0.702119, 0.672735, 0.753249,\n0.293969, -0.353553, 0.196424, 0.589174, -0.707137, 0.390937, -0.801426, -0.449803, 0.394199, 0.104128, 0.546243, 0.831129, 0.698089, 0.807023,\n0.250000, -0.353553, 0.250000, 0.501585, -0.707137, 0.498368, -0.863572, -0.443584, 0.239742, -0.050333, 0.551246, 0.832823, 0.723190, 0.777783,\n0.345671, 0.277785, 0.230970, 0.706109, 0.528022, 0.471807, -0.336462, -0.336087, 0.879681, -0.627113, 0.775743, 0.070370, 0.592373, 0.394688,\n0.384089, 0.191342, 0.256640, 0.763631, 0.364377, 0.533008, -0.410883, -0.362539, 0.836505, -0.501243, 0.854918, 0.133680, 0.604257, 0.455174,\n0.326641, 0.191342, 0.326641, 0.639780, 0.395636, 0.658903, -0.525058, -0.401068, 0.750639, -0.559581, 0.827471, 0.046488, 0.629325, 0.430241,\n0.293969, -0.353553, 0.196424, 0.589174, -0.707137, 0.390937, -0.801426, -0.449803, 0.394199, 0.104128, 0.546243, 0.831129, 0.698089, 0.807023,\n0.230970, -0.415735, 0.154329, 0.482375, -0.820324, 0.307218, -0.875306, -0.437791, 0.205375, 0.031552, 0.366764, 0.929779, 0.735745, 0.853787,\n0.196424, -0.415735, 0.196424, 0.405652, -0.831354, 0.379865, -0.906402, -0.419454, 0.049937, -0.135568, 0.356274, 0.924495, 0.755624, 0.825846,\n0.384089, 0.191342, 0.256640, 0.763631, 0.364377, 0.533008, -0.410883, -0.362539, 0.836505, -0.501243, 0.854918, 0.133680, 0.604257, 0.455174,\n0.407747, 0.097545, 0.272447, 0.832947, 0.195006, 0.517853, -0.426367, -0.370351, 0.825258, -0.352234, 0.908612, 0.224402, 0.615573, 0.515927,\n0.346760, 0.097545, 0.346760, 0.715915, 0.195005, 0.670402, -0.562504, -0.407702, 0.719284, -0.414234, 0.891580, 0.183015, 0.641879, 0.489842,\n0.230970, -0.415735, 0.154329, 0.482375, -0.820324, 0.307218, -0.875306, -0.437791, 0.205375, 0.031552, 0.366764, 0.929779, 0.735745, 0.853787,\n0.159095, -0.461940, 0.106304, 0.343202, -0.910837, 0.229321, -0.916407, -0.378249, -0.130867, -0.187883, 0.172641, 0.966900, 0.792948, 0.886226,\n0.196424, -0.415735, 0.196424, 0.405652, -0.831354, 0.379865, -0.906402, -0.419454, 0.049937, -0.135568, 0.356274, 0.924495, 0.755624, 0.825846,\n0.407747, 0.097545, 0.272447, 0.832947, 0.195006, 0.517853, -0.426367, -0.370351, 0.825258, -0.352234, 0.908612, 0.224402, 0.615573, 0.515927,\n0.415735, 0.000000, 0.277785, 0.812792, 0.000000, 0.582554, -0.533537, -0.401502, 0.744402, -0.235619, 0.914556, 0.328741, 0.627086, 0.576588,\n0.346760, 0.097545, 0.346760, 0.715915, 0.195005, 0.670402, -0.562504, -0.407702, 0.719284, -0.414234, 0.891580, 0.183015, 0.641879, 0.489842,\n0.081106, 0.490393, 0.054193, 0.181415, 0.976741, 0.114308, 0.153068, -0.142866, 0.977834, -0.971223, 0.159712, 0.176687, 0.511212, 0.169520,\n0.159095, 0.461940, 0.106304, 0.319821, 0.923888, 0.210110, 0.008856, -0.224662, 0.974396, -0.947411, 0.309195, 0.082531, 0.541559, 0.220571,\n0.068975, 0.490393, 0.068975, 0.155628, 0.976741, 0.147506, 0.108362, -0.165305, 0.980271, -0.982856, 0.138166, 0.122082, 0.518220, 0.159918,\n0.159095, -0.461940, 0.106304, 0.343202, -0.910837, 0.229321, -0.916407, -0.378249, -0.130867, -0.187883, 0.172641, 0.966900, 0.792948, 0.886226,\n0.081106, -0.490393, 0.054193, 0.188870, -0.973859, 0.126198, -0.801537, -0.227128, -0.553128, -0.517361, 0.010550, 0.855703, 0.867032, 0.893366,\n0.135299, -0.461940, 0.135299, 0.256643, -0.929163, 0.266065, -0.891552, -0.333886, -0.306030, -0.403189, 0.147263, 0.903190, 0.802789, 0.862995,\n0.415735, 0.000000, 0.277785, 0.812792, 0.000000, 0.582554, -0.533537, -0.401502, 0.744402, -0.235619, 0.914556, 0.328741, 0.627086, 0.576588,\n0.407747, -0.097545, 0.272447, 0.832947, -0.195006, 0.517853, -0.548914, -0.409474, 0.728714, -0.068744, 0.892130, 0.446518, 0.639617, 0.636769,\n0.346760, -0.097545, 0.346760, 0.715915, -0.195005, 0.670402, -0.675718, -0.435157, 0.595015, -0.170762, 0.882136, 0.438949, 0.667393, 0.608830,\n0.159095, 0.461940, 0.106304, 0.319821, 0.923888, 0.210110, 0.008856, -0.224662, 0.974396, -0.947411, 0.309195, 0.082531, 0.541559, 0.220571,\n0.230970, 0.415735, 0.154329, 0.463399, 0.831489, 0.306409, -0.145438, -0.269724, 0.951891, -0.874467, 0.485046, 0.006256, 0.562811, 0.276478,\n0.135299, 0.461940, 0.135299, 0.272685, 0.923888, 0.268466, -0.068741, -0.259619, 0.963261, -0.960121, 0.279218, 0.014321, 0.555020, 0.205035,\n0.256640, -0.415735, 0.106304, 0.505801, -0.839191, 0.199808, -0.855445, -0.458062, 0.241648, 0.051734, 0.260712, 0.964029, 0.713786, 0.882694,\n0.176777, -0.461940, 0.073223, 0.334444, -0.931233, 0.144749, -0.912190, -0.358464, -0.198527, -0.271659, 0.051812, 0.960998, 0.785005, 0.910494,\n0.159095, -0.461940, 0.106304, 0.343202, -0.910837, 0.229321, -0.916407, -0.378249, -0.130867, -0.187883, 0.172641, 0.966900, 0.792948, 0.886226,\n0.453064, 0.097545, 0.187665, 0.917971, 0.195006, 0.345401, -0.273171, -0.320559, 0.906984, -0.287255, 0.927329, 0.239888, 0.588664, 0.539227,\n0.461940, 0.000000, 0.191342, 0.910825, 0.000000, 0.412793, -0.385428, -0.358038, 0.850444, -0.149711, 0.931915, 0.330335, 0.598888, 0.601120,\n0.407747, 0.097545, 0.272447, 0.832947, 0.195006, 0.517853, -0.426367, -0.370351, 0.825258, -0.352234, 0.908612, 0.224402, 0.615573, 0.515927,\n0.090120, 0.490393, 0.037329, 0.180222, 0.980789, 0.074651, 0.212929, -0.112995, 0.970512, -0.961087, 0.159432, 0.225594, 0.503412, 0.177731,\n0.176777, 0.461940, 0.073223, 0.344025, 0.929163, 0.135289, 0.104990, -0.181246, 0.977818, -0.933849, 0.323568, 0.152413, 0.527662, 0.233762,\n0.081106, 0.490393, 0.054193, 0.181415, 0.976741, 0.114308, 0.153068, -0.142866, 0.977834, -0.971223, 0.159712, 0.176687, 0.511212, 0.169520,\n0.176777, -0.461940, 0.073223, 0.334444, -0.931233, 0.144749, -0.912190, -0.358464, -0.198527, -0.271659, 0.051812, 0.960998, 0.785005, 0.910494,\n0.090120, -0.490393, 0.037329, 0.200230, -0.976741, 0.076720, -0.795149, -0.207753, -0.569716, -0.589941, -0.057676, 0.805384, 0.870555, 0.905851,\n0.081106, -0.490393, 0.054193, 0.188870, -0.973859, 0.126198, -0.801537, -0.227128, -0.553128, -0.517361, 0.010550, 0.855703, 0.867032, 0.893366,\n0.461940, 0.000000, 0.191342, 0.910825, 0.000000, 0.412793, -0.385428, -0.358038, 0.850444, -0.149711, 0.931915, 0.330335, 0.598888, 0.601120,\n0.453064, -0.097545, 0.187665, 0.917971, -0.195006, 0.345401, -0.394808, -0.365434, 0.842962, 0.044080, 0.915562, 0.399754, 0.610368, 0.662513,\n0.407747, -0.097545, 0.272447, 0.832947, -0.195006, 0.517853, -0.548914, -0.409474, 0.728714, -0.068744, 0.892130, 0.446518, 0.639617, 0.636769,\n0.176777, 0.461940, 0.073223, 0.344025, 0.929163, 0.135289, 0.104990, -0.181246, 0.977818, -0.933849, 0.323568, 0.152413, 0.527662, 0.233762,\n0.256640, 0.415735, 0.106304, 0.514273, 0.831489, 0.210118, -0.025383, -0.230135, 0.972828, -0.857217, 0.505928, 0.095995, 0.544655, 0.292902,\n0.159095, 0.461940, 0.106304, 0.319821, 0.923888, 0.210110, 0.008856, -0.224662, 0.974396, -0.947411, 0.309195, 0.082531, 0.541559, 0.220571,\n0.453064, -0.097545, 0.187665, 0.917971, -0.195006, 0.345401, -0.394808, -0.365434, 0.842962, 0.044080, 0.915562, 0.399754, 0.610368, 0.662513,\n0.426777, -0.191342, 0.176777, 0.841547, -0.382538, 0.381396, -0.522734, -0.398698, 0.753518, 0.129870, 0.828618, 0.544542, 0.624302, 0.722914,\n0.407747, -0.097545, 0.272447, 0.832947, -0.195006, 0.517853, -0.548914, -0.409474, 0.728714, -0.068744, 0.892130, 0.446518, 0.639617, 0.636769,\n0.256640, 0.415735, 0.106304, 0.514273, 0.831489, 0.210118, -0.025383, -0.230135, 0.972828, -0.857217, 0.505928, 0.095995, 0.544655, 0.292902,\n0.326641, 0.353553, 0.135299, 0.635404, 0.720869, 0.276786, -0.116036, -0.265239, 0.957175, -0.762496, 0.642333, 0.077514, 0.557787, 0.353629,\n0.230970, 0.415735, 0.154329, 0.463399, 0.831489, 0.306409, -0.145438, -0.269724, 0.951891, -0.874467, 0.485046, 0.006256, 0.562811, 0.276478,\n0.426777, -0.191342, 0.176777, 0.841547, -0.382538, 0.381396, -0.522734, -0.398698, 0.753518, 0.129870, 0.828618, 0.544542, 0.624302, 0.722914,\n0.384089, -0.277785, 0.159095, 0.765567, -0.567205, 0.303621, -0.587098, -0.422928, 0.690253, 0.273964, 0.714423, 0.643850, 0.642782, 0.781431,\n0.345671, -0.277785, 0.230970, 0.692311, -0.555607, 0.460442, -0.715184, -0.443416, 0.540273, 0.098946, 0.705151, 0.702119, 0.672735, 0.753249,\n0.326641, 0.353553, 0.135299, 0.635404, 0.720869, 0.276786, -0.116036, -0.265239, 0.957175, -0.762496, 0.642333, 0.077514, 0.557787, 0.353629,\n0.384089, 0.277785, 0.159095, 0.750900, 0.582587, 0.311034, -0.170456, -0.284039, 0.943540, -0.637258, 0.762804, 0.109690, 0.568840, 0.415192,\n0.293969, 0.353553, 0.196424, 0.591116, 0.697093, 0.405763, -0.254938, -0.315802, 0.913934, -0.765365, 0.643528, 0.009416, 0.579002, 0.334905,\n0.384089, -0.277785, 0.159095, 0.765567, -0.567205, 0.303621, -0.587098, -0.422928, 0.690253, 0.273964, 0.714423, 0.643850, 0.642782, 0.781431,\n0.326641, -0.353553, 0.135299, 0.635404, -0.720869, 0.276785, -0.732722, -0.449753, 0.510726, 0.255124, 0.534302, 0.805874, 0.669894, 0.836185,\n0.293969, -0.353553, 0.196424, 0.589174, -0.707137, 0.390937, -0.801426, -0.449803, 0.394199, 0.104128, 0.546243, 0.831129, 0.698089, 0.807023,\n0.384089, 0.277785, 0.159095, 0.750900, 0.582587, 0.311034, -0.170456, -0.284039, 0.943540, -0.637258, 0.762804, 0.109690, 0.568840, 0.415192,\n0.426777, 0.191342, 0.176777, 0.843230, 0.395637, 0.363915, -0.249378, -0.311815, 0.916833, -0.476120, 0.863962, 0.163949, 0.578878, 0.477160,\n0.345671, 0.277785, 0.230970, 0.706109, 0.528022, 0.471807, -0.336462, -0.336087, 0.879681, -0.627113, 0.775743, 0.070370, 0.592373, 0.394688,\n0.326641, -0.353553, 0.135299, 0.635404, -0.720869, 0.276785, -0.732722, -0.449753, 0.510726, 0.255124, 0.534302, 0.805874, 0.669894, 0.836185,\n0.256640, -0.415735, 0.106304, 0.505801, -0.839191, 0.199808, -0.855445, -0.458062, 0.241648, 0.051734, 0.260712, 0.964029, 0.713786, 0.882694,\n0.230970, -0.415735, 0.154329, 0.482375, -0.820324, 0.307218, -0.875306, -0.437791, 0.205375, 0.031552, 0.366764, 0.929779, 0.735745, 0.853787,\n0.426777, 0.191342, 0.176777, 0.843230, 0.395637, 0.363915, -0.249378, -0.311815, 0.916833, -0.476120, 0.863962, 0.163949, 0.578878, 0.477160,\n0.453064, 0.097545, 0.187665, 0.917971, 0.195006, 0.345401, -0.273171, -0.320559, 0.906984, -0.287255, 0.927329, 0.239888, 0.588664, 0.539227,\n0.407747, 0.097545, 0.272447, 0.832947, 0.195006, 0.517853, -0.426367, -0.370351, 0.825258, -0.352234, 0.908612, 0.224402, 0.615573, 0.515927,\n0.407747, -0.277785, 0.081106, 0.820488, -0.555401, 0.135385, -0.388731, -0.368416, 0.844487, 0.417575, 0.744024, 0.521593, 0.609075, 0.807270,\n0.346760, -0.353553, 0.068975, 0.688774, -0.706948, 0.160670, -0.589351, -0.416932, 0.691978, 0.406980, 0.560448, 0.721294, 0.636789, 0.864121,\n0.384089, -0.277785, 0.159095, 0.765567, -0.567205, 0.303621, -0.587098, -0.422928, 0.690253, 0.273964, 0.714423, 0.643850, 0.642782, 0.781431,\n0.407747, 0.277785, 0.081106, 0.815119, 0.555607, 0.163958, -0.041973, -0.225641, 0.973306, -0.578069, 0.798528, 0.167894, 0.545057, 0.432130,\n0.453064, 0.191342, 0.090120, 0.905876, 0.382712, 0.181440, -0.088455, -0.247989, 0.964716, -0.414697, 0.888549, 0.196233, 0.553039, 0.495510,\n0.426777, 0.191342, 0.176777, 0.843230, 0.395637, 0.363915, -0.249378, -0.311815, 0.916833, -0.476120, 0.863962, 0.163949, 0.578878, 0.477160,\n0.346760, -0.353553, 0.068975, 0.688774, -0.706948, 0.160670, -0.589351, -0.416932, 0.691978, 0.406980, 0.560448, 0.721294, 0.636789, 0.864121,\n0.272448, -0.415735, 0.054193, 0.548328, -0.831354, 0.090477, -0.759805, -0.450075, 0.469179, 0.307801, 0.301235, 0.902505, 0.687796, 0.912014,\n0.256640, -0.415735, 0.106304, 0.505801, -0.839191, 0.199808, -0.855445, -0.458062, 0.241648, 0.051734, 0.260712, 0.964029, 0.713786, 0.882694,\n0.453064, 0.191342, 0.090120, 0.905876, 0.382712, 0.181440, -0.088455, -0.247989, 0.964716, -0.414697, 0.888549, 0.196233, 0.553039, 0.495510,\n0.480970, 0.097545, 0.095671, 0.967717, 0.195006, 0.159677, -0.106435, -0.258093, 0.960239, -0.227764, 0.947900, 0.222730, 0.560981, 0.558903,\n0.453064, 0.097545, 0.187665, 0.917971, 0.195006, 0.345401, -0.273171, -0.320559, 0.906984, -0.287255, 0.927329, 0.239888, 0.588664, 0.539227,\n0.272448, -0.415735, 0.054193, 0.548328, -0.831354, 0.090477, -0.759805, -0.450075, 0.469179, 0.307801, 0.301235, 0.902505, 0.687796, 0.912014,\n0.187665, -0.461940, 0.037329, 0.361208, -0.929163, 0.078641, -0.930186, -0.364953, -0.039539, -0.049843, 0.064976, 0.996641, 0.780385, 0.935456,\n0.256640, -0.415735, 0.106304, 0.505801, -0.839191, 0.199808, -0.855445, -0.458062, 0.241648, 0.051734, 0.260712, 0.964029, 0.713786, 0.882694,\n0.480970, 0.097545, 0.095671, 0.967717, 0.195006, 0.159677, -0.106435, -0.258093, 0.960239, -0.227764, 0.947900, 0.222730, 0.560981, 0.558903,\n0.490393, 0.000000, 0.097545, 0.973856, 0.000000, 0.227166, -0.216729, -0.299626, 0.929114, -0.069516, 0.952027, 0.298015, 0.569479, 0.622121,\n0.453064, 0.097545, 0.187665, 0.917971, 0.195006, 0.345401, -0.273171, -0.320559, 0.906984, -0.287255, 0.927329, 0.239888, 0.588664, 0.539227,\n0.095671, 0.490393, 0.019030, 0.222787, 0.973859, 0.044314, 0.222436, -0.095039, 0.970304, -0.937833, 0.201692, 0.282472, 0.495010, 0.184398,\n0.187665, 0.461940, 0.037329, 0.394878, 0.916136, 0.069037, 0.150979, -0.138830, 0.978740, -0.900394, 0.370962, 0.227325, 0.513410, 0.244425,\n0.176777, 0.461940, 0.073223, 0.344025, 0.929163, 0.135289, 0.104990, -0.181246, 0.977818, -0.933849, 0.323568, 0.152413, 0.527662, 0.233762,\n0.187665, -0.461940, 0.037329, 0.361208, -0.929163, 0.078641, -0.804954, -0.353269, -0.476707, -0.587712, -0.161370, 0.792814, 0.780385, 0.935456,\n0.095671, -0.490393, 0.019030, 0.191324, -0.980789, 0.038055, -0.769801, -0.173994, -0.614112, -0.685546, -0.105782, 0.720303, 0.878052, 0.917359,\n0.090120, -0.490393, 0.037329, 0.200230, -0.976741, 0.076720, -0.795149, -0.207753, -0.569716, -0.589941, -0.057676, 0.805384, 0.870555, 0.905851,\n0.490393, 0.000000, 0.097545, 0.973856, 0.000000, 0.227166, -0.216729, -0.299626, 0.929114, -0.069516, 0.952027, 0.298015, 0.569479, 0.622121,\n0.480970, -0.097545, 0.095671, 0.967717, -0.195006, 0.159677, -0.214521, -0.304707, 0.927973, 0.136665, 0.938306, 0.317654, 0.579306, 0.684921,\n0.453064, -0.097545, 0.187665, 0.917971, -0.195006, 0.345401, -0.394808, -0.365434, 0.842962, 0.044080, 0.915562, 0.399754, 0.610368, 0.662513,\n0.187665, 0.461940, 0.037329, 0.394878, 0.916136, 0.069037, 0.150979, -0.138830, 0.978740, -0.900394, 0.370962, 0.227325, 0.513410, 0.244425,\n0.272448, 0.415735, 0.054193, 0.545382, 0.831490, 0.105750, 0.084079, -0.179799, 0.980104, -0.834031, 0.525792, 0.167141, 0.526326, 0.306241,\n0.176777, 0.461940, 0.073223, 0.344025, 0.929163, 0.135289, 0.104990, -0.181246, 0.977818, -0.933849, 0.323568, 0.152413, 0.527662, 0.233762,\n0.480970, -0.097545, 0.095671, 0.967717, -0.195006, 0.159677, -0.214521, -0.304707, 0.927973, 0.136665, 0.938306, 0.317654, 0.579306, 0.684921,\n0.453064, -0.191342, 0.090120, 0.899784, -0.382537, 0.209889, -0.350426, -0.346922, 0.869969, 0.254532, 0.850869, 0.459603, 0.591705, 0.746902,\n0.453064, -0.097545, 0.187665, 0.917971, -0.195006, 0.345401, -0.394808, -0.365434, 0.842962, 0.044080, 0.915562, 0.399754, 0.610368, 0.662513,\n0.272448, 0.415735, 0.054193, 0.545382, 0.831490, 0.105750, 0.084079, -0.179799, 0.980104, -0.834031, 0.525792, 0.167141, 0.526326, 0.306241,\n0.346760, 0.353553, 0.068975, 0.688774, 0.706948, 0.160670, -0.005444, -0.216572, 0.976251, -0.724924, 0.674253, 0.140953, 0.536424, 0.368955,\n0.256640, 0.415735, 0.106304, 0.514273, 0.831489, 0.210118, -0.025383, -0.230135, 0.972828, -0.857217, 0.505928, 0.095995, 0.544655, 0.292902,\n0.453064, -0.191342, 0.090120, 0.899784, -0.382537, 0.209889, -0.350426, -0.346922, 0.869969, 0.254532, 0.850869, 0.459603, 0.591705, 0.746902,\n0.407747, -0.277785, 0.081106, 0.820488, -0.555401, 0.135385, -0.388731, -0.368416, 0.844487, 0.417575, 0.744024, 0.521593, 0.609075, 0.807270,\n0.384089, -0.277785, 0.159095, 0.765567, -0.567205, 0.303621, -0.587098, -0.422928, 0.690253, 0.273964, 0.714423, 0.643850, 0.642782, 0.781431,\n0.346760, 0.353553, 0.068975, 0.688774, 0.706948, 0.160670, -0.005444, -0.216572, 0.976251, -0.724924, 0.674253, 0.140953, 0.536424, 0.368955,\n0.407747, 0.277785, 0.081106, 0.815119, 0.555607, 0.163958, -0.041973, -0.225641, 0.973306, -0.578069, 0.798528, 0.167894, 0.545057, 0.432130,\n0.384089, 0.277785, 0.159095, 0.750900, 0.582587, 0.311034, -0.170456, -0.284039, 0.943540, -0.637258, 0.762804, 0.109690, 0.568840, 0.415192,\n0.191342, 0.461940, -0.000000, 0.352136, 0.935949, 0.000000, 0.255192, -0.096012, 0.962112, -0.902615, 0.339595, 0.264501, 0.498880, 0.252406,\n0.277785, 0.415735, -0.000000, 0.543761, 0.839192, -0.008964, 0.204389, -0.122060, 0.971250, -0.814058, 0.530012, 0.237479, 0.507822, 0.316262,\n0.187665, 0.461940, 0.037329, 0.394878, 0.916136, 0.069037, 0.150979, -0.138830, 0.978740, -0.900394, 0.370962, 0.227325, 0.513410, 0.244425,\n0.490393, -0.097545, -0.000000, 0.980274, -0.195005, -0.032182, -0.013067, -0.226420, 0.973942, 0.197399, 0.957908, 0.208438, 0.546288, 0.702787,\n0.461940, -0.191342, -0.000000, 0.923442, -0.382538, 0.030317, -0.144235, -0.272797, 0.951198, 0.352860, 0.877533, 0.324693, 0.556083, 0.766452,\n0.480970, -0.097545, 0.095671, 0.967717, -0.195006, 0.159677, -0.214521, -0.304707, 0.927973, 0.136665, 0.938306, 0.317654, 0.579306, 0.684921,\n0.277785, 0.415735, -0.000000, 0.543761, 0.839192, -0.008964, 0.204389, -0.122060, 0.971250, -0.814058, 0.530012, 0.237479, 0.507822, 0.316262,\n0.353554, 0.353553, -0.000000, 0.706884, 0.706949, 0.023206, 0.125175, -0.157319, 0.979582, -0.696682, 0.690197, 0.195606, 0.514875, 0.380541,\n0.272448, 0.415735, 0.054193, 0.545382, 0.831490, 0.105750, 0.084079, -0.179799, 0.980104, -0.834031, 0.525792, 0.167141, 0.526326, 0.306241,\n0.461940, -0.191342, -0.000000, 0.923442, -0.382538, 0.030317, -0.144235, -0.272797, 0.951198, 0.352860, 0.877533, 0.324693, 0.556083, 0.766452,\n0.415735, -0.277785, -0.000000, 0.831136, -0.555400, -0.027288, -0.161499, -0.288052, 0.943898, 0.537566, 0.789958, 0.294938, 0.570592, 0.829046,\n0.407747, -0.277785, 0.081106, 0.820488, -0.555401, 0.135385, -0.388731, -0.368416, 0.844487, 0.417575, 0.744024, 0.521593, 0.609075, 0.807270,\n0.353554, 0.353553, -0.000000, 0.706884, 0.706949, 0.023206, 0.125175, -0.157319, 0.979582, -0.696682, 0.690197, 0.195606, 0.514875, 0.380541,\n0.415735, 0.277785, -0.000000, 0.831444, 0.555606, 0.001784, 0.106358, -0.162310, 0.980991, -0.544500, 0.814178, 0.201579, 0.520977, 0.445030,\n0.407747, 0.277785, 0.081106, 0.815119, 0.555607, 0.163958, -0.041973, -0.225641, 0.973306, -0.578069, 0.798528, 0.167894, 0.545057, 0.432130,\n0.415735, -0.277785, -0.000000, 0.831136, -0.555400, -0.027288, -0.161499, -0.288052, 0.943898, 0.537566, 0.789958, 0.294938, 0.570592, 0.829046,\n0.353554, -0.353553, -0.000000, 0.706884, -0.706949, 0.023206, -0.388828, -0.360967, 0.847653, 0.573742, 0.592259, 0.565729, 0.596152, 0.889050,\n0.407747, -0.277785, 0.081106, 0.820488, -0.555401, 0.135385, -0.388731, -0.368416, 0.844487, 0.417575, 0.744024, 0.521593, 0.609075, 0.807270,\n0.415735, 0.277785, -0.000000, 0.831444, 0.555606, 0.001784, 0.106358, -0.162310, 0.980991, -0.544500, 0.814178, 0.201579, 0.520977, 0.445030,\n0.461940, 0.191342, -0.000000, 0.929088, 0.369649, -0.012471, 0.083053, -0.175655, 0.980942, -0.360348, 0.912280, 0.194666, 0.526697, 0.509604,\n0.453064, 0.191342, 0.090120, 0.905876, 0.382712, 0.181440, -0.088455, -0.247989, 0.964716, -0.414697, 0.888549, 0.196233, 0.553039, 0.495510,\n0.353554, -0.353553, -0.000000, 0.706884, -0.706949, 0.023206, -0.388828, -0.360967, 0.847653, 0.573742, 0.592259, 0.565729, 0.596152, 0.889050,\n0.277785, -0.415735, -0.000000, 0.555444, -0.831354, -0.018237, -0.598101, -0.414648, 0.685815, 0.586529, 0.376136, 0.717290, 0.653363, 0.940796,\n0.272448, -0.415735, 0.054193, 0.548328, -0.831354, 0.090477, -0.759805, -0.450075, 0.469179, 0.307801, 0.301235, 0.902505, 0.687796, 0.912014,\n0.461940, 0.191342, -0.000000, 0.929088, 0.369649, -0.012471, 0.083053, -0.175655, 0.980942, -0.360348, 0.912280, 0.194666, 0.526697, 0.509604,\n0.490393, 0.097545, -0.000000, 0.984244, 0.175718, -0.019687, 0.053867, -0.191932, 0.979929, -0.168970, 0.967514, 0.188060, 0.532482, 0.574164,\n0.480970, 0.097545, 0.095671, 0.967717, 0.195006, 0.159677, -0.106435, -0.258093, 0.960239, -0.227764, 0.947900, 0.222730, 0.560981, 0.558903,\n0.277785, -0.415735, -0.000000, 0.555444, -0.831354, -0.018237, -0.598101, -0.414648, 0.685815, 0.586529, 0.376136, 0.717290, 0.653363, 0.940796,\n0.191342, -0.461940, -0.000000, 0.382652, -0.923888, 0.002983, -0.883013, -0.364769, 0.295351, 0.059284, 0.027776, 0.997855, 0.782721, 0.960585,\n0.272448, -0.415735, 0.054193, 0.548328, -0.831354, 0.090477, -0.759805, -0.450075, 0.469179, 0.307801, 0.301235, 0.902505, 0.687796, 0.912014,\n0.490393, 0.097545, -0.000000, 0.984244, 0.175718, -0.019687, 0.053867, -0.191932, 0.979929, -0.168970, 0.967514, 0.188060, 0.532482, 0.574164,\n0.500000, 0.000000, -0.000000, 0.999461, -0.000000, 0.032814, -0.031958, -0.226843, 0.973407, -0.007702, 0.972059, 0.234608, 0.538797, 0.638607,\n0.480970, 0.097545, 0.095671, 0.967717, 0.195006, 0.159677, -0.106435, -0.258093, 0.960239, -0.227764, 0.947900, 0.222730, 0.560981, 0.558903,\n0.097545, 0.490393, -0.000000, 0.195071, 0.980789, -0.000000, 0.311436, -0.061942, 0.948246, -0.926912, 0.184355, 0.326876, 0.486168, 0.189402,\n0.191342, 0.461940, -0.000000, 0.352136, 0.935949, 0.000000, 0.255192, -0.096012, 0.962112, -0.902615, 0.339595, 0.264501, 0.498880, 0.252406,\n0.095671, 0.490393, 0.019030, 0.222787, 0.973859, 0.044314, 0.222436, -0.095039, 0.970304, -0.937833, 0.201692, 0.282472, 0.495010, 0.184398,\n0.191342, -0.461940, -0.000000, 0.382652, -0.923888, 0.002983, -0.784059, -0.326443, -0.527908, -0.293899, -0.118664, 0.948442, 0.782721, 0.960585,\n0.097545, -0.490393, -0.000000, 0.214348, -0.976741, 0.005744, -0.829297, -0.185092, -0.527265, -0.384625, -0.078998, 0.919686, 0.890236, 0.927070,\n0.187665, -0.461940, 0.037329, 0.361208, -0.929163, 0.078641, -0.930186, -0.364953, -0.039539, -0.049843, 0.064976, 0.996641, 0.780385, 0.935456,\n0.500000, 0.000000, -0.000000, 0.999461, -0.000000, 0.032814, -0.031958, -0.226843, 0.973407, -0.007702, 0.972059, 0.234608, 0.538797, 0.638607,\n0.490393, -0.097545, -0.000000, 0.980274, -0.195005, -0.032182, -0.013067, -0.226420, 0.973942, 0.197399, 0.957908, 0.208438, 0.546288, 0.702787,\n0.480970, -0.097545, 0.095671, 0.967717, -0.195006, 0.159677, -0.214521, -0.304707, 0.927973, 0.136665, 0.938306, 0.317654, 0.579306, 0.684921,\n0.453064, 0.191342, -0.090120, 0.895005, 0.400772, -0.195824, 0.253101, -0.094792, 0.962785, -0.366434, 0.910934, 0.189538, 0.499915, 0.518924,\n0.480970, 0.097545, -0.095671, 0.956310, 0.208865, -0.204562, 0.230483, -0.108168, 0.967046, -0.181699, 0.972781, 0.143816, 0.503275, 0.584332,\n0.461940, 0.191342, -0.000000, 0.929088, 0.369649, -0.012471, 0.083053, -0.175655, 0.980942, -0.360348, 0.912280, 0.194666, 0.526697, 0.509604,\n0.272448, -0.415735, -0.054193, 0.541214, -0.831354, -0.126245, -0.577114, -0.476427, 0.663292, 0.616148, 0.289905, 0.732337, 0.599170, 0.966771,\n0.187665, -0.461940, -0.037329, 0.394878, -0.916136, -0.069037, -0.777232, -0.373182, 0.506602, 0.502732, 0.152571, 0.850872, 0.803866, 0.984622,\n0.277785, -0.415735, -0.000000, 0.555444, -0.831354, -0.018237, -0.598101, -0.414648, 0.685815, 0.586529, 0.376136, 0.717290, 0.653363, 0.940796,\n0.480970, 0.097545, -0.095671, 0.956310, 0.208865, -0.204562, 0.230483, -0.108168, 0.967046, -0.181699, 0.972781, 0.143816, 0.503275, 0.584332,\n0.490393, 0.000000, -0.097545, 0.986659, -0.000000, -0.162803, 0.161158, -0.141797, 0.976689, 0.024489, 0.988622, 0.148412, 0.506995, 0.649694,\n0.490393, 0.097545, -0.000000, 0.984244, 0.175718, -0.019687, 0.053867, -0.191932, 0.979929, -0.168970, 0.967514, 0.188060, 0.532482, 0.574164,\n0.095671, 0.490393, -0.019030, 0.222787, 0.973859, -0.044314, 0.347838, -0.036945, 0.936826, -0.900239, 0.222962, 0.373975, 0.477031, 0.192654,\n0.187665, 0.461940, -0.037329, 0.404835, 0.910837, -0.080527, 0.316484, -0.056952, 0.946887, -0.851624, 0.407647, 0.329487, 0.484155, 0.257585,\n0.191342, 0.461940, -0.000000, 0.352136, 0.935949, 0.000000, 0.255192, -0.096012, 0.962112, -0.902615, 0.339595, 0.264501, 0.498880, 0.252406,\n0.187665, -0.461940, -0.037329, 0.394878, -0.916136, -0.069037, -0.792255, -0.301506, -0.530496, -0.466512, -0.264678, 0.843986, 0.803866, 0.984622,\n0.095671, -0.490393, -0.019030, 0.222787, -0.973859, -0.044314, -0.711124, -0.131252, -0.690706, -0.669132, -0.185817, 0.719538, 0.907224, 0.934025,\n0.191342, -0.461940, -0.000000, 0.382652, -0.923888, 0.002983, -0.784059, -0.326443, -0.527908, -0.293899, -0.118664, 0.948442, 0.782721, 0.960585,\n0.490393, 0.000000, -0.097545, 0.986659, -0.000000, -0.162803, 0.161158, -0.141797, 0.976689, 0.024489, 0.988622, 0.148412, 0.506995, 0.649694,\n0.480970, -0.097545, -0.095671, 0.955160, -0.195006, -0.222807, 0.199646, -0.131542, 0.970999, 0.212424, 0.975523, 0.056846, 0.511490, 0.714959,\n0.490393, -0.097545, -0.000000, 0.980274, -0.195005, -0.032182, -0.013067, -0.226420, 0.973942, 0.197399, 0.957908, 0.208438, 0.546288, 0.702787,\n0.187665, 0.461940, -0.037329, 0.404835, 0.910837, -0.080527, 0.316484, -0.056952, 0.946887, -0.851624, 0.407647, 0.329487, 0.484155, 0.257585,\n0.272448, 0.415735, -0.054193, 0.558327, 0.820324, -0.123852, 0.303124, -0.062748, 0.950883, -0.767142, 0.567331, 0.299381, 0.489174, 0.322784,\n0.277785, 0.415735, -0.000000, 0.543761, 0.839192, -0.008964, 0.204389, -0.122060, 0.971250, -0.814058, 0.530012, 0.237479, 0.507822, 0.316262,\n0.480970, -0.097545, -0.095671, 0.955160, -0.195006, -0.222807, 0.199646, -0.131542, 0.970999, 0.212424, 0.975523, 0.056846, 0.511490, 0.714959,\n0.453064, -0.191342, -0.090120, 0.911613, -0.382537, -0.150420, 0.087633, -0.176658, 0.980363, 0.403254, 0.903220, 0.146900, 0.517534, 0.780027,\n0.490393, -0.097545, -0.000000, 0.980274, -0.195005, -0.032182, -0.013067, -0.226420, 0.973942, 0.197399, 0.957908, 0.208438, 0.546288, 0.702787,\n0.272448, 0.415735, -0.054193, 0.558327, 0.820324, -0.123852, 0.303124, -0.062748, 0.950883, -0.767142, 0.567331, 0.299381, 0.489174, 0.322784,\n0.346760, 0.353553, -0.068975, 0.704900, 0.697093, -0.131065, 0.265510, -0.087972, 0.960086, -0.658164, 0.711704, 0.245557, 0.493157, 0.388113,\n0.277785, 0.415735, -0.000000, 0.543761, 0.839192, -0.008964, 0.204389, -0.122060, 0.971250, -0.814058, 0.530012, 0.237479, 0.507822, 0.316262,\n0.453064, -0.191342, -0.090120, 0.911613, -0.382537, -0.150420, 0.087633, -0.176658, 0.980363, 0.403254, 0.903220, 0.146900, 0.517534, 0.780027,\n0.407747, -0.277785, -0.081106, 0.822514, -0.539042, -0.181394, 0.098463, -0.179163, 0.978880, 0.559041, 0.824922, 0.083529, 0.526914, 0.844671,\n0.415735, -0.277785, -0.000000, 0.831136, -0.555400, -0.027288, -0.161499, -0.288052, 0.943898, 0.537566, 0.789958, 0.294938, 0.570592, 0.829046,\n0.346760, 0.353553, -0.068975, 0.704900, 0.697093, -0.131065, 0.265510, -0.087972, 0.960086, -0.658164, 0.711704, 0.245557, 0.493157, 0.388113,\n0.407747, 0.277785, -0.081106, 0.829321, 0.539042, -0.147176, 0.236915, -0.100664, 0.966301, -0.504913, 0.835747, 0.215849, 0.496629, 0.453507,\n0.415735, 0.277785, -0.000000, 0.831444, 0.555606, 0.001784, 0.106358, -0.162310, 0.980991, -0.544500, 0.814178, 0.201579, 0.520977, 0.445030,\n0.407747, -0.277785, -0.081106, 0.822514, -0.539042, -0.181394, 0.098463, -0.179163, 0.978880, 0.559041, 0.824922, 0.083529, 0.526914, 0.844671,\n0.346760, -0.353553, -0.068975, 0.704900, -0.697093, -0.131065, -0.060717, -0.243402, 0.968023, 0.702873, 0.661647, 0.261136, 0.545138, 0.908176,\n0.415735, -0.277785, -0.000000, 0.831136, -0.555400, -0.027288, -0.161499, -0.288052, 0.943898, 0.537566, 0.789958, 0.294938, 0.570592, 0.829046,\n0.407747, 0.277785, -0.081106, 0.829321, 0.539042, -0.147176, 0.236915, -0.100664, 0.966301, -0.504913, 0.835747, 0.215849, 0.496629, 0.453507,\n0.453064, 0.191342, -0.090120, 0.895005, 0.400772, -0.195824, 0.253101, -0.094792, 0.962785, -0.366434, 0.910934, 0.189538, 0.499915, 0.518924,\n0.461940, 0.191342, -0.000000, 0.929088, 0.369649, -0.012471, 0.083053, -0.175655, 0.980942, -0.360348, 0.912280, 0.194666, 0.526697, 0.509604,\n0.346760, -0.353553, -0.068975, 0.704900, -0.697093, -0.131065, -0.060717, -0.243402, 0.968023, 0.702873, 0.661647, 0.261136, 0.545138, 0.908176,\n0.272448, -0.415735, -0.054193, 0.541214, -0.831354, -0.126245, -0.577114, -0.476427, 0.663292, 0.616148, 0.289905, 0.732337, 0.599170, 0.966771,\n0.277785, -0.415735, -0.000000, 0.555444, -0.831354, -0.018237, -0.598101, -0.414648, 0.685815, 0.586529, 0.376136, 0.717290, 0.653363, 0.940796,\n0.426777, -0.191342, -0.176777, 0.864751, -0.382538, -0.325378, 0.324072, -0.069888, 0.943447, 0.386897, 0.920540, -0.054003, 0.476902, 0.786308,\n0.384089, -0.277785, -0.159095, 0.767470, -0.555607, -0.319829, 0.341734, -0.067542, 0.937366, 0.539164, 0.829297, -0.146864, 0.479145, 0.852075,\n0.407747, -0.277785, -0.081106, 0.822514, -0.539042, -0.181394, 0.098463, -0.179163, 0.978880, 0.559041, 0.824922, 0.083529, 0.526914, 0.844671,\n0.326641, 0.353553, -0.135299, 0.631468, 0.729955, -0.261563, 0.398337, -0.015971, 0.917100, -0.663967, 0.683254, 0.303830, 0.471329, 0.391486,\n0.384089, 0.277785, -0.159095, 0.765567, 0.567205, -0.303621, 0.385074, -0.025920, 0.922522, -0.514652, 0.823117, 0.240024, 0.472108, 0.457294,\n0.346760, 0.353553, -0.068975, 0.704900, 0.697093, -0.131065, 0.265510, -0.087972, 0.960086, -0.658164, 0.711704, 0.245557, 0.493157, 0.388113,\n0.384089, -0.277785, -0.159095, 0.767470, -0.555607, -0.319829, 0.341734, -0.067542, 0.937366, 0.539164, 0.829297, -0.146864, 0.479145, 0.852075,\n0.326641, -0.353553, -0.135299, 0.652380, -0.707137, -0.272688, 0.291421, -0.098085, 0.951553, 0.697056, 0.701070, -0.150380, 0.483764, 0.917774,\n0.346760, -0.353553, -0.068975, 0.704900, -0.697093, -0.131065, -0.060717, -0.243402, 0.968023, 0.702873, 0.661647, 0.261136, 0.545138, 0.908176,\n0.384089, 0.277785, -0.159095, 0.765567, 0.567205, -0.303621, 0.385074, -0.025920, 0.922522, -0.514652, 0.823117, 0.240024, 0.472108, 0.457294,\n0.426777, 0.191342, -0.176777, 0.854011, 0.382713, -0.352415, 0.390777, -0.024696, 0.920154, -0.341723, 0.923419, 0.174708, 0.472849, 0.523103,\n0.453064, 0.191342, -0.090120, 0.895005, 0.400772, -0.195824, 0.253101, -0.094792, 0.962785, -0.366434, 0.910934, 0.189538, 0.499915, 0.518924,\n0.326641, -0.353553, -0.135299, 0.652380, -0.707137, -0.272688, 0.291421, -0.098085, 0.951553, 0.697056, 0.701070, -0.150380, 0.483764, 0.917774,\n0.256640, -0.415735, -0.106304, 0.506185, -0.831354, -0.229408, 0.269357, -0.100298, 0.957803, 0.774420, 0.555220, -0.303324, 0.501545, 0.983100,\n0.272448, -0.415735, -0.054193, 0.541214, -0.831354, -0.126245, -0.017698, -0.161362, 0.986737, 0.836185, 0.547940, -0.023580, 0.599170, 0.966771,\n0.426777, 0.191342, -0.176777, 0.854011, 0.382713, -0.352415, 0.390777, -0.024696, 0.920154, -0.341723, 0.923419, 0.174708, 0.472849, 0.523103,\n0.453064, 0.097545, -0.187665, 0.893339, 0.195006, -0.404867, 0.415526, -0.015381, 0.909451, -0.176002, 0.980795, 0.084056, 0.473610, 0.588911,\n0.480970, 0.097545, -0.095671, 0.956310, 0.208865, -0.204562, 0.230483, -0.108168, 0.967046, -0.181699, 0.972781, 0.143816, 0.503275, 0.584332,\n0.256640, -0.415735, -0.106304, 0.506185, -0.831354, -0.229408, -0.451833, -0.482215, 0.750544, 0.634834, 0.179131, 0.751597, 0.501545, 0.983100,\n0.176777, -0.461940, -0.073223, 0.358305, -0.923819, -0.134817, -0.532949, -0.320959, 0.782912, 0.645968, 0.141057, 0.750219, 0.889443, 1.002041,\n0.272448, -0.415735, -0.054193, 0.541214, -0.831354, -0.126245, -0.577114, -0.476427, 0.663292, 0.616148, 0.289905, 0.732337, 0.599170, 0.966771,\n0.453064, 0.097545, -0.187665, 0.893339, 0.195006, -0.404867, 0.415526, -0.015381, 0.909451, -0.176002, 0.980795, 0.084056, 0.473610, 0.588911,\n0.461940, 0.000000, -0.191342, 0.935939, 0.000000, -0.352163, 0.351751, -0.048347, 0.934844, 0.019938, 0.998396, 0.052990, 0.474458, 0.654717,\n0.480970, 0.097545, -0.095671, 0.956310, 0.208865, -0.204562, 0.230483, -0.108168, 0.967046, -0.181699, 0.972781, 0.143816, 0.503275, 0.584332,\n0.090120, 0.490393, -0.037329, 0.195833, 0.976741, -0.087334, 0.421336, -0.003387, 0.906898, -0.880226, 0.214339, 0.423392, 0.467730, 0.194097,\n0.176777, 0.461940, -0.073223, 0.338842, 0.931233, -0.134132, 0.405589, -0.015942, 0.913916, -0.849791, 0.364109, 0.381156, 0.469318, 0.259882,\n0.095671, 0.490393, -0.019030, 0.222787, 0.973859, -0.044314, 0.347838, -0.036945, 0.936826, -0.900239, 0.222962, 0.373975, 0.477031, 0.192654,\n0.176777, -0.461940, -0.073223, 0.358305, -0.923819, -0.134817, -0.538038, -0.086314, -0.838490, -0.726213, -0.366540, 0.581604, 0.889443, 1.002041,\n0.090120, -0.490393, -0.037329, 0.195833, -0.976741, -0.087334, -0.450755, -0.010566, -0.892585, -0.819615, -0.211923, 0.532278, 0.927836, 0.937310,\n0.095671, -0.490393, -0.019030, 0.222787, -0.973859, -0.044314, -0.711124, -0.131252, -0.690706, -0.669132, -0.185817, 0.719538, 0.907224, 0.934025,\n0.461940, 0.000000, -0.191342, 0.935939, 0.000000, -0.352163, 0.351751, -0.048347, 0.934844, 0.019938, 0.998396, 0.052990, 0.474458, 0.654717,\n0.453064, -0.097545, -0.187665, 0.893339, -0.195006, -0.404867, 0.407862, -0.026395, 0.912662, 0.175367, 0.980788, -0.085453, 0.475493, 0.720518,\n0.480970, -0.097545, -0.095671, 0.955160, -0.195006, -0.222807, 0.199646, -0.131542, 0.970999, 0.212424, 0.975523, 0.056846, 0.511490, 0.714959,\n0.176777, 0.461940, -0.073223, 0.338842, 0.931233, -0.134132, 0.405589, -0.015942, 0.913916, -0.849791, 0.364109, 0.381156, 0.469318, 0.259882,\n0.256640, 0.415735, -0.106304, 0.487769, 0.849271, -0.202041, 0.403795, -0.014299, 0.914738, -0.773018, 0.527728, 0.352059, 0.470438, 0.325681,\n0.187665, 0.461940, -0.037329, 0.404835, 0.910837, -0.080527, 0.316484, -0.056952, 0.946887, -0.851624, 0.407647, 0.329487, 0.484155, 0.257585,\n0.453064, -0.097545, -0.187665, 0.893339, -0.195006, -0.404867, 0.407862, -0.026395, 0.912662, 0.175367, 0.980788, -0.085453, 0.475493, 0.720518,\n0.426777, -0.191342, -0.176777, 0.864751, -0.382538, -0.325378, 0.324072, -0.069888, 0.943447, 0.386897, 0.920540, -0.054003, 0.476902, 0.786308,\n0.480970, -0.097545, -0.095671, 0.955160, -0.195006, -0.222807, 0.199646, -0.131542, 0.970999, 0.212424, 0.975523, 0.056846, 0.511490, 0.714959,\n0.256640, 0.415735, -0.106304, 0.487769, 0.849271, -0.202041, 0.403795, -0.014299, 0.914738, -0.773018, 0.527728, 0.352059, 0.470438, 0.325681,\n0.326641, 0.353553, -0.135299, 0.631468, 0.729955, -0.261563, 0.398337, -0.015971, 0.917100, -0.663967, 0.683254, 0.303830, 0.471329, 0.391486,\n0.272448, 0.415735, -0.054193, 0.558327, 0.820324, -0.123852, 0.303124, -0.062748, 0.950883, -0.767142, 0.567331, 0.299381, 0.489174, 0.322784,\n0.159095, -0.461940, -0.106304, 0.325118, -0.923819, -0.202130, -0.265505, 0.115975, -0.957109, -0.936279, -0.344503, 0.068552, 1.028460, 0.996322,\n0.081106, -0.490393, -0.054193, 0.175033, -0.976741, -0.123861, -0.276227, 0.072033, -0.958389, -0.976416, -0.188355, 0.105515, 0.949381, 0.936409,\n0.090120, -0.490393, -0.037329, 0.195833, -0.976741, -0.087334, -0.401853, 0.001306, -0.915703, -0.978702, -0.189077, -0.079958, 0.927836, 0.937310,\n0.415735, 0.000000, -0.277785, 0.849251, 0.000000, -0.527989, 0.527365, 0.048626, 0.848246, -0.022230, 0.999113, -0.035756, 0.441746, 0.653353,\n0.407747, -0.097545, -0.272448, 0.797188, -0.195005, -0.571371, 0.593675, 0.081183, 0.800599, 0.091707, 0.974530, -0.204648, 0.439204, 0.719005,\n0.453064, -0.097545, -0.187665, 0.893339, -0.195006, -0.404867, 0.407862, -0.026395, 0.912662, 0.175367, 0.980788, -0.085453, 0.475493, 0.720518,\n0.159095, 0.461940, -0.106304, 0.325118, 0.923819, -0.202130, 0.475092, 0.025251, 0.879574, -0.820328, 0.381848, 0.425740, 0.454457, 0.259262,\n0.230970, 0.415735, -0.154329, 0.467879, 0.823575, -0.320645, 0.507932, 0.046326, 0.860151, -0.720709, 0.565537, 0.400932, 0.451681, 0.324898,\n0.256640, 0.415735, -0.106304, 0.487769, 0.849271, -0.202041, 0.403795, -0.014299, 0.914738, -0.773018, 0.527728, 0.352059, 0.470438, 0.325681,\n0.407747, -0.097545, -0.272448, 0.797188, -0.195005, -0.571371, 0.593675, 0.081183, 0.800599, 0.091707, 0.974530, -0.204648, 0.439204, 0.719005,\n0.384089, -0.191342, -0.256640, 0.784657, -0.382539, -0.487829, 0.546746, 0.056122, 0.835415, 0.299008, 0.922862, -0.242733, 0.435752, 0.784594,\n0.453064, -0.097545, -0.187665, 0.893339, -0.195006, -0.404867, 0.407862, -0.026395, 0.912662, 0.175367, 0.980788, -0.085453, 0.475493, 0.720518,\n0.230970, 0.415735, -0.154329, 0.467879, 0.823575, -0.320645, 0.507932, 0.046326, 0.860151, -0.720709, 0.565537, 0.400932, 0.451681, 0.324898,\n0.293969, 0.353553, -0.196424, 0.606889, 0.683554, -0.405511, 0.515943, 0.049265, 0.855205, -0.604310, 0.728259, 0.323186, 0.449475, 0.390573,\n0.326641, 0.353553, -0.135299, 0.631468, 0.729955, -0.261563, 0.398337, -0.015971, 0.917100, -0.663967, 0.683254, 0.303830, 0.471329, 0.391486,\n0.384089, -0.191342, -0.256640, 0.784657, -0.382539, -0.487829, 0.546746, 0.056122, 0.835415, 0.299008, 0.922862, -0.242733, 0.435752, 0.784594,\n0.345671, -0.277785, -0.230970, 0.690329, -0.555606, -0.463409, 0.598747, 0.079171, 0.797016, 0.401473, 0.827027, -0.393504, 0.430299, 0.850042,\n0.384089, -0.277785, -0.159095, 0.767470, -0.555607, -0.319829, 0.341734, -0.067542, 0.937366, 0.539164, 0.829297, -0.146864, 0.479145, 0.852075,\n0.293969, 0.353553, -0.196424, 0.606889, 0.683554, -0.405511, 0.515943, 0.049265, 0.855205, -0.604310, 0.728259, 0.323186, 0.449475, 0.390573,\n0.345671, 0.277785, -0.230970, 0.709871, 0.539041, -0.453341, 0.512783, 0.045711, 0.857301, -0.482277, 0.841088, 0.244909, 0.447546, 0.456269,\n0.384089, 0.277785, -0.159095, 0.765567, 0.567205, -0.303621, 0.385074, -0.025920, 0.922522, -0.514652, 0.823117, 0.240024, 0.472108, 0.457294,\n0.345671, -0.277785, -0.230970, 0.690329, -0.555606, -0.463409, 0.598747, 0.079171, 0.797016, 0.401473, 0.827027, -0.393504, 0.430299, 0.850042,\n0.293969, -0.353553, -0.196424, 0.586645, -0.707137, -0.394721, 0.638981, 0.104722, 0.762061, 0.490459, 0.698079, -0.521666, 0.419256, 0.915096,\n0.326641, -0.353553, -0.135299, 0.652380, -0.707137, -0.272688, 0.291421, -0.098085, 0.951553, 0.697056, 0.701070, -0.150380, 0.483764, 0.917774,\n0.345671, 0.277785, -0.230970, 0.709871, 0.539041, -0.453341, 0.512783, 0.045711, 0.857301, -0.482277, 0.841088, 0.244909, 0.447546, 0.456269,\n0.384089, 0.191342, -0.256640, 0.768848, 0.382715, -0.512251, 0.534081, 0.056154, 0.843567, -0.349360, 0.922386, 0.164774, 0.445715, 0.521971,\n0.426777, 0.191342, -0.176777, 0.854011, 0.382713, -0.352415, 0.390777, -0.024696, 0.920154, -0.341723, 0.923419, 0.174708, 0.472849, 0.523103,\n0.293969, -0.353553, -0.196424, 0.586645, -0.707137, -0.394721, 0.638981, 0.104722, 0.762061, 0.490459, 0.698079, -0.521666, 0.419256, 0.915096,\n0.230970, -0.415735, -0.154329, 0.451704, -0.831354, -0.323751, 0.744392, 0.151170, 0.650406, 0.464096, 0.528874, -0.710569, 0.380348, 0.978136,\n0.256640, -0.415735, -0.106304, 0.506185, -0.831354, -0.229408, 0.269357, -0.100298, 0.957803, 0.774420, 0.555220, -0.303324, 0.501545, 0.983100,\n0.384089, 0.191342, -0.256640, 0.768848, 0.382715, -0.512251, 0.534081, 0.056154, 0.843567, -0.349360, 0.922386, 0.164774, 0.445715, 0.521971,\n0.407747, 0.097545, -0.272448, 0.797188, 0.195005, -0.571371, 0.569117, 0.073123, 0.818999, -0.207816, 0.977197, 0.043561, 0.443836, 0.587669,\n0.453064, 0.097545, -0.187665, 0.893339, 0.195006, -0.404867, 0.415526, -0.015381, 0.909451, -0.176002, 0.980795, 0.084056, 0.473610, 0.588911,\n0.230970, -0.415735, -0.154329, 0.451704, -0.831354, -0.323751, -0.783851, -0.196509, -0.589035, 0.789340, 0.541532, -0.289286, 1.318419, 0.978136,\n0.159095, -0.461940, -0.106304, 0.325118, -0.923819, -0.202130, -0.797343, -0.152863, -0.583846, 0.862239, 0.377366, -0.337843, 1.028460, 0.996322,\n0.256640, -0.415735, -0.106304, 0.506185, -0.831354, -0.229408, -0.737198, -0.279051, -0.615362, 0.778159, 0.554952, -0.294104, 0.501545, 0.983100,\n0.407747, 0.097545, -0.272448, 0.797188, 0.195005, -0.571371, 0.569117, 0.073123, 0.818999, -0.207816, 0.977197, 0.043561, 0.443836, 0.587669,\n0.415735, 0.000000, -0.277785, 0.849251, 0.000000, -0.527989, 0.527365, 0.048626, 0.848246, -0.022230, 0.999113, -0.035756, 0.441746, 0.653353,\n0.453064, 0.097545, -0.187665, 0.893339, 0.195006, -0.404867, 0.415526, -0.015381, 0.909451, -0.176002, 0.980795, 0.084056, 0.473610, 0.588911,\n0.081106, 0.490393, -0.054193, 0.175033, 0.976740, -0.123861, 0.476286, 0.026103, 0.878903, -0.860138, 0.212914, 0.463497, 0.458394, 0.193707,\n0.159095, 0.461940, -0.106304, 0.325118, 0.923819, -0.202130, 0.475092, 0.025251, 0.879574, -0.820328, 0.381848, 0.425740, 0.454457, 0.259262,\n0.090120, 0.490393, -0.037329, 0.195833, 0.976741, -0.087334, 0.421336, -0.003387, 0.906898, -0.880226, 0.214339, 0.423392, 0.467730, 0.194097,\n0.250000, -0.353553, -0.250000, 0.498368, -0.707136, -0.501585, 0.855249, 0.306204, 0.418077, 0.156373, 0.642382, -0.750262, 0.361877, 0.900985,\n0.196424, -0.415735, -0.196424, 0.379865, -0.831354, -0.405652, 0.914855, 0.402534, 0.031733, -0.006948, 0.435946, -0.899946, 0.304204, 0.956342,\n0.230970, -0.415735, -0.154329, 0.451704, -0.831354, -0.323751, 0.744392, 0.151170, 0.650406, 0.464096, 0.528874, -0.710569, 0.380348, 0.978136,\n0.326641, 0.191342, -0.326641, 0.654139, 0.382714, -0.652405, 0.658861, 0.135319, 0.739994, -0.368423, 0.914522, 0.167075, 0.418746, 0.515574,\n0.346760, 0.097545, -0.346760, 0.670403, 0.195003, -0.715915, 0.698880, 0.158166, 0.697532, -0.255799, 0.966439, 0.023704, 0.414327, 0.580670,\n0.407747, 0.097545, -0.272448, 0.797188, 0.195005, -0.571371, 0.569117, 0.073123, 0.818999, -0.207816, 0.977197, 0.043561, 0.443836, 0.587669,\n0.196424, -0.415735, -0.196424, 0.379865, -0.831354, -0.405652, 0.914855, 0.402534, 0.031733, -0.006948, 0.435946, -0.899946, 0.304204, 0.956342,\n0.135299, -0.461940, -0.135299, 0.266065, -0.929163, -0.256643, 0.900533, 0.334565, -0.277683, -0.073827, 0.245816, -0.966501, 0.139104, 0.974700,\n0.230970, -0.415735, -0.154329, 0.451704, -0.831354, -0.323751, 0.821102, 0.529311, -0.213590, -0.099538, 0.313655, -0.944306, 0.380348, 0.978136,\n0.346760, 0.097545, -0.346760, 0.670403, 0.195003, -0.715915, 0.698880, 0.158166, 0.697532, -0.255799, 0.966439, 0.023704, 0.414327, 0.580670,\n0.353553, 0.000000, -0.353553, 0.729927, 0.000000, -0.683525, 0.676669, 0.141278, 0.722606, -0.093335, 0.990633, -0.099671, 0.409461, 0.645691,\n0.407747, 0.097545, -0.272448, 0.797188, 0.195005, -0.571371, 0.569117, 0.073123, 0.818999, -0.207816, 0.977197, 0.043561, 0.443836, 0.587669,\n0.068975, 0.490393, -0.068975, 0.147506, 0.976741, -0.155628, 0.528648, 0.055128, 0.847049, -0.838346, 0.206961, 0.504325, 0.449147, 0.191490,\n0.135299, 0.461940, -0.135299, 0.282643, 0.918409, -0.276836, 0.557519, 0.077564, 0.826533, -0.781661, 0.387802, 0.488483, 0.439657, 0.255733,\n0.081106, 0.490393, -0.054193, 0.175033, 0.976740, -0.123861, 0.476286, 0.026103, 0.878903, -0.860138, 0.212914, 0.463497, 0.458394, 0.193707,\n0.135299, -0.461940, -0.135299, 0.266065, -0.929163, -0.256643, -0.056301, 0.250806, -0.966399, -0.959422, -0.229465, -0.163875, 0.139104, 0.974700,\n0.068975, -0.490393, -0.068975, 0.137937, -0.980789, -0.137937, -0.202289, 0.108434, -0.973304, -0.984450, -0.151062, 0.089663, 0.030632, 0.931469,\n0.081106, -0.490393, -0.054193, 0.175033, -0.976741, -0.123861, -0.276227, 0.072033, -0.958389, -0.976416, -0.188355, 0.105515, 0.011310, 0.936409,\n0.353553, 0.000000, -0.353553, 0.729927, 0.000000, -0.683525, 0.676669, 0.141278, 0.722606, -0.093335, 0.990633, -0.099671, 0.409461, 0.645691,\n0.346760, -0.097545, -0.346760, 0.670403, -0.195003, -0.715915, 0.741983, 0.182238, 0.645175, -0.023312, 0.958836, -0.283001, 0.403621, 0.710549,\n0.407747, -0.097545, -0.272448, 0.797188, -0.195005, -0.571371, 0.593675, 0.081183, 0.800599, 0.091707, 0.974530, -0.204648, 0.439204, 0.719005,\n0.135299, 0.461940, -0.135299, 0.282643, 0.918409, -0.276836, 0.557519, 0.077564, 0.826533, -0.781661, 0.387802, 0.488483, 0.439657, 0.255733,\n0.196424, 0.415735, -0.196424, 0.395423, 0.820324, -0.413170, 0.605387, 0.105528, 0.788904, -0.691963, 0.561867, 0.453313, 0.432975, 0.320449,\n0.230970, 0.415735, -0.154329, 0.467879, 0.823575, -0.320645, 0.507932, 0.046326, 0.860151, -0.720709, 0.565537, 0.400932, 0.451681, 0.324898,\n0.346760, -0.097545, -0.346760, 0.670403, -0.195003, -0.715915, 0.741983, 0.182238, 0.645175, -0.023312, 0.958836, -0.283001, 0.403621, 0.710549,\n0.326641, -0.191342, -0.326641, 0.658902, -0.395637, -0.639781, 0.739641, 0.185811, 0.646842, 0.138491, 0.899778, -0.413788, 0.395849, 0.775082,\n0.407747, -0.097545, -0.272448, 0.797188, -0.195005, -0.571371, 0.593675, 0.081183, 0.800599, 0.091707, 0.974530, -0.204648, 0.439204, 0.719005,\n0.196424, 0.415735, -0.196424, 0.395423, 0.820324, -0.413170, 0.605387, 0.105528, 0.788904, -0.691963, 0.561867, 0.453313, 0.432975, 0.320449,\n0.250000, 0.353553, -0.250000, 0.498876, 0.720868, -0.481115, 0.605696, 0.107056, 0.788461, -0.619306, 0.684856, 0.383969, 0.427684, 0.385399,\n0.230970, 0.415735, -0.154329, 0.467879, 0.823575, -0.320645, 0.507932, 0.046326, 0.860151, -0.720709, 0.565537, 0.400932, 0.451681, 0.324898,\n0.326641, -0.191342, -0.326641, 0.658902, -0.395637, -0.639781, 0.739641, 0.185811, 0.646842, 0.138491, 0.899778, -0.413788, 0.395849, 0.775082,\n0.293969, -0.277785, -0.293969, 0.590820, -0.571807, -0.569182, 0.775901, 0.209314, 0.595118, 0.230577, 0.795724, -0.560051, 0.384002, 0.838924,\n0.345671, -0.277785, -0.230970, 0.690329, -0.555606, -0.463409, 0.598747, 0.079171, 0.797016, 0.401473, 0.827027, -0.393504, 0.430299, 0.850042,\n0.250000, 0.353553, -0.250000, 0.498876, 0.720868, -0.481115, 0.605696, 0.107056, 0.788461, -0.619306, 0.684856, 0.383969, 0.427684, 0.385399,\n0.293969, 0.277785, -0.293969, 0.591101, 0.567205, -0.573479, 0.629924, 0.119442, 0.767417, -0.501666, 0.815265, 0.289265, 0.423084, 0.450465,\n0.293969, 0.353553, -0.196424, 0.606889, 0.683554, -0.405511, 0.515943, 0.049265, 0.855205, -0.604310, 0.728259, 0.323186, 0.449475, 0.390573,\n0.293969, -0.277785, -0.293969, 0.590820, -0.571807, -0.569182, 0.775901, 0.209314, 0.595118, 0.230577, 0.795724, -0.560051, 0.384002, 0.838924,\n0.250000, -0.353553, -0.250000, 0.498368, -0.707136, -0.501585, 0.855249, 0.306204, 0.418077, 0.156373, 0.642382, -0.750262, 0.361877, 0.900985,\n0.293969, -0.353553, -0.196424, 0.586645, -0.707137, -0.394721, 0.638981, 0.104722, 0.762061, 0.490459, 0.698079, -0.521666, 0.419256, 0.915096,\n0.293969, 0.277785, -0.293969, 0.591101, 0.567205, -0.573479, 0.629924, 0.119442, 0.767417, -0.501666, 0.815265, 0.289265, 0.423084, 0.450465,\n0.326641, 0.191342, -0.326641, 0.654139, 0.382714, -0.652405, 0.658861, 0.135319, 0.739994, -0.368423, 0.914522, 0.167075, 0.418746, 0.515574,\n0.384089, 0.191342, -0.256640, 0.768848, 0.382715, -0.512251, 0.534081, 0.056154, 0.843567, -0.349360, 0.922386, 0.164774, 0.445715, 0.521971,\n0.256640, -0.191342, -0.384089, 0.514294, -0.382715, -0.767484, 0.855989, 0.284135, 0.431914, -0.074345, 0.871641, -0.484473, 0.358489, 0.758785,\n0.230970, -0.277785, -0.345671, 0.484442, -0.555401, -0.675904, 0.874746, 0.297240, 0.382711, 0.004245, 0.774101, -0.633048, 0.342507, 0.820416,\n0.326641, -0.191342, -0.326641, 0.658902, -0.395637, -0.639781, 0.739641, 0.185811, 0.646842, 0.138491, 0.899778, -0.413788, 0.395849, 0.775082,\n0.196424, 0.353553, -0.293969, 0.405763, 0.697093, -0.591116, 0.707347, 0.170066, 0.686104, -0.582535, 0.695611, 0.420449, 0.406033, 0.376093,\n0.230970, 0.277785, -0.345671, 0.482349, 0.539041, -0.690488, 0.730933, 0.186757, 0.656398, -0.485070, 0.820724, 0.301860, 0.398842, 0.440069,\n0.293969, 0.277785, -0.293969, 0.591101, 0.567205, -0.573479, 0.629924, 0.119442, 0.767417, -0.501666, 0.815265, 0.289265, 0.423084, 0.450465,\n0.230970, -0.277785, -0.345671, 0.484442, -0.555401, -0.675904, 0.874746, 0.297240, 0.382711, 0.004245, 0.774101, -0.633048, 0.342507, 0.820416,\n0.196424, -0.353553, -0.293969, 0.390937, -0.707137, -0.589174, 0.914099, 0.373161, 0.158662, -0.116262, 0.597050, -0.793734, 0.315550, 0.878976,\n0.250000, -0.353553, -0.250000, 0.498368, -0.707136, -0.501585, 0.855249, 0.306204, 0.418077, 0.156373, 0.642382, -0.750262, 0.361877, 0.900985,\n0.230970, 0.277785, -0.345671, 0.482349, 0.539041, -0.690488, 0.730933, 0.186757, 0.656398, -0.485070, 0.820724, 0.301860, 0.398842, 0.440069,\n0.256640, 0.191342, -0.384089, 0.514294, 0.382715, -0.767484, 0.761224, 0.208485, 0.614062, -0.392267, 0.900783, 0.186326, 0.392136, 0.504171,\n0.326641, 0.191342, -0.326641, 0.654139, 0.382714, -0.652405, 0.658861, 0.135319, 0.739994, -0.368423, 0.914522, 0.167075, 0.418746, 0.515574,\n0.196424, -0.353553, -0.293969, 0.390937, -0.707137, -0.589174, 0.914099, 0.373161, 0.158662, -0.116262, 0.597050, -0.793734, 0.315550, 0.878976,\n0.154329, -0.415735, -0.230970, 0.293425, -0.831354, -0.471967, 0.871401, 0.435627, -0.225587, -0.290327, 0.392886, -0.872554, 0.260582, 0.928725,\n0.196424, -0.415735, -0.196424, 0.379865, -0.831354, -0.405652, 0.914855, 0.402534, 0.031733, -0.006948, 0.435946, -0.899946, 0.304204, 0.956342,\n0.256640, 0.191342, -0.384089, 0.514294, 0.382715, -0.767484, 0.761224, 0.208485, 0.614062, -0.392267, 0.900783, 0.186326, 0.392136, 0.504171,\n0.272448, 0.097545, -0.407747, 0.517853, 0.195006, -0.832947, 0.799611, 0.235733, 0.552316, -0.309649, 0.950378, 0.029986, 0.385399, 0.568265,\n0.346760, 0.097545, -0.346760, 0.670403, 0.195003, -0.715915, 0.698880, 0.158166, 0.697532, -0.255799, 0.966439, 0.023704, 0.414327, 0.580670,\n0.154329, -0.415735, -0.230970, 0.293425, -0.831354, -0.471967, 0.871401, 0.435627, -0.225587, -0.290327, 0.392886, -0.872554, 0.260582, 0.928725,\n0.106304, -0.461940, -0.159095, 0.230404, -0.916136, -0.328037, 0.789524, 0.373055, -0.487321, -0.638563, 0.112026, -0.761372, 0.149638, 0.949935,\n0.196424, -0.415735, -0.196424, 0.379865, -0.831354, -0.405652, 0.914855, 0.402534, 0.031733, -0.006948, 0.435946, -0.899946, 0.304204, 0.956342,\n0.272448, 0.097545, -0.407747, 0.517853, 0.195006, -0.832947, 0.799611, 0.235733, 0.552316, -0.309649, 0.950378, 0.029986, 0.385399, 0.568265,\n0.277785, 0.000000, -0.415735, 0.582558, 0.000000, -0.812789, 0.791754, 0.226032, 0.567481, -0.181594, 0.974722, -0.130156, 0.378101, 0.632212,\n0.346760, 0.097545, -0.346760, 0.670403, 0.195003, -0.715915, 0.698880, 0.158166, 0.697532, -0.255799, 0.966439, 0.023704, 0.414327, 0.580670,\n0.054193, 0.490393, -0.081106, 0.114308, 0.976741, -0.181415, 0.577264, 0.083314, 0.812296, -0.813643, 0.196824, 0.547033, 0.440119, 0.187485,\n0.106304, 0.461940, -0.159095, 0.210110, 0.923888, -0.319821, 0.624158, 0.125030, 0.771229, -0.748221, 0.362510, 0.555655, 0.425005, 0.249351,\n0.068975, 0.490393, -0.068975, 0.147506, 0.976741, -0.155628, 0.528648, 0.055128, 0.847049, -0.838346, 0.206961, 0.504325, 0.449147, 0.191490,\n0.106304, -0.461940, -0.159095, 0.230404, -0.916136, -0.328037, 0.158051, 0.367863, -0.916350, -0.889781, -0.061867, -0.452176, 0.149638, 0.949935,\n0.054193, -0.490393, -0.081106, 0.126198, -0.973859, -0.188870, 0.072963, 0.198989, -0.977282, -0.975189, -0.086882, -0.203613, 0.045633, 0.923222,\n0.135299, -0.461940, -0.135299, 0.266065, -0.929163, -0.256643, -0.056301, 0.250806, -0.966399, -0.959422, -0.229465, -0.163875, 0.139104, 0.974700,\n0.277785, 0.000000, -0.415735, 0.582558, 0.000000, -0.812789, 0.791754, 0.226032, 0.567481, -0.181594, 0.974722, -0.130156, 0.378101, 0.632212,\n0.272448, -0.097545, -0.407747, 0.517853, -0.195006, -0.832947, 0.844844, 0.269565, 0.462140, -0.150175, 0.937830, -0.312926, 0.369532, 0.695826,\n0.346760, -0.097545, -0.346760, 0.670403, -0.195003, -0.715915, 0.741983, 0.182238, 0.645175, -0.023312, 0.958836, -0.283001, 0.403621, 0.710549,\n0.106304, 0.461940, -0.159095, 0.210110, 0.923888, -0.319821, 0.624158, 0.125030, 0.771229, -0.748221, 0.362510, 0.555655, 0.425005, 0.249351,\n0.154329, 0.415735, -0.230970, 0.306409, 0.831489, -0.463399, 0.673121, 0.154953, 0.723117, -0.670248, 0.534137, 0.515233, 0.414383, 0.312422,\n0.135299, 0.461940, -0.135299, 0.282643, 0.918409, -0.276836, 0.557519, 0.077564, 0.826533, -0.781661, 0.387802, 0.488483, 0.439657, 0.255733,\n0.272448, -0.097545, -0.407747, 0.517853, -0.195006, -0.832947, 0.844844, 0.269565, 0.462140, -0.150175, 0.937830, -0.312926, 0.369532, 0.695826,\n0.256640, -0.191342, -0.384089, 0.514294, -0.382715, -0.767484, 0.855989, 0.284135, 0.431914, -0.074345, 0.871641, -0.484473, 0.358489, 0.758785,\n0.346760, -0.097545, -0.346760, 0.670403, -0.195003, -0.715915, 0.741983, 0.182238, 0.645175, -0.023312, 0.958836, -0.283001, 0.403621, 0.710549,\n0.154329, 0.415735, -0.230970, 0.306409, 0.831489, -0.463399, 0.673121, 0.154953, 0.723117, -0.670248, 0.534137, 0.515233, 0.414383, 0.312422,\n0.196424, 0.353553, -0.293969, 0.405763, 0.697093, -0.591116, 0.707347, 0.170066, 0.686104, -0.582535, 0.695611, 0.420449, 0.406033, 0.376093,\n0.196424, 0.415735, -0.196424, 0.395423, 0.820324, -0.413170, 0.605387, 0.105528, 0.788904, -0.691963, 0.561867, 0.453313, 0.432975, 0.320449,\n0.073223, -0.461940, -0.176777, 0.158028, -0.923819, -0.348692, 0.351012, 0.382620, -0.854630, -0.944682, -0.038662, -0.325701, 0.148297, 0.924790,\n0.037329, -0.490393, -0.090120, 0.076720, -0.976740, -0.200230, 0.046042, 0.204078, -0.977871, -0.996783, -0.079808, 0.007381, 0.055761, 0.912636,\n0.054193, -0.490393, -0.081106, 0.126198, -0.973859, -0.188870, 0.072963, 0.198989, -0.977282, -0.975189, -0.086882, -0.203613, 0.045633, 0.923222,\n0.191342, 0.000000, -0.461940, 0.412789, 0.000000, -0.910827, 0.867606, 0.304390, 0.393201, -0.271702, 0.954471, -0.123136, 0.347954, 0.613692,\n0.187665, -0.097545, -0.453064, 0.345398, -0.195004, -0.917972, 0.901940, 0.339189, 0.267312, -0.270622, 0.915923, -0.296394, 0.337345, 0.675882,\n0.272448, -0.097545, -0.407747, 0.517853, -0.195006, -0.832947, 0.844844, 0.269565, 0.462140, -0.150175, 0.937830, -0.312926, 0.369532, 0.695826,\n0.073223, 0.461940, -0.176777, 0.144749, 0.931233, -0.334444, 0.674962, 0.154225, 0.721554, -0.715354, 0.332011, 0.614848, 0.410583, 0.240213,\n0.106304, 0.415735, -0.256640, 0.202041, 0.849271, -0.487769, 0.729025, 0.202156, 0.653954, -0.641871, 0.490990, 0.589008, 0.395951, 0.300965,\n0.106304, 0.461940, -0.159095, 0.210110, 0.923888, -0.319821, 0.624158, 0.125030, 0.771229, -0.748221, 0.362510, 0.555655, 0.425005, 0.249351,\n0.187665, -0.097545, -0.453064, 0.345398, -0.195004, -0.917972, 0.901940, 0.339189, 0.267312, -0.270622, 0.915923, -0.296394, 0.337345, 0.675882,\n0.176777, -0.191342, -0.426777, 0.354681, -0.382715, -0.853071, 0.910663, 0.348166, 0.222427, -0.228651, 0.849181, -0.476036, 0.324176, 0.737162,\n0.272448, -0.097545, -0.407747, 0.517853, -0.195006, -0.832947, 0.844844, 0.269565, 0.462140, -0.150175, 0.937830, -0.312926, 0.369532, 0.695826,\n0.106304, 0.415735, -0.256640, 0.202041, 0.849271, -0.487769, 0.729025, 0.202156, 0.653954, -0.641871, 0.490990, 0.589008, 0.395951, 0.300965,\n0.135299, 0.353553, -0.326641, 0.256646, 0.716972, -0.648139, 0.784086, 0.237640, 0.573355, -0.558550, 0.657303, 0.505939, 0.384563, 0.362880,\n0.154329, 0.415735, -0.230970, 0.306409, 0.831489, -0.463399, 0.673121, 0.154953, 0.723117, -0.670248, 0.534137, 0.515233, 0.414383, 0.312422,\n0.176777, -0.191342, -0.426777, 0.354681, -0.382715, -0.853071, 0.910663, 0.348166, 0.222427, -0.228651, 0.849181, -0.476036, 0.324176, 0.737162,\n0.159095, -0.277785, -0.384089, 0.343269, -0.555401, -0.757427, 0.918601, 0.366641, 0.147466, -0.207285, 0.741746, -0.637845, 0.306159, 0.796676,\n0.256640, -0.191342, -0.384089, 0.514294, -0.382715, -0.767484, 0.855989, 0.284135, 0.431914, -0.074345, 0.871641, -0.484473, 0.358489, 0.758785,\n0.135299, 0.353553, -0.326641, 0.256646, 0.716972, -0.648139, 0.784086, 0.237640, 0.573355, -0.558550, 0.657303, 0.505939, 0.384563, 0.362880,\n0.159095, 0.277785, -0.384089, 0.343269, 0.555401, -0.757427, 0.801936, 0.246493, 0.544188, -0.489566, 0.794019, 0.360359, 0.374888, 0.425400,\n0.196424, 0.353553, -0.293969, 0.405763, 0.697093, -0.591116, 0.707347, 0.170066, 0.686104, -0.582535, 0.695611, 0.420449, 0.406033, 0.376093,\n0.159095, -0.277785, -0.384089, 0.343269, -0.555401, -0.757427, 0.918601, 0.366641, 0.147466, -0.207285, 0.741746, -0.637845, 0.306159, 0.796676,\n0.135299, -0.353553, -0.326641, 0.268482, -0.707136, -0.654122, 0.902614, 0.421859, -0.085576, -0.339988, 0.565790, -0.751192, 0.278480, 0.852494,\n0.196424, -0.353553, -0.293969, 0.390937, -0.707137, -0.589174, 0.914099, 0.373161, 0.158662, -0.116262, 0.597050, -0.793734, 0.315550, 0.878976,\n0.159095, 0.277785, -0.384089, 0.343269, 0.555401, -0.757427, 0.801936, 0.246493, 0.544188, -0.489566, 0.794019, 0.360359, 0.374888, 0.425400,\n0.176777, 0.191342, -0.426777, 0.354681, 0.382715, -0.853071, 0.838031, 0.274468, 0.471563, -0.412065, 0.882985, 0.224812, 0.366006, 0.488197,\n0.256640, 0.191342, -0.384089, 0.514294, 0.382715, -0.767484, 0.761224, 0.208485, 0.614062, -0.392267, 0.900783, 0.186326, 0.392136, 0.504171,\n0.135299, -0.353553, -0.326641, 0.268482, -0.707136, -0.654122, 0.902614, 0.421859, -0.085576, -0.339988, 0.565790, -0.751192, 0.278480, 0.852494,\n0.106304, -0.415735, -0.256640, 0.195712, -0.831354, -0.520142, 0.781917, 0.452404, -0.428878, -0.565160, 0.337843, -0.752633, 0.230558, 0.899550,\n0.154329, -0.415735, -0.230970, 0.293425, -0.831354, -0.471967, 0.871401, 0.435627, -0.225587, -0.290327, 0.392886, -0.872554, 0.260582, 0.928725,\n0.176777, 0.191342, -0.426777, 0.354681, 0.382715, -0.853071, 0.838031, 0.274468, 0.471563, -0.412065, 0.882985, 0.224812, 0.366006, 0.488197,\n0.187665, 0.097545, -0.453064, 0.345398, 0.195004, -0.917972, 0.868991, 0.302874, 0.391308, -0.358378, 0.931447, 0.063022, 0.357242, 0.551036,\n0.272448, 0.097545, -0.407747, 0.517853, 0.195006, -0.832947, 0.799611, 0.235733, 0.552316, -0.309649, 0.950378, 0.029986, 0.385399, 0.568265,\n0.106304, -0.415735, -0.256640, 0.195712, -0.831354, -0.520142, 0.781917, 0.452404, -0.428878, -0.565160, 0.337843, -0.752633, 0.230558, 0.899550,\n0.073223, -0.461940, -0.176777, 0.158028, -0.923819, -0.348692, 0.730736, 0.346915, -0.587941, -0.526365, 0.219962, -0.821314, 0.148297, 0.924790,\n0.154329, -0.415735, -0.230970, 0.293425, -0.831354, -0.471967, 0.871401, 0.435627, -0.225587, -0.290327, 0.392886, -0.872554, 0.260582, 0.928725,\n0.187665, 0.097545, -0.453064, 0.345398, 0.195004, -0.917972, 0.868991, 0.302874, 0.391308, -0.358378, 0.931447, 0.063022, 0.357242, 0.551036,\n0.191342, 0.000000, -0.461940, 0.412789, 0.000000, -0.910827, 0.867606, 0.304390, 0.393201, -0.271702, 0.954471, -0.123136, 0.347954, 0.613692,\n0.272448, 0.097545, -0.407747, 0.517853, 0.195006, -0.832947, 0.799611, 0.235733, 0.552316, -0.309649, 0.950378, 0.029986, 0.385399, 0.568265,\n0.037329, 0.490393, -0.090120, 0.076720, 0.976740, -0.200230, 0.621152, 0.110266, 0.775894, -0.785459, 0.182905, 0.591270, 0.431446, 0.181761,\n0.073223, 0.461940, -0.176777, 0.144749, 0.931233, -0.334444, 0.674962, 0.154225, 0.721554, -0.715354, 0.332011, 0.614848, 0.410583, 0.240213,\n0.054193, 0.490393, -0.081106, 0.114308, 0.976741, -0.181415, 0.577264, 0.083314, 0.812296, -0.813643, 0.196824, 0.547033, 0.440119, 0.187485,\n0.068975, -0.353553, -0.346760, 0.135711, -0.707136, -0.693932, 0.834724, 0.458897, -0.304383, -0.532345, 0.538668, -0.653028, 0.247735, 0.823865,\n0.054193, -0.415735, -0.272448, 0.090476, -0.831354, -0.548329, 0.704662, 0.442513, -0.554647, -0.688308, 0.345720, -0.637738, 0.206623, 0.870322,\n0.106304, -0.415735, -0.256640, 0.195712, -0.831354, -0.520142, 0.781917, 0.452404, -0.428878, -0.565160, 0.337843, -0.752633, 0.230558, 0.899550,\n0.090120, 0.191342, -0.453064, 0.181442, 0.382715, -0.905874, 0.888381, 0.331252, 0.317886, -0.417947, 0.863841, 0.281245, 0.340374, 0.468222,\n0.095671, 0.097545, -0.480970, 0.159676, 0.195003, -0.967718, 0.907052, 0.357868, 0.221779, -0.392058, 0.912195, 0.119124, 0.329902, 0.529720,\n0.187665, 0.097545, -0.453064, 0.345398, 0.195004, -0.917972, 0.868991, 0.302874, 0.391308, -0.358378, 0.931447, 0.063022, 0.357242, 0.551036,\n0.054193, -0.415735, -0.272448, 0.090476, -0.831354, -0.548329, 0.704662, 0.442513, -0.554647, -0.688308, 0.345720, -0.637738, 0.206623, 0.870322,\n0.037329, -0.461940, -0.187665, 0.086967, -0.923819, -0.372820, 0.499455, 0.364240, -0.786049, -0.840689, 0.132730, -0.525000, 0.142004, 0.900074,\n0.106304, -0.415735, -0.256640, 0.195712, -0.831354, -0.520142, 0.781917, 0.452404, -0.428878, -0.565160, 0.337843, -0.752633, 0.230558, 0.899550,\n0.095671, 0.097545, -0.480970, 0.159676, 0.195003, -0.967718, 0.907052, 0.357868, 0.221779, -0.392058, 0.912195, 0.119124, 0.329902, 0.529720,\n0.097545, 0.000000, -0.490392, 0.227166, -0.000000, -0.973856, 0.909769, 0.356771, 0.212217, -0.347462, 0.934185, -0.081051, 0.319079, 0.591068,\n0.187665, 0.097545, -0.453064, 0.345398, 0.195004, -0.917972, 0.868991, 0.302874, 0.391308, -0.358378, 0.931447, 0.063022, 0.357242, 0.551036,\n0.019030, 0.490393, -0.095671, 0.036183, 0.976740, -0.211349, 0.659716, 0.135510, 0.739197, -0.754201, 0.165442, 0.635461, 0.423278, 0.174421,\n0.037329, 0.461940, -0.187665, 0.081206, 0.918409, -0.387209, 0.738308, 0.205550, 0.642379, -0.674035, 0.336788, 0.657457, 0.396472, 0.228455,\n0.037329, 0.490393, -0.090120, 0.076720, 0.976740, -0.200230, 0.621152, 0.110266, 0.775894, -0.785459, 0.182905, 0.591270, 0.431446, 0.181761,\n0.037329, -0.461940, -0.187665, 0.086967, -0.923819, -0.372820, 0.187773, 0.382731, -0.904576, -0.992709, -0.111716, 0.045255, 0.142004, 0.900074,\n0.019030, -0.490393, -0.095671, 0.036183, -0.976740, -0.211349, 0.052590, 0.213056, -0.975624, -0.999332, -0.036443, -0.002670, 0.061468, 0.900623,\n0.037329, -0.490393, -0.090120, 0.076720, -0.976740, -0.200230, 0.046042, 0.204078, -0.977871, -0.996783, -0.079808, 0.007381, 0.055761, 0.912636,\n0.097545, 0.000000, -0.490392, 0.227166, -0.000000, -0.973856, 0.909769, 0.356771, 0.212217, -0.347462, 0.934185, -0.081051, 0.319079, 0.591068,\n0.095671, -0.097545, -0.480970, 0.159676, -0.195003, -0.967718, 0.917851, 0.390187, 0.072822, -0.370733, 0.896694, -0.241863, 0.307086, 0.651912,\n0.187665, -0.097545, -0.453064, 0.345398, -0.195004, -0.917972, 0.901940, 0.339189, 0.267312, -0.270622, 0.915923, -0.296394, 0.337345, 0.675882,\n0.037329, 0.461940, -0.187665, 0.081206, 0.918409, -0.387209, 0.738308, 0.205550, 0.642379, -0.674035, 0.336788, 0.657457, 0.396472, 0.228455,\n0.054193, 0.415735, -0.272448, 0.113643, 0.812813, -0.571333, 0.814593, 0.252991, 0.521951, -0.588700, 0.518324, 0.620301, 0.377698, 0.286284,\n0.106304, 0.415735, -0.256640, 0.202041, 0.849271, -0.487769, 0.729025, 0.202156, 0.653954, -0.641871, 0.490990, 0.589008, 0.395951, 0.300965,\n0.095671, -0.097545, -0.480970, 0.159676, -0.195003, -0.967718, 0.917851, 0.390187, 0.072822, -0.370733, 0.896694, -0.241863, 0.307086, 0.651912,\n0.090120, -0.191342, -0.453064, 0.181442, -0.382715, -0.905874, 0.917940, 0.396380, 0.016395, -0.366507, 0.828481, -0.423428, 0.292765, 0.711739,\n0.187665, -0.097545, -0.453064, 0.345398, -0.195004, -0.917972, 0.901940, 0.339189, 0.267312, -0.270622, 0.915923, -0.296394, 0.337345, 0.675882,\n0.054193, 0.415735, -0.272448, 0.113643, 0.812813, -0.571333, 0.814593, 0.252991, 0.521951, -0.588700, 0.518324, 0.620301, 0.377698, 0.286284,\n0.068975, 0.353553, -0.346760, 0.125620, 0.692993, -0.709916, 0.852105, 0.291102, 0.434944, -0.517805, 0.656181, 0.548912, 0.363272, 0.346065,\n0.135299, 0.353553, -0.326641, 0.256646, 0.716972, -0.648139, 0.784086, 0.237640, 0.573355, -0.558550, 0.657303, 0.505939, 0.384563, 0.362880,\n0.090120, -0.191342, -0.453064, 0.181442, -0.382715, -0.905874, 0.917940, 0.396380, 0.016395, -0.366507, 0.828481, -0.423428, 0.292765, 0.711739,\n0.081106, -0.277785, -0.407746, 0.188908, -0.555401, -0.809842, 0.909904, 0.409148, -0.068350, -0.381060, 0.718607, -0.581719, 0.274182, 0.769656,\n0.176777, -0.191342, -0.426777, 0.354681, -0.382715, -0.853071, 0.910663, 0.348166, 0.222427, -0.228651, 0.849181, -0.476036, 0.324176, 0.737162,\n0.068975, 0.353553, -0.346760, 0.125620, 0.692993, -0.709916, 0.852105, 0.291102, 0.434944, -0.517805, 0.656181, 0.548912, 0.363272, 0.346065,\n0.081106, 0.277785, -0.407746, 0.188908, 0.555401, -0.809842, 0.860507, 0.303704, 0.409012, -0.473585, 0.773975, 0.420332, 0.351222, 0.406884,\n0.135299, 0.353553, -0.326641, 0.256646, 0.716972, -0.648139, 0.784086, 0.237640, 0.573355, -0.558550, 0.657303, 0.505939, 0.384563, 0.362880,\n0.081106, -0.277785, -0.407746, 0.188908, -0.555401, -0.809842, 0.909904, 0.409148, -0.068350, -0.381060, 0.718607, -0.581719, 0.274182, 0.769656,\n0.068975, -0.353553, -0.346760, 0.135711, -0.707136, -0.693932, 0.834724, 0.458897, -0.304383, -0.532345, 0.538668, -0.653028, 0.247735, 0.823865,\n0.135299, -0.353553, -0.326641, 0.268482, -0.707136, -0.654122, 0.902614, 0.421859, -0.085576, -0.339988, 0.565790, -0.751192, 0.278480, 0.852494,\n0.081106, 0.277785, -0.407746, 0.188908, 0.555401, -0.809842, 0.860507, 0.303704, 0.409012, -0.473585, 0.773975, 0.420332, 0.351222, 0.406884,\n0.090120, 0.191342, -0.453064, 0.181442, 0.382715, -0.905874, 0.888381, 0.331252, 0.317886, -0.417947, 0.863841, 0.281245, 0.340374, 0.468222,\n0.176777, 0.191342, -0.426777, 0.354681, 0.382715, -0.853071, 0.838031, 0.274468, 0.471563, -0.412065, 0.882985, 0.224812, 0.366006, 0.488197,\n0.000000, -0.191342, -0.461940, 0.001225, -0.382712, -0.923867, 0.884445, 0.431532, -0.177590, -0.477862, 0.811333, -0.336729, 0.263760, 0.683901,\n0.000000, -0.277785, -0.415735, 0.027286, -0.555402, -0.831134, 0.864465, 0.430611, -0.259374, -0.512060, 0.706308, -0.488798, 0.245498, 0.740897,\n0.090120, -0.191342, -0.453064, 0.181442, -0.382715, -0.905874, 0.917940, 0.396380, 0.016395, -0.366507, 0.828481, -0.423428, 0.292765, 0.711739,\n0.000000, 0.353553, -0.353553, -0.002278, 0.707136, -0.707074, 0.885216, 0.330340, 0.327517, -0.463666, 0.625729, 0.627278, 0.342092, 0.326013,\n0.000000, 0.277785, -0.415735, 0.027286, 0.555402, -0.831134, 0.897111, 0.353167, 0.265454, -0.441123, 0.752799, 0.488573, 0.327761, 0.385025,\n0.068975, 0.353553, -0.346760, 0.125620, 0.692993, -0.709916, 0.852105, 0.291102, 0.434944, -0.517805, 0.656181, 0.548912, 0.363272, 0.346065,\n0.000000, -0.277785, -0.415735, 0.027286, -0.555402, -0.831134, 0.864465, 0.430611, -0.259374, -0.512060, 0.706308, -0.488798, 0.245498, 0.740897,\n0.000000, -0.353553, -0.353553, -0.002278, -0.707136, -0.707073, 0.777385, 0.443514, -0.446058, -0.629127, 0.550624, -0.548646, 0.221035, 0.794554,\n0.068975, -0.353553, -0.346760, 0.135711, -0.707136, -0.693932, 0.834724, 0.458897, -0.304383, -0.532345, 0.538668, -0.653028, 0.247735, 0.823865,\n0.000000, 0.277785, -0.415735, 0.027286, 0.555402, -0.831134, 0.897111, 0.353167, 0.265454, -0.441123, 0.752799, 0.488573, 0.327761, 0.385025,\n0.000000, 0.191342, -0.461940, 0.001225, 0.382712, -0.923867, 0.912486, 0.377533, 0.157603, -0.408033, 0.843652, 0.348942, 0.315152, 0.444897,\n0.090120, 0.191342, -0.453064, 0.181442, 0.382715, -0.905874, 0.888381, 0.331252, 0.317886, -0.417947, 0.863841, 0.281245, 0.340374, 0.468222,\n0.000000, -0.353553, -0.353553, -0.002278, -0.707136, -0.707073, 0.777385, 0.443514, -0.446058, -0.629127, 0.550624, -0.548646, 0.221035, 0.794554,\n0.000000, -0.415735, -0.277785, -0.018239, -0.831353, -0.555445, 0.621602, 0.425696, -0.657566, -0.773857, 0.363506, -0.518660, 0.185712, 0.841768,\n0.054193, -0.415735, -0.272448, 0.090476, -0.831354, -0.548329, 0.704662, 0.442513, -0.554647, -0.688308, 0.345720, -0.637738, 0.206623, 0.870322,\n0.000000, 0.191342, -0.461940, 0.001225, 0.382712, -0.923867, 0.912486, 0.377533, 0.157603, -0.408033, 0.843652, 0.348942, 0.315152, 0.444897,\n0.000000, 0.097545, -0.490392, -0.032184, 0.195004, -0.980274, 0.915184, 0.399982, 0.049521, -0.403106, 0.894943, 0.191264, 0.303277, 0.505133,\n0.095671, 0.097545, -0.480970, 0.159676, 0.195003, -0.967718, 0.907052, 0.357868, 0.221779, -0.392058, 0.912195, 0.119124, 0.329902, 0.529720,\n0.000000, -0.415735, -0.277785, -0.018239, -0.831353, -0.555445, 0.621602, 0.425696, -0.657566, -0.773857, 0.363506, -0.518660, 0.185712, 0.841768,\n0.000000, -0.461940, -0.191342, 0.012560, -0.923819, -0.382623, 0.405169, 0.354534, -0.842700, -0.919889, 0.139328, -0.366594, 0.133142, 0.876209,\n0.054193, -0.415735, -0.272448, 0.090476, -0.831354, -0.548329, 0.704662, 0.442513, -0.554647, -0.688308, 0.345720, -0.637738, 0.206623, 0.870322,\n0.000000, 0.097545, -0.490392, -0.032184, 0.195004, -0.980274, 0.915184, 0.399982, 0.049521, -0.403106, 0.894943, 0.191264, 0.303277, 0.505133,\n0.000000, 0.000000, -0.500000, 0.032810, 0.000000, -0.999462, 0.915905, 0.400267, 0.030067, -0.400494, 0.916205, -0.013147, 0.291335, 0.565336,\n0.095671, 0.097545, -0.480970, 0.159676, 0.195003, -0.967718, 0.907052, 0.357868, 0.221779, -0.392058, 0.912195, 0.119124, 0.329902, 0.529720,\n0.000000, 0.490393, -0.097545, -0.005744, 0.976741, -0.214348, 0.692756, 0.158469, 0.703546, -0.721155, 0.144448, 0.677547, 0.415789, 0.165599,\n0.000000, 0.461940, -0.191342, 0.005745, 0.931233, -0.364380, 0.758912, 0.233220, 0.607998, -0.641928, 0.282829, 0.712696, 0.382751, 0.214243,\n0.019030, 0.490393, -0.095671, 0.036183, 0.976740, -0.211349, 0.659716, 0.135510, 0.739197, -0.754201, 0.165442, 0.635461, 0.423278, 0.174421,\n0.000000, -0.461940, -0.191342, 0.012560, -0.923819, -0.382623, 0.405169, 0.354534, -0.842700, -0.919889, 0.139328, -0.366594, 0.133142, 0.876209,\n0.000000, -0.490393, -0.097545, -0.005744, -0.976741, -0.214348, 0.034559, 0.214029, -0.976216, -0.999964, 0.006941, -0.004830, 0.063552, 0.887927,\n0.019030, -0.490393, -0.095671, 0.036183, -0.976740, -0.211349, 0.052590, 0.213056, -0.975624, -0.999332, -0.036443, -0.002670, 0.061468, 0.900623,\n0.000000, 0.000000, -0.500000, 0.032810, 0.000000, -0.999462, 0.915905, 0.400267, 0.030067, -0.400494, 0.916205, -0.013147, 0.291335, 0.565336,\n0.000000, -0.097545, -0.490392, -0.032184, -0.195004, -0.980274, 0.898724, 0.423503, -0.113753, -0.441786, 0.882545, -0.161058, 0.278511, 0.625101,\n0.095671, -0.097545, -0.480970, 0.159676, -0.195003, -0.967718, 0.917851, 0.390187, 0.072822, -0.370733, 0.896694, -0.241863, 0.307086, 0.651912,\n0.000000, 0.461940, -0.191342, 0.005745, 0.931233, -0.364380, 0.758912, 0.233220, 0.607998, -0.641928, 0.282829, 0.712696, 0.382751, 0.214243,\n0.000000, 0.415735, -0.277785, -0.008963, 0.839191, -0.543763, 0.843305, 0.298564, 0.446874, -0.530292, 0.457033, 0.714081, 0.359606, 0.268628,\n0.037329, 0.461940, -0.187665, 0.081206, 0.918409, -0.387209, 0.738308, 0.205550, 0.642379, -0.674035, 0.336788, 0.657457, 0.396472, 0.228455,\n0.000000, -0.097545, -0.490392, -0.032184, -0.195004, -0.980274, 0.898724, 0.423503, -0.113753, -0.441786, 0.882545, -0.161058, 0.278511, 0.625101,\n0.000000, -0.191342, -0.461940, 0.001225, -0.382712, -0.923867, 0.884445, 0.431532, -0.177590, -0.477862, 0.811333, -0.336729, 0.263760, 0.683901,\n0.095671, -0.097545, -0.480970, 0.159676, -0.195003, -0.967718, 0.917851, 0.390187, 0.072822, -0.370733, 0.896694, -0.241863, 0.307086, 0.651912,\n0.000000, 0.415735, -0.277785, -0.008963, 0.839191, -0.543763, 0.843305, 0.298564, 0.446874, -0.530292, 0.457033, 0.714081, 0.359606, 0.268628,\n0.000000, 0.353553, -0.353553, -0.002278, 0.707136, -0.707074, 0.885216, 0.330340, 0.327517, -0.463666, 0.625729, 0.627278, 0.342092, 0.326013,\n0.054193, 0.415735, -0.272448, 0.113643, 0.812813, -0.571333, 0.814593, 0.252991, 0.521951, -0.588700, 0.518324, 0.620301, 0.377698, 0.286284,\n-0.019030, 0.490393, -0.095671, -0.047449, 0.976740, -0.209109, 0.720722, 0.178423, 0.669869, -0.688169, 0.119771, 0.715597, 0.409185, 0.155461,\n-0.037329, 0.461940, -0.187665, -0.073153, 0.918409, -0.388811, 0.820704, 0.276940, 0.499749, -0.577847, 0.278718, 0.767079, 0.369501, 0.197772,\n0.000000, 0.490393, -0.097545, -0.005744, 0.976741, -0.214348, 0.692756, 0.158469, 0.703546, -0.721155, 0.144448, 0.677547, 0.415789, 0.165599,\n-0.037329, -0.461940, -0.187665, -0.062326, -0.923818, -0.377723, 0.293765, 0.344714, -0.891557, -0.966939, 0.149657, -0.206475, 0.122716, 0.853506,\n-0.019030, -0.490393, -0.095671, -0.047449, -0.976740, -0.209109, 0.005107, 0.209105, -0.977880, -0.998869, 0.047031, 0.006975, 0.062791, 0.875124,\n0.000000, -0.490393, -0.097545, -0.005744, -0.976741, -0.214348, 0.034559, 0.214029, -0.976216, -0.999964, 0.006941, -0.004830, 0.063552, 0.887927,\n-0.097545, 0.000000, -0.490392, -0.162803, 0.000000, -0.986659, 0.889654, 0.432396, -0.146796, -0.424493, 0.902718, 0.070043, 0.264451, 0.537476,\n-0.095671, -0.097545, -0.480970, -0.222807, -0.195001, -0.955160, 0.850108, 0.440699, -0.288273, -0.479884, 0.874796, -0.066654, 0.251234, 0.596552,\n0.000000, -0.097545, -0.490392, -0.032184, -0.195004, -0.980274, 0.898724, 0.423503, -0.113753, -0.441786, 0.882545, -0.161058, 0.278511, 0.625101,\n-0.037329, 0.461940, -0.187665, -0.073153, 0.918409, -0.388811, 0.820704, 0.276940, 0.499749, -0.577847, 0.278718, 0.767079, 0.369501, 0.197772,\n-0.054193, 0.415735, -0.272448, -0.123852, 0.820324, -0.558327, 0.891297, 0.339289, 0.300788, -0.458808, 0.451562, 0.765236, 0.341615, 0.248277,\n0.000000, 0.415735, -0.277785, -0.008963, 0.839191, -0.543763, 0.843305, 0.298564, 0.446874, -0.530292, 0.457033, 0.714081, 0.359606, 0.268628,\n-0.095671, -0.097545, -0.480970, -0.222807, -0.195001, -0.955160, 0.850108, 0.440699, -0.288273, -0.479884, 0.874796, -0.066654, 0.251234, 0.596552,\n-0.090120, -0.191342, -0.453064, -0.179030, -0.382715, -0.906354, 0.828764, 0.437784, -0.348562, -0.538512, 0.809104, -0.235279, 0.236558, 0.654833,\n0.000000, -0.097545, -0.490392, -0.032184, -0.195004, -0.980274, 0.898724, 0.423503, -0.113753, -0.441786, 0.882545, -0.161058, 0.278511, 0.625101,\n-0.054193, 0.415735, -0.272448, -0.123852, 0.820324, -0.558327, 0.891297, 0.339289, 0.300788, -0.458808, 0.451562, 0.765236, 0.341615, 0.248277,\n-0.068975, 0.353553, -0.346760, -0.140171, 0.707135, -0.693046, 0.904749, 0.375819, 0.200471, -0.400546, 0.599626, 0.692828, 0.320886, 0.303136,\n0.000000, 0.415735, -0.277785, -0.008963, 0.839191, -0.543763, 0.843305, 0.298564, 0.446874, -0.530292, 0.457033, 0.714081, 0.359606, 0.268628,\n-0.090120, -0.191342, -0.453064, -0.179030, -0.382715, -0.906354, 0.828764, 0.437784, -0.348562, -0.538512, 0.809104, -0.235279, 0.236558, 0.654833,\n-0.081106, -0.277785, -0.407746, -0.135384, -0.555402, -0.820488, 0.793047, 0.435663, -0.425763, -0.601789, 0.703956, -0.377222, 0.219119, 0.711578,\n0.000000, -0.191342, -0.461940, 0.001225, -0.382712, -0.923867, 0.884445, 0.431532, -0.177590, -0.477862, 0.811333, -0.336729, 0.263760, 0.683901,\n-0.068975, 0.353553, -0.346760, -0.140171, 0.707135, -0.693046, 0.904749, 0.375819, 0.200471, -0.400546, 0.599626, 0.692828, 0.320886, 0.303136,\n-0.081106, 0.277785, -0.407746, -0.135383, 0.555402, -0.820488, 0.911657, 0.394132, 0.116368, -0.387847, 0.732320, 0.559716, 0.304332, 0.360378,\n0.000000, 0.353553, -0.353553, -0.002278, 0.707136, -0.707074, 0.885216, 0.330340, 0.327517, -0.463666, 0.625729, 0.627278, 0.342092, 0.326013,\n-0.081106, -0.277785, -0.407746, -0.135384, -0.555402, -0.820488, 0.793047, 0.435663, -0.425763, -0.601789, 0.703956, -0.377222, 0.219119, 0.711578,\n-0.068975, -0.353553, -0.346760, -0.140173, -0.707136, -0.693044, 0.689218, 0.432850, -0.581050, -0.710846, 0.559118, -0.426714, 0.196860, 0.765537,\n0.000000, -0.353553, -0.353553, -0.002278, -0.707136, -0.707073, 0.777385, 0.443514, -0.446058, -0.629127, 0.550624, -0.548646, 0.221035, 0.794554,\n-0.081106, 0.277785, -0.407746, -0.135383, 0.555402, -0.820488, 0.911657, 0.394132, 0.116368, -0.387847, 0.732320, 0.559716, 0.304332, 0.360378,\n-0.090120, 0.191342, -0.453064, -0.179030, 0.382714, -0.906354, 0.910722, 0.412984, -0.005508, -0.372236, 0.826407, 0.422483, 0.290147, 0.418927,\n0.000000, 0.191342, -0.461940, 0.001225, 0.382712, -0.923867, 0.912486, 0.377533, 0.157603, -0.408033, 0.843652, 0.348942, 0.315152, 0.444897,\n-0.068975, -0.353553, -0.346760, -0.140173, -0.707136, -0.693044, 0.689218, 0.432850, -0.581050, -0.710846, 0.559118, -0.426714, 0.196860, 0.765537,\n-0.054193, -0.415735, -0.272447, -0.126245, -0.831354, -0.541214, 0.533240, 0.403180, -0.743707, -0.831103, 0.386509, -0.399847, 0.166387, 0.814368,\n0.000000, -0.415735, -0.277785, -0.018239, -0.831353, -0.555445, 0.621602, 0.425696, -0.657566, -0.773857, 0.363506, -0.518660, 0.185712, 0.841768,\n-0.090120, 0.191342, -0.453064, -0.179030, 0.382714, -0.906354, 0.910722, 0.412984, -0.005508, -0.372236, 0.826407, 0.422483, 0.290147, 0.418927,\n-0.095671, 0.097545, -0.480970, -0.222807, 0.195001, -0.955160, 0.895121, 0.429028, -0.121213, -0.386845, 0.881660, 0.270234, 0.277149, 0.478121,\n0.000000, 0.097545, -0.490392, -0.032184, 0.195004, -0.980274, 0.915184, 0.399982, 0.049521, -0.403106, 0.894943, 0.191264, 0.303277, 0.505133,\n-0.054193, -0.415735, -0.272447, -0.126245, -0.831354, -0.541214, 0.533240, 0.403180, -0.743707, -0.831103, 0.386509, -0.399847, 0.166387, 0.814368,\n-0.037329, -0.461940, -0.187665, -0.062326, -0.923818, -0.377723, 0.293765, 0.344714, -0.891557, -0.966939, 0.149657, -0.206475, 0.122716, 0.853506,\n0.000000, -0.415735, -0.277785, -0.018239, -0.831353, -0.555445, 0.621602, 0.425696, -0.657566, -0.773857, 0.363506, -0.518660, 0.185712, 0.841768,\n-0.095671, 0.097545, -0.480970, -0.222807, 0.195001, -0.955160, 0.895121, 0.429028, -0.121213, -0.386845, 0.881660, 0.270234, 0.277149, 0.478121,\n-0.097545, 0.000000, -0.490392, -0.162803, 0.000000, -0.986659, 0.889654, 0.432396, -0.146796, -0.424493, 0.902718, 0.070043, 0.264451, 0.537476,\n0.000000, 0.097545, -0.490392, -0.032184, 0.195004, -0.980274, 0.915184, 0.399982, 0.049521, -0.403106, 0.894943, 0.191264, 0.303277, 0.505133,\n-0.159095, 0.277785, -0.384089, -0.292849, 0.555401, -0.778311, 0.907581, 0.417621, -0.043475, -0.307206, 0.716186, 0.626659, 0.280665, 0.333544,\n-0.176777, 0.191342, -0.426777, -0.352417, 0.382711, -0.854011, 0.883472, 0.437048, -0.168719, -0.309846, 0.813373, 0.492361, 0.265072, 0.391051,\n-0.090120, 0.191342, -0.453064, -0.179030, 0.382714, -0.906354, 0.910722, 0.412984, -0.005508, -0.372236, 0.826407, 0.422483, 0.290147, 0.418927,\n-0.135299, -0.353553, -0.326641, -0.272686, -0.707137, -0.652380, 0.576754, 0.422583, -0.699127, -0.768468, 0.568069, -0.294542, 0.174219, 0.737534,\n-0.106304, -0.415735, -0.256640, -0.229404, -0.831354, -0.506186, 0.439662, 0.375467, -0.815918, -0.865682, 0.412003, -0.284340, 0.147889, 0.788507,\n-0.054193, -0.415735, -0.272447, -0.126245, -0.831354, -0.541214, 0.533240, 0.403180, -0.743707, -0.831103, 0.386509, -0.399847, 0.166387, 0.814368,\n-0.176777, 0.191342, -0.426777, -0.352417, 0.382711, -0.854011, 0.883472, 0.437048, -0.168719, -0.309846, 0.813373, 0.492361, 0.265072, 0.391051,\n-0.187665, 0.097545, -0.453063, -0.391219, 0.214340, -0.894989, 0.854975, 0.444502, -0.267274, -0.339559, 0.870264, 0.356847, 0.251210, 0.449541,\n-0.095671, 0.097545, -0.480970, -0.222807, 0.195001, -0.955160, 0.895121, 0.429028, -0.121213, -0.386845, 0.881660, 0.270234, 0.277149, 0.478121,\n-0.106304, -0.415735, -0.256640, -0.229404, -0.831354, -0.506186, 0.439662, 0.375467, -0.815918, -0.865682, 0.412003, -0.284340, 0.147889, 0.788507,\n-0.073223, -0.461940, -0.176777, -0.134816, -0.923819, -0.358306, 0.278951, 0.311597, -0.908347, -0.957085, 0.215029, -0.194297, 0.111219, 0.832233,\n-0.054193, -0.415735, -0.272447, -0.126245, -0.831354, -0.541214, 0.533240, 0.403180, -0.743707, -0.831103, 0.386509, -0.399847, 0.166387, 0.814368,\n-0.187665, 0.097545, -0.453063, -0.391219, 0.214340, -0.894989, 0.854975, 0.444502, -0.267274, -0.339559, 0.870264, 0.356847, 0.251210, 0.449541,\n-0.191342, 0.000000, -0.461939, -0.369614, 0.014067, -0.929079, 0.834379, 0.445033, -0.325202, -0.406693, 0.896575, 0.175370, 0.238072, 0.508437,\n-0.095671, 0.097545, -0.480970, -0.222807, 0.195001, -0.955160, 0.895121, 0.429028, -0.121213, -0.386845, 0.881660, 0.270234, 0.277149, 0.478121,\n-0.037329, 0.490393, -0.090120, -0.087334, 0.976741, -0.195833, 0.744510, 0.194610, 0.638617, -0.657136, 0.091260, 0.748227, 0.403723, 0.144215,\n-0.073223, 0.461940, -0.176777, -0.134132, 0.931233, -0.338842, 0.826294, 0.293856, 0.480508, -0.550138, 0.214426, 0.807075, 0.356819, 0.179254,\n-0.019030, 0.490393, -0.095671, -0.047449, 0.976740, -0.209109, 0.720722, 0.178423, 0.669869, -0.688169, 0.119771, 0.715597, 0.409185, 0.155461,\n-0.073223, -0.461940, -0.176777, -0.134816, -0.923819, -0.358306, 0.278951, 0.311597, -0.908347, -0.957085, 0.215029, -0.194297, 0.111219, 0.832233,\n-0.037329, -0.490393, -0.090120, -0.087334, -0.976741, -0.195833, -0.029583, 0.199040, -0.979545, -0.996041, 0.082342, 0.033505, 0.059830, 0.862660,\n-0.019030, -0.490393, -0.095671, -0.047449, -0.976740, -0.209109, 0.005107, 0.209105, -0.977880, -0.998869, 0.047031, 0.006975, 0.062791, 0.875124,\n-0.191342, 0.000000, -0.461939, -0.369614, 0.014067, -0.929079, 0.834379, 0.445033, -0.325202, -0.406693, 0.896575, 0.175370, 0.238072, 0.508437,\n-0.187665, -0.097545, -0.453063, -0.404872, -0.195001, -0.893338, 0.776134, 0.443237, -0.448505, -0.485196, 0.873920, 0.029134, 0.224815, 0.567268,\n-0.095671, -0.097545, -0.480970, -0.222807, -0.195001, -0.955160, 0.850108, 0.440699, -0.288273, -0.479884, 0.874796, -0.066654, 0.251234, 0.596552,\n-0.073223, 0.461940, -0.176777, -0.134132, 0.931233, -0.338842, 0.826294, 0.293856, 0.480508, -0.550138, 0.214426, 0.807075, 0.356819, 0.179254,\n-0.106304, 0.415735, -0.256640, -0.202041, 0.849271, -0.487769, 0.890927, 0.366210, 0.268587, -0.400183, 0.382977, 0.832576, 0.323603, 0.225532,\n-0.037329, 0.461940, -0.187665, -0.073153, 0.918409, -0.388811, 0.820704, 0.276940, 0.499749, -0.577847, 0.278718, 0.767079, 0.369501, 0.197772,\n-0.187665, -0.097545, -0.453063, -0.404872, -0.195001, -0.893338, 0.776134, 0.443237, -0.448505, -0.485196, 0.873920, 0.029134, 0.224815, 0.567268,\n-0.176777, -0.191342, -0.426777, -0.352417, -0.382711, -0.854011, 0.746183, 0.435847, -0.503238, -0.571178, 0.810838, -0.127660, 0.210574, 0.625544,\n-0.095671, -0.097545, -0.480970, -0.222807, -0.195001, -0.955160, 0.850108, 0.440699, -0.288273, -0.479884, 0.874796, -0.066654, 0.251234, 0.596552,\n-0.106304, 0.415735, -0.256640, -0.202041, 0.849271, -0.487769, 0.890927, 0.366210, 0.268587, -0.400183, 0.382977, 0.832576, 0.323603, 0.225532,\n-0.135299, 0.353553, -0.326641, -0.276827, 0.716973, -0.639779, 0.909646, 0.410108, 0.065994, -0.304417, 0.566071, 0.766090, 0.299422, 0.277880,\n-0.054193, 0.415735, -0.272448, -0.123852, 0.820324, -0.558327, 0.891297, 0.339289, 0.300788, -0.458808, 0.451562, 0.765236, 0.341615, 0.248277,\n-0.176777, -0.191342, -0.426777, -0.352417, -0.382711, -0.854011, 0.746183, 0.435847, -0.503238, -0.571178, 0.810838, -0.127660, 0.210574, 0.625544,\n-0.159095, -0.277785, -0.384089, -0.292849, -0.555401, -0.778311, 0.702292, 0.427450, -0.569274, -0.654524, 0.709832, -0.260262, 0.194249, 0.682630,\n-0.090120, -0.191342, -0.453064, -0.179030, -0.382715, -0.906354, 0.828764, 0.437784, -0.348562, -0.538512, 0.809104, -0.235279, 0.236558, 0.654833,\n-0.135299, 0.353553, -0.326641, -0.276827, 0.716973, -0.639779, 0.909646, 0.410108, 0.065994, -0.304417, 0.566071, 0.766090, 0.299422, 0.277880,\n-0.159095, 0.277785, -0.384089, -0.292849, 0.555401, -0.778311, 0.907581, 0.417621, -0.043475, -0.307206, 0.716186, 0.626659, 0.280665, 0.333544,\n-0.068975, 0.353553, -0.346760, -0.140171, 0.707135, -0.693046, 0.904749, 0.375819, 0.200471, -0.400546, 0.599626, 0.692828, 0.320886, 0.303136,\n-0.159095, -0.277785, -0.384089, -0.292849, -0.555401, -0.778311, 0.702292, 0.427450, -0.569274, -0.654524, 0.709832, -0.260262, 0.194249, 0.682630,\n-0.135299, -0.353553, -0.326641, -0.272686, -0.707137, -0.652380, 0.576754, 0.422583, -0.699127, -0.768468, 0.568069, -0.294542, 0.174219, 0.737534,\n-0.068975, -0.353553, -0.346760, -0.140173, -0.707136, -0.693044, 0.689218, 0.432850, -0.581050, -0.710846, 0.559118, -0.426714, 0.196860, 0.765537,\n-0.272447, -0.097545, -0.407746, -0.558298, -0.214342, -0.801474, 0.681722, 0.432038, -0.590422, -0.476278, 0.873807, 0.098084, 0.198820, 0.538176,\n-0.256640, -0.191342, -0.384089, -0.512253, -0.382709, -0.768850, 0.644036, 0.421066, -0.638688, -0.572971, 0.819163, -0.026007, 0.185294, 0.596918,\n-0.187665, -0.097545, -0.453063, -0.404872, -0.195001, -0.893338, 0.776134, 0.443237, -0.448505, -0.485196, 0.873920, 0.029134, 0.224815, 0.567268,\n-0.154329, 0.415735, -0.230970, -0.323634, 0.812812, -0.484353, 0.918254, 0.393264, 0.046397, -0.251390, 0.419638, 0.872185, 0.305371, 0.200714,\n-0.196424, 0.353553, -0.293969, -0.413158, 0.692995, -0.590812, 0.894119, 0.431785, -0.118799, -0.194508, 0.566648, 0.800672, 0.277352, 0.250728,\n-0.135299, 0.353553, -0.326641, -0.276827, 0.716973, -0.639779, 0.909646, 0.410108, 0.065994, -0.304417, 0.566071, 0.766090, 0.299422, 0.277880,\n-0.256640, -0.191342, -0.384089, -0.512253, -0.382709, -0.768850, 0.644036, 0.421066, -0.638688, -0.572971, 0.819163, -0.026007, 0.185294, 0.596918,\n-0.230970, -0.277785, -0.345671, -0.439067, -0.555400, -0.706223, 0.596184, 0.407948, -0.691479, -0.675894, 0.722059, -0.147644, 0.170279, 0.654825,\n-0.176777, -0.191342, -0.426777, -0.352417, -0.382711, -0.854011, 0.746183, 0.435847, -0.503238, -0.571178, 0.810838, -0.127660, 0.210574, 0.625544,\n-0.196424, 0.353553, -0.293969, -0.413158, 0.692995, -0.590812, 0.894119, 0.431785, -0.118799, -0.194508, 0.566648, 0.800672, 0.277352, 0.250728,\n-0.230970, 0.277785, -0.345671, -0.439067, 0.555400, -0.706223, 0.873457, 0.447995, -0.190718, -0.209973, 0.700842, 0.681712, 0.256377, 0.305165,\n-0.135299, 0.353553, -0.326641, -0.276827, 0.716973, -0.639779, 0.909646, 0.410108, 0.065994, -0.304417, 0.566071, 0.766090, 0.299422, 0.277880,\n-0.230970, -0.277785, -0.345671, -0.439067, -0.555400, -0.706223, 0.596184, 0.407948, -0.691479, -0.675894, 0.722059, -0.147644, 0.170279, 0.654825,\n-0.196424, -0.353553, -0.293969, -0.394721, -0.707137, -0.586645, 0.482177, 0.384077, -0.787394, -0.782293, 0.593524, -0.189067, 0.152459, 0.711126,\n-0.135299, -0.353553, -0.326641, -0.272686, -0.707137, -0.652380, 0.576754, 0.422583, -0.699127, -0.768468, 0.568069, -0.294542, 0.174219, 0.737534,\n-0.230970, 0.277785, -0.345671, -0.439067, 0.555400, -0.706223, 0.873457, 0.447995, -0.190718, -0.209973, 0.700842, 0.681712, 0.256377, 0.305165,\n-0.256640, 0.191342, -0.384089, -0.512253, 0.382709, -0.768850, 0.830430, 0.449048, -0.329760, -0.221181, 0.806241, 0.548685, 0.239550, 0.362041,\n-0.176777, 0.191342, -0.426777, -0.352417, 0.382711, -0.854011, 0.883472, 0.437048, -0.168719, -0.309846, 0.813373, 0.492361, 0.265072, 0.391051,\n-0.196424, -0.353553, -0.293969, -0.394721, -0.707137, -0.586645, 0.482177, 0.384077, -0.787394, -0.782293, 0.593524, -0.189067, 0.152459, 0.711126,\n-0.154329, -0.415735, -0.230970, -0.323751, -0.831354, -0.451704, 0.341020, 0.342794, -0.875327, -0.881708, 0.438268, -0.174676, 0.129782, 0.764530,\n-0.106304, -0.415735, -0.256640, -0.229404, -0.831354, -0.506186, 0.439662, 0.375467, -0.815918, -0.865682, 0.412003, -0.284340, 0.147889, 0.788507,\n-0.256640, 0.191342, -0.384089, -0.512253, 0.382709, -0.768850, 0.830430, 0.449048, -0.329760, -0.221181, 0.806241, 0.548685, 0.239550, 0.362041,\n-0.272447, 0.097545, -0.407746, -0.544372, 0.195104, -0.815839, 0.789456, 0.447951, -0.419642, -0.282887, 0.872904, 0.397508, 0.225087, 0.420258,\n-0.187665, 0.097545, -0.453063, -0.391219, 0.214340, -0.894989, 0.854975, 0.444502, -0.267274, -0.339559, 0.870264, 0.356847, 0.251210, 0.449541,\n-0.154329, -0.415735, -0.230970, -0.323751, -0.831354, -0.451704, 0.341020, 0.342794, -0.875327, -0.881708, 0.438268, -0.174676, 0.129782, 0.764530,\n-0.106304, -0.461940, -0.159095, -0.202130, -0.923819, -0.325118, 0.205477, 0.284579, -0.936373, -0.962027, 0.249471, -0.110763, 0.098921, 0.812641,\n-0.106304, -0.415735, -0.256640, -0.229404, -0.831354, -0.506186, 0.439662, 0.375467, -0.815918, -0.865682, 0.412003, -0.284340, 0.147889, 0.788507,\n-0.272447, 0.097545, -0.407746, -0.544372, 0.195104, -0.815839, 0.789456, 0.447951, -0.419642, -0.282887, 0.872904, 0.397508, 0.225087, 0.420258,\n-0.277785, 0.000000, -0.415734, -0.567155, -0.014068, -0.823491, 0.735303, 0.441781, -0.513965, -0.369902, 0.897691, 0.239424, 0.211808, 0.479137,\n-0.191342, 0.000000, -0.461939, -0.369614, 0.014067, -0.929079, 0.834379, 0.445033, -0.325202, -0.406693, 0.896575, 0.175370, 0.238072, 0.508437,\n-0.054193, 0.490393, -0.081106, -0.123861, 0.976740, -0.175033, 0.764866, 0.206349, 0.610246, -0.629681, 0.058961, 0.774613, 0.399731, 0.132109,\n-0.106304, 0.461940, -0.159095, -0.216376, 0.918409, -0.331219, 0.872556, 0.334106, 0.356398, -0.458757, 0.203827, 0.864868, 0.344837, 0.158918,\n-0.037329, 0.490393, -0.090120, -0.087334, 0.976741, -0.195833, 0.744510, 0.194610, 0.638617, -0.657136, 0.091260, 0.748227, 0.403723, 0.144215,\n-0.106304, -0.461940, -0.159095, -0.202130, -0.923819, -0.325118, 0.205477, 0.284579, -0.936373, -0.962027, 0.249471, -0.110763, 0.098921, 0.812641,\n-0.054193, -0.490393, -0.081106, -0.123861, -0.976741, -0.175033, -0.067419, 0.184267, -0.980561, -0.990961, 0.112595, 0.072931, 0.055167, 0.850885,\n-0.037329, -0.490393, -0.090120, -0.087334, -0.976741, -0.195833, -0.029583, 0.199040, -0.979545, -0.996041, 0.082342, 0.033505, 0.059830, 0.862660,\n-0.277785, 0.000000, -0.415734, -0.567155, -0.014068, -0.823491, 0.735303, 0.441781, -0.513965, -0.369902, 0.897691, 0.239424, 0.211808, 0.479137,\n-0.272447, -0.097545, -0.407746, -0.558298, -0.214342, -0.801474, 0.681722, 0.432038, -0.590422, -0.476278, 0.873807, 0.098084, 0.198820, 0.538176,\n-0.187665, -0.097545, -0.453063, -0.404872, -0.195001, -0.893338, 0.776134, 0.443237, -0.448505, -0.485196, 0.873920, 0.029134, 0.224815, 0.567268,\n-0.106304, 0.461940, -0.159095, -0.216376, 0.918409, -0.331219, 0.872556, 0.334106, 0.356398, -0.458757, 0.203827, 0.864868, 0.344837, 0.158918,\n-0.154329, 0.415735, -0.230970, -0.323634, 0.812812, -0.484353, 0.918254, 0.393264, 0.046397, -0.251390, 0.419638, 0.872185, 0.305371, 0.200714,\n-0.106304, 0.415735, -0.256640, -0.202041, 0.849271, -0.487769, 0.890927, 0.366210, 0.268587, -0.400183, 0.382977, 0.832576, 0.323603, 0.225532,\n-0.196424, -0.415735, -0.196424, -0.405652, -0.831354, -0.379865, 0.233381, 0.307611, -0.922447, -0.886823, 0.458619, -0.056686, 0.111798, 0.742764,\n-0.135299, -0.461940, -0.135299, -0.256643, -0.929163, -0.266065, 0.100015, 0.248275, -0.963512, -0.962627, 0.270377, -0.015682, 0.085985, 0.794966,\n-0.154329, -0.415735, -0.230970, -0.323751, -0.831354, -0.451704, 0.341020, 0.342794, -0.875327, -0.881708, 0.438268, -0.174676, 0.129782, 0.764530,\n-0.346760, 0.097545, -0.346760, -0.682044, 0.175715, -0.709887, 0.700637, 0.435191, -0.565435, -0.213770, 0.880404, 0.423309, 0.198358, 0.391169,\n-0.353553, 0.000000, -0.353553, -0.729930, 0.000000, -0.683522, 0.619322, 0.423115, -0.661372, -0.288938, 0.906260, 0.308556, 0.185261, 0.450486,\n-0.277785, 0.000000, -0.415734, -0.567155, -0.014068, -0.823491, 0.735303, 0.441781, -0.513965, -0.369902, 0.897691, 0.239424, 0.211808, 0.479137,\n-0.068975, 0.490393, -0.068975, -0.155628, 0.976741, -0.147506, 0.781762, 0.213065, 0.586047, -0.607565, 0.023093, 0.793934, 0.397636, 0.119453,\n-0.135299, 0.461940, -0.135299, -0.272685, 0.923888, -0.268466, 0.884277, 0.350616, 0.308420, -0.408884, 0.141302, 0.901581, 0.333754, 0.137005,\n-0.054193, 0.490393, -0.081106, -0.123861, 0.976740, -0.175033, 0.764866, 0.206349, 0.610246, -0.629681, 0.058961, 0.774613, 0.399731, 0.132109,\n-0.135299, -0.461940, -0.135299, -0.256643, -0.929163, -0.266065, 0.100015, 0.248275, -0.963512, -0.962627, 0.270377, -0.015682, 0.085985, 0.794966,\n-0.068975, -0.490393, -0.068975, -0.137937, -0.980789, -0.137937, -0.127161, 0.155652, -0.979593, -0.984645, 0.120749, 0.126070, 0.049184, 0.840082,\n-0.054193, -0.490393, -0.081106, -0.123861, -0.976741, -0.175033, -0.067419, 0.184267, -0.980561, -0.990961, 0.112595, 0.072931, 0.055167, 0.850885,\n-0.353553, 0.000000, -0.353553, -0.729930, 0.000000, -0.683522, 0.619322, 0.423115, -0.661372, -0.288938, 0.906260, 0.308556, 0.185261, 0.450486,\n-0.346760, -0.097545, -0.346760, -0.693076, -0.195103, -0.693960, 0.583791, 0.412832, -0.699113, -0.425191, 0.888027, 0.174986, 0.172843, 0.510158,\n-0.277785, 0.000000, -0.415734, -0.567155, -0.014068, -0.823491, 0.735303, 0.441781, -0.513965, -0.369902, 0.897691, 0.239424, 0.211808, 0.479137,\n-0.135299, 0.461940, -0.135299, -0.272685, 0.923888, -0.268466, 0.884277, 0.350616, 0.308420, -0.408884, 0.141302, 0.901581, 0.333754, 0.137005,\n-0.196424, 0.415735, -0.196424, -0.394718, 0.831489, -0.390926, 0.904146, 0.427203, -0.004267, -0.178287, 0.348073, 0.920358, 0.286589, 0.174154,\n-0.106304, 0.461940, -0.159095, -0.216376, 0.918409, -0.331219, 0.872556, 0.334106, 0.356398, -0.458757, 0.203827, 0.864868, 0.344837, 0.158918,\n-0.346760, -0.097545, -0.346760, -0.693076, -0.195103, -0.693960, 0.583791, 0.412832, -0.699113, -0.425191, 0.888027, 0.174986, 0.172843, 0.510158,\n-0.326641, -0.191342, -0.326641, -0.652404, -0.382712, -0.654142, 0.524934, 0.394366, -0.754267, -0.550111, 0.832832, 0.061393, 0.160290, 0.569759,\n-0.272447, -0.097545, -0.407746, -0.558298, -0.214342, -0.801474, 0.681722, 0.432038, -0.590422, -0.476278, 0.873807, 0.098084, 0.198820, 0.538176,\n-0.196424, 0.415735, -0.196424, -0.394718, 0.831489, -0.390926, 0.904146, 0.427203, -0.004267, -0.178287, 0.348073, 0.920358, 0.286589, 0.174154,\n-0.250000, 0.353553, -0.250000, -0.501585, 0.707137, -0.498368, 0.862463, 0.453755, -0.224195, -0.070115, 0.540952, 0.838126, 0.254155, 0.222217,\n-0.154329, 0.415735, -0.230970, -0.323634, 0.812812, -0.484353, 0.918254, 0.393264, 0.046397, -0.251390, 0.419638, 0.872185, 0.305371, 0.200714,\n-0.326641, -0.191342, -0.326641, -0.652404, -0.382712, -0.654142, 0.524934, 0.394366, -0.754267, -0.550111, 0.832832, 0.061393, 0.160290, 0.569759,\n-0.293969, -0.277785, -0.293969, -0.568407, -0.555401, -0.606996, 0.477308, 0.378320, -0.793127, -0.672364, 0.738768, -0.046353, 0.146753, 0.628844,\n-0.256640, -0.191342, -0.384089, -0.512253, -0.382709, -0.768850, 0.644036, 0.421066, -0.638688, -0.572971, 0.819163, -0.026007, 0.185294, 0.596918,\n-0.250000, 0.353553, -0.250000, -0.501585, 0.707137, -0.498368, 0.862463, 0.453755, -0.224195, -0.070115, 0.540952, 0.838126, 0.254155, 0.222217,\n-0.293969, 0.277785, -0.293969, -0.568407, 0.555401, -0.606996, 0.818212, 0.458957, -0.346249, -0.086044, 0.693592, 0.715211, 0.230950, 0.275958,\n-0.196424, 0.353553, -0.293969, -0.413158, 0.692995, -0.590812, 0.894119, 0.431785, -0.118799, -0.194508, 0.566648, 0.800672, 0.277352, 0.250728,\n-0.293969, -0.277785, -0.293969, -0.568407, -0.555401, -0.606996, 0.477308, 0.378320, -0.793127, -0.672364, 0.738768, -0.046353, 0.146753, 0.628844,\n-0.250000, -0.353553, -0.250000, -0.501585, -0.707137, -0.498368, 0.366360, 0.348243, -0.862848, -0.783933, 0.615157, -0.083856, 0.131139, 0.686825,\n-0.196424, -0.353553, -0.293969, -0.394721, -0.707137, -0.586645, 0.482177, 0.384077, -0.787394, -0.782293, 0.593524, -0.189067, 0.152459, 0.711126,\n-0.293969, 0.277785, -0.293969, -0.568407, 0.555401, -0.606996, 0.818212, 0.458957, -0.346249, -0.086044, 0.693592, 0.715211, 0.230950, 0.275958,\n-0.326641, 0.191342, -0.326641, -0.665784, 0.369646, -0.648147, 0.739250, 0.444604, -0.505803, -0.105249, 0.813449, 0.572034, 0.213116, 0.332732,\n-0.256640, 0.191342, -0.384089, -0.512253, 0.382709, -0.768850, 0.830430, 0.449048, -0.329760, -0.221181, 0.806241, 0.548685, 0.239550, 0.362041,\n-0.250000, -0.353553, -0.250000, -0.501585, -0.707137, -0.498368, 0.366360, 0.348243, -0.862848, -0.783933, 0.615157, -0.083856, 0.131139, 0.686825,\n-0.196424, -0.415735, -0.196424, -0.405652, -0.831354, -0.379865, 0.233381, 0.307611, -0.922447, -0.886823, 0.458619, -0.056686, 0.111798, 0.742764,\n-0.154329, -0.415735, -0.230970, -0.323751, -0.831354, -0.451704, 0.341020, 0.342794, -0.875327, -0.881708, 0.438268, -0.174676, 0.129782, 0.764530,\n-0.326641, 0.191342, -0.326641, -0.665784, 0.369646, -0.648147, 0.739250, 0.444604, -0.505803, -0.105249, 0.813449, 0.572034, 0.213116, 0.332732,\n-0.346760, 0.097545, -0.346760, -0.682044, 0.175715, -0.709887, 0.700637, 0.435191, -0.565435, -0.213770, 0.880404, 0.423309, 0.198358, 0.391169,\n-0.272447, 0.097545, -0.407746, -0.544372, 0.195104, -0.815839, 0.789456, 0.447951, -0.419642, -0.282887, 0.872904, 0.397508, 0.225087, 0.420258,\n-0.345671, -0.277785, -0.230970, -0.675904, -0.555401, -0.484442, 0.342223, 0.345636, -0.873739, -0.651508, 0.757561, 0.040474, 0.123337, 0.605312,\n-0.293969, -0.353553, -0.196424, -0.589174, -0.707137, -0.390937, 0.243911, 0.305609, -0.920386, -0.770505, 0.637379, 0.008307, 0.109967, 0.665096,\n-0.250000, -0.353553, -0.250000, -0.501585, -0.707137, -0.498368, 0.366360, 0.348243, -0.862848, -0.783933, 0.615157, -0.083856, 0.131139, 0.686825,\n-0.345671, 0.277785, -0.230970, -0.675904, 0.555401, -0.484442, 0.733379, 0.441885, -0.516616, 0.064220, 0.699210, 0.712026, 0.203700, 0.246751,\n-0.384089, 0.191342, -0.256640, -0.784659, 0.382534, -0.487831, 0.618375, 0.427315, -0.659556, 0.043165, 0.818719, 0.572570, 0.185222, 0.304054,\n-0.326641, 0.191342, -0.326641, -0.665784, 0.369646, -0.648147, 0.739250, 0.444604, -0.505803, -0.105249, 0.813449, 0.572034, 0.213116, 0.332732,\n-0.293969, -0.353553, -0.196424, -0.589174, -0.707137, -0.390937, 0.243911, 0.305609, -0.920386, -0.770505, 0.637379, 0.008307, 0.109967, 0.665096,\n-0.230970, -0.415735, -0.154329, -0.471967, -0.831354, -0.293425, 0.130413, 0.263329, -0.955850, -0.872466, 0.488269, 0.019939, 0.093775, 0.723522,\n-0.196424, -0.415735, -0.196424, -0.405652, -0.831354, -0.379865, 0.233381, 0.307611, -0.922447, -0.886823, 0.458619, -0.056686, 0.111798, 0.742764,\n-0.384089, 0.191342, -0.256640, -0.784659, 0.382534, -0.487831, 0.618375, 0.427315, -0.659556, 0.043165, 0.818719, 0.572570, 0.185222, 0.304054,\n-0.407746, 0.097545, -0.272447, -0.797191, 0.195002, -0.571368, 0.593819, 0.424021, -0.683802, -0.108956, 0.884390, 0.453853, 0.170581, 0.363231,\n-0.326641, 0.191342, -0.326641, -0.665784, 0.369646, -0.648147, 0.739250, 0.444604, -0.505803, -0.105249, 0.813449, 0.572034, 0.213116, 0.332732,\n-0.230970, -0.415735, -0.154329, -0.471967, -0.831354, -0.293425, 0.130413, 0.263329, -0.955850, -0.872466, 0.488269, 0.019939, 0.093775, 0.723522,\n-0.159095, -0.461940, -0.106304, -0.328037, -0.916136, -0.230404, 0.063299, 0.222035, -0.972982, -0.943929, 0.327507, 0.041678, 0.072524, 0.779430,\n-0.196424, -0.415735, -0.196424, -0.405652, -0.831354, -0.379865, 0.233381, 0.307611, -0.922447, -0.886823, 0.458619, -0.056686, 0.111798, 0.742764,\n-0.407746, 0.097545, -0.272447, -0.797191, 0.195002, -0.571368, 0.593819, 0.424021, -0.683802, -0.108956, 0.884390, 0.453853, 0.170581, 0.363231,\n-0.415734, 0.000000, -0.277785, -0.849252, 0.000000, -0.527987, 0.486058, 0.390539, -0.781810, -0.205283, 0.921321, 0.330192, 0.158051, 0.423412,\n-0.353553, 0.000000, -0.353553, -0.729930, 0.000000, -0.683522, 0.619322, 0.423115, -0.661372, -0.288938, 0.906260, 0.308556, 0.185261, 0.450486,\n-0.081106, 0.490393, -0.054193, -0.181415, 0.976741, -0.114308, 0.793396, 0.214049, 0.569830, -0.593424, -0.016042, 0.804730, 0.397996, 0.106635,\n-0.159095, 0.461940, -0.106304, -0.299778, 0.931233, -0.207216, 0.881538, 0.353432, 0.313013, -0.395877, 0.076196, 0.915137, 0.323912, 0.113774,\n-0.068975, 0.490393, -0.068975, -0.155628, 0.976741, -0.147506, 0.781762, 0.213065, 0.586047, -0.607565, 0.023093, 0.793934, 0.397636, 0.119453,\n-0.159095, -0.461940, -0.106304, -0.328037, -0.916136, -0.230404, 0.063299, 0.222035, -0.972982, -0.943929, 0.327507, 0.041678, 0.072524, 0.779430,\n-0.081106, -0.490393, -0.054193, -0.188870, -0.973859, -0.126198, -0.111340, 0.148919, -0.982561, -0.971871, 0.166960, 0.166104, 0.042176, 0.830481,\n-0.135299, -0.461940, -0.135299, -0.256643, -0.929163, -0.266065, 0.100015, 0.248275, -0.963512, -0.962627, 0.270377, -0.015682, 0.085985, 0.794966,\n-0.415734, 0.000000, -0.277785, -0.849252, 0.000000, -0.527987, 0.486058, 0.390539, -0.781810, -0.205283, 0.921321, 0.330192, 0.158051, 0.423412,\n-0.407746, -0.097545, -0.272447, -0.815145, -0.195102, -0.545412, 0.450428, 0.378534, -0.808595, -0.365600, 0.903621, 0.223170, 0.146537, 0.484073,\n-0.353553, 0.000000, -0.353553, -0.729930, 0.000000, -0.683522, 0.619322, 0.423115, -0.661372, -0.288938, 0.906260, 0.308556, 0.185261, 0.450486,\n-0.159095, 0.461940, -0.106304, -0.299778, 0.931233, -0.207216, 0.881538, 0.353432, 0.313013, -0.395877, 0.076196, 0.915137, 0.323912, 0.113774,\n-0.230970, 0.415735, -0.154329, -0.438981, 0.849271, -0.293317, 0.895086, 0.441771, -0.060488, -0.108067, 0.274177, 0.955588, 0.266710, 0.146213,\n-0.135299, 0.461940, -0.135299, -0.272685, 0.923888, -0.268466, 0.884277, 0.350616, 0.308420, -0.408884, 0.141302, 0.901581, 0.333754, 0.137005,\n-0.407746, -0.097545, -0.272447, -0.815145, -0.195102, -0.545412, 0.450428, 0.378534, -0.808595, -0.365600, 0.903621, 0.223170, 0.146537, 0.484073,\n-0.384089, -0.191342, -0.256640, -0.767487, -0.382710, -0.514293, 0.390974, 0.356338, -0.848624, -0.510347, 0.850256, 0.128881, 0.135222, 0.544826,\n-0.346760, -0.097545, -0.346760, -0.693076, -0.195103, -0.693960, 0.583791, 0.412832, -0.699113, -0.425191, 0.888027, 0.174986, 0.172843, 0.510158,\n-0.230970, 0.415735, -0.154329, -0.438981, 0.849271, -0.293317, 0.895086, 0.441771, -0.060488, -0.108067, 0.274177, 0.955588, 0.266710, 0.146213,\n-0.293969, 0.353553, -0.196424, -0.585615, 0.716973, -0.378161, 0.805466, 0.462339, -0.370765, 0.088480, 0.520278, 0.849401, 0.229053, 0.192977,\n-0.196424, 0.415735, -0.196424, -0.394718, 0.831489, -0.390926, 0.904146, 0.427203, -0.004267, -0.178287, 0.348073, 0.920358, 0.286589, 0.174154,\n-0.384089, -0.191342, -0.256640, -0.767487, -0.382710, -0.514293, 0.390974, 0.356338, -0.848624, -0.510347, 0.850256, 0.128881, 0.135222, 0.544826,\n-0.345671, -0.277785, -0.230970, -0.675904, -0.555401, -0.484442, 0.342223, 0.345636, -0.873739, -0.651508, 0.757561, 0.040474, 0.123337, 0.605312,\n-0.326641, -0.191342, -0.326641, -0.652404, -0.382712, -0.654142, 0.524934, 0.394366, -0.754267, -0.550111, 0.832832, 0.061393, 0.160290, 0.569759,\n-0.293969, 0.353553, -0.196424, -0.585615, 0.716973, -0.378161, 0.805466, 0.462339, -0.370765, 0.088480, 0.520278, 0.849401, 0.229053, 0.192977,\n-0.345671, 0.277785, -0.230970, -0.675904, 0.555401, -0.484442, 0.733379, 0.441885, -0.516616, 0.064220, 0.699210, 0.712026, 0.203700, 0.246751,\n-0.250000, 0.353553, -0.250000, -0.501585, 0.707137, -0.498368, 0.862463, 0.453755, -0.224195, -0.070115, 0.540952, 0.838126, 0.254155, 0.222217,\n-0.453063, -0.097545, -0.187665, -0.905885, -0.195102, -0.375909, 0.300401, 0.329673, -0.895028, -0.299521, 0.922643, 0.242934, 0.119628, 0.460773,\n-0.426777, -0.191342, -0.176777, -0.853073, -0.382711, -0.354682, 0.244429, 0.307448, -0.919636, -0.462279, 0.869583, 0.173560, 0.109843, 0.522841,\n-0.407746, -0.097545, -0.272447, -0.815145, -0.195102, -0.545412, 0.450428, 0.378534, -0.808595, -0.365600, 0.903621, 0.223170, 0.146537, 0.484073,\n-0.256640, 0.415735, -0.106304, -0.526547, 0.823576, -0.210884, 0.829709, 0.443764, -0.338611, 0.142178, 0.329869, 0.933259, 0.244750, 0.117306,\n-0.326641, 0.353553, -0.135299, -0.671767, 0.692994, -0.261703, 0.682089, 0.440871, -0.583427, 0.263530, 0.553750, 0.789881, 0.200859, 0.163815,\n-0.293969, 0.353553, -0.196424, -0.585615, 0.716973, -0.378161, 0.805466, 0.462339, -0.370765, 0.088480, 0.520278, 0.849401, 0.229053, 0.192977,\n-0.426777, -0.191342, -0.176777, -0.853073, -0.382711, -0.354682, 0.244429, 0.307448, -0.919636, -0.462279, 0.869583, 0.173560, 0.109843, 0.522841,\n-0.384089, -0.277785, -0.159095, -0.757427, -0.555401, -0.343269, 0.209220, 0.291565, -0.933390, -0.618888, 0.778237, 0.106417, 0.099805, 0.584808,\n-0.384089, -0.191342, -0.256640, -0.767487, -0.382710, -0.514293, 0.390974, 0.356338, -0.848624, -0.510347, 0.850256, 0.128881, 0.135222, 0.544826,\n-0.326641, 0.353553, -0.135299, -0.671767, 0.692994, -0.261703, 0.682089, 0.440871, -0.583427, 0.263530, 0.553750, 0.789881, 0.200859, 0.163815,\n-0.384089, 0.277785, -0.159095, -0.757427, 0.555401, -0.343269, 0.617410, 0.438239, -0.653262, 0.211028, 0.705770, 0.676281, 0.173746, 0.218568,\n-0.293969, 0.353553, -0.196424, -0.585615, 0.716973, -0.378161, 0.805466, 0.462339, -0.370765, 0.088480, 0.520278, 0.849401, 0.229053, 0.192977,\n-0.384089, -0.277785, -0.159095, -0.757427, -0.555401, -0.343269, 0.209220, 0.291565, -0.933390, -0.618888, 0.778237, 0.106417, 0.099805, 0.584808,\n-0.326641, -0.353553, -0.135299, -0.654122, -0.707136, -0.268482, 0.116320, 0.256687, -0.959469, -0.747494, 0.658614, 0.086494, 0.088752, 0.646371,\n-0.293969, -0.353553, -0.196424, -0.589174, -0.707137, -0.390937, 0.243911, 0.305609, -0.920386, -0.770505, 0.637379, 0.008307, 0.109967, 0.665096,\n-0.384089, 0.277785, -0.159095, -0.757427, 0.555401, -0.343269, 0.617410, 0.438239, -0.653262, 0.211028, 0.705770, 0.676281, 0.173746, 0.218568,\n-0.426777, 0.191342, -0.176777, -0.864752, 0.382536, -0.325378, 0.470541, 0.390773, -0.791131, 0.176344, 0.837945, 0.516479, 0.155266, 0.277086,\n-0.384089, 0.191342, -0.256640, -0.784659, 0.382534, -0.487831, 0.618375, 0.427315, -0.659556, 0.043165, 0.818719, 0.572570, 0.185222, 0.304054,\n-0.326641, -0.353553, -0.135299, -0.654122, -0.707136, -0.268482, 0.116320, 0.256687, -0.959469, -0.747494, 0.658614, 0.086494, 0.088752, 0.646371,\n-0.256640, -0.415735, -0.106304, -0.520142, -0.831354, -0.195709, 0.020183, 0.217118, -0.975937, -0.853963, 0.510011, 0.103126, 0.075620, 0.707098,\n-0.230970, -0.415735, -0.154329, -0.471967, -0.831354, -0.293425, 0.130413, 0.263329, -0.955850, -0.872466, 0.488269, 0.019939, 0.093775, 0.723522,\n-0.426777, 0.191342, -0.176777, -0.864752, 0.382536, -0.325378, 0.470541, 0.390773, -0.791131, 0.176344, 0.837945, 0.516479, 0.155266, 0.277086,\n-0.453063, 0.097545, -0.187665, -0.893339, 0.195000, -0.404871, 0.449384, 0.386693, -0.805309, 0.000144, 0.901072, 0.433670, 0.141332, 0.337487,\n-0.384089, 0.191342, -0.256640, -0.784659, 0.382534, -0.487831, 0.618375, 0.427315, -0.659556, 0.043165, 0.818719, 0.572570, 0.185222, 0.304054,\n-0.256640, -0.415735, -0.106304, -0.520142, -0.831354, -0.195709, 0.020183, 0.217118, -0.975937, -0.853963, 0.510011, 0.103126, 0.075620, 0.707098,\n-0.176777, -0.461940, -0.073223, -0.348692, -0.923819, -0.158028, -0.044107, 0.184598, -0.981824, -0.935394, 0.332453, 0.120471, 0.058627, 0.766238,\n-0.230970, -0.415735, -0.154329, -0.471967, -0.831354, -0.293425, 0.130413, 0.263329, -0.955850, -0.872466, 0.488269, 0.019939, 0.093775, 0.723522,\n-0.453063, 0.097545, -0.187665, -0.893339, 0.195000, -0.404871, 0.449384, 0.386693, -0.805309, 0.000144, 0.901072, 0.433670, 0.141332, 0.337487,\n-0.461939, 0.000000, -0.191341, -0.935938, 0.000000, -0.352165, 0.330780, 0.343167, -0.879102, -0.119456, 0.940712, 0.317475, 0.129853, 0.398879,\n-0.415734, 0.000000, -0.277785, -0.849252, 0.000000, -0.527987, 0.486058, 0.390539, -0.781810, -0.205283, 0.921321, 0.330192, 0.158051, 0.423412,\n-0.090120, 0.490393, -0.037329, -0.200230, 0.976740, -0.076720, 0.795154, 0.207754, 0.569709, -0.589942, -0.057676, 0.805383, 0.401519, 0.094149,\n-0.176777, 0.461940, -0.073223, -0.348692, 0.923819, -0.158028, 0.896544, 0.377920, 0.231051, -0.291820, 0.053214, 0.954992, 0.315970, 0.089506,\n-0.081106, 0.490393, -0.054193, -0.181415, 0.976741, -0.114308, 0.793396, 0.214049, 0.569830, -0.593424, -0.016042, 0.804730, 0.397996, 0.106635,\n-0.176777, -0.461940, -0.073223, -0.348692, -0.923819, -0.158028, -0.044107, 0.184598, -0.981824, -0.935394, 0.332453, 0.120471, 0.058627, 0.766238,\n-0.090120, -0.490393, -0.037329, -0.200230, -0.976741, -0.076720, -0.201743, 0.117731, -0.972337, -0.956169, 0.177734, 0.232706, 0.034376, 0.822270,\n-0.081106, -0.490393, -0.054193, -0.188870, -0.973859, -0.126198, -0.111340, 0.148919, -0.982561, -0.971871, 0.166960, 0.166104, 0.042176, 0.830481,\n-0.461939, 0.000000, -0.191341, -0.935938, 0.000000, -0.352165, 0.330780, 0.343167, -0.879102, -0.119456, 0.940712, 0.317475, 0.129853, 0.398879,\n-0.453063, -0.097545, -0.187665, -0.905885, -0.195102, -0.375909, 0.300401, 0.329673, -0.895028, -0.299521, 0.922643, 0.242934, 0.119628, 0.460773,\n-0.415734, 0.000000, -0.277785, -0.849252, 0.000000, -0.527987, 0.486058, 0.390539, -0.781810, -0.205283, 0.921321, 0.330192, 0.158051, 0.423412,\n-0.176777, 0.461940, -0.073223, -0.348692, 0.923819, -0.158028, 0.896544, 0.377920, 0.231051, -0.291820, 0.053214, 0.954992, 0.315970, 0.089506,\n-0.256640, 0.415735, -0.106304, -0.526547, 0.823576, -0.210884, 0.829709, 0.443764, -0.338611, 0.142178, 0.329869, 0.933259, 0.244750, 0.117306,\n-0.230970, 0.415735, -0.154329, -0.438981, 0.849271, -0.293317, 0.895086, 0.441771, -0.060488, -0.108067, 0.274177, 0.955588, 0.266710, 0.146213,\n-0.272447, -0.415735, -0.054193, -0.530494, -0.842235, -0.096007, -0.090736, 0.169025, -0.981426, -0.841533, 0.509627, 0.179173, 0.057290, 0.693759,\n-0.187665, -0.461940, -0.037329, -0.361210, -0.929163, -0.078640, -0.150569, 0.141344, -0.978443, -0.919609, 0.340987, 0.195057, 0.044374, 0.755575,\n-0.256640, -0.415735, -0.106304, -0.520142, -0.831354, -0.195709, 0.020183, 0.217118, -0.975937, -0.853963, 0.510011, 0.103126, 0.075620, 0.707098,\n-0.480970, 0.097545, -0.095671, -0.956311, 0.208861, -0.204566, 0.264441, 0.319607, -0.909902, 0.126073, 0.925939, 0.356009, 0.110271, 0.315079,\n-0.490392, 0.000000, -0.097545, -0.986658, 0.000000, -0.162807, 0.156253, 0.280865, -0.946942, -0.044537, 0.961857, 0.269905, 0.100444, 0.377879,\n-0.461939, 0.000000, -0.191341, -0.935938, 0.000000, -0.352165, 0.330780, 0.343167, -0.879102, -0.119456, 0.940712, 0.317475, 0.129853, 0.398879,\n-0.095671, 0.490393, -0.019030, -0.191324, 0.980789, -0.038055, 0.769801, 0.173994, 0.614111, -0.685547, -0.105782, 0.720302, 0.409016, 0.082641,\n-0.187665, 0.461940, -0.037329, -0.361210, 0.929163, -0.078640, 0.876848, 0.367143, 0.310393, -0.352518, -0.057991, 0.934007, 0.311350, 0.064544,\n-0.090120, 0.490393, -0.037329, -0.200230, 0.976740, -0.076720, 0.795154, 0.207754, 0.569709, -0.589942, -0.057676, 0.805383, 0.401519, 0.094149,\n-0.187665, -0.461940, -0.037329, -0.361210, -0.929163, -0.078640, -0.150569, 0.141344, -0.978443, -0.919609, 0.340987, 0.195057, 0.044374, 0.755575,\n-0.095671, -0.490393, -0.019030, -0.191324, -0.980789, -0.038055, -0.260965, 0.088206, -0.961310, -0.944893, 0.173551, 0.277593, 0.025974, 0.815602,\n-0.090120, -0.490393, -0.037329, -0.200230, -0.976741, -0.076720, -0.201743, 0.117731, -0.972337, -0.956169, 0.177734, 0.232706, 0.034376, 0.822270,\n-0.490392, 0.000000, -0.097545, -0.986658, 0.000000, -0.162807, 0.156253, 0.280865, -0.946942, -0.044537, 0.961857, 0.269905, 0.100444, 0.377879,\n-0.480970, -0.097545, -0.095671, -0.961814, -0.195104, -0.191958, 0.135158, 0.271299, -0.952958, -0.238214, 0.942091, 0.236049, 0.091945, 0.441097,\n-0.461939, 0.000000, -0.191341, -0.935938, 0.000000, -0.352165, 0.330780, 0.343167, -0.879102, -0.119456, 0.940712, 0.317475, 0.129853, 0.398879,\n-0.187665, 0.461940, -0.037329, -0.361210, 0.929163, -0.078640, 0.915703, 0.337518, -0.218104, 0.165116, 0.146733, 0.975298, 0.311350, 0.064544,\n-0.272447, 0.415735, -0.054193, -0.530494, 0.842235, -0.096007, 0.809223, 0.469433, -0.353257, 0.225910, 0.249629, 0.941621, 0.218761, 0.087986,\n-0.256640, 0.415735, -0.106304, -0.526547, 0.823576, -0.210884, 0.829709, 0.443764, -0.338611, 0.142178, 0.329869, 0.933259, 0.244750, 0.117306,\n-0.480970, -0.097545, -0.095671, -0.961814, -0.195104, -0.191958, 0.135158, 0.271299, -0.952958, -0.238214, 0.942091, 0.236049, 0.091945, 0.441097,\n-0.453064, -0.191342, -0.090120, -0.905874, -0.382714, -0.181443, 0.088287, 0.248358, -0.964637, -0.414650, 0.888692, 0.195685, 0.084004, 0.504490,\n-0.453063, -0.097545, -0.187665, -0.905885, -0.195102, -0.375909, 0.300401, 0.329673, -0.895028, -0.299521, 0.922643, 0.242934, 0.119628, 0.460773,\n-0.272447, 0.415735, -0.054193, -0.530494, 0.842235, -0.096007, 0.809223, 0.469433, -0.353257, 0.225910, 0.249629, 0.941621, 0.218761, 0.087986,\n-0.346760, 0.353553, -0.068975, -0.670363, 0.729954, -0.133341, 0.615738, 0.446929, -0.648938, 0.419535, 0.521063, 0.743293, 0.167754, 0.135879,\n-0.256640, 0.415735, -0.106304, -0.526547, 0.823576, -0.210884, 0.829709, 0.443764, -0.338611, 0.142178, 0.329869, 0.933259, 0.244750, 0.117306,\n-0.453064, -0.191342, -0.090120, -0.905874, -0.382714, -0.181443, 0.088287, 0.248358, -0.964637, -0.414650, 0.888692, 0.195685, 0.084004, 0.504490,\n-0.407746, -0.277785, -0.081106, -0.805228, -0.567206, -0.172874, 0.047157, 0.229362, -0.972198, -0.591182, 0.790524, 0.159922, 0.076022, 0.567870,\n-0.426777, -0.191342, -0.176777, -0.853073, -0.382711, -0.354682, 0.244429, 0.307448, -0.919636, -0.462279, 0.869583, 0.173560, 0.109843, 0.522841,\n-0.346760, 0.353553, -0.068975, -0.670363, 0.729954, -0.133341, 0.615738, 0.446929, -0.648938, 0.419535, 0.521063, 0.743293, 0.167754, 0.135879,\n-0.407746, 0.277785, -0.081106, -0.805228, 0.567206, -0.172874, 0.451509, 0.397513, -0.798826, 0.392085, 0.728018, 0.562369, 0.140040, 0.192730,\n-0.326641, 0.353553, -0.135299, -0.671767, 0.692994, -0.261703, 0.682089, 0.440871, -0.583427, 0.263530, 0.553750, 0.789881, 0.200859, 0.163815,\n-0.407746, -0.277785, -0.081106, -0.805228, -0.567206, -0.172874, 0.047157, 0.229362, -0.972198, -0.591182, 0.790524, 0.159922, 0.076022, 0.567870,\n-0.346760, -0.353553, -0.068975, -0.670363, -0.729954, -0.133341, -0.023254, 0.200274, -0.979464, -0.741723, 0.653981, 0.148849, 0.067389, 0.631045,\n-0.326641, -0.353553, -0.135299, -0.654122, -0.707136, -0.268482, 0.116320, 0.256687, -0.959469, -0.747494, 0.658614, 0.086494, 0.088752, 0.646371,\n-0.407746, 0.277785, -0.081106, -0.805228, 0.567206, -0.172874, 0.451509, 0.397513, -0.798826, 0.392085, 0.728018, 0.562369, 0.140040, 0.192730,\n-0.453064, 0.191342, -0.090120, -0.901814, 0.400775, -0.161586, 0.311384, 0.343424, -0.886059, 0.302315, 0.852331, 0.426776, 0.122669, 0.253098,\n-0.426777, 0.191342, -0.176777, -0.864752, 0.382536, -0.325378, 0.470541, 0.390773, -0.791131, 0.176344, 0.837945, 0.516479, 0.155266, 0.277086,\n-0.346760, -0.353553, -0.068975, -0.670363, -0.729954, -0.133341, -0.023254, 0.200274, -0.979464, -0.741723, 0.653981, 0.148849, 0.067389, 0.631045,\n-0.272447, -0.415735, -0.054193, -0.530494, -0.842235, -0.096007, -0.090736, 0.169025, -0.981426, -0.841533, 0.509627, 0.179173, 0.057290, 0.693759,\n-0.256640, -0.415735, -0.106304, -0.520142, -0.831354, -0.195709, 0.020183, 0.217118, -0.975937, -0.853963, 0.510011, 0.103126, 0.075620, 0.707098,\n-0.453064, 0.191342, -0.090120, -0.901814, 0.400775, -0.161586, 0.311384, 0.343424, -0.886059, 0.302315, 0.852331, 0.426776, 0.122669, 0.253098,\n-0.480970, 0.097545, -0.095671, -0.956311, 0.208861, -0.204566, 0.264441, 0.319607, -0.909902, 0.126073, 0.925939, 0.356009, 0.110271, 0.315079,\n-0.426777, 0.191342, -0.176777, -0.864752, 0.382536, -0.325378, 0.470541, 0.390773, -0.791131, 0.176344, 0.837945, 0.516479, 0.155266, 0.277086,\n-0.095671, 0.490393, 0.019030, -0.209109, 0.976740, 0.047449, 0.634606, 0.098625, 0.766517, -0.730319, -0.188252, 0.656655, 0.438189, 0.065976,\n-0.097545, 0.490393, -0.000000, -0.227152, 0.973859, 0.000000, 0.737153, 0.171940, 0.653485, -0.576689, -0.134512, 0.805814, 0.421200, 0.072930,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n-0.095671, -0.490393, 0.019030, -0.209109, -0.976740, 0.047449, -0.365074, 0.032961, -0.930395, -0.899781, 0.211182, 0.381832, 0.946066, 0.807346,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n-0.097545, -0.490393, -0.000000, -0.227152, -0.973859, 0.000000, -0.300081, 0.069994, -0.951342, -0.917744, 0.214063, 0.334550, 0.955203, 0.810598,\n-0.090120, -0.490393, 0.037329, -0.180222, -0.980789, 0.074651, -0.415009, 0.007012, -0.909790, -0.889096, 0.194896, 0.414155, 0.936766, 0.805903,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n-0.095671, -0.490393, 0.019030, -0.209109, -0.976740, 0.047449, -0.365074, 0.032961, -0.930395, -0.899781, 0.211182, 0.381832, 0.946066, 0.807346,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n-0.090120, 0.490393, 0.037329, -0.195833, 0.976741, 0.087334, 0.450796, 0.010576, 0.892564, -0.819617, -0.211923, 0.532274, 0.458801, 0.062690,\n-0.095671, 0.490393, 0.019030, -0.209109, 0.976740, 0.047449, 0.634606, 0.098625, 0.766517, -0.730319, -0.188252, 0.656655, 0.438189, 0.065976,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n-0.081106, 0.490393, 0.054193, -0.162196, 0.980789, 0.108375, 0.362059, -0.043016, 0.931162, -0.975824, -0.175734, 0.129942, 0.480346, 0.063591,\n-0.090120, 0.490393, 0.037329, -0.195833, 0.976741, 0.087334, 0.450796, 0.010576, 0.892564, -0.819617, -0.211923, 0.532274, 0.458801, 0.062690,\n-0.081106, -0.490393, 0.054193, -0.188870, -0.973859, 0.126198, -0.473215, -0.022346, -0.880663, -0.864501, 0.225849, 0.449032, 0.927429, 0.806293,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n-0.090120, -0.490393, 0.037329, -0.180222, -0.980789, 0.074651, -0.415009, 0.007012, -0.909790, -0.889096, 0.194896, 0.414155, 0.936766, 0.805903,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n-0.068975, 0.490393, 0.068975, -0.160620, 0.973859, 0.160620, 0.049797, -0.154530, 0.986732, -0.984709, -0.169230, 0.041350, 0.499668, 0.068531,\n-0.081106, 0.490393, 0.054193, -0.162196, 0.980789, 0.108375, 0.362059, -0.043016, 0.931162, -0.975824, -0.175734, 0.129942, 0.480346, 0.063591,\n-0.068975, -0.490393, 0.068975, -0.137937, -0.980789, 0.137937, -0.513926, -0.048176, -0.856481, -0.847505, 0.188951, 0.496017, 0.918182, 0.808510,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n-0.081106, -0.490393, 0.054193, -0.188870, -0.973859, 0.126198, -0.473215, -0.022346, -0.880663, -0.864501, 0.225849, 0.449032, 0.927429, 0.806293,\n-0.054193, -0.490393, 0.081106, -0.126198, -0.973859, 0.188870, -0.585134, -0.080668, -0.806914, -0.822650, 0.209137, 0.528685, 0.909154, 0.812515,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n-0.068975, -0.490393, 0.068975, -0.137937, -0.980789, 0.137937, -0.513926, -0.048176, -0.856481, -0.847505, 0.188951, 0.496017, 0.918182, 0.808510,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n-0.054193, 0.490393, 0.081106, -0.114308, 0.976741, 0.181415, 0.007857, -0.181717, 0.983319, -0.992883, -0.118463, 0.012200, 0.514668, 0.076778,\n-0.068975, 0.490393, 0.068975, -0.160620, 0.973859, 0.160620, 0.049797, -0.154530, 0.986732, -0.984709, -0.169230, 0.041350, 0.499668, 0.068531,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n-0.037329, 0.490393, 0.090120, -0.076720, 0.976740, 0.200230, -0.046042, -0.204078, 0.977871, -0.996782, -0.079813, 0.007405, 0.524796, 0.087364,\n-0.054193, 0.490393, 0.081106, -0.114308, 0.976741, 0.181415, 0.007857, -0.181717, 0.983319, -0.992883, -0.118463, 0.012200, 0.514668, 0.076778,\n-0.037329, -0.490393, 0.090120, -0.076720, -0.976741, 0.200230, -0.621151, -0.110267, -0.775894, -0.785454, 0.182906, 0.591276, 0.900481, 0.818239,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n-0.054193, -0.490393, 0.081106, -0.126198, -0.973859, 0.188870, -0.585134, -0.080668, -0.806914, -0.822650, 0.209137, 0.528685, 0.909154, 0.812515,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n-0.019030, 0.490393, 0.095671, -0.036183, 0.976741, 0.211349, -0.052590, -0.213056, 0.975624, -0.999332, -0.036442, -0.002671, 0.530504, 0.099377,\n-0.037329, 0.490393, 0.090120, -0.076720, 0.976740, 0.200230, -0.046042, -0.204078, 0.977871, -0.996782, -0.079813, 0.007405, 0.524796, 0.087364,\n-0.019030, -0.490393, 0.095671, -0.036183, -0.976740, 0.211349, -0.659716, -0.135510, -0.739196, -0.754210, 0.165440, 0.635450, 0.892313, 0.825579,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n-0.037329, -0.490393, 0.090120, -0.076720, -0.976741, 0.200230, -0.621151, -0.110267, -0.775894, -0.785454, 0.182906, 0.591276, 0.900481, 0.818239,\n0.000000, -0.490393, 0.097545, -0.000000, -0.980789, 0.195071, -0.667310, -0.145285, -0.730472, -0.732975, 0.132698, 0.667187, 0.884825, 0.834401,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n-0.019030, -0.490393, 0.095671, -0.036183, -0.976740, 0.211349, -0.659716, -0.135510, -0.739196, -0.754210, 0.165440, 0.635450, 0.892313, 0.825579,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n0.000000, 0.490393, 0.097545, -0.000000, 0.980789, 0.195071, -0.010227, -0.195061, 0.980738, -0.998705, -0.009923, 0.049892, 0.532587, 0.112073,\n-0.019030, 0.490393, 0.095671, -0.036183, 0.976741, 0.211349, -0.052590, -0.213056, 0.975624, -0.999332, -0.036442, -0.002671, 0.530504, 0.099377,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n0.019030, 0.490393, 0.095671, 0.044314, 0.973859, 0.222787, -0.038854, -0.221157, 0.974464, -0.994442, 0.064320, -0.083357, 0.531827, 0.124876,\n0.000000, 0.490393, 0.097545, -0.000000, 0.980789, 0.195071, -0.010227, -0.195061, 0.980738, -0.998705, -0.009923, 0.049892, 0.532587, 0.112073,\n0.019030, -0.490393, 0.095671, 0.044314, -0.973859, 0.222787, -0.736482, -0.182524, -0.651368, -0.682533, 0.133332, 0.718590, 0.878221, 0.844539,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n0.000000, -0.490393, 0.097545, -0.000000, -0.980789, 0.195071, -0.667310, -0.145285, -0.730472, -0.732975, 0.132698, 0.667187, 0.884825, 0.834401,\n0.037329, -0.490393, 0.090120, 0.087334, -0.976741, 0.195832, -0.744511, -0.194610, -0.638616, -0.657112, 0.091266, 0.748248, 0.872759, 0.855785,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n0.019030, -0.490393, 0.095671, 0.044314, -0.973859, 0.222787, -0.736482, -0.182524, -0.651368, -0.682533, 0.133332, 0.718590, 0.878221, 0.844539,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n0.037329, 0.490393, 0.090120, 0.087334, 0.976741, 0.195832, 0.029590, -0.199040, 0.979544, -0.996041, 0.082349, 0.033470, 0.528865, 0.137340,\n0.019030, 0.490393, 0.095671, 0.044314, 0.973859, 0.222787, -0.038854, -0.221157, 0.974464, -0.994442, 0.064320, -0.083357, 0.531827, 0.124876,\n0.054193, -0.490393, 0.081106, 0.123861, -0.976741, 0.175033, -0.764866, -0.206349, -0.610246, -0.629644, 0.058971, 0.774642, 0.868766, 0.867891,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n0.037329, -0.490393, 0.090120, 0.087334, -0.976741, 0.195832, -0.744511, -0.194610, -0.638616, -0.657112, 0.091266, 0.748248, 0.872759, 0.855785,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n0.054193, 0.490393, 0.081106, 0.123861, 0.976741, 0.175033, 0.067422, -0.184267, 0.980561, -0.990960, 0.112591, 0.072953, 0.524202, 0.149115,\n0.037329, 0.490393, 0.090120, 0.087334, 0.976741, 0.195832, 0.029590, -0.199040, 0.979544, -0.996041, 0.082349, 0.033470, 0.528865, 0.137340,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n0.068975, 0.490393, 0.068975, 0.155628, 0.976741, 0.147506, 0.108362, -0.165305, 0.980271, -0.982856, 0.138166, 0.122082, 0.518220, 0.159918,\n0.054193, 0.490393, 0.081106, 0.123861, 0.976741, 0.175033, 0.067422, -0.184267, 0.980561, -0.990960, 0.112591, 0.072953, 0.524202, 0.149115,\n0.068975, -0.490393, 0.068975, 0.137937, -0.980789, 0.137937, -0.762550, -0.194038, -0.617143, -0.658063, 0.013330, 0.752845, 0.866671, 0.880547,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n0.054193, -0.490393, 0.081106, 0.123861, -0.976741, 0.175033, -0.764866, -0.206349, -0.610246, -0.629644, 0.058971, 0.774642, 0.868766, 0.867891,\n0.081106, -0.490393, 0.054193, 0.188870, -0.973859, 0.126198, -0.801537, -0.227128, -0.553128, -0.517361, 0.010550, 0.855703, 0.867032, 0.893366,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n0.068975, -0.490393, 0.068975, 0.137937, -0.980789, 0.137937, -0.762550, -0.194038, -0.617143, -0.658063, 0.013330, 0.752845, 0.866671, 0.880547,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n0.081106, 0.490393, 0.054193, 0.181415, 0.976741, 0.114308, 0.153068, -0.142866, 0.977834, -0.971223, 0.159712, 0.176687, 0.511212, 0.169520,\n0.068975, 0.490393, 0.068975, 0.155628, 0.976741, 0.147506, 0.108362, -0.165305, 0.980271, -0.982856, 0.138166, 0.122082, 0.518220, 0.159918,\n0.090120, -0.490393, 0.037329, 0.200230, -0.976741, 0.076720, -0.795149, -0.207753, -0.569716, -0.589941, -0.057676, 0.805384, 0.870555, 0.905851,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n0.081106, -0.490393, 0.054193, 0.188870, -0.973859, 0.126198, -0.801537, -0.227128, -0.553128, -0.517361, 0.010550, 0.855703, 0.867032, 0.893366,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n0.090120, 0.490393, 0.037329, 0.180222, 0.980789, 0.074651, 0.212929, -0.112995, 0.970512, -0.961087, 0.159432, 0.225594, 0.503412, 0.177731,\n0.081106, 0.490393, 0.054193, 0.181415, 0.976741, 0.114308, 0.153068, -0.142866, 0.977834, -0.971223, 0.159712, 0.176687, 0.511212, 0.169520,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n0.095671, 0.490393, 0.019030, 0.222787, 0.973859, 0.044314, 0.222436, -0.095039, 0.970304, -0.937833, 0.201692, 0.282472, 0.495010, 0.184398,\n0.090120, 0.490393, 0.037329, 0.180222, 0.980789, 0.074651, 0.212929, -0.112995, 0.970512, -0.961087, 0.159432, 0.225594, 0.503412, 0.177731,\n0.095671, -0.490393, 0.019030, 0.191324, -0.980789, 0.038055, -0.769801, -0.173994, -0.614112, -0.685546, -0.105782, 0.720303, 0.878052, 0.917359,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n0.090120, -0.490393, 0.037329, 0.200230, -0.976741, 0.076720, -0.795149, -0.207753, -0.569716, -0.589941, -0.057676, 0.805384, 0.870555, 0.905851,\n0.097545, -0.490393, -0.000000, 0.214348, -0.976741, 0.005744, -0.599533, -0.136207, -0.788675, -0.832607, -0.179636, 0.523924, 0.890236, 0.927070,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n0.095671, -0.490393, 0.019030, 0.191324, -0.980789, 0.038055, -0.769801, -0.173994, -0.614112, -0.685546, -0.105782, 0.720303, 0.878052, 0.917359,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n0.097545, 0.490393, -0.000000, 0.195071, 0.980789, -0.000000, 0.311436, -0.061942, 0.948246, -0.926912, 0.184355, 0.326876, 0.486168, 0.189402,\n0.095671, 0.490393, 0.019030, 0.222787, 0.973859, 0.044314, 0.222436, -0.095039, 0.970304, -0.937833, 0.201692, 0.282472, 0.495010, 0.184398,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n0.095671, 0.490393, -0.019030, 0.222787, 0.973859, -0.044314, 0.347838, -0.036945, 0.936826, -0.900239, 0.222962, 0.373975, 0.477031, 0.192654,\n0.097545, 0.490393, -0.000000, 0.195071, 0.980789, -0.000000, 0.311436, -0.061942, 0.948246, -0.926912, 0.184355, 0.326876, 0.486168, 0.189402,\n0.095671, -0.490393, -0.019030, 0.222787, -0.973859, -0.044314, -0.711124, -0.131252, -0.690706, -0.669132, -0.185817, 0.719538, 0.907224, 0.934025,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n0.097545, -0.490393, -0.000000, 0.214348, -0.976741, 0.005744, -0.599533, -0.136207, -0.788675, -0.832607, -0.179636, 0.523924, 0.890236, 0.927070,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n0.090120, 0.490393, -0.037329, 0.195833, 0.976741, -0.087334, 0.421336, -0.003387, 0.906898, -0.880226, 0.214339, 0.423392, 0.467730, 0.194097,\n0.095671, 0.490393, -0.019030, 0.222787, 0.973859, -0.044314, 0.347838, -0.036945, 0.936826, -0.900239, 0.222962, 0.373975, 0.477031, 0.192654,\n0.090120, -0.490393, -0.037329, 0.195833, -0.976741, -0.087334, -0.450755, -0.010566, -0.892585, -0.819615, -0.211923, 0.532278, 0.927836, 0.937310,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n0.095671, -0.490393, -0.019030, 0.222787, -0.973859, -0.044314, -0.711124, -0.131252, -0.690706, -0.669132, -0.185817, 0.719538, 0.907224, 0.934025,\n0.081106, -0.490393, -0.054193, 0.175033, -0.976741, -0.123861, -0.276227, 0.072033, -0.958389, -0.976416, -0.188355, 0.105515, 0.949381, 0.936409,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n0.090120, -0.490393, -0.037329, 0.195833, -0.976741, -0.087334, -0.450755, -0.010566, -0.892585, -0.819615, -0.211923, 0.532278, 0.927836, 0.937310,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n0.081106, 0.490393, -0.054193, 0.175033, 0.976740, -0.123861, 0.476286, 0.026103, 0.878903, -0.860138, 0.212914, 0.463497, 0.458394, 0.193707,\n0.090120, 0.490393, -0.037329, 0.195833, 0.976741, -0.087334, 0.421336, -0.003387, 0.906898, -0.880226, 0.214339, 0.423392, 0.467730, 0.194097,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n0.068975, 0.490393, -0.068975, 0.147506, 0.976741, -0.155628, 0.528648, 0.055128, 0.847049, -0.838346, 0.206961, 0.504325, 0.449147, 0.191490,\n0.081106, 0.490393, -0.054193, 0.175033, 0.976740, -0.123861, 0.476286, 0.026103, 0.878903, -0.860138, 0.212914, 0.463497, 0.458394, 0.193707,\n0.068975, -0.490393, -0.068975, 0.137937, -0.980789, -0.137937, -0.202289, 0.108434, -0.973304, -0.984450, -0.151062, 0.089663, 0.968703, 0.931469,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n0.081106, -0.490393, -0.054193, 0.175033, -0.976741, -0.123861, -0.276227, 0.072033, -0.958389, -0.976416, -0.188355, 0.105515, 0.949381, 0.936409,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n0.054193, 0.490393, -0.081106, 0.114308, 0.976741, -0.181415, 0.577264, 0.083314, 0.812296, -0.813643, 0.196824, 0.547033, 0.440119, 0.187485,\n0.068975, 0.490393, -0.068975, 0.147506, 0.976741, -0.155628, 0.528648, 0.055128, 0.847049, -0.838346, 0.206961, 0.504325, 0.449147, 0.191490,\n0.054193, -0.490393, -0.081106, 0.126198, -0.973859, -0.188870, -0.249450, 0.153121, -0.956205, -0.917724, -0.186900, 0.350500, 0.983704, 0.923222,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n0.068975, -0.490393, -0.068975, 0.137937, -0.980789, -0.137937, -0.202289, 0.108434, -0.973304, -0.984450, -0.151062, 0.089663, 0.968703, 0.931469,\n0.037329, -0.490393, -0.090120, 0.076720, -0.976740, -0.200230, 0.046042, 0.204078, -0.977871, -0.996783, -0.079808, 0.007381, 0.993832, 0.912636,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n0.054193, -0.490393, -0.081106, 0.126198, -0.973859, -0.188870, 0.072963, 0.198989, -0.977282, -0.975189, -0.086882, -0.203613, 0.983704, 0.923222,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n0.037329, 0.490393, -0.090120, 0.076720, 0.976740, -0.200230, 0.621152, 0.110266, 0.775894, -0.785459, 0.182905, 0.591270, 0.431446, 0.181761,\n0.054193, 0.490393, -0.081106, 0.114308, 0.976741, -0.181415, 0.577264, 0.083314, 0.812296, -0.813643, 0.196824, 0.547033, 0.440119, 0.187485,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n0.019030, 0.490393, -0.095671, 0.036183, 0.976740, -0.211349, 0.659716, 0.135510, 0.739197, -0.754201, 0.165442, 0.635461, 0.423278, 0.174421,\n0.037329, 0.490393, -0.090120, 0.076720, 0.976740, -0.200230, 0.621152, 0.110266, 0.775894, -0.785459, 0.182905, 0.591270, 0.431446, 0.181761,\n0.019030, -0.490393, -0.095671, 0.036183, -0.976740, -0.211349, 0.052590, 0.213056, -0.975624, -0.999332, -0.036443, -0.002670, 0.999539, 0.900623,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n0.037329, -0.490393, -0.090120, 0.076720, -0.976740, -0.200230, 0.046042, 0.204078, -0.977871, -0.996783, -0.079808, 0.007381, 0.993832, 0.912636,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n0.000000, 0.490393, -0.097545, -0.005744, 0.976741, -0.214348, 0.692756, 0.158469, 0.703546, -0.721155, 0.144448, 0.677547, 0.415789, 0.165599,\n0.019030, 0.490393, -0.095671, 0.036183, 0.976740, -0.211349, 0.659716, 0.135510, 0.739197, -0.754201, 0.165442, 0.635461, 0.423278, 0.174421,\n0.000000, -0.490393, -0.097545, -0.005744, -0.976741, -0.214348, 0.034559, 0.214029, -0.976216, -0.999964, 0.006941, -0.004830, 1.001623, 0.887927,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n0.019030, -0.490393, -0.095671, 0.036183, -0.976740, -0.211349, 0.052590, 0.213056, -0.975624, -0.999332, -0.036443, -0.002670, 0.999539, 0.900623,\n-0.019030, -0.490393, -0.095671, -0.047449, -0.976740, -0.209109, 0.005107, 0.209105, -0.977880, -0.998869, 0.047031, 0.006975, 1.000862, 0.875124,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n0.000000, -0.490393, -0.097545, -0.005744, -0.976741, -0.214348, 0.034559, 0.214029, -0.976216, -0.999964, 0.006941, -0.004830, 1.001623, 0.887927,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n-0.019030, 0.490393, -0.095671, -0.047449, 0.976740, -0.209109, 0.720722, 0.178423, 0.669869, -0.688169, 0.119771, 0.715597, 0.409185, 0.155461,\n0.000000, 0.490393, -0.097545, -0.005744, 0.976741, -0.214348, 0.692756, 0.158469, 0.703546, -0.721155, 0.144448, 0.677547, 0.415789, 0.165599,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n-0.037329, 0.490393, -0.090120, -0.087334, 0.976741, -0.195833, 0.744510, 0.194610, 0.638617, -0.657136, 0.091260, 0.748227, 0.403723, 0.144215,\n-0.019030, 0.490393, -0.095671, -0.047449, 0.976740, -0.209109, 0.720722, 0.178423, 0.669869, -0.688169, 0.119771, 0.715597, 0.409185, 0.155461,\n-0.037329, -0.490393, -0.090120, -0.087334, -0.976741, -0.195833, -0.029583, 0.199040, -0.979545, -0.996041, 0.082342, 0.033505, 0.997901, 0.862660,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n-0.019030, -0.490393, -0.095671, -0.047449, -0.976740, -0.209109, 0.005107, 0.209105, -0.977880, -0.998869, 0.047031, 0.006975, 1.000862, 0.875124,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n-0.054193, 0.490393, -0.081106, -0.123861, 0.976740, -0.175033, 0.764866, 0.206349, 0.610246, -0.629681, 0.058961, 0.774613, 0.399731, 0.132109,\n-0.037329, 0.490393, -0.090120, -0.087334, 0.976741, -0.195833, 0.744510, 0.194610, 0.638617, -0.657136, 0.091260, 0.748227, 0.403723, 0.144215,\n-0.054193, -0.490393, -0.081106, -0.123861, -0.976741, -0.175033, -0.067419, 0.184267, -0.980561, -0.990961, 0.112595, 0.072931, 0.993238, 0.850885,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n-0.037329, -0.490393, -0.090120, -0.087334, -0.976741, -0.195833, -0.029583, 0.199040, -0.979545, -0.996041, 0.082342, 0.033505, 0.997901, 0.862660,\n-0.068975, -0.490393, -0.068975, -0.137937, -0.980789, -0.137937, -0.127161, 0.155652, -0.979593, -0.984645, 0.120749, 0.126070, 0.987255, 0.840082,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n-0.054193, -0.490393, -0.081106, -0.123861, -0.976741, -0.175033, -0.067419, 0.184267, -0.980561, -0.990961, 0.112595, 0.072931, 0.993238, 0.850885,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n-0.068975, 0.490393, -0.068975, -0.155628, 0.976741, -0.147506, 0.781762, 0.213065, 0.586047, -0.607565, 0.023093, 0.793934, 0.397636, 0.119453,\n-0.054193, 0.490393, -0.081106, -0.123861, 0.976740, -0.175033, 0.764866, 0.206349, 0.610246, -0.629681, 0.058961, 0.774613, 0.399731, 0.132109,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n-0.081106, 0.490393, -0.054193, -0.181415, 0.976741, -0.114308, 0.793396, 0.214049, 0.569830, -0.593424, -0.016042, 0.804730, 0.397996, 0.106635,\n-0.068975, 0.490393, -0.068975, -0.155628, 0.976741, -0.147506, 0.781762, 0.213065, 0.586047, -0.607565, 0.023093, 0.793934, 0.397636, 0.119453,\n-0.081106, -0.490393, -0.054193, -0.188870, -0.973859, -0.126198, -0.111340, 0.148919, -0.982561, -0.971871, 0.166960, 0.166104, 0.980247, 0.830481,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n-0.068975, -0.490393, -0.068975, -0.137937, -0.980789, -0.137937, -0.127161, 0.155652, -0.979593, -0.984645, 0.120749, 0.126070, 0.987255, 0.840082,\n-0.090120, -0.490393, -0.037329, -0.200230, -0.976741, -0.076720, -0.201743, 0.117731, -0.972337, -0.956169, 0.177734, 0.232706, 0.972447, 0.822270,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n-0.081106, -0.490393, -0.054193, -0.188870, -0.973859, -0.126198, -0.111340, 0.148919, -0.982561, -0.971871, 0.166960, 0.166104, 0.980247, 0.830481,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n-0.090120, 0.490393, -0.037329, -0.200230, 0.976740, -0.076720, 0.795154, 0.207754, 0.569709, -0.589942, -0.057676, 0.805383, 0.401519, 0.094149,\n-0.081106, 0.490393, -0.054193, -0.181415, 0.976741, -0.114308, 0.793396, 0.214049, 0.569830, -0.593424, -0.016042, 0.804730, 0.397996, 0.106635,\n-0.095671, -0.490393, -0.019030, -0.191324, -0.980789, -0.038055, -0.260965, 0.088206, -0.961310, -0.944893, 0.173551, 0.277593, 0.964045, 0.815602,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n-0.090120, -0.490393, -0.037329, -0.200230, -0.976741, -0.076720, -0.201743, 0.117731, -0.972337, -0.956169, 0.177734, 0.232706, 0.972447, 0.822270,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n-0.095671, 0.490393, -0.019030, -0.191324, 0.980789, -0.038055, 0.769801, 0.173994, 0.614111, -0.685547, -0.105782, 0.720302, 0.409016, 0.082641,\n-0.090120, 0.490393, -0.037329, -0.200230, 0.976740, -0.076720, 0.795154, 0.207754, 0.569709, -0.589942, -0.057676, 0.805383, 0.401519, 0.094149,\n-0.415735, -0.277785, -0.000000, -0.849229, -0.528024, -0.000003, -0.103524, 0.166506, -0.980591, -0.517614, 0.832485, 0.197593, 0.051941, 0.554970,\n-0.353553, -0.353553, -0.000000, -0.729900, -0.683554, -0.000002, -0.140775, 0.150322, -0.978563, -0.668029, 0.713322, 0.211917, 0.045839, 0.619459,\n-0.407746, -0.277785, -0.081106, -0.805228, -0.567206, -0.172874, 0.047157, 0.229362, -0.972198, -0.591182, 0.790524, 0.159922, 0.076022, 0.567870,\n-0.415735, 0.277785, -0.000000, -0.842097, 0.539044, -0.017448, 0.204117, 0.288593, -0.935441, 0.490531, 0.778954, 0.390654, 0.101557, 0.170954,\n-0.461940, 0.191342, -0.000000, -0.923866, 0.382714, -0.001228, 0.101278, 0.241387, -0.965130, 0.370193, 0.894446, 0.250848, 0.087048, 0.233548,\n-0.453064, 0.191342, -0.090120, -0.901814, 0.400775, -0.161586, 0.311384, 0.343424, -0.886059, 0.302315, 0.852331, 0.426776, 0.122669, 0.253098,\n-0.353553, -0.353553, -0.000000, -0.729900, -0.683554, -0.000002, -0.140775, 0.150322, -0.978563, -0.668029, 0.713322, 0.211917, 0.045839, 0.619459,\n-0.277785, -0.415735, -0.000000, -0.582526, -0.812812, -0.000003, -0.182415, 0.130737, -0.974491, -0.789993, 0.566171, 0.235289, 0.038786, 0.683738,\n-0.346760, -0.353553, -0.068975, -0.670363, -0.729954, -0.133341, -0.023254, 0.200274, -0.979464, -0.741723, 0.653981, 0.148849, 0.067389, 0.631045,\n-0.461940, 0.191342, -0.000000, -0.923866, 0.382714, -0.001228, 0.101278, 0.241387, -0.965130, 0.370193, 0.894446, 0.250848, 0.087048, 0.233548,\n-0.490393, 0.097545, -0.000000, -0.980782, 0.195105, -0.000626, 0.044366, 0.219896, -0.974514, 0.190567, 0.958649, 0.211369, 0.077252, 0.297212,\n-0.480970, 0.097545, -0.095671, -0.956311, 0.208861, -0.204566, 0.264441, 0.319607, -0.909902, 0.126073, 0.925939, 0.356009, 0.110271, 0.315079,\n0.000000, 0.500000, -0.000000, 0.000000, 1.000000, -0.000000, 0.439407, -0.000000, 0.898288, -0.900302, 0.000000, 0.435266, 0.465044, 0.128343,\n-0.097545, 0.490393, -0.000000, -0.227152, 0.973859, 0.000000, 0.737153, 0.171940, 0.653485, -0.576689, -0.134512, 0.805814, 0.421200, 0.072930,\n-0.095671, 0.490393, -0.019030, -0.191324, 0.980789, -0.038055, 0.769801, 0.173994, 0.614111, -0.685547, -0.105782, 0.720302, 0.409016, 0.082641,\n-0.277785, -0.415735, -0.000000, -0.582526, -0.812812, -0.000003, -0.182415, 0.130737, -0.974491, -0.789993, 0.566171, 0.235289, 0.038786, 0.683738,\n-0.191342, -0.461940, -0.000000, -0.412766, -0.910837, -0.000002, -0.232681, 0.105446, -0.966820, -0.876357, 0.397140, 0.272541, 0.029845, 0.747594,\n-0.272447, -0.415735, -0.054193, -0.530494, -0.842235, -0.096007, -0.090736, 0.169025, -0.981426, -0.841533, 0.509627, 0.179173, 0.057290, 0.693759,\n-0.490393, 0.097545, -0.000000, -0.980782, 0.195105, -0.000626, 0.044366, 0.219896, -0.974514, 0.190567, 0.958649, 0.211369, 0.077252, 0.297212,\n-0.500000, 0.000000, -0.000000, -0.999462, -0.000000, 0.032810, -0.032196, 0.192512, -0.980766, 0.005789, 0.984313, 0.176334, 0.069762, 0.361393,\n-0.490392, 0.000000, -0.097545, -0.986658, 0.000000, -0.162807, 0.156253, 0.280865, -0.946942, -0.044537, 0.961857, 0.269905, 0.100444, 0.377879,\n-0.097545, 0.490393, -0.000000, -0.227152, 0.973859, 0.000000, 0.737153, 0.171940, 0.653485, -0.576689, -0.134512, 0.805814, 0.421200, 0.072930,\n-0.191342, 0.461940, -0.000000, -0.400759, 0.916136, -0.009327, 0.867461, 0.382703, 0.317885, -0.196013, -0.075792, 0.977668, 0.313686, 0.039415,\n-0.187665, 0.461940, -0.037329, -0.361210, 0.929163, -0.078640, 0.876848, 0.367143, 0.310393, -0.352518, -0.057991, 0.934007, 0.311350, 0.064544,\n-0.191342, -0.461940, -0.000000, -0.412766, -0.910837, -0.000002, -0.232681, 0.105446, -0.966820, -0.876357, 0.397140, 0.272541, 0.029845, 0.747594,\n-0.097545, -0.490393, -0.000000, -0.227152, -0.973859, 0.000000, -0.300081, 0.069994, -0.951342, -0.917744, 0.214063, 0.334550, 0.017133, 0.810598,\n-0.187665, -0.461940, -0.037329, -0.361210, -0.929163, -0.078640, -0.150569, 0.141344, -0.978443, -0.919609, 0.340987, 0.195057, 0.044374, 0.755575,\n-0.500000, 0.000000, -0.000000, -0.999462, -0.000000, 0.032810, -0.032196, 0.192512, -0.980766, 0.005789, 0.984313, 0.176334, 0.069762, 0.361393,\n-0.490393, -0.097545, -0.000000, -0.980782, -0.195105, -0.000626, -0.037587, 0.192093, -0.980657, -0.191292, 0.960975, 0.199836, 0.063447, 0.425835,\n-0.490392, 0.000000, -0.097545, -0.986658, 0.000000, -0.162807, 0.156253, 0.280865, -0.946942, -0.044537, 0.961857, 0.269905, 0.100444, 0.377879,\n-0.191342, 0.461940, -0.000000, -0.400759, 0.916136, -0.009327, 0.865221, 0.375100, -0.332705, 0.127173, 0.065707, 0.989702, 0.313686, 0.039415,\n-0.277785, 0.415735, -0.000000, -0.555535, 0.831489, -0.002683, 0.668118, 0.444458, -0.596720, 0.514926, 0.346562, 0.784057, 0.184327, 0.059204,\n-0.272447, 0.415735, -0.054193, -0.530494, 0.842235, -0.096007, 0.809223, 0.469433, -0.353257, 0.225910, 0.249629, 0.941621, 0.218761, 0.087986,\n-0.097545, -0.490393, -0.000000, -0.227152, -0.973859, 0.000000, -0.300081, 0.069994, -0.951342, -0.917744, 0.214063, 0.334550, 0.955203, 0.810598,\n0.000000, -0.500000, -0.000000, 0.000000, -1.000000, 0.000000, -0.431611, -0.000000, -0.902060, -0.900928, -0.000000, 0.433969, 0.934080, 0.871657,\n-0.095671, -0.490393, -0.019030, -0.191324, -0.980789, -0.038055, -0.260965, 0.088206, -0.961310, -0.944893, 0.173551, 0.277593, 0.964045, 0.815602,\n-0.490393, -0.097545, -0.000000, -0.980782, -0.195105, -0.000626, -0.037587, 0.192093, -0.980657, -0.191292, 0.960975, 0.199836, 0.063447, 0.425835,\n-0.461940, -0.191342, -0.000000, -0.931059, -0.364378, -0.018930, -0.053981, 0.188871, -0.980517, -0.360713, 0.911404, 0.198061, 0.057662, 0.490395,\n-0.480970, -0.097545, -0.095671, -0.961814, -0.195104, -0.191958, 0.135158, 0.271299, -0.952958, -0.238214, 0.942091, 0.236049, 0.091945, 0.441097,\n-0.277785, 0.415735, -0.000000, -0.555535, 0.831489, -0.002683, 0.668118, 0.444458, -0.596720, 0.514926, 0.346562, 0.784057, 0.184327, 0.059204,\n-0.353553, 0.353553, -0.000000, -0.716925, 0.697092, 0.008971, 0.305508, 0.325714, -0.894749, 0.613601, 0.624846, 0.482763, 0.127116, 0.110949,\n-0.346760, 0.353553, -0.068975, -0.670363, 0.729954, -0.133341, 0.615738, 0.446929, -0.648938, 0.419535, 0.521063, 0.743293, 0.167754, 0.135879,\n-0.461940, -0.191342, -0.000000, -0.931059, -0.364378, -0.018930, -0.053981, 0.188871, -0.980517, -0.360713, 0.911404, 0.198061, 0.057662, 0.490395,\n-0.415735, -0.277785, -0.000000, -0.849229, -0.528024, -0.000003, -0.103524, 0.166506, -0.980591, -0.517614, 0.832485, 0.197593, 0.051941, 0.554970,\n-0.453064, -0.191342, -0.090120, -0.905874, -0.382714, -0.181443, 0.088287, 0.248358, -0.964637, -0.414650, 0.888692, 0.195685, 0.084004, 0.504490,\n-0.353553, 0.353553, -0.000000, -0.716925, 0.697092, 0.008971, 0.305508, 0.325714, -0.894749, 0.613601, 0.624846, 0.482763, 0.127116, 0.110949,\n-0.415735, 0.277785, -0.000000, -0.842097, 0.539044, -0.017448, 0.204117, 0.288593, -0.935441, 0.490531, 0.778954, 0.390654, 0.101557, 0.170954,\n-0.407746, 0.277785, -0.081106, -0.805228, 0.567206, -0.172874, 0.451509, 0.397513, -0.798826, 0.392085, 0.728018, 0.562369, 0.140040, 0.192730,\n-0.353553, -0.353553, -0.000000, -0.729900, -0.683554, -0.000002, -0.140775, 0.150322, -0.978563, -0.668029, 0.713322, 0.211917, 0.045839, 0.619459,\n-0.346760, -0.353553, 0.068975, -0.693044, -0.707137, 0.140172, -0.277094, 0.081800, -0.957355, -0.665774, 0.702406, 0.251738, 0.024121, 0.611887,\n-0.277785, -0.415735, -0.000000, -0.582526, -0.812812, -0.000003, -0.182415, 0.130737, -0.974491, -0.789993, 0.566171, 0.235289, 0.038786, 0.683738,\n-0.461940, 0.191342, -0.000000, -0.923866, 0.382714, -0.001228, 0.101278, 0.241387, -0.965130, 0.370193, 0.894446, 0.250848, 0.087048, 0.233548,\n-0.453064, 0.191342, 0.090120, -0.916862, 0.364377, 0.163075, -0.109371, 0.163588, -0.980447, 0.385547, 0.914179, 0.125021, 0.048498, 0.219973,\n-0.490393, 0.097545, -0.000000, -0.980782, 0.195105, -0.000626, 0.044366, 0.219896, -0.974514, 0.190567, 0.958649, 0.211369, 0.077252, 0.297212,\n-0.277785, -0.415735, -0.000000, -0.582526, -0.812812, -0.000003, -0.182415, 0.130737, -0.974491, -0.789993, 0.566171, 0.235289, 0.038786, 0.683738,\n-0.272448, -0.415735, 0.054193, -0.544337, -0.831489, 0.111008, -0.298466, 0.068298, -0.951973, -0.783031, 0.551109, 0.288344, 0.020139, 0.677216,\n-0.191342, -0.461940, -0.000000, -0.412766, -0.910837, -0.000002, -0.232681, 0.105446, -0.966820, -0.876357, 0.397140, 0.272541, 0.029845, 0.747594,\n-0.490393, 0.097545, -0.000000, -0.980782, 0.195105, -0.000626, 0.044366, 0.219896, -0.974514, 0.190567, 0.958649, 0.211369, 0.077252, 0.297212,\n-0.480970, 0.097545, 0.095671, -0.961806, 0.181272, 0.205110, -0.182105, 0.135711, -0.973869, 0.201708, 0.975890, 0.083381, 0.042455, 0.285041,\n-0.500000, 0.000000, -0.000000, -0.999462, -0.000000, 0.032810, -0.032196, 0.192512, -0.980766, 0.005789, 0.984313, 0.176334, 0.069762, 0.361393,\n-0.191342, 0.461940, -0.000000, -0.400759, 0.916136, -0.009327, 0.867461, 0.382703, 0.317885, -0.196013, -0.075792, 0.977668, 0.313686, 0.039415,\n-0.097545, 0.490393, -0.000000, -0.227152, 0.973859, 0.000000, 0.737153, 0.171940, 0.653485, -0.576689, -0.134512, 0.805814, 0.421200, 0.072930,\n-0.187665, 0.461940, 0.037329, -0.388811, 0.918409, 0.073153, 0.727220, 0.257180, 0.636404, -0.511054, -0.281057, 0.812300, 0.334831, 0.015378,\n-0.191342, -0.461940, -0.000000, -0.412766, -0.910837, -0.000002, -0.232681, 0.105446, -0.966820, -0.876357, 0.397140, 0.272541, 0.029845, 0.747594,\n-0.187665, -0.461940, 0.037329, -0.374717, -0.923888, 0.077578, -0.328642, 0.054119, -0.942903, -0.865090, 0.378509, 0.329166, 0.015120, 0.742415,\n-0.097545, -0.490393, -0.000000, -0.227152, -0.973859, 0.000000, -0.300081, 0.069994, -0.951342, -0.917744, 0.214063, 0.334550, 0.017133, 0.810598,\n-0.480970, -0.097545, 0.095671, -0.967698, -0.162818, 0.192487, -0.213135, 0.120517, -0.969561, -0.136223, 0.980125, 0.144214, 0.034240, 0.415668,\n-0.490393, -0.097545, -0.000000, -0.980782, -0.195105, -0.000626, -0.037587, 0.192093, -0.980657, -0.191292, 0.960975, 0.199836, 0.063447, 0.425835,\n-0.500000, 0.000000, -0.000000, -0.999462, -0.000000, 0.032810, -0.032196, 0.192512, -0.980766, 0.005789, 0.984313, 0.176334, 0.069762, 0.361393,\n-0.191342, 0.461940, -0.000000, -0.400759, 0.916136, -0.009327, 0.865221, 0.375100, -0.332705, 0.127173, 0.065707, 0.989702, 0.313686, 0.039415,\n-0.187665, 0.461940, 0.037329, -0.388811, 0.918409, 0.073153, 0.865284, 0.391278, -0.313345, -0.266068, -0.187948, 0.945454, 0.334831, 0.015378,\n-0.277785, 0.415735, -0.000000, -0.555535, 0.831489, -0.002683, 0.791556, 0.527861, -0.307897, -0.272763, -0.179189, 0.945247, 0.184327, 0.059204,\n-0.453064, -0.191342, 0.090120, -0.913669, -0.369648, 0.169024, -0.223858, 0.110540, -0.968333, -0.340064, 0.922966, 0.180251, 0.030880, 0.481076,\n-0.461940, -0.191342, -0.000000, -0.931059, -0.364378, -0.018930, -0.053981, 0.188871, -0.980517, -0.360713, 0.911404, 0.198061, 0.057662, 0.490395,\n-0.490393, -0.097545, -0.000000, -0.980782, -0.195105, -0.000626, -0.037587, 0.192093, -0.980657, -0.191292, 0.960975, 0.199836, 0.063447, 0.425835,\n-0.277785, 0.415735, -0.000000, -0.555535, 0.831489, -0.002683, 0.668118, 0.444458, -0.596720, 0.514926, 0.346562, 0.784057, 0.184327, 0.059204,\n-0.272448, 0.415735, 0.054193, -0.571333, 0.812813, 0.113643, 0.539261, 0.476166, -0.694596, 0.644250, 0.358383, 0.675650, 0.130135, 0.033229,\n-0.353553, 0.353553, -0.000000, -0.716925, 0.697092, 0.008971, 0.305508, 0.325714, -0.894749, 0.613601, 0.624846, 0.482763, 0.127116, 0.110949,\n-0.461940, -0.191342, -0.000000, -0.931059, -0.364378, -0.018930, -0.053981, 0.188871, -0.980517, -0.360713, 0.911404, 0.198061, 0.057662, 0.490395,\n-0.453064, -0.191342, 0.090120, -0.913669, -0.369648, 0.169024, -0.223858, 0.110540, -0.968333, -0.340064, 0.922966, 0.180251, 0.030880, 0.481076,\n-0.415735, -0.277785, -0.000000, -0.849229, -0.528024, -0.000003, -0.103524, 0.166506, -0.980591, -0.517614, 0.832485, 0.197593, 0.051941, 0.554970,\n-0.407747, 0.277785, 0.081106, -0.825138, 0.543823, 0.152983, -0.041640, 0.211515, -0.976487, 0.563453, 0.811807, 0.153267, 0.057879, 0.155328,\n-0.415735, 0.277785, -0.000000, -0.842097, 0.539044, -0.017448, 0.204117, 0.288593, -0.935441, 0.490531, 0.778954, 0.390654, 0.101557, 0.170954,\n-0.353553, 0.353553, -0.000000, -0.716925, 0.697092, 0.008971, 0.305508, 0.325714, -0.894749, 0.613601, 0.624846, 0.482763, 0.127116, 0.110949,\n-0.415735, -0.277785, -0.000000, -0.849229, -0.528024, -0.000003, -0.103524, 0.166506, -0.980591, -0.517614, 0.832485, 0.197593, 0.051941, 0.554970,\n-0.407747, -0.277785, 0.081106, -0.815119, -0.555608, 0.163956, -0.255986, 0.091573, -0.962333, -0.520218, 0.826582, 0.214791, 0.027594, 0.546493,\n-0.353553, -0.353553, -0.000000, -0.729900, -0.683554, -0.000002, -0.140775, 0.150322, -0.978563, -0.668029, 0.713322, 0.211917, 0.045839, 0.619459,\n-0.415735, 0.277785, -0.000000, -0.842097, 0.539044, -0.017448, 0.204117, 0.288593, -0.935441, 0.490531, 0.778954, 0.390654, 0.101557, 0.170954,\n-0.407747, 0.277785, 0.081106, -0.825138, 0.543823, 0.152983, -0.041640, 0.211515, -0.976487, 0.563453, 0.811807, 0.153267, 0.057879, 0.155328,\n-0.461940, 0.191342, -0.000000, -0.923866, 0.382714, -0.001228, 0.101278, 0.241387, -0.965130, 0.370193, 0.894446, 0.250848, 0.087048, 0.233548,\n-0.187665, -0.461940, 0.037329, -0.374717, -0.923888, 0.077578, -0.328642, 0.054119, -0.942903, -0.865090, 0.378509, 0.329166, 0.953191, 0.742415,\n-0.176777, -0.461940, 0.073223, -0.338927, -0.929163, 0.147597, -0.417462, 0.007936, -0.908660, -0.841006, 0.369541, 0.395157, 0.938354, 0.740118,\n-0.095671, -0.490393, 0.019030, -0.209109, -0.976740, 0.047449, -0.365074, 0.032961, -0.930395, -0.899781, 0.211182, 0.381832, 0.946066, 0.807346,\n-0.490393, 0.000000, 0.097545, -0.980786, -0.000000, 0.195089, -0.193401, 0.131241, -0.972302, 0.025229, 0.991603, 0.126836, 0.037959, 0.350306,\n-0.461940, 0.000000, 0.191342, -0.935939, 0.000000, 0.352163, -0.351751, 0.048347, -0.934844, 0.019936, 0.998396, 0.052983, 0.005423, 0.345283,\n-0.480970, -0.097545, 0.095671, -0.967698, -0.162818, 0.192487, -0.213135, 0.120517, -0.969561, -0.136223, 0.980125, 0.144214, 0.034240, 0.415668,\n-0.256640, 0.415735, 0.106304, -0.501570, 0.842235, 0.197657, 0.571317, 0.494038, -0.655380, 0.745951, 0.305324, 0.591891, 0.032509, 0.016900,\n-0.272448, 0.415735, 0.054193, -0.571333, 0.812813, 0.113643, 0.539261, 0.476166, -0.694596, 0.644250, 0.358383, 0.675650, 0.130135, 0.033229,\n-0.187665, 0.461940, 0.037329, -0.388811, 0.918409, 0.073153, 0.722431, 0.353191, -0.594432, 0.435443, 0.113211, 0.893069, 0.334831, 0.015378,\n-0.480970, -0.097545, 0.095671, -0.967698, -0.162818, 0.192487, -0.213135, 0.120517, -0.969561, -0.136223, 0.980125, 0.144214, 0.034240, 0.415668,\n-0.453064, -0.097545, 0.187665, -0.898027, -0.208865, 0.387200, -0.400145, 0.021991, -0.916188, -0.186296, 0.977851, 0.095402, 0.004575, 0.411089,\n-0.453064, -0.191342, 0.090120, -0.913669, -0.369648, 0.169024, -0.223858, 0.110540, -0.968333, -0.340064, 0.922966, 0.180251, 0.030880, 0.481076,\n-0.326641, 0.353553, 0.135299, -0.631468, 0.729955, 0.261563, -0.275142, 0.104439, -0.955714, 0.701533, 0.681517, -0.208291, 0.014728, 0.082226,\n-0.346760, 0.353553, 0.068975, -0.703949, 0.692994, 0.155612, 0.004292, 0.223241, -0.974754, 0.706666, 0.661393, 0.251362, 0.076103, 0.091824,\n-0.272448, 0.415735, 0.054193, -0.571333, 0.812813, 0.113643, 0.024842, 0.155531, -0.987519, 0.816774, 0.576669, -0.018255, 0.130135, 0.033229,\n-0.453064, -0.191342, 0.090120, -0.913669, -0.369648, 0.169024, -0.223858, 0.110540, -0.968333, -0.340064, 0.922966, 0.180251, 0.030880, 0.481076,\n-0.426777, -0.191342, 0.176777, -0.852963, -0.400772, 0.334417, -0.377536, 0.031270, -0.925467, -0.361266, 0.915710, 0.175961, 0.003813, 0.476897,\n-0.407747, -0.277785, 0.081106, -0.815119, -0.555608, 0.163956, -0.255986, 0.091573, -0.962333, -0.520218, 0.826582, 0.214791, 0.027594, 0.546493,\n-0.384089, 0.277785, 0.159095, -0.756029, 0.567206, 0.326646, -0.357502, 0.060193, -0.931970, 0.532505, 0.823195, -0.196945, 0.010109, 0.147925,\n-0.407747, 0.277785, 0.081106, -0.825138, 0.543823, 0.152983, -0.041640, 0.211515, -0.976487, 0.563453, 0.811807, 0.153267, 0.057879, 0.155328,\n-0.346760, 0.353553, 0.068975, -0.703949, 0.692994, 0.155612, 0.004292, 0.223241, -0.974754, 0.706666, 0.661393, 0.251362, 0.076103, 0.091824,\n-0.407747, -0.277785, 0.081106, -0.815119, -0.555608, 0.163956, -0.255986, 0.091573, -0.962333, -0.520218, 0.826582, 0.214791, 0.027594, 0.546493,\n-0.384089, -0.277785, 0.159095, -0.767470, -0.555607, 0.319829, -0.396341, 0.019091, -0.917905, -0.504907, 0.831272, 0.232499, 0.003073, 0.542706,\n-0.346760, -0.353553, 0.068975, -0.693044, -0.707137, 0.140172, -0.277094, 0.081800, -0.957355, -0.665774, 0.702406, 0.251738, 0.024121, 0.611887,\n-0.426777, 0.191342, 0.176777, -0.864751, 0.382538, 0.325378, -0.324074, 0.069883, -0.943447, 0.386897, 0.920540, -0.054004, 0.007867, 0.213692,\n-0.453064, 0.191342, 0.090120, -0.916862, 0.364377, 0.163075, -0.109371, 0.163588, -0.980447, 0.385547, 0.914179, 0.125021, 0.048498, 0.219973,\n-0.407747, 0.277785, 0.081106, -0.825138, 0.543823, 0.152983, -0.041640, 0.211515, -0.976487, 0.563453, 0.811807, 0.153267, 0.057879, 0.155328,\n-0.346760, -0.353553, 0.068975, -0.693044, -0.707137, 0.140172, -0.277094, 0.081800, -0.957355, -0.665774, 0.702406, 0.251738, 0.024121, 0.611887,\n-0.326641, -0.353553, 0.135299, -0.652380, -0.707137, 0.272688, -0.399798, 0.015427, -0.916473, -0.643679, 0.706901, 0.293203, 0.002293, 0.608514,\n-0.272448, -0.415735, 0.054193, -0.544337, -0.831489, 0.111008, -0.298466, 0.068298, -0.951973, -0.783031, 0.551109, 0.288344, 0.020139, 0.677216,\n-0.453064, 0.191342, 0.090120, -0.916862, 0.364377, 0.163075, -0.109371, 0.163588, -0.980447, 0.385547, 0.914179, 0.125021, 0.048498, 0.219973,\n-0.426777, 0.191342, 0.176777, -0.864751, 0.382538, 0.325378, -0.324074, 0.069883, -0.943447, 0.386897, 0.920540, -0.054004, 0.007867, 0.213692,\n-0.480970, 0.097545, 0.095671, -0.961806, 0.181272, 0.205110, -0.182105, 0.135711, -0.973869, 0.201708, 0.975890, 0.083381, 0.042455, 0.285041,\n-0.272448, -0.415735, 0.054193, -0.544337, -0.831489, 0.111008, -0.298466, 0.068298, -0.951973, -0.783031, 0.551109, 0.288344, 0.958210, 0.677216,\n-0.256640, -0.415735, 0.106304, -0.512220, -0.831490, 0.215071, -0.404111, 0.012369, -0.914626, -0.756546, 0.555360, 0.345271, 0.939473, 0.674319,\n-0.187665, -0.461940, 0.037329, -0.374717, -0.923888, 0.077578, -0.328642, 0.054119, -0.942903, -0.865090, 0.378509, 0.329166, 0.953191, 0.742415,\n-0.461940, 0.000000, 0.191342, -0.935939, 0.000000, 0.352163, -0.351751, 0.048347, -0.934844, 0.019936, 0.998396, 0.052983, 0.005423, 0.345283,\n-0.490393, 0.000000, 0.097545, -0.980786, -0.000000, 0.195089, -0.193401, 0.131241, -0.972302, 0.025229, 0.991603, 0.126836, 0.037959, 0.350306,\n-0.480970, 0.097545, 0.095671, -0.961806, 0.181272, 0.205110, -0.182105, 0.135711, -0.973869, 0.201708, 0.975890, 0.083381, 0.042455, 0.285041,\n-0.176777, 0.461940, 0.073223, -0.352384, 0.923888, 0.149190, 0.543442, 0.072225, 0.836334, -0.725657, -0.370409, 0.579843, 0.420408, -0.002041,\n-0.187665, 0.461940, 0.037329, -0.388811, 0.918409, 0.073153, 0.727220, 0.257180, 0.636404, -0.511054, -0.281057, 0.812300, 0.334831, 0.015378,\n-0.095671, 0.490393, 0.019030, -0.209109, 0.976740, 0.047449, 0.634606, 0.098625, 0.766517, -0.730319, -0.188252, 0.656655, 0.438189, 0.065976,\n-0.326641, -0.353553, 0.135299, -0.652380, -0.707137, 0.272688, -0.399798, 0.015427, -0.916473, -0.643679, 0.706901, 0.293203, 0.940364, 0.608514,\n-0.293969, -0.353553, 0.196424, -0.586645, -0.707137, 0.394721, -0.515355, -0.050005, -0.855517, -0.624613, 0.705315, 0.335246, 0.918510, 0.609427,\n-0.256640, -0.415735, 0.106304, -0.512220, -0.831490, 0.215071, -0.404111, 0.012369, -0.914626, -0.756546, 0.555360, 0.345271, 0.939473, 0.674319,\n-0.426777, 0.191342, 0.176777, -0.864751, 0.382538, 0.325378, -0.324074, 0.069883, -0.943447, 0.386897, 0.920540, -0.054004, 0.945938, 0.213692,\n-0.384089, 0.191342, 0.256640, -0.784657, 0.382537, 0.487830, -0.546746, -0.056118, -0.835416, 0.299004, 0.922863, -0.242735, 0.904787, 0.215406,\n-0.453064, 0.097545, 0.187665, -0.893338, 0.195006, 0.404870, -0.407862, 0.026410, -0.912661, 0.176343, 0.980797, -0.083305, 0.944528, 0.279482,\n-0.256640, -0.415735, 0.106304, -0.512220, -0.831490, 0.215071, -0.404111, 0.012369, -0.914626, -0.756546, 0.555360, 0.345271, 0.939473, 0.674319,\n-0.230970, -0.415735, 0.154329, -0.460422, -0.831489, 0.310867, -0.503538, -0.043772, -0.862863, -0.729441, 0.553953, 0.401314, 0.920717, 0.675103,\n-0.176777, -0.461940, 0.073223, -0.338927, -0.929163, 0.147597, -0.417462, 0.007936, -0.908660, -0.841006, 0.369541, 0.395157, 0.938354, 0.740118,\n-0.415735, 0.000000, 0.277785, -0.849250, 0.000000, 0.527990, -0.527366, -0.048621, -0.848246, -0.022233, 0.999113, -0.035762, 0.910782, 0.346647,\n-0.461940, 0.000000, 0.191342, -0.935939, 0.000000, 0.352163, -0.351751, 0.048347, -0.934844, 0.019936, 0.998396, 0.052983, 0.943494, 0.345283,\n-0.453064, 0.097545, 0.187665, -0.893338, 0.195006, 0.404870, -0.407862, 0.026410, -0.912661, 0.176343, 0.980797, -0.083305, 0.944528, 0.279482,\n-0.159095, 0.461940, 0.106304, -0.303619, 0.929163, 0.210883, 0.262363, -0.131243, 0.956003, -0.947559, -0.317631, 0.035252, 0.559425, 0.003678,\n-0.176777, 0.461940, 0.073223, -0.352384, 0.923888, 0.149190, 0.543442, 0.072225, 0.836334, -0.725657, -0.370409, 0.579843, 0.420408, -0.002041,\n-0.090120, 0.490393, 0.037329, -0.195833, 0.976741, 0.087334, 0.450796, 0.010576, 0.892564, -0.819617, -0.211923, 0.532274, 0.458801, 0.062690,\n-0.081106, -0.490393, 0.054193, -0.188870, -0.973859, 0.126198, -0.473215, -0.022346, -0.880663, -0.864501, 0.225849, 0.449032, 0.927429, 0.806293,\n-0.090120, -0.490393, 0.037329, -0.180222, -0.980789, 0.074651, -0.415009, 0.007012, -0.909790, -0.889096, 0.194896, 0.414155, 0.936766, 0.805903,\n-0.176777, -0.461940, 0.073223, -0.338927, -0.929163, 0.147597, -0.417462, 0.007936, -0.908660, -0.841006, 0.369541, 0.395157, 0.938354, 0.740118,\n-0.461940, 0.000000, 0.191342, -0.935939, 0.000000, 0.352163, -0.351751, 0.048347, -0.934844, 0.019936, 0.998396, 0.052983, 0.943494, 0.345283,\n-0.415735, 0.000000, 0.277785, -0.849250, 0.000000, 0.527990, -0.527366, -0.048621, -0.848246, -0.022233, 0.999113, -0.035762, 0.910782, 0.346647,\n-0.453064, -0.097545, 0.187665, -0.898027, -0.208865, 0.387200, -0.400145, 0.021991, -0.916188, -0.186296, 0.977851, 0.095402, 0.942646, 0.411089,\n-0.230970, 0.415735, 0.154329, -0.475288, 0.823575, 0.309558, -0.699189, -0.139982, -0.701099, 0.382476, 0.510258, -0.770291, 0.849384, 0.021864,\n-0.256640, 0.415735, 0.106304, -0.501570, 0.842235, 0.197657, -0.708526, -0.268818, -0.652478, -0.127288, 0.154142, -0.979815, 0.970580, 0.016900,\n-0.176777, 0.461940, 0.073223, -0.352384, 0.923888, 0.149190, -0.753027, -0.185261, -0.631370, -0.117655, 0.114415, -0.986441, 0.420408, -0.002041,\n-0.384089, -0.191342, 0.256640, -0.784657, -0.382537, 0.487830, -0.512101, -0.043519, -0.857822, -0.349112, 0.922937, 0.162196, 0.914751, 0.478029,\n-0.426777, -0.191342, 0.176777, -0.852963, -0.400772, 0.334417, -0.377536, 0.031270, -0.925467, -0.361266, 0.915710, 0.175961, 0.941884, 0.476897,\n-0.453064, -0.097545, 0.187665, -0.898027, -0.208865, 0.387200, -0.400145, 0.021991, -0.916188, -0.186296, 0.977851, 0.095402, 0.942646, 0.411089,\n-0.256640, 0.415735, 0.106304, -0.501570, 0.842235, 0.197657, -0.166634, 0.130142, -0.977392, 0.810822, 0.537323, -0.232060, 0.970580, 0.016900,\n-0.230970, 0.415735, 0.154329, -0.475288, 0.823575, 0.309558, -0.699189, -0.139982, -0.701099, 0.382476, 0.510258, -0.770291, 0.849384, 0.021864,\n-0.326641, 0.353553, 0.135299, -0.631468, 0.729955, 0.261563, -0.275142, 0.104439, -0.955714, 0.701533, 0.681517, -0.208291, 0.952799, 0.082226,\n-0.426777, -0.191342, 0.176777, -0.852963, -0.400772, 0.334417, -0.377536, 0.031270, -0.925467, -0.361266, 0.915710, 0.175961, 0.941884, 0.476897,\n-0.384089, -0.191342, 0.256640, -0.784657, -0.382537, 0.487830, -0.512101, -0.043519, -0.857822, -0.349112, 0.922937, 0.162196, 0.914751, 0.478029,\n-0.384089, -0.277785, 0.159095, -0.767470, -0.555607, 0.319829, -0.396341, 0.019091, -0.917905, -0.504907, 0.831272, 0.232499, 0.941144, 0.542706,\n-0.326641, 0.353553, 0.135299, -0.631468, 0.729955, 0.261563, -0.275142, 0.104439, -0.955714, 0.701533, 0.681517, -0.208291, 0.952799, 0.082226,\n-0.293969, 0.353553, 0.196424, -0.606889, 0.683554, 0.405511, -0.627957, -0.099639, -0.771843, 0.403052, 0.704434, -0.584228, 0.888292, 0.084903,\n-0.384089, 0.277785, 0.159095, -0.756029, 0.567206, 0.326646, -0.357502, 0.060193, -0.931970, 0.532505, 0.823195, -0.196945, 0.948180, 0.147925,\n-0.384089, -0.277785, 0.159095, -0.767470, -0.555607, 0.319829, -0.396341, 0.019091, -0.917905, -0.504907, 0.831272, 0.232499, 0.941144, 0.542706,\n-0.345671, -0.277785, 0.230970, -0.690329, -0.555606, 0.463409, -0.526129, -0.054145, -0.848679, -0.498075, 0.829528, 0.252596, 0.916581, 0.543731,\n-0.326641, -0.353553, 0.135299, -0.652380, -0.707137, 0.272688, -0.399798, 0.015427, -0.916473, -0.643679, 0.706901, 0.293203, 0.940364, 0.608514,\n-0.384089, 0.191342, 0.256640, -0.784657, 0.382537, 0.487830, -0.546746, -0.056118, -0.835416, 0.299004, 0.922863, -0.242735, 0.904787, 0.215406,\n-0.426777, 0.191342, 0.176777, -0.864751, 0.382538, 0.325378, -0.324074, 0.069883, -0.943447, 0.386897, 0.920540, -0.054004, 0.945938, 0.213692,\n-0.384089, 0.277785, 0.159095, -0.756029, 0.567206, 0.326646, -0.357502, 0.060193, -0.931970, 0.532505, 0.823195, -0.196945, 0.948180, 0.147925,\n-0.384089, -0.191342, 0.256640, -0.784657, -0.382537, 0.487830, -0.512101, -0.043519, -0.857822, -0.349112, 0.922937, 0.162196, 0.914751, 0.478029,\n-0.326641, -0.191342, 0.326641, -0.674410, -0.382537, 0.631535, -0.640365, -0.122758, -0.758197, -0.367033, 0.915850, 0.162803, 0.887781, 0.484426,\n-0.345671, -0.277785, 0.230970, -0.690329, -0.555606, 0.463409, -0.526129, -0.054145, -0.848679, -0.498075, 0.829528, 0.252596, 0.916581, 0.543731,\n-0.293969, 0.277785, 0.293969, -0.586657, 0.555607, 0.589182, -0.788526, -0.226098, -0.571933, 0.186215, 0.800587, -0.569548, 0.853037, 0.161076,\n-0.345671, 0.277785, 0.230970, -0.690488, 0.539041, 0.482349, -0.614333, -0.084979, -0.784458, 0.339030, 0.830224, -0.442477, 0.899334, 0.149958,\n-0.293969, 0.353553, 0.196424, -0.606889, 0.683554, 0.405511, -0.627957, -0.099639, -0.771843, 0.403052, 0.704434, -0.584228, 0.888292, 0.084903,\n-0.345671, -0.277785, 0.230970, -0.690329, -0.555606, 0.463409, -0.526129, -0.054145, -0.848679, -0.498075, 0.829528, 0.252596, 0.916581, 0.543731,\n-0.293969, -0.277785, 0.293969, -0.586657, -0.555607, 0.589182, -0.641183, -0.125746, -0.757016, -0.496410, 0.821541, 0.280443, 0.892120, 0.549535,\n-0.293969, -0.353553, 0.196424, -0.586645, -0.707137, 0.394721, -0.515355, -0.050005, -0.855517, -0.624613, 0.705315, 0.335246, 0.918510, 0.609427,\n-0.326641, 0.191342, 0.326641, -0.674410, 0.382537, 0.631535, -0.724649, -0.178874, -0.665498, 0.153103, 0.909186, -0.387221, 0.864885, 0.224918,\n-0.384089, 0.191342, 0.256640, -0.784657, 0.382537, 0.487830, -0.546746, -0.056118, -0.835416, 0.299004, 0.922863, -0.242735, 0.904787, 0.215406,\n-0.345671, 0.277785, 0.230970, -0.690488, 0.539041, 0.482349, -0.614333, -0.084979, -0.784458, 0.339030, 0.830224, -0.442477, 0.899334, 0.149958,\n-0.293969, -0.353553, 0.196424, -0.586645, -0.707137, 0.394721, -0.515355, -0.050005, -0.855517, -0.624613, 0.705315, 0.335246, 0.918510, 0.609427,\n-0.250000, -0.353553, 0.250000, -0.498368, -0.707137, 0.501585, -0.619865, -0.113856, -0.776405, -0.605821, 0.697907, 0.381977, 0.896720, 0.614601,\n-0.230970, -0.415735, 0.154329, -0.460422, -0.831489, 0.310867, -0.503538, -0.043772, -0.862863, -0.729441, 0.553953, 0.401314, 0.920717, 0.675103,\n-0.384089, 0.191342, 0.256640, -0.784657, 0.382537, 0.487830, -0.546746, -0.056118, -0.835416, 0.299004, 0.922863, -0.242735, 0.904787, 0.215406,\n-0.326641, 0.191342, 0.326641, -0.674410, 0.382537, 0.631535, -0.724649, -0.178874, -0.665498, 0.153103, 0.909186, -0.387221, 0.864885, 0.224918,\n-0.407746, 0.097545, 0.272448, -0.797188, 0.195006, 0.571370, -0.593675, -0.081185, -0.800599, 0.090166, 0.974241, -0.206702, 0.908239, 0.280994,\n-0.230970, -0.415735, 0.154329, -0.460422, -0.831489, 0.310867, -0.503538, -0.043772, -0.862863, -0.729441, 0.553953, 0.401314, 0.920717, 0.675103,\n-0.196424, -0.415735, 0.196424, -0.390927, -0.831489, 0.394718, -0.594841, -0.099022, -0.797721, -0.700439, 0.546965, 0.458491, 0.902010, 0.679551,\n-0.159095, -0.461940, 0.106304, -0.328037, -0.916136, 0.230404, -0.496723, -0.040181, -0.866979, -0.799560, 0.399154, 0.448753, 0.923492, 0.740739,\n-0.353553, 0.000000, 0.353554, -0.729928, -0.000000, 0.683524, -0.676348, -0.144515, -0.722266, -0.093881, 0.990523, -0.100254, 0.878497, 0.354309,\n-0.415735, 0.000000, 0.277785, -0.849250, 0.000000, 0.527990, -0.527366, -0.048621, -0.848246, -0.022233, 0.999113, -0.035762, 0.910782, 0.346647,\n-0.407746, 0.097545, 0.272448, -0.797188, 0.195006, 0.571370, -0.593675, -0.081185, -0.800599, 0.090166, 0.974241, -0.206702, 0.908239, 0.280994,\n-0.081106, 0.490393, 0.054193, -0.162196, 0.980789, 0.108375, 0.362059, -0.043016, 0.931162, -0.975824, -0.175734, 0.129942, 0.480346, 0.063591,\n-0.068975, 0.490393, 0.068975, -0.160620, 0.973859, 0.160620, 0.049797, -0.154530, 0.986732, -0.984709, -0.169230, 0.041350, 0.499668, 0.068531,\n-0.159095, 0.461940, 0.106304, -0.303619, 0.929163, 0.210883, 0.262363, -0.131243, 0.956003, -0.947559, -0.317631, 0.035252, 0.559425, 0.003678,\n-0.159095, -0.461940, 0.106304, -0.328037, -0.916136, 0.230404, -0.496723, -0.040181, -0.866979, -0.799560, 0.399154, 0.448753, 0.923492, 0.740739,\n-0.135299, -0.461940, 0.135299, -0.256643, -0.929163, 0.266065, -0.560977, -0.080965, -0.823863, -0.779982, 0.361677, 0.510703, 0.908692, 0.744267,\n-0.081106, -0.490393, 0.054193, -0.188870, -0.973859, 0.126198, -0.473215, -0.022346, -0.880663, -0.864501, 0.225849, 0.449032, 0.927429, 0.806293,\n-0.415735, 0.000000, 0.277785, -0.849250, 0.000000, 0.527990, -0.527366, -0.048621, -0.848246, -0.022233, 0.999113, -0.035762, 0.910782, 0.346647,\n-0.353553, 0.000000, 0.353554, -0.729928, -0.000000, 0.683524, -0.676348, -0.144515, -0.722266, -0.093881, 0.990523, -0.100254, 0.878497, 0.354309,\n-0.407746, -0.097545, 0.272448, -0.797188, -0.195006, 0.571370, -0.569116, -0.073122, -0.818999, -0.207860, 0.977191, 0.043499, 0.912871, 0.412331,\n-0.196424, 0.415735, 0.196424, -0.390926, 0.831489, 0.394718, -0.920222, -0.362023, -0.148766, 0.029442, 0.439922, -0.897554, 0.773239, 0.043658,\n-0.230970, 0.415735, 0.154329, -0.475288, 0.823575, 0.309558, -0.850522, -0.520133, 0.077935, -0.265201, 0.201371, -0.942930, 0.849384, 0.021864,\n-0.159095, 0.461940, 0.106304, -0.303619, 0.929163, 0.210883, -0.932514, -0.335209, 0.134361, -0.246607, 0.137154, -0.959361, 0.559425, 0.003678,\n-0.326641, -0.191342, 0.326641, -0.674410, -0.382537, 0.631535, -0.640365, -0.122758, -0.758197, -0.367033, 0.915850, 0.162803, 0.887781, 0.484426,\n-0.384089, -0.191342, 0.256640, -0.784657, -0.382537, 0.487830, -0.512101, -0.043519, -0.857822, -0.349112, 0.922937, 0.162196, 0.914751, 0.478029,\n-0.407746, -0.097545, 0.272448, -0.797188, -0.195006, 0.571370, -0.569116, -0.073122, -0.818999, -0.207860, 0.977191, 0.043499, 0.912871, 0.412331,\n-0.250000, 0.353553, 0.250000, -0.498368, 0.707137, 0.501585, -0.847765, -0.276403, -0.452654, 0.171823, 0.647638, -0.742322, 0.830912, 0.099015,\n-0.293969, 0.353553, 0.196424, -0.606889, 0.683554, 0.405511, -0.627957, -0.099639, -0.771843, 0.403052, 0.704434, -0.584228, 0.888292, 0.084903,\n-0.230970, 0.415735, 0.154329, -0.475288, 0.823575, 0.309558, -0.699189, -0.139982, -0.701099, 0.382476, 0.510258, -0.770291, 0.849384, 0.021864,\n-0.054193, -0.490393, 0.081106, -0.126198, -0.973859, 0.188870, -0.585134, -0.080668, -0.806914, -0.822650, 0.209137, 0.528685, 0.909154, 0.812515,\n-0.068975, -0.490393, 0.068975, -0.137937, -0.980789, 0.137937, -0.513926, -0.048176, -0.856481, -0.847505, 0.188951, 0.496017, 0.918182, 0.808510,\n-0.135299, -0.461940, 0.135299, -0.256643, -0.929163, 0.266065, -0.560977, -0.080965, -0.823863, -0.779982, 0.361677, 0.510703, 0.908692, 0.744267,\n-0.353553, 0.000000, 0.353554, -0.729928, -0.000000, 0.683524, -0.676348, -0.144515, -0.722266, -0.093881, 0.990523, -0.100254, 0.878497, 0.354309,\n-0.277785, 0.000000, 0.415735, -0.582554, 0.000000, 0.812792, -0.791757, -0.226031, -0.567477, -0.181593, 0.974723, -0.130153, 0.847136, 0.367787,\n-0.346760, -0.097545, 0.346760, -0.670401, -0.195005, 0.715915, -0.698879, -0.158168, -0.697532, -0.256624, 0.966240, 0.022881, 0.883363, 0.419330,\n-0.154329, 0.415735, 0.230970, -0.307228, 0.842235, 0.443003, -0.743979, -0.502845, 0.440048, -0.749952, 0.072286, -0.657530, 0.729617, 0.071276,\n-0.196424, 0.415735, 0.196424, -0.390926, 0.831489, 0.394718, -0.792551, -0.522151, 0.314994, -0.443564, 0.205572, -0.872348, 0.773239, 0.043658,\n-0.135299, 0.461940, 0.135299, -0.276784, 0.916136, 0.289974, -0.848415, -0.374675, 0.373913, -0.428890, 0.152261, -0.890432, 0.608139, 0.025300,\n-0.256640, -0.191342, 0.384089, -0.538245, -0.382537, 0.750971, -0.746275, -0.197719, -0.635595, -0.391554, 0.902554, 0.179113, 0.861172, 0.495829,\n-0.326641, -0.191342, 0.326641, -0.674410, -0.382537, 0.631535, -0.640365, -0.122758, -0.758197, -0.367033, 0.915850, 0.162803, 0.887781, 0.484426,\n-0.346760, -0.097545, 0.346760, -0.670401, -0.195005, 0.715915, -0.698879, -0.158168, -0.697532, -0.256624, 0.966240, 0.022881, 0.883363, 0.419330,\n-0.196424, 0.353553, 0.293969, -0.378161, 0.716973, 0.585615, -0.907376, -0.412446, -0.080977, -0.168253, 0.568824, -0.805065, 0.784585, 0.121024,\n-0.250000, 0.353553, 0.250000, -0.498368, 0.707137, 0.501585, -0.847765, -0.276403, -0.452654, 0.171823, 0.647638, -0.742322, 0.830912, 0.099015,\n-0.196424, 0.415735, 0.196424, -0.390926, 0.831489, 0.394718, -0.920222, -0.362023, -0.148766, 0.029442, 0.439922, -0.897554, 0.773239, 0.043658,\n-0.326641, -0.191342, 0.326641, -0.674410, -0.382537, 0.631535, -0.640365, -0.122758, -0.758197, -0.367033, 0.915850, 0.162803, 0.887781, 0.484426,\n-0.256640, -0.191342, 0.384089, -0.538245, -0.382537, 0.750971, -0.746275, -0.197719, -0.635595, -0.391554, 0.902554, 0.179113, 0.861172, 0.495829,\n-0.293969, -0.277785, 0.293969, -0.586657, -0.555607, 0.589182, -0.641183, -0.125746, -0.757016, -0.496410, 0.821541, 0.280443, 0.892120, 0.549535,\n-0.230970, 0.277785, 0.345671, -0.460442, 0.555607, 0.692311, -0.886261, -0.331959, -0.323025, -0.044234, 0.764572, -0.643018, 0.811543, 0.179584,\n-0.293969, 0.277785, 0.293969, -0.586657, 0.555607, 0.589182, -0.788526, -0.226098, -0.571933, 0.186215, 0.800587, -0.569548, 0.853037, 0.161076,\n-0.250000, 0.353553, 0.250000, -0.498368, 0.707137, 0.501585, -0.847765, -0.276403, -0.452654, 0.171823, 0.647638, -0.742322, 0.830912, 0.099015,\n-0.293969, -0.277785, 0.293969, -0.586657, -0.555607, 0.589182, -0.641183, -0.125746, -0.757016, -0.496410, 0.821541, 0.280443, 0.892120, 0.549535,\n-0.230970, -0.277785, 0.345671, -0.460442, -0.555607, 0.692311, -0.738187, -0.193503, -0.646248, -0.494685, 0.808177, 0.319589, 0.867877, 0.559931,\n-0.250000, -0.353553, 0.250000, -0.498368, -0.707137, 0.501585, -0.619865, -0.113856, -0.776405, -0.605821, 0.697907, 0.381977, 0.896720, 0.614601,\n-0.256640, 0.191342, 0.384089, -0.538245, 0.382537, 0.750971, -0.842125, -0.279453, -0.461228, -0.020441, 0.884868, -0.465394, 0.827524, 0.241215,\n-0.326641, 0.191342, 0.326641, -0.674410, 0.382537, 0.631535, -0.724649, -0.178874, -0.665498, 0.153103, 0.909186, -0.387221, 0.864885, 0.224918,\n-0.293969, 0.277785, 0.293969, -0.586657, 0.555607, 0.589182, -0.788526, -0.226098, -0.571933, 0.186215, 0.800587, -0.569548, 0.853037, 0.161076,\n-0.250000, -0.353553, 0.250000, -0.498368, -0.707137, 0.501585, -0.619865, -0.113856, -0.776405, -0.605821, 0.697907, 0.381977, 0.896720, 0.614601,\n-0.196424, -0.353553, 0.293969, -0.390937, -0.707137, 0.589174, -0.710445, -0.175141, -0.681611, -0.584656, 0.685172, 0.434416, 0.875068, 0.623907,\n-0.196424, -0.415735, 0.196424, -0.390927, -0.831489, 0.394718, -0.594841, -0.099022, -0.797721, -0.700439, 0.546965, 0.458491, 0.902010, 0.679551,\n-0.326641, 0.191342, 0.326641, -0.674410, 0.382537, 0.631535, -0.724649, -0.178874, -0.665498, 0.153103, 0.909186, -0.387221, 0.864885, 0.224918,\n-0.256640, 0.191342, 0.384089, -0.538245, 0.382537, 0.750971, -0.842125, -0.279453, -0.461228, -0.020441, 0.884868, -0.465394, 0.827524, 0.241215,\n-0.346760, 0.097545, 0.346760, -0.670402, 0.195005, 0.715915, -0.741984, -0.182321, -0.645151, -0.028063, 0.957494, -0.287086, 0.872656, 0.289451,\n-0.196424, -0.415735, 0.196424, -0.390927, -0.831489, 0.394718, -0.594841, -0.099022, -0.797721, -0.700439, 0.546965, 0.458491, 0.902010, 0.679551,\n-0.154329, -0.415735, 0.230970, -0.294645, -0.839192, 0.457102, -0.676270, -0.154843, -0.720196, -0.668082, 0.522910, 0.529369, 0.883418, 0.687578,\n-0.135299, -0.461940, 0.135299, -0.256643, -0.929163, 0.266065, -0.560977, -0.080965, -0.823863, -0.779982, 0.361677, 0.510703, 0.908692, 0.744267,\n-0.277785, 0.000000, 0.415735, -0.582554, 0.000000, 0.812792, -0.791757, -0.226031, -0.567477, -0.181593, 0.974723, -0.130153, 0.847136, 0.367787,\n-0.353553, 0.000000, 0.353554, -0.729928, -0.000000, 0.683524, -0.676348, -0.144515, -0.722266, -0.093881, 0.990523, -0.100254, 0.878497, 0.354309,\n-0.346760, 0.097545, 0.346760, -0.670402, 0.195005, 0.715915, -0.741984, -0.182321, -0.645151, -0.028063, 0.957494, -0.287086, 0.872656, 0.289451,\n-0.106304, 0.461940, 0.159095, -0.210110, 0.923888, 0.319821, -0.570695, -0.381507, 0.727159, -0.848846, -0.010079, -0.528543, 0.618674, 0.050065,\n-0.135299, 0.461940, 0.135299, -0.276784, 0.916136, 0.289974, -0.288406, -0.367051, 0.884362, -0.948483, -0.212046, -0.235407, 0.608139, 0.025300,\n-0.068975, 0.490393, 0.068975, -0.160620, 0.973859, 0.160620, 0.049797, -0.154530, 0.986732, -0.984709, -0.169230, 0.041350, 0.499668, 0.068531,\n-0.196424, -0.353553, 0.293969, -0.390937, -0.707137, 0.589174, -0.710445, -0.175141, -0.681611, -0.584656, 0.685172, 0.434416, 0.875068, 0.623907,\n-0.135299, -0.353553, 0.326641, -0.268483, -0.707137, 0.654121, -0.783142, -0.235163, -0.575662, -0.559335, 0.667292, 0.491798, 0.853599, 0.637120,\n-0.154329, -0.415735, 0.230970, -0.294645, -0.839192, 0.457102, -0.676270, -0.154843, -0.720196, -0.668082, 0.522910, 0.529369, 0.883418, 0.687578,\n-0.256640, 0.191342, 0.384089, -0.538245, 0.382537, 0.750971, -0.842125, -0.279453, -0.461228, -0.020441, 0.884868, -0.465394, 0.827524, 0.241215,\n-0.176777, 0.191342, 0.426777, -0.381396, 0.382538, 0.841547, -0.905356, -0.338466, -0.256460, -0.190001, 0.858483, -0.476347, 0.793211, 0.262838,\n-0.272447, 0.097545, 0.407747, -0.517853, 0.195006, 0.832947, -0.844805, -0.269843, -0.462050, -0.157309, 0.935362, -0.316784, 0.838568, 0.304174,\n-0.073223, -0.461940, 0.176777, -0.158028, -0.923819, 0.348692, -0.683486, -0.152523, -0.713851, -0.722049, 0.348989, 0.597371, 0.879619, 0.759787,\n-0.106304, -0.461940, 0.159095, -0.212592, -0.923892, 0.318165, -0.627722, -0.120406, -0.769069, -0.760208, 0.360953, 0.540183, 0.894040, 0.750649,\n-0.154329, -0.415735, 0.230970, -0.294645, -0.839192, 0.457102, -0.676270, -0.154843, -0.720196, -0.668082, 0.522910, 0.529369, 0.883418, 0.687578,\n-0.191342, 0.000000, 0.461940, -0.412793, 0.000000, 0.910825, -0.867602, -0.304395, -0.393205, -0.271698, 0.954473, -0.123136, 0.816990, 0.386308,\n-0.277785, 0.000000, 0.415735, -0.582554, 0.000000, 0.812792, -0.791757, -0.226031, -0.567477, -0.181593, 0.974723, -0.130153, 0.847136, 0.367787,\n-0.272447, 0.097545, 0.407747, -0.517853, 0.195006, 0.832947, -0.844805, -0.269843, -0.462050, -0.157309, 0.935362, -0.316784, 0.838568, 0.304174,\n-0.073223, 0.461940, 0.176777, -0.143677, 0.923888, 0.354666, -0.323732, -0.382545, 0.865365, -0.944356, -0.020846, -0.328263, 0.617332, 0.075210,\n-0.106304, 0.461940, 0.159095, -0.210110, 0.923888, 0.319821, -0.570695, -0.381507, 0.727159, -0.848846, -0.010079, -0.528543, 0.618674, 0.050065,\n-0.054193, 0.490393, 0.081106, -0.114308, 0.976741, 0.181415, 0.007857, -0.181717, 0.983319, -0.992883, -0.118463, 0.012200, 0.514668, 0.076778,\n-0.106304, -0.461940, 0.159095, -0.212592, -0.923892, 0.318165, -0.627722, -0.120406, -0.769069, -0.760208, 0.360953, 0.540183, 0.894040, 0.750649,\n-0.073223, -0.461940, 0.176777, -0.158028, -0.923819, 0.348692, -0.683486, -0.152523, -0.713851, -0.722049, 0.348989, 0.597371, 0.879619, 0.759787,\n-0.054193, -0.490393, 0.081106, -0.126198, -0.973859, 0.188870, -0.585134, -0.080668, -0.806914, -0.822650, 0.209137, 0.528685, 0.909154, 0.812515,\n-0.277785, 0.000000, 0.415735, -0.582554, 0.000000, 0.812792, -0.791757, -0.226031, -0.567477, -0.181593, 0.974723, -0.130153, 0.847136, 0.367787,\n-0.191342, 0.000000, 0.461940, -0.412793, 0.000000, 0.910825, -0.867602, -0.304395, -0.393205, -0.271698, 0.954473, -0.123136, 0.816990, 0.386308,\n-0.272447, -0.097545, 0.407747, -0.517853, -0.195006, 0.832947, -0.799603, -0.235756, -0.552316, -0.311033, 0.949956, 0.029027, 0.854434, 0.431735,\n-0.106304, 0.415735, 0.256640, -0.229408, 0.831354, 0.506185, -0.786014, -0.464962, 0.407422, -0.637678, 0.264527, -0.723458, 0.699594, 0.100450,\n-0.154329, 0.415735, 0.230970, -0.307228, 0.842235, 0.443003, -0.743979, -0.502845, 0.440048, -0.749952, 0.072286, -0.657530, 0.729617, 0.071276,\n-0.106304, 0.461940, 0.159095, -0.210110, 0.923888, 0.319821, -0.570695, -0.381507, 0.727159, -0.848846, -0.010079, -0.528543, 0.618674, 0.050065,\n-0.176777, -0.191342, 0.426777, -0.381396, -0.382538, 0.841547, -0.827334, -0.264856, -0.495349, -0.412806, 0.885027, 0.215215, 0.835042, 0.511803,\n-0.256640, -0.191342, 0.384089, -0.538245, -0.382537, 0.750971, -0.746275, -0.197719, -0.635595, -0.391554, 0.902554, 0.179113, 0.861172, 0.495829,\n-0.272447, -0.097545, 0.407747, -0.517853, -0.195006, 0.832947, -0.799603, -0.235756, -0.552316, -0.311033, 0.949956, 0.029027, 0.854434, 0.431735,\n-0.154329, 0.415735, 0.230970, -0.307228, 0.842235, 0.443003, -0.919147, -0.383226, 0.091147, -0.147007, 0.417926, -0.896508, 0.729617, 0.071276,\n-0.106304, 0.415735, 0.256640, -0.229408, 0.831354, 0.506185, -0.786014, -0.464962, 0.407422, -0.637678, 0.264527, -0.723458, 0.699594, 0.100450,\n-0.196424, 0.353553, 0.293969, -0.378161, 0.716973, 0.585615, -0.907376, -0.412446, -0.080977, -0.168253, 0.568824, -0.805065, 0.784585, 0.121024,\n-0.256640, -0.191342, 0.384089, -0.538245, -0.382537, 0.750971, -0.746275, -0.197719, -0.635595, -0.391554, 0.902554, 0.179113, 0.861172, 0.495829,\n-0.176777, -0.191342, 0.426777, -0.381396, -0.382538, 0.841547, -0.827334, -0.264856, -0.495349, -0.412806, 0.885027, 0.215215, 0.835042, 0.511803,\n-0.230970, -0.277785, 0.345671, -0.460442, -0.555607, 0.692311, -0.738187, -0.193503, -0.646248, -0.494685, 0.808177, 0.319589, 0.867877, 0.559931,\n-0.159095, 0.277785, 0.384089, -0.316532, 0.555607, 0.768836, -0.912857, -0.398758, -0.087659, -0.250957, 0.732583, -0.632727, 0.775195, 0.203324,\n-0.230970, 0.277785, 0.345671, -0.460442, 0.555607, 0.692311, -0.886261, -0.331959, -0.323025, -0.044234, 0.764572, -0.643018, 0.811543, 0.179584,\n-0.196424, 0.353553, 0.293969, -0.378161, 0.716973, 0.585615, -0.907376, -0.412446, -0.080977, -0.168253, 0.568824, -0.805065, 0.784585, 0.121024,\n-0.230970, -0.277785, 0.345671, -0.460442, -0.555607, 0.692311, -0.738187, -0.193503, -0.646248, -0.494685, 0.808177, 0.319589, 0.867877, 0.559931,\n-0.159095, -0.277785, 0.384089, -0.316532, -0.555607, 0.768836, -0.814925, -0.255551, -0.520183, -0.486793, 0.790790, 0.371058, 0.843924, 0.574600,\n-0.196424, -0.353553, 0.293969, -0.390937, -0.707137, 0.589174, -0.710445, -0.175141, -0.681611, -0.584656, 0.685172, 0.434416, 0.875068, 0.623907,\n-0.176777, 0.191342, 0.426777, -0.381396, 0.382538, 0.841547, -0.905356, -0.338466, -0.256460, -0.190001, 0.858483, -0.476347, 0.793211, 0.262838,\n-0.256640, 0.191342, 0.384089, -0.538245, 0.382537, 0.750971, -0.842125, -0.279453, -0.461228, -0.020441, 0.884868, -0.465394, 0.827524, 0.241215,\n-0.230970, 0.277785, 0.345671, -0.460442, 0.555607, 0.692311, -0.886261, -0.331959, -0.323025, -0.044234, 0.764572, -0.643018, 0.811543, 0.179584,\n-0.106304, 0.415735, 0.256640, -0.229408, 0.831354, 0.506185, -0.786014, -0.464962, 0.407422, -0.637678, 0.264527, -0.723458, 0.699594, 0.100450,\n-0.054193, 0.415735, 0.272448, -0.126245, 0.831354, 0.541214, -0.755722, -0.434023, 0.490416, -0.674138, 0.328341, -0.661612, 0.675659, 0.129678,\n-0.135299, 0.353553, 0.326641, -0.249073, 0.706948, 0.661957, -0.891428, -0.434521, 0.128639, -0.398036, 0.548382, -0.735422, 0.747516, 0.147506,\n-0.176777, -0.191342, 0.426777, -0.381396, -0.382538, 0.841547, -0.827334, -0.264856, -0.495349, -0.412806, 0.885027, 0.215215, 0.835042, 0.511803,\n-0.090120, -0.191342, 0.453064, -0.209889, -0.382537, 0.899784, -0.881719, -0.323636, -0.343267, -0.422672, 0.865347, 0.269301, 0.809410, 0.531778,\n-0.159095, -0.277785, 0.384089, -0.316532, -0.555607, 0.768836, -0.814925, -0.255551, -0.520183, -0.486793, 0.790790, 0.371058, 0.843924, 0.574600,\n-0.081106, 0.277785, 0.407747, -0.160456, 0.555607, 0.815815, -0.891798, -0.435835, 0.121423, -0.416879, 0.711041, -0.566244, 0.743218, 0.230344,\n-0.159095, 0.277785, 0.384089, -0.316532, 0.555607, 0.768836, -0.912857, -0.398758, -0.087659, -0.250957, 0.732583, -0.632727, 0.775195, 0.203324,\n-0.135299, 0.353553, 0.326641, -0.249073, 0.706948, 0.661957, -0.891428, -0.434521, 0.128639, -0.398036, 0.548382, -0.735422, 0.747516, 0.147506,\n-0.159095, -0.277785, 0.384089, -0.316532, -0.555607, 0.768836, -0.814925, -0.255551, -0.520183, -0.486793, 0.790790, 0.371058, 0.843924, 0.574600,\n-0.081106, -0.277785, 0.407747, -0.160456, -0.555607, 0.815815, -0.870186, -0.310475, -0.382597, -0.466542, 0.771059, 0.433366, 0.820258, 0.593116,\n-0.135299, -0.353553, 0.326641, -0.268483, -0.707137, 0.654121, -0.783142, -0.235163, -0.575662, -0.559335, 0.667292, 0.491798, 0.853599, 0.637120,\n-0.090120, 0.191342, 0.453064, -0.209889, 0.382537, 0.899784, -0.913308, -0.405225, -0.040765, -0.339629, 0.834451, -0.433985, 0.761800, 0.288261,\n-0.176777, 0.191342, 0.426777, -0.381396, 0.382538, 0.841547, -0.905356, -0.338466, -0.256460, -0.190001, 0.858483, -0.476347, 0.793211, 0.262838,\n-0.159095, 0.277785, 0.384089, -0.316532, 0.555607, 0.768836, -0.912857, -0.398758, -0.087659, -0.250957, 0.732583, -0.632727, 0.775195, 0.203324,\n-0.135299, -0.353553, 0.326641, -0.268483, -0.707137, 0.654121, -0.783142, -0.235163, -0.575662, -0.559335, 0.667292, 0.491798, 0.853599, 0.637120,\n-0.068975, -0.353553, 0.346760, -0.135710, -0.707138, 0.693930, -0.844001, -0.284314, -0.454784, -0.517668, 0.647807, 0.558898, 0.832307, 0.653935,\n-0.106304, -0.415735, 0.256640, -0.195712, -0.831354, 0.520142, -0.755147, -0.210632, -0.620795, -0.618809, 0.516163, 0.592157, 0.864986, 0.699035,\n-0.176777, 0.191342, 0.426777, -0.381396, 0.382538, 0.841547, -0.905356, -0.338466, -0.256460, -0.190001, 0.858483, -0.476347, 0.793211, 0.262838,\n-0.090120, 0.191342, 0.453064, -0.209889, 0.382537, 0.899784, -0.913308, -0.405225, -0.040765, -0.339629, 0.834451, -0.433985, 0.761800, 0.288261,\n-0.187665, 0.097545, 0.453064, -0.345401, 0.195006, 0.917971, -0.901796, -0.339696, -0.267153, -0.278623, 0.912758, -0.298735, 0.806381, 0.324118,\n-0.037329, -0.461940, 0.187665, -0.081206, -0.918409, 0.387209, -0.751926, -0.198553, -0.628637, -0.668925, 0.338220, 0.661926, 0.865508, 0.771545,\n-0.073223, -0.461940, 0.176777, -0.158028, -0.923819, 0.348692, -0.683486, -0.152523, -0.713851, -0.722049, 0.348989, 0.597371, 0.879619, 0.759787,\n-0.106304, -0.415735, 0.256640, -0.195712, -0.831354, 0.520142, -0.755147, -0.210632, -0.620795, -0.618809, 0.516163, 0.592157, 0.864986, 0.699035,\n-0.097545, 0.000000, 0.490393, -0.227166, 0.000000, 0.973856, -0.907657, -0.362397, -0.211724, -0.348241, 0.933879, -0.081232, 0.788114, 0.408932,\n-0.191342, 0.000000, 0.461940, -0.412793, 0.000000, 0.910825, -0.867602, -0.304395, -0.393205, -0.271698, 0.954473, -0.123136, 0.816990, 0.386308,\n-0.187665, 0.097545, 0.453064, -0.345401, 0.195006, 0.917971, -0.901796, -0.339696, -0.267153, -0.278623, 0.912758, -0.298735, 0.806381, 0.324118,\n-0.037329, 0.461940, 0.187665, -0.071725, 0.923888, 0.375881, -0.361520, -0.375307, 0.853492, -0.943286, 0.059637, -0.326580, 0.611040, 0.099926,\n-0.073223, 0.461940, 0.176777, -0.143677, 0.923888, 0.354666, -0.323732, -0.382545, 0.865365, -0.944356, -0.020846, -0.328263, 0.617332, 0.075210,\n-0.037329, 0.490393, 0.090120, -0.076720, 0.976740, 0.200230, -0.046042, -0.204078, 0.977871, -0.996782, -0.079813, 0.007405, 0.524796, 0.087364,\n-0.073223, -0.461940, 0.176777, -0.158028, -0.923819, 0.348692, -0.683486, -0.152523, -0.713851, -0.722049, 0.348989, 0.597371, 0.879619, 0.759787,\n-0.037329, -0.461940, 0.187665, -0.081206, -0.918409, 0.387209, -0.751926, -0.198553, -0.628637, -0.668925, 0.338220, 0.661926, 0.865508, 0.771545,\n-0.037329, -0.490393, 0.090120, -0.076720, -0.976741, 0.200230, -0.621151, -0.110267, -0.775894, -0.785454, 0.182906, 0.591276, 0.900481, 0.818239,\n-0.191342, 0.000000, 0.461940, -0.412793, 0.000000, 0.910825, -0.867602, -0.304395, -0.393205, -0.271698, 0.954473, -0.123136, 0.816990, 0.386308,\n-0.097545, 0.000000, 0.490393, -0.227166, 0.000000, 0.973856, -0.907657, -0.362397, -0.211724, -0.348241, 0.933879, -0.081232, 0.788114, 0.408932,\n-0.187665, -0.097545, 0.453064, -0.345401, -0.195006, 0.917971, -0.868976, -0.302909, -0.391314, -0.359737, 0.930964, 0.062409, 0.826278, 0.448964,\n-0.054193, 0.415735, 0.272448, -0.126245, 0.831354, 0.541214, -0.755722, -0.434023, 0.490416, -0.674138, 0.328341, -0.661612, 0.675659, 0.129678,\n-0.106304, 0.415735, 0.256640, -0.229408, 0.831354, 0.506185, -0.786014, -0.464962, 0.407422, -0.637678, 0.264527, -0.723458, 0.699594, 0.100450,\n-0.073223, 0.461940, 0.176777, -0.143677, 0.923888, 0.354666, -0.707181, -0.346555, 0.616275, -0.707954, 0.154461, -0.689161, 0.617332, 0.075210,\n-0.090120, -0.191342, 0.453064, -0.209889, -0.382537, 0.899784, -0.881719, -0.323636, -0.343267, -0.422672, 0.865347, 0.269301, 0.809410, 0.531778,\n-0.176777, -0.191342, 0.426777, -0.381396, -0.382538, 0.841547, -0.827334, -0.264856, -0.495349, -0.412806, 0.885027, 0.215215, 0.835042, 0.511803,\n-0.187665, -0.097545, 0.453064, -0.345401, -0.195006, 0.917971, -0.868976, -0.302909, -0.391314, -0.359737, 0.930964, 0.062409, 0.826278, 0.448964,\n0.000000, 0.000000, 0.500000, -0.032814, 0.000000, 0.999461, -0.913871, -0.404896, -0.030004, -0.401232, 0.915882, -0.013173, 0.760371, 0.434664,\n-0.097545, 0.000000, 0.490393, -0.227166, 0.000000, 0.973856, -0.907657, -0.362397, -0.211724, -0.348241, 0.933879, -0.081232, 0.788114, 0.408932,\n-0.095671, 0.097545, 0.480970, -0.159677, 0.195006, 0.967717, -0.917587, -0.390841, -0.072647, -0.378232, 0.893400, -0.242440, 0.776121, 0.348088,\n0.000000, 0.461940, 0.191342, 0.006661, 0.929163, 0.369610, -0.301158, -0.350594, 0.886785, -0.969313, 0.096831, -0.225956, 0.602177, 0.123791,\n-0.037329, 0.461940, 0.187665, -0.071725, 0.923888, 0.375881, -0.361520, -0.375307, 0.853492, -0.943286, 0.059637, -0.326580, 0.611040, 0.099926,\n-0.019030, 0.490393, 0.095671, -0.036183, 0.976741, 0.211349, -0.052590, -0.213056, 0.975624, -0.999332, -0.036442, -0.002671, 0.530504, 0.099377,\n-0.037329, -0.461940, 0.187665, -0.081206, -0.918409, 0.387209, -0.751926, -0.198553, -0.628637, -0.668925, 0.338220, 0.661926, 0.865508, 0.771545,\n0.000000, -0.461940, 0.191342, -0.000000, -0.935949, 0.352136, -0.754461, -0.231123, -0.614305, -0.645677, 0.268895, 0.714701, 0.851786, 0.785757,\n-0.019030, -0.490393, 0.095671, -0.036183, -0.976740, 0.211349, -0.659716, -0.135510, -0.739196, -0.754210, 0.165440, 0.635450, 0.892313, 0.825579,\n-0.097545, 0.000000, 0.490393, -0.227166, 0.000000, 0.973856, -0.907657, -0.362397, -0.211724, -0.348241, 0.933879, -0.081232, 0.788114, 0.408932,\n0.000000, 0.000000, 0.500000, -0.032814, 0.000000, 0.999461, -0.913871, -0.404896, -0.030004, -0.401232, 0.915882, -0.013173, 0.760371, 0.434664,\n-0.095671, -0.097545, 0.480970, -0.159677, -0.195006, 0.967717, -0.907051, -0.357871, -0.221782, -0.392773, 0.911910, 0.118951, 0.798937, 0.470280,\n0.000000, 0.415735, 0.277785, -0.018236, 0.831353, 0.555445, -0.631677, -0.440203, 0.638127, -0.795024, 0.324824, -0.512275, 0.654747, 0.158232,\n-0.054193, 0.415735, 0.272448, -0.126245, 0.831354, 0.541214, -0.755722, -0.434023, 0.490416, -0.674138, 0.328341, -0.661612, 0.675659, 0.129678,\n-0.037329, 0.461940, 0.187665, -0.071725, 0.923888, 0.375881, -0.361520, -0.375307, 0.853492, -0.943286, 0.059637, -0.326580, 0.611040, 0.099926,\n0.000000, -0.191342, 0.461940, -0.030317, -0.382538, 0.923442, -0.910709, -0.370177, -0.183246, -0.413963, 0.845716, 0.336749, 0.784187, 0.555103,\n-0.090120, -0.191342, 0.453064, -0.209889, -0.382537, 0.899784, -0.881719, -0.323636, -0.343267, -0.422672, 0.865347, 0.269301, 0.809410, 0.531778,\n-0.095671, -0.097545, 0.480970, -0.159677, -0.195006, 0.967717, -0.907051, -0.357871, -0.221782, -0.392773, 0.911910, 0.118951, 0.798937, 0.470280,\n-0.054193, 0.415735, 0.272448, -0.126245, 0.831354, 0.541214, -0.755722, -0.434023, 0.490416, -0.674138, 0.328341, -0.661612, 0.675659, 0.129678,\n0.000000, 0.415735, 0.277785, -0.018236, 0.831353, 0.555445, -0.631677, -0.440203, 0.638127, -0.795024, 0.324824, -0.512275, 0.654747, 0.158232,\n-0.068975, 0.353553, 0.346760, -0.115141, 0.706949, 0.697829, -0.833800, -0.450621, 0.318933, -0.549654, 0.539813, -0.637560, 0.716770, 0.176135,\n-0.090120, -0.191342, 0.453064, -0.209889, -0.382537, 0.899784, -0.881719, -0.323636, -0.343267, -0.422672, 0.865347, 0.269301, 0.809410, 0.531778,\n0.000000, -0.191342, 0.461940, -0.030317, -0.382538, 0.923442, -0.910709, -0.370177, -0.183246, -0.413963, 0.845716, 0.336749, 0.784187, 0.555103,\n-0.081106, -0.277785, 0.407747, -0.160456, -0.555607, 0.815815, -0.870186, -0.310475, -0.382597, -0.466542, 0.771059, 0.433366, 0.820258, 0.593116,\n0.000000, 0.277785, 0.415735, 0.012460, 0.567207, 0.823481, -0.828915, -0.454732, 0.325758, -0.549922, 0.691702, -0.468117, 0.714533, 0.259103,\n-0.081106, 0.277785, 0.407747, -0.160456, 0.555607, 0.815815, -0.891798, -0.435835, 0.121423, -0.416879, 0.711041, -0.566244, 0.743218, 0.230344,\n-0.068975, 0.353553, 0.346760, -0.115141, 0.706949, 0.697829, -0.833800, -0.450621, 0.318933, -0.549654, 0.539813, -0.637560, 0.716770, 0.176135,\n-0.081106, -0.277785, 0.407747, -0.160456, -0.555607, 0.815815, -0.870186, -0.310475, -0.382597, -0.466542, 0.771059, 0.433366, 0.820258, 0.593116,\n0.000000, -0.277785, 0.415735, 0.001785, -0.555608, 0.831443, -0.903472, -0.357289, -0.236817, -0.428605, 0.750778, 0.502624, 0.796797, 0.614975,\n-0.068975, -0.353553, 0.346760, -0.135710, -0.707138, 0.693930, -0.844001, -0.284314, -0.454784, -0.517668, 0.647807, 0.558898, 0.832307, 0.653935,\n0.000000, 0.191342, 0.461940, -0.030317, 0.382538, 0.923442, -0.887540, -0.435230, 0.151157, -0.452760, 0.818396, -0.353887, 0.732796, 0.316099,\n-0.090120, 0.191342, 0.453064, -0.209889, 0.382537, 0.899784, -0.913308, -0.405225, -0.040765, -0.339629, 0.834451, -0.433985, 0.761800, 0.288261,\n-0.081106, 0.277785, 0.407747, -0.160456, 0.555607, 0.815815, -0.891798, -0.435835, 0.121423, -0.416879, 0.711041, -0.566244, 0.743218, 0.230344,\n-0.068975, -0.353553, 0.346760, -0.135710, -0.707138, 0.693930, -0.844001, -0.284314, -0.454784, -0.517668, 0.647807, 0.558898, 0.832307, 0.653935,\n0.000000, -0.353553, 0.353553, 0.002276, -0.707137, 0.707073, -0.885216, -0.330339, -0.327520, -0.463661, 0.625730, 0.627280, 0.811127, 0.673987,\n-0.054193, -0.415735, 0.272448, -0.099235, -0.820324, 0.563224, -0.816853, -0.256076, -0.516891, -0.569698, 0.510908, 0.643752, 0.846733, 0.713716,\n-0.090120, 0.191342, 0.453064, -0.209889, 0.382537, 0.899784, -0.913308, -0.405225, -0.040765, -0.339629, 0.834451, -0.433985, 0.761800, 0.288261,\n0.000000, 0.191342, 0.461940, -0.030317, 0.382538, 0.923442, -0.887540, -0.435230, 0.151157, -0.452760, 0.818396, -0.353887, 0.732796, 0.316099,\n-0.095671, 0.097545, 0.480970, -0.159677, 0.195006, 0.967717, -0.917587, -0.390841, -0.072647, -0.378232, 0.893400, -0.242440, 0.776121, 0.348088,\n-0.054193, -0.415735, 0.272448, -0.099235, -0.820324, 0.563224, -0.816853, -0.256076, -0.516891, -0.569698, 0.510908, 0.643752, 0.846733, 0.713716,\n0.000000, -0.415735, 0.277785, 0.008963, -0.839191, 0.543763, -0.849186, -0.293527, -0.439004, -0.521149, 0.460174, 0.718779, 0.828642, 0.731372,\n-0.037329, -0.461940, 0.187665, -0.081206, -0.918409, 0.387209, -0.751926, -0.198553, -0.628637, -0.668925, 0.338220, 0.661926, 0.865508, 0.771545,\n0.000000, -0.277785, 0.415735, 0.001785, -0.555608, 0.831443, -0.903472, -0.357289, -0.236817, -0.428605, 0.750778, 0.502624, 0.796797, 0.614975,\n0.081106, -0.277785, 0.407747, 0.163956, -0.555608, 0.815119, -0.912228, -0.399882, -0.089082, -0.374218, 0.729506, 0.572523, 0.773368, 0.639622,\n0.000000, -0.353553, 0.353553, 0.002276, -0.707137, 0.707073, -0.885216, -0.330339, -0.327520, -0.463661, 0.625730, 0.627280, 0.811127, 0.673987,\n0.090120, 0.191342, 0.453064, 0.150420, 0.382537, 0.911614, -0.832725, -0.447986, 0.325389, -0.527832, 0.810755, -0.253120, 0.705594, 0.345167,\n0.000000, 0.191342, 0.461940, -0.030317, 0.382538, 0.923442, -0.887540, -0.435230, 0.151157, -0.452760, 0.818396, -0.353887, 0.732796, 0.316099,\n0.000000, 0.277785, 0.415735, 0.012460, 0.567207, 0.823481, -0.828915, -0.454732, 0.325758, -0.549922, 0.691702, -0.468117, 0.714533, 0.259103,\n0.000000, -0.353553, 0.353553, 0.002276, -0.707137, 0.707073, -0.885216, -0.330339, -0.327520, -0.463661, 0.625730, 0.627280, 0.811127, 0.673987,\n0.068975, -0.353553, 0.346760, 0.140172, -0.707137, 0.693044, -0.908721, -0.369819, -0.193545, -0.391505, 0.603327, 0.694780, 0.789921, 0.696864,\n0.000000, -0.415735, 0.277785, 0.008963, -0.839191, 0.543763, -0.849186, -0.293527, -0.439004, -0.521149, 0.460174, 0.718779, 0.828642, 0.731372,\n0.000000, 0.191342, 0.461940, -0.030317, 0.382538, 0.923442, -0.887540, -0.435230, 0.151157, -0.452760, 0.818396, -0.353887, 0.732796, 0.316099,\n0.090120, 0.191342, 0.453064, 0.150420, 0.382537, 0.911614, -0.832725, -0.447986, 0.325389, -0.527832, 0.810755, -0.253120, 0.705594, 0.345167,\n0.000000, 0.097545, 0.490393, 0.032182, 0.195005, 0.980274, -0.898725, -0.423503, 0.113752, -0.441784, 0.882545, -0.161061, 0.747546, 0.374899,\n0.037329, -0.461940, 0.187665, 0.080526, -0.910837, 0.404836, -0.849838, -0.274976, -0.449625, -0.544394, 0.300037, 0.783335, 0.838536, 0.802228,\n0.000000, -0.461940, 0.191342, -0.000000, -0.935949, 0.352136, -0.754461, -0.231123, -0.614305, -0.645677, 0.268895, 0.714701, 0.851786, 0.785757,\n0.000000, -0.415735, 0.277785, 0.008963, -0.839191, 0.543763, -0.849186, -0.293527, -0.439004, -0.521149, 0.460174, 0.718779, 0.828642, 0.731372,\n0.097545, 0.000000, 0.490393, 0.162803, -0.000000, 0.986659, -0.889654, -0.432395, 0.146797, -0.424489, 0.902720, 0.070042, 0.733486, 0.462524,\n0.000000, 0.000000, 0.500000, -0.032814, 0.000000, 0.999461, -0.913871, -0.404896, -0.030004, -0.401232, 0.915882, -0.013173, 0.760371, 0.434664,\n0.000000, 0.097545, 0.490393, 0.032182, 0.195005, 0.980274, -0.898725, -0.423503, 0.113752, -0.441784, 0.882545, -0.161061, 0.747546, 0.374899,\n0.000000, 0.490393, 0.097545, -0.000000, 0.980789, 0.195071, -0.010227, -0.195061, 0.980738, -0.998705, -0.009923, 0.049892, 0.532587, 0.112073,\n0.019030, 0.490393, 0.095671, 0.044314, 0.973859, 0.222787, -0.038854, -0.221157, 0.974464, -0.994442, 0.064320, -0.083357, 0.531827, 0.124876,\n0.000000, 0.461940, 0.191342, 0.006661, 0.929163, 0.369610, -0.301158, -0.350594, 0.886785, -0.969313, 0.096831, -0.225956, 0.602177, 0.123791,\n0.019030, -0.490393, 0.095671, 0.044314, -0.973859, 0.222787, -0.736482, -0.182524, -0.651368, -0.682533, 0.133332, 0.718590, 0.878221, 0.844539,\n0.000000, -0.490393, 0.097545, -0.000000, -0.980789, 0.195071, -0.667310, -0.145285, -0.730472, -0.732975, 0.132698, 0.667187, 0.884825, 0.834401,\n0.000000, -0.461940, 0.191342, -0.000000, -0.935949, 0.352136, -0.754461, -0.231123, -0.614305, -0.645677, 0.268895, 0.714701, 0.851786, 0.785757,\n0.000000, 0.000000, 0.500000, -0.032814, 0.000000, 0.999461, -0.913871, -0.404896, -0.030004, -0.401232, 0.915882, -0.013173, 0.760371, 0.434664,\n0.097545, 0.000000, 0.490393, 0.162803, -0.000000, 0.986659, -0.889654, -0.432395, 0.146797, -0.424489, 0.902720, 0.070042, 0.733486, 0.462524,\n0.000000, -0.097545, 0.490393, 0.032182, -0.195005, 0.980274, -0.915229, -0.399881, -0.049501, -0.402667, 0.895136, 0.191288, 0.772312, 0.494867,\n0.054193, 0.415735, 0.272448, 0.104109, 0.823575, 0.557571, -0.551851, -0.418565, 0.721293, -0.839109, 0.373688, -0.395288, 0.635422, 0.185632,\n0.000000, 0.415735, 0.277785, -0.018236, 0.831353, 0.555445, -0.631677, -0.440203, 0.638127, -0.795024, 0.324824, -0.512275, 0.654747, 0.158232,\n0.000000, 0.461940, 0.191342, 0.006661, 0.929163, 0.369610, -0.301158, -0.350594, 0.886785, -0.969313, 0.096831, -0.225956, 0.602177, 0.123791,\n0.090120, -0.191342, 0.453064, 0.150420, -0.382537, 0.911613, -0.913342, -0.406704, -0.019959, -0.381307, 0.828310, 0.410498, 0.759182, 0.581072,\n0.000000, -0.191342, 0.461940, -0.030317, -0.382538, 0.923442, -0.910709, -0.370177, -0.183246, -0.413963, 0.845716, 0.336749, 0.784187, 0.555103,\n0.000000, -0.097545, 0.490393, 0.032182, -0.195005, 0.980274, -0.915229, -0.399881, -0.049501, -0.402667, 0.895136, 0.191288, 0.772312, 0.494867,\n0.000000, 0.415735, 0.277785, -0.018236, 0.831353, 0.555445, -0.631677, -0.440203, 0.638127, -0.795024, 0.324824, -0.512275, 0.654747, 0.158232,\n0.054193, 0.415735, 0.272448, 0.104109, 0.823575, 0.557571, -0.551851, -0.418565, 0.721293, -0.839109, 0.373688, -0.395288, 0.635422, 0.185632,\n0.000000, 0.353553, 0.353553, 0.012557, 0.720869, 0.692958, -0.752990, -0.449160, 0.480896, -0.658624, 0.527404, -0.536712, 0.690070, 0.205446,\n0.000000, -0.191342, 0.461940, -0.030317, -0.382538, 0.923442, -0.910709, -0.370177, -0.183246, -0.413963, 0.845716, 0.336749, 0.784187, 0.555103,\n0.090120, -0.191342, 0.453064, 0.150420, -0.382537, 0.911613, -0.913342, -0.406704, -0.019959, -0.381307, 0.828310, 0.410498, 0.759182, 0.581072,\n0.000000, -0.277785, 0.415735, 0.001785, -0.555608, 0.831443, -0.903472, -0.357289, -0.236817, -0.428605, 0.750778, 0.502624, 0.796797, 0.614975,\n0.000000, 0.353553, 0.353553, 0.012557, 0.720869, 0.692958, -0.752990, -0.449160, 0.480896, -0.658624, 0.527404, -0.536712, 0.690070, 0.205446,\n0.068975, 0.353553, 0.346760, 0.142394, 0.683554, 0.715875, -0.709156, -0.434105, 0.555564, -0.707975, 0.575780, -0.408961, 0.665895, 0.234463,\n0.000000, 0.277785, 0.415735, 0.012460, 0.567207, 0.823481, -0.828915, -0.454732, 0.325758, -0.549922, 0.691702, -0.468117, 0.714533, 0.259103,\n0.176777, -0.191342, 0.426777, 0.325378, -0.382538, 0.864751, -0.890388, -0.431827, 0.143998, -0.322113, 0.814978, 0.481720, 0.734107, 0.608949,\n0.090120, -0.191342, 0.453064, 0.150420, -0.382537, 0.911613, -0.913342, -0.406704, -0.019959, -0.381307, 0.828310, 0.410498, 0.759182, 0.581072,\n0.095671, -0.097545, 0.480970, 0.222807, -0.195006, 0.955160, -0.895241, -0.428756, 0.121295, -0.385003, 0.882541, 0.269989, 0.746184, 0.521879,\n0.135299, 0.353553, 0.326641, 0.261563, 0.729955, 0.631468, -0.555272, -0.421330, 0.717045, -0.780375, 0.544938, -0.306688, 0.643255, 0.262466,\n0.068975, 0.353553, 0.346760, 0.142394, 0.683554, 0.715875, -0.709156, -0.434105, 0.555564, -0.707975, 0.575780, -0.408961, 0.665895, 0.234463,\n0.054193, 0.415735, 0.272448, 0.104109, 0.823575, 0.557571, -0.551851, -0.418565, 0.721293, -0.839109, 0.373688, -0.395288, 0.635422, 0.185632,\n0.090120, -0.191342, 0.453064, 0.150420, -0.382537, 0.911613, -0.913342, -0.406704, -0.019959, -0.381307, 0.828310, 0.410498, 0.759182, 0.581072,\n0.176777, -0.191342, 0.426777, 0.325378, -0.382538, 0.864751, -0.890388, -0.431827, 0.143998, -0.322113, 0.814978, 0.481720, 0.734107, 0.608949,\n0.081106, -0.277785, 0.407747, 0.163956, -0.555608, 0.815119, -0.912228, -0.399882, -0.089082, -0.374218, 0.729506, 0.572523, 0.773368, 0.639622,\n0.159095, 0.277785, 0.384089, 0.326646, 0.567206, 0.756029, -0.658364, -0.437374, 0.612586, -0.672901, 0.701278, -0.235399, 0.663284, 0.317370,\n0.081106, 0.277785, 0.407747, 0.181394, 0.539042, 0.822514, -0.774078, -0.437604, 0.457500, -0.612223, 0.716441, -0.334508, 0.688154, 0.288422,\n0.068975, 0.353553, 0.346760, 0.142394, 0.683554, 0.715875, -0.709156, -0.434105, 0.555564, -0.707975, 0.575780, -0.408961, 0.665895, 0.234463,\n0.081106, -0.277785, 0.407747, 0.163956, -0.555608, 0.815119, -0.912228, -0.399882, -0.089082, -0.374218, 0.729506, 0.572523, 0.773368, 0.639622,\n0.159095, -0.277785, 0.384089, 0.326646, -0.567206, 0.756029, -0.902076, -0.425816, 0.070281, -0.275374, 0.708089, 0.650215, 0.749700, 0.666456,\n0.068975, -0.353553, 0.346760, 0.140172, -0.707137, 0.693044, -0.908721, -0.369819, -0.193545, -0.391505, 0.603327, 0.694780, 0.789921, 0.696864,\n0.176777, 0.191342, 0.426777, 0.325378, 0.382538, 0.864751, -0.754569, -0.446108, 0.481263, -0.566310, 0.811200, -0.145764, 0.679609, 0.374456,\n0.090120, 0.191342, 0.453064, 0.150420, 0.382537, 0.911614, -0.832725, -0.447986, 0.325389, -0.527832, 0.810755, -0.253120, 0.705594, 0.345167,\n0.081106, 0.277785, 0.407747, 0.181394, 0.539042, 0.822514, -0.774078, -0.437604, 0.457500, -0.612223, 0.716441, -0.334508, 0.688154, 0.288422,\n0.068975, -0.353553, 0.346760, 0.140172, -0.707137, 0.693044, -0.908721, -0.369819, -0.193545, -0.391505, 0.603327, 0.694780, 0.789921, 0.696864,\n0.135299, -0.353553, 0.326641, 0.253581, -0.720868, 0.645016, -0.913094, -0.398493, -0.086381, -0.310930, 0.570681, 0.760030, 0.768457, 0.722120,\n0.054193, -0.415735, 0.272448, 0.123852, -0.820324, 0.558327, -0.893831, -0.336591, -0.296263, -0.435664, 0.460577, 0.773347, 0.810650, 0.751723,\n0.090120, 0.191342, 0.453064, 0.150420, 0.382537, 0.911614, -0.832725, -0.447986, 0.325389, -0.527832, 0.810755, -0.253120, 0.705594, 0.345167,\n0.176777, 0.191342, 0.426777, 0.325378, 0.382538, 0.864751, -0.754569, -0.446108, 0.481263, -0.566310, 0.811200, -0.145764, 0.679609, 0.374456,\n0.095671, 0.097545, 0.480970, 0.222807, 0.195006, 0.955160, -0.849816, -0.441233, 0.288316, -0.484252, 0.872498, -0.065170, 0.720269, 0.403448,\n0.054193, -0.415735, 0.272448, 0.123852, -0.820324, 0.558327, -0.893831, -0.336591, -0.296263, -0.435664, 0.460577, 0.773347, 0.810650, 0.751723,\n0.106304, -0.415735, 0.256640, 0.216371, -0.839191, 0.498940, -0.904748, -0.364402, -0.220551, -0.367123, 0.403604, 0.838048, 0.792639, 0.774468,\n0.037329, -0.461940, 0.187665, 0.080526, -0.910837, 0.404836, -0.849838, -0.274976, -0.449625, -0.544394, 0.300037, 0.783335, 0.838536, 0.802228,\n0.191342, 0.000000, 0.461940, 0.352163, 0.000000, 0.935939, -0.837896, -0.445571, 0.315273, -0.416119, 0.895729, 0.156572, 0.707107, 0.491563,\n0.097545, 0.000000, 0.490393, 0.162803, -0.000000, 0.986659, -0.889654, -0.432395, 0.146797, -0.424489, 0.902720, 0.070042, 0.733486, 0.462524,\n0.095671, 0.097545, 0.480970, 0.222807, 0.195006, 0.955160, -0.849816, -0.441233, 0.288316, -0.484252, 0.872498, -0.065170, 0.720269, 0.403448,\n0.073224, 0.461940, 0.176777, 0.149190, 0.923888, 0.352383, -0.209827, -0.318676, 0.924348, -0.971200, 0.203867, -0.123323, 0.580255, 0.167767,\n0.037329, 0.461940, 0.187665, 0.087331, 0.916136, 0.391239, -0.294404, -0.351461, 0.888708, -0.937031, 0.208860, -0.279912, 0.591752, 0.146494,\n0.019030, 0.490393, 0.095671, 0.044314, 0.973859, 0.222787, -0.038854, -0.221157, 0.974464, -0.994442, 0.064320, -0.083357, 0.531827, 0.124876,\n0.037329, -0.461940, 0.187665, 0.080526, -0.910837, 0.404836, -0.849838, -0.274976, -0.449625, -0.544394, 0.300037, 0.783335, 0.838536, 0.802228,\n0.073224, -0.461940, 0.176777, 0.134132, -0.931233, 0.338842, -0.844094, -0.286498, -0.453237, -0.512969, 0.227307, 0.827765, 0.825855, 0.820746,\n0.019030, -0.490393, 0.095671, 0.044314, -0.973859, 0.222787, -0.736482, -0.182524, -0.651368, -0.682533, 0.133332, 0.718590, 0.878221, 0.844539,\n0.097545, 0.000000, 0.490393, 0.162803, -0.000000, 0.986659, -0.889654, -0.432395, 0.146797, -0.424489, 0.902720, 0.070042, 0.733486, 0.462524,\n0.191342, 0.000000, 0.461940, 0.352163, 0.000000, 0.935939, -0.837896, -0.445571, 0.315273, -0.416119, 0.895729, 0.156572, 0.707107, 0.491563,\n0.095671, -0.097545, 0.480970, 0.222807, -0.195006, 0.955160, -0.895241, -0.428756, 0.121295, -0.385003, 0.882541, 0.269989, 0.746184, 0.521879,\n0.106304, 0.415735, 0.256640, 0.197657, 0.842234, 0.501571, -0.449178, -0.376972, 0.810019, -0.868760, 0.387518, -0.308360, 0.616925, 0.211494,\n0.054193, 0.415735, 0.272448, 0.104109, 0.823575, 0.557571, -0.551851, -0.418565, 0.721293, -0.839109, 0.373688, -0.395288, 0.635422, 0.185632,\n0.037329, 0.461940, 0.187665, 0.087331, 0.916136, 0.391239, -0.294404, -0.351461, 0.888708, -0.937031, 0.208860, -0.279912, 0.591752, 0.146494,\n0.106304, -0.461940, 0.159095, 0.202132, -0.923819, 0.325118, -0.879274, -0.317380, -0.355171, -0.438512, 0.211461, 0.873494, 0.813873, 0.841082,\n0.073224, -0.461940, 0.176777, 0.134132, -0.931233, 0.338842, -0.844094, -0.286498, -0.453237, -0.512969, 0.227307, 0.827765, 0.825855, 0.820746,\n0.106304, -0.415735, 0.256640, 0.216371, -0.839191, 0.498940, -0.904748, -0.364402, -0.220551, -0.367123, 0.403604, 0.838048, 0.792639, 0.774468,\n0.277785, 0.000000, 0.415735, 0.527990, 0.000000, 0.849250, -0.760591, -0.444855, 0.472869, -0.377970, 0.895499, 0.234989, 0.680843, 0.520863,\n0.191342, 0.000000, 0.461940, 0.352163, 0.000000, 0.935939, -0.837896, -0.445571, 0.315273, -0.416119, 0.895729, 0.156572, 0.707107, 0.491563,\n0.187665, 0.097545, 0.453064, 0.404870, 0.195006, 0.893338, -0.775954, -0.443563, 0.448495, -0.487796, 0.872420, 0.030634, 0.693851, 0.432732,\n0.106304, 0.461940, 0.159095, 0.215072, 0.923888, 0.316505, -0.142089, -0.291038, 0.946101, -0.968208, 0.244107, -0.054637, 0.567957, 0.187359,\n0.073224, 0.461940, 0.176777, 0.149190, 0.923888, 0.352383, -0.209827, -0.318676, 0.924348, -0.971200, 0.203867, -0.123323, 0.580255, 0.167767,\n0.037329, 0.490393, 0.090120, 0.087334, 0.976741, 0.195832, 0.029590, -0.199040, 0.979544, -0.996041, 0.082349, 0.033470, 0.528865, 0.137340,\n0.073224, -0.461940, 0.176777, 0.134132, -0.931233, 0.338842, -0.844094, -0.286498, -0.453237, -0.512969, 0.227307, 0.827765, 0.825855, 0.820746,\n0.106304, -0.461940, 0.159095, 0.202132, -0.923819, 0.325118, -0.879274, -0.317380, -0.355171, -0.438512, 0.211461, 0.873494, 0.813873, 0.841082,\n0.037329, -0.490393, 0.090120, 0.087334, -0.976741, 0.195832, -0.744511, -0.194610, -0.638616, -0.657112, 0.091266, 0.748248, 0.872759, 0.855785,\n0.191342, 0.000000, 0.461940, 0.352163, 0.000000, 0.935939, -0.837896, -0.445571, 0.315273, -0.416119, 0.895729, 0.156572, 0.707107, 0.491563,\n0.277785, 0.000000, 0.415735, 0.527990, 0.000000, 0.849250, -0.760591, -0.444855, 0.472869, -0.377970, 0.895499, 0.234989, 0.680843, 0.520863,\n0.187665, -0.097545, 0.453064, 0.404870, -0.195006, 0.893338, -0.848218, -0.444960, 0.287291, -0.341842, 0.873870, 0.345682, 0.720246, 0.550459,\n0.154329, 0.415735, 0.230970, 0.309558, 0.823575, 0.475288, -0.362806, -0.359728, 0.859632, -0.882398, 0.435059, -0.179155, 0.598817, 0.235470,\n0.106304, 0.415735, 0.256640, 0.197657, 0.842234, 0.501571, -0.449178, -0.376972, 0.810019, -0.868760, 0.387518, -0.308360, 0.616925, 0.211494,\n0.073224, 0.461940, 0.176777, 0.149190, 0.923888, 0.352383, -0.209827, -0.318676, 0.924348, -0.971200, 0.203867, -0.123323, 0.580255, 0.167767,\n0.256640, -0.191342, 0.384089, 0.487830, -0.382537, 0.784657, -0.841552, -0.444954, 0.306278, -0.236581, 0.807292, 0.540656, 0.708586, 0.637959,\n0.176777, -0.191342, 0.426777, 0.325378, -0.382538, 0.864751, -0.890388, -0.431827, 0.143998, -0.322113, 0.814978, 0.481720, 0.734107, 0.608949,\n0.187665, -0.097545, 0.453064, 0.404870, -0.195006, 0.893338, -0.848218, -0.444960, 0.287291, -0.341842, 0.873870, 0.345682, 0.720246, 0.550459,\n0.106304, 0.415735, 0.256640, 0.197657, 0.842234, 0.501571, -0.449178, -0.376972, 0.810019, -0.868760, 0.387518, -0.308360, 0.616925, 0.211494,\n0.154329, 0.415735, 0.230970, 0.309558, 0.823575, 0.475288, -0.362806, -0.359728, 0.859632, -0.882398, 0.435059, -0.179155, 0.598817, 0.235470,\n0.135299, 0.353553, 0.326641, 0.261563, 0.729955, 0.631468, -0.555272, -0.421330, 0.717045, -0.780375, 0.544938, -0.306688, 0.643255, 0.262466,\n0.176777, -0.191342, 0.426777, 0.325378, -0.382538, 0.864751, -0.890388, -0.431827, 0.143998, -0.322113, 0.814978, 0.481720, 0.734107, 0.608949,\n0.256640, -0.191342, 0.384089, 0.487830, -0.382537, 0.784657, -0.841552, -0.444954, 0.306278, -0.236581, 0.807292, 0.540656, 0.708586, 0.637959,\n0.159095, -0.277785, 0.384089, 0.326646, -0.567206, 0.756029, -0.902076, -0.425816, 0.070281, -0.275374, 0.708089, 0.650215, 0.749700, 0.666456,\n0.135299, 0.353553, 0.326641, 0.261563, 0.729955, 0.631468, -0.555272, -0.421330, 0.717045, -0.780375, 0.544938, -0.306688, 0.643255, 0.262466,\n0.196424, 0.353553, 0.293969, 0.405511, 0.683554, 0.606889, -0.503618, -0.387003, 0.772398, -0.774279, 0.609746, -0.169414, 0.621494, 0.288874,\n0.159095, 0.277785, 0.384089, 0.326646, 0.567206, 0.756029, -0.658364, -0.437374, 0.612586, -0.672901, 0.701278, -0.235399, 0.663284, 0.317370,\n0.196424, -0.353553, 0.293969, 0.390842, -0.697093, 0.601086, -0.901249, -0.422534, 0.095994, -0.200693, 0.572779, 0.794762, 0.746387, 0.749272,\n0.135299, -0.353553, 0.326641, 0.253581, -0.720868, 0.645016, -0.913094, -0.398493, -0.086381, -0.310930, 0.570681, 0.760030, 0.768457, 0.722120,\n0.159095, -0.277785, 0.384089, 0.326646, -0.567206, 0.756029, -0.902076, -0.425816, 0.070281, -0.275374, 0.708089, 0.650215, 0.749700, 0.666456,\n0.256640, 0.191342, 0.384089, 0.487830, 0.382537, 0.784657, -0.656742, -0.431327, 0.618585, -0.572659, 0.818661, -0.043086, 0.654329, 0.403082,\n0.176777, 0.191342, 0.426777, 0.325378, 0.382538, 0.864751, -0.754569, -0.446108, 0.481263, -0.566310, 0.811200, -0.145764, 0.679609, 0.374456,\n0.159095, 0.277785, 0.384089, 0.326646, 0.567206, 0.756029, -0.658364, -0.437374, 0.612586, -0.672901, 0.701278, -0.235399, 0.663284, 0.317370,\n0.135299, -0.353553, 0.326641, 0.253581, -0.720868, 0.645016, -0.913094, -0.398493, -0.086381, -0.310930, 0.570681, 0.760030, 0.768457, 0.722120,\n0.196424, -0.353553, 0.293969, 0.390842, -0.697093, 0.601086, -0.901249, -0.422534, 0.095994, -0.200693, 0.572779, 0.794762, 0.746387, 0.749272,\n0.106304, -0.415735, 0.256640, 0.216371, -0.839191, 0.498940, -0.904748, -0.364402, -0.220551, -0.367123, 0.403604, 0.838048, 0.792639, 0.774468,\n0.176777, 0.191342, 0.426777, 0.325378, 0.382538, 0.864751, -0.754569, -0.446108, 0.481263, -0.566310, 0.811200, -0.145764, 0.679609, 0.374456,\n0.256640, 0.191342, 0.384089, 0.487830, 0.382537, 0.784657, -0.656742, -0.431327, 0.618585, -0.572659, 0.818661, -0.043086, 0.654329, 0.403082,\n0.187665, 0.097545, 0.453064, 0.404870, 0.195006, 0.893338, -0.775954, -0.443563, 0.448495, -0.487796, 0.872420, 0.030634, 0.693851, 0.432732,\n0.230970, -0.277785, 0.345671, 0.482349, -0.539041, 0.690488, -0.859848, -0.441928, 0.255659, -0.169141, 0.716102, 0.677192, 0.725412, 0.694835,\n0.293969, -0.277785, 0.293969, 0.589181, -0.555607, 0.586656, -0.805752, -0.458145, 0.375323, -0.058674, 0.694723, 0.716880, 0.699985, 0.724042,\n0.196424, -0.353553, 0.293969, 0.390842, -0.697093, 0.601086, -0.901249, -0.422534, 0.095994, -0.200693, 0.572779, 0.794762, 0.746387, 0.749272,\n0.326641, 0.191342, 0.326641, 0.639780, 0.395636, 0.658903, -0.525058, -0.401068, 0.750639, -0.559581, 0.827471, 0.046488, 0.629325, 0.430241,\n0.256640, 0.191342, 0.384089, 0.487830, 0.382537, 0.784657, -0.656742, -0.431327, 0.618585, -0.572659, 0.818661, -0.043086, 0.654329, 0.403082,\n0.230970, 0.277785, 0.345671, 0.482349, 0.539041, 0.690488, -0.570198, -0.405184, 0.714633, -0.674162, 0.731742, -0.100302, 0.639314, 0.345175,\n0.196424, -0.353553, 0.293969, 0.390842, -0.697093, 0.601086, -0.901249, -0.422534, 0.095994, -0.200693, 0.572779, 0.794762, 0.746387, 0.749272,\n0.250000, -0.353553, 0.250000, 0.501585, -0.707137, 0.498368, -0.863572, -0.443584, 0.239742, -0.050333, 0.551246, 0.832823, 0.723190, 0.777783,\n0.154329, -0.415735, 0.230970, 0.323751, -0.831354, 0.451704, -0.911964, -0.401356, -0.085055, -0.276201, 0.373577, 0.885524, 0.774406, 0.799286,\n0.256640, 0.191342, 0.384089, 0.487830, 0.382537, 0.784657, -0.656742, -0.431327, 0.618585, -0.572659, 0.818661, -0.043086, 0.654329, 0.403082,\n0.326641, 0.191342, 0.326641, 0.639780, 0.395636, 0.658903, -0.525058, -0.401068, 0.750639, -0.559581, 0.827471, 0.046488, 0.629325, 0.430241,\n0.272448, 0.097545, 0.407746, 0.571370, 0.195006, 0.797188, -0.679619, -0.432092, 0.592802, -0.461244, 0.879738, 0.115390, 0.667855, 0.461824,\n0.135299, -0.461940, 0.135299, 0.256643, -0.929163, 0.266065, -0.891552, -0.333886, -0.306030, -0.403189, 0.147263, 0.903190, 0.802789, 0.862995,\n0.106304, -0.461940, 0.159095, 0.202132, -0.923819, 0.325118, -0.879274, -0.317380, -0.355171, -0.438512, 0.211461, 0.873494, 0.813873, 0.841082,\n0.154329, -0.415735, 0.230970, 0.323751, -0.831354, 0.451704, -0.911964, -0.401356, -0.085055, -0.276201, 0.373577, 0.885524, 0.774406, 0.799286,\n0.353554, 0.000000, 0.353553, 0.683524, -0.000000, 0.729928, -0.658903, -0.430280, 0.617014, -0.315155, 0.901988, 0.295120, 0.654296, 0.549514,\n0.277785, 0.000000, 0.415735, 0.527990, 0.000000, 0.849250, -0.760591, -0.444855, 0.472869, -0.377970, 0.895499, 0.234989, 0.680843, 0.520863,\n0.272448, 0.097545, 0.407746, 0.571370, 0.195006, 0.797188, -0.679619, -0.432092, 0.592802, -0.461244, 0.879738, 0.115390, 0.667855, 0.461824,\n0.135299, 0.461940, 0.135299, 0.272685, 0.923888, 0.268466, -0.068741, -0.259619, 0.963261, -0.960121, 0.279218, 0.014321, 0.555020, 0.205035,\n0.106304, 0.461940, 0.159095, 0.215072, 0.923888, 0.316505, -0.142089, -0.291038, 0.946101, -0.968208, 0.244107, -0.054637, 0.567957, 0.187359,\n0.054193, 0.490393, 0.081106, 0.123861, 0.976741, 0.175033, 0.067422, -0.184267, 0.980561, -0.990960, 0.112591, 0.072953, 0.524202, 0.149115,\n0.106304, -0.461940, 0.159095, 0.202132, -0.923819, 0.325118, -0.879274, -0.317380, -0.355171, -0.438512, 0.211461, 0.873494, 0.813873, 0.841082,\n0.135299, -0.461940, 0.135299, 0.256643, -0.929163, 0.266065, -0.891552, -0.333886, -0.306030, -0.403189, 0.147263, 0.903190, 0.802789, 0.862995,\n0.054193, -0.490393, 0.081106, 0.123861, -0.976741, 0.175033, -0.764866, -0.206349, -0.610246, -0.629644, 0.058971, 0.774642, 0.868766, 0.867891,\n0.277785, 0.000000, 0.415735, 0.527990, 0.000000, 0.849250, -0.760591, -0.444855, 0.472869, -0.377970, 0.895499, 0.234989, 0.680843, 0.520863,\n0.353554, 0.000000, 0.353553, 0.683524, -0.000000, 0.729928, -0.658903, -0.430280, 0.617014, -0.315155, 0.901988, 0.295120, 0.654296, 0.549514,\n0.272448, -0.097545, 0.407746, 0.571370, -0.195006, 0.797188, -0.775311, -0.446789, 0.446399, -0.265374, 0.875277, 0.404310, 0.694122, 0.579742,\n0.196424, 0.415735, 0.196424, 0.394718, 0.831489, 0.390926, -0.237243, -0.318812, 0.917646, -0.887510, 0.455137, -0.071945, 0.580834, 0.257236,\n0.154329, 0.415735, 0.230970, 0.309558, 0.823575, 0.475288, -0.362806, -0.359728, 0.859632, -0.882398, 0.435059, -0.179155, 0.598817, 0.235470,\n0.106304, 0.461940, 0.159095, 0.215072, 0.923888, 0.316505, -0.142089, -0.291038, 0.946101, -0.968208, 0.244107, -0.054637, 0.567957, 0.187359,\n0.326641, -0.191342, 0.326641, 0.631535, -0.382537, 0.674410, -0.765616, -0.445052, 0.464501, -0.127864, 0.806523, 0.577209, 0.682151, 0.667268,\n0.256640, -0.191342, 0.384089, 0.487830, -0.382537, 0.784657, -0.841552, -0.444954, 0.306278, -0.236581, 0.807292, 0.540656, 0.708586, 0.637959,\n0.272448, -0.097545, 0.407746, 0.571370, -0.195006, 0.797188, -0.775311, -0.446789, 0.446399, -0.265374, 0.875277, 0.404310, 0.694122, 0.579742,\n0.250000, 0.353553, 0.250000, 0.481115, 0.720868, 0.498876, -0.357926, -0.357950, 0.862415, -0.796638, 0.597035, -0.094430, 0.600175, 0.313176,\n0.196424, 0.353553, 0.293969, 0.405511, 0.683554, 0.606889, -0.503618, -0.387003, 0.772398, -0.774279, 0.609746, -0.169414, 0.621494, 0.288874,\n0.154329, 0.415735, 0.230970, 0.309558, 0.823575, 0.475288, -0.362806, -0.359728, 0.859632, -0.882398, 0.435059, -0.179155, 0.598817, 0.235470,\n0.256640, -0.191342, 0.384089, 0.487830, -0.382537, 0.784657, -0.841552, -0.444954, 0.306278, -0.236581, 0.807292, 0.540656, 0.708586, 0.637959,\n0.326641, -0.191342, 0.326641, 0.631535, -0.382537, 0.674410, -0.765616, -0.445052, 0.464501, -0.127864, 0.806523, 0.577209, 0.682151, 0.667268,\n0.230970, -0.277785, 0.345671, 0.482349, -0.539041, 0.690488, -0.859848, -0.441928, 0.255659, -0.169141, 0.716102, 0.677192, 0.725412, 0.694835,\n0.293969, 0.277785, 0.293969, 0.574714, 0.582587, 0.574714, -0.439014, -0.373186, 0.817312, -0.688256, 0.724028, -0.045690, 0.615788, 0.371156,\n0.230970, 0.277785, 0.345671, 0.482349, 0.539041, 0.690488, -0.570198, -0.405184, 0.714633, -0.674162, 0.731742, -0.100302, 0.639314, 0.345175,\n0.196424, 0.353553, 0.293969, 0.405511, 0.683554, 0.606889, -0.503618, -0.387003, 0.772398, -0.774279, 0.609746, -0.169414, 0.621494, 0.288874,\n0.384089, -0.191342, 0.256640, 0.750971, -0.382537, 0.538245, -0.660325, -0.430450, 0.615373, -0.002364, 0.813546, 0.581496, 0.654257, 0.695946,\n0.326641, -0.191342, 0.326641, 0.631535, -0.382537, 0.674410, -0.765616, -0.445052, 0.464501, -0.127864, 0.806523, 0.577209, 0.682151, 0.667268,\n0.346760, -0.097545, 0.346760, 0.715915, -0.195005, 0.670402, -0.675718, -0.435157, 0.595015, -0.170762, 0.882136, 0.438949, 0.667393, 0.608830,\n0.293969, 0.353553, 0.196424, 0.591116, 0.697093, 0.405763, -0.254938, -0.315802, 0.913934, -0.765365, 0.643528, 0.009416, 0.579002, 0.334905,\n0.250000, 0.353553, 0.250000, 0.481115, 0.720868, 0.498876, -0.357926, -0.357950, 0.862415, -0.796638, 0.597035, -0.094430, 0.600175, 0.313176,\n0.196424, 0.415735, 0.196424, 0.394718, 0.831489, 0.390926, -0.237243, -0.318812, 0.917646, -0.887510, 0.455137, -0.071945, 0.580834, 0.257236,\n0.326641, -0.191342, 0.326641, 0.631535, -0.382537, 0.674410, -0.765616, -0.445052, 0.464501, -0.127864, 0.806523, 0.577209, 0.682151, 0.667268,\n0.384089, -0.191342, 0.256640, 0.750971, -0.382537, 0.538245, -0.660325, -0.430450, 0.615373, -0.002364, 0.813546, 0.581496, 0.654257, 0.695946,\n0.293969, -0.277785, 0.293969, 0.589181, -0.555607, 0.586656, -0.805752, -0.458145, 0.375323, -0.058674, 0.694723, 0.716880, 0.699985, 0.724042,\n0.250000, 0.353553, 0.250000, 0.481115, 0.720868, 0.498876, -0.357926, -0.357950, 0.862415, -0.796638, 0.597035, -0.094430, 0.600175, 0.313176,\n0.293969, 0.353553, 0.196424, 0.591116, 0.697093, 0.405763, -0.254938, -0.315802, 0.913934, -0.765365, 0.643528, 0.009416, 0.579002, 0.334905,\n0.293969, 0.277785, 0.293969, 0.574714, 0.582587, 0.574714, -0.439014, -0.373186, 0.817312, -0.688256, 0.724028, -0.045690, 0.615788, 0.371156,\n0.293969, -0.277785, 0.293969, 0.589181, -0.555607, 0.586656, -0.805752, -0.458145, 0.375323, -0.058674, 0.694723, 0.716880, 0.699985, 0.724042,\n0.345671, -0.277785, 0.230970, 0.692311, -0.555607, 0.460442, -0.715184, -0.443416, 0.540273, 0.098946, 0.705151, 0.702119, 0.672735, 0.753249,\n0.250000, -0.353553, 0.250000, 0.501585, -0.707137, 0.498368, -0.863572, -0.443584, 0.239742, -0.050333, 0.551246, 0.832823, 0.723190, 0.777783,\n0.293969, 0.277785, 0.293969, 0.574714, 0.582587, 0.574714, -0.439014, -0.373186, 0.817312, -0.688256, 0.724028, -0.045690, 0.615788, 0.371156,\n0.345671, 0.277785, 0.230970, 0.706109, 0.528022, 0.471807, -0.336462, -0.336087, 0.879681, -0.627113, 0.775743, 0.070370, 0.592373, 0.394688,\n0.326641, 0.191342, 0.326641, 0.639780, 0.395636, 0.658903, -0.525058, -0.401068, 0.750639, -0.559581, 0.827471, 0.046488, 0.629325, 0.430241,\n0.250000, -0.353553, 0.250000, 0.501585, -0.707137, 0.498368, -0.863572, -0.443584, 0.239742, -0.050333, 0.551246, 0.832823, 0.723190, 0.777783,\n0.293969, -0.353553, 0.196424, 0.589174, -0.707137, 0.390937, -0.801426, -0.449803, 0.394199, 0.104128, 0.546243, 0.831129, 0.698089, 0.807023,\n0.196424, -0.415735, 0.196424, 0.405652, -0.831354, 0.379865, -0.906402, -0.419454, 0.049937, -0.135568, 0.356274, 0.924495, 0.755624, 0.825846,\n0.326641, 0.191342, 0.326641, 0.639780, 0.395636, 0.658903, -0.525058, -0.401068, 0.750639, -0.559581, 0.827471, 0.046488, 0.629325, 0.430241,\n0.384089, 0.191342, 0.256640, 0.763631, 0.364377, 0.533008, -0.410883, -0.362539, 0.836505, -0.501243, 0.854918, 0.133680, 0.604257, 0.455174,\n0.346760, 0.097545, 0.346760, 0.715915, 0.195005, 0.670402, -0.562504, -0.407702, 0.719284, -0.414234, 0.891580, 0.183015, 0.641879, 0.489842,\n0.159095, -0.461940, 0.106304, 0.343202, -0.910837, 0.229321, -0.916407, -0.378249, -0.130867, -0.187883, 0.172641, 0.966900, 0.792948, 0.886226,\n0.135299, -0.461940, 0.135299, 0.256643, -0.929163, 0.266065, -0.891552, -0.333886, -0.306030, -0.403189, 0.147263, 0.903190, 0.802789, 0.862995,\n0.196424, -0.415735, 0.196424, 0.405652, -0.831354, 0.379865, -0.906402, -0.419454, 0.049937, -0.135568, 0.356274, 0.924495, 0.755624, 0.825846,\n0.415735, 0.000000, 0.277785, 0.812792, 0.000000, 0.582554, -0.533537, -0.401502, 0.744402, -0.235619, 0.914556, 0.328741, 0.627086, 0.576588,\n0.353554, 0.000000, 0.353553, 0.683524, -0.000000, 0.729928, -0.658903, -0.430280, 0.617014, -0.315155, 0.901988, 0.295120, 0.654296, 0.549514,\n0.346760, 0.097545, 0.346760, 0.715915, 0.195005, 0.670402, -0.562504, -0.407702, 0.719284, -0.414234, 0.891580, 0.183015, 0.641879, 0.489842,\n0.159095, 0.461940, 0.106304, 0.319821, 0.923888, 0.210110, 0.008856, -0.224662, 0.974396, -0.947411, 0.309195, 0.082531, 0.541559, 0.220571,\n0.135299, 0.461940, 0.135299, 0.272685, 0.923888, 0.268466, -0.068741, -0.259619, 0.963261, -0.960121, 0.279218, 0.014321, 0.555020, 0.205035,\n0.068975, 0.490393, 0.068975, 0.155628, 0.976741, 0.147506, 0.108362, -0.165305, 0.980271, -0.982856, 0.138166, 0.122082, 0.518220, 0.159918,\n0.081106, -0.490393, 0.054193, 0.188870, -0.973859, 0.126198, -0.801537, -0.227128, -0.553128, -0.517361, 0.010550, 0.855703, 0.867032, 0.893366,\n0.068975, -0.490393, 0.068975, 0.137937, -0.980789, 0.137937, -0.762550, -0.194038, -0.617143, -0.658063, 0.013330, 0.752845, 0.866671, 0.880547,\n0.135299, -0.461940, 0.135299, 0.256643, -0.929163, 0.266065, -0.891552, -0.333886, -0.306030, -0.403189, 0.147263, 0.903190, 0.802789, 0.862995,\n0.353554, 0.000000, 0.353553, 0.683524, -0.000000, 0.729928, -0.658903, -0.430280, 0.617014, -0.315155, 0.901988, 0.295120, 0.654296, 0.549514,\n0.415735, 0.000000, 0.277785, 0.812792, 0.000000, 0.582554, -0.533537, -0.401502, 0.744402, -0.235619, 0.914556, 0.328741, 0.627086, 0.576588,\n0.346760, -0.097545, 0.346760, 0.715915, -0.195005, 0.670402, -0.675718, -0.435157, 0.595015, -0.170762, 0.882136, 0.438949, 0.667393, 0.608830,\n0.230970, 0.415735, 0.154329, 0.463399, 0.831489, 0.306409, -0.145438, -0.269724, 0.951891, -0.874467, 0.485046, 0.006256, 0.562811, 0.276478,\n0.196424, 0.415735, 0.196424, 0.394718, 0.831489, 0.390926, -0.237243, -0.318812, 0.917646, -0.887510, 0.455137, -0.071945, 0.580834, 0.257236,\n0.135299, 0.461940, 0.135299, 0.272685, 0.923888, 0.268466, -0.068741, -0.259619, 0.963261, -0.960121, 0.279218, 0.014321, 0.555020, 0.205035,\n0.230970, -0.415735, 0.154329, 0.482375, -0.820324, 0.307218, -0.875306, -0.437791, 0.205375, 0.031552, 0.366764, 0.929779, 0.735745, 0.853787,\n0.256640, -0.415735, 0.106304, 0.505801, -0.839191, 0.199808, -0.855445, -0.458062, 0.241648, 0.051734, 0.260712, 0.964029, 0.713786, 0.882694,\n0.159095, -0.461940, 0.106304, 0.343202, -0.910837, 0.229321, -0.916407, -0.378249, -0.130867, -0.187883, 0.172641, 0.966900, 0.792948, 0.886226,\n0.461940, 0.000000, 0.191342, 0.910825, 0.000000, 0.412793, -0.385428, -0.358038, 0.850444, -0.149711, 0.931915, 0.330335, 0.598888, 0.601120,\n0.415735, 0.000000, 0.277785, 0.812792, 0.000000, 0.582554, -0.533537, -0.401502, 0.744402, -0.235619, 0.914556, 0.328741, 0.627086, 0.576588,\n0.407747, 0.097545, 0.272447, 0.832947, 0.195006, 0.517853, -0.426367, -0.370351, 0.825258, -0.352234, 0.908612, 0.224402, 0.615573, 0.515927,\n0.176777, 0.461940, 0.073223, 0.344025, 0.929163, 0.135289, 0.104990, -0.181246, 0.977818, -0.933849, 0.323568, 0.152413, 0.527662, 0.233762,\n0.159095, 0.461940, 0.106304, 0.319821, 0.923888, 0.210110, 0.008856, -0.224662, 0.974396, -0.947411, 0.309195, 0.082531, 0.541559, 0.220571,\n0.081106, 0.490393, 0.054193, 0.181415, 0.976741, 0.114308, 0.153068, -0.142866, 0.977834, -0.971223, 0.159712, 0.176687, 0.511212, 0.169520,\n0.159095, -0.461940, 0.106304, 0.343202, -0.910837, 0.229321, -0.916407, -0.378249, -0.130867, -0.187883, 0.172641, 0.966900, 0.792948, 0.886226,\n0.176777, -0.461940, 0.073223, 0.334444, -0.931233, 0.144749, -0.912190, -0.358464, -0.198527, -0.271659, 0.051812, 0.960998, 0.785005, 0.910494,\n0.081106, -0.490393, 0.054193, 0.188870, -0.973859, 0.126198, -0.801537, -0.227128, -0.553128, -0.517361, 0.010550, 0.855703, 0.867032, 0.893366,\n0.415735, 0.000000, 0.277785, 0.812792, 0.000000, 0.582554, -0.533537, -0.401502, 0.744402, -0.235619, 0.914556, 0.328741, 0.627086, 0.576588,\n0.461940, 0.000000, 0.191342, 0.910825, 0.000000, 0.412793, -0.385428, -0.358038, 0.850444, -0.149711, 0.931915, 0.330335, 0.598888, 0.601120,\n0.407747, -0.097545, 0.272447, 0.832947, -0.195006, 0.517853, -0.548914, -0.409474, 0.728714, -0.068744, 0.892130, 0.446518, 0.639617, 0.636769,\n0.256640, 0.415735, 0.106304, 0.514273, 0.831489, 0.210118, -0.025383, -0.230135, 0.972828, -0.857217, 0.505928, 0.095995, 0.544655, 0.292902,\n0.230970, 0.415735, 0.154329, 0.463399, 0.831489, 0.306409, -0.145438, -0.269724, 0.951891, -0.874467, 0.485046, 0.006256, 0.562811, 0.276478,\n0.159095, 0.461940, 0.106304, 0.319821, 0.923888, 0.210110, 0.008856, -0.224662, 0.974396, -0.947411, 0.309195, 0.082531, 0.541559, 0.220571,\n0.426777, -0.191342, 0.176777, 0.841547, -0.382538, 0.381396, -0.522734, -0.398698, 0.753518, 0.129870, 0.828618, 0.544542, 0.624302, 0.722914,\n0.384089, -0.191342, 0.256640, 0.750971, -0.382537, 0.538245, -0.660325, -0.430450, 0.615373, -0.002364, 0.813546, 0.581496, 0.654257, 0.695946,\n0.407747, -0.097545, 0.272447, 0.832947, -0.195006, 0.517853, -0.548914, -0.409474, 0.728714, -0.068744, 0.892130, 0.446518, 0.639617, 0.636769,\n0.326641, 0.353553, 0.135299, 0.635404, 0.720869, 0.276786, -0.116036, -0.265239, 0.957175, -0.762496, 0.642333, 0.077514, 0.557787, 0.353629,\n0.293969, 0.353553, 0.196424, 0.591116, 0.697093, 0.405763, -0.254938, -0.315802, 0.913934, -0.765365, 0.643528, 0.009416, 0.579002, 0.334905,\n0.230970, 0.415735, 0.154329, 0.463399, 0.831489, 0.306409, -0.145438, -0.269724, 0.951891, -0.874467, 0.485046, 0.006256, 0.562811, 0.276478,\n0.384089, -0.191342, 0.256640, 0.750971, -0.382537, 0.538245, -0.660325, -0.430450, 0.615373, -0.002364, 0.813546, 0.581496, 0.654257, 0.695946,\n0.426777, -0.191342, 0.176777, 0.841547, -0.382538, 0.381396, -0.522734, -0.398698, 0.753518, 0.129870, 0.828618, 0.544542, 0.624302, 0.722914,\n0.345671, -0.277785, 0.230970, 0.692311, -0.555607, 0.460442, -0.715184, -0.443416, 0.540273, 0.098946, 0.705151, 0.702119, 0.672735, 0.753249,\n0.384089, 0.277785, 0.159095, 0.750900, 0.582587, 0.311034, -0.170456, -0.284039, 0.943540, -0.637258, 0.762804, 0.109690, 0.568840, 0.415192,\n0.345671, 0.277785, 0.230970, 0.706109, 0.528022, 0.471807, -0.336462, -0.336087, 0.879681, -0.627113, 0.775743, 0.070370, 0.592373, 0.394688,\n0.293969, 0.353553, 0.196424, 0.591116, 0.697093, 0.405763, -0.254938, -0.315802, 0.913934, -0.765365, 0.643528, 0.009416, 0.579002, 0.334905,\n0.345671, -0.277785, 0.230970, 0.692311, -0.555607, 0.460442, -0.715184, -0.443416, 0.540273, 0.098946, 0.705151, 0.702119, 0.672735, 0.753249,\n0.384089, -0.277785, 0.159095, 0.765567, -0.567205, 0.303621, -0.587098, -0.422928, 0.690253, 0.273964, 0.714423, 0.643850, 0.642782, 0.781431,\n0.293969, -0.353553, 0.196424, 0.589174, -0.707137, 0.390937, -0.801426, -0.449803, 0.394199, 0.104128, 0.546243, 0.831129, 0.698089, 0.807023,\n0.426777, 0.191342, 0.176777, 0.843230, 0.395637, 0.363915, -0.249378, -0.311815, 0.916833, -0.476120, 0.863962, 0.163949, 0.578878, 0.477160,\n0.384089, 0.191342, 0.256640, 0.763631, 0.364377, 0.533008, -0.410883, -0.362539, 0.836505, -0.501243, 0.854918, 0.133680, 0.604257, 0.455174,\n0.345671, 0.277785, 0.230970, 0.706109, 0.528022, 0.471807, -0.336462, -0.336087, 0.879681, -0.627113, 0.775743, 0.070370, 0.592373, 0.394688,\n0.293969, -0.353553, 0.196424, 0.589174, -0.707137, 0.390937, -0.801426, -0.449803, 0.394199, 0.104128, 0.546243, 0.831129, 0.698089, 0.807023,\n0.326641, -0.353553, 0.135299, 0.635404, -0.720869, 0.276785, -0.732722, -0.449753, 0.510726, 0.255124, 0.534302, 0.805874, 0.669894, 0.836185,\n0.230970, -0.415735, 0.154329, 0.482375, -0.820324, 0.307218, -0.875306, -0.437791, 0.205375, 0.031552, 0.366764, 0.929779, 0.735745, 0.853787,\n0.384089, 0.191342, 0.256640, 0.763631, 0.364377, 0.533008, -0.410883, -0.362539, 0.836505, -0.501243, 0.854918, 0.133680, 0.604257, 0.455174,\n0.426777, 0.191342, 0.176777, 0.843230, 0.395637, 0.363915, -0.249378, -0.311815, 0.916833, -0.476120, 0.863962, 0.163949, 0.578878, 0.477160,\n0.407747, 0.097545, 0.272447, 0.832947, 0.195006, 0.517853, -0.426367, -0.370351, 0.825258, -0.352234, 0.908612, 0.224402, 0.615573, 0.515927,\n0.346760, -0.353553, 0.068975, 0.688774, -0.706948, 0.160670, -0.589351, -0.416932, 0.691978, 0.406980, 0.560448, 0.721294, 0.636789, 0.864121,\n0.326641, -0.353553, 0.135299, 0.635404, -0.720869, 0.276785, -0.732722, -0.449753, 0.510726, 0.255124, 0.534302, 0.805874, 0.669894, 0.836185,\n0.384089, -0.277785, 0.159095, 0.765567, -0.567205, 0.303621, -0.587098, -0.422928, 0.690253, 0.273964, 0.714423, 0.643850, 0.642782, 0.781431,\n0.384089, 0.277785, 0.159095, 0.750900, 0.582587, 0.311034, -0.170456, -0.284039, 0.943540, -0.637258, 0.762804, 0.109690, 0.568840, 0.415192,\n0.407747, 0.277785, 0.081106, 0.815119, 0.555607, 0.163958, -0.041973, -0.225641, 0.973306, -0.578069, 0.798528, 0.167894, 0.545057, 0.432130,\n0.426777, 0.191342, 0.176777, 0.843230, 0.395637, 0.363915, -0.249378, -0.311815, 0.916833, -0.476120, 0.863962, 0.163949, 0.578878, 0.477160,\n0.326641, -0.353553, 0.135299, 0.635404, -0.720869, 0.276785, -0.732722, -0.449753, 0.510726, 0.255124, 0.534302, 0.805874, 0.669894, 0.836185,\n0.346760, -0.353553, 0.068975, 0.688774, -0.706948, 0.160670, -0.589351, -0.416932, 0.691978, 0.406980, 0.560448, 0.721294, 0.636789, 0.864121,\n0.256640, -0.415735, 0.106304, 0.505801, -0.839191, 0.199808, -0.855445, -0.458062, 0.241648, 0.051734, 0.260712, 0.964029, 0.713786, 0.882694,\n0.426777, 0.191342, 0.176777, 0.843230, 0.395637, 0.363915, -0.249378, -0.311815, 0.916833, -0.476120, 0.863962, 0.163949, 0.578878, 0.477160,\n0.453064, 0.191342, 0.090120, 0.905876, 0.382712, 0.181440, -0.088455, -0.247989, 0.964716, -0.414697, 0.888549, 0.196233, 0.553039, 0.495510,\n0.453064, 0.097545, 0.187665, 0.917971, 0.195006, 0.345401, -0.273171, -0.320559, 0.906984, -0.287255, 0.927329, 0.239888, 0.588664, 0.539227,\n0.187665, -0.461940, 0.037329, 0.361208, -0.929163, 0.078641, -0.930186, -0.364953, -0.039539, -0.049843, 0.064976, 0.996641, 0.780385, 0.935456,\n0.176777, -0.461940, 0.073223, 0.334444, -0.931233, 0.144749, -0.912190, -0.358464, -0.198527, -0.271659, 0.051812, 0.960998, 0.785005, 0.910494,\n0.256640, -0.415735, 0.106304, 0.505801, -0.839191, 0.199808, -0.855445, -0.458062, 0.241648, 0.051734, 0.260712, 0.964029, 0.713786, 0.882694,\n0.490393, 0.000000, 0.097545, 0.973856, 0.000000, 0.227166, -0.216729, -0.299626, 0.929114, -0.069516, 0.952027, 0.298015, 0.569479, 0.622121,\n0.461940, 0.000000, 0.191342, 0.910825, 0.000000, 0.412793, -0.385428, -0.358038, 0.850444, -0.149711, 0.931915, 0.330335, 0.598888, 0.601120,\n0.453064, 0.097545, 0.187665, 0.917971, 0.195006, 0.345401, -0.273171, -0.320559, 0.906984, -0.287255, 0.927329, 0.239888, 0.588664, 0.539227,\n0.090120, 0.490393, 0.037329, 0.180222, 0.980789, 0.074651, 0.212929, -0.112995, 0.970512, -0.961087, 0.159432, 0.225594, 0.503412, 0.177731,\n0.095671, 0.490393, 0.019030, 0.222787, 0.973859, 0.044314, 0.222436, -0.095039, 0.970304, -0.937833, 0.201692, 0.282472, 0.495010, 0.184398,\n0.176777, 0.461940, 0.073223, 0.344025, 0.929163, 0.135289, 0.104990, -0.181246, 0.977818, -0.933849, 0.323568, 0.152413, 0.527662, 0.233762,\n0.176777, -0.461940, 0.073223, 0.334444, -0.931233, 0.144749, -0.912190, -0.358464, -0.198527, -0.271659, 0.051812, 0.960998, 0.785005, 0.910494,\n0.187665, -0.461940, 0.037329, 0.361208, -0.929163, 0.078641, -0.930186, -0.364953, -0.039539, -0.049843, 0.064976, 0.996641, 0.780385, 0.935456,\n0.090120, -0.490393, 0.037329, 0.200230, -0.976741, 0.076720, -0.795149, -0.207753, -0.569716, -0.589941, -0.057676, 0.805384, 0.870555, 0.905851,\n0.461940, 0.000000, 0.191342, 0.910825, 0.000000, 0.412793, -0.385428, -0.358038, 0.850444, -0.149711, 0.931915, 0.330335, 0.598888, 0.601120,\n0.490393, 0.000000, 0.097545, 0.973856, 0.000000, 0.227166, -0.216729, -0.299626, 0.929114, -0.069516, 0.952027, 0.298015, 0.569479, 0.622121,\n0.453064, -0.097545, 0.187665, 0.917971, -0.195006, 0.345401, -0.394808, -0.365434, 0.842962, 0.044080, 0.915562, 0.399754, 0.610368, 0.662513,\n0.272448, 0.415735, 0.054193, 0.545382, 0.831490, 0.105750, 0.084079, -0.179799, 0.980104, -0.834031, 0.525792, 0.167141, 0.526326, 0.306241,\n0.256640, 0.415735, 0.106304, 0.514273, 0.831489, 0.210118, -0.025383, -0.230135, 0.972828, -0.857217, 0.505928, 0.095995, 0.544655, 0.292902,\n0.176777, 0.461940, 0.073223, 0.344025, 0.929163, 0.135289, 0.104990, -0.181246, 0.977818, -0.933849, 0.323568, 0.152413, 0.527662, 0.233762,\n0.453064, -0.191342, 0.090120, 0.899784, -0.382537, 0.209889, -0.350426, -0.346922, 0.869969, 0.254532, 0.850869, 0.459603, 0.591705, 0.746902,\n0.426777, -0.191342, 0.176777, 0.841547, -0.382538, 0.381396, -0.522734, -0.398698, 0.753518, 0.129870, 0.828618, 0.544542, 0.624302, 0.722914,\n0.453064, -0.097545, 0.187665, 0.917971, -0.195006, 0.345401, -0.394808, -0.365434, 0.842962, 0.044080, 0.915562, 0.399754, 0.610368, 0.662513,\n0.346760, 0.353553, 0.068975, 0.688774, 0.706948, 0.160670, -0.005444, -0.216572, 0.976251, -0.724924, 0.674253, 0.140953, 0.536424, 0.368955,\n0.326641, 0.353553, 0.135299, 0.635404, 0.720869, 0.276786, -0.116036, -0.265239, 0.957175, -0.762496, 0.642333, 0.077514, 0.557787, 0.353629,\n0.256640, 0.415735, 0.106304, 0.514273, 0.831489, 0.210118, -0.025383, -0.230135, 0.972828, -0.857217, 0.505928, 0.095995, 0.544655, 0.292902,\n0.426777, -0.191342, 0.176777, 0.841547, -0.382538, 0.381396, -0.522734, -0.398698, 0.753518, 0.129870, 0.828618, 0.544542, 0.624302, 0.722914,\n0.453064, -0.191342, 0.090120, 0.899784, -0.382537, 0.209889, -0.350426, -0.346922, 0.869969, 0.254532, 0.850869, 0.459603, 0.591705, 0.746902,\n0.384089, -0.277785, 0.159095, 0.765567, -0.567205, 0.303621, -0.587098, -0.422928, 0.690253, 0.273964, 0.714423, 0.643850, 0.642782, 0.781431,\n0.326641, 0.353553, 0.135299, 0.635404, 0.720869, 0.276786, -0.116036, -0.265239, 0.957175, -0.762496, 0.642333, 0.077514, 0.557787, 0.353629,\n0.346760, 0.353553, 0.068975, 0.688774, 0.706948, 0.160670, -0.005444, -0.216572, 0.976251, -0.724924, 0.674253, 0.140953, 0.536424, 0.368955,\n0.384089, 0.277785, 0.159095, 0.750900, 0.582587, 0.311034, -0.170456, -0.284039, 0.943540, -0.637258, 0.762804, 0.109690, 0.568840, 0.415192,\n0.277785, 0.415735, -0.000000, 0.543761, 0.839192, -0.008964, 0.204389, -0.122060, 0.971250, -0.814058, 0.530012, 0.237479, 0.507822, 0.316262,\n0.272448, 0.415735, 0.054193, 0.545382, 0.831490, 0.105750, 0.084079, -0.179799, 0.980104, -0.834031, 0.525792, 0.167141, 0.526326, 0.306241,\n0.187665, 0.461940, 0.037329, 0.394878, 0.916136, 0.069037, 0.150979, -0.138830, 0.978740, -0.900394, 0.370962, 0.227325, 0.513410, 0.244425,\n0.461940, -0.191342, -0.000000, 0.923442, -0.382538, 0.030317, -0.144235, -0.272797, 0.951198, 0.352860, 0.877533, 0.324693, 0.556083, 0.766452,\n0.453064, -0.191342, 0.090120, 0.899784, -0.382537, 0.209889, -0.350426, -0.346922, 0.869969, 0.254532, 0.850869, 0.459603, 0.591705, 0.746902,\n0.480970, -0.097545, 0.095671, 0.967717, -0.195006, 0.159677, -0.214521, -0.304707, 0.927973, 0.136665, 0.938306, 0.317654, 0.579306, 0.684921,\n0.353554, 0.353553, -0.000000, 0.706884, 0.706949, 0.023206, 0.125175, -0.157319, 0.979582, -0.696682, 0.690197, 0.195606, 0.514875, 0.380541,\n0.346760, 0.353553, 0.068975, 0.688774, 0.706948, 0.160670, -0.005444, -0.216572, 0.976251, -0.724924, 0.674253, 0.140953, 0.536424, 0.368955,\n0.272448, 0.415735, 0.054193, 0.545382, 0.831490, 0.105750, 0.084079, -0.179799, 0.980104, -0.834031, 0.525792, 0.167141, 0.526326, 0.306241,\n0.453064, -0.191342, 0.090120, 0.899784, -0.382537, 0.209889, -0.350426, -0.346922, 0.869969, 0.254532, 0.850869, 0.459603, 0.591705, 0.746902,\n0.461940, -0.191342, -0.000000, 0.923442, -0.382538, 0.030317, -0.144235, -0.272797, 0.951198, 0.352860, 0.877533, 0.324693, 0.556083, 0.766452,\n0.407747, -0.277785, 0.081106, 0.820488, -0.555401, 0.135385, -0.388731, -0.368416, 0.844487, 0.417575, 0.744024, 0.521593, 0.609075, 0.807270,\n0.346760, 0.353553, 0.068975, 0.688774, 0.706948, 0.160670, -0.005444, -0.216572, 0.976251, -0.724924, 0.674253, 0.140953, 0.536424, 0.368955,\n0.353554, 0.353553, -0.000000, 0.706884, 0.706949, 0.023206, 0.125175, -0.157319, 0.979582, -0.696682, 0.690197, 0.195606, 0.514875, 0.380541,\n0.407747, 0.277785, 0.081106, 0.815119, 0.555607, 0.163958, -0.041973, -0.225641, 0.973306, -0.578069, 0.798528, 0.167894, 0.545057, 0.432130,\n0.353554, -0.353553, -0.000000, 0.706884, -0.706949, 0.023206, -0.388828, -0.360967, 0.847653, 0.573742, 0.592259, 0.565729, 0.596152, 0.889050,\n0.346760, -0.353553, 0.068975, 0.688774, -0.706948, 0.160670, -0.589351, -0.416932, 0.691978, 0.406980, 0.560448, 0.721294, 0.636789, 0.864121,\n0.407747, -0.277785, 0.081106, 0.820488, -0.555401, 0.135385, -0.388731, -0.368416, 0.844487, 0.417575, 0.744024, 0.521593, 0.609075, 0.807270,\n0.407747, 0.277785, 0.081106, 0.815119, 0.555607, 0.163958, -0.041973, -0.225641, 0.973306, -0.578069, 0.798528, 0.167894, 0.545057, 0.432130,\n0.415735, 0.277785, -0.000000, 0.831444, 0.555606, 0.001784, 0.106358, -0.162310, 0.980991, -0.544500, 0.814178, 0.201579, 0.520977, 0.445030,\n0.453064, 0.191342, 0.090120, 0.905876, 0.382712, 0.181440, -0.088455, -0.247989, 0.964716, -0.414697, 0.888549, 0.196233, 0.553039, 0.495510,\n0.346760, -0.353553, 0.068975, 0.688774, -0.706948, 0.160670, -0.589351, -0.416932, 0.691978, 0.406980, 0.560448, 0.721294, 0.636789, 0.864121,\n0.353554, -0.353553, -0.000000, 0.706884, -0.706949, 0.023206, -0.388828, -0.360967, 0.847653, 0.573742, 0.592259, 0.565729, 0.596152, 0.889050,\n0.272448, -0.415735, 0.054193, 0.548328, -0.831354, 0.090477, -0.759805, -0.450075, 0.469179, 0.307801, 0.301235, 0.902505, 0.687796, 0.912014,\n0.453064, 0.191342, 0.090120, 0.905876, 0.382712, 0.181440, -0.088455, -0.247989, 0.964716, -0.414697, 0.888549, 0.196233, 0.553039, 0.495510,\n0.461940, 0.191342, -0.000000, 0.929088, 0.369649, -0.012471, 0.083053, -0.175655, 0.980942, -0.360348, 0.912280, 0.194666, 0.526697, 0.509604,\n0.480970, 0.097545, 0.095671, 0.967717, 0.195006, 0.159677, -0.106435, -0.258093, 0.960239, -0.227764, 0.947900, 0.222730, 0.560981, 0.558903,\n0.191342, -0.461940, -0.000000, 0.382652, -0.923888, 0.002983, -0.883013, -0.364769, 0.295351, 0.059284, 0.027776, 0.997855, 0.782721, 0.960585,\n0.187665, -0.461940, 0.037329, 0.361208, -0.929163, 0.078641, -0.930186, -0.364953, -0.039539, -0.049843, 0.064976, 0.996641, 0.780385, 0.935456,\n0.272448, -0.415735, 0.054193, 0.548328, -0.831354, 0.090477, -0.759805, -0.450075, 0.469179, 0.307801, 0.301235, 0.902505, 0.687796, 0.912014,\n0.500000, 0.000000, -0.000000, 0.999461, -0.000000, 0.032814, -0.031958, -0.226843, 0.973407, -0.007702, 0.972059, 0.234608, 0.538797, 0.638607,\n0.490393, 0.000000, 0.097545, 0.973856, 0.000000, 0.227166, -0.216729, -0.299626, 0.929114, -0.069516, 0.952027, 0.298015, 0.569479, 0.622121,\n0.480970, 0.097545, 0.095671, 0.967717, 0.195006, 0.159677, -0.106435, -0.258093, 0.960239, -0.227764, 0.947900, 0.222730, 0.560981, 0.558903,\n0.191342, 0.461940, -0.000000, 0.352136, 0.935949, 0.000000, 0.255192, -0.096012, 0.962112, -0.902615, 0.339595, 0.264501, 0.498880, 0.252406,\n0.187665, 0.461940, 0.037329, 0.394878, 0.916136, 0.069037, 0.150979, -0.138830, 0.978740, -0.900394, 0.370962, 0.227325, 0.513410, 0.244425,\n0.095671, 0.490393, 0.019030, 0.222787, 0.973859, 0.044314, 0.222436, -0.095039, 0.970304, -0.937833, 0.201692, 0.282472, 0.495010, 0.184398,\n0.097545, -0.490393, -0.000000, 0.214348, -0.976741, 0.005744, -0.829297, -0.185092, -0.527265, -0.384625, -0.078998, 0.919686, 0.890236, 0.927070,\n0.095671, -0.490393, 0.019030, 0.191324, -0.980789, 0.038055, -0.769801, -0.173994, -0.614112, -0.685546, -0.105782, 0.720303, 0.878052, 0.917359,\n0.187665, -0.461940, 0.037329, 0.361208, -0.929163, 0.078641, -0.804954, -0.353269, -0.476707, -0.587712, -0.161370, 0.792814, 0.780385, 0.935456,\n0.490393, 0.000000, 0.097545, 0.973856, 0.000000, 0.227166, -0.216729, -0.299626, 0.929114, -0.069516, 0.952027, 0.298015, 0.569479, 0.622121,\n0.500000, 0.000000, -0.000000, 0.999461, -0.000000, 0.032814, -0.031958, -0.226843, 0.973407, -0.007702, 0.972059, 0.234608, 0.538797, 0.638607,\n0.480970, -0.097545, 0.095671, 0.967717, -0.195006, 0.159677, -0.214521, -0.304707, 0.927973, 0.136665, 0.938306, 0.317654, 0.579306, 0.684921,\n0.480970, 0.097545, -0.095671, 0.956310, 0.208865, -0.204562, 0.230483, -0.108168, 0.967046, -0.181699, 0.972781, 0.143816, 0.503275, 0.584332,\n0.490393, 0.097545, -0.000000, 0.984244, 0.175718, -0.019687, 0.053867, -0.191932, 0.979929, -0.168970, 0.967514, 0.188060, 0.532482, 0.574164,\n0.461940, 0.191342, -0.000000, 0.929088, 0.369649, -0.012471, 0.083053, -0.175655, 0.980942, -0.360348, 0.912280, 0.194666, 0.526697, 0.509604,\n0.187665, -0.461940, -0.037329, 0.394878, -0.916136, -0.069037, -0.834980, -0.389211, 0.389003, -0.348356, -0.218834, 0.911460, 0.803866, 0.984622,\n0.191342, -0.461940, -0.000000, 0.382652, -0.923888, 0.002983, -0.883013, -0.364769, 0.295351, 0.059284, 0.027776, 0.997855, 0.782721, 0.960585,\n0.277785, -0.415735, -0.000000, 0.555444, -0.831354, -0.018237, -0.788410, -0.533471, 0.306300, -0.261756, -0.195616, 0.945102, 0.653363, 0.940796,\n0.490393, 0.000000, -0.097545, 0.986659, -0.000000, -0.162803, 0.161158, -0.141797, 0.976689, 0.024489, 0.988622, 0.148412, 0.506995, 0.649694,\n0.500000, 0.000000, -0.000000, 0.999461, -0.000000, 0.032814, -0.031958, -0.226843, 0.973407, -0.007702, 0.972059, 0.234608, 0.538797, 0.638607,\n0.490393, 0.097545, -0.000000, 0.984244, 0.175718, -0.019687, 0.053867, -0.191932, 0.979929, -0.168970, 0.967514, 0.188060, 0.532482, 0.574164,\n0.097545, 0.490393, -0.000000, 0.195071, 0.980789, -0.000000, 0.311436, -0.061942, 0.948246, -0.926912, 0.184355, 0.326876, 0.486168, 0.189402,\n0.095671, 0.490393, -0.019030, 0.222787, 0.973859, -0.044314, 0.347838, -0.036945, 0.936826, -0.900239, 0.222962, 0.373975, 0.477031, 0.192654,\n0.191342, 0.461940, -0.000000, 0.352136, 0.935949, 0.000000, 0.255192, -0.096012, 0.962112, -0.902615, 0.339595, 0.264501, 0.498880, 0.252406,\n0.095671, -0.490393, -0.019030, 0.222787, -0.973859, -0.044314, -0.711124, -0.131252, -0.690706, -0.669132, -0.185817, 0.719538, 0.907224, 0.934025,\n0.097545, -0.490393, -0.000000, 0.214348, -0.976741, 0.005744, -0.829297, -0.185092, -0.527265, -0.384625, -0.078998, 0.919686, 0.890236, 0.927070,\n0.191342, -0.461940, -0.000000, 0.382652, -0.923888, 0.002983, -0.784059, -0.326443, -0.527908, -0.293899, -0.118664, 0.948442, 0.782721, 0.960585,\n0.500000, 0.000000, -0.000000, 0.999461, -0.000000, 0.032814, -0.031958, -0.226843, 0.973407, -0.007702, 0.972059, 0.234608, 0.538797, 0.638607,\n0.490393, 0.000000, -0.097545, 0.986659, -0.000000, -0.162803, 0.161158, -0.141797, 0.976689, 0.024489, 0.988622, 0.148412, 0.506995, 0.649694,\n0.490393, -0.097545, -0.000000, 0.980274, -0.195005, -0.032182, -0.013067, -0.226420, 0.973942, 0.197399, 0.957908, 0.208438, 0.546288, 0.702787,\n0.191342, 0.461940, -0.000000, 0.352136, 0.935949, 0.000000, 0.255192, -0.096012, 0.962112, -0.902615, 0.339595, 0.264501, 0.498880, 0.252406,\n0.187665, 0.461940, -0.037329, 0.404835, 0.910837, -0.080527, 0.316484, -0.056952, 0.946887, -0.851624, 0.407647, 0.329487, 0.484155, 0.257585,\n0.277785, 0.415735, -0.000000, 0.543761, 0.839192, -0.008964, 0.204389, -0.122060, 0.971250, -0.814058, 0.530012, 0.237479, 0.507822, 0.316262,\n0.453064, -0.191342, -0.090120, 0.911613, -0.382537, -0.150420, 0.087633, -0.176658, 0.980363, 0.403254, 0.903220, 0.146900, 0.517534, 0.780027,\n0.461940, -0.191342, -0.000000, 0.923442, -0.382538, 0.030317, -0.144235, -0.272797, 0.951198, 0.352860, 0.877533, 0.324693, 0.556083, 0.766452,\n0.490393, -0.097545, -0.000000, 0.980274, -0.195005, -0.032182, -0.013067, -0.226420, 0.973942, 0.197399, 0.957908, 0.208438, 0.546288, 0.702787,\n0.346760, 0.353553, -0.068975, 0.704900, 0.697093, -0.131065, 0.265510, -0.087972, 0.960086, -0.658164, 0.711704, 0.245557, 0.493157, 0.388113,\n0.353554, 0.353553, -0.000000, 0.706884, 0.706949, 0.023206, 0.125175, -0.157319, 0.979582, -0.696682, 0.690197, 0.195606, 0.514875, 0.380541,\n0.277785, 0.415735, -0.000000, 0.543761, 0.839192, -0.008964, 0.204389, -0.122060, 0.971250, -0.814058, 0.530012, 0.237479, 0.507822, 0.316262,\n0.461940, -0.191342, -0.000000, 0.923442, -0.382538, 0.030317, -0.144235, -0.272797, 0.951198, 0.352860, 0.877533, 0.324693, 0.556083, 0.766452,\n0.453064, -0.191342, -0.090120, 0.911613, -0.382537, -0.150420, 0.087633, -0.176658, 0.980363, 0.403254, 0.903220, 0.146900, 0.517534, 0.780027,\n0.415735, -0.277785, -0.000000, 0.831136, -0.555400, -0.027288, -0.161499, -0.288052, 0.943898, 0.537566, 0.789958, 0.294938, 0.570592, 0.829046,\n0.353554, 0.353553, -0.000000, 0.706884, 0.706949, 0.023206, 0.125175, -0.157319, 0.979582, -0.696682, 0.690197, 0.195606, 0.514875, 0.380541,\n0.346760, 0.353553, -0.068975, 0.704900, 0.697093, -0.131065, 0.265510, -0.087972, 0.960086, -0.658164, 0.711704, 0.245557, 0.493157, 0.388113,\n0.415735, 0.277785, -0.000000, 0.831444, 0.555606, 0.001784, 0.106358, -0.162310, 0.980991, -0.544500, 0.814178, 0.201579, 0.520977, 0.445030,\n0.346760, -0.353553, -0.068975, 0.704900, -0.697093, -0.131065, -0.060717, -0.243402, 0.968023, 0.702873, 0.661647, 0.261136, 0.545138, 0.908176,\n0.353554, -0.353553, -0.000000, 0.706884, -0.706949, 0.023206, -0.388828, -0.360967, 0.847653, 0.573742, 0.592259, 0.565729, 0.596152, 0.889050,\n0.415735, -0.277785, -0.000000, 0.831136, -0.555400, -0.027288, -0.161499, -0.288052, 0.943898, 0.537566, 0.789958, 0.294938, 0.570592, 0.829046,\n0.415735, 0.277785, -0.000000, 0.831444, 0.555606, 0.001784, 0.106358, -0.162310, 0.980991, -0.544500, 0.814178, 0.201579, 0.520977, 0.445030,\n0.407747, 0.277785, -0.081106, 0.829321, 0.539042, -0.147176, 0.236915, -0.100664, 0.966301, -0.504913, 0.835747, 0.215849, 0.496629, 0.453507,\n0.461940, 0.191342, -0.000000, 0.929088, 0.369649, -0.012471, 0.083053, -0.175655, 0.980942, -0.360348, 0.912280, 0.194666, 0.526697, 0.509604,\n0.353554, -0.353553, -0.000000, 0.706884, -0.706949, 0.023206, -0.388828, -0.360967, 0.847653, 0.573742, 0.592259, 0.565729, 0.596152, 0.889050,\n0.346760, -0.353553, -0.068975, 0.704900, -0.697093, -0.131065, -0.060717, -0.243402, 0.968023, 0.702873, 0.661647, 0.261136, 0.545138, 0.908176,\n0.277785, -0.415735, -0.000000, 0.555444, -0.831354, -0.018237, -0.598101, -0.414648, 0.685815, 0.586529, 0.376136, 0.717290, 0.653363, 0.940796,\n0.453064, -0.191342, -0.090120, 0.911613, -0.382537, -0.150420, 0.087633, -0.176658, 0.980363, 0.403254, 0.903220, 0.146900, 0.517534, 0.780027,\n0.426777, -0.191342, -0.176777, 0.864751, -0.382538, -0.325378, 0.324072, -0.069888, 0.943447, 0.386897, 0.920540, -0.054003, 0.476902, 0.786308,\n0.407747, -0.277785, -0.081106, 0.822514, -0.539042, -0.181394, 0.098463, -0.179163, 0.978880, 0.559041, 0.824922, 0.083529, 0.526914, 0.844671,\n0.384089, 0.277785, -0.159095, 0.765567, 0.567205, -0.303621, 0.385074, -0.025920, 0.922522, -0.514652, 0.823117, 0.240024, 0.472108, 0.457294,\n0.407747, 0.277785, -0.081106, 0.829321, 0.539042, -0.147176, 0.236915, -0.100664, 0.966301, -0.504913, 0.835747, 0.215849, 0.496629, 0.453507,\n0.346760, 0.353553, -0.068975, 0.704900, 0.697093, -0.131065, 0.265510, -0.087972, 0.960086, -0.658164, 0.711704, 0.245557, 0.493157, 0.388113,\n0.407747, -0.277785, -0.081106, 0.822514, -0.539042, -0.181394, 0.098463, -0.179163, 0.978880, 0.559041, 0.824922, 0.083529, 0.526914, 0.844671,\n0.384089, -0.277785, -0.159095, 0.767470, -0.555607, -0.319829, 0.341734, -0.067542, 0.937366, 0.539164, 0.829297, -0.146864, 0.479145, 0.852075,\n0.346760, -0.353553, -0.068975, 0.704900, -0.697093, -0.131065, -0.060717, -0.243402, 0.968023, 0.702873, 0.661647, 0.261136, 0.545138, 0.908176,\n0.407747, 0.277785, -0.081106, 0.829321, 0.539042, -0.147176, 0.236915, -0.100664, 0.966301, -0.504913, 0.835747, 0.215849, 0.496629, 0.453507,\n0.384089, 0.277785, -0.159095, 0.765567, 0.567205, -0.303621, 0.385074, -0.025920, 0.922522, -0.514652, 0.823117, 0.240024, 0.472108, 0.457294,\n0.453064, 0.191342, -0.090120, 0.895005, 0.400772, -0.195824, 0.253101, -0.094792, 0.962785, -0.366434, 0.910934, 0.189538, 0.499915, 0.518924,\n0.346760, -0.353553, -0.068975, 0.704900, -0.697093, -0.131065, -0.060717, -0.243402, 0.968023, 0.702873, 0.661647, 0.261136, 0.545138, 0.908176,\n0.326641, -0.353553, -0.135299, 0.652380, -0.707137, -0.272688, 0.291421, -0.098085, 0.951553, 0.697056, 0.701070, -0.150380, 0.483764, 0.917774,\n0.272448, -0.415735, -0.054193, 0.541214, -0.831354, -0.126245, -0.017698, -0.161362, 0.986737, 0.836185, 0.547940, -0.023580, 0.599170, 0.966771,\n0.453064, 0.191342, -0.090120, 0.895005, 0.400772, -0.195824, 0.253101, -0.094792, 0.962785, -0.366434, 0.910934, 0.189538, 0.499915, 0.518924,\n0.426777, 0.191342, -0.176777, 0.854011, 0.382713, -0.352415, 0.390777, -0.024696, 0.920154, -0.341723, 0.923419, 0.174708, 0.472849, 0.523103,\n0.480970, 0.097545, -0.095671, 0.956310, 0.208865, -0.204562, 0.230483, -0.108168, 0.967046, -0.181699, 0.972781, 0.143816, 0.503275, 0.584332,\n0.176777, -0.461940, -0.073223, 0.358305, -0.923819, -0.134817, -0.755596, -0.371765, 0.539320, -0.485290, -0.307659, 0.818437, 0.889443, 1.002041,\n0.187665, -0.461940, -0.037329, 0.394878, -0.916136, -0.069037, -0.834980, -0.389211, 0.389003, -0.348356, -0.218834, 0.911460, 0.803866, 0.984622,\n0.272448, -0.415735, -0.054193, 0.541214, -0.831354, -0.126245, -0.679499, -0.520825, 0.516742, -0.435912, -0.405769, 0.803326, 0.599170, 0.966771,\n0.461940, 0.000000, -0.191342, 0.935939, 0.000000, -0.352163, 0.351751, -0.048347, 0.934844, 0.019938, 0.998396, 0.052990, 0.474458, 0.654717,\n0.490393, 0.000000, -0.097545, 0.986659, -0.000000, -0.162803, 0.161158, -0.141797, 0.976689, 0.024489, 0.988622, 0.148412, 0.506995, 0.649694,\n0.480970, 0.097545, -0.095671, 0.956310, 0.208865, -0.204562, 0.230483, -0.108168, 0.967046, -0.181699, 0.972781, 0.143816, 0.503275, 0.584332,\n0.176777, 0.461940, -0.073223, 0.338842, 0.931233, -0.134132, 0.405589, -0.015942, 0.913916, -0.849791, 0.364109, 0.381156, 0.469318, 0.259882,\n0.187665, 0.461940, -0.037329, 0.404835, 0.910837, -0.080527, 0.316484, -0.056952, 0.946887, -0.851624, 0.407647, 0.329487, 0.484155, 0.257585,\n0.095671, 0.490393, -0.019030, 0.222787, 0.973859, -0.044314, 0.347838, -0.036945, 0.936826, -0.900239, 0.222962, 0.373975, 0.477031, 0.192654,\n0.187665, -0.461940, -0.037329, 0.394878, -0.916136, -0.069037, -0.792255, -0.301506, -0.530496, -0.466512, -0.264678, 0.843986, 0.803866, 0.984622,\n0.176777, -0.461940, -0.073223, 0.358305, -0.923819, -0.134817, -0.538038, -0.086314, -0.838490, -0.726213, -0.366540, 0.581604, 0.889443, 1.002041,\n0.095671, -0.490393, -0.019030, 0.222787, -0.973859, -0.044314, -0.711124, -0.131252, -0.690706, -0.669132, -0.185817, 0.719538, 0.907224, 0.934025,\n0.490393, 0.000000, -0.097545, 0.986659, -0.000000, -0.162803, 0.161158, -0.141797, 0.976689, 0.024489, 0.988622, 0.148412, 0.506995, 0.649694,\n0.461940, 0.000000, -0.191342, 0.935939, 0.000000, -0.352163, 0.351751, -0.048347, 0.934844, 0.019938, 0.998396, 0.052990, 0.474458, 0.654717,\n0.480970, -0.097545, -0.095671, 0.955160, -0.195006, -0.222807, 0.199646, -0.131542, 0.970999, 0.212424, 0.975523, 0.056846, 0.511490, 0.714959,\n0.256640, 0.415735, -0.106304, 0.487769, 0.849271, -0.202041, 0.403795, -0.014299, 0.914738, -0.773018, 0.527728, 0.352059, 0.470438, 0.325681,\n0.272448, 0.415735, -0.054193, 0.558327, 0.820324, -0.123852, 0.303124, -0.062748, 0.950883, -0.767142, 0.567331, 0.299381, 0.489174, 0.322784,\n0.187665, 0.461940, -0.037329, 0.404835, 0.910837, -0.080527, 0.316484, -0.056952, 0.946887, -0.851624, 0.407647, 0.329487, 0.484155, 0.257585,\n0.426777, -0.191342, -0.176777, 0.864751, -0.382538, -0.325378, 0.324072, -0.069888, 0.943447, 0.386897, 0.920540, -0.054003, 0.476902, 0.786308,\n0.453064, -0.191342, -0.090120, 0.911613, -0.382537, -0.150420, 0.087633, -0.176658, 0.980363, 0.403254, 0.903220, 0.146900, 0.517534, 0.780027,\n0.480970, -0.097545, -0.095671, 0.955160, -0.195006, -0.222807, 0.199646, -0.131542, 0.970999, 0.212424, 0.975523, 0.056846, 0.511490, 0.714959,\n0.326641, 0.353553, -0.135299, 0.631468, 0.729955, -0.261563, 0.398337, -0.015971, 0.917100, -0.663967, 0.683254, 0.303830, 0.471329, 0.391486,\n0.346760, 0.353553, -0.068975, 0.704900, 0.697093, -0.131065, 0.265510, -0.087972, 0.960086, -0.658164, 0.711704, 0.245557, 0.493157, 0.388113,\n0.272448, 0.415735, -0.054193, 0.558327, 0.820324, -0.123852, 0.303124, -0.062748, 0.950883, -0.767142, 0.567331, 0.299381, 0.489174, 0.322784,\n0.176777, -0.461940, -0.073223, 0.358305, -0.923819, -0.134817, -0.538038, -0.086314, -0.838490, -0.726213, -0.366540, 0.581604, 0.889443, 1.002041,\n0.159095, -0.461940, -0.106304, 0.325118, -0.923819, -0.202130, -0.265505, 0.115975, -0.957109, -0.936279, -0.344503, 0.068552, 1.028460, 0.996322,\n0.090120, -0.490393, -0.037329, 0.195833, -0.976741, -0.087334, -0.450755, -0.010566, -0.892585, -0.819615, -0.211923, 0.532278, 0.927836, 0.937310,\n0.461940, 0.000000, -0.191342, 0.935939, 0.000000, -0.352163, 0.351751, -0.048347, 0.934844, 0.019938, 0.998396, 0.052990, 0.474458, 0.654717,\n0.415735, 0.000000, -0.277785, 0.849251, 0.000000, -0.527989, 0.527365, 0.048626, 0.848246, -0.022230, 0.999113, -0.035756, 0.441746, 0.653353,\n0.453064, -0.097545, -0.187665, 0.893339, -0.195006, -0.404867, 0.407862, -0.026395, 0.912662, 0.175367, 0.980788, -0.085453, 0.475493, 0.720518,\n0.176777, 0.461940, -0.073223, 0.338842, 0.931233, -0.134132, 0.405589, -0.015942, 0.913916, -0.849791, 0.364109, 0.381156, 0.469318, 0.259882,\n0.159095, 0.461940, -0.106304, 0.325118, 0.923819, -0.202130, 0.475092, 0.025251, 0.879574, -0.820328, 0.381848, 0.425740, 0.454457, 0.259262,\n0.256640, 0.415735, -0.106304, 0.487769, 0.849271, -0.202041, 0.403795, -0.014299, 0.914738, -0.773018, 0.527728, 0.352059, 0.470438, 0.325681,\n0.384089, -0.191342, -0.256640, 0.784657, -0.382539, -0.487829, 0.546746, 0.056122, 0.835415, 0.299008, 0.922862, -0.242733, 0.435752, 0.784594,\n0.426777, -0.191342, -0.176777, 0.864751, -0.382538, -0.325378, 0.324072, -0.069888, 0.943447, 0.386897, 0.920540, -0.054003, 0.476902, 0.786308,\n0.453064, -0.097545, -0.187665, 0.893339, -0.195006, -0.404867, 0.407862, -0.026395, 0.912662, 0.175367, 0.980788, -0.085453, 0.475493, 0.720518,\n0.256640, 0.415735, -0.106304, 0.487769, 0.849271, -0.202041, 0.403795, -0.014299, 0.914738, -0.773018, 0.527728, 0.352059, 0.470438, 0.325681,\n0.230970, 0.415735, -0.154329, 0.467879, 0.823575, -0.320645, 0.507932, 0.046326, 0.860151, -0.720709, 0.565537, 0.400932, 0.451681, 0.324898,\n0.326641, 0.353553, -0.135299, 0.631468, 0.729955, -0.261563, 0.398337, -0.015971, 0.917100, -0.663967, 0.683254, 0.303830, 0.471329, 0.391486,\n0.426777, -0.191342, -0.176777, 0.864751, -0.382538, -0.325378, 0.324072, -0.069888, 0.943447, 0.386897, 0.920540, -0.054003, 0.476902, 0.786308,\n0.384089, -0.191342, -0.256640, 0.784657, -0.382539, -0.487829, 0.546746, 0.056122, 0.835415, 0.299008, 0.922862, -0.242733, 0.435752, 0.784594,\n0.384089, -0.277785, -0.159095, 0.767470, -0.555607, -0.319829, 0.341734, -0.067542, 0.937366, 0.539164, 0.829297, -0.146864, 0.479145, 0.852075,\n0.326641, 0.353553, -0.135299, 0.631468, 0.729955, -0.261563, 0.398337, -0.015971, 0.917100, -0.663967, 0.683254, 0.303830, 0.471329, 0.391486,\n0.293969, 0.353553, -0.196424, 0.606889, 0.683554, -0.405511, 0.515943, 0.049265, 0.855205, -0.604310, 0.728259, 0.323186, 0.449475, 0.390573,\n0.384089, 0.277785, -0.159095, 0.765567, 0.567205, -0.303621, 0.385074, -0.025920, 0.922522, -0.514652, 0.823117, 0.240024, 0.472108, 0.457294,\n0.384089, -0.277785, -0.159095, 0.767470, -0.555607, -0.319829, 0.341734, -0.067542, 0.937366, 0.539164, 0.829297, -0.146864, 0.479145, 0.852075,\n0.345671, -0.277785, -0.230970, 0.690329, -0.555606, -0.463409, 0.598747, 0.079171, 0.797016, 0.401473, 0.827027, -0.393504, 0.430299, 0.850042,\n0.326641, -0.353553, -0.135299, 0.652380, -0.707137, -0.272688, 0.291421, -0.098085, 0.951553, 0.697056, 0.701070, -0.150380, 0.483764, 0.917774,\n0.384089, 0.277785, -0.159095, 0.765567, 0.567205, -0.303621, 0.385074, -0.025920, 0.922522, -0.514652, 0.823117, 0.240024, 0.472108, 0.457294,\n0.345671, 0.277785, -0.230970, 0.709871, 0.539041, -0.453341, 0.512783, 0.045711, 0.857301, -0.482277, 0.841088, 0.244909, 0.447546, 0.456269,\n0.426777, 0.191342, -0.176777, 0.854011, 0.382713, -0.352415, 0.390777, -0.024696, 0.920154, -0.341723, 0.923419, 0.174708, 0.472849, 0.523103,\n0.326641, -0.353553, -0.135299, 0.652380, -0.707137, -0.272688, 0.291421, -0.098085, 0.951553, 0.697056, 0.701070, -0.150380, 0.483764, 0.917774,\n0.293969, -0.353553, -0.196424, 0.586645, -0.707137, -0.394721, 0.638981, 0.104722, 0.762061, 0.490459, 0.698079, -0.521666, 0.419256, 0.915096,\n0.256640, -0.415735, -0.106304, 0.506185, -0.831354, -0.229408, 0.269357, -0.100298, 0.957803, 0.774420, 0.555220, -0.303324, 0.501545, 0.983100,\n0.426777, 0.191342, -0.176777, 0.854011, 0.382713, -0.352415, 0.390777, -0.024696, 0.920154, -0.341723, 0.923419, 0.174708, 0.472849, 0.523103,\n0.384089, 0.191342, -0.256640, 0.768848, 0.382715, -0.512251, 0.534081, 0.056154, 0.843567, -0.349360, 0.922386, 0.164774, 0.445715, 0.521971,\n0.453064, 0.097545, -0.187665, 0.893339, 0.195006, -0.404867, 0.415526, -0.015381, 0.909451, -0.176002, 0.980795, 0.084056, 0.473610, 0.588911,\n0.159095, -0.461940, -0.106304, 0.325118, -0.923819, -0.202130, -0.868858, -0.207424, -0.449511, 0.240638, 0.287525, -0.927050, 1.028460, 0.996322,\n0.176777, -0.461940, -0.073223, 0.358305, -0.923819, -0.134817, -0.847732, -0.261443, -0.461518, 0.263043, 0.238449, -0.934853, 0.889443, 1.002041,\n0.256640, -0.415735, -0.106304, 0.506185, -0.831354, -0.229408, -0.799750, -0.352935, -0.485631, 0.201445, 0.372619, -0.905856, 0.501545, 0.983100,\n0.415735, 0.000000, -0.277785, 0.849251, 0.000000, -0.527989, 0.527365, 0.048626, 0.848246, -0.022230, 0.999113, -0.035756, 0.441746, 0.653353,\n0.461940, 0.000000, -0.191342, 0.935939, 0.000000, -0.352163, 0.351751, -0.048347, 0.934844, 0.019938, 0.998396, 0.052990, 0.474458, 0.654717,\n0.453064, 0.097545, -0.187665, 0.893339, 0.195006, -0.404867, 0.415526, -0.015381, 0.909451, -0.176002, 0.980795, 0.084056, 0.473610, 0.588911,\n0.159095, 0.461940, -0.106304, 0.325118, 0.923819, -0.202130, 0.475092, 0.025251, 0.879574, -0.820328, 0.381848, 0.425740, 0.454457, 0.259262,\n0.176777, 0.461940, -0.073223, 0.338842, 0.931233, -0.134132, 0.405589, -0.015942, 0.913916, -0.849791, 0.364109, 0.381156, 0.469318, 0.259882,\n0.090120, 0.490393, -0.037329, 0.195833, 0.976741, -0.087334, 0.421336, -0.003387, 0.906898, -0.880226, 0.214339, 0.423392, 0.467730, 0.194097,\n0.293969, -0.353553, -0.196424, 0.586645, -0.707137, -0.394721, 0.638981, 0.104722, 0.762061, 0.490459, 0.698079, -0.521666, 0.419256, 0.915096,\n0.250000, -0.353553, -0.250000, 0.498368, -0.707136, -0.501585, 0.855249, 0.306204, 0.418077, 0.156373, 0.642382, -0.750262, 0.361877, 0.900985,\n0.230970, -0.415735, -0.154329, 0.451704, -0.831354, -0.323751, 0.744392, 0.151170, 0.650406, 0.464096, 0.528874, -0.710569, 0.380348, 0.978136,\n0.384089, 0.191342, -0.256640, 0.768848, 0.382715, -0.512251, 0.534081, 0.056154, 0.843567, -0.349360, 0.922386, 0.164774, 0.445715, 0.521971,\n0.326641, 0.191342, -0.326641, 0.654139, 0.382714, -0.652405, 0.658861, 0.135319, 0.739994, -0.368423, 0.914522, 0.167075, 0.418746, 0.515574,\n0.407747, 0.097545, -0.272448, 0.797188, 0.195005, -0.571371, 0.569117, 0.073123, 0.818999, -0.207816, 0.977197, 0.043561, 0.443836, 0.587669,\n0.135299, -0.461940, -0.135299, 0.266065, -0.929163, -0.256643, 0.883739, 0.341451, -0.320025, -0.862954, -0.110948, -0.492952, 0.139104, 0.974700,\n0.159095, -0.461940, -0.106304, 0.325118, -0.923819, -0.202130, 0.898064, 0.368580, -0.240063, -0.847064, -0.189456, -0.496578, 0.090389, 0.996322,\n0.230970, -0.415735, -0.154329, 0.451704, -0.831354, -0.323751, 0.829025, 0.525213, -0.192012, -0.819287, -0.242878, -0.519403, 0.380348, 0.978136,\n0.353553, 0.000000, -0.353553, 0.729927, 0.000000, -0.683525, 0.676669, 0.141278, 0.722606, -0.093335, 0.990633, -0.099671, 0.409461, 0.645691,\n0.415735, 0.000000, -0.277785, 0.849251, 0.000000, -0.527989, 0.527365, 0.048626, 0.848246, -0.022230, 0.999113, -0.035756, 0.441746, 0.653353,\n0.407747, 0.097545, -0.272448, 0.797188, 0.195005, -0.571371, 0.569117, 0.073123, 0.818999, -0.207816, 0.977197, 0.043561, 0.443836, 0.587669,\n0.135299, 0.461940, -0.135299, 0.282643, 0.918409, -0.276836, 0.557519, 0.077564, 0.826533, -0.781661, 0.387802, 0.488483, 0.439657, 0.255733,\n0.159095, 0.461940, -0.106304, 0.325118, 0.923819, -0.202130, 0.475092, 0.025251, 0.879574, -0.820328, 0.381848, 0.425740, 0.454457, 0.259262,\n0.081106, 0.490393, -0.054193, 0.175033, 0.976740, -0.123861, 0.476286, 0.026103, 0.878903, -0.860138, 0.212914, 0.463497, 0.458394, 0.193707,\n0.159095, -0.461940, -0.106304, 0.325118, -0.923819, -0.202130, -0.265505, 0.115975, -0.957109, -0.936279, -0.344503, 0.068552, 0.090389, 0.996322,\n0.135299, -0.461940, -0.135299, 0.266065, -0.929163, -0.256643, -0.056301, 0.250806, -0.966399, -0.959422, -0.229465, -0.163875, 0.139104, 0.974700,\n0.081106, -0.490393, -0.054193, 0.175033, -0.976741, -0.123861, -0.276227, 0.072033, -0.958389, -0.976416, -0.188355, 0.105515, 0.011310, 0.936409,\n0.415735, 0.000000, -0.277785, 0.849251, 0.000000, -0.527989, 0.527365, 0.048626, 0.848246, -0.022230, 0.999113, -0.035756, 0.441746, 0.653353,\n0.353553, 0.000000, -0.353553, 0.729927, 0.000000, -0.683525, 0.676669, 0.141278, 0.722606, -0.093335, 0.990633, -0.099671, 0.409461, 0.645691,\n0.407747, -0.097545, -0.272448, 0.797188, -0.195005, -0.571371, 0.593675, 0.081183, 0.800599, 0.091707, 0.974530, -0.204648, 0.439204, 0.719005,\n0.159095, 0.461940, -0.106304, 0.325118, 0.923819, -0.202130, 0.475092, 0.025251, 0.879574, -0.820328, 0.381848, 0.425740, 0.454457, 0.259262,\n0.135299, 0.461940, -0.135299, 0.282643, 0.918409, -0.276836, 0.557519, 0.077564, 0.826533, -0.781661, 0.387802, 0.488483, 0.439657, 0.255733,\n0.230970, 0.415735, -0.154329, 0.467879, 0.823575, -0.320645, 0.507932, 0.046326, 0.860151, -0.720709, 0.565537, 0.400932, 0.451681, 0.324898,\n0.326641, -0.191342, -0.326641, 0.658902, -0.395637, -0.639781, 0.739641, 0.185811, 0.646842, 0.138491, 0.899778, -0.413788, 0.395849, 0.775082,\n0.384089, -0.191342, -0.256640, 0.784657, -0.382539, -0.487829, 0.546746, 0.056122, 0.835415, 0.299008, 0.922862, -0.242733, 0.435752, 0.784594,\n0.407747, -0.097545, -0.272448, 0.797188, -0.195005, -0.571371, 0.593675, 0.081183, 0.800599, 0.091707, 0.974530, -0.204648, 0.439204, 0.719005,\n0.250000, 0.353553, -0.250000, 0.498876, 0.720868, -0.481115, 0.605696, 0.107056, 0.788461, -0.619306, 0.684856, 0.383969, 0.427684, 0.385399,\n0.293969, 0.353553, -0.196424, 0.606889, 0.683554, -0.405511, 0.515943, 0.049265, 0.855205, -0.604310, 0.728259, 0.323186, 0.449475, 0.390573,\n0.230970, 0.415735, -0.154329, 0.467879, 0.823575, -0.320645, 0.507932, 0.046326, 0.860151, -0.720709, 0.565537, 0.400932, 0.451681, 0.324898,\n0.384089, -0.191342, -0.256640, 0.784657, -0.382539, -0.487829, 0.546746, 0.056122, 0.835415, 0.299008, 0.922862, -0.242733, 0.435752, 0.784594,\n0.326641, -0.191342, -0.326641, 0.658902, -0.395637, -0.639781, 0.739641, 0.185811, 0.646842, 0.138491, 0.899778, -0.413788, 0.395849, 0.775082,\n0.345671, -0.277785, -0.230970, 0.690329, -0.555606, -0.463409, 0.598747, 0.079171, 0.797016, 0.401473, 0.827027, -0.393504, 0.430299, 0.850042,\n0.293969, 0.277785, -0.293969, 0.591101, 0.567205, -0.573479, 0.629924, 0.119442, 0.767417, -0.501666, 0.815265, 0.289265, 0.423084, 0.450465,\n0.345671, 0.277785, -0.230970, 0.709871, 0.539041, -0.453341, 0.512783, 0.045711, 0.857301, -0.482277, 0.841088, 0.244909, 0.447546, 0.456269,\n0.293969, 0.353553, -0.196424, 0.606889, 0.683554, -0.405511, 0.515943, 0.049265, 0.855205, -0.604310, 0.728259, 0.323186, 0.449475, 0.390573,\n0.345671, -0.277785, -0.230970, 0.690329, -0.555606, -0.463409, 0.598747, 0.079171, 0.797016, 0.401473, 0.827027, -0.393504, 0.430299, 0.850042,\n0.293969, -0.277785, -0.293969, 0.590820, -0.571807, -0.569182, 0.775901, 0.209314, 0.595118, 0.230577, 0.795724, -0.560051, 0.384002, 0.838924,\n0.293969, -0.353553, -0.196424, 0.586645, -0.707137, -0.394721, 0.638981, 0.104722, 0.762061, 0.490459, 0.698079, -0.521666, 0.419256, 0.915096,\n0.345671, 0.277785, -0.230970, 0.709871, 0.539041, -0.453341, 0.512783, 0.045711, 0.857301, -0.482277, 0.841088, 0.244909, 0.447546, 0.456269,\n0.293969, 0.277785, -0.293969, 0.591101, 0.567205, -0.573479, 0.629924, 0.119442, 0.767417, -0.501666, 0.815265, 0.289265, 0.423084, 0.450465,\n0.384089, 0.191342, -0.256640, 0.768848, 0.382715, -0.512251, 0.534081, 0.056154, 0.843567, -0.349360, 0.922386, 0.164774, 0.445715, 0.521971,\n0.230970, -0.277785, -0.345671, 0.484442, -0.555401, -0.675904, 0.874746, 0.297240, 0.382711, 0.004245, 0.774101, -0.633048, 0.342507, 0.820416,\n0.293969, -0.277785, -0.293969, 0.590820, -0.571807, -0.569182, 0.775901, 0.209314, 0.595118, 0.230577, 0.795724, -0.560051, 0.384002, 0.838924,\n0.326641, -0.191342, -0.326641, 0.658902, -0.395637, -0.639781, 0.739641, 0.185811, 0.646842, 0.138491, 0.899778, -0.413788, 0.395849, 0.775082,\n0.250000, 0.353553, -0.250000, 0.498876, 0.720868, -0.481115, 0.605696, 0.107056, 0.788461, -0.619306, 0.684856, 0.383969, 0.427684, 0.385399,\n0.196424, 0.353553, -0.293969, 0.405763, 0.697093, -0.591116, 0.707347, 0.170066, 0.686104, -0.582535, 0.695611, 0.420449, 0.406033, 0.376093,\n0.293969, 0.277785, -0.293969, 0.591101, 0.567205, -0.573479, 0.629924, 0.119442, 0.767417, -0.501666, 0.815265, 0.289265, 0.423084, 0.450465,\n0.293969, -0.277785, -0.293969, 0.590820, -0.571807, -0.569182, 0.775901, 0.209314, 0.595118, 0.230577, 0.795724, -0.560051, 0.384002, 0.838924,\n0.230970, -0.277785, -0.345671, 0.484442, -0.555401, -0.675904, 0.874746, 0.297240, 0.382711, 0.004245, 0.774101, -0.633048, 0.342507, 0.820416,\n0.250000, -0.353553, -0.250000, 0.498368, -0.707136, -0.501585, 0.855249, 0.306204, 0.418077, 0.156373, 0.642382, -0.750262, 0.361877, 0.900985,\n0.293969, 0.277785, -0.293969, 0.591101, 0.567205, -0.573479, 0.629924, 0.119442, 0.767417, -0.501666, 0.815265, 0.289265, 0.423084, 0.450465,\n0.230970, 0.277785, -0.345671, 0.482349, 0.539041, -0.690488, 0.730933, 0.186757, 0.656398, -0.485070, 0.820724, 0.301860, 0.398842, 0.440069,\n0.326641, 0.191342, -0.326641, 0.654139, 0.382714, -0.652405, 0.658861, 0.135319, 0.739994, -0.368423, 0.914522, 0.167075, 0.418746, 0.515574,\n0.250000, -0.353553, -0.250000, 0.498368, -0.707136, -0.501585, 0.855249, 0.306204, 0.418077, 0.156373, 0.642382, -0.750262, 0.361877, 0.900985,\n0.196424, -0.353553, -0.293969, 0.390937, -0.707137, -0.589174, 0.914099, 0.373161, 0.158662, -0.116262, 0.597050, -0.793734, 0.315550, 0.878976,\n0.196424, -0.415735, -0.196424, 0.379865, -0.831354, -0.405652, 0.914855, 0.402534, 0.031733, -0.006948, 0.435946, -0.899946, 0.304204, 0.956342,\n0.326641, 0.191342, -0.326641, 0.654139, 0.382714, -0.652405, 0.658861, 0.135319, 0.739994, -0.368423, 0.914522, 0.167075, 0.418746, 0.515574,\n0.256640, 0.191342, -0.384089, 0.514294, 0.382715, -0.767484, 0.761224, 0.208485, 0.614062, -0.392267, 0.900783, 0.186326, 0.392136, 0.504171,\n0.346760, 0.097545, -0.346760, 0.670403, 0.195003, -0.715915, 0.698880, 0.158166, 0.697532, -0.255799, 0.966439, 0.023704, 0.414327, 0.580670,\n0.106304, -0.461940, -0.159095, 0.230404, -0.916136, -0.328037, 0.789524, 0.373055, -0.487321, -0.638563, 0.112026, -0.761372, 0.149638, 0.949935,\n0.135299, -0.461940, -0.135299, 0.266065, -0.929163, -0.256643, 0.883739, 0.341451, -0.320025, -0.862954, -0.110948, -0.492952, 0.139104, 0.974700,\n0.196424, -0.415735, -0.196424, 0.379865, -0.831354, -0.405652, 0.758353, 0.530992, -0.378085, -0.834806, -0.119178, -0.537491, 0.304204, 0.956342,\n0.277785, 0.000000, -0.415735, 0.582558, 0.000000, -0.812789, 0.791754, 0.226032, 0.567481, -0.181594, 0.974722, -0.130156, 0.378101, 0.632212,\n0.353553, 0.000000, -0.353553, 0.729927, 0.000000, -0.683525, 0.676669, 0.141278, 0.722606, -0.093335, 0.990633, -0.099671, 0.409461, 0.645691,\n0.346760, 0.097545, -0.346760, 0.670403, 0.195003, -0.715915, 0.698880, 0.158166, 0.697532, -0.255799, 0.966439, 0.023704, 0.414327, 0.580670,\n0.106304, 0.461940, -0.159095, 0.210110, 0.923888, -0.319821, 0.624158, 0.125030, 0.771229, -0.748221, 0.362510, 0.555655, 0.425005, 0.249351,\n0.135299, 0.461940, -0.135299, 0.282643, 0.918409, -0.276836, 0.557519, 0.077564, 0.826533, -0.781661, 0.387802, 0.488483, 0.439657, 0.255733,\n0.068975, 0.490393, -0.068975, 0.147506, 0.976741, -0.155628, 0.528648, 0.055128, 0.847049, -0.838346, 0.206961, 0.504325, 0.449147, 0.191490,\n0.054193, -0.490393, -0.081106, 0.126198, -0.973859, -0.188870, 0.072963, 0.198989, -0.977282, -0.975189, -0.086882, -0.203613, 0.045633, 0.923222,\n0.068975, -0.490393, -0.068975, 0.137937, -0.980789, -0.137937, -0.202289, 0.108434, -0.973304, -0.984450, -0.151062, 0.089663, 0.030632, 0.931469,\n0.135299, -0.461940, -0.135299, 0.266065, -0.929163, -0.256643, -0.056301, 0.250806, -0.966399, -0.959422, -0.229465, -0.163875, 0.139104, 0.974700,\n0.353553, 0.000000, -0.353553, 0.729927, 0.000000, -0.683525, 0.676669, 0.141278, 0.722606, -0.093335, 0.990633, -0.099671, 0.409461, 0.645691,\n0.277785, 0.000000, -0.415735, 0.582558, 0.000000, -0.812789, 0.791754, 0.226032, 0.567481, -0.181594, 0.974722, -0.130156, 0.378101, 0.632212,\n0.346760, -0.097545, -0.346760, 0.670403, -0.195003, -0.715915, 0.741983, 0.182238, 0.645175, -0.023312, 0.958836, -0.283001, 0.403621, 0.710549,\n0.154329, 0.415735, -0.230970, 0.306409, 0.831489, -0.463399, 0.673121, 0.154953, 0.723117, -0.670248, 0.534137, 0.515233, 0.414383, 0.312422,\n0.196424, 0.415735, -0.196424, 0.395423, 0.820324, -0.413170, 0.605387, 0.105528, 0.788904, -0.691963, 0.561867, 0.453313, 0.432975, 0.320449,\n0.135299, 0.461940, -0.135299, 0.282643, 0.918409, -0.276836, 0.557519, 0.077564, 0.826533, -0.781661, 0.387802, 0.488483, 0.439657, 0.255733,\n0.256640, -0.191342, -0.384089, 0.514294, -0.382715, -0.767484, 0.855989, 0.284135, 0.431914, -0.074345, 0.871641, -0.484473, 0.358489, 0.758785,\n0.326641, -0.191342, -0.326641, 0.658902, -0.395637, -0.639781, 0.739641, 0.185811, 0.646842, 0.138491, 0.899778, -0.413788, 0.395849, 0.775082,\n0.346760, -0.097545, -0.346760, 0.670403, -0.195003, -0.715915, 0.741983, 0.182238, 0.645175, -0.023312, 0.958836, -0.283001, 0.403621, 0.710549,\n0.196424, 0.353553, -0.293969, 0.405763, 0.697093, -0.591116, 0.707347, 0.170066, 0.686104, -0.582535, 0.695611, 0.420449, 0.406033, 0.376093,\n0.250000, 0.353553, -0.250000, 0.498876, 0.720868, -0.481115, 0.605696, 0.107056, 0.788461, -0.619306, 0.684856, 0.383969, 0.427684, 0.385399,\n0.196424, 0.415735, -0.196424, 0.395423, 0.820324, -0.413170, 0.605387, 0.105528, 0.788904, -0.691963, 0.561867, 0.453313, 0.432975, 0.320449,\n0.106304, -0.461940, -0.159095, 0.230404, -0.916136, -0.328037, 0.158051, 0.367863, -0.916350, -0.889781, -0.061867, -0.452176, 0.149638, 0.949935,\n0.073223, -0.461940, -0.176777, 0.158028, -0.923819, -0.348692, 0.351012, 0.382620, -0.854630, -0.944682, -0.038662, -0.325701, 0.148297, 0.924790,\n0.054193, -0.490393, -0.081106, 0.126198, -0.973859, -0.188870, 0.072963, 0.198989, -0.977282, -0.975189, -0.086882, -0.203613, 0.045633, 0.923222,\n0.277785, 0.000000, -0.415735, 0.582558, 0.000000, -0.812789, 0.791754, 0.226032, 0.567481, -0.181594, 0.974722, -0.130156, 0.378101, 0.632212,\n0.191342, 0.000000, -0.461940, 0.412789, 0.000000, -0.910827, 0.867606, 0.304390, 0.393201, -0.271702, 0.954471, -0.123136, 0.347954, 0.613692,\n0.272448, -0.097545, -0.407747, 0.517853, -0.195006, -0.832947, 0.844844, 0.269565, 0.462140, -0.150175, 0.937830, -0.312926, 0.369532, 0.695826,\n0.106304, 0.415735, -0.256640, 0.202041, 0.849271, -0.487769, 0.729025, 0.202156, 0.653954, -0.641871, 0.490990, 0.589008, 0.395951, 0.300965,\n0.154329, 0.415735, -0.230970, 0.306409, 0.831489, -0.463399, 0.673121, 0.154953, 0.723117, -0.670248, 0.534137, 0.515233, 0.414383, 0.312422,\n0.106304, 0.461940, -0.159095, 0.210110, 0.923888, -0.319821, 0.624158, 0.125030, 0.771229, -0.748221, 0.362510, 0.555655, 0.425005, 0.249351,\n0.176777, -0.191342, -0.426777, 0.354681, -0.382715, -0.853071, 0.910663, 0.348166, 0.222427, -0.228651, 0.849181, -0.476036, 0.324176, 0.737162,\n0.256640, -0.191342, -0.384089, 0.514294, -0.382715, -0.767484, 0.855989, 0.284135, 0.431914, -0.074345, 0.871641, -0.484473, 0.358489, 0.758785,\n0.272448, -0.097545, -0.407747, 0.517853, -0.195006, -0.832947, 0.844844, 0.269565, 0.462140, -0.150175, 0.937830, -0.312926, 0.369532, 0.695826,\n0.135299, 0.353553, -0.326641, 0.256646, 0.716972, -0.648139, 0.784086, 0.237640, 0.573355, -0.558550, 0.657303, 0.505939, 0.384563, 0.362880,\n0.196424, 0.353553, -0.293969, 0.405763, 0.697093, -0.591116, 0.707347, 0.170066, 0.686104, -0.582535, 0.695611, 0.420449, 0.406033, 0.376093,\n0.154329, 0.415735, -0.230970, 0.306409, 0.831489, -0.463399, 0.673121, 0.154953, 0.723117, -0.670248, 0.534137, 0.515233, 0.414383, 0.312422,\n0.159095, -0.277785, -0.384089, 0.343269, -0.555401, -0.757427, 0.918601, 0.366641, 0.147466, -0.207285, 0.741746, -0.637845, 0.306159, 0.796676,\n0.230970, -0.277785, -0.345671, 0.484442, -0.555401, -0.675904, 0.874746, 0.297240, 0.382711, 0.004245, 0.774101, -0.633048, 0.342507, 0.820416,\n0.256640, -0.191342, -0.384089, 0.514294, -0.382715, -0.767484, 0.855989, 0.284135, 0.431914, -0.074345, 0.871641, -0.484473, 0.358489, 0.758785,\n0.159095, 0.277785, -0.384089, 0.343269, 0.555401, -0.757427, 0.801936, 0.246493, 0.544188, -0.489566, 0.794019, 0.360359, 0.374888, 0.425400,\n0.230970, 0.277785, -0.345671, 0.482349, 0.539041, -0.690488, 0.730933, 0.186757, 0.656398, -0.485070, 0.820724, 0.301860, 0.398842, 0.440069,\n0.196424, 0.353553, -0.293969, 0.405763, 0.697093, -0.591116, 0.707347, 0.170066, 0.686104, -0.582535, 0.695611, 0.420449, 0.406033, 0.376093,\n0.230970, -0.277785, -0.345671, 0.484442, -0.555401, -0.675904, 0.874746, 0.297240, 0.382711, 0.004245, 0.774101, -0.633048, 0.342507, 0.820416,\n0.159095, -0.277785, -0.384089, 0.343269, -0.555401, -0.757427, 0.918601, 0.366641, 0.147466, -0.207285, 0.741746, -0.637845, 0.306159, 0.796676,\n0.196424, -0.353553, -0.293969, 0.390937, -0.707137, -0.589174, 0.914099, 0.373161, 0.158662, -0.116262, 0.597050, -0.793734, 0.315550, 0.878976,\n0.230970, 0.277785, -0.345671, 0.482349, 0.539041, -0.690488, 0.730933, 0.186757, 0.656398, -0.485070, 0.820724, 0.301860, 0.398842, 0.440069,\n0.159095, 0.277785, -0.384089, 0.343269, 0.555401, -0.757427, 0.801936, 0.246493, 0.544188, -0.489566, 0.794019, 0.360359, 0.374888, 0.425400,\n0.256640, 0.191342, -0.384089, 0.514294, 0.382715, -0.767484, 0.761224, 0.208485, 0.614062, -0.392267, 0.900783, 0.186326, 0.392136, 0.504171,\n0.196424, -0.353553, -0.293969, 0.390937, -0.707137, -0.589174, 0.914099, 0.373161, 0.158662, -0.116262, 0.597050, -0.793734, 0.315550, 0.878976,\n0.135299, -0.353553, -0.326641, 0.268482, -0.707136, -0.654122, 0.902614, 0.421859, -0.085576, -0.339988, 0.565790, -0.751192, 0.278480, 0.852494,\n0.154329, -0.415735, -0.230970, 0.293425, -0.831354, -0.471967, 0.871401, 0.435627, -0.225587, -0.290327, 0.392886, -0.872554, 0.260582, 0.928725,\n0.256640, 0.191342, -0.384089, 0.514294, 0.382715, -0.767484, 0.761224, 0.208485, 0.614062, -0.392267, 0.900783, 0.186326, 0.392136, 0.504171,\n0.176777, 0.191342, -0.426777, 0.354681, 0.382715, -0.853071, 0.838031, 0.274468, 0.471563, -0.412065, 0.882985, 0.224812, 0.366006, 0.488197,\n0.272448, 0.097545, -0.407747, 0.517853, 0.195006, -0.832947, 0.799611, 0.235733, 0.552316, -0.309649, 0.950378, 0.029986, 0.385399, 0.568265,\n0.073223, -0.461940, -0.176777, 0.158028, -0.923819, -0.348692, 0.351012, 0.382620, -0.854630, -0.944682, -0.038662, -0.325701, 0.148297, 0.924790,\n0.106304, -0.461940, -0.159095, 0.230404, -0.916136, -0.328037, 0.789524, 0.373055, -0.487321, -0.638563, 0.112026, -0.761372, 0.149638, 0.949935,\n0.154329, -0.415735, -0.230970, 0.293425, -0.831354, -0.471967, 0.692967, 0.525067, -0.494066, -0.859099, -0.012749, -0.511650, 0.260582, 0.928725,\n0.191342, 0.000000, -0.461940, 0.412789, 0.000000, -0.910827, 0.867606, 0.304390, 0.393201, -0.271702, 0.954471, -0.123136, 0.347954, 0.613692,\n0.277785, 0.000000, -0.415735, 0.582558, 0.000000, -0.812789, 0.791754, 0.226032, 0.567481, -0.181594, 0.974722, -0.130156, 0.378101, 0.632212,\n0.272448, 0.097545, -0.407747, 0.517853, 0.195006, -0.832947, 0.799611, 0.235733, 0.552316, -0.309649, 0.950378, 0.029986, 0.385399, 0.568265,\n0.073223, 0.461940, -0.176777, 0.144749, 0.931233, -0.334444, 0.674962, 0.154225, 0.721554, -0.715354, 0.332011, 0.614848, 0.410583, 0.240213,\n0.106304, 0.461940, -0.159095, 0.210110, 0.923888, -0.319821, 0.624158, 0.125030, 0.771229, -0.748221, 0.362510, 0.555655, 0.425005, 0.249351,\n0.054193, 0.490393, -0.081106, 0.114308, 0.976741, -0.181415, 0.577264, 0.083314, 0.812296, -0.813643, 0.196824, 0.547033, 0.440119, 0.187485,\n0.135299, -0.353553, -0.326641, 0.268482, -0.707136, -0.654122, 0.902614, 0.421859, -0.085576, -0.339988, 0.565790, -0.751192, 0.278480, 0.852494,\n0.068975, -0.353553, -0.346760, 0.135711, -0.707136, -0.693932, 0.834724, 0.458897, -0.304383, -0.532345, 0.538668, -0.653028, 0.247735, 0.823865,\n0.106304, -0.415735, -0.256640, 0.195712, -0.831354, -0.520142, 0.781917, 0.452404, -0.428878, -0.565160, 0.337843, -0.752633, 0.230558, 0.899550,\n0.176777, 0.191342, -0.426777, 0.354681, 0.382715, -0.853071, 0.838031, 0.274468, 0.471563, -0.412065, 0.882985, 0.224812, 0.366006, 0.488197,\n0.090120, 0.191342, -0.453064, 0.181442, 0.382715, -0.905874, 0.888381, 0.331252, 0.317886, -0.417947, 0.863841, 0.281245, 0.340374, 0.468222,\n0.187665, 0.097545, -0.453064, 0.345398, 0.195004, -0.917972, 0.868991, 0.302874, 0.391308, -0.358378, 0.931447, 0.063022, 0.357242, 0.551036,\n0.037329, -0.461940, -0.187665, 0.086967, -0.923819, -0.372820, 0.499455, 0.364240, -0.786049, -0.840689, 0.132730, -0.525000, 0.142004, 0.900074,\n0.073223, -0.461940, -0.176777, 0.158028, -0.923819, -0.348692, 0.351012, 0.382620, -0.854630, -0.944682, -0.038662, -0.325701, 0.148297, 0.924790,\n0.106304, -0.415735, -0.256640, 0.195712, -0.831354, -0.520142, 0.781917, 0.452404, -0.428878, -0.565160, 0.337843, -0.752633, 0.230558, 0.899550,\n0.097545, 0.000000, -0.490392, 0.227166, -0.000000, -0.973856, 0.909769, 0.356771, 0.212217, -0.347462, 0.934185, -0.081051, 0.319079, 0.591068,\n0.191342, 0.000000, -0.461940, 0.412789, 0.000000, -0.910827, 0.867606, 0.304390, 0.393201, -0.271702, 0.954471, -0.123136, 0.347954, 0.613692,\n0.187665, 0.097545, -0.453064, 0.345398, 0.195004, -0.917972, 0.868991, 0.302874, 0.391308, -0.358378, 0.931447, 0.063022, 0.357242, 0.551036,\n0.037329, 0.461940, -0.187665, 0.081206, 0.918409, -0.387209, 0.738308, 0.205550, 0.642379, -0.674035, 0.336788, 0.657457, 0.396472, 0.228455,\n0.073223, 0.461940, -0.176777, 0.144749, 0.931233, -0.334444, 0.674962, 0.154225, 0.721554, -0.715354, 0.332011, 0.614848, 0.410583, 0.240213,\n0.037329, 0.490393, -0.090120, 0.076720, 0.976740, -0.200230, 0.621152, 0.110266, 0.775894, -0.785459, 0.182905, 0.591270, 0.431446, 0.181761,\n0.073223, -0.461940, -0.176777, 0.158028, -0.923819, -0.348692, 0.351012, 0.382620, -0.854630, -0.944682, -0.038662, -0.325701, 0.148297, 0.924790,\n0.037329, -0.461940, -0.187665, 0.086967, -0.923819, -0.372820, 0.499455, 0.364240, -0.786049, -0.840689, 0.132730, -0.525000, 0.142004, 0.900074,\n0.037329, -0.490393, -0.090120, 0.076720, -0.976740, -0.200230, 0.046042, 0.204078, -0.977871, -0.996783, -0.079808, 0.007381, 0.055761, 0.912636,\n0.191342, 0.000000, -0.461940, 0.412789, 0.000000, -0.910827, 0.867606, 0.304390, 0.393201, -0.271702, 0.954471, -0.123136, 0.347954, 0.613692,\n0.097545, 0.000000, -0.490392, 0.227166, -0.000000, -0.973856, 0.909769, 0.356771, 0.212217, -0.347462, 0.934185, -0.081051, 0.319079, 0.591068,\n0.187665, -0.097545, -0.453064, 0.345398, -0.195004, -0.917972, 0.901940, 0.339189, 0.267312, -0.270622, 0.915923, -0.296394, 0.337345, 0.675882,\n0.073223, 0.461940, -0.176777, 0.144749, 0.931233, -0.334444, 0.674962, 0.154225, 0.721554, -0.715354, 0.332011, 0.614848, 0.410583, 0.240213,\n0.037329, 0.461940, -0.187665, 0.081206, 0.918409, -0.387209, 0.738308, 0.205550, 0.642379, -0.674035, 0.336788, 0.657457, 0.396472, 0.228455,\n0.106304, 0.415735, -0.256640, 0.202041, 0.849271, -0.487769, 0.729025, 0.202156, 0.653954, -0.641871, 0.490990, 0.589008, 0.395951, 0.300965,\n0.090120, -0.191342, -0.453064, 0.181442, -0.382715, -0.905874, 0.917940, 0.396380, 0.016395, -0.366507, 0.828481, -0.423428, 0.292765, 0.711739,\n0.176777, -0.191342, -0.426777, 0.354681, -0.382715, -0.853071, 0.910663, 0.348166, 0.222427, -0.228651, 0.849181, -0.476036, 0.324176, 0.737162,\n0.187665, -0.097545, -0.453064, 0.345398, -0.195004, -0.917972, 0.901940, 0.339189, 0.267312, -0.270622, 0.915923, -0.296394, 0.337345, 0.675882,\n0.106304, 0.415735, -0.256640, 0.202041, 0.849271, -0.487769, 0.729025, 0.202156, 0.653954, -0.641871, 0.490990, 0.589008, 0.395951, 0.300965,\n0.054193, 0.415735, -0.272448, 0.113643, 0.812813, -0.571333, 0.814593, 0.252991, 0.521951, -0.588700, 0.518324, 0.620301, 0.377698, 0.286284,\n0.135299, 0.353553, -0.326641, 0.256646, 0.716972, -0.648139, 0.784086, 0.237640, 0.573355, -0.558550, 0.657303, 0.505939, 0.384563, 0.362880,\n0.081106, -0.277785, -0.407746, 0.188908, -0.555401, -0.809842, 0.909904, 0.409148, -0.068350, -0.381060, 0.718607, -0.581719, 0.274182, 0.769656,\n0.159095, -0.277785, -0.384089, 0.343269, -0.555401, -0.757427, 0.918601, 0.366641, 0.147466, -0.207285, 0.741746, -0.637845, 0.306159, 0.796676,\n0.176777, -0.191342, -0.426777, 0.354681, -0.382715, -0.853071, 0.910663, 0.348166, 0.222427, -0.228651, 0.849181, -0.476036, 0.324176, 0.737162,\n0.081106, 0.277785, -0.407746, 0.188908, 0.555401, -0.809842, 0.860507, 0.303704, 0.409012, -0.473585, 0.773975, 0.420332, 0.351222, 0.406884,\n0.159095, 0.277785, -0.384089, 0.343269, 0.555401, -0.757427, 0.801936, 0.246493, 0.544188, -0.489566, 0.794019, 0.360359, 0.374888, 0.425400,\n0.135299, 0.353553, -0.326641, 0.256646, 0.716972, -0.648139, 0.784086, 0.237640, 0.573355, -0.558550, 0.657303, 0.505939, 0.384563, 0.362880,\n0.159095, -0.277785, -0.384089, 0.343269, -0.555401, -0.757427, 0.918601, 0.366641, 0.147466, -0.207285, 0.741746, -0.637845, 0.306159, 0.796676,\n0.081106, -0.277785, -0.407746, 0.188908, -0.555401, -0.809842, 0.909904, 0.409148, -0.068350, -0.381060, 0.718607, -0.581719, 0.274182, 0.769656,\n0.135299, -0.353553, -0.326641, 0.268482, -0.707136, -0.654122, 0.902614, 0.421859, -0.085576, -0.339988, 0.565790, -0.751192, 0.278480, 0.852494,\n0.159095, 0.277785, -0.384089, 0.343269, 0.555401, -0.757427, 0.801936, 0.246493, 0.544188, -0.489566, 0.794019, 0.360359, 0.374888, 0.425400,\n0.081106, 0.277785, -0.407746, 0.188908, 0.555401, -0.809842, 0.860507, 0.303704, 0.409012, -0.473585, 0.773975, 0.420332, 0.351222, 0.406884,\n0.176777, 0.191342, -0.426777, 0.354681, 0.382715, -0.853071, 0.838031, 0.274468, 0.471563, -0.412065, 0.882985, 0.224812, 0.366006, 0.488197,\n0.000000, -0.277785, -0.415735, 0.027286, -0.555402, -0.831134, 0.864465, 0.430611, -0.259374, -0.512060, 0.706308, -0.488798, 0.245498, 0.740897,\n0.081106, -0.277785, -0.407746, 0.188908, -0.555401, -0.809842, 0.909904, 0.409148, -0.068350, -0.381060, 0.718607, -0.581719, 0.274182, 0.769656,\n0.090120, -0.191342, -0.453064, 0.181442, -0.382715, -0.905874, 0.917940, 0.396380, 0.016395, -0.366507, 0.828481, -0.423428, 0.292765, 0.711739,\n0.000000, 0.277785, -0.415735, 0.027286, 0.555402, -0.831134, 0.897111, 0.353167, 0.265454, -0.441123, 0.752799, 0.488573, 0.327761, 0.385025,\n0.081106, 0.277785, -0.407746, 0.188908, 0.555401, -0.809842, 0.860507, 0.303704, 0.409012, -0.473585, 0.773975, 0.420332, 0.351222, 0.406884,\n0.068975, 0.353553, -0.346760, 0.125620, 0.692993, -0.709916, 0.852105, 0.291102, 0.434944, -0.517805, 0.656181, 0.548912, 0.363272, 0.346065,\n0.081106, -0.277785, -0.407746, 0.188908, -0.555401, -0.809842, 0.909904, 0.409148, -0.068350, -0.381060, 0.718607, -0.581719, 0.274182, 0.769656,\n0.000000, -0.277785, -0.415735, 0.027286, -0.555402, -0.831134, 0.864465, 0.430611, -0.259374, -0.512060, 0.706308, -0.488798, 0.245498, 0.740897,\n0.068975, -0.353553, -0.346760, 0.135711, -0.707136, -0.693932, 0.834724, 0.458897, -0.304383, -0.532345, 0.538668, -0.653028, 0.247735, 0.823865,\n0.081106, 0.277785, -0.407746, 0.188908, 0.555401, -0.809842, 0.860507, 0.303704, 0.409012, -0.473585, 0.773975, 0.420332, 0.351222, 0.406884,\n0.000000, 0.277785, -0.415735, 0.027286, 0.555402, -0.831134, 0.897111, 0.353167, 0.265454, -0.441123, 0.752799, 0.488573, 0.327761, 0.385025,\n0.090120, 0.191342, -0.453064, 0.181442, 0.382715, -0.905874, 0.888381, 0.331252, 0.317886, -0.417947, 0.863841, 0.281245, 0.340374, 0.468222,\n0.068975, -0.353553, -0.346760, 0.135711, -0.707136, -0.693932, 0.834724, 0.458897, -0.304383, -0.532345, 0.538668, -0.653028, 0.247735, 0.823865,\n0.000000, -0.353553, -0.353553, -0.002278, -0.707136, -0.707073, 0.777385, 0.443514, -0.446058, -0.629127, 0.550624, -0.548646, 0.221035, 0.794554,\n0.054193, -0.415735, -0.272448, 0.090476, -0.831354, -0.548329, 0.704662, 0.442513, -0.554647, -0.688308, 0.345720, -0.637738, 0.206623, 0.870322,\n0.090120, 0.191342, -0.453064, 0.181442, 0.382715, -0.905874, 0.888381, 0.331252, 0.317886, -0.417947, 0.863841, 0.281245, 0.340374, 0.468222,\n0.000000, 0.191342, -0.461940, 0.001225, 0.382712, -0.923867, 0.912486, 0.377533, 0.157603, -0.408033, 0.843652, 0.348942, 0.315152, 0.444897,\n0.095671, 0.097545, -0.480970, 0.159676, 0.195003, -0.967718, 0.907052, 0.357868, 0.221779, -0.392058, 0.912195, 0.119124, 0.329902, 0.529720,\n0.000000, -0.461940, -0.191342, 0.012560, -0.923819, -0.382623, 0.405169, 0.354534, -0.842700, -0.919889, 0.139328, -0.366594, 0.133142, 0.876209,\n0.037329, -0.461940, -0.187665, 0.086967, -0.923819, -0.372820, 0.499455, 0.364240, -0.786049, -0.840689, 0.132730, -0.525000, 0.142004, 0.900074,\n0.054193, -0.415735, -0.272448, 0.090476, -0.831354, -0.548329, 0.704662, 0.442513, -0.554647, -0.688308, 0.345720, -0.637738, 0.206623, 0.870322,\n0.000000, 0.000000, -0.500000, 0.032810, 0.000000, -0.999462, 0.915905, 0.400267, 0.030067, -0.400494, 0.916205, -0.013147, 0.291335, 0.565336,\n0.097545, 0.000000, -0.490392, 0.227166, -0.000000, -0.973856, 0.909769, 0.356771, 0.212217, -0.347462, 0.934185, -0.081051, 0.319079, 0.591068,\n0.095671, 0.097545, -0.480970, 0.159676, 0.195003, -0.967718, 0.907052, 0.357868, 0.221779, -0.392058, 0.912195, 0.119124, 0.329902, 0.529720,\n0.000000, 0.461940, -0.191342, 0.005745, 0.931233, -0.364380, 0.758912, 0.233220, 0.607998, -0.641928, 0.282829, 0.712696, 0.382751, 0.214243,\n0.037329, 0.461940, -0.187665, 0.081206, 0.918409, -0.387209, 0.738308, 0.205550, 0.642379, -0.674035, 0.336788, 0.657457, 0.396472, 0.228455,\n0.019030, 0.490393, -0.095671, 0.036183, 0.976740, -0.211349, 0.659716, 0.135510, 0.739197, -0.754201, 0.165442, 0.635461, 0.423278, 0.174421,\n0.037329, -0.461940, -0.187665, 0.086967, -0.923819, -0.372820, 0.499455, 0.364240, -0.786049, -0.840689, 0.132730, -0.525000, 0.142004, 0.900074,\n0.000000, -0.461940, -0.191342, 0.012560, -0.923819, -0.382623, 0.405169, 0.354534, -0.842700, -0.919889, 0.139328, -0.366594, 0.133142, 0.876209,\n0.019030, -0.490393, -0.095671, 0.036183, -0.976740, -0.211349, 0.052590, 0.213056, -0.975624, -0.999332, -0.036443, -0.002670, 0.061468, 0.900623,\n0.097545, 0.000000, -0.490392, 0.227166, -0.000000, -0.973856, 0.909769, 0.356771, 0.212217, -0.347462, 0.934185, -0.081051, 0.319079, 0.591068,\n0.000000, 0.000000, -0.500000, 0.032810, 0.000000, -0.999462, 0.915905, 0.400267, 0.030067, -0.400494, 0.916205, -0.013147, 0.291335, 0.565336,\n0.095671, -0.097545, -0.480970, 0.159676, -0.195003, -0.967718, 0.917851, 0.390187, 0.072822, -0.370733, 0.896694, -0.241863, 0.307086, 0.651912,\n0.000000, 0.415735, -0.277785, -0.008963, 0.839191, -0.543763, 0.843305, 0.298564, 0.446874, -0.530292, 0.457033, 0.714081, 0.359606, 0.268628,\n0.054193, 0.415735, -0.272448, 0.113643, 0.812813, -0.571333, 0.814593, 0.252991, 0.521951, -0.588700, 0.518324, 0.620301, 0.377698, 0.286284,\n0.037329, 0.461940, -0.187665, 0.081206, 0.918409, -0.387209, 0.738308, 0.205550, 0.642379, -0.674035, 0.336788, 0.657457, 0.396472, 0.228455,\n0.000000, -0.191342, -0.461940, 0.001225, -0.382712, -0.923867, 0.884445, 0.431532, -0.177590, -0.477862, 0.811333, -0.336729, 0.263760, 0.683901,\n0.090120, -0.191342, -0.453064, 0.181442, -0.382715, -0.905874, 0.917940, 0.396380, 0.016395, -0.366507, 0.828481, -0.423428, 0.292765, 0.711739,\n0.095671, -0.097545, -0.480970, 0.159676, -0.195003, -0.967718, 0.917851, 0.390187, 0.072822, -0.370733, 0.896694, -0.241863, 0.307086, 0.651912,\n0.000000, 0.353553, -0.353553, -0.002278, 0.707136, -0.707074, 0.885216, 0.330340, 0.327517, -0.463666, 0.625729, 0.627278, 0.342092, 0.326013,\n0.068975, 0.353553, -0.346760, 0.125620, 0.692993, -0.709916, 0.852105, 0.291102, 0.434944, -0.517805, 0.656181, 0.548912, 0.363272, 0.346065,\n0.054193, 0.415735, -0.272448, 0.113643, 0.812813, -0.571333, 0.814593, 0.252991, 0.521951, -0.588700, 0.518324, 0.620301, 0.377698, 0.286284,\n-0.037329, 0.461940, -0.187665, -0.073153, 0.918409, -0.388811, 0.820704, 0.276940, 0.499749, -0.577847, 0.278718, 0.767079, 0.369501, 0.197772,\n0.000000, 0.461940, -0.191342, 0.005745, 0.931233, -0.364380, 0.758912, 0.233220, 0.607998, -0.641928, 0.282829, 0.712696, 0.382751, 0.214243,\n0.000000, 0.490393, -0.097545, -0.005744, 0.976741, -0.214348, 0.692756, 0.158469, 0.703546, -0.721155, 0.144448, 0.677547, 0.415789, 0.165599,\n0.000000, -0.461940, -0.191342, 0.012560, -0.923819, -0.382623, 0.405169, 0.354534, -0.842700, -0.919889, 0.139328, -0.366594, 0.133142, 0.876209,\n-0.037329, -0.461940, -0.187665, -0.062326, -0.923818, -0.377723, 0.293765, 0.344714, -0.891557, -0.966939, 0.149657, -0.206475, 0.122716, 0.853506,\n0.000000, -0.490393, -0.097545, -0.005744, -0.976741, -0.214348, 0.034559, 0.214029, -0.976216, -0.999964, 0.006941, -0.004830, 0.063552, 0.887927,\n0.000000, 0.000000, -0.500000, 0.032810, 0.000000, -0.999462, 0.915905, 0.400267, 0.030067, -0.400494, 0.916205, -0.013147, 0.291335, 0.565336,\n-0.097545, 0.000000, -0.490392, -0.162803, 0.000000, -0.986659, 0.889654, 0.432396, -0.146796, -0.424493, 0.902718, 0.070043, 0.264451, 0.537476,\n0.000000, -0.097545, -0.490392, -0.032184, -0.195004, -0.980274, 0.898724, 0.423503, -0.113753, -0.441786, 0.882545, -0.161058, 0.278511, 0.625101,\n0.000000, 0.461940, -0.191342, 0.005745, 0.931233, -0.364380, 0.758912, 0.233220, 0.607998, -0.641928, 0.282829, 0.712696, 0.382751, 0.214243,\n-0.037329, 0.461940, -0.187665, -0.073153, 0.918409, -0.388811, 0.820704, 0.276940, 0.499749, -0.577847, 0.278718, 0.767079, 0.369501, 0.197772,\n0.000000, 0.415735, -0.277785, -0.008963, 0.839191, -0.543763, 0.843305, 0.298564, 0.446874, -0.530292, 0.457033, 0.714081, 0.359606, 0.268628,\n-0.090120, -0.191342, -0.453064, -0.179030, -0.382715, -0.906354, 0.828764, 0.437784, -0.348562, -0.538512, 0.809104, -0.235279, 0.236558, 0.654833,\n0.000000, -0.191342, -0.461940, 0.001225, -0.382712, -0.923867, 0.884445, 0.431532, -0.177590, -0.477862, 0.811333, -0.336729, 0.263760, 0.683901,\n0.000000, -0.097545, -0.490392, -0.032184, -0.195004, -0.980274, 0.898724, 0.423503, -0.113753, -0.441786, 0.882545, -0.161058, 0.278511, 0.625101,\n-0.068975, 0.353553, -0.346760, -0.140171, 0.707135, -0.693046, 0.904749, 0.375819, 0.200471, -0.400546, 0.599626, 0.692828, 0.320886, 0.303136,\n0.000000, 0.353553, -0.353553, -0.002278, 0.707136, -0.707074, 0.885216, 0.330340, 0.327517, -0.463666, 0.625729, 0.627278, 0.342092, 0.326013,\n0.000000, 0.415735, -0.277785, -0.008963, 0.839191, -0.543763, 0.843305, 0.298564, 0.446874, -0.530292, 0.457033, 0.714081, 0.359606, 0.268628,\n-0.081106, -0.277785, -0.407746, -0.135384, -0.555402, -0.820488, 0.793047, 0.435663, -0.425763, -0.601789, 0.703956, -0.377222, 0.219119, 0.711578,\n0.000000, -0.277785, -0.415735, 0.027286, -0.555402, -0.831134, 0.864465, 0.430611, -0.259374, -0.512060, 0.706308, -0.488798, 0.245498, 0.740897,\n0.000000, -0.191342, -0.461940, 0.001225, -0.382712, -0.923867, 0.884445, 0.431532, -0.177590, -0.477862, 0.811333, -0.336729, 0.263760, 0.683901,\n-0.081106, 0.277785, -0.407746, -0.135383, 0.555402, -0.820488, 0.911657, 0.394132, 0.116368, -0.387847, 0.732320, 0.559716, 0.304332, 0.360378,\n0.000000, 0.277785, -0.415735, 0.027286, 0.555402, -0.831134, 0.897111, 0.353167, 0.265454, -0.441123, 0.752799, 0.488573, 0.327761, 0.385025,\n0.000000, 0.353553, -0.353553, -0.002278, 0.707136, -0.707074, 0.885216, 0.330340, 0.327517, -0.463666, 0.625729, 0.627278, 0.342092, 0.326013,\n0.000000, -0.277785, -0.415735, 0.027286, -0.555402, -0.831134, 0.864465, 0.430611, -0.259374, -0.512060, 0.706308, -0.488798, 0.245498, 0.740897,\n-0.081106, -0.277785, -0.407746, -0.135384, -0.555402, -0.820488, 0.793047, 0.435663, -0.425763, -0.601789, 0.703956, -0.377222, 0.219119, 0.711578,\n0.000000, -0.353553, -0.353553, -0.002278, -0.707136, -0.707073, 0.777385, 0.443514, -0.446058, -0.629127, 0.550624, -0.548646, 0.221035, 0.794554,\n0.000000, 0.277785, -0.415735, 0.027286, 0.555402, -0.831134, 0.897111, 0.353167, 0.265454, -0.441123, 0.752799, 0.488573, 0.327761, 0.385025,\n-0.081106, 0.277785, -0.407746, -0.135383, 0.555402, -0.820488, 0.911657, 0.394132, 0.116368, -0.387847, 0.732320, 0.559716, 0.304332, 0.360378,\n0.000000, 0.191342, -0.461940, 0.001225, 0.382712, -0.923867, 0.912486, 0.377533, 0.157603, -0.408033, 0.843652, 0.348942, 0.315152, 0.444897,\n0.000000, -0.353553, -0.353553, -0.002278, -0.707136, -0.707073, 0.777385, 0.443514, -0.446058, -0.629127, 0.550624, -0.548646, 0.221035, 0.794554,\n-0.068975, -0.353553, -0.346760, -0.140173, -0.707136, -0.693044, 0.689218, 0.432850, -0.581050, -0.710846, 0.559118, -0.426714, 0.196860, 0.765537,\n0.000000, -0.415735, -0.277785, -0.018239, -0.831353, -0.555445, 0.621602, 0.425696, -0.657566, -0.773857, 0.363506, -0.518660, 0.185712, 0.841768,\n0.000000, 0.191342, -0.461940, 0.001225, 0.382712, -0.923867, 0.912486, 0.377533, 0.157603, -0.408033, 0.843652, 0.348942, 0.315152, 0.444897,\n-0.090120, 0.191342, -0.453064, -0.179030, 0.382714, -0.906354, 0.910722, 0.412984, -0.005508, -0.372236, 0.826407, 0.422483, 0.290147, 0.418927,\n0.000000, 0.097545, -0.490392, -0.032184, 0.195004, -0.980274, 0.915184, 0.399982, 0.049521, -0.403106, 0.894943, 0.191264, 0.303277, 0.505133,\n-0.037329, -0.461940, -0.187665, -0.062326, -0.923818, -0.377723, 0.293765, 0.344714, -0.891557, -0.966939, 0.149657, -0.206475, 0.122716, 0.853506,\n0.000000, -0.461940, -0.191342, 0.012560, -0.923819, -0.382623, 0.405169, 0.354534, -0.842700, -0.919889, 0.139328, -0.366594, 0.133142, 0.876209,\n0.000000, -0.415735, -0.277785, -0.018239, -0.831353, -0.555445, 0.621602, 0.425696, -0.657566, -0.773857, 0.363506, -0.518660, 0.185712, 0.841768,\n-0.097545, 0.000000, -0.490392, -0.162803, 0.000000, -0.986659, 0.889654, 0.432396, -0.146796, -0.424493, 0.902718, 0.070043, 0.264451, 0.537476,\n0.000000, 0.000000, -0.500000, 0.032810, 0.000000, -0.999462, 0.915905, 0.400267, 0.030067, -0.400494, 0.916205, -0.013147, 0.291335, 0.565336,\n0.000000, 0.097545, -0.490392, -0.032184, 0.195004, -0.980274, 0.915184, 0.399982, 0.049521, -0.403106, 0.894943, 0.191264, 0.303277, 0.505133,\n-0.081106, 0.277785, -0.407746, -0.135383, 0.555402, -0.820488, 0.911657, 0.394132, 0.116368, -0.387847, 0.732320, 0.559716, 0.304332, 0.360378,\n-0.159095, 0.277785, -0.384089, -0.292849, 0.555401, -0.778311, 0.907581, 0.417621, -0.043475, -0.307206, 0.716186, 0.626659, 0.280665, 0.333544,\n-0.090120, 0.191342, -0.453064, -0.179030, 0.382714, -0.906354, 0.910722, 0.412984, -0.005508, -0.372236, 0.826407, 0.422483, 0.290147, 0.418927,\n-0.068975, -0.353553, -0.346760, -0.140173, -0.707136, -0.693044, 0.689218, 0.432850, -0.581050, -0.710846, 0.559118, -0.426714, 0.196860, 0.765537,\n-0.135299, -0.353553, -0.326641, -0.272686, -0.707137, -0.652380, 0.576754, 0.422583, -0.699127, -0.768468, 0.568069, -0.294542, 0.174219, 0.737534,\n-0.054193, -0.415735, -0.272447, -0.126245, -0.831354, -0.541214, 0.533240, 0.403180, -0.743707, -0.831103, 0.386509, -0.399847, 0.166387, 0.814368,\n-0.090120, 0.191342, -0.453064, -0.179030, 0.382714, -0.906354, 0.910722, 0.412984, -0.005508, -0.372236, 0.826407, 0.422483, 0.290147, 0.418927,\n-0.176777, 0.191342, -0.426777, -0.352417, 0.382711, -0.854011, 0.883472, 0.437048, -0.168719, -0.309846, 0.813373, 0.492361, 0.265072, 0.391051,\n-0.095671, 0.097545, -0.480970, -0.222807, 0.195001, -0.955160, 0.895121, 0.429028, -0.121213, -0.386845, 0.881660, 0.270234, 0.277149, 0.478121,\n-0.073223, -0.461940, -0.176777, -0.134816, -0.923819, -0.358306, 0.278951, 0.311597, -0.908347, -0.957085, 0.215029, -0.194297, 0.111219, 0.832233,\n-0.037329, -0.461940, -0.187665, -0.062326, -0.923818, -0.377723, 0.293765, 0.344714, -0.891557, -0.966939, 0.149657, -0.206475, 0.122716, 0.853506,\n-0.054193, -0.415735, -0.272447, -0.126245, -0.831354, -0.541214, 0.533240, 0.403180, -0.743707, -0.831103, 0.386509, -0.399847, 0.166387, 0.814368,\n-0.191342, 0.000000, -0.461939, -0.369614, 0.014067, -0.929079, 0.834379, 0.445033, -0.325202, -0.406693, 0.896575, 0.175370, 0.238072, 0.508437,\n-0.097545, 0.000000, -0.490392, -0.162803, 0.000000, -0.986659, 0.889654, 0.432396, -0.146796, -0.424493, 0.902718, 0.070043, 0.264451, 0.537476,\n-0.095671, 0.097545, -0.480970, -0.222807, 0.195001, -0.955160, 0.895121, 0.429028, -0.121213, -0.386845, 0.881660, 0.270234, 0.277149, 0.478121,\n-0.073223, 0.461940, -0.176777, -0.134132, 0.931233, -0.338842, 0.826294, 0.293856, 0.480508, -0.550138, 0.214426, 0.807075, 0.356819, 0.179254,\n-0.037329, 0.461940, -0.187665, -0.073153, 0.918409, -0.388811, 0.820704, 0.276940, 0.499749, -0.577847, 0.278718, 0.767079, 0.369501, 0.197772,\n-0.019030, 0.490393, -0.095671, -0.047449, 0.976740, -0.209109, 0.720722, 0.178423, 0.669869, -0.688169, 0.119771, 0.715597, 0.409185, 0.155461,\n-0.037329, -0.461940, -0.187665, -0.062326, -0.923818, -0.377723, 0.293765, 0.344714, -0.891557, -0.966939, 0.149657, -0.206475, 0.122716, 0.853506,\n-0.073223, -0.461940, -0.176777, -0.134816, -0.923819, -0.358306, 0.278951, 0.311597, -0.908347, -0.957085, 0.215029, -0.194297, 0.111219, 0.832233,\n-0.019030, -0.490393, -0.095671, -0.047449, -0.976740, -0.209109, 0.005107, 0.209105, -0.977880, -0.998869, 0.047031, 0.006975, 0.062791, 0.875124,\n-0.097545, 0.000000, -0.490392, -0.162803, 0.000000, -0.986659, 0.889654, 0.432396, -0.146796, -0.424493, 0.902718, 0.070043, 0.264451, 0.537476,\n-0.191342, 0.000000, -0.461939, -0.369614, 0.014067, -0.929079, 0.834379, 0.445033, -0.325202, -0.406693, 0.896575, 0.175370, 0.238072, 0.508437,\n-0.095671, -0.097545, -0.480970, -0.222807, -0.195001, -0.955160, 0.850108, 0.440699, -0.288273, -0.479884, 0.874796, -0.066654, 0.251234, 0.596552,\n-0.106304, 0.415735, -0.256640, -0.202041, 0.849271, -0.487769, 0.890927, 0.366210, 0.268587, -0.400183, 0.382977, 0.832576, 0.323603, 0.225532,\n-0.054193, 0.415735, -0.272448, -0.123852, 0.820324, -0.558327, 0.891297, 0.339289, 0.300788, -0.458808, 0.451562, 0.765236, 0.341615, 0.248277,\n-0.037329, 0.461940, -0.187665, -0.073153, 0.918409, -0.388811, 0.820704, 0.276940, 0.499749, -0.577847, 0.278718, 0.767079, 0.369501, 0.197772,\n-0.176777, -0.191342, -0.426777, -0.352417, -0.382711, -0.854011, 0.746183, 0.435847, -0.503238, -0.571178, 0.810838, -0.127660, 0.210574, 0.625544,\n-0.090120, -0.191342, -0.453064, -0.179030, -0.382715, -0.906354, 0.828764, 0.437784, -0.348562, -0.538512, 0.809104, -0.235279, 0.236558, 0.654833,\n-0.095671, -0.097545, -0.480970, -0.222807, -0.195001, -0.955160, 0.850108, 0.440699, -0.288273, -0.479884, 0.874796, -0.066654, 0.251234, 0.596552,\n-0.135299, 0.353553, -0.326641, -0.276827, 0.716973, -0.639779, 0.909646, 0.410108, 0.065994, -0.304417, 0.566071, 0.766090, 0.299422, 0.277880,\n-0.068975, 0.353553, -0.346760, -0.140171, 0.707135, -0.693046, 0.904749, 0.375819, 0.200471, -0.400546, 0.599626, 0.692828, 0.320886, 0.303136,\n-0.054193, 0.415735, -0.272448, -0.123852, 0.820324, -0.558327, 0.891297, 0.339289, 0.300788, -0.458808, 0.451562, 0.765236, 0.341615, 0.248277,\n-0.159095, -0.277785, -0.384089, -0.292849, -0.555401, -0.778311, 0.702292, 0.427450, -0.569274, -0.654524, 0.709832, -0.260262, 0.194249, 0.682630,\n-0.081106, -0.277785, -0.407746, -0.135384, -0.555402, -0.820488, 0.793047, 0.435663, -0.425763, -0.601789, 0.703956, -0.377222, 0.219119, 0.711578,\n-0.090120, -0.191342, -0.453064, -0.179030, -0.382715, -0.906354, 0.828764, 0.437784, -0.348562, -0.538512, 0.809104, -0.235279, 0.236558, 0.654833,\n-0.159095, 0.277785, -0.384089, -0.292849, 0.555401, -0.778311, 0.907581, 0.417621, -0.043475, -0.307206, 0.716186, 0.626659, 0.280665, 0.333544,\n-0.081106, 0.277785, -0.407746, -0.135383, 0.555402, -0.820488, 0.911657, 0.394132, 0.116368, -0.387847, 0.732320, 0.559716, 0.304332, 0.360378,\n-0.068975, 0.353553, -0.346760, -0.140171, 0.707135, -0.693046, 0.904749, 0.375819, 0.200471, -0.400546, 0.599626, 0.692828, 0.320886, 0.303136,\n-0.081106, -0.277785, -0.407746, -0.135384, -0.555402, -0.820488, 0.793047, 0.435663, -0.425763, -0.601789, 0.703956, -0.377222, 0.219119, 0.711578,\n-0.159095, -0.277785, -0.384089, -0.292849, -0.555401, -0.778311, 0.702292, 0.427450, -0.569274, -0.654524, 0.709832, -0.260262, 0.194249, 0.682630,\n-0.068975, -0.353553, -0.346760, -0.140173, -0.707136, -0.693044, 0.689218, 0.432850, -0.581050, -0.710846, 0.559118, -0.426714, 0.196860, 0.765537,\n-0.256640, -0.191342, -0.384089, -0.512253, -0.382709, -0.768850, 0.644036, 0.421066, -0.638688, -0.572971, 0.819163, -0.026007, 0.185294, 0.596918,\n-0.176777, -0.191342, -0.426777, -0.352417, -0.382711, -0.854011, 0.746183, 0.435847, -0.503238, -0.571178, 0.810838, -0.127660, 0.210574, 0.625544,\n-0.187665, -0.097545, -0.453063, -0.404872, -0.195001, -0.893338, 0.776134, 0.443237, -0.448505, -0.485196, 0.873920, 0.029134, 0.224815, 0.567268,\n-0.106304, 0.415735, -0.256640, -0.202041, 0.849271, -0.487769, 0.890927, 0.366210, 0.268587, -0.400183, 0.382977, 0.832576, 0.323603, 0.225532,\n-0.154329, 0.415735, -0.230970, -0.323634, 0.812812, -0.484353, 0.918254, 0.393264, 0.046397, -0.251390, 0.419638, 0.872185, 0.305371, 0.200714,\n-0.135299, 0.353553, -0.326641, -0.276827, 0.716973, -0.639779, 0.909646, 0.410108, 0.065994, -0.304417, 0.566071, 0.766090, 0.299422, 0.277880,\n-0.230970, -0.277785, -0.345671, -0.439067, -0.555400, -0.706223, 0.596184, 0.407948, -0.691479, -0.675894, 0.722059, -0.147644, 0.170279, 0.654825,\n-0.159095, -0.277785, -0.384089, -0.292849, -0.555401, -0.778311, 0.702292, 0.427450, -0.569274, -0.654524, 0.709832, -0.260262, 0.194249, 0.682630,\n-0.176777, -0.191342, -0.426777, -0.352417, -0.382711, -0.854011, 0.746183, 0.435847, -0.503238, -0.571178, 0.810838, -0.127660, 0.210574, 0.625544,\n-0.230970, 0.277785, -0.345671, -0.439067, 0.555400, -0.706223, 0.873457, 0.447995, -0.190718, -0.209973, 0.700842, 0.681712, 0.256377, 0.305165,\n-0.159095, 0.277785, -0.384089, -0.292849, 0.555401, -0.778311, 0.907581, 0.417621, -0.043475, -0.307206, 0.716186, 0.626659, 0.280665, 0.333544,\n-0.135299, 0.353553, -0.326641, -0.276827, 0.716973, -0.639779, 0.909646, 0.410108, 0.065994, -0.304417, 0.566071, 0.766090, 0.299422, 0.277880,\n-0.159095, -0.277785, -0.384089, -0.292849, -0.555401, -0.778311, 0.702292, 0.427450, -0.569274, -0.654524, 0.709832, -0.260262, 0.194249, 0.682630,\n-0.230970, -0.277785, -0.345671, -0.439067, -0.555400, -0.706223, 0.596184, 0.407948, -0.691479, -0.675894, 0.722059, -0.147644, 0.170279, 0.654825,\n-0.135299, -0.353553, -0.326641, -0.272686, -0.707137, -0.652380, 0.576754, 0.422583, -0.699127, -0.768468, 0.568069, -0.294542, 0.174219, 0.737534,\n-0.159095, 0.277785, -0.384089, -0.292849, 0.555401, -0.778311, 0.907581, 0.417621, -0.043475, -0.307206, 0.716186, 0.626659, 0.280665, 0.333544,\n-0.230970, 0.277785, -0.345671, -0.439067, 0.555400, -0.706223, 0.873457, 0.447995, -0.190718, -0.209973, 0.700842, 0.681712, 0.256377, 0.305165,\n-0.176777, 0.191342, -0.426777, -0.352417, 0.382711, -0.854011, 0.883472, 0.437048, -0.168719, -0.309846, 0.813373, 0.492361, 0.265072, 0.391051,\n-0.135299, -0.353553, -0.326641, -0.272686, -0.707137, -0.652380, 0.576754, 0.422583, -0.699127, -0.768468, 0.568069, -0.294542, 0.174219, 0.737534,\n-0.196424, -0.353553, -0.293969, -0.394721, -0.707137, -0.586645, 0.482177, 0.384077, -0.787394, -0.782293, 0.593524, -0.189067, 0.152459, 0.711126,\n-0.106304, -0.415735, -0.256640, -0.229404, -0.831354, -0.506186, 0.439662, 0.375467, -0.815918, -0.865682, 0.412003, -0.284340, 0.147889, 0.788507,\n-0.176777, 0.191342, -0.426777, -0.352417, 0.382711, -0.854011, 0.883472, 0.437048, -0.168719, -0.309846, 0.813373, 0.492361, 0.265072, 0.391051,\n-0.256640, 0.191342, -0.384089, -0.512253, 0.382709, -0.768850, 0.830430, 0.449048, -0.329760, -0.221181, 0.806241, 0.548685, 0.239550, 0.362041,\n-0.187665, 0.097545, -0.453063, -0.391219, 0.214340, -0.894989, 0.854975, 0.444502, -0.267274, -0.339559, 0.870264, 0.356847, 0.251210, 0.449541,\n-0.106304, -0.461940, -0.159095, -0.202130, -0.923819, -0.325118, 0.205477, 0.284579, -0.936373, -0.962027, 0.249471, -0.110763, 0.098921, 0.812641,\n-0.073223, -0.461940, -0.176777, -0.134816, -0.923819, -0.358306, 0.278951, 0.311597, -0.908347, -0.957085, 0.215029, -0.194297, 0.111219, 0.832233,\n-0.106304, -0.415735, -0.256640, -0.229404, -0.831354, -0.506186, 0.439662, 0.375467, -0.815918, -0.865682, 0.412003, -0.284340, 0.147889, 0.788507,\n-0.187665, 0.097545, -0.453063, -0.391219, 0.214340, -0.894989, 0.854975, 0.444502, -0.267274, -0.339559, 0.870264, 0.356847, 0.251210, 0.449541,\n-0.272447, 0.097545, -0.407746, -0.544372, 0.195104, -0.815839, 0.789456, 0.447951, -0.419642, -0.282887, 0.872904, 0.397508, 0.225087, 0.420258,\n-0.191342, 0.000000, -0.461939, -0.369614, 0.014067, -0.929079, 0.834379, 0.445033, -0.325202, -0.406693, 0.896575, 0.175370, 0.238072, 0.508437,\n-0.106304, 0.461940, -0.159095, -0.216376, 0.918409, -0.331219, 0.872556, 0.334106, 0.356398, -0.458757, 0.203827, 0.864868, 0.344837, 0.158918,\n-0.073223, 0.461940, -0.176777, -0.134132, 0.931233, -0.338842, 0.826294, 0.293856, 0.480508, -0.550138, 0.214426, 0.807075, 0.356819, 0.179254,\n-0.037329, 0.490393, -0.090120, -0.087334, 0.976741, -0.195833, 0.744510, 0.194610, 0.638617, -0.657136, 0.091260, 0.748227, 0.403723, 0.144215,\n-0.073223, -0.461940, -0.176777, -0.134816, -0.923819, -0.358306, 0.278951, 0.311597, -0.908347, -0.957085, 0.215029, -0.194297, 0.111219, 0.832233,\n-0.106304, -0.461940, -0.159095, -0.202130, -0.923819, -0.325118, 0.205477, 0.284579, -0.936373, -0.962027, 0.249471, -0.110763, 0.098921, 0.812641,\n-0.037329, -0.490393, -0.090120, -0.087334, -0.976741, -0.195833, -0.029583, 0.199040, -0.979545, -0.996041, 0.082342, 0.033505, 0.059830, 0.862660,\n-0.191342, 0.000000, -0.461939, -0.369614, 0.014067, -0.929079, 0.834379, 0.445033, -0.325202, -0.406693, 0.896575, 0.175370, 0.238072, 0.508437,\n-0.277785, 0.000000, -0.415734, -0.567155, -0.014068, -0.823491, 0.735303, 0.441781, -0.513965, -0.369902, 0.897691, 0.239424, 0.211808, 0.479137,\n-0.187665, -0.097545, -0.453063, -0.404872, -0.195001, -0.893338, 0.776134, 0.443237, -0.448505, -0.485196, 0.873920, 0.029134, 0.224815, 0.567268,\n-0.073223, 0.461940, -0.176777, -0.134132, 0.931233, -0.338842, 0.826294, 0.293856, 0.480508, -0.550138, 0.214426, 0.807075, 0.356819, 0.179254,\n-0.106304, 0.461940, -0.159095, -0.216376, 0.918409, -0.331219, 0.872556, 0.334106, 0.356398, -0.458757, 0.203827, 0.864868, 0.344837, 0.158918,\n-0.106304, 0.415735, -0.256640, -0.202041, 0.849271, -0.487769, 0.890927, 0.366210, 0.268587, -0.400183, 0.382977, 0.832576, 0.323603, 0.225532,\n-0.135299, -0.461940, -0.135299, -0.256643, -0.929163, -0.266065, 0.100015, 0.248275, -0.963512, -0.962627, 0.270377, -0.015682, 0.085985, 0.794966,\n-0.106304, -0.461940, -0.159095, -0.202130, -0.923819, -0.325118, 0.205477, 0.284579, -0.936373, -0.962027, 0.249471, -0.110763, 0.098921, 0.812641,\n-0.154329, -0.415735, -0.230970, -0.323751, -0.831354, -0.451704, 0.341020, 0.342794, -0.875327, -0.881708, 0.438268, -0.174676, 0.129782, 0.764530,\n-0.272447, 0.097545, -0.407746, -0.544372, 0.195104, -0.815839, 0.789456, 0.447951, -0.419642, -0.282887, 0.872904, 0.397508, 0.225087, 0.420258,\n-0.346760, 0.097545, -0.346760, -0.682044, 0.175715, -0.709887, 0.700637, 0.435191, -0.565435, -0.213770, 0.880404, 0.423309, 0.198358, 0.391169,\n-0.277785, 0.000000, -0.415734, -0.567155, -0.014068, -0.823491, 0.735303, 0.441781, -0.513965, -0.369902, 0.897691, 0.239424, 0.211808, 0.479137,\n-0.135299, 0.461940, -0.135299, -0.272685, 0.923888, -0.268466, 0.884277, 0.350616, 0.308420, -0.408884, 0.141302, 0.901581, 0.333754, 0.137005,\n-0.106304, 0.461940, -0.159095, -0.216376, 0.918409, -0.331219, 0.872556, 0.334106, 0.356398, -0.458757, 0.203827, 0.864868, 0.344837, 0.158918,\n-0.054193, 0.490393, -0.081106, -0.123861, 0.976740, -0.175033, 0.764866, 0.206349, 0.610246, -0.629681, 0.058961, 0.774613, 0.399731, 0.132109,\n-0.106304, -0.461940, -0.159095, -0.202130, -0.923819, -0.325118, 0.205477, 0.284579, -0.936373, -0.962027, 0.249471, -0.110763, 0.098921, 0.812641,\n-0.135299, -0.461940, -0.135299, -0.256643, -0.929163, -0.266065, 0.100015, 0.248275, -0.963512, -0.962627, 0.270377, -0.015682, 0.085985, 0.794966,\n-0.054193, -0.490393, -0.081106, -0.123861, -0.976741, -0.175033, -0.067419, 0.184267, -0.980561, -0.990961, 0.112595, 0.072931, 0.055167, 0.850885,\n-0.346760, -0.097545, -0.346760, -0.693076, -0.195103, -0.693960, 0.583791, 0.412832, -0.699113, -0.425191, 0.888027, 0.174986, 0.172843, 0.510158,\n-0.272447, -0.097545, -0.407746, -0.558298, -0.214342, -0.801474, 0.681722, 0.432038, -0.590422, -0.476278, 0.873807, 0.098084, 0.198820, 0.538176,\n-0.277785, 0.000000, -0.415734, -0.567155, -0.014068, -0.823491, 0.735303, 0.441781, -0.513965, -0.369902, 0.897691, 0.239424, 0.211808, 0.479137,\n-0.196424, 0.415735, -0.196424, -0.394718, 0.831489, -0.390926, 0.904146, 0.427203, -0.004267, -0.178287, 0.348073, 0.920358, 0.286589, 0.174154,\n-0.154329, 0.415735, -0.230970, -0.323634, 0.812812, -0.484353, 0.918254, 0.393264, 0.046397, -0.251390, 0.419638, 0.872185, 0.305371, 0.200714,\n-0.106304, 0.461940, -0.159095, -0.216376, 0.918409, -0.331219, 0.872556, 0.334106, 0.356398, -0.458757, 0.203827, 0.864868, 0.344837, 0.158918,\n-0.326641, -0.191342, -0.326641, -0.652404, -0.382712, -0.654142, 0.524934, 0.394366, -0.754267, -0.550111, 0.832832, 0.061393, 0.160290, 0.569759,\n-0.256640, -0.191342, -0.384089, -0.512253, -0.382709, -0.768850, 0.644036, 0.421066, -0.638688, -0.572971, 0.819163, -0.026007, 0.185294, 0.596918,\n-0.272447, -0.097545, -0.407746, -0.558298, -0.214342, -0.801474, 0.681722, 0.432038, -0.590422, -0.476278, 0.873807, 0.098084, 0.198820, 0.538176,\n-0.250000, 0.353553, -0.250000, -0.501585, 0.707137, -0.498368, 0.862463, 0.453755, -0.224195, -0.070115, 0.540952, 0.838126, 0.254155, 0.222217,\n-0.196424, 0.353553, -0.293969, -0.413158, 0.692995, -0.590812, 0.894119, 0.431785, -0.118799, -0.194508, 0.566648, 0.800672, 0.277352, 0.250728,\n-0.154329, 0.415735, -0.230970, -0.323634, 0.812812, -0.484353, 0.918254, 0.393264, 0.046397, -0.251390, 0.419638, 0.872185, 0.305371, 0.200714,\n-0.293969, -0.277785, -0.293969, -0.568407, -0.555401, -0.606996, 0.477308, 0.378320, -0.793127, -0.672364, 0.738768, -0.046353, 0.146753, 0.628844,\n-0.230970, -0.277785, -0.345671, -0.439067, -0.555400, -0.706223, 0.596184, 0.407948, -0.691479, -0.675894, 0.722059, -0.147644, 0.170279, 0.654825,\n-0.256640, -0.191342, -0.384089, -0.512253, -0.382709, -0.768850, 0.644036, 0.421066, -0.638688, -0.572971, 0.819163, -0.026007, 0.185294, 0.596918,\n-0.293969, 0.277785, -0.293969, -0.568407, 0.555401, -0.606996, 0.818212, 0.458957, -0.346249, -0.086044, 0.693592, 0.715211, 0.230950, 0.275958,\n-0.230970, 0.277785, -0.345671, -0.439067, 0.555400, -0.706223, 0.873457, 0.447995, -0.190718, -0.209973, 0.700842, 0.681712, 0.256377, 0.305165,\n-0.196424, 0.353553, -0.293969, -0.413158, 0.692995, -0.590812, 0.894119, 0.431785, -0.118799, -0.194508, 0.566648, 0.800672, 0.277352, 0.250728,\n-0.230970, -0.277785, -0.345671, -0.439067, -0.555400, -0.706223, 0.596184, 0.407948, -0.691479, -0.675894, 0.722059, -0.147644, 0.170279, 0.654825,\n-0.293969, -0.277785, -0.293969, -0.568407, -0.555401, -0.606996, 0.477308, 0.378320, -0.793127, -0.672364, 0.738768, -0.046353, 0.146753, 0.628844,\n-0.196424, -0.353553, -0.293969, -0.394721, -0.707137, -0.586645, 0.482177, 0.384077, -0.787394, -0.782293, 0.593524, -0.189067, 0.152459, 0.711126,\n-0.230970, 0.277785, -0.345671, -0.439067, 0.555400, -0.706223, 0.873457, 0.447995, -0.190718, -0.209973, 0.700842, 0.681712, 0.256377, 0.305165,\n-0.293969, 0.277785, -0.293969, -0.568407, 0.555401, -0.606996, 0.818212, 0.458957, -0.346249, -0.086044, 0.693592, 0.715211, 0.230950, 0.275958,\n-0.256640, 0.191342, -0.384089, -0.512253, 0.382709, -0.768850, 0.830430, 0.449048, -0.329760, -0.221181, 0.806241, 0.548685, 0.239550, 0.362041,\n-0.196424, -0.353553, -0.293969, -0.394721, -0.707137, -0.586645, 0.482177, 0.384077, -0.787394, -0.782293, 0.593524, -0.189067, 0.152459, 0.711126,\n-0.250000, -0.353553, -0.250000, -0.501585, -0.707137, -0.498368, 0.366360, 0.348243, -0.862848, -0.783933, 0.615157, -0.083856, 0.131139, 0.686825,\n-0.154329, -0.415735, -0.230970, -0.323751, -0.831354, -0.451704, 0.341020, 0.342794, -0.875327, -0.881708, 0.438268, -0.174676, 0.129782, 0.764530,\n-0.256640, 0.191342, -0.384089, -0.512253, 0.382709, -0.768850, 0.830430, 0.449048, -0.329760, -0.221181, 0.806241, 0.548685, 0.239550, 0.362041,\n-0.326641, 0.191342, -0.326641, -0.665784, 0.369646, -0.648147, 0.739250, 0.444604, -0.505803, -0.105249, 0.813449, 0.572034, 0.213116, 0.332732,\n-0.272447, 0.097545, -0.407746, -0.544372, 0.195104, -0.815839, 0.789456, 0.447951, -0.419642, -0.282887, 0.872904, 0.397508, 0.225087, 0.420258,\n-0.293969, -0.277785, -0.293969, -0.568407, -0.555401, -0.606996, 0.477308, 0.378320, -0.793127, -0.672364, 0.738768, -0.046353, 0.146753, 0.628844,\n-0.345671, -0.277785, -0.230970, -0.675904, -0.555401, -0.484442, 0.342223, 0.345636, -0.873739, -0.651508, 0.757561, 0.040474, 0.123337, 0.605312,\n-0.250000, -0.353553, -0.250000, -0.501585, -0.707137, -0.498368, 0.366360, 0.348243, -0.862848, -0.783933, 0.615157, -0.083856, 0.131139, 0.686825,\n-0.293969, 0.277785, -0.293969, -0.568407, 0.555401, -0.606996, 0.818212, 0.458957, -0.346249, -0.086044, 0.693592, 0.715211, 0.230950, 0.275958,\n-0.345671, 0.277785, -0.230970, -0.675904, 0.555401, -0.484442, 0.733379, 0.441885, -0.516616, 0.064220, 0.699210, 0.712026, 0.203700, 0.246751,\n-0.326641, 0.191342, -0.326641, -0.665784, 0.369646, -0.648147, 0.739250, 0.444604, -0.505803, -0.105249, 0.813449, 0.572034, 0.213116, 0.332732,\n-0.250000, -0.353553, -0.250000, -0.501585, -0.707137, -0.498368, 0.366360, 0.348243, -0.862848, -0.783933, 0.615157, -0.083856, 0.131139, 0.686825,\n-0.293969, -0.353553, -0.196424, -0.589174, -0.707137, -0.390937, 0.243911, 0.305609, -0.920386, -0.770505, 0.637379, 0.008307, 0.109967, 0.665096,\n-0.196424, -0.415735, -0.196424, -0.405652, -0.831354, -0.379865, 0.233381, 0.307611, -0.922447, -0.886823, 0.458619, -0.056686, 0.111798, 0.742764,\n-0.407746, 0.097545, -0.272447, -0.797191, 0.195002, -0.571368, 0.593819, 0.424021, -0.683802, -0.108956, 0.884390, 0.453853, 0.170581, 0.363231,\n-0.346760, 0.097545, -0.346760, -0.682044, 0.175715, -0.709887, 0.700637, 0.435191, -0.565435, -0.213770, 0.880404, 0.423309, 0.198358, 0.391169,\n-0.326641, 0.191342, -0.326641, -0.665784, 0.369646, -0.648147, 0.739250, 0.444604, -0.505803, -0.105249, 0.813449, 0.572034, 0.213116, 0.332732,\n-0.159095, -0.461940, -0.106304, -0.328037, -0.916136, -0.230404, 0.063299, 0.222035, -0.972982, -0.943929, 0.327507, 0.041678, 0.072524, 0.779430,\n-0.135299, -0.461940, -0.135299, -0.256643, -0.929163, -0.266065, 0.100015, 0.248275, -0.963512, -0.962627, 0.270377, -0.015682, 0.085985, 0.794966,\n-0.196424, -0.415735, -0.196424, -0.405652, -0.831354, -0.379865, 0.233381, 0.307611, -0.922447, -0.886823, 0.458619, -0.056686, 0.111798, 0.742764,\n-0.346760, 0.097545, -0.346760, -0.682044, 0.175715, -0.709887, 0.700637, 0.435191, -0.565435, -0.213770, 0.880404, 0.423309, 0.198358, 0.391169,\n-0.407746, 0.097545, -0.272447, -0.797191, 0.195002, -0.571368, 0.593819, 0.424021, -0.683802, -0.108956, 0.884390, 0.453853, 0.170581, 0.363231,\n-0.353553, 0.000000, -0.353553, -0.729930, 0.000000, -0.683522, 0.619322, 0.423115, -0.661372, -0.288938, 0.906260, 0.308556, 0.185261, 0.450486,\n-0.159095, 0.461940, -0.106304, -0.299778, 0.931233, -0.207216, 0.881538, 0.353432, 0.313013, -0.395877, 0.076196, 0.915137, 0.323912, 0.113774,\n-0.135299, 0.461940, -0.135299, -0.272685, 0.923888, -0.268466, 0.884277, 0.350616, 0.308420, -0.408884, 0.141302, 0.901581, 0.333754, 0.137005,\n-0.068975, 0.490393, -0.068975, -0.155628, 0.976741, -0.147506, 0.781762, 0.213065, 0.586047, -0.607565, 0.023093, 0.793934, 0.397636, 0.119453,\n-0.081106, -0.490393, -0.054193, -0.188870, -0.973859, -0.126198, -0.111340, 0.148919, -0.982561, -0.971871, 0.166960, 0.166104, 0.042176, 0.830481,\n-0.068975, -0.490393, -0.068975, -0.137937, -0.980789, -0.137937, -0.127161, 0.155652, -0.979593, -0.984645, 0.120749, 0.126070, 0.049184, 0.840082,\n-0.135299, -0.461940, -0.135299, -0.256643, -0.929163, -0.266065, 0.100015, 0.248275, -0.963512, -0.962627, 0.270377, -0.015682, 0.085985, 0.794966,\n-0.407746, -0.097545, -0.272447, -0.815145, -0.195102, -0.545412, 0.450428, 0.378534, -0.808595, -0.365600, 0.903621, 0.223170, 0.146537, 0.484073,\n-0.346760, -0.097545, -0.346760, -0.693076, -0.195103, -0.693960, 0.583791, 0.412832, -0.699113, -0.425191, 0.888027, 0.174986, 0.172843, 0.510158,\n-0.353553, 0.000000, -0.353553, -0.729930, 0.000000, -0.683522, 0.619322, 0.423115, -0.661372, -0.288938, 0.906260, 0.308556, 0.185261, 0.450486,\n-0.230970, 0.415735, -0.154329, -0.438981, 0.849271, -0.293317, 0.895086, 0.441771, -0.060488, -0.108067, 0.274177, 0.955588, 0.266710, 0.146213,\n-0.196424, 0.415735, -0.196424, -0.394718, 0.831489, -0.390926, 0.904146, 0.427203, -0.004267, -0.178287, 0.348073, 0.920358, 0.286589, 0.174154,\n-0.135299, 0.461940, -0.135299, -0.272685, 0.923888, -0.268466, 0.884277, 0.350616, 0.308420, -0.408884, 0.141302, 0.901581, 0.333754, 0.137005,\n-0.384089, -0.191342, -0.256640, -0.767487, -0.382710, -0.514293, 0.390974, 0.356338, -0.848624, -0.510347, 0.850256, 0.128881, 0.135222, 0.544826,\n-0.326641, -0.191342, -0.326641, -0.652404, -0.382712, -0.654142, 0.524934, 0.394366, -0.754267, -0.550111, 0.832832, 0.061393, 0.160290, 0.569759,\n-0.346760, -0.097545, -0.346760, -0.693076, -0.195103, -0.693960, 0.583791, 0.412832, -0.699113, -0.425191, 0.888027, 0.174986, 0.172843, 0.510158,\n-0.293969, 0.353553, -0.196424, -0.585615, 0.716973, -0.378161, 0.805466, 0.462339, -0.370765, 0.088480, 0.520278, 0.849401, 0.229053, 0.192977,\n-0.250000, 0.353553, -0.250000, -0.501585, 0.707137, -0.498368, 0.862463, 0.453755, -0.224195, -0.070115, 0.540952, 0.838126, 0.254155, 0.222217,\n-0.196424, 0.415735, -0.196424, -0.394718, 0.831489, -0.390926, 0.904146, 0.427203, -0.004267, -0.178287, 0.348073, 0.920358, 0.286589, 0.174154,\n-0.345671, -0.277785, -0.230970, -0.675904, -0.555401, -0.484442, 0.342223, 0.345636, -0.873739, -0.651508, 0.757561, 0.040474, 0.123337, 0.605312,\n-0.293969, -0.277785, -0.293969, -0.568407, -0.555401, -0.606996, 0.477308, 0.378320, -0.793127, -0.672364, 0.738768, -0.046353, 0.146753, 0.628844,\n-0.326641, -0.191342, -0.326641, -0.652404, -0.382712, -0.654142, 0.524934, 0.394366, -0.754267, -0.550111, 0.832832, 0.061393, 0.160290, 0.569759,\n-0.345671, 0.277785, -0.230970, -0.675904, 0.555401, -0.484442, 0.733379, 0.441885, -0.516616, 0.064220, 0.699210, 0.712026, 0.203700, 0.246751,\n-0.293969, 0.277785, -0.293969, -0.568407, 0.555401, -0.606996, 0.818212, 0.458957, -0.346249, -0.086044, 0.693592, 0.715211, 0.230950, 0.275958,\n-0.250000, 0.353553, -0.250000, -0.501585, 0.707137, -0.498368, 0.862463, 0.453755, -0.224195, -0.070115, 0.540952, 0.838126, 0.254155, 0.222217,\n-0.426777, -0.191342, -0.176777, -0.853073, -0.382711, -0.354682, 0.244429, 0.307448, -0.919636, -0.462279, 0.869583, 0.173560, 0.109843, 0.522841,\n-0.384089, -0.191342, -0.256640, -0.767487, -0.382710, -0.514293, 0.390974, 0.356338, -0.848624, -0.510347, 0.850256, 0.128881, 0.135222, 0.544826,\n-0.407746, -0.097545, -0.272447, -0.815145, -0.195102, -0.545412, 0.450428, 0.378534, -0.808595, -0.365600, 0.903621, 0.223170, 0.146537, 0.484073,\n-0.230970, 0.415735, -0.154329, -0.438981, 0.849271, -0.293317, 0.895086, 0.441771, -0.060488, -0.108067, 0.274177, 0.955588, 0.266710, 0.146213,\n-0.256640, 0.415735, -0.106304, -0.526547, 0.823576, -0.210884, 0.829709, 0.443764, -0.338611, 0.142178, 0.329869, 0.933259, 0.244750, 0.117306,\n-0.293969, 0.353553, -0.196424, -0.585615, 0.716973, -0.378161, 0.805466, 0.462339, -0.370765, 0.088480, 0.520278, 0.849401, 0.229053, 0.192977,\n-0.384089, -0.277785, -0.159095, -0.757427, -0.555401, -0.343269, 0.209220, 0.291565, -0.933390, -0.618888, 0.778237, 0.106417, 0.099805, 0.584808,\n-0.345671, -0.277785, -0.230970, -0.675904, -0.555401, -0.484442, 0.342223, 0.345636, -0.873739, -0.651508, 0.757561, 0.040474, 0.123337, 0.605312,\n-0.384089, -0.191342, -0.256640, -0.767487, -0.382710, -0.514293, 0.390974, 0.356338, -0.848624, -0.510347, 0.850256, 0.128881, 0.135222, 0.544826,\n-0.384089, 0.277785, -0.159095, -0.757427, 0.555401, -0.343269, 0.617410, 0.438239, -0.653262, 0.211028, 0.705770, 0.676281, 0.173746, 0.218568,\n-0.345671, 0.277785, -0.230970, -0.675904, 0.555401, -0.484442, 0.733379, 0.441885, -0.516616, 0.064220, 0.699210, 0.712026, 0.203700, 0.246751,\n-0.293969, 0.353553, -0.196424, -0.585615, 0.716973, -0.378161, 0.805466, 0.462339, -0.370765, 0.088480, 0.520278, 0.849401, 0.229053, 0.192977,\n-0.345671, -0.277785, -0.230970, -0.675904, -0.555401, -0.484442, 0.342223, 0.345636, -0.873739, -0.651508, 0.757561, 0.040474, 0.123337, 0.605312,\n-0.384089, -0.277785, -0.159095, -0.757427, -0.555401, -0.343269, 0.209220, 0.291565, -0.933390, -0.618888, 0.778237, 0.106417, 0.099805, 0.584808,\n-0.293969, -0.353553, -0.196424, -0.589174, -0.707137, -0.390937, 0.243911, 0.305609, -0.920386, -0.770505, 0.637379, 0.008307, 0.109967, 0.665096,\n-0.345671, 0.277785, -0.230970, -0.675904, 0.555401, -0.484442, 0.733379, 0.441885, -0.516616, 0.064220, 0.699210, 0.712026, 0.203700, 0.246751,\n-0.384089, 0.277785, -0.159095, -0.757427, 0.555401, -0.343269, 0.617410, 0.438239, -0.653262, 0.211028, 0.705770, 0.676281, 0.173746, 0.218568,\n-0.384089, 0.191342, -0.256640, -0.784659, 0.382534, -0.487831, 0.618375, 0.427315, -0.659556, 0.043165, 0.818719, 0.572570, 0.185222, 0.304054,\n-0.293969, -0.353553, -0.196424, -0.589174, -0.707137, -0.390937, 0.243911, 0.305609, -0.920386, -0.770505, 0.637379, 0.008307, 0.109967, 0.665096,\n-0.326641, -0.353553, -0.135299, -0.654122, -0.707136, -0.268482, 0.116320, 0.256687, -0.959469, -0.747494, 0.658614, 0.086494, 0.088752, 0.646371,\n-0.230970, -0.415735, -0.154329, -0.471967, -0.831354, -0.293425, 0.130413, 0.263329, -0.955850, -0.872466, 0.488269, 0.019939, 0.093775, 0.723522,\n-0.453063, 0.097545, -0.187665, -0.893339, 0.195000, -0.404871, 0.449384, 0.386693, -0.805309, 0.000144, 0.901072, 0.433670, 0.141332, 0.337487,\n-0.407746, 0.097545, -0.272447, -0.797191, 0.195002, -0.571368, 0.593819, 0.424021, -0.683802, -0.108956, 0.884390, 0.453853, 0.170581, 0.363231,\n-0.384089, 0.191342, -0.256640, -0.784659, 0.382534, -0.487831, 0.618375, 0.427315, -0.659556, 0.043165, 0.818719, 0.572570, 0.185222, 0.304054,\n-0.176777, -0.461940, -0.073223, -0.348692, -0.923819, -0.158028, -0.044107, 0.184598, -0.981824, -0.935394, 0.332453, 0.120471, 0.058627, 0.766238,\n-0.159095, -0.461940, -0.106304, -0.328037, -0.916136, -0.230404, 0.063299, 0.222035, -0.972982, -0.943929, 0.327507, 0.041678, 0.072524, 0.779430,\n-0.230970, -0.415735, -0.154329, -0.471967, -0.831354, -0.293425, 0.130413, 0.263329, -0.955850, -0.872466, 0.488269, 0.019939, 0.093775, 0.723522,\n-0.407746, 0.097545, -0.272447, -0.797191, 0.195002, -0.571368, 0.593819, 0.424021, -0.683802, -0.108956, 0.884390, 0.453853, 0.170581, 0.363231,\n-0.453063, 0.097545, -0.187665, -0.893339, 0.195000, -0.404871, 0.449384, 0.386693, -0.805309, 0.000144, 0.901072, 0.433670, 0.141332, 0.337487,\n-0.415734, 0.000000, -0.277785, -0.849252, 0.000000, -0.527987, 0.486058, 0.390539, -0.781810, -0.205283, 0.921321, 0.330192, 0.158051, 0.423412,\n-0.176777, 0.461940, -0.073223, -0.348692, 0.923819, -0.158028, 0.896544, 0.377920, 0.231051, -0.291820, 0.053214, 0.954992, 0.315970, 0.089506,\n-0.159095, 0.461940, -0.106304, -0.299778, 0.931233, -0.207216, 0.881538, 0.353432, 0.313013, -0.395877, 0.076196, 0.915137, 0.323912, 0.113774,\n-0.081106, 0.490393, -0.054193, -0.181415, 0.976741, -0.114308, 0.793396, 0.214049, 0.569830, -0.593424, -0.016042, 0.804730, 0.397996, 0.106635,\n-0.159095, -0.461940, -0.106304, -0.328037, -0.916136, -0.230404, 0.063299, 0.222035, -0.972982, -0.943929, 0.327507, 0.041678, 0.072524, 0.779430,\n-0.176777, -0.461940, -0.073223, -0.348692, -0.923819, -0.158028, -0.044107, 0.184598, -0.981824, -0.935394, 0.332453, 0.120471, 0.058627, 0.766238,\n-0.081106, -0.490393, -0.054193, -0.188870, -0.973859, -0.126198, -0.111340, 0.148919, -0.982561, -0.971871, 0.166960, 0.166104, 0.042176, 0.830481,\n-0.453063, -0.097545, -0.187665, -0.905885, -0.195102, -0.375909, 0.300401, 0.329673, -0.895028, -0.299521, 0.922643, 0.242934, 0.119628, 0.460773,\n-0.407746, -0.097545, -0.272447, -0.815145, -0.195102, -0.545412, 0.450428, 0.378534, -0.808595, -0.365600, 0.903621, 0.223170, 0.146537, 0.484073,\n-0.415734, 0.000000, -0.277785, -0.849252, 0.000000, -0.527987, 0.486058, 0.390539, -0.781810, -0.205283, 0.921321, 0.330192, 0.158051, 0.423412,\n-0.159095, 0.461940, -0.106304, -0.299778, 0.931233, -0.207216, 0.881538, 0.353432, 0.313013, -0.395877, 0.076196, 0.915137, 0.323912, 0.113774,\n-0.176777, 0.461940, -0.073223, -0.348692, 0.923819, -0.158028, 0.896544, 0.377920, 0.231051, -0.291820, 0.053214, 0.954992, 0.315970, 0.089506,\n-0.230970, 0.415735, -0.154329, -0.438981, 0.849271, -0.293317, 0.895086, 0.441771, -0.060488, -0.108067, 0.274177, 0.955588, 0.266710, 0.146213,\n-0.187665, -0.461940, -0.037329, -0.361210, -0.929163, -0.078640, -0.150569, 0.141344, -0.978443, -0.919609, 0.340987, 0.195057, 0.044374, 0.755575,\n-0.176777, -0.461940, -0.073223, -0.348692, -0.923819, -0.158028, -0.044107, 0.184598, -0.981824, -0.935394, 0.332453, 0.120471, 0.058627, 0.766238,\n-0.256640, -0.415735, -0.106304, -0.520142, -0.831354, -0.195709, 0.020183, 0.217118, -0.975937, -0.853963, 0.510011, 0.103126, 0.075620, 0.707098,\n-0.453063, 0.097545, -0.187665, -0.893339, 0.195000, -0.404871, 0.449384, 0.386693, -0.805309, 0.000144, 0.901072, 0.433670, 0.141332, 0.337487,\n-0.480970, 0.097545, -0.095671, -0.956311, 0.208861, -0.204566, 0.264441, 0.319607, -0.909902, 0.126073, 0.925939, 0.356009, 0.110271, 0.315079,\n-0.461939, 0.000000, -0.191341, -0.935938, 0.000000, -0.352165, 0.330780, 0.343167, -0.879102, -0.119456, 0.940712, 0.317475, 0.129853, 0.398879,\n-0.187665, 0.461940, -0.037329, -0.361210, 0.929163, -0.078640, 0.876848, 0.367143, 0.310393, -0.352518, -0.057991, 0.934007, 0.311350, 0.064544,\n-0.176777, 0.461940, -0.073223, -0.348692, 0.923819, -0.158028, 0.896544, 0.377920, 0.231051, -0.291820, 0.053214, 0.954992, 0.315970, 0.089506,\n-0.090120, 0.490393, -0.037329, -0.200230, 0.976740, -0.076720, 0.795154, 0.207754, 0.569709, -0.589942, -0.057676, 0.805383, 0.401519, 0.094149,\n-0.176777, -0.461940, -0.073223, -0.348692, -0.923819, -0.158028, -0.044107, 0.184598, -0.981824, -0.935394, 0.332453, 0.120471, 0.058627, 0.766238,\n-0.187665, -0.461940, -0.037329, -0.361210, -0.929163, -0.078640, -0.150569, 0.141344, -0.978443, -0.919609, 0.340987, 0.195057, 0.044374, 0.755575,\n-0.090120, -0.490393, -0.037329, -0.200230, -0.976741, -0.076720, -0.201743, 0.117731, -0.972337, -0.956169, 0.177734, 0.232706, 0.034376, 0.822270,\n-0.480970, -0.097545, -0.095671, -0.961814, -0.195104, -0.191958, 0.135158, 0.271299, -0.952958, -0.238214, 0.942091, 0.236049, 0.091945, 0.441097,\n-0.453063, -0.097545, -0.187665, -0.905885, -0.195102, -0.375909, 0.300401, 0.329673, -0.895028, -0.299521, 0.922643, 0.242934, 0.119628, 0.460773,\n-0.461939, 0.000000, -0.191341, -0.935938, 0.000000, -0.352165, 0.330780, 0.343167, -0.879102, -0.119456, 0.940712, 0.317475, 0.129853, 0.398879,\n-0.176777, 0.461940, -0.073223, -0.348692, 0.923819, -0.158028, 0.896544, 0.377920, 0.231051, -0.291820, 0.053214, 0.954992, 0.315970, 0.089506,\n-0.187665, 0.461940, -0.037329, -0.361210, 0.929163, -0.078640, 0.876848, 0.367143, 0.310393, -0.352518, -0.057991, 0.934007, 0.311350, 0.064544,\n-0.256640, 0.415735, -0.106304, -0.526547, 0.823576, -0.210884, 0.829709, 0.443764, -0.338611, 0.142178, 0.329869, 0.933259, 0.244750, 0.117306,\n-0.453064, -0.191342, -0.090120, -0.905874, -0.382714, -0.181443, 0.088287, 0.248358, -0.964637, -0.414650, 0.888692, 0.195685, 0.084004, 0.504490,\n-0.426777, -0.191342, -0.176777, -0.853073, -0.382711, -0.354682, 0.244429, 0.307448, -0.919636, -0.462279, 0.869583, 0.173560, 0.109843, 0.522841,\n-0.453063, -0.097545, -0.187665, -0.905885, -0.195102, -0.375909, 0.300401, 0.329673, -0.895028, -0.299521, 0.922643, 0.242934, 0.119628, 0.460773,\n-0.346760, 0.353553, -0.068975, -0.670363, 0.729954, -0.133341, 0.615738, 0.446929, -0.648938, 0.419535, 0.521063, 0.743293, 0.167754, 0.135879,\n-0.326641, 0.353553, -0.135299, -0.671767, 0.692994, -0.261703, 0.682089, 0.440871, -0.583427, 0.263530, 0.553750, 0.789881, 0.200859, 0.163815,\n-0.256640, 0.415735, -0.106304, -0.526547, 0.823576, -0.210884, 0.829709, 0.443764, -0.338611, 0.142178, 0.329869, 0.933259, 0.244750, 0.117306,\n-0.407746, -0.277785, -0.081106, -0.805228, -0.567206, -0.172874, 0.047157, 0.229362, -0.972198, -0.591182, 0.790524, 0.159922, 0.076022, 0.567870,\n-0.384089, -0.277785, -0.159095, -0.757427, -0.555401, -0.343269, 0.209220, 0.291565, -0.933390, -0.618888, 0.778237, 0.106417, 0.099805, 0.584808,\n-0.426777, -0.191342, -0.176777, -0.853073, -0.382711, -0.354682, 0.244429, 0.307448, -0.919636, -0.462279, 0.869583, 0.173560, 0.109843, 0.522841,\n-0.407746, 0.277785, -0.081106, -0.805228, 0.567206, -0.172874, 0.451509, 0.397513, -0.798826, 0.392085, 0.728018, 0.562369, 0.140040, 0.192730,\n-0.384089, 0.277785, -0.159095, -0.757427, 0.555401, -0.343269, 0.617410, 0.438239, -0.653262, 0.211028, 0.705770, 0.676281, 0.173746, 0.218568,\n-0.326641, 0.353553, -0.135299, -0.671767, 0.692994, -0.261703, 0.682089, 0.440871, -0.583427, 0.263530, 0.553750, 0.789881, 0.200859, 0.163815,\n-0.384089, -0.277785, -0.159095, -0.757427, -0.555401, -0.343269, 0.209220, 0.291565, -0.933390, -0.618888, 0.778237, 0.106417, 0.099805, 0.584808,\n-0.407746, -0.277785, -0.081106, -0.805228, -0.567206, -0.172874, 0.047157, 0.229362, -0.972198, -0.591182, 0.790524, 0.159922, 0.076022, 0.567870,\n-0.326641, -0.353553, -0.135299, -0.654122, -0.707136, -0.268482, 0.116320, 0.256687, -0.959469, -0.747494, 0.658614, 0.086494, 0.088752, 0.646371,\n-0.384089, 0.277785, -0.159095, -0.757427, 0.555401, -0.343269, 0.617410, 0.438239, -0.653262, 0.211028, 0.705770, 0.676281, 0.173746, 0.218568,\n-0.407746, 0.277785, -0.081106, -0.805228, 0.567206, -0.172874, 0.451509, 0.397513, -0.798826, 0.392085, 0.728018, 0.562369, 0.140040, 0.192730,\n-0.426777, 0.191342, -0.176777, -0.864752, 0.382536, -0.325378, 0.470541, 0.390773, -0.791131, 0.176344, 0.837945, 0.516479, 0.155266, 0.277086,\n-0.326641, -0.353553, -0.135299, -0.654122, -0.707136, -0.268482, 0.116320, 0.256687, -0.959469, -0.747494, 0.658614, 0.086494, 0.088752, 0.646371,\n-0.346760, -0.353553, -0.068975, -0.670363, -0.729954, -0.133341, -0.023254, 0.200274, -0.979464, -0.741723, 0.653981, 0.148849, 0.067389, 0.631045,\n-0.256640, -0.415735, -0.106304, -0.520142, -0.831354, -0.195709, 0.020183, 0.217118, -0.975937, -0.853963, 0.510011, 0.103126, 0.075620, 0.707098,\n-0.480970, 0.097545, -0.095671, -0.956311, 0.208861, -0.204566, 0.264441, 0.319607, -0.909902, 0.126073, 0.925939, 0.356009, 0.110271, 0.315079,\n-0.453063, 0.097545, -0.187665, -0.893339, 0.195000, -0.404871, 0.449384, 0.386693, -0.805309, 0.000144, 0.901072, 0.433670, 0.141332, 0.337487,\n-0.426777, 0.191342, -0.176777, -0.864752, 0.382536, -0.325378, 0.470541, 0.390773, -0.791131, 0.176344, 0.837945, 0.516479, 0.155266, 0.277086,\n-0.353553, -0.353553, -0.000000, -0.729900, -0.683554, -0.000002, -0.140775, 0.150322, -0.978563, -0.668029, 0.713322, 0.211917, 0.045839, 0.619459,\n-0.346760, -0.353553, -0.068975, -0.670363, -0.729954, -0.133341, -0.023254, 0.200274, -0.979464, -0.741723, 0.653981, 0.148849, 0.067389, 0.631045,\n-0.407746, -0.277785, -0.081106, -0.805228, -0.567206, -0.172874, 0.047157, 0.229362, -0.972198, -0.591182, 0.790524, 0.159922, 0.076022, 0.567870,\n-0.407746, 0.277785, -0.081106, -0.805228, 0.567206, -0.172874, 0.451509, 0.397513, -0.798826, 0.392085, 0.728018, 0.562369, 0.140040, 0.192730,\n-0.415735, 0.277785, -0.000000, -0.842097, 0.539044, -0.017448, 0.204117, 0.288593, -0.935441, 0.490531, 0.778954, 0.390654, 0.101557, 0.170954,\n-0.453064, 0.191342, -0.090120, -0.901814, 0.400775, -0.161586, 0.311384, 0.343424, -0.886059, 0.302315, 0.852331, 0.426776, 0.122669, 0.253098,\n-0.277785, -0.415735, -0.000000, -0.582526, -0.812812, -0.000003, -0.182415, 0.130737, -0.974491, -0.789993, 0.566171, 0.235289, 0.038786, 0.683738,\n-0.272447, -0.415735, -0.054193, -0.530494, -0.842235, -0.096007, -0.090736, 0.169025, -0.981426, -0.841533, 0.509627, 0.179173, 0.057290, 0.693759,\n-0.346760, -0.353553, -0.068975, -0.670363, -0.729954, -0.133341, -0.023254, 0.200274, -0.979464, -0.741723, 0.653981, 0.148849, 0.067389, 0.631045,\n-0.453064, 0.191342, -0.090120, -0.901814, 0.400775, -0.161586, 0.311384, 0.343424, -0.886059, 0.302315, 0.852331, 0.426776, 0.122669, 0.253098,\n-0.461940, 0.191342, -0.000000, -0.923866, 0.382714, -0.001228, 0.101278, 0.241387, -0.965130, 0.370193, 0.894446, 0.250848, 0.087048, 0.233548,\n-0.480970, 0.097545, -0.095671, -0.956311, 0.208861, -0.204566, 0.264441, 0.319607, -0.909902, 0.126073, 0.925939, 0.356009, 0.110271, 0.315079,\n-0.191342, -0.461940, -0.000000, -0.412766, -0.910837, -0.000002, -0.232681, 0.105446, -0.966820, -0.876357, 0.397140, 0.272541, 0.029845, 0.747594,\n-0.187665, -0.461940, -0.037329, -0.361210, -0.929163, -0.078640, -0.150569, 0.141344, -0.978443, -0.919609, 0.340987, 0.195057, 0.044374, 0.755575,\n-0.272447, -0.415735, -0.054193, -0.530494, -0.842235, -0.096007, -0.090736, 0.169025, -0.981426, -0.841533, 0.509627, 0.179173, 0.057290, 0.693759,\n-0.480970, 0.097545, -0.095671, -0.956311, 0.208861, -0.204566, 0.264441, 0.319607, -0.909902, 0.126073, 0.925939, 0.356009, 0.110271, 0.315079,\n-0.490393, 0.097545, -0.000000, -0.980782, 0.195105, -0.000626, 0.044366, 0.219896, -0.974514, 0.190567, 0.958649, 0.211369, 0.077252, 0.297212,\n-0.490392, 0.000000, -0.097545, -0.986658, 0.000000, -0.162807, 0.156253, 0.280865, -0.946942, -0.044537, 0.961857, 0.269905, 0.100444, 0.377879,\n-0.095671, 0.490393, -0.019030, -0.191324, 0.980789, -0.038055, 0.769801, 0.173994, 0.614111, -0.685547, -0.105782, 0.720302, 0.409016, 0.082641,\n-0.097545, 0.490393, -0.000000, -0.227152, 0.973859, 0.000000, 0.737153, 0.171940, 0.653485, -0.576689, -0.134512, 0.805814, 0.421200, 0.072930,\n-0.187665, 0.461940, -0.037329, -0.361210, 0.929163, -0.078640, 0.876848, 0.367143, 0.310393, -0.352518, -0.057991, 0.934007, 0.311350, 0.064544,\n-0.097545, -0.490393, -0.000000, -0.227152, -0.973859, 0.000000, -0.300081, 0.069994, -0.951342, -0.917744, 0.214063, 0.334550, 0.017133, 0.810598,\n-0.095671, -0.490393, -0.019030, -0.191324, -0.980789, -0.038055, -0.260965, 0.088206, -0.961310, -0.944893, 0.173551, 0.277593, 0.025974, 0.815602,\n-0.187665, -0.461940, -0.037329, -0.361210, -0.929163, -0.078640, -0.150569, 0.141344, -0.978443, -0.919609, 0.340987, 0.195057, 0.044374, 0.755575,\n-0.490393, -0.097545, -0.000000, -0.980782, -0.195105, -0.000626, -0.037587, 0.192093, -0.980657, -0.191292, 0.960975, 0.199836, 0.063447, 0.425835,\n-0.480970, -0.097545, -0.095671, -0.961814, -0.195104, -0.191958, 0.135158, 0.271299, -0.952958, -0.238214, 0.942091, 0.236049, 0.091945, 0.441097,\n-0.490392, 0.000000, -0.097545, -0.986658, 0.000000, -0.162807, 0.156253, 0.280865, -0.946942, -0.044537, 0.961857, 0.269905, 0.100444, 0.377879,\n-0.187665, 0.461940, -0.037329, -0.361210, 0.929163, -0.078640, 0.876848, 0.367143, 0.310393, -0.352518, -0.057991, 0.934007, 0.311350, 0.064544,\n-0.191342, 0.461940, -0.000000, -0.400759, 0.916136, -0.009327, 0.867461, 0.382703, 0.317885, -0.196013, -0.075792, 0.977668, 0.313686, 0.039415,\n-0.272447, 0.415735, -0.054193, -0.530494, 0.842235, -0.096007, 0.809223, 0.469433, -0.353257, 0.225910, 0.249629, 0.941621, 0.218761, 0.087986,\n-0.461940, -0.191342, -0.000000, -0.931059, -0.364378, -0.018930, -0.053981, 0.188871, -0.980517, -0.360713, 0.911404, 0.198061, 0.057662, 0.490395,\n-0.453064, -0.191342, -0.090120, -0.905874, -0.382714, -0.181443, 0.088287, 0.248358, -0.964637, -0.414650, 0.888692, 0.195685, 0.084004, 0.504490,\n-0.480970, -0.097545, -0.095671, -0.961814, -0.195104, -0.191958, 0.135158, 0.271299, -0.952958, -0.238214, 0.942091, 0.236049, 0.091945, 0.441097,\n-0.272447, 0.415735, -0.054193, -0.530494, 0.842235, -0.096007, 0.809223, 0.469433, -0.353257, 0.225910, 0.249629, 0.941621, 0.218761, 0.087986,\n-0.277785, 0.415735, -0.000000, -0.555535, 0.831489, -0.002683, 0.668118, 0.444458, -0.596720, 0.514926, 0.346562, 0.784057, 0.184327, 0.059204,\n-0.346760, 0.353553, -0.068975, -0.670363, 0.729954, -0.133341, 0.615738, 0.446929, -0.648938, 0.419535, 0.521063, 0.743293, 0.167754, 0.135879,\n-0.415735, -0.277785, -0.000000, -0.849229, -0.528024, -0.000003, -0.103524, 0.166506, -0.980591, -0.517614, 0.832485, 0.197593, 0.051941, 0.554970,\n-0.407746, -0.277785, -0.081106, -0.805228, -0.567206, -0.172874, 0.047157, 0.229362, -0.972198, -0.591182, 0.790524, 0.159922, 0.076022, 0.567870,\n-0.453064, -0.191342, -0.090120, -0.905874, -0.382714, -0.181443, 0.088287, 0.248358, -0.964637, -0.414650, 0.888692, 0.195685, 0.084004, 0.504490,\n-0.346760, 0.353553, -0.068975, -0.670363, 0.729954, -0.133341, 0.615738, 0.446929, -0.648938, 0.419535, 0.521063, 0.743293, 0.167754, 0.135879,\n-0.353553, 0.353553, -0.000000, -0.716925, 0.697092, 0.008971, 0.305508, 0.325714, -0.894749, 0.613601, 0.624846, 0.482763, 0.127116, 0.110949,\n-0.407746, 0.277785, -0.081106, -0.805228, 0.567206, -0.172874, 0.451509, 0.397513, -0.798826, 0.392085, 0.728018, 0.562369, 0.140040, 0.192730\n]\n}\n]\n}''';\n"
  },
  {
    "path": "html5/web/webgl/solar3d/web/texture_manager.dart",
    "content": "// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the LICENSE file.\n\npart of solar3d;\n\nclass Texture {\n  final int bindingPoint;\n  WebGL.Texture texture;\n  Texture(this.bindingPoint);\n}\n\nclass TextureManager {\n  final WebGL.RenderingContext gl;\n  final String baseURL;\n\n  Map<String, Texture> textures;\n\n  TextureManager(this.baseURL, this.gl) {\n    textures = new Map<String, Texture>();\n  }\n\n  Texture make(String name) {\n    // New texture.\n    Texture t = new Texture(WebGL.RenderingContext.TEXTURE_2D);\n    t.texture = gl.createTexture();\n    textures[name] = t;\n    gl.bindTexture(t.bindingPoint, t.texture);\n    return t;\n  }\n\n  void update(String name, ImageData imgData) {\n    Texture t = textures[name];\n    if (t == null) {\n      return;\n    }\n    gl.bindTexture(WebGL.RenderingContext.TEXTURE_2D, t.texture);\n    gl.texImage2D(WebGL.RenderingContext.TEXTURE_2D,\n        0,\n        WebGL.RenderingContext.RGBA,\n        WebGL.RenderingContext.RGBA,\n        WebGL.RenderingContext.UNSIGNED_BYTE,\n        imgData);\n    gl.generateMipmap(WebGL.RenderingContext.TEXTURE_2D);\n  }\n\n  Future load(String name) {\n    Texture t = textures[name];\n    if (t == null) {\n      // New texture.\n      t = new Texture(WebGL.RenderingContext.TEXTURE_2D);\n      t.texture = gl.createTexture();\n      textures[name] = t;\n    }\n    ImageElement img = new ImageElement();\n    Completer c = new Completer();\n    img.onLoad.listen((_) {\n      gl.bindTexture(t.bindingPoint, t.texture);\n      gl.texImage2D(t.bindingPoint,\n                    0,\n                    WebGL.RenderingContext.RGBA,\n                    WebGL.RenderingContext.RGBA,\n                    WebGL.RenderingContext.UNSIGNED_BYTE,\n                    img);\n      gl.generateMipmap(t.bindingPoint);\n      c.complete(img.src);\n    });\n    img.src = '$baseURL$name';\n    return c.future;\n  }\n\n  Future loadCube(String name, List<String> sides) {\n    assert(sides.length == 6);\n    Texture t = textures[name];\n    if (t == null) {\n      // New texture.\n      t = new Texture(WebGL.RenderingContext.TEXTURE_CUBE_MAP);\n      t.texture = gl.createTexture();\n      gl.bindTexture(t.bindingPoint, t.texture);\n      gl.texParameteri(t.bindingPoint,\n                       WebGL.RenderingContext.TEXTURE_MIN_FILTER,\n                       WebGL.RenderingContext.LINEAR);\n      gl.texParameteri(t.bindingPoint,\n                       WebGL.RenderingContext.TEXTURE_MAG_FILTER,\n                       WebGL.RenderingContext.LINEAR);\n      textures[name] = t;\n    }\n\n    List<int> sideTargets = [\n      WebGL.RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_X,\n      WebGL.RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_X,\n      WebGL.RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Y,\n      WebGL.RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Y,\n      WebGL.RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Z,\n      WebGL.RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Z];\n\n    List<Future> futures = new List<Future>();\n    for (int i = 0; i < sides.length; i++) {\n      ImageElement img = new ImageElement();\n      Completer c = new Completer();\n      futures.add(c.future);\n      img.onLoad.listen((_) {\n        gl.bindTexture(WebGL.RenderingContext.TEXTURE_2D, null);\n        gl.bindTexture(WebGL.RenderingContext.TEXTURE_CUBE_MAP, null);\n        gl.bindTexture(t.bindingPoint, t.texture);\n        gl.texImage2D(sideTargets[i],\n                      0,\n                      WebGL.RenderingContext.RGBA,\n                      WebGL.RenderingContext.RGBA,\n                      WebGL.RenderingContext.UNSIGNED_BYTE,\n                      img);\n        c.complete(img.src);\n      });\n      img.src = '$baseURL${sides[i]}';\n    }\n    return Future.wait(futures);\n  }\n\n  void bind(String name) {\n    Texture t = textures[name];\n    if (t == null) {\n      print('Cannot find texture $name');\n      return;\n    }\n    gl.bindTexture(WebGL.RenderingContext.TEXTURE_2D, null);\n    gl.bindTexture(WebGL.RenderingContext.TEXTURE_CUBE_MAP, null);\n    gl.bindTexture(t.bindingPoint, t.texture);\n  }\n}\n"
  },
  {
    "path": "html5/web/webgl/utils/webgl_utils.dart",
    "content": "library utils;\nimport 'dart:html';\nimport 'dart:typed_data';\nimport 'dart:web_gl' as WebGL;\n\nWebGL.Program createProgram(WebGL.RenderingContext gl, [List<WebGL.Shader> shaders]) {\n  // Create program\n  var program = gl.createProgram();\n\n  // Iterate the shaders list\n  if (shaders is List<WebGL.Shader>) {\n    shaders.forEach((var shader) => gl.attachShader(program, shader));\n  }\n\n  // Link the shader to program\n  gl.linkProgram(program);\n\n  // Check the linked status\n  var linked = gl.getProgramParameter(program, WebGL.RenderingContext.LINK_STATUS);\n  if (!linked) {\n    throw \"Not able to link shader(s) ${shaders}\";\n  }\n\n  return program;\n}\n\nWebGL.Shader loadShader(WebGL.RenderingContext gl, String shaderSource, int shaderType) {\n  // Create the shader object\n  var shader = gl.createShader(shaderType);\n\n  // Load the shader source\n  gl.shaderSource(shader, shaderSource);\n\n  // Compile the shader\n  gl.compileShader(shader);\n\n  // Check the compile status\n  // NOTE: getShaderParameter maybe borken in minfrog or frog compiler.\n  var compiled = gl.getShaderParameter(shader, WebGL.RenderingContext.COMPILE_STATUS);\n  if (!compiled) {\n    throw \"Not able to compile shader $shaderSource\";\n  }\n\n  return shader;\n}\n\nWebGL.Shader createShaderFromScriptElement(WebGL.RenderingContext gl, String id) {\n  ScriptElement shaderScript = querySelector(id);\n  String shaderSource = shaderScript.text;\n  int shaderType;\n  if (shaderScript.type == \"x-shader/x-vertex\") {\n    shaderType = WebGL.RenderingContext.VERTEX_SHADER;\n  } else if (shaderScript.type == \"x-shader/x-fragment\") {\n    shaderType = WebGL.RenderingContext.FRAGMENT_SHADER;\n  } else {\n    throw new Exception('*** Error: unknown shader type');\n  }\n\n  return loadShader(gl, shaderSource, shaderType);\n}\n\nWebGL.RenderingContext getWebGLContext(CanvasElement canvas) {\n  return canvas.getContext(\"experimental-webgl\");\n}\n\n// misc functions\nvoid setRectangle(gl, x, y, width, height) {\n  var x1 = x;\n  var x2 = x + width;\n  var y1 = y;\n  var y2 = y + height;\n  var vertices = [x1, y1,\n                  x2, y1,\n                  x1, y2,\n                  x1, y2,\n                  x2, y1,\n                  x2, y2];\n  gl.bufferDataTyped(WebGL.RenderingContext.ARRAY_BUFFER, new Float32List.fromList(vertices), WebGL.RenderingContext.STATIC_DRAW);\n}\n"
  },
  {
    "path": "html5/web/websockets/basics/README.md",
    "content": "## WebSockets 101\n\nA simple example of using WebSockets for communication.\n\nYou can learn about the basics of WebSockets by reading the\n[Introducing WebSockets: Bringing Sockets to the Web](http://www.html5rocks.com/en/tutorials/websockets/basics/)\narticle on HTML5Rocks.\n\nWebSocket is a protocol providing full-duplex communications channels over a\nsingle TCP connection.\n\nThis example opens a WebSocket connection to an echo server\n(`ws://echo/websocket.org`), sends data to the server, and then displays the\nresponse on the web page.\n\nPlease report any [bugs or feature requests](http://dartbug.com/new).\n"
  },
  {
    "path": "html5/web/websockets/basics/index.html",
    "content": "<!DOCTYPE html>\n\n<!--\n  Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n  for details. All rights reserved. Use of this source code is governed by a\n  BSD-style license that can be found in the LICENSE file.\n-->\n\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Websocket Test</title>\n  </head>\n  <body>\n    <textarea rows=\"10\" cols=\"40\" id=\"output\"></textarea>\n    <script type=\"application/dart\" src=\"websocket_sample.dart\"></script>\n    <script src=\"packages/browser/dart.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "html5/web/websockets/basics/websocket_sample.dart",
    "content": "// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file\n// for details. All rights reserved. Use of this source code is governed by a\n// BSD-style license that can be found in the COPYING file.\n\n// This is a simple example of using Websockets.\n// See: http://www.html5rocks.com/en/tutorials/websockets/basics/\n//      https://github.com/sethladd/Dart-Web-Sockets\n//\n// This has been tested under Chrome and Firefox.\n\nimport 'dart:html';\nimport 'dart:async';\n\nWebSocket ws;\n\noutputMsg(String msg) {\n  var output = querySelector('#output');\n  var text = msg;\n  if (!output.text.isEmpty) {\n    text = \"${output.text}\\n${text}\";\n  }\n  output.text = text;\n}\n\nvoid initWebSocket([int retrySeconds = 2]) {\n  var reconnectScheduled = false;\n\n  outputMsg(\"Connecting to websocket\");\n  ws = new WebSocket('ws://echo.websocket.org');\n\n  void scheduleReconnect() {\n    if (!reconnectScheduled) {\n      new Timer(new Duration(milliseconds: 1000 * retrySeconds), () => initWebSocket(retrySeconds * 2));\n    }\n    reconnectScheduled = true;\n  }\n\n  ws.onOpen.listen((e) {\n    outputMsg('Connected');\n    ws.send('Hello from Dart!');\n  });\n\n  ws.onClose.listen((e) {\n    outputMsg('Websocket closed, retrying in $retrySeconds seconds');\n    scheduleReconnect();\n  });\n\n  ws.onError.listen((e) {\n    outputMsg(\"Error connecting to ws\");\n    scheduleReconnect();\n  });\n\n  ws.onMessage.listen((MessageEvent e) {\n    outputMsg('Received message: ${e.data}');\n  });\n}\n\nvoid main() {\n  initWebSocket();\n}\n"
  },
  {
    "path": "polymer_mini_samples/README.md",
    "content": "# Polymer Mini Samples\n\nThis directory contains short Polymer Dart samples. Many of the samples are \nports of polymer.js samples that are used in the docs of polymer-project.org.\nThe original JS samples can be found at \n[https://github.com/Polymer/docs/tree/master/samples](https://github.com/Polymer/docs/tree/master/samples).\n\nThe original AUTHORS, CONTRIBUTORS, LICENSE and PATENTS files for polymer can \nbe found at [http://polymer.github.io](http://polymer.github.io)/.\n"
  },
  {
    "path": "polymer_mini_samples/pubspec.yaml",
    "content": "name: polymer_mini_samples\ndescription: Short Polymer examples\ndependencies:\n  polymer: \">=0.10.0 <0.11.0\"\ntransformers:\n- polymer:\n    entry_points:\n      - web/binding_data/index.html\n      - web/binding_to_a_style_value/index.html\n      - web/creating_an_element/index.html\n      - web/creating_an_element_using_noscript/index.html\n      - web/waiting_until_an_element_is_ready/index.html\n      - web/publishing_properties/index.html\n      - web/finding_shadow_dom_nodes_by_id/index.html\n      - web/binding_with_built_in_elements/index.html\ndev_dependencies:\n  unittest: \">=0.10.0 <0.11.0\"\nenvironment:\n  sdk: \">=1.2.0 <2.0.0\"\n"
  },
  {
    "path": "polymer_mini_samples/web/binding_data/README.md",
    "content": "Port of\nhttps://github.com/Polymer/docs/blob/45e09c8a6499d788438667b6564df64a9f86527c/samples/components/tk-element-databinding.html\n"
  },
  {
    "path": "polymer_mini_samples/web/binding_data/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n    <link rel=\"import\" href=\"packages/polymer/polymer.html\">\n    <link rel=\"import\" href=\"my_element.html\">\n  </head>\n  <body>\n    <my-element></my-element>\n    <script type=\"application/dart\">export 'package:polymer/init.dart';</script>\n  </body>\n</html>\n"
  },
  {
    "path": "polymer_mini_samples/web/binding_data/my_element.dart",
    "content": "library binding_data.my_element;\n\nimport 'package:polymer/polymer.dart';\n\n@CustomTag('my-element')\nclass MyElement extends PolymerElement {\n  @observable String owner = 'Daniel';\n  MyElement.created() : super.created();\n}\n"
  },
  {
    "path": "polymer_mini_samples/web/binding_data/my_element.html",
    "content": "<polymer-element name=\"my-element\">\n  <template>\n    This is <b>{{owner}}</b>'s name-tag element.\n  </template>\n  <script type=\"application/dart\" src=\"my_element.dart\"></script>\n</polymer-element>"
  },
  {
    "path": "polymer_mini_samples/web/binding_to_a_style_value/README.md",
    "content": "Port of\nhttps://github.com/Polymer/docs/blob/45e09c8a6499d788438667b6564df64a9f86527c/samples/components/tk-element-databinding-color.html\n"
  },
  {
    "path": "polymer_mini_samples/web/binding_to_a_style_value/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n    <link rel=\"import\" href=\"packages/polymer/polymer.html\">\n    <link rel=\"import\" href=\"my_element.html\">\n  </head>\n  <body>\n    <my-element></my-element>\n    <script type=\"application/dart\">export 'package:polymer/init.dart';</script>\n  </body>\n</html>\n"
  },
  {
    "path": "polymer_mini_samples/web/binding_to_a_style_value/my_element.dart",
    "content": "library binding_to_a_style_value.my_element;\n\nimport 'package:polymer/polymer.dart';\n\n@CustomTag('my-element')\nclass MyElement extends PolymerElement {\n  @observable String owner = 'Daniel';\n  @observable String color = 'red';\n  MyElement.created() : super.created();\n}\n"
  },
  {
    "path": "polymer_mini_samples/web/binding_to_a_style_value/my_element.html",
    "content": "<polymer-element name=\"my-element\">\n  <template>\n    This is <b>{{owner}}</b>'s fav-color element.\n    {{owner}} likes the color\n    <span style=\"color: {{color}}\">{{color}}</span>.\n  </template>\n  <script type=\"application/dart\" src=\"my_element.dart\"></script>\n</polymer-element>"
  },
  {
    "path": "polymer_mini_samples/web/binding_with_built_in_elements/README.md",
    "content": "Port of\nhttps://github.com/Polymer/docs/blob/45e09c8a6499d788438667b6564df64a9f86527c/samples/components/tk-binding-to-elements.html"
  },
  {
    "path": "polymer_mini_samples/web/binding_with_built_in_elements/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n    <link rel=\"import\" href=\"packages/polymer/polymer.html\">\n    <link rel=\"import\" href=\"my_element.html\">\n  </head>\n  <body>\n    <my-element></my-element>\n    <script type=\"application/dart\">export 'package:polymer/init.dart';</script>\n  </body>\n</html>\n"
  },
  {
    "path": "polymer_mini_samples/web/binding_with_built_in_elements/my_element.dart",
    "content": "library binding_with_built_in_elements.my_element;\n\nimport 'package:polymer/polymer.dart';\n\n@CustomTag('my-element')\nclass MyElement extends PolymerElement {\n  @observable var age = 25;\n  @observable String name = 'Daniel';\n  @observable String color = 'red';\n  @observable String owner = 'Eric';\n\n  MyElement.created() : super.created();\n\n  void nameChanged() {\n    if (name.isNotEmpty) {\n      var tokens = name.split('');\n      name = tokens[0].toUpperCase() + tokens.getRange(1, tokens.length).join();\n    }\n  }\n}\n"
  },
  {
    "path": "polymer_mini_samples/web/binding_with_built_in_elements/my_element.html",
    "content": "<polymer-element name=\"my-element\">\n  <template>\n    This is <b>{{owner}}</b>'s age-slider.\n    <b>{{name}}</b> lets me borrow it.\n    He likes the color <span style=\"color: {{color}}\">{{color}}</span>.\n    I am <b>{{age}}</b> years old.\n    <p><label for=\"ageInput\">Age:</label>\n    <input id=\"ageInput\" type=\"range\"\n           value=\"{{age}}\">\n    <label for=\"nameInput\">Name:</label>\n    <input id=\"nameInput\" value=\"{{name}}\"\n           placeholder=\"Enter name...\"></p>\n  </template>\n  <script type=\"application/dart\" src=\"my_element.dart\"></script>\n</polymer-element>"
  },
  {
    "path": "polymer_mini_samples/web/creating_an_element/README.md",
    "content": "Ports (with changes)\nhttps://github.com/Polymer/docs/blob/45e09c8a6499d788438667b6564df64a9f86527c/samples/components/tk-element-proto.html\n\nDart does not have a prototype chain, so the sample has been rewritten to\ndemonstrates how to create an element that uses a Dart class. Contrast this\nsample with creating_an_element_using_noscript."
  },
  {
    "path": "polymer_mini_samples/web/creating_an_element/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n    <link rel=\"import\" href=\"packages/polymer/polymer.html\">\n    <link rel=\"import\" href=\"my_element.html\">\n  </head>\n  <body>\n    <my-element></my-element>\n    <script type=\"application/dart\">export 'package:polymer/init.dart';</script>\n  </body>\n</html>\n"
  },
  {
    "path": "polymer_mini_samples/web/creating_an_element/my_element.dart",
    "content": "library creating_an_element.my_element;\n\nimport 'package:polymer/polymer.dart';\n\n@CustomTag('my-element')\nclass MyElement extends PolymerElement {\n  @observable String name = 'John';\n  MyElement.created() : super.created();\n}\n"
  },
  {
    "path": "polymer_mini_samples/web/creating_an_element/my_element.html",
    "content": "<polymer-element name=\"my-element\">\n  <template>\n    <span>Hello {{name}}!</span>\n  </template>\n  <script type=\"application/dart\" src=\"my_element.dart\"></script>\n</polymer-element>"
  },
  {
    "path": "polymer_mini_samples/web/creating_an_element_using_noscript/README.md",
    "content": "Port of\nhttps://github.com/Polymer/docs/blob/45e09c8a6499d788438667b6564df64a9f86527c/samples/components/tk-element.html"
  },
  {
    "path": "polymer_mini_samples/web/creating_an_element_using_noscript/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n    <link rel=\"import\" href=\"packages/polymer/polymer.html\">\n    <link rel=\"import\" href=\"my_element.html\">\n  </head>\n  <body>\n    <my-element></my-element>\n    <script type=\"application/dart\">export 'package:polymer/init.dart';</script>\n  </body>\n</html>\n"
  },
  {
    "path": "polymer_mini_samples/web/creating_an_element_using_noscript/my_element.html",
    "content": "<polymer-element name=\"my-element\" noscript>\n  <template>\n    <span>Hello from <b>my-element</b>. This is my Shadow DOM.</span>\n  </template>\n</polymer-element>"
  },
  {
    "path": "polymer_mini_samples/web/finding_shadow_dom_nodes_by_id/README.md",
    "content": "Port of\nhttps://github.com/Polymer/docs/blob/45e09c8a6499d788438667b6564df64a9f86527c/samples/components/tk-node-finding.html"
  },
  {
    "path": "polymer_mini_samples/web/finding_shadow_dom_nodes_by_id/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n    <link rel=\"import\" href=\"packages/polymer/polymer.html\">\n    <link rel=\"import\" href=\"my_element.html\">\n  </head>\n  <body>\n    <my-element></my-element>\n    <script type=\"application/dart\">export 'package:polymer/init.dart';</script>\n  </body>\n</html>\n"
  },
  {
    "path": "polymer_mini_samples/web/finding_shadow_dom_nodes_by_id/my_element.dart",
    "content": "library finding_shadow_dom_nodes_by_id.my_element;\n\nimport 'package:polymer/polymer.dart';\n\n@CustomTag('my-element')\nclass MyElement extends PolymerElement {\n  @published String color = 'red';\n  @published String owner = 'Daniel';\n\n  MyElement.created() : super.created();\n\n  void setFocus() {\n    $['nameInput'].focus();\n  }\n}\n"
  },
  {
    "path": "polymer_mini_samples/web/finding_shadow_dom_nodes_by_id/my_element.html",
    "content": "<polymer-element name=\"my-element\">\n  <template>\n    <p>\n    This is a <strong>{{owner}}</strong>'s editable-color-picker.\n    He likes the color <b style=\"color: {{color}}\">{{color}}</b>.\n    </p>\n    <button on-click=\"{{setFocus}}\">Set focus to text input</button>\n    <input id=\"nameInput\" value=\"{{owner}}\"\n           placeholder=\"Your name here...\">\n  </template>\n  <script type=\"application/dart\" src=\"my_element.dart\"></script>\n</polymer-element>"
  },
  {
    "path": "polymer_mini_samples/web/publishing_properties/README.md",
    "content": "Port of\nhttps://github.com/Polymer/docs/blob/45e09c8a6499d788438667b6564df64a9f86527c/samples/components/tk-element-databinding.html\n"
  },
  {
    "path": "polymer_mini_samples/web/publishing_properties/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n    <link rel=\"import\" href=\"packages/polymer/polymer.html\">\n    <link rel=\"import\" href=\"my_element.html\">\n  </head>\n  <body>\n    <my-element color=\"blue\"></my-element>\n    <script type=\"application/dart\">export 'package:polymer/init.dart';</script>\n  </body>\n</html>\n"
  },
  {
    "path": "polymer_mini_samples/web/publishing_properties/my_element.dart",
    "content": "library publishing_properties.my_element;\n\nimport 'package:polymer/polymer.dart';\n\n@CustomTag('my-element')\nclass MyElement extends PolymerElement {\n  @published String color = 'red';\n  @published String owner = 'Daniel';\n  MyElement.created() : super.created();\n}\n"
  },
  {
    "path": "polymer_mini_samples/web/publishing_properties/my_element.html",
    "content": "<polymer-element name=\"my-element\">\n  <template>\n    This is a <strong>{{owner}}</strong>'s color-picker.\n    He likes the color <b style=\"color: {{color}}\">{{color}}</b>.\n  </template>\n  <script type=\"application/dart\" src=\"my_element.dart\"></script>\n</polymer-element>"
  },
  {
    "path": "polymer_mini_samples/web/waiting_until_an_element_is_ready/README.md",
    "content": "Port of\nhttps://github.com/Polymer/docs/blob/2fd88b259f20bccf873158c1407175b5014991ed/samples/components/tk-element-created.html"
  },
  {
    "path": "polymer_mini_samples/web/waiting_until_an_element_is_ready/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n    <link rel=\"import\" href=\"packages/polymer/polymer.html\">\n    <link rel=\"import\" href=\"my_element.html\">\n  </head>\n  <body>\n    <my-element></my-element>\n    <script type=\"application/dart\">export 'package:polymer/init.dart';</script>\n  </body>\n</html>\n"
  },
  {
    "path": "polymer_mini_samples/web/waiting_until_an_element_is_ready/my_element.dart",
    "content": "library waiting_until_an_element_is_ready.my_element;\n\nimport 'package:polymer/polymer.dart';\n\n@CustomTag('my-element')\nclass MyElement extends PolymerElement {\n  @observable String owner = 'Daniel';\n  MyElement.created() : super.created();\n\n  ready() {\n    $['el'].text = \"$owner is ready!\";\n  }\n}\n"
  },
  {
    "path": "polymer_mini_samples/web/waiting_until_an_element_is_ready/my_element.html",
    "content": "<polymer-element name=\"my-element\">\n  <template>\n    This element has a ready() method.\n    <span id=\"el\">Not ready...</span>\n  </template>\n  <script type=\"application/dart\" src=\"my_element.dart\"></script>\n</polymer-element>"
  }
]