From: Olivier Tétard Date: Thu, 12 Nov 2015 17:06:22 +0000 (+0100) Subject: Utilisation de wavesurfer.js pour lire les fichiers MP3/OGG X-Git-Url: http://olivier.miskin.fr/git/?a=commitdiff_plain;h=ed86ee67bd2c4646509edaf9697eb7f9b283e2b1;p=femtoblackweb.git Utilisation de wavesurfer.js pour lire les fichiers MP3/OGG --- diff --git a/static/wavesurfer.js/.gitignore b/static/wavesurfer.js/.gitignore new file mode 100644 index 0000000..7d771e7 --- /dev/null +++ b/static/wavesurfer.js/.gitignore @@ -0,0 +1,9 @@ +/dist/wavesurfer.cjs.js +/dist/wavesurfer.amd.js +/node_modules +/bower_components +/npm-debug.log +/.grunt +/coverage +/_SpecRunner.html +.DS_Store diff --git a/static/wavesurfer.js/.npmignore b/static/wavesurfer.js/.npmignore new file mode 100644 index 0000000..8e89299 --- /dev/null +++ b/static/wavesurfer.js/.npmignore @@ -0,0 +1,3 @@ +/dist/wavesurfer.min.js.map +/dist/wavesurfer.amd.js +/dist/wavesurfer.min.js diff --git a/static/wavesurfer.js/.travis.yml b/static/wavesurfer.js/.travis.yml new file mode 100644 index 0000000..0aebf48 --- /dev/null +++ b/static/wavesurfer.js/.travis.yml @@ -0,0 +1,8 @@ +language: node_js +node_js: + - "0.12" +before_install: npm install -g grunt-cli +install: npm install +before_script: grunt +script: + - grunt coveralls \ No newline at end of file diff --git a/static/wavesurfer.js/CNAME b/static/wavesurfer.js/CNAME new file mode 100644 index 0000000..c2b93c9 --- /dev/null +++ b/static/wavesurfer.js/CNAME @@ -0,0 +1 @@ +wavesurfer-js.org diff --git a/static/wavesurfer.js/Gruntfile.js b/static/wavesurfer.js/Gruntfile.js new file mode 100644 index 0000000..276245d --- /dev/null +++ b/static/wavesurfer.js/Gruntfile.js @@ -0,0 +1,195 @@ +/*global module:false*/ +module.exports = function(grunt) { + + var path = require('path'); + + // Project configuration. + grunt.initConfig({ + // Metadata. + pkg: grunt.file.readJSON('package.json'), + banner: '/*! <%= pkg.title || pkg.name %> <%= pkg.version %>\n' + + '<%= pkg.homepage ? "* " + pkg.homepage + "\\n" : "" %>' + + '* @license <%= pkg.license %> */', + // Task configuration. + concat: { + options: { + stripBanners: true + }, + dist: { + src: [ + 'src/wavesurfer.js', + 'src/util.js', + 'src/webaudio.js', + 'src/mediaelement.js', + 'src/drawer.js', + 'src/drawer.*.js', + 'src/html-init.js' + ], + dest: 'dist/wavesurfer.min.js' + } + }, + connect: { + options: { + base: '.', + port: 9000, + // Change this to '0.0.0.0' to access the server from outside. + hostname: 'localhost', + keepalive: true + }, + }, + commonjs: { + modules: { + banner: '<%= banner %>', + cwd: 'dist', + src: ['*.min.js'], + dest: 'dist/wavesurfer.cjs.js' + } + }, + amd: { + modules: { + banner: '<%= banner %>', + cwd: 'dist', + src: ['*.min.js'], + dest: 'dist/wavesurfer.amd.js' + } + }, + uglify: { + options: { + banner: '<%= banner %>' + }, + dist: { + options: { + sourceMap: 'dist/wavesurfer.min.js.map', + sourceMapRoot: '/' + }, + src: '<%= concat.dist.src %>', + dest: '<%= concat.dist.dest %>' + }, + plugins: { + files: grunt.file.expandMapping(['plugin/*.js'], 'dist/', { + rename: function(destBase, destPath) { + var newPath = destBase + destPath.replace('.js', '.min.js'); + return newPath; + }, + }) + } + }, + jshint: { + options: { + curly: true, + eqeqeq: false, + eqnull: true, + quotmark: "single", + browser: true, + // Missing "use strict" statement. + strict: false, + globals: { + WaveSurfer: true + }, + }, + ignore_warning: { + options: { + '-W004': true, + // Expected an assignment or function call and instead saw an expression + '-W030': true, + // {a} used out of scope + '-W038': true, + // Use '!==' to compare with '' + '-W041': true, + '-W056': true, + // Missing '()' invoking a constructor. + '-W058': true, + '-W079': true, + // Use the function form of 'use strict' + '-W097': true, + }, + src: ['<%= concat.dist.src %>', 'plugin/*.js', 'spec/*.spec.js'] + }, + }, + jasmine: { + core: { + src: '<%= concat.dist.src %>', + options: { + specs: ['spec/*.spec.js'], + vendor: [ + 'node_modules/jasmine-expect/dist/jasmine-matchers.js' + ] + } + }, + coverage: { + src: '<%= concat.dist.src %>', + options: { + specs: '<%= jasmine.core.options.specs %>', + vendor: '<%= jasmine.core.options.vendor %>', + template: require('grunt-template-jasmine-istanbul'), + templateOptions: { + coverage: 'coverage/coverage.json', + report: [ + { + type: 'lcov', + options: { + dir: 'coverage/lcov' + } + }, + { + type: 'html', + options: { + dir: 'coverage/html' + } + }] + } + } + } + }, + coveralls: { + options: { + force: true + }, + main_target: { + src: 'coverage/lcov/lcov.info' + } + } + }); + + // ========================================================================== + // TASKS + // ========================================================================== + + grunt.registerMultiTask('commonjs', 'Wrap .js files for commonjs.', function () { + this.files.forEach(function(file) { + return file.src.map(function(filepath) { + var original = grunt.file.read(path.join(file.cwd, filepath)); + return grunt.file.write(file.dest, file.banner + '\n' + + original + '\nmodule.exports = WaveSurfer;'); + }); + }); + }); + + grunt.registerMultiTask('amd', 'Wrap .js files for AMD.', function () { + this.files.forEach(function(file) { + return file.src.map(function(filepath) { + var definePath = (filepath.replace(/\.\w+$/, '')), + original = grunt.file.read(path.join(file.cwd, filepath)); + return grunt.file.write(file.dest, file.banner + + '\ndefine(function () {\n' + original + '\nreturn WaveSurfer;\n});'); + }); + }); + }); + + // These plugins provide necessary tasks. + grunt.loadNpmTasks('grunt-contrib-concat'); + grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-contrib-jasmine'); + grunt.loadNpmTasks('grunt-coveralls'); + grunt.loadNpmTasks('grunt-contrib-connect'); + + // Default task. + grunt.registerTask('default', ['jshint', 'test', 'coverage', 'concat', 'commonjs', + 'amd', 'uglify']); + + // Dev + grunt.registerTask('dev', ['concat', 'uglify', 'connect']); + grunt.registerTask('test', ['jasmine:core']); + grunt.registerTask('coverage', ['jasmine:coverage']); +}; diff --git a/static/wavesurfer.js/README.md b/static/wavesurfer.js/README.md new file mode 100644 index 0000000..59bc5ff --- /dev/null +++ b/static/wavesurfer.js/README.md @@ -0,0 +1,262 @@ +# wavesurfer.js + +Interactive navigable audio visualization using [Web Audio](https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html) and Canvas. + +![Screenshot](example/screenshot.png?raw=true "Screenshot") + +## Browser support +wavesurfer.js works only in [modern browsers supporting Web Audio](http://caniuse.com/audio-api). + +It will fallback to Audio Element in other browsers (without graphics). You can also try [wavesurfer.swf](https://github.com/laurentvd/wavesurfer.swf) which is a Flash-based fallback with graphics. + +## FAQ +### Can the audio start playing before the waveform is drawn? +Yes, if you use the `backend: 'MediaElement'` option. See here: http://wavesurfer-js.org/example/audio-element/. The audio will start playing as you press play. A thin line will be displayed until the whole audio file is downloaded and decoded to draw the waveform. + +### Can drawing be done as file loads? +No. Web Audio needs the whole file to decode it in the browser. You can however load pre-decoded waveform data to draw the waveform immediately. See here: http://wavesurfer-js.org/example/audio-element/ (the "Pre-recoded Peaks" section). + +## API in examples + +Create an instance: + +```javascript +var wavesurfer = Object.create(WaveSurfer); +``` + +Initialize it with a container element (plus some options): + +```javascript +wavesurfer.init({ + container: '#wave', + waveColor: 'violet', + progressColor: 'purple' +}); +``` + +Subscribe to some events: + +```javascript +wavesurfer.on('ready', function () { + wavesurfer.play(); +}); +``` + +Load an audio file from a URL: + +```javascript +wavesurfer.load('example/media/demo.wav'); +``` + +See the example code [here](/example/main.js). + +For a list of other projects using wavesurfer.js, check out +[the wiki](https://github.com/katspaugh/wavesurfer.js/wiki/Projects) +where you can also add your own project. + +## WaveSurfer Options + +| option | type | default | description | +| --- | --- | --- | --- | +| `audioContext` | object | _none_ | Use your own previously initialized `AudioContext` or leave blank. | +| `audioRate` | float | `1` | Speed at which to play audio. Lower number is slower. | +| `backend` | string | `WebAudio` | `WebAudio` or `MediaElement`. In most cases you don't have to set this manually. `MediaElement` is a fallback for unsupported browsers. | +| `barWidth` | number | _none_ | If specified, the waveform will be drawn like this: ▁ ▂ ▇ ▃ ▅ ▂ | +| `container` | mixed | _none_ | CSS-selector or HTML-element where the waveform should be drawn. This is the only required parameter. | +| `cursorColor` | string | `#333` | The fill color of the cursor indicating the playhead position. | +| `cursorWidth` | integer | `1` | Measured in pixels. | +| `fillParent` | boolean | `true` | Whether to fill the entire container or draw only according to `minPxPerSec`. | +| `height` | integer | `128` | The height of the waveform. Measured in pixels. | +| `hideScrollbar` | boolean | `false` | Whether to hide the horizontal scrollbar when one would normally be shown. | +| `interact` | boolean | `true` | Whether the mouse interaction will be enabled at initialization. You can switch this parameter at any time later on. | +| `minPxPerSec` | integer | `50` | Minimum number of pixels per second of audio. | +| `normalize` | boolean | `false` | If `true`, normalize by the maximum peak instead of 1.0. | +| `pixelRatio` | integer | `window.devicePixelRatio` | Can be set to `1` for faster rendering. | +| `progressColor` | string | `#555` | The fill color of the part of the waveform behind the cursor. | +| `scrollParent` | boolean | `false` | Whether to scroll the container with a lengthy waveform. Otherwise the waveform is shrunk to the container width (see `fillParent`). | +| `skipLength` | float | `2` | Number of seconds to skip with the `skipForward()` and `skipBackward()` methods. | +| `waveColor` | string | `#999` | The fill color of the waveform after the cursor. | +| `autoCenter` | boolean | true | If a scrollbar is present, center the waveform around the progress | +## WaveSurfer Methods + +All methods are intentionally public, but the most readily available are the following: + + * `init(options)` – Initializes with the options listed above. + * `destroy()` – Removes events, elements and disconnects Web Audio nodes. + * `empty()` – Clears the waveform as if a zero-length audio is loaded. + * `getCurrentTime()` – Returns current progress in seconds. + * `getDuration()` – Returns the duration of an audio clip in seconds. + * `isPlaying()` – Returns true if currently playing, false otherwise. + * `load(url)` – Loads audio from URL via XHR. Returns XHR object. + * `loadBlob(url)` – Loads audio from a `Blob` or `File` object. + * `on(eventName, callback)` – Subscribes to an event. See [WaveSurfer Events](#wavesurfer-events) section below for a list. + * `un(eventName, callback)` – Unsubscribes from an event. + * `unAll()` – Unsubscribes from all events. + * `pause()` – Stops playback. + * `play([start[, end]])` – Starts playback from the current position. Optional `start` and `end` measured in seconds can be used to set the range of audio to play. + * `playPause()` – Plays if paused, pauses if playing. + * `seekAndCenter(progress)` – Seeks to a progress and centers view `[0..1]` (0 = beginning, 1 = end). + * `seekTo(progress)` – Seeks to a progress `[0..1]` (0=beginning, 1=end). + * `setFilter(filters)` - For inserting your own WebAudio nodes into the graph. See [Connecting Filters](#connecting-filters) below. + * `setPlaybackRate(rate)` – Sets the speed of playback (`0.5` is half speed, `1` is normal speed, `2` is double speed and so on). + * `setVolume(newVolume)` – Sets the playback volume to a new value `[0..1]` (0 = silent, 1 = maximum). + * `skip(offset)` – Skip a number of seconds from the current position (use a negative value to go backwards). + * `skipBackward()` - Rewind `skipLength` seconds. + * `skipForward()` - Skip ahead `skipLength` seconds. + * `stop()` – Stops and goes to the beginning. + * `toggleMute()` – Toggles the volume on and off. + * `toggleInteraction()` – Toggle mouse interaction. + * `toggleScroll()` – Toggles `scrollParent`. + * `zoom(pxPerSec)` – Horiontally zooms the waveform in and out. The + parameter is a number of horizontal pixels per second of audio. It + also changes the parameter `minPxPerSec` and enables the + `scrollParent` option. + +##### Connecting Filters + +You can insert your own Web Audio nodes into the graph using the method `setFilter()`. Example: + +```javascript +var lowpass = wavesurfer.backend.ac.createBiquadFilter(); +wavesurfer.backend.setFilter(lowpass); +``` + +## WaveSurfer Events + +General events: + + * `audioprocess` – Fires continuously as the audio plays. Also fires on seeking. + * `error` – Occurs on error. Callback will receive (string) error message. + * `finish` – When it finishes playing. + * `loading` – Fires continuously when loading via XHR or drag'n'drop. Callback will receive (integer) loading progress in percents [0..100] and (object) event target. + * `mouseup` - When a mouse button goes up. Callback will receive `MouseEvent` object. + * `pause` – When audio is paused. + * `play` – When play starts. + * `ready` – When audio is loaded, decoded and the waveform drawn. + * `scroll` - When the scrollbar is moved. Callback will receive a `ScrollEvent` object. + * `seek` – On seeking. Callback will receive (float) progress [0..1]. + * `zoom` – On zooming. Callback will receive (integer) minPxPerSec. + +Region events (exposed by the Regions plugin): + + * `region-in` – When playback enters a region. Callback will receive the `Region` object. + * `region-out`– When playback leaves a region. Callback will receive the `Region` object. + * `region-mouseenter` - When the mouse moves over a region. Callback will receive the `Region` object, and a `MouseEvent` object. + * `region-mouseleave` - When the mouse leaves a region. Callback will receive the `Region` object, and a `MouseEvent` object. + * `region-click` - When the mouse clicks on a region. Callback will receive the `Region` object, and a `MouseEvent` object. + * `region-dblclick` - When the mouse double-clicks on a region. Callback will receive the `Region` object, and a `MouseEvent` object. + * `region-created` – When a region is created. Callback will receive the `Region` object. + * `region-updated` – When a region is updated. Callback will receive the `Region` object. + * `region-update-end` – When dragging or resizing is finished. Callback will receive the `Region` object. + * `region-removed` – When a region is removed. Callback will receive the `Region` object. + + +## Regions Plugin + +Regions are visual overlays on waveform that can be used to play and +loop portions of audio. Regions can be dragged and resized. + +Visual customization is possible via CSS (using the selectors +`.wavesurfer-region` and `.wavesurfer-handle`). + +To enable the plugin, add the script `plugin/wavesurfer.regions.js` to +your page. + +After doing that, use `wavesurfer.addRegion()` to create Region objects. + +### Exposed Methods + + * `addRegion(options)` – Creates a region on the waveform. Returns a `Region` object. See [Region Options](#region-options), [Region Methods](#region-methods) and [Region Events](#region-events) below. + * **Note:** You cannot add regions until the audio has finished loading, otherwise the `start:` and `end:` properties of the new region will be set to `0`, or an unexpected value. + * `clearRegions()` – Removes all regions. + * `enableDragSelection(options)` – Lets you create regions by selecting. + areas of the waveform with mouse. `options` are Region objects' params (see [below](#region-options)). + +### Region Options + +| option | type | default | description | +| --- | --- | --- | --- | +| `id` | string | random | The id of the region. | +| `start` | float | `0` | The start position of the region (in seconds). | +| `end` | float | `0` | The end position of the region (in seconds). | +| `loop` | boolean | `false` | Whether to loop the region when played back. | +| `drag` | boolean | `true` | Allow/dissallow dragging the region. | +| `resize` | boolean | `true` | Allow/dissallow resizing the region. | +| `color` | string | `"rgba(0, 0, 0, 0.1)"` | HTML color code. | + +### Region Methods + + * `remove()` - Remove the region object. + * `update(options)` - Modify the settings of the region. + * `play()` - Play the audio region from the start to end position. + +### Region Events + +General events: + + * `in` - When playback enters the region. + * `out` - When playback leaves the region. + * `remove` - Happens just before the region is removed. + * `update` - When the region's options are updated. + +Mouse events: + + * `click` - When the mouse clicks on the region. Callback will receive a `MouseEvent`. + * `dblclick` - When the mouse double-clicks on the region. Callback will receive a `MouseEvent`. + * `over` - When mouse moves over the region. Callback will receive a `MouseEvent`. + * `leave` - When mouse leaves the region. Callback will receive a `MouseEvent`. + +## Development + +[![npm version](https://img.shields.io/npm/v/wavesurfer.js.svg?style=flat)](https://www.npmjs.com/package/wavesurfer.js) +[![npm](https://img.shields.io/npm/dm/wavesurfer.js.svg)]() +[![Build Status](https://travis-ci.org/katspaugh/wavesurfer.js.svg?branch=master)](https://travis-ci.org/katspaugh/wavesurfer.js) +[![Coverage Status](https://coveralls.io/repos/katspaugh/wavesurfer.js/badge.svg)](https://coveralls.io/r/katspaugh/wavesurfer.js) + +Install `grunt-cli` using npm: + +``` +npm install -g grunt-cli +``` + +Install development dependencies: + +``` +npm install +``` + +Build a minified version of the library and plugins. This command also checks +for code-style mistakes and runs the tests: + +``` +grunt +``` + +Generated files are placed in the `dist` directory. + +Running tests only: + +``` +grunt test +``` + +Creating a coverage report: + +``` +grunt coverage +``` + +The HTML report can be found in `coverage/html/index.html`. + +## Credits + +Initial idea by [Alex Khokhulin](https://github.com/xoxulin). Many +thanks to +[the awesome contributors](https://github.com/katspaugh/wavesurfer.js/contributors)! + +## License + +![cc-by](https://i.creativecommons.org/l/by/3.0/88x31.png) + +This work is licensed under a +[Creative Commons Attribution 3.0 Unported License](https://creativecommons.org/licenses/by/3.0/deed.en_US). diff --git a/static/wavesurfer.js/bower.json b/static/wavesurfer.js/bower.json new file mode 100644 index 0000000..81177d3 --- /dev/null +++ b/static/wavesurfer.js/bower.json @@ -0,0 +1,14 @@ +{ + "name": "wavesurfer.js", + "version": "1.0.47", + "homepage": "http://wavesurfer-js.org", + "authors": [ + "katspaugh " + ], + "description": "Navigable waveform built on Web Audio and Canvas", + "main": "dist/wavesurfer.min.js", + "keywords": [ + "waveform", "audio", "music", "player" + ], + "license": "CC BY 3.0" +} diff --git a/static/wavesurfer.js/dist/plugin/wavesurfer.elan.min.js b/static/wavesurfer.js/dist/plugin/wavesurfer.elan.min.js new file mode 100644 index 0000000..83cea47 --- /dev/null +++ b/static/wavesurfer.js/dist/plugin/wavesurfer.elan.min.js @@ -0,0 +1,3 @@ +/*! wavesurfer.js 1.0.47 +* https://github.com/katspaugh/wavesurfer.js +* @license CC-BY-3.0 */"use strict";WaveSurfer.ELAN={Types:{ALIGNABLE_ANNOTATION:"ALIGNABLE_ANNOTATION",REF_ANNOTATION:"REF_ANNOTATION"},init:function(a){if(this.data=null,this.params=a,this.container="string"==typeof a.container?document.querySelector(a.container):a.container,!this.container)throw Error("No container for ELAN");this.bindClick(),a.url&&this.load(a.url)},load:function(a){var b=this;this.loadXML(a,function(a){b.data=b.parseElan(a),b.render(),b.fireEvent("ready",b.data)})},loadXML:function(a,b){var c=new XMLHttpRequest;c.open("GET",a,!0),c.responseType="document",c.send(),c.addEventListener("load",function(a){b&&b(a.target.responseXML)})},parseElan:function(a){var b=Array.prototype.forEach,c=Array.prototype.map,d={media:{},timeOrder:{},tiers:[],annotations:{},alignableAnnotations:[]},e=a.querySelector("HEADER"),f="milliseconds"==e.getAttribute("TIME_UNITS"),g=e.querySelector("MEDIA_DESCRIPTOR");d.media.url=g.getAttribute("MEDIA_URL"),d.media.type=g.getAttribute("MIME_TYPE");var h=a.querySelectorAll("TIME_ORDER TIME_SLOT"),i={};return b.call(h,function(a){var b=parseFloat(a.getAttribute("TIME_VALUE"));f&&(b=Math.round(100*b)/1e5),i[a.getAttribute("TIME_SLOT_ID")]=b}),d.tiers=c.call(a.querySelectorAll("TIER"),function(a){return{id:a.getAttribute("TIER_ID"),linguisticTypeRef:a.getAttribute("LINGUISTIC_TYPE_REF"),defaultLocale:a.getAttribute("DEFAULT_LOCALE"),annotations:c.call(a.querySelectorAll("REF_ANNOTATION, ALIGNABLE_ANNOTATION"),function(a){var b={type:a.nodeName,id:a.getAttribute("ANNOTATION_ID"),ref:a.getAttribute("ANNOTATION_REF"),value:a.querySelector("ANNOTATION_VALUE").textContent.trim()};return this.Types.ALIGNABLE_ANNOTATION==b.type&&(b.start=i[a.getAttribute("TIME_SLOT_REF1")],b.end=i[a.getAttribute("TIME_SLOT_REF2")],d.alignableAnnotations.push(b)),d.annotations[b.id]=b,b},this)}},this),d.tiers.forEach(function(a){a.annotations.forEach(function(a){null!=a.ref&&(a.reference=d.annotations[a.ref])},this)},this),d.alignableAnnotations.sort(function(a,b){var c=a.start-b.start;return 0==c&&(c=b.end-a.end),c}),d.length=d.alignableAnnotations.length,d},render:function(){var a=this.data.tiers;this.params.tiers&&(a=a.filter(function(a){return a.id in this.params.tiers},this));var b={},c={};a.forEach(function(a,d){a.annotations.forEach(function(a){a.reference&&a.reference.type==this.Types.ALIGNABLE_ANNOTATION&&(a.reference.id in b||(b[a.ref]={}),b[a.ref][d]=a,c[d]=!0)},this)},this),c=Object.keys(c).sort(),this.renderedAlignable=this.data.alignableAnnotations.filter(function(a){return b[a.id]});var d=document.createElement("table");d.className="wavesurfer-annotations";var e=document.createElement("thead"),f=document.createElement("tr");e.appendChild(f),d.appendChild(e);var g=document.createElement("th");g.textContent="Time",g.className="wavesurfer-time",f.appendChild(g),c.forEach(function(b){var c=a[b],d=document.createElement("th");d.className="wavesurfer-tier-"+c.id,d.textContent=c.id,d.style.width=this.params.tiers[c.id],f.appendChild(d)},this);var h=document.createElement("tbody");d.appendChild(h),this.renderedAlignable.forEach(function(d){var e=document.createElement("tr");e.id="wavesurfer-alignable-"+d.id,h.appendChild(e);var f=document.createElement("td");f.className="wavesurfer-time",f.textContent=d.start.toFixed(1)+"–"+d.end.toFixed(1),e.appendChild(f);var g=b[d.id];c.forEach(function(b){var c=a[b],f=document.createElement("td"),h=g[b];h&&(f.id="wavesurfer-annotation-"+h.id,f.dataset.ref=d.id,f.dataset.start=d.start,f.dataset.end=d.end,f.textContent=h.value),f.className="wavesurfer-tier-"+c.id,e.appendChild(f)},this)},this),this.container.innerHTML="",this.container.appendChild(d)},bindClick:function(){var a=this;this.container.addEventListener("click",function(b){var c=b.target.dataset.ref;if(null!=c){var d=a.data.annotations[c];d&&a.fireEvent("select",d.start,d.end)}})},getRenderedAnnotation:function(a){var b;return this.renderedAlignable.some(function(c){return c.start<=a&&c.end>=a?(b=c,!0):!1}),b},getAnnotationNode:function(a){return document.getElementById("wavesurfer-alignable-"+a.id)}},WaveSurfer.util.extend(WaveSurfer.ELAN,WaveSurfer.Observer); \ No newline at end of file diff --git a/static/wavesurfer.js/dist/plugin/wavesurfer.microphone.min.js b/static/wavesurfer.js/dist/plugin/wavesurfer.microphone.min.js new file mode 100644 index 0000000..5efa6d6 --- /dev/null +++ b/static/wavesurfer.js/dist/plugin/wavesurfer.microphone.min.js @@ -0,0 +1,3 @@ +/*! wavesurfer.js 1.0.47 +* https://github.com/katspaugh/wavesurfer.js +* @license CC-BY-3.0 */!function(a,b){"function"==typeof define&&define.amd?define(["wavesurfer"],b):a.WaveSurfer.Microphone=b(a.WaveSurfer)}(this,function(a){"use strict";return a.Microphone={init:function(a){this.params=a;this.wavesurfer=a.wavesurfer;if(!this.wavesurfer)throw new Error("No WaveSurfer instance provided");this.active=!1,this.paused=!1,this.reloadBufferFunction=this.reloadBuffer.bind(this),this.getUserMedia=(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia).bind(navigator),this.bufferSize=this.params.bufferSize||4096,this.numberOfInputChannels=this.params.numberOfInputChannels||1,this.numberOfOutputChannels=this.params.numberOfOutputChannels||1,this.micContext=this.wavesurfer.backend.getAudioContext()},start:function(){this.getUserMedia({video:!1,audio:!0},this.gotStream.bind(this),this.deviceError.bind(this))},togglePlay:function(){this.active?(this.paused=!this.paused,this.paused?this.pause():this.play()):this.start()},play:function(){this.paused=!1,this.connect()},pause:function(){this.paused=!0,this.disconnect()},stop:function(){this.active&&(this.stopDevice(),this.wavesurfer.empty())},stopDevice:function(){this.active=!1,this.disconnect(),this.stream&&this.stream.stop()},connect:function(){void 0!==this.stream&&(this.mediaStreamSource=this.micContext.createMediaStreamSource(this.stream),this.levelChecker=this.micContext.createScriptProcessor(this.bufferSize,this.numberOfInputChannels,this.numberOfOutputChannels),this.mediaStreamSource.connect(this.levelChecker),this.levelChecker.connect(this.micContext.destination),this.levelChecker.onaudioprocess=this.reloadBufferFunction)},disconnect:function(){void 0!==this.mediaStreamSource&&this.mediaStreamSource.disconnect(),void 0!==this.levelChecker&&(this.levelChecker.disconnect(),this.levelChecker.onaudioprocess=void 0)},reloadBuffer:function(a){this.paused||(this.wavesurfer.empty(),this.wavesurfer.loadDecodedBuffer(a.inputBuffer))},gotStream:function(a){this.stream=a,this.active=!0,this.play(),this.fireEvent("deviceReady",a)},destroy:function(a){this.paused=!0,this.stop()},deviceError:function(a){this.fireEvent("deviceError",a)}},a.util.extend(a.Microphone,a.Observer),a.Microphone}); \ No newline at end of file diff --git a/static/wavesurfer.js/dist/plugin/wavesurfer.minimap.min.js b/static/wavesurfer.js/dist/plugin/wavesurfer.minimap.min.js new file mode 100644 index 0000000..03f0784 --- /dev/null +++ b/static/wavesurfer.js/dist/plugin/wavesurfer.minimap.min.js @@ -0,0 +1,3 @@ +/*! wavesurfer.js 1.0.47 +* https://github.com/katspaugh/wavesurfer.js +* @license CC-BY-3.0 */"use strict";WaveSurfer.Minimap=WaveSurfer.util.extend({},WaveSurfer.Drawer,WaveSurfer.Drawer.Canvas,{init:function(a,b){this.wavesurfer=a,this.container=this.wavesurfer.drawer.container,this.lastPos=this.wavesurfer.drawer.lastPos,this.params=a.util.extend({},this.wavesurfer.drawer.params,{showRegions:!1,showOverview:!1,overviewBorderColor:"green",overviewBorderSize:2},b,{scrollParent:!1,fillParent:!0}),this.width=0,this.height=this.params.height*this.params.pixelRatio,this.createWrapper(),this.createElements(),WaveSurfer.Regions&&this.params.showRegions&&this.regions(),this.bindWaveSurferEvents(),this.bindMinimapEvents()},regions:function(){var a=this;this.regions={},this.wavesurfer.on("region-created",function(b){a.regions[b.id]=b,a.renderRegions()}),this.wavesurfer.on("region-updated",function(b){a.regions[b.id]=b,a.renderRegions()}),this.wavesurfer.on("region-removed",function(b){delete a.regions[b.id],a.renderRegions()})},renderRegions:function(){for(var a=this,b=this.wrapper.querySelectorAll("region"),c=0;ca?this.overviewPosition=0:a+this.overviewWidtha&&(this.end=a,this.start=a-(this.end-this.start)),null!=this.minLength&&(this.end=Math.max(this.start+this.minLength,this.end)),null!=this.maxLength&&(this.end=Math.min(this.start+this.maxLength,this.end)),this.style(this.element,{left:~~(this.start/a*b)+"px",width:~~((this.end-this.start)/a*b)+"px",backgroundColor:this.color,cursor:this.drag?"move":"default"});for(var c in this.attributes)this.element.setAttribute("data-region-"+c,this.attributes[c]);this.element.title=this.formatTime(this.start,this.end)},bindInOut:function(){var a=this,b=function(){a.firedIn=!1,a.firedOut=!1},c=function(b){!a.firedIn&&a.start<=b&&a.end>b&&(a.firedIn=!0,a.fireEvent("in"),a.wavesurfer.fireEvent("region-in",a)),!a.firedOut&&a.firedIn&&a.end<=Math.round(100*b)/100&&(a.firedOut=!0,a.fireEvent("out"),a.wavesurfer.fireEvent("region-out",a))};this.wavesurfer.on("play",b),this.wavesurfer.backend.on("audioprocess",c),this.on("remove",function(){a.wavesurfer.un("play",b),a.wavesurfer.backend.un("audioprocess",c)}),this.on("out",function(){a.loop&&a.wavesurfer.play(a.start)})},bindEvents:function(){var a=this;this.element.addEventListener("mouseenter",function(b){a.fireEvent("mouseenter",b),a.wavesurfer.fireEvent("region-mouseenter",a,b)}),this.element.addEventListener("mouseleave",function(b){a.fireEvent("mouseleave",b),a.wavesurfer.fireEvent("region-mouseleave",a,b)}),this.element.addEventListener("click",function(b){b.preventDefault(),a.fireEvent("click",b),a.wavesurfer.fireEvent("region-click",a,b)}),this.element.addEventListener("dblclick",function(b){b.stopPropagation(),b.preventDefault(),a.fireEvent("dblclick",b),a.wavesurfer.fireEvent("region-dblclick",a,b)}),(this.drag||this.resize)&&function(){var b,c,d,e=a.wavesurfer.getDuration(),f=function(f){f.stopPropagation(),d=a.wavesurfer.drawer.handleEvent(f)*e,"handle"==f.target.tagName.toLowerCase()?c=f.target.classList.contains("wavesurfer-handle-start")?"start":"end":b=!0},g=function(d){(b||c)&&(b=!1,c=!1,d.stopPropagation(),d.preventDefault(),a.fireEvent("update-end",d),a.wavesurfer.fireEvent("region-update-end",a,d))},h=function(f){if(b||c){var g=a.wavesurfer.drawer.handleEvent(f)*e,h=g-d;d=g,a.drag&&b&&a.onDrag(h),a.resize&&c&&a.onResize(h,c)}};a.element.addEventListener("mousedown",f),a.wrapper.addEventListener("mousemove",h),document.body.addEventListener("mouseup",g),a.on("remove",function(){document.body.removeEventListener("mouseup",g),a.wrapper.removeEventListener("mousemove",h)}),a.wavesurfer.on("destroy",function(){document.body.removeEventListener("mouseup",g)})}()},onDrag:function(a){this.update({start:this.start+a,end:this.end+a})},onResize:function(a,b){"start"==b?this.update({start:Math.min(this.start+a,this.end),end:Math.max(this.start+a,this.end)}):this.update({start:Math.min(this.end+a,this.start),end:Math.max(this.end+a,this.start)})}},WaveSurfer.util.extend(WaveSurfer.Region,WaveSurfer.Observer),WaveSurfer.initRegions=function(){this.regions||(this.regions=Object.create(WaveSurfer.Regions),this.regions.init(this))},WaveSurfer.addRegion=function(a){return this.initRegions(),this.regions.add(a)},WaveSurfer.clearRegions=function(){this.regions&&this.regions.clear()},WaveSurfer.enableDragSelection=function(a){this.initRegions(),this.regions.enableDragSelection(a)}; \ No newline at end of file diff --git a/static/wavesurfer.js/dist/plugin/wavesurfer.spectrogram.min.js b/static/wavesurfer.js/dist/plugin/wavesurfer.spectrogram.min.js new file mode 100644 index 0000000..976dad7 --- /dev/null +++ b/static/wavesurfer.js/dist/plugin/wavesurfer.spectrogram.min.js @@ -0,0 +1,3 @@ +/*! wavesurfer.js 1.0.47 +* https://github.com/katspaugh/wavesurfer.js +* @license CC-BY-3.0 */"use strict";WaveSurfer.Spectrogram={init:function(a){this.params=a;var b=this.wavesurfer=a.wavesurfer;if(!this.wavesurfer)throw Error("No WaveSurfer instance provided");this.frequenciesDataUrl=a.frequenciesDataUrl;var c=this.drawer=this.wavesurfer.drawer;if(this.buffer=this.wavesurfer.backend.buffer,this.container="string"==typeof a.container?document.querySelector(a.container):a.container,!this.container)throw Error("No container for WaveSurfer spectrogram");this.width=c.width,this.pixelRatio=this.params.pixelRatio||b.params.pixelRatio,this.fftSamples=this.params.fftSamples||b.params.fftSamples||512,this.height=this.fftSamples/2,this.createWrapper(),this.createCanvas(),this.render(),b.drawer.wrapper.onscroll=this.updateScroll.bind(this),b.on("destroy",this.destroy.bind(this))},destroy:function(){this.unAll(),this.wrapper&&(this.wrapper.parentNode.removeChild(this.wrapper),this.wrapper=null)},createWrapper:function(){var a=this.container.querySelector("spectrogram");a&&this.container.removeChild(a);var b=this.wavesurfer.params;this.wrapper=this.container.appendChild(document.createElement("spectrogram")),this.drawer.style(this.wrapper,{display:"block",position:"relative",userSelect:"none",webkitUserSelect:"none",height:this.height+"px"}),(b.fillParent||b.scrollParent)&&this.drawer.style(this.wrapper,{width:"100%",overflowX:"hidden",overflowY:"hidden"});var c=this;this.wrapper.addEventListener("click",function(a){a.preventDefault();var b="offsetX"in a?a.offsetX:a.layerX;c.fireEvent("click",b/c.scrollWidth||0)})},createCanvas:function(){var a=this.canvas=this.wrapper.appendChild(document.createElement("canvas"));this.spectrCc=a.getContext("2d"),this.wavesurfer.drawer.style(a,{position:"absolute",zIndex:4})},render:function(){this.updateCanvasStyle(),this.frequenciesDataUrl?this.loadFrequenciesData(this.frequenciesDataUrl):this.getFrequencies(this.drawSpectrogram)},updateCanvasStyle:function(){var a=Math.round(this.width/this.pixelRatio)+"px";this.canvas.width=this.width,this.canvas.height=this.height,this.canvas.style.width=a},drawSpectrogram:function(a,b){for(var c=(b.spectrCc,b.wavesurfer.backend.getDuration(),b.height),d=b.resample(a),e=2/b.buffer.numberOfChannels,f=0;ff;f++){for(var g=new Array(a[0].length),h=0;h=j||i>=l?0:Math.min(Math.max(j,k),Math.max(l,i))-Math.max(Math.min(j,k),Math.min(l,i));if(m>0)for(var n=0;n0){var f=0,g=0,h=parseInt(c,10)+1,i=function(a){if(a/60>1){var b=parseInt(a/60),a=parseInt(a%60);return a=10>a?"0"+a:a,""+b+":"+a}return a};if(1*e>=25)var j=1,k=10,l=5;else if(5*e>=25)var j=5,k=6,l=2;else if(15*e>=25)var j=15,k=4,l=2;else var j=60,k=4,l=2;for(var m=this.height-4,n=this.height*(this.notchPercentHeight/100)-4,o=this.fontSize*b.pixelRatio,p=0;h/j>p;p++)p%k==0?(this.timeCc.fillStyle=this.primaryColor,this.timeCc.fillRect(f,0,1,m),this.timeCc.font=o+"px "+this.fontFamily,this.timeCc.fillStyle=this.primaryFontColor,this.timeCc.fillText(i(g),f+5,m)):p%l==0?(this.timeCc.fillStyle=this.secondaryColor,this.timeCc.fillRect(f,0,1,m),this.timeCc.font=o+"px "+this.fontFamily,this.timeCc.fillStyle=this.secondaryFontColor,this.timeCc.fillText(i(g),f+5,m)):(this.timeCc.fillStyle=this.secondaryColor,this.timeCc.fillRect(f,0,1,n)),g+=j,f+=e*j}},updateScroll:function(){this.wrapper.scrollLeft=this.drawer.wrapper.scrollLeft}},a.util.extend(a.Timeline,a.Observer),a.Timeline}); \ No newline at end of file diff --git a/static/wavesurfer.js/dist/wavesurfer.min.js b/static/wavesurfer.js/dist/wavesurfer.min.js new file mode 100644 index 0000000..510616e --- /dev/null +++ b/static/wavesurfer.js/dist/wavesurfer.min.js @@ -0,0 +1,5 @@ +/*! wavesurfer.js 1.0.47 +* https://github.com/katspaugh/wavesurfer.js +* @license CC-BY-3.0 */ +"use strict";var WaveSurfer={defaultParams:{height:128,waveColor:"#999",progressColor:"#555",cursorColor:"#333",cursorWidth:1,skipLength:2,minPxPerSec:20,pixelRatio:window.devicePixelRatio,fillParent:!0,scrollParent:!1,hideScrollbar:!1,normalize:!1,audioContext:null,container:null,dragSelection:!0,loopSelection:!0,audioRate:1,interact:!0,splitChannels:!1,mediaContainer:null,mediaControls:!1,renderer:"Canvas",backend:"WebAudio",mediaType:"audio"},init:function(a){if(this.params=WaveSurfer.util.extend({},this.defaultParams,a),this.container="string"==typeof a.container?document.querySelector(this.params.container):this.params.container,!this.container)throw new Error("Container element not found");if(null==this.params.mediaContainer?this.mediaContainer=this.container:"string"==typeof this.params.mediaContainer?this.mediaContainer=document.querySelector(this.params.mediaContainer):this.mediaContainer=this.params.mediaContainer,!this.mediaContainer)throw new Error("Media Container element not found");this.savedVolume=0,this.isMuted=!1,this.tmpEvents=[],this.createDrawer(),this.createBackend()},createDrawer:function(){var a=this;this.drawer=Object.create(WaveSurfer.Drawer[this.params.renderer]),this.drawer.init(this.container,this.params),this.drawer.on("redraw",function(){a.drawBuffer(),a.drawer.progress(a.backend.getPlayedPercents())}),this.drawer.on("click",function(b,c){setTimeout(function(){a.seekTo(c)},0)}),this.drawer.on("scroll",function(b){a.fireEvent("scroll",b)})},createBackend:function(){var a=this;this.backend&&this.backend.destroy(),"AudioElement"==this.params.backend&&(this.params.backend="MediaElement"),"WebAudio"!=this.params.backend||WaveSurfer.WebAudio.supportsWebAudio()||(this.params.backend="MediaElement"),this.backend=Object.create(WaveSurfer[this.params.backend]),this.backend.init(this.params),this.backend.on("finish",function(){a.fireEvent("finish")}),this.backend.on("play",function(){a.fireEvent("play")}),this.backend.on("pause",function(){a.fireEvent("pause")}),this.backend.on("audioprocess",function(b){a.drawer.progress(a.backend.getPlayedPercents()),a.fireEvent("audioprocess",b)})},getDuration:function(){return this.backend.getDuration()},getCurrentTime:function(){return this.backend.getCurrentTime()},play:function(a,b){this.backend.play(a,b)},pause:function(){this.backend.pause()},playPause:function(){this.backend.isPaused()?this.play():this.pause()},isPlaying:function(){return!this.backend.isPaused()},skipBackward:function(a){this.skip(-a||-this.params.skipLength)},skipForward:function(a){this.skip(a||this.params.skipLength)},skip:function(a){var b=this.getCurrentTime()||0,c=this.getDuration()||1;b=Math.max(0,Math.min(c,b+(a||0))),this.seekAndCenter(b/c)},seekAndCenter:function(a){this.seekTo(a),this.drawer.recenter(a)},seekTo:function(a){var b=this.backend.isPaused(),c=this.params.scrollParent;b&&(this.params.scrollParent=!1),this.backend.seekTo(a*this.getDuration()),this.drawer.progress(this.backend.getPlayedPercents()),b||(this.backend.pause(),this.backend.play()),this.params.scrollParent=c,this.fireEvent("seek",a)},stop:function(){this.pause(),this.seekTo(0),this.drawer.progress(0)},setVolume:function(a){this.backend.setVolume(a)},setPlaybackRate:function(a){this.backend.setPlaybackRate(a)},toggleMute:function(){this.isMuted?(this.backend.setVolume(this.savedVolume),this.isMuted=!1):(this.savedVolume=this.backend.getVolume(),this.backend.setVolume(0),this.isMuted=!0)},toggleScroll:function(){this.params.scrollParent=!this.params.scrollParent,this.drawBuffer()},toggleInteraction:function(){this.params.interact=!this.params.interact},drawBuffer:function(){var a=Math.round(this.getDuration()*this.params.minPxPerSec*this.params.pixelRatio),b=this.drawer.getWidth(),c=a;this.params.fillParent&&(!this.params.scrollParent||b>a)&&(c=b);var d=this.backend.getPeaks(c);this.drawer.drawPeaks(d,c),this.fireEvent("redraw",d,c)},zoom:function(a){this.params.minPxPerSec=a,this.params.scrollParent=!0,this.drawBuffer(),this.seekAndCenter(this.getCurrentTime()/this.getDuration()),this.fireEvent("zoom",a)},loadArrayBuffer:function(a){this.decodeArrayBuffer(a,function(a){this.loadDecodedBuffer(a)}.bind(this))},loadDecodedBuffer:function(a){this.backend.load(a),this.drawBuffer(),this.fireEvent("ready")},loadBlob:function(a){var b=this,c=new FileReader;c.addEventListener("progress",function(a){b.onProgress(a)}),c.addEventListener("load",function(a){b.loadArrayBuffer(a.target.result)}),c.addEventListener("error",function(){b.fireEvent("error","Error reading file")}),c.readAsArrayBuffer(a),this.empty()},load:function(a,b){switch(this.params.backend){case"WebAudio":return this.loadBuffer(a);case"MediaElement":return this.loadMediaElement(a,b)}},loadBuffer:function(a){return this.empty(),this.getArrayBuffer(a,this.loadArrayBuffer.bind(this))},loadMediaElement:function(a,b){this.empty(),this.backend.load(a,this.mediaContainer,b),this.tmpEvents.push(this.backend.once("canplay",function(){this.drawBuffer(),this.fireEvent("ready")}.bind(this)),this.backend.once("error",function(a){this.fireEvent("error",a)}.bind(this))),!b&&this.backend.supportsWebAudio()&&this.getArrayBuffer(a,function(a){this.decodeArrayBuffer(a,function(a){this.backend.buffer=a,this.drawBuffer()}.bind(this))}.bind(this))},decodeArrayBuffer:function(a,b){this.backend.decodeArrayBuffer(a,this.fireEvent.bind(this,"decoded"),this.fireEvent.bind(this,"error","Error decoding audiobuffer")),this.tmpEvents.push(this.once("decoded",b))},getArrayBuffer:function(a,b){var c=this,d=WaveSurfer.util.ajax({url:a,responseType:"arraybuffer"});return this.tmpEvents.push(d.on("progress",function(a){c.onProgress(a)}),d.on("success",b),d.on("error",function(a){c.fireEvent("error","XHR error: "+a.target.statusText)})),d},onProgress:function(a){if(a.lengthComputable)var b=a.loaded/a.total;else b=a.loaded/(a.loaded+1e6);this.fireEvent("loading",Math.round(100*b),a.target)},exportPCM:function(a,b,c){a=a||1024,b=b||1e4,c=c||!1;var d=this.backend.getPeaks(a,b),e=[].map.call(d,function(a){return Math.round(a*b)/b}),f=JSON.stringify(e);return c||window.open("data:application/json;charset=utf-8,"+encodeURIComponent(f)),f},clearTmpEvents:function(){this.tmpEvents.forEach(function(a){a.un()})},empty:function(){this.backend.isPaused()||(this.stop(),this.backend.disconnectSource()),this.clearTmpEvents(),this.drawer.progress(0),this.drawer.setWidth(0),this.drawer.drawPeaks({length:this.drawer.getWidth()},0)},destroy:function(){this.fireEvent("destroy"),this.clearTmpEvents(),this.unAll(),this.backend.destroy(),this.drawer.destroy()}};WaveSurfer.create=function(a){var b=Object.create(WaveSurfer);return b.init(a),b},WaveSurfer.util={extend:function(a){var b=Array.prototype.slice.call(arguments,1);return b.forEach(function(b){Object.keys(b).forEach(function(c){a[c]=b[c]})}),a},getId:function(){return"wavesurfer_"+Math.random().toString(32).substring(2)},ajax:function(a){var b=Object.create(WaveSurfer.Observer),c=new XMLHttpRequest,d=!1;return c.open(a.method||"GET",a.url,!0),c.responseType=a.responseType||"json",c.addEventListener("progress",function(a){b.fireEvent("progress",a),a.lengthComputable&&a.loaded==a.total&&(d=!0)}),c.addEventListener("load",function(a){d||b.fireEvent("progress",a),b.fireEvent("load",a),200==c.status||206==c.status?b.fireEvent("success",c.response,a):b.fireEvent("error",a)}),c.addEventListener("error",function(a){b.fireEvent("error",a)}),c.send(),b.xhr=c,b}},WaveSurfer.Observer={on:function(a,b){this.handlers||(this.handlers={});var c=this.handlers[a];return c||(c=this.handlers[a]=[]),c.push(b),{name:a,callback:b,un:this.un.bind(this,a,b)}},un:function(a,b){if(this.handlers){var c=this.handlers[a];if(c)if(b)for(var d=c.length-1;d>=0;d--)c[d]==b&&c.splice(d,1);else c.length=0}},unAll:function(){this.handlers=null},once:function(a,b){var c=this,d=function(){b.apply(this,arguments),setTimeout(function(){c.un(a,d)},0)};return this.on(a,d)},fireEvent:function(a){if(this.handlers){var b=this.handlers[a],c=Array.prototype.slice.call(arguments,1);b&&b.forEach(function(a){a.apply(null,c)})}}},WaveSurfer.util.extend(WaveSurfer,WaveSurfer.Observer),WaveSurfer.WebAudio={scriptBufferSize:256,PLAYING_STATE:0,PAUSED_STATE:1,FINISHED_STATE:2,supportsWebAudio:function(){return!(!window.AudioContext&&!window.webkitAudioContext)},getAudioContext:function(){return WaveSurfer.WebAudio.audioContext||(WaveSurfer.WebAudio.audioContext=new(window.AudioContext||window.webkitAudioContext)),WaveSurfer.WebAudio.audioContext},getOfflineAudioContext:function(a){return WaveSurfer.WebAudio.offlineAudioContext||(WaveSurfer.WebAudio.offlineAudioContext=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,2,a)),WaveSurfer.WebAudio.offlineAudioContext},init:function(a){this.params=a,this.ac=a.audioContext||this.getAudioContext(),this.lastPlay=this.ac.currentTime,this.startPosition=0,this.scheduledPause=null,this.states=[Object.create(WaveSurfer.WebAudio.state.playing),Object.create(WaveSurfer.WebAudio.state.paused),Object.create(WaveSurfer.WebAudio.state.finished)],this.createVolumeNode(),this.createScriptNode(),this.createAnalyserNode(),this.setState(this.PAUSED_STATE),this.setPlaybackRate(this.params.audioRate)},disconnectFilters:function(){this.filters&&(this.filters.forEach(function(a){a&&a.disconnect()}),this.filters=null,this.analyser.connect(this.gainNode))},setState:function(a){this.state!==this.states[a]&&(this.state=this.states[a],this.state.init.call(this))},setFilter:function(){this.setFilters([].slice.call(arguments))},setFilters:function(a){this.disconnectFilters(),a&&a.length&&(this.filters=a,this.analyser.disconnect(),a.reduce(function(a,b){return a.connect(b),b},this.analyser).connect(this.gainNode))},createScriptNode:function(){this.ac.createScriptProcessor?this.scriptNode=this.ac.createScriptProcessor(this.scriptBufferSize):this.scriptNode=this.ac.createJavaScriptNode(this.scriptBufferSize),this.scriptNode.connect(this.ac.destination)},addOnAudioProcess:function(){var a=this;this.scriptNode.onaudioprocess=function(){var b=a.getCurrentTime();b>=a.getDuration()?(a.setState(a.FINISHED_STATE),a.fireEvent("pause")):b>=a.scheduledPause?(a.setState(a.PAUSED_STATE),a.fireEvent("pause")):a.state===a.states[a.PLAYING_STATE]&&a.fireEvent("audioprocess",b)}},removeOnAudioProcess:function(){this.scriptNode.onaudioprocess=null},createAnalyserNode:function(){this.analyser=this.ac.createAnalyser(),this.analyser.connect(this.gainNode)},createVolumeNode:function(){this.ac.createGain?this.gainNode=this.ac.createGain():this.gainNode=this.ac.createGainNode(),this.gainNode.connect(this.ac.destination)},setVolume:function(a){this.gainNode.gain.value=a},getVolume:function(){return this.gainNode.gain.value},decodeArrayBuffer:function(a,b,c){this.offlineAc||(this.offlineAc=this.getOfflineAudioContext(this.ac?this.ac.sampleRate:44100)),this.offlineAc.decodeAudioData(a,function(a){b(a)}.bind(this),c)},getPeaks:function(a){for(var b=this.buffer.length/a,c=~~(b/10)||1,d=this.buffer.numberOfChannels,e=[],f=[],g=0;d>g;g++)for(var h=e[g]=[],i=this.buffer.getChannelData(g),j=0;a>j;j++){for(var k=~~(j*b),l=~~(k+b),m=i[0],n=i[0],o=k;l>o;o+=c){var p=i[o];p>n&&(n=p),m>p&&(m=p)}h[2*j]=n,h[2*j+1]=m,(0==g||n>f[2*j])&&(f[2*j]=n),(0==g||m=this.getDuration()&&(a=0)),null==b&&(b=this.getDuration()),this.startPosition=a,this.lastPlay=this.ac.currentTime,this.state===this.states[this.FINISHED_STATE]&&this.setState(this.PAUSED_STATE),{start:a,end:b}},getPlayedTime:function(){return(this.ac.currentTime-this.lastPlay)*this.playbackRate},play:function(a,b){this.createSource();var c=this.seekTo(a,b);a=c.start,b=c.end,this.scheduledPause=b,this.source.start(0,a,b-a),this.setState(this.PLAYING_STATE),this.fireEvent("play")},pause:function(){this.scheduledPause=null,this.startPosition+=this.getPlayedTime(),this.source&&this.source.stop(0),this.setState(this.PAUSED_STATE),this.fireEvent("pause")},getCurrentTime:function(){return this.state.getCurrentTime.call(this)},setPlaybackRate:function(a){a=a||1,this.isPaused()?this.playbackRate=a:(this.pause(),this.playbackRate=a,this.play())}},WaveSurfer.WebAudio.state={},WaveSurfer.WebAudio.state.playing={init:function(){this.addOnAudioProcess()},getPlayedPercents:function(){var a=this.getDuration();return this.getCurrentTime()/a||0},getCurrentTime:function(){return this.startPosition+this.getPlayedTime()}},WaveSurfer.WebAudio.state.paused={init:function(){this.removeOnAudioProcess()},getPlayedPercents:function(){var a=this.getDuration();return this.getCurrentTime()/a||0},getCurrentTime:function(){return this.startPosition}},WaveSurfer.WebAudio.state.finished={init:function(){this.removeOnAudioProcess(),this.fireEvent("finish")},getPlayedPercents:function(){return 1},getCurrentTime:function(){return this.getDuration()}},WaveSurfer.util.extend(WaveSurfer.WebAudio,WaveSurfer.Observer),WaveSurfer.MediaElement=Object.create(WaveSurfer.WebAudio),WaveSurfer.util.extend(WaveSurfer.MediaElement,{init:function(a){this.params=a,this.media={currentTime:0,duration:0,paused:!0,playbackRate:1,play:function(){},pause:function(){}},this.mediaType=a.mediaType.toLowerCase(),this.elementPosition=a.elementPosition},load:function(a,b,c){var d=this,e=document.createElement(this.mediaType);e.controls=this.params.mediaControls,e.autoplay=!1,e.preload="auto",e.src=a,e.style.width="100%",e.addEventListener("error",function(){d.fireEvent("error","Error loading media element")}),e.addEventListener("canplay",function(){d.fireEvent("canplay")}),e.addEventListener("ended",function(){d.fireEvent("finish")}),e.addEventListener("timeupdate",function(){d.fireEvent("audioprocess",d.getCurrentTime())});var f=b.querySelector(this.mediaType);f&&b.removeChild(f),b.appendChild(e),this.media=e,this.peaks=c,this.onPlayEnd=null,this.buffer=null,this.setPlaybackRate(this.playbackRate)},isPaused:function(){return!this.media||this.media.paused},getDuration:function(){var a=this.media.duration;return a>=1/0&&(a=this.media.seekable.end()),a},getCurrentTime:function(){return this.media&&this.media.currentTime},getPlayedPercents:function(){return this.getCurrentTime()/this.getDuration()||0},setPlaybackRate:function(a){this.playbackRate=a||1,this.media.playbackRate=this.playbackRate},seekTo:function(a){null!=a&&(this.media.currentTime=a),this.clearPlayEnd()},play:function(a,b){this.seekTo(a),this.media.play(),b&&this.setPlayEnd(b),this.fireEvent("play")},pause:function(){this.media&&this.media.pause(),this.clearPlayEnd(),this.fireEvent("pause")},setPlayEnd:function(a){var b=this;this.onPlayEnd=function(c){c>=a&&(b.pause(),b.seekTo(a))},this.on("audioprocess",this.onPlayEnd)},clearPlayEnd:function(){this.onPlayEnd&&(this.un("audioprocess",this.onPlayEnd),this.onPlayEnd=null)},getPeaks:function(a){return this.buffer?WaveSurfer.WebAudio.getPeaks.call(this,a):this.peaks||[]},getVolume:function(){return this.media.volume},setVolume:function(a){this.media.volume=a},destroy:function(){this.pause(),this.unAll(),this.media&&this.media.parentNode&&this.media.parentNode.removeChild(this.media),this.media=null}}),WaveSurfer.AudioElement=WaveSurfer.MediaElement,WaveSurfer.Drawer={init:function(a,b){this.container=a,this.params=b,this.width=0,this.height=b.height*this.params.pixelRatio,this.lastPos=0,this.createWrapper(),this.createElements()},createWrapper:function(){this.wrapper=this.container.appendChild(document.createElement("wave")),this.style(this.wrapper,{display:"block",position:"relative",userSelect:"none",webkitUserSelect:"none",height:this.params.height+"px"}),(this.params.fillParent||this.params.scrollParent)&&this.style(this.wrapper,{width:"100%",overflowX:this.params.hideScrollbar?"hidden":"auto",overflowY:"hidden"}),this.setupWrapperEvents()},handleEvent:function(a){a.preventDefault();var b=this.wrapper.getBoundingClientRect();return(a.clientX-b.left+this.wrapper.scrollLeft)/this.wrapper.scrollWidth||0},setupWrapperEvents:function(){var a=this;this.wrapper.addEventListener("click",function(b){var c=a.wrapper.offsetHeight-a.wrapper.clientHeight;if(0!=c){var d=a.wrapper.getBoundingClientRect();if(b.clientY>=d.bottom-c)return}a.params.interact&&a.fireEvent("click",b,a.handleEvent(b))}),this.wrapper.addEventListener("scroll",function(b){a.fireEvent("scroll",b)})},drawPeaks:function(a,b){this.resetScroll(),this.setWidth(b),this.params.barWidth?this.drawBars(a):this.drawWave(a)},style:function(a,b){return Object.keys(b).forEach(function(c){a.style[c]!==b[c]&&(a.style[c]=b[c])}),a},resetScroll:function(){null!==this.wrapper&&(this.wrapper.scrollLeft=0)},recenter:function(a){var b=this.wrapper.scrollWidth*a;this.recenterOnPosition(b,!0)},recenterOnPosition:function(a,b){var c=this.wrapper.scrollLeft,d=~~(this.wrapper.clientWidth/2),e=a-d,f=e-c,g=this.wrapper.scrollWidth-this.wrapper.clientWidth;if(0!=g){if(!b&&f>=-d&&d>f){var h=5;f=Math.max(-h,Math.min(h,f)),e=c+f}e=Math.max(0,Math.min(g,e)),e!=c&&(this.wrapper.scrollLeft=e)}},getWidth:function(){return Math.round(this.container.clientWidth*this.params.pixelRatio)},setWidth:function(a){a!=this.width&&(this.width=a,this.params.fillParent||this.params.scrollParent?this.style(this.wrapper,{width:""}):this.style(this.wrapper,{width:~~(this.width/this.params.pixelRatio)+"px"}),this.updateSize())},setHeight:function(a){a!=this.height&&(this.height=a,this.style(this.wrapper,{height:~~(this.height/this.params.pixelRatio)+"px"}),this.updateSize())},progress:function(a){var b=1/this.params.pixelRatio,c=Math.round(a*this.width)*b;if(c=b){if(this.lastPos=c,this.params.scrollParent){var d=~~(this.wrapper.scrollWidth*a);this.recenterOnPosition(d)}this.updateProgress(a)}},destroy:function(){this.unAll(),this.wrapper&&(this.container.removeChild(this.wrapper),this.wrapper=null)},createElements:function(){},updateSize:function(){},drawWave:function(a,b){},clearWave:function(){},updateProgress:function(a){}},WaveSurfer.util.extend(WaveSurfer.Drawer,WaveSurfer.Observer),WaveSurfer.Drawer.Canvas=Object.create(WaveSurfer.Drawer),WaveSurfer.util.extend(WaveSurfer.Drawer.Canvas,{createElements:function(){var a=this.wrapper.appendChild(this.style(document.createElement("canvas"),{position:"absolute",zIndex:1,left:0,top:0,bottom:0}));if(this.waveCc=a.getContext("2d"),this.progressWave=this.wrapper.appendChild(this.style(document.createElement("wave"),{position:"absolute",zIndex:2,left:0,top:0,bottom:0,overflow:"hidden",width:"0",display:"none",boxSizing:"border-box",borderRightStyle:"solid",borderRightWidth:this.params.cursorWidth+"px",borderRightColor:this.params.cursorColor})),this.params.waveColor!=this.params.progressColor){var b=this.progressWave.appendChild(document.createElement("canvas"));this.progressCc=b.getContext("2d")}},updateSize:function(){var a=Math.round(this.width/this.params.pixelRatio);this.waveCc.canvas.width=this.width,this.waveCc.canvas.height=this.height,this.style(this.waveCc.canvas,{width:a+"px"}),this.style(this.progressWave,{display:"block"}),this.progressCc&&(this.progressCc.canvas.width=this.width,this.progressCc.canvas.height=this.height,this.style(this.progressCc.canvas,{width:a+"px"})),this.clearWave()},clearWave:function(){this.waveCc.clearRect(0,0,this.width,this.height),this.progressCc&&this.progressCc.clearRect(0,0,this.width,this.height)},drawBars:function(a,b){if(a[0]instanceof Array){var c=a;if(this.params.splitChannels)return this.setHeight(c.length*this.params.height*this.params.pixelRatio),void c.forEach(this.drawBars,this);a=c[0]}var d=.5/this.params.pixelRatio,e=this.width,f=this.params.height*this.params.pixelRatio,g=f*b||0,h=f/2,i=~~(a.length/2),j=this.params.barWidth*this.params.pixelRatio,k=Math.max(this.params.pixelRatio,~~(j/2)),l=j+k,m=1;if(this.params.normalize){var n,o;o=Math.max.apply(Math,a),n=Math.min.apply(Math,a),m=o,-n>m&&(m=-n)}var p=i/e;this.waveCc.fillStyle=this.params.waveColor,this.progressCc&&(this.progressCc.fillStyle=this.params.progressColor),[this.waveCc,this.progressCc].forEach(function(b){if(b)if(this.params.reflection)for(var c=0;e>c;c+=l){var f=Math.round(a[Math.floor(2*c*p)]/m*h);b.fillRect(c+d,h-f+g,j+d,2*f)}else{for(var c=0;e>c;c+=l){var f=Math.round(a[Math.floor(2*c*p)]/m*h);b.fillRect(c+d,h-f+g,j+d,f)}for(var c=0;e>c;c+=l){var f=Math.round(a[2*c*p+1]/m*h);b.fillRect(c+d,h-f+g,j+d,f)}}},this)},drawWave:function(a,b){if(a[0]instanceof Array){var c=a;if(this.params.splitChannels)return this.setHeight(c.length*this.params.height*this.params.pixelRatio),void c.forEach(this.drawWave,this);a=c[0]}var d=.5/this.params.pixelRatio,e=this.params.height*this.params.pixelRatio,f=e*b||0,g=e/2,h=~~(a.length/2),i=1;this.params.fillParent&&this.width!=h&&(i=this.width/h);var j=1;if(this.params.normalize){var k,l;l=Math.max.apply(Math,a),k=Math.min.apply(Math,a),j=l,-k>j&&(j=-k)}this.waveCc.fillStyle=this.params.waveColor,this.progressCc&&(this.progressCc.fillStyle=this.params.progressColor),[this.waveCc,this.progressCc].forEach(function(b){if(b){b.beginPath(),b.moveTo(d,g+f);for(var c=0;h>c;c++){var e=Math.round(a[2*c]/j*g);b.lineTo(c*i+d,g-e+f)}for(var c=h-1;c>=0;c--){var e=Math.round(a[2*c+1]/j*g);b.lineTo(c*i+d,g-e+f)}b.closePath(),b.fill(),b.fillRect(0,g+f-d,this.width,d)}},this)},updateProgress:function(a){var b=Math.round(this.width*a)/this.params.pixelRatio;this.style(this.progressWave,{width:b+"px"})}}),function(){var a=function(){var a=document.querySelectorAll("wavesurfer");Array.prototype.forEach.call(a,function(a){var b=WaveSurfer.util.extend({container:a,backend:"MediaElement",mediaControls:!0},a.dataset);a.style.display="block";var c=WaveSurfer.create(b);if(a.dataset.peaks)var d=JSON.parse(a.dataset.peaks);c.load(a.dataset.url,d)})};"complete"===document.readyState?a():window.addEventListener("load",a)}(); +//# sourceMappingURL=wavesurfer.min.js.map \ No newline at end of file diff --git a/static/wavesurfer.js/dist/wavesurfer.min.js.map b/static/wavesurfer.js/dist/wavesurfer.min.js.map new file mode 100644 index 0000000..2332d9d --- /dev/null +++ b/static/wavesurfer.js/dist/wavesurfer.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"wavesurfer.min.js","sources":["../src/wavesurfer.js","../src/util.js","../src/webaudio.js","../src/mediaelement.js","../src/drawer.js","../src/drawer.canvas.js","../src/html-init.js"],"names":["WaveSurfer","defaultParams","height","waveColor","progressColor","cursorColor","cursorWidth","skipLength","minPxPerSec","pixelRatio","window","devicePixelRatio","fillParent","scrollParent","hideScrollbar","normalize","audioContext","container","dragSelection","loopSelection","audioRate","interact","splitChannels","mediaContainer","mediaControls","renderer","backend","mediaType","init","params","this","util","extend","document","querySelector","Error","savedVolume","isMuted","tmpEvents","createDrawer","createBackend","my","drawer","Object","create","Drawer","on","drawBuffer","progress","getPlayedPercents","e","setTimeout","seekTo","fireEvent","destroy","WebAudio","supportsWebAudio","time","getDuration","getCurrentTime","play","start","end","pause","playPause","isPaused","isPlaying","skipBackward","seconds","skip","skipForward","offset","position","duration","Math","max","min","seekAndCenter","recenter","paused","oldScrollParent","stop","setVolume","newVolume","setPlaybackRate","rate","toggleMute","getVolume","toggleScroll","toggleInteraction","nominalWidth","round","parentWidth","getWidth","width","peaks","getPeaks","drawPeaks","zoom","pxPerSec","loadArrayBuffer","arraybuffer","decodeArrayBuffer","data","loadDecodedBuffer","bind","buffer","load","loadBlob","blob","reader","FileReader","addEventListener","onProgress","target","result","readAsArrayBuffer","empty","url","loadBuffer","loadMediaElement","getArrayBuffer","push","once","err","callback","ajax","responseType","statusText","lengthComputable","percentComplete","loaded","total","exportPCM","length","accuracy","noWindow","arr","map","call","val","json","JSON","stringify","open","encodeURIComponent","clearTmpEvents","forEach","un","disconnectSource","setWidth","unAll","wavesurfer","dest","sources","Array","prototype","slice","arguments","source","keys","key","getId","random","toString","substring","options","Observer","xhr","XMLHttpRequest","fired100","method","status","response","send","event","fn","handlers","name","i","splice","handler","apply","args","scriptBufferSize","PLAYING_STATE","PAUSED_STATE","FINISHED_STATE","AudioContext","webkitAudioContext","getAudioContext","getOfflineAudioContext","sampleRate","offlineAudioContext","OfflineAudioContext","webkitOfflineAudioContext","ac","lastPlay","currentTime","startPosition","scheduledPause","states","state","playing","finished","createVolumeNode","createScriptNode","createAnalyserNode","setState","disconnectFilters","filters","filter","disconnect","analyser","connect","gainNode","setFilter","setFilters","reduce","prev","curr","createScriptProcessor","scriptNode","createJavaScriptNode","destination","addOnAudioProcess","onaudioprocess","removeOnAudioProcess","createAnalyser","createGain","createGainNode","newGain","gain","value","errback","offlineAc","decodeAudioData","sampleSize","sampleStep","channels","numberOfChannels","splitPeaks","mergedPeaks","c","chan","getChannelData","j","createSource","createBufferSource","noteGrainOn","noteOff","playbackRate","getPlayedTime","adjustedTime","MediaElement","media","toLowerCase","elementPosition","createElement","controls","autoplay","preload","src","style","prevMedia","removeChild","appendChild","onPlayEnd","Infinity","seekable","clearPlayEnd","setPlayEnd","volume","parentNode","AudioElement","lastPos","createWrapper","createElements","wrapper","display","userSelect","webkitUserSelect","overflowX","overflowY","setupWrapperEvents","handleEvent","preventDefault","bbox","getBoundingClientRect","clientX","left","scrollLeft","scrollWidth","scrollbarHeight","offsetHeight","clientHeight","clientY","bottom","resetScroll","barWidth","drawBars","drawWave","el","styles","prop","percent","recenterOnPosition","immediate","half","clientWidth","maxScroll","updateSize","setHeight","minPxDelta","pos","newPos","updateProgress","clearWave","Canvas","waveCanvas","zIndex","top","waveCc","getContext","progressWave","overflow","boxSizing","borderRightStyle","borderRightWidth","borderRightColor","progressCanvas","progressCc","canvas","clearRect","channelIndex","$","offsetY","halfH","bar","gap","step","absmax","scale","fillStyle","cc","reflection","h","floor","fillRect","beginPath","moveTo","lineTo","closePath","fill","containers","querySelectorAll","dataset","parse","readyState"],"mappings":";;;AAQA,YAEA,IAAIA,aACAC,eACIC,OAAgB,IAChBC,UAAgB,OAChBC,cAAgB,OAChBC,YAAgB,OAChBC,YAAgB,EAChBC,WAAgB,EAChBC,YAAgB,GAChBC,WAAgBC,OAAOC,iBACvBC,YAAgB,EAChBC,cAAgB,EAChBC,eAAgB,EAChBC,WAAgB,EAChBC,aAAgB,KAChBC,UAAgB,KAChBC,eAAgB,EAChBC,eAAgB,EAChBC,UAAgB,EAChBC,UAAgB,EAChBC,eAAgB,EAChBC,eAAgB,KAChBC,eAAgB,EAChBC,SAAgB,SAChBC,QAAgB,WAChBC,UAAgB,SAGpBC,KAAM,SAAUC,GAQZ,GANAC,KAAKD,OAAS7B,WAAW+B,KAAKC,UAAWF,KAAK7B,cAAe4B,GAE7DC,KAAKb,UAAY,gBAAmBY,GAAOZ,UACvCgB,SAASC,cAAcJ,KAAKD,OAAOZ,WACnCa,KAAKD,OAAOZ,WAEXa,KAAKb,UACN,KAAM,IAAIkB,OAAM,8BAWpB,IARkC,MAA9BL,KAAKD,OAAON,eACZO,KAAKP,eAAiBO,KAAKb,UACiB,gBAA9Ba,MAAKD,OAAON,eAC1BO,KAAKP,eAAiBU,SAASC,cAAcJ,KAAKD,OAAON,gBAEzDO,KAAKP,eAAiBO,KAAKD,OAAON,gBAGjCO,KAAKP,eACN,KAAM,IAAIY,OAAM,oCAKpBL,MAAKM,YAAc,EAEnBN,KAAKO,SAAU,EAGfP,KAAKQ,aAELR,KAAKS,eACLT,KAAKU,iBAGTD,aAAc,WACV,GAAIE,GAAKX,IAETA,MAAKY,OAASC,OAAOC,OAAO5C,WAAW6C,OAAOf,KAAKD,OAAOJ,WAC1DK,KAAKY,OAAOd,KAAKE,KAAKb,UAAWa,KAAKD,QAEtCC,KAAKY,OAAOI,GAAG,SAAU,WACrBL,EAAGM,aACHN,EAAGC,OAAOM,SAASP,EAAGf,QAAQuB,uBAIlCnB,KAAKY,OAAOI,GAAG,QAAS,SAAUI,EAAGF,GACjCG,WAAW,WACPV,EAAGW,OAAOJ,IACX,KAIPlB,KAAKY,OAAOI,GAAG,SAAU,SAAUI,GAC/BT,EAAGY,UAAU,SAAUH,MAI/BV,cAAe,WACX,GAAIC,GAAKX,IAELA,MAAKJ,SACLI,KAAKJ,QAAQ4B,UAIU,gBAAvBxB,KAAKD,OAAOH,UACZI,KAAKD,OAAOH,QAAU,gBAGC,YAAvBI,KAAKD,OAAOH,SAA0B1B,WAAWuD,SAASC,qBAC1D1B,KAAKD,OAAOH,QAAU,gBAG1BI,KAAKJ,QAAUiB,OAAOC,OAAO5C,WAAW8B,KAAKD,OAAOH,UACpDI,KAAKJ,QAAQE,KAAKE,KAAKD,QAEvBC,KAAKJ,QAAQoB,GAAG,SAAU,WAAcL,EAAGY,UAAU,YACrDvB,KAAKJ,QAAQoB,GAAG,OAAQ,WAAcL,EAAGY,UAAU,UACnDvB,KAAKJ,QAAQoB,GAAG,QAAS,WAAcL,EAAGY,UAAU,WAEpDvB,KAAKJ,QAAQoB,GAAG,eAAgB,SAAUW,GACtChB,EAAGC,OAAOM,SAASP,EAAGf,QAAQuB,qBAC9BR,EAAGY,UAAU,eAAgBI,MAIrCC,YAAa,WACT,MAAO5B,MAAKJ,QAAQgC,eAGxBC,eAAgB,WACZ,MAAO7B,MAAKJ,QAAQiC,kBAGxBC,KAAM,SAAUC,EAAOC,GACnBhC,KAAKJ,QAAQkC,KAAKC,EAAOC,IAG7BC,MAAO,WACHjC,KAAKJ,QAAQqC,SAGjBC,UAAW,WACPlC,KAAKJ,QAAQuC,WAAanC,KAAK8B,OAAS9B,KAAKiC,SAGjDG,UAAW,WACP,OAAQpC,KAAKJ,QAAQuC,YAGzBE,aAAc,SAAUC,GACpBtC,KAAKuC,MAAMD,IAAYtC,KAAKD,OAAOtB,aAGvC+D,YAAa,SAAUF,GACnBtC,KAAKuC,KAAKD,GAAWtC,KAAKD,OAAOtB,aAGrC8D,KAAM,SAAUE,GACZ,GAAIC,GAAW1C,KAAK6B,kBAAoB,EACpCc,EAAW3C,KAAK4B,eAAiB,CACrCc,GAAWE,KAAKC,IAAI,EAAGD,KAAKE,IAAIH,EAAUD,GAAYD,GAAU,KAChEzC,KAAK+C,cAAcL,EAAWC,IAGlCI,cAAe,SAAU7B,GACrBlB,KAAKsB,OAAOJ,GACZlB,KAAKY,OAAOoC,SAAS9B,IAGzBI,OAAQ,SAAUJ,GACd,GAAI+B,GAASjD,KAAKJ,QAAQuC,WAEtBe,EAAkBlD,KAAKD,OAAOhB,YAC9BkE,KACAjD,KAAKD,OAAOhB,cAAe,GAE/BiB,KAAKJ,QAAQ0B,OAAOJ,EAAWlB,KAAK4B,eACpC5B,KAAKY,OAAOM,SAASlB,KAAKJ,QAAQuB,qBAE7B8B,IACDjD,KAAKJ,QAAQqC,QACbjC,KAAKJ,QAAQkC,QAEjB9B,KAAKD,OAAOhB,aAAemE,EAC3BlD,KAAKuB,UAAU,OAAQL,IAG3BiC,KAAM,WACFnD,KAAKiC,QACLjC,KAAKsB,OAAO,GACZtB,KAAKY,OAAOM,SAAS,IASzBkC,UAAW,SAAUC,GACjBrD,KAAKJ,QAAQwD,UAAUC,IAS3BC,gBAAiB,SAAUC,GACvBvD,KAAKJ,QAAQ0D,gBAAgBC,IASjCC,WAAY,WACJxD,KAAKO,SAGLP,KAAKJ,QAAQwD,UAAUpD,KAAKM,aAC5BN,KAAKO,SAAU,IAIfP,KAAKM,YAAcN,KAAKJ,QAAQ6D,YAChCzD,KAAKJ,QAAQwD,UAAU,GACvBpD,KAAKO,SAAU,IAIvBmD,aAAc,WACV1D,KAAKD,OAAOhB,cAAgBiB,KAAKD,OAAOhB,aACxCiB,KAAKiB,cAGT0C,kBAAmB,WACf3D,KAAKD,OAAOR,UAAYS,KAAKD,OAAOR,UAGxC0B,WAAY,WACR,GAAI2C,GAAehB,KAAKiB,MACpB7D,KAAK4B,cAAgB5B,KAAKD,OAAOrB,YAAcsB,KAAKD,OAAOpB,YAE3DmF,EAAc9D,KAAKY,OAAOmD,WAC1BC,EAAQJ,CAGR5D,MAAKD,OAAOjB,cAAgBkB,KAAKD,OAAOhB,cAA+B+E,EAAfF,KACxDI,EAAQF,EAGZ,IAAIG,GAAQjE,KAAKJ,QAAQsE,SAASF,EAClChE,MAAKY,OAAOuD,UAAUF,EAAOD,GAC7BhE,KAAKuB,UAAU,SAAU0C,EAAOD,IAGpCI,KAAM,SAAUC,GACZrE,KAAKD,OAAOrB,YAAc2F,EAE1BrE,KAAKD,OAAOhB,cAAe,EAE3BiB,KAAKiB,aAELjB,KAAK+C,cACD/C,KAAK6B,iBAAmB7B,KAAK4B,eAEjC5B,KAAKuB,UAAU,OAAQ8C,IAM3BC,gBAAiB,SAAUC,GACvBvE,KAAKwE,kBAAkBD,EAAa,SAAUE,GAC1CzE,KAAK0E,kBAAkBD,IACzBE,KAAK3E,QAMX0E,kBAAmB,SAAUE,GACzB5E,KAAKJ,QAAQiF,KAAKD,GAClB5E,KAAKiB,aACLjB,KAAKuB,UAAU,UAQnBuD,SAAU,SAAUC,GAChB,GAAIpE,GAAKX,KAELgF,EAAS,GAAIC,WACjBD,GAAOE,iBAAiB,WAAY,SAAU9D,GAC1CT,EAAGwE,WAAW/D,KAElB4D,EAAOE,iBAAiB,OAAQ,SAAU9D,GACtCT,EAAG2D,gBAAgBlD,EAAEgE,OAAOC,UAEhCL,EAAOE,iBAAiB,QAAS,WAC7BvE,EAAGY,UAAU,QAAS,wBAE1ByD,EAAOM,kBAAkBP,GACzB/E,KAAKuF,SAMTV,KAAM,SAAUW,EAAKvB,GACjB,OAAQjE,KAAKD,OAAOH,SAChB,IAAK,WAAY,MAAOI,MAAKyF,WAAWD,EACxC,KAAK,eAAgB,MAAOxF,MAAK0F,iBAAiBF,EAAKvB,KAO/DwB,WAAY,SAAUD,GAGlB,MAFAxF,MAAKuF,QAEEvF,KAAK2F,eAAeH,EAAKxF,KAAKsE,gBAAgBK,KAAK3E,QAG9D0F,iBAAkB,SAAUF,EAAKvB,GAC7BjE,KAAKuF,QACLvF,KAAKJ,QAAQiF,KAAKW,EAAKxF,KAAKP,eAAgBwE,GAE5CjE,KAAKQ,UAAUoF,KACX5F,KAAKJ,QAAQiG,KAAK,UAAW,WACzB7F,KAAKiB,aACLjB,KAAKuB,UAAU,UAChBoD,KAAK3E,OAERA,KAAKJ,QAAQiG,KAAK,QAAS,SAAWC,GAClC9F,KAAKuB,UAAU,QAASuE,IACzBnB,KAAK3E,SAMPiE,GAASjE,KAAKJ,QAAQ8B,oBACvB1B,KAAK2F,eAAeH,EAAK,SAAWjB,GAChCvE,KAAKwE,kBAAkBD,EAAa,SAAWK,GAC3C5E,KAAKJ,QAAQgF,OAASA,EACtB5E,KAAKiB,cACN0D,KAAK3E,QACT2E,KAAK3E,QAIhBwE,kBAAmB,SAAUD,EAAawB,GACtC/F,KAAKJ,QAAQ4E,kBACTD,EACAvE,KAAKuB,UAAUoD,KAAK3E,KAAM,WAC1BA,KAAKuB,UAAUoD,KAAK3E,KAAM,QAAS,+BAEvCA,KAAKQ,UAAUoF,KACX5F,KAAK6F,KAAK,UAAWE,KAI7BJ,eAAgB,SAAUH,EAAKO,GAC3B,GAAIpF,GAAKX,KACLgG,EAAO9H,WAAW+B,KAAK+F,MACvBR,IAAKA,EACLS,aAAc,eAWlB,OATAjG,MAAKQ,UAAUoF,KACXI,EAAKhF,GAAG,WAAY,SAAUI,GAC1BT,EAAGwE,WAAW/D,KAElB4E,EAAKhF,GAAG,UAAW+E,GACnBC,EAAKhF,GAAG,QAAS,SAAUI,GACvBT,EAAGY,UAAU,QAAS,cAAgBH,EAAEgE,OAAOc,eAGhDF,GAGXb,WAAY,SAAU/D,GAClB,GAAIA,EAAE+E,iBACF,GAAIC,GAAkBhF,EAAEiF,OAASjF,EAAEkF,UAInCF,GAAkBhF,EAAEiF,QAAUjF,EAAEiF,OAAS,IAE7CrG,MAAKuB,UAAU,UAAWqB,KAAKiB,MAAwB,IAAlBuC,GAAwBhF,EAAEgE,SAMnEmB,UAAW,SAAUC,EAAQC,EAAUC,GACnCF,EAASA,GAAU,KACnBC,EAAWA,GAAY,IACvBC,EAAWA,IAAY,CACvB,IAAIzC,GAAQjE,KAAKJ,QAAQsE,SAASsC,EAAQC,GACtCE,KAASC,IAAIC,KAAK5C,EAAO,SAAU6C,GACnC,MAAOlE,MAAKiB,MAAMiD,EAAML,GAAYA,IAEpCM,EAAOC,KAAKC,UAAUN,EAK1B,OAJKD,IACD9H,OAAOsI,KAAK,uCACRC,mBAAmBJ,IAEpBA,GAGXK,eAAgB,WACZpH,KAAKQ,UAAU6G,QAAQ,SAAUjG,GAAKA,EAAEkG,QAM5C/B,MAAO,WACEvF,KAAKJ,QAAQuC,aACdnC,KAAKmD,OACLnD,KAAKJ,QAAQ2H,oBAEjBvH,KAAKoH,iBACLpH,KAAKY,OAAOM,SAAS,GACrBlB,KAAKY,OAAO4G,SAAS,GACrBxH,KAAKY,OAAOuD,WAAYqC,OAAQxG,KAAKY,OAAOmD,YAAc,IAM9DvC,QAAS,WACLxB,KAAKuB,UAAU,WACfvB,KAAKoH,iBACLpH,KAAKyH,QACLzH,KAAKJ,QAAQ4B,UACbxB,KAAKY,OAAOY,WAIpBtD,YAAW4C,OAAS,SAAUf,GAC1B,GAAI2H,GAAa7G,OAAOC,OAAO5C,WAE/B,OADAwJ,GAAW5H,KAAKC,GACT2H,GCtcXxJ,WAAW+B,MACPC,OAAQ,SAAUyH,GACd,GAAIC,GAAUC,MAAMC,UAAUC,MAAMlB,KAAKmB,UAAW,EAMpD,OALAJ,GAAQP,QAAQ,SAAUY,GACtBpH,OAAOqH,KAAKD,GAAQZ,QAAQ,SAAUc,GAClCR,EAAKQ,GAAOF,EAAOE,OAGpBR,GAGXS,MAAO,WACH,MAAO,cAAgBxF,KAAKyF,SAASC,SAAS,IAAIC,UAAU,IAGhEvC,KAAM,SAAUwC,GACZ,GAAIxC,GAAOnF,OAAOC,OAAO5C,WAAWuK,UAChCC,EAAM,GAAIC,gBACVC,GAAW,CA+Bf,OA7BAF,GAAIxB,KAAKsB,EAAQK,QAAU,MAAOL,EAAQhD,KAAK,GAC/CkD,EAAIzC,aAAeuC,EAAQvC,cAAgB,OAE3CyC,EAAIxD,iBAAiB,WAAY,SAAU9D,GACvC4E,EAAKzE,UAAU,WAAYH,GACvBA,EAAE+E,kBAAoB/E,EAAEiF,QAAUjF,EAAEkF,QACpCsC,GAAW,KAInBF,EAAIxD,iBAAiB,OAAQ,SAAU9D,GAC9BwH,GACD5C,EAAKzE,UAAU,WAAYH,GAE/B4E,EAAKzE,UAAU,OAAQH,GAEnB,KAAOsH,EAAII,QAAU,KAAOJ,EAAII,OAChC9C,EAAKzE,UAAU,UAAWmH,EAAIK,SAAU3H,GAExC4E,EAAKzE,UAAU,QAASH,KAIhCsH,EAAIxD,iBAAiB,QAAS,SAAU9D,GACpC4E,EAAKzE,UAAU,QAASH,KAG5BsH,EAAIM,OACJhD,EAAK0C,IAAMA,EACJ1C,IAMf9H,WAAWuK,UAIPzH,GAAI,SAAUiI,EAAOC,GACZlJ,KAAKmJ,WAAYnJ,KAAKmJ,YAE3B,IAAIA,GAAWnJ,KAAKmJ,SAASF,EAO7B,OANKE,KACDA,EAAWnJ,KAAKmJ,SAASF,OAE7BE,EAASvD,KAAKsD,IAIVE,KAAMH,EACNlD,SAAUmD,EACV5B,GAAItH,KAAKsH,GAAG3C,KAAK3E,KAAMiJ,EAAOC,KAOtC5B,GAAI,SAAU2B,EAAOC,GACjB,GAAKlJ,KAAKmJ,SAAV,CAEA,GAAIA,GAAWnJ,KAAKmJ,SAASF,EAC7B,IAAIE,EACA,GAAID,EACA,IAAK,GAAIG,GAAIF,EAAS3C,OAAS,EAAG6C,GAAK,EAAGA,IAClCF,EAASE,IAAMH,GACfC,EAASG,OAAOD,EAAG,OAI3BF,GAAS3C,OAAS,IAQ9BiB,MAAO,WACHzH,KAAKmJ,SAAW,MAOpBtD,KAAM,SAAUoD,EAAOM,GACnB,GAAI5I,GAAKX,KACLkJ,EAAK,WACLK,EAAQC,MAAMxJ,KAAMgI,WACpB3G,WAAW,WACPV,EAAG2G,GAAG2B,EAAOC,IACd,GAEP,OAAOlJ,MAAKgB,GAAGiI,EAAOC,IAG1B3H,UAAW,SAAU0H,GACjB,GAAKjJ,KAAKmJ,SAAV,CACA,GAAIA,GAAWnJ,KAAKmJ,SAASF,GACzBQ,EAAO5B,MAAMC,UAAUC,MAAMlB,KAAKmB,UAAW,EACjDmB,IAAYA,EAAS9B,QAAQ,SAAU6B,GACnCA,EAAGM,MAAM,KAAMC,QAO3BvL,WAAW+B,KAAKC,OAAOhC,WAAYA,WAAWuK,UCjI9CvK,WAAWuD,UACPiI,iBAAkB,IAClBC,cAAe,EACfC,aAAc,EACdC,eAAgB,EAEhBnI,iBAAkB,WACd,SAAU9C,OAAOkL,eAAgBlL,OAAOmL,qBAG5CC,gBAAiB,WAMb,MALK9L,YAAWuD,SAASvC,eACrBhB,WAAWuD,SAASvC,aAAe,IAC/BN,OAAOkL,cAAgBlL,OAAOmL,qBAG/B7L,WAAWuD,SAASvC,cAG/B+K,uBAAwB,SAAUC,GAM9B,MALKhM,YAAWuD,SAAS0I,sBACrBjM,WAAWuD,SAAS0I,oBAAsB,IACtCvL,OAAOwL,qBAAuBxL,OAAOyL,2BACvC,EAAG,EAAGH,IAELhM,WAAWuD,SAAS0I,qBAG/BrK,KAAM,SAAUC,GACZC,KAAKD,OAASA,EACdC,KAAKsK,GAAKvK,EAAOb,cAAgBc,KAAKgK,kBAEtChK,KAAKuK,SAAWvK,KAAKsK,GAAGE,YACxBxK,KAAKyK,cAAgB,EACrBzK,KAAK0K,eAAiB,KAEtB1K,KAAK2K,QACD9J,OAAOC,OAAO5C,WAAWuD,SAASmJ,MAAMC,SACxChK,OAAOC,OAAO5C,WAAWuD,SAASmJ,MAAM3H,QACxCpC,OAAOC,OAAO5C,WAAWuD,SAASmJ,MAAME,WAG5C9K,KAAK+K,mBACL/K,KAAKgL,mBACLhL,KAAKiL,qBAELjL,KAAKkL,SAASlL,KAAK4J,cACnB5J,KAAKsD,gBAAgBtD,KAAKD,OAAOT,YAGrC6L,kBAAmB,WACXnL,KAAKoL,UACLpL,KAAKoL,QAAQ/D,QAAQ,SAAUgE,GAC3BA,GAAUA,EAAOC,eAErBtL,KAAKoL,QAAU,KAEfpL,KAAKuL,SAASC,QAAQxL,KAAKyL,YAInCP,SAAU,SAAUN,GACZ5K,KAAK4K,QAAU5K,KAAK2K,OAAOC,KAC3B5K,KAAK4K,MAAQ5K,KAAK2K,OAAOC,GACzB5K,KAAK4K,MAAM9K,KAAK+G,KAAK7G,QAK7B0L,UAAW,WACP1L,KAAK2L,cAAc5D,MAAMlB,KAAKmB,aAMlC2D,WAAY,SAAUP,GAElBpL,KAAKmL,oBAGDC,GAAWA,EAAQ5E,SACnBxG,KAAKoL,QAAUA,EAGfpL,KAAKuL,SAASD,aAGdF,EAAQQ,OAAO,SAAUC,EAAMC,GAE3B,MADAD,GAAKL,QAAQM,GACNA,GACR9L,KAAKuL,UAAUC,QAAQxL,KAAKyL,YAKvCT,iBAAkB,WACVhL,KAAKsK,GAAGyB,sBACR/L,KAAKgM,WAAahM,KAAKsK,GAAGyB,sBAAsB/L,KAAK0J,kBAErD1J,KAAKgM,WAAahM,KAAKsK,GAAG2B,qBAAqBjM,KAAK0J,kBAGxD1J,KAAKgM,WAAWR,QAAQxL,KAAKsK,GAAG4B,cAGpCC,kBAAmB,WACf,GAAIxL,GAAKX,IAETA,MAAKgM,WAAWI,eAAiB,WAC7B,GAAIzK,GAAOhB,EAAGkB,gBAEVF,IAAQhB,EAAGiB,eACXjB,EAAGuK,SAASvK,EAAGkJ,gBACflJ,EAAGY,UAAU,UACNI,GAAQhB,EAAG+J,gBAClB/J,EAAGuK,SAASvK,EAAGiJ,cACfjJ,EAAGY,UAAU,UACNZ,EAAGiK,QAAUjK,EAAGgK,OAAOhK,EAAGgJ,gBACjChJ,EAAGY,UAAU,eAAgBI,KAKzC0K,qBAAsB,WAClBrM,KAAKgM,WAAWI,eAAiB,MAGrCnB,mBAAoB,WAChBjL,KAAKuL,SAAWvL,KAAKsK,GAAGgC,iBACxBtM,KAAKuL,SAASC,QAAQxL,KAAKyL,WAM/BV,iBAAkB,WAEV/K,KAAKsK,GAAGiC,WACRvM,KAAKyL,SAAWzL,KAAKsK,GAAGiC,aAExBvM,KAAKyL,SAAWzL,KAAKsK,GAAGkC,iBAG5BxM,KAAKyL,SAASD,QAAQxL,KAAKsK,GAAG4B,cASlC9I,UAAW,SAAUqJ,GACjBzM,KAAKyL,SAASiB,KAAKC,MAAQF,GAS/BhJ,UAAW,WACP,MAAOzD,MAAKyL,SAASiB,KAAKC,OAG9BnI,kBAAmB,SAAUD,EAAawB,EAAU6G,GAC3C5M,KAAK6M,YACN7M,KAAK6M,UAAY7M,KAAKiK,uBAAuBjK,KAAKsK,GAAKtK,KAAKsK,GAAGJ,WAAa,QAEhFlK,KAAK6M,UAAUC,gBAAgBvI,EAAa,SAAWE,GACnDsB,EAAStB,IACVE,KAAK3E,MAAO4M,IAUnB1I,SAAU,SAAUsC,GAOhB,IAAK,GANDuG,GAAa/M,KAAK4E,OAAO4B,OAASA,EAClCwG,KAAgBD,EAAa,KAAO,EACpCE,EAAWjN,KAAK4E,OAAOsI,iBACvBC,KACAC,KAEKC,EAAI,EAAOJ,EAAJI,EAAcA,IAI1B,IAAK,GAHDpJ,GAAQkJ,EAAWE,MACnBC,EAAOtN,KAAK4E,OAAO2I,eAAeF,GAE7BhE,EAAI,EAAO7C,EAAJ6C,EAAYA,IAAK,CAM7B,IAAK,GALDtH,MAAWsH,EAAI0D,GACf/K,KAASD,EAAQgL,GACjBjK,EAAMwK,EAAK,GACXzK,EAAMyK,EAAK,GAENE,EAAIzL,EAAWC,EAAJwL,EAASA,GAAKR,EAAY,CAC1C,GAAIL,GAAQW,EAAKE,EAEbb,GAAQ9J,IACRA,EAAM8J,GAGE7J,EAAR6J,IACA7J,EAAM6J,GAId1I,EAAM,EAAIoF,GAAKxG,EACfoB,EAAM,EAAIoF,EAAI,GAAKvG,GAEV,GAALuK,GAAUxK,EAAMuK,EAAY,EAAI/D,MAChC+D,EAAY,EAAI/D,GAAKxG,IAGhB,GAALwK,GAAUvK,EAAMsK,EAAY,EAAI/D,EAAI,MACpC+D,EAAY,EAAI/D,EAAI,GAAKvG,GAKrC,MAAO9C,MAAKD,OAAOP,cAAgB2N,EAAaC,GAGpDjM,kBAAmB,WACf,MAAOnB,MAAK4K,MAAMzJ,kBAAkB0F,KAAK7G,OAG7CuH,iBAAkB,WACVvH,KAAKiI,QACLjI,KAAKiI,OAAOqD,cAIpB9J,QAAS,WACAxB,KAAKmC,YACNnC,KAAKiC,QAETjC,KAAKyH,QACLzH,KAAK4E,OAAS,KACd5E,KAAKmL,oBACLnL,KAAKuH,mBACLvH,KAAKyL,SAASH,aACdtL,KAAKgM,WAAWV,aAChBtL,KAAKuL,SAASD,cAGlBzG,KAAM,SAAUD,GACZ5E,KAAKyK,cAAgB,EACrBzK,KAAKuK,SAAWvK,KAAKsK,GAAGE,YACxBxK,KAAK4E,OAASA,EACd5E,KAAKyN,gBAGTA,aAAc,WACVzN,KAAKuH,mBACLvH,KAAKiI,OAASjI,KAAKsK,GAAGoD,qBAGtB1N,KAAKiI,OAAOlG,MAAQ/B,KAAKiI,OAAOlG,OAAS/B,KAAKiI,OAAO0F,YACrD3N,KAAKiI,OAAO9E,KAAOnD,KAAKiI,OAAO9E,MAAQnD,KAAKiI,OAAO2F,QAEnD5N,KAAKiI,OAAO4F,aAAalB,MAAQ3M,KAAK6N,aACtC7N,KAAKiI,OAAOrD,OAAS5E,KAAK4E,OAC1B5E,KAAKiI,OAAOuD,QAAQxL,KAAKuL,WAG7BpJ,SAAU,WACN,MAAOnC,MAAK4K,QAAU5K,KAAK2K,OAAO3K,KAAK2J,gBAG3C/H,YAAa,WACT,MAAK5B,MAAK4E,OAGH5E,KAAK4E,OAAOjC,SAFR,GAKfrB,OAAQ,SAAUS,EAAOC,GAoBrB,MAnBAhC,MAAK0K,eAAiB,KAET,MAAT3I,IACAA,EAAQ/B,KAAK6B,iBACTE,GAAS/B,KAAK4B,gBACdG,EAAQ,IAGL,MAAPC,IACAA,EAAMhC,KAAK4B,eAGf5B,KAAKyK,cAAgB1I,EACrB/B,KAAKuK,SAAWvK,KAAKsK,GAAGE,YAEpBxK,KAAK4K,QAAU5K,KAAK2K,OAAO3K,KAAK6J,iBAChC7J,KAAKkL,SAASlL,KAAK4J,eAGd7H,MAAOA,EAAOC,IAAKA,IAGhC8L,cAAe,WACX,OAAQ9N,KAAKsK,GAAGE,YAAcxK,KAAKuK,UAAYvK,KAAK6N,cAWxD/L,KAAM,SAAUC,EAAOC,GAEnBhC,KAAKyN,cAEL,IAAIM,GAAe/N,KAAKsB,OAAOS,EAAOC,EAEtCD,GAAQgM,EAAahM,MACrBC,EAAM+L,EAAa/L,IAEnBhC,KAAK0K,eAAiB1I,EAEtBhC,KAAKiI,OAAOlG,MAAM,EAAGA,EAAOC,EAAMD,GAElC/B,KAAKkL,SAASlL,KAAK2J,eAEnB3J,KAAKuB,UAAU,SAMnBU,MAAO,WACHjC,KAAK0K,eAAiB,KAEtB1K,KAAKyK,eAAiBzK,KAAK8N,gBAC3B9N,KAAKiI,QAAUjI,KAAKiI,OAAO9E,KAAK,GAEhCnD,KAAKkL,SAASlL,KAAK4J,cAEnB5J,KAAKuB,UAAU,UAMnBM,eAAgB,WACZ,MAAO7B,MAAK4K,MAAM/I,eAAegF,KAAK7G,OAM1CsD,gBAAiB,SAAUqJ,GACvBA,EAAQA,GAAS,EACb3M,KAAKmC,WACLnC,KAAK6N,aAAelB,GAEpB3M,KAAKiC,QACLjC,KAAK6N,aAAelB,EACpB3M,KAAK8B,UAKjB5D,WAAWuD,SAASmJ,SAEpB1M,WAAWuD,SAASmJ,MAAMC,SACtB/K,KAAM,WACFE,KAAKmM,qBAEThL,kBAAmB,WACf,GAAIwB,GAAW3C,KAAK4B,aACpB,OAAQ5B,MAAK6B,iBAAmBc,GAAa,GAEjDd,eAAgB,WACZ,MAAO7B,MAAKyK,cAAgBzK,KAAK8N,kBAIzC5P,WAAWuD,SAASmJ,MAAM3H,QACtBnD,KAAM,WACFE,KAAKqM,wBAETlL,kBAAmB,WACf,GAAIwB,GAAW3C,KAAK4B,aACpB,OAAQ5B,MAAK6B,iBAAmBc,GAAa,GAEjDd,eAAgB,WACZ,MAAO7B,MAAKyK,gBAIpBvM,WAAWuD,SAASmJ,MAAME,UACtBhL,KAAM,WACFE,KAAKqM,uBACLrM,KAAKuB,UAAU,WAEnBJ,kBAAmB,WACf,MAAO,IAEXU,eAAgB,WACZ,MAAO7B,MAAK4B,gBAIpB1D,WAAW+B,KAAKC,OAAOhC,WAAWuD,SAAUvD,WAAWuK,UC5ZvDvK,WAAW8P,aAAenN,OAAOC,OAAO5C,WAAWuD,UAEnDvD,WAAW+B,KAAKC,OAAOhC,WAAW8P,cAC9BlO,KAAM,SAAUC,GACZC,KAAKD,OAASA,EAGdC,KAAKiO,OACDzD,YAAa,EACb7H,SAAU,EACVM,QAAQ,EACR4K,aAAc,EACd/L,KAAM,aACNG,MAAO,cAGXjC,KAAKH,UAAYE,EAAOF,UAAUqO,cAClClO,KAAKmO,gBAAkBpO,EAAOoO,iBAGlCtJ,KAAM,SAAUW,EAAKrG,EAAW8E,GAC5B,GAAItD,GAAKX,KAELiO,EAAQ9N,SAASiO,cAAcpO,KAAKH,UACxCoO,GAAMI,SAAWrO,KAAKD,OAAOL,cAC7BuO,EAAMK,UAAW,EACjBL,EAAMM,QAAU,OAChBN,EAAMO,IAAMhJ,EACZyI,EAAMQ,MAAMzK,MAAQ,OAEpBiK,EAAM/I,iBAAiB,QAAS,WAC5BvE,EAAGY,UAAU,QAAS,iCAG1B0M,EAAM/I,iBAAiB,UAAW,WAC9BvE,EAAGY,UAAU,aAGjB0M,EAAM/I,iBAAiB,QAAS,WAC5BvE,EAAGY,UAAU,YAGjB0M,EAAM/I,iBAAiB,aAAc,WACjCvE,EAAGY,UAAU,eAAgBZ,EAAGkB,mBAGpC,IAAI6M,GAAYvP,EAAUiB,cAAcJ,KAAKH,UACzC6O,IACAvP,EAAUwP,YAAYD,GAE1BvP,EAAUyP,YAAYX,GAEtBjO,KAAKiO,MAAQA,EACbjO,KAAKiE,MAAQA,EACbjE,KAAK6O,UAAY,KACjB7O,KAAK4E,OAAS,KACd5E,KAAKsD,gBAAgBtD,KAAK6N,eAG9B1L,SAAU,WACN,OAAQnC,KAAKiO,OAASjO,KAAKiO,MAAMhL,QAGrCrB,YAAa,WACT,GAAIe,GAAW3C,KAAKiO,MAAMtL,QAI1B,OAHIA,IAAYmM,EAAAA,IACZnM,EAAW3C,KAAKiO,MAAMc,SAAS/M,OAE5BW,GAGXd,eAAgB,WACZ,MAAO7B,MAAKiO,OAASjO,KAAKiO,MAAMzD,aAGpCrJ,kBAAmB,WACf,MAAQnB,MAAK6B,iBAAmB7B,KAAK4B,eAAkB,GAM3D0B,gBAAiB,SAAUqJ,GACvB3M,KAAK6N,aAAelB,GAAS,EAC7B3M,KAAKiO,MAAMJ,aAAe7N,KAAK6N,cAGnCvM,OAAQ,SAAUS,GACD,MAATA,IACA/B,KAAKiO,MAAMzD,YAAczI,GAE7B/B,KAAKgP,gBAWTlN,KAAM,SAAUC,EAAOC,GACnBhC,KAAKsB,OAAOS,GACZ/B,KAAKiO,MAAMnM,OACXE,GAAOhC,KAAKiP,WAAWjN,GACvBhC,KAAKuB,UAAU,SAMnBU,MAAO,WACHjC,KAAKiO,OAASjO,KAAKiO,MAAMhM,QACzBjC,KAAKgP,eACLhP,KAAKuB,UAAU,UAGnB0N,WAAY,SAAUjN,GAClB,GAAIrB,GAAKX,IACTA,MAAK6O,UAAY,SAAUlN,GACnBA,GAAQK,IACRrB,EAAGsB,QACHtB,EAAGW,OAAOU,KAGlBhC,KAAKgB,GAAG,eAAgBhB,KAAK6O,YAGjCG,aAAc,WACNhP,KAAK6O,YACL7O,KAAKsH,GAAG,eAAgBtH,KAAK6O,WAC7B7O,KAAK6O,UAAY,OAIzB3K,SAAU,SAAUsC,GAChB,MAAIxG,MAAK4E,OACE1G,WAAWuD,SAASyC,SAAS2C,KAAK7G,KAAMwG,GAE5CxG,KAAKiE,WAGhBR,UAAW,WACP,MAAOzD,MAAKiO,MAAMiB,QAGtB9L,UAAW,SAAU0D,GACjB9G,KAAKiO,MAAMiB,OAASpI,GAGxBtF,QAAS,WACLxB,KAAKiC,QACLjC,KAAKyH,QACLzH,KAAKiO,OAASjO,KAAKiO,MAAMkB,YAAcnP,KAAKiO,MAAMkB,WAAWR,YAAY3O,KAAKiO,OAC9EjO,KAAKiO,MAAQ,QAKrB/P,WAAWkR,aAAelR,WAAW8P,aChKrC9P,WAAW6C,QACPjB,KAAM,SAAUX,EAAWY,GACvBC,KAAKb,UAAYA,EACjBa,KAAKD,OAASA,EAEdC,KAAKgE,MAAQ,EACbhE,KAAK5B,OAAS2B,EAAO3B,OAAS4B,KAAKD,OAAOpB,WAE1CqB,KAAKqP,QAAU,EAEfrP,KAAKsP,gBACLtP,KAAKuP,kBAGTD,cAAe,WACXtP,KAAKwP,QAAUxP,KAAKb,UAAUyP,YAC1BzO,SAASiO,cAAc,SAG3BpO,KAAKyO,MAAMzO,KAAKwP,SACZC,QAAS,QACT/M,SAAU,WACVgN,WAAY,OACZC,iBAAkB,OAClBvR,OAAQ4B,KAAKD,OAAO3B,OAAS,QAG7B4B,KAAKD,OAAOjB,YAAckB,KAAKD,OAAOhB,eACtCiB,KAAKyO,MAAMzO,KAAKwP,SACZxL,MAAO,OACP4L,UAAW5P,KAAKD,OAAOf,cAAgB,SAAW,OAClD6Q,UAAW,WAInB7P,KAAK8P,sBAGTC,YAAa,SAAU3O,GACnBA,EAAE4O,gBACF,IAAIC,GAAOjQ,KAAKwP,QAAQU,uBACxB,QAAS9O,EAAE+O,QAAUF,EAAKG,KAAOpQ,KAAKwP,QAAQa,YAAcrQ,KAAKwP,QAAQc,aAAgB,GAG7FR,mBAAoB,WAChB,GAAInP,GAAKX,IAETA,MAAKwP,QAAQtK,iBAAiB,QAAS,SAAU9D,GAC7C,GAAImP,GAAkB5P,EAAG6O,QAAQgB,aAAe7P,EAAG6O,QAAQiB,YAC3D,IAAuB,GAAnBF,EAAsB,CAEtB,GAAIN,GAAOtP,EAAG6O,QAAQU,uBACtB,IAAI9O,EAAEsP,SAAWT,EAAKU,OAASJ,EAE3B,OAIJ5P,EAAGZ,OAAOR,UACVoB,EAAGY,UAAU,QAASH,EAAGT,EAAGoP,YAAY3O,MAIhDpB,KAAKwP,QAAQtK,iBAAiB,SAAU,SAAU9D,GAC9CT,EAAGY,UAAU,SAAUH,MAI/B+C,UAAW,SAAUF,EAAOuC,GACxBxG,KAAK4Q,cACL5Q,KAAKwH,SAAShB,GAEdxG,KAAKD,OAAO8Q,SACR7Q,KAAK8Q,SAAS7M,GACdjE,KAAK+Q,SAAS9M,IAGtBwK,MAAO,SAAUuC,EAAIC,GAMjB,MALApQ,QAAOqH,KAAK+I,GAAQ5J,QAAQ,SAAU6J,GAC9BF,EAAGvC,MAAMyC,KAAUD,EAAOC,KAC1BF,EAAGvC,MAAMyC,GAAQD,EAAOC,MAGzBF,GAGXJ,YAAa,WACY,OAAjB5Q,KAAKwP,UACLxP,KAAKwP,QAAQa,WAAa,IAIlCrN,SAAU,SAAUmO,GAChB,GAAIzO,GAAW1C,KAAKwP,QAAQc,YAAca,CAC1CnR,MAAKoR,mBAAmB1O,GAAU,IAGtC0O,mBAAoB,SAAU1O,EAAU2O,GACpC,GAAIhB,GAAarQ,KAAKwP,QAAQa,WAC1BiB,KAAUtR,KAAKwP,QAAQ+B,YAAc,GACrCnM,EAAS1C,EAAW4O,EACpB7O,EAAS2C,EAASiL,EAClBmB,EAAYxR,KAAKwP,QAAQc,YAActQ,KAAKwP,QAAQ+B,WAExD,IAAiB,GAAbC,EAAJ,CAMA,IAAKH,GAAsB5O,IAAR6O,GAA2BA,EAAT7O,EAAe,CAEhD,GAAIc,GAAO,CACXd,GAASG,KAAKC,KAAKU,EAAMX,KAAKE,IAAIS,EAAMd,IACxC2C,EAASiL,EAAa5N,EAI1B2C,EAASxC,KAAKC,IAAI,EAAGD,KAAKE,IAAI0O,EAAWpM,IAErCA,GAAUiL,IACVrQ,KAAKwP,QAAQa,WAAajL,KAKlCrB,SAAU,WACN,MAAOnB,MAAKiB,MAAM7D,KAAKb,UAAUoS,YAAcvR,KAAKD,OAAOpB,aAG/D6I,SAAU,SAAUxD,GACZA,GAAShE,KAAKgE,QAElBhE,KAAKgE,MAAQA,EAEThE,KAAKD,OAAOjB,YAAckB,KAAKD,OAAOhB,aACtCiB,KAAKyO,MAAMzO,KAAKwP,SACZxL,MAAO,KAGXhE,KAAKyO,MAAMzO,KAAKwP,SACZxL,SAAUhE,KAAKgE,MAAQhE,KAAKD,OAAOpB,YAAc,OAIzDqB,KAAKyR,eAGTC,UAAW,SAAUtT,GACbA,GAAU4B,KAAK5B,SACnB4B,KAAK5B,OAASA,EACd4B,KAAKyO,MAAMzO,KAAKwP,SACZpR,UAAW4B,KAAK5B,OAAS4B,KAAKD,OAAOpB,YAAc,OAEvDqB,KAAKyR,eAGTvQ,SAAU,SAAUA,GAChB,GAAIyQ,GAAa,EAAI3R,KAAKD,OAAOpB,WAC7BiT,EAAMhP,KAAKiB,MAAM3C,EAAWlB,KAAKgE,OAAS2N,CAE9C,IAAIC,EAAM5R,KAAKqP,SAAWuC,EAAM5R,KAAKqP,SAAWsC,EAAY,CAGxD,GAFA3R,KAAKqP,QAAUuC,EAEX5R,KAAKD,OAAOhB,aAAc,CAC1B,GAAI8S,MAAY7R,KAAKwP,QAAQc,YAAcpP,EAC3ClB,MAAKoR,mBAAmBS,GAG5B7R,KAAK8R,eAAe5Q,KAI5BM,QAAS,WACLxB,KAAKyH,QACDzH,KAAKwP,UACLxP,KAAKb,UAAUwP,YAAY3O,KAAKwP,SAChCxP,KAAKwP,QAAU,OAKvBD,eAAgB,aAEhBkC,WAAY,aAEZV,SAAU,SAAU9M,EAAOpB,KAE3BkP,UAAW,aAEXD,eAAgB,SAAUpP,MAG9BxE,WAAW+B,KAAKC,OAAOhC,WAAW6C,OAAQ7C,WAAWuK,UCjMrDvK,WAAW6C,OAAOiR,OAASnR,OAAOC,OAAO5C,WAAW6C,QAEpD7C,WAAW+B,KAAKC,OAAOhC,WAAW6C,OAAOiR,QACrCzC,eAAgB,WACZ,GAAI0C,GAAajS,KAAKwP,QAAQZ,YAC1B5O,KAAKyO,MAAMtO,SAASiO,cAAc,WAC9B1L,SAAU,WACVwP,OAAQ,EACR9B,KAAM,EACN+B,IAAK,EACLxB,OAAQ,IAsBhB,IAnBA3Q,KAAKoS,OAASH,EAAWI,WAAW,MAEpCrS,KAAKsS,aAAetS,KAAKwP,QAAQZ,YAC7B5O,KAAKyO,MAAMtO,SAASiO,cAAc,SAC9B1L,SAAU,WACVwP,OAAQ,EACR9B,KAAM,EACN+B,IAAK,EACLxB,OAAQ,EACR4B,SAAU,SACVvO,MAAO,IACPyL,QAAS,OACT+C,UAAW,aACXC,iBAAkB,QAClBC,iBAAkB1S,KAAKD,OAAOvB,YAAc,KAC5CmU,iBAAkB3S,KAAKD,OAAOxB,eAIlCyB,KAAKD,OAAO1B,WAAa2B,KAAKD,OAAOzB,cAAe,CACpD,GAAIsU,GAAiB5S,KAAKsS,aAAa1D,YACnCzO,SAASiO,cAAc,UAE3BpO,MAAK6S,WAAaD,EAAeP,WAAW,QAIpDZ,WAAY,WACR,GAAIzN,GAAQpB,KAAKiB,MAAM7D,KAAKgE,MAAQhE,KAAKD,OAAOpB,WAEhDqB,MAAKoS,OAAOU,OAAO9O,MAAQhE,KAAKgE,MAChChE,KAAKoS,OAAOU,OAAO1U,OAAS4B,KAAK5B,OACjC4B,KAAKyO,MAAMzO,KAAKoS,OAAOU,QAAU9O,MAAOA,EAAQ,OAEhDhE,KAAKyO,MAAMzO,KAAKsS,cAAgB7C,QAAS,UAErCzP,KAAK6S,aACL7S,KAAK6S,WAAWC,OAAO9O,MAAQhE,KAAKgE,MACpChE,KAAK6S,WAAWC,OAAO1U,OAAS4B,KAAK5B,OACrC4B,KAAKyO,MAAMzO,KAAK6S,WAAWC,QAAU9O,MAAOA,EAAQ,QAGxDhE,KAAK+R,aAGTA,UAAW,WACP/R,KAAKoS,OAAOW,UAAU,EAAG,EAAG/S,KAAKgE,MAAOhE,KAAK5B,QACzC4B,KAAK6S,YACL7S,KAAK6S,WAAWE,UAAU,EAAG,EAAG/S,KAAKgE,MAAOhE,KAAK5B,SAIzD0S,SAAU,SAAU7M,EAAO+O,GAEvB,GAAI/O,EAAM,YAAc4D,OAAO,CAC3B,GAAIoF,GAAWhJ,CACf,IAAIjE,KAAKD,OAAOP,cAGZ,MAFAQ,MAAK0R,UAAUzE,EAASzG,OAASxG,KAAKD,OAAO3B,OAAS4B,KAAKD,OAAOpB,gBAClEsO,GAAS5F,QAAQrH,KAAK8Q,SAAU9Q,KAGhCiE,GAAQgJ,EAAS,GAKzB,GAAIgG,GAAI,GAAMjT,KAAKD,OAAOpB,WACtBqF,EAAQhE,KAAKgE,MACb5F,EAAS4B,KAAKD,OAAO3B,OAAS4B,KAAKD,OAAOpB,WAC1CuU,EAAU9U,EAAS4U,GAAgB,EACnCG,EAAQ/U,EAAS,EACjBoI,KAAYvC,EAAMuC,OAAS,GAC3B4M,EAAMpT,KAAKD,OAAO8Q,SAAW7Q,KAAKD,OAAOpB,WACzC0U,EAAMzQ,KAAKC,IAAI7C,KAAKD,OAAOpB,cAAeyU,EAAM,IAChDE,EAAOF,EAAMC,EAEbE,EAAS,CACb,IAAIvT,KAAKD,OAAOd,UAAW,CACvB,GAAI6D,GAAKD,CACTA,GAAMD,KAAKC,IAAI2G,MAAM5G,KAAMqB,GAC3BnB,EAAMF,KAAKE,IAAI0G,MAAM5G,KAAMqB,GAC3BsP,EAAS1Q,GACJC,EAAMyQ,IACPA,GAAUzQ,GAIlB,GAAI0Q,GAAQhN,EAASxC,CAErBhE,MAAKoS,OAAOqB,UAAYzT,KAAKD,OAAO1B,UAChC2B,KAAK6S,aACL7S,KAAK6S,WAAWY,UAAYzT,KAAKD,OAAOzB,gBAG1C0B,KAAKoS,OAAQpS,KAAK6S,YAAaxL,QAAQ,SAAUqM,GAC/C,GAAKA,EAEL,GAAI1T,KAAKD,OAAO4T,WACZ,IAAK,GAAItK,GAAI,EAAOrF,EAAJqF,EAAWA,GAAKiK,EAAM,CAClC,GAAIM,GAAIhR,KAAKiB,MAAMI,EAAMrB,KAAKiR,MAAM,EAAIxK,EAAImK,IAAUD,EAASJ,EAC/DO,GAAGI,SAASzK,EAAI4J,EAAGE,EAAQS,EAAIV,EAASE,EAAMH,EAAO,EAAJW,OAElD,CACH,IAAK,GAAIvK,GAAI,EAAOrF,EAAJqF,EAAWA,GAAKiK,EAAM,CAClC,GAAIM,GAAIhR,KAAKiB,MAAMI,EAAMrB,KAAKiR,MAAM,EAAIxK,EAAImK,IAAUD,EAASJ,EAC/DO,GAAGI,SAASzK,EAAI4J,EAAGE,EAAQS,EAAIV,EAASE,EAAMH,EAAGW,GAGrD,IAAK,GAAIvK,GAAI,EAAOrF,EAAJqF,EAAWA,GAAKiK,EAAM,CAClC,GAAIM,GAAIhR,KAAKiB,MAAMI,EAAM,EAAIoF,EAAImK,EAAQ,GAAKD,EAASJ,EACvDO,GAAGI,SAASzK,EAAI4J,EAAGE,EAAQS,EAAIV,EAASE,EAAMH,EAAGW,MAG1D5T,OAGP+Q,SAAU,SAAU9M,EAAO+O,GAEvB,GAAI/O,EAAM,YAAc4D,OAAO,CAC3B,GAAIoF,GAAWhJ,CACf,IAAIjE,KAAKD,OAAOP,cAGZ,MAFAQ,MAAK0R,UAAUzE,EAASzG,OAASxG,KAAKD,OAAO3B,OAAS4B,KAAKD,OAAOpB,gBAClEsO,GAAS5F,QAAQrH,KAAK+Q,SAAU/Q,KAGhCiE,GAAQgJ,EAAS,GAKzB,GAAIgG,GAAI,GAAMjT,KAAKD,OAAOpB,WACtBP,EAAS4B,KAAKD,OAAO3B,OAAS4B,KAAKD,OAAOpB,WAC1CuU,EAAU9U,EAAS4U,GAAgB,EACnCG,EAAQ/U,EAAS,EACjBoI,KAAYvC,EAAMuC,OAAS,GAE3BgN,EAAQ,CACRxT,MAAKD,OAAOjB,YAAckB,KAAKgE,OAASwC,IACxCgN,EAAQxT,KAAKgE,MAAQwC,EAGzB,IAAI+M,GAAS,CACb,IAAIvT,KAAKD,OAAOd,UAAW,CACvB,GAAI6D,GAAKD,CACTA,GAAMD,KAAKC,IAAI2G,MAAM5G,KAAMqB,GAC3BnB,EAAMF,KAAKE,IAAI0G,MAAM5G,KAAMqB,GAC3BsP,EAAS1Q,GACJC,EAAMyQ,IACPA,GAAUzQ,GAIlB9C,KAAKoS,OAAOqB,UAAYzT,KAAKD,OAAO1B,UAChC2B,KAAK6S,aACL7S,KAAK6S,WAAWY,UAAYzT,KAAKD,OAAOzB,gBAG1C0B,KAAKoS,OAAQpS,KAAK6S,YAAaxL,QAAQ,SAAUqM,GAC/C,GAAKA,EAAL,CAEAA,EAAGK,YACHL,EAAGM,OAAOf,EAAGE,EAAQD,EAErB,KAAK,GAAI7J,GAAI,EAAO7C,EAAJ6C,EAAYA,IAAK,CAC7B,GAAIuK,GAAIhR,KAAKiB,MAAMI,EAAM,EAAIoF,GAAKkK,EAASJ,EAC3CO,GAAGO,OAAO5K,EAAImK,EAAQP,EAAGE,EAAQS,EAAIV,GAKzC,IAAK,GAAI7J,GAAI7C,EAAS,EAAG6C,GAAK,EAAGA,IAAK,CAClC,GAAIuK,GAAIhR,KAAKiB,MAAMI,EAAM,EAAIoF,EAAI,GAAKkK,EAASJ,EAC/CO,GAAGO,OAAO5K,EAAImK,EAAQP,EAAGE,EAAQS,EAAIV,GAGzCQ,EAAGQ,YACHR,EAAGS,OAGHT,EAAGI,SAAS,EAAGX,EAAQD,EAAUD,EAAGjT,KAAKgE,MAAOiP,KACjDjT,OAGP8R,eAAgB,SAAU5Q,GACtB,GAAI0Q,GAAMhP,KAAKiB,MACX7D,KAAKgE,MAAQ9C,GACblB,KAAKD,OAAOpB,UAChBqB,MAAKyO,MAAMzO,KAAKsS,cAAgBtO,MAAO4N,EAAM,UCvMpD,WACG,GAAI9R,GAAO,WACP,GAAIsU,GAAajU,SAASkU,iBAAiB,aAE3CxM,OAAMC,UAAUT,QAAQR,KAAKuN,EAAY,SAAUpD,GAC/C,GAAIjR,GAAS7B,WAAW+B,KAAKC,QACzBf,UAAW6R,EACXpR,QAAS,eACTF,eAAe,GAChBsR,EAAGsD,QAENtD,GAAGvC,MAAMgB,QAAU,OAEnB,IAAI/H,GAAaxJ,WAAW4C,OAAOf,EAEnC,IAAIiR,EAAGsD,QAAQrQ,MACX,GAAIA,GAAQ+C,KAAKuN,MAAMvD,EAAGsD,QAAQrQ,MAGtCyD,GAAW7C,KAAKmM,EAAGsD,QAAQ9O,IAAKvB,KAIZ,cAAxB9D,SAASqU,WACT1U,IAEAlB,OAAOsG,iBAAiB,OAAQpF","sourceRoot":"/"} \ No newline at end of file diff --git a/static/wavesurfer.js/example/angular/app.js b/static/wavesurfer.js/example/angular/app.js new file mode 100644 index 0000000..665d958 --- /dev/null +++ b/static/wavesurfer.js/example/angular/app.js @@ -0,0 +1,63 @@ +var app = angular.module('ngWavesurfer', []); + +app.directive('ngWavesurfer', function () { + return { + restrict: 'E', + + link: function ($scope, $element, $attrs) { + $element.css('display', 'block'); + + var options = angular.extend({ container: $element[0] }, $attrs); + var wavesurfer = WaveSurfer.create(options); + + if ($attrs.url) { + wavesurfer.load($attrs.url, $attrs.data || null); + } + + $scope.$emit('wavesurferInit', wavesurfer); + } + }; +}); + +app.controller('PlaylistController', function ($scope) { + var activeUrl = null; + + $scope.paused = true; + + $scope.$on('wavesurferInit', function (e, wavesurfer) { + $scope.wavesurfer = wavesurfer; + + $scope.wavesurfer.on('play', function () { + $scope.paused = false; + }); + + $scope.wavesurfer.on('pause', function () { + $scope.paused = true; + }); + + $scope.wavesurfer.on('finish', function () { + $scope.paused = true; + $scope.wavesurfer.seekTo(0); + $scope.$apply(); + }); + }); + + $scope.play = function (url) { + if (!$scope.wavesurfer) { + return; + } + + activeUrl = url; + + $scope.wavesurfer.once('ready', function () { + $scope.wavesurfer.play(); + $scope.$apply(); + }); + + $scope.wavesurfer.load(activeUrl); + }; + + $scope.isPlaying = function (url) { + return url == activeUrl; + }; +}); diff --git a/static/wavesurfer.js/example/angular/index.html b/static/wavesurfer.js/example/angular/index.html new file mode 100644 index 0000000..a93a813 --- /dev/null +++ b/static/wavesurfer.js/example/angular/index.html @@ -0,0 +1,120 @@ + + + + + wavesurfer.js | Angular + + + + + + + + + + + + + + + + + + + + + +
+
+ + +

wavesurfer.js Angular Demo

+
+ + + + +
+ + + + + + diff --git a/static/wavesurfer.js/example/annotation/annotations.json b/static/wavesurfer.js/example/annotation/annotations.json new file mode 100644 index 0000000..21e4441 --- /dev/null +++ b/static/wavesurfer.js/example/annotation/annotations.json @@ -0,0 +1 @@ +[{"start":1.1,"end":1.8,"data":{},"attributes":{"label": "abc","highlight":true}},{"start":2.7,"end":4.1,"data":{}},{"start":6,"end":8.2,"data":{}},{"start":8.6,"end":12.2,"data":{}},{"start":12.8,"end":16.2,"data":{}},{"start":"17.8","end":"18.6","data":{"note":"羅生門"}},{"start":"19.19","end":"20.5","data":{"note":"芥川龍之介"}},{"start":"22.5","end":"24.5","data":{"note":"ある日の暮方の事である。"}},{"start":"25.19","end":"26.3","data":{"note":"一人の下人げにんが、"}},{"start":"26.8","end":"28","data":{"note":"羅生門らしょうもんの下で"}},{"start":"28.3","end":"29.6","data":{"note":"雨やみを待っていた。"}},{"start":"30.8","end":"34.5","data":{"note":"広い門の下には、この男のほかに誰もいない。"}},{"start":"35.4","end":"39.8","data":{"note":"ただ、所々丹塗の剥げた、大きな円柱に、蟋蟀が一匹とまっている。"}},{"start":"40.3","end":"42.4","data":{"note":"蟋蟀が一匹とまっている。"}},{"start":43.5,"end":54.2,"data":{}},{"start":55,"end":57.7,"data":{}},{"start":59.7,"end":64.3,"data":{}},{"start":64.6,"end":67.8,"data":{}},{"start":68.7,"end":71.4,"data":{}},{"start":72.7,"end":81.6,"data":{}},{"start":81.9,"end":84.7,"data":{}},{"start":85.6,"end":89.3,"data":{}},{"start":89.6,"end":92.4,"data":{}},{"start":93.6,"end":94.3,"data":{}},{"start":94.5,"end":96.9,"data":{}},{"start":97.4,"end":98.3,"data":{}},{"start":98.6,"end":99.7,"data":{}},{"start":100.2,"end":106,"data":{}},{"start":106.3,"end":107.7,"data":{}},{"start":109,"end":113.2,"data":{}},{"start":113.6,"end":117.9,"data":{}},{"start":119.5,"end":123.7,"data":{}},{"start":124.5,"end":130.2,"data":{}},{"start":130.5,"end":131.6,"data":{}},{"start":132.8,"end":134.3,"data":{}},{"start":134.6,"end":136.4,"data":{}},{"start":137.1,"end":139.6,"data":{}},{"start":141.1,"end":146.1,"data":{}},{"start":147.9,"end":150.9,"data":{}},{"start":151.6,"end":157.7,"data":{}},{"start":158.2,"end":162.2,"data":{}},{"start":163.8,"end":168.4,"data":{}},{"start":168.7,"end":170.6,"data":{}},{"start":170.9,"end":172.2,"data":{}},{"start":172.5,"end":174.4,"data":{}},{"start":174.7,"end":175.6,"data":{}},{"start":176,"end":177.7,"data":{}},{"start":179.2,"end":183,"data":{}},{"start":183.5,"end":192.2,"data":{}},{"start":193,"end":196.9,"data":{}},{"start":197.9,"end":199.3,"data":{}},{"start":199.6,"end":203.1,"data":{}},{"start":203.7,"end":205,"data":{}},{"start":205.3,"end":211.8,"data":{}},{"start":212.7,"end":215.5,"data":{}},{"start":215.7,"end":216.6,"data":{}},{"start":217.1,"end":219.1,"data":{}},{"start":219.5,"end":221.9,"data":{}},{"start":222.5,"end":224,"data":{}},{"start":225.2,"end":232.1,"data":{}},{"start":233.5,"end":238.1,"data":{}},{"start":239.1,"end":240.7,"data":{}},{"start":241.1,"end":243.8,"data":{}},{"start":244.5,"end":246.9,"data":{}},{"start":247.1,"end":248.7,"data":{}},{"start":249,"end":251.5,"data":{}},{"start":251.7,"end":257.6,"data":{}},{"start":259.6,"end":261.7,"data":{}},{"start":262,"end":264.5,"data":{}},{"start":265.4,"end":272.4,"data":{}},{"start":272.9,"end":275.3,"data":{}},{"start":277.6,"end":282.4,"data":{}},{"start":283.1,"end":286.6,"data":{}},{"start":287,"end":288.7,"data":{}},{"start":289.4,"end":294.3,"data":{}},{"start":295.8,"end":297.3,"data":{}},{"start":298.5,"end":305,"data":{}},{"start":306,"end":306.8,"data":{}},{"start":307.2,"end":308,"data":{}},{"start":308.4,"end":312,"data":{}},{"start":312.6,"end":315.8,"data":{}},{"start":316.3,"end":318.8,"data":{}},{"start":319.3,"end":321,"data":{}},{"start":321.7,"end":324.1,"data":{}},{"start":324.8,"end":325.6,"data":{}},{"start":326,"end":329.7,"data":{}},{"start":331.8,"end":333.6,"data":{}},{"start":333.9,"end":335.9,"data":{}},{"start":336.5,"end":340.7,"data":{}},{"start":341.6,"end":344.5,"data":{}},{"start":344.8,"end":347.2,"data":{}},{"start":348.4,"end":350.8,"data":{}},{"start":351.4,"end":353.4,"data":{}},{"start":355.3,"end":357,"data":{}},{"start":357.3,"end":359,"data":{}},{"start":359.4,"end":361.3,"data":{}},{"start":361.6,"end":363.2,"data":{}},{"start":364.1,"end":370.3,"data":{}},{"start":370.6,"end":371.9,"data":{}},{"start":372.2,"end":374.3,"data":{}},{"start":375.1,"end":382.1,"data":{}},{"start":383,"end":386.1,"data":{}},{"start":387.1,"end":397.1,"data":{}},{"start":398.5,"end":406.6,"data":{}},{"start":406.9,"end":412.2,"data":{}},{"start":413.2,"end":415.2,"data":{}},{"start":415.6,"end":416.2,"data":{}},{"start":416.5,"end":418.9,"data":{}},{"start":419.9,"end":424.3,"data":{}},{"start":425.7,"end":431.2,"data":{}},{"start":432.4,"end":436,"data":{}},{"start":436.5,"end":437.1,"data":{}},{"start":437.3,"end":441.8,"data":{}},{"start":442.7,"end":452,"data":{}},{"start":453.4,"end":454.9,"data":{}},{"start":455.5,"end":458.8,"data":{}},{"start":459.3,"end":461.2,"data":{}},{"start":463,"end":470,"data":{}},{"start":470.7,"end":473.4,"data":{}},{"start":473.7,"end":478.9,"data":{}},{"start":480.4,"end":486.2,"data":{}},{"start":486.9,"end":490.6,"data":{}},{"start":490.9,"end":492.6,"data":{}},{"start":493.9,"end":495.7,"data":{}},{"start":496.2,"end":500.9,"data":{}},{"start":501.9,"end":505.5,"data":{}},{"start":506.5,"end":508.9,"data":{}},{"start":509.3,"end":509.9,"data":{}},{"start":510.2,"end":513.4,"data":{}},{"start":514.1,"end":521.5,"data":{}},{"start":522.6,"end":528.1,"data":{}},{"start":528.5,"end":534.6,"data":{}},{"start":536.7,"end":539.7,"data":{}},{"start":540.1,"end":541.1,"data":{}},{"start":542,"end":547.3,"data":{}},{"start":548.3,"end":554,"data":{}},{"start":556.2,"end":561.2,"data":{}},{"start":561.8,"end":567.8,"data":{}},{"start":568.2,"end":569.9,"data":{}},{"start":570.8,"end":575.2,"data":{}},{"start":575.6,"end":579.6,"data":{}},{"start":580.9,"end":582.9,"data":{}},{"start":583.2,"end":585.1,"data":{}},{"start":587.6,"end":594.9,"data":{}},{"start":596.3,"end":601.2,"data":{}},{"start":602.6,"end":616.4,"data":{}},{"start":617.4,"end":619.2,"data":{}},{"start":620.5,"end":623.4,"data":{}},{"start":625.1,"end":628.5,"data":{}},{"start":629,"end":630.4,"data":{}},{"start":630.9,"end":632.9,"data":{}},{"start":633.8,"end":635.2,"data":{}},{"start":635.7,"end":637.9,"data":{}},{"start":638.4,"end":639.8,"data":{}},{"start":640.9,"end":644.6,"data":{}},{"start":645.6,"end":648.7,"data":{}},{"start":649.5,"end":651.7,"data":{}},{"start":653.6,"end":664.1,"data":{}},{"start":664.7,"end":668.9,"data":{}},{"start":669.6,"end":678.7,"data":{}},{"start":681.9,"end":687,"data":{}},{"start":687.8,"end":693.3,"data":{}},{"start":694.4,"end":705.4,"data":{}},{"start":706.3,"end":711.2,"data":{}},{"start":711.6,"end":713.3,"data":{}},{"start":714.4,"end":719.6,"data":{}},{"start":720.3,"end":725.6,"data":{}},{"start":726.9,"end":729,"data":{}},{"start":730.2,"end":735.5,"data":{}},{"start":735.9,"end":736.2,"data":{}},{"start":737.4,"end":738.7,"data":{}},{"start":739.5,"end":740.1,"data":{}},{"start":740.3,"end":742.1,"data":{}},{"start":742.5,"end":745.8,"data":{}},{"start":746.4,"end":749.6,"data":{}},{"start":750,"end":752.7,"data":{}},{"start":753.9,"end":757.5,"data":{}},{"start":759.1,"end":761.2,"data":{}},{"start":761.8,"end":764.7,"data":{}},{"start":764.9,"end":766.6,"data":{}},{"start":767.5,"end":769.3,"data":{}},{"start":769.8,"end":771.9,"data":{}},{"start":773.4,"end":774.4,"data":{}},{"start":774.7,"end":775.2,"data":{}},{"start":775.6,"end":777,"data":{}},{"start":777.8,"end":780.4,"data":{}},{"start":780.7,"end":786.4,"data":{}},{"start":787.5,"end":789.1,"data":{}},{"start":790,"end":793.7,"data":{}},{"start":794.2,"end":797.3,"data":{}},{"start":797.5,"end":798.4,"data":{}},{"start":798.9,"end":801.1,"data":{}},{"start":802.1,"end":807.3,"data":{}},{"start":807.6,"end":810.9,"data":{}},{"start":812.1,"end":813.3,"data":{}},{"start":813.9,"end":816.5,"data":{}},{"start":817.1,"end":819,"data":{}},{"start":820.1,"end":821.3,"data":{}},{"start":821.9,"end":822.3,"data":{}},{"start":822.7,"end":828.4,"data":{}},{"start":828.7,"end":830.7,"data":{}},{"start":831.9,"end":837.6,"data":{}},{"start":839.3,"end":840,"data":{}},{"start":840.2,"end":842.7,"data":{}},{"start":843.7,"end":847.2,"data":{}},{"start":848.3,"end":852.7,"data":{}},{"start":853.9,"end":855.8,"data":{}},{"start":856.1,"end":857.6,"data":{}},{"start":858.2,"end":860.5,"data":{}},{"start":862.3,"end":863.2,"data":{}},{"start":863.5,"end":864.8,"data":{}},{"start":865.2,"end":866.5,"data":{}},{"start":867.1,"end":868.7,"data":{}},{"start":869.9,"end":871.4,"data":{}},{"start":871.7,"end":873,"data":{}},{"start":873.3,"end":875,"data":{}},{"start":876.1,"end":876.9,"data":{}},{"start":877.1,"end":880.6,"data":{}},{"start":881.1,"end":883.7,"data":{}},{"start":886.5,"end":887.5,"data":{}},{"start":888,"end":890.6,"data":{}},{"start":891.9,"end":892.6,"data":{}},{"start":892.9,"end":893.9,"data":{}},{"start":894.2,"end":895.8,"data":{}},{"start":896.2,"end":897.2,"data":{}},{"start":897.6,"end":899.5,"data":{}},{"start":901.9,"end":904.2,"data":{}},{"start":905.3,"end":907.3,"data":{}},{"start":908.5,"end":910.8,"data":{}},{"start":914.3,"end":917.5,"data":{}},{"start":918.1,"end":925.4,"data":{}},{"start":926.1,"end":930.9,"data":{}},{"start":931.2,"end":938.4,"data":{}},{"start":938.8,"end":939.8,"data":{}},{"start":940.2,"end":941.6,"data":{}},{"start":943.2,"end":944.4,"data":{}},{"start":945,"end":950.3,"data":{}},{"start":951.4,"end":953.7,"data":{}},{"start":954.2,"end":958,"data":{}},{"start":959.4,"end":962.8,"data":{}},{"start":963.9,"end":971.7,"data":{}},{"start":972.2,"end":976.9,"data":{}},{"start":978,"end":979,"data":{}},{"start":979.5,"end":988,"data":{}},{"start":989,"end":992.2,"data":{}},{"start":993,"end":995.1,"data":{}},{"start":995.6,"end":997.6,"data":{}},{"start":998.7,"end":1003.1,"data":{}},{"start":1004.2,"end":1006.7,"data":{}},{"start":1007,"end":1008.4,"data":{}},{"start":1008.8,"end":1011.9,"data":{}},{"start":1012.1,"end":1012.8,"data":{}},{"start":1013.4,"end":1017,"data":{}},{"start":1017.9,"end":1022.5,"data":{}},{"start":1024.2,"end":1026.4,"data":{}},{"start":1027.3,"end":1034.4,"data":{}},{"start":1035.3,"end":1038.9,"data":{}},{"start":1039.3,"end":1042.3,"data":{}},{"start":1043.5,"end":1048.4,"data":{}},{"start":1049.2,"end":1050.7,"data":{}},{"start":1051.2,"end":1053.6,"data":{}},{"start":1054.1,"end":1056.5,"data":{}},{"start":1056.9,"end":1059.1,"data":{}},{"start":1059.5,"end":1067,"data":{}},{"start":1067.3,"end":1069.1,"data":{}},{"start":1069.9,"end":1072.4,"data":{}},{"start":1072.9,"end":1076.5,"data":{}},{"start":1077,"end":1078.8,"data":{}},{"start":1080.6,"end":1081.4,"data":{}},{"start":1082.6,"end":1086.5,"data":{}},{"start":1087.6,"end":1088.4,"data":{}},{"start":1088.8,"end":1096.7,"data":{}},{"start":1097.6,"end":1104.9,"data":{}},{"start":1105.4,"end":1108.9,"data":{}},{"start":1109.6,"end":1114.6,"data":{}},{"start":1116,"end":1119.5,"data":{}},{"start":1120.4,"end":1127.8,"data":{}},{"start":1130.1,"end":1132.5,"data":{}},{"start":1133.1,"end":1134.2,"data":{}},{"start":1134.6,"end":1136.7,"data":{}},{"start":1137.3,"end":1139.1,"data":{}},{"start":1140.9,"end":1141.5,"data":{}},{"start":1141.9,"end":1143,"data":{}},{"start":1143.5,"end":1145.4,"data":{}},{"start":1146.1,"end":1148.6,"data":{}},{"start":1148.8,"end":1150.7,"data":{}},{"start":1151.9,"end":1153.1,"data":{}},{"start":1153.7,"end":1158.2,"data":{}},{"start":1159.5,"end":1160.6,"data":{}},{"start":1161.7,"end":1162.9,"data":{}},{"start":1163.3,"end":1165,"data":{}},{"start":1166.9,"end":1168.2,"data":{}},{"start":1168.5,"end":1169.5,"data":{}},{"start":1172.4,"end":1174.3,"data":{}}] \ No newline at end of file diff --git a/static/wavesurfer.js/example/annotation/app.css b/static/wavesurfer.js/example/annotation/app.css new file mode 100644 index 0000000..fc8a478 --- /dev/null +++ b/static/wavesurfer.js/example/annotation/app.css @@ -0,0 +1,8 @@ +region.wavesurfer-region:before { + content: attr(data-region-label); +} + +region.wavesurfer-region[data-region-highlight] { + border: 1px solid rgb(86, 180, 239); + box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.05) inset, 0px 0px 8px rgba(82, 168, 236, 0.6); +} \ No newline at end of file diff --git a/static/wavesurfer.js/example/annotation/app.js b/static/wavesurfer.js/example/annotation/app.js new file mode 100644 index 0000000..085f4c5 --- /dev/null +++ b/static/wavesurfer.js/example/annotation/app.js @@ -0,0 +1,270 @@ +/** + * Create a WaveSurfer instance. + */ +var wavesurfer = Object.create(WaveSurfer); + +/** + * Init & load. + */ +document.addEventListener('DOMContentLoaded', function () { + // Init wavesurfer + wavesurfer.init({ + container: '#waveform', + height: 100, + pixelRatio: 1, + scrollParent: true, + normalize: true, + minimap: true, + backend: 'MediaElement' + }); + + wavesurfer.util.ajax({ + responseType: 'json', + url: 'rashomon.json' + }).on('success', function (data) { + wavesurfer.load( + 'http://www.archive.org/download/mshortworks_001_1202_librivox/msw001_03_rashomon_akutagawa_mt_64kb.mp3', + data + ); + }); + + /* Regions */ + wavesurfer.enableDragSelection({ + color: randomColor(0.1) + }); + + wavesurfer.on('ready', function () { + if (localStorage.regions) { + loadRegions(JSON.parse(localStorage.regions)); + } else { + // loadRegions( + // extractRegions( + // wavesurfer.backend.getPeaks(512), + // wavesurfer.getDuration() + // ) + // ); + wavesurfer.util.ajax({ + responseType: 'json', + url: 'annotations.json' + }).on('success', function (data) { + loadRegions(data); + saveRegions(); + }); + } + }); + wavesurfer.on('region-click', function (region, e) { + e.stopPropagation(); + // Play on click, loop on shift click + e.shiftKey ? region.playLoop() : region.play(); + }); + wavesurfer.on('region-click', editAnnotation); + wavesurfer.on('region-updated', saveRegions); + wavesurfer.on('region-removed', saveRegions); + wavesurfer.on('region-in', showNote); + + wavesurfer.on('region-play', function (region) { + region.once('out', function () { + wavesurfer.play(region.start); + wavesurfer.pause(); + }); + }); + + + /* Minimap plugin */ + wavesurfer.initMinimap({ + height: 30, + waveColor: '#ddd', + progressColor: '#999', + cursorColor: '#999' + }); + + + /* Timeline plugin */ + wavesurfer.on('ready', function () { + var timeline = Object.create(WaveSurfer.Timeline); + timeline.init({ + wavesurfer: wavesurfer, + container: "#wave-timeline" + }); + }); + + + /* Toggle play/pause buttons. */ + var playButton = document.querySelector('#play'); + var pauseButton = document.querySelector('#pause'); + wavesurfer.on('play', function () { + playButton.style.display = 'none'; + pauseButton.style.display = ''; + }); + wavesurfer.on('pause', function () { + playButton.style.display = ''; + pauseButton.style.display = 'none'; + }); +}); + + +/** + * Save annotations to localStorage. + */ +function saveRegions() { + localStorage.regions = JSON.stringify( + Object.keys(wavesurfer.regions.list).map(function (id) { + var region = wavesurfer.regions.list[id]; + return { + start: region.start, + end: region.end, + attributes: region.attributes, + data: region.data + }; + }) + ); +} + + +/** + * Load regions from localStorage. + */ +function loadRegions(regions) { + regions.forEach(function (region) { + region.color = randomColor(0.1); + wavesurfer.addRegion(region); + }); +} + + +/** + * Extract regions separated by silence. + */ +function extractRegions(peaks, duration) { + // Silence params + var minValue = 0.0015; + var minSeconds = 0.25; + + var length = peaks.length; + var coef = duration / length; + var minLen = minSeconds / coef; + + // Gather silence indeces + var silences = []; + Array.prototype.forEach.call(peaks, function (val, index) { + if (val < minValue) { + silences.push(index); + } + }); + + // Cluster silence values + var clusters = []; + silences.forEach(function (val, index) { + if (clusters.length && val == silences[index - 1] + 1) { + clusters[clusters.length - 1].push(val); + } else { + clusters.push([ val ]); + } + }); + + // Filter silence clusters by minimum length + var fClusters = clusters.filter(function (cluster) { + return cluster.length >= minLen; + }); + + // Create regions on the edges of silences + var regions = fClusters.map(function (cluster, index) { + var next = fClusters[index + 1]; + return { + start: cluster[cluster.length - 1], + end: (next ? next[0] : length - 1) + }; + }); + + // Add an initial region if the audio doesn't start with silence + var firstCluster = fClusters[0]; + if (firstCluster && firstCluster[0] != 0) { + regions.unshift({ + start: 0, + end: firstCluster[firstCluster.length - 1] + }); + } + + // Filter regions by minimum length + var fRegions = regions.filter(function (reg) { + return reg.end - reg.start >= minLen; + }); + + // Return time-based regions + return fRegions.map(function (reg) { + return { + start: Math.round(reg.start * coef * 10) / 10, + end: Math.round(reg.end * coef * 10) / 10 + }; + }); +} + + +/** + * Random RGBA color. + */ +function randomColor(alpha) { + return 'rgba(' + [ + ~~(Math.random() * 255), + ~~(Math.random() * 255), + ~~(Math.random() * 255), + alpha || 1 + ] + ')'; + +} + + +/** + * Edit annotation for a region. + */ +function editAnnotation (region) { + var form = document.forms.edit; + form.style.opacity = 1; + form.elements.start.value = Math.round(region.start * 10) / 10, + form.elements.end.value = Math.round(region.end * 10) / 10; + form.elements.note.value = region.data.note || ''; + form.onsubmit = function (e) { + e.preventDefault(); + region.update({ + start: form.elements.start.value, + end: form.elements.end.value, + data: { + note: form.elements.note.value + } + }); + form.style.opacity = 0; + }; + form.onreset = function () { + form.style.opacity = 0; + form.dataset.region = null; + }; + form.dataset.region = region.id; +} + + +/** + * Display annotation. + */ +function showNote (region) { + if (!showNote.el) { + showNote.el = document.querySelector('#subtitle'); + } + showNote.el.textContent = region.data.note || '–'; +} + +/** + * Bind controls. + */ +GLOBAL_ACTIONS['delete-region'] = function () { + var form = document.forms.edit; + var regionId = form.dataset.region; + if (regionId) { + wavesurfer.regions.list[regionId].remove(); + form.reset(); + } +}; + +GLOBAL_ACTIONS['export'] = function () { + window.open('data:application/json;charset=utf-8,' + + encodeURIComponent(localStorage.regions)); +}; diff --git a/static/wavesurfer.js/example/annotation/index.html b/static/wavesurfer.js/example/annotation/index.html new file mode 100644 index 0000000..3474cac --- /dev/null +++ b/static/wavesurfer.js/example/annotation/index.html @@ -0,0 +1,134 @@ + + + + + wavesurfer.js | Annotation tool + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +

wavesurfer.js Annotations Tool

+
+ +
+

 

+ +
+ +
+ +
+ +
+
+

+ Click on a region to enter an annotation.
+ Shift-click plays a region in a loop. +

+
+ +
+ +
+ +
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+ +
+ + +
+ + +
or
+ +
+ + +
+ + + + + + diff --git a/static/wavesurfer.js/example/annotation/rashomon.json b/static/wavesurfer.js/example/annotation/rashomon.json new file mode 100644 index 0000000..6c3889a --- /dev/null +++ b/static/wavesurfer.js/example/annotation/rashomon.json @@ -0,0 +1 @@ +[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0016,-0.0017,0.0014,-0.0004,0.0015,-0.0009,0.0004,-0.0004,0.1093,-0.0395,0.1377,-0.0223,0.0296,-0.0113,0.0209,-0.0149,0.0411,-0.0247,0.089,-0.1044,0.162,-0.0835,0.0749,-0.07,0.0223,-0.0233,0.0259,-0.024,0.024,-0.0271,0.036,-0.0176,0.0118,-0.0169,0.0087,-0.0058,0.0012,-0.0022,0.0003,-0.0004,0.0006,-0.0005,0.0003,-0.0006,0.0003,-0.0003,0.0005,-0.0008,0.0003,-0.0009,0.0004,-0.0005,0.0002,-0.0004,0.0006,-0.0002,0.0004,-0.0005,0.0002,-0.0006,0.0003,-0.0005,0.0271,-0.0335,0.1183,-0.0231,0.0061,-0.0042,0.004,-0.0039,0.0014,-0.0004,0.1632,-0.0194,0.0966,-0.112,0.0427,-0.0146,0.0952,-0.2115,0.1858,-0.1792,0.156,-0.1192,0.0725,-0.0679,0.0156,-0.0419,0.0262,-0.0475,0.0272,-0.0536,0,-0.0577,0.0373,-0.0035,0.0149,-0.0341,0.0383,-0.0086,0.0142,-0.0151,0.0078,-0.0149,0.015,-0.0085,0.0449,-0.0556,0.0056,-0.0137,0.0064,-0.0028,0.0738,-0.0735,0.0029,-0.048,0.002,-0.0013,0.0299,-0.0123,0.0406,-0.0264,0.0146,-0.0112,0.0007,-0.002,0.0004,-0.0004,0.0013,-0.0002,0.0004,-0.0003,0.0005,-0.0003,0.0004,-0.0005,0,-0.0002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0005,-0.0007,0.0003,-0.0008,0.0002,-0.0006,0.0003,-0.0005,0.0003,-0.0004,0.0005,-0.0006,0.0009,-0.0006,0.001,-0.0006,0.0003,-0.0006,0.0011,-0.0009,0.0015,-0.0005,0.001,-0.0007,0.0005,-0.0009,0.0009,-0.0005,0.0004,-0.0005,0.0002,-0.0003,0.0003,-0.0005,0.0182,-0.0401,0.0696,-0.0608,0.07,-0.0724,0.1019,-0.0461,0.039,-0.0525,0.1009,-0.0646,0.2204,-0.1063,0.0894,-0.085,0.0517,-0.0654,0.0239,-0.0323,0.001,-0.007,0.0003,-0.0013,0.0003,-0.0008,0.0254,-0.0202,0.2054,-0.1264,0.0622,-0.0675,0.0017,-0.2964,0.3471,-0.2684,0.0185,-0.1379,0.1713,-0.0937,0.1198,-0.0762,0.0042,-0.0157,0.001,-0.003,0.0154,-0.0079,0.0126,-0.0171,0.0113,-0.01,0.0008,-0.0434,0,-0.0931,0.0185,-0.1038,0.0915,0,0.1279,-0.0951,0.0713,-0.0493,0.065,-0.0659,0.0078,-0.0272,0.0496,-0.0366,0.016,-0.0027,0.0042,-0.0273,0.0141,-0.0266,0.066,-0.0681,0.0521,-0.0594,0.0304,-0.0134,0.0049,-0.0013,0.0008,-0.002,0.001,-0.0015,0.0009,-0.0007,0.0003,-0.0007,0.0003,0,0,0,0,0,0,0,0,0,0.0044,-0.0092,0.0547,-0.0477,0.044,-0.0419,0.1179,-0.1879,0.1624,-0.1013,0.169,-0.0459,0.1014,-0.062,0.0292,-0.0213,0.0044,-0.0017,0.0143,-0.0143,0.0204,-0.0137,0.0152,-0.0093,0.0052,-0.008,0.0425,-0.0048,0.1343,-0.0748,0.0485,-0.0746,0.0251,-0.028,0.0924,-0.0539,0.0962,-0.0861,0.0894,-0.057,0.0603,-0.0141,0.1173,-0.078,0.0045,-0.0197,0.0014,-0.0019,0.0032,-0.005,0.032,-0.0192,0.0462,-0.0554,0.0773,-0.0661,0.1018,-0.0614,0.0093,-0.0173,0.0017,-0.0007,0.0007,-0.0054,0.0054,-0.0047,0.0095,-0.0068,0.0114,-0.004,0.0123,-0.0145,0.1391,-0.1016,0.0877,-0.0699,0.0089,-0.0055,0.003,-0.017,0.0457,-0.0594,0.0681,-0.0366,0.0172,-0.0047,0.0014,-0.001,0.0027,-0.0005,0.0454,-0.0103,0.0799,0,0.0261,-0.0233,0.0398,-0.0639,0.0868,-0.038,0.0929,-0.0481,0.0027,-0.0022,0.0007,-0.0005,0.0004,-0.0129,0.0725,-0.0222,0.05,-0.0746,0.0448,-0.0927,0.1255,-0.0823,0.0333,-0.0345,0.0678,-0.0484,0.0463,-0.0412,0.0367,-0.0472,0.0417,-0.0447,0.0168,-0.0284,0.0216,-0.0258,0.0189,-0.014,0.082,-0.0468,0.0613,-0.045,0.0032,-0.0153,0.0072,-0.0055,0.0045,-0.0014,0.0017,-0.0022,0.0011,-0.0007,0.0002,-0.0006,0.0002,-0.0002,0.0007,-0.0005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0007,-0.0152,0.0355,-0.0198,0.1926,-0.1296,0.1332,-0.2212,0.1816,-0.059,0.0166,-0.02,0.007,-0.0177,0.0016,-0.001,0.0239,-0.0021,0.064,-0.0162,0.1532,0,0.1833,-0.0692,0.1332,-0.1161,0.1836,-0.0468,0.0025,-0.0284,0.0013,-0.0019,0.0133,-0.0012,0.0454,-0.0113,0.031,-0.0399,0.2062,-0.0454,0.2521,-0.109,0.0059,-0.012,0.148,-0.0724,0.1494,-0.0737,0.0844,-0.061,0.0043,-0.0123,0.0012,-0.0011,0.0032,-0.0074,0.0053,-0.0029,0.0047,-0.005,0.0071,-0.0027,0.0018,-0.0431,0.0497,-0.0397,0.0117,-0.0373,0.0009,-0.0022,0.0011,-0.0062,0.0134,-0.0132,0.1161,0,0.0879,-0.0632,0.0021,-0.0068,0.002,-0.0009,0.001,-0.0103,0.1638,-0.1076,0.2531,-0.1773,0.1125,-0.12,0.0197,-0.0162,0.0275,-0.0161,0.1026,-0.074,0.0599,-0.0593,0.0094,-0.0221,0,-0.1085,0,-0.117,0.2067,-0.1008,0.0561,-0.0868,0.0173,0,0.0031,-0.0037,0.0418,-0.0011,0.0174,-0.0068,0,-0.0823,0.014,-0.0232,0.0093,-0.0029,0.0019,-0.0038,0.0397,-0.0317,0.1009,-0.0566,0.1637,-0.109,0.0526,-0.0308,0.0099,-0.0073,0.0015,-0.0026,0.0004,-0.0005,0.0004,-0.0005,0.0003,-0.0005,0.0002,-0.0006,0.0004,-0.0005,0.0005,-0.0002,0.0005,0,0.0007,-0.0004,0.0008,-0.0004,0.0005,-0.0002,0.0005,-0.0002,0.0007,-0.0005,0.0009,-0.0004,0.0003,-0.0004,0.0006,-0.0005,0.0006,-0.0005,0.0002,-0.0004,0.0004,-0.0008,0.0003,-0.0006,0.0006,-0.0007,0.0002,-0.0005,0.0002,-0.0006,0.0005,-0.0007,0.0009,-0.0007,0.0007,-0.0005,0.0002,-0.0004,0.0003,-0.001,0.0008,-0.0011,0.0013,-0.0014,0.0009,-0.0009,0.0011,-0.0009,0.0001,-0.0001,0,-0.0006,0.0048,-0.001,0.0445,-0.1099,0.1862,-0.1282,0.0231,-0.044,0.0297,-0.0146,0.0579,-0.039,0.1501,-0.1296,0.1767,-0.1192,0.1537,-0.0711,0.0106,-0.0503,0.0398,-0.0189,0.0347,-0.0271,0.0278,-0.0336,0.0143,-0.0115,0.0095,-0.0113,0.0049,-0.0025,0.0003,-0.0004,0.0002,-0.0003,0,0,0,0,0,0,0,0,0.0006,-0.0011,0.0021,-0.001,0.0006,-0.0003,0.0003,-0.0003,0.0003,-0.0007,0.0523,-0.0174,0.1439,-0.0739,0.0212,-0.0033,0.0163,-0.0025,0.0018,-0.0005,0.1264,-0.175,0.1314,-0.1126,0.0864,-0.0685,0.1584,-0.2474,0.2636,-0.0916,0.1511,-0.0713,0.1651,-0.0853,0.026,-0.0112,0.0725,-0.0639,0.0824,-0.0805,0.0827,-0.0455,0.0346,-0.0205,0.0332,-0.0317,0.0374,-0.0264,0.0143,-0.0052,0.0099,-0.0095,0.0064,-0.0005,0.0153,-0.0005,0.0617,-0.0208,0.047,-0.0535,0.0159,-0.0124,0.0015,-0.0026,0.001,-0.0005,0.0004,-0.0005,0.0004,-0.0006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0006,-0.0006,0.0271,-0.0001,0.0874,-0.226,0.1188,-0.145,0.2057,-0.1537,0.0349,-0.0257,0.0158,-0.0166,0.0124,-0.0058,0.033,0,0.0408,-0.0365,0.0649,-0.0439,0.0469,-0.038,0.0539,-0.0487,0.0233,-0.0006,0.0009,-0.0004,0.0009,-0.0003,0.0151,-0.0261,0.0447,-0.0193,0.1467,-0.1124,0.0657,-0.0536,0.0878,-0.1155,0.1005,-0.1175,0.0655,-0.0064,0.1489,-0.0994,0.0392,-0.0627,0.0826,-0.0048,0.0222,-0.0105,0.0077,0,0.0224,-0.0054,0.0286,-0.0102,0.0078,-0.0133,0.06,-0.0595,0.0109,-0.0421,0.0523,-0.0539,0.0358,-0.0264,0.0418,-0.0222,0.0386,-0.0273,0.0132,-0.0314,0.0084,-0.017,0.0105,-0.0096,0.0037,-0.0072,0.0008,-0.0008,0.0007,-0.0003,0.0005,-0.0009,0.0008,-0.0004,0.0004,-0.0003,0.0006,-0.0005,0,0,0,0,0,0,0,0,0,0,0,0,0.0004,-0.0004,0.0006,-0.0006,0.0013,-0.0014,0.0134,-0.0113,0.0007,-0.0008,0.3157,-0.0947,0.3249,-0.309,0.0437,-0.1402,0.0666,-0.0986,0.0756,-0.076,0.0979,-0.136,0.0163,-0.0243,0.0738,-0.0485,0.1069,-0.0869,0.0279,-0.0275,0.0683,-0.0494,0.0481,-0.0289,0.0258,-0.0286,0.0211,-0.0225,0.023,-0.0133,0.0628,-0.036,0.0101,-0.0412,0.0125,-0.0122,0.0018,-0.0063,0.0009,-0.0007,0.0004,-0.0006,0.0005,-0.0003,0.0004,-0.0005,0.0005,-0.0007,0.0004,-0.0003,0.0005,-0.0006,0.0008,-0.0004,0.0005,-0.0008,0.0006,-0.0008,0.0891,-0.0619,0.0426,-0.0435,0.017,-0.0801,0.0532,-0.0302,0.1379,-0.1222,0.1222,-0.1163,0.0933,-0.0778,0.0758,-0.0902,0.1353,-0.1192,0.0262,-0.0723,0.033,-0.0318,0.0407,-0.0219,0.0348,-0.0476,0.0277,-0.0182,0.01,-0.0176,0.0087,-0.0027,0.0738,-0.0718,0.0657,-0.0508,0.0143,-0.0104,0.0419,-0.0317,0.0414,-0.0411,0.0109,-0.0121,0.0017,-0.0014,0.0012,-0.0002,0.0016,-0.001,0.0006,-0.0006,0.0005,-0.0009,0.0009,-0.0003,0.0005,-0.0007,0.0003,-0.0004,0.031,-0.0246,0.0249,-0.0756,0,-0.0518,0.1398,-0.0905,0.0816,-0.0727,0.1546,-0.0821,0.1287,-0.0828,0.0883,-0.0402,0.0622,-0.047,0.0668,-0.0651,0.056,-0.0586,0.0601,-0.0669,0.0571,-0.032,0.1478,-0.0957,0.0446,-0.003,0.0039,-0.003,0.0009,-0.0005,0.001,-0.016,0.0396,-0.042,0.0541,-0.0163,0.0034,-0.0107,0.0008,-0.0002,0.0478,-0.004,0.0843,-0.0275,0.0098,-0.0225,0.0026,-0.0042,0.0011,-0.0006,0.0001,-0.0005,0.0005,-0.0006,0.0006,0,0.0001,-0.0004,0.0003,-0.0005,0.0003,-0.0006,0.0003,-0.0004,0.0004,-0.0004,0.0004,-0.0004,0.0003,-0.0004,0.0001,-0.0008,0.0004,-0.0007,0.0004,-0.0005,0.0003,-0.0008,0.0005,-0.0008,0.0011,-0.0006,0.0009,-0.0013,0.0004,-0.0006,0.0008,-0.0011,0.0004,-0.0002,0.0006,-0.0006,0.0005,-0.0005,0.0006,-0.0003,0.0028,-0.0021,0.0916,-0.0685,0.068,-0.0589,0,-0.3391,0.3233,-0.2732,0.1268,-0.149,0.0845,-0.0823,0.1059,-0.1,0.0916,-0.1095,0.1724,-0.1353,0.0743,-0.0742,0.0802,-0.0744,0.0881,-0.0957,0.0281,-0.0367,0.0196,-0.0187,0.0051,-0.0253,0.1215,-0.1112,0.0183,-0.1727,0.0564,-0.0194,0.0657,-0.0575,0.1429,-0.0921,0.1281,-0.0624,0.0392,-0.0525,0.0087,-0.0148,0.0009,-0.0055,0.0012,-0.0014,0.0003,-0.001,0.0024,-0.0012,0.0017,-0.0014,0.0005,-0.0009,0.0005,-0.0006,0.0008,-0.0002,0.0006,-0.0003,0.0009,-0.024,0.1253,-0.0898,0.0944,-0.0696,0.1195,-0.1068,0.1462,-0.1478,0.1988,-0.1484,0.0078,-0.0254,0.0044,-0.0085,0.2328,-0.1055,0.0563,-0.0049,0.1119,-0.1329,0.0718,-0.0519,0.1545,-0.0917,0.061,-0.051,0.0867,-0.0435,0.027,-0.0275,0.0016,-0.0018,0.0798,-0.0632,0.1157,-0.1153,0.045,-0.0336,0.0609,-0.0402,0.0481,-0.035,0.029,-0.0235,0.0092,-0.0006,0.0002,-0.0007,0.0002,-0.0004,0.0009,-0.0003,0.0009,-0.0006,0.0047,-0.0222,0.14,-0.0995,0.133,-0.0985,0.1173,-0.0672,0.0852,-0.0378,0.0781,-0.0646,0.0684,-0.0582,0.0602,-0.0352,0,-0.0309,0.0058,-0.0218,0.0629,-0.0437,0.048,-0.0316,0.0204,-0.027,0.0095,-0.0088,0.0015,-0.0007,0.0006,-0.001,0.0003,-0.0008,0.0002,-0.0007,0.0005,-0.0002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0006,-0.0006,0.0003,-0.0004,0.0002,-0.0005,0.0004,-0.0003,0.0004,-0.0232,0.1759,-0.0802,0.1142,-0.086,0.0134,-0.0248,0.1357,-0.1151,0.0607,-0.041,0.07,-0.0446,0.0168,-0.0089,0.0016,-0.0035,0.0005,-0.0004,0.0006,-0.0004,0.1275,-0.0024,0.1887,-0.0528,0.0012,-0.0052,0.1213,-0.0743,0.2193,-0.1425,0.1375,-0.0965,0.0863,-0.1379,0.0323,-0.04,0.1322,-0.0696,0.0293,-0.0176,0.0043,-0.0385,0.1497,-0.0456,0.1186,-0.0989,0.1213,-0.1292,0.0747,-0.0781,0.0352,-0.0344,0.0016,-0.0037,0.001,-0.0019,0.0022,-0.0011,0.0007,-0.0013,0.0005,-0.0009,0.0005,-0.0041,0.0022,-0.0119,0,-0.0418,0.0726,-0.0474,0.0824,-0.0525,0.1038,-0.08,0.0692,-0.0764,0.0861,-0.0535,0.0686,-0.0721,0.0922,-0.0753,0.1097,-0.0915,0,-0.0309,0.0152,-0.011,0.1818,-0.0895,0.0149,-0.0235,0.0145,-0.0202,0.0318,-0.0162,0.0017,-0.0026,0.0349,-0.1006,0.0548,-0.1107,0.0605,-0.0303,0.0089,-0.0264,0.0016,-0.0015,0.0013,-0.0019,0.0007,-0.0014,0.0007,-0.0012,0.0004,-0.0007,0.0002,-0.0006,0.0001,-0.0005,0.1328,-0.0513,0.1772,-0.1141,0.175,-0.1578,0.0423,-0.0618,0.0047,-0.0029,0.0131,-0.0064,0.0237,-0.0511,0.0047,-0.0418,0.0779,-0.0861,0.1289,-0.063,0.0334,-0.0333,0.0789,-0.048,0.1045,-0.1093,0.0701,-0.0719,0.069,-0.0623,0.151,-0.1021,0.1194,-0.0926,0.0369,-0.0309,0.0044,-0.0204,0.0435,-0.0338,0.0985,-0.1342,0.0733,-0.0462,0.0251,-0.0122,0.0181,-0.023,0.0268,-0.0212,0.012,-0.0082,0.0015,-0.0004,0.0004,-0.0006,0.0004,-0.0003,0.0004,-0.0004,0.0003,-0.0012,0.001,-0.0015,0.0014,-0.0019,0.002,-0.0014,0.0006,-0.0005,0.0003,-0.0006,0.0002,-0.0005,0.0053,-0.0225,0.0586,-0.063,0.0922,-0.0508,0.0908,-0.0768,0.033,-0.034,0.0363,-0.052,0.0749,-0.1832,0.0612,-0.1165,0.0634,-0.0216,0.0245,-0.0084,0.0065,-0.0081,0.0192,-0.0388,0.0985,-0.05,0.1248,-0.0971,0.0622,-0.0724,0.0565,-0.0298,0.0025,-0.0009,0.0008,-0.0004,0.0013,-0.0003,0.0265,-0.0297,0.0212,-0.0087,0.0035,-0.0018,0.009,-0.0045,0.0006,-0.0005,0.0511,-0.0371,0.0316,-0.0183,0.0324,-0.055,0.0367,-0.0221,0.0058,-0.0009,0.0006,-0.0009,0.0003,-0.0007,0.0281,-0.0166,0.0301,-0.0305,0.0441,-0.0269,0.0345,-0.0186,0.0332,-0.0162,0.0345,-0.0155,0.0086,-0.0078,0.0007,-0.0006,0.0008,-0.0005,0.0004,-0.0006,0.0005,-0.0003,0.0005,-0.0005,0.0006,-0.0003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0003,-0.0003,0.0002,-0.0006,0.0005,-0.0003,0.0004,-0.0003,0.0061,-0.0003,0.2261,-0.1288,0.2228,-0.1654,0.0261,-0.0496,0.0377,-0.0298,0.0402,-0.0178,0.1743,-0.0213,0.3129,0,0.3002,-0.1919,0.1041,-0.0822,0.1191,-0.0327,0.0669,-0.0047,0.0386,-0.0402,0.0225,-0.0182,0.0965,-0.0863,0.1162,-0.0756,0.0774,-0.0522,0.0364,-0.0185,0.007,-0.0053,0.0033,-0.0014,0.0047,-0.0129,0.0064,-0.0204,0,-0.0404,0.0949,-0.0937,0.1649,-0.2188,0.062,-0.0709,0.0146,-0.0025,0.0783,-0.0672,0.1015,-0.1073,0.1898,-0.1356,0.148,-0.1282,0.0192,-0.0259,0.0244,-0.058,0.047,-0.0517,0.0556,-0.0501,0.0567,-0.0899,0.0668,-0.0582,0.2071,-0.1247,0.0205,-0.0097,0.0738,-0.0531,0.0742,-0.0386,0.0388,-0.0405,0.0088,-0.0065,0.0185,-0.023,0.0834,-0.0659,0.0899,-0.0651,0.0487,-0.0573,0.0349,-0.0328,0.0637,-0.051,0.0462,-0.0355,0.0429,-0.0268,0.0018,-0.0052,0.0013,-0.0006,0.0019,-0.0004,0.0018,-0.0016,0.0013,-0.0021,0.001,-0.0021,0.0013,-0.001,0.0005,-0.0005,0.0007,-0.0003,0.0005,-0.0004,0.0082,-0.0072,0.1169,-0.0799,0.0828,-0.0543,0.0859,-0.1,0.0354,-0.0449,0.0775,-0.0954,0.0391,-0.0678,0.004,-0.0026,0.0498,-0.0893,0.0472,-0.0458,0.0819,-0.0474,0.0674,-0.0664,0.0651,-0.0503,0.0839,-0.0598,0.0308,-0.0661,0.085,-0.0712,0.0026,-0.0036,0.1904,-0.1574,0.1241,-0.2114,0.0477,-0.033,0.0752,-0.0404,0.0583,0,0.0408,-0.0649,0.0922,-0.0554,0.0469,-0.0394,0.0047,-0.0284,0.0006,-0.0013,0.0026,-0.0038,0.0019,-0.0016,0.0022,-0.0023,0.0006,-0.0024,0.0012,-0.0019,0.0002,-0.0004,0.0002,-0.0006,0.0152,-0.0344,0.0018,-0.0395,0.0802,-0.0532,0.142,-0.0713,0.1141,-0.0725,0.0714,-0.0768,0.1307,-0.0724,0.062,-0.0444,0.1123,-0.0585,0.0738,-0.0764,0.0416,-0.0672,0.0583,-0.0384,0.0545,-0.008,0.0083,-0.0094,0.0048,-0.0106,0.0521,-0.0023,0.0216,-0.0282,0.0159,-0.0629,0.0664,-0.0273,0.0311,-0.0262,0.0012,-0.0016,0.0432,-0.0022,0.0384,-0.0095,0.0002,-0.0019,0.0179,-0.0655,0.0451,-0.0443,0.0617,-0.0853,0.0608,-0.092,0.0926,-0.0552,0.0924,-0.1246,0.2262,-0.1761,0.0053,-0.0123,0.0068,-0.0046,0.1178,-0.0431,0.1065,-0.0634,0.0864,-0.0667,0.0578,-0.05,0.1315,-0.0545,0.0371,-0.0305,0.0013,-0.0016,0.0007,-0.0011,0.0024,-0.0006,0.0021,-0.001,0.0024,-0.0009,0.001,-0.0006,0.0012,-0.0001,0.0007,-0.0439,0.1502,-0.1349,0.065,-0.1161,0.0874,-0.0544,0.0973,-0.079,0.0854,-0.0819,0.0527,-0.0803,0.0432,-0.0781,0,-0.0181,0.0691,-0.0575,0.1847,-0.0767,0.0913,-0.0624,0.0224,-0.0116,0.016,-0.0142,0.0353,-0.0094,0.0581,-0.0397,0.0624,-0.0772,0.1147,-0.109,0.1255,-0.0368,0.0097,-0.0229,0.0009,-0.0007,0.0025,-0.001,0.0016,-0.0009,0.0026,-0.0015,0.0019,-0.0014,0.0004,-0.0009,0.0005,-0.0006,0.0016,-0.0036,0.0376,-0.0394,0.1025,-0.0646,0.1359,-0.0903,0.0114,-0.0815,0.0133,-0.0387,0.0076,-0.0351,0.0472,-0.0035,0.0363,-0.0094,0.008,-0.0165,0.1035,-0.0204,0.0782,-0.1665,0.1172,-0.102,0.0527,-0.0652,0.0545,-0.0536,0.047,-0.0597,0.0575,-0.0566,0.0604,-0.0608,0.06,-0.0625,0.1722,-0.1309,0.1472,-0.1073,0.0858,-0.0584,0.0047,-0.0153,0.0023,-0.0965,0.0654,-0.0411,0.0908,-0.0322,0.0094,-0.0218,0.0152,-0.0091,0.0429,-0.0609,0.081,-0.0482,0.0604,-0.0623,0,-0.05,0.0662,-0.0372,0.0278,-0.0283,0.0256,-0.0216,0.0375,-0.037,0.033,-0.0186,0.0315,-0.0386,0.0233,-0.0081,0.0731,-0.0389,0.0657,-0.0454,0.064,-0.0309,0.0138,-0.0382,0.0072,-0.0282,0.0194,-0.011,0.0169,-0.0097,0.0007,-0.0006,0.0004,-0.0003,0.0004,-0.0005,0.0003,-0.0006,0.0009,-0.0006,0.0003,-0.0002,0.0004,-0.0004,0.0003,-0.0003,0.0002,-0.0003,0.0003,-0.0004,0.0012,-0.001,0.001,-0.002,0.001,-0.0015,0.0012,-0.0006,0.0009,-0.0007,0.0004,-0.0003,0.0061,-0.0021,0.0096,-0.0045,0.0803,-0.0249,0.1005,-0.086,0.0883,-0.0767,0.1199,-0.0859,0.0496,-0.0401,0.0449,-0.0627,0.0545,-0.069,0.0678,-0.0359,0.0416,-0.0199,0.0053,-0.0072,0.0004,-0.0009,0.0007,-0.0005,0.0008,-0.031,0.0085,-0.0518,0,-0.0401,0.0601,-0.0571,0.0809,-0.0868,0.0682,-0.0586,0.0182,-0.0014,0.0538,-0.0035,0.1059,-0.0699,0.0044,-0.0073,0.139,-0.0754,0.0581,-0.0501,0.0561,-0.0651,0.0347,-0.0935,0.1482,-0.0617,0.0039,-0.0261,0.0033,-0.0162,0.105,-0.0967,0.1614,-0.1352,0.0335,-0.0363,0.0381,-0.0325,0,-0.0721,0.0703,-0.081,0.0657,-0.0486,0.0064,-0.0046,0.0675,-0.0406,0.1355,-0.0807,0.1108,-0.0703,0,-0.0729,0,-0.0575,0.0533,-0.0314,0.0688,-0.0442,0.0515,-0.0455,0.0429,-0.0066,0.0022,-0.0046,0.0893,-0.0411,0.1023,-0.0473,0.0492,-0.0325,0.0106,-0.0136,0.0001,-0.002,0.0005,-0.0004,0.0003,-0.0007,0.0003,-0.0008,0.0002,-0.0005,0.0001,-0.0005,0.0005,-0.0004,0.0006,-0.0006,0.0005,-0.0006,0.0001,-0.0006,0.0002,-0.0003,0.0002,-0.0003,0.0002,-0.0007,0.0005,-0.0006,0.0005,-0.0002,0.0005,-0.0004,0.0003,-0.0005,0.0005,-0.0003,0.0003,-0.0003,0.0006,-0.0002,0.0003,-0.0003,0.0007,-0.0005,0.0004,-0.0009,0.0009,-0.0006,0.001,-0.0006,0.0012,-0.0004,0.0006,-0.0011,0.0011,-0.0009,0.0008,-0.0008,0.0006,-0.0008,0.0007,-0.0003,0.0004,-0.0005,0.0003,-0.0003,0.0005,-0.0003,0.0004,-0.0006,0.0001,-0.0004,0.0005,-0.0005,0.0006,-0.0005,0.0006,-0.0007,0.0005,-0.0007,0.0731,-0.0816,0.0135,-0.1599,0.2176,-0.0745,0.2076,-0.1877,0.1941,-0.1312,0.0393,-0.0096,0.2807,-0.2247,0.0281,-0.0321,0.0249,-0.0076,0.1194,-0.0845,0.0089,-0.0137,0.0016,-0.0319,0.0669,-0.0355,0.0113,-0.0272,0.0307,-0.0076,0.1182,-0.0924,0.0075,-0.003,0.0238,-0.0528,0.0908,-0.0672,0.1082,-0.0827,0.0616,-0.0786,0.0887,-0.0628,0.0774,-0.0597,0.005,-0.0294,0.0104,-0.0053,0.0506,-0.0908,0.2122,-0.1626,0.1646,-0.1224,0.0434,-0.0493,0.0514,-0.0455,0.0658,-0.0672,0.0758,-0.0755,0.0622,-0.049,0.0434,-0.0049,0,-0.0123,0.0011,-0.0068,0.0005,-0.0007,0.0018,-0.0015,0.0018,-0.0023,0.0016,-0.0015,0.0005,-0.0008,0.0009,-0.0003,0.0186,-0.0003,0.107,-0.0664,0.1654,-0.0713,0.1043,-0.1144,0.0298,-0.0333,0.1021,-0.0843,0.122,-0.1382,0.0668,-0.0278,0,-0.0636,0.0776,-0.0399,0.195,-0.1336,0.1859,-0.1514,0.0173,-0.009,0.0258,-0.0291,0.0146,-0.035,0.0447,-0.0257,0.0312,-0.0328,0.0993,-0.1345,0.0661,-0.1348,0.0685,-0.1029,0.0204,-0.0392,0.0004,-0.0028,0.2073,-0.1663,0.1487,-0.0333,0.003,-0.0035,0.1721,-0.0641,0.1623,-0.1485,0.0578,-0.063,0.0133,-0.0291,0.0062,-0.0069,0.0009,-0.0006,0.0083,-0.0126,0.0076,-0.0383,0.0551,-0.0419,0.0464,-0.0271,0.0843,-0.0651,0.0103,-0.0846,0.0056,-0.0219,0.1855,-0.2146,0.0629,-0.1389,0.1332,-0.0142,0.083,-0.0604,0.0239,-0.0051,0.009,-0.0026,0.0035,-0.0328,0.0044,-0.0098,0.0012,-0.0312,0.0879,-0.089,0.0512,-0.0602,0.0231,-0.0303,0.0015,-0.0011,0,0,0,0,0,0,0,0,0.0005,-0.0004,0.0004,-0.0005,0.0158,-0.0292,0.2099,-0.0582,0.1584,-0.1413,0.0442,-0.0157,0.0642,-0.0721,0.064,-0.0013,0.0011,-0.0148,0.0236,-0.1863,0.0187,-0.008,0.1728,-0.2268,0.1925,-0.1024,0.0054,-0.0039,0.0027,-0.0045,0.0082,-0.0028,0.0021,-0.0039,0.0125,-0.0167,0.0867,-0.0921,0.075,-0.0588,0.0737,-0.054,0.0021,-0.0103,0.0031,-0.0368,0.0103,-0.026,0.0033,-0.0036,0.0314,-0.1153,0.1446,-0.1258,0.0611,-0.081,0.0486,-0.056,0.0519,-0.0416,0.0661,-0.0607,0.0616,-0.0512,0.0342,-0.0293,0.157,-0.081,0.1328,-0.0843,0.0062,-0.0114,0.1574,-0.1576,0.3971,-0.3354,0.1923,-0.2496,0,-0.127,0,-0.1103,0.0183,-0.0506,0.0091,-0.0261,0.0786,-0.0608,0.0383,-0.0061,0.0054,-0.0079,0.0074,-0.0112,0.0256,-0.0138,0.0868,-0.0072,0.0782,-0.0548,0.0744,-0.0484,0.0021,-0.0011,0.0411,-0.0263,0.1094,-0.0675,0.0133,-0.0615,0.002,-0.0478,0.0025,-0.0012,0.0725,-0.0171,0.1065,-0.0454,0.0017,-0.0028,0.0013,-0.0003,0.0005,-0.0005,0.0102,-0.019,0.0172,-0.0338,0.0115,-0.0069,0.0006,-0.0013,0.0007,-0.0007,0.0004,-0.0005,0.0006,-0.0003,0.0004,-0.0004,0.0006,-0.0005,0.0002,-0.0004,0.0002,-0.0004,0,-0.0003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0013,-0.0004,0.0027,-0.0054,0.1571,-0.0246,0.091,-0.0315,0.1695,0,0.1252,-0.0541,0.0858,-0.038,0.1127,-0.0121,0.3309,-0.1757,0.3846,0,0.1406,-0.0244,0.0062,-0.0274,0.0048,-0.0012,0.0311,-0.0204,0.0777,-0.0324,0.111,-0.0769,0.0603,-0.0496,0.0907,-0.0993,0.0371,-0.0749,0.0145,-0.0106,0.1216,-0.1353,0.1578,-0.0178,0.118,-0.0778,0.1493,-0.1241,0.1549,-0.1492,0.0169,-0.0055,0.072,-0.2513,0.2356,-0.1572,0.0046,-0.0269,0.287,-0.0211,0.2916,0,0.2807,-0.0411,0.0037,-0.02,0.0202,-0.0114,0.0012,-0.0223,0.1146,-0.0866,0.0709,-0.1057,0.001,-0.0014,0.0842,-0.1403,0.0563,-0.0819,0.1089,-0.0763,0.0805,-0.0748,0.0665,-0.0464,0.0425,-0.0408,0.0725,-0.0972,0.1096,-0.0892,0.0603,-0.1227,0.0615,-0.0411,0.0224,-0.0172,0.0424,-0.0408,0.0536,-0.0456,0.0375,-0.0402,0.0231,-0.0231,0.0024,-0.0052,0.0012,-0.001,0.0006,-0.0003,0.0008,-0.0002,0.0003,-0.0001,0.0003,-0.0005,0.0002,-0.0004,0.0004,-0.0004,0.0004,-0.0004,0.0004,-0.0005,0.0004,-0.0005,0.0004,-0.0003,0.0006,-0.0002,0.0005,-0.0003,0.0003,-0.0005,0.0009,-0.0005,0.0007,-0.0004,0.0009,-0.0003,0.0006,-0.0005,0.0005,-0.0007,0.0003,-0.0006,0.0002,-0.0005,0.0003,-0.0004,0.0003,-0.0004,0.0005,-0.0004,0.0003,-0.0005,0.0005,-0.0005,0.0012,-0.0107,0.0222,-0.078,0.0995,-0.0757,0.0445,-0.0552,0.003,-0.0077,0.0235,-0.0253,0,-0.0437,0.0274,-0.0436,0.0609,-0.0393,0.0915,-0.0382,0.1099,-0.0699,0.0311,-0.0384,0.0665,-0.06,0.0191,-0.0024,0.0054,-0.001,0.0758,-0.0802,0.139,-0.0769,0.0748,-0.0624,0.0355,-0.0198,0.0024,-0.001,0.0031,-0.0014,0.0018,-0.003,0.0007,-0.0014,0.0006,-0.0004,0.0003,-0.0004,0.009,-0.0466,0.0555,-0.0545,0.0017,-0.0033,0.0166,-0.022,0.0663,-0.0141,0.0594,-0.0189,0.1058,-0.0148,0.2095,-0.1634,0.2349,0,0.1235,0,0.1046,0,0.008,-0.3243,0.0422,-0.1598,0.039,-0.0097,0,-0.0438,0.0443,-0.0276,0.0022,-0.0018,0.0059,-0.0037,0.0309,-0.0216,0.0163,-0.0218,0.0029,-0.0909,0.1865,-0.1415,0.1433,-0.0898,0.0716,-0.0639,0.0865,-0.0577,0.0046,-0.0204,0.0206,-0.0323,0.0028,-0.0021,0.0856,-0.0728,0.0161,-0.0182,0.1178,-0.1709,0.3115,-0.2571,0.0019,-0.2577,0.0721,-0.0162,0.0073,-0.0017,0.0006,-0.0018,0.0948,-0.0722,0.1567,-0.0846,0.0501,-0.0518,0.0085,-0.0016,0.0012,-0.0028,0.0013,-0.0019,0.0022,-0.0022,0.0024,-0.0009,0.0005,-0.0013,0.0004,-0.0005,0.004,-0.003,0.0032,-0.0045,0.0119,-0.0131,0.056,-0.0519,0.0832,-0.0742,0.0689,-0.098,0.0974,-0.0934,0.0964,-0.0641,0.0708,-0.0782,0.0441,-0.0653,0.0909,-0.098,0.095,-0.1109,0.061,-0.0281,0.0043,-0.0069,0.0039,-0.012,0.075,-0.0535,0.079,-0.1006,0.0596,-0.0244,0.0019,-0.0041,0.0223,-0.1087,0.125,-0.1241,0.0548,-0.0818,0.1047,-0.0683,0.0429,-0.042,0.0436,-0.0366,0.0032,-0.001,0.0015,-0.0026,0.0007,-0.0029,0.0006,-0.0022,0.0005,-0.0003,0.0002,-0.0006,0.0036,-0.0019,0.106,-0.0564,0.1064,-0.1128,0.0622,-0.1259,0.1022,-0.1449,0.0812,-0.045,0.0717,-0.1262,0.0777,-0.1022,0.0383,-0.0742,0.2396,-0.0313,0.1046,-0.0266,0.0261,-0.0345,0.0166,-0.0375,0.0094,-0.0114,0.0703,-0.0567,0.0729,-0.032,0.1743,-0.1179,0.1891,-0.1329,0.0041,-0.0033,0.012,-0.0338,0.084,-0.0875,0.0711,-0.0757,0.0389,-0.001,0.1653,-0.0538,0.1888,-0.0919,0.0189,-0.1189,0.0797,-0.0542,0.0243,-0.0116,0.0232,-0.0221,0.0055,-0.0195,0.2633,-0.1199,0.0359,-0.0445,0.0026,-0.0039,0.0064,-0.0031,0.006,-0.0483,0.0652,-0.0486,0.0823,-0.045,0.0689,-0.048,0.0709,-0.0335,0.0013,-0.0125,0.0024,-0.0021,0.0014,-0.0028,0.0025,-0.001,0.0013,-0.0024,0.0019,-0.0014,0.0009,-0.0015,0.0005,-0.0006,0.0577,-0.0556,0.0475,-0.0729,0.115,-0.1876,0.1599,-0.1485,0.0886,-0.0082,0.0151,-0.138,0.1732,-0.0563,0,-0.0413,0,-0.0356,0.0026,-0.0241,0.0024,-0.0013,0.0073,-0.0042,0.0005,-0.0493,0.0763,-0.036,0.0727,-0.0657,0.0065,-0.0055,0.1739,-0.1672,0.1486,-0.0803,0.0068,-0.0077,0.2313,-0.238,0.029,-0.1416,0.0918,-0.0539,0.0325,-0.0648,0.0016,-0.0026,0.0053,-0.0573,0.0525,-0.0609,0.0664,-0.0428,0.0018,-0.0049,0.0001,-0.001,0,0,0,0,0,0,0,0,0.0009,-0.0003,0.0002,-0.0006,0.0569,-0.0076,0.0104,-0.0228,0.0017,-0.0018,0.051,-0.0539,0.1285,-0.0944,0.0613,-0.0214,0.0783,-0.12,0.0674,-0.1035,0.0959,-0.1124,0.0883,-0.0792,0.0412,-0.0268,0.0395,-0.0376,0.051,-0.032,0.0722,-0.1463,0.1219,-0.0412,0.077,-0.0508,0.0867,-0.0813,0.0692,-0.0525,0.0536,-0.0373,0.0095,-0.0032,0.0015,-0.0006,0.0003,-0.0007,0.0005,-0.0004,0.0118,-0.0059,0.0905,-0.0836,0.1109,-0.093,0.0809,-0.0853,0.0016,-0.0014,0.0006,-0.0017,0.0396,-0.0109,0.0297,-0.046,0.0409,-0.0082,0.0023,-0.0017,0.0004,-0.0012,0.0005,-0.0004,0.0003,-0.0005,0.0005,-0.0006,0.0844,-0.0742,0,-0.0818,0.0876,-0.064,0.0578,-0.0561,0.0548,-0.0461,0.0462,-0.0174,0.0238,-0.0176,0.0607,-0.0553,0.0047,-0.0029,0.0914,-0.0776,0.0207,-0.0452,0.0669,-0.0521,0.0861,-0.0643,0.1236,-0.0786,0.0406,-0.0371,0.0397,-0.0226,0.0442,-0.0233,0.0197,-0.012,0.0018,-0.0009,0.0008,-0.0004,0.0008,-0.0004,0.0004,-0.0003,0.0005,-0.0004,0.0003,-0.0002,0.0003,-0.0005,0.0007,-0.0004,0.0005,-0.0003,0.0008,-0.0005,0.0005,-0.0006,0.0004,-0.0007,0.0004,-0.0009,0.0005,-0.0007,0.0005,-0.0006,0.0004,-0.0011,0.0007,-0.001,0.0005,-0.0006,0.0003,-0.0005,0.0181,-0.0023,0.115,-0.0606,0.0634,-0.0797,0.0037,-0.0017,0.0573,-0.0258,0.0025,-0.0017,0.0004,-0.0012,0.0334,-0.0457,0.0863,-0.0713,0.1552,-0.1135,0.1411,-0.0905,0.1555,-0.0957,0.1658,-0.0996,0.0164,-0.0137,0.1063,-0.0582,0.0601,-0.0604,0.0818,-0.0924,0.0568,-0.0723,0.0183,-0.0234,0.0366,-0.0336,0.0547,-0.0562,0.1207,-0.09,0.048,-0.0431,0.0029,-0.0089,0.0159,-0.0345,0.0499,-0.0184,0.1661,-0.1999,0.1482,-0.127,0.2107,-0.1595,0.0464,-0.0518,0.0028,-0.0047,0.0037,-0.0733,0.0666,-0.0875,0.0529,-0.0453,0.0587,-0.0595,0.0318,-0.0642,0.038,-0.0161,0.001,-0.0011,0.0005,-0.0007,0,0,0,0,0,0,0,-0.0013,0.0025,-0.0004,0.2432,-0.0384,0.0666,-0.1158,0.023,-0.0813,0.0406,-0.0306,0.0126,-0.1347,0.2665,-0.2989,0.1836,-0.2724,0.0917,-0.073,0.0927,-0.0785,0.0932,-0.1057,0.0677,-0.0681,0.0755,-0.0468,0.0176,-0.0093,0.0289,-0.0321,0.0116,-0.0345,0.0592,-0.026,0.0692,-0.0479,0.0663,-0.0617,0,-0.097,0.0154,-0.0453,0.0557,-0.0276,0.0858,-0.0514,0.0448,-0.0247,0.0902,-0.063,0.0977,-0.0628,0.1927,-0.0801,0.0954,-0.062,0.072,-0.0305,0.0038,-0.0074,0.0009,-0.001,0,0,0,0,0,0,0.0003,0,0.0022,-0.0006,0.0259,-0.0197,0.0287,-0.073,0.0506,-0.0702,0.0028,-0.0034,0.0851,-0.0162,0.102,-0.072,0.1016,-0.0662,0.093,-0.0472,0.025,-0.0505,0.0471,-0.0449,0.024,-0.0317,0.0125,-0.0898,0.1257,-0.1303,0.029,-0.0347,0.0428,-0.0761,0.0124,-0.0717,0.0307,-0.0541,0.0281,-0.065,0.0116,-0.0092,0.0028,-0.0024,0.0386,-0.045,0.0407,-0.0449,0.014,-0.0014,0.1122,-0.0466,0.0738,-0.0698,0.0055,-0.002,0.0509,-0.0151,0.1612,-0.05,0.2451,-0.1807,0.1564,-0.1874,0.13,-0.0942,0.0527,-0.0916,0.1068,-0.0556,0.0545,-0.0522,0.0579,-0.0744,0.0603,-0.0617,0.0006,-0.0739,0.0206,-0.0377,0.0462,-0.0378,0.0526,-0.0422,0.0382,-0.0572,0.0417,-0.0875,0.0203,-0.0308,0.1168,-0.1017,0.0212,-0.0522,0.0576,-0.0403,0.0162,-0.0364,0.0021,-0.0145,0.0946,-0.0501,0.0359,-0.0415,0.0008,-0.0028,0.001,-0.0014,0.0005,-0.0005,0.0609,-0.0563,0.0536,-0.0194,0.013,-0.0068,0.0015,-0.0005,0.0007,-0.0006,0.0003,-0.0008,0.0007,-0.0003,0.0004,-0.0001,0.0004,-0.0003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0001,0,0,0,0,0,0,0,0,0,0.0006,-0.0005,0.0006,-0.0008,0.002,-0.0006,0.005,-0.0035,0.0134,-0.0109,0.0085,-0.0074,0.0983,-0.046,0.0644,-0.046,0.061,-0.0407,0.0607,-0.0356,0.0014,-0.0024,0.0691,-0.0553,0.175,-0.0848,0.1086,-0.0637,0.0717,-0.046,0.0042,-0.0136,0.0005,-0.0006,0.001,-0.0009,0.0007,-0.0009,0.0005,-0.0003,0.0005,-0.0004,0.0027,-0.0013,0.0066,-0.0079,0.0149,-0.0159,0.1041,-0.0717,0.0711,-0.0436,0.0859,-0.0991,0.0889,-0.164,0.1835,-0.1965,0.0078,-0.0251,0.0016,-0.0044,0.3287,-0.0949,0.1009,-0.1176,0.1233,-0.096,0.1356,-0.1598,0.0429,-0.0613,0.1033,-0.0381,0.0528,-0.0344,0.0062,-0.0024,0.1085,-0.0573,0.0525,-0.0038,0.1141,-0.1609,0.1161,-0.1201,0.0303,-0.0332,0.1124,-0.0695,0.099,-0.0624,0.0522,-0.0356,0.0621,-0.0509,0.0477,-0.0269,0.0381,-0.0725,0.1082,-0.0721,0,-0.0925,0.0022,-0.0029,0.0088,-0.0409,0.0611,-0.0416,0.015,-0.0014,0.0243,-0.0489,0.036,-0.0381,0.0311,-0.0182,0.0369,-0.0234,0.0219,-0.0218,0.0057,-0.0201,0.0156,-0.0015,0.0006,-0.0007,0.0567,-0.0321,0.0871,-0.0612,0.0505,-0.0416,0.0142,-0.0151,0.0027,-0.0025,0.0008,-0.0003,0.0009,-0.0012,0.0009,-0.0015,0.0014,-0.0006,0.0013,-0.0024,0.0016,-0.0008,0.0004,-0.001,0.0003,-0.0005,0.0003,-0.0003,0.0002,-0.0005,0.0691,-0.0339,0.1704,-0.052,0.108,-0.1008,0.0658,-0.067,0.0815,-0.1209,0.065,-0.019,0.0613,-0.0814,0.1808,-0.025,0.0101,-0.0079,0.0071,-0.0086,0.0081,-0.01,0.0107,-0.0062,0.0126,-0.0071,0.0185,-0.0101,0.0387,-0.0241,0.0425,-0.032,0.0352,-0.0187,0.0034,-0.0032,0.0004,-0.0005,0.0012,-0.0007,0.0002,-0.0009,0.001,-0.0005,0.0006,-0.0006,0.0008,-0.0003,0.015,-0.0309,0.085,-0.0368,0.0175,-0.0346,0.0056,-0.007,0.0336,-0.0515,0.0861,-0.0306,0.0811,-0.0697,0.0366,-0.0476,0.003,-0.0123,0.1287,-0.1501,0.0841,-0.0809,0.1627,-0.1125,0.2486,-0.2856,0.0183,-0.0224,0.005,-0.0097,0.0061,-0.0036,0.0245,-0.0599,0.0894,0,0.0349,-0.0542,0.0614,-0.0308,0.0157,-0.0146,0.0007,-0.003,0.0006,-0.0003,0.0006,-0.0009,0.0004,-0.002,0.0009,-0.0014,0.0009,-0.0012,0.0015,-0.002,0.0017,-0.0002,0.0006,-0.0006,0.0004,-0.0004,0.0009,-0.0037,0.1153,-0.1298,0.1889,-0.1476,0.176,-0.1771,0.0178,-0.0407,0.0809,-0.0648,0.1452,-0.1239,0.1239,-0.0967,0.0257,-0.0299,0.0186,-0.0261,0.0371,-0.0945,0.065,-0.0459,0.0867,-0.089,0.13,-0.1822,0.0613,-0.1239,0.0631,-0.0957,0.0532,-0.0549,0.0609,-0.0696,0.0911,-0.058,0.2319,-0.2262,0.1325,-0.2045,0.0549,-0.0529,0.0019,-0.0374,0.0025,-0.0032,0.0021,-0.0013,0.0022,-0.0018,0.0018,-0.0015,0.0014,-0.0018,0.0006,-0.0005,0.0012,-0.0008,0.0043,-0.0056,0.0061,-0.0011,0.0574,-0.0491,0.1341,-0.0623,0.0045,-0.0032,0.1488,-0.1608,0.1645,-0.2088,0.1351,-0.0911,0.0392,-0.0529,0.0034,-0.0071,0.1079,-0.2142,0.1614,-0.1483,0.0781,-0.1015,0.0592,-0.0597,0.064,-0.0809,0.1568,-0.1313,0.1433,-0.0937,0.1036,-0.0992,0.0488,-0.0128,0.009,-0.0274,0.0344,-0.0366,0.0201,-0.0097,0.0538,-0.0392,0.0075,-0.0203,0.0277,-0.0188,0.0618,0,0.0338,-0.0447,0.0274,-0.0272,0.1116,-0.0948,0.13,-0.0876,0.0085,-0.0813,0.0021,-0.0034,0.0012,-0.0009,0.0014,-0.0018,0.0009,-0.0016,0.0007,-0.0006,0.0008,-0.0005,0.0003,-0.0007,0.0297,0,0.0673,-0.0471,0.1063,-0.0674,0.0856,-0.0624,0.0534,-0.1047,0.0854,-0.1075,0.0656,-0.0942,0.1234,-0.1027,0.1579,-0.1374,0.2426,-0.1674,0.1249,-0.1715,0.09,-0.0995,0.057,-0.0622,0.0922,-0.0452,0.0496,-0.0334,0.0918,-0.0554,0.0211,-0.0468,0.0036,-0.0032,0.0019,-0.0011,0.0019,-0.0032,0.0509,-0.0448,0.0385,-0.0108,0.0037,-0.009,0.0022,-0.0005,0.0051,-0.0134,0.0755,-0.0276,0.0361,-0.0473,0.0023,-0.0179,0.001,-0.0015,0.0014,-0.0013,0.0019,-0.0007,0.0012,-0.0015,0.0007,-0.0004,0.0022,-0.0095,0.0119,-0.0136,0.0019,-0.0055,0.1417,-0.0583,0.1115,-0.1068,0.0087,-0.0226,0.0013,-0.1902,0.1987,-0.1404,0.1177,-0.1226,0.0944,-0.1082,0.0019,-0.0184,0.0002,-0.0007,0.0099,-0.0197,0.0678,-0.0357,0.0477,-0.0322,0.0438,-0.0391,0.0014,-0.0015,0.0005,-0.001,0.0002,-0.0007,0.0003,-0.0007,0.0003,-0.0006,0.0245,-0.0835,0.1456,-0.0754,0.0002,-0.0823,0.0328,-0.0155,0.0147,-0.0523,0.0947,-0.0604,0.0178,-0.0316,0.0556,-0.004,0.0365,-0.0527,0.0513,-0.0552,0.0657,-0.041,0.0009,-0.0128,0.0173,-0.0521,0.1906,-0.2216,0.1925,-0.2063,0.0097,-0.0461,0.0121,-0.0085,0.1166,-0.0257,0.177,-0.158,0.1149,-0.1429,0.0389,-0.0275,0.0392,-0.0085,0.045,-0.04,0.0024,-0.0033,0.0043,-0.0032,0.0004,-0.0004,0.0546,-0.0246,0.0194,-0.0153,0.0068,-0.0058,0.0015,-0.0008,0.0004,-0.0005,0.0003,-0.0006,0.0005,-0.0007,0.0004,-0.0005,0.0005,-0.0004,0.0004,-0.0007,0.0002,-0.0006,0.0004,-0.0003,0.0004,-0.0003,0.0002,-0.0004,0.0004,-0.0003,0.0009,-0.0007,0.0003,-0.0005,0.0003,-0.0009,0.0005,-0.0013,0.0008,-0.0012,0.0014,-0.0005,0.0009,-0.0007,0.0007,-0.0009,0.0008,-0.0008,0.0004,-0.0007,0.0006,-0.0013,0.0004,-0.0003,0,0,0.0001,-0.0005,0.0007,-0.0029,0.0041,-0.0082,0.0884,-0.1158,0.0125,-0.0141,0.1216,-0.0401,0.0897,-0.1436,0.0443,-0.0561,0.063,-0.0961,0.1443,-0.1191,0.0522,-0.0473,0.0059,-0.0011,0.0017,-0.0016,0.0022,-0.0031,0.0014,-0.001,0.0003,-0.0009,0.0028,-0.0013,0.0089,-0.021,0.0288,-0.03,0.053,-0.045,0.1568,-0.1174,0.0882,-0.1051,0.1126,-0.1189,0.1196,-0.0625,0.0663,-0.1368,0.1689,-0.1248,0.0609,-0.0705,0.0678,-0.1419,0.1396,-0.1071,0.1231,-0.0971,0.0867,-0.0954,0.1805,-0.0955,0.111,-0.0516,0.0051,-0.0068,0.0213,-0.0179,0.0337,-0.0126,0.05,-0.0757,0.044,-0.045,0.0503,-0.0315,0.0065,-0.0196,0.001,-0.0012,0.0405,-0.0264,0.0756,-0.0512,0.0271,-0.0316,0.0345,-0.0147,0.0013,-0.0019,0.0007,-0.0011,0.0016,-0.0015,0.0017,-0.002,0.001,-0.0012,0.0011,-0.0001,0.0004,-0.0005,0.001,-0.0002,0.0978,-0.0332,0.1236,-0.1388,0.2024,-0.1637,0.1476,-0.1281,0.1218,-0.0582,0.1277,-0.062,0.0828,-0.0825,0.0362,-0.0334,0.0535,-0.0307,0.0031,-0.0126,0.0123,-0.0005,0.0087,-0.0069,0.0096,-0.0289,0.0551,-0.0548,0.074,-0.0855,0.0724,-0.0617,0,-0.1807,0.1312,-0.1156,0.1109,-0.1073,0.017,-0.0421,0.0223,-0.0308,0.1021,-0.022,0.0886,-0.1353,0.0773,-0.0444,0.0101,0,0.0071,-0.0025,0.0005,-0.0012,0.0003,-0.0004,0.002,-0.0259,0.0714,-0.0508,0.05,-0.0255,0.0015,-0.0196,0.0004,-0.0003,0.0008,-0.0004,0.0005,-0.0018,0.001,-0.0016,0.0005,-0.0007,0.0005,-0.0002,0.0004,-0.0005,0.0483,-0.0054,0.0821,-0.0627,0.0479,-0.0576,0.0984,-0.0648,0.0652,-0.0771,0.0529,-0.0418,0.0976,-0.1421,0.1728,-0.1898,0.0784,-0.1155,0.0547,-0.0563,0.059,-0.0623,0.0227,-0.0255,0.023,-0.0046,0.0053,-0.0097,0.0075,-0.0212,0.0555,-0.049,0.0595,-0.0541,0.0477,-0.0496,0.0178,-0.0124,0.0643,-0.0685,0.1308,-0.1079,0.0699,-0.0651,0.0708,-0.0464,0.0498,-0.0772,0.086,-0.0681,0.059,-0.0268,0.0126,-0.0036,0.0017,-0.0008,0.0022,-0.0018,0.0022,-0.002,0.001,-0.0007,0.002,-0.0004,0.0006,-0.0008,0.0199,-0.0022,0.0727,-0.0448,0.018,-0.0211,0.0412,-0.0429,0.0336,-0.0473,0.0633,-0.0927,0.1046,-0.0291,0.0429,-0.0482,0.0701,-0.0676,0.0521,-0.0746,0.0727,-0.0749,0.0558,-0.0858,0.1024,-0.0749,0.0232,-0.0065,0.0225,-0.0234,0.0102,-0.0166,0.0516,-0.0007,0.1582,-0.0517,0.1736,-0.0789,0.0782,-0.0642,0.0567,-0.0049,0.0136,-0.0029,0.0789,-0.0876,0.0036,-0.0103,0.0461,-0.0159,0.0395,-0.0327,0.048,-0.0575,0.0529,-0.0546,0.0251,-0.0586,0.0419,-0.0394,0.002,-0.0026,0.0004,-0.0004,0.04,-0.0256,0.0262,-0.024,0.0151,-0.0112,0.0399,-0.0221,0.0273,-0.0591,0.0889,-0.0919,0.0192,-0.0169,0.0016,-0.0016,0.0047,-0.0076,0.0941,-0.1118,0.0281,-0.0267,0.0436,-0.0234,0.0294,-0.0204,0.0097,-0.0273,0.0536,-0.0331,0.014,-0.0642,0.0793,-0.0409,0.0518,-0.038,0.0316,-0.0139,0.0167,-0.0108,0.0041,-0.0036,0.0006,-0.0002,0.0004,-0.0003,0.0008,-0.0007,0.0004,-0.0004,0.0007,-0.0004,0.0004,-0.0001,0.0004,-0.0007,0.0003,-0.0008,0.0005,-0.0005,0.0004,-0.0004,0.0001,-0.0007,0.0002,-0.0007,0.0006,-0.0009,0.0005,-0.0007,0.0002,-0.0006,0.0003,-0.0005,0.0003,-0.0005,0.0003,-0.0003,0.0005,-0.0008,0.0003,-0.0004,0.0006,-0.0005,0.0004,-0.0005,0.0005,-0.0004,0.0013,-0.0004,0.0008,-0.0009,0.0011,-0.0009,0.0012,-0.0011,0.0014,-0.0006,0.002,-0.0012,0.001,-0.0012,0.0014,-0.0005,0.0004,-0.0005,0.0003,-0.0008,0.0014,-0.0065,0.0152,-0.0065,0.017,-0.0218,0.0596,-0.0764,0.0661,-0.061,0.158,-0.1193,0.0918,-0.0595,0.0045,-0.0053,0.0097,-0.0159,0.1552,-0.0924,0.0376,-0.0693,0.183,-0.1136,0.1188,-0.12,0.0584,-0.0344,0.0308,-0.0511,0.0398,-0.0336,0.0452,-0.0725,0.0814,-0.022,0.005,-0.0053,0.0024,-0.0251,0.1423,-0.1173,0.0199,-0.0472,0.011,-0.027,0.0025,-0.0033,0.0003,-0.0015,0.0016,-0.0021,0.0012,-0.0008,0.0024,-0.0024,0.0012,-0.0013,0.0005,-0.0001,0.0007,-0.0006,0.0005,-0.0001,0.0246,-0.0115,0.1044,-0.1778,0.1388,-0.1091,0.1903,-0.1282,0.0302,-0.0435,0.0084,-0.0126,0.063,-0.0345,0.0708,-0.0063,0.14,-0.0802,0.1506,-0.1244,0.0356,-0.019,0.0501,-0.0536,0.0432,-0.0548,0.0216,-0.0212,0.1165,-0.0684,0.0908,-0.0221,0.0018,-0.0419,0.1094,-0.0491,0.0548,-0.0528,0.0608,-0.0393,0.0098,-0.0321,0.0702,-0.0386,0.0255,-0.0025,0.0017,-0.0351,0.029,-0.0655,0.0162,-0.0112,0.0102,-0.0147,0.0037,-0.0085,0.0069,-0.0037,0.0859,-0.0951,0.1305,-0.0998,0.0686,-0.0945,0.076,-0.0709,0.0263,-0.0987,0.006,-0.0037,0.0056,-0.0029,0.0022,-0.0205,0.0387,-0.0183,0.0813,-0.0485,0,-0.051,0.0028,-0.0013,0.0015,-0.0003,0.0003,-0.0067,0.0261,-0.0199,0.0007,-0.0012,0.0045,-0.0026,0.004,-0.0005,0.0148,-0.0032,0.0314,-0.0571,0.0078,-0.007,0.0017,-0.0015,0.0002,-0.0007,0.0006,-0.0006,0.0004,-0.0007,0.0002,-0.0005,0.0004,-0.0005,0.0005,-0.0002,0.0002,-0.0007,0.0006,-0.0005,0.0005,-0.0008,0.0007,-0.0011,0.0008,-0.0009,0.0005,-0.001,0.0015,-0.0005,0.0007,-0.0007,0.0003,-0.0005,0.0005,-0.0001,0.0032,-0.0004,0.0108,-0.0051,0.097,-0.089,0.1343,-0.1253,0.0544,-0.0512,0.0784,-0.2106,0.0151,-0.2335,0.1001,-0.09,0.1325,-0.1154,0.1326,-0.0857,0.0907,-0.1138,0.0722,-0.0108,0.0016,-0.0024,0.0793,-0.0089,0.0031,-0.0516,0.0251,-0.0162,0.0537,-0.0806,0.0661,-0.0721,0.1197,-0.1044,0.1523,-0.0774,0.0165,-0.0019,0.1496,-0.0759,0.0674,-0.0367,0.0927,-0.1024,0.0181,-0.0097,0.0038,-0.0084,0.0471,-0.0142,0.0423,-0.0058,0.1281,-0.153,0.2122,-0.1604,0.0555,-0.0746,0.0089,-0.0033,0.0025,-0.0026,0.0019,-0.0011,0.0024,-0.0021,0.0015,-0.0017,0.0006,-0.0004,0.0005,-0.0005,0.0504,-0.0356,0.2264,-0.0941,0.1123,-0.1592,0.1484,-0.1093,0.1441,-0.1283,0.1065,-0.0837,0.106,-0.08,0.0742,-0.0378,0.0374,-0.0282,0.0645,-0.0879,0.0327,-0.0619,0.0796,-0.1305,0.0791,-0.0108,0.0032,-0.0165,0.0015,-0.0329,0,-0.224,0.3609,-0.1887,0.2832,-0.2356,0.1128,-0.1472,0.0908,-0.1926,0.1148,-0.0852,0.0289,-0.0239,0.1956,-0.0051,0.0819,-0.0789,0.0707,-0.0867,0.0509,-0.0454,0.0088,-0.0107,0.0011,-0.0012,0.0087,-0.0431,0.0995,-0.0622,0.0253,-0.0353,0.0199,-0.0072,0.0027,-0.0013,0.0011,-0.0008,0.0017,-0.0022,0,0,0,0,0,-0.0005,0.0006,-0.0005,0.0218,-0.0154,0.0245,-0.0077,0.047,-0.0171,0.1005,-0.2247,0.2089,-0.3371,0.1417,-0.1308,0.1205,-0.0555,0.0202,-0.0402,0.0245,-0.0337,0.0659,-0.0226,0.0641,-0.0377,0.0704,-0.0819,0.0988,-0.0491,0.0664,-0.0728,0.0269,-0.1545,0.0032,-0.0208,0.2633,-0.0138,0.2052,-0.0825,0,-0.0979,0.0274,-0.0886,0.0844,-0.0146,0.0696,-0.0978,0.0115,-0.0974,0.114,-0.1204,0.0403,0,0.2142,-0.1015,0.0021,-0.0925,0.0299,-0.0058,0.0272,-0.0304,0.0023,-0.0351,0.0919,-0.0759,0.0961,-0.0641,0.06,-0.1225,0.0949,-0.098,0.0885,-0.0595,0.1604,-0.0746,0.0369,-0.0168,0.003,-0.0015,0.001,-0.0013,0,0,0,0,0,0,0,0,0.0014,-0.0004,0.0064,-0.0046,0,-0.0681,0.0707,-0.0693,0.1281,-0.0855,0.1229,-0.092,0.1068,-0.1163,0.1986,-0.1754,0.3094,-0.1807,0.1142,-0.1944,0.1716,-0.1073,0.0056,-0.0045,0.0011,-0.0015,0.0008,-0.0005,0.0467,-0.0205,0.08,-0.0454,0.0663,-0.0505,0.0297,-0.0397,0.0171,-0.0338,0.0261,-0.0235,0.0098,-0.0181,0.0013,-0.0044,0.0003,-0.0006,0.0004,-0.0007,0.0005,-0.0005,0.0003,-0.0005,0.0002,-0.0006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0004,0,0.002,-0.0028,0.0011,-0.001,0,-0.0014,0.0005,-0.0009,0.0003,-0.0006,0.0259,-0.0075,0.1438,-0.1296,0.0243,-0.0639,0.0933,-0.0771,0.0881,-0.1062,0.1002,-0.019,0.0609,-0.0936,0.1394,-0.1102,0.2063,-0.1175,0.2047,-0.1049,0.0946,-0.1022,0.0902,-0.1273,0.1141,-0.1378,0.1043,-0.1043,0,-0.102,0,-0.0973,0.0337,-0.0392,0.1787,0,0.1842,-0.0105,0.0095,-0.0127,0.0139,-0.0112,0.0547,-0.0658,0.1324,-0.1244,0.1226,-0.1026,0.0838,-0.0282,0.1165,-0.1089,0.1911,-0.0972,0.0471,-0.0537,0.0068,-0.0132,0.0015,-0.0019,0.0011,-0.0012,0.0016,-0.0012,0.0011,-0.0013,0.0012,-0.001,0.0004,-0.0002,0.0003,-0.0002,0.0334,-0.0009,0.0531,-0.0477,0.0975,-0.0719,0.1189,-0.0695,0.0965,-0.0631,0.1016,-0.1256,0.0867,-0.0486,0.0042,-0.0115,0.0014,-0.0884,0.068,-0.0777,0.1423,-0.1898,0.1713,-0.1703,0.062,-0.0867,0.0063,-0.0042,0.0991,-0.0042,0.1839,-0.0402,0.0027,-0.0134,0.024,-0.0073,0.0153,-0.0799,0,-0.0891,0.0549,-0.0888,0.0829,-0.07,0.0487,-0.0532,0.0016,-0.04,0.0482,-0.0487,0.0402,-0.0041,0.0073,-0.0044,0.0569,-0.054,0.0545,-0.0563,0.0399,-0.0559,0.0812,-0.0639,0.0615,-0.0536,0.122,-0.0628,0.0456,-0.0316,0.0161,-0.0124,0.0052,-0.0074,0.0013,-0.001,0.0006,-0.0005,0.0007,-0.0005,0.0004,-0.0001,0.0004,-0.0003,0.0006,-0.0007,0.0003,-0.0005,0.0011,-0.0016,0.0012,-0.0025,0.001,-0.0007,0.0013,-0.0014,0.0012,-0.0011,0.0004,-0.0009,0.0006,-0.0005,0.0005,-0.0004,0.0011,-0.0011,0.0052,-0.004,0.0496,-0.0302,0.091,-0.052,0.174,0,0.1055,-0.0537,0.071,-0.0359,0.0934,-0.042,0.0222,-0.0129,0.165,-0.0339,0.0736,-0.0203,0.1315,0,0.1966,-0.1281,0.0676,-0.1044,0.1056,-0.1173,0.087,-0.1095,0.2072,-0.0879,0.2109,-0.1008,0.1258,-0.1905,0.0697,-0.1165,0.002,-0.0023,0.0416,-0.059,0.0951,-0.0807,0.0895,-0.0958,0.0695,-0.0385,0.0672,-0.0474,0.0556,-0.054,0.0461,-0.0463,0.0258,-0.0233,0.0126,-0.0125,0.0206,-0.0192,0.0302,-0.0242,0.0035,-0.0026,0.0014,-0.0011,0.0005,-0.0003,0.0006,-0.0003,0.0087,-0.0129,0.0413,-0.0787,0.0498,-0.0609,0.0438,-0.08,0.051,-0.0506,0.0389,-0.0399,0.0468,-0.0497,0.0277,-0.0194,0.0083,-0.0092,0.0008,-0.001,0.0068,-0.0001,0.0256,-0.0149,0.0074,-0.0197,0.0023,-0.007,0.0017,-0.0016,0.0007,-0.0002,0.0006,-0.0003,0.0006,-0.0003,0.0006,-0.0002,0.0005,-0.0003,0.0006,-0.0003,0.0005,-0.0002,0.0004,-0.0004,0.0003,-0.0001,0.0003,-0.0004,0.0005,-0.0001,0.0004,-0.0003,0.0005,-0.0004,0.0004,-0.0004,0.0006,-0.0003,0.0005,-0.0006,0.0003,-0.0005,0.0003,-0.0004,0.0005,-0.0005,0.0003,-0.0003,0.0004,-0.0001,0.0005,-0.0005,0.0006,-0.0002,0.0003,-0.0005,0.0004,-0.0006,0.0006,-0.0011,0.0006,-0.0007,0.0004,-0.0003,0.1285,-0.0529,0.1078,-0.0686,0.1288,-0.1243,0.1263,-0.0427,0.0169,-0.0105,0.0077,-0.0077,0.0519,-0.0311,0.14,-0.0958,0.2042,-0.095,0.0635,-0.0504,0.0566,-0.051,0.0508,-0.0243,0.0037,-0.005,0.0034,-0.0033,0.0338,-0.0483,0.0755,-0.0283,0.0855,-0.0905,0.0838,-0.1086,0.1085,-0.0488,0.0049,-0.0178,0.0059,0,0.0037,-0.0011,0.0005,-0.001,0.0004,-0.0017,0.0009,-0.0009,0.001,-0.0012,0.0004,-0.0011,0.0006,-0.0015,0.0005,-0.012,0.0565,-0.0682,0.1414,-0.2182,0.3001,-0.0593,0.0369,-0.0889,0.0435,-0.0675,0.0921,-0.1029,0.0779,-0.0503,0.07,-0.0471,0.1219,-0.0786,0.0848,-0.0712,0.0531,-0.0104,0.038,-0.0079,0.0691,-0.073,0.0656,-0.0573,0.0357,-0.0523,0.0436,-0.0236,0.0241,-0.0199,0.0229,-0.0259,0.0137,-0.0278,0.014,-0.0192,0,-0.0464,0.0638,-0.0437,0.0789,-0.0831,0.054,-0.0685,0.045,-0.0537,0.0378,-0.0836,0.0684,-0.0755,0.055,-0.0515,0.056,-0.0848,0.0318,-0.0051,0.0008,-0.0011,0.0199,-0.0026,0.0997,-0.0687,0.1561,-0.1103,0.0426,-0.0734,0.0257,-0.0104,0.0045,-0.0016,0.0012,-0.0019,0.0027,-0.0012,0.0013,-0.0023,0.0014,-0.0008,0.001,-0.0008,0.0005,-0.0004,0.0006,-0.0004,0.0084,-0.0029,0.0114,-0.0266,0.0869,-0.0598,0.0953,-0.0521,0.0539,-0.0381,0.181,-0.1525,0.1206,-0.1548,0.0546,-0.0588,0.0702,-0.0886,0.0692,-0.0775,0.0782,-0.0375,0.0106,-0.0515,0.0017,-0.001,0.0298,-0.0109,0.058,-0.0528,0.0383,-0.0346,0.0247,-0.0387,0.0332,-0.0352,0.0259,-0.0434,0.0431,-0.0229,0.0808,-0.032,0.04,-0.0599,0.1233,0,0.0588,-0.0471,0.0301,-0.0409,0.0384,-0.0146,0.0298,-0.0147,0.004,-0.0046,0.0007,-0.0016,0.0005,-0.0006,0.0003,-0.0003,0.0004,-0.0003,0.0004,-0.0003,0,-0.0005,0.0005,-0.0005,0,-0.0003,0.0003,-0.0005,0.0003,-0.0002,0.0002,-0.0002,0.0005,-0.0004,0.0004,-0.0003,0.0005,-0.0002,0.0003,-0.0004,0.0007,-0.0004,0.0004,-0.0003,0.0018,-0.0004,0.0005,-0.0004,0.001,-0.0002,0.0006,-0.0005,0.0006,-0.0005,0.0005,-0.0006,0.0005,-0.0005,0,-0.0007,0.0003,-0.0003,0.0005,-0.0007,0.0004,-0.0004,0.0005,-0.0005,0.0002,-0.0005,0.0003,-0.0003,0.0003,-0.0003,0.0006,-0.0006,0.0006,-0.0007,0.0004,-0.0004,0.001,-0.0003,0.0575,-0.0246,0.0862,-0.0752,0.0209,-0.0358,0.0015,-0.0013,0.0038,-0.0595,0.1582,-0.1261,0.0924,-0.0854,0.0721,-0.0723,0.0444,-0.029,0.015,-0.0059,0.1,-0.0529,0.2005,-0.2048,0.012,-0.289,0.279,-0.2536,0.0888,-0.1183,0.0206,-0.005,0.003,-0.0225,0.0309,-0.0616,0.0187,-0.0071,0.0872,-0.0463,0.0625,-0.0719,0.1379,-0.045,0.2162,-0.1362,0.0639,-0.0846,0.0459,-0.0611,0.1618,-0.2042,0.1887,-0.0334,0.0073,-0.0367,0.0124,-0.0155,0.0999,-0.0862,0.106,-0.1046,0.0074,-0.0213,0.0047,-0.0079,0.0743,-0.0955,0.091,-0.0593,0.0023,-0.057,0.0029,-0.0028,0.0031,-0.0459,0.0994,-0.0982,0.0901,-0.0647,0.0226,-0.0291,0.0026,-0.0006,0.015,-0.0442,0.0695,-0.0496,0.1004,-0.0789,0.2351,-0.1925,0.044,-0.1356,0.0674,-0.05,0.0729,-0.0621,0.0032,-0.0247,0.0517,0,0.0533,-0.062,0.0161,-0.0651,0.0456,-0.0518,0.0159,-0.0259,0.0337,-0.0243,0.0227,-0.0142,0.012,-0.0128,0.0044,-0.0079,0.0016,-0.0014,0.0006,-0.0003,0.0006,-0.0003,0.0003,-0.0004,0.0001,-0.0004,0.0007,-0.0011,0.0008,-0.0008,0.0017,-0.0015,0.001,-0.0015,0.0008,-0.0008,0.0012,-0.0007,0.0008,-0.0002,0.0004,-0.0003,0.0004,-0.0003,0.0011,-0.0003,0.0068,-0.071,0.1195,0,0.0457,-0.0287,0.1143,-0.1819,0.0937,-0.1054,0.0025,-0.0047,0.0674,-0.0648,0.2112,-0.0749,0.0097,-0.0082,0.1795,-0.1214,0.1313,-0.1171,0.1216,-0.1064,0.1124,-0.0183,0.1405,-0.0318,0.1112,-0.0947,0.0121,-0.0079,0.0174,-0.0973,0.098,-0.113,0.054,-0.1533,0.1757,-0.1721,0.0475,-0.1024,0.0185,-0.0177,0.003,-0.0019,0.0011,-0.0012,0.0007,-0.002,0.0003,-0.0012,0.0001,-0.0005,0.0013,-0.0004,0.0074,-0.0227,0.1023,-0.0342,0.0189,-0.0297,0.1273,-0.1333,0.2027,-0.1794,0.319,-0.3103,0.0225,-0.011,0.0071,-0.1395,0.1349,-0.1411,0.0139,-0.0155,0.1911,-0.0511,0.1565,-0.0672,0.009,-0.0109,0.002,-0.0021,0.0008,-0.0004,0.0851,-0.0728,0.2052,-0.1634,0.0456,-0.1127,0.0161,-0.0144,0.0025,-0.0041,0.0022,-0.0011,0.0006,-0.0006,0.0003,-0.001,0.0006,-0.0013,0.0021,-0.0065,0.0179,-0.0116,0.066,-0.1134,0,-0.1525,0.0279,-0.0564,0.0061,-0.0078,0.0574,-0.0818,0.1311,-0.0731,0.0159,-0.0283,0.139,-0.0826,0.0929,-0.0872,0.0535,-0.1035,0.1251,-0.1186,0.0045,-0.0027,0.0143,-0.0133,0.0427,-0.0297,0.0189,-0.0216,0.1115,-0.0615,0.0872,-0.0756,0.167,-0.189,0.0322,-0.1274,0.0517,-0.0932,0.1278,-0.1013,0.0439,-0.0539,0.0416,-0.0753,0.0448,-0.0867,0.0374,-0.0371,0.0423,-0.0454,0.0727,-0.0489,0.1195,-0.1239,0.118,-0.0094,0.11,-0.0444,0.1022,-0.0669,0.0828,-0.0861,0.0867,-0.0691,0.0043,-0.0063,0.0281,-0.0012,0.004,-0.0067,0.0099,-0.0072,0.122,-0.1037,0.0897,-0.0295,0.0706,-0.1314,0.1834,-0.0183,0.0192,-0.0175,0.0732,-0.0648,0.0791,-0.0734,0.0825,-0.0537,0.0021,-0.0048,0.0014,-0.0012,0.0805,-0.0464,0.1353,-0.0613,0.0392,-0.0265,0.0103,-0.0226,0.0246,-0.0187,0.0113,-0.0127,0.0124,-0.0341,0.0904,-0.0402,0.0745,-0.0702,0.0168,-0.0525,0.0393,0,0.0363,-0.0596,0.058,-0.0298,0.0557,-0.0348,0.082,-0.0382,0.0904,-0.058,0.0278,-0.0265,0.0279,-0.0228,0.0305,-0.0183,0.0189,-0.0173,0.008,-0.0061,0.0004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.0005,0.0203,-0.0006,0.0192,-0.0945,0.147,-0.0975,0.1439,-0.1237,0.0707,-0.0475,0.0207,-0.0121,0.0199,-0.0123,0.0543,-0.0159,0.0928,-0.1937,0.1635,-0.0295,0.0111,-0.0141,0.0033,-0.0078,0.008,-0.0124,0,-0.0299,0,-0.0297,0.0201,-0.0242,0.0212,-0.0735,0.0908,-0.0857,0.1312,-0.08,0.0205,-0.0087,0.0016,-0.0011,0.0032,-0.001,0.0016,-0.0009,0.0009,-0.0011,0.001,-0.001,0.0004,-0.0007,0.0004,-0.0005,0.0014,-0.0008,0.0246,-0.0608,0.0585,-0.0625,0.0548,0,0.0565,-0.0035,0.0004,-0.0014,0.0093,-0.0028,0.0852,-0.0449,0.0946,-0.0675,0.0227,-0.0342,0.0165,-0.009,0.0021,-0.0081,0.0636,-0.04,0.0049,-0.0333,0.0183,-0.0083,0.0467,-0.0321,0.0491,-0.042,0.1752,-0.1151,0.1095,-0.0584,0.0022,-0.0034,0.0016,-0.0009,0.0008,-0.0006,0.0702,-0.0034,0.2092,-0.0884,0.026,-0.0106,0.0757,0,0.0209,-0.01,0.0574,-0.0282,0.0024,-0.0104,0.006,-0.0069,0.0607,-0.0223,0.031,-0.0676,0.0008,-0.0426,0.0014,-0.0002,0.0776,-0.0539,0.0682,-0.0623,0.0688,-0.0568,0.0437,-0.0308,0.0333,-0.0312,0.0356,-0.0433,0.0594,-0.0582,0.0062,-0.0213,0.1091,-0.0727,0.027,-0.0703,0.0286,-0.0181,0.027,-0.0243,0.0303,-0.0301,0.0559,-0.0322,0.0547,-0.0293,0.0092,-0.015,0.0419,-0.0281,0.0252,-0.0148,0.0009,-0.0013,0.0017,-0.0006,0.0006,-0.0006,0.0001,-0.0005,0.0006,-0.0006,0.0006,-0.0006,0.0003,-0.0006,0.0004,-0.0004,0.0003,-0.0006,0.0005,-0.0006,0.0004,-0.0006,0.0003,-0.0006,0.0003,-0.0006,0.0003,-0.0003,0.0012,-0.0006,0.0005,-0.0004,0.0005,-0.0005,0.0002,-0.0002,0.0005,-0.0003,0.0004,-0.0005,0.0007,-0.0008,0.0009,-0.0006,0.0017,-0.001,0.0019,-0.001,0.0014,-0.0011,0.0001,-0.0016,0,0,0,0,0,0,0,0,0.0007,-0.0002,0.0011,-0.0002,0.0268,-0.1371,0.2245,-0.1568,0.0756,-0.0783,0.0614,-0.0781,0.094,-0.1259,0.0801,-0.1168,0.0536,-0.107,0.0769,-0.076,0.3224,-0.2705,0.1049,-0.156,0.1259,-0.0791,0.0396,-0.0484,0.0143,-0.0259,0.0102,-0.0062,0.0195,-0.0348,0.058,-0.1213,0.0732,-0.1728,0.1453,-0.105,0.1342,-0.1773,0.0974,-0.059,0.1101,-0.2151,0.0984,-0.1453,0.0791,-0.1397,0.0783,-0.0514,0.1744,-0.1691,0.0235,-0.1409,0.0444,-0.0366,0.0332,-0.0392,0.028,-0.0322,0.0091,-0.0309,0.0216,-0.0142,0.0359,-0.0151,0.1359,-0.1256,0.1071,-0.0823,0.0435,-0.0464,0.0433,-0.0382,0.0417,-0.033,0.0545,-0.0693,0.0777,-0.0522,0.0171,-0.0177,0.0118,-0.0161,0.0021,-0.0303,0.0017,-0.001,0.0101,-0.0143,0.026,-0.0208,0.0226,-0.1264,0.1265,-0.0439,0.1241,-0.0595,0.0639,-0.0643,0.0446,-0.0617,0.0784,-0.0687,0.068,-0.054,0.05,-0.0555,0.0566,-0.0524,0.0285,-0.047,0.0166,-0.0168,0.0772,-0.0544,0.1242,-0.0448,0.0402,-0.0033,0.0193,-0.0071,0.0221,-0.0171,0.0198,-0.0157,0.01,-0.0124,0.0039,-0.0011,0.0003,-0.0005,0.0009,-0.0005,0.0015,-0.0011,0.0014,-0.0006,0.0031,-0.0024,0.0012,-0.0016,0.0019,-0.002,0.0016,-0.0017,0.0005,-0.0004,0.0068,-0.0171,0.0453,-0.0495,0.1959,-0.1178,0.2043,-0.2029,0.2446,-0.1623,0.0739,-0.0513,0.0131,-0.0255,0.0771,-0.0404,0.1672,-0.252,0.252,-0.2455,0.158,-0.1971,0.0646,-0.0748,0.0232,-0.0258,0.0057,-0.0134,0.0018,-0.0029,0.021,-0.055,0.039,-0.0471,0.0507,-0.0257,0.0014,-0.002,0.0015,-0.0023,0.0023,-0.0014,0.0016,-0.0007,0.0007,-0.0003,0.0003,-0.0005,0.0006,-0.0006,0.052,-0.0146,0.2524,-0.1711,0.2632,-0.2104,0.0838,-0.0825,0.06,-0.0465,0.0622,-0.0647,0.0683,-0.1824,0.3423,-0.1671,0.0499,-0.095,0.0064,-0.0812,0.2267,-0.1469,0.139,-0.0616,0.0802,-0.1465,0.061,-0.0816,0.0095,-0.0421,0,-0.0566,0.0338,-0.0317,0.0189,-0.0264,0.0336,-0.0375,0,-0.0618,0.0844,-0.0143,0.0831,-0.034,0.0122,-0.0643,0.0392,-0.0176,0.0055,-0.0122,0.0065,-0.0083,0.0103,-0.007,0.0927,-0.0467,0.0949,-0.0537,0.0585,-0.0338,0.0008,-0.0009,0.0004,-0.0006,0.0816,-0.0516,0.1026,-0.0748,0.109,-0.0707,0.0212,-0.0031,0.0007,-0.0026,0.0007,-0.0014,0.0005,-0.0014,0,-0.0001,0.0001,0,0,0,0,0,0.0006,-0.0004,0.023,-0.0002,0.083,-0.0597,0.0197,-0.0516,0.0067,-0.0551,0.1029,-0.0645,0.0653,-0.1108,0.1458,-0.0693,0.1679,-0.1286,0.1165,-0.035,0.1168,-0.0602,0,-0.04,0.0147,-0.0508,0.104,-0.1129,0.1098,-0.0478,0.0392,-0.0383,0.0449,-0.0348,0.0495,-0.0125,0.0752,-0.0531,0.0616,-0.0199,0.0035,-0.0049,0.0027,-0.0026,0.0005,-0.0007,0.0804,-0.0855,0.0749,-0.0338,0.0813,-0.02,0.0034,-0.0008,0.0028,-0.0016,0.0019,-0.0001,0,0,0,0,0,0,0.0005,-0.0001,0.0006,-0.0004,0.0306,-0.0662,0.1991,-0.1301,0.0934,-0.1326,0.0021,-0.0912,0.0083,-0.0038,0.0389,-0.0108,0.0019,-0.0163,0.0379,-0.0507,0.0606,-0.0581,0.0276,-0.0577,0.0364,-0.0368,0.0529,-0.0373,0.0022,-0.0011,0.0162,-0.0179,0.0219,-0.0339,0.0876,0,0.0838,-0.0752,0.0901,-0.0444,0.0909,-0.0606,0.0017,-0.0038,0.0325,-0.0333,0.0085,-0.008,0.0464,-0.0079,0.053,-0.0245,0.0284,-0.0223,0.0367,-0.0292,0.0084,-0.009,0.0328,0,0.0859,-0.044,0.0883,-0.076,0.0642,-0.0645,0.0719,-0.0598,0.048,-0.0849,0.0298,-0.025,0.0732,-0.0354,0.0398,-0.0174,0.0028,-0.0016,0.001,-0.0003,0,0,0,0,0,0,0.0001,0,0.0004,-0.0008,0.0005,-0.0006,0.0007,-0.0055,0.0134,-0.0236,0.0916,-0.0366,0.082,-0.0371,0.0295,0,0.0097,-0.0376,0.0529,-0.0412,0.0507,-0.0431,0.0387,-0.0471,0.045,-0.047,0.0522,-0.0484,0.0917,-0.0655,0.0901,-0.0721,0.003,-0.0232,0.0306,-0.0228,0.0284,-0.0314,0.0013,-0.0147,0.0006,-0.0006,0.0006,-0.0006,0.0009,-0.0013,0.0006,-0.0015,0.0009,-0.0007,0.0013,-0.0012,0.0009,-0.0007,0.0002,-0.0003,0.0002,-0.001,0.0089,-0.0205,0.0726,-0.0483,0.0941,-0.0309,0.0919,-0.0315,0.0692,-0.0459,0.0309,-0.0243,0.0441,-0.027,0.012,-0.0093,0.0046,-0.0113,0.0355,-0.0065,0.0454,-0.0515,0.0455,-0.06,0.0663,-0.0087,0.0473,-0.0056,0.0761,-0.0564,0.0444,-0.0238,0.0367,-0.022,0.0337,-0.0381,0.0667,-0.045,0.0197,-0.0332,0.077,-0.0467,0.0497,-0.0354,0.0418,-0.0309,0.0209,-0.0344,0.0023,-0.0017,0.042,-0.0023,0.0438,-0.025,0.0262,-0.0114,0.0064,-0.012,0.0006,-0.001,0.0365,-0.0339,0.0255,-0.0301,0.0169,-0.0106,0.0056,-0.0069,0.0014,-0.0012,0.0004,-0.0009,0.0007,-0.0004,0.0004,-0.0004,0.0005,-0.0005,0.0003,-0.0005,0.0002,-0.0003,0.0006,-0.0005,0.0003,-0.0003,0.0002,-0.0003,0.0004,-0.0005,0.0005,-0.0003,0.0001,-0.0005,0.0003,-0.0003,0.0004,-0.0005,0.0005,-0.0005,0.0004,-0.0005,0.0003,-0.0003,0.0003,-0.0004,0.0003,-0.0009,0.0008,-0.001,0.0007,-0.0008,0.0005,-0.0009,0.001,-0.0006,0.001,-0.0006,0.0009,-0.0009,0.0007,-0.0005,0.0007,-0.0004,0.0012,-0.0004,0.0005,-0.0002,0.0012,-0.0081,0.0049,-0.0058,0.1065,-0.1797,0.1507,-0.1496,0.009,-0.0125,0.0279,-0.0074,0.0165,-0.0681,0.1082,-0.1032,0.1155,-0.1012,0.0764,-0.072,0.006,-0.0049,0.0763,-0.0676,0.1274,-0.0753,0.0071,-0.0048,0.0024,-0.0027,0.0127,-0.0083,0.0088,-0.1093,0.0147,-0.1227,0.0192,-0.012,0.0007,-0.0018,0.0023,-0.0027,0.0034,-0.0007,0.0019,-0.0018,0.0015,-0.0013,0.0006,-0.0006,0.0003,-0.0006,0.1299,-0.0555,0.1289,-0.0845,0.0726,-0.0527,0.0741,-0.0844,0.0792,-0.171,0.0754,-0.12,0.0404,-0.0604,0.0563,-0.0985,0.1958,-0.2654,0.1455,-0.156,0.264,-0.1552,0.0432,-0.0401,0.095,-0.175,0.1221,-0.087,0.143,-0.1246,0.0919,-0.1047,0.0654,-0.0731,0.0813,-0.0732,0.1065,-0.1143,0.1261,-0.1664,0.0701,-0.1298,0.0843,-0.1921,0.2499,-0.0825,0.0562,-0.0359,0.0027,-0.0019,0.0011,-0.001,0.0793,-0.0766,0.0629,-0.064,0.0477,-0.0338,0.0035,-0.0012,0.0006,-0.0005,0.0639,-0.0369,0.0899,-0.0284,0.0115,-0.006,0.0012,-0.0018,0.0006,-0.0006,0.0002,-0.0012,0.0007,-0.0011,0.01,-0.0055,0.0762,-0.0689,0.0014,-0.0036,0.0232,-0.0269,0.0561,-0.0288,0.0502,-0.0316,0.0034,-0.0158,0.0011,-0.0007,0.0557,-0.0536,0.0382,-0.0612,0.0171,-0.0174,0.0018,-0.0005,0.0006,-0.0003,0.0006,-0.0006,0.0004,-0.0006,0.0008,-0.0006,0.0006,-0.0012,0.0005,-0.0016,0.0008,-0.0014,0.001,-0.0007,0.0012,-0.0005,0.0004,0,0.0004,-0.0031,0.0266,-0.0205,0.0457,-0.0161,0.0217,-0.0221,0.1993,-0.1603,0.095,-0.0669,0.0157,-0.0789,0.0457,-0.0289,0,-0.0955,0.1581,-0.1444,0.1358,-0.0575,0.0598,-0.0686,0.0894,-0.1051,0.0461,-0.1156,0.0525,-0.1182,0.0888,-0.1231,0.2209,-0.1725,0.1644,-0.1075,0.0422,-0.0393,0.0041,-0.0052,0.0052,-0.0057,0.0031,-0.0014,0.0006,-0.0007,0.0006,-0.0005,0.0018,-0.0015,0.0012,-0.0021,0.001,-0.0009,0.0011,-0.0007,0.0136,-0.0109,0.189,-0.1819,0.1692,-0.0479,0.0629,-0.1893,0.172,-0.1533,0.0939,-0.0834,0.1212,-0.1389,0.1898,-0.1617,0.1224,-0.0276,0.2077,-0.2208,0.1449,-0.1159,0.0413,-0.0462,0.0349,-0.0538,0.0902,-0.097,0.0806,-0.0359,0.0302,0,0.0969,-0.0919,0.0859,-0.0584,0.0222,-0.0202,0.0035,-0.0068,0.0004,-0.0004,0.0012,-0.0006,0.0004,-0.0004,0.0195,-0.0477,0.0205,-0.0068,0.0044,-0.0012,0.0947,-0.0878,0.0241,-0.1025,0.1313,-0.1553,0.1292,-0.0112,0.0077,-0.0013,0.0484,-0.0483,0.0318,-0.0223,0.182,-0.1917,0.1657,-0.1795,0.0965,-0.0962,0.0519,-0.0763,0.0727,-0.064,0.0464,-0.0773,0.101,-0.0926,0.1131,-0.054,0.0099,-0.031,0.0014,-0.003,0.1064,-0.0576,0.0916,-0.0876,0.0607,-0.0566,0.0797,-0.0432,0.068,-0.0548,0.0223,-0.0213,0.105,-0.0141,0.056,-0.0706,0.0018,-0.0014,0.0349,-0.0756,0.184,-0.1563,0.1221,-0.0814,0.0814,-0.048,0.0332,-0.034,0.0762,-0.0735,0.0552,-0.0408,0.0248,-0.0431,0.0335,-0.0191,0.0129,-0.0073,0.0007,-0.0002,0.001,-0.0006,0.0017,-0.0016,0.0014,-0.0005,0.0009,-0.0015,0.0013,-0.0014,0.002,-0.0013,0.0012,-0.0013,0.001,-0.0013,0.0007,-0.0002,0.0008,-0.0004,0.0007,-0.0005,0.0057,-0.0231,0.1364,-0.082,0.1392,-0.1281,0.2893,-0.3683,0.2941,-0.3335,0.1909,-0.0872,0.0647,-0.0664,0.1555,-0.0673,0.0978,-0.1085,0.0625,-0.0873,0.1142,-0.0733,0.0523,-0.0492,0.1171,-0.0872,0.072,-0.031,0.0065,-0.0033,0.0015,-0.0033,0.0129,-0.0161,0.0492,-0.0389,0.0833,-0.1179,0.1064,-0.1267,0.0934,-0.0751,0.0579,-0.0237,0,-0.0279,0.0011,-0.0073,0.0008,-0.0013,0.0012,-0.0018,0.0009,-0.0015,0.0005,-0.0009,0.0004,-0.0003,0.0207,-0.0149,0.0407,-0.0829,0.1069,-0.0472,0.0551,-0.116,0.0482,-0.022,0.0234,-0.041,0.0702,-0.0656,0.0648,-0.0992,0.0775,-0.0796,0.097,-0.0948,0,-0.104,0,-0.1126,0.1118,-0.0861,0.1041,-0.0739,0.0054,-0.0722,0.0015,-0.0447,0.0042,-0.0043,0.0202,-0.0167,0.0531,-0.163,0.1261,-0.1965,0.1643,-0.0794,0,-0.0728,0.0617,-0.0527,0.0267,-0.0455,0.0901,-0.0216,0.0009,-0.0199,0.0068,-0.0039,0.0191,-0.012,0.018,-0.0159,0.0001,-0.1995,0.0117,-0.1156,0.0066,-0.0057,0.0413,-0.024,0.018,-0.0557,0.1629,-0.1491,0.1783,-0.1519,0.1126,-0.0552,0.0335,-0.0487,0.0253,-0.0108,0.0268,-0.0173,0.0128,-0.0135,0.0008,-0.0063,0.0007,-0.0004,0.0006,-0.0007,0.0003,-0.0006,0.0003,-0.0005,0.0001,-0.0009,0.0008,-0.0004,0.0012,-0.0003,0.0016,-0.0005,0.0005,-0.0008,0.0007,-0.001,0.0005,-0.0007,0.0015,-0.0008,0.002,-0.0007,0.0011,-0.0005,0.0004,-0.0007,0.0002,-0.001,0.0623,-0.0951,0.2112,-0.0362,0.0437,-0.0202,0.1289,-0.1501,0.1727,-0.1794,0.2698,-0.1729,0.0099,-0.1456,0.3366,-0.247,0.0093,-0.0916,0.0115,-0.0259,0.0659,-0.0933,0.0743,-0.0689,0.0599,-0.0566,0.0267,-0.0395,0.052,-0.0181,0.1269,-0.2,0.047,-0.0243,0.0342,-0.0956,0.0735,-0.1098,0.0416,-0.0571,0.0433,-0.0041,0.0328,-0.2386,0.1233,-0.1783,0.2042,-0.1328,0.1298,-0.0915,0.0779,-0.0974,0.0758,-0.1316,0.0442,-0.0519,0.0234,-0.0084,0.0023,-0.001,0.0011,-0.0012,0.0008,-0.0011,0.0021,-0.002,0.0025,-0.0017,0.0018,-0.0011,0.0005,-0.0006,0.0136,-0.0146,0.0239,-0.0255,0.0316,-0.0403,0.0778,-0.0264,0.0507,-0.1955,0.1251,-0.2654,0.0826,-0.0984,0.0903,-0.2095,0.0252,-0.0366,0.0045,-0.0054,0.0378,-0.0395,0.0331,-0.0517,0.0622,-0.1821,0.156,-0.1377,0.1644,-0.0457,0.0765,-0.1355,0.0269,0,0.0347,-0.0176,0.0046,-0.0094,0.0097,-0.0103,0.0765,-0.0427,0.0427,-0.0422,0.3074,-0.2045,0.1639,-0.204,0.1336,-0.139,0.0385,-0.0937,0.1325,-0.243,0.1889,-0.0636,0.0144,-0.0081,0.2269,-0.1267,0.1524,-0.1894,0.0732,-0.0783,0.1193,-0.0537,0.0066,-0.0027,0.0133,-0.0012,0.089,-0.048,0.0258,-0.0598,0.0221,-0.0209,0.0038,-0.0015,0.0009,-0.0012,0.0007,-0.0012,0.0006,-0.0015,0.0009,-0.0007,0.0009,-0.0009,0.0008,-0.0006,0.0008,-0.0008,0.0008,-0.0009,0.0005,-0.0003,0.0007,-0.0005,0.0008,-0.0005,0.0003,-0.0009,0.0009,-0.0012,0.0006,-0.0008,0.0004,-0.0004,0.0006,-0.0003,0.0006,-0.0007,0.0007,-0.0005,0.0007,-0.0004,0.0008,-0.0005,0.0004,-0.0008,0.0009,-0.0012,0.0003,-0.001,0.001,-0.0004,0.0366,-0.0182,0.2049,-0.1243,0.277,-0.1562,0.0394,-0.2103,0.3938,0,0.0776,-0.0641,0.0669,-0.1071,0.0902,-0.0896,0.0402,-0.1471,0.025,-0.1338,0.0118,0,0.0722,-0.0261,0.2463,-0.181,0.1262,-0.1835,0.002,-0.0336,0.0013,-0.0033,0.2941,-0.0962,0.1537,-0.1779,0.1157,-0.1126,0.1133,-0.1076,0.1467,-0.1422,0.0692,-0.0646,0.0404,-0.0395,0.0358,-0.0318,0.0236,-0.0314,0.0257,-0.0133,0.0027,-0.0009,0.0005,-0.0008,0.0017,-0.002,0.0008,-0.0014,0.0017,-0.0006,0.0007,-0.0008,0.0002,-0.0007,0.0004,-0.0003,0.0758,-0.0266,0.251,-0.1501,0.2099,-0.1506,0.0259,-0.1149,0.0328,-0.0245,0.0199,-0.0071,0.0014,-0.0072,0.0277,-0.0368,0.1894,-0.2081,0.2065,-0.1434,0.1751,-0.0434,0.031,-0.015,0.0957,-0.1435,0.0668,-0.072,0.2104,-0.0681,0.0781,-0.0124,0.2909,-0.102,0.0599,-0.0827,0.0087,-0.0042,0.0675,-0.0065,0.0305,-0.0985,0.0616,-0.0479,0.1898,-0.1114,0.1459,-0.0783,0.0147,-0.0346,0.0078,-0.0037,0.0022,-0.0013,0.0008,-0.0013,0.0013,-0.0009,0.0005,-0.0005,0,-0.0127,0.0123,-0.0078,0.0216,-0.0164,0.0753,-0.114,0.2231,-0.1954,0.0088,-0.0733,0.0087,-0.0042,0.3069,-0.3067,0.2095,-0.2287,0.3685,-0.3525,0.2327,-0.0737,0.0828,-0.1189,0.062,-0.0659,0.1272,-0.0822,0.1145,-0.0589,0.0804,-0.0663,0.212,-0.0764,0.1104,-0.1087,0.0027,-0.0095,0.0144,-0.0355,0.0345,-0.034,0.0075,-0.0092,0.0089,-0.0129,0.0928,-0.0368,0.0313,-0.0376,0.0109,-0.0235,0.0677,-0.0347,0.0308,-0.0458,0.0386,-0.0273,0.0029,-0.0115,0.0236,-0.0639,0.1086,-0.0793,0.063,-0.0334,0.0115,-0.0025,0.0008,-0.0015,0.0641,-0.0366,0.0361,-0.0359,0.0184,-0.0244,0.0027,-0.0008,0.0005,-0.0005,0.0003,-0.0002,0.0005,-0.0005,0.0003,-0.0005,0.0006,-0.0005,0.0009,-0.0003,0.0006,-0.0011,0.0009,-0.0007,0.0001,-0.0009,0.0013,-0.0012,0.0005,-0.0007,0.0004,-0.0005,0.0002,-0.0005,0.0491,-0.0369,0.0855,-0.141,0.0994,-0.0546,0.1178,-0.1383,0.1007,-0.0339,0.0043,-0.0024,0.1023,-0.1042,0.0599,-0.1454,0.0431,-0.081,0.1126,-0.1002,0.0642,-0.1126,0.0481,-0.0228,0.0886,-0.1192,0.0703,-0.081,0.0438,-0.0803,0.051,-0.0643,0.0428,-0.0609,0.0407,-0.0658,0.0395,-0.0449,0.0625,-0.0388,0.0926,-0.1085,0.049,-0.1214,0.0666,-0.0428,0.0144,-0.0152,0.0009,-0.0008,0.0024,-0.0024,0.0033,-0.0008,0.0008,-0.0015,0.0008,-0.0016,0.0002,-0.0008,0.0005,-0.0004,0.0006,-0.0006,0.0662,-0.034,0.1348,-0.0988,0.1111,-0.1506,0.0881,-0.0775,0.1057,-0.1914,0.1115,-0.1521,0.0536,-0.0633,0.0884,-0.0734,0.0766,-0.0631,0.0417,-0.0421,0.0189,-0.0009,0.0125,-0.0027,0.0162,-0.0123,0.0616,-0.0829,0.1187,-0.1335,0.1014,-0.1125,0.1029,-0.1195,0.0865,-0.1185,0.1009,-0.0888,0.0031,-0.0134,0.091,-0.0806,0.0797,-0.1336,0.0542,-0.084,0.0052,-0.0054,0.0694,-0.0521,0.0948,-0.0573,0.0489,-0.0143,0.0328,-0.0478,0.0469,-0.0423,0.0009,-0.0265,0.0122,-0.0141,0.028,-0.0136,0.0313,-0.0332,0.0101,-0.0085,0.0286,-0.0007,0.091,-0.0547,0.0526,-0.0508,0.0794,-0.0462,0.028,-0.0088,0.0044,-0.0103,0.0057,-0.0066,0.0019,-0.0252,0.0042,-0.1347,0.2083,-0.1755,0.2038,-0.1496,0.056,-0.1078,0.0853,-0.0215,0.1788,-0.1407,0.0172,-0.0246,0.009,-0.008,0.0843,-0.0767,0.075,-0.0848,0.0004,-0.0873,0.0072,-0.0016,0.0906,-0.0437,0.1066,-0.0582,0.028,-0.0312,0.0197,-0.0361,0.038,-0.0236,0.0696,-0.0338,0.0621,-0.0328,0.0237,-0.0323,0.0042,-0.0107,0.0008,-0.0005,0.0005,-0.0016,0.0002,-0.0013,0.0011,-0.0007,0.0007,-0.0019,0.0006,-0.0012,0.0013,-0.0006,0.0007,-0.0007,0.0012,-0.0006,0.0018,-0.0009,0.0015,-0.0004,0.0307,-0.0249,0.0555,-0.0411,0.0031,-0.002,0.006,-0.0018,0.0325,-0.0392,0.131,-0.0412,0.234,-0.1331,0.0917,-0.0524,0.0064,-0.0123,0.0637,-0.0224,0.0339,-0.0858,0.0444,-0.0144,0.0004,-0.0234,0.011,-0.0137,0.0042,-0.0086,0.0701,-0.015,0.0841,-0.0754,0.0879,-0.0523,0.0695,-0.0526,0.0699,-0.0463,0.0806,0,0.0288,-0.1841,0.0238,-0.2056,0.0124,-0.0237,0.0247,-0.0035,0.0724,-0.0324,0.1375,-0.073,0.0966,-0.097,0.0337,-0.009,0.0385,-0.0071,0.0722,-0.307,0.1315,-0.2087,0.1706,-0.136,0.1022,-0.0318,0.0958,-0.0735,0.0458,-0.0485,0.0475,-0.0113,0.023,-0.1326,0.0345,-0.0291,0.0395,-0.0272,0.0137,-0.0126,0.0185,-0.0271,0.0075,-0.006,0.019,-0.0317,0.0828,-0.1212,0.0809,-0.0284,0.1695,-0.0838,0.0581,-0.0679,0.0867,-0.0824,0.061,-0.0692,0.0236,-0.0257,0.043,-0.0442,0.0403,-0.051,0.0429,-0.0317,0.0108,-0.0249,0.0039,-0.003,0.0005,-0.0006,0.001,-0.0006,0.0012,-0.0012,0.0005,-0.0009,0.0006,-0.0003,0.0006,-0.0006,0.0004,-0.0008,0.0008,-0.0008,0.0005,-0.0005,0.0017,-0.0006,0.0024,-0.0011,0.0012,-0.0008,0.0014,-0.0006,0.0006,-0.0009,0.001,-0.0013,0.0005,-0.0009,0.001,-0.0008,0.0006,-0.0003,0.0005,-0.1093,0.2983,-0.1672,0.011,-0.0241,0.0686,-0.0702,0.2558,-0.2631,0.2298,-0.147,0.2393,-0.1321,0.0655,-0.0686,0.0885,-0.0554,0.0073,-0.0089,0.0042,-0.0063,0.0014,-0.0021,0.0008,-0.0012,0.0005,-0.0009,0.0006,-0.0004,0.0005,-0.0004,0.0009,-0.0024,0.0699,-0.1996,0.2486,-0.1155,0.0863,-0.0912,0.0702,-0.1056,0.0765,-0.1453,0.0597,-0.1053,0.0516,-0.0922,0.0466,-0.0766,0.286,-0.2483,0.3156,-0.2936,0,-0.2292,0.1231,-0.206,0.0514,-0.041,0.2104,-0.066,0.3087,-0.1851,0.205,-0.2451,0.2175,-0.184,0.1326,-0.0625,0.1192,-0.1261,0.0701,-0.1137,0.1471,-0.1719,0.129,-0.1902,0.0818,-0.0542,0.2526,-0.0764,0.0634,-0.1211,0.0498,-0.0052,0.0027,-0.0013,0.0003,-0.0008,0.0591,-0.0081,0.0886,-0.0878,0.037,-0.0666,0.0353,-0.007,0.001,-0.0012,0.0924,-0.0019,0.1087,-0.0201,0.0524,-0.024,0.0029,-0.0089,0.0026,-0.0001,0.0006,-0.0005,0.0005,-0.0004,0.0003,-0.0002,0.0005,-0.0007,0.0003,-0.0007,0.0171,-0.0162,0.0489,-0.1018,0.1394,-0.0953,0.0886,-0.0682,0.0668,-0.0465,0.1209,-0.0796,0.1157,-0.0488,0.0729,-0.0376,0.1277,-0.1327,0.1364,-0.1002,0.0048,-0.0309,0,-0.0393,0.0396,-0.0396,0.1307,-0.045,0.0933,-0.0685,0.0803,-0.0477,0.0157,-0.0292,0.0015,-0.001,0.0008,-0.001,0,0,0,0,0,0,0,0,0,0,0.0002,-0.0004,0.0005,-0.0005,0.0005,-0.0003,0.0711,-0.0002,0.1645,-0.1424,0.0526,-0.0914,0.1446,-0.1152,0.1274,-0.1007,0.0532,-0.0681,0.0715,-0.0304,0.0101,-0.0396,0.0269,-0.0085,0.0087,-0.0114,0.0888,-0.0115,0.0601,-0.0354,0.0651,-0.0365,0.0125,-0.0248,0.0029,-0.0238,0.1417,-0.0977,0.1431,-0.0859,0.0854,-0.0822,0.0938,-0.0906,0.0847,-0.0429,0.1273,-0.2196,0.1355,-0.1685,0.0194,-0.0595,0.0026,-0.0204,0.0855,-0.0105,0.1474,-0.0667,0.0645,-0.0796,0.0312,-0.0259,0.0941,-0.0683,0.0528,-0.0626,0.0349,-0.0309,0.0382,-0.039,0.0328,-0.0316,0.0283,-0.0305,0.0266,-0.0259,0.0221,-0.0282,0.0808,-0.0692,0.1238,-0.0665,0.0252,-0.0306,0.0019,-0.0009,0,0,0,0,0,0,0,0,0,0,0,0,0.0002,-0.0002,0.0005,-0.0005,0.0102,-0.0081,0.0254,-0.0221,0.0058,-0.0194,0.1108,-0.1306,0.0295,-0.0624,0.1866,-0.2084,0.2227,-0.1447,0.0366,-0.0061,0.0976,-0.1654,0.2907,-0.2143,0.2443,-0.1758,0.1978,-0.1578,0.1213,-0.054,0.2414,-0.382,0.2446,-0.1862,0.1453,-0.082,0.1477,-0.287,0.024,-0.0076,0.0047,-0.0101,0.001,-0.0008,0.1429,-0.1072,0.0246,-0.0868,0.0017,-0.0032,0.0017,-0.0777,0.038,-0.0729,0.0272,-0.0129,0.004,-0.0889,0.2119,-0.1207,0.1245,-0.1165,0.1012,-0.059,0.0539,-0.0727,0.0398,-0.0768,0.0565,-0.0216,0.002,-0.0026,0.0125,-0.0036,0.0195,-0.0896,0.1579,-0.0957,0.097,-0.0823,0.0017,-0.0036,0.0003,-0.002,0.1074,-0.1012,0.0861,-0.0746,0.0153,-0.0126,0.0067,-0.0032,0.001,-0.0005,0.0852,-0.019,0.0903,-0.0945,0.0455,-0.0942,0.0025,-0.0163,0.0027,-0.0008,0.0002,-0.0006,0.0003,-0.0004,0.0005,-0.0004,0.0008,-0.0014,0.0018,-0.0016,0.0005,-0.0018,0.0006,-0.0012,0.0005,-0.0004,0.0006,-0.0004,0.0004,-0.0005,0.0006,-0.0455,0.1386,-0.0907,0.1014,-0.0735,0.1021,-0.0542,0.1206,-0.0749,0.1196,-0.0533,0.1279,-0.0751,0.0312,-0.0409,0.1486,-0.0917,0.2007,-0.175,0.1849,-0.043,0.1382,-0.1558,0.0415,-0.0653,0.0043,-0.0048,0.033,-0.0323,0.0544,-0.0213,0.0037,-0.0018,0.0035,-0.0028,0.004,-0.0035,0.1024,-0.1078,0.1116,-0.0876,0.1547,-0.0683,0.1154,-0.0579,0.1721,0,0.1992,-0.0911,0.1214,-0.0707,0.0353,-0.0708,0.0244,-0.0261,0.0201,-0.0144,0.0026,-0.0014,0.0007,-0.0005,0.0005,-0.0005,0.0003,-0.0003,0.0004,-0.0004,0.0004,-0.0005,0.0004,-0.0004,0.0006,-0.0003,0.0004,-0.0003,0.0004,-0.0004,0.0003,-0.0003,0.0004,-0.0004,0.0011,-0.0002,0.0003,-0.0023,0.0004,-0.0005,0.0004,-0.0009,0.0008,-0.0009,0.0006,-0.0008,0.0007,-0.0007,0.0006,-0.0007,0.0005,-0.0014,0.0023,-0.0012,0.0009,-0.0004,0.0003,-0.0006,0.0012,-0.0015,0.0059,-0.0046,0.0598,-0.0499,0.0774,-0.1121,0.064,-0.0526,0.2252,-0.1409,0.1183,-0.1551,0.0742,-0.1003,0.1764,-0.079,0.1611,-0.0576,0.0087,-0.0034,0.016,-0.0104,0.1819,-0.0569,0.156,-0.1694,0.0614,-0.2089,0.0558,-0.1096,0.0844,-0.1483,0.0084,-0.0177,0.0584,-0.0182,0.1619,-0.1144,0.1833,-0.0966,0.3007,-0.0821,0.0536,-0.0545,0.1136,-0.0877,0.1071,-0.0914,0.1324,-0.1403,0.0792,-0.1203,0.1433,-0.0737,0,-0.0423,0.0835,-0.0552,0.0408,-0.0063,0.0051,-0.0107,0.0056,-0.0021,0.0191,-0.0002,0.0593,-0.036,0.0685,-0.0815,0.0901,-0.1262,0.0372,-0.0239,0.0082,-0.0204,0.1692,-0.1365,0.0766,-0.0616,0.2456,-0.2012,0.1688,-0.0426,0.0219,-0.0155,0.0023,-0.0109,0.0659,-0.0575,0.0549,-0.0514,0.0158,-0.0366,0.0008,-0.0008,0.0011,-0.0012,0.0011,-0.0011,0.0012,-0.0013,0.002,-0.0014,0.0021,-0.001,0.0017,-0.0015,0.0013,-0.0007,0.0006,-0.0007,0.0003,-0.001,0.0003,-0.0003,0.0081,-0.0736,0,-0.0721,0,-0.1058,0.1462,-0.0778,0.0624,-0.068,0.0372,-0.0357,0.1895,-0.1227,0.1605,-0.1773,0.2501,-0.1717,0.2152,-0.1735,0.186,-0.1705,0.2422,-0.2449,0.1163,-0.1636,0.048,-0.0042,0.0008,-0.0011,0.0433,-0.1045,0.0969,-0.1231,0.0781,-0.0715,0.0415,-0.0609,0.0642,-0.0656,0.0631,-0.0389,0.0412,0,0.0797,-0.1546,0.1004,0,0.0508,-0.088,0.0555,-0.0804,0.0786,-0.0541,0.0562,-0.0526,0.0073,-0.0511,0.1067,-0.0405,0.0422,-0.0652,0.1283,-0.099,0.0172,-0.0056,0.0013,-0.0018,0.0021,-0.0015,0.0014,-0.0021,0.0001,-0.001,0.0004,-0.0007,0.0003,-0.0007,0.0009,-0.0012,0.0047,-0.004,0.0143,-0.0154,0.1386,-0.0979,0.0998,-0.0892,0.051,-0.0527,0.0051,-0.0125,0.0236,-0.0093,0.0581,-0.1216,0.0553,-0.0688,0.0505,-0.1027,0.0784,-0.0974,0.0539,-0.0507,0.04,-0.0007,0.2022,-0.1499,0.1518,-0.1043,0.0761,-0.0255,0.0191,-0.0373,0.0112,-0.0202,0.0175,-0.0103,0.0283,-0.0456,0.0479,-0.0519,0.0282,-0.0288,0.0392,-0.0321,0.0598,-0.0382,0.0501,-0.0316,0.0457,-0.004,0.033,-0.0403,0.0931,-0.0646,0.0216,-0.0305,0.0015,-0.0008,0.0044,-0.0048,0.0992,-0.0604,0.0565,-0.0696,0.0462,-0.0244,0.0107,-0.0165,0.0102,-0.0098,0.007,-0.0036,0.0927,-0.0006,0.0589,-0.0497,0.0167,-0.0203,0.0094,-0.0061,0.0019,-0.0005,0.0003,-0.0004,0.0004,-0.0003,0.0002,-0.0003,0.0003,-0.0008,0.0007,-0.0003,0.0004,-0.0002,0.0004,-0.0005,0.0004,-0.0003,0.0002,-0.0002,0.0005,-0.0005,0.0005,-0.0002,0.0006,-0.0004,0.0006,-0.0004,0.0005,-0.0004,0.0005,-0.0003,0.0003,-0.0005,0.0005,-0.0005,0.0008,-0.0006,0.0001,-0.0008,0.0006,-0.0003,0.0006,-0.0005,0.0005,-0.0006,0.0004,-0.0006,0.0006,-0.0003,0.0003,-0.0005,0.0004,-0.0006,0.0038,-0.0019,0.01,-0.0103,0.0299,-0.0433,0.2142,-0.1303,0.0641,-0.1135,0.0616,-0.0867,0.0625,-0.0887,0.0636,-0.05,0.0168,-0.0613,0.0034,-0.07,0.0209,-0.0031,0.0178,-0.0304,0.0136,-0.043,0.022,-0.0167,0.0155,-0.0103,0.0076,-0.0016,0.1284,-0.0939,0.1039,-0.0504,0.1299,-0.0372,0.1139,-0.1011,0.0288,-0.0369,0.0104,-0.0544,0.0015,-0.0032,0.0041,-0.0678,0.0807,-0.0834,0.098,-0.126,0.0461,-0.0658,0.009,-0.0405,0.011,-0.0447,0.0059,-0.0635,0.0411,-0.0221,0.0206,-0.0072,0.2646,-0.2128,0.1557,-0.2148,0.0116,-0.0285,0.0241,-0.0299,0.0016,-0.0027,0.0055,-0.101,0.1108,-0.1061,0.128,-0.0758,0.021,-0.0243,0.0312,-0.0402,0.0636,-0.053,0.05,-0.036,0.1332,-0.0354,0.1084,-0.0408,0.0365,-0.0264,0.0034,-0.0032,0.001,-0.0011,0.0013,-0.0021,0.0013,-0.0012,0.0008,-0.0019,0.0015,-0.0017,0.0011,-0.0013,0,-0.0016,0.0008,-0.0004,0.0277,-0.0006,0.077,-0.0339,0.0677,-0.032,0.0754,-0.0155,0.0915,-0.0001,0.0529,-0.0028,0.0699,-0.2169,0,-0.1446,0.029,-0.055,0.05,0,0.0556,-0.0443,0.0525,-0.0381,0.0067,-0.0469,0.0031,-0.0225,0.1317,-0.065,0.0509,-0.083,0.1307,-0.0568,0.1677,-0.204,0.1006,-0.0863,0.0888,-0.0767,0.0249,-0.0439,0.0037,-0.004,0.0676,-0.0115,0.1041,-0.0698,0.0651,-0.0177,0.0106,-0.0143,0.0031,-0.0147,0.0123,-0.0007,0.0138,-0.0422,0.0375,-0.0192,0.0662,-0.08,0.0752,-0.0284,0.0494,-0.0237,0.0673,-0.0745,0.0455,-0.0381,0.0304,-0.0295,0.0171,-0.0103,0.0022,-0.0008,0.0008,-0.0004,0.0006,-0.0003,0.0008,0,0.0005,-0.0002,0.0005,-0.0004,0.0008,-0.0004,0.0003,-0.0003,0.0002,-0.0006,0.0005,-0.0007,0.0002,-0.0009,0.0008,-0.0004,0.0006,-0.001,0.0011,-0.0013,0.0008,-0.0013,0.0008,-0.0007,0.0007,-0.0008,0.0006,-0.0008,0.0007,-0.0007,0.0056,-0.0057,0.086,-0.0107,0.0345,-0.058,0.1134,-0.2128,0.0748,-0.1055,0.1745,-0.1806,0.1445,-0.2038,0.0249,-0.0393,0.1001,-0.1365,0.0433,-0.0651,0.0579,-0.069,0.0587,-0.0628,0.0515,-0.0747,0.0754,-0.0725,0.0949,-0.0594,0.0453,-0.0527,0.0908,-0.1407,0.2053,-0.0952,0.194,-0.1423,0.0234,-0.0607,0.0536,-0.0286,0.1283,-0.1036,0.1254,-0.0913,0.1117,-0.0968,0.0817,-0.0835,0.0008,-0.045,0.001,-0.0126,0.1046,-0.0822,0.0182,-0.0564,0.0457,-0.0293,0.1341,-0.0911,0.0418,-0.0602,0.009,-0.0036,0.0006,-0.0008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0013,-0.0043,0.012,-0.0062,0.2256,-0.0548,0.1345,-0.1183,0.0342,-0.0873,0.0667,-0.0293,0.1588,-0.108,0.2096,-0.1873,0.2568,-0.3707,0.0072,-0.0119,0.1867,-0.1591,0.1859,-0.2725,0.1098,-0.1423,0.4282,-0.2385,0.1781,-0.31,0.0114,-0.0373,0.0133,-0.0037,0.0653,-0.0727,0.0781,-0.1224,0.1441,-0.0785,0.003,-0.0079,0.1199,-0.1151,0.1901,-0.1627,0.1851,-0.1172,0.0395,-0.028,0.021,-0.0184,0.105,-0.1498,0.1277,-0.1383,0.1086,-0.1158,0.0369,-0.0018,0.1495,-0.1556,0.2165,-0.1782,0.1389,-0.0791,0.0895,-0.0675,0.0372,-0.0168,0.0368,-0.031,0.153,-0.1015,0.0926,-0.0241,0.0153,-0.0102,0.0311,-0.0282,0.0057,-0.0328,0.1023,-0.0842,0.0182,-0.0826,0.0439,-0.0443,0,-0.0064,0.0684,-0.0626,0.0794,-0.0608,0.0123,-0.0043,0.0069,-0.0091,0.0009,-0.0005,0.0699,-0.0784,0.0824,-0.0806,0.095,-0.0456,0.003,-0.0207,0.0007,-0.0014,0.0008,-0.0004,0.0002,-0.0005,0.0002,-0.0008,0.0004,-0.001,0.0005,-0.0007,0.0001,-0.0017,0.0017,-0.0009,0.0009,-0.0015,0.001,-0.0006,0.0005,-0.0011,0.0011,-0.0004,0.0005,-0.0002,0.0007,-0.0004,0.0222,-0.0003,0.049,-0.0244,0.0408,-0.0271,0.2117,-0.1789,0.2524,-0.2076,0.0306,-0.1502,0.2107,-0.2319,0.1717,0,0.0579,0,0.0777,-0.0447,0.0524,-0.0187,0.003,-0.0156,0.0056,0,0.0014,-0.0001,0.0006,-0.0006,0.0004,-0.0006,0.0005,-0.0006,0.081,-0.0352,0.0959,-0.056,0.0306,-0.0553,0.0401,0,0.0704,-0.0507,0.0499,-0.0534,0.101,-0.0863,0.0455,-0.0779,0.0614,-0.0587,0.1624,-0.1689,0.1242,-0.182,0.113,-0.1018,0.1004,-0.1484,0.0869,-0.043,0.0848,-0.095,0.0744,-0.066,0.0445,-0.0185,0.0015,-0.001,0.0314,-0.029,0.0585,-0.0218,0.0024,-0.0011,0.0775,-0.0488,0.0497,-0.0503,0.0573,-0.0427,0.0437,-0.0399,0.0029,-0.0208,0.0008,-0.001,0.001,-0.0006,0.0006,-0.001,0.001,-0.0012,0.0007,-0.0012,0.0006,-0.0006,0.0004,-0.0007,0.0007,-0.0006,0.0003,-0.0004,0.0003,-0.0048,0,-0.0395,0,-0.0743,0,-0.0953,0.0503,-0.0426,0.0324,-0.0314,0.014,-0.0026,0.0895,-0.0007,0.1195,-0.078,0.0186,-0.0119,0.0139,-0.0352,0.0329,-0.0236,0.0536,-0.0228,0.0635,-0.0341,0.0975,-0.1018,0.0841,-0.0637,0.0187,-0.0517,0.002,-0.0027,0.0765,-0.0522,0.0418,-0.0443,0.0142,-0.0213,0.0063,-0.0067,0.0009,-0.0011,0.089,-0.0307,0.0959,-0.084,0.0617,-0.0487,0.0083,-0.0029,0.0008,-0.0009,0.0007,-0.0005,0.0007,-0.0014,0.0008,-0.0012,0.0008,-0.0014,0.001,-0.0011,0.0017,-0.0014,0.0006,-0.0014,0.0003,-0.0007,0.0006,-0.0008,0.0002,-0.0003,0.0053,-0.007,0.0125,-0.0502,0,-0.0586,0.0205,-0.1128,0.07,-0.0169,0.0053,-0.0009,0.1452,-0.0322,0.0812,-0.0947,0.0822,-0.071,0.0929,-0.0771,0.039,-0.0691,0.0573,-0.0633,0.0378,-0.0564,0.1293,-0.1396,0.0953,-0.1632,0.1274,-0.1324,0.0265,-0.0258,0.0033,-0.0025,0.0203,-0.0123,0.008,-0.0804,0.2325,-0.0968,0.0413,-0.0516,0.0363,-0.037,0.0303,-0.0968,0.2115,-0.1621,0.2095,-0.1978,0.1192,-0.048,0.1062,-0.0784,0.0369,-0.031,0.0016,-0.0088,0.083,-0.0627,0.0477,-0.0781,0.109,-0.0831,0.0739,-0.0547,0.0278,-0.0044,0.0366,-0.0325,0.0859,-0.0326,0.099,-0.0809,0.0534,-0.0672,0.1051,-0.0707,0.0413,-0.0702,0.0812,-0.0542,0.0023,-0.0702,0.0406,-0.0242,0.0065,-0.0041,0.0004,-0.001,0.0005,-0.0002,0.0012,-0.0005,0.0004,-0.0006,0.0011,-0.0013,0.001,-0.0014,0.0009,-0.0013,0.0005,-0.0005,0.0007,-0.0005,0.0013,-0.0017,0.0086,-0.0036,0.0378,-0.0078,0.2369,-0.0829,0.0465,-0.0434,0.0043,-0.005,0.003,-0.0019,0.0171,-0.0067,0.0071,-0.0053,0.0296,-0.001,0.0887,-0.1322,0.088,-0.0581,0.1142,-0.0674,0.0564,-0.0398,0.0483,-0.0269,0.004,-0.0038,0.0013,-0.0015,0.0004,-0.0006,0.0021,-0.0006,0.0013,-0.0019,0.0004,-0.0012,0.0004,-0.0004,0.0037,-0.0025,0.0031,-0.0069,0.0114,-0.0129,0.0384,-0.022,0.214,-0.1406,0,-0.2759,0.0445,-0.1221,0.0097,-0.0005,0.0309,-0.0056,0.1102,-0.0881,0.1486,-0.0738,0.1385,-0.1023,0.1057,0,0.0146,-0.0083,0.0611,-0.0183,0.0479,-0.0292,0.0457,-0.0358,0.0195,-0.0239,0.0114,-0.0051,0.0085,-0.0044,0.0551,-0.0229,0.0589,-0.042,0.0465,-0.0863,0.0911,-0.0315,0.0609,-0.0193,0.156,-0.0729,0.1604,-0.1167,0.0662,-0.1016,0.0637,-0.0642,0.0562,-0.0485,0.0643,0,0.0923,-0.0618,0.0461,-0.0484,0.0291,-0.051,0.0016,-0.0024,0.0035,-0.0008,0.0979,-0.0533,0.0982,-0.045,0.0484,-0.0357,0.0613,-0.0371,0.0422,-0.0268,0.0014,-0.0026,0.0019,-0.0012,0.0014,-0.0017,0.0018,-0.0014,0.0006,-0.0021,0.0008,-0.0008,0.0007,-0.0009,0.0006,-0.001,0.0003,-0.0004,0.0003,-0.0005,0.0005,-0.0005,0.019,-0.0093,0.0091,-0.0131,0.0014,-0.001,0.0196,-0.005,0.0038,-0.0257,0.0008,-0.0003,0.1104,-0.1527,0.1073,-0.0735,0.0495,-0.0541,0.0452,-0.0626,0.0375,-0.045,0.0398,0,0.0904,-0.0857,0.0402,-0.0335,0.0012,-0.0028,0.0118,-0.0024,0.0012,-0.0077,0.0038,-0.0025,0.0003,-0.0004,0.0026,-0.0005,0.0087,-0.0105,0.0586,-0.0279,0.043,-0.0565,0.0091,-0.0154,0.0101,-0.0005,0.0668,-0.0615,0.0766,-0.0653,0.0743,-0.0628,0.0013,-0.0105,0.1232,-0.0657,0.0365,-0.1156,0.0675,-0.0505,0.0696,-0.0389,0.0133,-0.0156,0.0627,-0.0514,0.0623,-0.0423,0.0875,-0.0434,0.0745,-0.0327,0.02,-0.0301,0.0349,-0.0277,0.0217,-0.0141,0.0013,-0.0018,0.0004,-0.0005,0.0003,-0.0005,0.0004,-0.0003,0.0002,-0.0004,0.0004,-0.0005,0.0004,-0.0006,0.0004,-0.0001,0.0003,-0.0004,0.0005,-0.0004,0.0005,-0.0003,0.0001,-0.0005,0.0003,-0.0006,0.0005,-0.0004,0.0006,-0.0006,0.0002,-0.0006,0.0004,-0.0002,0.0003,-0.0004,0.0003,-0.0003,0.0005,-0.0002,0.0004,-0.0006,0.0005,-0.0006,0.0006,-0.0003,0.0003,-0.0006,0.0007,-0.0008,0.0003,-0.0003,0.0003,-0.0005,0.0009,-0.0004,0.0005,-0.0007,0.0003,-0.0007,0.0004,-0.0015,0.0009,-0.0007,0.0007,-0.001,0.0005,-0.0004,0.0012,-0.0005,0.0014,-0.0009,0.0009,-0.0008,0.0007,-0.0005,0.0007,-0.001,0.0005,-0.0006,0.0003,-0.0009,0.0001,-0.0008,0.047,-0.0357,0.0533,-0.0385,0.0346,-0.0392,0.1199,-0.1129,0.0935,-0.072,0.0686,-0.0723,0.1332,-0.129,0.0878,-0.0831,0.1646,-0.0385,0.0211,-0.0052,0.0039,-0.0041,0.0019,-0.0012,0.0008,-0.0008,0.0005,-0.0008,0.0008,-0.0008,0.0005,-0.0003,0.009,-0.0056,0.0404,-0.1961,0.1826,-0.1534,0.0224,-0.0348,0.0208,-0.0331,0.1687,-0.0308,0.1347,-0.323,0.2127,-0.1971,0.1004,-0.0798,0.1178,-0.0981,0.0386,-0.0666,0.0765,-0.0864,0.0486,-0.0044,0.0083,-0.0021,0.0226,-0.016,0.0069,-0.006,0.0062,-0.0076,0.0364,-0.0623,0.0575,-0.0415,0.0468,-0.0126,0.018,-0.0126,0.096,-0.0578,0.144,-0.1083,0.0724,-0.0645,0.0028,-0.0196,0.0016,-0.0022,0.0009,-0.0007,0.0005,-0.0009,0.0005,-0.0006,0.0005,-0.0004,0.0004,-0.0005,0.0001,-0.0005,0.0077,-0.0377,0.0326,-0.0818,0.2141,-0.1081,0,-0.1278,0.0009,-0.0708,0.0031,-0.0046,0.0044,-0.0018,0.0356,-0.0005,0.0504,-0.1697,0.0681,-0.1558,0.1296,-0.1192,0.08,-0.1068,0.0113,-0.0192,0.0156,-0.0051,0.1801,-0.0998,0.1478,-0.134,0.0914,-0.0564,0.1773,-0.1093,0.1367,-0.1318,0.0187,-0.0062,0.0018,-0.0023,0.0007,-0.0005,0.0095,-0.0045,0.1274,-0.0996,0.1453,-0.06,0.0546,-0.0368,0.0679,-0.0316,0.1015,-0.1169,0.1272,-0.0777,0.1042,-0.0691,0.0087,-0.0044,0.0067,-0.0169,0.0692,-0.0805,0.1352,-0.1198,0.1295,-0.0654,0.0422,-0.0241,0.0023,-0.0016,0.0105,-0.0129,0.0039,-0.0168,0.0661,-0.033,0.0675,-0.0363,0.0101,-0.006,0.0342,-0.0276,0.0011,-0.0025,0.0047,-0.001,0.0571,-0.0429,0.0409,-0.0261,0.0422,-0.0328,0.0198,-0.0202,0.0032,-0.0013,0.0011,-0.0004,0.0003,-0.0003,0.0007,-0.0002,0.0007,-0.0007,0.0005,-0.0005,0.0005,-0.0005,0.0003,-0.0004,0.0003,-0.0004,0.0002,-0.0002,0.0002,-0.0007,0.0007,-0.0008,0.0006,-0.0006,0.0018,-0.0007,0.0015,-0.0009,0.0009,-0.001,0.0005,-0.0007,0.0005,-0.0008,0.0003,-0.0004,0.0175,-0.027,0.0997,-0.0737,0.1491,-0.0942,0.1615,-0.1146,0.1385,-0.1221,0.1981,-0.2364,0.2345,-0.1774,0.066,-0.0646,0.0527,-0.0731,0.1326,-0.1248,0.2659,-0.2343,0.0947,-0.1277,0.0601,-0.0393,0.0179,-0.0271,0.0345,-0.0227,0.0046,-0.0296,0.2927,-0.2537,0.302,-0.3786,0.1237,-0.2762,0.0573,-0.0694,0.0536,-0.0639,0.025,-0.0734,0.0148,-0.0211,0.0074,-0.0097,0.1392,-0.1073,0.1835,-0.0751,0.2195,-0.1237,0.2789,-0.2087,0.2188,-0.1461,0.0312,-0.0551,0.0085,-0.0089,0.0022,-0.0023,0.0007,-0.0003,0.0419,-0.0173,0.0075,-0.0132,0.0807,-0.0053,0.0164,-0.0347,0.0178,-0.0379,0.0167,-0.0125,0.0064,-0.0121,0.0009,-0.0008,0.1111,-0.0872,0.0736,-0.071,0.0419,-0.0634,0.021,-0.0199,0.001,-0.0006,0.0007,-0.0019,0.0017,-0.0011,0.0009,-0.0014,0.0032,-0.0015,0.0008,-0.0008,0.0023,-0.0017,0.0017,-0.0013,0.0008,-0.0011,0.0074,-0.0069,0.0333,-0.0453,0.1381,-0.0819,0.1474,-0.1077,0.147,-0.2155,0.1311,-0.1141,0.1558,-0.1037,0.1804,-0.1829,0.133,-0.0728,0.1331,-0.1157,0.0013,-0.0527,0.0023,-0.0012,0.0523,-0.1049,0.0827,-0.103,0.1161,-0.0458,0.0654,-0.0617,0.0049,-0.0019,0.0019,-0.0022,0.0007,-0.0006,0.0004,-0.0004,0.0004,-0.0005,0.0132,-0.0243,0.0859,-0.0535,0.0242,-0.1219,0.0634,-0.0735,0.0593,-0.067,0.0663,-0.0708,0.0565,-0.0232,0.0993,-0.0245,0.0812,-0.0744,0.2116,-0.1572,0.1455,-0.1414,0.0576,-0.0523,0.1541,0,0.1668,-0.1338,0.0922,-0.0318,0.0805,-0.0493,0.0217,-0.03,0.0219,-0.031,0.004,-0.0187,0.0018,-0.0007,0.0006,-0.0006,0.025,-0.0017,0.0241,-0.0202,0,-0.1193,0.0962,-0.062,0.1666,-0.1674,0.1281,-0.0866,0.0597,-0.0842,0.0839,-0.0863,0.0591,-0.0581,0.027,-0.0696,0.0015,-0.0813,0.0019,-0.0006,0.0021,-0.0071,0.0197,-0.009,0.0062,-0.0003,0.052,-0.1213,0.0707,-0.0475,0.2339,-0.2006,0.1014,-0.1457,0.009,-0.0104,0.0043,-0.0121,0.0231,-0.0041,0.0997,-0.1079,0.1171,-0.0751,0.0861,-0.044,0.0716,-0.0331,0.0352,-0.1372,0.0079,-0.0733,0.0098,-0.044,0.226,-0.2219,0.0235,-0.054,0,-0.0839,0.0081,-0.018,0.0054,-0.0035,0.0577,-0.0435,0.0078,-0.0063,0.0029,-0.0036,0.0306,-0.0024,0.0286,-0.0297,0.0311,-0.0305,0.0381,-0.0272,0.0145,-0.0191,0.0125,-0.0017,0.0014,-0.0009,0.0018,-0.0011,0.0014,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0004,-0.0004,0,-0.0005,0.0029,-0.0467,0.0474,-0.0217,0.0202,-0.0394,0.156,-0.0336,0.0534,-0.0438,0.0034,-0.0032,0.1486,-0.0144,0.117,-0.0837,0.0131,-0.0361,0.012,-0.0008,0.0032,-0.0364,0.0776,-0.0513,0.0519,-0.0318,0.0441,-0.0222,0.0046,-0.0045,0.0042,-0.003,0.0348,-0.0053,0.021,-0.0376,0.0258,-0.0128,0.0057,-0.0337,0.0653,-0.0524,0.091,-0.0853,0.1598,-0.1244,0.1295,-0.1211,0.0027,-0.0305,0.0019,-0.0041,0.0164,-0.001,0.029,-0.0158,0.0518,-0.0344,0.0497,0,0.0896,-0.0479,0.0317,-0.0491,0.0071,-0.0141,0.0056,-0.0043,0.008,-0.0236,0.0086,-0.0084,0.002,-0.0038,0.0541,-0.0864,0.0676,-0.0508,0.0291,-0.0531,0.0026,-0.0032,0.0095,-0.0067,0.0502,-0.0317,0.0428,-0.0386,0.0492,-0.0291,0.0412,-0.0296,0.0433,-0.0335,0.0094,-0.0088,0.0009,-0.0006,0.0004,-0.0002,0.0004,-0.0003,0.0004,-0.0004,0.0003,-0.0003,0.0003,-0.0003,0.0005,-0.0003,0.0004,-0.0005,0.0003,-0.0005,0.0002,-0.0003,0.0002,-0.0006,0.0005,-0.0007,0.0006,-0.0004,0.001,-0.0003,0.0001,-0.0005,0.0001,-0.0004,0.0003,-0.0005,0.0004,-0.0008,0.0001,-0.0004,0.0003,-0.0004,0.0003,-0.0004,0.0006,-0.0003,0.0006,-0.0004,0.0007,-0.0005,0.0004,-0.0003,0.0003,0,0.0005,-0.0002,0.0007,-0.0005,0.0006,-0.0003,0.0004,-0.0003,0.0004,-0.0006,0.0004,-0.0009,0,-0.0008,0.0002,-0.0008,0.0004,-0.0005,0.0004,-0.0007,0.0003,-0.0008,0.0004,-0.0005,0.0006,-0.0007,0.0006,-0.0007,0.0008,-0.0005,0.0006,-0.0003,0.0004,-0.0008,0.0007,-0.0004,0.0016,-0.0007,0.0018,-0.0012,0.0011,-0.0004,0.0027,-0.0108,0.091,-0.013,0.095,-0.1549,0.2329,-0.1098,0.1944,-0.1782,0.0655,-0.0771,0.0494,-0.0157,0.0457,-0.0871,0.238,-0.1005,0.0894,-0.132,0.0369,-0.255,0.0735,-0.2812,0.3022,-0.2592,0.2948,-0.2746,0.1204,-0.0759,0.1353,-0.1531,0.1048,-0.0688,0.0509,-0.0145,0.0015,-0.0028,0.0632,0,0.0705,-0.0359,0.0117,-0.0015,0.1027,-0.0795,0.12,-0.0589,0.07,-0.0712,0.0238,-0.0208,0.04,-0.1134,0.0542,-0.1222,0.1221,-0.1018,0.0478,-0.0003,0.0274,-0.0221,0.0094,-0.0021,0.0692,-0.0479,0.0268,-0.0036,0.0055,-0.0057,0.0577,-0.04,0.0323,-0.0318,0.047,-0.0323,0.0188,-0.0036,0.0826,-0.0737,0.108,-0.0739,0.0211,-0.0569,0.0426,-0.0586,0.0226,-0.0192,0.0227,-0.0167,0.0296,-0.0184,0.0379,-0.0352,0.0832,-0.0332,0.0438,-0.0135,0.0048,-0.0083,0.0007,-0.0004,0.0011,-0.0005,0.0018,-0.0008,0.0011,-0.0009,0.0016,-0.0016,0.0019,-0.0013,0.0007,-0.0007,0.0004,-0.0001,0.0024,-0.0091,0.0288,-0.0223,0.0108,-0.0788,0.064,-0.0916,0.2586,-0.1772,0.4362,-0.2844,0.2542,-0.2476,0.1914,-0.1029,0.0388,-0.0598,0.0565,-0.0463,0.0375,-0.024,0.0351,-0.0276,0.1418,-0.0671,0.3012,-0.0961,0.1226,-0.1781,0.0746,-0.0882,0.0441,-0.0615,0,-0.0396,0.1163,-0.0692,0.0887,-0.0558,0.069,-0.046,0.067,-0.034,0.0653,-0.0556,0.0428,-0.0292,0.004,-0.0072,0.0014,-0.0015,0.0589,-0.1214,0.0528,-0.0149,0.0938,-0.1219,0.101,-0.0837,0.0779,-0.0604,0.1052,-0.0717,0.0501,-0.028,0.0969,-0.0664,0.0848,-0.0603,0.0294,-0.0389,0.0164,-0.0336,0.0045,-0.0022,0.0006,-0.0007,0.0003,-0.0004,0.0003,-0.0003,0.0002,-0.0003,0.0003,-0.0004,0.0005,-0.0003,0.0009,-0.0003,0.0006,-0.0003,0.0004,-0.0013,0.0009,-0.0014,0.0017,-0.0018,0.001,-0.001,0.0006,-0.0014,0.0005,-0.0008,0.0129,-0.0164,0.1699,-0.0925,0.0875,-0.1208,0.1451,-0.1424,0.2649,-0.2084,0.038,-0.2374,0.0445,-0.0821,0.0818,-0.0939,0.0842,-0.1471,0.1341,-0.0515,0.0759,-0.1197,0.1372,-0.0888,0.1486,-0.0039,0.0898,-0.1443,0.0902,0,0.0661,0,0.0005,-0.0104,0.004,-0.0017,0.0019,-0.0012,0.0016,-0.0007,0.0008,-0.0008,0.0007,-0.0004,0.0006,-0.0001,0.0078,-0.0286,0.0992,-0.0313,0.1294,-0.0958,0.1071,-0.0701,0.0049,-0.0304,0.0488,-0.0206,0.0509,-0.0608,0.0833,-0.0676,0.083,-0.1082,0.0433,-0.0352,0.0416,-0.0332,0.009,-0.0156,0.2161,-0.2476,0.1262,-0.0903,0.003,-0.0081,0.0678,-0.1791,0.2181,-0.1737,0.0709,-0.0062,0.0412,-0.0483,0.0126,-0.0007,0.0152,-0.0137,0.1109,-0.042,0.0747,-0.1615,0.1491,-0.1438,0.0455,-0.0072,0.0699,-0.0888,0.0425,-0.0436,0.0385,-0.0512,0.0383,-0.029,0.0015,-0.0041,0.0048,-0.0038,0.0028,-0.003,0.0069,-0.0012,0.0385,-0.04,0.0389,-0.0596,0.0823,-0.0847,0.0725,-0.0828,0.0698,-0.0678,0.073,-0.0571,0.0697,-0.0764,0.1008,-0.0464,0.012,-0.0735,0.1075,-0.0913,0.1129,-0.0908,0.0106,-0.0234,0.0015,-0.0015,0.0006,-0.0004,0.0011,-0.0005,0.002,-0.0018,0.001,-0.0008,0.0017,-0.0012,0.0005,-0.0017,0.0013,-0.0011,0.0005,-0.0004,0.0138,-0.0153,0.0894,-0.0441,0.1936,-0.0976,0,-0.1352,0.0935,-0.0306,0.0466,-0.0077,0.0748,-0.0761,0.0672,-0.0762,0.091,-0.0667,0.0788,-0.0771,0.0838,-0.0696,0.0156,-0.0434,0.0077,-0.012,0.1193,-0.049,0.096,-0.0437,0.0947,-0.1334,0.0377,0,0.27,-0.1075,0.1877,-0.104,0.006,-0.021,0.15,-0.0924,0.1331,-0.0816,0.0267,-0.0421,0.035,-0.0427,0.0392,-0.0288,0.1315,-0.1027,0.0704,-0.0538,0.1224,-0.0512,0.127,-0.0508,0.0657,-0.0109,0.0428,-0.0233,0.0201,-0.0073,0.0159,-0.0067,0.0021,-0.0012,0.0003,-0.0005,0.0007,-0.0004,0.0006,-0.0005,0.0007,-0.0002,0.0006,-0.0005,0.0006,-0.0003,0.0006,-0.0007,0.001,-0.0004,0.0016,-0.0002,0.0017,-0.0008,0.0012,-0.0007,0.0003,-0.0009,0.0004,-0.0005,0.0002,-0.0004,0.0024,-0.0026,0.0041,-0.0082,0.0396,-0.0277,0.0351,-0.0479,0.0771,-0.1445,0.1145,-0.1277,0.0299,-0.0407,0.0041,-0.0099,0.001,-0.0139,0.1515,-0.1597,0.1066,-0.1132,0.064,-0.0177,0.0023,-0.0437,0.1697,-0.1066,0.0804,-0.0835,0.1418,-0.1497,0.1577,-0.1439,0.0567,-0.0764,0.2238,-0.2039,0.2708,-0.2426,0.0419,-0.2026,0.0531,-0.0415,0.0494,-0.0877,0.0854,-0.1021,0.0438,0,0.0587,-0.1205,0.1325,-0.1043,0.1712,-0.1343,0.1758,-0.0486,0.0491,-0.0522,0.033,-0.0947,0.0499,-0.0881,0.0018,-0.0014,0.0008,-0.0013,0.0006,-0.0018,0.0539,-0.0442,0.0355,-0.0103,0.0021,-0.005,0.0026,-0.0038,0.0013,-0.0069,0.0886,-0.0532,0.1032,-0.0628,0.0201,-0.0464,0.0022,-0.0014,0.0004,-0.0006,0.0014,-0.0012,0.0012,-0.0016,0.0009,-0.0016,0.0005,-0.0016,0.0006,-0.0009,0.0016,-0.0007,0.0621,-0.0099,0.0503,-0.0283,0.0128,-0.0155,0.0798,-0.0762,0.0727,-0.0707,0.07,-0.081,0.1053,-0.1073,0.0896,-0.1051,0.1298,-0.1282,0.1816,-0.1356,0.1499,-0.1219,0.1063,-0.0996,0.0485,-0.0031,0.0689,-0.0249,0.0426,-0.0311,0.0093,-0.0102,0.0013,-0.0026,0.1225,-0.1185,0.0424,-0.0951,0.1674,-0.3704,0.3576,-0.2487,0.0531,-0.0687,0.006,-0.0316,0.0333,-0.0125,0.0897,-0.1107,0.057,-0.0175,0.0219,-0.0306,0.0022,-0.0315,0.0683,0,0.0791,-0.0884,0.0256,-0.2027,0.0048,-0.18,0.1158,-0.0219,0.1217,-0.1987,0.0103,-0.0543,0.0056,-0.0103,0.1865,-0.2013,0.0147,-0.1734,0.0768,-0.0519,0.026,-0.0235,0.0435,-0.0592,0.0907,-0.068,0.0494,-0.0721,0.0472,-0.0548,0.1174,-0.0218,0.0201,-0.0198,0.0301,-0.0192,0.0047,-0.0046,0.0005,-0.0005,0.0002,-0.0004,0.0004,-0.0002,0.0005,-0.0004,0.0005,-0.0004,0.0004,0,0.0004,-0.0004,0.0006,-0.0005,0.0004,-0.0002,0.0001,-0.0005,0.0003,-0.0003,0.0005,-0.0003,0.0002,-0.0004,0.0006,-0.0004,0.0004,-0.0003,0.0005,-0.0005,0.0005,-0.0004,0.0003,-0.0005,0.0004,-0.0003,0.0004,-0.0002,0.0005,-0.0004,0.0007,-0.0006,0.0003,-0.0002,0.0005,-0.0004,0.0003,-0.0005,0.0002,-0.0006,0.0002,-0.0004,0.0004,-0.0004,0.0001,-0.0005,0.0067,-0.0134,0.04,-0.0389,0.0496,-0.0366,0.1094,-0.1178,0.1028,-0.1215,0.0804,-0.0666,0.1126,-0.0501,0.0495,-0.0805,0.0736,-0.0541,0.0331,-0.0572,0.1115,-0.1134,0.0985,-0.0754,0.039,-0.0272,0.0085,-0.0101,0.0005,-0.0011,0.0295,-0.018,0.0319,-0.0346,0.0129,-0.0062,0.004,-0.0008,0.0043,-0.0055,0.0256,-0.0254,0.0208,-0.027,0.0525,-0.0408,0.0398,-0.0479,0.0032,-0.0254,0.0515,-0.0144,0.011,-0.0156,0.0058,-0.0143,0.0037,-0.004,0.0001,-0.0011,0.0006,-0.0005,0.0004,-0.0006,0.0006,-0.0004,0.0004,-0.0003,0.0003,-0.0002,0.0004,-0.0004,0.0004,-0.0005,0.0005,-0.0005,0.0005,-0.0004,0.0004,-0.0003,0.0002,-0.0005,0.0005,-0.0007,0,-0.0008,0.0007,-0.0007,0.0004,-0.0006,0.0004,-0.0008,0.0009,-0.0007,0.0009,-0.0005,0.0007,-0.0001,0.0007,-0.0008,0.0005,-0.0003,0.0003,-0.0004,0.0005,0,0.0003,-0.0002,0.0141,-0.0003,0.0202,-0.0674,0.0561,-0.0889,0.0707,-0.0939,0.0814,-0.1126,0.0617,-0.0734,0.0606,-0.0819,0.164,-0.0764,0.0843,-0.0858,0.0087,-0.0117,0.0759,-0.2897,0.0614,-0.2686,0.06,-0.0708,0.0339,-0.0701,0.1489,-0.0773,0.1753,-0.26,0.1248,-0.182,0.1302,-0.2177,0.1281,-0.134,0.2545,-0.1385,0.091,-0.074,0.0263,-0.0159,0.0023,-0.0056,0,-0.0024,0.002,-0.0011,0.0009,-0.0016,0.0005,-0.0008,0.0003,-0.0003,0.007,-0.0075,0.2325,-0.1603,0.1371,-0.2295,0.1601,-0.0901,0.0729,-0.0724,0.0712,-0.0674,0,-0.037,0.0241,-0.1615,0.0045,-0.0916,0.0591,-0.0803,0.1134,-0.094,0.1709,-0.1046,0.0519,-0.0521,0.1651,-0.1134,0.144,-0.1777,0.0527,-0.0464,0.0135,-0.058,0.0578,-0.0535,0.0478,-0.0559,0.0454,-0.0346,0.0008,-0.0017,0.0369,-0.0096,0.0715,-0.0837,0.1018,-0.0884,0.0884,-0.024,0.0007,-0.0027,0.1114,-0.0604,0.0666,-0.0865,0.1329,-0.0801,0.0009,-0.0195,0.0177,-0.0127,0.1397,-0.1279,0.1081,-0.1833,0.1194,-0.0407,0.0227,-0.0181,0.0027,-0.0062,0.0264,-0.0126,0.0349,-0.2073,0,-0.1798,0,-0.0977,0.1776,-0.0619,0.0904,-0.0269,0.0024,-0.0017,0.0178,-0.0007,0.0832,-0.0255,0.0686,-0.016,0.0316,-0.0333,0.032,-0.0259,0.0154,-0.0211,0.0022,-0.009,0.0004,-0.0007,0.0012,-0.0009,0.0012,-0.0016,0.0014,-0.0023,0.0016,-0.0017,0.0023,-0.0015,0.001,-0.0021,0.0011,-0.0006,0.0011,-0.0006,0.0005,-0.0007,0.0833,0,0.0937,-0.2062,0.1137,-0.0715,0.0186,-0.0508,0.0012,-0.0033,0.0015,-0.0009,0.0002,-0.0006,0.0004,-0.0007,0.0001,-0.0007,0.0248,-0.0006,0.2343,-0.1126,0.0346,-0.0244,0.0796,-0.048,0.106,-0.1212,0.0663,-0.055,0.1008,-0.0678,0.0014,-0.0408,0.0103,-0.002,0.1283,-0.127,0.1861,-0.1364,0.019,-0.0067,0.022,-0.0135,0.0094,-0.0195,0.0428,-0.0366,0.1342,-0.0769,0.0656,-0.0471,0.0368,-0.0168,0.0095,-0.0087,0.1093,-0.0541,0.066,-0.0393,0.004,-0.0037,0.0182,-0.0256,0.0486,-0.0533,0.0051,-0.0057,0.0084,-0.0293,0.0116,-0.0261,0.0154,-0.0104,0.0059,-0.0048,0.0011,-0.0005,0.0718,-0.0481,0.0139,-0.0252,0.0027,-0.0091,0.0016,-0.0005,0.0008,-0.0003,0.0004,-0.0005,0.0007,-0.0008,0.0003,-0.0003,0.0005,-0.0005,0.0003,-0.0007,0.0001,0,0,0,0,0,0,0,0,-0.0001,0,0,0,0,0,0,0,0,0,0,0,0,0.0005,0,0.0006,-0.0007,0.0146,-0.0085,0.0141,-0.0334,0.0074,-0.0044,0.1322,-0.1742,0.1553,-0.1293,0.0534,-0.0209,0.0209,-0.017,0.0036,-0.0034,0.034,-0.0756,0.1515,-0.1085,0.0707,-0.0951,0.0465,-0.0722,0.1319,-0.0708,0.1099,-0.0556,0.0349,-0.0495,0.0123,-0.0033,0.0017,-0.0013,0.0004,-0.0007,0.0005,-0.0003,0.0005,-0.0003,0.0004,-0.0002,0.0003,-0.0005,0.0005,-0.0003,0.0006,-0.0006,0.001,-0.0009,0.004,-0.0034,0.0032,-0.0038,0.0073,-0.0069,0.0078,-0.0156,0.0785,-0.0921,0.0813,-0.0571,0.1469,-0.1025,0.2211,-0.1739,0.0927,-0.0286,0.1807,-0.1731,0.1078,-0.1095,0.0564,-0.0739,0.0117,-0.0084,0.0055,-0.0089,0.0035,-0.0023,0.0007,-0.0009,0.0005,-0.0008,0.0001,-0.0006,0.0003,-0.0003,0.0004,-0.0008,0.0003,-0.0008,0.0005,-0.0005,0.0005,-0.0005,0.0006,-0.0003,0.0305,-0.063,0.162,-0.1481,0.1101,-0.1023,0.0222,-0.0217,0.0043,-0.0063,0.016,-0.0418,0.0743,-0.0666,0.1757,-0.1392,0.0512,-0.0881,0.0866,-0.1219,0.0061,-0.0272,0.0725,-0.1026,0.1705,-0.1525,0.0839,-0.0752,0.0029,-0.0029,0.0026,-0.0009,0.1334,-0.059,0.1212,-0.0272,0.0421,-0.0253,0.1372,-0.1196,0.1093,-0.0999,0.0061,-0.0523,0.0066,-0.0017,0.0009,-0.0012,0.0156,-0.0383,0.1638,-0.1123,0.004,-0.0125,0.0014,-0.004,0.009,-0.0046,0.0925,-0.127,0.1091,-0.094,0.0025,-0.0033,0.0274,-0.019,0.0732,-0.068,0.0501,-0.029,0.0425,-0.0392,0.0052,-0.0077,0.0018,-0.002,0.0014,-0.0009,0.0008,-0.0017,0.0011,-0.0018,0.0004,-0.0011,0.0006,-0.0005,0.0011,-0.0013,0.0062,-0.0025,0.0054,-0.0058,0.0092,-0.0096,0.0185,-0.0387,0.0459,-0.0167,0.0618,-0.1145,0.0967,-0.1088,0.0046,-0.0613,0.0032,-0.1296,0.0244,-0.0267,0.0046,-0.0267,0.005,-0.0044,0.001,-0.0006,0.001,-0.0005,0.001,-0.0005,0.0008,-0.0002,0.0031,-0.0041,0.077,-0.0843,0.1277,-0.0793,0.0558,-0.0463,0.0096,-0.0057,0.0019,-0.0014,0.0004,-0.0007,0.0001,-0.0007,0.0758,-0.0462,0.0332,-0.0094,0.0062,-0.0065,0.0005,-0.0005,0.0006,-0.0001,0.0008,-0.0005,0.0007,-0.0003,0.0006,-0.0006,0.0008,-0.0012,0,0,0,0,0,0,0,0,0.0002,-0.0004,0.0003,-0.0002,0.0333,-0.0183,0.1415,-0.0899,0.113,-0.1051,0.0489,-0.1222,0.0501,-0.0801,0.0579,-0.1293,0.0558,-0.0874,0.1575,-0.1194,0.0457,-0.0359,0.0392,-0.0316,0.0373,-0.0311,0.0463,-0.0614,0.2079,-0.1917,0.162,-0.0951,0.1193,-0.0862,0.162,-0.1252,0.2984,-0.2832,0.1822,-0.2114,0.1862,-0.1281,0.2494,-0.2192,0.0265,-0.0984,0.2041,-0.2914,0.0769,-0.1608,0.1829,-0.1334,0.1582,-0.2148,0.1256,0,0.0035,-0.0083,0.0068,-0.0522,0.0438,-0.0519,0.0738,-0.0513,0.0245,-0.0222,0.0799,0,0.0778,-0.0053,0.0005,-0.0015,0.0075,-0.0593,0.0014,-0.0588,0.0078,-0.0016,0.1547,-0.0213,0.1478,-0.1074,0.1364,-0.0631,0.0069,-0.0087,0.0094,-0.0022,0.1557,-0.0446,0.1695,-0.0785,0.0996,-0.0605,0.0046,-0.0404,0.0011,-0.0119,0.1146,-0.109,0.1381,-0.1047,0.0823,-0.0872,0.0246,-0.0372,0.033,-0.0179,0.0432,-0.0276,0.0385,-0.1981,0.35,-0.2196,0.1,-0.0163,0.067,-0.1255,0.1475,-0.0402,0.1379,-0.0499,0.0624,-0.0502,0.0357,-0.0487,0.0777,-0.0423,0.0729,-0.0411,0.004,-0.0266,0.0008,-0.0009,0,-0.0007,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.0002,0.0007,-0.0006,0.0032,-0.0034,0.0674,-0.0256,0.0254,-0.0676,0.0738,0,0.0235,-0.099,0.1342,-0.0696,0.0577,-0.0722,0.0553,-0.0301,0.0053,-0.0071,0.0029,-0.0059,0.0106,-0.0124,0.0286,-0.0229,0.1175,-0.0676,0.0995,-0.1229,0.3061,-0.2244,0.2539,-0.2014,0.0866,-0.1048,0.1996,-0.243,0.0603,-0.0838,0,-0.0228,0.0021,-0.0046,0.0014,-0.0012,0,-0.0009,0,-0.0005,0.0004,-0.0006,0.004,-0.0208,0.0576,-0.0419,0.1292,-0.0263,0.026,-0.0278,0.0733,-0.1075,0.0028,-0.0133,0.0597,-0.0945,0.1747,-0.1699,0.1473,-0.1932,0.0007,-0.0514,0.0114,-0.0074,0.0052,-0.0066,0.0267,-0.0277,0.0604,-0.0941,0.0584,-0.0271,0.0526,-0.0314,0.001,-0.0056,0.0895,-0.1388,0.0617,-0.0636,0.0409,-0.0714,0.0517,-0.0385,0.0259,-0.0276,0.0322,-0.0248,0.0215,-0.0225,0.0162,-0.0067,0.0002,-0.0007,0.0007,-0.0009,0.0003,-0.0011,0.0001,0,0,0,0,0,0,0,0,0,0.0005,0,0.0004,-0.0004,0.117,-0.0323,0.1529,-0.1042,0.0776,-0.0948,0.1024,-0.1063,0.0264,-0.0425,0.1103,-0.0982,0.1289,-0.1087,0.1103,-0.1182,0.0324,-0.064,0.0058,-0.0069,0.0836,-0.0375,0.1313,-0.0985,0.0393,-0.0854,0.0723,-0.1547,0.2411,-0.0692,0.0661,-0.0735,0.0051,-0.0043,0.0593,-0.0759,0.0461,-0.081,0.0448,-0.0447,0.0515,-0.0326,0.0063,-0.0047,0.0149,-0.0008,0.0251,-0.0267,0.0042,-0.0427,0.0662,-0.0912,0.0584,-0.0443,0.0807,-0.0426,0.0537,-0.0171,0.0009,-0.0013,0.0012,-0.0012,0.0059,-0.0154,0.0627,-0.051,0.0253,-0.0428,0.0031,-0.0015,0.0004,-0.0006,0.0005,-0.0002,0.0005,-0.0006,0.0003,-0.0003,0.0004,-0.0006,0.0002,-0.0003,0.0003,-0.0007,0.001,-0.0011,0.0003,-0.0007,0.0005,-0.0005,0,0,0,0,0,0,0.0007,-0.0007,0.0064,-0.0205,0.0661,-0.037,0.0193,-0.0102,0.0135,-0.0084,0.0165,-0.0936,0.1292,-0.1099,0.0684,-0.0293,0.0847,-0.1239,0.0125,-0.0105,0.1447,-0.1143,0.118,-0.1068,0.0796,-0.063,0.0598,-0.0531,0.0412,-0.0922,0.0854,-0.0341,0.0572,-0.0771,0.2187,-0.2483,0.1274,-0.197,0.0336,-0.1035,0.0875,-0.0373,0.0764,-0.1027,0.0775,-0.0592,0.0417,-0.0316,0.036,-0.0316,0.0344,-0.0216,0.0154,-0.0202,0.0137,-0.0211,0.0015,-0.0887,0.0983,-0.1102,0.0373,-0.0818,0.0308,-0.0324,0.0049,-0.0237,0.0284,-0.0143,0.0281,-0.0194,0.03,-0.002,0.0349,-0.1093,0.0619,-0.0804,0.0077,-0.1009,0.0622,-0.2033,0.0077,-0.1495,0.041,-0.1073,0,-0.1396,0.0802,-0.0341,0.1021,-0.1058,0.1167,-0.0825,0.1385,-0.0806,0.0101,-0.0207,0,-0.0047,0.0009,-0.0006,0.0006,-0.0005,0.0006,-0.0006,0.0006,-0.0007,0.0007,-0.0009,0.0014,-0.001,0.0012,-0.001,0.0009,-0.0015,0.0011,-0.001,0.0008,-0.0008,0.0006,-0.0007,0.0006,-0.0007,0.0003,-0.0004,0.0484,-0.0441,0.1137,-0.0539,0.103,-0.0649,0.0345,-0.0168,0.121,-0.0479,0.0923,-0.0657,0.0578,-0.0273,0.0023,-0.0011,0.1117,-0.0934,0.0212,-0.0472,0.0021,-0.0095,0.007,-0.0828,0.0866,-0.0697,0.1056,-0.0576,0.1001,-0.0423,0.0193,-0.0116,0.0015,-0.0017,0.0004,-0.0013,0.0003,-0.0005,0.0002,-0.0008,0.0009,-0.0011,0.0011,-0.0012,0.0003,-0.0006,0.0007,-0.0007,0.0004,-0.0004,0.0008,-0.0021,0.002,-0.0063,0.0021,-0.0711,0.0182,-0.0722,0.0094,-0.0044,0.0013,-0.0018,0.0078,-0.0014,0.0262,-0.0007,0.1687,-0.1429,0.1353,-0.1228,0.0054,-0.015,0.008,-0.0014,0.0547,-0.2071,0.1236,-0.1376,0.0055,-0.0065,0.0376,-0.0221,0.059,-0.0607,0.0488,-0.059,0.0411,-0.072,0.003,-0.001,0.0369,-0.0404,0.286,-0.0964,0.1624,-0.114,0.1683,-0.0976,0.0206,-0.0059,0.1417,-0.1305,0.1077,-0.1563,0.0278,-0.0536,0.0132,-0.0086,0.0119,-0.0439,0.0587,-0.0348,0.0995,-0.1029,0.0057,-0.0482,0.2619,-0.291,0.1343,-0.2498,0.0141,-0.0064,0.1458,-0.0406,0.0477,-0.0302,0,-0.109,0.0152,-0.0431,0.0611,-0.0248,0.0299,-0.0067,0.0522,-0.0315,0.057,-0.0464,0.0007,-0.0196,0.0007,-0.0013,0.0058,-0.0065,0.028,-0.0192,0.0062,-0.003,0.1029,-0.0679,0.0933,-0.0663,0.0567,-0.0141,0.114,-0.0785,0.0904,-0.015,0.0243,-0.0146,0.0476,-0.0387,0.0298,-0.0418,0.0261,-0.0225,0.0345,-0.0229,0.0303,-0.0247,0.0319,-0.0007,0.0698,-0.1158,0.1175,-0.0445,0.0388,-0.0576,0.0489,-0.0542,0.0094,-0.0091,0.0605,-0.0535,0.054,-0.0423,0.1306,-0.0635,0.085,-0.0496,0.039,-0.0241,0.0128,-0.0277,0.0092,-0.0073,0.0013,-0.0039,0.0005,-0.0007,0.0004,-0.0003,0.0005,-0.0005,0.0004,-0.0003,0.0004,-0.0006,0.0006,-0.0012,0.0003,-0.0007,0.0002,-0.0009,0.0005,-0.0009,0.0005,-0.0001,0.0004,-0.0005,0.0004,-0.0002,0.0007,-0.0004,0.0005,-0.0003,0.0004,-0.0003,0.0001,-0.0001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.0003,0.0006,-0.0008,0.0005,-0.0008,0.0141,-0.0003,0.0162,-0.092,0.1508,-0.1238,0.1012,-0.1387,0.0966,-0.0754,0.0961,-0.1293,0.0729,-0.1211,0.0976,-0.1112,0,-0.224,0.3014,-0.2295,0.1875,-0.2685,0.2083,-0.3017,0.1773,-0.0945,0.008,-0.0216,0.009,-0.0097,0.0518,-0.0198,0.102,-0.0309,0.1014,-0.0693,0.01,-0.0123,0.0121,-0.011,0.0127,-0.0101,0.1485,-0.1435,0.159,-0.2955,0.0421,-0.038,0.0919,-0.0896,0.0936,-0.0573,0.0433,-0.1062,0.0319,-0.0153,0.0139,-0.0203,0.0018,-0.0053,0.0066,-0.0375,0.0021,-0.0192,0.0196,-0.0024,0.025,-0.0083,0,-0.0066,0.0013,-0.0005,0.0005,-0.0013,0,0,0,0,0,0,0,0,0.0004,0,0.0018,-0.0038,0.0221,-0.084,0.2248,-0.151,0.2045,-0.0947,0.0215,-0.062,0.0853,-0.031,0.2416,-0.1285,0.3271,-0.2305,0.3082,-0.0252,0.0073,-0.0212,0.0675,-0.0091,0.0931,0,0.1432,-0.1438,0.1511,0,0.0802,-0.014,0.0735,-0.058,0.0109,-0.0046,0.0012,-0.0358,0.1041,-0.0923,0.1048,-0.0717,0.0433,-0.0592,0.0557,-0.0647,0.0438,-0.009,0.0178,-0.0279,0.033,-0.0176,0.0041,-0.0203,0.0044,-0.0072,0.1264,-0.0201,0.188,0,0.1752,-0.1858,0.1146,-0.0224,0.1755,-0.1275,0.1058,-0.1561,0.0045,-0.006,0.0042,-0.0002,0.0003,-0.0006,0.0888,-0.0626,0.0547,-0.0645,0.0279,-0.009,0.0023,-0.0018,0.0013,-0.0009,0.0004,-0.0006,0.0005,-0.0004,0.0004,-0.0004,0.0004,-0.0005,0.0007,-0.0012,0.0001,-0.0016,0.0008,-0.0009,0.0006,-0.0015,0.0009,-0.0016,0.0009,-0.0016,0.0001,-0.0012,0.0002,-0.008,0.0369,-0.0326,0.1143,-0.1043,0.0701,-0.1446,0.1503,-0.0961,0.0215,-0.0476,0,-0.0644,0,-0.1239,0.0366,-0.0678,0.0099,-0.1298,0.059,-0.0081,0.0585,-0.0294,0.0376,-0.007,0.0081,-0.0147,0.0915,-0.0396,0.0106,-0.0426,0.0916,-0.0581,0.0019,-0.0104,0.0054,-0.0111,0.0919,-0.0863,0.1176,-0.1744,0.0135,-0.1432,0.0093,-0.0066,0.007,-0.006,0.1147,-0.1135,0.1263,-0.072,0.1061,-0.0598,0.1345,-0.0432,0.0438,-0.034,0.0064,-0.0075,0.0008,-0.0014,0.0018,-0.0021,0.0018,-0.0023,0.0034,-0.0021,0.0022,-0.0021,0.0004,-0.0046,0.0005,-0.0009,0.0164,-0.0408,0.0513,-0.0812,0.0442,-0.078,0.1518,-0.0855,0.1101,-0.0555,0.0243,-0.0076,0.0097,-0.0165,0.0124,-0.0508,0.0995,-0.056,0.0686,-0.1042,0.1489,-0.1153,0.0052,-0.009,0.0524,-0.0957,0.0986,-0.093,0.2205,-0.1551,0.1703,-0.1495,0.0716,-0.024,0.0943,-0.0485,0.0408,-0.0325,0.0188,-0.0302,0.0034,-0.0293,0.1308,-0.054,0.1581,-0.0817,0.0402,-0.0307,0.0173,-0.004,0.0649,-0.0355,0.0625,-0.0177,0.0724,-0.0438,0.0784,-0.0585,0.0836,-0.0728,0.0225,-0.0163,0.0093,-0.0094,0.1597,-0.059,0,-0.1068,0.0544,-0.0272,0.0338,-0.0189,0.0029,-0.0073,0.0782,-0.0436,0.0774,-0.1053,0.0117,-0.011,0.0677,-0.0246,0.0727,-0.0497,0.0482,-0.0752,0.0625,-0.0654,0.0155,-0.0174,0.0335,-0.0131,0.0132,-0.0068,0.0006,-0.001,0.0007,-0.0004,0.0007,-0.0006,0.0005,-0.0005,0.0004,-0.0006,0.001,-0.0006,0.0006,-0.0007,0.0006,-0.0013,0.0004,-0.0003,0.0007,-0.0017,0.0013,-0.0011,0.0008,-0.0008,0.0004,-0.0005,0.0008,-0.001,0.0009,-0.0007,0.0008,-0.0005,0.0005,-0.0003,0.0006,-0.0001,0.0092,-0.024,0.0328,-0.0183,0.1157,-0.1389,0.0493,-0.0206,0.0083,-0.1222,0.2461,-0.118,0.1036,-0.3582,0.1733,-0.1807,0.1023,-0.0538,0.2265,-0.0136,0.1255,-0.1031,0.0823,-0.1027,0.0652,-0.0766,0.0047,-0.0549,0,-0.1251,0.0949,-0.1217,0.0816,-0.0672,0.0485,-0.0422,0.0036,-0.002,0.0001,0,0,0,0.0003,0,0.0063,-0.0012,0.0296,-0.0541,0.0309,-0.072,0.0316,-0.0329,0.0295,-0.0519,0.0696,-0.0702,0.2137,-0.0502,0.1302,-0.1591,0.1104,-0.1033,0.0077,-0.0062,0.1118,-0.1284,0.135,-0.0735,0.093,-0.0971,0.0952,-0.07,0.0175,-0.0275,0.0812,-0.0496,0.1053,-0.1238,0.1491,-0.1453,0.041,-0.1078,0.0043,-0.0057,0.0766,-0.0615,0.0283,-0.0344,0.0989,-0.0994,0.1383,-0.1172,0.1956,-0.0686,0.1436,-0.1362,0.074,-0.069,0.0168,-0.0124,0.0987,-0.1386,0.1386,-0.113,0.1052,-0.1062,0.136,-0.1072,0.0458,-0.0815,0.0033,-0.0317,0.0013,-0.0018,0.0007,-0.0012,0,0,0,0,0,0,0,0,0,-0.0021,0.0004,-0.0021,0.0475,-0.0002,0.0941,-0.0476,0.0989,-0.0798,0.1053,-0.1112,0.0748,-0.0608,0.1956,-0.1896,0.059,-0.0758,0.0337,-0.1041,0.038,-0.1291,0.036,-0.004,0.2182,-0.1121,0.1161,-0.1012,0.01,-0.0173,0.0497,-0.0398,0.1312,-0.0918,0.0433,-0.1152,0.0806,-0.0687,0.0506,-0.0551,0.0723,-0.0685,0.0428,-0.0643,0.036,-0.0274,0.0011,-0.0018,0.0007,-0.0005,0.0205,-0.0404,0.1629,-0.0216,0.0512,0,0.0082,-0.0612,0.0663,0,0.0642,-0.0557,0.0612,-0.0556,0.0145,-0.0322,0.1035,-0.0567,0.0347,-0.0586,0.0073,-0.0041,0.0122,-0.016,0.0178,-0.0272,0.0133,-0.0041,0.0003,-0.001,0.0076,-0.0178,0.0422,-0.025,0.0552,-0.0225,0.0263,-0.0375,0.0032,-0.002,0.0589,-0.0019,0.0769,-0.0638,0.0361,-0.033,0.0433,-0.0379,0.0275,-0.0143,0.0004,-0.0019,0.0005,-0.0005,0.0003,-0.0002,0.0005,-0.0002,0.0004,-0.0004,0.0003,-0.0008,0.0003,-0.0005,0.0004,-0.0005,0.0007,-0.0006,0.0007,-0.0005,0.0006,-0.0009,0.0006,-0.001,0.0007,-0.0008,0.0005,-0.0006,0.0008,-0.0006,0.0006,-0.001,0.0003,-0.0009,0.001,-0.0011,0.0006,-0.0013,0.0008,-0.0006,0.0008,-0.0009,0.0005,-0.0005,0.0012,-0.0014,0.0003,-0.0005,0,-0.0365,0,-0.0549,0.0873,-0.0695,0.0878,-0.0769,0.1192,-0.1305,0.0477,-0.1405,0.1168,-0.0961,0.0601,-0.2029,0.1293,-0.1186,0.0855,-0.0867,0.0253,-0.0272,0.0986,-0.0845,0.0293,-0.0061,0.0179,-0.0201,0.0195,-0.0205,0.0615,-0.1486,0.0607,-0.0671,0.0558,-0.0706,0.0706,-0.0196,0.0142,-0.024,0.064,-0.0237,0.0528,-0.0179,0.2225,-0.0818,0.1075,-0.1021,0.0043,-0.1,0.0025,-0.0011,0.0006,-0.0229,0.1072,-0.106,0.0369,-0.0936,0.0122,-0.0082,0.1799,-0.1238,0.1131,-0.0883,0.0042,-0.0087,0.0255,-0.0502,0.0268,-0.1007,0.0254,-0.0966,0.0396,-0.0226,0.0129,-0.0353,0.0885,-0.0374,0.0098,-0.0876,0.0185,-0.0084,0.0078,-0.0131,0.0162,-0.0065,0.0366,-0.0307,0.0802,-0.0307,0.0573,-0.0302,0.0239,-0.0186,0.0026,-0.0013,0.0006,-0.0004,0.0006,-0.0014,0.0006,-0.0014,0.0004,-0.0014,0.0002,-0.0006,0.0005,-0.0014,0.0006,-0.0006,0.0008,-0.0007,0.0006,-0.0012,0.0005,-0.0008,0.0004,-0.0003,0.0003,-0.0005,0.0368,-0.0279,0.0739,-0.0669,0.1357,-0.1004,0.14,-0.0988,0.1397,-0.0527,0.0614,-0.0661,0.0411,-0.0404,0.0186,-0.0226,0.0014,-0.0058,0.0061,-0.0091,0.0284,-0.0082,0.1185,-0.0862,0.0073,-0.037,0.0319,-0.0462,0.1728,-0.1133,0.0228,-0.0017,0.015,-0.0603,0.1329,-0.1114,0.1386,-0.0418,0.0606,-0.07,0.0613,-0.0338,0.0168,-0.0312,0.0018,-0.0019,0.0004,-0.0005,0.0006,-0.0002,0.0903,-0.0098,0.0872,-0.0634,0.0263,-0.0273,0.013,-0.006,0.0203,-0.0167,0.0311,-0.0292,0.043,-0.0272,0.0494,-0.0281,0.0109,-0.0117,0.0003,-0.0011,0.0006,-0.0007,0.0681,-0.0442,0.0393,-0.0595,0.0092,-0.0074,0.002,-0.0026,0.0017,-0.0007,0.0004,-0.0005,0.0005,-0.0007,0.0005,-0.0005,0.0004,-0.0005,0.0007,-0.0001,0.0007,-0.0002,0.0009,-0.0002,0.0003,-0.0006,0.0005,-0.0004,0.0008,-0.0003,0.0002,-0.0006,0.0005,-0.0005,0.0002,-0.0009,0.0002,-0.0012,0.0003,-0.0006,0.0002,-0.0007,0.0004,-0.0006,0.0004,-0.0005,0.0004,-0.0004,0.0008,-0.0007,0.0005,-0.0002,0.0004,-0.0005,0.0004,-0.0002,0.0004,-0.0004,0.0006,-0.0007,0.0006,-0.0014,0.0007,-0.0005,0.0008,-0.0005,0,-0.0001,0,0,0,0,0,0,0,0,0,0,0.0001,-0.0008,0.0009,-0.0007,0.014,-0.0035,0.0948,-0.1021,0.1284,-0.1926,0.0735,-0.0929,0.1043,-0.1162,0.0997,-0.1263,0.0865,-0.1511,0.1418,-0.2466,0.1524,-0.1873,0.0305,-0.0111,0.0344,-0.0463,0.1056,-0.0571,0.0665,-0.0681,0.1336,-0.1045,0.0118,-0.2636,0.1652,-0.0102,0.0043,-0.0121,0.0055,-0.0243,0.111,-0.0822,0.0321,-0.0194,0.0142,-0.101,0.0404,-0.0695,0.2008,-0.1362,0.1972,-0.1109,0.0595,-0.0666,0.2136,-0.098,0.0828,-0.0546,0.1311,-0.1266,0.0952,-0.1591,0.1784,-0.0697,0.1169,-0.0681,0.0534,-0.0422,0.0218,-0.0026,0.0011,-0.0025,0,-0.0007,0,0,0,0,0,0,0,0,0.0001,0,0.0006,-0.0001,0.1364,-0.0003,0.1789,-0.1477,0.0927,-0.1031,0.3319,-0.2985,0.1404,-0.3248,0.1366,-0.1188,0.0338,-0.0189,0.0044,-0.0057,0.0208,-0.0249,0.1443,-0.0365,0.1725,-0.2061,0.0845,-0.0209,0.0249,-0.0395,0.0069,-0.0151,0.0043,-0.0092,0.1073,-0.1203,0.3171,-0.2,0.0642,-0.0762,0.0785,-0.0375,0.0309,-0.0837,0.0516,0,0.0383,-0.0007,0.1795,-0.1166,0.076,-0.0153,0.0236,-0.0052,0.2123,-0.2425,0.083,-0.0418,0,-0.0641,0.0028,-0.0633,0.0018,0,0.0457,-0.2009,0.1681,-0.1517,0.0478,-0.0426,0.0089,-0.0131,0.0023,-0.0008,0,0,0,0,0,0,0,0,0,-0.0008,0.0002,-0.0008,0.0061,-0.0199,0.2615,-0.1243,0.467,-0.313,0.1147,-0.1405,0.0558,-0.1133,0.0599,-0.0964,0.1717,-0.2508,0.2339,-0.0996,0.0129,-0.0354,0.346,-0.0184,0.4573,-0.1931,0.2334,-0.1988,0.2385,-0.1464,0.0549,-0.0766,0,-0.1451,0.0292,-0.1628,0.009,-0.0158,0.0188,-0.0206,0.0346,-0.0366,0.0025,-0.0027,0.0899,-0.0618,0.0771,-0.1953,0.1181,-0.1021,0.1322,-0.083,0.0091,-0.007,0.1343,-0.0142,0.0044,-0.0067,0.3043,-0.2051,0.1733,-0.0563,0.007,-0.0057,0.0307,-0.0076,0.0365,-0.0221,0.0089,-0.0133,0.0128,-0.0259,0.0029,-0.0022,0.1197,-0.0591,0.1294,-0.0922,0.0623,-0.0575,0.0156,-0.0112,0.0005,-0.0014,0,0,0,0,0,0,0,0,0,0,0.0007,0,0.0092,-0.0009,0.0469,-0.1125,0.1544,-0.133,0.1256,-0.0071,0.0229,-0.0148,0.0455,-0.0147,0.1656,-0.1221,0.0701,-0.0492,0.0564,-0.1092,0.0762,-0.0856,0.1541,-0.1191,0.216,-0.1378,0.1241,-0.0381,0,-0.0602,0,-0.0756,0.0184,-0.0327,0.0247,-0.0156,0.0501,-0.0494,0.0503,-0.0427,0.0477,-0.0741,0.0919,-0.0827,0.0832,-0.0563,0.0752,-0.0378,0.0085,-0.0454,0.0031,-0.0082,0.0066,-0.0031,0.0012,-0.0007,0.0683,-0.0712,0.0592,-0.0729,0.0151,-0.0245,0.0076,-0.0058,0.0024,-0.0009,0.0001,-0.0003,0.0002,-0.0006,0.0002,-0.0009,0.0005,-0.0009,0.0001,-0.0015,0.0007,-0.001,0.0012,-0.0018,0.0014,-0.0007,0.0011,-0.0002,0.0008,-0.0004,0.0006,-0.0007,0.0006,-0.0007,0.0003,-0.0007,0.0005,-0.0008,0.0004,-0.0005,0.0001,-0.0006,0.061,-0.0081,0.1123,-0.0605,0.0793,-0.0585,0.1138,-0.0862,0.0932,-0.0777,0.0034,-0.0189,0.3366,-0.2563,0.1704,-0.0468,0.0633,-0.0571,0.0341,-0.078,0.0451,-0.0492,0.1566,-0.1346,0.0803,-0.0736,0.1011,-0.09,0.0547,-0.0378,0,-0.1214,0.1558,-0.1344,0.1398,-0.0955,0,-0.0457,0,-0.0567,0,-0.1663,0,-0.0734,0.0283,-0.1012,0.0649,-0.043,0.0906,-0.0856,0.0396,-0.0891,0.0389,-0.019,0.0107,-0.0009,0.005,0,0.0012,-0.0003,0.0017,-0.001,0.0021,-0.001,0.0018,-0.0019,0.0007,-0.0008,0.0015,-0.0035,0.0136,-0.0042,0.0006,-0.0005,0.1998,-0.201,0.177,-0.1826,0.1491,-0.0408,0.0872,-0.1121,0.0447,-0.0533,0.0514,-0.0941,0.0245,-0.0203,0.1181,-0.1359,0.0923,-0.1198,0.0109,-0.0091,0.2741,-0.1136,0.1645,-0.1331,0.1803,-0.1612,0.15,0,0.1365,-0.0483,0.0009,-0.0439,0.0096,-0.0174,0.1635,-0.1545,0.1257,-0.1071,0.0899,-0.0706,0.0611,-0.0801,0.0607,-0.0638,0.0711,-0.066,0.0467,-0.0566,0.1972,-0.2299,0.1277,-0.1171,0.0644,-0.1654,0.0287,-0.0519,0,-0.0387,0.0021,-0.0162,0.0019,-0.0003,0.0012,-0.0013,0.001,-0.001,0.0013,-0.0011,0.0012,-0.0008,0.0013,-0.0008,0.0007,-0.0006,0.0076,-0.0083,0.048,-0.0096,0.0031,-0.0009,0.004,-0.0398,0.0851,-0.0321,0.0998,-0.0388,0.2183,-0.1577,0.1543,-0.1325,0.2044,-0.141,0.0514,-0.0612,0.0717,-0.0796,0.1375,-0.1117,0.0393,-0.1021,0.0054,-0.0065,0.0812,-0.1079,0.0408,-0.0627,0.0377,-0.0741,0.046,-0.0624,0.0096,-0.0184,0.049,-0.0597,0.0742,-0.0532,0.1166,-0.0584,0.0981,-0.1673,0.0838,-0.2044,0.1192,-0.0759,0.0093,-0.0279,0.007,-0.0024,0.0179,-0.0566,0.057,-0.057,0.0623,-0.1103,0.0833,-0.0479,0.1378,-0.0801,0.0079,-0.0438,0.0664,-0.0456,0.0465,-0.0545,0.0391,-0.003,0.07,-0.0881,0.0896,-0.0806,0.1386,-0.0184,0.079,-0.0412,0.0956,-0.1138,0.1844,-0.0576,0.0284,-0.0402,0.0822,-0.058,0.061,-0.0422,0.0404,-0.0171,0.0708,-0.0478,0.054,-0.0305,0.017,-0.0091,0.001,-0.0008,0.0011,-0.0007,0.0013,-0.0008,0.002,-0.0014,0.0005,-0.0016,0,0,0,0,0.0003,-0.0003,0.0023,-0.0045,0.008,-0.0039,0.1249,-0.0706,0.0577,-0.0047,0.056,-0.1094,0.2203,-0.2221,0.1627,-0.2372,0.1028,-0.2462,0.0084,-0.0117,0.2455,-0.0358,0.3512,-0.089,0.1297,-0.0659,0.2742,-0.216,0.0326,-0.0102,0.1983,-0.1335,0.1536,-0.0456,0.0055,-0.0175,0.0055,-0.0038,0,-0.0684,0.0473,-0.0599,0.1162,-0.0804,0.0445,-0.0642,0.0888,-0.0641,0.0269,-0.0048,0.0013,-0.0014,0.001,-0.0012,0.0018,-0.0015,0.0009,-0.0009,0.0009,-0.0004,0.0007,-0.0004,0.0007,-0.0004,0.0006,-0.0004,0.0232,-0.0003,0.0374,-0.033,0.1428,-0.1235,0.131,-0.1299,0.1499,-0.1004,0.1528,-0.1491,0.0927,-0.09,0.1739,-0.1226,0.1334,-0.129,0.0289,-0.0579,0.0074,-0.0161,0.0131,-0.0303,0.1864,-0.0937,0.117,-0.0125,0.0062,-0.0062,0.0906,-0.1044,0.0907,-0.0828,0.0286,-0.0418,0.005,-0.0051,0.0326,-0.0815,0.1292,-0.0712,0.0619,-0.0438,0.0699,-0.0382,0.0503,-0.0047,0.001,-0.0041,0.1152,-0.026,0.1659,-0.0619,0.0176,-0.0048,0.0596,-0.024,0.1214,-0.0588,0.0403,-0.0372,0.0871,-0.0647,0.0174,-0.0286,0.0944,-0.0669,0.0658,-0.0625,0.0358,-0.0759,0.0431,-0.0694,0.0164,-0.0216,0.0153,-0.0161,0.0107,-0.0117,0.0005,-0.0033,0.0003,-0.0003,0.0003,-0.0002,0.0002,-0.0008,0.0005,-0.0007,0.0003,-0.0005,0.0003,-0.0005,0.0004,-0.0003,0.0009,-0.0008,0.0005,-0.0008,0.0004,-0.0006,0.0002,-0.0008,0.0006,-0.0007,0.0012,-0.0016,0.0014,-0.0004,0.0007,-0.0003,0.0018,-0.0019,0.0024,-0.0021,0.0094,-0.0038,0.0953,-0.0592,0.068,-0.0456,0.0252,-0.0357,0.0459,-0.0049,0.1461,-0.1838,0.0319,-0.013,0.0077,-0.0063,0.1371,-0.0705,0.1643,-0.1604,0.0694,-0.0742,0.1321,-0.1406,0.0775,-0.1516,0.1143,-0.138,0.1566,-0.0819,0.0841,-0.0711,0.0424,-0.0545,0.0185,-0.0188,0.0016,-0.0021,0.001,-0.0015,0,-0.0022,0.0012,-0.0012,0.0009,-0.001,0.0002,-0.0003,0.0279,-0.0009,0.0699,-0.0459,0.0985,-0.0668,0.1447,-0.1342,0.0444,-0.0684,0.0461,-0.0526,0.0508,-0.0466,0.0687,-0.0539,0.0828,-0.0609,0.0446,-0.0304,0.0632,-0.045,0.0759,-0.0678,0,-0.0658,0.0142,-0.0659,0.0473,-0.0305,0.0396,-0.0555,0.0809,-0.0109,0.1145,-0.0692,0.1266,-0.068,0.1091,-0.0976,0.0739,-0.0079,0.0902,-0.0572,0.0461,-0.0403,0.0274,-0.0245,0.0448,-0.0449,0.0287,-0.0114,0.0574,-0.0378,0.0479,-0.0404,0.0347,-0.0311,0.0462,-0.0413,0.0372,-0.0359,0.0244,-0.009,0.0009,-0.0008,0.0024,-0.0009,0.002,-0.0012,0.0013,-0.0017,0.0012,-0.002,0.0013,-0.002,0.0007,-0.0014,0.0046,-0.0014,0.2057,0,0.2348,-0.1187,0.0024,-0.2171,0.2993,-0.224,0.1716,-0.0838,0.08,-0.0646,0.1118,-0.0541,0.0781,-0.0339,0.0111,-0.0209,0.0127,-0.0111,0.008,-0.01,0.0661,-0.0114,0.0293,-0.0187,0.0649,-0.0221,0.0864,-0.0639,0.071,-0.048,0.0398,-0.0256,0.002,-0.0011,0.0005,-0.0016,0.0023,-0.0026,0.0017,-0.0018,0.0014,-0.0006,0.0005,-0.0004,0.0005,-0.0001,0.0005,-0.0003,0.0003,-0.0746,0.1218,-0.1081,0.0991,-0.1078,0.1368,-0.1235,0.0533,-0.064,0.0688,-0.08,0.0958,-0.0846,0.1401,-0.0931,0.0551,-0.0672,0.0013,-0.0019,0.0018,-0.0012,0.0021,-0.0011,0.001,-0.0005,0.0005,-0.0006,0.001,-0.0009,0.0336,0,0.0891,-0.0144,0.082,-0.0895,0.1366,-0.112,0.0659,-0.0699,0.0427,-0.0768,0.1351,-0.0947,0.0226,-0.1384,0.0031,-0.0059,0.0016,-0.0015,0.2037,-0.0501,0.1255,-0.0877,0.1352,-0.0682,0.0561,-0.0724,0.0144,-0.0114,0.0722,-0.0834,0.073,-0.0371,0.0415,-0.0297,0.0512,-0.0382,0.1181,-0.108,0.1118,-0.098,0.0805,-0.0851,0.0444,-0.0545,0.0492,0,0.04,-0.032,0.0231,-0.0062,0.0015,-0.0012,0.0034,-0.0066,0.0428,-0.0368,0.0319,-0.0383,0.0072,-0.013,0.0007,-0.0009,0.0339,-0.0063,0.0754,-0.0234,0.0086,-0.01,0.0036,-0.0038,0.0002,-0.0008,0.0004,-0.0006,0.0006,-0.0009,0.0002,-0.0002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.0001,0.0003,-0.0002,0.0005,-0.0006,0.0003,-0.0005,0.0004,-0.0006,0.0448,-0.0143,0.1082,-0.0638,0.1937,-0.0665,0.1317,-0.1108,0,-0.0652,0.178,-0.1253,0.167,-0.11,0.1334,-0.0238,0.0756,-0.091,0.0401,-0.0182,0.0072,-0.0119,0.0014,-0.001,0.1228,-0.2003,0.1909,-0.0158,0.0435,-0.0515,0.1822,-0.2056,0.1537,-0.1182,0.0204,-0.0711,0.0037,-0.0016,0.1502,-0.1001,0.0803,-0.1205,0.0334,-0.0704,0.0541,-0.0577,0.0427,-0.0283,0.0057,-0.0094,0.0022,-0.0133,0.0901,-0.0841,0.0065,-0.0603,0.049,-0.0269,0.0747,-0.0589,0.0203,-0.0138,0.0814,-0.058,0.1508,-0.1137,0,-0.0837,0.0068,-0.0687,0.0125,-0.0108,0.0788,-0.0742,0.0632,-0.0802,0.0201,-0.0199,0.0045,-0.0148,0.028,0,0.0339,0,0.022,-0.0293,0.0434,-0.0528,0.0464,-0.0494,0.0377,-0.0179,0.2396,-0.1025,0.026,-0.17,0.009,-0.0042,0.095,-0.0875,0.0796,-0.0641,0.004,-0.0179,0.0343,-0.0269,0.0398,-0.0463,0.0878,-0.0598,0.0544,-0.0768,0.0759,-0.0749,0.0441,-0.0396,0.0398,-0.0343,0.0278,-0.0307,0.0032,-0.008,0.0007,-0.0003,0.0007,-0.0003,0.0008,-0.0002,0.0004,-0.0006,0.0004,-0.001,0.0002,-0.0009,0.0007,-0.0006,0.0004,-0.0008,0.0005,-0.0008,0.0009,-0.0012,0.0012,-0.0006,0.0008,-0.0009,0.001,-0.0017,0.0016,-0.0027,0.0014,-0.0022,0.0012,-0.0016,0.0013,-0.0016,0.0009,-0.001,0.0004,-0.0014,0.0003,-0.0004,0.0141,-0.0001,0.1137,-0.1357,0.1881,-0.1704,0.0699,-0.0623,0.0667,-0.0969,0.0829,-0.1029,0.0935,-0.1157,0.1563,-0.1209,0.0844,-0.0745,0.0138,-0.029,0.0417,-0.0258,0.2337,-0.1256,0.0321,-0.0262,0.0957,-0.0915,0.0425,-0.0803,0.1842,-0.1395,0.1691,-0.1358,0.107,-0.068,0.032,-0.0304,0.0013,-0.0021,0.0013,-0.0015,0.0008,-0.0012,0.0024,-0.0014,0.0007,-0.0018,0.0008,-0.0014,0.0007,-0.0004,0.0006,-0.0002,0.0514,-0.0865,0.1045,-0.0721,0.0248,-0.0146,0.035,-0.0225,0.0497,-0.0484,0.0357,-0.0809,0.0424,-0.0672,0.0476,-0.1144,0.0096,-0.0152,0.1117,-0.1522,0.1321,-0.1034,0.0382,-0.04,0.1441,-0.0971,0.0042,-0.0276,0.0809,-0.13,0.1505,-0.186,0.1107,-0.0626,0.0095,-0.0496,0.009,-0.0108,0.0166,-0.0289,0.0292,-0.0399,0.085,-0.0788,0.0463,-0.0945,0.1013,-0.0905,0.0465,-0.0395,0.013,-0.0431,0.0017,-0.0916,0.0227,-0.0828,0.1329,-0.1108,0.0797,-0.0557,0.1524,-0.1041,0.0201,-0.0029,0.0472,-0.1069,0.0372,-0.0307,0.0018,-0.0045,0.0506,-0.026,0.0538,-0.0335,0.0862,-0.0623,0.0845,-0.0827,0.0528,-0.0301,0.0062,-0.012,0.0387,-0.0091,0.2419,-0.1266,0.121,-0.1642,0.1293,-0.0899,0.157,-0.1849,0.0927,-0.1634,0.0351,-0.0322,0.0156,-0.0179,0.0782,-0.0522,0.1245,-0.085,0.0639,-0.0709,0.04,-0.0579,0.1534,-0.1013,0.0965,0,0.0789,-0.0407,0.0345,-0.0592,0.0747,-0.0692,0.0712,-0.0484,0.0571,-0.0202,0.0299,-0.0232,0.0028,-0.0089,0.0048,-0.0026,0.1297,-0.0058,0.1284,-0.0668,0.0832,-0.0659,0.0017,-0.0014,0.0022,-0.0095,0.0043,-0.033,0.1158,-0.085,0.0297,-0.0381,0.1035,-0.0534,0.0472,-0.0366,0.1143,-0.0641,0.106,-0.0232,0.1011,-0.0263,0.045,-0.0509,0.0068,-0.0074,0.0018,-0.001,0.0007,-0.0016,0.0044,-0.0007,0.0008,-0.0012,0.0014,-0.0009,0.0006,-0.0018,0.001,-0.0007,0.0006,-0.0011,0.0007,-0.0005,0,-0.0246,0.0054,-0.2797,0.2046,-0.3324,0.1454,-0.1233,0.2673,-0.1415,0.0717,-0.0303,0.0595,-0.0445,0.2236,-0.2768,0.1887,-0.2963,0.1463,-0.1416,0.0723,-0.0375,0.1039,-0.0371,0.1066,-0.0869,0.1439,-0.1096,0.0241,-0.0069,0.0459,-0.0663,0.1012,-0.0855,0.0584,-0.086,0.0386,-0.0115,0.0014,-0.0059,0.0618,-0.1062,0.1561,-0.0723,0.0609,-0.0454,0.0078,-0.0158,0.014,-0.0094,0.025,-0.019,0.0707,-0.0521,0.1131,-0.0873,0.0712,-0.0428,0.0283,-0.0193,0.0014,-0.0014,0.0015,-0.0012,0.0013,-0.0015,0.0014,-0.0012,0.0005,-0.0004,0.0007,-0.0012,0.0004,-0.0004,0.0071,-0.0072,0.0101,-0.0107,0.05,-0.0233,0.0557,-0.0159,0.1772,-0.1077,0.1106,-0.0225,0.0425,-0.0383,0.0377,-0.0732,0.0205,-0.0292,0.0559,-0.0229,0.0793,-0.0512,0.1029,-0.1343,0.0335,-0.0796,0.1009,-0.0698,0.059,-0.0607,0.0335,-0.0032,0.0328,-0.0323,0.0511,-0.0326,0.0274,-0.1356,0.1175,-0.1103,0.1156,-0.0991,0.0258,-0.0544,0.0188,-0.0331,0.0044,-0.0158,0.1383,-0.1195,0.0331,-0.1288,0.0893,-0.0584,0.045,-0.1009,0.0081,-0.0752,0.2352,-0.2032,0.1108,-0.1453,0.0858,-0.1363,0.0013,-0.0285,0.0439,-0.0321,0.0138,-0.0328,0.0019,-0.0056,0.026,-0.0164,0.041,-0.0371,0.0522,-0.0258,0.0015,-0.0032,0.0436,-0.0373,0.081,-0.0522,0.0286,-0.0008,0.039,-0.0549,0.0065,-0.0131,0.0105,-0.0015,0.0411,-0.0507,0.0638,-0.0146,0.0026,-0.0085,0.0011,-0.0005,0.0003,-0.0005,0.0005,-0.0005,0.0004,-0.0006,0.0005,-0.0004,0.0003,-0.0004,0.0004,-0.0003,0.0005,-0.0006,0.0006,-0.0007,0.0009,-0.0005,0.0004,-0.0003,0.0006,-0.0001,0.0008,-0.0002,0.0007,-0.0003,0.0006,-0.0006,0.0004,-0.0002,0.0004,-0.0004,0.0004,-0.0006,0.0001,-0.0006,0.0003,-0.0008,0.0003,-0.0004,0.0002,-0.0005,0.0002,-0.001,0.001,-0.0001,0.0006,-0.001,0.0008,-0.0005,0.0006,-0.0015,0.0003,-0.0004,0.002,-0.0009,0.0063,-0.0088,0.1945,-0.1219,0.1725,-0.1522,0.1634,-0.123,0.0124,-0.0092,0.0642,-0.0944,0.1406,-0.1371,0.119,-0.0606,0.1531,-0.1341,0.0912,-0.0697,0.0316,-0.0512,0.1554,-0.0475,0.0098,-0.1248,0.0364,-0.1276,0.0329,-0.0245,0.0014,-0.003,0.0165,-0.0047,0.038,-0.0496,0.0277,-0.0023,0.0264,-0.0112,0.0081,-0.0003,0.0827,-0.0559,0.0374,-0.0516,0.0372,-0.0279,0.053,-0.0382,0.0496,-0.0305,0.0046,-0.0026,0.0021,-0.001,0.0173,-0.0443,0.2538,-0.1186,0.0104,-0.0371,0.0723,-0.0256,0.0994,-0.0746,0.0522,-0.0376,0.0304,-0.03,0.0957,-0.07,0.0598,-0.0542,0.064,-0.0731,0.0224,-0.0208,0.0491,-0.031,0.0334,-0.0182,0.0134,-0.0186,0.0021,-0.0009,0.0003,-0.0004,0.0005,-0.0008,0.0015,-0.0011,0.0009,-0.0011,0.0007,-0.0016,0.0016,-0.0017,0.0021,-0.0011,0.0012,-0.0012,0.0016,-0.0009,0.0002,-0.0005,0.0006,-0.0063,0.098,-0.1643,0.0911,-0.1215,0.008,-0.081,0.0066,-0.0238,0.0425,-0.1609,0.249,-0.1627,0.1985,-0.1489,0.028,-0.091,0.077,-0.1079,0.0917,-0.0695,0.0513,-0.0291,0,-0.0376,0.0864,-0.0342,0.1058,-0.0836,0.0766,-0.1265,0.0796,-0.1387,0.1044,-0.1068,0.0511,0,0.0769,-0.0804,0.0621,-0.0768,0.088,-0.0876,0.0961,-0.0734,0.1244,-0.0908,0.0743,-0.0786,0.0111,-0.0102,0.0575,-0.0498,0.0525,-0.0435,0.0511,-0.0317,0.0576,-0.0397,0.0279,-0.0308,0.0135,-0.0191,0.001,-0.001,0.0012,-0.0019,0.0012,-0.003,0.0036,-0.0044,0.0049,-0.0028,0.0035,-0.0026,0.0014,-0.0015,0.0123,-0.0202,0.2883,-0.115,0.1197,-0.0802,0.3285,-0.2224,0.1679,-0.124,0.0537,-0.0662,0.1594,-0.1303,0.0413,-0.0789,0.0191,-0.0086,0.0129,-0.0084,0.0938,-0.0144,0.1026,-0.1315,0.2243,-0.1103,0.1119,-0.0836,0.0993,-0.0632,0.0155,-0.0298,0.0164,-0.0183,0.0098,-0.0331,0.0209,-0.0138,0.0393,-0.0566,0.0566,-0.0287,0.0886,-0.0805,0.0386,-0.1087,0.1431,-0.1099,0.0251,-0.0995,0.0153,-0.0386,0.0039,-0.0041,0.0197,-0.0202,0.0803,-0.042,0.1009,-0.0822,0.0473,-0.0606,0.0659,-0.0877,0.1163,-0.2153,0.1249,-0.1297,0.1449,-0.0596,0,-0.0528,0.0163,-0.0255,0.0179,-0.0051,0.0088,-0.005,0.0067,-0.0007,0.0003,-0.0007,0.0008,-0.0013,0.0016,-0.0011,0.0024,-0.0018,0.0016,-0.0018,0.0011,-0.0024,0.001,-0.0017,0.001,-0.0035,0.0144,-0.0074,0.0012,-0.0016,0.1288,-0.111,0.2226,-0.1607,0.028,-0.1262,0.0579,-0.0655,0.0519,-0.0621,0.0694,-0.1675,0.1766,-0.1623,0.0476,-0.0563,0.0037,-0.0188,0.0965,-0.0159,0.0838,-0.0249,0.0469,-0.0113,0.0924,-0.036,0.0355,-0.0424,0.0693,-0.0938,0.1094,-0.0777,0.0609,-0.0263,0.0047,-0.0078,0.0026,-0.0013,0.0012,-0.003,0.0002,-0.0018,0.0012,-0.0012,0.0006,-0.0012,0.0005,-0.0003,0.0006,-0.0005,0.0037,-0.0372,0.1302,-0.0926,0.1568,-0.1037,0.0016,-0.0047,0.0613,-0.0985,0.1781,-0.0555,0.082,-0.0902,0.0601,-0.0944,0.1149,-0.1142,0.1424,-0.0907,0.1449,-0.1457,0.0505,-0.1483,0.0645,-0.0579,0.0713,-0.044,0.0356,-0.0413,0.044,-0.0393,0.0336,-0.0521,0.0781,-0.0624,0,-0.0832,0.0502,-0.0305,0.019,-0.0014,0.0334,-0.0258,0.0499,-0.0213,0.0138,-0.0205,0.0241,-0.0267,0.0399,-0.051,0.114,-0.0898,0.0159,-0.0492,0.0017,-0.0027,0.0085,-0.0544,0.1089,-0.0736,0.0929,-0.0746,0.0577,-0.0493,0.002,-0.0013,0.0016,-0.0022,0.0014,-0.0015,0.0018,-0.0021,0.0011,-0.0015,0.0016,-0.0016,0.0013,-0.0016,0.0015,-0.0008,0.0002,-0.0005,0.0003,-0.0007,0.088,-0.0606,0.0335,-0.0009,0.0018,-0.002,0.0273,-0.0214,0.0104,-0.2176,0.1415,-0.1938,0.2004,-0.1742,0.0052,-0.0084,0.024,-0.0117,0.1128,-0.1022,0.0775,-0.0861,0.1168,0,0.0453,-0.0395,0.0432,-0.0282,0.0091,-0.0459,0.0487,-0.1151,0.1768,-0.1179,0.1535,-0.0616,0.1634,-0.1084,0.1822,-0.1256,0.1661,-0.0865,0.1203,-0.0707,0.047,-0.0369,0.0338,-0.0206,0.0007,-0.0009,0.0007,-0.002,0.0003,-0.0023,0.0014,-0.0011,0.0004,-0.0009,0.0007,-0.0008,0.0049,-0.0277,0.0033,-0.0258,0.2772,-0.1625,0.1753,-0.2093,0.083,-0.1031,0.1178,-0.1208,0.1148,-0.1117,0.0756,-0.0522,0.1462,-0.1095,0.0927,-0.1024,0.1014,-0.1128,0.018,-0.0365,0.0058,-0.0049,0.139,-0.1103,0.1062,-0.1637,0.1172,-0.1059,0.0016,-0.028,0.0174,-0.0041,0.125,-0.1048,0.0673,-0.0123,0.1677,-0.1437,0.115,-0.0909,0.0047,-0.0066,0.0019,-0.001,0.0008,-0.0703,0,-0.0717,0,-0.0747,0.0013,-0.0009,0.0015,-0.0008,0.0524,-0.0786,0.048,-0.0441,0.0452,-0.0165,0.0016,-0.0019,0.0006,-0.0005,0.0004,-0.0006,0.0005,-0.0004,0.0003,-0.0004,0.0002,-0.0004,0.0001,-0.0005,0.0006,-0.0001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0003,-0.0004,0.0008,-0.0123,0.1493,-0.0724,0.2139,-0.2223,0.2166,-0.1402,0.1942,-0.1049,0.0589,-0.0895,0.0827,-0.0962,0.1019,-0.1568,0.1176,-0.0239,0.1422,-0.1277,0.02,-0.0658,0.0052,-0.0576,0.0825,-0.1419,0.0951,-0.2139,0.0901,-0.1665,0.0306,-0.0261,0.0057,-0.0118,0.0766,-0.0911,0.1109,-0.0238,0.0132,-0.0065,0.0116,-0.0087,0.012,-0.013,0.0234,-0.0138,0.0065,-0.0572,0,-0.0737,0.0529,-0.0621,0.0701,-0.0918,0.0135,-0.0099,0.0042,-0.0124,0.0014,-0.0027,0.1518,-0.0123,0.1712,-0.1079,0,-0.2012,0.1278,-0.0333,0.0682,-0.0269,0.1465,-0.0634,0.1067,-0.0875,0.0333,-0.0305,0.0039,-0.0127,0.0014,-0.0022,0.0009,-0.0012,0,0,0,0,0,0,0,0,0,0,0.0001,-0.0007,0.0007,-0.0009,0.0463,-0.0223,0.0669,-0.0525,0.0646,-0.0153,0.0076,-0.0166,0.0147,-0.0298,0.0285,-0.0016,0.0571,-0.1542,0.0954,-0.0626,0.0262,-0.0258,0.0275,-0.025,0.0251,-0.016,0.0035,-0.0102,0.0007,-0.0006,0.0007,-0.0004,0.0008,-0.001,0.0008,-0.0006,0.0002,-0.0008,0.0003,-0.0008,0.0056,-0.003,0.0154,-0.0131,0.0965,-0.0137,0.1019,-0.0745,0.0621,-0.0572,0.1761,-0.1403,0.123,-0.1199,0.1809,-0.1268,0.0062,-0.012,0.0008,-0.0171,0.0522,-0.0617,0.0056,-0.0112,0,-0.055,0.0372,-0.0328,0.0422,-0.0402,0.0595,-0.0563,0.0769,-0.0377,0.0581,-0.0334,0.0619,-0.0472,0.017,-0.0159,0.0783,-0.0306,0.0391,-0.032,0.108,-0.1019,0.1142,-0.0412,0.0076,-0.0061,0.0216,-0.0185,0.149,-0.0646,0.0171,-0.0667,0.0045,-0.0236,0.115,-0.0626,0.1013,-0.0598,0.0614,-0.0326,0.0209,-0.0197,0.0524,-0.0231,0.0488,-0.0282,0.1043,-0.0631,0.0564,-0.0418,0.0234,-0.0085,0.0197,-0.0146,0.0065,-0.0029,0.0018,-0.001,0.0312,-0.0467,0.03,-0.0323,0.0305,-0.0333,0.026,-0.0213,0.02,-0.0351,0.0412,-0.0309,0.0235,-0.016,0.0007,-0.0037,0.0003,-0.0007,0.0002,-0.0003,0.0005,-0.0003,0.0006,-0.0005,0.0004,-0.0004,0.0003,-0.0005,0.0004,-0.0007,0.0007,-0.0009,0.0007,-0.0006,0.0003,-0.0009,0.0012,-0.0016,0.0013,-0.0006,0.0012,-0.0015,0.0009,-0.001,0.0011,-0.001,0.0012,-0.0007,0.0006,-0.0001,0.0004,-0.0004,0.0022,-0.0008,0.0455,-0.0433,0.0719,-0.0541,0.0251,-0.0633,0.0376,-0.0382,0.0047,-0.0666,0.0041,0,0.2042,-0.1172,0.085,-0.1378,0.1918,-0.1459,0.1132,-0.0957,0.0514,-0.0231,0.0059,-0.0062,0.0042,-0.0078,0.0235,-0.0168,0.0017,-0.0827,0.0154,-0.0544,0.0523,-0.0613,0.0196,-0.1162,0.0327,-0.0582,0.156,-0.0931,0.0415,-0.0899,0.0181,-0.0091,0.0149,-0.0507,0.0658,-0.0562,0.0304,-0.0224,0.0249,-0.0202,0.0258,-0.0233,0.0186,-0.0143,0.0009,-0.0005,0.0008,-0.0001,0.0009,-0.0005,0.0009,-0.0011,0.0014,-0.0003,0.0007,-0.0019,0.0004,-0.0023,0.0005,-0.0007,0.0004,-0.0009,0.0149,-0.03,0.0213,-0.0379,0.006,-0.0051,0.0714,-0.1137,0.1162,-0.0638,0.0037,-0.0141,0.0045,-0.0009,0.0673,-0.0539,0.0981,-0.0863,0.0931,-0.0422,0.0472,-0.0387,0.0466,-0.0378,0.0511,-0.0681,0.0719,-0.0664,0.0875,-0.022,0.0284,-0.0302,0.043,-0.041,0.034,-0.0283,0.0014,-0.0009,0.0008,-0.0006,0.0023,-0.0573,0.0801,-0.0725,0.0332,-0.0564,0.0259,-0.0257,0.0111,-0.001,0.0025,-0.0013,0.0152,-0.0314,0.0361,-0.0215,0.0103,-0.0764,0.0282,-0.0511,0.0317,-0.0453,0.0463,-0.0237,0.0674,-0.0588,0.1072,-0.0433,0.0732,-0.0262,0.0327,-0.0393,0.0097,-0.0056,0.0051,-0.0071,0.0516,-0.0041,0.0598,-0.0578,0.0076,-0.0161,0.0362,-0.0367,0.0513,-0.0517,0.0166,-0.0145,0.0435,-0.0385,0.0206,-0.0299,0.018,-0.0258,0.0295,-0.045,0.0146,-0.0215,0.0224,-0.0127,0.01,-0.0059,0.0011,-0.0004,0.0004,-0.0004,0.0005,0,0.0005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0012,-0.0002,0.001,-0.0008,0.0006,-0.0014,0.0012,-0.0005,0.0012,-0.0007,0.0005,-0.0008,0.0006,-0.0003,0.0004,-0.0006,0.1261,-0.183,0.2239,-0.1249,0.0658,-0.0866,0.0693,-0.1183,0.0617,-0.1146,0.091,-0.0498,0.111,-0.1086,0.1692,-0.0825,0.0652,-0.0481,0.1486,-0.0477,0.0332,-0.1103,0.052,-0.0767,0.0544,-0.0698,0.154,-0.1176,0.0863,-0.0847,0.0226,-0.1562,0.1476,-0.165,0.1674,-0.0899,0.2226,-0.2022,0.0606,-0.1323,0.0257,-0.0768,0.0015,-0.0018,0.003,-0.0041,0.0014,-0.0009,0.0013,-0.0027,0.0007,-0.0018,0.0005,-0.0006,0.0002,-0.0004,0.0001,-0.0005,0.0254,-0.0197,0.1868,-0.1147,0.0787,-0.0796,0.1441,-0.1414,0.1863,-0.1587,0.0892,-0.1273,0.1747,-0.1108,0.1976,-0.0136,0.1182,-0.0726,0.0448,-0.0788,0.0706,-0.0776,0.0951,-0.0416,0.0533,-0.0148,0.0847,-0.008,0.0228,-0.0305,0.034,-0.0531,0.0521,-0.031,0.0424,-0.0098,0.0862,-0.1109,0.1098,-0.0624,0.0726,-0.0759,0.1172,-0.0519,0.0455,-0.0156,0.0009,-0.0029,0.0013,-0.0015,0.0015,-0.0024,0.0006,-0.002,0.0008,-0.0009,0.0003,-0.0008,0.0283,-0.0047,0.0229,-0.0353,0.0452,-0.032,0.035,-0.0473,0.0118,-0.0191,0.0288,-0.0674,0.0665,-0.0734,0.0697,-0.098,0.051,-0.0648,0.0505,-0.0634,0.0411,-0.0423,0.2688,-0.1264,0.1291,-0.074,0.0138,-0.0051,0.1935,-0.05,0.1498,-0.0733,0.0066,-0.026,0.0163,-0.008,0.1207,-0.1105,0.108,-0.0727,0.0089,-0.0189,0.0466,-0.0378,0.0701,-0.0419,0.0389,-0.0259,0.0026,-0.019,0.0005,-0.0008,0.0089,-0.0088,0.0148,-0.0173,0.0014,-0.0004,0.1228,-0.2231,0.1394,-0.1978,0.0953,-0.1151,0.0533,-0.0214,0.0023,-0.0044,0.0048,-0.0233,0.0001,-0.0058,0.0005,-0.0057,0.0288,-0.0528,0.0289,-0.0195,0.0008,-0.0007,0.001,-0.0008,0.0007,-0.0092,0.0257,-0.0243,0.0546,-0.0233,0.023,-0.0159,0.0011,-0.001,0.0077,-0.0484,0.0723,-0.0507,0.016,-0.024,0.0061,-0.0072,0.0015,-0.0015,0.0008,-0.0008,0.001,-0.0003,0.0007,-0.0003,0.0006,-0.0007,0.0007,-0.0004,0.0009,-0.0004,0.0006,-0.0004,0.0006,-0.0007,0.0005,-0.0007,0.0004,-0.0007,0.0005,-0.0004,0.0005,-0.0005,0.0006,-0.0004,0.0005,-0.0005,0.0007,-0.0014,0.0017,-0.0015,0.0022,-0.0017,0.0016,-0.0012,0.0014,-0.0007,0.0012,-0.001,0.0012,-0.0016,0.0017,-0.0012,0.001,-0.0009,0.0051,-0.0075,0.0178,-0.0159,0.1923,-0.1011,0.1075,-0.121,0.2073,-0.2632,0.3226,-0.1437,0.2035,-0.1165,0.3364,-0.1673,0.3461,-0.0323,0.2098,-0.1427,0.0221,-0.0192,0.0011,-0.0062,0.0015,-0.0017,0.0016,-0.0007,0.0011,-0.0013,0.0007,-0.0007,0.0152,-0.0208,0.0482,-0.0773,0.021,-0.0679,0.0302,-0.0402,0.1719,-0.0301,0.0716,-0.0428,0.0444,-0.0549,0.39,-0.223,0.3761,-0.3444,0.2888,-0.2908,0.0337,-0.1115,0.0245,-0.0556,0.0044,-0.0075,0.0014,-0.0027,0.0028,-0.0012,0.0019,-0.0025,0.0025,-0.001,0.0009,-0.0003,0.0006,-0.0002,0.0387,-0.0015,0.0522,-0.0529,0.0738,-0.0428,0.0203,-0.0117,0.0149,-0.1187,0.2674,-0.13,0.1388,-0.0967,0.0691,-0.1477,0.0384,-0.0687,0.0335,-0.0396,0.2603,-0.0985,0.2045,-0.1259,0.064,-0.072,0.0261,-0.0408,0.0198,-0.0378,0.0092,-0.0096,0.0021,-0.0026,0.0062,-0.0063,0.0272,-0.0239,0.1433,-0.1093,0.0734,-0.0865,0.1047,-0.0725,0.1514,-0.0954,0.0368,-0.0062,0.0006,-0.0031,0.0009,-0.0007,0.1093,-0.0878,0.0621,-0.1286,0.0436,-0.0817,0.1032,-0.0089,0.0619,-0.0422,0.0121,-0.0455,0.0005,-0.0011,0.0021,-0.0313,0.0943,-0.0425,0.0545,-0.0238,0.0075,-0.0065,0.0015,-0.0017,0.0006,-0.0002,0.0012,-0.0007,0.001,-0.0008,0.0006,-0.0007,0.0007,-0.0007,0.0007,-0.0012,0.0007,-0.0011,0.0009,-0.0011,0.0001,-0.0009,0.0002,-0.0107,0.0692,-0.082,0,-0.1572,0.1298,-0.1188,0.0626,-0.0393,0.1338,-0.1421,0.1802,-0.1045,0.1348,-0.2191,0.1009,-0.1158,0.1097,-0.0496,0.027,-0.0163,0.0033,-0.0033,0.0007,-0.0011,0.001,-0.0009,0.0004,-0.0006,0.0007,-0.0009,0.0006,-0.0011,0.2427,-0.0457,0.3471,-0.2131,0.0707,-0.2434,0.1043,0,0.0113,-0.0246,0.1736,-0.0085,0.2051,-0.0827,0.0415,-0.0367,0.0147,-0.0065,0.0496,-0.0046,0.1024,-0.0719,0.1221,-0.1159,0.1406,-0.098,0.0401,-0.0299,0.0092,-0.002,0.0496,-0.0739,0.0351,-0.0276,0.1714,-0.0147,0.1645,-0.0006,0.032,-0.0595,0.0134,-0.0194,0.0075,-0.0115,0.003,-0.0018,0.0767,-0.0677,0.0838,-0.0745,0.0369,-0.0181,0.0012,-0.0013,0.0007,-0.0015,0.0013,-0.0023,0.0023,-0.0013,0.002,-0.0022,0.0012,-0.001,0.0008,-0.0004,0.014,-0.0034,0.0325,-0.0151,0.0417,-0.0469,0.0187,-0.1254,0.1982,-0.2108,0.0643,-0.0348,0.0939,-0.0838,0.005,-0.0392,0.0171,-0.0093,0.0839,-0.0711,0.0568,-0.0549,0.207,-0.0912,0.0689,-0.0698,0.0127,-0.0189,0.0127,-0.022,0.0621,-0.0453,0.0364,-0.071,0.1005,-0.0811,0.0344,-0.0414,0.0145,-0.0042,0.0084,-0.008,0.0698,-0.0665,0.0149,-0.0082,0.2236,-0.2144,0.1598,-0.1086,0.0067,-0.0071,0.1433,-0.0386,0.0308,-0.0615,0.0118,-0.0075,0.027,-0.0659,0.006,-0.0601,0.0022,-0.0431,0.0832,-0.0712,0.0451,-0.0254,0.0177,-0.0548,0.1143,-0.1106,0.0074,-0.0266,0.1099,-0.0587,0.1,-0.1477,0.0311,-0.0329,0.0165,-0.0296,0.0023,-0.0046,0.0065,-0.0133,0.0572,-0.0674,0.0408,-0.0383,0.0315,-0.0264,0.0447,-0.0384,0.0787,-0.0584,0.0803,-0.0519,0.0827,-0.0282,0.0164,-0.0106,0.0119,-0.0133,0.0359,-0.0299,0.0139,-0.0261,0.0572,-0.0526,0.0193,-0.0265,0.0243,-0.0156,0.002,-0.0008,0.0004,-0.0004,0.0001,-0.0005,0.0001,-0.0009,0.0003,-0.0003,0.0004,-0.0007,0.0002,-0.0007,0.0007,-0.0002,0.0004,-0.0009,0.0011,-0.0011,0.0015,-0.0005,0.0028,-0.0007,0.0007,-0.0013,0.0016,-0.001,0.0016,-0.0012,0.0007,-0.0004,0.0008,-0.0006,0.0003,-0.0005,0.0257,-0.0005,0.0336,-0.0712,0.1701,-0.0859,0.2435,-0.1739,0.181,-0.1205,0.13,-0.1261,0.1514,-0.213,0.2614,-0.098,0.0194,-0.0113,0.0116,-0.0041,0.0276,-0.052,0.106,-0.0889,0.1199,-0.0727,0.0437,-0.0736,0.0844,-0.0777,0.0617,-0.072,0.0639,-0.0624,0.0299,-0.0152,0.1953,-0.1194,0.1493,-0.1875,0.0046,-0.0112,0.0028,-0.0028,0.0015,-0.0012,0.231,-0.143,0.2069,-0.0942,0.0321,-0.0088,0.0042,-0.0061,0.0158,-0.0234,0.0062,-0.0293,0.1037,-0.0653,0.1523,-0.0613,0.0621,-0.1088,0.1167,-0.1595,0.1635,-0.1383,0.0599,-0.0659,0.0204,-0.0129,0.0173,-0.0125,0.0101,-0.0351,0.1682,-0.1112,0.0435,-0.0581,0.0759,-0.1029,0.0423,0,0.0949,-0.0703,0.1798,-0.1617,0.0039,-0.07,0.0043,-0.0012,0.0036,-0.0019,0.0024,-0.0014,0.0023,-0.003,0.0019,-0.0013,0.0005,-0.001,0.0029,-0.0008,0.0033,-0.0064,0.0046,-0.017,0.0242,-0.0196,0.065,-0.0559,0.0812,-0.0979,0.0512,-0.0163,0.0082,-0.0061,0.0667,-0.0512,0.0424,-0.1174,0.0599,-0.0517,0.0452,-0.043,0.0147,0,0.0226,-0.0096,0.064,-0.0097,0.023,-0.0225,0.001,-0.0046,0.0012,-0.0003,0.0002,-0.0006,0.0159,-0.0188,0.0382,-0.1071,0.0851,-0.0655,0.1229,-0.167,0.1513,-0.1165,0.0441,-0.0686,0.0619,-0.0755,0.0059,-0.0169,0.0077,-0.009,0.0368,-0.0085,0.038,-0.0867,0.1569,-0.11,0.0092,-0.0277,0.0146,-0.0356,0.0958,-0.0457,0.0119,-0.0059,0.1417,-0.0737,0.0088,-0.0245,0.063,-0.1176,0.0742,-0.0775,0.0064,-0.0081,0.0643,-0.0035,0.0635,0,0.0452,-0.0253,0,-0.0297,0.0041,-0.0231,0.0108,-0.0134,0.089,-0.0787,0,-0.0962,0.0329,-0.0856,0.0152,-0.0125,0.0366,-0.0384,0.0006,-0.069,0.0941,-0.0718,0.0384,-0.0383,0.0241,-0.0314,0.034,-0.0292,0.01,-0.0118,0.0009,-0.0013,0.002,-0.001,0.0024,-0.0015,0.0016,-0.002,0.0012,-0.001,0.001,-0.0007,0.0004,-0.0006,0.0003,-0.0004,0.007,-0.0037,0.0251,-0.0346,0.0956,-0.0964,0.1066,0,0.0967,-0.077,0.0433,-0.0485,0.0911,-0.1113,0.111,-0.0556,0.064,-0.0722,0.1862,-0.1386,0.1151,-0.0558,0.1696,-0.1544,0.0721,-0.0758,0.0057,-0.0515,0.0022,-0.0041,0.0026,-0.0336,0.0424,-0.0314,0.0008,-0.0017,0.0004,-0.0003,0.0005,-0.0377,0.1391,-0.0753,0.0219,-0.0685,0.0348,-0.0306,0.0305,-0.0296,0.0083,-0.005,0.0669,-0.0443,0.0508,-0.0362,0.0488,-0.0327,0.0207,-0.008,0.0017,-0.002,0.0004,-0.0002,0.0006,-0.0005,0.0022,-0.0064,0.0073,-0.0048,0.0139,-0.0089,0.0712,-0.0212,0,-0.0505,0,-0.0647,0,-0.0619,0.0375,-0.0312,0.028,-0.0298,0.0106,-0.005,0.0048,-0.0169,0.1073,-0.0108,0.0973,-0.1245,0.0532,-0.077,0.0811,-0.0475,0.0029,-0.0019,0.0806,-0.0505,0.0684,-0.0559,0.0089,-0.0144,0.0097,-0.0229,0.0064,-0.0609,0.0126,-0.0669,0.0331,-0.0754,0.0188,-0.0041,0.0547,-0.0685,0.2291,-0.0161,0.0144,-0.0415,0.0512,-0.0519,0.0483,-0.0376,0.0426,-0.0217,0.044,-0.0409,0.0831,-0.0282,0.0767,-0.0224,0.0694,-0.0212,0.0209,-0.0293,0.0242,-0.0101,0.004,-0.0088,0.0003,-0.0007,0.0006,-0.0005,0.0001,-0.0003,0.0003,-0.0006,0.0003,-0.0005,0.0009,-0.0005,0.0004,-0.0006,0.0005,-0.0009,0.0013,-0.0003,0.0005,-0.0007,0.0003,-0.0004,0.0005,-0.0009,0.0006,-0.0006,0.0007,-0.0005,0.0004,-0.0007,0.0004,-0.0005,0.0007,-0.0004,0.0004,-0.0006,0.0006,-0.001,0.0006,-0.0005,0.0008,-0.0006,0.0008,-0.001,0.0007,-0.0014,0.0015,-0.0016,0.0008,-0.0011,0.0006,-0.0012,0.0003,-0.0003,0.0005,-0.0005,0.0014,-0.0005,0.0003,-0.0003,0.026,-0.0069,0.0348,-0.0446,0,-0.0723,0.0522,-0.0185,0.0637,-0.0666,0.0762,-0.0552,0.0688,-0.066,0.0004,-0.0118,0.0011,-0.0019,0.001,-0.0005,0.0003,-0.0009,0.0004,-0.0006,0.0744,-0.0137,0.1322,-0.0806,0.058,-0.0726,0.0634,-0.0925,0.0663,-0.0799,0.0425,-0.0479,0,-0.1037,0.0549,-0.0619,0.0462,-0.0391,0.0445,-0.0436,0.0421,-0.0459,0.0625,-0.0461,0.0229,-0.0215,0.0216,-0.0179,0.0143,-0.0169,0.0132,-0.0119,0.0051,-0.0097,0.0007,-0.0003,0.0005,-0.0003,0.0003,-0.0007,0.0005,-0.0006,0.0008,-0.0008,0.0003,-0.0004,0.001,-0.0014,0.0005,-0.0007,0.0007,-0.0002,0.0005,-0.0005,0.0005,-0.0005,0.0002,-0.0004,0.0118,-0.0046,0.0091,-0.0591,0.0159,-0.0813,0.0547,-0.0061,0.1091,0,0.1481,-0.0807,0.0563,-0.0524,0.0849,-0.0585,0.0284,-0.0468,0.023,-0.0283,0.0091,-0.0154,0.1042,-0.0908,0.1138,-0.0765,0.05,-0.0424,0.0714,-0.0396,0.0962,-0.058,0.0361,-0.0608,0.0236,-0.0247,0.0379,-0.0274,0.0427,-0.03,0.0448,-0.0421,0.0453,-0.0532,0.0268,-0.0173,0.0386,-0.0353,0.082,-0.058,0.0472,-0.0598,0.0095,-0.0552,0.0007,-0.002,0.0005,-0.0003,0.0012,-0.001,0.0014,-0.0009,0.0027,-0.001,0.0019,-0.0012,0.0009,-0.0013,0.0002,-0.0007,0.0043,-0.0014,0.0038,-0.0063,0.0058,-0.0241,0,-0.0913,0.0736,-0.0646,0.1042,-0.068,0.0037,-0.0035,0.0623,-0.0576,0.0672,-0.0309,0.0513,-0.0997,0.0013,-0.085,0.0126,-0.0164,0.0079,-0.0178,0.0031,-0.0005,0.1035,-0.0959,0.0842,-0.0934,0.0871,-0.0641,0.0515,-0.0671,0.0035,-0.0235,0.0232,-0.0052,0.0413,-0.0388,0.028,-0.0423,0.0707,-0.0665,0.0645,-0.0525,0.0802,-0.0399,0.0325,-0.058,0.0511,-0.0331,0.0336,-0.0201,0.0008,-0.001,0.0008,-0.0016,0.0009,-0.0004,0.0006,-0.0008,0.0007,-0.0008,0.0003,-0.0012,0.0002,-0.0005,0.0003,-0.0005,0.0003,-0.0006,0.0007,-0.0012,0.0005,-0.0008,0.0003,-0.0004,0.0182,-0.0015,0.0762,-0.0655,0.1615,-0.0805,0.1127,-0.0338,0.0409,-0.0777,0.0177,-0.0273,0.0081,-0.009,0.1138,-0.0956,0.1122,-0.0404,0.0927,-0.0231,0.0413,-0.0288,0.0196,-0.0106,0.0006,-0.0036,0.0006,-0.0002,0.0002,-0.0005,0.0194,-0.0027,0.0523,-0.0345,0.2276,-0.142,0.1152,-0.125,0.1879,-0.1729,0.051,-0.03,0.0349,-0.0628,0.0234,-0.037,0.0175,-0.0374,0.0438,-0.0351,0.0221,-0.0142,0.0486,-0.0318,0.0427,-0.0262,0.0802,-0.0513,0.0426,-0.0589,0.0697,-0.0344,0.0588,-0.037,0.0151,-0.0297,0.035,-0.0271,0.0608,-0.0283,0.0392,-0.0348,0.0151,-0.0144,0.006,-0.0054,0.0005,0,0.0004,-0.0001,0.0005,-0.0003,0.0004,-0.0003,0.0004,-0.0004,0.0004,-0.0005,0.0005,-0.0004,0.0004,-0.0003,0.0004,-0.0003,0.0005,-0.0003,0.0004,-0.0004,0.0003,-0.0004,0.0003,-0.0006,0.0002,-0.0004,0.0003,-0.0006,0.0004,-0.0006,0.0003,-0.0003,0.0001,-0.0003,0.0005,-0.0003,0.0003,-0.0003,0.0009,-0.0008,0.0007,-0.0006,0.0011,-0.0007,0.0009,-0.0006,0.0013,-0.0009,0.0015,-0.0005,0.0006,-0.0009,0.0021,-0.0015,0.0012,-0.0007,0.0011,-0.0013,0.0008,-0.0009,0.0008,-0.0007,0.0009,-0.0004,0.0004,-0.0005,0.0004,-0.0007,0.0004,-0.0006,0.0139,-0.0368,0.0777,-0.0862,0.1174,-0.1024,0.0457,-0.0804,0.0501,-0.0784,0.1115,-0.1236,0.1413,-0.1597,0.246,-0.2694,0.3037,-0.26,0.1527,-0.2413,0.2213,-0.2553,0.0985,-0.1997,0.0926,-0.122,0.1269,-0.0807,0.0567,-0.0791,0.0707,-0.0776,0.0413,-0.0514,0.0517,-0.0755,0.0794,-0.0811,0.1078,0,0.1367,-0.0736,0.0269,-0.0552,0.0937,-0.0592,0.092,-0.0672,0.0869,-0.0422,0.046,-0.018,0.0125,-0.035,0.0497,-0.0612,0.0948,-0.1272,0.0997,-0.063,0.0032,-0.0108,0.0571,-0.0618,0.0516,-0.0474,0.0318,-0.0283,0.0313,-0.0322,0.0063,-0.01,0.0033,-0.003,0.0031,-0.0299,0.0286,-0.0268,0.0256,-0.0253,0.0305,-0.0202,0.0272,-0.0275,0.0456,-0.0253,0.0279,-0.0282,0.0118,-0.0047,0.0009,-0.0008,0.0007,-0.0011,0.0009,-0.0016,0.0007,-0.0009,0.0016,-0.0005,0.0003,-0.0007,0.1859,-0.0582,0.1086,-0.1116,0.0304,-0.0266,0.0032,-0.0003,0.0003,-0.0006,0.0007,-0.0104,0.2205,-0.1365,0.1551,-0.1251,0.0043,-0.0092,0.0192,-0.0015,0.0617,-0.0542,0.1069,-0.1418,0.1406,-0.0891,0.0842,-0.0897,0.0388,-0.1041,0.1664,-0.0719,0.0339,-0.0356,0.048,-0.0652,0.0209,-0.0272,0.0267,-0.0411,0.037,-0.0498,0.0161,-0.0307,0.1855,-0.1046,0.1693,-0.084,0.1449,-0.0753,0.1162,-0.0831,0.0212,0,0.0076,-0.0201,0.0198,-0.0095,0.0274,-0.1097,0.3372,-0.0624,0.2601,-0.2354,0.0582,-0.1972,0.1043,-0.1452,0.041,-0.0543,0.0389,-0.0709,0.1051,-0.1087,0.1821,-0.1378,0.0383,-0.0659,0.0359,-0.0787,0.0884,-0.0693,0.0642,-0.0508,0.1572,-0.1887,0.2102,-0.0569,0.0328,-0.048,0.0388,0,0.0517,-0.0613,0.0329,-0.0397,0.0626,-0.066,0.0638,-0.0663,0.0584,-0.0538,0.0081,-0.0229,0.0021,-0.0046,0.0041,-0.0014,0.0043,-0.0019,0.0027,-0.0024,0.0009,-0.0015,0.0002,-0.0004,0.016,-0.0092,0.0115,-0.0629,0.0382,-0.1967,0.3202,-0.2014,0.0956,-0.0997,0.0995,-0.0538,0.1601,-0.1204,0.1217,-0.0715,0.0374,-0.0339,0.0385,-0.0397,0.0329,-0.0278,0.024,-0.0146,0.0148,-0.0023,0.0839,-0.0021,0.1024,-0.0789,0.0643,-0.0837,0.1104,-0.0894,0.0218,-0.0395,0.1084,-0.0854,0.0201,-0.0233,0.0378,-0.0191,0.0011,-0.0026,0.0153,-0.0067,0.0027,-0.0023,0.0575,-0.0525,0.0508,-0.0367,0.0027,-0.0011,0.0014,-0.0014,0.0605,-0.0633,0.097,-0.0309,0.0124,-0.0175,0.002,-0.0013,0.0005,-0.0006,0.0006,-0.0005,0.0004,-0.0009,0.0002,-0.0005,0.0005,-0.0004,0.0007,-0.0007,0.0002,-0.001,0.0004,-0.0011,0.0009,-0.0009,0.0015,-0.0017,0.0005,-0.0008,0.0008,-0.0009,0.0007,-0.0008,0.0014,-0.0042,0.0257,-0.008,0.1335,-0.1244,0.1279,-0.1673,0.1031,-0.0576,0.0545,-0.0514,0.0059,-0.0101,0.224,-0.1568,0.1227,-0.128,0.0357,-0.0063,0.1415,-0.1635,0.1024,-0.172,0.1808,-0.1232,0.1501,-0.0502,0.1803,-0.1852,0.2067,-0.1329,0.0758,-0.0871,0.0704,-0.1116,0.1013,-0.1788,0.1606,-0.0666,0.0036,-0.0136,0.0607,-0.0606,0.097,-0.1161,0.2007,-0.1506,0.0758,-0.01,0.182,-0.1416,0.0718,-0.1036,0.0077,-0.0058,0.0813,-0.0703,0.1133,-0.1163,0.003,-0.0067,0.0199,-0.0446,0.1071,-0.105,0.1357,-0.1059,0.1623,-0.1171,0.015,-0.0495,0.1401,-0.0952,0.0739,-0.0564,0.034,-0.0562,0.026,-0.0636,0.003,-0.0272,0.0229,-0.0073,0.0259,-0.0824,0.1154,-0.094,0.0746,-0.0686,0.1031,-0.014,0.1316,-0.1304,0.0739,-0.1194,0.1844,-0.1207,0.0375,-0.031,0.0031,-0.0135,0.0013,-0.0012,0.0023,-0.0007,0.0002,-0.001,0,-0.0001,0,0,0,0,0,0,0,0,0.0005,0,0.0212,-0.0004,0.0114,-0.0122,0.012,-0.113,0.0357,-0.0799,0,-0.0905,0,-0.1106,0.1575,-0.12,0.1596,-0.1449,0.0277,-0.105,0.0231,-0.1442,0.0631,-0.0968,0.0132,-0.0007,0.1005,-0.0637,0.1306,-0.0603,0.078,-0.0417,0.1387,-0.1019,0.1132,-0.2217,0.0191,-0.0173,0.0729,-0.1197,0.1033,-0.1654,0.0518,-0.0897,0.1209,-0.1843,0.119,-0.1714,0.1455,-0.2001,0.0782,-0.1217,0.0953,-0.071,0.0862,-0.0601,0.1204,-0.0165,0.0916,-0.0723,0.047,-0.0694,0.0222,-0.0294,0.0287,-0.0245,0.0013,-0.0007,0.008,-0.0069,0.0503,-0.0666,0.0366,-0.0621,0.0167,-0.0229,0.0011,-0.0007,0.0005,-0.0009,0.0008,-0.0008,0.0012,-0.0014,0.0013,-0.0014,0.0023,-0.0014,0.0015,-0.0016,0.0006,-0.0016,0.0007,-0.0004,0.0452,-0.0301,0.0199,-0.0179,0.0122,-0.0261,0.0441,-0.0257,0.1573,-0.1744,0.165,-0.0723,0.093,-0.0645,0.0944,-0.0584,0.103,-0.1045,0.0964,-0.0745,0.0875,-0.0264,0.008,-0.0087,0.0197,-0.0089,0.0426,-0.0517,0.0858,-0.0446,0.0607,-0.0448,0.0365,-0.0364,0.0304,-0.0335,0.0026,-0.0009,0.0011,-0.0007,0.0017,-0.0016,0.0018,-0.0009,0.0013,-0.0011,0.0006,-0.0007,0.0003,-0.0004,0.0458,-0.0003,0.1017,-0.0874,0.1571,-0.0869,0.1227,-0.0914,0.0713,-0.0052,0.0607,0,0.0691,-0.0594,0.0591,-0.0369,0.0218,-0.0368,0.0012,-0.0011,0.004,-0.0104,0.0394,-0.0515,0.0606,-0.0307,0.0977,-0.0625,0.0782,-0.0565,0.0222,-0.0242,0.0511,-0.0285,0.0548,-0.0377,0.016,-0.0203,0.0696,-0.0102,0.1195,-0.0943,0.0432,-0.0307,0.0351,-0.0075,0.0072,-0.0013,0.0478,-0.0647,0.0743,-0.0606,0.0262,-0.0263,0.0184,-0.0182,0.0022,-0.0008,0.0015,-0.0003,0.0811,-0.0451,0.0333,-0.0102,0.0045,-0.0066,0.0012,-0.0002,0.0004,-0.0004,0.0003,-0.0004,0.0003,-0.0003,0.0003,-0.0002,0.0004,-0.0004,0.0003,-0.0001,0.0005,-0.0003,0.0004,-0.0005,0,-0.0002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.0002,0.0005,-0.0004,0.0004,-0.0006,0.0007,-0.0004,0.0005,-0.0006,0.0008,-0.0005,0.0008,-0.0012,0.0005,-0.0011,0.0003,-0.0005,0.0002,-0.013,0.0362,-0.0501,0.0871,-0.1171,0.0923,-0.0855,0.1481,-0.1164,0.0825,-0.0801,0.0053,-0.0124,0.0844,-0.0984,0.1042,-0.0898,0.067,-0.1268,0.1106,-0.0819,0.1085,-0.1264,0.1968,-0.167,0.066,-0.0532,0.0657,-0.0581,0.0019,-0.0339,0.0403,-0.0285,0.0159,-0.004,0.0362,-0.0223,0.0301,-0.0188,0.0415,-0.0301,0.0601,-0.0404,0.1062,-0.075,0.1542,-0.0666,0.0743,-0.0351,0.0278,-0.0174,0.0013,-0.0012,0.0016,-0.0026,0.0013,-0.0008,0.0016,-0.0009,0.0015,-0.0012,0.0008,-0.0005,0.0004,-0.0019,0.0498,-0.0146,0.1701,-0.0789,0.082,-0.3219,0.1309,-0.0469,0.0259,-0.0373,0.0694,-0.0393,0.075,-0.0671,0.0558,-0.0699,0.0609,-0.0673,0.0037,-0.003,0.0015,-0.0079,0.0175,-0.0182,0.0681,-0.0246,0.0625,-0.0352,0.0011,-0.0195,0.0666,-0.068,0.1186,-0.1845,0.0171,-0.0166,0.0335,-0.0124,0.1471,-0.1185,0.0974,-0.1123,0.0518,-0.0679,0.0512,-0.0304,0.0578,-0.0578,0.0467,-0.0266,0.0102,-0.0263,0.0008,-0.0011,0.0022,-0.0008,0.002,-0.0027,0.0015,-0.0015,0.0006,-0.0005,0.0004,-0.0008,0.0633,-0.0031,0.0667,-0.028,0.0234,-0.0089,0.0096,-0.0122,0.0031,-0.0015,0.0117,-0.019,0.0092,-0.0003,0.1836,-0.1627,0.0689,-0.1596,0.0329,-0.0863,0.0604,-0.0402,0.0124,-0.0185,0.0436,-0.0319,0.0136,-0.0437,0.0827,-0.045,0.103,-0.076,0.1521,-0.1234,0.0634,-0.0592,0.1041,-0.0645,0.0571,-0.0218,0.1276,-0.0798,0.1211,-0.0477,0.0247,-0.0231,0.0428,-0.0298,0.0348,-0.0192,0.0068,-0.0287,0.0476,-0.066,0.0883,-0.0626,0.0597,-0.0661,0.0045,-0.02,0.0977,-0.0103,0.0855,-0.0437,0.0311,-0.0247,0.0202,-0.0139,0.0064,-0.0031,0.0024,-0.0012,0.046,-0.0279,0.0405,-0.0546,0.0014,-0.0012,0,-0.0672,0.0526,-0.0765,0.0863,-0.0685,0.1072,-0.0573,0.071,-0.0265,0.0358,-0.0309,0.0326,-0.0055,0.0581,-0.0259,0.0992,-0.0273,0.03,-0.0182,0.004,-0.0048,0.0006,-0.0004,0.0007,-0.0005,0.0004,-0.0008,0.0008,-0.0008,0.0013,-0.0004,0.0006,-0.0011,0.001,-0.0006,0.001,-0.0009,0.001,-0.0009,0.0012,-0.0014,0.0009,-0.0011,0.0007,-0.0008,0.0009,-0.0003,0.0013,-0.0003,0.0011,-0.0003,0.0026,-0.0115,0.0634,-0.0115,0.0718,-0.0425,0.0979,-0.0913,0.0773,-0.0825,0.0122,-0.0243,0.0105,-0.0072,0.0004,-0.0033,0.1231,-0.0663,0.1186,-0.186,0.1105,-0.0443,0.0314,-0.0613,0.0371,-0.0485,0.0842,-0.0726,0.039,-0.094,0.0744,-0.0689,0.0529,-0.0518,0.1031,-0.0225,0.1035,0,0.0662,-0.0225,0.0743,-0.0418,0.0742,-0.0339,0.0129,-0.014,0.0515,-0.0031,0.0489,-0.0505,0.0614,-0.0573,0.0663,-0.0431,0.0285,-0.0371,0.018,-0.0195,0.0133,-0.0021,0.0585,-0.0609,0.0865,-0.0457,0.0654,-0.026,0.008,-0.0029,0.0021,-0.0007,0.0025,-0.0012,0.0011,-0.002,0.0022,-0.0024,0.0029,-0.0021,0.0016,-0.0019,0.0011,-0.0025,0.0004,-0.0037,0.0001,-0.0755,0,-0.0627,0.0457,-0.0316,0.0482,-0.06,0.0649,-0.0797,0.0035,-0.0035,0.0014,-0.0006,0.0041,-0.0028,0.1309,-0.1037,0.1359,-0.154,0.0913,-0.037,0.071,-0.0166,0.0154,-0.0569,0.004,-0.0125,0.0046,-0.0063,0.0961,-0.0967,0,-0.0707,0.0237,-0.0865,0.158,-0.1254,0.0553,-0.0801,0.0616,-0.0265,0.0338,-0.0181,0.0454,-0.0443,0.0251,-0.0183,0.0572,-0.0342,0.0578,-0.0397,0.0373,-0.0326,0.0145,-0.0046,0.0005,-0.0008,0.0004,-0.0011,0.0008,-0.0019,0.0011,-0.0011,0.0019,-0.0017,0.0014,-0.0012,0.0004,-0.0008,0.0004,-0.0002,0.0004,-0.0002,0.0146,-0.0094,0.0762,-0.043,0.0846,-0.1081,0.0247,-0.0136,0.0133,-0.0146,0.0733,-0.0532,0.076,-0.0668,0.0682,-0.0702,0.0744,-0.0749,0.0992,-0.0281,0.003,-0.0026,0.0007,-0.0091,0.0058,-0.0112,0.0008,-0.0023,0.0074,-0.0039,0.0049,-0.0006,0.0023,-0.0004,0.0847,-0.0381,0.0233,-0.0425,0.0109,-0.0048,0.0581,-0.0381,0.052,-0.039,0.0354,-0.0252,0.0087,-0.0077,0.0007,-0.0013,0.0206,-0.0152,0.034,-0.056,0.0496,-0.0387,0.0357,-0.0436,0.0143,-0.0447,0.035,-0.0127,0.0271,-0.0375,0.0334,-0.015,0.006,-0.0109,0.0013,-0.0017,0.0006,-0.0002,0.0005,-0.0005,0.0006,-0.0006,0.0007,-0.0001,0.0005,-0.0003,0.0004,-0.0004,0.0004,-0.0005,0.0003,-0.0002,0.0004,-0.0003,0.0003,-0.0006,0.0006,-0.0004,0.0004,-0.0005,0.0004,-0.0003,0.0003,-0.0005,0.0004,-0.0004,0.0005,-0.0003,0.0005,-0.0005,0.0007,-0.0005,0.0007,-0.0004,0.0005,-0.0006,0.0005,-0.0004,0.001,-0.0013,0.0009,-0.0003,0.0009,-0.0007,0.0007,-0.0005,0.0004,-0.0007,0.0535,-0.061,0.1262,-0.1534,0.058,-0.0706,0.3107,-0.2623,0.0076,-0.2671,0.1032,0,0.0712,-0.0233,0.0792,-0.0694,0.1214,-0.1602,0.2792,-0.1975,0.3623,-0.291,0.075,-0.2158,0.1087,-0.1975,0.2022,-0.1031,0.186,-0.0988,0.1137,-0.1544,0.109,-0.0696,0.0845,-0.0601,0.0407,-0.1137,0.1333,-0.065,0.0312,-0.0781,0.042,-0.0682,0.0205,-0.0294,0.014,-0.019,0.0183,-0.023,0,-0.0852,0,-0.0979,0.0513,-0.0351,0.0436,-0.0129,0.044,-0.0346,0.0765,-0.0751,0.0859,-0.0623,0.0996,-0.044,0.03,-0.0433,0.0039,-0.022,0.0079,-0.0072,0.0007,-0.0008,0.001,-0.0004,0.0005,-0.001,0.0009,-0.001,0.0011,-0.0017,0.0008,-0.0011,0.0015,-0.0023,0.0011,-0.0005,0.0003,-0.0007,0.0005,-0.0007,0.0047,-0.0008,0.01,-0.0122,0.0568,-0.0552,0.0511,-0.0668,0.0649,-0.0663,0.0571,-0.0658,0.0832,-0.1332,0.1231,-0.0368,0.0075,-0.0031,0.0908,-0.113,0.1554,-0.0096,0.0031,-0.0256,0.0511,-0.0198,0.0154,-0.0078,0.0438,-0.0653,0.0999,-0.1412,0.0921,-0.086,0.047,-0.0103,0.0553,-0.0939,0.071,-0.0434,0.1129,-0.0576,0.0804,-0.0738,0.0142,-0.0186,0.023,-0.0404,0.0823,-0.035,0.037,-0.0087,0.097,-0.0652,0.1735,-0.2017,0.0642,-0.0674,0.0528,-0.0107,0.0017,-0.002,0.0679,-0.0374,0.0719,-0.0672,0.0732,-0.0569,0.0689,-0.0248,0.0022,-0.0017,0.0012,-0.0013,0.0024,-0.0018,0.0027,-0.0009,0.0009,-0.0014,0.0004,-0.0005,0.0005,-0.0003,0.0002,-0.0004,0.0052,-0.0127,0.011,-0.0485,0.052,-0.0504,0.0707,-0.084,0.1656,-0.098,0.036,-0.0683,0.1472,-0.134,0.1121,-0.1088,0.0543,-0.0661,0.0409,-0.0064,0.0059,-0.0046,0.0077,-0.0016,0.0549,-0.1823,0.0652,-0.1134,0.0221,-0.025,0.0313,-0.0185,0.0578,-0.0615,0.0538,-0.0742,0.1258,-0.1236,0.1439,-0.1519,0.0735,-0.0437,0.0043,-0.0045,0.0799,-0.1024,0.0827,-0.056,0.107,-0.0182,0.1711,-0.0899,0.0929,-0.0979,0.0031,-0.1575,0.0303,-0.0162,0.0019,-0.0138,0.0004,-0.0018,0.0465,-0.0385,0.0552,-0.0255,0.0558,-0.039,0.0568,-0.0382,0.0315,-0.022,0.0009,-0.001,0.0409,-0.0082,0.0516,-0.0429,0.0017,-0.007,0.0725,-0.0717,0.0778,-0.0362,0.0246,-0.0382,0.0726,-0.0438,0.0808,-0.044,0.0356,-0.0627,0.0374,-0.035,0.0011,-0.0132,0.017,-0.0198,0.0088,-0.0094,0.0007,-0.0004,0.0004,-0.0006,0.0006,-0.0003,0.0004,-0.0003,0.0003,-0.0003,0,0,0,-0.0001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0003,0,0.0003,-0.0032,0.0526,-0.0567,0.1209,-0.0774,0.003,-0.005,0.0101,-0.004,0.0363,-0.0388,0.0663,-0.0811,0.0363,-0.0447,0.1065,-0.0766,0.09,-0.0849,0.0608,-0.0459,0,-0.0298,0,-0.021,0.0032,-0.0108,0.0029,-0.0001,0.0004,-0.0008,0.0016,-0.0005,0.0008,-0.0006,0.0011,-0.0002,0.0007,-0.0004,0.0003,-0.0006,0.0004,-0.0004,0,-0.0177,0.0173,-0.121,0.0085,-0.1154,0.0062,-0.0369,0.1667,-0.1151,0.3323,-0.3288,0.0726,-0.0637,0.1041,-0.1009,0.1861,-0.3318,0.2585,-0.1486,0.1612,-0.1484,0.1754,-0.1467,0.0878,-0.129,0.0981,-0.069,0.0488,-0.0523,0.0521,-0.0588,0.1183,-0.0835,0.2035,-0.1093,0.0808,-0.0608,0.0291,-0.0836,0.0139,-0.1367,0.0175,-0.0258,0.0108,-0.0023,0.1196,-0.0822,0.005,-0.0084,0.1558,-0.1058,0.0827,-0.0892,0.087,-0.0682,0.0616,-0.0397,0.0437,-0.0771,0.0967,-0.0549,0.0781,-0.0692,0.0136,-0.0238,0.0468,-0.0629,0.0032,-0.027,0.0008,-0.0008,0.0008,-0.0004,0.0548,-0.0399,0.0719,-0.0369,0.0485,-0.0296,0.1039,-0.0687,0.0807,-0.0466,0.0525,-0.0756,0.0905,-0.0297,0.0077,-0.0202,0.0216,-0.0115,0.0156,-0.0218,0.0117,-0.0205,0.0505,-0.0445,0.0285,-0.0434,0.0201,-0.0164,0.0009,-0.0015,0.0006,-0.0005,0.0005,-0.0005,0.0001,-0.0004,0.0005,-0.0006,0.0005,-0.0001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0002,-0.0016,0.0016,-0.0017,0.0009,-0.0004,0.0009,-0.0002,0.0004,-0.0005,0.0047,-0.0054,0.0069,-0.0703,0.1078,-0.089,0.0279,-0.042,0.0116,-0.007,0.1843,-0.0402,0.162,-0.1213,0.0587,-0.0194,0.0212,-0.0414,0.0395,-0.0676,0.0501,-0.0671,0.0596,-0.0632,0.0134,-0.0159,0.0398,-0.0234,0.0668,-0.0341,0.1168,-0.0767,0.147,-0.1371,0.1168,-0.1413,0.0902,-0.0853,0.1011,-0.0901,0.0758,-0.0722,0.0369,-0.037,0.0346,-0.041,0.0027,-0.0193,0.0877,-0.0489,0.0538,-0.0665,0.035,-0.0725,0.0119,-0.0223,0.0013,-0.0011,0.0005,-0.0011,0.0006,-0.0008,0.0012,-0.0017,0.0006,-0.0016,0.001,-0.0015,0.0012,-0.001,0.0004,-0.0005,0.0021,-0.0019,0.0073,-0.0116,0.1301,-0.0533,0.1413,-0.0948,0.0588,-0.1197,0.146,-0.0745,0,-0.0582,0.1405,-0.1473,0.2809,-0.141,0.0565,-0.0029,0.0033,-0.0047,0.0009,-0.0032,0.0005,-0.0005,0.0009,-0.001,0.001,-0.0014,0.0011,-0.0003,0.0008,-0.0007,0.0013,-0.0005,0.0007,-0.0001,0.0007,-0.0002,0.0015,-0.0006,0.0164,-0.0175,0.0909,-0.0542,0.0376,-0.0728,0.0033,-0.0026,0.0068,-0.0075,0.0011,-0.002,0.0005,-0.0098,0.1194,-0.0777,0.0772,-0.071,0.0474,-0.0405,0.0203,-0.0231,0.0023,-0.0028,0.0005,-0.0005,0.0004,-0.0007,0.0005,-0.0003,0.0004,-0.0004,0.0003,-0.0004,0.0001,-0.0005,0.0611,-0.1122,0.0886,-0.0332,0.0017,-0.0141,0.0086,-0.0109,0.0034,-0.0018,0.0194,-0.0167,0.049,-0.0917,0.0267,-0.0961,0.0302,-0.0243,0.1207,-0.0764,0.1989,-0.1777,0.0361,-0.1352,0.0024,-0.0409,0,-0.0434,0.0501,-0.048,0.0455,-0.0533,0.0438,-0.044,0.1027,-0.0919,0.0893,-0.0657,0.0568,-0.041,0.0408,-0.041,0.0395,-0.0482,0.1373,-0.1217,0.0525,-0.0433,0.0734,-0.019,0.0464,-0.0723,0.1029,-0.0573,0.0658,-0.0551,0.0778,-0.0505,0.0147,-0.0633,0.0226,-0.0211,0.0067,-0.0066,0.069,-0.0289,0.0563,-0.0676,0.0554,-0.0476,0.0624,-0.0465,0.0007,-0.0015,0.0069,-0.0064,0.0075,-0.0036,0.0035,-0.0065,0.0912,-0.0991,0.1091,-0.0526,0.0496,-0.0429,0.063,-0.0522,0.0471,-0.0332,0.0051,-0.002,0.2933,-0.0495,0.0046,-0.1254,0.0741,-0.055,0.0486,-0.1089,0.1014,-0.123,0.2209,-0.1712,0.1912,-0.1207,0.0924,-0.0547,0.0309,-0.0352,0.0597,-0.0371,0.0363,-0.0346,0.0035,-0.0064,0.0749,-0.0484,0.0148,-0.0114,0.0492,-0.0213,0.0592,-0.0513,0.0652,-0.0336,0.0093,-0.0066,0.0007,-0.0009,0.0005,-0.0012,0.0011,-0.0005,0.0008,-0.0012,0.0009,-0.0011,0.0011,-0.0012,0.0012,-0.0012,0.0009,-0.0005,0.0007,-0.0004,0.0005,-0.0005,0.0003,-0.0002,0.007,-0.0133,0.0156,-0.0084,0.0006,-0.0012,0.053,-0.0037,0.0024,-0.0425,0.0993,-0.0646,0.1072,-0.0873,0.1458,-0.0693,0.0202,-0.0187,0.001,-0.0023,0.0105,-0.0139,0.0796,-0.0595,0.0681,-0.0609,0.0547,-0.03,0.064,-0.0029,0.004,-0.0207,0.0742,-0.04,0.0081,-0.0124,0.0026,-0.0056,0.0081,-0.0206,0.0011,-0.0073,0.0877,-0.0262,0.0111,-0.0416,0.0011,-0.0005,0.0005,-0.0009,0.1931,-0.0342,0.1715,-0.1185,0.03,-0.0324,0.0315,-0.0337,0.05,-0.0449,0,-0.0514,0,-0.0459,0.0114,-0.0323,0.1621,-0.1304,0.0584,-0.0886,0,-0.0555,0.061,-0.0467,0.0712,-0.0565,0.0859,-0.0161,0.0639,-0.0601,0.0696,-0.0401,0,-0.0422,0.0104,-0.0369,0.0309,-0.0235,0.0214,-0.0244,0.0181,-0.0206,0.0038,-0.0042,0.0022,-0.0003,0.0014,-0.0007,0.0009,-0.0017,0.0015,-0.0015,0.0019,-0.0019,0.0019,-0.0011,0.0011,-0.0011,0.0007,-0.0009,0.0002,-0.0004,0.0519,-0.012,0.0172,-0.0052,0.0029,-0.0073,0.0022,-0.01,0.0407,-0.0406,0.0245,-0.0577,0.1902,-0.1323,0.1783,-0.1534,0.3507,-0.2104,0.2201,-0.1897,0.2577,-0.1062,0.1255,-0.0597,0.0794,0,0.0105,0,0.0034,-0.001,0.1471,-0.125,0.0503,-0.0027,0.0918,-0.019,0.0911,-0.0697,0.0047,-0.0008,0.12,-0.1013,0.1573,-0.0935,0.1013,-0.1043,0.0475,-0.0768,0.0316,-0.0531,0.1395,-0.1408,0.0245,-0.0423,0.3957,-0.2297,0.1388,-0.055,0.0243,-0.0377,0.0102,-0.0347,0.002,-0.0011,0.1016,-0.0963,0.1045,-0.1212,0.0576,-0.0438,0.0609,-0.0495,0.028,-0.0153,0.0055,-0.0021,0.0004,-0.0004,0.0795,-0.0704,0.0695,-0.0768,0.0469,-0.0446,0.0301,-0.021,0.0009,-0.0015,0.0009,-0.0012,0.0009,-0.0013,0.0014,-0.0015,0.0027,-0.0018,0.0022,-0.0019,0.001,-0.0011,0.0006,-0.0002,0.0005,-0.0005,0.0007,-0.0003,0.0712,-0.0006,0.1552,0,0.1567,-0.1246,0.1587,-0.1253,0,-0.1059,0.0881,-0.0059,0.1478,-0.091,0.0461,-0.0464,0.0991,-0.0511,0.0643,-0.048,0.0676,-0.0544,0.044,-0.0313,0.0025,-0.0015,0.1626,-0.0855,0.1324,-0.225,0.0594,-0.0407,0.0797,-0.0678,0.0651,-0.0672,0.0596,-0.0732,0.0952,-0.0833,0.0401,-0.0664,0.0417,-0.043,0.0279,-0.0098,0.0261,-0.0003,0.0526,-0.036,0.009,-0.043,0.0603,-0.0446,0.0306,-0.0236,0.0326,-0.0252,0.0567,-0.0417,0.0026,-0.0102,0.0015,-0.0014,0.0005,-0.0009,0.0706,-0.042,0.057,-0.0338,0.0185,-0.0085,0.0018,-0.0023,0.0865,-0.0639,0.0501,-0.0348,0.0377,-0.0114,0.0025,-0.003,0.0009,-0.0015,0.0006,-0.0005,0.0004,-0.0003,0.0004,-0.0001,0.0009,-0.0004,0.0003,-0.0002,0.0005,-0.0003,0.0002,-0.0011,0.0002,-0.0009,0.0003,-0.0005,0.0002,-0.0006,0.0002,-0.0005,0.0002,-0.0007,0.0002,-0.0005,0.0003,-0.0004,0.0043,-0.0003,0.0003,-0.0006,0.0008,-0.0002,0.0011,-0.0011,0.0009,-0.0007,0.0009,-0.001,0.0004,-0.0007,0.0003,-0.0004,0.0025,-0.0008,0.0172,-0.0213,0.0513,-0.0112,0.0107,-0.0275,0.0703,-0.0784,0.2109,-0.0787,0.0628,-0.0623,0.0421,-0.0527,0.0578,-0.0029,0.0878,-0.1114,0.2857,-0.0911,0.2626,-0.016,0.2891,-0.1498,0.0756,-0.0949,0.0351,-0.0437,0.1063,-0.0876,0.0054,-0.0192,0.0994,-0.1771,0.1189,-0.0225,0.0243,-0.0038,0.0241,-0.0492,0.0924,-0.0614,0.0863,-0.077,0.0057,-0.0049,0.0801,-0.0585,0.1064,-0.0064,0.0076,-0.1432,0.0377,-0.1482,0.0405,-0.106,0.086,-0.0972,0.0323,-0.0103,0.0558,-0.0672,0.0602,-0.0067,0.0275,-0.0927,0.0357,-0.0496,0.0028,-0.0068,0.0632,-0.0545,0.0356,0,0.1689,-0.0825,0.0506,-0.0911,0.0122,-0.0058,0.0015,-0.0036,0.0846,-0.0618,0.0784,-0.059,0.0466,-0.0507,0.0494,-0.0614,0.0212,-0.0162,0.087,-0.0559,0.0076,-0.0097,0.0258,-0.0438,0.0517,-0.0602,0.0258,-0.0268,0.0194,-0.0187,0.0234,-0.0176,0.025,-0.0219,0.0176,-0.0137,0.0087,-0.0074,0.0003,-0.0012,0.0004,-0.0004,0.0013,-0.0013,0.002,-0.0011,0.0024,-0.0017,0.0005,-0.0027,0.0008,-0.0008,0.0005,-0.0004,0.0004,-0.0001,0.0425,-0.001,0.2017,-0.0922,0.0792,-0.097,0.0541,-0.0163,0.0479,-0.0688,0.0926,-0.0898,0.1429,-0.1241,0.0826,-0.0358,0,-0.0823,0.0096,-0.0209,0.0234,-0.0181,0.1116,-0.1149,0.1579,-0.0728,0.0176,-0.0046,0.0361,-0.021,0.0485,-0.0158,0.0553,-0.118,0.0033,-0.0514,0.011,-0.0134,0.0074,-0.0017,0.0884,-0.0744,0.1323,-0.1343,0,-0.0517,0,-0.1074,0.0987,-0.0758,0.0664,-0.077,0.0598,-0.042,0.0339,-0.0264,0.0041,-0.0083,0.0507,-0.0514,0.0114,-0.0014,0.0004,-0.0082,0.0599,-0.0438,0.0442,-0.0313,0.0219,-0.0236,0.0095,-0.0057,0.0008,-0.0002,0.0006,-0.0004,0.001,-0.0008,0.0014,-0.0011,0.0013,-0.001,0.0007,-0.0007,0.0014,-0.0009,0.0005,-0.0019,0.0002,-0.0012,0.0006,-0.0013,0.0004,-0.001,0.0001,-0.0005,0.0001,-0.0005,0.0011,-0.0018,0.0131,-0.0103,0.0011,-0.0035,0.024,-0.0406,0.1151,-0.0701,0.0087,-0.02,0.0679,-0.0622,0.0361,-0.0931,0.0236,-0.1253,0,-0.0589,0.1098,0,0,-0.0124,0.0008,-0.0077,0.018,-0.1183,0.1284,-0.1041,0.1127,-0.0756,0.093,-0.0657,0.071,-0.0754,0.0297,-0.0232,0.0329,-0.0263,0.0624,-0.0424,0.0525,-0.0638,0.0185,-0.0666,0.0344,-0.0276,0.0616,-0.0235,0.0554,-0.0427,0.0016,-0.0146,0.0282,-0.0271,0.0558,-0.0405,0.0208,-0.0144,0.0584,-0.0369,0.0479,-0.0443,0.0454,-0.0436,0.064,-0.0216,0.0236,-0.0126,0.0012,-0.0006,0.0016,-0.0009,0.002,-0.0012,0.0008,-0.0018,0.0008,-0.0011,0.0006,-0.0004,0.0002,-0.0006,0.0004,-0.0008,0.0297,-0.0163,0.0156,-0.0525,0.0233,-0.0274,0.0069,-0.0087,0.0109,-0.0056,0.0075,-0.0453,0.0763,-0.0652,0.0463,-0.0587,0.0397,-0.0077,0.0018,-0.0021,0.059,-0.0056,0.0717,-0.1071,0.1523,-0.0676,0.014,-0.0308,0.0047,-0.0119,0.035,-0.0263,0.0464,-0.0353,0.0149,-0.0153,0.0186,-0.0346,0.0458,-0.0526,0.0324,-0.0315,0.0516,-0.036,0.0431,-0.0608,0.057,-0.04,0.0927,-0.0486,0.0204,-0.0223,0.0144,-0.0073,0.0007,-0.0006,0.0019,-0.0024,0.0008,-0.001,0.0014,-0.0014,0.0015,-0.0014,0.0014,-0.0014,0.0014,-0.0006,0.001,-0.0008,0.0004,-0.0008,0.0005,-0.0003,0.0002,-0.0006,0.0001,-0.0009,0.0231,-0.0369,0.0554,-0.0306,0.0718,-0.0313,0.0027,-0.0035,0.0029,-0.0017,0.02,-0.0192,0.0865,-0.0794,0.0599,-0.0524,0.0447,-0.0269,0.0351,-0.0286,0.0482,-0.0443,0.078,-0.0518,0.0418,-0.0198,0.0223,-0.0266,0.0255,-0.0284,0.0158,-0.0304,0,-0.0328,0,-0.0599,0,-0.0354,0.0421,-0.0535,0.0665,-0.0212,0.0089,-0.0489,0.0405,-0.0438,0.0024,-0.004,0,-0.022,0.0155,-0.0132,0.0536,-0.0707,0.0638,-0.0116,0.034,-0.0328,0.0203,-0.0258,0.0035,-0.009,0.0009,-0.0007,0.0004,-0.0004,0.022,-0.0109,0.03,-0.0264,0.0171,-0.0112,0.0006,-0.0041,0.0007,-0.0002,0.0098,-0.0247,0.0202,-0.0208,0.004,-0.0028,0.0017,-0.0022,0.0009,-0.0012,0.0006,-0.0002,0.0003,-0.0003,0.0003,-0.0002,0.0005,-0.0003,0.0003,-0.0002,0.0004,-0.0004,0.0004,-0.0005,0.0005,-0.0003,0.0004,-0.0003,0.0005,-0.0002,0.0003,-0.0004,0.0005,-0.0003,0.0002,-0.0003,0.0003,-0.0007,0.0002,-0.0005,0.0002,-0.0006,0.0003,-0.0002,0.0006,-0.0003,0.0004,-0.0003,0.0005,-0.0001,0.0002,-0.0003,0.0005,-0.0003,0.0004,-0.0004,0.0005,-0.0004,0.0004,-0.0003,0.0004,-0.0003,0.0001,-0.0003,0.0002,-0.0003,0.0002,-0.0005,0.0009,-0.0002,0.0007,-0.0004,0.0008,-0.0006,0.0004,-0.0004,0.0008,-0.001,0.0015,-0.0003,0.0008,-0.0014,0.0017,-0.0006,0.0007,-0.0017,0.0013,-0.001,0.0007,-0.0007,0.0002,-0.0004,0.0039,-0.0012,0.011,-0.026,0.2051,-0.1614,0.0659,-0.0739,0.0524,-0.0913,0.059,-0.0709,0.062,-0.0798,0.0721,-0.1259,0.1179,-0.1414,0.0202,-0.0412,0.015,-0.0083,0.1275,-0.1398,0.0564,-0.0583,0.1403,-0.3069,0.2764,-0.1491,0.1,-0.2004,0.0486,-0.1138,0.0388,-0.0659,0.0382,-0.0487,0.012,-0.0093,0.0424,-0.0258,0.075,-0.0346,0.0692,-0.0669,0.2143,-0.1898,0.1508,-0.1403,0.0206,-0.0441,0.0631,-0.049,0.0089,-0.0143,0.0925,-0.0111,0.0809,-0.0379,0.1407,-0.1718,0.1177,-0.1719,0.1019,-0.0506,0.0236,-0.0474,0.0392,-0.0107,0.0038,-0.0081,0.1712,-0.0794,0.0393,-0.0639,0.0181,-0.0203,0.0251,-0.017,0.0501,-0.0621,0.0491,-0.051,0.0071,-0.0017,0.0045,-0.0068,0.0037,-0.0172,0.0441,-0.0219,0.0293,-0.0478,0.1209,-0.0195,0.0962,-0.0906,0,-0.0237,0.0721,-0.0455,0.0575,-0.062,0.1345,-0.0943,0.0637,-0.0515,0.0125,-0.0096,0.0062,-0.0046,0.0379,-0.0257,0.0412,-0.0308,0.033,-0.0259,0.0047,-0.0015,0.0007,-0.0005,0.0005,-0.0008,0.0004,-0.0003,0.0009,-0.0005,0.0009,-0.0017,0.0011,-0.0016,0.0008,-0.0012,0.0012,-0.0008,0.0007,-0.0016,0.0077,-0.0019,0.0183,-0.0092,0.055,-0.0462,0.0527,-0.0374,0.131,-0.1506,0.1272,-0.0781,0.0672,-0.0712,0.0818,-0.0503,0.0683,-0.0528,0.0922,-0.0427,0.095,-0.0462,0.0024,-0.012,0.0019,-0.0019,0.0004,-0.0004,0.0006,-0.0004,0.0004,-0.0022,0.0137,-0.0815,0.0223,-0.0128,0.0102,-0.0048,0.0003,-0.0012,0.0003,-0.0004,0.0011,-0.0018,0.0004,-0.0007,0.0004,-0.0004,0.0006,-0.0003,0.0006,-0.0004,0.0008,-0.0005,0.0006,-0.0003,0.0005,-0.0002,0.0005,-0.0005,0.0006,-0.0007,0.0001,-0.0007,0.0001,-0.0006,0.0008,-0.0016,0.0007,-0.0011,0.0003,-0.0016,0.0005,-0.0005,0.0006,-0.0033,0.0169,-0.0171,0.0711,-0.0611,0.0038,-0.0224,0.2658,-0.1385,0.03,-0.0625,0.0228,-0.0119,0.0131,-0.0136,0.1397,-0.0309,0.0611,-0.0681,0.1962,-0.1345,0.1852,-0.0911,0.0088,-0.006,0.2623,-0.2716,0.2931,-0.2563,0.1206,-0.1096,0.1193,-0.1765,0.0296,-0.0583,0.0037,-0.0061,0.0013,-0.0021,0.0017,-0.0012,0.0018,-0.0013,0.001,-0.001,0.0004,-0.0005,0.0002,-0.0004,0.0024,-0.0004,0.0182,-0.0181,0.0847,-0.0823,0.0882,-0.0628,0.0521,-0.0616,0.093,-0.0513,0.1623,-0.0493,0.0376,-0.0627,0.0729,-0.0453,0.0581,-0.0695,0.0632,-0.066,0.014,-0.0205,0.0092,-0.067,0.2175,-0.1149,0.1001,-0.2031,0.0189,-0.054,0.0723,-0.0443,0.0091,-0.0221,0.1995,-0.213,0.0633,-0.0733,0.0489,-0.063,0.0015,-0.0122,0.0007,-0.0006,0.0037,-0.0025,0.0017,-0.0013,0.0009,-0.0011,0.0007,-0.0003,0.0001,-0.0004,0.0004,-0.0005,0.0246,-0.0001,0.0448,-0.028,0.0713,-0.0391,0.0775,0,0.1443,-0.0974,0.0833,-0.082,0.03,-0.022,0.0093,-0.0081,0.0041,-0.005,0.0005,-0.0006,0.0002,-0.0008,0.0005,-0.0005,0.0006,-0.0007,0.0209,-0.0263,0.1399,-0.0935,0.0535,-0.0636,0.0973,-0.064,0.1297,-0.2094,0.2031,-0.2259,0.1977,-0.2119,0.1293,-0.0794,0.1138,-0.0866,0.0063,-0.024,0.1272,-0.0118,0.0949,-0.0861,0.0387,-0.0665,0.1348,-0.0555,0.0433,-0.0417,0.0013,-0.0145,0.0007,-0.0007,0.0504,-0.0286,0.0215,-0.0461,0.0011,-0.004,0.0963,-0.0817,0.1237,-0.0907,0.1295,-0.0719,0.1331,-0.1144,0.0609,-0.1037,0.0036,-0.0076,0.0155,-0.017,0.0049,-0.0372,0.0849,-0.0483,0.0813,-0.0359,0.0033,-0.0055,0.002,-0.0337,0.0532,-0.0403,0.0417,-0.0365,0.0276,-0.0136,0.0007,-0.0011,0.0584,-0.0145,0.0564,-0.0339,0.0246,-0.0175,0.0117,-0.0083,0.0007,-0.0009,0.0006,-0.0006,0.0007,-0.0002,0.0006,-0.0004,0.0006,-0.0004,0.0004,-0.0004,0.0008,-0.0004,0.0005,-0.0003,0.0003,-0.0005,0.0005,-0.0005,0.0004,-0.0007,0.0003,-0.0008,0.0002,-0.0014,0.0011,-0.0009,0.0003,-0.0006,0.0008,-0.0011,0.0005,-0.0009,0.0008,-0.0006,0.0006,-0.0006,0.0006,-0.0003,0.0101,-0.0154,0.0355,-0.0298,0.0784,-0.0366,0.063,-0.0921,0.0787,-0.0879,0.0067,-0.0033,0.0049,-0.0057,0.0199,-0.0246,0.0521,-0.0168,0.0552,-0.0344,0.1789,-0.0776,0.2393,-0.2421,0.2257,-0.1598,0.0652,-0.0192,0.0039,-0.0078,0.001,-0.0014,0.001,-0.0005,0.0449,-0.0378,0.0576,0,0.064,-0.0809,0.0587,0,0.0546,-0.017,0.0081,-0.0404,0.1033,-0.0329,0.1437,0,0.1032,-0.0938,0.0078,-0.0154,0,-0.1545,0.1895,-0.1096,0.144,-0.0562,0.0295,-0.0109,0.0022,-0.002,0.0005,-0.0019,0.0008,-0.0023,0.0008,-0.0008,0.0016,-0.0012,0.0016,-0.0011,0.0023,-0.0003,0.0019,-0.0037,0.0014,-0.0011,0.0022,-0.0011,0.0082,-0.0196,0.1174,-0.0457,0.0018,-0.0014,0.1957,-0.2167,0.295,-0.2384,0.1469,-0.151,0.0567,-0.0729,0.0506,-0.0172,0.1173,-0.1353,0.0989,-0.0319,0.005,-0.0034,0.049,-0.0012,0.0944,-0.0743,0.0082,-0.0032,0.1895,-0.1007,0.1728,-0.0919,0.1174,-0.1516,0.1982,-0.1988,0.0148,-0.0217,0.1502,-0.1103,0.0508,-0.0567,0.0066,-0.0062,0.0048,-0.0012,0.0039,-0.0051,0.0741,-0.0511,0.0468,-0.0608,0.0579,-0.089,0.126,-0.0954,0.1281,-0.074,0.002,-0.0137,0.153,-0.0838,0.0707,-0.0883,0.0784,-0.066,0.1202,-0.0712,0.0404,-0.0701,0.0774,-0.073,0.0057,-0.0017,0.0025,-0.0068,0.0845,-0.0148,0.0717,-0.0594,0.0553,-0.0799,0.0029,-0.0125,0.1354,-0.109,0.0589,-0.105,0.0032,-0.0042,0.0084,-0.0253,0.1748,-0.0525,0.0701,-0.11,0.1386,-0.1153,0,-0.1121,0.1162,-0.168,0.2012,-0.2079,0.0226,-0.0072,0.0026,-0.0011,0.0008,-0.0097,0.0703,-0.0571,0.0278,-0.0228,0.0164,-0.0223,0.0226,-0.012,0.0797,-0.041,0.029,-0.0406,0.0047,-0.0015,0.0012,-0.0017,0.0362,-0.0278,0.0203,-0.0655,0.0047,-0.0164,0.0563,-0.0506,0.0541,-0.03,0.0577,-0.0408,0.0241,-0.0186,0.0503,-0.056,0.0393,-0.0235,0.0045,-0.0059,0.0021,-0.0008,0.0006,-0.0006,0.0003,-0.0004,0.0004,-0.0002,0.0008,-0.0003,0.0004,-0.0002,0.0005,-0.0002,0.0004,-0.0002,0.0003,-0.0003,0.0003,-0.0004,0.0004,-0.0004,0.0005,-0.0004,0.0008,-0.0004,0.0004,-0.0003,0.0005,-0.0003,0.0003,-0.0003,0.0005,-0.0004,0.0005,-0.0004,0.0004,-0.0006,0.0005,-0.0007,0.0003,-0.0004,0.0003,-0.0001,0.0003,-0.0005,0.0004,-0.0004,0.0002,-0.0003,0.0002,-0.0003,0.0008,-0.0006,0.0005,-0.0005,0.0007,-0.0005,0.0006,-0.0002,0.0008,-0.0003,0.0006,-0.0003,0.0004,-0.0001,0.0004,-0.0005,0.0003,-0.0007,0.0004,-0.0005,0.0001,-0.0007,0.0003,-0.0012,0.0009,-0.001,0.0017,-0.0022,0.0023,-0.0008,0.0011,-0.001,0.0005,-0.0007,0.0003,-0.0024,0.0058,-0.0127,0.1734,-0.1534,0.1377,-0.1704,0.0649,-0.0555,0.0741,-0.0565,0.0644,-0.1045,0.0708,-0.0657,0.0626,-0.0504,0.1461,-0.1208,0.2265,-0.1286,0.0435,-0.0621,0.1177,-0.142,0.0853,-0.0688,0.1235,-0.0818,0.1098,-0.0605,0.0354,-0.0582,0.06,-0.0273,0.0021,-0.0041,0.0013,-0.0006,0.0007,-0.0012,0.0006,-0.0004,0.0016,-0.0014,0.0017,-0.0014,0.0013,-0.001,0.0009,-0.0006,0.0006,-0.0006,0.0012,-0.004,0.0096,-0.0104,0.0054,-0.0502,0.144,-0.0684,0.0655,-0.1184,0.0881,-0.1454,0.0172,-0.0162,0.2436,-0.0927,0.0512,-0.1011,0.0133,-0.0126,0.0461,-0.1661,0.1235,-0.0362,0.0645,-0.0125,0.1754,-0.2564,0.0205,-0.0014,0.0316,-0.0463,0.0463,-0.0649,0.1356,-0.0871,0.1426,-0.0485,0.1167,-0.0257,0.0317,-0.0822,0.0098,-0.0132,0.0648,-0.0163,0.0185,-0.0654,0.0864,-0.0846,0.0736,-0.0331,0.0339,-0.0187,0.0778,-0.0862,0.1115,-0.0347,0.1489,-0.0647,0.1621,-0.095,0.1432,-0.0655,0.0416,-0.0304,0.0497,-0.0707,0.0458,-0.0775,0.1052,-0.1008,0.0855,-0.0306,0.0034,-0.0795,0.0813,-0.095,0.0489,-0.0195,0.0636,-0.0395,0.0696,-0.0447,0.0326,-0.0124,0.0122,-0.009,0.0068,-0.01,0.0005,-0.0214,0.0927,-0.0534,0.0566,-0.0619,0.0948,-0.0988,0.1371,-0.1111,0.0024,-0.005,0.0031,-0.0018,0.0171,-0.0815,0.0788,-0.0627,0.0405,-0.0553,0.019,-0.0297,0.0384,-0.0257,0.0214,-0.0192,0.0254,-0.0299,0.0287,-0.0301,0.005,-0.014,0.0651,-0.0022,0.083,-0.0587,0.0642,-0.0198,0.0738,-0.0307,0.0607,-0.0338,0,-0.0346,0,-0.0322,0.0003,-0.0019,0,-0.0089,0.0804,-0.0456,0.0679,-0.0346,0.0123,-0.0111,0.0008,-0.0015,0.0005,-0.0007,0.0005,-0.0002,0.0003,-0.0004,0.0006,-0.0003,0.0007,-0.0003,0.0005,-0.0001,0.0008,-0.0005,0.0005,-0.0002,0.0004,-0.0006,0.0007,-0.0009,0.0005,-0.0011,0.0007,-0.0008,0.0012,-0.0019,0.0007,-0.0016,0.0015,-0.0012,0.0014,-0.0014,0.0009,-0.0009,0.0006,-0.0009,0.0005,-0.0007,0.0027,-0.0008,0.0056,-0.0035,0.0105,-0.0156,0.0402,-0.0696,0.116,-0.1233,0.0975,-0.0969,0.0344,-0.1508,0.0874,-0.0086,0,-0.2169,0.2099,-0.1097,0.0483,-0.0652,0.0212,-0.0446,0.1102,-0.0912,0.1192,-0.096,0.0391,-0.0332,0.0907,-0.0612,0.0035,-0.0538,0.0004,-0.0015,0.0306,-0.0105,0.04,-0.0057,0.0292,-0.0362,0.0669,-0.049,0.0732,-0.0367,0.0569,-0.0618,0.0935,-0.0667,0.0915,-0.0504,0.0241,-0.0036,0.0017,-0.0097,0.0111,-0.0084,0.0015,-0.0004,0.1103,-0.051,0.015,-0.0282,0.0175,-0.0203,0.0043,-0.0044,0.0005,-0.0004,0.0007,-0.0007,0.0004,-0.0008,0.0015,-0.0002,0.0007,-0.0011,0.0008,-0.0007,0.0005,-0.0005,0.0004,-0.0006,0.0003,-0.0004,0.0029,-0.0021,0.003,-0.0042,0.008,-0.0052,0.0342,-0.0161,0.0726,-0.0523,0.0153,-0.0234,0.0315,-0.0558,0.036,-0.0303,0.006,-0.007,0.0087,-0.0189,0.0043,-0.0051,0.0003,-0.0005,0.0118,-0.0009,0.0204,-0.0087,0.0774,-0.0563,0.045,-0.0574,0.0316,-0.0279,0.0283,-0.0255,0.0012,-0.0016,0.0006,-0.0002,0.0004,-0.0006,0.0013,-0.0008,0.0011,-0.0011,0.0011,-0.0007,0.0008,-0.001,0.0007,-0.0004,0.0003,-0.0006,0.0003,-0.0017,0.0945,-0.0545,0.1476,-0.0909,0.0158,-0.0185,0.0071,-0.0052,0.078,-0.0915,0.1178,-0.0221,0.0097,-0.0095,0.0011,-0.008,0.0878,-0.0563,0.0925,-0.0729,0.0565,-0.0376,0.034,-0.0197,0.0029,-0.0025,0.0011,-0.0012,0.0007,-0.0019,0.001,-0.0023,0.0016,-0.0005,0.0007,-0.0004,0.0005,-0.0006,0.0079,-0.0079,0.0156,-0.0077,0.0392,-0.05,0.0918,-0.0629,0.2087,-0.1678,0.2652,-0.2627,0.0883,-0.1753,0.1061,-0.0739,0.1284,-0.1908,0.2813,-0.2748,0.2842,-0.0622,0.0403,-0.0091,0.0027,-0.0779,0.1854,-0.0918,0.0662,-0.0318,0.072,-0.0303,0.0745,-0.0466,0.0392,-0.0223,0.0442,-0.0265,0.0644,-0.0393,0.0489,-0.0276,0.0042,-0.0066,0.0014,-0.0015,0.0011,-0.0013,0.0005,-0.0007,0.0004,-0.0012,0.0003,-0.0004,0.0009,-0.0002,0.0003,-0.0007,0.0007,-0.0007,0.0003,-0.0003,0.0007,-0.0006,0.0057,-0.0048,0.0059,-0.017,0.0088,-0.0168,0.0577,-0.0393,0.0828,-0.122,0.0488,-0.0483,0.0772,-0.0573,0.0526,-0.0613,0.0847,-0.0665,0.0839,-0.0075,0.0303,-0.033,0.0606,-0.0422,0.0673,-0.0455,0.0269,-0.0302,0.0221,-0.0175,0.088,-0.0299,0.0604,-0.0542,0.01,-0.0431,0.1182,-0.0829,0.0836,-0.0882,0.066,-0.0726,0.0536,-0.0308,0.1065,-0.1043,0.0032,-0.0321,0.0446,-0.0312,0.03,-0.0363,0.0857,-0.0415,0.0524,-0.0513,0.0372,-0.026,0.019,-0.0107,0.0137,-0.0089,0.0075,-0.0046,0.0007,-0.0003,0.0005,-0.0004,0.0003,-0.0004,0.0002,-0.0005,0.0005,-0.0003,0.0008,-0.0003,0.0002,-0.0003,0.0005,-0.0003,0.0005,-0.0004,0.0005,-0.0005,0.0005,-0.0006,0.0009,-0.0005,0.0009,-0.0013,0.0006,-0.0007,0.0013,-0.0009,0.0008,-0.0005,0.0004,-0.0007,0.0004,-0.0004,0.0005,-0.0011,0.0225,-0.0117,0.0675,-0.0324,0.048,-0.0286,0.0527,-0.0934,0.109,-0.0992,0.1771,-0.0667,0.1541,-0.1347,0.1243,-0.1464,0.1133,-0.0898,0.1038,-0.0941,0.13,-0.2306,0.22,-0.1531,0.1535,-0.1561,0.0486,-0.0788,0.0935,-0.0325,0.0198,-0.0131,0.0014,-0.0055,0.0007,-0.0011,0.0014,-0.001,0.0007,-0.0011,0.0002,-0.0006,0.0002,-0.0007,0,-0.0699,0.0254,-0.0742,0.0121,-0.0299,0.1132,-0.0554,0.0456,-0.0664,0.1566,-0.1153,0.129,-0.0913,0.0005,-0.0163,0.0598,-0.1107,0.1217,-0.0624,0.0844,-0.0492,0.0722,-0.0372,0.0113,-0.0163,0.0096,-0.0077,0.0956,-0.041,0.0664,-0.0787,0.0926,-0.064,0.0043,-0.0028,0.0469,-0.0782,0.0747,-0.1054,0.0296,-0.0401,0.1047,-0.0726,0.0359,-0.026,0.0307,-0.0125,0.0051,-0.0077,0.0011,-0.0015,0.1137,-0.0588,0.1335,-0.0491,0.0126,-0.0302,0.0017,-0.0128,0.0009,-0.0009,0.0011,-0.0026,0.0023,-0.0006,0.0018,-0.0006,0.0008,-0.0008,0.0004,-0.0003,0.0005,-0.0141,0.0441,-0.0617,0.0927,-0.2049,0.0089,-0.0143,0.0117,-0.0209,0.0598,-0.0374,0.0538,-0.0661,0.0953,-0.0996,0.087,-0.0185,0.0052,-0.002,0.0037,-0.0212,0.0172,-0.0149,0.0434,-0.0219,0.0272,-0.0168,0.0635,-0.0966,0.1081,-0.1105,0.1678,-0.1134,0.1196,-0.1083,0.0771,-0.0455,0.0535,-0.0459,0.0323,-0.0489,0.0462,-0.0326,0.0021,-0.0017,0.0013,-0.0014,0.0004,-0.0009,0.0019,-0.0006,0.0596,-0.0552,0.034,-0.0594,0.0213,-0.013,0.0016,-0.0002,0.0009,-0.0007,0.0009,-0.0006,0.0006,-0.001,0.0011,-0.0007,0.0009,-0.0019,0.0016,-0.0011,0.0018,-0.0007,0.0004,-0.0005,0.0008,-0.0016,0.0069,-0.0051,0.0082,-0.0108,0.1042,-0.0946,0.058,-0.0696,0.0757,-0.1126,0.0671,-0.0799,0.0149,-0.0206,0.0241,-0.0388,0.0289,-0.0391,0.0521,-0.0443,0.0445,-0.0641,0.1262,-0.0834,0.176,0,0.1298,-0.0685,0.0874,-0.0671,0.0747,-0.0588,0.0675,-0.0589,0.0422,-0.0425,0.0222,-0.0112,0.0014,-0.0007,0.1098,-0.0433,0.0675,-0.0555,0.0028,-0.0043,0.0267,-0.037,0.039,0,0.0586,-0.0582,0.0044,-0.0637,0.0012,-0.0009,0.0722,-0.0333,0.066,-0.0672,0.121,-0.0456,0.051,-0.0556,0.1071,-0.0519,0.0612,-0.0247,0.0371,-0.0355,0.0081,-0.0124,0.0005,-0.0008,0.001,-0.0011,0.0009,-0.0005,0.0006,-0.0015,0.0011,-0.0016,0.0009,-0.0006,0.0013,-0.0011,0.0003,-0.0005,0.0031,-0.024,0.0646,-0.0408,0.0558,-0.0409,0.0303,-0.0503,0.1423,-0.0785,0.0027,-0.0359,0.0167,-0.0068,0.0153,-0.0228,0.0247,-0.0051,0.0004,-0.0006,0.1802,-0.0917,0.1484,-0.0785,0.0371,-0.0619,0.0594,-0.0799,0.0635,-0.0433,0.1119,-0.0843,0.0652,-0.0765,0.0528,0,0.0389,-0.0413,0.0282,-0.0333,0.03,-0.0517,0.0971,-0.0447,0.0302,-0.03,0.1928,-0.1086,0.0514,-0.0879,0.0637,-0.0511,0.0296,-0.011,0.0012,-0.0013,0.037,-0.0227,0.0255,-0.0157,0.0135,-0.0099,0.0004,-0.0005,0.0254,-0.0202,0.029,-0.0568,0.0061,-0.0106,0.0019,-0.0012,0.0005,-0.0008,0.0005,-0.0005,0.0003,-0.0003,0.0005,-0.0005,0.0004,-0.0004,0.0005,-0.0007,0.0006,-0.0002,0.0002,-0.0004,0.0007,-0.0004,0.0005,-0.0006,0.0002,-0.0004,0.0007,-0.0008,0.0004,-0.0007,0.0003,-0.0007,0.0005,-0.0003,0.0007,-0.0007,0.0009,-0.0005,0.0006,-0.0005,0.0008,-0.0005,0.0012,-0.001,0.0016,-0.0003,0.0004,-0.0014,0.0006,-0.0009,0.0008,-0.0005,0.0005,-0.0004,0.0123,-0.0003,0.0131,-0.0186,0.146,-0.0284,0.0561,-0.0539,0.0879,-0.0627,0.0462,-0.0708,0.0897,-0.0997,0.0345,-0.0222,0.0341,-0.0075,0.0596,-0.0438,0.0418,-0.0446,0.0863,-0.0816,0.0338,-0.0401,0.0668,-0.0679,0.0873,-0.0747,0.0702,-0.0876,0.1183,-0.1163,0.158,-0.1116,0.0183,-0.0245,0.0035,-0.0018,0.0328,-0.0946,0.026,-0.0113,0.0113,-0.0594,0.0856,-0.0616,0.1238,-0.1125,0.0786,-0.1244,0.03,-0.0616,0.0258,-0.0302,0.0486,-0.035,0.0551,-0.0528,0.0549,-0.0407,0.031,-0.0115,0.0011,-0.0008,0.0024,-0.0181,0.0841,-0.0547,0.0603,-0.0231,0.007,-0.0057,0.0012,-0.0009,0.0007,-0.0012,0.0016,-0.0004,0.0005,-0.0009,0.0006,-0.0008,0.0003,-0.0006,0.0007,-0.0004,0.0005,-0.0011,0.0002,-0.0009,0.0185,-0.0153,0.0411,-0.0658,0.1395,-0.0659,0.0625,-0.0534,0.0693,-0.0435,0.0302,-0.0209,0.0226,-0.0206,0.0294,-0.01,0.0053,-0.0006,0.0002,-0.0008,0.0099,-0.0149,0.0565,-0.032,0.0309,-0.0366,0.0327,-0.0271,0.0324,-0.0384,0.0991,-0.0726,0.11,-0.0815,0.041,-0.0639,0.0393,-0.049,0.0146,-0.0173,0.0223,-0.0206,0.0459,-0.0062,0.0487,-0.0309,0.0604,-0.0869,0.1115,-0.0777,0.0581,-0.0973,0.0624,-0.0858,0.0097,-0.0132,0.0751,-0.0749,0.1152,-0.0533,0.0724,-0.0738,0.0346,-0.032,0.0726,-0.0591,0.0705,-0.0595,0.0468,-0.03,0.0417,-0.0211,0.0036,-0.0015,0.0008,-0.0007,0.0007,-0.0003,0.0005,-0.0003,0.0006,-0.0003,0.0004,-0.0002,0.0004,-0.0005,0.0004,-0.0003,0.0007,-0.0004,0.0005,-0.0005,0.0003,-0.0004,0.0001,-0.0005,0.0005,-0.0006,0.0003,-0.0003,0.0006,-0.0003,0.0003,-0.0004,0.0004,-0.0003,0.0006,-0.0004,0.0002,-0.0004,0.0002,-0.0004,0.0003,-0.0004,0.0005,-0.0004,0.0002,-0.0003,0.0006,-0.0002,0.0004,-0.0003,0.0003,-0.0003,0.0008,-0.0005,0.0006,-0.0009,0.0003,-0.0003,0.0007,-0.0002,0.0005,-0.0001,0.0003,-0.0003,0.0003,-0.0005,0.0009,-0.0006,0.0007,-0.0011,0.0013,-0.0004,0.0007,-0.0006,0.0006,-0.0003,0.0005,-0.0003,0.0006,-0.0007,0.0004,-0.0006,0.0002,-0.0006,0.0001,-0.0004,0,0,0,0,0,0,0,0,0,0,0,0,0.0004,-0.0003,0.0005,-0.0003,0.0003,-0.009,0.0183,-0.0607,0.2495,-0.1566,0.0511,-0.0839,0.0559,-0.0658,0.0357,-0.043,0.0234,-0.0708,0.0493,-0.0861,0.1097,-0.0919,0.0972,-0.0817,0.103,-0.1162,0.1035,-0.1355,0.0048,-0.0225,0.0026,-0.0127,0.0534,-0.0573,0.0671,-0.0781,0.1302,-0.0821,0.0496,-0.0505,0.0785,-0.1135,0.0381,-0.0238,0.0025,-0.0036,0.0163,-0.0047,0.0463,-0.0672,0.1204,0,0.1442,-0.076,0.0176,-0.0156,0.0082,-0.0088,0.0011,-0.0007,0.0009,-0.0004,0.0838,-0.0514,0.064,-0.047,0.0843,-0.04,0.0072,-0.0139,0.0015,-0.0009,0.0019,-0.0015,0.001,-0.0008,0.003,-0.0012,0.0023,-0.001,0.0019,-0.002,0.0024,-0.0017,0.0009,-0.0012,0.001,-0.0005,0.0005,-0.0004,0.0023,-0.0024,0.0745,-0.0398,0.1825,-0.2084,0.2795,-0.1858,0.1238,-0.0583,0.0717,-0.0577,0.0588,-0.0421,0.0691,-0.088,0.0216,-0.0592,0.1367,-0.1357,0.0495,-0.0718,0.0018,-0.0061,0.0559,-0.0155,0.2053,-0.0799,0.166,-0.0798,0.0059,-0.0304,0.0028,-0.0025,0.0158,-0.0265,0.0177,-0.0361,0.0237,-0.0208,0.0366,-0.028,0.025,-0.0552,0.0287,-0.0398,0.027,-0.009,0.0006,-0.0006,0.0512,-0.0455,0.0858,-0.0377,0.0323,-0.033,0.0381,-0.0243,0.0445,-0.0561,0.1394,-0.085,0.0305,-0.1251,0.0076,-0.0129,0.1539,-0.0442,0.0056,-0.0085,0.0042,-0.0131,0.154,-0.1031,0.1018,-0.0202,0.0899,-0.0614,0.0093,-0.0296,0.0014,-0.0016,0.0172,-0.0304,0.066,-0.0532,0.0431,-0.0427,0.014,-0.0115,0.0008,-0.0011,0.0011,-0.0005,0.0006,-0.0008,0.0014,-0.0018,0.0016,-0.0013,0.002,-0.0025,0.0014,-0.0013,0.0007,-0.0006,0.0004,-0.0005,0.0004,-0.0004,0.0188,-0.0089,0.2789,-0.1542,0.0985,-0.1727,0.0804,-0.0863,0.042,-0.0675,0.0321,-0.0345,0.0854,-0.0264,0.0818,-0.1438,0.1984,-0.1489,0.0694,-0.0559,0.0952,-0.0807,0.0606,-0.0352,0.0053,-0.0023,0.0023,-0.0022,0.0184,-0.0112,0.1114,-0.1028,0.0867,-0.0762,0.1043,-0.0885,0.0415,-0.0388,0.0063,-0.0078,0.0086,-0.0177,0.0014,-0.0869,0.0083,-0.0132,0.0334,-0.0337,0.0229,-0.0225,0.0403,-0.0359,0.0152,-0.0102,0.0075,-0.009,0.0301,-0.0098,0.0423,-0.0284,0.0651,-0.0404,0.0523,-0.0358,0.0252,-0.0553,0.009,-0.0251,0.0053,-0.0049,0.0089,-0.0104,0.0202,-0.0112,0.0465,-0.0273,0.0516,-0.0342,0.001,-0.0008,0.0128,-0.0161,0.0201,-0.02,0.0142,-0.0165,0.0008,-0.001,0.0113,-0.0005,0.0254,-0.0328,0.0132,-0.0129,0.0052,-0.0113,0.001,-0.0019,0.0002,-0.0004,0.0003,-0.0005,0.0002,-0.0008,0.0004,-0.0004,0.0003,-0.0004,0.0003,-0.0003,0.0005,-0.0004,0.0005,-0.0001,0.0004,-0.0006,0.0003,-0.0003,0.0006,-0.0001,0.0006,-0.0007,0.0006,-0.0009,0.0007,-0.0006,0.0007,-0.0005,0.001,-0.0006,0.0017,-0.0013,0.0008,-0.0017,0.0015,-0.0008,0.0008,-0.0006,0.0003,-0.0006,0.0005,-0.0007,0.0007,-0.0004,0.0005,-0.0006,0.0006,-0.0013,0.0004,-0.0006,0.0004,-0.0029,0.0028,-0.0013,0.0324,-0.0415,0.1314,-0.1008,0.1781,-0.0539,0.015,-0.0279,0.0061,-0.0064,0.0141,-0.0285,0.038,-0.025,0.1068,-0.1278,0.0154,-0.035,0.0063,-0.0073,0.0147,-0.0301,0.0194,-0.0176,0.0752,-0.0861,0.0279,-0.1063,0.0854,-0.0951,0.0637,-0.0212,0.0137,-0.0241,0.0935,-0.1259,0.1204,-0.0495,0.0224,-0.0341,0.0436,-0.0439,0.0551,-0.0413,0.0449,-0.0335,0.0111,-0.0042,0.0265,-0.0008,0.0087,-0.0157,0.0723,-0.0613,0.024,-0.0298,0.0557,-0.0359,0.0239,-0.0972,0.1899,-0.1759,0.0814,-0.0172,0.0716,-0.0807,0.0604,-0.0485,0.0668,-0.0359,0.0075,-0.0027,0.0008,-0.0008,0.0012,-0.0004,0.0008,-0.0011,0.0011,-0.0015,0.0014,-0.0011,0.0008,-0.001,0.0008,-0.0009,0.0005,-0.0004,0.0004,-0.0006,0.0005,-0.0005,0.0008,-0.0287,0.0176,-0.0244,0.1054,-0.0484,0.1728,-0.0611,0,-0.049,0.0174,-0.0167,0.0264,-0.0363,0.0628,-0.1186,0.0611,-0.1007,0.0584,-0.0565,0.0532,-0.0469,0.0755,-0.0696,0.0705,-0.0902,0.0137,-0.0041,0.0088,-0.0166,0.1225,-0.0549,0.046,-0.0736,0.0227,-0.0452,0,-0.0314,0.0076,-0.0127,0.011,-0.0036,0.0005,-0.001,0.1016,-0.0906,0.1138,-0.0694,0.0812,-0.0515,0.0195,-0.0152,0.0427,-0.0307,0.0498,-0.0494,0.0597,-0.0353,0.0608,-0.0347,0.0274,-0.0133,0.0163,-0.0177,0.0055,-0.0033,0.0024,-0.0015,0.0296,-0.0072,0.0538,-0.0258,0.0188,-0.0548,0.0275,-0.0211,0.0179,-0.016,0.0123,-0.0081,0.0213,-0.0009,0.074,-0.0656,0.0274,-0.0355,0.0256,-0.034,0.043,-0.0311,0.0099,-0.0086,0.0449,-0.0246,0.0771,-0.0376,0.0593,-0.0282,0.0161,-0.0437,0.0172,-0.0074,0.0113,-0.0081,0.0006,-0.0005,0.0005,-0.0005,0.0002,-0.0006,0.0002,-0.0007,0.0007,-0.0007,0.0003,-0.0004,0.0004,-0.0004,0.0003,-0.0003,0.0003,-0.0006,0.0005,-0.0003,0.0006,-0.0003,0.0005,-0.0001,0.0007,-0.0014,0.0006,-0.0004,0.0007,-0.0007,0.0003,-0.0008,0.0009,-0.0009,0.0003,-0.0011,0.0004,-0.0006,0.0014,-0.0009,0.0009,-0.0008,0.0005,-0.0007,0.0012,-0.0023,0.0015,-0.0016,0.0011,-0.001,0.0007,-0.0006,0.0005,-0.0011,0.0006,-0.0012,0.0026,-0.0023,0.0127,-0.01,0.1206,-0.0602,0.0904,-0.0472,0.0819,-0.0639,0.0072,-0.0121,0.0229,-0.1765,0.2202,-0.1624,0.0603,-0.1548,0.2304,-0.2075,0.235,-0.2131,0.049,-0.026,0.1475,-0.2505,0,-0.3002,0,-0.1606,0.1081,-0.1001,0.0583,-0.0312,0.0853,-0.0396,0.0077,-0.0018,0.002,-0.0019,0.0047,-0.0027,0.0005,-0.002,0.0004,-0.0026,0.0005,-0.0003,0.0219,-0.025,0.1454,-0.1148,0.1071,-0.0998,0.0061,-0.0055,0.0195,-0.0104,0.0366,-0.0566,0.043,-0.0568,0.0883,-0.0694,0.0128,-0.0272,0.0432,-0.0072,0.0886,-0.0026,0.0248,-0.0501,0.0319,-0.014,0.0333,-0.0199,0.1266,-0.0873,0.2634,-0.2237,0.1509,-0.2049,0.1776,-0.1653,0.0786,-0.0878,0.0797,-0.0349,0.037,-0.028,0.1056,-0.0089,0.0033,-0.0078,0.1167,-0.161,0.2151,-0.0732,0.1497,-0.1066,0.0304,-0.0379,0.137,-0.1517,0.0345,-0.0568,0.1059,-0.0612,0.0838,-0.0692,0.0838,-0.0721,0.1241,-0.0852,0.0286,-0.0749,0.168,-0.1289,0.0788,-0.0383,0.0362,-0.049,0.0446,-0.071,0.0048,-0.0071,0.0103,-0.0541,0.1332,-0.0617,0.0403,-0.0166,0.0065,-0.0114,0.013,-0.0088,0.004,-0.0004,0.0312,-0.0506,0.105,-0.0616,0.0633,-0.0505,0.0132,-0.01,0.0019,-0.0016,0.0018,-0.0011,0.0021,-0.0019,0.0022,-0.0013,0.0032,-0.0019,0.0008,-0.0024,0.002,-0.0011,0.0007,-0.0013,0.0114,-0.0044,0.1573,-0.0718,0.1232,-0.0869,0.2051,-0.2465,0.0906,-0.0226,0.1447,-0.1389,0.1089,-0.0998,0.1655,-0.1122,0.1384,-0.0809,0.1003,-0.0723,0.0944,-0.0685,0.147,-0.0826,0.1853,-0.0394,0.0393,-0.1376,0.0376,-0.0146,0.0916,-0.1061,0.0513,0,0.2492,-0.2853,0.1752,-0.1062,0.1088,-0.1384,0.1196,-0.2903,0.0245,-0.0603,0.0125,-0.0412,0.0064,-0.0054,0.0861,-0.0772,0.0858,-0.0575,0.0756,-0.0508,0.0014,-0.003,0.0823,-0.0318,0.0328,-0.0354,0.013,-0.0134,0.0209,-0.0286,0.0177,-0.0271,0.0136,-0.0183,0.1559,-0.0626,0.157,-0.1918,0.0662,-0.1838,0.0516,-0.058,0.0527,-0.0676,0.0362,-0.0476,0.0017,-0.0009,0.025,-0.0571,0.0798,-0.0209,0.0401,-0.0331,0.0295,-0.0571,0.0434,-0.0511,0.0548,-0.074,0.0228,-0.0154,0.0916,-0.0738,0.0831,-0.0774,0.0626,-0.0678,0.0083,-0.0042,0.1547,-0.0786,0.114,-0.0839,0.0676,-0.0939,0.0031,-0.0652,0.0101,-0.0023,0.0289,-0.0571,0.0296,-0.0309,0.0026,-0.0054,0.0057,-0.0796,0.0705,-0.0488,0.0421,-0.047,0.0036,-0.012,0.001,-0.0008,0.0521,-0.0318,0.0749,-0.0403,0.0443,-0.0245,0.0127,-0.0043,0.0019,-0.0008,0.0013,-0.0013,0.0007,-0.0009,0.0004,-0.0011,0.0009,-0.0007,0.0015,-0.0019,0.0017,-0.0008,0.0017,-0.0007,0.0015,-0.001,0.0006,-0.0006,0.0003,-0.0004,0.0005,-0.0005,0.005,-0.0058,0.1333,-0.0857,0.142,-0.101,0.1163,-0.1982,0.1213,-0.0348,0.0552,-0.1139,0.2046,-0.1374,0.2267,-0.1133,0.1651,-0.1048,0.0153,-0.0314,0.0042,-0.007,0.0072,-0.0052,0.0192,-0.0589,0.3182,-0.0982,0.4365,-0.0622,0.1296,-0.1444,0.0568,-0.0678,0.0513,-0.1262,0.113,-0.0555,0.0795,-0.077,0.0995,-0.0803,0.0456,-0.0295,0.1599,-0.1475,0.1353,-0.1143,0.0804,-0.0183,0.046,-0.0583,0.0877,-0.0325,0.0312,-0.0109,0.0009,-0.0017,0.0019,-0.0023,0.0007,-0.0012,0.0005,-0.0016,0.0005,-0.0006,0,-0.0006,0.0002,-0.0013,0.0035,-0.0022,0.0074,-0.0056,0.0108,-0.1442,0.1796,-0.2586,0.069,-0.1274,0.076,-0.0638,0.0624,-0.0316,0.0456,-0.0441,0.0826,-0.0289,0.0039,-0.0123,0.0007,-0.0009,0.0233,-0.0093,0.0251,-0.0301,0.1229,-0.0536,0.026,-0.0553,0.1236,-0.0576,0.1267,-0.0614,0.0343,-0.0107,0.0213,-0.0286,0.0766,-0.0506,0.0334,-0.1232,0.2999,-0.2369,0.0658,-0.0467,0.0728,-0.0655,0.088,-0.0995,0.0728,-0.0856,0.0139,-0.0076,0.0182,-0.0489,0.1463,-0.104,0.0106,-0.0891,0.0354,-0.089,0.0797,-0.0689,0.069,-0.0739,0.0703,-0.0479,0.0505,-0.0318,0.0253,-0.0208,0.0206,-0.016,0.0212,-0.015,0.0121,-0.0148,0.0008,-0.0007,0.0006,-0.0007,0.0006,-0.0009,0.0007,-0.0016,0.0018,-0.0022,0.001,-0.0026,0.0012,-0.0033,0.0012,-0.0017,0.0013,-0.0011,0.0004,-0.0006,0.0011,-0.0007,0.0017,-0.0049,0.0092,-0.0105,0.0133,-0.0882,0.0557,0,0.0712,-0.0526,0.0752,-0.0627,0.0329,-0.0191,0.0805,0,0.0752,-0.0565,0.044,-0.0599,0.0754,-0.0265,0.0582,-0.0526,0.0512,-0.037,0.0364,-0.0524,0.0598,-0.0228,0.001,-0.004,0.0017,-0.0008,0.0278,-0.0668,0.0347,-0.0224,0.038,-0.0353,0.0202,-0.0304,0.0249,-0.0679,0.0048,-0.0649,0.0026,-0.0015,0.002,-0.0064,0.0225,-0.0346,0.0391,-0.0299,0.0535,-0.0263,0.0134,-0.0202,0.0027,-0.0015,0.0014,-0.0007,0.0007,-0.0006,0.0005,-0.0006,0.0006,-0.0004,0.0004,-0.0007,0.0009,-0.0015,0.001,-0.0014,0.0005,-0.001,0.0008,-0.0007,0.0007,-0.0007,0.0007,-0.0005,0.0007,-0.0003,0.0005,-0.0005,0.0004,-0.0247,0.0209,-0.0214,0.0007,-0.0011,0.0002,-0.0006,0.0002,-0.0007,0.0012,-0.0286,0.0032,-0.0424,0.0334,-0.0579,0.0208,-0.0357,0.0256,-0.0286,0.0096,-0.0108,0.0029,-0.0019,0.0009,-0.0006,0.0027,-0.0015,0.002,-0.0024,0.0378,-0.0328,0.0179,-0.0215,0.0069,-0.0032,0.0005,-0.0009,0.0005,-0.0004,0.0003,-0.0004,0.0049,-0.0016,0.0254,-0.0143,0.0131,-0.0135,0.0029,-0.0026,0.0009,-0.004,0.0442,-0.0188,0.0207,-0.0419,0.0247,-0.0204,0.0513,-0.0338,0.0537,-0.0529,0.0012,-0.0089,0.0068,-0.0157,0.0224,-0.0289,0.0024,-0.0223,0.0042,-0.0025,0.0002,-0.001,0.0008,-0.0006,0.0056,-0.0158,0.0094,-0.0343,0.0032,-0.0017,0.0005,-0.0009,0.0005,-0.0009,0.0008,-0.0005,0.0006,-0.0003,0.0005,-0.0003,0.0005,-0.0004,0.0002,-0.0005,0.0005,-0.0005,0.0002,-0.0005,0.0003,-0.0006,0.0004,-0.0035,0.0004,-0.0006,0.0002,-0.0007,0.0005,-0.0005,0.0003,-0.0005,0.0002,-0.0009,0.0007,-0.0011,0.0008,-0.0008,0.0004,-0.0016,0.0005,-0.0014,0.0003,-0.0008,0.0006,-0.0009,0.0001,-0.0006,0.0007,-0.0006,0.0005,-0.0003,0.0005,-0.0002,0.0007,-0.0002,0.0074,-0.0003,0.0136,-0.0149,0.0285,-0.1735,0.026,-0.0466,0.0731,-0.0603,0.0201,-0.0624,0.2261,-0.1126,0.1068,-0.1004,0.0302,-0.0337,0.0182,-0.0257,0.0087,-0.0113,0.0009,-0.0006,0.0004,-0.0005,0.0005,-0.0004,0.0008,-0.0005,0.0101,-0.0424,0.0453,-0.0856,0.0282,-0.0392,0.0286,-0.0393,0.0081,-0.0209,0.0207,-0.009,0.0114,-0.0282,0.0076,-0.0033,0.0571,-0.0529,0.0402,-0.0399,0.0281,-0.0396,0.0626,-0.0418,0.0503,-0.0216,0.001,-0.002,0.0004,-0.0006,0.0003,-0.0004,0.0002,-0.0006,0.0003,-0.0006,0.0081,-0.0004,0.0278,-0.0288,0.0397,-0.0262,0.0241,-0.012,0.0025,-0.0033,0.0004,-0.0021,0.0169,-0.0145,0.0276,-0.0264,0.012,-0.0282,0.0103,-0.005,0.03,-0.0313,0.0681,-0.0293,0.0312,-0.0261,0.0878,-0.0462,0.0315,-0.0557,0.0907,-0.0785,0.0129,-0.0476,0.0124,-0.0083,0.0108,-0.0215,0.0098,-0.0279,0.0068,-0.0163,0.0521,-0.0446,0.0345,-0.0307,0.0064,-0.0096,0.0012,-0.0011,0.0003,-0.0006,0.0003,-0.0005,0.0006,-0.0004,0.0006,-0.0006,0.0002,-0.0002,0.0003,-0.0004,0.0005,-0.0003,0.0002,-0.0004,0.0006,-0.0005,0.0002,-0.0006,0.0004,-0.0006,0.0004,-0.0002,0.0002,-0.0005,0.0004,-0.0004,0.0002,-0.0005,0.0004,-0.0005,0.0005,-0.0009,0.0005,-0.0005,0.0005,-0.0006,0.0005,-0.0005,0.0009,-0.0003,0.0012,-0.0005,0.0007,-0.0013,0.0008,-0.0005,0.0005,-0.0008,0.0003,-0.0008,0.0006,-0.0006,0.0007,-0.0028,0.0003,-0.0003,0.0006,-0.0004,0.0003,-0.0004,0.0003,-0.0004,0.0004,-0.0006,0.0019,-0.0013,0.0037,-0.0032,0.0184,-0.013,0.1139,-0.1036,0.085,-0.074,0.0464,-0.094,0.0338,-0.0738,0.024,-0.0055,0.0326,-0.024,0.0502,-0.0443,0.0549,-0.056,0.041,-0.0406,0.0898,-0.0517,0.056,-0.1085,0.0121,-0.0021,0.0368,-0.0518,0.0026,-0.0981,0.031,-0.0784,0.128,-0.104,0.1102,-0.0583,0.0272,-0.0235,0.0301,-0.0176,0.0063,-0.0018,0.0006,-0.0008,0.0004,-0.0007,0.0004,-0.0005,0.0439,-0.0307,0.0442,-0.0322,0.0107,-0.0081,0.001,-0.0003,0.0004,-0.0002,0.0082,-0.0051,0.0948,-0.1054,0.0881,-0.087,0.0458,-0.0388,0.0373,-0.0285,0.0606,-0.0293,0.0027,-0.0025,0.0102,-0.0955,0.06,-0.0411,0.0218,-0.0308,0.001,-0.02,0.0003,-0.0162,0.0004,-0.019,0.1213,-0.0592,0.1223,-0.0271,0.0987,-0.0496,0.0372,-0.0461,0.0342,-0.0357,0.0186,-0.0272,0.0309,-0.024,0.0224,-0.0233,0.0101,-0.0199,0.0069,-0.0126,0.0038,-0.0072,0.1242,-0.078,0.0833,-0.086,0.0898,-0.0181,0.1297,-0.0736,0.0547,-0.041,0.0037,-0.0042,0.0009,-0.0003,0.0006,-0.0003,0.0009,-0.0001,0.0687,-0.0521,0.0416,-0.0551,0.045,-0.0265,0.0036,-0.0164,0.0002,-0.0012,0.0003,-0.0005,0.0004,-0.0006,0.0009,-0.0006,0.001,-0.0007,0.0017,-0.0014,0.0006,-0.0012,0.0009,-0.0011,0.001,-0.0012,0.0004,-0.0003,0.0008,-0.0004,0.0005,-0.0059,0.0204,-0.0221,0.0817,0,0.0266,-0.0532,0.0794,-0.0884,0.0669,-0.1142,0.053,-0.0686,0.0593,-0.0591,0.1216,-0.0912,0.0783,-0.0522,0.0021,-0.0191,0.0926,-0.08,0.0045,-0.0052,0.1288,-0.0957,0.0814,-0.1521,0.1799,-0.1144,0.0039,-0.0308,0.0058,-0.002,0.0418,-0.0314,0.0453,-0.0352,0.0662,-0.0508,0.0789,-0.0383,0.0148,-0.0115,0.0314,-0.0355,0.0288,-0.0282,0.0086,-0.0058,0.0026,-0.001,0.0004,-0.0005,0.0011,-0.0004,0.001,-0.0004,0.0011,-0.0005,0.0007,-0.001,0.001,-0.0005,0.0005,-0.0006,0.0006,-0.0006,0.0005,-0.0005,0.0007,-0.0006,0.0006,-0.0002,0.013,-0.0245,0.0784,-0.0531,0.1268,-0.1404,0.127,-0.0965,0.0985,-0.0903,0.007,-0.005,0.0089,-0.0166,0.0142,-0.0104,0.0794,-0.0873,0.0764,-0.0387,0.0161,-0.0142,0.0098,-0.0135,0.0045,-0.0074,0.0098,-0.0012,0.1008,-0.0748,0.0652,-0.0527,0.0055,-0.0145,0.0017,-0.0012,0.0115,-0.004,0.0163,-0.0127,0.0013,-0.001,0.002,-0.0156,0.0008,-0.0005,0.007,-0.0085,0.0234,-0.0093,0.0655,-0.0444,0.0603,-0.0344,0.0008,-0.0014,0.0377,-0.0071,0.053,-0.0297,0.0474,-0.031,0.0028,-0.0073,0.0006,-0.0007,0.0002,-0.0008,0.0004,-0.0006,0.0003,-0.0005,0.0326,-0.0128,0.026,-0.025,0.0101,-0.005,0.0009,-0.0009,0.0012,-0.0004,0.0004,-0.0004,0.0006,-0.0003,0.0007,-0.0004,0.0006,-0.0004,0.0007,-0.0002,0.0006,-0.0003,0.0005,-0.0007,0.0005,-0.0003,0.0005,-0.0005,0.0003,-0.0003,0.0003,-0.0005,0.0007,-0.0005,0.0002,-0.0009,0.0002,-0.0007,0.0004,-0.0008,0.0002,-0.0006,0.0003,-0.0007,0.0022,-0.0059,0.0047,-0.0028,0.1077,-0.0222,0.0899,-0.054,0.0718,-0.0785,0.0868,-0.0876,0.0201,-0.0286,0.005,-0.0056,0.1092,-0.0692,0.0327,-0.0842,0.0118,-0.0077,0.1012,-0.0598,0.1384,-0.1066,0.1128,-0.1424,0.0048,-0.0199,0.1859,-0.1298,0.0619,-0.0276,0.055,-0.0265,0.1114,-0.1176,0.102,-0.0913,0.0741,-0.0502,0.0177,-0.0594,0.0535,-0.0692,0.0261,-0.0784,0.057,-0.0905,0.0648,-0.0598,0.0249,-0.027,0.001,-0.0041,0.0003,-0.0005,0.0006,-0.0004,0.0011,-0.0007,0.0013,-0.0011,0.0017,-0.0008,0.0014,-0.0017,0.0015,-0.0009,0.0003,-0.0006,0.0005,-0.0002,0.0185,-0.0004,0.0241,-0.0111,0.0168,-0.0603,0.0575,-0.0229,0.0591,0,0.0958,0,0.1013,0,0.2106,-0.1186,0.3162,-0.1356,0.3178,-0.1669,0.0673,-0.0307,0.1666,-0.1679,0.1031,-0.0762,0.0227,-0.0528,0.0435,-0.0096,0.0005,-0.0032,0.0008,-0.0775,0.0589,-0.0806,0.1083,-0.0854,0.0116,-0.0159,0.0076,-0.0084,0.0207,-0.0042,0.0345,-0.0216,0.0794,-0.011,0.0346,-0.0365,0.0483,-0.0276,0.1721,-0.0537,0.0342,-0.071,0.1036,-0.0595,0.1093,-0.0954,0.0207,-0.0374,0.0512,-0.0326,0.0368,-0.0705,0.1023,-0.1021,0.0839,-0.0495,0.0261,-0.0137,0.0123,-0.0397,0.1872,-0.165,0.024,-0.112,0.1572,-0.0915,0.0747,-0.0576,0.0289,-0.0105,0.094,-0.1204,0.1146,-0.0498,0.0219,-0.0104,0.0022,-0.0011,0.001,-0.0007,0.0011,-0.0006,0.0014,-0.0013,0.0012,-0.0016,0.0013,-0.0013,0.0012,-0.0001,0.0009,-0.0004,0.0009,-0.0001,0.0005,-0.0004,0.0036,-0.0013,0.0078,-0.0056,0.0035,-0.0075,0.0022,-0.0008,0.0406,-0.0277,0.046,-0.0179,0.023,-0.0045,0.0042,-0.003,0.0042,-0.0052,0.016,-0.0161,0.0034,-0.0019,0.006,-0.004,0.0794,-0.0724,0.0402,-0.0404,0.0052,-0.0386,0.0672,-0.0531,0.0396,-0.0313,0.0036,-0.0025,0.0036,-0.0106,0.0029,-0.0072,0.0015,-0.0032,0.0028,-0.0048,0.0004,-0.0004,0.0437,-0.0375,0.0121,-0.0237,0.009,-0.0054,0.0013,-0.0006,0.0023,-0.0005,0.0009,-0.0004,0.0005,-0.0003,0.0004,-0.0005,0.0003,-0.0003,0.0008,-0.0005,0.0006,-0.0003,0.0006,-0.0004,0.0002,-0.0006,0.0003,-0.0005,0.0002,-0.0006,0.0004,-0.0004,0.0004,-0.0006,0.0006,-0.0005,0.0008,-0.0004,0.0005,-0.001,0.0005,-0.0003,0.0009,-0.0001,0.0006,-0.0002,0.0009,-0.0002,0.0005,-0.0008,0.0006,-0.0004,0.0008,-0.0005,0.0205,-0.0038,0.0502,-0.0552,0.049,-0.1558,0.1063,-0.1471,0,-0.0734,0.0117,-0.0223,0.0152,-0.0009,0.0041,-0.0015,0.0005,-0.0006,0.0006,-0.0005,0.0017,-0.0008,0.0067,-0.0119,0.0174,-0.071,0.0687,-0.0559,0.0933,-0.111,0.0783,-0.1002,0.1893,-0.1526,0.1357,-0.1633,0.2033,-0.1646,0.1504,-0.1199,0.1651,-0.2309,0.1541,-0.2469,0.053,-0.0488,0.0206,-0.0376,0.0089,-0.0193,0.0733,-0.0525,0.1377,-0.0542,0.0906,-0.12,0.0139,-0.0044,0.0069,-0.0131,0.0947,-0.0129,0.0852,-0.019,0.0316,-0.0134,0.0055,-0.002,0.0955,-0.074,0.1071,-0.0683,0.0412,-0.0335,0.0014,-0.0037,0.0012,-0.0007,0.0007,-0.0008,0.0943,-0.1054,0.0799,-0.064,0.0812,-0.1013,0.1701,-0.0672,0.0713,-0.0793,0.0173,-0.0075,0.0082,-0.0229,0.0958,-0.0954,0.101,-0.1208,0.0275,-0.0061,0.146,-0.0888,0.2381,-0.1671,0.0692,-0.21,0.0711,-0.0728,0.0887,-0.0884,0.1132,-0.0819,0.1337,-0.1286,0.0725,-0.0319,0.0163,-0.0022,0.064,-0.0031,0.0799,-0.0909,0.0269,-0.0097,0.0087,-0.011,0.0073,-0.0109,0.0099,-0.0042,0.0312,-0.0079,0.0356,-0.0344,0.0439,-0.029,0.0251,-0.0168,0.0447,-0.016,0.0476,-0.009,0.0325,-0.019,0.0125,-0.0127,0.0054,-0.0001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0071,0,0.1373,-0.0867,0.0915,-0.0559,0.0472,-0.0218,0.0223,-0.0261,0.0553,-0.0314,0.0032,-0.1306,0.2556,-0.1984,0.1806,-0.1419,0.1214,-0.0594,0.0216,-0.012,0.0012,-0.0014,0.0011,-0.0005,0.0012,-0.0015,0.0013,-0.0015,0.0011,-0.0007,0.0014,-0.0009,0.0003,-0.0008,0.0002,-0.0007,0.2271,-0.0669,0.215,-0.0903,0.1777,-0.1978,0.1873,-0.1724,0.1673,-0.2178,0.0895,-0.0767,0.1253,-0.0777,0.0555,-0.082,0.1443,-0.0992,0.0864,-0.1005,0.0051,-0.0058,0.0014,-0.0013,0.1,-0.0484,0.421,-0.2246,0.0026,-0.1126,0.0188,-0.0043,0.1044,-0.1571,0.1226,0,0.0726,-0.0712,0.0549,-0.0506,0.003,-0.0127,0.1411,-0.0919,0.2172,-0.138,0.0666,-0.086,0.0073,-0.0239,0.016,-0.0116,0.0951,-0.0423,0.0691,-0.0495,0.0741,-0.0449,0.0091,-0.0068,0.0133,-0.0104,0.0501,-0.0223,0.0226,-0.0364,0.0254,-0.0187,0.0019,-0.0032,0.0884,-0.0364,0.0513,-0.0523,0.0259,-0.0243,0.0206,-0.0229,0.0336,-0.0427,0.1098,-0.0513,0.0484,-0.0315,0.0215,-0.0143,0.0005,-0.0019,0.0007,-0.0007,0.0001,-0.0007,0.0008,-0.0005,0.0005,-0.0008,0.0003,-0.001,0.0005,-0.0012,0.0007,-0.0008,0.0004,-0.0013,0.0003,-0.0004,0.0004,-0.0005,0.0003,-0.0005,0.0001,-0.0098,0.0085,-0.0514,0.0241,-0.0079,0.0017,-0.0024,0.0006,-0.0008,0.0688,-0.0115,0.0902,-0.1021,0.0849,-0.0709,0.0845,-0.1014,0.082,-0.0913,0.1263,-0.141,0.0156,-0.0783,0.1072,-0.0509,0.118,-0.0842,0.0481,-0.0375,0.0392,-0.0334,0.0019,-0.0018,0.0072,-0.0064,0.0078,-0.007,0.1313,-0.0823,0.0659,-0.1744,0.1548,-0.0839,0.0622,-0.0006,0.0054,-0.0066,0.0525,-0.0582,0.0802,-0.0555,0.0485,-0.0422,0.031,-0.0202,0.036,-0.0641,0.0128,-0.0232,0.0225,-0.0173,0.003,-0.003,0.0375,-0.04,0.0526,-0.0462,0.0016,-0.0019,0.0003,-0.0038,0.0002,-0.0139,0.0489,-0.0336,0.023,-0.0175,0.0185,-0.0214,0.0286,-0.0152,0.0056,-0.0046,0.0477,-0.0222,0,-0.0204,0.0199,-0.0208,0.0303,-0.0178,0.0185,-0.0097,0.0053,-0.0062,0.0131,-0.0094,0.0005,-0.0007,0.0005,-0.0006,0.0004,-0.0003,0.0005,-0.0006,0.0003,-0.0004,0.0005,-0.0002,0.0004,-0.0003,0.0004,-0.0006,0.0007,-0.0006,0.0007,-0.0006,0.0004,-0.0004,0.0003,-0.0004,0.0001,-0.0005,0.0003,-0.0005,0.0003,-0.0003,0.0003,-0.0004,0.0005,-0.0003,0.0006,-0.0006,0.0004,-0.0002,0.0004,-0.0002,0.0003,-0.0005,0.0006,-0.0002,0.0003,-0.0003,0.0004,-0.0002,0.0002,-0.0006,0.0004,-0.0005,0.0001,-0.0004,0.0003,-0.0003,0.0004,-0.0038,0.0003,-0.0005,0.0003,-0.0008,0.0005,-0.0017,0.0008,-0.0017,0.001,-0.0008,0.0008,-0.0008,0.0006,-0.0005,0.0002,-0.0007,0.0137,-0.0008,0.0834,-0.1096,0.1198,-0.1331,0.0933,-0.12,0.0394,-0.1179,0.0569,-0.0042,0.1535,-0.0499,0.0054,-0.0196,0.0015,-0.0059,0.065,-0.0309,0.0188,-0.0562,0.0612,0,0.0102,-0.001,0.0036,-0.0018,0.0018,-0.0018,0.0006,-0.002,0.0008,-0.001,0.0009,-0.0003,0.0003,-0.0077,0.1824,-0.1456,0.1932,-0.1369,0.1829,-0.1275,0.1254,-0.1538,0.0079,-0.0062,0.1447,-0.0316,0.172,-0.1155,0.0806,-0.0964,0.0856,-0.067,0.0088,-0.0055,0.0022,-0.0691,0,-0.0437,0.093,-0.0341,0.0232,-0.0657,0.0271,-0.0332,0.1424,-0.1091,0.0736,-0.0871,0.0679,-0.0589,0.0316,-0.0658,0.0594,-0.0217,0.0211,-0.0009,0.0078,-0.0008,0.0094,-0.0014,0.0044,-0.0053,0.0191,0,0.0055,-0.0008,0.001,-0.0007,0.0014,-0.0012,0.0013,-0.0015,0.0007,-0.0013,0.0011,-0.002,0.0003,-0.0009,0.0016,-0.0008,0.0076,-0.0027,0.1992,-0.1522,0.0586,-0.0547,0.0069,-0.0042,0.0085,-0.0013,0.0064,-0.0873,0.0718,-0.0332,0.0836,-0.0484,0.0833,-0.0632,0.0728,-0.1232,0.0751,-0.0786,0.083,-0.0748,0.0595,-0.1034,0.0331,-0.0162,0.0125,-0.0068,0.0045,-0.0083,0.1417,-0.0636,0.1339,-0.0691,0.1256,-0.0875,0.0699,-0.0863,0.0212,-0.0024,0.1045,-0.0065,0.0775,-0.0282,0.1101,-0.0855,0.0655,-0.1014,0.0497,-0.0977,0.0124,-0.004,0.0894,-0.0469,0.0295,-0.0077,0.08,-0.0752,0.1089,-0.1014,0.0133,-0.1903,0.0471,-0.1562,0.0073,-0.002,0.0028,-0.0162,0.0186,-0.0327,0.0248,-0.0759,0.0345,0,0.0402,-0.0675,0.025,-0.0753,0.1036,-0.0681,0.0046,-0.0116,0.0054,-0.0528,0.0305,-0.0574,0.0501,-0.0306,0.0076,-0.0124,0.0006,-0.0018,0.0785,-0.0459,0.0411,-0.0559,0.0455,-0.0211,0.0021,-0.0031,0.0005,-0.0004,0.0013,-0.0011,0.001,-0.0009,0.0008,-0.0003,0.0014,-0.0014,0.0004,-0.0024,0.001,-0.0018,0.0009,-0.0013,0.0012,-0.0004,0.0167,-0.0252,0.084,-0.0752,0.2445,-0.0217,0.2746,-0.2766,0.1851,-0.1821,0.0124,-0.011,0.06,-0.0848,0.078,-0.0729,0.068,-0.1402,0.0976,-0.1076,0.0936,-0.0954,0.1109,-0.0738,0.0085,-0.0481,0.0024,-0.0046,0.011,-0.007,0.0143,-0.0566,0.1168,-0.0963,0.0355,-0.1269,0.0009,-0.0011,0.018,-0.043,0.161,-0.0434,0.0525,-0.0609,0.0284,-0.0134,0.0015,-0.0036,0.002,-0.0013,0.0011,-0.0004,0.0005,-0.0003,0.0007,-0.0103,0.0569,-0.0188,0.0262,-0.0334,0.0118,-0.0184,0.0413,-0.0621,0.0814,-0.0759,0.0969,-0.0742,0.1665,-0.0261,0.0293,-0.0976,0.1541,-0.1701,0.0485,-0.0585,0.0766,-0.0821,0.0659,-0.102,0.0607,-0.0745,0.1156,-0.0826,0.0952,-0.0806,0.0762,-0.0648,0.0035,-0.0214,0.0065,-0.0541,0.075,-0.0747,0.0078,-0.0063,0.1027,-0.0656,0.0719,-0.0629,0.0624,-0.0438,0.0753,-0.0655,0.0617,-0.0447,0.0512,-0.0502,0.1015,-0.0754,0.0512,-0.0423,0.0393,-0.0466,0.0402,-0.0355,0.0824,-0.0823,0.1197,-0.065,0.1102,-0.069,0.0646,-0.039,0.0498,-0.0478,0.0954,-0.0497,0.0791,-0.0443,0.0057,-0.0022,0.0007,-0.001,0.002,-0.0011,0.0025,-0.0014,0.0017,-0.0024,0.001,-0.0017,0.0004,-0.0012,0.0008,-0.0002,0.0317,-0.0394,0.0218,-0.0528,0.1865,-0.1657,0.1237,-0.0691,0.0161,-0.0315,0.2161,-0.0535,0.0996,-0.0241,0.0811,-0.0946,0.0077,-0.0475,0.0076,-0.1096,0.0328,-0.0451,0.0736,-0.049,0.0224,-0.0359,0.0162,-0.0036,0.0157,-0.0237,0.0587,-0.0063,0.1404,-0.1223,0.1463,-0.0397,0.0116,-0.0114,0.0028,-0.0027,0.0282,-0.0143,0.0754,-0.0398,0.0666,-0.0445,0.0793,-0.0498,0.0248,-0.0204,0.0046,-0.0111,0.0006,-0.0009,0.0008,-0.0006,0.001,-0.0006,0.0006,-0.0009,0.0005,-0.0011,0.0009,-0.0016,0.002,-0.0018,0.0014,-0.0011,0.0008,-0.0011,0.0002,-0.0007,0.0003,-0.0007,0.0187,-0.0522,0.0082,-0.0298,0.0173,-0.0035,0.1398,-0.1562,0.1774,-0.1814,0.1037,-0.1177,0.0168,-0.0189,0.0778,-0.0585,0.0089,-0.0299,0.0444,-0.066,0.1766,-0.1832,0.0721,-0.0688,0.075,-0.1289,0.0819,-0.0994,0.0685,-0.1002,0.0522,-0.0819,0.1301,-0.1635,0.091,-0.0725,0.077,-0.0903,0.0251,-0.0237,0.0049,-0.0016,0.0006,-0.0025,0.0022,-0.001,0.0021,-0.0013,0.001,-0.001,0.0005,-0.0003,0.0163,-0.0001,0.0366,0,0.0059,-0.0593,0.1344,-0.1207,0.0741,-0.1247,0.0616,-0.0767,0.0586,-0.059,0.1281,-0.1102,0.0454,-0.1479,0.097,-0.0423,0.0796,-0.0659,0.1327,-0.1097,0.2062,-0.0896,0.2196,-0.0969,0.0854,-0.0875,0.0656,-0.033,0.0772,-0.0395,0.0767,-0.0602,0.0438,-0.0278,0.0014,-0.003,0.0138,-0.0009,0.0696,-0.0484,0.0762,-0.0739,0.0391,-0.0182,0.0018,-0.002,0.0008,-0.0007,0.001,-0.0006,0.0005,-0.0002,0.0002,-0.0004,0.0894,-0.0574,0.0651,-0.1682,0.0119,-0.0308,0.0176,-0.0249,0.0383,-0.029,0.1561,-0.137,0.1405,-0.0979,0.1293,-0.081,0.1013,-0.0767,0.0999,-0.0874,0.0686,-0.071,0.1095,-0.022,0.0331,-0.0202,0.1248,-0.0279,0.0869,-0.0432,0.0496,-0.0064,0.0614,-0.0433,0.0099,-0.0116,0.0835,-0.077,0.0842,-0.0205,0.0793,-0.0794,0.091,-0.0803,0.0469,-0.0863,0.0376,-0.0789,0.0657,-0.0459,0.0969,-0.0497,0.0997,-0.059,0.0663,-0.0506,0.0067,-0.0068,0.0019,-0.0009,0.0006,-0.0006,0.0007,-0.0005,0.0005,-0.0004,0.0004,-0.0004,0.0005,-0.0005,0.0007,-0.0004,0.0011,-0.0008,0.0007,-0.0006,0.0018,-0.0019,0.0008,-0.0014,0.0007,-0.0013,0.0029,-0.0005,0.0012,-0.0022,0.0007,-0.0008,0.0006,-0.0008,0.009,-0.0033,0.0241,-0.0595,0.1762,-0.1097,0.2354,-0.2079,0.2613,-0.2839,0.0514,-0.0705,0.1516,-0.164,0.0291,-0.0438,0.1928,-0.3599,0.1784,-0.2291,0.0154,-0.0354,0.0046,-0.0173,0.1869,-0.1647,0.0688,-0.0734,0.1386,-0.1722,0.2201,-0.1522,0.2145,-0.178,0.0207,-0.0084,0.0813,-0.0785,0.0909,-0.0963,0.0041,-0.0067,0.0731,-0.0943,0.066,-0.1127,0.0972,-0.1389,0.1285,-0.0845,0.0664,-0.0735,0.0146,-0.0248,0.0015,-0.0012,0.0037,-0.0039,0.0032,-0.0021,0.0015,-0.0025,0.0021,-0.0006,0.0004,-0.0004,0.0178,-0.0176,0.432,-0.0964,0.0611,-0.1056,0.0048,-0.0015,0.0277,-0.0082,0.0853,-0.0769,0.0985,-0.1156,0.1043,-0.1232,0.0629,-0.0658,0.0462,-0.0332,0.0452,-0.0266,0.0044,-0.0285,0.0033,-0.0007,0.0724,-0.042,0.0953,-0.0633,0.0342,-0.0654,0.0331,-0.0305,0.0038,-0.0095,0.0567,-0.023,0.0051,-0.0359,0.0013,-0.0289,0.0728,-0.0724,0.0739,-0.05,0.0968,-0.0751,0.1077,-0.0867,0.0334,-0.0227,0.0308,-0.0301,0.0511,-0.0127,0.0075,-0.0038,0.0005,-0.0005,0.0006,-0.0011,0.0014,-0.0003,0.001,-0.0014,0.0014,-0.0006,0.0018,-0.0004,0.0004,-0.0005,0.0202,-0.0003,0.0256,-0.043,0.1779,-0.1319,0.2148,-0.15,0.0048,-0.1722,0.1482,-0.0352,0.1445,-0.2617,0.1314,-0.0883,0.0434,-0.0309,0.0787,-0.0622,0.0855,-0.0467,0.1061,-0.0646,0.0292,-0.0707,0.0023,-0.0155,0.1189,-0.0654,0.1253,-0.1268,0.0625,-0.0814,0.0581,-0.0615,0.008,-0.0063,0.0749,-0.0592,0.104,-0.0639,0.0167,-0.0317,0.032,-0.0151,0.009,-0.0142,0.0546,-0.1391,0.0668,-0.0427,0,-0.0522,0.1859,-0.1335,0.048,-0.0228,0.0162,-0.0121,0.013,-0.0731,0.0685,0,0.0873,-0.0733,0.0142,-0.0126,0.0011,-0.0052,0.0086,-0.02,0.0348,-0.0224,0.0161,-0.015,0.0112,-0.0196,0.1555,-0.1275,0.1137,-0.1106,0.0567,-0.0679,0.0785,-0.0609,0.1386,-0.1057,0.0672,-0.0471,0.0983,-0.0831,0.1471,-0.1735,0.0928,-0.0935,0.0552,-0.0632,0.0329,-0.0336,0.0335,-0.0354,0.042,-0.0354,0.0012,-0.0202,0.0003,-0.0017,0.0008,-0.003,0.0007,-0.0022,0.0019,-0.0012,0.0015,-0.001,0.0013,-0.0015,0.0005,-0.0004,0.0004,-0.0005,0.0003,-0.0002,0.0168,-0.0285,0.0171,-0.0012,0.0011,-0.0003,0.0153,-0.0085,0.0727,-0.0352,0.136,-0.109,0.1242,-0.1283,0.2474,-0.1989,0.171,-0.2322,0.1714,-0.0881,0.1403,-0.1391,0.1638,-0.1156,0.0152,-0.014,0.0339,-0.0089,0.0842,-0.0876,0.0675,-0.0617,0.0498,-0.0449,0.1119,-0.0849,0.1435,-0.1063,0.1262,-0.0516,0.0648,-0.003,0.1017,-0.013,0.1356,-0.0119,0.2373,-0.2023,0.1439,-0.0239,0.0534,-0.017,0.2168,-0.2745,0.1071,-0.228,0.0151,-0.0352,0.0067,-0.0149,0.0087,-0.0032,0.0483,-0.0587,0.0536,-0.0464,0.005,-0.0215,0.004,-0.0451,0.071,-0.0662,0.0453,-0.0554,0.0614,-0.0403,0.0232,-0.0337,0.0595,-0.0807,0.0561,-0.056,0.1054,-0.0583,0.0609,-0.0422,0.0148,-0.0253,0.0248,-0.0216,0.0116,-0.017,0.002,-0.0015,0.0016,-0.0011,0.0009,-0.0014,0.001,-0.0011,0.0011,-0.0011,0.0012,-0.0011,0.0006,-0.0008,0.0008,-0.0008,0.0007,-0.0005,0.0004,-0.0006,0.0006,-0.0006,0.0009,-0.0006,0.001,-0.0006,0.0003,-0.0006,0.0004,-0.0008,0.0004,-0.0003,0.0005,-0.0006,0.0007,-0.001,0.0006,-0.0007,0.0003,-0.0005,0.0004,-0.0004,0.0003,-0.0004,0.0004,-0.0006,0.0003,-0.0003,0.0003,-0.0004,0.0004,-0.0005,0.0004,-0.0003,0.0005,-0.0003,0.0003,-0.0005,0.0005,-0.0002,0.0005,-0.0004,0.0004,-0.0005,0.0004,-0.0006,0.0004,-0.0002,0.0001,-0.0004,0.0005,-0.0004,0.0003,-0.0003,0.0016,-0.0012,0.0013,-0.0013,0.0008,-0.0005,0.0005,-0.0004,0.0002,-0.0004,0.0008,-0.0007,0.0002,-0.001,0.0003,-0.0003,0.0003,-0.0004,0.0002,-0.0003,0.0002,-0.0004,0.0005,-0.0007,0.0005,-0.0003,0.0005,-0.0007,0.0023,-0.0006,0.0024,-0.0025,0.0024,-0.0018,0.0013,-0.0013,0.0009,-0.0012,0.0016,-0.0015,0.0017,-0.0016,0.001,-0.0012,0.0009,-0.0008,0.0013,-0.0008,0.001,-0.0016,0.0007,-0.0012,0.0007,-0.0002,0.0005,-0.0007,0.001,-0.001,0.0006,-0.0007,0.0067,-0.0142,0,-0.1392,0,-0.1376,0.0991,-0.0915,0.1232,-0.1027,0.0244,-0.0641,0.0754,-0.0662,0.07,-0.0775,0.0775,-0.0688,0.0692,-0.0717,0.3048,-0.0842,0.1987,-0.0675,0.0857,-0.0739,0.1368,-0.113,0.0358,-0.0429,0.004,-0.0109,0.0228,-0.024,0.0977,-0.1801,0.037,-0.053,0.1341,-0.1037,0.1058,-0.0697,0.0221,-0.0739,0.0323,-0.0262,0.0155,-0.0093,0.0011,-0.0006,0.0008,-0.0013,0.002,-0.0013,0.0013,-0.0007,0.0004,-0.0004,0.0007,-0.0007,0.001,-0.0002,0.0009,-0.0314,0.0273,-0.2675,0.1844,-0.2842,0.1045,-0.1454,0.066,-0.0168,0.2185,-0.1316,0.1251,-0.2081,0.043,-0.055,0.1941,-0.0775,0.1628,-0.1879,0.1426,-0.051,0.1754,-0.2222,0.1545,-0.0979,0.0859,-0.0595,0.0093,-0.0313,0.081,-0.0781,0.0434,-0.0462,0.0489,-0.0148,0.008,-0.0066,0.0014,-0.0006,0.0012,-0.0007,0.0003,-0.0006,0.0004,-0.0004,0.0006,-0.0011,0.0307,-0.0117,0.0365,-0.047,0.0248,-0.0296,0.0017,-0.0397,0.0353,-0.0088,0.0343,-0.0903,0.0955,-0.1218,0.0524,-0.0763,0.0957,-0.0849,0.1522,-0.1368,0.0097,-0.0066,0.0401,-0.0485,0.0772,-0.0734,0.0738,-0.0816,0.0843,-0.0484,0.0848,-0.0879,0.0035,-0.0835,0.0036,-0.0035,0.0042,-0.0945,0.0938,-0.1016,0.1074,-0.0908,0.0498,-0.0514,0.0467,-0.042,0.0238,-0.0345,0.0257,-0.0094,0.0141,-0.0111,0.0124,-0.0049,0.0934,-0.0484,0.1171,-0.0612,0.0369,-0.071,0.0369,-0.0464,0.0044,-0.0015,0.0258,-0.0656,0.2596,-0.2396,0.0965,-0.0618,0.0652,-0.1616,0.0434,-0.0623,0.1016,-0.0547,0.005,-0.002,0.0358,-0.0492,0.0503,-0.054,0.002,-0.0008,0.0007,-0.0014,0.0004,-0.0005,0.0089,-0.0239,0.0034,-0.0335,0.0184,-0.0122,0.0015,-0.0068,0.0005,-0.0004,0.0003,-0.0004,0.0002,-0.0005,0.0002,-0.0007,0.0003,-0.0005,0.0006,-0.0003,0.0008,-0.0003,0.0006,-0.0008,0.0007,-0.0002,0.0003,-0.0007,0.0006,-0.0006,0.0004,-0.0007,0.0002,-0.0005,0.0006,-0.0005,0.0003,-0.0003,0.0003,-0.0004,0.001,-0.0005,0.0163,-0.0247,0.0089,-0.0123,0.0432,-0.1502,0.0966,-0.1864,0.0753,-0.0589,0.1364,-0.1208,0.1391,-0.0944,0.1238,-0.076,0.0024,-0.0067,0.0013,-0.0013,0.0329,-0.001,0.1249,-0.1341,0.0937,-0.1277,0.0654,-0.0892,0.0478,-0.0647,0.0212,-0.005,0.001,-0.0018,0.0005,-0.0005,0.0002,-0.0002,0.0003,-0.0006,0.0008,-0.0141,0.1745,-0.1455,0.2756,-0.1936,0.2373,-0.2317,0.0415,-0.1363,0.0511,-0.0565,0.0116,-0.0219,0.0893,-0.0405,0.0399,-0.0087,0.0099,-0.0022,0.0218,-0.0356,0.0619,-0.0509,0.0653,-0.0823,0.1108,-0.1211,0.3037,-0.2549,0.2456,-0.0591,0,-0.0635,0,-0.0204,0.001,-0.0015,0.0011,-0.0015,0.0005,-0.0003,0.0002,-0.0009,0,-0.0034,0.0034,-0.0046,0.0082,-0.0067,0.1162,-0.1319,0.1149,-0.1195,0.2422,-0.251,0.1522,-0.1596,0.189,-0.1535,0.0356,-0.0238,0.0294,-0.1433,0.1297,-0.1963,0.0634,-0.0407,0.0252,-0.0778,0.0939,-0.0748,0.0845,-0.0576,0.0051,-0.0584,0.0114,-0.0045,0.0624,-0.0422,0.0365,-0.0348,0.0616,-0.0475,0.0277,-0.0455,0.0429,-0.0252,0.0242,-0.0148,0.0154,-0.1432,0.1508,0,0.1047,-0.1289,0.0651,-0.0759,0.059,-0.0935,0.0439,-0.0778,0.1187,-0.003,0.0532,-0.0035,0.011,-0.0025,0.1594,-0.1533,0.0897,-0.1622,0.0056,-0.0342,0.0231,-0.0023,0.0162,-0.0048,0.1147,-0.0697,0.0084,-0.0027,0.0722,-0.0356,0.089,-0.0897,0.0847,-0.0812,0.0798,-0.0622,0.0526,-0.0491,0.0106,-0.0065,0.001,-0.0015,0.0721,-0.0336,0.0809,-0.0206,0.0105,-0.026,0.0054,-0.0107,0.0135,-0.0138,0.0544,-0.0178,0.159,-0.0406,0.1486,-0.0966,0.0228,-0.0872,0.1645,-0.0195,0.0115,-0.0061,0.0592,-0.0399,0.061,-0.0433,0.0014,-0.0033,0.0012,-0.0014,0.0002,-0.0002,0.0015,-0.0005,0.0575,-0.0155,0.0427,-0.0103,0.0049,-0.0041,0.0007,-0.0007,0.0003,-0.0003,0.0005,-0.0002,0.0005,-0.0005,0.0006,-0.0004,0.0005,-0.0002,0.0003,-0.0003,0.0004,-0.0003,0.0004,-0.0004,0.0004,-0.0005,0.0006,-0.0006,0.0007,-0.0006,0.0004,-0.0004,0.0004,-0.0004,0.0001,-0.0005,0.0008,-0.0006,0.0008,-0.0002,0.0005,-0.0004,0.0004,-0.0008,0.0012,-0.0003,0.0016,-0.0012,0.0005,-0.0011,0.0059,-0.0057,0.0423,-0.0275,0.0131,-0.0027,0.169,-0.0415,0.1821,-0.3505,0.0327,-0.0223,0.0807,-0.0349,0,-0.0332,0.1473,-0.0865,0.1216,-0.2141,0.0659,-0.0608,0.0645,-0.0416,0.108,-0.0501,0.0827,-0.0796,0.0566,-0.0272,0.0324,-0.0442,0.0278,-0.0126,0.204,-0.0545,0.1435,-0.1061,0.0213,-0.0123,0.0034,-0.0016,0.1032,-0.0328,0,-0.0987,0.0767,-0.0977,0.1787,-0.0757,0.0795,-0.0716,0.0495,-0.0219,0.0017,-0.0039,0.0009,-0.0013,0.0008,-0.0013,0.0006,-0.0016,0.0016,-0.0017,0.0009,-0.001,0.0003,-0.0006,0.0004,-0.0007,0.0004,-0.0003,0.014,-0.027,0.127,-0.1292,0.0712,-0.0885,0.0823,-0.0977,0.1174,-0.0948,0.0389,-0.0687,0.0445,-0.0491,0.0032,-0.0034,0.0019,-0.0021,0.0206,-0.0051,0.0306,-0.2001,0.0549,-0.1085,0.0725,-0.0532,0.1099,-0.1263,0.0971,-0.1244,0.1233,-0.1156,0.0746,-0.0567,0.0817,-0.0537,0.0667,-0.0501,0.0729,-0.0912,0.0785,-0.0643,0.0455,-0.0411,0.0429,-0.0312,0.0322,-0.0261,0.0238,-0.0232,0.0067,-0.0031,0.0007,-0.0006,0.0018,-0.001,0.0017,-0.0019,0.0009,-0.0014,0.0006,-0.0007,0.0005,-0.0004,0.0003,-0.0002,0.0042,-0.0108,0.2261,-0.0986,0.2074,-0.1232,0.0969,-0.1037,0.119,-0.1004,0.0826,-0.0911,0.1167,-0.2322,0.2025,-0.1421,0.0388,-0.0351,0.0366,-0.0377,0.1117,-0.0944,0.0566,-0.1406,0.0828,-0.2668,0.1095,-0.1755,0.0927,-0.1451,0.1235,-0.069,0.0659,-0.0571,0.0443,-0.0476,0.0857,-0.0767,0.0626,-0.0477,0.0915,-0.0493,0.0927,-0.0801,0.0173,-0.0189,0.0838,-0.0694,0.0724,-0.081,0.0489,-0.0306,0.0048,-0.002,0.0002,-0.0006,0.0007,-0.0012,0.0016,-0.0023,0.0007,-0.0017,0.0011,-0.0014,0.0008,-0.0006,0.0015,-0.0017,0.0155,-0.0123,0.0144,-0.0308,0.0375,-0.0254,0.0696,-0.0568,0.0701,-0.0557,0.0851,-0.034,0.1039,0,0.1049,-0.0111,0.162,-0.1178,0.1176,-0.1221,0.0128,-0.0201,0.1402,-0.0172,0,-0.1491,0.0775,-0.0856,0.1166,-0.1404,0.0665,-0.0663,0.1031,-0.1147,0.0039,-0.0042,0.0304,-0.0526,0.0804,-0.0921,0.1008,-0.0519,0.0516,-0.0366,0.0459,-0.0533,0.0249,-0.0306,0.0275,-0.0123,0.0008,-0.0031,0.057,-0.0683,0.0945,-0.1057,0.1128,-0.0809,0.0633,-0.0525,0.0279,-0.0182,0.0399,-0.0593,0.0041,-0.0022,0.0516,-0.0595,0.0531,-0.0669,0.0785,-0.0399,0.127,-0.063,0.0504,-0.0376,0.0497,-0.0957,0.1465,-0.0731,0.1063,-0.0331,0.0074,-0.0034,0.0013,-0.0011,0.0008,-0.0008,0.0013,-0.0008,0.0015,-0.0016,0.0016,-0.0012,0.0008,-0.0009,0.0017,-0.0034,0.0083,-0.008,0.1591,-0.112,0.1501,-0.1439,0.1984,-0.3003,0.0673,-0.1571,0.3027,-0.1481,0.0439,-0.1214,0.005,-0.0063,0.1683,-0.1021,0.1064,-0.1508,0.1677,-0.1363,0.069,-0.0701,0.0614,-0.0714,0.0521,-0.0094,0.0127,-0.0041,0.017,-0.015,0.0468,-0.0259,0,-0.0321,0.1484,-0.2198,0.1297,-0.0874,0.0559,-0.0365,0.0398,-0.0439,0.0307,-0.0308,0.0177,-0.0091,0.0011,-0.0011,0.0019,-0.0019,0.0021,-0.0014,0.0015,-0.0026,0.001,-0.0009,0.0007,-0.0008,0.0007,-0.0004,0.0109,-0.0217,0.0749,-0.0511,0.0309,-0.0254,0.1495,-0.0962,0.1007,-0.0529,0.0264,-0.0263,0.1076,-0.0414,0.1242,-0.0965,0.0886,-0.0678,0.0752,-0.0642,0.0112,-0.004,0.0341,-0.196,0.2954,-0.1185,0.2159,-0.2289,0.1519,-0.143,0.015,-0.0159,0.1788,-0.1033,0.158,-0.1789,0.0167,-0.0816,0.067,-0.0584,0.0142,-0.0017,0.0023,-0.0011,0.2813,-0.0374,0.0992,-0.0409,0.0041,-0.003,0.1695,-0.1279,0.0406,-0.1225,0.1568,-0.1059,0.0847,-0.0797,0.1281,-0.0635,0.0165,-0.034,0.0016,-0.0029,0.0012,-0.0008,0.0004,-0.0007,0.0048,-0.0034,0.059,-0.0289,0.005,-0.0205,0.0052,-0.0022,0.0004,-0.0013,0.0003,-0.0006,0.0003,-0.0004,0.0003,-0.0008,0.0003,-0.0009,0.0002,-0.0006,0.0006,-0.0006,0.0005,-0.0011,0.0009,-0.0006,0.0007,-0.0009,0.0014,-0.0005,0.0006,-0.0009,0.0009,-0.0007,0.0006,-0.0019,0.001,-0.0013,0.001,-0.0009,0.0007,-0.0005,0.0007,-0.0393,0.143,-0.1195,0.1557,-0.0206,0.0497,-0.0176,0.1919,-0.114,0.2226,-0.1624,0.149,-0.3156,0.2765,-0.2484,0.0771,-0.1243,0.0957,-0.0283,0.2559,-0.0729,0.2863,-0.0671,0.0647,-0.0945,0.0863,-0.1162,0.0469,-0.1297,0.0865,-0.1256,0.0735,-0.1031,0.199,-0.108,0.2394,-0.0959,0.0608,-0.0789,0.0809,-0.0403,0.0031,-0.0024,0.0017,-0.0008,0,0,0,0,0,0,0,0,0.0043,-0.0027,0.0025,-0.0037,0.1875,-0.2215,0.3192,-0.0592,0.0457,-0.0096,0.0048,-0.0035,0.0153,-0.0121,0.0599,-0.0282,0.087,-0.0656,0.1125,-0.0817,0.02,-0.0927,0.1284,-0.0046,0.1477,-0.1473,0.1139,-0.1039,0.0159,-0.0348,0.0033,-0.0029,0.002,-0.0012,0.0012,-0.0018,0.0006,-0.0012,0.0012,-0.0003,0.0007,-0.0002,0.002,-0.0004,0.0508,-0.0121,0.1534,0,0.0519,-0.0379,0.1706,-0.1283,0.1301,-0.169,0.0751,-0.1287,0.0783,-0.1183,0.183,-0.0829,0.0453,-0.219,0.0519,-0.1171,0.0909,-0.1007,0.0086,-0.0223,0.0078,-0.0139,0.1055,-0.0695,0.0203,-0.018,0.0031,-0.0011,0.0839,-0.1357,0.1179,-0.1527,0.061,-0.0765,0.0816,-0.1093,0.0592,-0.0933,0.0722,-0.0842,0.102,-0.1907,0.0491,-0.1531,0.0488,-0.0968,0.0043,-0.0399,0.0063,-0.0022,0.0446,-0.032,0.0265,-0.0792,0.1228,-0.1329,0.1451,-0.102,0.0185,-0.0172,0.2347,-0.043,0.1898,-0.0079,0.0035,-0.01,0.1676,-0.0968,0.2055,-0.0477,0.044,-0.0669,0.1096,-0.0814,0,-0.0645,0.0527,-0.0713,0.0697,-0.034,0.0065,-0.0052,0.1289,-0.0672,0.1534,-0.0976,0.036,-0.0615,0.1159,-0.0532,0.0741,-0.0345,0.0048,-0.0048,0.0014,-0.0017,0,0,0,0,0,0,0,0,0.0002,-0.0007,0.0008,-0.0008,0.0006,-0.0003,0.0737,-0.0481,0.0883,-0.1104,0.2167,-0.1498,0.1157,-0.145,0.1012,-0.1034,0.0879,-0.0299,0.075,-0.0899,0.1671,-0.1307,0.0999,-0.0294,0.0125,-0.025,0.0059,-0.0054,0.0164,-0.0081,0.0969,-0.0741,0.1776,-0.2462,0.1161,-0.0312,0.0481,-0.0129,0.1193,-0.0806,0.0629,-0.0426,0.0013,-0.0152,0.0559,-0.0558,0.1709,-0.0625,0.0327,-0.0855,0.0714,-0.0763,0.0329,-0.0619,0.047,-0.0356,0.0644,-0.0522,0.0185,-0.0299,0.032,-0.0353,0.0177,-0.02,0.0298,-0.0419,0.0306,-0.0294,0.0187,-0.0134,0.0008,-0.0034,0.0005,-0.0032,0.0002,-0.0003,0.0005,-0.0005,0.0002,-0.0004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0014,-0.0005,0.0019,-0.0005,0.0004,-0.0004,0.0033,-0.0015,0.0109,-0.0075,0.2056,-0.1848,0.0144,-0.147,0.2472,-0.0869,0.1203,-0.0418,0.108,-0.1188,0.089,-0.08,0.0307,-0.0532,0.0685,-0.1486,0.0606,-0.0684,0.07,-0.0802,0.0682,-0.1002,0.0626,-0.0906,0.0633,-0.0809,0.1864,-0.0865,0.0819,-0.1598,0.0257,-0.0545,0.0763,-0.0256,0.0029,-0.0023,0.0013,-0.0016,0.001,-0.0011,0.0007,-0.0008,0.0009,-0.0007,0.0044,-0.0007,0.0258,-0.0305,0.0793,-0.0651,0.1256,-0.1799,0.2883,-0.2109,0.1749,-0.2008,0.1698,-0.1905,0.0583,-0.0283,0.0288,-0.0313,0.0093,-0.0651,0.0729,-0.0864,0.0889,-0.1258,0.0083,-0.0026,0.0336,-0.015,0.0032,-0.0067,0.1621,-0.1103,0.2478,-0.1562,0.1637,-0.1482,0.157,-0.1187,0.1228,-0.0928,0.1034,-0.0914,0.0529,-0.0378,0.1099,-0.0658,0.0683,-0.0572,0.0082,-0.0074,0.003,-0.0021,0.1051,-0.1069,0.121,-0.1233,0.0791,-0.0637,0.0068,-0.0082,0.0006,-0.0005,0.0009,-0.0021,0.0011,-0.0009,0.0006,-0.0015,0.0006,-0.0007,0.0009,-0.0002,0.0007,-0.0013,0.0002,-0.0003,0.0114,-0.0201,0.006,-0.0023,0.0056,-0.0242,0.1072,-0.0749,0.0861,-0.0656,0.1318,-0.1952,0.2266,-0.1227,0.1367,-0.1363,0.1948,-0.1434,0.0563,-0.0373,0.0401,-0.0229,0.0219,-0.0451,0.0054,-0.0753,0.0958,-0.0988,0.0849,-0.1135,0.2232,-0.1442,0.0514,-0.0072,0.0048,-0.2263,0.1794,-0.1119,0.1268,-0.0576,0.204,-0.1148,0.2133,-0.1445,0.1547,-0.1446,0.1564,-0.2635,0.1924,-0.1686,0.0469,-0.0661,0.0103,-0.0217,0.1188,-0.0295,0.0304,-0.0183,0.1871,-0.2304,0.2851,-0.1368,0.093,-0.2437,0.1162,-0.0081,0.0884,-0.0452,0.0321,-0.0679,0.0052,-0.0135,0.0035,-0.0043,0.0004,-0.002,0.0035,-0.0109,0.0375,-0.0454,0.011,-0.0078,0.0012,-0.0011,0.0006,-0.0004,0.0003,-0.0004,0.0004,-0.0005,0.0006,-0.0005,0.0005,-0.0007,0.0003,-0.0004,0.0004,-0.0006,0.0011,-0.0012,0.0008,-0.0011,0.0032,-0.0004,0.002,-0.0011,0.0009,-0.0005,0.0008,-0.0005,0.0023,-0.0017,0.0088,-0.007,0.0136,-0.0046,0.1436,-0.1002,0.1437,-0.1208,0.1108,-0.1757,0.0326,-0.0551,0.0222,-0.017,0.0068,-0.0024,0.057,-0.0029,0.2383,-0.1568,0.1536,-0.1075,0.0694,-0.0766,0.0455,-0.0135,0.0027,-0.0015,0.0015,-0.0028,0.001,-0.0018,0.0006,-0.0003,0.0029,-0.0012,0.0057,-0.009,0.0312,-0.023,0.0276,-0.0305,0.0287,-0.0506,0.0845,-0.0489,0.1408,-0.0622,0.149,-0.0796,0.0157,-0.0136,0.1322,-0.1251,0.1211,-0.0364,0.2403,-0.1966,0.2223,-0.0462,0.1248,-0.0517,0.0638,-0.0727,0.0764,-0.0937,0.0255,-0.1339,0.0094,0,0.0245,-0.0296,0.0594,-0.0115,0.0879,0,0.067,-0.0343,0.0033,-0.005,0.2169,-0.1505,0.2017,-0.2772,0.2351,-0.1531,0.1059,-0.0095,0.1183,-0.0503,0.1459,-0.0169,0.0137,-0.0071,0.141,-0.1216,0.0209,-0.0413,0.0034,-0.1505,0.0631,-0.184,0.1832,-0.154,0.1973,-0.0765,0.1383,-0.0994,0.145,-0.0491,0.0376,-0.0137,0.0021,-0.0012,0.0032,-0.0027,0.0037,-0.0024,0.0022,-0.0008,0.004,-0.0058,0.0036,-0.0049,0.0014,-0.0023,0.0004,-0.0003,0.0556,-0.0711,0.1312,-0.1232,0.1927,-0.16,0.2211,-0.1766,0.215,-0.0888,0.2349,-0.1443,0.2004,-0.2778,0.0137,-0.0099,0.1224,-0.1738,0.115,-0.1354,0.1038,-0.1446,0.0936,-0.1425,0.0869,-0.159,0.2306,-0.0847,0.1577,-0.23,0.3675,-0.264,0.1305,-0.1234,0.2627,-0.3716,0.0694,-0.086,0.0796,-0.0476,0.091,-0.0924,0.1537,-0.1061,0.199,-0.1665,0.1906,-0.1189,0.077,-0.082,0.1214,-0.0682,0.0105,-0.0525,0.1885,-0.0194,0.1659,-0.0792,0.0144,-0.05,0.1688,-0.1441,0.1044,-0.1161,0.1319,-0.1339,0.1935,-0.137,0.1506,-0.0752,0,-0.0805,0.0034,-0.0028,0.0009,-0.0019,0.0003,-0.0006,0.0779,-0.047,0.025,-0.0118,0.0029,-0.0051,0.0006,-0.004,0.0004,-0.0005,0.0002,-0.0005,0.0002,-0.0002,0.0004,-0.0004,0.0007,-0.0003,0.0002,-0.0005,0.0004,-0.0006,0.0003,-0.0005,0.0005,-0.0003,0.0005,-0.0006,0.0008,-0.0005,0.0008,-0.0006,0.0009,-0.0013,0.0009,-0.0004,0.0003,-0.0007,0.0013,-0.0006,0.0005,-0.0009,0.0008,-0.0006,0.0006,-0.0004,0.0004,-0.0004,0.0004,-0.0004,0.0003,-0.0006,0.0005,-0.0004,0.0005,-0.0004,0.0001,-0.0006,0.0003,-0.0028,0.0267,-0.0428,0.0537,-0.0721,0.1588,-0.0852,0.0824,-0.1006,0.0154,-0.0081,0.1433,-0.0786,0.0609,-0.0382,0.0283,-0.0311,0.0261,-0.0242,0.0338,-0.0214,0.0009,-0.0243,0.0041,-0.0014,0.0657,-0.0665,0.0445,-0.0311,0.0939,-0.0561,0.1017,-0.0799,0.008,-0.0281,0.0012,-0.0019,0.103,-0.0438,0.0243,-0.0195,0.025,-0.0249,0.0235,-0.0211,0.0392,-0.0175,0.0484,-0.0155,0.0025,-0.012,0.0086,-0.0116,0.0264,-0.0188,0.0184,-0.0195,0.0323,-0.0265,0,-0.0589,0.0642,-0.0656,0.0376,-0.0071,0.1054,-0.0313,0.0496,-0.0382,0.0332,-0.0243,0.0194,-0.0156,0.019,-0.0159,0.027,-0.0219,0.0155,-0.014,0.0179,-0.0125,0.0094,-0.0102,0.0005,-0.0005,0.0007,-0.0008,0.0002,-0.0004,0.0003,-0.0006,0.0007,-0.0007,0.0003,-0.0007,0.0003,-0.0006,0.0007,-0.0004,0.0005,-0.0006,0.0009,-0.0007,0.001,-0.0009,0.0011,-0.0007,0.0008,-0.0009,0.0007,-0.0007,0.0004,-0.0005,0.0009,-0.0018,0.0009,-0.0011,0.001,-0.0009,0.0008,-0.0004,0.001,-0.0008,0.0008,-0.0007,0.001,-0.0006,0.0004,-0.0006,0.0007,-0.0002,0.0036,-0.0014,0.004,-0.0021,0.0032,-0.0021,0.003,-0.0029,0.0024,-0.0017,0.1204,-0.0573,0.1507,-0.1264,0.1577,-0.1873,0.0466,-0.1068,0.2299,-0.2052,0.1885,-0.1455,0.0485,-0.0099,0.0292,-0.0129,0.0117,-0.0025,0.1451,-0.0536,0.0311,-0.203,0.0798,-0.0444,0.1347,-0.1304,0.0814,-0.0892,0.0633,-0.0897,0.0402,-0.0531,0.0267,-0.0156,0.0196,-0.02,0.1889,-0.1493,0.2002,-0.2073,0.1143,-0.1031,0.0984,-0.0796,0.0942,-0.1121,0.1001,-0.1217,0.1263,-0.2095,0.0787,-0.049,0.1034,-0.0715,0.1115,-0.128,0.1242,-0.0875,0.0166,-0.0028,0.0211,-0.0029,0.1295,-0.0747,0.1562,-0.0809,0.0136,-0.0517,0.0033,-0.0019,0.0026,-0.0024,0.0016,-0.002,0.0024,-0.0023,0.0032,-0.0013,0.0021,-0.0025,0.0021,-0.0019,0.0014,-0.0023,0.0011,-0.0015,0.0009,-0.0012,0.0115,-0.0005,0.0753,0,0.0823,-0.1585,0.1565,-0.17,0.119,-0.0932,0.0733,-0.0283,0.1718,-0.1132,0.1595,-0.1445,0.0733,-0.0589,0.0592,-0.0286,0.0438,-0.0362,0.0581,-0.0242,0.042,-0.0464,0.0565,-0.171,0.0455,-0.1172,0.046,-0.0302,0.0591,-0.0489,0.0588,-0.06,0.0709,-0.0543,0.0719,-0.0638,0.0257,-0.0183,0.1001,-0.1355,0.0341,-0.0062,0.1454,-0.0847,0.0142,-0.0304,0.0455,-0.0181,0.0346,-0.0189,0.0374,-0.0158,0.0134,-0.0085,0.0552,-0.0043,0.1566,-0.111,0.1843,-0.1193,0.0302,-0.0775,0.0127,-0.0177,0.0799,-0.0482,0.128,-0.0858,0.0532,-0.0538,0.0526,-0.0361,0.0409,-0.0341,0.0361,-0.0229,0.0249,-0.0247,0.0253,-0.009,0.0325,-0.0242,0.0675,-0.0181,0.055,-0.0982,0.1106,-0.1481,0.1409,-0.1239,0.0017,-0.0357,0.1468,-0.1323,0.1246,-0.0793,0.0267,-0.0178,0.002,-0.0054,0.0009,-0.0016,0.047,-0.0743,0.1318,-0.1011,0.0149,-0.0071,0.0024,-0.0022,0.0008,-0.0004,0.0004,-0.0004,0.0005,-0.0006,0.0005,-0.0002,0.0007,-0.0001,0.0004,-0.0002,0.0012,-0.0005,0.0018,-0.0011,0.0026,-0.0016,0.0019,-0.0016,0.0022,-0.0018,0.0017,-0.0017,0.0017,-0.0018,0.0019,-0.002,0.0018,-0.0013,0.0011,-0.0001,0.0011,-0.0009,0.0006,-0.0012,0.001,-0.0011,0.0005,-0.0011,0.0006,-0.0005,0.0007,-0.0006,0.0004,-0.0006,0.0004,-0.0006,0.0004,-0.0008,0.0007,-0.0002,0.0003,-0.0008,0.0005,-0.0012,0.0008,-0.0005,0.0006,-0.0003,0.0008,-0.0007,0.0007,-0.001,0.0005,-0.0005,0.0006,-0.0006,0.0007,-0.0002,0.0008,-0.0004,0.0005,-0.0005,0.0307,-0.0167,0.2124,-0.1394,0.0878,-0.0661,0.2617,-0.1238,0.1812,-0.2873,0.4604,-0.3613,0.4669,-0.4399,0.2048,-0.1228,0.0276,-0.0402,0.1332,-0.2004,0.1241,-0.0291,0.0725,-0.0666,0.4553,-0.2191,0.3079,-0.4244,0.0719,-0.2303,0.0352,-0.133,0.0103,-0.0468,0.0015,-0.0015,0.2064,-0.1836,0.2008,-0.269,0.0226,-0.0746,0.0168,-0.0194,0.0122,-0.0097,0.0072,-0.0093,0.0025,-0.0055,0.0033,-0.0056,0.0005,-0.0006,0.0006,-0.0005,0.0004,-0.0012,0.001,-0.0007,0.001,-0.0007,0.0007,-0.0009,0.0007,-0.0003,0.0008,-0.0007,0.0005,-0.0006,0.0005,-0.0006,0.0005,-0.0006,0.0011,-0.0006,0.0008,-0.0009,0.0005,-0.0003,0.0004,-0.0008,0.0004,-0.0005,0.0008,-0.0005,0.0879,-0.0451,0.0758,-0.0835,0.0625,-0.0884,0.0611,-0.074,0.0677,-0.0722,0.0618,-0.0747,0.0952,-0.0554,0.0491,-0.076,0.1127,-0.0316,0.056,-0.0442,0.0087,-0.0013,0.0005,-0.0011,0.0008,-0.0014,0.0011,-0.0004,0.0009,-0.0012,0.0006,-0.0011,0.0006,-0.0004,0.0455,-0.0007,0.0976,-0.0779,0.0959,-0.1968,0.0998,-0.1789,0.1977,-0.1697,0.0585,-0.2227,0.084,-0.0754,0.1015,-0.0815,0.0252,-0.0306,0.0845,-0.042,0.0472,-0.0389,0.0176,-0.0142,0.0895,-0.1058,0.0832,-0.1033,0.0785,-0.0828,0.0666,-0.0729,0.0747,-0.0656,0.0359,-0.0037,0.0079,-0.0032,0.0941,-0.0526,0.1067,-0.1233,0.0901,-0.0618,0.0108,-0.0305,0.0704,-0.0294,0.0046,-0.0097,0.048,-0.0319,0.0488,-0.0588,0.1453,-0.0868,0.0808,-0.0614,0,-0.1448,0.0349,-0.0753,0.0932,-0.0639,0.0971,-0.0397,0.0421,-0.0225,0.0025,-0.0016,0.0015,-0.0001,0,0,0,0,0,0,0,0,0.0027,-0.0002,0.0005,-0.0008,0.0531,-0.0405,0.2488,-0.0646,0.1131,-0.0986,0.1468,-0.1125,0.0702,-0.0284,0.1306,-0.1074,0.1807,-0.1034,0.0488,-0.066,0.0181,-0.0095,0.0271,-0.1671,0.224,-0.2128,0.0784,-0.0638,0.0701,-0.1238,0.1355,-0.1424,0.0559,-0.048,0.0092,-0.0137,0.0501,-0.0118,0.0566,-0.0481,0.0822,-0.0489,0.0699,-0.0535,0.0605,-0.0618,0.1539,-0.0904,0.2371,-0.2083,0.1536,-0.1479,0.0505,-0.0099,0.0021,-0.0385,0.04,-0.0723,0.0309,-0.0124,0.0089,-0.0049,0.0588,-0.044,0.06,-0.0655,0.0901,-0.0739,0.0493,-0.0344,0.0631,-0.0582,0.0141,-0.0078,0.0252,-0.0034,0.0031,-0.014,0.0825,-0.1222,0.148,0,0.0742,-0.0304,0.0113,-0.0111,0.0059,-0.0111,0.0617,-0.0766,0.1133,-0.0859,0.063,-0.0601,0.0241,-0.057,0.0617,-0.1004,0.0065,-0.0059,0.0023,-0.0012,0.1245,-0.0239,0.2574,-0.1691,0.1702,-0.1592,0.0826,-0.1116,0.0979,-0.1061,0.0646,-0.0923,0.0778,-0.0993,0.0854,-0.0293,0.0063,-0.0154,0.0142,-0.0038,0.0015,-0.0044,0.0007,-0.0004,0.0003,-0.0004,0.0061,-0.0785,0.0324,-0.0281,0.0129,-0.0086,0.0023,-0.0015,0.0006,-0.0004,0.0005,-0.001,0.0004,-0.0004,0.0003,-0.0002,0.0004,-0.0003,0.0004,-0.0003,0.0002,-0.0004,0.0007,-0.0004,0.0006,-0.0014,0.0006,-0.0008,0.002,-0.001,0.0007,-0.0012,0.0018,-0.0015,0.0011,-0.0017,0.0014,-0.0019,0.0019,-0.0033,0.0018,-0.0033,0.0033,-0.0031,0.0012,-0.0021,0.0025,-0.0015,0.0015,-0.0017,0.0015,-0.0018,0.0633,-0.0332,0.2015,-0.1344,0.2635,-0.1589,0.1576,-0.2055,0.4836,-0.2576,0.1827,-0.3717,0.1096,-0.1086,0.012,-0.0053,0.0989,-0.0565,0.1576,-0.1571,0.2571,-0.0988,0.1165,-0.105,0.0354,-0.1471,0.3212,-0.1091,0.1159,-0.0708,0.1461,-0.1038,0.1603,-0.1065,0.0024,-0.0421,0.0016,-0.0026,0.0047,-0.0036,0.0012,-0.0013,0.0016,-0.0017,0.009,-0.0019,0.0122,-0.0206,0.2096,-0.1363,0.1979,-0.1106,0.1116,-0.1332,0.1068,-0.1578,0.0932,-0.1959,0.1222,-0.0927,0.1074,-0.1391,0.0142,-0.0189,0.0243,-0.012,0.006,-0.024,0.082,-0.0735,0.1121,-0.1229,0.2082,-0.212,0.0149,-0.0566,0.0589,-0.0956,0.082,-0.0204,0.0723,-0.1162,0.0658,-0.0645,0.0073,-0.0095,0.0124,-0.0931,0.3143,-0.1667,0.1667,-0.1375,0.0468,-0.0036,0.0203,-0.0579,0.0419,-0.0524,0.0162,-0.0272,0.0417,-0.0085,0.0587,-0.0665,0.0399,-0.0346,0.0204,-0.0298,0.0033,-0.0044,0.0008,-0.0007,0.0004,-0.0006,0.0005,-0.0004,0.0002,-0.0011,0.0007,-0.0006,0.0014,-0.001,0.0012,-0.0017,0.0015,-0.001,0.0037,-0.0025,0.0027,-0.0023,0.0033,-0.0026,0.0025,-0.0029,0.002,-0.0017,0.0021,-0.0018,0.012,-0.0388,0.0811,-0.1008,0.1276,-0.0575,0.0731,-0.0784,0.0185,-0.0769,0.0075,-0.1319,0.1142,-0.0208,0.1544,-0.1901,0.1898,-0.1179,0.1423,-0.1422,0.2673,-0.0945,0.1051,-0.005,0.1861,-0.093,0.1032,-0.0117,0.0169,-0.011,0.0502,-0.1773,0.2105,-0.0293,0.2373,-0.2286,0.2839,-0.2473,0.1604,-0.2015,0.0063,-0.0208,0.0303,-0.0464,0.228,-0.1074,0.0212,-0.0143,0.0127,-0.022,0.0505,-0.0607,0.0761,-0.1933,0.1339,-0.1721,0.089,-0.1158,0.031,-0.0168,0.1241,-0.0349,0.0201,-0.0268,0.0106,-0.008,0.0952,-0.0763,0.0784,-0.0498,0.0256,-0.0288,0.0161,-0.0118,0.008,-0.064,0.0872,-0.0196,0.0484,-0.0079,0.1287,-0.0064,0.0212,-0.0248,0.0117,-0.0028,0.0082,-0.0078,0.0428,-0.0053,0.0313,-0.0227,0.0318,-0.021,0.0015,-0.0011,0.0004,-0.0007,0.0002,-0.0007,0.0004,-0.0007,0.0007,-0.0005,0.0008,-0.0007,0.0005,-0.0009,0.0007,-0.0008,0.0005,-0.0005,0.001,-0.0003,0.0005,-0.0006,0.0005,-0.0005,0.0005,-0.0003,0.0007,-0.0002,0.0007,-0.0005,0.0007,-0.0004,0.0012,-0.0008,0.0007,-0.0008,0.0015,-0.0002,0.0008,-0.0004,0.0006,-0.0004,0.0043,-0.0004,0.0068,-0.0023,0.0013,-0.0013,0.0416,-0.0363,0.0887,-0.072,0.0252,-0.0654,0,-0.1125,0.1173,-0.1132,0.149,-0.0853,0.0265,-0.0374,0.0109,-0.0287,0.0342,-0.0392,0.0518,-0.0499,0.08,-0.0192,0.1302,-0.0795,0.0817,-0.0868,0.0866,-0.0929,0.0862,-0.1343,0.0804,-0.0837,0.0613,-0.0906,0.0476,-0.0517,0.0356,-0.0227,0.0384,-0.0071,0.1181,-0.0458,0.0737,-0.057,0.0754,-0.065,0.076,-0.0623,0.0505,-0.0293,0.002,-0.0021,0.0021,-0.0006,0.0017,-0.0015,0.0022,-0.0021,0.001,-0.0023,0.0025,-0.0021,0.0016,-0.002,0.0014,-0.0017,0.0055,-0.0035,0.0143,-0.0264,0.0371,-0.0385,0.0281,-0.0723,0.0396,-0.0837,0.3445,-0.1934,0.0922,-0.0964,0.242,-0.098,0.1033,-0.0297,0.09,-0.0448,0.0425,-0.0658,0.007,-0.0332,0.0058,-0.0148,0.0271,-0.0552,0.3683,-0.1699,0.2577,-0.127,0.0451,-0.0854,0.0985,-0.1003,0.089,-0.1817,0.2279,-0.0961,0.1879,-0.1487,0.054,-0.0446,0.1229,-0.1616,0.1458,-0.0406,0.0054,-0.0042,0.013,-0.0178,0.0063,-0.0166,0.1173,-0.0669,0.0647,-0.1013,0.0575,-0.0838,0.1126,-0.1483,0.095,-0.1337,0.008,-0.0296,0.001,-0.0012,0.0009,-0.001,0.0003,-0.0005,0.0676,-0.0452,0.0619,-0.0481,0.0129,-0.0338,0.0009,-0.003,0.0007,-0.0005,0.0006,-0.0004,0.0004,-0.0007,0.0003,-0.0002,0.0005,-0.0002,0.0007,-0.0006,0.0008,-0.0004,0.0008,-0.0007,0.0005,-0.0005,0.0004,-0.0003,0.0005,-0.0003,0.0006,-0.0008,0.0007,-0.0004,0.0005,-0.0003,0.0007,-0.0006,0.0002,-0.0011,0.0004,-0.0007,0.0002,-0.0017,0.0005,-0.001,0.0003,-0.0006,0.0004,-0.0009,0.0004,-0.0006,0.0003,-0.0004,0.0003,-0.0005,0.0006,-0.0005,0.0005,-0.0007,0.0003,-0.0009,0.0004,-0.0003,0.0005,-0.0005,0.0005,-0.0004,0.001,-0.0006,0.0013,-0.0137,0.0627,-0.0304,0.0252,-0.0206,0.026,-0.0502,0.2115,-0.1054,0.0341,-0.0907,0.045,-0.0324,0.0554,-0.0667,0.0161,-0.0114,0.0307,-0.0808,0.0443,-0.0478,0.1644,-0.0858,0.028,-0.0405,0.0007,-0.0505,0.1444,-0.1662,0.1199,-0.1012,0.0984,-0.0853,0.0793,-0.0596,0.0302,-0.0795,0.0216,-0.0308,0.0487,-0.0135,0.007,-0.018,0.0376,-0.0712,0.0559,-0.0707,0.0451,-0.0732,0.0048,-0.0079,0.1147,-0.0647,0.0335,-0.0616,0.1309,-0.0641,0.0954,-0.0764,0.0436,-0.0457,0.0043,-0.0425,0.0293,-0.1122,0.09,-0.1147,0.0048,-0.0033,0.0008,-0.0014,0.0309,-0.0233,0.0284,-0.0262,0.0212,-0.015,0.0068,-0.0236,0.0305,-0.021,0.0061,-0.007,0.001,-0.0006,0.0006,-0.0003,0.0003,-0.0005,0.0007,-0.0006,0.0003,-0.0005,0.0006,-0.0003,0.0006,-0.0007,0.0014,-0.0006,0.0008,-0.0011,0.0018,-0.0005,0.0015,-0.0006,0.0017,-0.0016,0.0021,-0.0009,0.0015,-0.0009,0.0035,-0.0045,0.0015,-0.0016,0.0016,-0.0026,0.0105,-0.0382,0.1219,-0.1678,0.1347,-0.1421,0.0972,-0.0674,0.0803,-0.1313,0.0692,-0.1085,0.1248,-0.1023,0.2027,-0.1529,0.008,-0.0048,0.1356,-0.0833,0.0934,-0.1127,0.1509,-0.063,0.0126,-0.0082,0.0075,-0.0079,0.1354,-0.0378,0.004,-0.0856,0.0255,-0.0221,0.0426,0,0.0033,-0.0003,0.0006,-0.0021,0.0014,-0.0011,0.001,-0.0013,0.0013,-0.0014,0.0006,-0.0007,0.0006,-0.0005,0.0011,-0.0002,0.0112,-0.016,0.0866,-0.1314,0.1309,-0.1515,0.2409,-0.1651,0.0305,-0.0876,0.2541,-0.1082,0.1708,-0.1082,0.0454,-0.0474,0.0885,-0.0594,0.0721,-0.0475,0.0462,-0.0454,0.0267,-0.0941,0,-0.0864,0.0517,-0.1058,0.0559,-0.0763,0.0031,-0.0095,0.0169,-0.0142,0.001,-0.0015,0.0655,-0.0001,0.1294,-0.0753,0.1396,-0.0807,0.0349,-0.0324,0.0351,-0.0207,0.0679,-0.0495,0.0572,-0.0381,0.0375,-0.0242,0.0012,-0.0016,0.0011,-0.0015,0.0007,-0.0016,0.0012,-0.0009,0.0009,-0.001,0.0003,-0.0005,0.0001,-0.0005,0.0453,-0.026,0.0553,-0.054,0.1525,-0.0336,0.1298,-0.1303,0.1099,-0.1016,0.0229,-0.0265,0.0492,-0.0274,0.0291,-0.0343,0.0093,-0.008,0.0131,-0.0213,0.0475,-0.0255,0.0006,-0.0016,0.0244,-0.1053,0.1069,-0.055,0.1186,-0.1172,0,-0.1127,0.0775,-0.065,0.0738,-0.0614,0.0494,-0.0206,0.0682,-0.0067,0.0808,-0.0053,0.007,-0.0058,0.0546,-0.0485,0.0255,-0.058,0.0495,-0.024,0.0266,-0.0088,0.0117,-0.0123,0.0094,-0.0091,0.0014,-0.0005,0.0331,-0.05,0.0233,-0.0109,0.002,-0.0012,0.001,-0.0014,0.0006,-0.0002,0.0004,-0.0005,0.0005,-0.0005,0.0007,-0.0004,0.0007,-0.0006,0.0006,-0.0002,0.0005,-0.0004,0.0006,-0.0009,0.0008,-0.0006,0.0005,-0.0008,0.0006,-0.0011,0.0008,-0.0005,0.0009,-0.0009,0.0002,-0.001,0.0013,-0.0013,0.001,-0.0006,0.0007,-0.0006,0.0002,-0.0007,0.0025,-0.0065,0.043,-0.0159,0.136,-0.0812,0.1399,-0.1598,0.1177,-0.1604,0.0241,-0.0504,0.1267,-0.072,0.1384,-0.0959,0.0823,-0.0647,0.0725,-0.063,0.0826,-0.1136,0.2042,-0.1142,0.0746,-0.0676,0.006,-0.0051,0.2104,-0.195,0.1853,-0.1798,0.0407,-0.0413,0.0722,-0.1178,0.0545,-0.0817,0.0692,-0.1462,0.1472,-0.1155,0.0344,-0.0393,0.033,-0.0251,0.0152,-0.0119,0.0031,-0.0635,0.0519,-0.0731,0.1186,-0.0786,0.0642,-0.0838,0.1435,-0.1241,0.0929,-0.0844,0.0413,-0.0171,0.0211,-0.046,0.0482,-0.0322,0.0198,-0.0226,0.0174,-0.0132,0.001,-0.0046,0.0005,-0.0012,0.0015,-0.0006,0.0007,-0.0008,0.0014,-0.0005,0.0008,-0.0007,0.0009,-0.0003,0.0005,-0.0004,0.0004,-0.0005,0.0004,-0.0004,0.001,-0.0009,0.0048,-0.0034,0.0983,-0.0304,0.0216,-0.0369,0.0124,-0.0895,0.0893,-0.0999,0.0107,-0.0054,0.0051,-0.031,0.06,-0.0396,0.0732,-0.0343,0.0012,-0.0038,0.0007,-0.0009,0.0006,-0.0004,0.0005,-0.0005,0.0011,-0.0038,0.0139,-0.0102,0.0278,-0.0196,0.0173,-0.0474,0,-0.1101,0.0413,-0.1046,0.0724,-0.0274,0.083,-0.0694,0.0234,-0.0161,0.0123,-0.0012,0.0278,-0.005,0.0363,-0.0796,0.0408,-0.0287,0.0251,-0.0235,0.0222,-0.0202,0.0339,-0.0298,0.0271,-0.0228,0.0155,-0.0214,0.0124,-0.0393,0.0676,-0.0637,0.0164,-0.0246,0.0493,-0.0556,0.0488,-0.0595,0.0472,-0.0171,0.019,-0.0176,0.0151,-0.0187,0.005,-0.0154,0.0132,-0.0147,0.0049,-0.0035,0.0003,-0.0012,0.0001,-0.0016,0.0004,-0.0007,0.0004,-0.0003,0.0003,-0.0005,0.0003,-0.0005,0.0004,-0.0006,0.0003,-0.0004,0.0001,-0.0006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.0001,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.0013,0.0012,-0.0011,0.0005,-0.0008,0.0006,-0.0007,0.024,-0.0009,0.1242,-0.0381,0.0516,-0.1493,0.117,-0.0843,0.1055,-0.1516,0.1496,-0.1836,0.2808,-0.3505,0.1652,-0.1796,0.061,-0.0442,0.0742,-0.0583,0.0048,-0.0285,0.1876,-0.3014,0.1449,-0.1054,0.0028,-0.0359,0.0006,-0.0216,0.2324,-0.1874,0.0491,-0.1244,0.0411,-0.0812,0.0153,-0.0068,0.0013,-0.0029,0.0009,-0.0009,0.0006,-0.0007,0.0003,-0.0004,0.0005,-0.0007,0.0004,-0.001,0.0006,-0.0009,0.0002,-0.0273,0.0428,-0.028,0.0578,-0.0809,0.0544,-0.0681,0.0613,-0.0702,0.1156,-0.0986,0.0878,-0.1124,0.0802,-0.0227,0.0158,-0.0174,0.0019,-0.0007,0.0008,-0.0007,0.001,-0.0007,0.001,-0.001,0.0013,-0.001,0.0034,-0.0003,0.0009,-0.0012,0.0007,-0.0003,0.0006,-0.0004,0.0112,0,0.0164,-0.0208,0.0853,-0.0334,0.1165,-0.0796,0.1697,-0.0644,0.2109,-0.1745,0.0319,-0.182,0.3274,-0.2283,0.1534,-0.1693,0.0759,-0.3006,0.4671,-0.4363,0.0549,-0.0293,0.0028,-0.0867,0.0505,-0.0984,0.1106,-0.1315,0.2112,-0.4463,0.2847,-0.4283,0.4731,-0.4447,0.4564,-0.1971,0.0354,-0.0316,0.0802,-0.3687,0.2824,-0.3428,0.1883,-0.1205,0.1321,-0.0978,0.0192,-0.0225,0.01,-0.0067,0.0031,-0.0033,0.0016,-0.0009,0.0009,-0.0009,0.0002,-0.0006,0.0004,-0.0005,0.0004,-0.0007,0.0006,-0.0006,0.0005,-0.0009,0.0004,-0.0008,0.0006,-0.0006,0.0007,-0.0007,0.0004,-0.0004,0.0004,-0.001,0.0007,-0.0006,0.001,-0.0012,0.0009,-0.0007,0.0012,-0.0008,0.0012,-0.0006,0.001,-0.0016,0.0047,-0.0046,0.0032,-0.0021,0.0029,-0.0034,0.0026,-0.003,0.0026,-0.0027,0.0026,-0.0025,0.003,-0.0023,0.0009,-0.0075,0,-0.0755,0.0417,-0.0645,0.0626,-0.0551,0.0798,-0.0851,0.0763,-0.0802,0.0664,-0.0466,0.0597,-0.0574,0.1203,-0.0949,0.0531,-0.0672,0.0321,-0.0481,0.0327,-0.0065,0.0015,-0.002,0.0006,-0.0018,0.0006,-0.0007,0.0013,-0.001,0.0008,-0.0009,0.001,-0.0011,0.0005,-0.0007,0.0261,-0.0163,0.071,-0.0699,0.1159,-0.137,0.0645,-0.1042,0.0933,-0.0461,0.1891,-0.0785,0.0737,-0.1121,0.0127,-0.0551,0.0024,-0.0063,0.0166,-0.0128,0.0114,-0.0062,0.0706,-0.0976,0.0249,-0.0269,0.0644,-0.0685,0,-0.1171,0,-0.1216,0.0061,-0.0462,0.015,-0.0032,0.0026,-0.0013,0.0024,-0.0133,0.1002,-0.0743,0.0552,-0.0473,0.0337,-0.0133,0.0011,-0.0008,0.0019,-0.0014,0.0012,-0.0009,0.0011,-0.0009,0.0004,-0.0012,0.0002,-0.0007,0.0001,-0.0006,0.0007,-0.0005,0.0112,-0.0119,0.0235,-0.014,0.002,-0.0013,0.0157,-0.0021,0.1056,-0.0272,0.0294,-0.1128,0.1081,-0.0688,0.1141,-0.0902,0.0219,-0.0547,0.0246,-0.0443,0,-0.0344,0,-0.0179,0.0014,-0.0028,0.0009,-0.0003,0.0005,-0.0009,0.0004,-0.0006,0.0004,-0.0004,0.0112,-0.0207,0.1124,-0.0511,0.0165,-0.0326,0.0948,-0.0283,0.0752,-0.0909,0.1166,-0.1199,0.1136,-0.0021,0.1047,-0.0439,0.0275,-0.005,0.0244,-0.025,0.0255,-0.2124,0.291,-0.2572,0.1062,-0.09,0.2202,-0.1141,0.0408,-0.0546,0.0194,-0.0216,0.0541,-0.0525,0.0511,-0.0661,0.1487,-0.1136,0.0151,-0.025,0.003,-0.0019,0.0013,-0.0014,0.0008,-0.0009,0.094,-0.0729,0.112,-0.0878,0.1011,-0.0573,0.0119,-0.0024,0.0017,-0.002,0.001,-0.0016,0.0024,-0.0043,0.0024,-0.0048,0.001,-0.0016,0.001,-0.0015,0.0004,-0.0008,0.0253,-0.0056,0.0305,-0.047,0.0373,-0.0184,0.036,-0.059,0.1142,-0.0759,0.271,-0.1723,0.2417,-0.1321,0.1461,-0.2089,0.2258,-0.1042,0.0135,-0.0181,0.0209,-0.0245,0.1865,-0.1207,0.0471,-0.0854,0.1635,-0.1457,0.0781,-0.0945,0.105,-0.1437,0.0696,-0.1338,0.1257,-0.1082,0.1037,-0.1214,0.1179,-0.1387,0.0865,-0.0521,0.1616,-0.1593,0.121,-0.0706,0.124,-0.1021,0.0939,-0.0853,0.0134,-0.0204,0.0018,-0.0015,0.0011,-0.0012,0.0027,-0.0014,0.0032,-0.0014,0.0012,-0.0014,0.001,-0.0011,0.001,-0.001,0.004,-0.0038,0.0079,-0.0316,0.0813,-0.1447,0.0948,-0.1495,0.2314,-0.1546,0.1049,-0.1209,0.1591,-0.1282,0.1645,-0.1153,0.0807,-0.0796,0.1498,-0.0933,0.0927,-0.1096,0.1032,-0.0426,0.218,-0.1975,0.1854,-0.1372,0.1007,-0.1221,0.0218,-0.0112,0.0023,-0.0124,0.0145,-0.0211,0.0093,-0.0039,0.0039,-0.0217,0.0049,-0.0027,0.0094,-0.005,0.0006,-0.0375,0.0194,-0.0962,0.0096,-0.0013,0.0779,-0.0309,0.0635,-0.0317,0.0056,-0.0131,0.0024,-0.0014,0.0002,-0.0005,0.0006,-0.0005,0.0007,-0.0006,0.0006,-0.0003,0.0003,-0.0003,0.0005,-0.0004,0.0005,-0.0007,0.0008,-0.0006,0.0006,-0.0007,0.0008,-0.0008,0.0006,-0.0007,0.0006,-0.0006,0.0008,-0.0011,0.0009,-0.0013,0.0009,-0.0009,0.0024,-0.0025,0.0012,-0.0015,0.0014,-0.001,0.0009,-0.0015,0.0005,-0.0009,0.0009,-0.0007,0.0006,-0.0006,0.0003,-0.0004,0.0039,-0.008,0.1207,-0.0953,0.1604,-0.0893,0.1864,-0.1726,0.1011,-0.0745,0.1137,-0.1322,0.0821,-0.0961,0.0384,-0.0638,0.0918,-0.0657,0.1095,-0.1275,0.1484,-0.145,0.2126,-0.0706,0.0433,-0.0557,0.1123,-0.0956,0.0778,-0.0777,0.101,-0.0487,0.0037,-0.0105,0.0563,-0.126,0.081,-0.0608,0.0724,0,0.0411,-0.0415,0.0304,-0.0171,0.0013,-0.0007,0.0004,-0.0008,0.0024,-0.0022,0.0609,-0.0027,0.0649,-0.0531,0.0481,-0.0339,0.0201,-0.0204,0.0306,-0.017,0.0054,-0.0112,0.0018,-0.0016,0.0012,-0.0009,0.0011,-0.0008,0.0007,-0.0008,0.0009,-0.0011,0.0007,-0.0012,0.0009,-0.0008,0.001,-0.0013,0.0014,-0.0009,0.001,-0.0008,0.0008,-0.0007,0.0012,-0.0009,0.0011,-0.0008,0.0013,-0.001,0.0013,-0.001,0.0009,-0.0005,0.0008,-0.0007,0.0004,-0.0009,0.0015,-0.0005,0.0977,-0.0421,0.1673,-0.1769,0.2724,0,0.1445,-0.1083,0.0089,-0.011,0.2386,-0.0359,0.1749,-0.2179,0.1769,-0.1985,0.1626,-0.2238,0.2162,-0.3324,0.1854,-0.0947,0.0633,-0.2154,0.2423,-0.2555,0.161,-0.1079,0.1598,-0.0984,0.05,-0.0936,0.1023,-0.0862,0.0195,-0.0846,0.0025,-0.0099,0.0242,-0.0134,0.0999,-0.0765,0.0611,-0.0674,0.2075,-0.1199,0.0268,-0.0932,0.0109,-0.0059,0.003,-0.0531,0.0367,-0.041,0.0028,-0.0022,0.0021,-0.08,0.0642,-0.0546,0.0674,-0.036,0.0219,-0.0305,0.001,-0.0009,0.0006,-0.0009,0.0011,-0.0015,0.0007,-0.0008,0.0006,-0.0009,0.0007,-0.0008,0.0007,-0.001,0.0012,-0.0011,0.0009,-0.0012,0.0005,-0.0005,0.0005,-0.0004,0.0012,-0.0004,0.0181,-0.0163,0.1043,-0.0728,0.0076,-0.0049,0.1328,-0.0809,0.0748,-0.0865,0.0082,-0.069,0.0729,-0.1163,0.0149,-0.0893,0.0036,-0.0149,0.0045,-0.0029,0.023,-0.0093,0.1356,-0.102,0.0834,-0.0884,0.0666,-0.0278,0.0071,-0.0031,0.0048,-0.0032,0.018,-0.0084,0.031,-0.0192,0.0656,-0.0098,0.0099,-0.0607,0.0218,-0.0474,0.0294,-0.0292,0.0613,-0.0482,0.0555,-0.055,0.0988,-0.0678,0.1388,-0.0551,0.0626,-0.026,0.0152,-0.0348,0.0129,-0.0009,0.0008,-0.0004,0.0007,-0.0008,0.001,-0.0005,0.0012,-0.0002,0.0013,-0.001,0.0016,-0.001,0.0011,-0.0015,0.0006,-0.0011,0.0011,-0.0005,0.0003,-0.0007,0.0006,-0.0007,0.0021,-0.0018,0.0617,-0.0379,0.0657,-0.1156,0.2157,-0.1517,0.1271,-0.118,0.1218,-0.0889,0.0779,-0.0646,0.1002,-0.0533,0.0142,-0.0005,0.0008,-0.0026,0.0014,-0.0004,0.0012,-0.0008,0.0007,-0.0003,0.0086,-0.0006,0.0619,-0.0689,0.1464,-0.0928,0.0927,-0.0855,0.182,-0.1596,0.1327,-0.0616,0.3286,-0.2867,0.2391,-0.103,0.1466,-0.0822,0.0674,-0.089,0.1103,-0.1565,0.1102,-0.062,0.0884,-0.0709,0.0429,-0.021,0.0562,-0.0806,0.1612,-0.1153,0.0538,-0.0901,0.0896,0,0.0273,-0.012,0.0842,-0.0625,0.0333,-0.0497,0.0096,-0.0023,0.0434,-0.0712,0.1271,-0.1127,0.1283,-0.029,0.1292,-0.0361,0.1324,-0.1118,0.0177,-0.0032,0.0086,-0.0068,0.0756,-0.0568,0.1186,-0.0837,0.0945,-0.0699,0.0575,-0.1357,0.0902,-0.1062,0.0174,-0.0415,0.1817,0,0.1589,-0.0877,0.0691,-0.0714,0.0878,-0.0546,0.0082,-0.0078,0.0775,-0.0167,0.0451,-0.0395,0.0152,-0.0476,0.0709,-0.05,0.022,-0.044,0.0392,-0.0243,0.0016,-0.0012,0.001,-0.0007,0.0015,-0.0015,0.0008,-0.0005,0.0009,-0.0007,0.0005,-0.0006,0.0004,-0.0007,0.0004,-0.0014,0.0332,-0.017,0.0538,-0.0242,0.0251,-0.0309,0.0117,-0.018,0.0133,-0.0036,0.0791,-0.1031,0.0126,-0.0941,0.0764,-0.032,0.0372,-0.023,0.0567,-0.0348,0.0146,-0.0163,0.0009,-0.0018,0.0006,-0.0003,0.0529,-0.032,0.0328,-0.0431,0.0208,-0.0239,0.0099,-0.0074,0.0007,-0.0002,0.0008,-0.0008,0.001,-0.0007,0.0012,-0.0008,0.0015,-0.0008,0.001,-0.0005,0.0008,-0.0012,0.0008,-0.0007,0.0007,-0.0006,0.0003,-0.0008,0.002,-0.0072,0.0656,-0.0203,0.0126,-0.0398,0.0224,-0.0445,0.0421,-0.0491,0.0719,-0.0524,0.0939,-0.1063,0.0895,-0.0998,0.1143,-0.1053,0.1244,-0.1257,0.0959,-0.1199,0.1237,-0.0577,0.1312,-0.1251,0.1497,-0.1728,0.0988,-0.0962,0.054,-0.0399,0.0475,-0.0297,0.0363,-0.0354,0.0133,-0.0283,0.0381,-0.0254,0.024,-0.0304,0.0152,-0.0371,0.0907,-0.0572,0.0306,-0.0226,0.0355,-0.0226,0.0405,-0.0489,0.0035,-0.0283,0.0244,-0.0054,0.0411,-0.0155,0.0632,-0.0617,0.0417,-0.092,0.0709,-0.0482,0.0518,-0.0428,0.0153,-0.002,0.0012,-0.001,0.0007,-0.0001,0.0006,-0.0078,0.0333,-0.0254,0.0245,-0.0186,0.0247,-0.0162,0.0023,-0.0039,0.0126,-0.0173,0.0142,-0.0146,0.0034,-0.0013,0.0005,-0.0005,0.0003,-0.0005,0.0004,-0.0006,0.0008,-0.0004,0.0003,-0.0006,0.0004,-0.0003,0.0005,-0.0003,0.0006,-0.0007,0.0001,-0.0004,0.0003,-0.0005,0.0001,-0.0006,0.0003,-0.0009,0.0003,-0.0005,0,-0.0006,0.0002,-0.0007,0.0006,-0.0013,0.0004,-0.001,0.0008,-0.0014,0.0008,-0.0011,0.0026,-0.0008,0.0081,-0.0068,0.0049,-0.0048,0.0055,-0.0045,0.0036,-0.0033,0.0024,-0.0025,0.0022,-0.0013,0.0016,-0.0016,0.009,-0.0101,0.123,-0.1162,0.2027,-0.1339,0.2666,-0.1709,0.3,-0.2493,0.2402,-0.22,0.0954,-0.0808,0.1191,-0.13,0.1147,-0.1957,0.1092,-0.1261,0.0206,-0.0408,0.0204,-0.001,0.163,-0.0367,0.0336,-0.0486,0.0555,-0.1074,0.1726,-0.1112,0,-0.1051,0.0847,-0.0795,0.0848,-0.1281,0.1066,-0.1327,0.0957,-0.125,0.2184,-0.1271,0.2043,-0.086,0.1094,-0.0654,0.0378,-0.015,0.0035,-0.0063,0.0021,-0.0013,0.0014,-0.0004,0.0012,-0.0022,0.0019,-0.0006,0.001,-0.001,0.0011,-0.0015,0.0237,-0.0235,0.1191,-0.0784,0.0036,-0.0351,0.0893,-0.0367,0.0675,-0.0909,0.2105,-0.1894,0.0663,-0.2198,0.0061,-0.0034,0.0948,-0.0707,0.0828,-0.034,0.0769,-0.0604,0.0776,-0.0677,0.076,-0.0543,0.1185,-0.0506,0,-0.0439,0.0803,-0.0311,0.0408,-0.0527,0.0043,-0.0052,0.01,-0.0564,0.0781,-0.0417,0,-0.06,0,-0.0345,0,-0.0439,0.0013,-0.0111,0.0005,-0.0009,0.0009,-0.0012,0.0028,-0.0023,0.0016,-0.0032,0.0018,-0.0014,0.0011,-0.0014,0.0056,-0.0051,0.0036,-0.0029,0.0183,-0.0159,0.1707,-0.134,0.0874,-0.1653,0.1061,-0.1234,0.1837,-0.1502,0.1617,-0.1672,0.092,-0.1663,0.1236,-0.1259,0.2263,-0.2407,0.218,-0.1507,0.202,-0.1672,0.1554,-0.0433,0.0391,-0.0558,0.1018,0,0.0331,-0.0167,0.0072,-0.0051,0.1127,-0.087,0.098,-0.0493,0.0193,-0.0511,0.017,-0.0175,0.0141,-0.0213,0.0113,-0.0233,0.0637,-0.1196,0.1468,-0.0699,0.1178,-0.0413,0.0367,-0.0143,0.0023,-0.0032,0.0008,-0.0006,0.0008,-0.0003,0.0007,-0.0002,0.0005,-0.0009,0.0012,-0.0005,0.0009,-0.0004,0.0005,-0.0002,0.0008,-0.0011,0.0009,-0.0005,0.0004,-0.0003,0.0009,-0.0007,0.0008,-0.0006,0.0091,-0.0142,0.0823,-0.171,0.3203,-0.1878,0.092,-0.0961,0.0543,-0.0513,0.0443,-0.0533,0.0771,-0.0372,0.1165,-0.1168,0.0725,-0.0989,0.0512,-0.0764,0.0516,-0.0062,0.0599,-0.0393,0.0043,-0.0291,0.0701,-0.0854,0.119,-0.1076,0.0628,-0.0727,0.0647,-0.0571,0.1215,-0.1393,0.1361,-0.1151,0.0828,-0.036,0.0108,-0.0246,0.0098,-0.0263,0.0349,-0.0101,0.0507,-0.0498,0.0501,-0.0356,0.0068,-0.0108,0.0254,-0.0297,0.1602,-0.1205,0.0169,-0.0502,0.0667,-0.0393,0.1896,-0.1531,0.028,-0.1458,0.021,-0.0065,0.0065,-0.0049,0.038,-0.1426,0.1048,-0.0705,0.0719,-0.0655,0.0046,-0.0034,0.0296,-0.0528,0.12,-0.1071,0.1037,-0.0675,0.0407,-0.0327,0.0123,-0.0044,0.0035,-0.0719,0.0684,-0.0658,0.076,-0.055,0.0603,-0.0499,0.0243,-0.0266,0.0026,-0.0385,0.0593,-0.0588,0.0488,-0.0295,0.0177,-0.0007,0.0601,-0.0565,0.0776,-0.0623,0.0327,-0.0495,0.007,-0.0231,0.021,-0.0182,0.0113,-0.0038,0.0046,-0.0254,0.0193,-0.0231,0.0141,-0.0076,0.0038,-0.0063,0.0006,-0.009,0.0262,-0.0411,0.0111,-0.0185,0.0073,-0.0058,0.0007,-0.001,0.0003,-0.0008,0.0002,-0.0005,0.0002,-0.0009,0.0005,-0.0013,0.0011,-0.0017,0.0011,-0.0013,0.001,-0.0016,0.0009,-0.0011,0.001,-0.0011,0.001,-0.0012,0.0008,-0.0007,0.0009,-0.0019,0.0013,-0.0015,0.0016,-0.0021,0.0018,-0.0014,0.0012,-0.0015,0.0015,-0.0009,0.001,-0.0006,0.0008,-0.0009,0.0007,-0.0008,0.0009,-0.0005,0.0008,-0.0007,0.0015,-0.001,0.0025,-0.0079,0.0081,-0.0212,0.1051,-0.0957,0.1609,-0.047,0.0314,-0.0302,0.0384,-0.0196,0.0416,-0.0061,0.1765,-0.1732,0.0146,-0.0107,0.1107,-0.0454,0.0985,-0.0787,0.0797,-0.0533,0.0878,-0.0424,0.0695,-0.0962,0.0196,-0.0253,0.0285,-0.0297,0.002,-0.0057,0.0175,-0.0182,0.0656,-0.0597,0.0632,-0.0288,0.1002,-0.0496,0.0468,-0.0377,0.0477,-0.0208,0.0023,-0.0023,0.0006,-0.0005,0.0005,-0.0017,0.0008,-0.0006,0.0006,-0.0009,0.0016,-0.0009,0.0009,-0.0014,0.0015,-0.0018,0.002,-0.0019,0.0013,-0.0013,0.0012,-0.001,0.0007,-0.0009,0.0006,-0.0007,0.0001,-0.0389,0.033,-0.0529,0.0852,-0.0189,0.1264,-0.123,0.09,-0.1467,0.2058,-0.1826,0.1162,-0.0122,0.1395,-0.0325,0.0932,-0.0859,0.0026,-0.002,0.0069,-0.0154,0.1337,-0.0791,0.1412,-0.1291,0.1711,-0.1361,0.0279,-0.0694,0.0348,-0.0249,0.0433,-0.0242,0.0024,-0.0037,0.0194,-0.1171,0.0542,-0.1179,0.0518,-0.0633,0.1326,-0.1034,0,-0.0977,0.0063,-0.0804,0.0046,-0.007,0.0879,-0.0008,0.0833,0,0.0287,-0.0203,0.0078,-0.0049,0.0454,-0.1308,0.0556,-0.0957,0.0362,-0.0062,0,-0.029,0.1046,-0.0808,0.147,-0.1097,0.1143,-0.0809,0.1155,-0.0843,0.0484,-0.0521,0.0463,-0.0275,0.0364,-0.0337,0.0078,-0.0171,0.0138,-0.0011,0.0281,-0.022,0.0027,-0.0001,0.0009,-0.0821,0.0602,-0.0767,0.0811,-0.0662,0.0909,-0.0561,0.0756,-0.0718,0.0934,-0.05,0.0059,-0.0172,0.001,-0.0027,0.0003,-0.0007,0.0009,-0.0017,0.0011,-0.0004,0.0012,-0.0008,0.0005,-0.0008,0.0014,-0.0009,0.0009,-0.0017,0.0005,-0.0012,0.0006,-0.0007,0.0003,-0.0009,0.0004,-0.0003,0.0116,-0.0005,0.0478,-0.0374,0.0021,-0.0063,0.0129,-0.0235,0.0475,-0.0752,0.1617,-0.1001,0.2151,-0.1386,0.0653,-0.1186,0.1099,-0.1583,0.0834,-0.0665,0.0644,-0.0648,0.0371,-0.0727,0.0048,-0.0045,0.1516,-0.113,0.1975,-0.0563,0.012,-0.0036,0.0616,-0.0191,0.0865,-0.0947,0.0513,-0.0615,0.0711,-0.1373,0.0418,-0.0409,0.022,-0.0135,0.0053,-0.0125,0.0071,-0.0343,0.0042,-0.0534,0.022,-0.0108,0.0185,-0.0258,0.0194,-0.0259,0.0311,-0.0248,0.0311,-0.0205,0.0089,-0.0105,0.0006,-0.0009,0.0002,-0.0003,0.0005,-0.0005,0.0037,-0.0058,0.0329,-0.0191,0.0044,-0.0065,0.0007,-0.0023,0.0004,-0.0008,0.0004,-0.0007,0.0005,-0.0004,0.0004,-0.0005,0.0003,-0.0003,0.0003,-0.0003,0.0005,-0.0004,0.0005,-0.0005,0.0005,-0.0007,0.0018,-0.0018,0.0018,-0.0012,0.0014,-0.0014,0.0009,-0.0003,0.0005,-0.0013,0.0008,-0.0009,0.0005,-0.0007,0.0009,-0.0011,0.0006,-0.0011,0.0013,-0.0025,0.0019,-0.0022,0.002,-0.0018,0.0024,-0.0013,0.0021,-0.0027,0.0642,-0.0748,0.024,-0.08,0.0086,-0.0337,0.1402,-0.1038,0.0681,-0.0993,0.0445,-0.0685,0.0671,-0.0425,0.0535,-0.0426,0.1072,-0.0825,0.0587,-0.0285,0.031,-0.0032,0.1135,-0.028,0.0161,-0.0476,0.0025,-0.0027,0.0013,-0.0017,0.1005,-0.027,0.085,-0.1094,0.0544,-0.0256,0.0361,-0.0438,0.0339,-0.0355,0.0869,-0.0262,0.0601,-0.045,0.04,-0.0315,0.0062,-0.0151,0.0013,-0.001,0.0005,-0.0008,0.0005,-0.0009,0.0002,-0.0006,0.0009,-0.0011,0.0006,-0.001,0.0007,-0.0006,0.0003,-0.001,0.0005,-0.0006,0.0006,-0.0006,0.0004,-0.0013,0.0023,-0.0142,0.0239,-0.0094,0.116,-0.1513,0.0447,-0.0556,0.03,-0.083,0.0535,-0.0513,0.1847,-0.0848,0.0391,-0.0346,0.0336,-0.0066,0.0008,-0.0007,0.0005,-0.0015,0.0005,-0.0008,0.0006,-0.0005,0.0007,-0.0004,0.0002,-0.0007,0.0006,-0.0004,0.0006,-0.0004,0.0211,-0.0505,0.0368,-0.0969,0.1967,-0.1806,0.1158,-0.0745,0.0337,-0.1039,0.0298,-0.0444,0.0242,-0.0273,0.0299,-0.0527,0.062,-0.0565,0.0883,-0.0511,0.0916,-0.0962,0.0555,-0.0516,0.004,-0.0332,0.126,-0.0814,0.1002,-0.104,0.1357,-0.0977,0.019,-0.0141,0.0168,-0.024,0.0023,-0.0011,0.0959,-0.1018,0.1587,-0.159,0.0895,-0.0803,0.0755,-0.0529,0.0104,-0.0006,0.0008,-0.0005,0.0004,-0.0009,0.0019,-0.0015,0.0007,-0.0016,0.0004,-0.0016,0.0006,-0.0006,0.0003,-0.0009,0.0025,-0.0054,0.0027,-0.0084,0.1165,-0.0277,0.1506,-0.0457,0.0892,-0.0726,0.1109,-0.0502,0.203,-0.075,0.1545,-0.1338,0.0893,-0.085,0.0066,-0.0116,0.1303,-0.1092,0.0525,-0.1544,0.0577,-0.0514,0.0548,-0.0648,0.0507,-0.101,0.2296,-0.0754,0.0963,-0.0811,0.0509,-0.0628,0.0511,-0.068,0.0431,-0.0966,0.0569,-0.1032,0.0238,-0.041,0.1368,-0.0843,0.0736,-0.0914,0.1305,-0.0681,0.0051,-0.0221,0.1089,-0.0631,0.028,-0.0624,0.0042,-0.0109,0.0063,-0.0062,0.051,-0.1258,0.027,-0.1288,0.0063,-0.0106,0.0379,-0.0385,0.045,-0.0108,0.0043,-0.0014,0.0411,-0.0176,0.0193,-0.0178,0.0313,-0.0355,0.0488,-0.0388,0.0263,-0.0226,0.01,-0.0024,0.0002,-0.0005,0.0004,-0.0006,0.0004,-0.0009,0.0007,-0.0009,0.0008,-0.0013,0.0012,-0.0012,0.0008,-0.0009,0.0006,-0.0011,0.0006,-0.0006,0.0008,-0.0006,0.1179,-0.0402,0.1016,-0.0871,0.0228,-0.0253,0.0116,-0.0138,0.0112,-0.0121,0.1381,-0.0977,0.1178,-0.1311,0.1847,-0.1996,0.0148,-0.0659,0.0083,-0.0025,0.1484,-0.0754,0.034,-0.091,0.083,-0.0277,0.0812,-0.0541,0.0264,-0.0365,0.0007,-0.0005,0.0329,-0.018,0.0581,-0.0353,0.001,-0.0017,0.0012,-0.0104,0.0828,-0.0454,0.0761,-0.0603,0.0434,-0.0304,0.011,-0.0015,0.0014,-0.0013,0.0013,-0.0778,0.103,-0.0612,0.0676,-0.0497,0.0393,-0.0061,0.0016,-0.0014,0.0007,-0.0006,0.0008,-0.0011,0.0013,-0.0011,0.0006,-0.0005,0.0003,-0.0006,0.0002,-0.0009,0.0003,-0.002,0.0002,-0.0217,0.225,-0.0632,0.2392,-0.0228,0.1561,-0.1011,0.0571,-0.0476,0.0311,-0.0402,0.0118,-0.0234,0.0538,-0.0422,0.0028,-0.0119,0.0061,-0.013,0.003,-0.0157,0.0743,-0.0495,0.0334,-0.0181,0.0694,-0.0301,0.0271,-0.0359,0.0337,-0.0244,0.0071,-0.0003,0.0013,-0.0019,0.135,-0.0187,0.0138,-0.0588,0.014,-0.0575,0.0741,-0.0525,0.019,-0.0318,0.044,-0.0436,0.0221,-0.0564,0.0025,-0.0038,0.0233,-0.1574,0.1458,-0.0628,0.0692,-0.0095,0.0394,-0.0238,0.042,-0.0374,0.0057,-0.0162,0.049,-0.0378,0.0607,-0.0327,0.0608,-0.0329,0.0293,-0.02,0.0085,-0.0097,0.0124,-0.0151,0.0111,-0.0066,0.0003,-0.0012,0.0003,-0.0005,0.0003,-0.0004,0.0002,-0.0006,0.0004,-0.0004,0.0006,-0.0003,0.0002,-0.0004,0.0002,-0.0004,0.0005,-0.0005,0.0003,-0.0004,0.0003,-0.0005,0.0003,-0.0008,0.0007,-0.0005,0.0001,-0.0005,0.0008,-0.0005,0.0004,-0.0011,0.0014,-0.0006,0.001,-0.0008,0.0008,-0.0013,0.0017,-0.0018,0.0013,-0.0014,0.0017,-0.0016,0.0013,-0.0012,0.0013,-0.0006,0.0004,-0.0005,0.0011,-0.005,0.033,-0.011,0.1595,-0.1338,0.0053,-0.0756,0.1269,-0.0506,0.1847,-0.1444,0.1071,-0.1004,0.1567,-0.2369,0.0037,-0.0174,0.0942,-0.0778,0.1871,-0.1184,0.0525,-0.0778,0.0603,-0.0976,0.0558,-0.0841,0.0596,-0.0787,0.0496,-0.0809,0.0576,-0.0573,0.1704,-0.1244,0.0582,-0.0994,0.1351,-0.0764,0.0298,-0.0385,0.0029,-0.004,0.001,-0.0008,0.0016,-0.001,0.0007,-0.0011,0.0011,-0.0007,0.0006,-0.0006,0.0006,-0.0007,0.0004,-0.0003,0.0149,-0.0152,0.0495,-0.0861,0.158,-0.1825,0.1957,-0.1882,0.0224,-0.1819,0.1322,-0.211,0.2458,-0.1506,0.0747,-0.0673,0.046,-0.0426,0.0408,-0.0394,0.0603,-0.0508,0.1073,-0.0568,0.0982,-0.0899,0.0759,-0.0889,0.1101,-0.0394,0.0206,-0.0123,0.0158,-0.0219,0.0369,-0.0054,0.034,-0.1294,0.0293,-0.1114,0.0748,-0.0333,0.0777,-0.0551,0.0912,-0.0518,0.0745,-0.0474,0.0599,-0.0457,0.0212,-0.0318,0.0059,-0.0029,0.0008,-0.0005,0.0009,-0.001,0.0005,-0.0005,0.0011,-0.0006,0.0019,-0.0012,0.0008,-0.0004,0.0009,-0.0007,0.0021,-0.0015,0.006,-0.0044,0.0093,-0.0057,0.0039,-0.0012,0.0899,-0.0786,0.1364,-0.1614,0.024,-0.0565,0.0214,-0.0107,0.0289,-0.0373,0.0677,-0.0048,0.0018,-0.0012,0.0002,-0.0034,0.1864,-0.0784,0.2966,-0.2107,0.1568,-0.1195,0.1343,-0.1044,0.0984,-0.1084,0.0805,-0.0431,0.0815,-0.0661,0.0589,-0.0484,0.0412,-0.0295,0.0097,-0.0089,0.001,-0.0023,0.0004,-0.0153,0.0491,-0.0154,0.1372,-0.122,0.0781,-0.2191,0.2515,-0.1282,0.1447,-0.1323,0.1378,-0.1167,0.0674,-0.1592,0.0882,-0.0282,0,-0.0978,0.0099,-0.0816,0.0048,-0.0105,0.0871,-0.0717,0.0047,-0.0122,0.0035,-0.001,0.0089,-0.0129,0.0843,-0.0392,0.0974,-0.0495,0.0455,-0.0408,0.0227,-0.0375,0.0024,-0.0011,0.0004,-0.0006,0.0005,-0.0007,0.0004,-0.0005,0.0088,-0.0109,0.0477,-0.0243,0.0175,-0.0119,0.001,-0.0026,0.0009,-0.0006,0.0005,-0.0002,0.0004,-0.0005,0.0002,-0.0004,0.0004,-0.0004,0.0006,-0.0004,0.0003,-0.0006,0.0003,-0.0003,0.0004,-0.0002,0.0009,-0.0008,0.0008,-0.0007,0.0011,-0.0009,0.0008,-0.0007,0.0008,-0.0009,0.0008,-0.0009,0.0006,-0.0008,0.0006,-0.0008,0.0008,-0.0008,0.0007,-0.0007,0.0006,-0.0006,0.0008,-0.0003,0.0004,-0.0005,0.0005,-0.0004,0.0003,-0.0006,0.0003,-0.0006,0.0003,-0.0005,0.0005,-0.0012,0.0004,-0.0012,0.0003,-0.0006,0.0003,-0.0004,0.0003,-0.0004,0.0001,-0.0005,0.0008,-0.0003,0.0011,-0.0079,0.0112,-0.0316,0.1086,-0.0719,0.0719,-0.0241,0.0543,-0.04,0.0716,-0.0509,0.0729,-0.0463,0.0683,-0.0613,0.0557,-0.0606,0.0846,-0.0295,0.0202,-0.0307,0.0152,-0.0096,0.0024,-0.0071,0.0038,-0.0059,0.0016,-0.0028,0.0009,-0.0005,0.0006,-0.0006,0.0003,-0.0007,0.0005,-0.0006,0.0018,-0.0176,0.0047,-0.0025,0.044,-0.0295,0.0486,-0.0247,0.0219,-0.0149,0.0646,-0.0531,0.0016,-0.0178,0.0464,-0.0513,0.0171,-0.0185,0.0131,-0.02,0.0089,-0.0229,0.0259,-0.0066,0.017,-0.0146,0.0354,-0.0317,0.053,-0.0255,0.024,-0.0063,0.0029,-0.0035,0.0038,-0.0137,0.0588,-0.0351,0.0849,-0.0639,0.0576,-0.0262,0.0339,-0.0384,0.0571,-0.0435,0.0292,-0.0545,0.0107,-0.0541,0.0068,-0.0085,0.0012,-0.0009,0.0046,-0.0126,0.0532,-0.0513,0.0341,-0.0471,0.0334,-0.0451,0.0364,-0.0033,0.0221,0,0.0056,-0.0202,0.1462,-0.1459,0.1243,-0.139,0.0068,-0.0219,0.0609,-0.0493,0.0387,-0.0156,0.0824,-0.0482,0,-0.0503,0.1076,-0.0518,0.045,-0.0509,0.0209,-0.0184,0.0199,-0.0552,0.0059,-0.0492,0.0416,-0.0381,0.056,-0.0393,0.0111,-0.0275,0.0052,-0.0012,0.0004,-0.0012,0.0005,-0.0017,0.0005,-0.0003,0.0005,-0.0004,0.0003,-0.0005,0.0005,-0.0004,0.0004,-0.0004,0.0004,-0.0006,0.0008,-0.0005,0.0005,-0.0015,0.0005,-0.0009,0.0009,-0.0018,0.0008,-0.0009,0.0009,-0.0008,0.0015,-0.0011,0.0007,-0.0007,0.0009,-0.001,0.0008,-0.0011,0.0002,-0.0006,0.0146,-0.0005,0.0263,-0.0376,0.0535,-0.0815,0.3125,-0.2393,0.3049,-0.0719,0.0187,-0.045,0.0488,-0.0561,0.0504,-0.0388,0.0294,-0.0037,0.064,-0.0153,0.0495,-0.0371,0.0115,-0.0012,0.0861,-0.0824,0.1115,-0.0487,0.0012,-0.0023,0.1391,-0.0149,0.0795,-0.0755,0.1043,-0.0795,0.1403,-0.1171,0.086,-0.0627,0.0568,-0.0935,0.0854,-0.0869,0.0942,-0.0566,0.0421,-0.0795,0.0479,0,0.0313,-0.0535,0.0358,-0.0341,0.0146,-0.0152,0.0103,-0.0112,0.0091,-0.0007,0.0525,-0.0222,0.1185,-0.0729,0.1653,-0.077,0.0972,-0.0681,0.05,-0.0177,0.0026,-0.002,0.0612,-0.0389,0.0319,-0.0648,0.0696,-0.0966,0.0803,-0.0881,0.0749,-0.042,0.0141,-0.0386,0.0014,-0.0012,0.0271,-0.0114,0.0033,-0.0034,0.0039,-0.0879,0.1244,-0.0618,0.0038,-0.0564,0.0022,-0.0005,0.0012,-0.0005,0.0051,-0.0103,0.0204,-0.0092,0.0037,-0.0041,0.0264,-0.0032,0.0035,-0.0352,0.1193,-0.0506,0.0348,-0.0328,0.0472,-0.042,0.013,-0.0226,0.0294,-0.0407,0.0387,-0.0318,0.0264,-0.0355,0.0333,-0.023,0.045,-0.0379,0.0679,-0.0385,0.0114,-0.0087,0.0119,-0.0466,0.012,-0.0283,0.0062,-0.0062,0.0013,-0.0016,0.0002,-0.0007,0.0003,-0.0007,0.0001,-0.0005,0.0004,-0.0003,0.0003,-0.0005,0.0001,-0.0004,0.0004,-0.0003,0.0001,-0.0003,0.0006,-0.0004,0,-0.0005,0.0004,-0.0005,0.0008,-0.0007,0.0002,-0.0007,0.0005,-0.0004,0.0004,-0.0005,0.0007,-0.0004,0.0006,-0.0004,0.0006,-0.0002,0.0007,-0.0004,0.0007,-0.0006,0.0005,-0.0005,0.0006,-0.0001,0.01,-0.0004,0.0092,-0.069,0.111,-0.099,0.0043,-0.0048,0.0362,-0.0097,0.1363,-0.0811,0.0995,-0.0804,0.1041,-0.0731,0.0787,-0.0621,0.0314,-0.0423,0.0535,-0.0404,0.1026,-0.0792,0.0663,-0.0442,0.093,0,0.0733,-0.0026,0.0296,0,0.0139,-0.0163,0.0161,-0.0248,0.0311,0,0.1461,-0.0703,0.037,-0.0866,0.0395,-0.0788,0.0586,-0.1056,0.1747,-0.1263,0.0065,-0.0408,0.0682,-0.0413,0.0104,-0.0052,0.0056,-0.0136,0.044,-0.0264,0.0017,-0.0019,0.015,-0.0403,0.0523,-0.0347,0.001,-0.0009,0.0114,-0.0006,0.0879,-0.0387,0.0563,-0.0501,0.0401,-0.0263,0.0056,-0.0069,0.0012,-0.0005,0.001,-0.0005,0.0016,-0.0008,0.0007,-0.0007,0.0016,-0.0018,0.0006,-0.0004,0.0007,-0.0002,0.0007,-0.0001,0.0007,-0.0003,0.0125,-0.011,0.0744,-0.0768,0.1188,-0.0579,0.1503,0,0.0615,-0.0465,0.0377,-0.0108,0.0308,-0.0722,0.0019,-0.0209,0.0263,-0.0139,0.0463,-0.0406,0.046,-0.0338,0.1046,-0.076,0.0479,-0.0437,0.022,-0.0178,0.0012,-0.001,0.0339,-0.0327,0.0689,-0.0544,0.0562,-0.0585,0.0485,-0.0325,0.0721,-0.0315,0.0194,-0.0741,0.0017,-0.062,0.0487,-0.0144,0.0895,-0.0515,0.0948,-0.0799,0.0368,-0.0445,0.0371,0,0.0753,-0.035,0.0129,-0.0127,0.0012,-0.0124,0.0799,-0.0257,0.0173,-0.0143,0.0072,-0.0332,0.1042,-0.0848,0.0587,-0.098,0.0865,-0.0381,0.0115,-0.0185,0.0217,-0.0281,0.0679,-0.0082,0.031,-0.0482,0.0363,-0.0588,0.0155,-0.0175,0.0016,-0.0012,0.0019,-0.0006,0.0006,-0.0005,0.0005,-0.0003,0.0004,-0.0004,0.0005,-0.0003,0.0004,-0.0003,0.0003,-0.0002,0.0006,-0.0006,0.0004,-0.0005,0.0006,-0.0005,0.0007,-0.0004,0.0009,-0.0004,0.0015,-0.0009,0.0006,-0.0008,0.0009,-0.0007,0.0005,-0.0006,0.0004,-0.0005,0.0009,-0.0004,0.0008,-0.0009,0.0007,-0.0005,0.0005,-0.0005,0.0005,-0.0003,0.0009,-0.0005,0.0022,-0.0104,0.0041,-0.0182,0.0267,-0.0872,0.0311,-0.0799,0.0714,-0.0374,0.0248,-0.032,0.0234,-0.0126,0.0345,-0.0288,0.0476,-0.0421,0.0472,-0.0278,0.0038,-0.0106,0.0066,-0.0267,0.0352,-0.0383,0.0177,-0.0246,0.0135,-0.0701,0.0444,-0.0004,0.0414,-0.0054,0.0075,-0.0057,0.0108,-0.0079,0.0654,-0.0142,0.0089,-0.0347,0.0762,-0.0459,0.014,-0.034,0.0479,-0.0317,0.0441,-0.0548,0.0803,-0.0516,0.0187,-0.0301,0.027,-0.0348,0.0686,-0.0496,0.0297,-0.0565,0.0336,-0.027,0.0512,-0.0343,0.0532,-0.0415,0.0075,-0.01,0.0605,-0.0553,0.0194,-0.0217,0.0141,-0.0072,0.0021,-0.0011,0.0005,-0.0005,0.0003,-0.0002,0.0003,-0.0005,0.0007,-0.0002,0.0004,-0.0004,0.0008,-0.0004,0.0079,-0.01,0.0218,-0.031,0.0249,-0.0292,0.0682,-0.0481,0.0086,-0.0339,0.04,-0.0329,0.0522,-0.0727,0.0668,-0.0742,0.06,-0.0448,0.0171,-0.0128,0.0162,-0.0229,0.0036,-0.0073,0.0028,-0.0081,0.0392,-0.0341,0.0478,-0.0309,0.0325,-0.0308,0.0012,-0.0016,0.0384,-0.0185,0.0614,-0.0409,0.0381,-0.0344,0.0485,-0.033,0.0116,-0.0195,0.0125,-0.0191,0.0248,-0.0021,0.001,-0.0007,0.001,-0.0004,0.0053,-0.0211,0.0034,-0.0101,0.0037,-0.0089,0.0019,-0.0036,0.0009,-0.0008,0.0004,-0.0005,0.0005,-0.0006,0.001,-0.0004,0.0006,-0.0008,0.0007,-0.0005,0.0008,-0.0016,0.0011,-0.0013,0.0004,-0.001,0.0002,-0.0006,0.0002,-0.0007,0.0008,-0.0011,0.0039,-0.0017,0.0049,-0.0018,0.0581,-0.0484,0.0396,-0.0566,0.0494,-0.0443,0.0606,-0.0501,0.0996,-0.0511,0.1398,-0.0977,0.124,-0.132,0.1106,-0.0472,0.0989,-0.0595,0.1216,-0.0625,0.0282,-0.0429,0.0444,-0.0466,0.0136,-0.0275,0.0127,-0.0133,0.1131,-0.0257,0.062,-0.0462,0.0382,-0.0548,0.0383,-0.0546,0.0199,-0.0288,0.0157,-0.0124,0.0084,-0.0074,0.0399,-0.0053,0.0837,-0.1043,0.1064,-0.0554,0.0196,-0.0301,0.0032,-0.0074,0.0083,-0.0035,0.0293,-0.0141,0.0208,-0.0661,0.0807,-0.0801,0.0689,-0.0081,0.0811,-0.1002,0.0762,-0.0505,0.052,-0.0449,0.0333,-0.0359,0.0255,-0.0439,0,-0.043,0.022,-0.0277,0.0393,-0.0238,0.0345,-0.0216,0.0327,-0.0236,0.0193,-0.0357,0.0045,-0.0058,0.0032,-0.0016,0.0011,-0.0011,0.0007,-0.0004,0.0007,-0.0004,0.0006,-0.0004,0.0003,-0.0004,0.0004,-0.0017,0.0005,-0.0003,0.0004,-0.0005,0.0003,-0.0004,0.0002,-0.0005,0.0002,-0.0004,0.0003,-0.0008,0.0004,-0.0005,0.0002,-0.0005,0.0004,-0.0005,0.0003,-0.0005,0.0006,-0.0006,0.0002,-0.0006,0.0002,-0.0007,0.0004,-0.0004,0.0001,-0.0003,0.0005,-0.0008,0.0004,-0.0005,0.0002,-0.0005,0.0002,-0.0007,0.0005,-0.0006,0.0003,-0.0012,0.0008,-0.0011,0.0005,-0.0006,0.0004,-0.0007,0.0005,-0.0004,0.0004,-0.001,0.0003,-0.0007,0.0002,-0.0004,0.0004,-0.0006,0.0007,-0.0016,0.0138,-0.006,0.0706,-0.0396,0.0617,-0.0282,0.085,-0.0413,0.004,-0.0076,0.0957,-0.0473,0.114,-0.0754,0.0864,-0.0517,0.099,-0.1016,0.047,-0.0873,0.0284,-0.0067,0.0877,-0.0659,0.0409,-0.0565,0.0909,-0.0465,0.0267,-0.0149,0.0284,-0.0122,0.0113,-0.0098,0.0011,-0.0002,0.0013,-0.0002,0.001,-0.0009,0.0009,-0.0003,0.0005,-0.0007,0.0009,-0.0003,0.0006,-0.0005,0.0002,-0.0008,0.0026,-0.0041,0,-0.0421,0.0055,-0.0397,0.0215,-0.0123,0.053,-0.0894,0.0766,-0.0806,0.1248,-0.0059,0.1202,-0.0747,0.1065,-0.1169,0.0398,-0.0404,0.0024,-0.0016,0.0284,-0.0584,0.0438,-0.0501,0.0319,-0.0305,0.0129,-0.0094,0.014,-0.0035,0.0324,-0.0417,0.0728,-0.0296,0.0329,-0.0238,0.0212,-0.034,0.0338,-0.0325,0.0304,-0.0267,0.0111,-0.0201,0.0055,-0.0095,0.0004,-0.0015,0.0003,-0.0004,0.0002,-0.0005,0.0004,-0.0004,0.0002,-0.0006,0.001,-0.001,0.0003,-0.0011,0.0004,-0.0006,0.0004,-0.0007,0.0449,-0.049,0.0008,-0.0123,0.0049,-0.0079,0.0046,-0.0038,0.0017,-0.008,0.1254,-0.0763,0.1669,-0.1315,0.1118,-0.1154,0.0673,-0.0569,0.1003,-0.0633,0.0086,-0.006,0.0014,-0.0061,0.0258,-0.0168,0.0096,-0.0024,0.0025,-0.0979,0.0314,-0.0814,0.0192,-0.0107,0.0129,-0.0093,0.0053,-0.0007,0.0022,-0.0071,0.0628,-0.0393,0.0221,-0.0364,0.0193,-0.0166,0.0016,-0.0025,0.0006,-0.0012,0.0015,-0.0008,0.0011,-0.0007,0.0014,-0.001,0.0006,-0.0003,0.0004,-0.0004,0.0005,-0.0008,0.0128,-0.0144,0.0289,-0.0447,0.028,-0.0117,0.0026,-0.0006,0.0004,-0.0006,0.0006,-0.0004,0.0014,-0.021,0.0914,-0.044,0.026,-0.0304,0.0042,-0.0124,0.0459,-0.0684,0.0445,-0.0671,0.0826,-0.0959,0.0163,-0.0182,0.0157,-0.0185,0.1269,-0.0903,0.087,0,0.0425,-0.0184,0.0504,-0.0686,0.0386,-0.0533,0.0442,-0.0525,0.0308,-0.0427,0.0476,-0.0433,0.0008,-0.0091,0.0113,-0.0014,0.0188,-0.0231,0.0561,-0.0456,0.0769,-0.0686,0.0864,0,0.0012,-0.0322,0.0113,-0.0265,0,-0.031,0.0096,-0.0174,0.0237,0,0.0045,-0.0315,0.0293,-0.0142,0.0311,-0.0333,0.0082,-0.0254,0.0094,-0.0011,0.0005,-0.0016,0.0002,-0.0007,0.0003,-0.0005,0.0002,-0.0005,0.0117,-0.0072,0.0244,-0.0209,0.0044,-0.0087,0.0007,-0.0011,0.0007,-0.0002,0.0003,-0.0004,0.0006,-0.0003,0.0003,-0.0006,0.0003,-0.0004,0.0004,-0.0005,0.0005,-0.0001,0.0002,-0.0005,0.0009,-0.0007,0.0005,-0.0009,0.0009,-0.001,0.0014,-0.0006,0.0007,-0.0007,0.0003,-0.0005,0.0004,-0.0004,0.0005,-0.0004,0.0479,-0.0002,0.102,-0.1328,0.242,-0.2248,0.0602,-0.0226,0.089,-0.0678,0.0009,-0.02,0.0604,-0.1045,0.0891,-0.0817,0.04,-0.0316,0.1066,-0.0528,0.1439,-0.0687,0.017,-0.065,0.0102,-0.0127,0.0484,-0.0365,0.0365,-0.0133,0.004,-0.0027,0,-0.062,0.024,-0.0334,0.0697,-0.0631,0.0365,-0.0291,0.0026,-0.0029,0.0004,-0.0006,0.0004,-0.0002,0.083,-0.0397,0.0622,-0.0334,0.0086,-0.0195,0.0013,-0.0032,0.001,-0.0009,0.0008,-0.0008,0.001,-0.0008,0.0005,-0.0007,0.0009,-0.0016,0.0007,-0.0007,0.0006,-0.0003,0.0006,-0.0004,0.0014,-0.0268,0.05,-0.0416,0,-0.0673,0.0053,-0.0168,0.0316,-0.0272,0.029,-0.0172,0.0308,-0.0123,0.0321,-0.0372,0.1156,-0.0997,0.0181,-0.0051,0.0217,-0.0024,0.0012,-0.0002,0.0343,-0.0115,0.1144,-0.0641,0.118,-0.0659,0.0989,-0.0655,0.0752,-0.0672,0.0827,-0.0723,0.0663,-0.0967,0.0462,-0.0708,0.0487,-0.0704,0.0397,-0.0158,0.0293,-0.0208,0.03,-0.0495,0.0607,-0.0339,0.0248,-0.0227,0.0088,-0.0065,0.0008,-0.0005,0.0009,-0.0015,0.0013,-0.0009,0.0005,-0.0004,0.0006,-0.0004,0.0002,-0.0006,0.0003,-0.0007,0.0047,-0.0064,0.0069,-0.0032,0.0112,-0.0068,0.0146,-0.0275,0.0806,-0.0401,0.0988,-0.0606,0.0833,-0.0602,0.0039,-0.0137,0.0983,-0.0897,0.1613,-0.1475,0.101,-0.0838,0.0329,-0.0876,0.0167,-0.0412,0.0783,-0.0574,0.0247,-0.0971,0.0338,-0.0497,0.0425,-0.0454,0.0287,-0.0264,0.0132,-0.0423,0.0092,-0.0025,0.0441,-0.0848,0.0601,-0.0432,0.0266,-0.0233,0.0423,-0.0447,0.0428,-0.0424,0.0225,-0.0223,0.0452,-0.0296,0.0498,-0.0379,0.0225,-0.0274,0.0391,-0.0163,0.0227,-0.016,0.0155,-0.0128,0.0065,-0.0045,0.0005,-0.0002,0.0006,-0.0007,0.0005,-0.0005,0.0005,-0.0006,0.0005,-0.0001,0.0006,0,0.0007,-0.0005,0.0007,-0.0002,0.0005,-0.0002,0.0004,-0.0005,0.0007,-0.0004,0.0005,-0.0004,0.0005,-0.0004,0.0009,-0.0007,0.0009,-0.0007,0.0005,-0.0008,0.0008,-0.0002,0.0007,-0.0006,0.0009,-0.0004,0.0007,-0.0006,0.0002,-0.0003,0.0002,-0.0007,0.0008,-0.0001,0.0031,-0.0016,0.0106,-0.0022,0.1427,-0.0917,0.0218,-0.1187,0.1439,-0.0843,0.0389,-0.0568,0.0049,-0.0015,0.0974,-0.0572,0.0627,-0.108,0.0824,-0.0599,0.0916,-0.0804,0.0217,-0.0285,0.0132,-0.0229,0.0024,-0.0062,0.0015,-0.0011,0.0006,-0.0007,0.0005,-0.0009,0.0003,-0.0003,0.0005,-0.0002,0.0024,-0.0111,0.0208,-0.0117,0.0074,-0.0221,0.0378,-0.0584,0.0677,-0.1245,0.1126,-0.08,0.1564,-0.1058,0.0581,-0.0563,0.1011,-0.0871,0.093,-0.0476,0.0253,-0.0554,0.0934,-0.0453,0.0028,-0.0011,0.072,-0.1292,0.1227,-0.1415,0.0596,-0.0712,0.0225,-0.0678,0.0273,-0.0195,0.0909,-0.0758,0.0884,-0.0735,0.047,-0.0485,0.006,-0.0265,0.0009,-0.0006,0.0014,-0.0011,0.0018,-0.0008,0.0017,-0.0003,0.0016,-0.0012,0.002,-0.0011,0.0005,-0.0006,0.0007,-0.0045,0.0325,-0.0222,0.0284,-0.194,0.0655,-0.1125,0.1304,-0.0915,0.0848,-0.0251,0.008,-0.0232,0.0659,-0.0734,0.1105,-0.0806,0.0193,-0.0151,0.0017,-0.002,0.1047,-0.0632,0.0434,-0.0835,0.0039,-0.0041,0.0098,-0.0132,0.0075,-0.0598,0.0393,-0.0643,0.0471,-0.0437,0.0374,-0.0456,0.0705,-0.0479,0.0295,-0.0534,0.0038,-0.0028,0.0008,-0.0004,0.0006,-0.0005,0.0584,-0.0314,0.0235,-0.0324,0.0029,-0.0019,0.0217,-0.0068,0.0037,-0.0006,0.0185,-0.0162,0.0182,-0.0072,0.0028,-0.0726,0.0837,-0.0647,0.0592,-0.047,0.0683,-0.0789,0.068,-0.0517,0.069,-0.0464,0.0549,-0.0412,0.036,-0.0191,0.0044,-0.0019,0.0008,-0.0009,0.0003,-0.0004,0.0004,-0.001,0.0004,-0.0007,0.0006,-0.0011,0.0014,-0.0014,0.0013,-0.0011,0.0013,-0.0017,0.0003,-0.0012,0.0003,-0.0006,0.0004,-0.0344,0.092,-0.0856,0.1083,-0.1167,0.0668,-0.0656,0.0586,-0.0663,0.0604,-0.045,0.0025,-0.0057,0.0743,-0.0472,0.0515,-0.0555,0.0672,-0.0415,0.0421,-0.0415,0.0761,-0.0471,0.0337,-0.0457,0.0494,-0.0968,0.0544,-0.0018,0.1069,-0.0897,0.0857,-0.0756,0.0491,-0.0723,0.0744,-0.0482,0.0061,-0.0147,0.0095,-0.0005,0.0074,-0.0065,0.0619,-0.0204,0.0983,-0.1023,0.0319,-0.0551,0.0429,-0.0542,0.0473,-0.0033,0.0682,-0.0798,0.0607,-0.052,0.0536,-0.0479,0.0552,-0.0145,0.0589,-0.0631,0.0637,-0.0462,0.0588,-0.0598,0.0514,-0.036,0.0522,-0.033,0.0251,-0.02,0.0265,-0.019,0.031,-0.0201,0.0224,-0.014,0.0394,-0.036,0.0399,-0.0258,0.0024,-0.0033,0.0303,-0.0123,0.0326,-0.0259,0.0069,-0.0051,0.003,-0.0064,0.0078,-0.0088,0.0012,-0.0023,0.0067,-0.0043,0.006,-0.0126,0.012,-0.0072,0.0001,-0.0018,0.0012,-0.0005,0.0006,-0.0007,0.0005,-0.0004,0.0002,-0.0004,0.0002,-0.0005,0.0004,-0.0006,0.0005,-0.0008,0.0004,-0.0004,0.0003,-0.0002,0.0004,-0.0006,0.0004,-0.0004,0.0004,-0.0005,0.0005,-0.0003,0.0005,-0.0005,0.0004,-0.0004,0.0006,-0.0006,0.0002,-0.0003,0.0004,-0.0006,0.0004,-0.0004,0.0004,-0.0004,0.0006,-0.0002,0.0005,-0.0004,0.0004,-0.0002,0.0005,-0.0005,0.0003,-0.0005,0.0006,-0.0002,0.0004,-0.0003,0.0004,-0.0005,0.0004,-0.0004,0.0005,-0.0006,0.0005,-0.0005,0.0005,-0.0004,0.0004,-0.0005,0.0004,-0.0005,0.0004,-0.0005,0.0004,-0.0002,0.0003,-0.0004,0.0006,-0.0004,0.0004,-0.0006,0.0004,-0.0004,0.0004,-0.0011,0.0002,-0.0007,0.0002,-0.0003,0.0002,-0.0002,0.0004,-0.0004,0.0006,-0.0002,0.0005,-0.0006,0.0003,-0.0004,0.0003,-0.0004,0.0004,-0.0003,0.0003,-0.0004,0.0003,-0.0003,0.0014,-0.0004,0.001,-0.0008,0.0007,-0.0004,0.0013,-0.0005,0.003,-0.0021,0.0417,-0.0189,0.0259,-0.0099,0.0108,-0.0209,0.0713,-0.016,0.0624,-0.0702,0.0445,-0.0533,0.026,-0.0489,0.0302,-0.0395,0.02,-0.0239,0.0503,-0.0436,0.0393,-0.0186,0.0433,-0.0321,0.0592,-0.0433,0.0207,-0.0221,0.028,-0.0214,0.0372,-0.0192,0.0181,-0.0122,0.0058,-0.0062,0.0003,-0.0007,0.0004,-0.0004,0.0003,-0.001,0.0008,-0.0006,0.0004,-0.0007,0.0005,-0.0006,0.0004,-0.0005,0.0006,-0.0004,0.0005,-0.0003,0.0007,-0.0004,0.0001,-0.0005,0.0158,-0.0001,0.071,-0.0467,0.1444,-0.0661,0.1124,-0.069,0.1003,-0.0494,0.0264,-0.0531,0.0017,-0.0054,0.0021,-0.0005,0.0001,-0.0007,0.0007,-0.0217,0.0918,-0.0572,0.1116,-0.029,0.0519,-0.0336,0.0617,-0.0462,0.0693,-0.0569,0.0208,-0.0156,0.0497,-0.0707,0.0282,-0.0257,0.038,-0.0114,0.0069,-0.0053,0.077,-0.0754,0.0789,-0.04,0.003,-0.0025,0.0356,-0.0211,0.0341,-0.0325,0.0223,-0.0259,0.0385,-0.0304,0.0295,-0.0254,0.0319,-0.0275,0.0212,-0.009,0.007,-0.1156,0.1519,-0.128,0.148,-0.0683,0.0296,-0.0008,0.0014,-0.0102,0.0858,-0.0621,0.0436,-0.0397,0.0323,-0.0399,0.0266,-0.0217,0.0224,-0.0228,0.0471,-0.0403,0.0267,-0.0222,0.0101,-0.0228,0,-0.0306,0.0224,-0.0196,0.0216,-0.024,0.0321,-0.0239,0.0388,-0.0226,0.0437,-0.0246,0.0017,-0.0082,0.0232,-0.0136,0.0069,-0.0034,0.0004,-0.0014,0.0003,-0.0006,0.0001,-0.0004,0.0004,-0.0005,0.0002,-0.0005,0.0003,-0.0007,0.0005,-0.0003,0.0002,-0.0004,0.0003,-0.0004,0.0004,-0.0004,0.0003,-0.0007,0.0005,-0.0007,0.0003,-0.0004,0.0006,-0.0005,0.0004,-0.0004,0.0003,-0.0004,0.0002,-0.0005,0.0005,-0.0004,0.0005,-0.0004,0.0004,-0.0004,0.0003,-0.0004,0.0003,-0.0003,0.001,-0.0004,0.0007,-0.0006,0.0006,-0.0004,0.0005,-0.0016,0.0088,-0.0054,0.0156,-0.0103,0.1163,-0.033,0.0327,-0.0824,0.0682,-0.1056,0.0559,-0.0915,0.0855,-0.0113,0.1969,-0.1853,0.0062,-0.0215,0.0054,-0.0048,0.0137,-0.0184,0,-0.0615,0,-0.0645,0.0015,-0.0434,0.0021,-0.0002,0.0004,-0.0009,0.0007,-0.0004,0.0006,-0.0004,0.0002,-0.0005,0.0011,-0.0006,0.012,-0.0136,0.0158,-0.0406,0.1082,-0.0719,0.072,-0.0944,0.0742,-0.1727,0.109,-0.0847,0.0743,-0.0803,0.1184,-0.18,0.1313,-0.1768,0.1143,-0.1035,0.1205,-0.0446,0.0022,-0.0013,0.0737,-0.0391,0.1003,-0.0806,0.1193,-0.0758,0.099,-0.0801,0.0582,-0.0435,0.0048,-0.0233,0.0023,-0.0005,0.0009,-0.0013,0.001,-0.0011,0.0012,-0.0012,0.0009,-0.0011,0.0004,-0.0004,0.0006,-0.0003,0.0006,-0.0005,0.0129,-0.0042,0.0427,-0.0771,0.1044,-0.2415,0.182,-0.1197,0.0026,-0.086,0.015,-0.0075,0.0105,-0.0171,0.0474,-0.0595,0.0345,-0.0614,0.0646,-0.0455,0.0556,-0.0707,0.0461,-0.066,0.0155,-0.0053,0.0188,-0.0216,0.0063,-0.0412,0.0552,-0.0499,0.1345,-0.0897,0.0557,-0.1111,0.0983,-0.0101,0.0349,-0.1293,0.0361,-0.1144,0.0044,-0.0041,0.0156,-0.0197,0.1132,-0.1042,0.1106,-0.0983,0.0921,-0.059,0.0277,-0.045,0.0869,-0.0633,0.0287,-0.0558,0.0547,-0.0325,0.0023,-0.0068,0.0004,-0.0012,0.0017,-0.001,0.0005,-0.0012,0.0008,-0.0012,0.0007,-0.0019,0.0007,-0.001,0.0004,-0.0009,0.0003,-0.0002,0.0002,-0.0004,0.0003,-0.0603,0.2071,-0.1037,0.0844,-0.1179,0.1572,-0.1448,0.139,-0.1184,0.1046,-0.0591,0.013,-0.0028,0.007,-0.0211,0.0572,-0.0662,0.1065,-0.0581,0.0948,-0.0753,0.1633,-0.1269,0.0873,-0.0792,0.0296,-0.0321,0.0162,-0.0149,0.0073,-0.0062,0.0155,-0.0314,0.0474,-0.0348,0.0244,-0.0207,0.0092,-0.0059,0.0003,-0.0006,0.0003,-0.0009,0.0002,-0.0004,0.0008,-0.0006,0.0005,-0.0004,0.0007,-0.0004,0.0005,-0.0006,0.0006,-0.0003,0.0003,-0.0005,0.0662,-0.0214,0.1073,-0.0823,0.0464,-0.076,0.0258,-0.0658,0.0304,-0.0193,0.0763,-0.1088,0.0505,-0.0939,0.0745,-0.1165,0.0856,-0.0718,0.0724,-0.1319,0.0713,-0.0772,0.0513,-0.0752,0.0594,-0.0708,0.058,-0.1001,0.1051,-0.0462,0.0399,-0.084,0.0027,-0.0051,0.0073,-0.004,0.009,-0.0074,0.0752,-0.0177,0.1331,-0.0611,0.1266,-0.093,0.0786,-0.0949,0.0892,-0.0843,0.0024,-0.0034,0.0012,-0.0016,0.0005,-0.0005,0.068,-0.0356,0.0715,-0.0426,0.0011,-0.0024,0.0046,-0.0023,0.0007,-0.0004,0.0215,-0.0162,0.011,-0.0228,0.0083,-0.0087,0.0036,-0.0013,0.0005,-0.0009,0.0003,-0.0002,0.0002,-0.0006,0.0007,-0.0005,0.0004,-0.0005,0.0003,-0.0001,0.0004,-0.0002,0.0004,-0.0005,0.0001,-0.0003,0.0005,-0.0002,0.0004,-0.0004,0.0004,-0.0006,0.0004,-0.0005,0.0006,-0.0004,0.0005,-0.0002,0.0006,-0.0004,0.0003,-0.0007,0.0003,-0.0003,0.0004,-0.0005,0.0004,-0.001,0.0004,-0.0004,0.0005,-0.0007,0,-0.0008,0.0001,-0.0005,0.0004,-0.0004,0.0001,-0.0005,0.0004,-0.0007,0.0002,-0.0007,0.0003,-0.001,0.0002,-0.0006,0.0003,-0.0009,0.0004,-0.0005,0.0011,-0.0016,0.0003,-0.0004,0.0011,-0.0004,0.0007,-0.0006,0.0008,-0.0005,0.0004,-0.0007,0.0003,-0.0006,0.0004,-0.0007,0.0004,-0.0004,0.0006,-0.0006,0.001,-0.0005,0.0005,-0.0002,0.0002,-0.0003,0.0004,-0.0004,0.0003,-0.0004,0.0005,-0.0003,0.0004,-0.0005,0.0003,-0.0002,0.0212,-0.011,0.0212,-0.0175,0.0271,-0.0349,0.014,-0.0082,0.0122,-0.0083,0.0141,-0.0113,0.023,-0.0169,0.0455,-0.014,0.0086,-0.0134,0.0109,-0.0053,0.0125,-0.0045,0.0061,-0.0018,0.0008,-0.0021,0.0003,-0.0005,0.0002,-0.0002,0.0144,-0.0082,0.0092,-0.0095,0.0148,-0.0073,0.026,-0.0081,0.0178,-0.0139,0.0183,-0.0156,0.0087,-0.0129,0.0127,-0.0105,0.0288,-0.0244,0.0202,-0.0148,0.012,-0.0134,0.0107,-0.0142,0.0187,-0.0145,0.0105,-0.0136,0.0083,-0.007,0.0044,-0.0008,0.004,-0.0005,0.025,-0.0055,0.02,-0.0149,0.0075,-0.0119,0.0632,-0.0339,0.0755,-0.0528,0.0709,-0.0363,0.064,-0.0443,0.0582,-0.0498,0.0411,-0.0195,0.0042,-0.0054,0.0055,-0.006,0.0021,-0.0021,0.0008,-0.0021,0.0005,-0.0005,0.0005,-0.0006,0.0006,-0.0003,0.0003,-0.0002,0.0005,-0.0005,0.0006,-0.0003,0.0002,-0.0006,0.0007,-0.0007,0.0006,-0.0007,0.0004,-0.0008,0.0003,-0.0013,0.0006,-0.0011,0.0008,-0.0009,0.0007,-0.0009,0.0011,-0.0016,0.001,-0.0006,0.0007,-0.0011,0.0009,-0.0012,0.0004,-0.0008,0.0003,-0.0006,0.0003,-0.0003,0.0003,-0.0006,0.0004,-0.0006,0.0235,-0.0083,0.0085,-0.0164,0.0846,-0.0801,0.0525,-0.0829,0.0306,-0.0556,0.0422,-0.0891,0.0586,-0.0543,0.0535,-0.049,0.0034,-0.0378,0.0005,-0.0019,0.0001,-0.0354,0.0079,-0.0205,0.0121,-0.0302,0.039,-0.0269,0.0269,-0.0298,0.0168,-0.0243,0.0403,-0.0512,0.0343,-0.0649,0.0464,-0.0787,0.0254,-0.0067,0.0082,-0.0109,0.0128,-0.0101,0.0149,-0.0153,0.0186,-0.0091,0.0016,-0.0018,0.0037,-0.0013,0.0171,-0.0294,0.0168,-0.0263,0.0112,-0.0063,0.0278,-0.0132,0.0368,-0.0759,0.0486,-0.0048,0.0209,-0.0264,0.0139,-0.0237,0.016,-0.0141,0.008,-0.0067,0.004,-0.0041,0.0015,-0.0014,0.0009,-0.0006,0.0006,-0.0002,0.0006,-0.0005,0.0007,-0.0005,0.0003,-0.0002,0.0007,-0.0004,0.001,-0.0008,0.0004,-0.0004,0.0011,-0.0009,0.0012,-0.0007,0.0008,-0.001,0.0007,-0.0009,0.0006,-0.0006,0.0006,-0.001,0.0003,-0.0007,0.0007,-0.001,0.0007,-0.0007,0.0004,-0.001,0.0004,-0.0007,0.0004,-0.0004,0.0002,-0.0008,0.0004,-0.0005,0,-0.0005,0.0001,-0.0003,0.0006,-0.0004,0.0002,-0.0007,0.0523,-0.0184,0.0237,-0.0297,0.027,-0.0516,0.0803,-0.0912,0.006,-0.0063,0.0047,-0.0136,0.0692,-0.0536,0.1049,-0.0867,0.1467,-0.1253,0.1811,-0.0842,0.0217,-0.0757,0.0317,-0.0544,0.0321,-0.0321,0.0328,-0.0364,0.0229,-0.0108,0.0119,-0.0306,0.0245,-0.0199,0.0065,-0.0581,0.0568,-0.0119,0.1125,0,0.1313,-0.0973,0.0119,-0.1169,0.0113,-0.0115,0.001,-0.001,0.011,-0.1054,0.1346,-0.0294,0.0753,-0.0877,0.0716,-0.0209,0.0991,-0.0607,0.0623,-0.0785,0.0655,-0.0857,0.0236,-0.0188,0.0131,-0.0014,0.0023,-0.046,0.0363,-0.022,0.0259,-0.0278,0.0331,-0.034,0.0225,-0.0136,0.0103,-0.0076,0.0225,-0.0331,0.039,-0.0319,0.0171,-0.0167,0.0374,-0.0446,0.0124,-0.0164,0.0045,-0.0063,0.0002,-0.0006,0.0005,-0.0005,0.0002,-0.0004,0.0006,-0.0003,0.0006,-0.0004,0.0004,-0.0004,0.0003,-0.0004,0.0005,-0.0004,0.0006,-0.0004,0.0001,-0.0004,0.0004,-0.0003,0.0003,-0.0003,0.0003,-0.0005,0.0004,-0.0005,0.0002,-0.0004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0003,-0.0004,0.0071,-0.0004,0.0175,0,0.1376,-0.048,0.1325,-0.1395,0.0584,-0.0933,0.0778,-0.119,0.1001,-0.0385,0.0429,-0.1292,0.3099,0,0.4483,-0.2268,0.1271,-0.2391,0.1865,-0.1587,0.1992,-0.1203,0.2059,-0.1446,0.1204,-0.0489,0.4392,-0.2613,0.0654,-0.0931,0.0973,-0.0596,0.0323,-0.0158,0.1021,-0.0973,0.0231,-0.0123,0.1788,-0.1921,0.2748,-0.2506,0.2127,-0.0266,0.0928,-0.223,0.1415,-0.2524,0.0193,-0.027,0.0045,-0.072,0.1543,-0.1143,0.1172,-0.0646,0.0299,-0.0649,0.0196,-0.0658,0.1058,-0.1202,0.1604,-0.0734,0.0841,-0.073,0.0207,-0.0234,0.0333,-0.0472,0.1804,-0.0652,0.1246,-0.1345,0.0405,-0.0378,0.1067,-0.1139,0.0894,-0.0481,0.0521,-0.0577,0.101,-0.0225,0.1169,-0.0982,0.0299,-0.0432,0.059,-0.042,0.0391,-0.04,0.026,-0.0416,0.0168,-0.0107,0.0043,-0.006,0.0029,-0.003,0.0062,-0.0088,0.0148,-0.023,0.1168,-0.0746,0.1396,-0.0843,0.0146,-0.0822,0.0477,-0.0258,0.0347,-0.0162,0.0051,-0.0027,0.0738,-0.09,0.1099,-0.0545,0.0339,-0.0307,0.0053,-0.0081,0.0005,-0.0007,0.0005,-0.0005,0.0003,-0.0009,0.0002,-0.0004,0.0002,-0.0007,0.0008,-0.0007,0.0013,-0.0008,0.0015,-0.001,0.0016,-0.001,0.001,-0.0016,0.0009,-0.0011,0.0009,-0.0005,0.0006,-0.0005,0.0058,-0.0052,0.0039,-0.0074,0.0409,-0.1018,0.1639,-0.3215,0.2397,-0.1174,0.0689,-0.0602,0.0021,-0.003,0.0458,-0.0468,0.1172,-0.1876,0.01,-0.0307,0.0035,-0.0081,0.0046,-0.0084,0.0472,-0.0449,0.1771,-0.0327,0.1385,-0.1505,0.1419,-0.0765,0.0057,-0.0151,0.0182,-0.0513,0.0534,-0.0625,0.1092,-0.0581,0.0025,-0.0049,0.0403,-0.0287,0.0487,-0.0243,0.0503,-0.0505,0.0941,-0.0622,0.0737,-0.0505,0.0728,-0.064,0.0178,-0.0396,0.034,-0.0429,0.0263,-0.0364,0.0314,-0.0358,0.0241,-0.0275,0.0158,-0.0111,0.0002,-0.0008,0.0035,-0.0005,0.0006,-0.0009,0.0005,-0.0021,0.001,-0.0011,0.0004,-0.0004,0.0051,-0.0015,0.0312,-0.0137,0.0271,-0.0158,0.0016,-0.0013,0.1101,-0.1191,0,-0.1857,0,-0.0892,0.1374,-0.1632,0.1408,-0.1388,0.1013,-0.095,0.0482,-0.0592,0.056,-0.0291,0.0453,-0.0253,0.0084,-0.0062,0.0961,-0.0216,0.0766,-0.0726,0.0923,-0.06,0.0842,-0.0517,0.0819,-0.0225,0.0095,-0.0025,0.1056,-0.0385,0.0477,-0.0567,0.0098,-0.0241,0.001,-0.0012,0.0023,-0.0032,0.0008,-0.0016,0.0007,-0.0022,0.0014,-0.0008,0.0021,-0.002,0.0009,-0.0006,0.0008,-0.0033,0.0035,-0.0052,0.0138,-0.0128,0.0317,-0.091,0.1606,-0.1293,0.0248,-0.1596,0.1359,-0.052,0,-0.1422,0.0135,-0.0067,0.1155,-0.1115,0.1007,-0.0855,0.0929,-0.0866,0.0523,-0.0823,0.0814,-0.0752,0.0887,-0.0553,0.2062,-0.017,0.189,0,0.0061,-0.0097,0.0081,-0.0091,0.0061,-0.0014,0.0712,-0.077,0.1046,0,0.0333,-0.0312,0.033,-0.0247,0.0119,-0.0354,0.0255,-0.018,0.0408,-0.0675,0.0204,-0.0676,0,-0.062,0.0244,-0.0176,0.0103,-0.0019,0.0007,-0.0017,0.0004,-0.0022,0.0015,-0.0015,0.0017,-0.0013,0.0011,-0.0018,0.001,-0.0007,0.0003,-0.0005,0.0007,-0.0008,0.0072,-0.0116,0.0266,-0.086,0.0156,-0.0153,0.0094,-0.0133,0.2276,-0.1012,0.2509,-0.1275,0.1891,-0.1538,0.0895,-0.1102,0.0467,-0.092,0.066,0,0.0622,-0.094,0.0299,-0.1235,0.0095,-0.0261,0.0952,-0.0294,0.1008,-0.0797,0.0436,-0.0999,0.026,-0.0377,0.0229,-0.0294,0.0269,-0.1105,0.0116,-0.1009,0.0047,-0.0117,0.0013,-0.0016,0.0005,-0.0008,0.1028,-0.0568,0.025,-0.0126,0.0017,-0.0054,0.0004,-0.0005,0.0073,-0.0421,0.0712,-0.0446,0.0293,-0.0119,0.0038,-0.0034,0.0006,-0.0005,0.0003,-0.0005,0.0004,-0.0008,0.002,-0.0004,0.0001,-0.0006,0.0005,-0.0006,0.0006,-0.0016,0.0009,-0.0007,0.0005,-0.0008,0.0004,-0.0009,0.0002,-0.0009,0.0008,-0.0005,0,0,0,0,0,0,0,0,0,0,0,0,0.0001,0,0.0002,-0.0005,0.0014,-0.0036,0.0032,-0.0065,0.0755,-0.0616,0.0822,-0.0598,0.0869,-0.0818,0.0335,-0.0129,0.1401,-0.2314,0.0638,-0.144,0.0092,-0.0316,0.1124,-0.0818,0.0533,-0.1464,0.1572,-0.1641,0.0119,-0.0247,0.027,-0.003,0.1324,-0.131,0.1641,-0.0232,0.035,-0.0109,0.018,-0.0077,0.0021,-0.0027,0.0478,-0.0143,0.0173,-0.0559,0.0859,-0.008,0.2551,-0.1436,0.0788,-0.0658,0.0771,-0.0457,0.0016,-0.0148,0.002,-0.0008,0.0025,-0.0014,0.0015,-0.0006,0.0004,-0.0004,0.0006,-0.0019,0.0078,-0.0037,0.0168,-0.004,0.0712,-0.0262,0.1381,-0.0222,0.0602,-0.0568,0.0557,-0.0428,0.0032,-0.0008,0.0033,-0.0443,0.0437,-0.098,0.2258,-0.1562,0.2632,-0.1865,0.2504,-0.1693,0.1848,-0.1823,0.069,-0.0229,0.0266,-0.028,0.0382,-0.0175,0.0034,-0.0031,0.0076,-0.005,0.0322,-0.0091,0.0166,-0.065,0.0824,-0.0367,0,-0.0262,0.0431,-0.0175,0.0297,-0.0108,0.0345,-0.0396,0.1439,-0.1239,0.0424,-0.0309,0.0858,-0.031,0.0955,-0.0713,0.0356,-0.0227,0.0527,-0.0395,0.1211,-0.0505,0.1333,-0.0655,0.0662,-0.0286,0.0918,-0.0564,0.0275,-0.0468,0.031,-0.0363,0.0297,-0.0194,0.0088,-0.0024,0.0004,-0.0009,0.0004,-0.0002,0.0003,-0.0005,0.0007,-0.0007,0.0009,-0.0004,0.0015,-0.0011,0.0005,-0.0009,0.0003,-0.0015,0.0011,-0.0012,0.001,-0.0011,0.0006,-0.0008,0.0004,-0.0005,0.0002,-0.0065,0.0264,-0.0152,0.1134,-0.1326,0.3001,-0.1572,0.2156,-0.1912,0.0123,-0.1228,0.0855,-0.1598,0.0548,-0.0919,0.081,-0.0773,0.0909,-0.1137,0.0499,-0.0944,0.1204,-0.0371,0.0053,-0.0144,0.0017,-0.0015,0.003,-0.0012,0.0018,-0.0015,0.0006,-0.0017,0.0009,-0.0003,0.0003,-0.0007,0.0004,-0.0005,0.0058,-0.0172,0.1849,-0.1701,0.0321,-0.052,0.0742,-0.1212,0.149,-0.1657,0.0054,-0.0261,0.0526,-0.0801,0.0707,-0.1099,0.0464,-0.0703,0.0593,-0.0908,0.0642,-0.0747,0.1561,-0.2519,0.1065,-0.1418,0.096,-0.1411,0.0583,-0.1809,0.0357,-0.0204,0.0198,-0.0318,0.1289,-0.0508,0.0559,-0.008,0.1889,-0.1405,0.245,-0.2657,0.1264,-0.1063,0.0807,-0.0415,0.0677,-0.0792,0.1118,-0.1773,0.1417,-0.0938,0.0061,-0.0032,0.1427,-0.1381,0.04,-0.1145,0.122,-0.0415,0.0046,-0.0528,0.1496,-0.0821,0.1013,-0.1293,0,-0.2139,0.2427,-0.2119,0.1352,-0.0968,0.0237,-0.0805,0.0043,-0.0848,0.1661,-0.1438,0.1008,-0.1585,0.0057,-0.0113,0.007,-0.0004,0,-0.0015,0.043,-0.0185,0.1019,-0.0785,0.089,-0.0516,0.0052,-0.0214,0.0004,-0.0013,0.0032,-0.0018,0.0008,-0.0004,0.004,-0.0017,0.0036,-0.0044,0.0012,-0.0016,0.0005,-0.0009,0.002,-0.0004,0.0402,-0.0262,0.0423,-0.0877,0.1225,-0.0644,0.1158,-0.0635,0.0049,-0.0958,0.2626,-0.25,0.2391,-0.1396,0.2109,-0.1188,0.0716,-0.1152,0,-0.0869,0.0592,-0.0388,0.0246,-0.044,0.0642,-0.0247,0.0045,-0.0004,0.1723,-0.087,0.073,-0.0822,0.0676,0,0.1198,-0.1066,0.1148,-0.0752,0.1088,-0.1011,0.0743,0,0.0772,-0.0665,0.0538,-0.0498,0.0013,-0.0041,0.0015,-0.0019,0.0004,-0.0006,0.0075,-0.0419,0.0885,-0.0645,0.0431,-0.0252,0.0397,-0.0375,0.0547,-0.0492,0.0423,-0.037,0.0561,-0.0035,0.0499,-0.0462,0.0344,-0.0312,0.0328,-0.0274,0.0013,-0.001,0.0006,-0.0008,0.001,-0.0011,0.0014,-0.0022,0.0013,-0.0008,0.0006,-0.0012,0.0012,-0.0011,0.0012,-0.0014,0.0007,-0.0012,0.0008,-0.0006,0.0004,-0.0005,0.0004,-0.001,0.0055,-0.002,0.0035,-0.0044,0.0028,-0.0006,0.0209,-0.013,0.0477,-0.0548,0.1128,-0.0995,0.1076,-0.0938,0.0728,-0.0026,0.0011,-0.0026,0.0018,-0.0161,0.0173,-0.0206,0.0141,-0.0204,0.0194,-0.0159,0.1035,-0.0324,0.0161,-0.1138,0.0202,-0.0563,0.0342,-0.0043,0.0008,-0.0018,0.0073,-0.0043,0.0349,-0.0089,0.0764,-0.0677,0.0704,-0.0615,0.0434,-0.0506,0.0264,-0.0272,0.0471,-0.0489,0.0246,-0.01,0.0028,-0.0019,0.0101,-0.0407,0.0429,-0.0567,0.0882,-0.0721,0.0376,-0.0225,0.0593,-0.0249,0.0604,-0.0295,0.0137,-0.0238,0.0064,-0.0022,0.0007,-0.0006,0.0011,-0.0003,0.0012,-0.0007,0.0005,-0.0015,0.002,-0.0015,0.0021,-0.0008,0.0024,-0.001,0.0008,-0.0006,0.0007,-0.0003,0.0003,-0.0014,0.0006,-0.0021,0.0005,-0.0004,0.0273,-0.0249,0.0076,-0.0167,0.0228,-0.0015,0.0259,-0.0238,0.0614,-0.0589,0.0594,-0.0454,0.1652,-0.1338,0.1075,-0.1446,0.1316,-0.1695,0.2342,-0.1786,0.2299,-0.0811,0.0647,-0.0238,0.0316,-0.0794,0.1966,-0.0332,0.1303,-0.1382,0.0729,-0.0145,0.1256,-0.0649,0.0625,-0.0529,0.1278,-0.0382,0.0247,-0.0382,0.0501,-0.0198,0.0036,-0.0024,0.0009,-0.0007,0.0009,-0.0006,0.0008,-0.0005,0.0004,-0.0008,0.0005,-0.0003,0.0003,-0.0002,0.0005,-0.0004,0.0004,-0.0005,0.0004,-0.0009,0.0354,-0.0024,0.0071,-0.0178,0.0375,-0.0557,0.0578,-0.0353,0.0432,-0.0342,0.0488,-0.0423,0.0719,-0.078,0.044,-0.019,0.0008,-0.0028,0.1626,-0.0213,0.0122,-0.0648,0.005,-0.0001,0.1017,-0.0852,0.1436,-0.1041,0.0718,-0.1047,0.0297,-0.1007,0.0227,-0.0148,0.0009,-0.0029,0.0006,-0.0007,0.0003,-0.0004,0.0111,-0.0003,0.0285,-0.046,0.0293,-0.0132,0.0035,-0.0053,0.0022,-0.0039,0.0016,-0.0024,0.0012,-0.0012,0.0007,-0.0032,0.0005,-0.0004,0.0005,-0.0005,0.0004,-0.0004,0.0006,-0.0002,0.0004,-0.0006,0.0003,-0.0005,0.0004,-0.0005,0.0003,-0.0004,0.0004,-0.0004,0.0005,-0.0007,0.0005,-0.0006,0.0001,-0.0008,0.0004,-0.0006,0.0004,-0.0005,0.0004,-0.0006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0001,0,0.0001,-0.0006,0.0011,-0.0006,0.0002,-0.0005,0.0018,-0.002,0.0015,-0.0182,0.042,-0.0414,0.0468,-0.0695,0.0277,-0.0452,0.0178,-0.0137,0.0194,-0.0165,0.0064,-0.0078,0.0078,-0.0077,0.0423,-0.0368,0.013,-0.0175,0.0163,-0.0155,0.0233,-0.0111,0.0047,-0.0119,0.0135,-0.0334,0.0437,-0.0434,0.0396,-0.0317,0.0195,-0.0347,0.0227,-0.0466,0.0156,-0.0322,0.013,-0.0133,0.008,-0.0065,0.0076,-0.0041,0.0014,-0.0021,0.0007,-0.0021,0.0004,-0.0007,0.0004,-0.0003,0.0006,-0.0003,0.0004,-0.0007,0.0008,-0.0007,0.0005,-0.0003,0.0005,-0.0004,0.0008,-0.001,0.0008,-0.0007,0.0004,-0.0014,0.0074,-0.0068,0.0601,-0.0249,0.0678,-0.0466,0.0323,-0.0274,0.0335,-0.0332,0.0283,-0.0176,0.0319,-0.0339,0.0036,-0.0207,0.0172,-0.0156,0.0775,-0.0645,0.04,-0.059,0.0782,-0.0747,0.0312,-0.0346,0.0269,-0.0072,0.0423,-0.031,0.0305,-0.0754,0.0577,-0.0808,0.0273,-0.0429,0.0775,-0.0895,0.0167,-0.0383,0.0036,-0.0043,0.0153,-0.0095,0.0596,-0.0308,0.1056,-0.0948,0.0762,-0.0784,0.0281,-0.0455,0.0358,-0.051,0.0337,-0.0443,0.0273,-0.0174,0.0308,-0.0078,0.0084,-0.0059,0.0005,-0.0007,0.0311,-0.0404,0.0437,-0.0172,0.031,-0.0306,0,-0.016,0.0207,-0.0116,0.0117,-0.0018,0.0076,-0.0401,0.0024,-0.0008,0.0094,-0.0006,0.0367,-0.0337,0.0246,-0.0251,0.0014,-0.0008,0.0004,-0.0158,0.0624,-0.0665,0.0451,-0.0591,0.054,-0.0407,0.0342,-0.0237,0.0111,-0.0124,0.0034,-0.0092,0.0079,-0.0005,0.0006,-0.0005,0.0026,-0.0004,0.0007,-0.0002,0.0006,-0.0009,0.0008,-0.0013,0.0007,-0.0004,0.0005,-0.0006,0.0003,-0.0006,0.0004,-0.0003,0.002,-0.0007,0.0149,-0.0004,0.047,-0.0257,0.0122,-0.0191,0.0069,-0.0184,0.0096,-0.0095,0.029,-0.0142,0,-0.0231,0.107,-0.0703,0.0735,-0.0601,0.0671,-0.0138,0.0298,-0.0078,0.016,-0.0041,0.0127,-0.0166,0.0295,-0.0138,0.0091,-0.0176,0.0044,-0.0107,0.0006,-0.0009,0.0379,-0.0156,0.0163,-0.0108,0.0012,-0.0055,0.0044,-0.0116,0.0036,-0.0041,0.0227,-0.0667,0.0202,-0.012,0.0121,-0.0111,0.0083,-0.0046,0.0114,-0.0067,0.0193,-0.0149,0.0125,-0.0232,0.0994,-0.0466,0.0318,-0.0235,0.0073,-0.0036,0.0039,-0.0025,0.0023,-0.0029,0.0042,-0.0026,0.0019,-0.0023,0.0018,-0.0015,0.0025,-0.0059,0.0155,-0.0091,0.01,-0.0133,0.012,-0.0099,0.0087,-0.0116,0.0088,-0.0073,0.0049,-0.0029,0.0013,-0.0013,0.0005,-0.0006,0.0009,-0.0005,0.0006,-0.0004,0.0002,-0.0005,0.0005,-0.0004,0.0003,-0.0002,0.0004,-0.0005,0.0003,-0.0004,0.0004,-0.0007,0.0003,-0.0006,0.0003,-0.0006,0.0004,-0.0008,0.0004,-0.0011,0.0007,-0.0005,0.0005,-0.0009,0.0003,-0.0015,0.0019,-0.0015,0.0012,-0.0012,0.0011,-0.0012,0.0008,-0.0016,0.0005,-0.0007,0.0006,-0.0004,0.0004,-0.0006,0.0006,-0.0062,0.0095,-0.0243,0.0149,-0.0352,0.0149,-0.0255,0.0125,-0.0135,0.0429,-0.0239,0.027,-0.032,0.0203,-0.0077,0.0004,-0.0006,0.0386,-0.0153,0.056,-0.0607,0.0397,-0.0354,0.0127,-0.0103,0.0297,-0.0364,0.0397,-0.0358,0.0131,-0.0196,0.0174,-0.0219,0.025,-0.0294,0.034,-0.0442,0.0266,-0.0219,0.0243,-0.0184,0.0203,-0.0206,0.0347,-0.0689,0.0459,-0.0319,0.0221,-0.0277,0.0149,-0.0263,0.0019,-0.0234,0.0162,-0.0093,0.0017,-0.0169,0.0007,-0.0088,0.0548,-0.022,0.112,-0.0937,0.0179,-0.0357,0.0161,-0.108,0.1968,-0.0894,0.0667,-0.0202,0.0177,-0.0215,0.0031,-0.0292,0.0181,-0.0086,0.0171,-0.0125,0.0174,-0.0218,0.0393,-0.0236,0.0212,-0.0363,0.0061,-0.0092,0.0022,-0.005,0.0006,-0.0004,0.0017,-0.0007,0.0005,-0.0007,0.0004,-0.0007,0.0005,-0.0008,0.0009,-0.0009,0.0012,-0.0011,0.0012,-0.0007,0.001,-0.0015,0.0009,-0.0004,0.0241,-0.0168,0.0398,-0.0765,0.0233,-0.0622,0.0422,-0.0485,0.0206,-0.0338,0.0114,-0.0083,0.0145,-0.0125,0.0511,-0.1378,0.0612,-0.0335,0.0293,-0.0226,0.0542,-0.0485,0.0072,-0.0027,0.0355,-0.0819,0.1017,-0.0749,0.0928,-0.0727,0.0663,-0.0575,0.0763,-0.088,0.0344,-0.0384,0.0168,-0.0526,0.0303,-0.0641,0.0141,-0.0042,0.0548,-0.034,0.0431,-0.0298,0.0122,-0.0014,0.0589,-0.0308,0.0383,-0.0285,0.0146,-0.005,0.0076,-0.0052,0.0134,-0.0031,0.0367,-0.0117,0.0512,-0.0123,0.0117,-0.0133,0.0048,-0.0081,0.0032,-0.004,0.0079,-0.0016,0.0435,-0.0188,0.053,-0.0225,0.0157,-0.0227,0.0255,-0.022,0.029,-0.0123,0.0055,-0.005,0.0054,-0.0064,0.0138,-0.0098,0.013,-0.0111,0.0098,-0.0122,0.0247,-0.0089,0.0271,-0.0291,0.017,-0.0024,0.0113,-0.0133,0.0046,-0.0067,0.0109,-0.013,0.0048,-0.0021,0.0023,-0.0023,0.0068,-0.0081,0.0115,-0.0088,0.0255,-0.0135,0.0172,-0.0189,0.0107,-0.0023,0.0093,-0.0202,0.0139,-0.005,0.0042,-0.0027,0.003,-0.0098,0.0023,-0.0013,0.0041,-0.0061,0.0056,-0.0059,0.0039,-0.0074,0.0073,-0.0057,0.01,-0.007,0.0055,-0.0089,0.0053,-0.0021,0.0173,-0.0136,0.0191,-0.0124,0.0166,-0.0059,0.0126,-0.0128,0.0012,-0.004,0.0025,-0.0012,0.0009,-0.0011,0.0005,-0.0006,0.0007,-0.0002,0.0004,-0.0003,0.0006,-0.0008,0.0005,-0.0002,0.0005,-0.0003,0.0007,-0.0003,0.0007,-0.0005,0.0004,-0.0005,0.0006,-0.0006,0.0004,-0.0005,0.0009,-0.0006,0.0008,-0.0005,0.0009,-0.0004,0.0005,-0.0007,0.0006,-0.0002,0.0004,-0.0007,0.0005,-0.0004,0.0006,-0.0006,0.0007,-0.0003,0.0008,-0.0015,0.0023,-0.0005,0.0006,-0.0013,0.001,-0.0006,0.0004,-0.0005,0.0007,-0.0005,0.0009,-0.0003,0.0022,-0.0073,0.0047,-0.0064,0.0187,-0.0238,0.0393,-0.0683,0.0666,-0.0022,0.0171,-0.0125,0.01,-0.0106,0.0619,-0.0652,0.1005,-0.0512,0.0544,-0.0569,0.0224,-0.0276,0.006,-0.0186,0.0103,-0.0172,0.0036,-0.0158,0.0106,-0.0314,0.0331,-0.0167,0.0291,-0.0268,0.0335,-0.0035,0.0755,-0.0497,0.0513,-0.0518,0.0206,-0.0367,0.0314,-0.0442,0.0225,-0.0442,0.0552,-0.0491,0.016,-0.014,0.0017,-0.011,0.026,-0.0012,0.0187,-0.0111,0.0408,-0.0201,0.0182,-0.0201,0.017,-0.0178,0.0252,-0.062,0.0358,-0.0703,0.0732,-0.0529,0.0696,-0.0361,0.0332,-0.0328,0.0183,0,0.0162,-0.0274,0.0242,-0.0268,0.0303,-0.0341,0.0406,-0.0167,0.0006,-0.0017,0.0301,-0.0059,0.0104,-0.021,0.0738,-0.0516,0.0606,-0.0752,0.0469,-0.0497,0.0268,-0.0512,0.0185,-0.0393,0.023,-0.046,0.0298,-0.0281,0.0276,-0.0272,0.0166,-0.0395,0.0332,-0.0183,0.0034,-0.0073,0.044,-0.0239,0.041,0,0.0501,-0.0303,0.0231,-0.032,0.0183,-0.04,0.0202,-0.0349,0.0395,-0.0377,0.0171,-0.0164,0.0191,-0.025,0.0226,-0.0277,0.0119,-0.0329,0.0017,-0.0064,0.0004,-0.0017,0.0007,-0.0006,0.0005,-0.0003,0.0006,-0.0006,0.0005,-0.0004,0.0003,-0.0004,0.0006,-0.0001,0.0004,-0.0005,0.0003,-0.0006,0.0008,-0.0006,0.0006,-0.0004,0.0014,-0.0013,0.0019,-0.0018,0.0017,-0.0021,0.0005,-0.0013,0.0007,-0.0003,0.0006,-0.0003,0.0008,-0.0005,0.0008,-0.0004,0.0007,-0.0009,0.0007,-0.0012,0.001,-0.0006,0.0012,-0.001,0.0016,-0.0014,0.0044,-0.004,0.0041,-0.0045,0.0151,-0.0201,0,-0.0445,0.0107,-0.0082,0.026,-0.0122,0.0221,-0.0196,0.0262,-0.0169,0.0078,-0.0131,0.0197,-0.0122,0.0113,-0.0037,0.0069,-0.0168,0.077,-0.0582,0.0758,-0.06,0.0333,-0.0333,0.0223,-0.0098,0.0215,-0.0207,0.0124,-0.0259,0.0403,-0.0569,0.0308,-0.0575,0.0465,-0.0571,0.0432,-0.041,0.0534,-0.0469,0.0265,-0.0221,0.0031,-0.0052,0.0135,-0.0164,0.0208,-0.0106,0.019,-0.0117,0.0145,-0.0138,0.0039,-0.0156,0.0011,-0.0106,0.0207,-0.004,0.05,-0.051,0.0051,-0.0284,0.0068,-0.0042,0.0182,-0.027,0.0366,-0.0448,0.0433,-0.0825,0.0357,0,0.0261,-0.0013,0.002,-0.0005,0.0143,-0.0043,0.0119,-0.0064,0.001,-0.0008,0.0005,-0.0004,0.0003,-0.0006,0.0466,-0.0147,0.046,-0.0135,0.0252,-0.0156,0.0183,-0.0128,0.0136,-0.0202,0.0083,-0.0068,0.0072,-0.0192,0.0184,-0.0181,0.0013,-0.0008,0.0134,-0.0102,0.052,-0.0324,0.0164,-0.0115,0.0128,-0.014,0.0192,-0.0062,0.014,-0.013,0.0051,-0.0115,0.0063,-0.0081,0.0022,-0.0039,0.0005,-0.0007,0.0007,-0.0004,0.0005,-0.0006,0.0008,-0.0007,0.0015,-0.0015,0.0012,-0.0021,0.001,-0.0043,0.0068,-0.0075,0.0094,-0.0128,0.0029,-0.0034,0.0021,-0.0018,0.0075,-0.008,0.0054,-0.0136,0.0117,-0.0098,0.0761,-0.0596,0.0304,-0.042,0.0658,-0.078,0.1947,-0.0329,0.1318,-0.1997,0.0269,-0.0152,0.0487,-0.0312,0.0016,-0.0133,0.0147,-0.0074,0.0058,-0.0105,0.0205,-0.0231,0.0147,-0.0276,0.0087,-0.0017,0.0011,-0.0025,0.0396,-0.0144,0.0414,-0.0329,0.0019,-0.0091,0.0339,-0.0353,0.0287,-0.025,0.007,-0.0137,0.0041,-0.0048,0.0006,-0.0028,0.0049,-0.0039,0.0408,-0.0052,0.0015,-0.0058,0.0035,-0.0038,0.001,-0.0016,0.0007,-0.0022,0.0009,-0.0005,0.002,-0.0009,0.0016,-0.0012,0.0018,-0.0016,0.0035,-0.0012,0.0008,-0.002,0.0011,-0.0009,0.0005,-0.0004,0.0072,-0.003,0.0209,-0.0178,0.0417,-0.026,0.0032,-0.0017,0.0864,-0.0257,0.0791,-0.0573,0.0953,-0.0368,0.0339,-0.0449,0.0122,-0.0108,0.0058,-0.056,0.0461,-0.014,0.0352,-0.0367,0.0396,-0.0582,0.0353,-0.048,0.0078,-0.0047,0.0215,-0.037,0.0455,-0.0339,0.0573,-0.0608,0.0238,-0.0479,0.0284,-0.0388,0.0285,-0.0311,0.042,-0.0275,0.0634,-0.0415,0.0522,-0.0252,0.0503,-0.0288,0.0221,-0.0572,0.0314,-0.0456,0.0217,-0.0164,0.0157,-0.0444,0.0291,-0.0156,0.028,-0.0253,0.0171,-0.0324,0.0148,-0.0326,0.0188,-0.0125,0.0363,-0.0028,0.0278,-0.0107,0.0305,-0.0285,0.0154,-0.0093,0.0054,-0.0117,0.0091,-0.0128,0.0017,-0.0018,0.001,-0.001,0.0008,-0.0006,0.0003,-0.0003,0.0005,-0.0004,0.0009,-0.0004,0.0008,-0.0007,0.0012,-0.0005,0.0006,-0.0009,0.0013,-0.0013,0.0023,-0.002,0.0027,-0.0012,0.002,-0.0016,0.0021,-0.0014,0.0017,-0.0011,0.0015,-0.0022,0.0011,-0.0013,0.0005,-0.0003,0.0006,-0.0004,0.0006,-0.0004,0.0543,-0.0485,0.0705,-0.0519,0.0734,-0.0135,0.0555,-0.0335,0.0241,-0.0206,0.019,-0.0244,0.0202,-0.0288,0.0263,-0.0105,0.0262,-0.0331,0.0092,-0.039,0.023,-0.0349,0.0025,-0.0177,0.0356,-0.0242,0.0079,-0.0469,0.0676,-0.0543,0.0178,-0.0446,0.0018,-0.002,0.006,-0.0209,0.0332,-0.0191,0.0099,-0.0235,0.0253,-0.0486,0.0487,-0.0587,0.0462,-0.0743,0.0998,-0.0441,0.0665,-0.0429,0.0381,-0.0382,0.064,-0.0601,0.0617,-0.0501,0.0498,-0.0428,0.0334,-0.0443,0.0244,-0.006,0.0894,0,0.0888,0,0.0765,-0.0199,0.0016,-0.036,0.0067,-0.0088,0.0013,-0.0023,0.0024,-0.0021,0.0044,-0.0024,0.0044,-0.0018,0.0023,-0.0024,0.0006,-0.0011,0.0004,-0.0003,0.0292,-0.0689,0.0561,-0.1443,0.0577,-0.1218,0.0593,-0.0786,0.0401,-0.0685,0.0204,-0.0138,0.0423,-0.026,0.066,-0.0337,0.0832,-0.093,0.0637,-0.0828,0.0653,-0.0553,0.0836,-0.0603,0.0586,-0.0627,0.0444,-0.0533,0.0445,-0.0523,0.0311,-0.0302,0.0246,-0.0438,0.0357,-0.0296,0.044,-0.0521,0.0409,-0.054,0.0319,-0.0447,0.0129,-0.0401,0.0841,-0.1165,0.0831,-0.045,0.0561,-0.0242,0.0034,-0.0019,0.1187,-0.0488,0.0066,-0.0449,0.0027,-0.0067,0.0636,-0.0062,0.0066,-0.0074,0.0115,-0.0199,0.0201,-0.026,0.0613,-0.0072,0.0151,-0.0651,0.0516,-0.0641,0.0473,-0.019,0.0733,-0.0188,0.0603,-0.056,0.055,-0.0545,0.0136,-0.0304,0.0017,-0.0089,0.0013,-0.0019,0.0002,-0.0005,0.0004,-0.0004,0.0002,-0.0004,0.0001,-0.0007,0.0002,-0.0004,0.0006,-0.0004,0.0006,-0.0005,0.0009,-0.0004,0.0004,-0.0006,0.0003,-0.0009,0.0003,-0.0003,0.0005,-0.0006,0.0005,-0.0002,0.0002,-0.0003,0.0004,-0.0003,0.0004,-0.0006,0.0003,-0.0002,0.0003,-0.0005,0.0002,-0.0009,0.0004,-0.0006,0.0003,-0.0004,0.0003,-0.0069,0.0028,-0.0046,0.0029,-0.0039,0.0111,-0.0119,0.0337,-0.0252,0.0505,-0.0284,0.0635,-0.052,0.0738,-0.0807,0.0703,-0.0484,0.0105,-0.0225,0.0224,-0.0178,0.0136,-0.0412,0.027,-0.0191,0.0512,-0.0437,0.0391,-0.0423,0.0317,-0.035,0.0122,-0.0194,0.0072,-0.0103,0.0025,-0.0032,0.001,-0.0006,0.0003,-0.0004,0.0002,-0.0004,0.0009,-0.0005,0.0008,-0.0005,0.0007,-0.0006,0.0005,-0.0009,0.0004,-0.001,0.001,-0.0002,0.0006,-0.0005,0.0005,-0.0005,0.0023,-0.0135,0.0061,-0.1184,0.0284,-0.0951,0.0185,-0.0254,0.0743,-0.0721,0.0663,-0.0231,0.0211,-0.0222,0.0331,-0.0278,0.0188,-0.0054,0.0326,-0.0178,0.0841,-0.0025,0.0619,-0.0823,0.0271,-0.0453,0.0773,-0.0569,0.0407,-0.0578,0.0191,-0.0418,0.0208,-0.0169,0.0239,-0.043,0.0051,-0.0115,0.0351,-0.0142,0.0604,-0.0284,0.0066,-0.0179,0.0227,-0.0577,0.0293,-0.0247,0.0535,-0.0185,0.0478,-0.029,0.0172,-0.0364,0.0364,-0.0357,0.0437,-0.0311,0.0188,-0.0191,0.005,-0.0358,0.0406,-0.0026,0.0039,-0.0047,0.0018,-0.0017,0.0006,-0.0021,0.0011,-0.0018,0.0014,-0.0019,0.0018,-0.0016,0.002,-0.0016,0.001,-0.0025,0.0022,-0.0027,0.0015,-0.0019,0.0021,-0.0017,0.0019,-0.0015,0.0008,-0.0006,0.0005,-0.0006,0.04,-0.0005,0.0265,-0.0274,0.0376,-0.0549,0.0279,-0.0779,0.0182,-0.0057,0.0844,-0.0137,0.0418,-0.0434,0.0066,-0.0187,0.0053,-0.0126,0.0139,-0.0384,0.0716,-0.067,0.0521,-0.0417,0.0232,-0.0129,0.0147,-0.0105,0.0566,-0.0447,0.0674,-0.0264,0.0353,-0.0226,0.0014,-0.0014,0.001,-0.001,0.0466,-0.0089,0.0283,-0.0142,0.0199,-0.0062,0.0343,-0.0165,0.0384,-0.0366,0.0477,-0.0431,0.0368,-0.0375,0.0023,-0.0225,0.0007,-0.001,0.0415,-0.0054,0.0139,-0.0108,0.0073,-0.0071,0.002,-0.0034,0.0006,-0.0004,0.0024,-0.0009,0.0019,-0.001,0.0013,-0.0012,0.0024,-0.0021,0.0018,-0.0034,0.0012,-0.0015,0.002,-0.002,0.0016,-0.0012,0.0011,-0.0001,0.0004,-0.0003,0.0042,-0.0456,0.0391,-0.027,0.0888,-0.0602,0.0038,-0.0091,0.0507,-0.0437,0.1314,-0.1371,0.1139,-0.0833,0.0442,-0.0296,0.0236,-0.0258,0.0137,-0.0108,0.0182,-0.0135,0.0101,-0.0147,0.0036,-0.0001,0.0477,-0.0979,0.05,-0.0834,0.0454,-0.0197,0.0303,-0.0454,0.0275,-0.0464,0.0176,-0.0292,0.0361,-0.013,0.0265,-0.0122,0.0172,-0.0264,0.0063,-0.0103,0.0007,-0.0014,0.0006,-0.0009,0.0011,-0.0005,0.0011,-0.0007,0.0022,-0.0017,0.0005,-0.0007,0.0004,-0.0004,0.0004,-0.0319,0.024,-0.0212,0,-0.0287,0.0055,-0.0073,0.0268,-0.0102,0.0476,-0.0152,0.0149,-0.0138,0.0122,-0.0192,0.0201,-0.0135,0.0103,-0.0078,0.0083,-0.0121,0.0223,-0.0132,0.0087,-0.0107,0.0244,-0.0159,0.018,-0.0033,0.0162,-0.0159,0.0201,-0.0095,0.0088,-0.0255,0.0212,-0.0172,0.052,-0.0496,0.0518,-0.0435,0.0244,-0.0036,0.0086,-0.0137,0.0138,-0.0148,0.0125,-0.0069,0.0095,-0.0009,0.0202,-0.021,0.0377,-0.0313,0.0137,-0.0147,0.0059,-0.0015,0.0007,-0.0006,0.0297,-0.0058,0.0136,-0.015,0.0243,-0.0128,0.0015,-0.0114,0.0181,-0.0157,0.0216,-0.0294,0.013,-0.0128,0.0084,-0.011,0.0121,-0.0146,0.0285,-0.0182,0.0129,-0.0049,0.0056,-0.0079,0.006,-0.0055,0.0074,-0.025,0.0161,-0.0118,0.0065,-0.006,0.0081,-0.0109,0.0037,-0.0074,0.0034,-0.0016,0.0025,-0.0008,0.0007,-0.0003,0.0003,-0.0005,0.0005,-0.0004,0.0004,-0.0013,0.0005,-0.0009,0.001,-0.0006,0.0011,-0.0008,0.0007,-0.0007,0.0006,-0.0005,0.0003,-0.0013,0.0006,-0.0007,0.0004,-0.0007,0.0006,-0.0007,0.0003,-0.0011,0.0007,-0.0009,0.0008,-0.0014,0.0012,-0.0009,0.0011,-0.0009,0.0007,-0.0007,0.0005,-0.0005,0,-0.0008,0.0253,-0.028,0.0885,-0.0657,0.0388,-0.04,0.0359,-0.072,0.0517,-0.0248,0.0274,-0.0486,0.0491,-0.0299,0.0081,-0.0423,0.0008,-0.0008,0.0491,-0.0694,0.1453,-0.2013,0.0764,-0.1056,0.061,-0.1053,0.0718,-0.0098,0.0385,-0.003,0.0388,-0.0574,0.034,-0.0541,0.0555,-0.134,0,-0.1915,0.0734,-0.0758,0.0733,-0.0883,0.0543,-0.1047,0.0521,-0.0246,0.0112,-0.0034,0.0508,-0.0249,0.0311,-0.0279,0.0155,-0.0033,0.0002,-0.0124,0.0524,-0.0012,0.0324,-0.0091,0.0194,-0.0011,0.0182,-0.0135,0.0145,-0.0141,0.0113,-0.017,0.011,-0.0191,0.0081,-0.0293,0.022,-0.0363,0.0087,-0.01,0.0062,-0.0073,0.0012,-0.0009,0.0003,-0.0015,0.0351,-0.0133,0.0097,-0.0109,0.0156,-0.005,0.0258,-0.0172,0.0235,-0.0179,0.0079,-0.0174,0.0043,-0.0046,0.0007,-0.0006,0.0125,-0.0002,0.0438,-0.0316,0.0346,-0.0228,0.0194,-0.0128,0.0184,-0.0132,0.0235,-0.0108,0.0036,-0.0074,0.0035,-0.0045,0.0065,-0.003,0.0067,-0.0035,0.0023,-0.0055,0.0041,-0.0039,0.0014,-0.0035,0.0004,-0.0011,0.0007,-0.0004,0.0013,-0.0005,0.0006,-0.0008,0.0002,-0.0008,0.0006,-0.0009,0.0009,-0.001,0.0006,-0.0003,0.0008,-0.0005,0.0007,-0.0009,0.0011,-0.0008,0.0006,-0.0014,0.0008,-0.0014,0.0006,-0.0007,0.0006,-0.0006,0.0006,-0.0007,0.0041,-0.0066,0.0091,-0.0123,0.0125,-0.0055,0.011,-0.0251,0.0121,-0.018,0.0062,-0.0066,0.0178,-0.0121,0.0014,-0.0154,0.0156,-0.0062,0.0157,-0.0173,0.0253,-0.0046,0.0105,-0.0096,0.0218,-0.0034,0.0163,-0.0287,0.0381,-0.0158,0.0118,-0.0064,0.0323,-0.0243,0.0239,-0.051,0.0151,-0.031,0.0201,0,0.0047,-0.0187,0.0274,-0.0293,0.005,-0.0104,0.0087,-0.0106,0.0139,-0.0092,0.0762,-0.0324,0.0961,-0.0517,0.0468,-0.0502,0.0519,-0.0316,0.0051,-0.044,0.0177,-0.0335,0.0275,-0.0455,0.0127,-0.0161,0.0795,-0.0088,0.0174,-0.0147,0.0143,-0.0106,0.0003,-0.0016,0.0006,-0.0025,0.0048,-0.0124,0.0196,-0.0124,0.0094,-0.0071,0.0035,-0.0115,0.0049,-0.0014,0.0029,-0.0003,0.0005,-0.0005,0.0006,-0.0006,0.0012,-0.001,0.001,-0.0007,0.0018,-0.0012,0.001,-0.001,0.0009,-0.0016,0.0003,-0.0006,0.0101,-0.008,0.0444,-0.0314,0.0539,-0.083,0.1154,-0.0284,0.0173,-0.0129,0.1283,-0.007,0.1419,-0.1293,0.0091,-0.0043,0.0491,-0.0576,0.025,-0.0209,0.0196,-0.0252,0.0225,-0.0836,0.0297,-0.032,0.0707,-0.0486,0.0456,-0.0436,0.0048,-0.0101,0.031,-0.0487,0.0712,-0.0438,0.0724,-0.0721,0.0419,-0.0205,0.0436,-0.0292,0.0132,-0.01,0,-0.0032,0.0287,-0.0211,0.0324,0,0.003,-0.0053,0.0083,-0.0164,0.0086,-0.0062,0.0087,-0.0307,0.0148,-0.0435,0.0329,-0.0136,0.0472,-0.0191,0.0317,-0.0366,0.0103,-0.0101,0.0167,-0.0138,0.0056,-0.0066,0.0049,-0.0053,0.0029,-0.0029,0.0174,-0.0167,0.0061,-0.0083,0.0015,-0.001,0.0003,-0.0016,0.0006,-0.0005,0.0015,-0.0014,0.0007,-0.0009,0.0008,-0.0009,0.0001,-0.0005,0.0005,-0.0002,0.0008,-0.0003,0.0008,-0.0004,0.0008,-0.0006,0.0007,-0.0009,0.0005,-0.0005,0.001,-0.0005,0.0004,-0.0011,0.0011,-0.0004,0.0009,-0.0005,0.0008,-0.001,0.0002,-0.001,0.0005,-0.0007,0.0005,-0.0007,0.0005,-0.0005,0.0004,-0.0002,0.0026,-0.0015,0.0073,-0.0152,0.0103,-0.0111,0.0204,-0.0093,0.017,-0.0013,0.0259,-0.0078,0.0949,-0.0437,0.0967,-0.0425,0.062,-0.0218,0.0573,-0.0191,0.0557,-0.0475,0.0421,-0.083,0.0863,-0.0172,0.1025,-0.1091,0.0427,-0.0306,0.0023,-0.0505,0.0124,-0.0423,0.0208,-0.0169,0.0025,-0.0041,0.0539,-0.0518,0.0445,-0.0374,0.0371,-0.0321,0.0252,-0.0164,0.0413,-0.0086,0.0348,-0.0512,0.0197,-0.026,0.0211,-0.0233,0.0457,-0.0409,0.0409,-0.0555,0.0165,-0.0464,0.0481,-0.0164,0.0084,-0.0017,0.0221,-0.0315,0.0293,-0.0309,0.0142,-0.0146,0.0067,-0.0083,0.0064,-0.0086,0.0121,-0.008,0.0008,-0.0071,0.012,-0.0152,0.007,-0.0067,0.0025,-0.0108,0.0702,-0.0054,0.0967,-0.1401,0.0293,-0.026,0.0163,-0.0243,0.0099,-0.0095,0.0085,-0.009,0.0492,-0.0204,0.0153,-0.0276,0.0215,-0.0088,0.0153,-0.0155,0.0078,-0.0111,0.0047,-0.0087,0.0006,-0.0251,0.0235,-0.0261,0.0025,-0.0157,0.0024,-0.0086,0.0095,-0.0045,0.0005,-0.0003,0.0056,-0.0238,0.0151,-0.0256,0.0173,-0.0093,0.0117,-0.0313,0.0254,-0.0073,0.0009,-0.004,0.0054,-0.0055,0.0082,-0.0085,0.0185,-0.0081,0.0261,-0.0158,0.0198,-0.0084,0.0203,-0.0305,0.0125,-0.0095,0.0088,-0.0105,0.0048,-0.0082,0.0053,-0.0081,0.0079,-0.0014,0.0149,-0.0139,0.0221,-0.0112,0.0153,-0.0066,0.0211,-0.0134,0.0175,-0.0164,0.0088,-0.0141,0.0011,-0.004,0.0009,-0.0014,0.0007,-0.0004,0.0002,-0.0006,0.0005,-0.001,0.0011,-0.0013,0.0008,-0.0004,0.0002,-0.0006,0.0005,-0.0002,0.0003,-0.0003,0.0004,-0.0004,0.0006,-0.0005,0.0007,-0.0003,0.0008,-0.0013,0.0008,-0.001,0.001,-0.001,0.0012,-0.0012,0.0012,-0.0008,0.0014,-0.0016,0.0008,-0.0018,0.0008,-0.001,0.0012,-0.0008,0.0009,-0.0006,0.0013,-0.0011,0.0006,-0.0009,0.0004,-0.0006,0.0004,-0.0008,0.0014,-0.0153,0.0146,-0.0089,0.015,-0.0269,0.0937,-0.0387,0.0322,-0.0159,0.0474,-0.0464,0.0268,-0.0217,0.0146,-0.0016,0.0185,-0.0081,0.0029,-0.0243,0.0032,-0.0002,0.0178,-0.0297,0.014,-0.0148,0.0186,-0.0044,0.0104,-0.0063,0.0193,-0.0156,0.0102,-0.0181,0.0104,-0.011,0.0068,-0.0009,0.0045,-0.001,0.0002,-0.0012,0.0004,-0.0005,0.0013,-0.0007,0.0005,-0.0009,0.0008,-0.0011,0.0011,-0.0008,0.0003,-0.0006,0.0004,-0.001,0.0667,-0.0569,0.052,-0.0275,0.0506,-0.0258,0.0437,-0.0286,0.0255,-0.0312,0.0186,-0.0123,0.024,-0.0166,0.0134,-0.0189,0.0158,-0.0286,0.013,-0.0141,0.0099,-0.0083,0.0154,-0.0258,0.008,-0.017,0.0086,-0.0095,0.0129,-0.0081,0.0033,-0.0077,0.0107,-0.0214,0.0304,-0.0192,0.0065,-0.009,0.0118,-0.004,0.0067,-0.0035,0.001,-0.0004,0.0005,-0.0008,0.0009,-0.0014,0.0007,-0.0011,0.0007,-0.0004,0.0008,-0.0004,0.001,-0.0005,0.0234,-0.0029,0.0274,-0.0285,0.041,-0.0336,0.0486,-0.0823,0.0659,-0.0462,0.0292,-0.0326,0.0231,-0.0264,0.0421,-0.0522,0.0291,-0.0572,0.0284,-0.0508,0.043,-0.0335,0.0376,-0.0393,0.0299,-0.0332,0.0142,-0.0152,0.0101,-0.0337,0.0165,-0.0332,0.0189,-0.0112,0.0228,-0.023,0.0316,-0.0117,0.0072,-0.0219,0.0224,-0.0098,0.0493,-0.0203,0.02,-0.0069,0.0039,-0.0152,0.0004,-0.0002,0.0037,-0.0092,0.0153,-0.0088,0.0035,-0.0088,0.0005,-0.0012,0.0025,-0.0004,0.0007,-0.0007,0.0006,-0.0005,0.0009,-0.0004,0.0016,-0.0014,0.0009,-0.0012,0.0007,-0.0006,0.0007,-0.0002,0.0045,-0.0161,0.0422,-0.0311,0.0616,-0.0554,0.0199,-0.0093,0.0093,-0.0192,0.0342,-0.0067,0.0012,-0.0017,0.0019,-0.0176,0.0231,-0.0351,0.0054,-0.0015,0.0275,-0.0169,0.0081,-0.0116,0.0039,-0.0057,0.022,-0.0288,0.0109,-0.014,0.0016,-0.0458,0.0321,-0.0515,0.0154,-0.0034,0.0166,-0.0079,0.0253,-0.0167,0.0039,-0.0048,0.0116,-0.0035,0.0159,-0.0011,0.015,-0.0039,0.0012,-0.0305,0.0268,-0.0214,0.0083,-0.0091,0.0236,-0.01,0.0162,-0.0171,0.0052,-0.0121,0.0054,-0.0064,0.0155,-0.027,0.0221,-0.0202,0.0374,-0.0313,0.0337,-0.0185,0.0062,-0.0303,0.0446,-0.0358,0.0196,-0.0424,0.0273,-0.0116,0.0037,-0.003,0.0017,-0.0033,0.002,-0.0048,0.0095,-0.0195,0.0043,-0.0186,0.0057,-0.0028,0.0014,-0.0064,0.0012,-0.0019,0.0012,-0.0024,0.0005,-0.0003,0.0001,-0.0005,0.0007,-0.0006,0.0008,-0.0009,0.0005,-0.001,0.0009,-0.0009,0.0011,-0.0006,0.0009,-0.0007,0.0015,-0.001,0.001,-0.0005,0.0012,-0.0013,0.0011,-0.0018,0.0005,-0.0011,0.0013,-0.0012,0.0006,-0.0005,0.0003,-0.0006,0.001,-0.0004,0.0003,-0.0005,0,-0.0063,0.0027,-0.0354,0.0685,-0.0605,0.0356,-0.032,0.0464,-0.0486,0.0092,-0.0273,0.0013,-0.0007,0.0131,-0.0357,0.0171,-0.0341,0.016,-0.0264,0.03,-0.0148,0.0102,-0.0056,0.0058,-0.0052,0.0008,-0.0011,0.0007,-0.0003,0.0003,-0.0003,0.0006,-0.0006,0.0003,-0.0006,0.0007,-0.0004,0.0006,-0.0004,0.001,-0.0007,0.0007,-0.0012,0.0008,-0.0006,0.0006,-0.0008,0.0005,-0.0005,0.0015,-0.0034,0.0056,-0.0087,0.0093,-0.0138,0.0909,-0.0622,0.0876,-0.1175,0.0357,-0.036,0.0261,-0.037,0.083,-0.0196,0.0679,-0.0565,0.0939,-0.0901,0.0391,-0.0378,0.0235,-0.0197,0.0177,-0.0125,0.0095,-0.0053,0.035,-0.0315,0.0149,-0.0213,0.023,-0.0194,0.0335,-0.0451,0.0224,-0.032,0.0104,-0.0415,0.0202,-0.0516,0.031,-0.0414,0.0137,-0.0153,0.0012,-0.0027,0.0208,-0.0518,0.0128,-0.0234,0.0044,-0.0038,0.0006,-0.0007,0.0582,-0.0501,0.0673,-0.0488,0.0403,-0.0317,0.0315,-0.0413,0.0242,-0.0129,0.0165,-0.015,0.0051,-0.0044,0.0021,-0.005,0.0028,-0.0024,0.0226,-0.0138,0.0097,-0.0142,0.0155,-0.032,0.0541,-0.0386,0.0308,-0.0151,0.0043,-0.0028,0.0007,-0.0017,0.0009,-0.0008,0.0034,-0.0207,0.0087,-0.0084,0.0057,-0.007,0.0055,-0.0046,0.0003,-0.0089,0.0115,-0.0084,0.0159,-0.0157,0.0014,-0.0013,0.0411,-0.0003,0.0066,-0.0147,0.0059,-0.0066,0.0177,-0.0069,0.0292,-0.0292,0,-0.0216,0,-0.0197,0.0753,-0.0774,0.0174,-0.0189,0.0061,-0.0065,0.0284,-0.033,0.0487,-0.1096,0.0505,-0.0883,0.0586,-0.1024,0.0321,-0.0222,0.0276,-0.0201,0.0078,-0.0083,0.0105,-0.0086,0.0013,-0.0009,0.0003,-0.0024,0.0006,-0.0009,0.0006,-0.001,0.0004,-0.0006,0.0006,-0.0009,0.0008,-0.0006,0.0005,-0.001,0.0007,-0.0012,0.001,-0.0009,0.0015,-0.0013,0.0014,-0.0023,0.0029,-0.0022,0.0014,-0.0013,0.0013,-0.0006,0.0007,-0.0016,0.0011,-0.0011,0.0005,-0.0003,0.003,-0.0001,0.0329,-0.0304,0.0446,-0.0412,0.0518,-0.0327,0.0452,-0.0345,0.0075,-0.0235,0.0188,-0.0122,0.043,-0.0299,0.0092,-0.0112,0.004,-0.001,0.0059,-0.0504,0.0792,-0.0588,0.018,-0.0255,0.0093,-0.0256,0.0298,-0.0411,0.0637,-0.0458,0.0621,-0.0442,0.0144,-0.0186,0.0036,-0.0059,0.0074,-0.0038,0.0132,-0.0157,0.0216,-0.0158,0.0126,-0.0143,0.022,-0.0224,0.0136,-0.0173,0.0296,-0.0074,0.0092,-0.006,0.0053,-0.027,0.0474,-0.0114,0.0139,-0.028,0.0023,-0.0011,0.0199,-0.0192,0.0055,-0.0097,0.0048,-0.0069,0.0015,-0.0044,0.011,-0.0126,0.0167,-0.0059,0.0075,-0.0128,0.0048,-0.0052,0.0026,-0.0055,0.0005,-0.0006,0.0007,-0.0006,0.0008,-0.0008,0.0024,-0.0025,0.0002,-0.0021,0.0019,-0.0012,0.0011,-0.0025,0.0011,-0.0021,0.0015,-0.0009,0.0013,-0.0019,0.0007,-0.001,0.0002,-0.0007,0.0004,-0.0005,0.0002,-0.0004,0.0839,-0.0701,0.0786,-0.0843,0.0639,-0.0325,0.047,-0.0618,0.018,-0.0172,0.0064,-0.0111,0.0084,-0.0083,0.0097,-0.0251,0.0016,-0.0066,0.0082,-0.0248,0.0314,-0.0096,0.0241,-0.0086,0.0163,-0.0181,0.0013,-0.0033,0.0239,-0.0145,0.0318,-0.03,0.0009,-0.0012,0.0361,-0.0688,0.0182,-0.0127,0.041,-0.0267,0.0457,-0.0386,0.0609,-0.0496,0.0225,-0.066,0.0251,-0.0249,0.0255,-0.0064,0.0097,-0.0098,0.0171,-0.0323,0.0537,-0.0898,0.0844,-0.0912,0.0519,-0.0407,0.0378,-0.0387,0.0491,-0.0579,0.0549,-0.0144,0.0487,-0.0236,0.0205,-0.0198,0.0032,-0.0153,0.007,-0.0052,0.0032,-0.0065,0.0041,-0.0042,0.0023,-0.0011,0.0008,-0.0006,0.0006,-0.0008,0.0006,-0.0004,0.0003,-0.0003,0.0005,-0.0003,0.0003,-0.0005,0.0003,-0.0003,0.0004,-0.0006,0.0004,-0.0003,0.0004,-0.0005,0.0002,-0.0003,0.0004,-0.0005,0.0006,-0.0001,0.0002,-0.0003,0.0002,-0.0005,0.0004,-0.0003,0.0003,-0.0003,0.0003,-0.0002,0.0004,-0.0006,0.0004,-0.0005,0.0005,-0.0001,0.0003,-0.0004,0.0004,-0.0005,0.0008,-0.0009,0.0012,-0.0015,0.0012,-0.0011,0.0007,-0.0009,0.0007,-0.0003,0.0005,-0.0004,0.0006,-0.0008,0.0008,-0.001,0.0006,-0.0011,0.0004,-0.0003,0.0124,-0.0273,0.0891,-0.0708,0.0875,-0.1292,0.0383,-0.0762,0.1956,-0.1111,0.2651,-0.0531,0.0861,-0.0733,0.0127,-0.0145,0.0418,-0.0503,0.0664,-0.0328,0.0658,-0.0115,0.0218,-0.0035,0.0405,-0.0562,0.0364,-0.0375,0.0547,-0.0042,0.0013,-0.002,0.0506,-0.0158,0.0534,-0.039,0.0324,-0.0306,0.0295,-0.0424,0.0262,-0.0401,0.0304,-0.0471,0.0374,-0.0596,0.0322,-0.0414,0.0288,-0.0409,0.0295,-0.0396,0.014,-0.0415,0.0449,-0.0272,0.0077,-0.015,0.0129,-0.0282,0.0323,-0.0282,0.0015,-0.0021,0.0477,-0.0293,0.0422,-0.0158,0.0278,-0.0186,0.0187,-0.0147,0.0014,-0.0003,0.0007,-0.0006,0.0005,-0.0004,0.0064,-0.0006,0.0187,-0.017,0.0124,-0.0097,0.0007,-0.004,0.0006,-0.0015,0.0009,-0.0002,0.0002,-0.0007,0.0004,-0.0004,0.0002,-0.0007,0.0003,-0.0006,0.0003,-0.0003,0.0004,-0.0005,0.0003,-0.0002,0.0004,-0.0005,0.0003,-0.0007,0.0002,-0.0007,0.0006,-0.0004,0.0007,-0.0004,0.0006,-0.0009,0.0006,-0.0005,0.0004,-0.0006,0.0005,-0.0005,0.005,-0.0005,0.0169,-0.0912,0.1069,-0.1115,0.0606,-0.0748,0.0562,-0.0936,0.0528,-0.1114,0.0623,-0.1197,0.1825,-0.1224,0.0035,-0.1214,0.1877,-0.0048,0.1518,-0.1353,0.0238,-0.0125,0.0229,-0.0423,0.0724,-0.0512,0.0294,-0.082,0.0047,-0.1053,0.0052,-0.0151,0.0149,-0.0058,0.0776,-0.0791,0.0829,-0.0774,0.0716,-0.0427,0.0459,-0.0321,0.0219,-0.0439,0.0347,-0.0347,0.0294,-0.0188,0.0042,-0.005,0.0138,-0.0206,0.0176,-0.0328,0.0245,-0.0369,0.0045,-0.0073,0.0012,-0.0009,0.0183,-0.0123,0.04,-0.0231,0.0312,-0.014,0.0096,-0.0093,0.0005,-0.0004,0.0014,-0.001,0.0009,-0.001,0.0018,-0.0007,0.0002,-0.0014,0.0011,-0.0007,0.0009,-0.001,0.0013,-0.0006,0.0092,-0.0057,0.0146,-0.0191,0.0657,-0.0092,0.067,-0.0658,0.0656,-0.0258,0.0542,-0.0013,0.0032,-0.0033,0.0675,-0.0699,0.0777,-0.0276,0.0034,-0.0052,0.004,-0.0221,0.0323,-0.0485,0.077,-0.0808,0.0636,-0.0268,0.0029,-0.0071,0.0039,-0.0146,0.0081,-0.0157,0.0096,-0.119,0.045,-0.1469,0.0883,-0.0753,0.1456,-0.0588,0.0317,-0.0099,0.0048,-0.0079,0.0027,-0.0143,0.013,-0.0082,0.0956,-0.1767,0.1612,-0.0962,0.0424,-0.0431,0.0486,-0.069,0.0466,-0.0451,0.0933,-0.0594,0.0062,-0.058,0.0127,-0.0021,0.0692,-0.085,0.0503,-0.0053,0.1105,-0.0664,0.0297,-0.0435,0.0164,-0.0182,0.0031,-0.0078,0.0579,-0.0801,0.0822,-0.0555,0.0389,-0.0468,0.1368,-0.0504,0.0809,-0.0563,0.046,-0.0482,0.0765,-0.0658,0.0526,-0.0585,0.0887,-0.0491,0.0226,-0.0257,0.0022,-0.0074,0.001,-0.0004,0.0006,-0.0013,0.0011,0,0.0029,-0.001,0.0014,-0.0014,0.0023,-0.0027,0.002,-0.001,0.0009,-0.0012,0.0007,-0.0005,0.0004,-0.0003,0.0547,-0.0217,0.0674,-0.0549,0.0825,-0.0693,0.0238,-0.0647,0.021,-0.0065,0.1107,-0.152,0.1248,-0.1286,0.0648,-0.0765,0.016,-0.0021,0.1273,-0.0799,0.0826,-0.0369,0.011,-0.0044,0.0956,-0.1229,0.1521,-0.0658,0.0189,-0.0322,0.0655,-0.0893,0.0708,-0.1193,0.048,-0.1185,0.0797,-0.0742,0.0362,-0.0832,0.0758,-0.0592,0.015,-0.0361,0.0217,-0.0096,0.04,-0.0338,0.047,-0.0321,0.0078,-0.0276,0.0005,-0.0012,0.0091,-0.0101,0.0434,-0.0375,0.0122,-0.0256,0.0013,-0.0013,0.023,-0.028,0.0453,-0.0421,0.0332,-0.0246,0.0003,-0.0006,0.0065,-0.0145,0.0137,-0.0194,0.0062,-0.0058,0.0097,-0.0014,0.0001,-0.0008,0.0003,-0.0004,0.0009,-0.0008,0.0005,-0.0007,0.0001,-0.0006,0.0005,-0.0005,0.0003,-0.0007,0.0005,-0.0005,0.0005,-0.0006,0.0009,-0.001,0.0009,-0.0014,0.0006,-0.001,0.0015,-0.0017,0.0005,-0.0018,0.0013,-0.0008,0.0015,-0.0008,0.0006,-0.0009,0.0005,-0.0004,0.0009,-0.0008,0.0017,-0.0021,0.0179,-0.0229,0.0914,-0.0433,0.0075,-0.0411,0.0378,-0.0238,0.024,-0.0569,0.0551,-0.05,0.1049,-0.0392,0.0636,-0.0968,0.1505,-0.1158,0.0555,-0.0037,0.0331,-0.0354,0.046,-0.0235,0.0515,-0.041,0.0674,-0.0422,0.0787,-0.0209,0.0814,0,0.076,-0.1689,0.0668,-0.0545,0.0046,-0.0171,0.1591,-0.1264,0.0671,-0.0826,0.1355,-0.0767,0.0615,-0.0564,0.1723,-0.1047,0.15,-0.0809,0.0769,-0.0429,0.0099,-0.0042,0.0011,-0.001,0.001,-0.0009,0.0012,-0.0015,0.0011,-0.0014,0.002,-0.0014,0.0011,-0.0012,0.001,-0.0014,0.0012,-0.0018,0.0018,-0.0018,0.0004,-0.0003,0.0001,-0.0004,0.0043,-0.0534,0.0643,-0.0564,0.0147,-0.0213,0.0166,-0.006,0,-0.0542,0.0527,-0.0377,0.0007,-0.0053,0.0037,-0.0131,0.0827,-0.0754,0.0991,-0.0241,0.1345,-0.0517,0.1419,-0.0601,0.0112,-0.0063,0.0157,-0.0447,0.0511,-0.0363,0.0327,-0.0281,0.0337,-0.0284,0.0416,-0.0387,0,-0.0415,0.0148,-0.0552,0.0564,-0.0185,0,-0.0546,0.0519,-0.0406,0.065,-0.0393,0.0309,-0.0372,0.0386,-0.0288,0.0328,-0.0298,0.0006,-0.0007,0.0005,-0.0005,0.0005,-0.0003,0.0434,-0.026,0.0505,-0.0255,0.0064,-0.0101,0.0027,-0.0015,0.0011,-0.0008,0.0012,-0.0014,0.0005,-0.0009,0.0006,-0.0006,0.0002,-0.0004,0.0004,-0.0004,0.0006,-0.0004,0.1198,-0.0881,0.1525,-0.0674,0.107,-0.075,0.1396,-0.0604,0.0535,-0.0233,0.0022,-0.0017,0.0069,-0.0048,0.023,-0.0089,0.0448,-0.0422,0.0223,-0.0407,0.0241,-0.0346,0.0298,-0.0299,0.0257,-0.0281,0.031,-0.0019,0.0005,-0.0006,0.0037,-0.0225,0.0172,-0.0225,0.0464,-0.0396,0.0542,-0.059,0.0578,-0.0516,0.0115,-0.0349,0.0019,-0.0011,0.005,-0.0006,0.0184,-0.0351,0.0273,-0.0288,0.0314,-0.034,0.0276,-0.0258,0.013,-0.018,0.0079,-0.0119,0.0272,-0.012,0.091,-0.0803,0.0318,-0.0352,0.0254,-0.034,0.0608,-0.0366,0.0299,-0.0476,0.0346,-0.0256,0.0052,-0.0018,0.0013,-0.0006,0.0051,-0.0109,0.0313,-0.0206,0.0241,-0.0247,0.0006,-0.0005,0.1095,-0.0039,0.11,-0.0654,0.0482,-0.0483,0.0072,-0.0386,0.038,-0.0089,0.0288,-0.0333,0.0283,-0.0374,0.0274,-0.0397,0.0189,-0.0076,0.0259,-0.0197,0.0277,-0.0244,0.022,-0.0248,0.0151,-0.0218,0.0268,-0.025,0.0093,-0.0108,0.016,-0.0082,0.0036,-0.001,0.0004,-0.0007,0.0004,-0.0001,0.001,-0.0003,0.0005,-0.0009,0.0008,-0.0004,0.0003,-0.0002,0.0003,-0.0002,0.0004,-0.0003,0.0004,-0.0003,0.0006,-0.0004,0.0005,-0.0002,0.0006,-0.0001,0.0004,-0.0008,0.0007,-0.0004,0.001,-0.0006,0.0006,-0.0011,0.0009,-0.0016,0.001,-0.0014,0.0011,-0.0012,0.0033,-0.0007,0.0022,-0.0021,0.0013,-0.0012,0.0013,-0.0012,0.0019,-0.0006,0.0032,-0.0003,0.0214,-0.0125,0.0221,-0.0137,0.0277,-0.0052,0.1835,-0.1044,0.07,-0.0822,0.0099,-0.0558,0.0151,-0.028,0.0505,-0.1127,0.1605,-0.1453,0.0402,-0.1091,0.266,-0.153,0.2402,-0.21,0.1585,-0.2565,0.0203,-0.0044,0.0147,-0.0219,0.0917,-0.084,0.0933,-0.1144,0.0696,-0.0722,0.0012,-0.0135,0.1961,-0.1486,0.0912,-0.0989,0.1189,-0.0945,0.0747,-0.0461,0.0951,-0.0528,0.0729,-0.0741,0.0427,-0.0054,0.0186,-0.0059,0.0606,-0.0528,0.0414,-0.0374,0.0461,0,0.0484,-0.0243,0.0443,-0.0444,0.0074,-0.0261,0.0006,-0.0012,0.0007,-0.0014,0.001,-0.0004,0.0024,-0.0017,0.0009,-0.0015,0.0012,-0.002,0.0006,-0.0004,0.0004,-0.0004,0.0024,-0.0087,0.0247,-0.1027,0.1428,-0.1146,0.0698,-0.075,0.0802,-0.1268,0.0588,-0.1744,0.0773,-0.0913,0.0611,-0.118,0.0899,-0.1156,0.0747,-0.0851,0.0039,-0.0443,0.012,-0.0173,0.0021,-0.0092,0.1564,-0.2649,0.0967,-0.2638,0.0847,-0.1259,0.1865,-0.1632,0.0565,-0.066,0.1095,-0.1217,0.0634,-0.0745,0.1783,-0.0952,0.0505,-0.1142,0.0489,-0.0814,0.0286,-0.0307,0.0014,-0.0091,0.0002,-0.0012,0.0004,-0.0007,0.0005,-0.0539,0.1165,-0.1638,0.0922,-0.0972,0.0886,-0.0641,0.1276,-0.1388,0.0867,-0.0494,0.0294,-0.0187,0.0303,-0.0235,0.0693,-0.0493,0.0845,-0.0742,0.0365,-0.0409,0.0013,-0.001,0.0008,-0.0108,0.0071,-0.0062,0.0763,-0.0897,0.0886,-0.0965,0.0383,-0.033,0.0694,-0.0193,0.0444,-0.0309,0.0522,-0.0698,0.0323,-0.068,0.0017,-0.0105,0.0576,-0.0443,0.0352,-0.0335,0.0133,-0.0031,0.0026,-0.0038,0.0076,-0.007,0.0879,-0.026,0.009,-0.0078,0.0047,-0.0022,0.0007,-0.0007,0.0003,-0.0004,0.0004,-0.0003,0.0003,-0.0004,0.0005,-0.0006,0.0005,-0.0002,0.0005,-0.0002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0018,-0.0032,0.0222,-0.0051,0.0899,-0.04,0.1804,-0.0881,0.2894,-0.2459,0.2004,-0.1287,0.1284,-0.1303,0.0337,-0.011,0.0102,-0.0091,0.0359,-0.1023,0,-0.1496,0.0079,-0.0018,0.003,-0.0082,0.0712,-0.0374,0.0972,-0.0761,0.0539,-0.117,0.2356,-0.0627,0.0671,-0.0984,0.0514,-0.0999,0.1054,-0.1022,0.0645,-0.0693,0.0089,-0.0286,0.0098,-0.0426,0.1242,-0.0638,0.1123,-0.0155,0.0979,-0.0379,0.1421,-0.1108,0.0072,-0.0233,0.0017,-0.003,0,-0.0001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.0001,0.0219,-0.0732,0.0746,-0.0527,0.0804,0,0.0826,-0.0378,0.1184,-0.0721,0,-0.0873,0.0077,-0.0233,0.0177,-0.207,0.1715,-0.0873,0.0035,-0.1046,0.182,-0.1588,0.0927,-0.1027,0.107,0,0.1089,-0.3069,0.0446,-0.29,0.0356,-0.0178,0.014,-0.0277,0.02,-0.0069,0.0131,-0.008,0.0557,-0.0286,0.01,-0.1341,0.0642,-0.0434,0.1599,-0.1706,0.0919,-0.0565,0.0014,-0.0078,0.0913,-0.1143,0.1287,-0.165,0.0176,-0.0331,0,-0.0417,0.0895,-0.0678,0.0757,-0.0751,0.0118,-0.0182,0.0016,-0.0253,0.0446,-0.0059,0.0122,-0.0045,0.0413,-0.0467,0.0613,-0.0401,0.0294,-0.0326,0.0299,-0.0336,0.0147,-0.0164,0.0178,-0.0133,0.0039,-0.0044,0.0009,-0.0005,0.0008,-0.0005,0.001,-0.0025,0.0027,-0.0025,0.0011,-0.0008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0012,-0.0017,0.0087,-0.0159,0.1266,-0.0547,0.1389,-0.0856,0.1017,-0.0715,0.0315,-0.0346,0.0092,-0.0118,0.1654,-0.0729,0.0834,-0.1011,0.1839,-0.2259,0.0448,-0.0366,0.1687,-0.1054,0.0222,-0.0186,0.0253,-0.0553,0.1977,-0.1603,0.0056,-0.0149,0.0037,-0.003,0.0132,-0.0065,0.0044,-0.0059,0.0689,-0.02,0.0878,-0.086,0.0813,-0.0885,0.0949,-0.1179,0.1426,-0.1338,0.1198,-0.0944,0.1272,-0.1372,0.3162,-0.2281,0.0526,-0.191,0.0666,-0.0726,0.0715,-0.0521,0.0785,-0.0895,0.1007,-0.051,0.1408,0,0.0479,-0.1478,0.0822,-0.1184,0.0994,-0.0671,0.1457,-0.0673,0.0138,-0.0341,0.0855,-0.0881,0.0612,-0.0692,0.0025,-0.0045,0.0021,-0.0005,0.0006,-0.0002,0.0364,-0.0041,0.0919,-0.0929,0.0671,-0.0588,0.0251,-0.0148,0.001,-0.0006,0.0008,-0.0003,0.0009,-0.0007,0,0,0.0001,0,0,0,0,0,0.0006,-0.0003,0.0007,-0.0005,0.0052,-0.0182,0,-0.0795,0,-0.0766,0.111,-0.1318,0.1326,-0.0602,0.0325,-0.1157,0.1199,-0.1353,0.1449,-0.1674,0.2446,-0.1436,0.2,-0.0731,0.1733,-0.1356,0.1482,-0.1265,0.2882,-0.1288,0.0829,-0.0561,0.0046,-0.0055,0.0071,-0.0471,0.1494,-0.1747,0.1116,-0.1375,0.2493,-0.2279,0.2036,-0.3402,0.0608,-0.0879,0.0655,-0.0454,0.1404,-0.1314,0.0116,-0.0004,0.0137,-0.0519,0.0516,-0.0484,0.0042,-0.0261,0.0455,-0.0733,0.0745,-0.0708,0.0563,-0.0674,0.0677,-0.0497,0.0548,-0.03,0.003,-0.045,0.0612,-0.048,0.0042,-0.0028,0.0085,-0.002,0.0007,-0.0004,0.0678,-0.0933,0.0448,-0.0327,0.0378,-0.0527,0.1167,-0.0566,0.0317,-0.0132,0.0022,-0.0033,0.0005,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0003,-0.0006,0.0002,-0.0004,0.001,-0.002,0.0087,-0.0042,0.0787,-0.122,0.1172,-0.1009,0,-0.0793,0.0822,-0.0912,0.0104,-0.044,0.0068,-0.0142,0.0905,-0.2028,0.2164,-0.106,0.0615,-0.057,0.0401,-0.0782,0.007,-0.0176,0.0124,-0.0145,0.0048,-0.132,0.2004,-0.1895,0.0633,-0.0109,0.0007,-0.0117,0.1871,-0.0327,0.1436,-0.1824,0.0256,-0.0871,0,-0.1148,0.1289,-0.0874,0.0232,-0.0758,0.006,-0.0163,0.0376,-0.054,0.1865,-0.1176,0.1409,-0.0145,0.0007,-0.0058,0.0636,-0.0081,0.1127,-0.1039,0.0587,-0.0653,0,-0.066,0,-0.0866,0.0152,-0.0883,0.0462,-0.0348,0.1079,-0.0834,0.0049,-0.0796,0.0096,-0.0051,0.2253,-0.0886,0.0889,-0.1235,0.0178,-0.006,0.0687,-0.0552,0.0206,-0.0417,0.0018,-0.0046,0.0436,-0.0135,0.0268,-0.0289,0.049,-0.0454,0.0274,-0.0179,0.0439,-0.0314,0.0839,-0.0522,0.0555,-0.0312,0.0008,-0.0015,0.0008,-0.0025,0.0408,-0.0098,0.0547,-0.0527,0.0323,-0.0613,0.1032,-0.0505,0.0882,-0.0084,0.0301,-0.0151,0.0273,-0.0188,0.0121,-0.0122,0.001,-0.0007,0.0003,-0.0031,0.0003,-0.0005,0.0031,-0.0033,0.0041,-0.0047,0.0038,-0.0008,0.0007,-0.0006,0.0006,-0.0002,0.0009,-0.0008,0.0004,-0.0016,0.0006,-0.0003,0.0004,-0.0006,0.0006,-0.0009,0.0005,-0.001,0.0014,-0.0007,0.001,-0.001,0.001,-0.001,0.0008,-0.0003,0.0006,-0.0012,0.0016,-0.0012,0.0013,-0.0017,0.002,-0.0012,0.0016,-0.0015,0.0018,-0.0011,0.0005,-0.0017,0.0011,-0.0015,0.0011,-0.0008,0.0003,-0.0006,0.0004,-0.0003,0.0052,-0.03,0,-0.1041,0.0076,-0.055,0.0786,-0.1058,0.0978,-0.1335,0.0883,-0.1288,0.0681,-0.1341,0.0734,-0.0982,0.3171,-0.3666,0.1625,-0.1728,0.1083,-0.1724,0.1574,-0.2547,0.0965,-0.0833,0.0355,-0.0256,0.0787,-0.0245,0.0628,-0.0811,0.0735,-0.1287,0.1199,-0.1544,0.1011,-0.103,0.0959,-0.1286,0.0174,-0.0105,0.0349,-0.017,0.0765,-0.0264,0.0934,-0.129,0.0331,-0.1199,0.0009,-0.0014,0.0659,-0.0402,0.0683,-0.0631,0.0355,-0.0271,0.0032,-0.0043,0.0009,-0.0007,0.0025,-0.0042,0.0019,-0.0012,0.0012,-0.0006,0.0006,-0.0006,0.0003,-0.0004,0.0604,-0.0004,0.0901,-0.0559,0.0204,-0.0271,0.0239,-0.0188,0.0868,-0.0911,0.1834,-0.0588,0.1515,-0.0395,0.0181,-0.0407,0.1332,-0.2104,0.2314,-0.149,0.0465,-0.0856,0.0685,-0.1176,0.0791,-0.107,0.1057,-0.1419,0.1261,-0.181,0.1057,-0.1345,0.0677,-0.0537,0.0019,-0.0011,0.0543,-0.1089,0.0891,-0.067,0.0325,-0.0454,0.0227,-0.0376,0.0223,-0.0253,0.0022,-0.0048,0.0006,-0.0007,0.0008,-0.0005,0.0005,-0.0008,0.0004,-0.0005,0.0013,-0.0004,0.0338,-0.0625,0.181,-0.0703,0.1605,-0.0039,0.101,-0.1313,0.0993,-0.1251,0.1582,-0.1359,0.044,-0.2039,0.1312,-0.1002,0.0465,-0.1917,0.0046,-0.0244,0.0682,-0.0043,0.0275,-0.0317,0.0082,-0.0011,0.0009,-0.0003,0.0233,-0.1006,0.1055,-0.039,0.0535,-0.0864,0.1236,-0.1115,0.006,-0.0263,0.1704,-0.0591,0.107,-0.1095,0.0331,-0.0611,0.0514,-0.0417,0.016,-0.0323,0.0805,-0.0517,0.0691,-0.0553,0.0944,-0.0641,0.0622,-0.051,0.0249,-0.0211,0.0317,-0.022,0.0209,-0.0392,0.0212,-0.0209,0.0095,-0.0098,0.001,-0.0018,0.0007,-0.0002,0.0002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0022,-0.0006,0.0015,-0.0027,0.0017,-0.0005,0.0027,-0.0033,0.0212,-0.0144,0.176,-0.0984,0.0774,-0.1389,0.2573,-0.146,0.1001,-0.09,0.0037,-0.003,0.2357,-0.1964,0.1033,-0.1658,0.014,-0.0052,0.0071,-0.0094,0.0168,-0.013,0.0007,-0.001,0.0223,-0.0221,0.1452,-0.0826,0.0911,-0.0505,0.0965,-0.1118,0.1219,-0.1566,0.16,-0.1463,0.0163,-0.0515,0.1794,-0.1668,0.1312,-0.1693,0.0305,-0.0308,0.0894,-0.1023,0.0676,-0.0809,0.1619,-0.151,0.019,-0.0563,0.044,-0.0158,0.0226,-0.0125,0.0093,-0.0138,0.1826,-0.2386,0.2059,-0.116,0.1367,-0.0965,0.0624,-0.092,0.0904,-0.1248,0.0076,-0.0057,0.0237,-0.0218,0.0156,-0.011,0.1068,-0.1707,0.2137,-0.0507,0.1096,-0.1613,0.1072,-0.1453,0.0558,-0.0763,0.1218,-0.17,0.0253,-0.0493,0.1941,-0.0775,0.0811,-0.0965,0.0942,-0.0349,0.0057,-0.0008,0.0009,-0.0008,0,-0.0014,0,0,0,0,0,0,0,0,0,0,0,0,0.0005,-0.0001,0.0061,-0.0048,0.0776,-0.0484,0.18,-0.1218,0.3284,-0.1726,0.2788,-0.157,0.0782,-0.0971,0.0137,-0.03,0.0655,-0.0456,0.082,-0.114,0.0626,-0.0553,0.0451,0,0.0488,-0.0318,0.2995,-0.2547,0,-0.2047,0.2465,-0.0855,0.1021,-0.038,0.018,-0.013,0.0086,-0.0655,0.1575,-0.0731,0.0567,-0.074,0,-0.0463,0.016,-0.0339,0.0421,-0.0032,0.1324,-0.1881,0.0132,-0.0745,0.0033,-0.0749,0.0616,-0.0994,0.1647,-0.1238,0.0471,-0.031,0.0044,-0.0446,0.0381,-0.1559,0.0021,-0.0271,0.1337,-0.1292,0.1394,-0.1129,0.0542,-0.0565,0.0447,-0.0644,0.1388,-0.1027,0.0004,-0.0153,0.0686,-0.0363,0.0102,-0.0099,0.1031,-0.2426,0.0647,-0.0668,0.048,-0.0447,0.0268,-0.0895,0.0407,-0.1286,0.0208,-0.0347,0.2047,-0.1577,0.1187,-0.0948,0.004,-0.0362,0.0995,-0.0005,0.1031,-0.0858,0.0007,-0.1008,0.0094,-0.0531,0.0072,-0.0083,0.0563,-0.0375,0.0287,-0.0405,0.0492,-0.0299,0.0856,-0.0075,0.0438,-0.0826,0.0015,-0.0007,0.0064,-0.0162,0.0401,-0.0007,0.1609,-0.0999,0.0749,-0.0808,0.0376,-0.0465,0.0073,-0.006,0.0644,-0.047,0.0513,-0.0574,0.0706,-0.0558,0.1056,-0.0736,0.0744,-0.0371,0.0006,-0.0114,0.001,-0.0026,0,-0.0006,0,0,0,0,0,0,0,0,0,0,0,0,0.0002,-0.0003,0.0004,-0.0006,0.0034,-0.0481,0.0329,-0.0723,0.0248,-0.0378,0.0362,-0.0389,0.0041,-0.0045,0.0217,-0.0032,0.0432,-0.0802,0.0517,-0.09,0.0351,-0.0571,0.0046,-0.0033,0.0139,-0.0309,0.0196,-0.038,0.0042,-0.023,0.0524,-0.1165,0.0442,-0.048,0.0445,-0.0539,0.0784,-0.0634,0.1127,-0.1059,0.0838,-0.0663,0.0142,-0.1337,0.162,-0.1309,0.019,-0.0124,0.0038,-0.023,0.1185,-0.0924,0.0104,-0.0731,0.0616,-0.042,0.0154,-0.0026,0.0101,-0.0025,0.0458,-0.0104,0.0127,-0.0149,0.0022,-0.0101,0.0001,-0.0006,0.0551,-0.0224,0.0506,-0.02,0.0165,-0.013,0.0028,-0.0039,0.0005,-0.0013,0.0004,-0.0007,0.0003,-0.0003,0.0004,-0.0005,0.0004,-0.0004,0.0002,-0.0004,0.0004,-0.0005,0.0004,-0.0005,0.0003,-0.0006,0.0007,-0.0013,0.0003,-0.0005,0.0002,-0.0004,0.0002,-0.0006,0.0002,-0.0005,0.0004,-0.0004,0.0005,-0.0004,0.0001,-0.0006,0.0005,-0.0006,0.0002,-0.0005,0.0002,-0.0004,0.0002,-0.0006,0.0002,-0.0004,0.0005,-0.0005,0.0003,-0.0007,0.0004,-0.0007,0.0001,-0.0005,0.0002,-0.0005,0.0003,-0.0002,0.0003,-0.0009,0.0037,-0.0007,0.0216,-0.0357,0.0441,-0.0546,0.0147,-0.0237,0.0012,-0.0007,0.0002,-0.0007,0.0004,-0.0007,0.0005,-0.0002,0.001,-0.0009,0.0132,-0.0751,0.0696,-0.0918,0.0478,-0.0231,0.0114,-0.0068,0.0135,-0.0076,0.2023,-0.1639,0.1084,-0.309,0.1613,-0.2077,0.0159,-0.0172,0.0031,-0.0026,0.0188,-0.0834,0.0435,-0.0412,0.0116,-0.0226,0.0065,-0.0035,0.0029,-0.0072,0.0005,-0.0007,0.0003,0,0.0003,-0.0003,0.0004,-0.0007,0.0002,-0.0005,0.0005,-0.0007,0.0004,-0.0006,0.0007,-0.0001,0.0007,-0.0004,0.001,-0.0003,0.0011,-0.0002,0.0006,-0.0003,0.0006,-0.0009,0.0004,-0.0005,0.0009,-0.0017,0.0005,-0.0007,0.002,-0.001,0.002,-0.0014,0.0009,-0.0014,0.0012,-0.0003,0.0003,-0.0004,0.0005,-0.0004,0.0003,-0.0004,0.0003,-0.0002,0.0598,-0.0645,0.108,-0.1564,0.1303,-0.1272,0.1108,-0.0308,0.2007,-0.0781,0.0829,-0.0718,0,-0.1278,0.0278,-0.0255,0.0222,-0.0685,0.0327,-0.0876,0.0214,-0.0104,0.0202,-0.0106,0.0377,-0.0604,0.1333,-0.0799,0.127,-0.05,0.0418,-0.052,0.0802,-0.0675,0.0871,-0.0626,0.0412,-0.043,0.0194,-0.017,0.0005,-0.0005,0.0068,-0.0313,0.0515,-0.0471,0.0196,-0.0374,0.0154,-0.0092,0.0005,-0.0007,0.0002,-0.0006,0.0007,-0.001,0.0008,-0.0014,0.001,-0.0014,0.0009,-0.0013,0.0027,-0.0014,0.0029,-0.0006,0.0012,-0.0009,0.0003,-0.0005,0.0005,-0.0004,0.0091,-0.0058,0.1963,-0.1634,0.0284,-0.1303,0.0328,0,0.0552,-0.1157,0.0759,-0.1101,0.0366,-0.1314,0.0971,-0.0345,0.2976,-0.2477,0.1335,-0.0913,0.0398,-0.0041,0.1808,-0.147,0.0561,-0.0231,0.0318,-0.0005,0.1556,-0.0532,0.0303,-0.125,0.0592,-0.0684,0.0364,-0.0349,0.0472,-0.1192,0.0882,-0.0496,0.0398,-0.0637,0.075,-0.0424,0.0071,-0.0054,0.0412,0,0.1152,-0.0876,0.0655,-0.1064,0.057,-0.0329,0.0783,-0.0921,0.0452,-0.055,0.0948,-0.0568,0.0939,-0.0697,0.0697,-0.0739,0.0503,-0.013,0.0805,-0.0796,0.0658,-0.0398,0.0118,-0.0372,0.0132,-0.0174,0.0089,-0.0098,0.0081,-0.0044,0.0241,-0.0448,0.0226,-0.0189,0.0021,-0.0056,0.0008,-0.0005,0.0004,-0.0007,0.0006,-0.0009,0.0003,-0.0007,0.0004,-0.0007,0.0003,-0.0005,0.0003,-0.0003,0.0004,-0.0003,0.0004,-0.0005,0.0007,-0.0005,0.0003,-0.0003,0.0005,-0.0003,0.0007,-0.0004,0.0004,-0.0003,0.0005,-0.0006,0.0005,-0.0004,0.0005,-0.0003,0.0006,-0.0002,0.0005,-0.0004,0.0003,-0.0003,0.0005,-0.0003,0.0006,-0.0002,0.0006,-0.0005,0.0018,-0.0004,0.0039,-0.0035,0.0063,-0.005,0.0065,-0.0372,0,-0.044,0.0644,-0.0537,0.0093,-0.013,0.0203,-0.0161,0.0088,-0.0036,0.0012,-0.0009,0.0003,-0.0003,0.0068,-0.0004,0.0382,0,0.0061,-0.0182,0.0027,-0.0093,0.0009,-0.0011,0.0005,-0.0003,0.0005,-0.0003,0.0003,-0.0003,0.0003,-0.0006,0.0007,-0.0002,0.0006,-0.0007,0.0006,-0.0002,0.0006,-0.0006,0.0027,-0.0019,0.0128,-0.0076,0.0007,-0.0006,0.0755,-0.0088,0.1436,-0.2025,0.2914,-0.138,0.0885,-0.0787,0.0199,-0.0241,0.0152,-0.0269,0.0627,-0.0241,0.0445,-0.0525,0.0973,-0.0656,0.1425,-0.0955,0.0568,-0.056,0.0353,-0.124,0.1098,-0.0814,0.1027,-0.0782,0.0587,-0.045,0.1372,-0.0768,0.1044,-0.116,0.0595,-0.0404,0.0591,-0.0437,0.0055,-0.0091,0.0009,-0.0021,0.0565,-0.0299,0.0804,-0.0382,0.0212,-0.0217,0.0014,-0.0055,0.0005,-0.0018,0.0016,-0.0005,0.0017,-0.0004,0.0019,-0.0012,0.0005,-0.001,0.0013,-0.0021,0.0006,-0.0008,0.008,-0.0009,0.0064,-0.0189,0.2309,-0.1257,0.3001,-0.1861,0.1105,-0.135,0.0776,-0.1397,0.0947,-0.1668,0.1011,-0.1378,0.1305,0,0.0885,-0.0524,0.127,-0.1,0.0892,-0.0936,0.1388,-0.2551,0.1853,-0.0301,0.0099,-0.1139,0.27,-0.3172,0.1831,-0.2207,0.1201,-0.1279,0.1407,-0.0965,0.0579,-0.0403,0.0699,-0.0832,0.0808,-0.1057,0.0243,-0.0046,0.1112,-0.2291,0.1363,-0.1298,0.1556,-0.1357,0.0022,-0.0675,0.1338,-0.0192,0.1167,-0.1384,0.1015,-0.0717,0.1676,-0.1345,0.0386,-0.0418,0.0217,-0.0875,0.0403,-0.1249,0.2074,-0.2112,0.2155,-0.109,0.0225,-0.0154,0.0195,-0.0056,0.0028,-0.001,0.1629,-0.1269,0.1146,-0.1436,0.048,-0.0238,0.0023,-0.0046,0.0032,-0.0017,0.0054,-0.0011,0.0024,-0.0026,0.0036,-0.0022,0.0019,-0.0021,0.0021,-0.0017,0.001,-0.0007,0.0004,-0.0086,0.0438,-0.0615,0.2896,-0.2015,0.0099,-0.2058,0.4195,-0.2952,0.2461,-0.0582,0.1472,-0.2818,0.1704,-0.1774,0.0621,-0.0633,0.1003,-0.1529,0.144,-0.1381,0.0669,-0.1121,0.0317,-0.1157,0.0783,-0.0213,0.2863,-0.2436,0.2277,-0.1808,0.0759,-0.0189,0.0442,-0.0621,0.1584,-0.1514,0.1493,-0.0021,0.0059,-0.0071,0.008,-0.0036,0.092,-0.0783,0.1142,-0.1014,0.0526,-0.1066,0.0655,-0.1011,0.2464,-0.1539,0.1318,-0.2137,0.0207,-0.0628,0.077,-0.0755,0.1073,-0.1232,0.1537,-0.0932,0.1018,-0.0376,0.0206,-0.0059,0.0016,-0.0026,0.0022,-0.0046,0.0021,-0.003,0.0028,-0.002,0.0016,-0.0014,0.001,-0.0011,0.0009,-0.0007,0.001,-0.0317,0.038,-0.0238,0.0403,-0.1266,0.1269,-0.1281,0.1191,-0.2146,0.006,-0.0068,0.0464,-0.0157,0.0101,-0.0017,0.0984,-0.0134,0.0923,-0.0587,0.1318,-0.168,0.2954,-0.1747,0.168,-0.1792,0.1534,-0.1062,0.0722,-0.0795,0.0476,-0.0232,0,-0.0087,0.0043,-0.0413,0.0217,-0.0253,0.1452,-0.0768,0.1716,-0.1014,0.1103,-0.121,0.0265,-0.0827,0.0013,-0.0017,0.0004,-0.0011,0.0005,-0.0005,0.0128,-0.021,0.0522,-0.0996,0.0466,-0.028,0.0104,-0.0077,0.0007,-0.001,0.0008,-0.0005,0.0003,-0.0003,0.0004,-0.0006,0.0002,-0.0005,0.0005,-0.0005,0.0001,-0.0003,0.0004,-0.0005,0.0002,-0.0004,0.0002,-0.0002,0.0003,-0.0006,0.0005,-0.0002,0.0006,-0.0009,0.0003,-0.0003,0.0004,-0.0009,0.0015,-0.0002,0.0005,-0.0004,0.0004,-0.0002,0.0003,-0.0004,0.0003,-0.0062,0.027,-0.0216,0.0337,-0.0304,0.1044,-0.0606,0.0571,-0.0262,0.0576,-0.0399,0.0308,-0.0284,0.0059,-0.0068,0.0062,-0.0129,0.0063,-0.0032,0.0035,-0.0034,0.0009,-0.0004,0.0009,-0.0019,0.001,-0.0011,0.0012,-0.0004,0.0002,-0.0205,0.1048,-0.0521,0.1911,-0.0796,0.1351,-0.081,0.1165,-0.0709,0.0251,-0.0193,0.0037,-0.0452,0,-0.1848,0.1407,-0.1513,0.0613,-0.0261,0.007,-0.0186,0.0218,-0.0169,0.0089,-0.0134,0.0433,-0.1385,0.2136,-0.1332,0.0051,-0.006,0.0163,-0.0337,0.5045,-0.1948,0.1881,-0.0776,0.0196,-0.0244,0.1822,-0.043,0.1913,-0.191,0.2831,-0.1803,0.0692,-0.1371,0.0315,-0.0297,0.0557,-0.0984,0.0033,-0.0164,0.0758,-0.1448,0.1957,-0.2042,0.0687,-0.0993,0.0065,-0.0083,0.1298,-0.0331,0.1627,-0.0211,0.1978,0,0.1979,-0.077,0.1206,-0.1219,0.1731,-0.0349,0.0178,-0.018,0.0283,-0.1167,0.0585,-0.0461,0.028,-0.0583,0.1469,-0.0691,0.2899,-0.2094,0.0619,-0.1909,0.026,-0.0937,0.0278,-0.0288,0.0612,-0.0106,0.0234,-0.0873,0.02,-0.0122,0.0005,-0.0009,0.0007,-0.0007,0.0003,-0.0004,0.001,-0.0002,0.0015,-0.001,0.0027,-0.0019,0.0008,-0.0015,0.0018,-0.0026,0.0023,-0.0027,0.0014,-0.0015,0.0016,-0.0019,0.0023,-0.0012,0.0021,-0.0009,0.0015,-0.0005,0.0014,-0.0003,0.0007,-0.0009,0.0026,-0.0016,0.002,-0.0027,0.0018,-0.0026,0.0042,-0.0021,0.0005,-0.0005,0.0005,-0.0002,0.1226,-0.086,0.078,-0.0874,0.0645,-0.0653,0.2303,0,0.1805,-0.085,0.0941,-0.0902,0.1918,-0.0785,0.0798,-0.0181,0.0106,-0.0324,0.028,-0.0278,0.1766,-0.1532,0.3322,-0.2221,0.1208,-0.1811,0.0425,-0.0293,0.0305,-0.0163,0.0532,-0.078,0.0986,-0.2143,0.0887,-0.1385,0.0252,-0.0071,0.0856,-0.0649,0.1306,-0.201,0.1227,-0.0067,0.0816,-0.0278,0.1199,-0.2324,0.1413,-0.1254,0.092,-0.1074,0.1843,-0.0571,0.1573,-0.224,0.0552,-0.0608,0.0145,-0.0297,0.0628,-0.0439,0.0422,-0.0908,0.0578,-0.1493,0.0882,-0.1556,0.1629,-0.1353,0.1759,-0.0386,0.0066,-0.0143,0.0132,-0.01,0.0727,-0.0237,0.0859,-0.1879,0.0543,-0.0073,0.0297,-0.0618,0.0238,-0.0103,0.0401,-0.1438,0.1164,-0.0818,0.113,-0.0944,0.2219,-0.1131,0.266,-0.0514,0.0915,-0.0575,0.1011,-0.118,0.0886,-0.1553,0.0475,-0.0938,0.0722,-0.0967,0.0357,-0.0281,0.0084,-0.0064,0.0319,-0.0166,0.0292,-0.0321,0.0262,-0.0212,0.0214,-0.0158,0.0026,-0.0073,0.0006,-0.0003,0.0002,-0.0005,0.0002,-0.0005,0.0005,-0.0004,0.0004,-0.0006,0.0006,-0.0006,0.0005,-0.0007,0.0005,-0.0006,0.0003,-0.0006,0.0004,-0.0005,0.0016,-0.0021,0.0012,-0.0025,0.0011,-0.0023,0.0019,-0.0018,0.0031,-0.0027,0.0009,-0.0028,0.0018,-0.0022,0.0016,-0.0013,0.0006,-0.0007,0.0004,-0.0007,0.0526,-0.021,0.1076,-0.0877,0.0851,-0.0694,0.083,-0.0964,0.1072,-0.1219,0.093,-0.1219,0.2381,-0.2003,0.1057,-0.0293,0.0211,-0.018,0.0446,-0.0414,0.1331,-0.0871,0.1973,-0.2942,0.3404,-0.2135,0.1677,-0.0861,0.0105,-0.0097,0.0093,-0.0224,0.021,-0.0543,0.0807,-0.0561,0.03,-0.0106,0.001,-0.0008,0.0003,-0.001,0.0016,-0.0011,0.0023,-0.0017,0.0012,-0.0022,0.0013,-0.0013,0.0003,-0.0008,0.0008,-0.0004,0.0005,-0.0003,0.0394,-0.0149,0.104,-0.1181,0.2446,-0.173,0.0136,-0.1636,0.1019,-0.0803,0.0992,-0.0696,0.0754,-0.0371,0.0336,-0.0409,0.0038,-0.0037,0.0109,-0.0134,0.0089,-0.0235,0.0391,-0.0415,0.004,-0.0663,0.0043,-0.0569,0.0632,-0.0666,0.0835,-0.0971,0.1457,-0.1476,0.0579,-0.0269,0.0357,-0.0082,0.0321,-0.0276,0.0068,-0.0696,0.0339,-0.0147,0.0027,-0.0121,0.0889,-0.0335,0.0337,-0.0682,0.0019,-0.0597,0.0014,-0.0007,0.0003,-0.0007,0.0004,-0.0147,0.0457,-0.0256,0.0067,-0.0096,0.002,-0.0022,0.0003,-0.0004,0.0002,-0.0005,0.0003,-0.0006,0.0005,-0.0005,0.0003,-0.0003,0.0004,-0.0004,0.0003,-0.0005,0.0008,-0.0006,0.0004,-0.0008,0.0006,-0.0007,0.0012,-0.0007,0.001,-0.0006,0.0006,-0.0003,0.003,-0.0011,0.0073,-0.0033,0.0042,-0.0516,0.141,-0.227,0.1482,-0.1395,0.2376,-0.1745,0.0109,-0.0057,0.1941,-0.1536,0.1936,-0.1314,0.2251,-0.1028,0.2677,-0.1738,0.093,-0.0947,0.1039,-0.0075,0.0045,-0.0018,0.0005,-0.0028,0.0013,-0.0009,0.0011,-0.0007,0.0011,-0.001,0.0012,-0.0006,0.0005,-0.0004,0.3671,-0.156,0.3884,-0.0238,0.0742,-0.0597,0.0502,-0.0425,0.0558,-0.0292,0.0666,-0.1423,0.0858,-0.1051,0.0286,-0.0616,0.0531,-0.0394,0.0552,-0.0821,0.1274,-0.2973,0.12,-0.0992,0.0779,-0.1028,0.0165,-0.0563,0.0038,-0.009,0.0172,-0.0037,0.0003,-0.0007,0.0426,-0.0758,0.1162,-0.0984,0.031,-0.0957,0.0119,-0.0025,0.0228,-0.0693,0.0038,-0.0123,0.0209,-0.0282,0.045,-0.0297,0.0217,-0.0326,0.0516,-0.1003,0.1598,-0.1162,0.1499,-0.109,0.1943,-0.1508,0.0391,-0.1623,0.1027,-0.0674,0.1834,-0.1006,0.0754,-0.0567,0.1114,-0.049,0.0195,-0.0076,0.0008,-0.0017,0.0006,-0.0005,0.0016,-0.0013,0.0013,-0.0014,0.0007,-0.0007,0.0008,-0.0009,0.0005,-0.0009,0.0003,-0.0007,0.0001,-0.0006,0.0123,-0.0052,0.2141,-0.1252,0.0907,-0.1672,0.0716,-0.1985,0.0993,-0.1065,0.3424,-0.2786,0.1081,-0.0112,0.0126,-0.0237,0.0443,-0.0311,0.0126,-0.0315,0.0723,-0.0555,0.0419,-0.0477,0.2112,0,0.1969,-0.0715,0.1925,-0.0012,0,-0.131,0.1156,-0.0941,0.0944,-0.0878,0.1221,-0.1224,0.138,-0.1361,0.1479,-0.1147,0.0265,-0.0204,0.0145,-0.0136,0.0062,-0.0019,0.02,-0.0004,0.0353,-0.2088,0.0785,-0.0571,0.1961,-0.0904,0.0838,-0.0305,0.0307,-0.0237,0.0043,-0.005,0.0025,-0.0013,0.0325,-0.0006,0.0423,-0.0285,0.0073,-0.0123,0.0046,-0.0053,0.0005,-0.0017,0.0004,-0.0008,0.0007,-0.0001,0.0004,-0.0004,0.0004,-0.0003,0.0005,-0.0005,0.0008,-0.0004,0.0005,-0.001,0.0002,-0.0005,0.0007,-0.0003,0.0007,-0.0005,0.0009,-0.0008,0.0004,-0.0007,0.0005,-0.0003,0.0008,-0.0006,0.0005,-0.0005,0.0005,-0.0006,0.0004,-0.0003,0.0005,-0.0002,0.0004,-0.0007,0.0004,-0.0006,0.0004,-0.0003,0.0005,-0.0003,0.0004,-0.0004,0.0004,-0.0005,0.0009,-0.0006,0.0005,-0.0006,0.0022,-0.0012,0.0293,-0.0227,0.0255,-0.0751,0.0372,-0.0417,0.1351,-0.0771,0.1134,-0.1246,0.1543,-0.1478,0.097,-0.2164,0.0849,-0.2178,0.082,-0.0128,0.0253,-0.0526,0.0143,-0.0439,0.0107,-0.0552,0.0965,-0.1028,0.065,-0.2423,0.1052,-0.2441,0.1763,-0.1455,0.202,-0.2247,0.2072,0,0.3018,-0.0992,0.1925,-0.1248,0.0734,-0.0222,0.0036,-0.0156,0.0023,-0.0033,0.0026,-0.0012,0.0018,-0.0025,0.002,-0.0015,0.001,-0.0022,0.0018,-0.0007,0.2824,-0.2454,0.2854,-0.04,0.1877,-0.3393,0.0777,-0.0291,0.0538,-0.0516,0.0014,-0.0313,0.3687,-0.1548,0.0782,-0.1624,0.0549,-0.0617,0.0438,-0.0721,0.0179,-0.0307,0.0296,-0.061,0.3124,-0.1913,0.1117,-0.1751,0.0687,-0.0238,0.3854,-0.1815,0.3137,-0.1297,0.111,-0.053,0.0243,-0.0898,0.0461,-0.0202,0.0776,-0.0839,0.0538,-0.0102,0.0865,-0.1492,0.1734,-0.1629,0.1242,-0.1045,0.0157,-0.0831,0.0621,-0.0324,0.1114,-0.0184,0.0844,-0.0094,0.0441,-0.0098,0.1808,-0.1028,0.0889,-0.1363,0.0436,-0.0442,0.0155,-0.027,0.1413,-0.0766,0.1062,-0.0619,0.0534,-0.0872,0.0823,-0.0327,0.0199,-0.0314,0.028,-0.0272,0.0048,-0.0123,0.0005,-0.0007,0.0002,-0.0005,0.0002,-0.0004,0.0003,-0.0005,0.0003,-0.0004,0.0007,-0.0005,0.0003,-0.0004,0.0005,-0.0005,0.0002,-0.0008,0.0003,-0.0009,0.0003,-0.0007,0.0006,-0.0009,0.0005,-0.0011,0.0005,-0.0008,0.0009,-0.0009,0.0009,-0.0013,0.0008,-0.0008,0.0006,-0.0006,0.0002,-0.0004,0.0003,-0.0005,0.0226,-0.2175,0.0331,-0.2269,0.0981,-0.1255,0.1042,-0.1741,0.1388,-0.1907,0.082,-0.061,0.3214,-0.2099,0.3088,-0.0304,0.062,-0.0494,0.0762,-0.0883,0.0388,-0.0312,0.0527,-0.0979,0.0246,-0.0432,0.2423,-0.1998,0.1551,-0.2278,0.0067,-0.0133,0.0033,-0.0019,0.0036,-0.0011,0.1807,-0.0301,0.1072,-0.1,0.1718,-0.0817,0.008,-0.0261,0.0027,-0.0016,0.001,-0.0014,0.0027,-0.0009,0.0005,-0.0011,0.0006,-0.0003,0.003,-0.0044,0.0117,-0.0049,0.0995,-0.0707,0.284,-0.1969,0.1177,-0.2818,0.212,-0.2097,0.1421,-0.2671,0.3959,-0.2365,0.2195,-0.1519,0.1558,-0.0631,0.0964,-0.184,0.0967,-0.2326,0.0785,-0.1051,0.1071,-0.2102,0.0472,-0.0196,0.0103,-0.0036,0.0211,-0.0539,0.0689,-0.1058,0.09,-0.1248,0.0821,-0.1688,0.088,-0.1003,0.1014,-0.1451,0.1787,-0.1643,0.1307,-0.1069,0.1664,-0.0749,0.0085,-0.0403,0.0025,-0.0088,0.058,-0.1072,0.0846,-0.1283,0.0729,-0.0228,0.0068,-0.0809,0.0098,-0.0893,0.0026,-0.012,0.0689,-0.03,0.0796,-0.0802,0.028,-0.0625,0.0024,-0.0029,0.002,-0.02,0.1182,-0.0748,0.0348,-0.0816,0.0055,-0.0293,0.0009,-0.0011,0.0021,-0.0021,0.0022,-0.0025,0.0011,-0.0014,0.0016,-0.0024,0.0008,-0.0015,0.0003,-0.0004,0.0958,-0.011,0.1881,-0.0408,0.0003,-0.0252,0.0294,-0.0806,0.1268,-0.101,0.1115,-0.1653,0.1292,-0.1065,0.0428,-0.0105,0.0103,-0.0786,0.0429,-0.0848,0.0824,-0.102,0.1382,-0.0751,0.0368,-0.0236,0.0316,-0.0369,0.0301,-0.0085,0.0041,-0.001,0.0117,-0.0121,0.0164,-0.0232,0.0859,-0.0451,0.0856,-0.1176,0.0541,0,0.0657,-0.0493,0.0289,-0.0296,0.1105,-0.0059,0.0972,-0.0177,0.0214,-0.0104,0.0156,-0.0419,0.0136,-0.0406,0.1575,-0.0656,0.2085,-0.0743,0,-0.0907,0,-0.0298,0.0026,-0.0127,0.0021,-0.0008,0.0012,-0.003,0.0015,-0.0046,0.0021,-0.0045,0.0014,-0.002,0.0011,-0.0015,0.0005,-0.0007,0.0003,-0.0007,0.0109,-0.0002,0.0187,-0.0314,0.138,-0.1299,0.1815,-0.1423,0.0693,-0.1335,0.0675,0,0.0709,-0.0642,0.05,-0.0468,0.0179,-0.0285,0.0047,-0.0214,0.0401,-0.0317,0.0078,-0.0569,0.0008,-0.0009,0.1193,-0.0199,0.1261,-0.1293,0.0878,-0.0741,0.1198,-0.0534,0.001,-0.0044,0.0517,-0.0155,0.0584,-0.0277,0,-0.0041,0.0625,-0.0085,0.1391,-0.1224,0.0652,-0.1276,0.1236,-0.0737,0.055,-0.0508,0.0124,-0.0078,0.0009,-0.0007,0.014,-0.0173,0.0286,-0.0122,0.0137,-0.0081,0.0026,-0.0003,0.0004,-0.0004,0.0004,-0.0006,0.0002,-0.0003,0.0005,-0.0006,0.0005,-0.0004,0.0002,-0.0004,0.0003,-0.0006,0.0004,-0.0005,0.0004,-0.0005,0.0004,-0.0005,0.0004,-0.0004,0.0002,-0.0015,0.0002,-0.0006,0,-0.0006,0.0004,-0.0004,0.0004,-0.0004,0.0001,-0.0006,0.0004,-0.0003,0.0005,-0.0006,0.0006,-0.0006,0.0004,-0.0005,0.0002,-0.0004,0.0001,-0.0006,0.0005,-0.0006,0.0003,-0.0005,0.0007,-0.0005,0.0006,-0.0006,0.0004,-0.0004,0.0003,-0.0005,0.0003,-0.0004,0.0002,-0.0005,0.0006,-0.0002,0.0002,-0.0006,0.0004,-0.0003,0.0006,-0.0006,0.0005,-0.0005,0.0002,-0.0006,0.0006,-0.0005,0.0004,-0.0005,0.0005,-0.0007,0.0001,-0.0006,0.0006,-0.0005,0.0003,-0.0006,0.0003,-0.0007,0.0006,-0.0004,0.004,-0.0045,0.0054,-0.0061,0.0026,-0.0089,0.0167,-0.0411,0.0175,-0.0088,0.1375,-0.0757,0.1405,-0.1497,0.1182,-0.0864,0.0556,-0.0014,0.0349,-0.0043,0.0008,-0.0038,0.0738,-0.0247,0.0084,-0.0206,0.0281,-0.0242,0.0419,0,0.0374,-0.0761,0.0579,-0.0268,0.0899,-0.0811,0.1188,-0.0914,0.0936,-0.0762,0.0809,-0.0789,0.0418,-0.0775,0.0253,0,0.0338,-0.0033,0.0396,-0.0422,0.0258,-0.001,0.0414,-0.0491,0.1705,-0.0912,0.1457,-0.0802,0.0587,-0.0425,0.1061,-0.045,0.0031,-0.0021,0.0589,-0.0478,0.0395,-0.0426,0.0134,-0.0378,0.0008,-0.0879,0.0652,-0.063,0.0475,-0.038,0.0756,-0.0498,0.1018,-0.045,0.057,-0.0349,0.0151,-0.0242,0.0977,-0.0354,0.0127,-0.0356,0.0056,-0.0354,0.0132,-0.0315,0.0206,-0.0211,0.012,-0.011,0.0004,-0.0007,0.0006,-0.0004,0.0006,-0.0004,0.0003,-0.0006,0.0009,-0.0007,0.0004,-0.0008,0.0005,-0.0012,0.0009,-0.0007,0.0009,-0.001,0.0008,-0.0011,0.0005,-0.0003,0.0057,-0.0005,0.0253,-0.0163,0.0338,-0.0534,0.1135,-0.0266,0.1121,-0.0948,0.1432,-0.0155,0.0108,-0.1506,0.1228,-0.0453,0,-0.0644,0,-0.0556,0.0404,-0.159,0.0904,0,0.1347,-0.0278,0.1748,0,0.0623,-0.0033,0.0114,-0.0243,0.0435,-0.018,0.0014,-0.0036,0.077,-0.0042,0.0786,-0.045,0.0367,-0.0765,0.0866,-0.0617,0.0272,-0.0226,0.0075,-0.0023,0.0004,-0.0007,0.0012,-0.001,0.0006,-0.0004,0.0009,-0.0007,0.0005,-0.0007,0.0006,-0.0004,0.0006,-0.0005,0.0009,-0.0037,0.0052,-0.0026,0.0076,-0.013,0.0656,-0.0624,0.0604,-0.0942,0.1262,-0.0514,0.1385,-0.0292,0.0042,-0.0289,0.2162,-0.0524,0.175,-0.1327,0.3339,-0.0088,0.1079,-0.0521,0.0056,-0.0891,0.0818,-0.0878,0,-0.1187,0.1091,-0.0075,0.0093,-0.0128,0.0839,-0.0422,0.1802,-0.1415,0.0298,-0.085,0.1283,-0.094,0.0103,-0.0355,0.0864,-0.0809,0.0244,-0.1509,0.1744,-0.0375,0,-0.0547,0.0067,-0.0273,0.0078,-0.01,0.0344,-0.0381,0.0076,-0.0278,0.0116,-0.0117,0.0048,-0.0067,0.006,-0.0119,0.0486,-0.0501,0.0288,-0.0227,0.0219,-0.0269,0.0195,-0.0259,0.0295,-0.031,0.0418,-0.0311,0.0327,-0.009,0.0064,-0.0051,0.0024,-0.0005,0.0006,-0.0004,0.0005,-0.0006,0.001,-0.0002,0.0005,-0.0008,0.0012,-0.0005,0.0011,-0.001,0.0008,-0.0014,0.0011,-0.001,0.0005,-0.0005,0.0003,-0.0006,0.0003,-0.0005,0.0007,-0.0011,0.0045,-0.0041,0.0213,-0.0567,0.1284,-0.0539,0.1126,-0.0641,0.0455,-0.038,0.0489,-0.0039,0.1153,-0.0664,0.0255,-0.0464,0.039,-0.0506,0.0307,-0.0404,0.0417,-0.0373,0.0826,-0.0395,0.035,-0.0397,0.0912,-0.0381,0.0885,0,0.0542,-0.0724,0.017,-0.1065,0.0183,-0.0141,0.0082,-0.0238,0.0517,-0.0277,0.0378,-0.0279,0.0297,-0.03,0.0044,-0.0035,0.0388,-0.0007,0.0536,-0.0283,0.0034,-0.0035,0.0527,-0.0373,0.0272,-0.0308,0.0519,-0.0399,0.0472,-0.0374,0.0437,-0.0457,0.0229,-0.033,0.0029,-0.0235,0.0239,-0.0271,0.0227,-0.0097,0.0006,-0.0011,0.0005,-0.0004,0.0005,-0.0001,0.0003,-0.0005,0.0001,-0.0006,0.0006,-0.0004,0.0003,-0.0006,0.0004,-0.0007,0.0004,-0.0002,0.0003,-0.0005,0.0003,-0.0004,0.0003,-0.0003,0.0003,-0.0004,0.0005,-0.0004,0.0003,-0.0005,0,-0.0007,0.0008,-0.0002,0.0009,-0.0003,0.0005,-0.0005,0.0006,-0.0008,0.0006,-0.0008,0.0008,-0.0013,0.0009,-0.0014,0.001,-0.0004,0.0006,-0.0006,0.0004,-0.001,0.0003,-0.0009,0.0008,-0.0005,0.0008,-0.0007,0.0004,-0.0007,0.0003,-0.001,0.0005,-0.0003,0.0003,-0.0004,0.0004,-0.0005,0.0003,-0.0004,0.0006,-0.0001,0.0007,-0.0044,0,-0.0272,0.2541,-0.1342,0.3156,-0.1582,0.2188,-0.1413,0.1909,-0.0695,0.0446,-0.0312,0.2405,-0.3262,0.2143,-0.1184,0.0699,-0.0998,0.1637,-0.0738,0.0828,-0.0303,0.0149,-0.0067,0.0005,-0.0007,0.0016,-0.0009,0.0006,-0.0007,0.0004,-0.0008,0.0006,-0.0006,0.0005,-0.0007,0.0006,-0.0006,0.0024,-0.0039,0.014,-0.0088,0.0128,-0.0232,0.1308,-0.0597,0.029,-0.0166,0.0945,-0.0446,0.1243,-0.1029,0.1684,-0.0968,0.1632,-0.1125,0.0929,-0.0798,0.0213,-0.0013,0.0125,-0.0777,0.0088,-0.0863,0.0938,-0.0709,0.1165,-0.055,0.088,-0.103,0.0644,-0.0449,0.0354,-0.0519,0.0586,-0.04,0.0786,-0.0439,0.0157,-0.0313,0.0051,-0.0102,0.0009,-0.0018,0.0002,-0.0004,0.0002,-0.0005,0.0004,-0.0007,0.0003,-0.0005,0.0005,-0.0004,0.0006,-0.0003,0.0002,-0.0005,0.0005,-0.0003,0.0002,-0.0004,0.0118,-0.0098,0.0217,-0.0492,0.0607,-0.0503,0.0592,-0.0508,0.0239,-0.0042,0.0408,0,0.0124,-0.0016,0.0001,-0.0028,0.0237,-0.0234,0.0053,-0.0292,0.0847,-0.0855,0.1598,-0.1288,0.0815,-0.1124,0.0704,-0.1043,0.0502,-0.0768,0.0549,-0.0642,0.0306,-0.0075,0.0008,-0.0012,0.0182,-0.0264,0.1288,-0.0997,0.0495,-0.0962,0.0914,-0.0544,0.0962,-0.0685,0.0485,-0.0515,0.0714,-0.0432,0.0043,-0.0104,0.0301,-0.0178,0.0141,-0.001,0.0053,-0.0401,0.0311,-0.0395,0.0332,-0.0369,0.1057,-0.0437,0.0473,-0.031,0.0163,-0.0378,0.0685,-0.0441,0.0527,-0.0175,0.0556,-0.0175,0.0332,-0.0182,0.0125,-0.0074,0.0009,-0.0006,0.0007,-0.0001,0.0004,-0.0004,0.0004,-0.0003,0.0008,-0.0006,0.0006,-0.0004,0.0015,-0.0005,0.0012,-0.0009,0.0013,-0.0008,0.002,-0.0002,0.0014,-0.0008,0.0006,-0.0008,0.0005,-0.0002,0.0079,-0.0007,0.156,-0.0854,0.3239,-0.1503,0.2466,-0.191,0.2867,-0.1456,0.0932,-0.1427,0.0483,-0.0674,0.1588,-0.0821,0.2068,-0.1392,0.1021,-0.0683,0.0597,-0.0069,0.0087,-0.0074,0.188,-0.0135,0.1268,0,0.1395,0,0.0724,-0.0341,0.1229,0,0.1083,-0.0338,0.0039,-0.0149,0.0094,-0.0143,0.0441,-0.0596,0.0584,-0.0574,0.072,0,0.0247,-0.0183,0.0134,-0.0154,0.0256,-0.0008,0.0328,-0.0892,0.0675,-0.1323,0.0599,-0.0883,0.0255,-0.0857,0.0857,-0.0534,0.0542,-0.0355,0.0025,-0.0035,0.0111,-0.0275,0.0632,-0.0558,0.1168,-0.0575,0.0979,-0.0478,0.0643,-0.0395,0.0105,-0.006,0.0345,-0.0309,0.0235,-0.0242,0.0251,-0.0229,0.0267,-0.0188,0.0195,-0.0176,0.0047,-0.0093,0.0003,-0.0006,0.0008,-0.0009,0.0004,-0.0005,0.0007,-0.0014,0.0006,-0.0014,0.0006,-0.0013,0.0013,-0.0011,0.0008,-0.0019,0.0011,-0.001,0.0011,-0.0011,0.0004,-0.0006,0.0066,-0.0196,0.0083,-0.0934,0.0264,-0.0183,0.0258,-0.0319,0.1358,-0.1132,0.028,-0.0445,0.146,-0.0888,0.0744,-0.1097,0.0926,-0.1123,0.0783,-0.0631,0.0058,-0.0305,0.0285,-0.0382,0.0011,-0.0011,0.0147,-0.0134,0.022,-0.0413,0,-0.1966,0.0444,-0.1641,0.2102,0,0.2851,-0.0905,0.0074,-0.0738,0.0276,-0.0228,0.0119,-0.0172,0.0446,-0.0376,0.0255,-0.0197,0.0014,-0.0005,0.0003,-0.0008,0.0006,-0.0004,0.061,-0.0301,0.0304,-0.0391,0.0124,-0.0119,0.0006,-0.0008,0.0006,-0.0003,0.0006,-0.0004,0.0067,-0.0166,0.0535,-0.0168,0.0074,-0.0036,0.005,-0.004,0.002,-0.001,0.0007,-0.0014,0.0009,-0.0002,0.0006,-0.0004,0.0004,-0.0003,0.0003,-0.0003,0.0005,-0.0003,0.0003,-0.0005,0.0006,-0.0003,0.0006,-0.0004,0.0006,-0.0004,0.0005,-0.0001,0.0006,-0.0003,0.0004,-0.0002,0.0003,-0.0002,0.0004,-0.0003,0.0005,-0.0004,0.0006,-0.0003,0.0006,-0.0003,0.0004,-0.0007,0.0013,-0.0005,0.0017,-0.0013,0.0004,-0.0007,0.0005,-0.0003,0.0008,-0.0007,0.0031,-0.0061,0.0108,-0.013,0.1835,-0.1031,0.1695,-0.1297,0.099,-0.1185,0.0279,-0.0566,0.0117,-0.0037,0.0851,-0.1017,0.1186,-0.0925,0.0135,-0.007,0.1233,-0.1901,0.0466,-0.0425,0.065,-0.0521,0.1917,-0.1179,0.0192,-0.0035,0.0919,-0.0233,0.1575,-0.2082,0.1641,-0.0884,0.2788,-0.207,0.3011,-0.1585,0.1836,-0.1251,0.0192,-0.0187,0.0027,-0.0023,0.0005,-0.0006,0.0005,-0.0005,0.0003,-0.0005,0.0004,-0.0006,0.0006,-0.0003,0.0004,-0.0004,0.0002,-0.0005,0.0003,-0.0003,0.0001,-0.0003,0.0002,-0.0003,0.0005,-0.0003,0.0004,-0.0002,0.0006,-0.0017,0.0291,-0.0299,0.0605,-0.0664,0.0468,-0.0545,0.0412,-0.021,0.0162,-0.0138,0.0196,-0.0344,0.0185,-0.004,0.002,-0.0053,0.1339,-0.1164,0.1071,-0.0119,0.1035,-0.0404,0.0775,-0.0312,0.0154,-0.0297,0.0199,-0.0109,0.0307,-0.0212,0.0515,-0.0127,0.0722,-0.0185,0.1834,-0.095,0.1053,-0.0802,0.102,-0.0521,0.071,-0.0698,0.1668,-0.0769,0.1333,-0.0764,0.0341,-0.0293,0.0028,-0.0053,0.0011,-0.0383,0.0194,-0.0317,0.0015,-0.0023,0.063,-0.0706,0.0453,-0.0137,0.0087,-0.005,0.0845,-0.0531,0.0313,-0.0418,0.0819,-0.0475,0.0607,-0.0748,0.0317,-0.0345,0.0275,-0.0292,0.0127,-0.012,0.0191,-0.0147,0.0045,-0.0019,0.0004,-0.0005,0.0168,-0.0719,0.0938,-0.0773,0.048,-0.04,0.0109,-0.0067,0.0004,-0.0007,0.0005,-0.0006,0.0006,-0.0007,0.0009,-0.001,0.0011,-0.0005,0.0009,-0.0005,0.0013,-0.0004,0.0005,-0.0013,0.0007,-0.0007,0.0003,-0.0008,0.0596,-0.026,0.0526,-0.0682,0.0791,-0.1196,0.0797,-0.098,0.0779,-0.1075,0.0792,-0.0074,0.0482,-0.1022,0.0299,-0.0558,0.0231,-0.0083,0.0118,-0.0246,0.0011,-0.0142,0.0817,-0.0492,0.1975,-0.1103,0.061,-0.0765,0.0429,-0.0525,0.0361,-0.0366,0.0266,-0.0429,0.0089,-0.0288,0.0326,-0.0049,0.0813,-0.0429,0.0025,-0.0123,0.0239,-0.0152,0.0167,-0.0072,0.0004,-0.0003,0.0025,-0.0099,0.0292,-0.0232,0.0338,-0.0386,0.029,-0.0284,0.0259,-0.0246,0.0194,-0.0211,0.0241,-0.0149,0.0164,-0.0087,0.002,-0.0045,0.0008,-0.0022,0.0006,-0.0004,0.0003,-0.0006,0.0004,-0.0004,0.0006,-0.0004,0.0003,-0.0005,0.0003,-0.0004,0.0004,-0.0003,0.0003,-0.0005,0.0004,-0.0006,0.0001,-0.0005,0.0005,-0.0007,0.0005,-0.0002,0.0005,-0.0004,0.0004,-0.0008,0.0005,-0.0006,0.0006,-0.0007,0.0005,-0.0007,0.0004,-0.0004,0.0005,-0.0006,0.0005,-0.0003,0.0003,-0.0005,0.0002,-0.0005,0.0001,-0.0006,0.0007,-0.0007,0.0005,-0.0004,0.0024,-0.0021,0.0014,-0.0037,0.0079,-0.007,0.122,-0.0847,0.102,-0.0476,0.0036,-0.0035,0.0971,-0.058,0.0955,-0.0809,0.0344,-0.0376,0.0423,-0.0292,0.0386,-0.032,0.0308,-0.048,0.03,-0.0314,0.0208,-0.009,0.0102,-0.0011,0.049,-0.0198,0.0263,-0.0497,0.0068,-0.0074,0.0824,-0.0392,0.0349,-0.0496,0.0234,-0.0251,0.0083,-0.0097,0.0012,-0.001,0.0005,-0.0006,0.0004,-0.0004,0.0004,-0.0005,0.0006,-0.0004,0.0006,-0.0004,0.0003,-0.0002,0.0007,-0.0003,0.0008,-0.0005,0.0007,-0.0008,0.0004,-0.0006,0.0009,0,0.0006,-0.0004,0.0005,-0.0004,0.0004,-0.0003,0.0006,-0.0007,0.0004,-0.0006,0.0004,-0.0004,0.0002,-0.0005,0.0007,-0.0004,0.0007,-0.0003,0.0008,-0.0006,0.0005,-0.0005,0.0254,-0.0056,0.0226,-0.0333,0.0112,-0.0198,0.0015,-0.0011,0.0589,-0.0134,0.0091,-0.0073,0.0008,-0.0007,0.0981,-0.0121,0.1128,-0.0473,0.1195,-0.0477,0.0457,-0.0493,0.0076,-0.0172,0.0072,-0.0198,0.101,-0.0631,0.0492,-0.0526,0.0789,-0.0438,0.0026,-0.0022,0.0091,-0.021,0.0721,-0.0664,0.0329,-0.0192,0.0463,-0.0492,0.0628,-0.0398,0.0306,-0.0198,0.0109,-0.0131,0.0009,-0.0003,0.0004,-0.0003,0.0006,-0.0006,0.0005,-0.0003,0.0006,-0.0003,0.0007,-0.0007,0.0008,-0.0002,0.0005,-0.0018,0.0315,-0.0539,0.0756,-0.0568,0.0948,-0.0564,0.0403,-0.0531,0,-0.073,0.0352,-0.0527,0.0079,-0.0272,0.0677,-0.0512,0.0832,-0.0328,0.0966,-0.03,0.059,-0.0442,0.0553,-0.0494,0.0247,-0.0397,0.0647,-0.0411,0.0352,-0.0134,0.0076,-0.01,0.0343,-0.0347,0.0054,-0.0087,0.0041,-0.0006,0.0566,-0.0397,0.0673,-0.0491,0.0095,-0.052,0.0416,-0.0407,0.0212,-0.0145,0.0173,-0.0067,0.0466,-0.0226,0.0299,-0.0323,0.0328,-0.0193,0.0175,-0.0114,0.0247,-0.011,0.0128,-0.0117,0.0145,-0.016,0.0066,-0.007,0.0009,-0.0014,0.0005,-0.0005,0.0005,-0.0005,0.0004,-0.0006,0.0007,-0.0009,0.0004,-0.0006,0.0001,-0.0005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0003,-0.0004,0.0004,-0.0006,0.0005,-0.0006,0.0002,-0.0005,0.0035,-0.0063,0.1406,-0.0947,0.0714,-0.1151,0.0817,-0.086,0.095,-0.0167,0.1014,0,0.0977,0,0.0748,0,0.1373,0,0.109,-0.1115,0.082,-0.0662,0.0082,-0.0495,0.0009,-0.0013,0.0019,-0.0014,0.0381,-0.006,0.0697,-0.0432,0.0679,-0.0491,0.0697,-0.0528,0.0623,-0.0525,0.0431,-0.0391,0.0169,-0.0413,0.0163,-0.0173,0.0079,-0.0104,0.0051,-0.002,0.0018,-0.0022,0.0006,-0.0006,0.0003,-0.0003,0.0004,-0.0001,0.0004,-0.0002,0.0002,-0.0006,0.0007,-0.0005,0.0005,-0.0006,0.1072,-0.0285,0,-0.1079,0.0634,-0.0565,0.044,-0.0625,0.042,-0.0459,0.052,-0.0623,0.0248,-0.0201,0.0158,-0.0144,0.025,-0.0265,0.0154,-0.0238,0.0222,-0.0228,0.0548,-0.0534,0.0221,-0.0445,0.019,-0.0229,0.0288,-0.0265,0.0267,-0.0203,0.0237,-0.0107,0.005,-0.0072,0.0002,-0.0004,0.0007,-0.0004,0.0005,-0.0005,0.0003,-0.0004,0.0004,-0.0004,0.0004,-0.0004,0.0003,-0.0002,0.0004,-0.0004,0.0006,-0.0003,0.0005,-0.0004,0.0004,-0.0006,0.0006,-0.0004,0.0002,-0.0004,0.0003,-0.0003,0.0005,-0.0004,0.0005,-0.0002,0.0003,-0.0005,0.0003,-0.0008,0.0002,-0.0003,0.0006,-0.0003,0.0002,-0.0005,0.0004,-0.0005,0.0005,-0.0002,0.0004,-0.0002,0.0004,-0.0003,0.0002,-0.0005,0.0003,-0.0004,0.0005,-0.0002,0.0004,-0.0003,0.0005,-0.0007,0.0004,-0.0004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.0006,0.0005,-0.0004,0.0004,-0.0005,0.0004,-0.0005,0.0004,-0.0003,0.0003,-0.0007,0.0087,-0.0373,0.258,-0.0967,0.0524,-0.0336,0.0663,-0.0679,0.0319,-0.0421,0.1074,-0.1936,0.1709,-0.1618,0.1464,-0.1417,0.0313,-0.0422,0.0474,-0.0361,0.0963,-0.0592,0.0514,-0.041,0.0187,-0.027,0.0174,-0.0189,0.0139,-0.0154,0.0221,-0.0083,0.0159,-0.0203,0.0119,-0.0034,0.0063,-0.0038,0.0005,-0.0004,0.0004,-0.0003,0.0009,-0.0057,0.0442,-0.035,0.1797,-0.1296,0.0999,-0.0648,0.0849,-0.0969,0.0397,-0.0353,0.0313,-0.0354,0.0321,-0.0237,0.0332,-0.0374,0.0185,-0.0246,0.0023,-0.0038,0.0086,-0.0089,0.0072,-0.0052,0.0014,-0.0029,0.0026,-0.0016,0.0003,-0.0014,0.0003,-0.0003,0.0005,-0.0004,0.0004,-0.0005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.0001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] diff --git a/static/wavesurfer.js/example/audio-element/index.html b/static/wavesurfer.js/example/audio-element/index.html new file mode 100644 index 0000000..9da244b --- /dev/null +++ b/static/wavesurfer.js/example/audio-element/index.html @@ -0,0 +1,135 @@ + + + + + wavesurfer.js | Media Element Example + + + + + + + + + + + + + + + + + + + + +
+
+ + +

Media Element Fallback Example

+
+ +
+
+ +
+ +
+ +
+
+ +
+

How to Enable the Fallback

+ +
+ +

+ wavesurfer.js will automatically + fallback to HTML5 Media if Web Audio is not + supported. However, you can choose to use audio + element manually. Simply set the backend + option to "MediaElement". +

+ +

+

var wavesurfer = Object.create(WaveSurfer);
+
+wavesurfer.init({
+    container: document.querySelector('#wave'),
+    backend: 'MediaElement'
+});
+
+

+ +

Pre-rendered Peaks

+ +

+ If you have pre-rendered peaks (on your server), + you can pass them into the load + function. This is optional–if you don't provide + any peaks, + waserver.js will first draw a + thin line instead of a waveform, then attempt to + download the audio file via Ajax and decode it + with Web Audio if available. +

+ +

+

wavesurfer.load('example/media/demo.mp3');
+

+ + +

+ Press this button to see the same demo with pre-decoded peaks: + +

+
+ + +
+ + + + + + diff --git a/static/wavesurfer.js/example/audio-element/main.js b/static/wavesurfer.js/example/audio-element/main.js new file mode 100644 index 0000000..5acd390 --- /dev/null +++ b/static/wavesurfer.js/example/audio-element/main.js @@ -0,0 +1,31 @@ +'use strict'; + +// Create an instance +var wavesurfer = Object.create(WaveSurfer); + +// Init & load audio file +document.addEventListener('DOMContentLoaded', function () { + // Init + wavesurfer.init({ + container: document.querySelector('#waveform'), + waveColor: '#A8DBA8', + progressColor: '#3B8686', + backend: 'MediaElement' + }); + + // Load audio from URL + wavesurfer.load('../media/demo.wav'); + + document.querySelector( + '[data-action="play"]' + ).addEventListener('click', wavesurfer.playPause.bind(wavesurfer)); + + document.querySelector( + '[data-action="peaks"]' + ).addEventListener('click', function () { + wavesurfer.load('../media/demo.wav', [ +0.0218,-0.0029,0.0183,-0.0057,0.0165,-0.0011,0.0198,-0.0147,0.2137,-0.3699,0.2888,-0.2433,0.2313,-0.2432,0.15,-0.1726,0.2542,-0.1717,0.2538,-0.2194,0.2358,-0.1683,0.1195,-0.3916,0.1591,-0.1484,0.2599,-0.2508,0.2742,-0.3594,0.1447,-0.0649,0.2328,-0.0398,0.1878,-0.2811,0.1988,-0.1025,0.1645,-0.2812,0.1218,-0.15,0.2005,-0.3558,0.2828,-0.187,0.2051,-0.2018,0.1664,-0.1557,0.1181,-0.1764,0.1621,-0.1421,0.2966,-0.2194,0.189,-0.2113,0.246,-0.3188,0.2445,-0.1794,0.1621,-0.2706,0.1618,-0.153,0.189,-0.1948,0.2354,-0.1336,0.1561,-0.2026,0.1638,-0.1133,0.2799,-0.1886,0.0923,-0.0666,0.1659,-0.116,0.1675,-0.1335,0.1268,-0.1282,0.0984,-0.0932,0.0997,-0.0699,0.1248,-0.1008,0.1495,-0.0778,0.1431,-0.1104,0.1236,-0.1171,0.1755,-0.1328,0.1183,-0.1568,0.1349,-0.1172,0.1018,-0.1263,0.1109,-0.1573,0.1833,-0.1323,0.1813,-0.1325,0.1422,-0.1211,0.0961,-0.0933,0.1191,-0.0938,0.0791,-0.1182,0.0631,-0.0937,0.0315,-0.0322,0.0157,-0.0002,0.0166,-0.0078,0.0108,-0.0078 + ]); + document.body.scrollTop = 0; + }); +}); diff --git a/static/wavesurfer.js/example/css/ribbon.css b/static/wavesurfer.js/example/css/ribbon.css new file mode 100644 index 0000000..5806121 --- /dev/null +++ b/static/wavesurfer.js/example/css/ribbon.css @@ -0,0 +1,140 @@ +/*! + * "Fork me on GitHub" CSS ribbon v0.1.1 | MIT License + * https://github.com/simonwhitaker/github-fork-ribbon-css +*/ + +/* Left will inherit from right (so we don't need to duplicate code) */ +.github-fork-ribbon { + /* The right and left classes determine the side we attach our banner to */ + position: absolute; + + /* Add a bit of padding to give some substance outside the "stitching" */ + padding: 2px 0; + + /* Set the base colour */ + background-color: #a00; + + /* Set a gradient: transparent black at the top to almost-transparent black at the bottom */ + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.15))); + background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15)); + background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15)); + background-image: -ms-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15)); + background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15)); + background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15)); + + /* Add a drop shadow */ + -webkit-box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.5); + -moz-box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.5); + box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.5); + + /* Set the font */ + font: 700 13px "Helvetica Neue", Helvetica, Arial, sans-serif; + + z-index: 9999; + pointer-events: auto; +} + +.github-fork-ribbon a, +.github-fork-ribbon a:hover { + /* Set the text properties */ + color: #fff; + text-decoration: none; + text-shadow: 0 -1px rgba(0, 0, 0, 0.5); + text-align: center; + + /* Set the geometry. If you fiddle with these you'll also need + to tweak the top and right values in .github-fork-ribbon. */ + width: 200px; + line-height: 20px; + + /* Set the layout properties */ + display: inline-block; + padding: 2px 0; + + /* Add "stitching" effect */ + border-width: 1px 0; + border-style: dotted; + border-color: #fff; + border-color: rgba(255, 255, 255, 0.7); +} + +.github-fork-ribbon-wrapper { + width: 150px; + height: 150px; + position: absolute; + overflow: hidden; + top: 0; + z-index: 9999; + pointer-events: none; +} + +.github-fork-ribbon-wrapper.fixed { + position: fixed; +} + +.github-fork-ribbon-wrapper.left { + left: 0; +} + +.github-fork-ribbon-wrapper.right { + right: 0; +} + +.github-fork-ribbon-wrapper.left-bottom { + position: fixed; + top: inherit; + bottom: 0; + left: 0; +} + +.github-fork-ribbon-wrapper.right-bottom { + position: fixed; + top: inherit; + bottom: 0; + right: 0; +} + +.github-fork-ribbon-wrapper.right .github-fork-ribbon { + top: 42px; + right: -43px; + + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} + +.github-fork-ribbon-wrapper.left .github-fork-ribbon { + top: 42px; + left: -43px; + + -webkit-transform: rotate(-45deg); + -moz-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + -o-transform: rotate(-45deg); + transform: rotate(-45deg); +} + + +.github-fork-ribbon-wrapper.left-bottom .github-fork-ribbon { + top: 80px; + left: -43px; + + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} + +.github-fork-ribbon-wrapper.right-bottom .github-fork-ribbon { + top: 80px; + right: -43px; + + -webkit-transform: rotate(-45deg); + -moz-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + -o-transform: rotate(-45deg); + transform: rotate(-45deg); +} diff --git a/static/wavesurfer.js/example/css/style.css b/static/wavesurfer.js/example/css/style.css new file mode 100644 index 0000000..64fa818 --- /dev/null +++ b/static/wavesurfer.js/example/css/style.css @@ -0,0 +1,110 @@ +/* Space out content a bit */ +body { + padding-top: 20px; + padding-bottom: 20px; +} + +/* Everything but the jumbotron gets side spacing for mobile first views */ +.header, +.marketing, +.footer { + padding-left: 15px; + padding-right: 15px; +} + +/* Custom page header */ +.header { + border-bottom: 1px solid #e5e5e5; +} + +/* Make the masthead heading the same height as the navigation */ +.header h3 { + margin-top: 0; + margin-bottom: 0; + line-height: 40px; + padding-bottom: 19px; +} + +/* Custom page footer */ +.footer { + padding-top: 19px; + color: #777; + border-top: 1px solid #e5e5e5; +} + +/* Customize container */ +@media (min-width: 1024px) { + .container { + max-width: 900px; + } +} + +.container-narrow > hr { + margin: 30px 0; +} + +/* Supporting marketing content */ +.marketing { + margin: 40px 0; +} + +.marketing p + h4 { + margin-top: 28px; +} + +/* Responsive: Portrait tablets and up */ +@media screen and (min-width: 768px) { + /* Remove the padding we set earlier */ + .header, + .marketing, + .footer { + padding-left: 0; + padding-right: 0; + } + /* Space out the masthead */ + .header { + margin-bottom: 30px; + } +} + +.controls { + padding: 30px 0 15px; + text-align: center; +} + +.controls .btn { + margin-bottom: 15px; +} + +@media screen and (min-width: 990px) { + .controls .mark-controls { + display: inline; + } +} + +.lead { + text-align: center; + padding: 20px; +} + +#waveform { + position: relative; +} + +#progress-bar { + position: absolute; + z-index: 10; + top: 50%; + margin-top: -10px; + left: 5%; + width: 90%; +} + +#drop { + border: 3px dashed #ddd; + padding: 30px; +} + +#drop.wavesurfer-dragover { + border-color: #333; +} \ No newline at end of file diff --git a/static/wavesurfer.js/example/elan/app.js b/static/wavesurfer.js/example/elan/app.js new file mode 100644 index 0000000..200faac --- /dev/null +++ b/static/wavesurfer.js/example/elan/app.js @@ -0,0 +1,110 @@ +'use strict'; + +// Create an instance +var wavesurfer = Object.create(WaveSurfer); + +// Init & load +document.addEventListener('DOMContentLoaded', function () { + var options = { + container : '#waveform', + waveColor : 'violet', + progressColor : 'purple', + loaderColor : 'purple', + cursorColor : 'navy', + selectionColor: '#d0e9c6', + loopSelection : false + }; + + if (location.search.match('scroll')) { + options.minPxPerSec = 100; + options.scrollParent = true; + } + + if (location.search.match('normalize')) { + options.normalize = true; + } + + /* Progress bar */ + (function () { + var progressDiv = document.querySelector('#progress-bar'); + var progressBar = progressDiv.querySelector('.progress-bar'); + + var showProgress = function (percent) { + progressDiv.style.display = 'block'; + progressBar.style.width = percent + '%'; + }; + + var hideProgress = function () { + progressDiv.style.display = 'none'; + }; + + wavesurfer.on('loading', showProgress); + wavesurfer.on('ready', hideProgress); + wavesurfer.on('destroy', hideProgress); + wavesurfer.on('error', hideProgress); + }()); + + // Init wavesurfer + wavesurfer.init(options); + + // Init ELAN plugin + var elan = Object.create(WaveSurfer.ELAN); + + elan.init({ + url: 'transcripts/001z.xml', + container: '#annotations', + tiers: { + Text: true, + Comments: true + } + }); + + elan.on('ready', function (data) { + wavesurfer.load('transcripts/' + data.media.url); + }); + + elan.on('select', function (start, end) { + wavesurfer.backend.play(start, end); + }); + + elan.on('ready', function () { + var classList = elan.container.querySelector('table').classList; + [ 'table', 'table-striped', 'table-hover' ].forEach(function (cl) { + classList.add(cl); + }); + }); + + var prevAnnotation, prevRow, region; + var onProgress = function (time) { + var annotation = elan.getRenderedAnnotation(time); + + if (prevAnnotation != annotation) { + prevAnnotation = annotation; + + region && region.remove(); + region = null; + + if (annotation) { + // Highlight annotation table row + var row = elan.getAnnotationNode(annotation); + prevRow && prevRow.classList.remove('success'); + prevRow = row; + row.classList.add('success'); + var before = row.previousSibling; + if (before) { + elan.container.scrollTop = before.offsetTop; + } + + // Region + region = wavesurfer.addRegion({ + start: annotation.start, + end: annotation.end, + resize: false, + color: 'rgba(223, 240, 216, 0.7)' + }); + } + } + }; + + wavesurfer.on('audioprocess', onProgress); +}); diff --git a/static/wavesurfer.js/example/elan/css/elan.css b/static/wavesurfer.js/example/elan/css/elan.css new file mode 100644 index 0000000..02c69a4 --- /dev/null +++ b/static/wavesurfer.js/example/elan/css/elan.css @@ -0,0 +1,25 @@ +#annotations { + max-height: 300px; + overflow: auto; +} + +.wavesurfer-annotations tr.wavesurfer-active td { + background-color: yellow; +} + +.wavesurfer-time { + width: 100px; + color: #555; +} + +.wavesurfer-tier-Text { + width: 500px; +} + +td.wavesurfer-tier-Comments { + color: #999; +} + +.wavesurfer-handle { + background-color: #c9e2b3; +} \ No newline at end of file diff --git a/static/wavesurfer.js/example/elan/index.html b/static/wavesurfer.js/example/elan/index.html new file mode 100644 index 0000000..debc66d --- /dev/null +++ b/static/wavesurfer.js/example/elan/index.html @@ -0,0 +1,105 @@ + + + + + wavesurfer.js | ELAN player + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +

wavesurfer.js + ELAN

+
+ +
+
+
+
+
+ + +
+ +
+ +
+
+ +
+ +
+ + +
+ + + + + + diff --git a/static/wavesurfer.js/example/elan/transcripts/001z.mp3 b/static/wavesurfer.js/example/elan/transcripts/001z.mp3 new file mode 100644 index 0000000..bd43bfa Binary files /dev/null and b/static/wavesurfer.js/example/elan/transcripts/001z.mp3 differ diff --git a/static/wavesurfer.js/example/elan/transcripts/001z.xml b/static/wavesurfer.js/example/elan/transcripts/001z.xml new file mode 100755 index 0000000..1312c2a --- /dev/null +++ b/static/wavesurfer.js/example/elan/transcripts/001z.xml @@ -0,0 +1,2866 @@ + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 8 + + + + + 9 + + + + + 10 + + + + + 11 + + + + + 12 + + + + + 13 + + + + + 14 + + + + + 15 + + + + + 16 + + + + + 17 + + + + + 18 + + + + + 19 + + + + + 20 + + + + + 21 + + + + + 22 + + + + + 23 + + + + + 24 + + + + + 25 + + + + + 26 + + + + + 27 + + + + + 28 + + + + + 29 + + + + + 30 + + + + + 31 + + + + + 32 + + + + + 33 + + + + + 34 + + + + + 35 + + + + + 36 + + + + + 37 + + + + + 38 + + + + + 39 + + + + + 40 + + + + + 41 + + + + + 42 + + + + + 43 + + + + + 44 + + + + + 45 + + + + + 46 + + + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A+ + + + + + +{sm}+ + + + + + +A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A+ + + + + + +{sm}+ + + + + + +A + + + + + A + + + + + A + + + + + A+ + + + + + +{sm}+ + + + + + +A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A+ + + + + + +{sm}+ + + + + + +A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A+ + + + + + +{sm}+ + + + + + +A+ + + + + + +{lg} + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + A + + + + + + + Пото= == + + + + + А потом ∙∙ про зайчика сон. + + + + + ∙∙ А зайчик вот, + + + + + ∙∙∙ он был в лесу. + + + + + ∙∙∙∙ А я была у р-речки. + + + + + ∙∙ {ЧМОКАНЬЕ} ∙∙ А потом ∙∙ ког= ‖ ∙∙ вот я пошла, + + + + + ∙∙ к ‖ домой, + + + + + ∙∙ а зайчик за мной, + + + + + бежал-бежал. + + + + + ∙∙∙∙ А потом ∙∙∙ он прибежал, + + + + + ∙∙∙ ко мне опять, + + + + + ∙∙ когда я ушла уже, + + + + + ∙∙ {ЧМОКАНЬЕ} ∙∙ я вышла, + + + + + ∙∙ к себе, + + + + + во двор. + + + + + ∙∙ И онь= == + + + + + ∙∙ {ЧМОКАНЬЕ} ∙∙ А зайчик как-то ∙∙ сюда прискакал, + + + + + ∙∙ а потом он ∙∙ н-не знал, + + + + + где я. + + + + + ∙∙∙∙ А я была ∙∙ у себя дома. + + + + + ∙∙∙∙ А потом этот зайчик прискакал ко мне домой. + + + + + ∙∙∙ {ЧМОКАНЬЕ} ∙∙ Он скакал-скакал, + + + + + и прискакал. + + + + + ∙∙∙ А потом он ск= ‖ ∙∙∙ этот зайчик ∙∙ встретил й-ёжика. + + + + + ∙∙∙ У меня! + + + + + ∙∙ Который был ∙∙ у меня дома, + + + + + ∙∙∙∙ и они были — + + + + + ∙∙ {ЧМОКАНЬЕ} ∙∙∙ {СМЕХ} этот зайчик, + + + + + ∙∙ и ёжик, + + + + + — у меня, + + + + + ∙∙∙ и они прям бегали ∙∙ тут прям-м по моему полу. + + + + + ∙∙∙ И по коврику, + + + + + ∙∙ а я им сделала ∙∙ пала’= ‖ ∙∙ к= ‖ ∙∙ по= ‖ ∙∙ постельку, + + + + + ∙∙ и они спали там. + + + + + ∙∙∙ На коврике. + + + + + ∙∙∙∙ А потом ∙∙ как-то неожиданно зайчик захотел морковку кушать. + + + + + ∙∙ А морковка ∙∙ стояла ‖ ∙∙ у меня там ∙∙ лежала в тарелочке. + + + + + ∙∙ Он взял эту морковку и скуш-шал. + + + + + ∙∙∙ С капусткой. + + + + + ∙∙ С капустой тоже, + + + + + капустку ∙∙ съел, + + + + + ∙∙∙ а я потом встала, + + + + + ∙∙ и увидела: + + + + + а где морковь?, + + + + + а где капуста? + + + + + ∙∙∙∙ Всё. + + + + + + + FLST + + + + + PERIOD + + + + + COMMA + + + + + PERIOD + + + + + PERIOD + + + + + COMMA + + + + + COMMA + + + + + COMMA + + + + + PERIOD + + + + + COMMA + + + + + COMMA + + + + + COMMA + + + + + COMMA + + + + + COMMA + + + + + PERIOD + + + + + FLST + + + + + COMMA + + + + + COMMA + + + + + PERIOD + + + + + PERIOD + + + + + PERIOD + + + + + COMMA + + + + + PERIOD + + + + + PERIOD + + + + + EXCLAM + + + + + COMMA + + + + + SPLIT + + + + + COMMA + + + + + COMMA + + + + + COMMA + + + + + PERIOD + + + + + COMMA + + + + + COMMA + + + + + PERIOD + + + + + PERIOD + + + + + PERIOD + + + + + PERIOD + + + + + PERIOD + + + + + PERIOD + + + + + COMMA + + + + + COMMA + + + + + COMMA + + + + + COLON + + + + + QUEST+COMMA + + + + + QUEST + + + + + PERIOD + + + + + + + В начальной паузе шумный вдох. Слово вот — скрипучим голосом. + + + + + В начальной паузе шумный вдох. + + + + + Начальный союз — скрипучим голосом. Слово как-то произносит скандированно. + + + + + Падение на \мне почти на октаву. + + + + + Первый слог слова который произносит со смехом. + + + + + Смех частично накладывается на слово этот. + + + + + Слова тут прям-м произносит с улыбкой. Первые два слова и последнее слово — скрипучим голосом. + + + + + Тихо. С улыбкой. + + + + + Тихо. + + + + + Очень тихо. + + + + + + + Пото= + + + + + А + + + + + потом + + + + + про + + + + + зайчика + + + + + сон + + + + + А + + + + + зайчик + + + + + вот + + + + + он + + + + + был + + + + + в + + + + + лесу + + + + + А + + + + + я + + + + + была + + + + + у + + + + + речки + + + + + А + + + + + потом + + + + + ког= + + + + + вот + + + + + я + + + + + пошла + + + + + к + + + + + домой + + + + + а + + + + + зайчик + + + + + за + + + + + мной + + + + + бежал-бежал + + + + + А + + + + + потом + + + + + он + + + + + прибежал + + + + + ко + + + + + мне + + + + + опять + + + + + когда + + + + + я + + + + + ушла + + + + + уже + + + + + я + + + + + вышла + + + + + к + + + + + себе + + + + + во + + + + + двор + + + + + И + + + + + онь= + + + + + А + + + + + зайчик + + + + + как-то + + + + + сюда + + + + + прискакал + + + + + а + + + + + потом + + + + + он + + + + + не + + + + + знал + + + + + где + + + + + я + + + + + А + + + + + я + + + + + была + + + + + у + + + + + себя + + + + + дома + + + + + А + + + + + потом + + + + + этот + + + + + зайчик + + + + + прискакал + + + + + ко + + + + + мне + + + + + домой + + + + + Он + + + + + скакал-скакал + + + + + и + + + + + прискакал + + + + + А + + + + + потом + + + + + он + + + + + ск= + + + + + этот + + + + + зайчик + + + + + встретил + + + + + ёжика + + + + + У + + + + + меня + + + + + Который + + + + + был + + + + + у + + + + + меня + + + + + дома + + + + + и + + + + + они + + + + + были + + + + + этот + + + + + зайчик + + + + + и + + + + + ёжик + + + + + у + + + + + меня + + + + + и + + + + + они + + + + + прям + + + + + бегали + + + + + тут + + + + + прям + + + + + по + + + + + моему + + + + + полу + + + + + И + + + + + по + + + + + коврику + + + + + а + + + + + я + + + + + им + + + + + сделала + + + + + пала’= + + + + + к= + + + + + по= + + + + + постельку + + + + + и + + + + + они + + + + + спали + + + + + там + + + + + На + + + + + коврике + + + + + А + + + + + потом + + + + + как-то + + + + + неожиданно + + + + + зайчик + + + + + захотел + + + + + морковку + + + + + кушать + + + + + А + + + + + морковка + + + + + стояла + + + + + у + + + + + меня + + + + + там + + + + + лежала + + + + + в + + + + + тарелочке + + + + + Он + + + + + взял + + + + + эту + + + + + морковку + + + + + и + + + + + скушал + + + + + С + + + + + капусткой + + + + + С + + + + + капустой + + + + + тоже + + + + + капустку + + + + + съел + + + + + а + + + + + я + + + + + потом + + + + + встала + + + + + и + + + + + увидела + + + + + а + + + + + где + + + + + морковь + + + + + а + + + + + где + + + + + капуста + + + + + Всё + + + + + + + R + + + + + F + + + + + R + + + + + F + + + + + R + + + + + F + + + + + R + + + + + R + + + + + F + + + + + R + + + + + F + + + + + R + + + + + R + + + + + R + + + + + F + + + + + F + + + + + R-F + + + + + F + + + + + F + + + + + R + + + + + R + + + + + R + + + + + R + + + + + F + + + + + R + + + + + R + + + + + F + + + + + R + + + + + R + + + + + F + + + + + R + + + + + R + + + + + R + + + + + R-F + + + + + F + + + + + R + + + + + R + + + + + R + + + + + R-P + + + + + F + + + + + R + + + + + R + + + + + F + + + + + P + + + + + R + + + + + R + + + + + F + + + + + F + + + + + R + + + + + R + + + + + F + + + + + R + + + + + R + + + + + R + + + + + R + + + + + F + + + + + R + + + + + F + + + + + F + + + + + F + + + + + R + + + + + R-F + + + + + R + + + + + F + + + + + R-F + + + + + F + + + + + R-F + + + + + F + + + + + P + + + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + Main + + + + + + + Len + + + + + Len + + + + + Len + + + + + Len + + + + + + + Red + + + + + Red + + + + + Red + + + + + Red + + + + + Red + + + + + Red + + + + + Red + + + + + Red + + + + + Red + + + + + + + Asp-E + + + + + Lab-E + + + + + Asp-E + + + + + Gl-E + + + + + Asp-E + + + + + + + Emph + + + + + Emph + + + + + Emph + + + + + + + YES + + + + + YES + + + + + YES + + + + + YES + + + + + YES + + + + + YES + + + + + YES + + + + + + + + +
diff --git a/static/wavesurfer.js/example/equalizer/index.html b/static/wavesurfer.js/example/equalizer/index.html new file mode 100644 index 0000000..6781e80 --- /dev/null +++ b/static/wavesurfer.js/example/equalizer/index.html @@ -0,0 +1,92 @@ + + + + + wavesurfer.js | Equalizer Example + + + + + + + + + + + + + + + + + + +
+
+ + +

Equalizer Example

+
+ +
+
+
+
+
+ + +
+ +
+ + +
+ +
+
+
+ + +
+ + + + + + diff --git a/static/wavesurfer.js/example/equalizer/main.js b/static/wavesurfer.js/example/equalizer/main.js new file mode 100644 index 0000000..6212c73 --- /dev/null +++ b/static/wavesurfer.js/example/equalizer/main.js @@ -0,0 +1,128 @@ +'use strict'; + +// Create an instance +var wavesurfer = Object.create(WaveSurfer); + +// Init & load audio file +document.addEventListener('DOMContentLoaded', function () { + // Init + wavesurfer.init({ + container: document.querySelector('#waveform'), + waveColor: '#A8DBA8', + progressColor: '#3B8686' + }); + + // Load audio from URL + wavesurfer.load('../media/demo.wav'); + + // Equalizer + wavesurfer.on('ready', function () { + var EQ = [ + { + f: 32, + type: 'lowshelf' + }, { + f: 64, + type: 'peaking' + }, { + f: 125, + type: 'peaking' + }, { + f: 250, + type: 'peaking' + }, { + f: 500, + type: 'peaking' + }, { + f: 1000, + type: 'peaking' + }, { + f: 2000, + type: 'peaking' + }, { + f: 4000, + type: 'peaking' + }, { + f: 8000, + type: 'peaking' + }, { + f: 16000, + type: 'highshelf' + } + ]; + + // Create filters + var filters = EQ.map(function (band) { + var filter = wavesurfer.backend.ac.createBiquadFilter(); + filter.type = band.type; + filter.gain.value = 0; + filter.Q.value = 1; + filter.frequency.value = band.f; + return filter; + }); + + // Connect filters to wavesurfer + wavesurfer.backend.setFilters(filters); + + // Bind filters to vertical range sliders + var container = document.querySelector('#equalizer'); + filters.forEach(function (filter) { + var input = document.createElement('input'); + wavesurfer.util.extend(input, { + type: 'range', + min: -40, + max: 40, + value: 0, + title: filter.frequency.value + }); + input.style.display = 'inline-block'; + input.setAttribute('orient', 'vertical'); + wavesurfer.drawer.style(input, { + 'webkitAppearance': 'slider-vertical', + width: '50px', + height: '150px' + }); + container.appendChild(input); + + var onChange = function (e) { + filter.gain.value = ~~e.target.value; + }; + + input.addEventListener('input', onChange); + input.addEventListener('change', onChange); + }); + + // For debugging + wavesurfer.filters = filters; + }); + + // Log errors + wavesurfer.on('error', function (msg) { + console.log(msg); + }); + + // Bind play/pause button + document.querySelector( + '[data-action="play"]' + ).addEventListener('click', wavesurfer.playPause.bind(wavesurfer)); + + // Progress bar + (function () { + var progressDiv = document.querySelector('#progress-bar'); + var progressBar = progressDiv.querySelector('.progress-bar'); + + var showProgress = function (percent) { + progressDiv.style.display = 'block'; + progressBar.style.width = percent + '%'; + }; + + var hideProgress = function () { + progressDiv.style.display = 'none'; + }; + + wavesurfer.on('loading', showProgress); + wavesurfer.on('ready', hideProgress); + wavesurfer.on('destroy', hideProgress); + wavesurfer.on('error', hideProgress); + }()); +}); diff --git a/static/wavesurfer.js/example/main.js b/static/wavesurfer.js/example/main.js new file mode 100644 index 0000000..5af4d7c --- /dev/null +++ b/static/wavesurfer.js/example/main.js @@ -0,0 +1,108 @@ +'use strict'; + +// Create an instance +var wavesurfer = Object.create(WaveSurfer); + +// Init & load audio file +document.addEventListener('DOMContentLoaded', function () { + var options = { + container : document.querySelector('#waveform'), + waveColor : 'violet', + progressColor : 'purple', + cursorColor : 'navy' + }; + + if (location.search.match('scroll')) { + options.minPxPerSec = 100; + options.scrollParent = true; + } + + // Init + wavesurfer.init(options); + // Load audio from URL + wavesurfer.load('example/media/demo.wav'); + + // Regions + if (wavesurfer.enableDragSelection) { + wavesurfer.enableDragSelection({ + color: 'rgba(0, 255, 0, 0.1)' + }); + } +}); + +// Play at once when ready +// Won't work on iOS until you touch the page +wavesurfer.on('ready', function () { + //wavesurfer.play(); +}); + +// Report errors +wavesurfer.on('error', function (err) { + console.error(err); +}); + +// Do something when the clip is over +wavesurfer.on('finish', function () { + console.log('Finished playing'); +}); + + +/* Progress bar */ +document.addEventListener('DOMContentLoaded', function () { + var progressDiv = document.querySelector('#progress-bar'); + var progressBar = progressDiv.querySelector('.progress-bar'); + + var showProgress = function (percent) { + progressDiv.style.display = 'block'; + progressBar.style.width = percent + '%'; + }; + + var hideProgress = function () { + progressDiv.style.display = 'none'; + }; + + wavesurfer.on('loading', showProgress); + wavesurfer.on('ready', hideProgress); + wavesurfer.on('destroy', hideProgress); + wavesurfer.on('error', hideProgress); +}); + + +// Drag'n'drop +document.addEventListener('DOMContentLoaded', function () { + var toggleActive = function (e, toggle) { + e.stopPropagation(); + e.preventDefault(); + toggle ? e.target.classList.add('wavesurfer-dragover') : + e.target.classList.remove('wavesurfer-dragover'); + }; + + var handlers = { + // Drop event + drop: function (e) { + toggleActive(e, false); + + // Load the file into wavesurfer + if (e.dataTransfer.files.length) { + wavesurfer.loadBlob(e.dataTransfer.files[0]); + } else { + wavesurfer.fireEvent('error', 'Not a file'); + } + }, + + // Drag-over event + dragover: function (e) { + toggleActive(e, true); + }, + + // Drag-leave event + dragleave: function (e) { + toggleActive(e, false); + } + }; + + var dropTarget = document.querySelector('#drop'); + Object.keys(handlers).forEach(function (event) { + dropTarget.addEventListener(event, handlers[event]); + }); +}); diff --git a/static/wavesurfer.js/example/media/demo.wav b/static/wavesurfer.js/example/media/demo.wav new file mode 100644 index 0000000..b269348 Binary files /dev/null and b/static/wavesurfer.js/example/media/demo.wav differ diff --git a/static/wavesurfer.js/example/microphone/app.js b/static/wavesurfer.js/example/microphone/app.js new file mode 100644 index 0000000..6c5420b --- /dev/null +++ b/static/wavesurfer.js/example/microphone/app.js @@ -0,0 +1,39 @@ +'use strict'; + +// Create an instance +var wavesurfer = Object.create(WaveSurfer); + +// Init & load +document.addEventListener('DOMContentLoaded', function () { + var options = { + container : '#waveform', + waveColor : 'black', + interact : false, + cursorWidth : 0 + }; + var micBtn = document.querySelector('#micBtn'); + + // Init wavesurfer + wavesurfer.init(options); + + // Init Microphone plugin + var microphone = Object.create(WaveSurfer.Microphone); + microphone.init({ + wavesurfer: wavesurfer + }); + microphone.on('deviceReady', function() { + console.info('Device ready!'); + }); + microphone.on('deviceError', function(code) { + console.warn('Device error: ' + code); + }); + + // start/stop mic on button click + micBtn.onclick = function() { + if (microphone.active) { + microphone.stop(); + } else { + microphone.start(); + } + }; +}); diff --git a/static/wavesurfer.js/example/microphone/index.html b/static/wavesurfer.js/example/microphone/index.html new file mode 100644 index 0000000..2fd4733 --- /dev/null +++ b/static/wavesurfer.js/example/microphone/index.html @@ -0,0 +1,204 @@ + + + + + wavesurfer.js | Microphone plugin + + + + + + + + + + + + + + + + + + + + +
+
+

wavesurfer.js + Microphone

+
+ +
+
+ +
+ +
+
+ +
+
+

wavesurfer.js Microphone Plugin

+ +

Visualizes audio input from a microphone in wavesurfer.js instances.

+ +

Installation

+ +

+

    +
  1. add the Microphone plugin script tag
  2. +
  3. create a WaveSurfer instance
  4. +
  5. create a Microphone instance
  6. +
  7. control the Microphone using the start, stopDevice, play, pause, stop and togglePlay methods
  8. +
+

+

+ Download the plugin (3.2 KB) +

+
+ +
+

Quick Start

+ +

+

var wavesurfer = Object.create(WaveSurfer);
+
+wavesurfer.init({
+  container     : '#waveform',
+  waveColor     : 'black',
+  interact      : false,
+  cursorWidth   : 0
+});
+
+var microphone = Object.create(WaveSurfer.Microphone);
+
+microphone.init({
+    wavesurfer: wavesurfer
+});
+
+microphone.on('deviceReady', function(stream) {
+    console.log('Device ready!', stream);
+});
+microphone.on('deviceError', function(code) {
+    console.warn('Device error: ' + code);
+});
+
+// start the microphone
+microphone.start();
+
+// pause rendering
+//microphone.pause();
+
+// resume rendering
+//microphone.play();
+
+// stop visualization and disconnect microphone
+//microphone.stopDevice();
+
+// same as stopDevice() but also clears the wavesurfer canvas
+//microphone.stop();
+
+// destroy the plugin
+//microphone.destroy();
+
+

+ +
+ +

Options

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameRequiredDefaultDescription
wavesurferyesA WaveSurfer instance.
bufferSizeno4096The buffer size in units of sample-frames. If specified, the bufferSize must be one of the following values: 256, 512, 1024, 2048, 4096, 8192, 16384.
numberOfInputChannelsno1Integer specifying the number of channels for this node's input. Values of up to 32 are supported.
numberOfOutputChannelsno1Integer specifying the number of channels for this node's output. Values of up to 32 are supported.
+ +

Events

+ + + + + + + + + + + + + + + + + + +
NameDescription
deviceReadyInvoked when the device is ready to use. Callback will receive a LocalMediaStream object that contains the microphone stream.
deviceErrorInvoked when the user doesn't allow the browser to access the microphone. Callback will receive a (string) error code.
+
+
+ + +
+ + + + + + diff --git a/static/wavesurfer.js/example/panner/index.html b/static/wavesurfer.js/example/panner/index.html new file mode 100644 index 0000000..142962a --- /dev/null +++ b/static/wavesurfer.js/example/panner/index.html @@ -0,0 +1,168 @@ + + + + + wavesurfer.js | Panner Example + + + + + + + + + + + + + + + + + + + +
+
+ + +

Panner Filter Example

+
+ +
+
+
+
+
+ + +
+ +
+ + +
+ +
+
+ ← left +
+
+ + +
+
+ right → +
+
+
+
+ +
+

How to Create a Panner Interface

+ +

+ This is an example of how to add an arbitrary Web + Audio node into a wavesurfer.js graph. Panner node + is one such node. +

+ +
+ +
+

1. Initialize wavesurfer.js

+ +

Create a WaveSurfer instance and load an audio clip.

+

+

var wavesurfer = Object.create(WaveSurfer);
+
+wavesurfer.init({
+    container: '#demo' // this is the only required param
+});
+
+wavesurfer.load('media.wav');
+

+ +

2. Create a Panner Node

+ +

+ Create a panner node and add it to the Web + Audio graph using the setFilter method. +

+

+

var panner = wavesurfer.backend.ac.createPanner();
+wavesurfer.backend.setFilter(panner);
+

+
+ +
+

3. Create a Range Slider

+

+ In your HTML, add a range input. +

+

+

<input id="panner-input" type="range" min="-45" max="45" value="0" />
+

+ +

4. Bind the Range Slider

+

+ Listen to the range input's input event and set the panner's position + according to the input's value. + Adapted from this SO answer. +

+ +

+

var slider = document.querySelector('#panner-input');
+slider.addEventListener('input', function (e) {
+    var xDeg = parseInt(e.target.value);
+    var x = Math.sin(xDeg * (Math.PI / 180));
+    wavesurfer.panner.setPosition(x, 0, 0);
+});
+

+
+
+ + +
+ + + + + + diff --git a/static/wavesurfer.js/example/panner/main.js b/static/wavesurfer.js/example/panner/main.js new file mode 100644 index 0000000..ed0b886 --- /dev/null +++ b/static/wavesurfer.js/example/panner/main.js @@ -0,0 +1,68 @@ +'use strict'; + +// Create an instance +var wavesurfer = Object.create(WaveSurfer); + +// Init & load audio file +document.addEventListener('DOMContentLoaded', function () { + // Init + wavesurfer.init({ + container: document.querySelector('#waveform'), + minPxPerSec: 30, + scrollParent: true, + waveColor: '#A8DBA8', + progressColor: '#3B8686' + }); + + // Load audio from URL + wavesurfer.load('media.wav'); + + // Panner + (function () { + // Add panner + wavesurfer.panner = wavesurfer.backend.ac.createPanner(); + wavesurfer.backend.setFilter(wavesurfer.panner); + + // Bind panner slider + // @see http://stackoverflow.com/a/14412601/352796 + var onChange = function () { + var xDeg = parseInt(slider.value); + var x = Math.sin(xDeg * (Math.PI / 180)); + wavesurfer.panner.setPosition(x, 0, 0); + }; + var slider = document.querySelector('[data-action="pan"]'); + slider.addEventListener('input', onChange); + slider.addEventListener('change', onChange); + onChange(); + }()); + + // Log errors + wavesurfer.on('error', function (msg) { + console.log(msg); + }); + + // Bind play/pause button + document.querySelector( + '[data-action="play"]' + ).addEventListener('click', wavesurfer.playPause.bind(wavesurfer)); + + // Progress bar + (function () { + var progressDiv = document.querySelector('#progress-bar'); + var progressBar = progressDiv.querySelector('.progress-bar'); + + var showProgress = function (percent) { + progressDiv.style.display = 'block'; + progressBar.style.width = percent + '%'; + }; + + var hideProgress = function () { + progressDiv.style.display = 'none'; + }; + + wavesurfer.on('loading', showProgress); + wavesurfer.on('ready', hideProgress); + wavesurfer.on('destroy', hideProgress); + wavesurfer.on('error', hideProgress); + }()); +}); diff --git a/static/wavesurfer.js/example/panner/media.wav b/static/wavesurfer.js/example/panner/media.wav new file mode 100644 index 0000000..5672ec2 Binary files /dev/null and b/static/wavesurfer.js/example/panner/media.wav differ diff --git a/static/wavesurfer.js/example/playlist/app.js b/static/wavesurfer.js/example/playlist/app.js new file mode 100644 index 0000000..5f25c73 --- /dev/null +++ b/static/wavesurfer.js/example/playlist/app.js @@ -0,0 +1,67 @@ +// Create a WaveSurfer instance +var wavesurfer = Object.create(WaveSurfer); + + +// Init on DOM ready +document.addEventListener('DOMContentLoaded', function () { + wavesurfer.init({ + container: '#waveform', + waveColor: '#428bca', + progressColor: '#31708f', + height: 120, + barWidth: 3 + }); +}); + + +// Bind controls +document.addEventListener('DOMContentLoaded', function () { + var playPause = document.querySelector('#playPause'); + playPause.addEventListener('click', function () { + wavesurfer.playPause(); + }); + + // Toggle play/pause text + wavesurfer.on('play', function () { + document.querySelector('#play').style.display = 'none'; + document.querySelector('#pause').style.display = ''; + }); + wavesurfer.on('pause', function () { + document.querySelector('#play').style.display = ''; + document.querySelector('#pause').style.display = 'none'; + }); + + + // The playlist links + var links = document.querySelectorAll('#playlist a'); + var currentTrack = 0; + + // Load a track by index and highlight the corresponding link + var setCurrentSong = function (index) { + links[currentTrack].classList.remove('active'); + currentTrack = index; + links[currentTrack].classList.add('active'); + wavesurfer.load(links[currentTrack].href); + }; + + // Load the track on click + Array.prototype.forEach.call(links, function (link, index) { + link.addEventListener('click', function (e) { + e.preventDefault(); + setCurrentSong(index); + }); + }); + + // Play on audio load + wavesurfer.on('ready', function () { + wavesurfer.play(); + }); + + // Go to the next track on finish + wavesurfer.on('finish', function () { + setCurrentSong((currentTrack + 1) % links.length); + }); + + // Load the first track + setCurrentSong(currentTrack); +}); diff --git a/static/wavesurfer.js/example/playlist/index.html b/static/wavesurfer.js/example/playlist/index.html new file mode 100644 index 0000000..a442d37 --- /dev/null +++ b/static/wavesurfer.js/example/playlist/index.html @@ -0,0 +1,112 @@ + + + + + wavesurfer.js | Playlist + + + + + + + + + + + + + + + + + + +
+
+ + +

wavesurfer.js Playlist Demo

+
+ + + + +
+ + + + + + diff --git a/static/wavesurfer.js/example/screenshot.png b/static/wavesurfer.js/example/screenshot.png new file mode 100644 index 0000000..aa58ddf Binary files /dev/null and b/static/wavesurfer.js/example/screenshot.png differ diff --git a/static/wavesurfer.js/example/spectrogram/app.js b/static/wavesurfer.js/example/spectrogram/app.js new file mode 100644 index 0000000..cceda2a --- /dev/null +++ b/static/wavesurfer.js/example/spectrogram/app.js @@ -0,0 +1,59 @@ +'use strict'; + +// Create an instance +var wavesurfer = Object.create(WaveSurfer); + +// Init & load +document.addEventListener('DOMContentLoaded', function () { + var options = { + container : '#waveform', + waveColor : 'violet', + progressColor : 'purple', + loaderColor : 'purple', + cursorColor : 'navy' + }; + + if (location.search.match('scroll')) { + options.minPxPerSec = 100; + options.scrollParent = true; + } + + if (location.search.match('normalize')) { + options.normalize = true; + } + + /* Progress bar */ + (function () { + var progressDiv = document.querySelector('#progress-bar'); + var progressBar = progressDiv.querySelector('.progress-bar'); + + var showProgress = function (percent) { + progressDiv.style.display = 'block'; + progressBar.style.width = percent + '%'; + }; + + var hideProgress = function () { + progressDiv.style.display = 'none'; + }; + + wavesurfer.on('loading', showProgress); + wavesurfer.on('ready', hideProgress); + wavesurfer.on('destroy', hideProgress); + wavesurfer.on('error', hideProgress); + }()); + + wavesurfer.on('ready', function () { + // Init spectrogram plugin + var spectrogram = Object.create(WaveSurfer.Spectrogram); + + spectrogram.init({ + wavesurfer: wavesurfer, + container: '#wave-spectrogram' + }); + + }); + + // Init wavesurfer + wavesurfer.init(options); + wavesurfer.load('../media/demo.wav'); +}); diff --git a/static/wavesurfer.js/example/spectrogram/index.html b/static/wavesurfer.js/example/spectrogram/index.html new file mode 100644 index 0000000..87cedd9 --- /dev/null +++ b/static/wavesurfer.js/example/spectrogram/index.html @@ -0,0 +1,143 @@ + + + + + wavesurfer.js | Spectrogram plugin + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +

wavesurfer.js + Spectrogram

+
+ +
+
+
+
+
+ + +
+
+ +
+ +
+
+ +
+
+

wavesurfer.js Spectrogram Plugin

+ +

Adds a simple spectrogram to your wavesurfer.js instances.

+ +

Installation

+ +

+

    +
  1. add the Spectrogram plugin script tag
  2. +
  3. create a WaveSurfer instance
  4. +
  5. add a container HTML element for the spectrogram
  6. +
  7. create a Spectrogram instance in the WaveSurfer's "ready" event callback
  8. +
+

+

+ Download the plugin (5 KB) +

+
+ +
+

Quick Start

+ +

+

var wavesurfer = Object.create(WaveSurfer);
+
+wavesurfer.init({
+  // your options here
+});
+
+wavesurfer.on('ready', function () {
+    var spectrogram = Object.create(WaveSurfer.Spectrogram);
+
+    spectrogram.init({
+        wavesurfer: wavesurfer,
+        container: "#wave-spectrogram"
+    });
+});
+
+wavesurfer.load('example/media/demo.wav');
+

+ +
+ +

Options

+ +
    +
  • wavesurfer - required - a WaveSurfer instance.
  • +
  • container - required - the element in which to place the spectrogram, or a CSS selector to find it.
  • +
  • fftSamples - number of FFT samples (512 by default). Number of spectral lines and height of the spectrogram will be a half of this parameter.
  • +
  • frequenciesDataUrl - URL to load spectral data from.
  • +
+
+
+ + +
+ + + + + + diff --git a/static/wavesurfer.js/example/split-channels/app.js b/static/wavesurfer.js/example/split-channels/app.js new file mode 100644 index 0000000..7f37565 --- /dev/null +++ b/static/wavesurfer.js/example/split-channels/app.js @@ -0,0 +1,55 @@ +// Create an instance +var wavesurfer; + +window.onload = function () { + wavesurfer = WaveSurfer.create({ + container: document.querySelector('#waveform'), + splitChannels: true + }); + + // Load audio from URL + wavesurfer.load('stereo.mp3'); + + // Play/pause on button press + document.querySelector('[data-action="play"]').addEventListener( + 'click', wavesurfer.playPause.bind(wavesurfer) + ); + + + // Drag'n'drop + var toggleActive = function (e, toggle) { + e.stopPropagation(); + e.preventDefault(); + toggle ? e.target.classList.add('wavesurfer-dragover') : + e.target.classList.remove('wavesurfer-dragover'); + }; + + var handlers = { + // Drop event + drop: function (e) { + toggleActive(e, false); + + // Load the file into wavesurfer + if (e.dataTransfer.files.length) { + wavesurfer.loadBlob(e.dataTransfer.files[0]); + } else { + wavesurfer.fireEvent('error', 'Not a file'); + } + }, + + // Drag-over event + dragover: function (e) { + toggleActive(e, true); + }, + + // Drag-leave event + dragleave: function (e) { + toggleActive(e, false); + } + }; + + var dropTarget = document.querySelector('#drop'); + Object.keys(handlers).forEach(function (event) { + dropTarget.addEventListener(event, handlers[event]); + }); +}; diff --git a/static/wavesurfer.js/example/split-channels/index.html b/static/wavesurfer.js/example/split-channels/index.html new file mode 100644 index 0000000..1027c6b --- /dev/null +++ b/static/wavesurfer.js/example/split-channels/index.html @@ -0,0 +1,108 @@ + + + + + wavesurfer.js | Split Channel Example + + + + + + + + + + + + + + + + + + + + +
+
+ + +

Split Channel Waveforms

+
+ +
+
+ +
+ +
+ +
+
+ +

+ Drag'n'drop your + -file + here! +

+ +
+

How to Enable Split Channels

+ +

+ Set the splitChannels option to true. +

+ +

+

var wavesurfer = WaveSurfer.create({
+    container: document.querySelector('#wave'),
+    splitChannels: true
+});
+
+

+ +
+ + +
+ + + + + + diff --git a/static/wavesurfer.js/example/split-channels/stereo.mp3 b/static/wavesurfer.js/example/split-channels/stereo.mp3 new file mode 100644 index 0000000..a95857d Binary files /dev/null and b/static/wavesurfer.js/example/split-channels/stereo.mp3 differ diff --git a/static/wavesurfer.js/example/timeline/app.js b/static/wavesurfer.js/example/timeline/app.js new file mode 100644 index 0000000..2e46aad --- /dev/null +++ b/static/wavesurfer.js/example/timeline/app.js @@ -0,0 +1,59 @@ +'use strict'; + +// Create an instance +var wavesurfer = Object.create(WaveSurfer); + +// Init & load +document.addEventListener('DOMContentLoaded', function () { + var options = { + container : '#waveform', + waveColor : 'violet', + progressColor : 'purple', + loaderColor : 'purple', + cursorColor : 'navy' + }; + + if (location.search.match('scroll')) { + options.minPxPerSec = 100; + options.scrollParent = true; + } + + if (location.search.match('normalize')) { + options.normalize = true; + } + + /* Progress bar */ + (function () { + var progressDiv = document.querySelector('#progress-bar'); + var progressBar = progressDiv.querySelector('.progress-bar'); + + var showProgress = function (percent) { + progressDiv.style.display = 'block'; + progressBar.style.width = percent + '%'; + }; + + var hideProgress = function () { + progressDiv.style.display = 'none'; + }; + + wavesurfer.on('loading', showProgress); + wavesurfer.on('ready', hideProgress); + wavesurfer.on('destroy', hideProgress); + wavesurfer.on('error', hideProgress); + }()); + + wavesurfer.on('ready', function () { + // Init Timeline plugin + var timeline = Object.create(WaveSurfer.Timeline); + + timeline.init({ + wavesurfer: wavesurfer, + container: '#wave-timeline' + }); + + }); + + // Init wavesurfer + wavesurfer.init(options); + wavesurfer.load('../../example/media/demo.wav'); +}); diff --git a/static/wavesurfer.js/example/timeline/index.html b/static/wavesurfer.js/example/timeline/index.html new file mode 100644 index 0000000..fafb600 --- /dev/null +++ b/static/wavesurfer.js/example/timeline/index.html @@ -0,0 +1,151 @@ + + + + + wavesurfer.js | Timeline plugin + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +

wavesurfer.js + Timeline

+
+ +
+
+
+
+
+ + +
+
+ +
+ +
+
+ +
+
+

wavesurfer.js Timeline Plugin

+ +

Adds a simple timeline to your wavesurfer.js instances.

+ +

Installation

+ +

+

    +
  1. add the Timeline plugin script tag
  2. +
  3. create a WaveSurfer instance
  4. +
  5. add a container HTML element for the timeline
  6. +
  7. create a Timeline instance in the WaveSurfer's "ready" event callback
  8. +
+

+

+ Download the plugin (5 KB) +

+
+ +
+

Quick Start

+ +

+

var wavesurfer = Object.create(WaveSurfer);
+
+wavesurfer.init({
+  // your options here
+});
+
+wavesurfer.on('ready', function () {
+    var timeline = Object.create(WaveSurfer.Timeline);
+
+    timeline.init({
+        wavesurfer: wavesurfer,
+        container: "#wave-timeline"
+    });
+});
+
+wavesurfer.load('example/media/demo.mp3');
+

+ +
+ +

Options

+ +
    +
  • wavesurfer - required - a WaveSurfer instance
  • +
  • container - required - the element in which to place the timeline, or a CSS selector to find it
  • +
  • height - the height (in pixels) of the timeline. The default is 20.
  • +
  • notchPercentHeight - the height (in percent) of the minor notch lines in the timeline. The default is 90.
  • +
  • primaryColor - the color of the modulo-ten notch lines (e.g. 10sec, 20sec). The default is '#000'.
  • +
  • secondaryColor - the color of the non-modulo-ten notch lines. The default is '#c0c0c0'.
  • +
  • primaryFontColor - the color of the non-modulo-ten time labels (e.g. 10sec, 20sec). The default is '#000'.
  • +
  • primaryFontColor - the color of the non-modulo-ten time labels (e.g. 5sec, 15sec). The default is '#c0c0c0'.
  • +
  • fontFamily - the font family for the time labels. The default is 'Arial'.
  • +
  • fontSize - the font size for the time labels. The default is 10.
  • +
+
+
+ + +
+ + + + + + diff --git a/static/wavesurfer.js/example/trivia.js b/static/wavesurfer.js/example/trivia.js new file mode 100644 index 0000000..aad9430 --- /dev/null +++ b/static/wavesurfer.js/example/trivia.js @@ -0,0 +1,72 @@ +var GLOBAL_ACTIONS = { + 'play': function () { + wavesurfer.playPause(); + }, + + 'back': function () { + wavesurfer.skipBackward(); + }, + + 'forth': function () { + wavesurfer.skipForward(); + }, + + 'toggle-mute': function () { + wavesurfer.toggleMute(); + } +}; + + +// Bind actions to buttons and keypresses +document.addEventListener('DOMContentLoaded', function () { + document.addEventListener('keydown', function (e) { + var map = { + 32: 'play', // space + 37: 'back', // left + 39: 'forth' // right + }; + var action = map[e.keyCode]; + if (action in GLOBAL_ACTIONS) { + if (document == e.target || document.body == e.target) { + e.preventDefault(); + } + GLOBAL_ACTIONS[action](e); + } + }); + + [].forEach.call(document.querySelectorAll('[data-action]'), function (el) { + el.addEventListener('click', function (e) { + var action = e.currentTarget.dataset.action; + if (action in GLOBAL_ACTIONS) { + e.preventDefault(); + GLOBAL_ACTIONS[action](e); + } + }); + }); +}); + + +// Misc +document.addEventListener('DOMContentLoaded', function () { + // Web Audio not supported + if (!window.AudioContext && !window.webkitAudioContext) { + var demo = document.querySelector('#demo'); + if (demo) { + demo.innerHTML = ''; + } + } + + + // Navbar links + var ul = document.querySelector('.nav-pills'); + var pills = ul.querySelectorAll('li'); + var active = pills[0]; + if (location.search) { + var first = location.search.split('&')[0]; + var link = ul.querySelector('a[href="' + first + '"]'); + if (link) { + active = link.parentNode; + } + } + active && active.classList.add('active'); +}); diff --git a/static/wavesurfer.js/example/zoom/index.html b/static/wavesurfer.js/example/zoom/index.html new file mode 100644 index 0000000..3cef8ff --- /dev/null +++ b/static/wavesurfer.js/example/zoom/index.html @@ -0,0 +1,122 @@ + + + + + wavesurfer.js | Zoom Example + + + + + + + + + + + + + + + + + + + + +
+
+ + +

Zooming Feature Example

+
+ +
+
+ +
+ +
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+
+ +
+

How to Zoom

+ +
+ +

+

var wavesurfer = Object.create(WaveSurfer);
+
+wavesurfer.init({
+    container: document.querySelector('#wave'),
+    backend: 'MediaElement'
+});
+
+document.querySelector('#slider').oninput = function () {
+    wavesurfer.zoom(Number(this.value));
+};
+
+

+
+ + +
+ + + + + + diff --git a/static/wavesurfer.js/example/zoom/main.js b/static/wavesurfer.js/example/zoom/main.js new file mode 100644 index 0000000..b0329be --- /dev/null +++ b/static/wavesurfer.js/example/zoom/main.js @@ -0,0 +1,36 @@ +'use strict'; + +// Create an instance +var wavesurfer = Object.create(WaveSurfer); + +// Init & load audio file +document.addEventListener('DOMContentLoaded', function () { + // Init + wavesurfer.init({ + container: document.querySelector('#waveform'), + waveColor: '#A8DBA8', + progressColor: '#3B8686', + backend: 'MediaElement' + }); + + + // Load audio from URL + wavesurfer.load('../media/demo.wav'); + + + // Zoom slider + var slider = document.querySelector('[data-action="zoom"]'); + + slider.value = wavesurfer.params.minPxPerSec; + slider.min = wavesurfer.params.minPxPerSec; + + slider.addEventListener('input', function () { + wavesurfer.zoom(Number(this.value)); + }); + + + // Play button + var button = document.querySelector('[data-action="play"]'); + + button.addEventListener('click', wavesurfer.playPause.bind(wavesurfer)); +}); diff --git a/static/wavesurfer.js/index.html b/static/wavesurfer.js/index.html new file mode 100644 index 0000000..2675834 --- /dev/null +++ b/static/wavesurfer.js/index.html @@ -0,0 +1,239 @@ + + + + + wavesurfer.js + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +

wavesurfer.js

+
+ +
+
+
+
+
+ + +
+ +
+ + + + + + + +
+
+ +

+ Drag'n'drop your favorite + -file + here! +

+ +
+
+

Web Audio Waveform Visualizer

+ +

Customizable waveform audio visualization built on top of Web Audio API and HTML5 Canvas. With wavesurfer.js you can create anything from an HTML5 audio player to a sophisticated DJ application. For a list of other projects using wavesurfer.js, check out the wiki where you can also add your own project.

+ +

Compatibility

+ +

wavesurfer.js runs on modern browsers supporting Web Audio. Including Firefox, Chrome, Safari, Mobile Safari and Opera.

+ +

Download

+ +

+ Download wavesurfer.min.js (20 KB) +

+
+ +
+

Quick Start

+ +

+

var wavesurfer = WaveSurfer.create(
+    container: '#wave',
+    waveColor: 'violet',
+    progressColor: 'purple'
+});
+
+wavesurfer.on('ready', function () {
+    wavesurfer.play();
+});
+
+wavesurfer.load('audio.wav');
+

+ +

Documentation

+ +

The full list of options and methods can be found in the README file.

+
+
+ +
+
+

Plugins & Examples

+ +

Thanks to the everyting-is-public API, it's easy to write wavesurfer.js plugins.

+ +
    +
  • +

    Regions plugin

    +

    + Adds ability to display and interact + with audio regions. Regions are visual + overlays that can be resized and + dragged around the waveform. You can + play back and loop a region. +

    +
  • + +
  • +

    ELAN plugin

    +

    + Reads ELAN files and displays audio annotations as an interactive widget. ELAN is parsed into a JavaScript object with some denormalization. +

    +
  • + +
  • +

    Timeline plugin

    +

    + Adds a nice simple timeline to your waveform. By Instajams. +

    +
  • + +
  • +

    Microphone plugin

    +

    + Visualizes audio input from a microphone. By Thijs Triemstra. +

    +
  • + +
  • +

    Zoom

    +

    + Zooming feature can be used with an HTML5 slider. +

    +
  • + +
  • +

    Panner

    +

    + Creating a panner with wavesurfer.js is easy-peasy. Follow the 4 steps. +

    +
  • + +
  • +

    Equalizer

    +

    + Simple equalizer to demonstrate how to connect multiple filters in chain. +

    +
  • + +
  • +

    Media element

    +

    + HTML5 media element fallback for browsers without Web Audio. +

    +
  • + +
  • +

    Split channel waveforms

    +

    + Display multiple waveforms, one for each channel, in a single player. +

    +
  • + +
  • +

    AngularJS directive

    +

    + Embed wavesurfer.js in an Angular directive. +

    +
  • +
+
+
+ + +
+ + + + + + diff --git a/static/wavesurfer.js/package.json b/static/wavesurfer.js/package.json new file mode 100644 index 0000000..68afd4f --- /dev/null +++ b/static/wavesurfer.js/package.json @@ -0,0 +1,34 @@ +{ + "name": "wavesurfer.js", + "version": "1.0.47", + "description": "Interactive navigable audio visualization using Web Audio and Canvas", + "main": "dist/wavesurfer.min.js", + "directories": { + "example": "example" + }, + "scripts": { + "start": "grunt; ruby -run -e httpd . -p 8080", + "test": "grunt test" + }, + "repository": { + "type": "git", + "url": "git://github.com/katspaugh/wavesurfer.js.git" + }, + "author": "", + "license": "CC-BY-3.0", + "bugs": { + "url": "https://github.com/katspaugh/wavesurfer.js/issues" + }, + "devDependencies": { + "grunt": "^0.4.5", + "grunt-contrib-concat": ">=0.4.0", + "grunt-contrib-connect": "^0.11.2", + "grunt-contrib-jasmine": ">=0.8.2", + "grunt-contrib-jshint": ">=0.10.0", + "grunt-contrib-uglify": ">=0.5.0", + "grunt-coveralls": ">=1.0.0", + "grunt-template-jasmine-istanbul": ">=0.3.3", + "jasmine-expect": ">=1.22.3" + }, + "homepage": "https://github.com/katspaugh/wavesurfer.js" +} diff --git a/static/wavesurfer.js/plugin/wavesurfer.elan.js b/static/wavesurfer.js/plugin/wavesurfer.elan.js new file mode 100644 index 0000000..1f9153e --- /dev/null +++ b/static/wavesurfer.js/plugin/wavesurfer.elan.js @@ -0,0 +1,252 @@ +'use strict'; + +WaveSurfer.ELAN = { + Types: { + ALIGNABLE_ANNOTATION: 'ALIGNABLE_ANNOTATION', + REF_ANNOTATION: 'REF_ANNOTATION' + }, + + init: function (params) { + this.data = null; + this.params = params; + this.container = 'string' == typeof params.container ? + document.querySelector(params.container) : params.container; + + if (!this.container) { + throw Error('No container for ELAN'); + } + + this.bindClick(); + + if (params.url) { + this.load(params.url); + } + }, + + load: function (url) { + var my = this; + this.loadXML(url, function (xml) { + my.data = my.parseElan(xml); + my.render(); + my.fireEvent('ready', my.data); + }); + }, + + loadXML: function (url, callback) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'document'; + xhr.send(); + xhr.addEventListener('load', function (e) { + callback && callback(e.target.responseXML); + }); + }, + + parseElan: function (xml) { + var _forEach = Array.prototype.forEach; + var _map = Array.prototype.map; + + var data = { + media: {}, + timeOrder: {}, + tiers: [], + annotations: {}, + alignableAnnotations: [] + }; + + var header = xml.querySelector('HEADER'); + var inMilliseconds = header.getAttribute('TIME_UNITS') == 'milliseconds'; + var media = header.querySelector('MEDIA_DESCRIPTOR'); + data.media.url = media.getAttribute('MEDIA_URL'); + data.media.type = media.getAttribute('MIME_TYPE'); + + var timeSlots = xml.querySelectorAll('TIME_ORDER TIME_SLOT'); + var timeOrder = {}; + _forEach.call(timeSlots, function (slot) { + var value = parseFloat(slot.getAttribute('TIME_VALUE')); + // If in milliseconds, convert to seconds with rounding + if (inMilliseconds) { + value = Math.round(value * 1e2) / 1e5; + } + timeOrder[slot.getAttribute('TIME_SLOT_ID')] = value; + }); + + data.tiers = _map.call(xml.querySelectorAll('TIER'), function (tier) { + return { + id: tier.getAttribute('TIER_ID'), + linguisticTypeRef: tier.getAttribute('LINGUISTIC_TYPE_REF'), + defaultLocale: tier.getAttribute('DEFAULT_LOCALE'), + annotations: _map.call( + tier.querySelectorAll('REF_ANNOTATION, ALIGNABLE_ANNOTATION'), + function (node) { + var annot = { + type: node.nodeName, + id: node.getAttribute('ANNOTATION_ID'), + ref: node.getAttribute('ANNOTATION_REF'), + value: node.querySelector('ANNOTATION_VALUE') + .textContent.trim() + }; + + if (this.Types.ALIGNABLE_ANNOTATION == annot.type) { + // Add start & end to alignable annotation + annot.start = timeOrder[node.getAttribute('TIME_SLOT_REF1')]; + annot.end = timeOrder[node.getAttribute('TIME_SLOT_REF2')]; + + // Add to the list of alignable annotations + data.alignableAnnotations.push(annot); + } + + // Additionally, put into the flat map of all annotations + data.annotations[annot.id] = annot; + + return annot; + }, this + ) + }; + }, this); + + // Create JavaScript references between annotations + data.tiers.forEach(function (tier) { + tier.annotations.forEach(function (annot) { + if (null != annot.ref) { + annot.reference = data.annotations[annot.ref]; + } + }, this); + }, this); + + // Sort alignable annotations by start & end + data.alignableAnnotations.sort(function (a, b) { + var d = a.start - b.start; + if (d == 0) { + d = b.end - a.end; + } + return d; + }); + + data.length = data.alignableAnnotations.length; + + return data; + }, + + render: function () { + // apply tiers filter + var tiers = this.data.tiers; + if (this.params.tiers) { + tiers = tiers.filter(function (tier) { + return tier.id in this.params.tiers; + }, this); + } + + // denormalize references to alignable annotations + var backRefs = {}; + var indeces = {}; + tiers.forEach(function (tier, index) { + tier.annotations.forEach(function (annot) { + if (annot.reference && + annot.reference.type == this.Types.ALIGNABLE_ANNOTATION) { + if (!(annot.reference.id in backRefs)) { + backRefs[annot.ref] = {}; + } + backRefs[annot.ref][index] = annot; + indeces[index] = true; + } + }, this); + }, this); + indeces = Object.keys(indeces).sort(); + + this.renderedAlignable = this.data.alignableAnnotations.filter( + function (alignable) { + return backRefs[alignable.id]; + } + ); + + // table + var table = document.createElement('table'); + table.className = 'wavesurfer-annotations'; + + // head + var thead = document.createElement('thead'); + var headRow = document.createElement('tr'); + thead.appendChild(headRow); + table.appendChild(thead); + var th = document.createElement('th'); + th.textContent = 'Time'; + th.className = 'wavesurfer-time'; + headRow.appendChild(th); + indeces.forEach(function (index) { + var tier = tiers[index]; + var th = document.createElement('th'); + th.className = 'wavesurfer-tier-' + tier.id; + th.textContent = tier.id; + th.style.width = this.params.tiers[tier.id]; + headRow.appendChild(th); + }, this); + + // body + var tbody = document.createElement('tbody'); + table.appendChild(tbody); + this.renderedAlignable.forEach(function (alignable) { + var row = document.createElement('tr'); + row.id = 'wavesurfer-alignable-' + alignable.id; + tbody.appendChild(row); + + var td = document.createElement('td'); + td.className = 'wavesurfer-time'; + td.textContent = alignable.start.toFixed(1) + '–' + + alignable.end.toFixed(1); + row.appendChild(td); + + var backRef = backRefs[alignable.id]; + indeces.forEach(function (index) { + var tier = tiers[index]; + var td = document.createElement('td'); + var annotation = backRef[index]; + if (annotation) { + td.id = 'wavesurfer-annotation-' + annotation.id; + td.dataset.ref = alignable.id; + td.dataset.start = alignable.start; + td.dataset.end = alignable.end; + td.textContent = annotation.value; + } + td.className = 'wavesurfer-tier-' + tier.id; + row.appendChild(td); + }, this); + }, this); + + this.container.innerHTML = ''; + this.container.appendChild(table); + }, + + bindClick: function () { + var my = this; + this.container.addEventListener('click', function (e) { + var ref = e.target.dataset.ref; + if (null != ref) { + var annot = my.data.annotations[ref]; + if (annot) { + my.fireEvent('select', annot.start, annot.end); + } + } + }); + }, + + getRenderedAnnotation: function (time) { + var result; + this.renderedAlignable.some(function (annotation) { + if (annotation.start <= time && annotation.end >= time) { + result = annotation; + return true; + } + return false; + }); + return result; + }, + + getAnnotationNode: function (annotation) { + return document.getElementById( + 'wavesurfer-alignable-' + annotation.id + ); + } +}; + +WaveSurfer.util.extend(WaveSurfer.ELAN, WaveSurfer.Observer); diff --git a/static/wavesurfer.js/plugin/wavesurfer.microphone.js b/static/wavesurfer.js/plugin/wavesurfer.microphone.js new file mode 100644 index 0000000..870d4ce --- /dev/null +++ b/static/wavesurfer.js/plugin/wavesurfer.microphone.js @@ -0,0 +1,211 @@ +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + define(['wavesurfer'], factory); + } else { + root.WaveSurfer.Microphone = factory(root.WaveSurfer); + } +}(this, function (WaveSurfer) { + 'use strict'; + + WaveSurfer.Microphone = { + init: function (params) { + this.params = params; + + var wavesurfer = this.wavesurfer = params.wavesurfer; + + if (!this.wavesurfer) { + throw new Error('No WaveSurfer instance provided'); + } + + this.active = false; + this.paused = false; + this.reloadBufferFunction = this.reloadBuffer.bind(this); + + // cross-browser getUserMedia + this.getUserMedia = ( + navigator.getUserMedia || + navigator.webkitGetUserMedia || + navigator.mozGetUserMedia || + navigator.msGetUserMedia + ).bind(navigator); + + // The buffer size in units of sample-frames. + // If specified, the bufferSize must be one of the following values: + // 256, 512, 1024, 2048, 4096, 8192, 16384. Defaults to 4096. + this.bufferSize = this.params.bufferSize || 4096; + + // Integer specifying the number of channels for this node's input, + // defaults to 1. Values of up to 32 are supported. + this.numberOfInputChannels = this.params.numberOfInputChannels || 1; + + // Integer specifying the number of channels for this node's output, + // defaults to 1. Values of up to 32 are supported. + this.numberOfOutputChannels = this.params.numberOfOutputChannels || 1; + + // wavesurfer's AudioContext where we'll route the mic signal to + this.micContext = this.wavesurfer.backend.getAudioContext(); + }, + + /** + * Allow user to select audio input device, eg. microphone, and + * start the visualization. + */ + start: function() { + this.getUserMedia({ + video: false, + audio: true + }, + this.gotStream.bind(this), + this.deviceError.bind(this)); + }, + + /** + * Pause/resume visualization. + */ + togglePlay: function() { + if (!this.active) { + // start it first + this.start(); + } else { + // toggle paused + this.paused = !this.paused; + + if (this.paused) { + this.pause(); + } else { + this.play(); + } + } + }, + + /** + * Play visualization. + */ + play: function() { + this.paused = false; + + this.connect(); + }, + + /** + * Pause visualization. + */ + pause: function() { + this.paused = true; + + // disconnect sources so they can be used elsewhere + // (eg. during audio playback) + this.disconnect(); + }, + + /** + * Stop the device stream and remove any remaining waveform drawing from + * the wavesurfer canvas. + */ + stop: function() { + if (this.active) { + // stop visualization and device + this.stopDevice(); + + // empty last frame + this.wavesurfer.empty(); + } + }, + + /** + * Stop the device and the visualization. + */ + stopDevice: function() { + this.active = false; + + // stop visualization + this.disconnect(); + + // stop stream from device + if (this.stream) { + this.stream.stop(); + } + }, + + /** + * Connect the media sources that feed the visualization. + */ + connect: function() { + if (this.stream !== undefined) { + // Create an AudioNode from the stream. + this.mediaStreamSource = this.micContext.createMediaStreamSource(this.stream); + + this.levelChecker = this.micContext.createScriptProcessor( + this.bufferSize, this.numberOfInputChannels, this.numberOfOutputChannels); + this.mediaStreamSource.connect(this.levelChecker); + + this.levelChecker.connect(this.micContext.destination); + this.levelChecker.onaudioprocess = this.reloadBufferFunction; + } + }, + + /** + * Disconnect the media sources that feed the visualization. + */ + disconnect: function() { + if (this.mediaStreamSource !== undefined) { + this.mediaStreamSource.disconnect(); + } + + if (this.levelChecker !== undefined) { + this.levelChecker.disconnect(); + this.levelChecker.onaudioprocess = undefined; + } + }, + + /** + * Redraw the waveform. + */ + reloadBuffer: function(event) { + if (!this.paused) { + this.wavesurfer.empty(); + this.wavesurfer.loadDecodedBuffer(event.inputBuffer); + } + }, + + /** + * Audio input device is ready. + * + * @param {LocalMediaStream} stream: the microphone's media stream. + */ + gotStream: function(stream) { + this.stream = stream; + this.active = true; + + // start visualization + this.play(); + + // notify listeners + this.fireEvent('deviceReady', stream); + }, + + /** + * Destroy the microphone plugin. + */ + destroy: function(event) { + // make sure the buffer is not redrawn during + // cleanup and demolition of this plugin. + this.paused = true; + + this.stop(); + }, + + /** + * Device error callback. + */ + deviceError: function(code) { + // notify listeners + this.fireEvent('deviceError', code); + } + + }; + + WaveSurfer.util.extend(WaveSurfer.Microphone, WaveSurfer.Observer); + + return WaveSurfer.Microphone; +})); diff --git a/static/wavesurfer.js/plugin/wavesurfer.minimap.js b/static/wavesurfer.js/plugin/wavesurfer.minimap.js new file mode 100644 index 0000000..17993df --- /dev/null +++ b/static/wavesurfer.js/plugin/wavesurfer.minimap.js @@ -0,0 +1,213 @@ +'use strict'; + +/* Minimap */ +WaveSurfer.Minimap = WaveSurfer.util.extend({}, WaveSurfer.Drawer, WaveSurfer.Drawer.Canvas, { + init: function (wavesurfer, params) { + this.wavesurfer = wavesurfer; + this.container = this.wavesurfer.drawer.container; + this.lastPos = this.wavesurfer.drawer.lastPos; + this.params = wavesurfer.util.extend( + {}, this.wavesurfer.drawer.params, { + showRegions: false, + showOverview: false, + overviewBorderColor: 'green', + overviewBorderSize: 2 + }, params, { + scrollParent: false, + fillParent: true + } + ); + + this.width = 0; + this.height = this.params.height * this.params.pixelRatio; + + this.createWrapper(); + this.createElements(); + + if (WaveSurfer.Regions && this.params.showRegions) { + this.regions(); + } + + this.bindWaveSurferEvents(); + this.bindMinimapEvents(); + }, + regions: function() { + var my = this; + this.regions = {}; + + this.wavesurfer.on('region-created', function(region) { + my.regions[region.id] = region; + my.renderRegions(); + }); + + this.wavesurfer.on('region-updated', function(region) { + my.regions[region.id] = region; + my.renderRegions(); + }); + + this.wavesurfer.on('region-removed', function(region) { + delete my.regions[region.id]; + my.renderRegions(); + }); + }, + renderRegions: function() { + var my = this; + var regionElements = this.wrapper.querySelectorAll('region'); + for (var i = 0; i < regionElements.length; ++i) { + this.wrapper.removeChild(regionElements[i]); + } + + Object.keys(this.regions).forEach(function(id){ + var region = my.regions[id]; + var width = (my.width * ((region.end - region.start) / my.wavesurfer.getDuration())); + var left = (my.width * (region.start / my.wavesurfer.getDuration())); + var regionElement = my.style(document.createElement('region'), { + height: 'inherit', + backgroundColor: region.color, + width: width + 'px', + left: left + 'px', + display: 'block', + position: 'absolute' + }); + regionElement.classList.add(id); + my.wrapper.appendChild(regionElement); + }); + }, + createElements: function() { + WaveSurfer.Drawer.Canvas.createElements.call(this); + + if (this.params.showOverview) { + this.overviewRegion = this.style(document.createElement('overview'), { + height: (this.wrapper.offsetHeight - (this.params.overviewBorderSize * 2)) + 'px', + width: '0px', + display: 'block', + position: 'absolute', + cursor: 'move', + border: this.params.overviewBorderSize + 'px solid ' + this.params.overviewBorderColor, + zIndex: 2, + opacity: this.params.overviewOpacity + }); + + this.wrapper.appendChild(this.overviewRegion); + } + }, + + bindWaveSurferEvents: function () { + var my = this; + this.wavesurfer.on('ready', this.render.bind(this)); + this.wavesurfer.on('audioprocess', function (currentTime) { + my.progress(my.wavesurfer.backend.getPlayedPercents()); + }); + this.wavesurfer.on('seek', function(progress) { + my.progress(my.wavesurfer.backend.getPlayedPercents()); + }); + + if (this.params.showOverview) { + this.wavesurfer.on('scroll', function(event) { + if (!my.draggingOverview) { + my.moveOverviewRegion(event.target.scrollLeft / my.ratio); + } + }); + + this.wavesurfer.drawer.wrapper.addEventListener('mouseover', function(event) { + if (my.draggingOverview) { + my.draggingOverview = false; + } + }); + } + + var prevWidth = 0; + var onResize = function () { + if (prevWidth != my.wrapper.clientWidth) { + prevWidth = my.wrapper.clientWidth; + my.render(); + my.progress(my.wavesurfer.backend.getPlayedPercents()); + } + }; + window.addEventListener('resize', onResize, true); + + this.wavesurfer.on('destroy', function () { + my.destroy.bind(this); + window.removeEventListener('resize', onResize, true); + }); + }, + + bindMinimapEvents: function () { + var my = this; + var relativePositionX = 0; + var seek = true; + var positionMouseDown = { + clientX: 0, + clientY: 0 + }; + + this.on('click', (function (e, position) { + if (seek) { + this.progress(position); + this.wavesurfer.seekAndCenter(position); + } else { + seek = true; + } + }).bind(this)); + + if (this.params.showOverview) { + this.overviewRegion.addEventListener('mousedown', function(event) { + my.draggingOverview = true; + relativePositionX = event.layerX; + positionMouseDown.clientX = event.clientX; + positionMouseDown.clientY = event.clientY; + }); + + this.wrapper.addEventListener('mousemove', function(event) { + if(my.draggingOverview) { + my.moveOverviewRegion(event.clientX - my.container.getBoundingClientRect().left - relativePositionX); + } + }); + + this.wrapper.addEventListener('mouseup', function(event) { + if (positionMouseDown.clientX - event.clientX === 0 && positionMouseDown.clientX - event.clientX === 0) { + seek = true; + my.draggingOverview = false; + } else if (my.draggingOverview) { + seek = false; + my.draggingOverview = false; + } + }); + } + }, + + render: function () { + var len = this.getWidth(); + var peaks = this.wavesurfer.backend.getPeaks(len); + this.drawPeaks(peaks, len); + + if (this.params.showOverview) { + //get proportional width of overview region considering the respective + //width of the drawers + this.ratio = this.wavesurfer.drawer.width / this.width; + this.waveShowedWidth = this.wavesurfer.drawer.width / this.ratio; + this.waveWidth = this.wavesurfer.drawer.width; + this.overviewWidth = (this.width / this.ratio); + this.overviewPosition = 0; + this.overviewRegion.style.width = (this.overviewWidth - (this.params.overviewBorderSize * 2)) + 'px'; + } + }, + moveOverviewRegion: function(pixels) { + if (pixels < 0) { + this.overviewPosition = 0; + } else if (pixels + this.overviewWidth < this.width) { + this.overviewPosition = pixels; + } else { + this.overviewPosition = (this.width - this.overviewWidth); + } + this.overviewRegion.style.left = this.overviewPosition + 'px'; + this.wavesurfer.drawer.wrapper.scrollLeft = this.overviewPosition * this.ratio; + } +}); + + +WaveSurfer.initMinimap = function (params) { + var map = Object.create(WaveSurfer.Minimap); + map.init(this, params); + return map; +}; diff --git a/static/wavesurfer.js/plugin/wavesurfer.regions.js b/static/wavesurfer.js/plugin/wavesurfer.regions.js new file mode 100755 index 0000000..d011fa2 --- /dev/null +++ b/static/wavesurfer.js/plugin/wavesurfer.regions.js @@ -0,0 +1,441 @@ +'use strict'; + +/* Regions manager */ +WaveSurfer.Regions = { + init: function (wavesurfer) { + this.wavesurfer = wavesurfer; + this.wrapper = this.wavesurfer.drawer.wrapper; + + /* Id-based hash of regions. */ + this.list = {}; + }, + + /* Remove a region. */ + add: function (params) { + var region = Object.create(WaveSurfer.Region); + region.init(params, this.wavesurfer); + + this.list[region.id] = region; + + region.on('remove', (function () { + delete this.list[region.id]; + }).bind(this)); + + return region; + }, + + /* Remove all regions. */ + clear: function () { + Object.keys(this.list).forEach(function (id) { + this.list[id].remove(); + }, this); + }, + + enableDragSelection: function (params) { + var my = this; + var drag; + var start; + var region; + + function eventDown(e) { + drag = true; + if (typeof e.targetTouches !== 'undefined' && e.targetTouches.length === 1) { + e.clientX = e.targetTouches[0].clientX; + } + start = my.wavesurfer.drawer.handleEvent(e); + region = null; + } + this.wrapper.addEventListener('mousedown', eventDown); + this.wrapper.addEventListener('touchstart', eventDown); + function eventUp(e) { + drag = false; + + if (region) { + region.fireEvent('update-end', e); + my.wavesurfer.fireEvent('region-update-end', region, e); + } + + region = null; + } + this.wrapper.addEventListener('mouseup', eventUp); + this.wrapper.addEventListener('touchend', eventUp); + function eventMove(e) { + if (!drag) { return; } + + if (!region) { + region = my.add(params || {}); + } + + var duration = my.wavesurfer.getDuration(); + if (typeof e.targetTouches !== 'undefined' && e.targetTouches.length === 1) { + e.clientX = e.targetTouches[0].clientX; + } + var end = my.wavesurfer.drawer.handleEvent(e); + region.update({ + start: Math.min(end * duration, start * duration), + end: Math.max(end * duration, start * duration) + }); + } + this.wrapper.addEventListener('mousemove', eventMove); + this.wrapper.addEventListener('touchmove', eventMove); + } +}; + +WaveSurfer.Region = { + /* Helper function to assign CSS styles. */ + style: WaveSurfer.Drawer.style, + + init: function (params, wavesurfer) { + this.wavesurfer = wavesurfer; + this.wrapper = wavesurfer.drawer.wrapper; + + this.id = params.id == null ? WaveSurfer.util.getId() : params.id; + this.start = Number(params.start) || 0; + this.end = params.end == null ? + // small marker-like region + this.start + (4 / this.wrapper.scrollWidth) * this.wavesurfer.getDuration() : + Number(params.end); + this.resize = params.resize === undefined ? true : Boolean(params.resize); + this.drag = params.drag === undefined ? true : Boolean(params.drag); + this.loop = Boolean(params.loop); + this.color = params.color || 'rgba(0, 0, 0, 0.1)'; + this.data = params.data || {}; + this.attributes = params.attributes || {}; + + this.maxLength = params.maxLength; + this.minLength = params.minLength; + + this.bindInOut(); + this.render(); + this.wavesurfer.on('zoom', this.updateRender.bind(this)); + this.wavesurfer.fireEvent('region-created', this); + + }, + + /* Update region params. */ + update: function (params) { + if (null != params.start) { + this.start = Number(params.start); + } + if (null != params.end) { + this.end = Number(params.end); + } + if (null != params.loop) { + this.loop = Boolean(params.loop); + } + if (null != params.color) { + this.color = params.color; + } + if (null != params.data) { + this.data = params.data; + } + if (null != params.resize) { + this.resize = Boolean(params.resize); + } + if (null != params.drag) { + this.drag = Boolean(params.drag); + } + if (null != params.maxLength) { + this.maxLength = Number(params.maxLength); + } + if (null != params.minLength) { + this.minLength = Number(params.minLength); + } + if (null != params.attributes) { + this.attributes = params.attributes; + } + + this.updateRender(); + this.fireEvent('update'); + this.wavesurfer.fireEvent('region-updated', this); + }, + + /* Remove a single region. */ + remove: function (region) { + if (this.element) { + this.wrapper.removeChild(this.element); + this.element = null; + this.fireEvent('remove'); + this.wavesurfer.un('zoom', this.updateRender.bind(this)); + this.wavesurfer.fireEvent('region-removed', this); + } + }, + + /* Play the audio region. */ + play: function () { + this.wavesurfer.play(this.start, this.end); + this.fireEvent('play'); + this.wavesurfer.fireEvent('region-play', this); + }, + + /* Play the region in loop. */ + playLoop: function () { + this.play(); + this.once('out', this.playLoop.bind(this)); + }, + + /* Render a region as a DOM element. */ + render: function () { + var regionEl = document.createElement('region'); + regionEl.className = 'wavesurfer-region'; + regionEl.title = this.formatTime(this.start, this.end); + regionEl.setAttribute('data-id', this.id); + + for (var attrname in this.attributes) { + regionEl.setAttribute('data-region-' + attrname, this.attributes[attrname]); + } + + var width = this.wrapper.scrollWidth; + this.style(regionEl, { + position: 'absolute', + zIndex: 2, + height: '100%', + top: '0px' + }); + + /* Resize handles */ + if (this.resize) { + var handleLeft = regionEl.appendChild(document.createElement('handle')); + var handleRight = regionEl.appendChild(document.createElement('handle')); + handleLeft.className = 'wavesurfer-handle wavesurfer-handle-start'; + handleRight.className = 'wavesurfer-handle wavesurfer-handle-end'; + var css = { + cursor: 'col-resize', + position: 'absolute', + left: '0px', + top: '0px', + width: '1%', + maxWidth: '4px', + height: '100%' + }; + this.style(handleLeft, css); + this.style(handleRight, css); + this.style(handleRight, { + left: '100%' + }); + } + + this.element = this.wrapper.appendChild(regionEl); + this.updateRender(); + this.bindEvents(regionEl); + }, + + formatTime: function (start, end) { + return (start == end ? [ start ] : [ start, end ]).map(function (time) { + return [ + Math.floor((time % 3600) / 60), // minutes + ('00' + Math.floor(time % 60)).slice(-2) // seconds + ].join(':'); + }).join('–'); + }, + + /* Update element's position, width, color. */ + updateRender: function () { + var dur = this.wavesurfer.getDuration(); + var width = this.wrapper.scrollWidth; + + if (this.start < 0) { + this.start = 0; + this.end = this.end - this.start; + } + if (this.end > dur) { + this.end = dur; + this.start = dur - (this.end - this.start); + } + + if (this.minLength != null) { + this.end = Math.max(this.start + this.minLength, this.end); + } + + if (this.maxLength != null) { + this.end = Math.min(this.start + this.maxLength, this.end); + } + + this.style(this.element, { + left: ~~(this.start / dur * width) + 'px', + width: ~~((this.end - this.start) / dur * width) + 'px', + backgroundColor: this.color, + cursor: this.drag ? 'move' : 'default' + }); + + for (var attrname in this.attributes) { + this.element.setAttribute('data-region-' + attrname, this.attributes[attrname]); + } + + this.element.title = this.formatTime(this.start, this.end); + }, + + /* Bind audio events. */ + bindInOut: function () { + var my = this; + + my.firedIn = false; + my.firedOut = false; + + var onProcess = function (time) { + if (!my.firedIn && my.start <= time && my.end > time) { + my.firedIn = true; + my.firedOut = false; + my.fireEvent('in'); + my.wavesurfer.fireEvent('region-in', my); + } + if (!my.firedOut && my.firedIn && (my.start >= Math.round(time * 100) / 100 || my.end <= Math.round(time * 100) / 100)) { + my.firedOut = true; + my.firedIn = false; + my.fireEvent('out'); + my.wavesurfer.fireEvent('region-out', my); + } + }; + + this.wavesurfer.backend.on('audioprocess', onProcess); + + this.on('remove', function () { + my.wavesurfer.backend.un('audioprocess', onProcess); + }); + + /* Loop playback. */ + this.on('out', function () { + if (my.loop) { + my.wavesurfer.play(my.start); + } + }); + }, + + /* Bind DOM events. */ + bindEvents: function () { + var my = this; + + this.element.addEventListener('mouseenter', function (e) { + my.fireEvent('mouseenter', e); + my.wavesurfer.fireEvent('region-mouseenter', my, e); + }); + + this.element.addEventListener('mouseleave', function (e) { + my.fireEvent('mouseleave', e); + my.wavesurfer.fireEvent('region-mouseleave', my, e); + }); + + this.element.addEventListener('click', function (e) { + e.preventDefault(); + my.fireEvent('click', e); + my.wavesurfer.fireEvent('region-click', my, e); + }); + + this.element.addEventListener('dblclick', function (e) { + e.stopPropagation(); + e.preventDefault(); + my.fireEvent('dblclick', e); + my.wavesurfer.fireEvent('region-dblclick', my, e); + }); + + /* Drag or resize on mousemove. */ + (this.drag || this.resize) && (function () { + var duration = my.wavesurfer.getDuration(); + var drag; + var resize; + var startTime; + + var onDown = function (e) { + e.stopPropagation(); + startTime = my.wavesurfer.drawer.handleEvent(e) * duration; + + if (e.target.tagName.toLowerCase() == 'handle') { + if (e.target.classList.contains('wavesurfer-handle-start')) { + resize = 'start'; + } else { + resize = 'end'; + } + } else { + drag = true; + } + }; + var onUp = function (e) { + if (drag || resize) { + drag = false; + resize = false; + e.stopPropagation(); + e.preventDefault(); + + my.fireEvent('update-end', e); + my.wavesurfer.fireEvent('region-update-end', my, e); + } + }; + var onMove = function (e) { + if (drag || resize) { + var time = my.wavesurfer.drawer.handleEvent(e) * duration; + var delta = time - startTime; + startTime = time; + + // Drag + if (my.drag && drag) { + my.onDrag(delta); + } + + // Resize + if (my.resize && resize) { + my.onResize(delta, resize); + } + } + }; + + my.element.addEventListener('mousedown', onDown); + my.wrapper.addEventListener('mousemove', onMove); + document.body.addEventListener('mouseup', onUp); + + my.on('remove', function () { + document.body.removeEventListener('mouseup', onUp); + my.wrapper.removeEventListener('mousemove', onMove); + }); + + my.wavesurfer.on('destroy', function () { + document.body.removeEventListener('mouseup', onUp); + }); + }()); + }, + + onDrag: function (delta) { + this.update({ + start: this.start + delta, + end: this.end + delta + }); + }, + + onResize: function (delta, direction) { + if (direction == 'start') { + this.update({ + start: Math.min(this.start + delta, this.end), + end: Math.max(this.start + delta, this.end) + }); + } else { + this.update({ + start: Math.min(this.end + delta, this.start), + end: Math.max(this.end + delta, this.start) + }); + } + } +}; + +WaveSurfer.util.extend(WaveSurfer.Region, WaveSurfer.Observer); + + +/* Augment WaveSurfer with region methods. */ +WaveSurfer.initRegions = function () { + if (!this.regions) { + this.regions = Object.create(WaveSurfer.Regions); + this.regions.init(this); + } +}; + +WaveSurfer.addRegion = function (options) { + this.initRegions(); + return this.regions.add(options); +}; + +WaveSurfer.clearRegions = function () { + this.regions && this.regions.clear(); +}; + +WaveSurfer.enableDragSelection = function (options) { + this.initRegions(); + this.regions.enableDragSelection(options); +}; diff --git a/static/wavesurfer.js/plugin/wavesurfer.spectrogram.js b/static/wavesurfer.js/plugin/wavesurfer.spectrogram.js new file mode 100644 index 0000000..a288633 --- /dev/null +++ b/static/wavesurfer.js/plugin/wavesurfer.spectrogram.js @@ -0,0 +1,223 @@ +'use strict'; + +WaveSurfer.Spectrogram = { + init: function (params) { + this.params = params; + var wavesurfer = this.wavesurfer = params.wavesurfer; + + if (!this.wavesurfer) { + throw Error('No WaveSurfer instance provided'); + } + + this.frequenciesDataUrl = params.frequenciesDataUrl; + + var drawer = this.drawer = this.wavesurfer.drawer; + this.buffer = this.wavesurfer.backend.buffer; + + this.container = 'string' == typeof params.container ? + document.querySelector(params.container) : params.container; + + if (!this.container) { + throw Error('No container for WaveSurfer spectrogram'); + } + + this.width = drawer.width; + this.pixelRatio = this.params.pixelRatio || wavesurfer.params.pixelRatio; + this.fftSamples = this.params.fftSamples || wavesurfer.params.fftSamples || 512; + this.height = this.fftSamples / 2; + + this.createWrapper(); + this.createCanvas(); + this.render(); + + wavesurfer.drawer.wrapper.onscroll = this.updateScroll.bind(this); + wavesurfer.on('destroy', this.destroy.bind(this)); + }, + + destroy: function () { + this.unAll(); + if (this.wrapper) { + this.wrapper.parentNode.removeChild(this.wrapper); + this.wrapper = null; + } + }, + + createWrapper: function () { + var prevSpectrogram = this.container.querySelector('spectrogram'); + if (prevSpectrogram) { + this.container.removeChild(prevSpectrogram); + } + + var wsParams = this.wavesurfer.params; + + this.wrapper = this.container.appendChild( + document.createElement('spectrogram') + ); + this.drawer.style(this.wrapper, { + display: 'block', + position: 'relative', + userSelect: 'none', + webkitUserSelect: 'none', + height: this.height + 'px' + }); + + if (wsParams.fillParent || wsParams.scrollParent) { + this.drawer.style(this.wrapper, { + width: '100%', + overflowX: 'hidden', + overflowY: 'hidden' + }); + } + + var my = this; + this.wrapper.addEventListener('click', function (e) { + e.preventDefault(); + var relX = 'offsetX' in e ? e.offsetX : e.layerX; + my.fireEvent('click', (relX / my.scrollWidth) || 0); + }); + }, + + createCanvas: function () { + var canvas = this.canvas = this.wrapper.appendChild( + document.createElement('canvas') + ); + + this.spectrCc = canvas.getContext('2d'); + + this.wavesurfer.drawer.style(canvas, { + position: 'absolute', + zIndex: 4 + }); + }, + + render: function () { + this.updateCanvasStyle(); + + if (this.frequenciesDataUrl) { + this.loadFrequenciesData(this.frequenciesDataUrl); + } + else { + this.getFrequencies(this.drawSpectrogram); + } + }, + + updateCanvasStyle: function () { + var width = Math.round(this.width / this.pixelRatio) + 'px'; + this.canvas.width = this.width; + this.canvas.height = this.height; + this.canvas.style.width = width; + }, + + drawSpectrogram: function(frequenciesData, my) { + var spectrCc = my.spectrCc; + + var length = my.wavesurfer.backend.getDuration(); + var height = my.height; + + var pixels = my.resample(frequenciesData); + + var heightFactor = 2 / my.buffer.numberOfChannels; + + for (var i = 0; i < pixels.length; i++) { + for (var j = 0; j < pixels[i].length; j++) { + var colorValue = 255 - pixels[i][j]; + my.spectrCc.fillStyle = 'rgb(' + colorValue + ', ' + colorValue + ', ' + colorValue + ')'; + my.spectrCc.fillRect(i, height - j * heightFactor, 1, 1 * heightFactor); + } + } + }, + + getFrequencies: function(callback) { + var fftSamples = this.fftSamples; + var buffer = this.buffer; + + var frequencies = []; + var context = new window.OfflineAudioContext(1, buffer.length, buffer.sampleRate); + var source = context.createBufferSource(); + var processor = context.createScriptProcessor(0, 1, 1); + + var analyser = context.createAnalyser(); + analyser.fftSize = fftSamples; + analyser.smoothingTimeConstant = (this.width / buffer.duration < 10) ? 0.75 : 0.25; + + source.buffer = buffer; + + source.connect(analyser); + analyser.connect(processor); + processor.connect(context.destination); + + processor.onaudioprocess = function () { + var array = new Uint8Array(analyser.frequencyBinCount); + analyser.getByteFrequencyData(array); + frequencies.push(array); + }; + + source.start(0); + context.startRendering(); + + var my = this; + context.oncomplete = function() { callback(frequencies, my); }; + }, + + loadFrequenciesData: function (url) { + var my = this; + + var ajax = WaveSurfer.util.ajax({ url: url }); + + ajax.on('success', function(data) { my.drawSpectrogram(JSON.parse(data), my); }); + ajax.on('error', function (e) { + my.fireEvent('error', 'XHR error: ' + e.target.statusText); + }); + + return ajax; + }, + + updateScroll: function(e) { + this.wrapper.scrollLeft = e.target.scrollLeft; + }, + + resample: function(oldMatrix, columnsNumber) { + var columnsNumber = this.width; + var newMatrix = []; + + var oldPiece = 1 / oldMatrix.length; + var newPiece = 1 / columnsNumber; + + for (var i = 0; i < columnsNumber; i++) { + var column = new Array(oldMatrix[0].length); + + for (var j = 0; j < oldMatrix.length; j++) { + var oldStart = j * oldPiece; + var oldEnd = oldStart + oldPiece; + var newStart = i * newPiece; + var newEnd = newStart + newPiece; + + var overlap = (oldEnd <= newStart || newEnd <= oldStart) ? + 0 : + Math.min(Math.max(oldEnd, newStart), Math.max(newEnd, oldStart)) - + Math.max(Math.min(oldEnd, newStart), Math.min(newEnd, oldStart)); + + if (overlap > 0) { + for (var k = 0; k < oldMatrix[0].length; k++) { + if (column[k] == null) { + column[k] = 0; + } + column[k] += (overlap / newPiece) * oldMatrix[j][k]; + } + } + } + + var intColumn = new Uint8Array(oldMatrix[0].length); + + for (var k = 0; k < oldMatrix[0].length; k++) { + intColumn[k] = column[k]; + } + + newMatrix.push(intColumn); + } + + return newMatrix; + } +}; + +WaveSurfer.util.extend(WaveSurfer.Spectrogram, WaveSurfer.Observer); diff --git a/static/wavesurfer.js/plugin/wavesurfer.timeline.js b/static/wavesurfer.js/plugin/wavesurfer.timeline.js new file mode 100644 index 0000000..34f03fe --- /dev/null +++ b/static/wavesurfer.js/plugin/wavesurfer.timeline.js @@ -0,0 +1,196 @@ +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + define(['wavesurfer'], factory); + } else { + root.WaveSurfer.Timeline = factory(root.WaveSurfer); + } +}(this, function (WaveSurfer) { + 'use strict'; + + WaveSurfer.Timeline = { + init: function (params) { + this.params = params; + var wavesurfer = this.wavesurfer = params.wavesurfer; + + if (!this.wavesurfer) { + throw Error('No WaveSurfer intance provided'); + } + + var drawer = this.drawer = this.wavesurfer.drawer; + + this.container = 'string' == typeof params.container ? + document.querySelector(params.container) : params.container; + + if (!this.container) { + throw Error('No container for WaveSurfer timeline'); + } + + this.width = drawer.width; + this.height = this.params.height || 20; + this.notchPercentHeight = this.params.notchPercentHeight || 90; + this.primaryColor = this.params.primaryColor || '#000'; + this.secondaryColor = this.params.secondaryColor || '#c0c0c0'; + this.primaryFontColor = this.params.primaryFontColor || '#000'; + this.secondaryFontColor = this.params.secondaryFontColor || '#000'; + this.fontFamily = this.params.fontFamily || 'Arial'; + this.fontSize = this.params.fontSize || 10; + + this.createWrapper(); + this.createCanvas(); + this.render(); + + wavesurfer.drawer.wrapper.onscroll = this.updateScroll.bind(this); + wavesurfer.on('redraw', this.render.bind(this)); + wavesurfer.on('destroy', this.destroy.bind(this)); + }, + + destroy: function () { + this.unAll(); + if (this.wrapper && this.wrapper.parentNode) { + this.wrapper.parentNode.removeChild(this.wrapper); + this.wrapper = null; + } + }, + + createWrapper: function () { + var prevTimeline = this.container.querySelector('timeline'); + if (prevTimeline) { + this.container.removeChild(prevTimeline); + } + + var wsParams = this.wavesurfer.params; + this.wrapper = this.container.appendChild( + document.createElement('timeline') + ); + this.drawer.style(this.wrapper, { + display: 'block', + position: 'relative', + userSelect: 'none', + webkitUserSelect: 'none', + height: this.height + 'px' + }); + + if (wsParams.fillParent || wsParams.scrollParent) { + this.drawer.style(this.wrapper, { + width: '100%', + overflowX: 'hidden', + overflowY: 'hidden' + }); + } + + var my = this; + this.wrapper.addEventListener('click', function (e) { + e.preventDefault(); + var relX = 'offsetX' in e ? e.offsetX : e.layerX; + my.fireEvent('click', (relX / my.wrapper.scrollWidth) || 0); + }); + }, + + createCanvas: function () { + var canvas = this.canvas = this.wrapper.appendChild( + document.createElement('canvas') + ); + + this.timeCc = canvas.getContext('2d'); + + this.wavesurfer.drawer.style(canvas, { + position: 'absolute', + zIndex: 4 + }); + }, + + render: function () { + this.updateCanvasStyle(); + this.drawTimeCanvas(); + }, + + updateCanvasStyle: function () { + var width = this.drawer.wrapper.scrollWidth; + this.canvas.width = width * this.wavesurfer.params.pixelRatio; + this.canvas.height = this.height * this.wavesurfer.params.pixelRatio; + this.canvas.style.width = width + 'px'; + this.canvas.style.height = this.height + 'px'; + }, + + drawTimeCanvas: function() { + var backend = this.wavesurfer.backend, + wsParams = this.wavesurfer.params, + duration = backend.getDuration(); + + if (wsParams.fillParent && !wsParams.scrollParent) { + var width = this.drawer.getWidth(); + } else { + width = this.drawer.wrapper.scrollWidth * wsParams.pixelRatio; + } + var pixelsPerSecond = width/duration; + + if (duration > 0) { + var curPixel = 0, + curSeconds = 0, + totalSeconds = parseInt(duration, 10) + 1, + formatTime = function(seconds) { + if (seconds/60 > 1) { + var minutes = parseInt(seconds / 60), + seconds = parseInt(seconds % 60); + seconds = (seconds < 10) ? '0' + seconds : seconds; + return '' + minutes + ':' + seconds; + } else { + return seconds; + } + }; + + if (pixelsPerSecond * 1 >= 25) { + var timeInterval = 1; + var primaryLabelInterval = 10; + var secondaryLabelInterval = 5; + } else if (pixelsPerSecond * 5 >= 25) { + var timeInterval = 5; + var primaryLabelInterval = 6; + var secondaryLabelInterval = 2; + } else if (pixelsPerSecond * 15 >= 25) { + var timeInterval = 15; + var primaryLabelInterval = 4; + var secondaryLabelInterval = 2; + } else { + var timeInterval = 60; + var primaryLabelInterval = 4; + var secondaryLabelInterval = 2; + } + + var height1 = this.height - 4, + height2 = (this.height * (this.notchPercentHeight / 100.0)) - 4, + fontSize = this.fontSize * wsParams.pixelRatio; + + for (var i = 0; i < totalSeconds/timeInterval; i++) { + if (i % primaryLabelInterval == 0) { + this.timeCc.fillStyle = this.primaryColor; + this.timeCc.fillRect(curPixel, 0, 1, height1); + this.timeCc.font = fontSize + 'px ' + this.fontFamily; + this.timeCc.fillStyle = this.primaryFontColor; + this.timeCc.fillText(formatTime(curSeconds), curPixel + 5, height1); + } else if (i % secondaryLabelInterval == 0) { + this.timeCc.fillStyle = this.secondaryColor; + this.timeCc.fillRect(curPixel, 0, 1, height1); + this.timeCc.font = fontSize + 'px ' + this.fontFamily; + this.timeCc.fillStyle = this.secondaryFontColor; + this.timeCc.fillText(formatTime(curSeconds), curPixel + 5, height1); + } else { + this.timeCc.fillStyle = this.secondaryColor; + this.timeCc.fillRect(curPixel, 0, 1, height2); + } + + curSeconds += timeInterval; + curPixel += pixelsPerSecond * timeInterval; + } + } + }, + + updateScroll: function () { + this.wrapper.scrollLeft = this.drawer.wrapper.scrollLeft; + } + }; + + WaveSurfer.util.extend(WaveSurfer.Timeline, WaveSurfer.Observer); + + return WaveSurfer.Timeline; +})); diff --git a/static/wavesurfer.js/spec/support/jasmine.json b/static/wavesurfer.js/spec/support/jasmine.json new file mode 100644 index 0000000..53fa7c2 --- /dev/null +++ b/static/wavesurfer.js/spec/support/jasmine.json @@ -0,0 +1,6 @@ +{ + "spec_dir": "/spec/", + "spec_files": [ + "**/*.spec.js" + ] +} diff --git a/static/wavesurfer.js/spec/util.spec.js b/static/wavesurfer.js/spec/util.spec.js new file mode 100755 index 0000000..da74bee --- /dev/null +++ b/static/wavesurfer.js/spec/util.spec.js @@ -0,0 +1,7 @@ +describe('util', function() { + + it('getId returns a random string', function() { + expect(WaveSurfer.util.getId()).toStartWith('wavesurfer_'); + }); + +}); diff --git a/static/wavesurfer.js/src/drawer.canvas.js b/static/wavesurfer.js/src/drawer.canvas.js new file mode 100644 index 0000000..fb90cae --- /dev/null +++ b/static/wavesurfer.js/src/drawer.canvas.js @@ -0,0 +1,205 @@ +'use strict'; + +WaveSurfer.Drawer.Canvas = Object.create(WaveSurfer.Drawer); + +WaveSurfer.util.extend(WaveSurfer.Drawer.Canvas, { + createElements: function () { + var waveCanvas = this.wrapper.appendChild( + this.style(document.createElement('canvas'), { + position: 'absolute', + zIndex: 1, + left: 0, + top: 0, + bottom: 0 + }) + ); + this.waveCc = waveCanvas.getContext('2d'); + + this.progressWave = this.wrapper.appendChild( + this.style(document.createElement('wave'), { + position: 'absolute', + zIndex: 2, + left: 0, + top: 0, + bottom: 0, + overflow: 'hidden', + width: '0', + display: 'none', + boxSizing: 'border-box', + borderRightStyle: 'solid', + borderRightWidth: this.params.cursorWidth + 'px', + borderRightColor: this.params.cursorColor + }) + ); + + if (this.params.waveColor != this.params.progressColor) { + var progressCanvas = this.progressWave.appendChild( + document.createElement('canvas') + ); + this.progressCc = progressCanvas.getContext('2d'); + } + }, + + updateSize: function () { + var width = Math.round(this.width / this.params.pixelRatio); + + this.waveCc.canvas.width = this.width; + this.waveCc.canvas.height = this.height; + this.style(this.waveCc.canvas, { width: width + 'px'}); + + this.style(this.progressWave, { display: 'block'}); + + if (this.progressCc) { + this.progressCc.canvas.width = this.width; + this.progressCc.canvas.height = this.height; + this.style(this.progressCc.canvas, { width: width + 'px'}); + } + + this.clearWave(); + }, + + clearWave: function () { + this.waveCc.clearRect(0, 0, this.width, this.height); + if (this.progressCc) { + this.progressCc.clearRect(0, 0, this.width, this.height); + } + }, + + drawBars: function (peaks, channelIndex) { + // Split channels + if (peaks[0] instanceof Array) { + var channels = peaks; + if (this.params.splitChannels) { + this.setHeight(channels.length * this.params.height * this.params.pixelRatio); + channels.forEach(this.drawBars, this); + return; + } else { + peaks = channels[0]; + } + } + + // A half-pixel offset makes lines crisp + var $ = 0.5 / this.params.pixelRatio; + var width = this.width; + var height = this.params.height * this.params.pixelRatio; + var offsetY = height * channelIndex || 0; + var halfH = height / 2; + var length = ~~(peaks.length / 2); + var bar = this.params.barWidth * this.params.pixelRatio; + var gap = Math.max(this.params.pixelRatio, ~~(bar / 2)); + var step = bar + gap; + + var absmax = 1; + if (this.params.normalize) { + var min, max; + max = Math.max.apply(Math, peaks); + min = Math.min.apply(Math, peaks); + absmax = max; + if (-min > absmax) { + absmax = -min; + } + } + + var scale = length / width; + + this.waveCc.fillStyle = this.params.waveColor; + if (this.progressCc) { + this.progressCc.fillStyle = this.params.progressColor; + } + + [ this.waveCc, this.progressCc ].forEach(function (cc) { + if (!cc) { return; } + + if (this.params.reflection) { + for (var i = 0; i < width; i += step) { + var h = Math.round(peaks[Math.floor(2 * i * scale)] / absmax * halfH); + cc.fillRect(i + $, halfH - h + offsetY, bar + $, h * 2); + } + } else { + for (var i = 0; i < width; i += step) { + var h = Math.round(peaks[Math.floor(2 * i * scale)] / absmax * halfH); + cc.fillRect(i + $, halfH - h + offsetY, bar + $, h); + } + + for (var i = 0; i < width; i += step) { + var h = Math.round(peaks[2 * i * scale + 1] / absmax * halfH); + cc.fillRect(i + $, halfH - h + offsetY, bar + $, h); + } + } + }, this); + }, + + drawWave: function (peaks, channelIndex) { + // Split channels + if (peaks[0] instanceof Array) { + var channels = peaks; + if (this.params.splitChannels) { + this.setHeight(channels.length * this.params.height * this.params.pixelRatio); + channels.forEach(this.drawWave, this); + return; + } else { + peaks = channels[0]; + } + } + + // A half-pixel offset makes lines crisp + var $ = 0.5 / this.params.pixelRatio; + var height = this.params.height * this.params.pixelRatio; + var offsetY = height * channelIndex || 0; + var halfH = height / 2; + var length = ~~(peaks.length / 2); + + var scale = 1; + if (this.params.fillParent && this.width != length) { + scale = this.width / length; + } + + var absmax = 1; + if (this.params.normalize) { + var min, max; + max = Math.max.apply(Math, peaks); + min = Math.min.apply(Math, peaks); + absmax = max; + if (-min > absmax) { + absmax = -min; + } + } + + this.waveCc.fillStyle = this.params.waveColor; + if (this.progressCc) { + this.progressCc.fillStyle = this.params.progressColor; + } + + [ this.waveCc, this.progressCc ].forEach(function (cc) { + if (!cc) { return; } + + cc.beginPath(); + cc.moveTo($, halfH + offsetY); + + for (var i = 0; i < length; i++) { + var h = Math.round(peaks[2 * i] / absmax * halfH); + cc.lineTo(i * scale + $, halfH - h + offsetY); + } + + // Draw the bottom edge going backwards, to make a single + // closed hull to fill. + for (var i = length - 1; i >= 0; i--) { + var h = Math.round(peaks[2 * i + 1] / absmax * halfH); + cc.lineTo(i * scale + $, halfH - h + offsetY); + } + + cc.closePath(); + cc.fill(); + + // Always draw a median line + cc.fillRect(0, halfH + offsetY - $, this.width, $); + }, this); + }, + + updateProgress: function (progress) { + var pos = Math.round( + this.width * progress + ) / this.params.pixelRatio; + this.style(this.progressWave, { width: pos + 'px' }); + } +}); diff --git a/static/wavesurfer.js/src/drawer.js b/static/wavesurfer.js/src/drawer.js new file mode 100644 index 0000000..453b99e --- /dev/null +++ b/static/wavesurfer.js/src/drawer.js @@ -0,0 +1,196 @@ +'use strict'; + +WaveSurfer.Drawer = { + init: function (container, params) { + this.container = container; + this.params = params; + + this.width = 0; + this.height = params.height * this.params.pixelRatio; + + this.lastPos = 0; + + this.createWrapper(); + this.createElements(); + }, + + createWrapper: function () { + this.wrapper = this.container.appendChild( + document.createElement('wave') + ); + + this.style(this.wrapper, { + display: 'block', + position: 'relative', + userSelect: 'none', + webkitUserSelect: 'none', + height: this.params.height + 'px' + }); + + if (this.params.fillParent || this.params.scrollParent) { + this.style(this.wrapper, { + width: '100%', + overflowX: this.params.hideScrollbar ? 'hidden' : 'auto', + overflowY: 'hidden' + }); + } + + this.setupWrapperEvents(); + }, + + handleEvent: function (e) { + e.preventDefault(); + var bbox = this.wrapper.getBoundingClientRect(); + return ((e.clientX - bbox.left + this.wrapper.scrollLeft) / this.wrapper.scrollWidth) || 0; + }, + + setupWrapperEvents: function () { + var my = this; + + this.wrapper.addEventListener('click', function (e) { + var scrollbarHeight = my.wrapper.offsetHeight - my.wrapper.clientHeight; + if (scrollbarHeight != 0) { + // scrollbar is visible. Check if click was on it + var bbox = my.wrapper.getBoundingClientRect(); + if (e.clientY >= bbox.bottom - scrollbarHeight) { + // ignore mousedown as it was on the scrollbar + return; + } + } + + if (my.params.interact) { + my.fireEvent('click', e, my.handleEvent(e)); + } + }); + + this.wrapper.addEventListener('scroll', function (e) { + my.fireEvent('scroll', e); + }); + }, + + drawPeaks: function (peaks, length) { + this.resetScroll(); + this.setWidth(length); + + this.params.barWidth ? + this.drawBars(peaks) : + this.drawWave(peaks); + }, + + style: function (el, styles) { + Object.keys(styles).forEach(function (prop) { + if (el.style[prop] !== styles[prop]) { + el.style[prop] = styles[prop]; + } + }); + return el; + }, + + resetScroll: function () { + if (this.wrapper !== null) { + this.wrapper.scrollLeft = 0; + } + }, + + recenter: function (percent) { + var position = this.wrapper.scrollWidth * percent; + this.recenterOnPosition(position, true); + }, + + recenterOnPosition: function (position, immediate) { + var scrollLeft = this.wrapper.scrollLeft; + var half = ~~(this.wrapper.clientWidth / 2); + var target = position - half; + var offset = target - scrollLeft; + var maxScroll = this.wrapper.scrollWidth - this.wrapper.clientWidth; + + if (maxScroll == 0) { + // no need to continue if scrollbar is not there + return; + } + + // if the cursor is currently visible... + if (!immediate && -half <= offset && offset < half) { + // we'll limit the "re-center" rate. + var rate = 5; + offset = Math.max(-rate, Math.min(rate, offset)); + target = scrollLeft + offset; + } + + // limit target to valid range (0 to maxScroll) + target = Math.max(0, Math.min(maxScroll, target)); + // no use attempting to scroll if we're not moving + if (target != scrollLeft) { + this.wrapper.scrollLeft = target; + } + + }, + + getWidth: function () { + return Math.round(this.container.clientWidth * this.params.pixelRatio); + }, + + setWidth: function (width) { + if (width == this.width) { return; } + + this.width = width; + + if (this.params.fillParent || this.params.scrollParent) { + this.style(this.wrapper, { + width: '' + }); + } else { + this.style(this.wrapper, { + width: ~~(this.width / this.params.pixelRatio) + 'px' + }); + } + + this.updateSize(); + }, + + setHeight: function (height) { + if (height == this.height) { return; } + this.height = height; + this.style(this.wrapper, { + height: ~~(this.height / this.params.pixelRatio) + 'px' + }); + this.updateSize(); + }, + + progress: function (progress) { + var minPxDelta = 1 / this.params.pixelRatio; + var pos = Math.round(progress * this.width) * minPxDelta; + + if (pos < this.lastPos || pos - this.lastPos >= minPxDelta) { + this.lastPos = pos; + + if (this.params.scrollParent && this.params.autoCenter) { + var newPos = ~~(this.wrapper.scrollWidth * progress); + this.recenterOnPosition(newPos); + } + + this.updateProgress(progress); + } + }, + + destroy: function () { + this.unAll(); + if (this.wrapper) { + this.container.removeChild(this.wrapper); + this.wrapper = null; + } + }, + + /* Renderer-specific methods */ + createElements: function () {}, + + updateSize: function () {}, + + drawWave: function (peaks, max) {}, + + clearWave: function () {}, + + updateProgress: function (position) {} +}; + +WaveSurfer.util.extend(WaveSurfer.Drawer, WaveSurfer.Observer); diff --git a/static/wavesurfer.js/src/html-init.js b/static/wavesurfer.js/src/html-init.js new file mode 100644 index 0000000..313c413 --- /dev/null +++ b/static/wavesurfer.js/src/html-init.js @@ -0,0 +1,32 @@ +'use strict'; + +/* Init from HTML */ +(function () { + var init = function () { + var containers = document.querySelectorAll('wavesurfer'); + + Array.prototype.forEach.call(containers, function (el) { + var params = WaveSurfer.util.extend({ + container: el, + backend: 'MediaElement', + mediaControls: true + }, el.dataset); + + el.style.display = 'block'; + + var wavesurfer = WaveSurfer.create(params); + + if (el.dataset.peaks) { + var peaks = JSON.parse(el.dataset.peaks); + } + + wavesurfer.load(el.dataset.url, peaks); + }); + }; + + if (document.readyState === 'complete') { + init(); + } else { + window.addEventListener('load', init); + } +}()); diff --git a/static/wavesurfer.js/src/mediaelement.js b/static/wavesurfer.js/src/mediaelement.js new file mode 100755 index 0000000..20bae2c --- /dev/null +++ b/static/wavesurfer.js/src/mediaelement.js @@ -0,0 +1,163 @@ +'use strict'; + +WaveSurfer.MediaElement = Object.create(WaveSurfer.WebAudio); + +WaveSurfer.util.extend(WaveSurfer.MediaElement, { + init: function (params) { + this.params = params; + + // Dummy media to catch errors + this.media = { + currentTime: 0, + duration: 0, + paused: true, + playbackRate: 1, + play: function () {}, + pause: function () {} + }; + + this.mediaType = params.mediaType.toLowerCase(); + this.elementPosition = params.elementPosition; + }, + + load: function (url, container, peaks) { + var my = this; + + var media = document.createElement(this.mediaType); + media.controls = this.params.mediaControls; + media.autoplay = this.params.autoplay || false; + media.preload = 'auto'; + media.src = url; + media.style.width = '100%'; + + media.addEventListener('error', function () { + my.fireEvent('error', 'Error loading media element'); + }); + + media.addEventListener('canplay', function () { + my.fireEvent('canplay'); + }); + + media.addEventListener('ended', function () { + my.fireEvent('finish'); + }); + + media.addEventListener('timeupdate', function () { + my.fireEvent('audioprocess', my.getCurrentTime()); + }); + + var prevMedia = container.querySelector(this.mediaType); + if (prevMedia) { + container.removeChild(prevMedia); + } + container.appendChild(media); + + this.media = media; + this.peaks = peaks; + this.onPlayEnd = null; + this.buffer = null; + this.setPlaybackRate(this.playbackRate); + }, + + isPaused: function () { + return !this.media || this.media.paused; + }, + + getDuration: function () { + var duration = this.media.duration; + if (duration >= Infinity) { // streaming audio + duration = this.media.seekable.end(); + } + return duration; + }, + + getCurrentTime: function () { + return this.media && this.media.currentTime; + }, + + getPlayedPercents: function () { + return (this.getCurrentTime() / this.getDuration()) || 0; + }, + + /** + * Set the audio source playback rate. + */ + setPlaybackRate: function (value) { + this.playbackRate = value || 1; + this.media.playbackRate = this.playbackRate; + }, + + seekTo: function (start) { + if (start != null) { + this.media.currentTime = start; + } + this.clearPlayEnd(); + }, + + /** + * Plays the loaded audio region. + * + * @param {Number} start Start offset in seconds, + * relative to the beginning of a clip. + * @param {Number} end End offset in seconds, + * relative to the beginning of a clip. + */ + play: function (start, end) { + this.seekTo(start); + this.media.play(); + end && this.setPlayEnd(end); + this.fireEvent('play'); + }, + + /** + * Pauses the loaded audio. + */ + pause: function () { + this.media && this.media.pause(); + this.clearPlayEnd(); + this.fireEvent('pause'); + }, + + setPlayEnd: function (end) { + var my = this; + this.onPlayEnd = function (time) { + if (time >= end) { + my.pause(); + my.seekTo(end); + } + }; + this.on('audioprocess', this.onPlayEnd); + }, + + clearPlayEnd: function () { + if (this.onPlayEnd) { + this.un('audioprocess', this.onPlayEnd); + this.onPlayEnd = null; + } + }, + + getPeaks: function (length) { + if (this.buffer) { + return WaveSurfer.WebAudio.getPeaks.call(this, length); + } + return this.peaks || []; + }, + + getVolume: function () { + return this.media.volume; + }, + + setVolume: function (val) { + this.media.volume = val; + }, + + destroy: function () { + this.pause(); + this.unAll(); + this.media && this.media.parentNode && this.media.parentNode.removeChild(this.media); + this.media = null; + } +}); + +//For backwards compatibility +WaveSurfer.AudioElement = WaveSurfer.MediaElement; diff --git a/static/wavesurfer.js/src/util.js b/static/wavesurfer.js/src/util.js new file mode 100644 index 0000000..c2767ab --- /dev/null +++ b/static/wavesurfer.js/src/util.js @@ -0,0 +1,132 @@ +/* Common utilities */ +WaveSurfer.util = { + extend: function (dest) { + var sources = Array.prototype.slice.call(arguments, 1); + sources.forEach(function (source) { + Object.keys(source).forEach(function (key) { + dest[key] = source[key]; + }); + }); + return dest; + }, + + getId: function () { + return 'wavesurfer_' + Math.random().toString(32).substring(2); + }, + + ajax: function (options) { + var ajax = Object.create(WaveSurfer.Observer); + var xhr = new XMLHttpRequest(); + var fired100 = false; + + xhr.open(options.method || 'GET', options.url, true); + xhr.responseType = options.responseType || 'json'; + + xhr.addEventListener('progress', function (e) { + ajax.fireEvent('progress', e); + if (e.lengthComputable && e.loaded == e.total) { + fired100 = true; + } + }); + + xhr.addEventListener('load', function (e) { + if (!fired100) { + ajax.fireEvent('progress', e); + } + ajax.fireEvent('load', e); + + if (200 == xhr.status || 206 == xhr.status) { + ajax.fireEvent('success', xhr.response, e); + } else { + ajax.fireEvent('error', e); + } + }); + + xhr.addEventListener('error', function (e) { + ajax.fireEvent('error', e); + }); + + xhr.send(); + ajax.xhr = xhr; + return ajax; + } +}; + + +/* Observer */ +WaveSurfer.Observer = { + /** + * Attach a handler function for an event. + */ + on: function (event, fn) { + if (!this.handlers) { this.handlers = {}; } + + var handlers = this.handlers[event]; + if (!handlers) { + handlers = this.handlers[event] = []; + } + handlers.push(fn); + + // Return an event descriptor + return { + name: event, + callback: fn, + un: this.un.bind(this, event, fn) + }; + }, + + /** + * Remove an event handler. + */ + un: function (event, fn) { + if (!this.handlers) { return; } + + var handlers = this.handlers[event]; + if (handlers) { + if (fn) { + for (var i = handlers.length - 1; i >= 0; i--) { + if (handlers[i] == fn) { + handlers.splice(i, 1); + } + } + } else { + handlers.length = 0; + } + } + }, + + /** + * Remove all event handlers. + */ + unAll: function () { + this.handlers = null; + }, + + /** + * Attach a handler to an event. The handler is executed at most once per + * event type. + */ + once: function (event, handler) { + var my = this; + var fn = function () { + handler.apply(this, arguments); + setTimeout(function () { + my.un(event, fn); + }, 0); + }; + return this.on(event, fn); + }, + + fireEvent: function (event) { + if (!this.handlers) { return; } + var handlers = this.handlers[event]; + var args = Array.prototype.slice.call(arguments, 1); + handlers && handlers.forEach(function (fn) { + fn.apply(null, args); + }); + } +}; + + +/* Make the main WaveSurfer object an observer */ +WaveSurfer.util.extend(WaveSurfer, WaveSurfer.Observer); diff --git a/static/wavesurfer.js/src/wavesurfer.js b/static/wavesurfer.js/src/wavesurfer.js new file mode 100755 index 0000000..e3c37a6 --- /dev/null +++ b/static/wavesurfer.js/src/wavesurfer.js @@ -0,0 +1,458 @@ +/** + * wavesurfer.js + * + * https://github.com/katspaugh/wavesurfer.js + * + * This work is licensed under a Creative Commons Attribution 3.0 Unported License. + */ + +'use strict'; + +var WaveSurfer = { + defaultParams: { + height : 128, + waveColor : '#999', + progressColor : '#555', + cursorColor : '#333', + cursorWidth : 1, + skipLength : 2, + minPxPerSec : 20, + pixelRatio : window.devicePixelRatio, + fillParent : true, + scrollParent : false, + hideScrollbar : false, + normalize : false, + audioContext : null, + container : null, + dragSelection : true, + loopSelection : true, + audioRate : 1, + interact : true, + splitChannels : false, + mediaContainer: null, + mediaControls : false, + renderer : 'Canvas', + backend : 'WebAudio', + mediaType : 'audio', + autoCenter : true + }, + + init: function (params) { + // Extract relevant parameters (or defaults) + this.params = WaveSurfer.util.extend({}, this.defaultParams, params); + + this.container = 'string' == typeof params.container ? + document.querySelector(this.params.container) : + this.params.container; + + if (!this.container) { + throw new Error('Container element not found'); + } + + if (this.params.mediaContainer == null) { + this.mediaContainer = this.container; + } else if (typeof this.params.mediaContainer == 'string') { + this.mediaContainer = document.querySelector(this.params.mediaContainer); + } else { + this.mediaContainer = this.params.mediaContainer; + } + + if (!this.mediaContainer) { + throw new Error('Media Container element not found'); + } + + // Used to save the current volume when muting so we can + // restore once unmuted + this.savedVolume = 0; + // The current muted state + this.isMuted = false; + // Will hold a list of event descriptors that need to be + // cancelled on subsequent loads of audio + this.tmpEvents = []; + + this.createDrawer(); + this.createBackend(); + }, + + createDrawer: function () { + var my = this; + + this.drawer = Object.create(WaveSurfer.Drawer[this.params.renderer]); + this.drawer.init(this.container, this.params); + + this.drawer.on('redraw', function () { + my.drawBuffer(); + my.drawer.progress(my.backend.getPlayedPercents()); + }); + + // Click-to-seek + this.drawer.on('click', function (e, progress) { + setTimeout(function () { + my.seekTo(progress); + }, 0); + }); + + // Relay the scroll event from the drawer + this.drawer.on('scroll', function (e) { + my.fireEvent('scroll', e); + }); + }, + + createBackend: function () { + var my = this; + + if (this.backend) { + this.backend.destroy(); + } + + // Back compat + if (this.params.backend == 'AudioElement') { + this.params.backend = 'MediaElement'; + } + + if (this.params.backend == 'WebAudio' && !WaveSurfer.WebAudio.supportsWebAudio()) { + this.params.backend = 'MediaElement'; + } + + this.backend = Object.create(WaveSurfer[this.params.backend]); + this.backend.init(this.params); + + this.backend.on('finish', function () { my.fireEvent('finish'); }); + this.backend.on('play', function () { my.fireEvent('play'); }); + this.backend.on('pause', function () { my.fireEvent('pause'); }); + + this.backend.on('audioprocess', function (time) { + my.drawer.progress(my.backend.getPlayedPercents()); + my.fireEvent('audioprocess', time); + }); + }, + + getDuration: function () { + return this.backend.getDuration(); + }, + + getCurrentTime: function () { + return this.backend.getCurrentTime(); + }, + + play: function (start, end) { + this.backend.play(start, end); + }, + + pause: function () { + this.backend.pause(); + }, + + playPause: function () { + this.backend.isPaused() ? this.play() : this.pause(); + }, + + isPlaying: function () { + return !this.backend.isPaused(); + }, + + skipBackward: function (seconds) { + this.skip(-seconds || -this.params.skipLength); + }, + + skipForward: function (seconds) { + this.skip(seconds || this.params.skipLength); + }, + + skip: function (offset) { + var position = this.getCurrentTime() || 0; + var duration = this.getDuration() || 1; + position = Math.max(0, Math.min(duration, position + (offset || 0))); + this.seekAndCenter(position / duration); + }, + + seekAndCenter: function (progress) { + this.seekTo(progress); + this.drawer.recenter(progress); + }, + + seekTo: function (progress) { + var paused = this.backend.isPaused(); + // avoid small scrolls while paused seeking + var oldScrollParent = this.params.scrollParent; + if (paused) { + this.params.scrollParent = false; + } + this.backend.seekTo(progress * this.getDuration()); + this.drawer.progress(this.backend.getPlayedPercents()); + + if (!paused) { + this.backend.pause(); + this.backend.play(); + } + this.params.scrollParent = oldScrollParent; + this.fireEvent('seek', progress); + }, + + stop: function () { + this.pause(); + this.seekTo(0); + this.drawer.progress(0); + }, + + /** + * Set the playback volume. + * + * @param {Number} newVolume A value between 0 and 1, 0 being no + * volume and 1 being full volume. + */ + setVolume: function (newVolume) { + this.backend.setVolume(newVolume); + }, + + /** + * Set the playback rate. + * + * @param {Number} rate A positive number. E.g. 0.5 means half the + * normal speed, 2 means double speed and so on. + */ + setPlaybackRate: function (rate) { + this.backend.setPlaybackRate(rate); + }, + + /** + * Toggle the volume on and off. It not currenly muted it will + * save the current volume value and turn the volume off. + * If currently muted then it will restore the volume to the saved + * value, and then rest the saved value. + */ + toggleMute: function () { + if (this.isMuted) { + // If currently muted then restore to the saved volume + // and update the mute properties + this.backend.setVolume(this.savedVolume); + this.isMuted = false; + } else { + // If currently not muted then save current volume, + // turn off the volume and update the mute properties + this.savedVolume = this.backend.getVolume(); + this.backend.setVolume(0); + this.isMuted = true; + } + }, + + toggleScroll: function () { + this.params.scrollParent = !this.params.scrollParent; + this.drawBuffer(); + }, + + toggleInteraction: function () { + this.params.interact = !this.params.interact; + }, + + drawBuffer: function () { + var nominalWidth = Math.round( + this.getDuration() * this.params.minPxPerSec * this.params.pixelRatio + ); + var parentWidth = this.drawer.getWidth(); + var width = nominalWidth; + + // Fill container + if (this.params.fillParent && (!this.params.scrollParent || nominalWidth < parentWidth)) { + width = parentWidth; + } + + var peaks = this.backend.getPeaks(width); + this.drawer.drawPeaks(peaks, width); + this.fireEvent('redraw', peaks, width); + }, + + zoom: function (pxPerSec) { + this.params.minPxPerSec = pxPerSec; + + this.params.scrollParent = true; + + this.drawBuffer(); + + this.seekAndCenter( + this.getCurrentTime() / this.getDuration() + ); + this.fireEvent('zoom', pxPerSec); + }, + + /** + * Internal method. + */ + loadArrayBuffer: function (arraybuffer) { + this.decodeArrayBuffer(arraybuffer, function (data) { + this.loadDecodedBuffer(data); + }.bind(this)); + }, + + /** + * Directly load an externally decoded AudioBuffer. + */ + loadDecodedBuffer: function (buffer) { + this.backend.load(buffer); + this.drawBuffer(); + this.fireEvent('ready'); + }, + + /** + * Loads audio data from a Blob or File object. + * + * @param {Blob|File} blob Audio data. + */ + loadBlob: function (blob) { + var my = this; + // Create file reader + var reader = new FileReader(); + reader.addEventListener('progress', function (e) { + my.onProgress(e); + }); + reader.addEventListener('load', function (e) { + my.loadArrayBuffer(e.target.result); + }); + reader.addEventListener('error', function () { + my.fireEvent('error', 'Error reading file'); + }); + reader.readAsArrayBuffer(blob); + this.empty(); + }, + + /** + * Loads audio and rerenders the waveform. + */ + load: function (url, peaks) { + switch (this.params.backend) { + case 'WebAudio': return this.loadBuffer(url); + case 'MediaElement': return this.loadMediaElement(url, peaks); + } + }, + + /** + * Loads audio using Web Audio buffer backend. + */ + loadBuffer: function (url) { + this.empty(); + // load via XHR and render all at once + return this.getArrayBuffer(url, this.loadArrayBuffer.bind(this)); + }, + + loadMediaElement: function (url, peaks) { + this.empty(); + this.backend.load(url, this.mediaContainer, peaks); + + this.tmpEvents.push( + this.backend.once('canplay', (function () { + this.drawBuffer(); + this.fireEvent('ready'); + }).bind(this)), + + this.backend.once('error', (function (err) { + this.fireEvent('error', err); + }).bind(this)) + ); + + + // If no pre-decoded peaks provided, attempt to download the + // audio file and decode it with Web Audio. + if (!peaks && this.backend.supportsWebAudio()) { + this.getArrayBuffer(url, (function (arraybuffer) { + this.decodeArrayBuffer(arraybuffer, (function (buffer) { + this.backend.buffer = buffer; + this.drawBuffer(); + }).bind(this)); + }).bind(this)); + } + }, + + decodeArrayBuffer: function (arraybuffer, callback) { + this.backend.decodeArrayBuffer( + arraybuffer, + this.fireEvent.bind(this, 'decoded'), + this.fireEvent.bind(this, 'error', 'Error decoding audiobuffer') + ); + this.tmpEvents.push( + this.once('decoded', callback) + ); + }, + + getArrayBuffer: function (url, callback) { + var my = this; + var ajax = WaveSurfer.util.ajax({ + url: url, + responseType: 'arraybuffer' + }); + this.tmpEvents.push( + ajax.on('progress', function (e) { + my.onProgress(e); + }), + ajax.on('success', callback), + ajax.on('error', function (e) { + my.fireEvent('error', 'XHR error: ' + e.target.statusText); + }) + ); + return ajax; + }, + + onProgress: function (e) { + if (e.lengthComputable) { + var percentComplete = e.loaded / e.total; + } else { + // Approximate progress with an asymptotic + // function, and assume downloads in the 1-3 MB range. + percentComplete = e.loaded / (e.loaded + 1000000); + } + this.fireEvent('loading', Math.round(percentComplete * 100), e.target); + }, + + /** + * Exports PCM data into a JSON array and opens in a new window. + */ + exportPCM: function (length, accuracy, noWindow) { + length = length || 1024; + accuracy = accuracy || 10000; + noWindow = noWindow || false; + var peaks = this.backend.getPeaks(length, accuracy); + var arr = [].map.call(peaks, function (val) { + return Math.round(val * accuracy) / accuracy; + }); + var json = JSON.stringify(arr); + if (!noWindow) { + window.open('data:application/json;charset=utf-8,' + + encodeURIComponent(json)); + } + return json; + }, + + clearTmpEvents: function () { + this.tmpEvents.forEach(function (e) { e.un(); }); + }, + + /** + * Display empty waveform. + */ + empty: function () { + if (!this.backend.isPaused()) { + this.stop(); + this.backend.disconnectSource(); + } + this.clearTmpEvents(); + this.drawer.progress(0); + this.drawer.setWidth(0); + this.drawer.drawPeaks({ length: this.drawer.getWidth() }, 0); + }, + + /** + * Remove events, elements and disconnect WebAudio nodes. + */ + destroy: function () { + this.fireEvent('destroy'); + this.clearTmpEvents(); + this.unAll(); + this.backend.destroy(); + this.drawer.destroy(); + } +}; + +WaveSurfer.create = function (params) { + var wavesurfer = Object.create(WaveSurfer); + wavesurfer.init(params); + return wavesurfer; +}; diff --git a/static/wavesurfer.js/src/webaudio.js b/static/wavesurfer.js/src/webaudio.js new file mode 100755 index 0000000..eef8f4b --- /dev/null +++ b/static/wavesurfer.js/src/webaudio.js @@ -0,0 +1,415 @@ +'use strict'; + +WaveSurfer.WebAudio = { + scriptBufferSize: 256, + PLAYING_STATE: 0, + PAUSED_STATE: 1, + FINISHED_STATE: 2, + + supportsWebAudio: function () { + return !!(window.AudioContext || window.webkitAudioContext); + }, + + getAudioContext: function () { + if (!WaveSurfer.WebAudio.audioContext) { + WaveSurfer.WebAudio.audioContext = new ( + window.AudioContext || window.webkitAudioContext + ); + } + return WaveSurfer.WebAudio.audioContext; + }, + + getOfflineAudioContext: function (sampleRate) { + if (!WaveSurfer.WebAudio.offlineAudioContext) { + WaveSurfer.WebAudio.offlineAudioContext = new ( + window.OfflineAudioContext || window.webkitOfflineAudioContext + )(1, 2, sampleRate); + } + return WaveSurfer.WebAudio.offlineAudioContext; + }, + + init: function (params) { + this.params = params; + this.ac = params.audioContext || this.getAudioContext(); + + this.lastPlay = this.ac.currentTime; + this.startPosition = 0; + this.scheduledPause = null; + + this.states = [ + Object.create(WaveSurfer.WebAudio.state.playing), + Object.create(WaveSurfer.WebAudio.state.paused), + Object.create(WaveSurfer.WebAudio.state.finished) + ]; + + this.createVolumeNode(); + this.createScriptNode(); + this.createAnalyserNode(); + + this.setState(this.PAUSED_STATE); + this.setPlaybackRate(this.params.audioRate); + }, + + disconnectFilters: function () { + if (this.filters) { + this.filters.forEach(function (filter) { + filter && filter.disconnect(); + }); + this.filters = null; + // Reconnect direct path + this.analyser.connect(this.gainNode); + } + }, + + setState: function (state) { + if (this.state !== this.states[state]) { + this.state = this.states[state]; + this.state.init.call(this); + } + }, + + // Unpacked filters + setFilter: function () { + this.setFilters([].slice.call(arguments)); + }, + + /** + * @param {Array} filters Packed ilters array + */ + setFilters: function (filters) { + // Remove existing filters + this.disconnectFilters(); + + // Insert filters if filter array not empty + if (filters && filters.length) { + this.filters = filters; + + // Disconnect direct path before inserting filters + this.analyser.disconnect(); + + // Connect each filter in turn + filters.reduce(function (prev, curr) { + prev.connect(curr); + return curr; + }, this.analyser).connect(this.gainNode); + } + + }, + + createScriptNode: function () { + if (this.ac.createScriptProcessor) { + this.scriptNode = this.ac.createScriptProcessor(this.scriptBufferSize); + } else { + this.scriptNode = this.ac.createJavaScriptNode(this.scriptBufferSize); + } + + this.scriptNode.connect(this.ac.destination); + }, + + addOnAudioProcess: function () { + var my = this; + + this.scriptNode.onaudioprocess = function () { + var time = my.getCurrentTime(); + + if (time >= my.getDuration()) { + my.setState(my.FINISHED_STATE); + my.fireEvent('pause'); + } else if (time >= my.scheduledPause) { + my.setState(my.PAUSED_STATE); + my.fireEvent('pause'); + } else if (my.state === my.states[my.PLAYING_STATE]) { + my.fireEvent('audioprocess', time); + } + }; + }, + + removeOnAudioProcess: function () { + this.scriptNode.onaudioprocess = null; + }, + + createAnalyserNode: function () { + this.analyser = this.ac.createAnalyser(); + this.analyser.connect(this.gainNode); + }, + + /** + * Create the gain node needed to control the playback volume. + */ + createVolumeNode: function () { + // Create gain node using the AudioContext + if (this.ac.createGain) { + this.gainNode = this.ac.createGain(); + } else { + this.gainNode = this.ac.createGainNode(); + } + // Add the gain node to the graph + this.gainNode.connect(this.ac.destination); + }, + + /** + * Set the gain to a new value. + * + * @param {Number} newGain The new gain, a floating point value + * between 0 and 1. 0 being no gain and 1 being maximum gain. + */ + setVolume: function (newGain) { + this.gainNode.gain.value = newGain; + }, + + /** + * Get the current gain. + * + * @returns {Number} The current gain, a floating point value + * between 0 and 1. 0 being no gain and 1 being maximum gain. + */ + getVolume: function () { + return this.gainNode.gain.value; + }, + + decodeArrayBuffer: function (arraybuffer, callback, errback) { + if (!this.offlineAc) { + this.offlineAc = this.getOfflineAudioContext(this.ac ? this.ac.sampleRate : 44100); + } + this.offlineAc.decodeAudioData(arraybuffer, (function (data) { + callback(data); + }).bind(this), errback); + }, + + /** + * Compute the max and min value of the waveform when broken into + * subranges. + * @param {Number} How many subranges to break the waveform into. + * @returns {Array} Array of 2* peaks or array of arrays + * of peaks consisting of (max, min) values for each subrange. + */ + getPeaks: function (length) { + var sampleSize = this.buffer.length / length; + var sampleStep = ~~(sampleSize / 10) || 1; + var channels = this.buffer.numberOfChannels; + var splitPeaks = []; + var mergedPeaks = []; + + for (var c = 0; c < channels; c++) { + var peaks = splitPeaks[c] = []; + var chan = this.buffer.getChannelData(c); + + for (var i = 0; i < length; i++) { + var start = ~~(i * sampleSize); + var end = ~~(start + sampleSize); + var min = chan[0]; + var max = chan[0]; + + for (var j = start; j < end; j += sampleStep) { + var value = chan[j]; + + if (value > max) { + max = value; + } + + if (value < min) { + min = value; + } + } + + peaks[2 * i] = max; + peaks[2 * i + 1] = min; + + if (c == 0 || max > mergedPeaks[2 * i]) { + mergedPeaks[2 * i] = max; + } + + if (c == 0 || min < mergedPeaks[2 * i + 1]) { + mergedPeaks[2 * i + 1] = min; + } + } + } + + return this.params.splitChannels ? splitPeaks : mergedPeaks; + }, + + getPlayedPercents: function () { + return this.state.getPlayedPercents.call(this); + }, + + disconnectSource: function () { + if (this.source) { + this.source.disconnect(); + } + }, + + destroy: function () { + if (!this.isPaused()) { + this.pause(); + } + this.unAll(); + this.buffer = null; + this.disconnectFilters(); + this.disconnectSource(); + this.gainNode.disconnect(); + this.scriptNode.disconnect(); + this.analyser.disconnect(); + }, + + load: function (buffer) { + this.startPosition = 0; + this.lastPlay = this.ac.currentTime; + this.buffer = buffer; + this.createSource(); + }, + + createSource: function () { + this.disconnectSource(); + this.source = this.ac.createBufferSource(); + + //adjust for old browsers. + this.source.start = this.source.start || this.source.noteGrainOn; + this.source.stop = this.source.stop || this.source.noteOff; + + this.source.playbackRate.value = this.playbackRate; + this.source.buffer = this.buffer; + this.source.connect(this.analyser); + }, + + isPaused: function () { + return this.state !== this.states[this.PLAYING_STATE]; + }, + + getDuration: function () { + if (!this.buffer) { + return 0; + } + return this.buffer.duration; + }, + + seekTo: function (start, end) { + this.scheduledPause = null; + + if (start == null) { + start = this.getCurrentTime(); + if (start >= this.getDuration()) { + start = 0; + } + } + if (end == null) { + end = this.getDuration(); + } + + this.startPosition = start; + this.lastPlay = this.ac.currentTime; + + if (this.state === this.states[this.FINISHED_STATE]) { + this.setState(this.PAUSED_STATE); + } + + return { start: start, end: end }; + }, + + getPlayedTime: function () { + return (this.ac.currentTime - this.lastPlay) * this.playbackRate; + }, + + /** + * Plays the loaded audio region. + * + * @param {Number} start Start offset in seconds, + * relative to the beginning of a clip. + * @param {Number} end When to stop + * relative to the beginning of a clip. + */ + play: function (start, end) { + // need to re-create source on each playback + this.createSource(); + + var adjustedTime = this.seekTo(start, end); + + start = adjustedTime.start; + end = adjustedTime.end; + + this.scheduledPause = end; + + this.source.start(0, start, end - start); + + this.setState(this.PLAYING_STATE); + + this.fireEvent('play'); + }, + + /** + * Pauses the loaded audio. + */ + pause: function () { + this.scheduledPause = null; + + this.startPosition += this.getPlayedTime(); + this.source && this.source.stop(0); + + this.setState(this.PAUSED_STATE); + + this.fireEvent('pause'); + }, + + /** + * Returns the current time in seconds relative to the audioclip's duration. + */ + getCurrentTime: function () { + return this.state.getCurrentTime.call(this); + }, + + /** + * Set the audio source playback rate. + */ + setPlaybackRate: function (value) { + value = value || 1; + if (this.isPaused()) { + this.playbackRate = value; + } else { + this.pause(); + this.playbackRate = value; + this.play(); + } + } +}; + +WaveSurfer.WebAudio.state = {}; + +WaveSurfer.WebAudio.state.playing = { + init: function () { + this.addOnAudioProcess(); + }, + getPlayedPercents: function () { + var duration = this.getDuration(); + return (this.getCurrentTime() / duration) || 0; + }, + getCurrentTime: function () { + return this.startPosition + this.getPlayedTime(); + } +}; + +WaveSurfer.WebAudio.state.paused = { + init: function () { + this.removeOnAudioProcess(); + }, + getPlayedPercents: function () { + var duration = this.getDuration(); + return (this.getCurrentTime() / duration) || 0; + }, + getCurrentTime: function () { + return this.startPosition; + } +}; + +WaveSurfer.WebAudio.state.finished = { + init: function () { + this.removeOnAudioProcess(); + this.fireEvent('finish'); + }, + getPlayedPercents: function () { + return 1; + }, + getCurrentTime: function () { + return this.getDuration(); + } +}; + +WaveSurfer.util.extend(WaveSurfer.WebAudio, WaveSurfer.Observer); diff --git a/templates/analyze_file.html b/templates/analyze_file.html index 071d86f..cb7d526 100644 --- a/templates/analyze_file.html +++ b/templates/analyze_file.html @@ -4,118 +4,149 @@ {% block femto_title %}Analyse d’un nouveau fichier son : {{ filename }}{% endblock %} {% block femto_content %} - -
-
- -
- -
-
- -
- -
- -
- -
-
- - - -
-
- -
-
-
0:00
-
-
-
-
+
+
+
+
+ + +
+ +
+ + + + + + +
-
-
0:00
-
-
- -
-
-
- - volume -
-
-
- -
- -
-
-
+
+{% endblock %} - +{% block scripts %} + {{ super() }} + + -{% endblock %} + + + {% endblock %}