diff --git a/cda-etl/Dockerfile b/cda-etl/Dockerfile index eef22e200..374963c38 100644 --- a/cda-etl/Dockerfile +++ b/cda-etl/Dockerfile @@ -7,4 +7,4 @@ RUN pip install --no-cache-dir -r requirements.txt COPY src/ /app/src/ -ENTRYPOINT ["python", "src/cda_etl/main.py"] +CMD ["python", "src/cda_etl/main.py"] diff --git a/cda-etl/README.md b/cda-etl/README.md new file mode 100644 index 000000000..4484a4ef1 --- /dev/null +++ b/cda-etl/README.md @@ -0,0 +1,182 @@ +# CDA ETL + +This project downloads CWMS data from a source CDA REST API, stages the retrieved JSON on the local filesystem, and then uploads the staged records to a destination CDA REST API. + +The workflow is intentionally split into two phases: + +1. Stage data from the source API onto disk. +2. Publish the staged files to the destination API. + +When `SOURCE_CDA_URL` is configured, the stage phase always re-downloads source data and overwrites staged files for projects, locations, and timeseries. + +If `SOURCE_CDA_URL` is not configured, the pipeline skips the download phase and publishes whatever is already staged on disk. + +## What It Does + +The ETL process currently handles three CWMS resource types: + +- Locations +- Projects +- Timeseries data + +The data is organized by office, project, and resource type, then written to a filesystem staging area before being posted to the destination CDA API. + +## Configuration Overview + +The main runtime configuration is stored in a YAML file, defaulting to `regi.yml` in the working directory. + +The application reads the YAML path from the `REGI_CONFIG_PATH` environment variable. If the variable is not set, it looks for `regi.yml` next to where the process starts. + +### Example Structure + +```yaml +version: 1 +settings: + startTime: "2026-01-01" + endTime: "now" + maxThreads: 10 + logLevel: INFO + path: "./data" +offices: + - id: SWT + enabled: true + projects: + - id: EUFA + enabled: true + locations: + - id: SWT.EUFA-Dam + enabled: true + timeseries: + - id: SWT.EUFA.Elev.Inst.1Hour.0.Ccp-Rev + enabled: true +``` + +### YAML Fields + +- `version`: Config version. Must be `1`. +- `settings.startTime`: Default start time used for timeseries downloads when a timeseries does not define its own download window. +- `settings.endTime`: Default end time used for timeseries downloads when a timeseries does not define its own download window. +- `settings.maxThreads`: Maximum number of worker threads used for staging and publishing. +- `settings.logLevel`: Logging level for the application. +- `settings.path`: Filesystem root used for staged JSON files. +- `offices`: List of office definitions. +- `projects`: Projects under each office. +- `locations`: Locations under each project. +- `timeseries`: Timeseries under each project. + +### Enabled Flags + +The `enabled` field is optional everywhere. If it is omitted, the item is treated as enabled. + +### Filesystem Staging + +Staged data is written under the directory configured by `settings.path`. + +For timeseries data, the stored file name does not include the time window. During staging with `SOURCE_CDA_URL` configured, each run overwrites the staged file with a fresh source download. + +## Runtime Parameters + +### Required for Destination Upload + +- `DEST_CDA_URL`: Destination CDA REST API root. + +Environment variable values are trimmed. Empty or whitespace-only values are treated as unset. + +### Optional Source Download + +- `SOURCE_CDA_URL`: Source CDA REST API root. If set, source data is always re-downloaded and staged files are overwritten each run. If omitted (or set to an empty value), the download phase is skipped. +- `SOURCE_CDA_API_KEY`: API key for the source CDA REST API. +- `DEST_CDA_API_KEY`: API key for the destination CDA REST API. + +### Other Runtime Settings + +- `REGI_CONFIG_PATH`: Path to the YAML config file. Defaults to `regi.yml`. +- `LOG_LEVEL`: Console log level for the application process. Defaults to `INFO`. + +## Docker Usage + +### docker run + +Mount the YAML file into the container and point `REGI_CONFIG_PATH` at it. + +```powershell +docker run --rm ` + -v ${PWD}\data\regi\regi.yml:/app/regi.yml ` + -e REGI_CONFIG_PATH=/app/regi.yml ` + -e SOURCE_CDA_URL=https://source.example/cwms-data ` + -e SOURCE_CDA_API_KEY=your-source-key ` + -e DEST_CDA_URL=https://dest.example/cwms-data ` + -e DEST_CDA_API_KEY=your-dest-key ` + cwms-data-api/etl +``` + +If you do not want to download from the source API, omit `SOURCE_CDA_URL` and the pipeline will publish only staged files. + +### docker-compose + +The included `docker-compose.yml` mounts `regi.yml` into the container and sets `REGI_CONFIG_PATH=/app/regi.yml`. + +You still need to supply the API endpoint environment variables when running Compose. + +## Gradle Commands + +The Gradle build file provides Docker-based convenience tasks. + +### Build the image + +```bash +./gradlew dockerBuild +``` + +Optional Gradle properties: + +- `-PetlImageName=`: Override the Docker image name. Default: `cwms-data-api/etl` +- `-PdockerPull=true`: Add `--pull` to the Docker build + +Example: + +```bash +./gradlew dockerBuild -PetlImageName=cwms-data-api/etl:dev -PdockerPull=true +``` + +### Run the ETL container + +```bash +./gradlew runEtl +``` + +Optional Gradle property: + +- `-PetlEnvFile=`: Override the environment file passed to `docker run`. Default: `etl.env` + +Example: + +```bash +./gradlew runEtl -PetlEnvFile=etl.env.example +``` + +### Run the unit tests in Docker + +```bash +./gradlew runEtlUnitTests +``` + +This uses Docker, mounts the local `src` and `tests` directories, and runs `pytest` inside the container. + +### Run the full verification task + +```bash +./gradlew check +``` + +`check` depends on `runEtlUnitTests` in this project. + +## Local Development + +For local Python execution, ensure the environment variables for source and destination CDA endpoints are set, then run: + +```bash +python src/cda_etl/main.py +``` + +The process will load the YAML config, stage files under `settings.path`, and publish to the destination CDA API. diff --git a/cda-etl/build.gradle b/cda-etl/build.gradle index 00ae286b3..e870ba835 100644 --- a/cda-etl/build.gradle +++ b/cda-etl/build.gradle @@ -22,56 +22,100 @@ plugins { id 'base' } -def isWindows = { - System.getProperty('os.name').toLowerCase().contains('win') +final def imageName = providers.gradleProperty('etlImageName').orElse('cwms-data-api/etl') +final def dockerPull = providers.gradleProperty('dockerPull') + .map { it.toBoolean() } + .orElse(false) + +def dockerVersion + +def getDockerVersion = { + if (dockerVersion != null) { + return dockerVersion + } + + try { + def stdout = new ByteArrayOutputStream() + def stderr = new ByteArrayOutputStream() + + exec { + commandLine 'docker', 'info', '--format', '{{.ServerVersion}}' + standardOutput = stdout + errorOutput = stderr + } + + dockerVersion = stdout.toString().trim() + } catch (ignored) { + dockerVersion = '' + } + + return dockerVersion } -final def pythonCmd = isWindows() ? 'python' : 'python3' -final def mainScript = 'src/cda_etl/main.py' -final def envFile = 'etl.env' -final def reqFile = 'requirements.txt' - -tasks.register('installRequirements', Exec) { - commandLine pythonCmd, '-m', 'pip', 'install', '-r', reqFile - workingDir projectDir - inputs.file(new File(projectDir, reqFile)) - outputs.file(new File(buildDir, 'pip-install.marker')) - doLast { - mkdir buildDir - new File(buildDir, 'pip-install.marker').text = "installed at ${new Date()}\n" +def isDockerAvailable = { taskName -> + def version = getDockerVersion() + if (!version) { + logger.lifecycle("Skipping ${taskName} because Docker is not installed or the Docker daemon is unavailable.") + return false } + + logger.info("Docker is available: ${version}") + return true } -tasks.register('runEtl', Exec) { - dependsOn 'installRequirements' - group 'application' - executable pythonCmd - args mainScript - workingDir projectDir - - // Load environment variables from etl.env +tasks.register('dockerBuild', Exec) { + group = 'docker' + description = 'Builds the CDA ETL Docker image.' + + onlyIf { + isDockerAvailable(name) + } + doFirst { - def envFileObj = new File(projectDir, envFile) - if (envFileObj.exists()) { - envFileObj.eachLine { line -> - if (line.trim() && !line.startsWith('#')) { - def parts = line.split('=', 2) - if (parts.length == 2) { - environment parts[0].trim(), parts[1].trim() - } - } - } - } else { - logger.warn("Environment file ${envFile} not found.") + def args = ['docker', 'build'] + + if (dockerPull.get()) { + args += '--pull' } + + args += ['-t', imageName.get(), '.'] + + commandLine args } + + inputs.file('Dockerfile') + inputs.file('requirements.txt') + inputs.dir('src') } tasks.register('runEtlUnitTests', Exec) { - dependsOn 'installRequirements' - group 'verification' - executable pythonCmd - args '-m', 'pytest' - workingDir projectDir - environment 'PYTHONPATH', 'src/cda_etl' + dependsOn 'dockerBuild' + + group = 'verification' + description = 'Runs ETL unit tests in Docker with local source and tests mounted for faster iteration.' + + onlyIf { + isDockerAvailable(name) + } + + doFirst { + def args = [ + 'docker', 'run', '--rm', + '-e', 'PYTHONPATH=/app/src/cda_etl', + '-v', "${projectDir}/src:/app/src" + ] + + def testsDir = file('tests') + args += ['-v', "${testsDir.absolutePath}:/app/tests"] + args += [imageName.get(), 'python', '-m', 'pytest'] + + commandLine args + } + + inputs.dir('src') + inputs.dir('tests').optional() } + +tasks.named('check') { + dependsOn 'runEtlUnitTests' +} \ No newline at end of file diff --git a/cda-etl/tests/resources/SWT/Locations/EUFA-Dam.json b/cda-etl/data/regi/SWT/Locations/EUFA-Dam.json similarity index 100% rename from cda-etl/tests/resources/SWT/Locations/EUFA-Dam.json rename to cda-etl/data/regi/SWT/Locations/EUFA-Dam.json diff --git a/cda-etl/data/regi/SWT/Projects/EUFA.json b/cda-etl/data/regi/SWT/Projects/EUFA.json new file mode 100644 index 000000000..9a74a03a9 --- /dev/null +++ b/cda-etl/data/regi/SWT/Projects/EUFA.json @@ -0,0 +1,35 @@ +{ + "location": { + "office-id": "SWT", + "name": "EUFA", + "latitude": 35.3069444, + "longitude": -95.3625, + "active": true, + "public-name": "Eufaula Lake", + "long-name": "Eufaula Lake near Brooken, OK", + "description": "Eufaula Lake near Brooken, OK", + "timezone-name": "US/Central", + "location-type": "RESERVOIR", + "location-kind": "PROJECT", + "nation": "US", + "state-initial": "OK", + "county-name": "Haskell", + "nearest-city": "Hoyt, OK", + "horizontal-datum": "WGS84", + "published-longitude": 95.3625, + "published-latitude": 35.306944444444, + "vertical-datum": "NGVD29", + "elevation": 151.79, + "bounding-office-id": "SWT", + "elevation-units": "m" + }, + "federal-cost": 0, + "non-federal-cost": 0, + "cost-unit": "$", + "federal-o-and-m-cost": 0, + "non-federal-o-and-m-cost": 0, + "project-owner": "USACE", + "sedimentation-desc": "Lake inflow carries large amount of sediment from Canadian, North Canadian, and Deep Fork Rivers. During high-flow, bank caving and erosion becomes a problem. Avg annual sedimentation rate is 9,417 ac-ft/yr.", + "downstream-urban-desc": "Eufala, OK is located on the Eufala Reservoir. Whitefield is located downstream from the dam on the mainstem of the Canadian River.", + "bank-full-capacity-desc": "Bankfull Capacity at Whitefield, OK is 40,000 cfs (stage 13.01 ft)." +} \ No newline at end of file diff --git a/cda-etl/data/regi/SWT/Timeseries/EUFA.Elev.Inst.1Hour.0.Ccp-Rev.json b/cda-etl/data/regi/SWT/Timeseries/EUFA.Elev.Inst.1Hour.0.Ccp-Rev.json new file mode 100644 index 000000000..1dc19e662 --- /dev/null +++ b/cda-etl/data/regi/SWT/Timeseries/EUFA.Elev.Inst.1Hour.0.Ccp-Rev.json @@ -0,0 +1,20777 @@ +{ + "begin": "2026-01-01T00:00:00+00:00", + "date-version-type": "UNVERSIONED", + "end": "2026-06-22T17:00:00+00:00", + "interval": "PT1H", + "interval-offset": 0, + "name": "EUFA.Elev.Inst.1Hour.0.Ccp-Rev", + "office-id": "SWT", + "page": "MTc2NzIyNTYwMDAwMHx8MzM3fHwzMDAwMDA=", + "page-size": 300000, + "time-zone": "US/Central", + "total": 4146, + "units": "ft", + "value-columns": [ + { + "name": "date-time", + "ordinal": 1, + "datatype": "java.sql.Timestamp" + }, + { + "name": "value", + "ordinal": 2, + "datatype": "java.lang.Double" + }, + { + "name": "quality-code", + "ordinal": 3, + "datatype": "int" + } + ], + "values": [ + [ + 1767225600000, + 581.8499999999999, + 0 + ], + [ + 1767229200000, + 581.86, + 0 + ], + [ + 1767232800000, + 581.8399999999999, + 0 + ], + [ + 1767236400000, + 581.8399999999999, + 0 + ], + [ + 1767240000000, + 581.8499999999999, + 0 + ], + [ + 1767243600000, + 581.8399999999999, + 0 + ], + [ + 1767247200000, + 581.8399999999999, + 0 + ], + [ + 1767250800000, + 581.86, + 0 + ], + [ + 1767254400000, + 581.8499999999999, + 0 + ], + [ + 1767258000000, + 581.8399999999999, + 0 + ], + [ + 1767261600000, + 581.8399999999999, + 0 + ], + [ + 1767265200000, + 581.8499999999999, + 0 + ], + [ + 1767268800000, + 581.8399999999999, + 0 + ], + [ + 1767272400000, + 581.8399999999999, + 0 + ], + [ + 1767276000000, + 581.8199999999999, + 0 + ], + [ + 1767279600000, + 581.81, + 0 + ], + [ + 1767283200000, + 581.8399999999999, + 0 + ], + [ + 1767286800000, + 581.8299999999999, + 0 + ], + [ + 1767290400000, + 581.8199999999999, + 0 + ], + [ + 1767294000000, + 581.8399999999999, + 0 + ], + [ + 1767297600000, + 581.8399999999999, + 0 + ], + [ + 1767301200000, + 581.81, + 0 + ], + [ + 1767304800000, + 581.8199999999999, + 0 + ], + [ + 1767308400000, + 581.8299999999999, + 0 + ], + [ + 1767312000000, + 581.8199999999999, + 0 + ], + [ + 1767315600000, + 581.8299999999999, + 0 + ], + [ + 1767319200000, + 581.8399999999999, + 0 + ], + [ + 1767322800000, + 581.8299999999999, + 0 + ], + [ + 1767326400000, + 581.8199999999999, + 0 + ], + [ + 1767330000000, + 581.8199999999999, + 0 + ], + [ + 1767333600000, + 581.81, + 0 + ], + [ + 1767337200000, + 581.81, + 0 + ], + [ + 1767340800000, + 581.8199999999999, + 0 + ], + [ + 1767344400000, + 581.8299999999999, + 0 + ], + [ + 1767348000000, + 581.8299999999999, + 0 + ], + [ + 1767351600000, + 581.8299999999999, + 0 + ], + [ + 1767355200000, + 581.8399999999999, + 0 + ], + [ + 1767358800000, + 581.8299999999999, + 0 + ], + [ + 1767362400000, + 581.8299999999999, + 0 + ], + [ + 1767366000000, + 581.8299999999999, + 0 + ], + [ + 1767369600000, + 581.8199999999999, + 0 + ], + [ + 1767373200000, + 581.8299999999999, + 0 + ], + [ + 1767376800000, + 581.8399999999999, + 0 + ], + [ + 1767380400000, + 581.8399999999999, + 0 + ], + [ + 1767384000000, + 581.8399999999999, + 0 + ], + [ + 1767387600000, + 581.8399999999999, + 0 + ], + [ + 1767391200000, + 581.8399999999999, + 0 + ], + [ + 1767394800000, + 581.8299999999999, + 0 + ], + [ + 1767398400000, + 581.81, + 0 + ], + [ + 1767402000000, + 581.8399999999999, + 0 + ], + [ + 1767405600000, + 581.8399999999999, + 0 + ], + [ + 1767409200000, + 581.8499999999999, + 0 + ], + [ + 1767412800000, + 581.86, + 0 + ], + [ + 1767416400000, + 581.8699999999999, + 0 + ], + [ + 1767420000000, + 581.8399999999999, + 0 + ], + [ + 1767423600000, + 581.8399999999999, + 0 + ], + [ + 1767427200000, + 581.8499999999999, + 0 + ], + [ + 1767430800000, + 581.8399999999999, + 0 + ], + [ + 1767434400000, + 581.86, + 0 + ], + [ + 1767438000000, + 581.86, + 0 + ], + [ + 1767441600000, + 581.8499999999999, + 0 + ], + [ + 1767445200000, + 581.8499999999999, + 0 + ], + [ + 1767448800000, + 581.86, + 0 + ], + [ + 1767452400000, + 581.8699999999999, + 0 + ], + [ + 1767456000000, + 581.8699999999999, + 0 + ], + [ + 1767459600000, + 581.8699999999999, + 0 + ], + [ + 1767463200000, + 581.8699999999999, + 0 + ], + [ + 1767466800000, + 581.8499999999999, + 0 + ], + [ + 1767470400000, + 581.8399999999999, + 0 + ], + [ + 1767474000000, + 581.8399999999999, + 0 + ], + [ + 1767477600000, + 581.8399999999999, + 0 + ], + [ + 1767481200000, + 581.8399999999999, + 0 + ], + [ + 1767484800000, + 581.8399999999999, + 0 + ], + [ + 1767488400000, + 581.8399999999999, + 0 + ], + [ + 1767492000000, + 581.8499999999999, + 0 + ], + [ + 1767495600000, + 581.86, + 0 + ], + [ + 1767499200000, + 581.86, + 0 + ], + [ + 1767502800000, + 581.8499999999999, + 0 + ], + [ + 1767506400000, + 581.8499999999999, + 0 + ], + [ + 1767510000000, + 581.8399999999999, + 0 + ], + [ + 1767513600000, + 581.8399999999999, + 0 + ], + [ + 1767517200000, + 581.8399999999999, + 0 + ], + [ + 1767520800000, + 581.8499999999999, + 0 + ], + [ + 1767524400000, + 581.8399999999999, + 0 + ], + [ + 1767528000000, + 581.86, + 0 + ], + [ + 1767531600000, + 581.8499999999999, + 0 + ], + [ + 1767535200000, + 581.8399999999999, + 0 + ], + [ + 1767538800000, + 581.8399999999999, + 0 + ], + [ + 1767542400000, + 581.8499999999999, + 0 + ], + [ + 1767546000000, + 581.8399999999999, + 0 + ], + [ + 1767549600000, + 581.8399999999999, + 0 + ], + [ + 1767553200000, + 581.8499999999999, + 0 + ], + [ + 1767556800000, + 581.8699999999999, + 0 + ], + [ + 1767560400000, + 581.86, + 0 + ], + [ + 1767564000000, + 581.8699999999999, + 0 + ], + [ + 1767567600000, + 581.8699999999999, + 0 + ], + [ + 1767571200000, + 581.86, + 0 + ], + [ + 1767574800000, + 581.8399999999999, + 0 + ], + [ + 1767578400000, + 581.8399999999999, + 0 + ], + [ + 1767582000000, + 581.8499999999999, + 0 + ], + [ + 1767585600000, + 581.8499999999999, + 0 + ], + [ + 1767589200000, + 581.8699999999999, + 0 + ], + [ + 1767592800000, + 581.8699999999999, + 0 + ], + [ + 1767596400000, + 581.89, + 0 + ], + [ + 1767600000000, + 581.8699999999999, + 0 + ], + [ + 1767603600000, + 581.8699999999999, + 0 + ], + [ + 1767607200000, + 581.8399999999999, + 0 + ], + [ + 1767610800000, + 581.8399999999999, + 0 + ], + [ + 1767614400000, + 581.8299999999999, + 0 + ], + [ + 1767618000000, + 581.86, + 0 + ], + [ + 1767621600000, + 581.8699999999999, + 0 + ], + [ + 1767625200000, + 581.8699999999999, + 0 + ], + [ + 1767628800000, + 581.8699999999999, + 0 + ], + [ + 1767632400000, + 581.89, + 0 + ], + [ + 1767636000000, + 581.8799999999999, + 0 + ], + [ + 1767639600000, + 581.9, + 0 + ], + [ + 1767643200000, + 581.9099999999999, + 0 + ], + [ + 1767646800000, + 581.9099999999999, + 0 + ], + [ + 1767650400000, + 581.9, + 0 + ], + [ + 1767654000000, + 581.9, + 0 + ], + [ + 1767657600000, + 581.8799999999999, + 0 + ], + [ + 1767661200000, + 581.8799999999999, + 0 + ], + [ + 1767664800000, + 581.8699999999999, + 0 + ], + [ + 1767668400000, + 581.8699999999999, + 0 + ], + [ + 1767672000000, + 581.8699999999999, + 0 + ], + [ + 1767675600000, + 581.9, + 0 + ], + [ + 1767679200000, + 581.9, + 0 + ], + [ + 1767682800000, + 581.92, + 0 + ], + [ + 1767686400000, + 581.92, + 0 + ], + [ + 1767690000000, + 581.9099999999999, + 0 + ], + [ + 1767693600000, + 581.8799999999999, + 0 + ], + [ + 1767697200000, + 581.8799999999999, + 0 + ], + [ + 1767700800000, + 581.8699999999999, + 0 + ], + [ + 1767704400000, + 581.8699999999999, + 0 + ], + [ + 1767708000000, + 581.8699999999999, + 0 + ], + [ + 1767711600000, + 581.9, + 0 + ], + [ + 1767715200000, + 581.9, + 0 + ], + [ + 1767718800000, + 581.9, + 0 + ], + [ + 1767722400000, + 581.9, + 0 + ], + [ + 1767726000000, + 581.89, + 0 + ], + [ + 1767729600000, + 581.89, + 0 + ], + [ + 1767733200000, + 581.89, + 0 + ], + [ + 1767736800000, + 581.8799999999999, + 0 + ], + [ + 1767740400000, + 581.8799999999999, + 0 + ], + [ + 1767744000000, + 581.89, + 0 + ], + [ + 1767747600000, + 581.89, + 0 + ], + [ + 1767751200000, + 581.89, + 0 + ], + [ + 1767754800000, + 581.9, + 0 + ], + [ + 1767758400000, + 581.9, + 0 + ], + [ + 1767762000000, + 581.9, + 0 + ], + [ + 1767765600000, + 581.9, + 0 + ], + [ + 1767769200000, + 581.9, + 0 + ], + [ + 1767772800000, + 581.9, + 0 + ], + [ + 1767776400000, + 581.9, + 0 + ], + [ + 1767780000000, + 581.9, + 0 + ], + [ + 1767783600000, + 581.89, + 0 + ], + [ + 1767787200000, + 581.89, + 0 + ], + [ + 1767790800000, + 581.89, + 0 + ], + [ + 1767794400000, + 581.8799999999999, + 0 + ], + [ + 1767798000000, + 581.8799999999999, + 0 + ], + [ + 1767801600000, + 581.89, + 0 + ], + [ + 1767805200000, + 581.9, + 0 + ], + [ + 1767808800000, + 581.89, + 0 + ], + [ + 1767812400000, + 581.9, + 0 + ], + [ + 1767816000000, + 581.9099999999999, + 0 + ], + [ + 1767819600000, + 581.9099999999999, + 0 + ], + [ + 1767823200000, + 581.9, + 0 + ], + [ + 1767826800000, + 581.9, + 0 + ], + [ + 1767830400000, + 581.9, + 0 + ], + [ + 1767834000000, + 581.89, + 0 + ], + [ + 1767837600000, + 581.8799999999999, + 0 + ], + [ + 1767841200000, + 581.89, + 0 + ], + [ + 1767844800000, + 581.9, + 0 + ], + [ + 1767848400000, + 581.9, + 0 + ], + [ + 1767852000000, + 581.93, + 0 + ], + [ + 1767855600000, + 581.9, + 0 + ], + [ + 1767859200000, + 581.9, + 0 + ], + [ + 1767862800000, + 581.9, + 0 + ], + [ + 1767866400000, + 581.9, + 0 + ], + [ + 1767870000000, + 581.8799999999999, + 0 + ], + [ + 1767873600000, + 581.9, + 0 + ], + [ + 1767877200000, + 581.9, + 0 + ], + [ + 1767880800000, + 581.92, + 0 + ], + [ + 1767884400000, + 581.93, + 0 + ], + [ + 1767888000000, + 581.9399999999999, + 0 + ], + [ + 1767891600000, + 582.05, + 0 + ], + [ + 1767895200000, + 581.9699999999999, + 0 + ], + [ + 1767898800000, + 581.9599999999999, + 0 + ], + [ + 1767902400000, + 581.99, + 0 + ], + [ + 1767906000000, + 582.02, + 0 + ], + [ + 1767909600000, + 582.02, + 0 + ], + [ + 1767913200000, + 582.05, + 0 + ], + [ + 1767916800000, + 582.05, + 0 + ], + [ + 1767920400000, + 582.01, + 0 + ], + [ + 1767924000000, + 581.9599999999999, + 0 + ], + [ + 1767927600000, + 581.9599999999999, + 0 + ], + [ + 1767931200000, + 581.9999999999999, + 0 + ], + [ + 1767934800000, + 581.99, + 0 + ], + [ + 1767938400000, + 581.99, + 0 + ], + [ + 1767942000000, + 581.9599999999999, + 0 + ], + [ + 1767945600000, + 581.9699999999999, + 0 + ], + [ + 1767949200000, + 581.9499999999999, + 0 + ], + [ + 1767952800000, + 581.9599999999999, + 0 + ], + [ + 1767956400000, + 581.9599999999999, + 0 + ], + [ + 1767960000000, + 581.9599999999999, + 0 + ], + [ + 1767963600000, + 581.9499999999999, + 0 + ], + [ + 1767967200000, + 581.9499999999999, + 0 + ], + [ + 1767970800000, + 581.9399999999999, + 0 + ], + [ + 1767974400000, + 581.93, + 0 + ], + [ + 1767978000000, + 581.93, + 0 + ], + [ + 1767981600000, + 581.93, + 0 + ], + [ + 1767985200000, + 581.9399999999999, + 0 + ], + [ + 1767988800000, + 581.9499999999999, + 0 + ], + [ + 1767992400000, + 581.9599999999999, + 0 + ], + [ + 1767996000000, + 581.9599999999999, + 0 + ], + [ + 1767999600000, + 581.9499999999999, + 0 + ], + [ + 1768003200000, + 581.9499999999999, + 0 + ], + [ + 1768006800000, + 581.9499999999999, + 0 + ], + [ + 1768010400000, + 581.9599999999999, + 0 + ], + [ + 1768014000000, + 581.9799999999999, + 0 + ], + [ + 1768017600000, + 581.99, + 0 + ], + [ + 1768021200000, + 581.99, + 0 + ], + [ + 1768024800000, + 581.9799999999999, + 0 + ], + [ + 1768028400000, + 581.9799999999999, + 0 + ], + [ + 1768032000000, + 581.99, + 0 + ], + [ + 1768035600000, + 582.01, + 0 + ], + [ + 1768039200000, + 582.02, + 0 + ], + [ + 1768042800000, + 582.04, + 0 + ], + [ + 1768046400000, + 582.02, + 0 + ], + [ + 1768050000000, + 581.99, + 0 + ], + [ + 1768053600000, + 581.99, + 0 + ], + [ + 1768057200000, + 581.99, + 0 + ], + [ + 1768060800000, + 581.9799999999999, + 0 + ], + [ + 1768064400000, + 581.99, + 0 + ], + [ + 1768068000000, + 581.99, + 0 + ], + [ + 1768071600000, + 581.99, + 0 + ], + [ + 1768075200000, + 582.01, + 0 + ], + [ + 1768078800000, + 581.99, + 0 + ], + [ + 1768082400000, + 581.9799999999999, + 0 + ], + [ + 1768086000000, + 581.9699999999999, + 0 + ], + [ + 1768089600000, + 581.9799999999999, + 0 + ], + [ + 1768093200000, + 581.9699999999999, + 0 + ], + [ + 1768096800000, + 581.99, + 0 + ], + [ + 1768100400000, + 581.9999999999999, + 0 + ], + [ + 1768104000000, + 581.9999999999999, + 0 + ], + [ + 1768107600000, + 582.01, + 0 + ], + [ + 1768111200000, + 582.01, + 0 + ], + [ + 1768114800000, + 581.99, + 0 + ], + [ + 1768118400000, + 581.99, + 0 + ], + [ + 1768122000000, + 581.9999999999999, + 0 + ], + [ + 1768125600000, + 581.99, + 0 + ], + [ + 1768129200000, + 581.9799999999999, + 0 + ], + [ + 1768132800000, + 581.9799999999999, + 0 + ], + [ + 1768136400000, + 581.9599999999999, + 0 + ], + [ + 1768140000000, + 581.9599999999999, + 0 + ], + [ + 1768143600000, + 581.9499999999999, + 0 + ], + [ + 1768147200000, + 581.93, + 0 + ], + [ + 1768150800000, + 581.93, + 0 + ], + [ + 1768154400000, + 581.9399999999999, + 0 + ], + [ + 1768158000000, + 581.9599999999999, + 0 + ], + [ + 1768161600000, + 581.9699999999999, + 0 + ], + [ + 1768165200000, + 581.9699999999999, + 0 + ], + [ + 1768168800000, + 581.9799999999999, + 0 + ], + [ + 1768172400000, + 581.9699999999999, + 0 + ], + [ + 1768176000000, + 581.9599999999999, + 0 + ], + [ + 1768179600000, + 581.9599999999999, + 0 + ], + [ + 1768183200000, + 581.9599999999999, + 0 + ], + [ + 1768186800000, + 581.9599999999999, + 0 + ], + [ + 1768190400000, + 581.9599999999999, + 0 + ], + [ + 1768194000000, + 581.9699999999999, + 0 + ], + [ + 1768197600000, + 581.9699999999999, + 0 + ], + [ + 1768201200000, + 581.9599999999999, + 0 + ], + [ + 1768204800000, + 581.9599999999999, + 0 + ], + [ + 1768208400000, + 581.9699999999999, + 0 + ], + [ + 1768212000000, + 581.9599999999999, + 0 + ], + [ + 1768215600000, + 581.9599999999999, + 0 + ], + [ + 1768219200000, + 581.9799999999999, + 0 + ], + [ + 1768222800000, + 581.9799999999999, + 0 + ], + [ + 1768226400000, + 581.9699999999999, + 0 + ], + [ + 1768230000000, + 581.9699999999999, + 0 + ], + [ + 1768233600000, + 581.9799999999999, + 0 + ], + [ + 1768237200000, + 581.99, + 0 + ], + [ + 1768240800000, + 582.02, + 0 + ], + [ + 1768244400000, + 582.02, + 0 + ], + [ + 1768248000000, + 582.01, + 0 + ], + [ + 1768251600000, + 581.9999999999999, + 0 + ], + [ + 1768255200000, + 581.99, + 0 + ], + [ + 1768258800000, + 581.9799999999999, + 0 + ], + [ + 1768262400000, + 581.9599999999999, + 0 + ], + [ + 1768266000000, + 581.9699999999999, + 0 + ], + [ + 1768269600000, + 581.9699999999999, + 0 + ], + [ + 1768273200000, + 581.99, + 0 + ], + [ + 1768276800000, + 581.99, + 0 + ], + [ + 1768280400000, + 581.99, + 0 + ], + [ + 1768284000000, + 581.99, + 0 + ], + [ + 1768287600000, + 581.9999999999999, + 0 + ], + [ + 1768291200000, + 581.99, + 0 + ], + [ + 1768294800000, + 581.99, + 0 + ], + [ + 1768298400000, + 581.99, + 0 + ], + [ + 1768302000000, + 581.99, + 0 + ], + [ + 1768305600000, + 581.99, + 0 + ], + [ + 1768309200000, + 581.99, + 0 + ], + [ + 1768312800000, + 581.99, + 0 + ], + [ + 1768316400000, + 582.01, + 0 + ], + [ + 1768320000000, + 581.9999999999999, + 0 + ], + [ + 1768323600000, + 581.9999999999999, + 0 + ], + [ + 1768327200000, + 581.9999999999999, + 0 + ], + [ + 1768330800000, + 581.9999999999999, + 0 + ], + [ + 1768334400000, + 582.01, + 0 + ], + [ + 1768338000000, + 582.01, + 0 + ], + [ + 1768341600000, + 581.9999999999999, + 0 + ], + [ + 1768345200000, + 581.9999999999999, + 0 + ], + [ + 1768348800000, + 582.02, + 0 + ], + [ + 1768352400000, + 581.9999999999999, + 0 + ], + [ + 1768356000000, + 581.99, + 0 + ], + [ + 1768359600000, + 582.02, + 0 + ], + [ + 1768363200000, + 581.9999999999999, + 0 + ], + [ + 1768366800000, + 581.9999999999999, + 0 + ], + [ + 1768370400000, + 582.02, + 0 + ], + [ + 1768374000000, + 582.02, + 0 + ], + [ + 1768377600000, + 581.9999999999999, + 0 + ], + [ + 1768381200000, + 581.99, + 0 + ], + [ + 1768384800000, + 582.01, + 0 + ], + [ + 1768388400000, + 581.9999999999999, + 0 + ], + [ + 1768392000000, + 581.9999999999999, + 0 + ], + [ + 1768395600000, + 582.01, + 0 + ], + [ + 1768399200000, + 581.9999999999999, + 0 + ], + [ + 1768402800000, + 581.9999999999999, + 0 + ], + [ + 1768406400000, + 582.02, + 0 + ], + [ + 1768410000000, + 582.02, + 0 + ], + [ + 1768413600000, + 581.9799999999999, + 0 + ], + [ + 1768417200000, + 581.99, + 0 + ], + [ + 1768420800000, + 581.99, + 0 + ], + [ + 1768424400000, + 581.99, + 0 + ], + [ + 1768428000000, + 581.99, + 0 + ], + [ + 1768431600000, + 581.99, + 0 + ], + [ + 1768435200000, + 581.99, + 0 + ], + [ + 1768438800000, + 581.99, + 0 + ], + [ + 1768442400000, + 581.99, + 0 + ], + [ + 1768446000000, + 581.99, + 0 + ], + [ + 1768449600000, + 581.9799999999999, + 0 + ], + [ + 1768453200000, + 581.9699999999999, + 0 + ], + [ + 1768456800000, + 581.9599999999999, + 0 + ], + [ + 1768460400000, + 581.9599999999999, + 0 + ], + [ + 1768464000000, + 581.9699999999999, + 0 + ], + [ + 1768467600000, + 581.99, + 0 + ], + [ + 1768471200000, + 581.99, + 0 + ], + [ + 1768474800000, + 581.9999999999999, + 0 + ], + [ + 1768478400000, + 581.99, + 0 + ], + [ + 1768482000000, + 581.9699999999999, + 0 + ], + [ + 1768485600000, + 581.9599999999999, + 0 + ], + [ + 1768489200000, + 581.9499999999999, + 0 + ], + [ + 1768492800000, + 581.9599999999999, + 0 + ], + [ + 1768496400000, + 581.9599999999999, + 0 + ], + [ + 1768500000000, + 581.9699999999999, + 0 + ], + [ + 1768503600000, + 581.9599999999999, + 0 + ], + [ + 1768507200000, + 581.9599999999999, + 0 + ], + [ + 1768510800000, + 581.9599999999999, + 0 + ], + [ + 1768514400000, + 581.9399999999999, + 0 + ], + [ + 1768518000000, + 581.9599999999999, + 0 + ], + [ + 1768521600000, + 581.9699999999999, + 0 + ], + [ + 1768525200000, + 581.9699999999999, + 0 + ], + [ + 1768528800000, + 581.9599999999999, + 0 + ], + [ + 1768532400000, + 581.9699999999999, + 0 + ], + [ + 1768536000000, + 581.9699999999999, + 0 + ], + [ + 1768539600000, + 581.9799999999999, + 0 + ], + [ + 1768543200000, + 581.9799999999999, + 0 + ], + [ + 1768546800000, + 581.99, + 0 + ], + [ + 1768550400000, + 581.99, + 0 + ], + [ + 1768554000000, + 581.99, + 0 + ], + [ + 1768557600000, + 581.9799999999999, + 0 + ], + [ + 1768561200000, + 581.99, + 0 + ], + [ + 1768564800000, + 581.9599999999999, + 0 + ], + [ + 1768568400000, + 581.9799999999999, + 0 + ], + [ + 1768572000000, + 581.9599999999999, + 0 + ], + [ + 1768575600000, + 581.9499999999999, + 0 + ], + [ + 1768579200000, + 581.93, + 0 + ], + [ + 1768582800000, + 581.9699999999999, + 0 + ], + [ + 1768586400000, + 581.9599999999999, + 0 + ], + [ + 1768590000000, + 581.9799999999999, + 0 + ], + [ + 1768593600000, + 581.9999999999999, + 0 + ], + [ + 1768597200000, + 581.99, + 0 + ], + [ + 1768600800000, + 581.99, + 0 + ], + [ + 1768604400000, + 581.99, + 0 + ], + [ + 1768608000000, + 581.9999999999999, + 0 + ], + [ + 1768611600000, + 581.99, + 0 + ], + [ + 1768615200000, + 582.02, + 0 + ], + [ + 1768618800000, + 582.02, + 0 + ], + [ + 1768622400000, + 581.9999999999999, + 0 + ], + [ + 1768626000000, + 581.99, + 0 + ], + [ + 1768629600000, + 581.99, + 0 + ], + [ + 1768633200000, + 581.9699999999999, + 0 + ], + [ + 1768636800000, + 581.9499999999999, + 0 + ], + [ + 1768640400000, + 581.9599999999999, + 0 + ], + [ + 1768644000000, + 581.9999999999999, + 0 + ], + [ + 1768647600000, + 581.9799999999999, + 0 + ], + [ + 1768651200000, + 581.9599999999999, + 0 + ], + [ + 1768654800000, + 581.9399999999999, + 0 + ], + [ + 1768658400000, + 581.93, + 0 + ], + [ + 1768662000000, + 581.93, + 0 + ], + [ + 1768665600000, + 581.9599999999999, + 0 + ], + [ + 1768669200000, + 581.99, + 0 + ], + [ + 1768672800000, + 581.9999999999999, + 0 + ], + [ + 1768676400000, + 582.02, + 0 + ], + [ + 1768680000000, + 582.04, + 0 + ], + [ + 1768683600000, + 582.05, + 0 + ], + [ + 1768687200000, + 582.0699999999999, + 0 + ], + [ + 1768690800000, + 582.0799999999999, + 0 + ], + [ + 1768694400000, + 582.02, + 0 + ], + [ + 1768698000000, + 581.9999999999999, + 0 + ], + [ + 1768701600000, + 581.99, + 0 + ], + [ + 1768705200000, + 581.9399999999999, + 0 + ], + [ + 1768708800000, + 581.92, + 0 + ], + [ + 1768712400000, + 581.9099999999999, + 0 + ], + [ + 1768716000000, + 581.9, + 0 + ], + [ + 1768719600000, + 581.9, + 0 + ], + [ + 1768723200000, + 581.9, + 0 + ], + [ + 1768726800000, + 581.9, + 0 + ], + [ + 1768730400000, + 581.9, + 0 + ], + [ + 1768734000000, + 581.9, + 0 + ], + [ + 1768737600000, + 581.8799999999999, + 0 + ], + [ + 1768741200000, + 581.8699999999999, + 0 + ], + [ + 1768744800000, + 581.86, + 0 + ], + [ + 1768748400000, + 581.86, + 0 + ], + [ + 1768752000000, + 581.8699999999999, + 0 + ], + [ + 1768755600000, + 581.8699999999999, + 0 + ], + [ + 1768759200000, + 581.8799999999999, + 0 + ], + [ + 1768762800000, + 581.9, + 0 + ], + [ + 1768766400000, + 581.9, + 0 + ], + [ + 1768770000000, + 581.89, + 0 + ], + [ + 1768773600000, + 581.8699999999999, + 0 + ], + [ + 1768777200000, + 581.8699999999999, + 0 + ], + [ + 1768780800000, + 581.8499999999999, + 0 + ], + [ + 1768784400000, + 581.8399999999999, + 0 + ], + [ + 1768788000000, + 581.8399999999999, + 0 + ], + [ + 1768791600000, + 581.8499999999999, + 0 + ], + [ + 1768795200000, + 581.8499999999999, + 0 + ], + [ + 1768798800000, + 581.86, + 0 + ], + [ + 1768802400000, + 581.8699999999999, + 0 + ], + [ + 1768806000000, + 581.86, + 0 + ], + [ + 1768809600000, + 581.86, + 0 + ], + [ + 1768813200000, + 581.8499999999999, + 0 + ], + [ + 1768816800000, + 581.8399999999999, + 0 + ], + [ + 1768820400000, + 581.8399999999999, + 0 + ], + [ + 1768824000000, + 581.8399999999999, + 0 + ], + [ + 1768827600000, + 581.8399999999999, + 0 + ], + [ + 1768831200000, + 581.8299999999999, + 0 + ], + [ + 1768834800000, + 581.81, + 0 + ], + [ + 1768838400000, + 581.8, + 0 + ], + [ + 1768842000000, + 581.79, + 0 + ], + [ + 1768845600000, + 581.78, + 0 + ], + [ + 1768849200000, + 581.8, + 0 + ], + [ + 1768852800000, + 581.81, + 0 + ], + [ + 1768856400000, + 581.81, + 0 + ], + [ + 1768860000000, + 581.8, + 0 + ], + [ + 1768863600000, + 581.79, + 0 + ], + [ + 1768867200000, + 581.78, + 0 + ], + [ + 1768870800000, + 581.78, + 0 + ], + [ + 1768874400000, + 581.78, + 0 + ], + [ + 1768878000000, + 581.78, + 0 + ], + [ + 1768881600000, + 581.78, + 0 + ], + [ + 1768885200000, + 581.78, + 0 + ], + [ + 1768888800000, + 581.78, + 0 + ], + [ + 1768892400000, + 581.77, + 0 + ], + [ + 1768896000000, + 581.76, + 0 + ], + [ + 1768899600000, + 581.7499999999999, + 0 + ], + [ + 1768903200000, + 581.7499999999999, + 0 + ], + [ + 1768906800000, + 581.7499999999999, + 0 + ], + [ + 1768910400000, + 581.7299999999999, + 0 + ], + [ + 1768914000000, + 581.7299999999999, + 0 + ], + [ + 1768917600000, + 581.7299999999999, + 0 + ], + [ + 1768921200000, + 581.7199999999999, + 0 + ], + [ + 1768924800000, + 581.7299999999999, + 0 + ], + [ + 1768928400000, + 581.7299999999999, + 0 + ], + [ + 1768932000000, + 581.7199999999999, + 0 + ], + [ + 1768935600000, + 581.7199999999999, + 0 + ], + [ + 1768939200000, + 581.7199999999999, + 0 + ], + [ + 1768942800000, + 581.7099999999999, + 0 + ], + [ + 1768946400000, + 581.7099999999999, + 0 + ], + [ + 1768950000000, + 581.7199999999999, + 0 + ], + [ + 1768953600000, + 581.7199999999999, + 0 + ], + [ + 1768957200000, + 581.7199999999999, + 0 + ], + [ + 1768960800000, + 581.7299999999999, + 0 + ], + [ + 1768964400000, + 581.7199999999999, + 0 + ], + [ + 1768968000000, + 581.7199999999999, + 0 + ], + [ + 1768971600000, + 581.7199999999999, + 0 + ], + [ + 1768975200000, + 581.7299999999999, + 0 + ], + [ + 1768978800000, + 581.7199999999999, + 0 + ], + [ + 1768982400000, + 581.74, + 0 + ], + [ + 1768986000000, + 581.74, + 0 + ], + [ + 1768989600000, + 581.7199999999999, + 0 + ], + [ + 1768993200000, + 581.7199999999999, + 0 + ], + [ + 1768996800000, + 581.7199999999999, + 0 + ], + [ + 1769000400000, + 581.7099999999999, + 0 + ], + [ + 1769004000000, + 581.7099999999999, + 0 + ], + [ + 1769007600000, + 581.7199999999999, + 0 + ], + [ + 1769011200000, + 581.7299999999999, + 0 + ], + [ + 1769014800000, + 581.74, + 0 + ], + [ + 1769018400000, + 581.78, + 0 + ], + [ + 1769022000000, + 581.76, + 0 + ], + [ + 1769025600000, + 581.7499999999999, + 0 + ], + [ + 1769029200000, + 581.7299999999999, + 0 + ], + [ + 1769032800000, + 581.7199999999999, + 0 + ], + [ + 1769036400000, + 581.7099999999999, + 0 + ], + [ + 1769040000000, + 581.7199999999999, + 0 + ], + [ + 1769043600000, + 581.7199999999999, + 0 + ], + [ + 1769047200000, + 581.7199999999999, + 0 + ], + [ + 1769050800000, + 581.7199999999999, + 0 + ], + [ + 1769054400000, + 581.7299999999999, + 0 + ], + [ + 1769058000000, + 581.7299999999999, + 0 + ], + [ + 1769061600000, + 581.7299999999999, + 0 + ], + [ + 1769065200000, + 581.7299999999999, + 0 + ], + [ + 1769068800000, + 581.7299999999999, + 0 + ], + [ + 1769072400000, + 581.7299999999999, + 0 + ], + [ + 1769076000000, + 581.7199999999999, + 0 + ], + [ + 1769079600000, + 581.7199999999999, + 0 + ], + [ + 1769083200000, + 581.7199999999999, + 0 + ], + [ + 1769086800000, + 581.7199999999999, + 0 + ], + [ + 1769090400000, + 581.7199999999999, + 0 + ], + [ + 1769094000000, + 581.7199999999999, + 0 + ], + [ + 1769097600000, + 581.7199999999999, + 0 + ], + [ + 1769101200000, + 581.7199999999999, + 0 + ], + [ + 1769104800000, + 581.7299999999999, + 0 + ], + [ + 1769108400000, + 581.7199999999999, + 0 + ], + [ + 1769112000000, + 581.7199999999999, + 0 + ], + [ + 1769115600000, + 581.7199999999999, + 0 + ], + [ + 1769119200000, + 581.7199999999999, + 0 + ], + [ + 1769122800000, + 581.7199999999999, + 0 + ], + [ + 1769126400000, + 581.7199999999999, + 0 + ], + [ + 1769130000000, + 581.7199999999999, + 0 + ], + [ + 1769133600000, + 581.7099999999999, + 0 + ], + [ + 1769137200000, + 581.7099999999999, + 0 + ], + [ + 1769140800000, + 581.7099999999999, + 0 + ], + [ + 1769144400000, + 581.7099999999999, + 0 + ], + [ + 1769148000000, + 581.7099999999999, + 0 + ], + [ + 1769151600000, + 581.7199999999999, + 0 + ], + [ + 1769155200000, + 581.7199999999999, + 0 + ], + [ + 1769158800000, + 581.7199999999999, + 0 + ], + [ + 1769162400000, + 581.7199999999999, + 0 + ], + [ + 1769166000000, + 581.7199999999999, + 0 + ], + [ + 1769169600000, + 581.7199999999999, + 0 + ], + [ + 1769173200000, + 581.7199999999999, + 0 + ], + [ + 1769176800000, + 581.7099999999999, + 0 + ], + [ + 1769180400000, + 581.7099999999999, + 0 + ], + [ + 1769184000000, + 581.6899999999999, + 0 + ], + [ + 1769187600000, + 581.6899999999999, + 0 + ], + [ + 1769191200000, + 581.6899999999999, + 0 + ], + [ + 1769194800000, + 581.68, + 0 + ], + [ + 1769198400000, + 581.6899999999999, + 0 + ], + [ + 1769202000000, + 581.6899999999999, + 0 + ], + [ + 1769205600000, + 581.6899999999999, + 0 + ], + [ + 1769209200000, + 581.6899999999999, + 0 + ], + [ + 1769212800000, + 581.6599999999999, + 0 + ], + [ + 1769216400000, + 581.6599999999999, + 0 + ], + [ + 1769220000000, + 581.6599999999999, + 0 + ], + [ + 1769223600000, + 581.6599999999999, + 0 + ], + [ + 1769227200000, + 581.64, + 0 + ], + [ + 1769230800000, + 581.68, + 0 + ], + [ + 1769234400000, + 581.68, + 0 + ], + [ + 1769238000000, + 581.6899999999999, + 0 + ], + [ + 1769241600000, + 581.6999999999999, + 0 + ], + [ + 1769245200000, + 581.7099999999999, + 0 + ], + [ + 1769248800000, + 581.6899999999999, + 0 + ], + [ + 1769252400000, + 581.6999999999999, + 0 + ], + [ + 1769256000000, + 581.68, + 0 + ], + [ + 1769259600000, + 581.67, + 0 + ], + [ + 1769263200000, + 581.6599999999999, + 0 + ], + [ + 1769266800000, + 581.65, + 0 + ], + [ + 1769270400000, + 581.6299999999999, + 0 + ], + [ + 1769274000000, + 581.6299999999999, + 0 + ], + [ + 1769277600000, + 581.6299999999999, + 0 + ], + [ + 1769281200000, + 581.6199999999999, + 0 + ], + [ + 1769284800000, + 581.64, + 0 + ], + [ + 1769288400000, + 581.64, + 0 + ], + [ + 1769292000000, + 581.6299999999999, + 0 + ], + [ + 1769295600000, + 581.6199999999999, + 0 + ], + [ + 1769299200000, + 581.61, + 0 + ], + [ + 1769302800000, + 581.5799999999999, + 0 + ], + [ + 1769306400000, + 581.5699999999999, + 0 + ], + [ + 1769310000000, + 581.5699999999999, + 0 + ], + [ + 1769313600000, + 581.5799999999999, + 0 + ], + [ + 1769317200000, + 581.5699999999999, + 0 + ], + [ + 1769320800000, + 581.5699999999999, + 0 + ], + [ + 1769324400000, + 581.5699999999999, + 0 + ], + [ + 1769328000000, + 581.56, + 0 + ], + [ + 1769331600000, + 581.54, + 0 + ], + [ + 1769335200000, + 581.53, + 0 + ], + [ + 1769338800000, + 581.52, + 0 + ], + [ + 1769342400000, + 581.51, + 0 + ], + [ + 1769346000000, + 581.49, + 0 + ], + [ + 1769349600000, + 581.49, + 0 + ], + [ + 1769353200000, + 581.4799999999999, + 0 + ], + [ + 1769356800000, + 581.4599999999999, + 0 + ], + [ + 1769360400000, + 581.4499999999999, + 0 + ], + [ + 1769364000000, + 581.42, + 0 + ], + [ + 1769367600000, + 581.42, + 0 + ], + [ + 1769371200000, + 581.39, + 0 + ], + [ + 1769374800000, + 581.3799999999999, + 0 + ], + [ + 1769378400000, + 581.3699999999999, + 0 + ], + [ + 1769382000000, + 581.36, + 0 + ], + [ + 1769385600000, + 581.3399999999999, + 0 + ], + [ + 1769389200000, + 581.3299999999999, + 0 + ], + [ + 1769392800000, + 581.3199999999999, + 0 + ], + [ + 1769396400000, + 581.3, + 0 + ], + [ + 1769400000000, + 581.27, + 0 + ], + [ + 1769403600000, + 581.26, + 0 + ], + [ + 1769407200000, + 581.2499999999999, + 0 + ], + [ + 1769410800000, + 581.24, + 0 + ], + [ + 1769414400000, + 581.24, + 0 + ], + [ + 1769418000000, + 581.2299999999999, + 0 + ], + [ + 1769421600000, + 581.2099999999999, + 0 + ], + [ + 1769425200000, + 581.2099999999999, + 0 + ], + [ + 1769428800000, + 581.1899999999999, + 0 + ], + [ + 1769432400000, + 581.17, + 0 + ], + [ + 1769436000000, + 581.1599999999999, + 0 + ], + [ + 1769439600000, + 581.15, + 0 + ], + [ + 1769443200000, + 581.1299999999999, + 0 + ], + [ + 1769446800000, + 581.1199999999999, + 0 + ], + [ + 1769450400000, + 581.1299999999999, + 0 + ], + [ + 1769454000000, + 581.1199999999999, + 0 + ], + [ + 1769457600000, + 581.11, + 0 + ], + [ + 1769461200000, + 581.1199999999999, + 0 + ], + [ + 1769464800000, + 581.1199999999999, + 0 + ], + [ + 1769468400000, + 581.0999999999999, + 0 + ], + [ + 1769472000000, + 581.0899999999999, + 0 + ], + [ + 1769475600000, + 581.0899999999999, + 0 + ], + [ + 1769479200000, + 581.0899999999999, + 0 + ], + [ + 1769482800000, + 581.0999999999999, + 0 + ], + [ + 1769486400000, + 581.1199999999999, + 0 + ], + [ + 1769490000000, + 581.1299999999999, + 0 + ], + [ + 1769493600000, + 581.1199999999999, + 0 + ], + [ + 1769497200000, + 581.1199999999999, + 0 + ], + [ + 1769500800000, + 581.1199999999999, + 0 + ], + [ + 1769504400000, + 581.11, + 0 + ], + [ + 1769508000000, + 581.0899999999999, + 0 + ], + [ + 1769511600000, + 581.0899999999999, + 0 + ], + [ + 1769515200000, + 581.0899999999999, + 0 + ], + [ + 1769518800000, + 581.06, + 0 + ], + [ + 1769522400000, + 581.06, + 0 + ], + [ + 1769526000000, + 581.05, + 0 + ], + [ + 1769529600000, + 581.03, + 0 + ], + [ + 1769533200000, + 581.02, + 0 + ], + [ + 1769536800000, + 581.03, + 0 + ], + [ + 1769540400000, + 580.9999999999999, + 0 + ], + [ + 1769544000000, + 580.99, + 0 + ], + [ + 1769547600000, + 580.99, + 0 + ], + [ + 1769551200000, + 580.9999999999999, + 0 + ], + [ + 1769554800000, + 580.9799999999999, + 0 + ], + [ + 1769558400000, + 580.9799999999999, + 0 + ], + [ + 1769562000000, + 580.99, + 0 + ], + [ + 1769565600000, + 580.9699999999999, + 0 + ], + [ + 1769569200000, + 580.9499999999999, + 0 + ], + [ + 1769572800000, + 580.9599999999999, + 0 + ], + [ + 1769576400000, + 580.9599999999999, + 0 + ], + [ + 1769580000000, + 580.9499999999999, + 0 + ], + [ + 1769583600000, + 580.9699999999999, + 0 + ], + [ + 1769587200000, + 580.9699999999999, + 0 + ], + [ + 1769590800000, + 580.9399999999999, + 0 + ], + [ + 1769594400000, + 580.92, + 0 + ], + [ + 1769598000000, + 580.9099999999999, + 0 + ], + [ + 1769601600000, + 580.9, + 0 + ], + [ + 1769605200000, + 580.9, + 0 + ], + [ + 1769608800000, + 580.9, + 0 + ], + [ + 1769612400000, + 580.89, + 0 + ], + [ + 1769616000000, + 580.8699999999999, + 0 + ], + [ + 1769619600000, + 580.86, + 0 + ], + [ + 1769623200000, + 580.86, + 0 + ], + [ + 1769626800000, + 580.8499999999999, + 0 + ], + [ + 1769630400000, + 580.8499999999999, + 0 + ], + [ + 1769634000000, + 580.8499999999999, + 0 + ], + [ + 1769637600000, + 580.8399999999999, + 0 + ], + [ + 1769641200000, + 580.8199999999999, + 0 + ], + [ + 1769644800000, + 580.81, + 0 + ], + [ + 1769648400000, + 580.81, + 0 + ], + [ + 1769652000000, + 580.8199999999999, + 0 + ], + [ + 1769655600000, + 580.8199999999999, + 0 + ], + [ + 1769659200000, + 580.8199999999999, + 0 + ], + [ + 1769662800000, + 580.8199999999999, + 0 + ], + [ + 1769666400000, + 580.8199999999999, + 0 + ], + [ + 1769670000000, + 580.79, + 0 + ], + [ + 1769673600000, + 580.79, + 0 + ], + [ + 1769677200000, + 580.79, + 0 + ], + [ + 1769680800000, + 580.79, + 0 + ], + [ + 1769684400000, + 580.79, + 0 + ], + [ + 1769688000000, + 580.8, + 0 + ], + [ + 1769691600000, + 580.79, + 0 + ], + [ + 1769695200000, + 580.79, + 0 + ], + [ + 1769698800000, + 580.78, + 0 + ], + [ + 1769702400000, + 580.78, + 0 + ], + [ + 1769706000000, + 580.77, + 0 + ], + [ + 1769709600000, + 580.79, + 0 + ], + [ + 1769713200000, + 580.8199999999999, + 0 + ], + [ + 1769716800000, + 580.8199999999999, + 0 + ], + [ + 1769720400000, + 580.8199999999999, + 0 + ], + [ + 1769724000000, + 580.8199999999999, + 0 + ], + [ + 1769727600000, + 580.8, + 0 + ], + [ + 1769731200000, + 580.8199999999999, + 0 + ], + [ + 1769734800000, + 580.8199999999999, + 0 + ], + [ + 1769738400000, + 580.81, + 0 + ], + [ + 1769742000000, + 580.8199999999999, + 0 + ], + [ + 1769745600000, + 580.8199999999999, + 0 + ], + [ + 1769749200000, + 580.79, + 0 + ], + [ + 1769752800000, + 580.79, + 0 + ], + [ + 1769756400000, + 580.79, + 0 + ], + [ + 1769760000000, + 580.78, + 0 + ], + [ + 1769763600000, + 580.78, + 0 + ], + [ + 1769767200000, + 580.8, + 0 + ], + [ + 1769770800000, + 580.8, + 0 + ], + [ + 1769774400000, + 580.79, + 0 + ], + [ + 1769778000000, + 580.78, + 0 + ], + [ + 1769781600000, + 580.77, + 0 + ], + [ + 1769785200000, + 580.7499999999999, + 0 + ], + [ + 1769788800000, + 580.7299999999999, + 0 + ], + [ + 1769792400000, + 580.7499999999999, + 0 + ], + [ + 1769796000000, + 580.74, + 0 + ], + [ + 1769799600000, + 580.7299999999999, + 0 + ], + [ + 1769803200000, + 580.7499999999999, + 0 + ], + [ + 1769806800000, + 580.7499999999999, + 0 + ], + [ + 1769810400000, + 580.7299999999999, + 0 + ], + [ + 1769814000000, + 580.74, + 0 + ], + [ + 1769817600000, + 580.7299999999999, + 0 + ], + [ + 1769821200000, + 580.7199999999999, + 0 + ], + [ + 1769824800000, + 580.7199999999999, + 0 + ], + [ + 1769828400000, + 580.7299999999999, + 0 + ], + [ + 1769832000000, + 580.7099999999999, + 0 + ], + [ + 1769835600000, + 580.7099999999999, + 0 + ], + [ + 1769839200000, + 580.7099999999999, + 0 + ], + [ + 1769842800000, + 580.6999999999999, + 0 + ], + [ + 1769846400000, + 580.68, + 0 + ], + [ + 1769850000000, + 580.67, + 0 + ], + [ + 1769853600000, + 580.67, + 0 + ], + [ + 1769857200000, + 580.6899999999999, + 0 + ], + [ + 1769860800000, + 580.68, + 0 + ], + [ + 1769864400000, + 580.68, + 0 + ], + [ + 1769868000000, + 580.68, + 0 + ], + [ + 1769871600000, + 580.68, + 0 + ], + [ + 1769875200000, + 580.6899999999999, + 0 + ], + [ + 1769878800000, + 580.6899999999999, + 0 + ], + [ + 1769882400000, + 580.6899999999999, + 0 + ], + [ + 1769886000000, + 580.6899999999999, + 0 + ], + [ + 1769889600000, + 580.6999999999999, + 0 + ], + [ + 1769893200000, + 580.68, + 0 + ], + [ + 1769896800000, + 580.67, + 0 + ], + [ + 1769900400000, + 580.68, + 0 + ], + [ + 1769904000000, + 580.65, + 0 + ], + [ + 1769907600000, + 580.64, + 0 + ], + [ + 1769911200000, + 580.65, + 0 + ], + [ + 1769914800000, + 580.6599999999999, + 0 + ], + [ + 1769918400000, + 580.64, + 0 + ], + [ + 1769922000000, + 580.6599999999999, + 0 + ], + [ + 1769925600000, + 580.65, + 0 + ], + [ + 1769929200000, + 580.64, + 0 + ], + [ + 1769932800000, + 580.64, + 0 + ], + [ + 1769936400000, + 580.6299999999999, + 0 + ], + [ + 1769940000000, + 580.61, + 0 + ], + [ + 1769943600000, + 580.61, + 0 + ], + [ + 1769947200000, + 580.61, + 0 + ], + [ + 1769950800000, + 580.61, + 0 + ], + [ + 1769954400000, + 580.5999999999999, + 0 + ], + [ + 1769958000000, + 580.5999999999999, + 0 + ], + [ + 1769961600000, + 580.5799999999999, + 0 + ], + [ + 1769965200000, + 580.61, + 0 + ], + [ + 1769968800000, + 580.61, + 0 + ], + [ + 1769972400000, + 580.5999999999999, + 0 + ], + [ + 1769976000000, + 580.5999999999999, + 0 + ], + [ + 1769979600000, + 580.5999999999999, + 0 + ], + [ + 1769983200000, + 580.5799999999999, + 0 + ], + [ + 1769986800000, + 580.5699999999999, + 0 + ], + [ + 1769990400000, + 580.5699999999999, + 0 + ], + [ + 1769994000000, + 580.5699999999999, + 0 + ], + [ + 1769997600000, + 580.56, + 0 + ], + [ + 1770001200000, + 580.56, + 0 + ], + [ + 1770004800000, + 580.56, + 0 + ], + [ + 1770008400000, + 580.5699999999999, + 0 + ], + [ + 1770012000000, + 580.5699999999999, + 0 + ], + [ + 1770015600000, + 580.5699999999999, + 0 + ], + [ + 1770019200000, + 580.5699999999999, + 0 + ], + [ + 1770022800000, + 580.5699999999999, + 0 + ], + [ + 1770026400000, + 580.54, + 0 + ], + [ + 1770030000000, + 580.52, + 0 + ], + [ + 1770033600000, + 580.5099999999999, + 0 + ], + [ + 1770037200000, + 580.4999999999999, + 0 + ], + [ + 1770040800000, + 580.49, + 0 + ], + [ + 1770044400000, + 580.49, + 0 + ], + [ + 1770048000000, + 580.4799999999999, + 0 + ], + [ + 1770051600000, + 580.4799999999999, + 0 + ], + [ + 1770055200000, + 580.49, + 0 + ], + [ + 1770058800000, + 580.49, + 0 + ], + [ + 1770062400000, + 580.4799999999999, + 0 + ], + [ + 1770066000000, + 580.49, + 0 + ], + [ + 1770069600000, + 580.49, + 0 + ], + [ + 1770073200000, + 580.4699999999999, + 0 + ], + [ + 1770076800000, + 580.4699999999999, + 0 + ], + [ + 1770080400000, + 580.4699999999999, + 0 + ], + [ + 1770084000000, + 580.4699999999999, + 0 + ], + [ + 1770087600000, + 580.4599999999999, + 0 + ], + [ + 1770091200000, + 580.4599999999999, + 0 + ], + [ + 1770094800000, + 580.4699999999999, + 0 + ], + [ + 1770098400000, + 580.49, + 0 + ], + [ + 1770102000000, + 580.4999999999999, + 0 + ], + [ + 1770105600000, + 580.49, + 0 + ], + [ + 1770109200000, + 580.49, + 0 + ], + [ + 1770112800000, + 580.49, + 0 + ], + [ + 1770116400000, + 580.4799999999999, + 0 + ], + [ + 1770120000000, + 580.4799999999999, + 0 + ], + [ + 1770123600000, + 580.49, + 0 + ], + [ + 1770127200000, + 580.52, + 0 + ], + [ + 1770130800000, + 580.52, + 0 + ], + [ + 1770134400000, + 580.52, + 0 + ], + [ + 1770138000000, + 580.5099999999999, + 0 + ], + [ + 1770141600000, + 580.5099999999999, + 0 + ], + [ + 1770145200000, + 580.5099999999999, + 0 + ], + [ + 1770148800000, + 580.5099999999999, + 0 + ], + [ + 1770152400000, + 580.5099999999999, + 0 + ], + [ + 1770156000000, + 580.5099999999999, + 0 + ], + [ + 1770159600000, + 580.5099999999999, + 0 + ], + [ + 1770163200000, + 580.5099999999999, + 0 + ], + [ + 1770166800000, + 580.49, + 0 + ], + [ + 1770170400000, + 580.49, + 0 + ], + [ + 1770174000000, + 580.4999999999999, + 0 + ], + [ + 1770177600000, + 580.5099999999999, + 0 + ], + [ + 1770181200000, + 580.5099999999999, + 0 + ], + [ + 1770184800000, + 580.5099999999999, + 0 + ], + [ + 1770188400000, + 580.5099999999999, + 0 + ], + [ + 1770192000000, + 580.5099999999999, + 0 + ], + [ + 1770195600000, + 580.5099999999999, + 0 + ], + [ + 1770199200000, + 580.5099999999999, + 0 + ], + [ + 1770202800000, + 580.4999999999999, + 0 + ], + [ + 1770206400000, + 580.5099999999999, + 0 + ], + [ + 1770210000000, + 580.5099999999999, + 0 + ], + [ + 1770213600000, + 580.52, + 0 + ], + [ + 1770217200000, + 580.54, + 0 + ], + [ + 1770220800000, + 580.54, + 0 + ], + [ + 1770224400000, + 580.53, + 0 + ], + [ + 1770228000000, + 580.53, + 0 + ], + [ + 1770231600000, + 580.53, + 0 + ], + [ + 1770235200000, + 580.52, + 0 + ], + [ + 1770238800000, + 580.5099999999999, + 0 + ], + [ + 1770242400000, + 580.5099999999999, + 0 + ], + [ + 1770246000000, + 580.52, + 0 + ], + [ + 1770249600000, + 580.53, + 0 + ], + [ + 1770253200000, + 580.52, + 0 + ], + [ + 1770256800000, + 580.52, + 0 + ], + [ + 1770260400000, + 580.53, + 0 + ], + [ + 1770264000000, + 580.54, + 0 + ], + [ + 1770267600000, + 580.54, + 0 + ], + [ + 1770271200000, + 580.54, + 0 + ], + [ + 1770274800000, + 580.54, + 0 + ], + [ + 1770278400000, + 580.53, + 0 + ], + [ + 1770282000000, + 580.53, + 0 + ], + [ + 1770285600000, + 580.53, + 0 + ], + [ + 1770289200000, + 580.52, + 0 + ], + [ + 1770292800000, + 580.52, + 0 + ], + [ + 1770296400000, + 580.53, + 0 + ], + [ + 1770300000000, + 580.53, + 0 + ], + [ + 1770303600000, + 580.53, + 0 + ], + [ + 1770307200000, + 580.54, + 0 + ], + [ + 1770310800000, + 580.54, + 0 + ], + [ + 1770314400000, + 580.54, + 0 + ], + [ + 1770318000000, + 580.54, + 0 + ], + [ + 1770321600000, + 580.54, + 0 + ], + [ + 1770325200000, + 580.55, + 0 + ], + [ + 1770328800000, + 580.5699999999999, + 0 + ], + [ + 1770332400000, + 580.5699999999999, + 0 + ], + [ + 1770336000000, + 580.56, + 0 + ], + [ + 1770339600000, + 580.55, + 0 + ], + [ + 1770343200000, + 580.54, + 0 + ], + [ + 1770346800000, + 580.53, + 0 + ], + [ + 1770350400000, + 580.52, + 0 + ], + [ + 1770354000000, + 580.54, + 0 + ], + [ + 1770357600000, + 580.55, + 0 + ], + [ + 1770361200000, + 580.56, + 0 + ], + [ + 1770364800000, + 580.56, + 0 + ], + [ + 1770368400000, + 580.56, + 0 + ], + [ + 1770372000000, + 580.56, + 0 + ], + [ + 1770375600000, + 580.54, + 0 + ], + [ + 1770379200000, + 580.54, + 0 + ], + [ + 1770382800000, + 580.54, + 0 + ], + [ + 1770386400000, + 580.55, + 0 + ], + [ + 1770390000000, + 580.55, + 0 + ], + [ + 1770393600000, + 580.5699999999999, + 0 + ], + [ + 1770397200000, + 580.56, + 0 + ], + [ + 1770400800000, + 580.55, + 0 + ], + [ + 1770404400000, + 580.5699999999999, + 0 + ], + [ + 1770408000000, + 580.5699999999999, + 0 + ], + [ + 1770411600000, + 580.55, + 0 + ], + [ + 1770415200000, + 580.56, + 0 + ], + [ + 1770418800000, + 580.55, + 0 + ], + [ + 1770422400000, + 580.54, + 0 + ], + [ + 1770426000000, + 580.54, + 0 + ], + [ + 1770429600000, + 580.54, + 0 + ], + [ + 1770433200000, + 580.54, + 0 + ], + [ + 1770436800000, + 580.55, + 0 + ], + [ + 1770440400000, + 580.5699999999999, + 0 + ], + [ + 1770444000000, + 580.5699999999999, + 0 + ], + [ + 1770447600000, + 580.55, + 0 + ], + [ + 1770451200000, + 580.56, + 0 + ], + [ + 1770454800000, + 580.56, + 0 + ], + [ + 1770458400000, + 580.54, + 0 + ], + [ + 1770462000000, + 580.55, + 0 + ], + [ + 1770465600000, + 580.5699999999999, + 0 + ], + [ + 1770469200000, + 580.56, + 0 + ], + [ + 1770472800000, + 580.56, + 0 + ], + [ + 1770476400000, + 580.56, + 0 + ], + [ + 1770480000000, + 580.5699999999999, + 0 + ], + [ + 1770483600000, + 580.55, + 0 + ], + [ + 1770487200000, + 580.56, + 0 + ], + [ + 1770490800000, + 580.5699999999999, + 0 + ], + [ + 1770494400000, + 580.5699999999999, + 0 + ], + [ + 1770498000000, + 580.5699999999999, + 0 + ], + [ + 1770501600000, + 580.5699999999999, + 0 + ], + [ + 1770505200000, + 580.5699999999999, + 0 + ], + [ + 1770508800000, + 580.5699999999999, + 0 + ], + [ + 1770512400000, + 580.56, + 0 + ], + [ + 1770516000000, + 580.5699999999999, + 0 + ], + [ + 1770519600000, + 580.5699999999999, + 0 + ], + [ + 1770523200000, + 580.5699999999999, + 0 + ], + [ + 1770526800000, + 580.5699999999999, + 0 + ], + [ + 1770530400000, + 580.5699999999999, + 0 + ], + [ + 1770534000000, + 580.5699999999999, + 0 + ], + [ + 1770537600000, + 580.5699999999999, + 0 + ], + [ + 1770541200000, + 580.5699999999999, + 0 + ], + [ + 1770544800000, + 580.5699999999999, + 0 + ], + [ + 1770548400000, + 580.5699999999999, + 0 + ], + [ + 1770552000000, + 580.5699999999999, + 0 + ], + [ + 1770555600000, + 580.5699999999999, + 0 + ], + [ + 1770559200000, + 580.5799999999999, + 0 + ], + [ + 1770562800000, + 580.5999999999999, + 0 + ], + [ + 1770566400000, + 580.5899999999999, + 0 + ], + [ + 1770570000000, + 580.56, + 0 + ], + [ + 1770573600000, + 580.5799999999999, + 0 + ], + [ + 1770577200000, + 580.5999999999999, + 0 + ], + [ + 1770580800000, + 580.5999999999999, + 0 + ], + [ + 1770584400000, + 580.5899999999999, + 0 + ], + [ + 1770588000000, + 580.61, + 0 + ], + [ + 1770591600000, + 580.5899999999999, + 0 + ], + [ + 1770595200000, + 580.5799999999999, + 0 + ], + [ + 1770598800000, + 580.5699999999999, + 0 + ], + [ + 1770602400000, + 580.55, + 0 + ], + [ + 1770606000000, + 580.5799999999999, + 0 + ], + [ + 1770609600000, + 580.5799999999999, + 0 + ], + [ + 1770613200000, + 580.5699999999999, + 0 + ], + [ + 1770616800000, + 580.5899999999999, + 0 + ], + [ + 1770620400000, + 580.5999999999999, + 0 + ], + [ + 1770624000000, + 580.5799999999999, + 0 + ], + [ + 1770627600000, + 580.5699999999999, + 0 + ], + [ + 1770631200000, + 580.5799999999999, + 0 + ], + [ + 1770634800000, + 580.5699999999999, + 0 + ], + [ + 1770638400000, + 580.5699999999999, + 0 + ], + [ + 1770642000000, + 580.5899999999999, + 0 + ], + [ + 1770645600000, + 580.5899999999999, + 0 + ], + [ + 1770649200000, + 580.5899999999999, + 0 + ], + [ + 1770652800000, + 580.5999999999999, + 0 + ], + [ + 1770656400000, + 580.5999999999999, + 0 + ], + [ + 1770660000000, + 580.5899999999999, + 0 + ], + [ + 1770663600000, + 580.5999999999999, + 0 + ], + [ + 1770667200000, + 580.5999999999999, + 0 + ], + [ + 1770670800000, + 580.5899999999999, + 0 + ], + [ + 1770674400000, + 580.5999999999999, + 0 + ], + [ + 1770678000000, + 580.5999999999999, + 0 + ], + [ + 1770681600000, + 580.5999999999999, + 0 + ], + [ + 1770685200000, + 580.5999999999999, + 0 + ], + [ + 1770688800000, + 580.5999999999999, + 0 + ], + [ + 1770692400000, + 580.5999999999999, + 0 + ], + [ + 1770696000000, + 580.5999999999999, + 0 + ], + [ + 1770699600000, + 580.5999999999999, + 0 + ], + [ + 1770703200000, + 580.5999999999999, + 0 + ], + [ + 1770706800000, + 580.5899999999999, + 0 + ], + [ + 1770710400000, + 580.5999999999999, + 0 + ], + [ + 1770714000000, + 580.5999999999999, + 0 + ], + [ + 1770717600000, + 580.61, + 0 + ], + [ + 1770721200000, + 580.6299999999999, + 0 + ], + [ + 1770724800000, + 580.6299999999999, + 0 + ], + [ + 1770728400000, + 580.64, + 0 + ], + [ + 1770732000000, + 580.65, + 0 + ], + [ + 1770735600000, + 580.65, + 0 + ], + [ + 1770739200000, + 580.65, + 0 + ], + [ + 1770742800000, + 580.6599999999999, + 0 + ], + [ + 1770746400000, + 580.6599999999999, + 0 + ], + [ + 1770750000000, + 580.6599999999999, + 0 + ], + [ + 1770753600000, + 580.65, + 0 + ], + [ + 1770757200000, + 580.6599999999999, + 0 + ], + [ + 1770760800000, + 580.67, + 0 + ], + [ + 1770764400000, + 580.6599999999999, + 0 + ], + [ + 1770768000000, + 580.6599999999999, + 0 + ], + [ + 1770771600000, + 580.6599999999999, + 0 + ], + [ + 1770775200000, + 580.6299999999999, + 0 + ], + [ + 1770778800000, + 580.6299999999999, + 0 + ], + [ + 1770782400000, + 580.6299999999999, + 0 + ], + [ + 1770786000000, + 580.6299999999999, + 0 + ], + [ + 1770789600000, + 580.64, + 0 + ], + [ + 1770793200000, + 580.6599999999999, + 0 + ], + [ + 1770796800000, + 580.65, + 0 + ], + [ + 1770800400000, + 580.6299999999999, + 0 + ], + [ + 1770804000000, + 580.64, + 0 + ], + [ + 1770807600000, + 580.6299999999999, + 0 + ], + [ + 1770811200000, + 580.6199999999999, + 0 + ], + [ + 1770814800000, + 580.5999999999999, + 0 + ], + [ + 1770818400000, + 580.5999999999999, + 0 + ], + [ + 1770822000000, + 580.5999999999999, + 0 + ], + [ + 1770825600000, + 580.5999999999999, + 0 + ], + [ + 1770829200000, + 580.5999999999999, + 0 + ], + [ + 1770832800000, + 580.61, + 0 + ], + [ + 1770836400000, + 580.61, + 0 + ], + [ + 1770840000000, + 580.61, + 0 + ], + [ + 1770843600000, + 580.5999999999999, + 0 + ], + [ + 1770847200000, + 580.5999999999999, + 0 + ], + [ + 1770850800000, + 580.5999999999999, + 0 + ], + [ + 1770854400000, + 580.5999999999999, + 0 + ], + [ + 1770858000000, + 580.5999999999999, + 0 + ], + [ + 1770861600000, + 580.61, + 0 + ], + [ + 1770865200000, + 580.61, + 0 + ], + [ + 1770868800000, + 580.5999999999999, + 0 + ], + [ + 1770872400000, + 580.5999999999999, + 0 + ], + [ + 1770876000000, + 580.5999999999999, + 0 + ], + [ + 1770879600000, + 580.5999999999999, + 0 + ], + [ + 1770883200000, + 580.5999999999999, + 0 + ], + [ + 1770886800000, + 580.5999999999999, + 0 + ], + [ + 1770890400000, + 580.5999999999999, + 0 + ], + [ + 1770894000000, + 580.5999999999999, + 0 + ], + [ + 1770897600000, + 580.5999999999999, + 0 + ], + [ + 1770901200000, + 580.5999999999999, + 0 + ], + [ + 1770904800000, + 580.5999999999999, + 0 + ], + [ + 1770908400000, + 580.5999999999999, + 0 + ], + [ + 1770912000000, + 580.5999999999999, + 0 + ], + [ + 1770915600000, + 580.5999999999999, + 0 + ], + [ + 1770919200000, + 580.61, + 0 + ], + [ + 1770922800000, + 580.6199999999999, + 0 + ], + [ + 1770926400000, + 580.6199999999999, + 0 + ], + [ + 1770930000000, + 580.6199999999999, + 0 + ], + [ + 1770933600000, + 580.61, + 0 + ], + [ + 1770937200000, + 580.61, + 0 + ], + [ + 1770940800000, + 580.61, + 0 + ], + [ + 1770944400000, + 580.61, + 0 + ], + [ + 1770948000000, + 580.6199999999999, + 0 + ], + [ + 1770951600000, + 580.61, + 0 + ], + [ + 1770955200000, + 580.5999999999999, + 0 + ], + [ + 1770958800000, + 580.5999999999999, + 0 + ], + [ + 1770962400000, + 580.5999999999999, + 0 + ], + [ + 1770966000000, + 580.5999999999999, + 0 + ], + [ + 1770969600000, + 580.5999999999999, + 0 + ], + [ + 1770973200000, + 580.61, + 0 + ], + [ + 1770976800000, + 580.61, + 0 + ], + [ + 1770980400000, + 580.61, + 0 + ], + [ + 1770984000000, + 580.61, + 0 + ], + [ + 1770987600000, + 580.5999999999999, + 0 + ], + [ + 1770991200000, + 580.5699999999999, + 0 + ], + [ + 1770994800000, + 580.5699999999999, + 0 + ], + [ + 1770998400000, + 580.5999999999999, + 0 + ], + [ + 1771002000000, + 580.5899999999999, + 0 + ], + [ + 1771005600000, + 580.5899999999999, + 0 + ], + [ + 1771009200000, + 580.61, + 0 + ], + [ + 1771012800000, + 580.5999999999999, + 0 + ], + [ + 1771016400000, + 580.5899999999999, + 0 + ], + [ + 1771020000000, + 580.5999999999999, + 0 + ], + [ + 1771023600000, + 580.5999999999999, + 0 + ], + [ + 1771027200000, + 580.5999999999999, + 0 + ], + [ + 1771030800000, + 580.61, + 0 + ], + [ + 1771034400000, + 580.6199999999999, + 0 + ], + [ + 1771038000000, + 580.6199999999999, + 0 + ], + [ + 1771041600000, + 580.6299999999999, + 0 + ], + [ + 1771045200000, + 580.6199999999999, + 0 + ], + [ + 1771048800000, + 580.6199999999999, + 0 + ], + [ + 1771052400000, + 580.61, + 0 + ], + [ + 1771056000000, + 580.61, + 0 + ], + [ + 1771059600000, + 580.5999999999999, + 0 + ], + [ + 1771063200000, + 580.5999999999999, + 0 + ], + [ + 1771066800000, + 580.61, + 0 + ], + [ + 1771070400000, + 580.6299999999999, + 0 + ], + [ + 1771074000000, + 580.64, + 0 + ], + [ + 1771077600000, + 580.6899999999999, + 0 + ], + [ + 1771081200000, + 580.7299999999999, + 0 + ], + [ + 1771084800000, + 580.8, + 0 + ], + [ + 1771088400000, + 580.78, + 0 + ], + [ + 1771092000000, + 580.79, + 0 + ], + [ + 1771095600000, + 580.78, + 0 + ], + [ + 1771099200000, + 580.8299999999999, + 0 + ], + [ + 1771102800000, + 580.86, + 0 + ], + [ + 1771106400000, + 580.9, + 0 + ], + [ + 1771110000000, + 580.9, + 0 + ], + [ + 1771113600000, + 580.92, + 0 + ], + [ + 1771117200000, + 580.93, + 0 + ], + [ + 1771120800000, + 580.92, + 0 + ], + [ + 1771124400000, + 580.92, + 0 + ], + [ + 1771128000000, + 580.9499999999999, + 0 + ], + [ + 1771131600000, + 580.9399999999999, + 0 + ], + [ + 1771135200000, + 580.9599999999999, + 0 + ], + [ + 1771138800000, + 580.9699999999999, + 0 + ], + [ + 1771142400000, + 580.9999999999999, + 0 + ], + [ + 1771146000000, + 580.9999999999999, + 0 + ], + [ + 1771149600000, + 581.02, + 0 + ], + [ + 1771153200000, + 580.99, + 0 + ], + [ + 1771156800000, + 580.9999999999999, + 0 + ], + [ + 1771160400000, + 580.9999999999999, + 0 + ], + [ + 1771164000000, + 580.9999999999999, + 0 + ], + [ + 1771167600000, + 581.0099999999999, + 0 + ], + [ + 1771171200000, + 581.0099999999999, + 0 + ], + [ + 1771174800000, + 581.0099999999999, + 0 + ], + [ + 1771178400000, + 580.9999999999999, + 0 + ], + [ + 1771182000000, + 580.9999999999999, + 0 + ], + [ + 1771185600000, + 581.0099999999999, + 0 + ], + [ + 1771189200000, + 581.02, + 0 + ], + [ + 1771192800000, + 581.02, + 0 + ], + [ + 1771196400000, + 581.03, + 0 + ], + [ + 1771200000000, + 581.04, + 0 + ], + [ + 1771203600000, + 581.05, + 0 + ], + [ + 1771207200000, + 581.05, + 0 + ], + [ + 1771210800000, + 581.05, + 0 + ], + [ + 1771214400000, + 581.05, + 0 + ], + [ + 1771218000000, + 581.05, + 0 + ], + [ + 1771221600000, + 581.05, + 0 + ], + [ + 1771225200000, + 581.06, + 0 + ], + [ + 1771228800000, + 581.06, + 0 + ], + [ + 1771232400000, + 581.06, + 0 + ], + [ + 1771236000000, + 581.06, + 0 + ], + [ + 1771239600000, + 581.06, + 0 + ], + [ + 1771243200000, + 581.0699999999999, + 0 + ], + [ + 1771246800000, + 581.0699999999999, + 0 + ], + [ + 1771250400000, + 581.0799999999999, + 0 + ], + [ + 1771254000000, + 581.0699999999999, + 0 + ], + [ + 1771257600000, + 581.0799999999999, + 0 + ], + [ + 1771261200000, + 581.0799999999999, + 0 + ], + [ + 1771264800000, + 581.0899999999999, + 0 + ], + [ + 1771268400000, + 581.0899999999999, + 0 + ], + [ + 1771272000000, + 581.0999999999999, + 0 + ], + [ + 1771275600000, + 581.1199999999999, + 0 + ], + [ + 1771279200000, + 581.1199999999999, + 0 + ], + [ + 1771282800000, + 581.11, + 0 + ], + [ + 1771286400000, + 581.11, + 0 + ], + [ + 1771290000000, + 581.11, + 0 + ], + [ + 1771293600000, + 581.0999999999999, + 0 + ], + [ + 1771297200000, + 581.11, + 0 + ], + [ + 1771300800000, + 581.11, + 0 + ], + [ + 1771304400000, + 581.1199999999999, + 0 + ], + [ + 1771308000000, + 581.1199999999999, + 0 + ], + [ + 1771311600000, + 581.1199999999999, + 0 + ], + [ + 1771315200000, + 581.11, + 0 + ], + [ + 1771318800000, + 581.11, + 0 + ], + [ + 1771322400000, + 581.11, + 0 + ], + [ + 1771326000000, + 581.1199999999999, + 0 + ], + [ + 1771329600000, + 581.1199999999999, + 0 + ], + [ + 1771333200000, + 581.1299999999999, + 0 + ], + [ + 1771336800000, + 581.15, + 0 + ], + [ + 1771340400000, + 581.15, + 0 + ], + [ + 1771344000000, + 581.15, + 0 + ], + [ + 1771347600000, + 581.17, + 0 + ], + [ + 1771351200000, + 581.17, + 0 + ], + [ + 1771354800000, + 581.18, + 0 + ], + [ + 1771358400000, + 581.17, + 0 + ], + [ + 1771362000000, + 581.18, + 0 + ], + [ + 1771365600000, + 581.1599999999999, + 0 + ], + [ + 1771369200000, + 581.18, + 0 + ], + [ + 1771372800000, + 581.1999999999999, + 0 + ], + [ + 1771376400000, + 581.18, + 0 + ], + [ + 1771380000000, + 581.18, + 0 + ], + [ + 1771383600000, + 581.1999999999999, + 0 + ], + [ + 1771387200000, + 581.1899999999999, + 0 + ], + [ + 1771390800000, + 581.2099999999999, + 0 + ], + [ + 1771394400000, + 581.26, + 0 + ], + [ + 1771398000000, + 581.24, + 0 + ], + [ + 1771401600000, + 581.2199999999999, + 0 + ], + [ + 1771405200000, + 581.2099999999999, + 0 + ], + [ + 1771408800000, + 581.1999999999999, + 0 + ], + [ + 1771412400000, + 581.17, + 0 + ], + [ + 1771416000000, + 581.18, + 0 + ], + [ + 1771419600000, + 581.1899999999999, + 0 + ], + [ + 1771423200000, + 581.1999999999999, + 0 + ], + [ + 1771426800000, + 581.1999999999999, + 0 + ], + [ + 1771430400000, + 581.2099999999999, + 0 + ], + [ + 1771434000000, + 581.1999999999999, + 0 + ], + [ + 1771437600000, + 581.1999999999999, + 0 + ], + [ + 1771441200000, + 581.1999999999999, + 0 + ], + [ + 1771444800000, + 581.1999999999999, + 0 + ], + [ + 1771448400000, + 581.1999999999999, + 0 + ], + [ + 1771452000000, + 581.2199999999999, + 0 + ], + [ + 1771455600000, + 581.2299999999999, + 0 + ], + [ + 1771459200000, + 581.2199999999999, + 0 + ], + [ + 1771462800000, + 581.2099999999999, + 0 + ], + [ + 1771466400000, + 581.2099999999999, + 0 + ], + [ + 1771470000000, + 581.1999999999999, + 0 + ], + [ + 1771473600000, + 581.1999999999999, + 0 + ], + [ + 1771477200000, + 581.2099999999999, + 0 + ], + [ + 1771480800000, + 581.2099999999999, + 0 + ], + [ + 1771484400000, + 581.2099999999999, + 0 + ], + [ + 1771488000000, + 581.2199999999999, + 0 + ], + [ + 1771491600000, + 581.2199999999999, + 0 + ], + [ + 1771495200000, + 581.2199999999999, + 0 + ], + [ + 1771498800000, + 581.2299999999999, + 0 + ], + [ + 1771502400000, + 581.2499999999999, + 0 + ], + [ + 1771506000000, + 581.26, + 0 + ], + [ + 1771509600000, + 581.27, + 0 + ], + [ + 1771513200000, + 581.3, + 0 + ], + [ + 1771516800000, + 581.3, + 0 + ], + [ + 1771520400000, + 581.29, + 0 + ], + [ + 1771524000000, + 581.3299999999999, + 0 + ], + [ + 1771527600000, + 581.3319999999999, + -2147481213 + ], + [ + 1771531200000, + 581.334, + -2147481213 + ], + [ + 1771534800000, + 581.3359999999999, + -2147481213 + ], + [ + 1771538400000, + 581.338, + -2147481213 + ], + [ + 1771542000000, + 581.3399999999999, + 0 + ], + [ + 1771545600000, + 581.3399999999999, + 0 + ], + [ + 1771549200000, + 581.3199999999999, + 0 + ], + [ + 1771552800000, + 581.27, + 0 + ], + [ + 1771556400000, + 581.26, + 0 + ], + [ + 1771560000000, + 581.2299999999999, + 0 + ], + [ + 1771563600000, + 581.2199999999999, + 0 + ], + [ + 1771567200000, + 581.2199999999999, + 0 + ], + [ + 1771570800000, + 581.24, + 0 + ], + [ + 1771574400000, + 581.24, + 0 + ], + [ + 1771578000000, + 581.2299999999999, + 0 + ], + [ + 1771581600000, + 581.2299999999999, + 0 + ], + [ + 1771585200000, + 581.2299999999999, + 0 + ], + [ + 1771588800000, + 581.2199999999999, + 0 + ], + [ + 1771592400000, + 581.1999999999999, + 0 + ], + [ + 1771596000000, + 581.1899999999999, + 0 + ], + [ + 1771599600000, + 581.1899999999999, + 0 + ], + [ + 1771603200000, + 581.18, + 0 + ], + [ + 1771606800000, + 581.1999999999999, + 0 + ], + [ + 1771610400000, + 581.1999999999999, + 0 + ], + [ + 1771614000000, + 581.1899999999999, + 0 + ], + [ + 1771617600000, + 581.1899999999999, + 0 + ], + [ + 1771621200000, + 581.1899999999999, + 0 + ], + [ + 1771624800000, + 581.17, + 0 + ], + [ + 1771628400000, + 581.1599999999999, + 0 + ], + [ + 1771632000000, + 581.17, + 0 + ], + [ + 1771635600000, + 581.17, + 0 + ], + [ + 1771639200000, + 581.18, + 0 + ], + [ + 1771642800000, + 581.1999999999999, + 0 + ], + [ + 1771646400000, + 581.2099999999999, + 0 + ], + [ + 1771650000000, + 581.1899999999999, + 0 + ], + [ + 1771653600000, + 581.1899999999999, + 0 + ], + [ + 1771657200000, + 581.1899999999999, + 0 + ], + [ + 1771660800000, + 581.1999999999999, + 0 + ], + [ + 1771664400000, + 581.1899999999999, + 0 + ], + [ + 1771668000000, + 581.1999999999999, + 0 + ], + [ + 1771671600000, + 581.1999999999999, + 0 + ], + [ + 1771675200000, + 581.1999999999999, + 0 + ], + [ + 1771678800000, + 581.1999999999999, + 0 + ], + [ + 1771682400000, + 581.2099999999999, + 0 + ], + [ + 1771686000000, + 581.2199999999999, + 0 + ], + [ + 1771689600000, + 581.2299999999999, + 0 + ], + [ + 1771693200000, + 581.24, + 0 + ], + [ + 1771696800000, + 581.2499999999999, + 0 + ], + [ + 1771700400000, + 581.2299999999999, + 0 + ], + [ + 1771704000000, + 581.2299999999999, + 0 + ], + [ + 1771707600000, + 581.2199999999999, + 0 + ], + [ + 1771711200000, + 581.2099999999999, + 0 + ], + [ + 1771714800000, + 581.2099999999999, + 0 + ], + [ + 1771718400000, + 581.2099999999999, + 0 + ], + [ + 1771722000000, + 581.1999999999999, + 0 + ], + [ + 1771725600000, + 581.1999999999999, + 0 + ], + [ + 1771729200000, + 581.1999999999999, + 0 + ], + [ + 1771732800000, + 581.1999999999999, + 0 + ], + [ + 1771736400000, + 581.2099999999999, + 0 + ], + [ + 1771740000000, + 581.2299999999999, + 0 + ], + [ + 1771743600000, + 581.2299999999999, + 0 + ], + [ + 1771747200000, + 581.2199999999999, + 0 + ], + [ + 1771750800000, + 581.2299999999999, + 0 + ], + [ + 1771754400000, + 581.2299999999999, + 0 + ], + [ + 1771758000000, + 581.2199999999999, + 0 + ], + [ + 1771761600000, + 581.1999999999999, + 0 + ], + [ + 1771765200000, + 581.2099999999999, + 0 + ], + [ + 1771768800000, + 581.18, + 0 + ], + [ + 1771772400000, + 581.2199999999999, + 0 + ], + [ + 1771776000000, + 581.2499999999999, + 0 + ], + [ + 1771779600000, + 581.2299999999999, + 0 + ], + [ + 1771783200000, + 581.2299999999999, + 0 + ], + [ + 1771786800000, + 581.2299999999999, + 0 + ], + [ + 1771790400000, + 581.2299999999999, + 0 + ], + [ + 1771794000000, + 581.2099999999999, + 0 + ], + [ + 1771797600000, + 581.2099999999999, + 0 + ], + [ + 1771801200000, + 581.2099999999999, + 0 + ], + [ + 1771804800000, + 581.1899999999999, + 0 + ], + [ + 1771808400000, + 581.18, + 0 + ], + [ + 1771812000000, + 581.1999999999999, + 0 + ], + [ + 1771815600000, + 581.18, + 0 + ], + [ + 1771819200000, + 581.18, + 0 + ], + [ + 1771822800000, + 581.1999999999999, + 0 + ], + [ + 1771826400000, + 581.1999999999999, + 0 + ], + [ + 1771830000000, + 581.1899999999999, + 0 + ], + [ + 1771833600000, + 581.1899999999999, + 0 + ], + [ + 1771837200000, + 581.1899999999999, + 0 + ], + [ + 1771840800000, + 581.17, + 0 + ], + [ + 1771844400000, + 581.17, + 0 + ], + [ + 1771848000000, + 581.18, + 0 + ], + [ + 1771851600000, + 581.15, + 0 + ], + [ + 1771855200000, + 581.15, + 0 + ], + [ + 1771858800000, + 581.1599999999999, + 0 + ], + [ + 1771862400000, + 581.17, + 0 + ], + [ + 1771866000000, + 581.1599999999999, + 0 + ], + [ + 1771869600000, + 581.17, + 0 + ], + [ + 1771873200000, + 581.17, + 0 + ], + [ + 1771876800000, + 581.17, + 0 + ], + [ + 1771880400000, + 581.15, + 0 + ], + [ + 1771884000000, + 581.1599999999999, + 0 + ], + [ + 1771887600000, + 581.1599999999999, + 0 + ], + [ + 1771891200000, + 581.15, + 0 + ], + [ + 1771894800000, + 581.1599999999999, + 0 + ], + [ + 1771898400000, + 581.1599999999999, + 0 + ], + [ + 1771902000000, + 581.15, + 0 + ], + [ + 1771905600000, + 581.15, + 0 + ], + [ + 1771909200000, + 581.15, + 0 + ], + [ + 1771912800000, + 581.15, + 0 + ], + [ + 1771916400000, + 581.15, + 0 + ], + [ + 1771920000000, + 581.1599999999999, + 0 + ], + [ + 1771923600000, + 581.17, + 0 + ], + [ + 1771927200000, + 581.17, + 0 + ], + [ + 1771930800000, + 581.17, + 0 + ], + [ + 1771934400000, + 581.17, + 0 + ], + [ + 1771938000000, + 581.17, + 0 + ], + [ + 1771941600000, + 581.18, + 0 + ], + [ + 1771945200000, + 581.1899999999999, + 0 + ], + [ + 1771948800000, + 581.2299999999999, + 0 + ], + [ + 1771952400000, + 581.26, + 0 + ], + [ + 1771956000000, + 581.26, + 0 + ], + [ + 1771959600000, + 581.26, + 0 + ], + [ + 1771963200000, + 581.28, + 0 + ], + [ + 1771966800000, + 581.28, + 0 + ], + [ + 1771970400000, + 581.26, + 0 + ], + [ + 1771974000000, + 581.24, + 0 + ], + [ + 1771977600000, + 581.2299999999999, + 0 + ], + [ + 1771981200000, + 581.1899999999999, + 0 + ], + [ + 1771984800000, + 581.17, + 0 + ], + [ + 1771988400000, + 581.15, + 0 + ], + [ + 1771992000000, + 581.14, + 0 + ], + [ + 1771995600000, + 581.1599999999999, + 0 + ], + [ + 1771999200000, + 581.17, + 0 + ], + [ + 1772002800000, + 581.17, + 0 + ], + [ + 1772006400000, + 581.18, + 0 + ], + [ + 1772010000000, + 581.18, + 0 + ], + [ + 1772013600000, + 581.17, + 0 + ], + [ + 1772017200000, + 581.17, + 0 + ], + [ + 1772020800000, + 581.17, + 0 + ], + [ + 1772024400000, + 581.17, + 0 + ], + [ + 1772028000000, + 581.14, + 0 + ], + [ + 1772031600000, + 581.14, + 0 + ], + [ + 1772035200000, + 581.17, + 0 + ], + [ + 1772038800000, + 581.1599999999999, + 0 + ], + [ + 1772042400000, + 581.1599999999999, + 0 + ], + [ + 1772046000000, + 581.1899999999999, + 0 + ], + [ + 1772049600000, + 581.18, + 0 + ], + [ + 1772053200000, + 581.15, + 0 + ], + [ + 1772056800000, + 581.1599999999999, + 0 + ], + [ + 1772060400000, + 581.17, + 0 + ], + [ + 1772064000000, + 581.1599999999999, + 0 + ], + [ + 1772067600000, + 581.1599999999999, + 0 + ], + [ + 1772071200000, + 581.17, + 0 + ], + [ + 1772074800000, + 581.1599999999999, + 0 + ], + [ + 1772078400000, + 581.15, + 0 + ], + [ + 1772082000000, + 581.1599999999999, + 0 + ], + [ + 1772085600000, + 581.1599999999999, + 0 + ], + [ + 1772089200000, + 581.1599999999999, + 0 + ], + [ + 1772092800000, + 581.17, + 0 + ], + [ + 1772096400000, + 581.17, + 0 + ], + [ + 1772100000000, + 581.17, + 0 + ], + [ + 1772103600000, + 581.17, + 0 + ], + [ + 1772107200000, + 581.18, + 0 + ], + [ + 1772110800000, + 581.18, + 0 + ], + [ + 1772114400000, + 581.18, + 0 + ], + [ + 1772118000000, + 581.18, + 0 + ], + [ + 1772121600000, + 581.18, + 0 + ], + [ + 1772125200000, + 581.17, + 0 + ], + [ + 1772128800000, + 581.1899999999999, + 0 + ], + [ + 1772132400000, + 581.1899999999999, + 0 + ], + [ + 1772136000000, + 581.1899999999999, + 0 + ], + [ + 1772139600000, + 581.18, + 0 + ], + [ + 1772143200000, + 581.1999999999999, + 0 + ], + [ + 1772146800000, + 581.1899999999999, + 0 + ], + [ + 1772150400000, + 581.18, + 0 + ], + [ + 1772154000000, + 581.17, + 0 + ], + [ + 1772157600000, + 581.18, + 0 + ], + [ + 1772161200000, + 581.17, + 0 + ], + [ + 1772164800000, + 581.18, + 0 + ], + [ + 1772168400000, + 581.18, + 0 + ], + [ + 1772172000000, + 581.1899999999999, + 0 + ], + [ + 1772175600000, + 581.18, + 0 + ], + [ + 1772179200000, + 581.1899999999999, + 0 + ], + [ + 1772182800000, + 581.18, + 0 + ], + [ + 1772186400000, + 581.17, + 0 + ], + [ + 1772190000000, + 581.1899999999999, + 0 + ], + [ + 1772193600000, + 581.1899999999999, + 0 + ], + [ + 1772197200000, + 581.1899999999999, + 0 + ], + [ + 1772200800000, + 581.1999999999999, + 0 + ], + [ + 1772204400000, + 581.1999999999999, + 0 + ], + [ + 1772208000000, + 581.1899999999999, + 0 + ], + [ + 1772211600000, + 581.1899999999999, + 0 + ], + [ + 1772215200000, + 581.1899999999999, + 0 + ], + [ + 1772218800000, + 581.1899999999999, + 0 + ], + [ + 1772222400000, + 581.1899999999999, + 0 + ], + [ + 1772226000000, + 581.1899999999999, + 0 + ], + [ + 1772229600000, + 581.1899999999999, + 0 + ], + [ + 1772233200000, + 581.1999999999999, + 0 + ], + [ + 1772236800000, + 581.1999999999999, + 0 + ], + [ + 1772240400000, + 581.1999999999999, + 0 + ], + [ + 1772244000000, + 581.1999999999999, + 0 + ], + [ + 1772247600000, + 581.1999999999999, + 0 + ], + [ + 1772251200000, + 581.1999999999999, + 0 + ], + [ + 1772254800000, + 581.1999999999999, + 0 + ], + [ + 1772258400000, + 581.1999999999999, + 0 + ], + [ + 1772262000000, + 581.1999999999999, + 0 + ], + [ + 1772265600000, + 581.1999999999999, + 0 + ], + [ + 1772269200000, + 581.1999999999999, + 0 + ], + [ + 1772272800000, + 581.1999999999999, + 0 + ], + [ + 1772276400000, + 581.1999999999999, + 0 + ], + [ + 1772280000000, + 581.2099999999999, + 0 + ], + [ + 1772283600000, + 581.2099999999999, + 0 + ], + [ + 1772287200000, + 581.1999999999999, + 0 + ], + [ + 1772290800000, + 581.1999999999999, + 0 + ], + [ + 1772294400000, + 581.2199999999999, + 0 + ], + [ + 1772298000000, + 581.2199999999999, + 0 + ], + [ + 1772301600000, + 581.2199999999999, + 0 + ], + [ + 1772305200000, + 581.2499999999999, + 0 + ], + [ + 1772308800000, + 581.24, + 0 + ], + [ + 1772312400000, + 581.2199999999999, + 0 + ], + [ + 1772316000000, + 581.2299999999999, + 0 + ], + [ + 1772319600000, + 581.2299999999999, + 0 + ], + [ + 1772323200000, + 581.2199999999999, + 0 + ], + [ + 1772326800000, + 581.2199999999999, + 0 + ], + [ + 1772330400000, + 581.2199999999999, + 0 + ], + [ + 1772334000000, + 581.2199999999999, + 0 + ], + [ + 1772337600000, + 581.2199999999999, + 0 + ], + [ + 1772341200000, + 581.2099999999999, + 0 + ], + [ + 1772344800000, + 581.2099999999999, + 0 + ], + [ + 1772348400000, + 581.2199999999999, + 0 + ], + [ + 1772352000000, + 581.2199999999999, + 0 + ], + [ + 1772355600000, + 581.2199999999999, + 0 + ], + [ + 1772359200000, + 581.2299999999999, + 0 + ], + [ + 1772362800000, + 581.2299999999999, + 0 + ], + [ + 1772366400000, + 581.2299999999999, + 0 + ], + [ + 1772370000000, + 581.2299999999999, + 0 + ], + [ + 1772373600000, + 581.2299999999999, + 0 + ], + [ + 1772377200000, + 581.2299999999999, + 0 + ], + [ + 1772380800000, + 581.2299999999999, + 0 + ], + [ + 1772384400000, + 581.2199999999999, + 0 + ], + [ + 1772388000000, + 581.2199999999999, + 0 + ], + [ + 1772391600000, + 581.2299999999999, + 0 + ], + [ + 1772395200000, + 581.2299999999999, + 0 + ], + [ + 1772398800000, + 581.24, + 0 + ], + [ + 1772402400000, + 581.27, + 0 + ], + [ + 1772406000000, + 581.26, + 0 + ], + [ + 1772409600000, + 581.26, + 0 + ], + [ + 1772413200000, + 581.26, + 0 + ], + [ + 1772416800000, + 581.2499999999999, + 0 + ], + [ + 1772420400000, + 581.2499999999999, + 0 + ], + [ + 1772424000000, + 581.28, + 0 + ], + [ + 1772427600000, + 581.27, + 0 + ], + [ + 1772431200000, + 581.28, + 0 + ], + [ + 1772434800000, + 581.26, + 0 + ], + [ + 1772438400000, + 581.2499999999999, + 0 + ], + [ + 1772442000000, + 581.26, + 0 + ], + [ + 1772445600000, + 581.26, + 0 + ], + [ + 1772449200000, + 581.26, + 0 + ], + [ + 1772452800000, + 581.26, + 0 + ], + [ + 1772456400000, + 581.26, + 0 + ], + [ + 1772460000000, + 581.2299999999999, + 0 + ], + [ + 1772463600000, + 581.24, + 0 + ], + [ + 1772467200000, + 581.2199999999999, + 0 + ], + [ + 1772470800000, + 581.2299999999999, + 0 + ], + [ + 1772474400000, + 581.2299999999999, + 0 + ], + [ + 1772478000000, + 581.2299999999999, + 0 + ], + [ + 1772481600000, + 581.2299999999999, + 0 + ], + [ + 1772485200000, + 581.2299999999999, + 0 + ], + [ + 1772488800000, + 581.2199999999999, + 0 + ], + [ + 1772492400000, + 581.2099999999999, + 0 + ], + [ + 1772496000000, + 581.2099999999999, + 0 + ], + [ + 1772499600000, + 581.2199999999999, + 0 + ], + [ + 1772503200000, + 581.2199999999999, + 0 + ], + [ + 1772506800000, + 581.2299999999999, + 0 + ], + [ + 1772510400000, + 581.2299999999999, + 0 + ], + [ + 1772514000000, + 581.2199999999999, + 0 + ], + [ + 1772517600000, + 581.2299999999999, + 0 + ], + [ + 1772521200000, + 581.2299999999999, + 0 + ], + [ + 1772524800000, + 581.2099999999999, + 0 + ], + [ + 1772528400000, + 581.2099999999999, + 0 + ], + [ + 1772532000000, + 581.2099999999999, + 0 + ], + [ + 1772535600000, + 581.2099999999999, + 0 + ], + [ + 1772539200000, + 581.2099999999999, + 0 + ], + [ + 1772542800000, + 581.2199999999999, + 0 + ], + [ + 1772546400000, + 581.2299999999999, + 0 + ], + [ + 1772550000000, + 581.26, + 0 + ], + [ + 1772553600000, + 581.26, + 0 + ], + [ + 1772557200000, + 581.28, + 0 + ], + [ + 1772560800000, + 581.29, + 0 + ], + [ + 1772564400000, + 581.29, + 0 + ], + [ + 1772568000000, + 581.28, + 0 + ], + [ + 1772571600000, + 581.28, + 0 + ], + [ + 1772575200000, + 581.27, + 0 + ], + [ + 1772578800000, + 581.26, + 0 + ], + [ + 1772582400000, + 581.26, + 0 + ], + [ + 1772586000000, + 581.2499999999999, + 0 + ], + [ + 1772589600000, + 581.24, + 0 + ], + [ + 1772593200000, + 581.2299999999999, + 0 + ], + [ + 1772596800000, + 581.2299999999999, + 0 + ], + [ + 1772600400000, + 581.26, + 0 + ], + [ + 1772604000000, + 581.2499999999999, + 0 + ], + [ + 1772607600000, + 581.2499999999999, + 0 + ], + [ + 1772611200000, + 581.29, + 0 + ], + [ + 1772614800000, + 581.28, + 0 + ], + [ + 1772618400000, + 581.2499999999999, + 0 + ], + [ + 1772622000000, + 581.2499999999999, + 0 + ], + [ + 1772625600000, + 581.26, + 0 + ], + [ + 1772629200000, + 581.2499999999999, + 0 + ], + [ + 1772632800000, + 581.27, + 0 + ], + [ + 1772636400000, + 581.3, + 0 + ], + [ + 1772640000000, + 581.28, + 0 + ], + [ + 1772643600000, + 581.26, + 0 + ], + [ + 1772647200000, + 581.27, + 0 + ], + [ + 1772650800000, + 581.28, + 0 + ], + [ + 1772654400000, + 581.28, + 0 + ], + [ + 1772658000000, + 581.29, + 0 + ], + [ + 1772661600000, + 581.29, + 0 + ], + [ + 1772665200000, + 581.28, + 0 + ], + [ + 1772668800000, + 581.26, + 0 + ], + [ + 1772672400000, + 581.28, + 0 + ], + [ + 1772676000000, + 581.3, + 0 + ], + [ + 1772679600000, + 581.3199999999999, + 0 + ], + [ + 1772683200000, + 581.3199999999999, + 0 + ], + [ + 1772686800000, + 581.3399999999999, + 0 + ], + [ + 1772690400000, + 581.3699999999999, + 0 + ], + [ + 1772694000000, + 581.36, + 0 + ], + [ + 1772697600000, + 581.3399999999999, + 0 + ], + [ + 1772701200000, + 581.3399999999999, + 0 + ], + [ + 1772704800000, + 581.3499999999999, + 0 + ], + [ + 1772708400000, + 581.3399999999999, + 0 + ], + [ + 1772712000000, + 581.3499999999999, + 0 + ], + [ + 1772715600000, + 581.3699999999999, + 0 + ], + [ + 1772719200000, + 581.36, + 0 + ], + [ + 1772722800000, + 581.36, + 0 + ], + [ + 1772726400000, + 581.3799999999999, + 0 + ], + [ + 1772730000000, + 581.39, + 0 + ], + [ + 1772733600000, + 581.4, + 0 + ], + [ + 1772737200000, + 581.4, + 0 + ], + [ + 1772740800000, + 581.4099999999999, + 0 + ], + [ + 1772744400000, + 581.4, + 0 + ], + [ + 1772748000000, + 581.4099999999999, + 0 + ], + [ + 1772751600000, + 581.42, + 0 + ], + [ + 1772755200000, + 581.43, + 0 + ], + [ + 1772758800000, + 581.4399999999999, + 0 + ], + [ + 1772762400000, + 581.4399999999999, + 0 + ], + [ + 1772766000000, + 581.4499999999999, + 0 + ], + [ + 1772769600000, + 581.4499999999999, + 0 + ], + [ + 1772773200000, + 581.4599999999999, + 0 + ], + [ + 1772776800000, + 581.4699999999999, + 0 + ], + [ + 1772780400000, + 581.4799999999999, + 0 + ], + [ + 1772784000000, + 581.4999999999999, + 0 + ], + [ + 1772787600000, + 581.52, + 0 + ], + [ + 1772791200000, + 581.53, + 0 + ], + [ + 1772794800000, + 581.53, + 0 + ], + [ + 1772798400000, + 581.54, + 0 + ], + [ + 1772802000000, + 581.56, + 0 + ], + [ + 1772805600000, + 581.5899999999999, + 0 + ], + [ + 1772809200000, + 581.5799999999999, + 0 + ], + [ + 1772812800000, + 581.5899999999999, + 0 + ], + [ + 1772816400000, + 581.6199999999999, + 0 + ], + [ + 1772820000000, + 581.6199999999999, + 0 + ], + [ + 1772823600000, + 581.64, + 0 + ], + [ + 1772827200000, + 581.67, + 0 + ], + [ + 1772830800000, + 581.67, + 0 + ], + [ + 1772834400000, + 581.68, + 0 + ], + [ + 1772838000000, + 581.68, + 0 + ], + [ + 1772841600000, + 581.68, + 0 + ], + [ + 1772845200000, + 581.67, + 0 + ], + [ + 1772848800000, + 581.6899999999999, + 0 + ], + [ + 1772852400000, + 581.6899999999999, + 0 + ], + [ + 1772856000000, + 581.6999999999999, + 0 + ], + [ + 1772859600000, + 581.74, + 0 + ], + [ + 1772863200000, + 581.77, + 0 + ], + [ + 1772866800000, + 581.77, + 0 + ], + [ + 1772870400000, + 581.77, + 0 + ], + [ + 1772874000000, + 581.79, + 0 + ], + [ + 1772877600000, + 581.81, + 0 + ], + [ + 1772881200000, + 581.92, + 0 + ], + [ + 1772884800000, + 581.86, + 0 + ], + [ + 1772888400000, + 581.86, + 0 + ], + [ + 1772892000000, + 581.89, + 0 + ], + [ + 1772895600000, + 581.9099999999999, + 0 + ], + [ + 1772899200000, + 581.86, + 0 + ], + [ + 1772902800000, + 581.89, + 0 + ], + [ + 1772906400000, + 581.9099999999999, + 0 + ], + [ + 1772910000000, + 581.92, + 0 + ], + [ + 1772913600000, + 581.9099999999999, + 0 + ], + [ + 1772917200000, + 581.92, + 0 + ], + [ + 1772920800000, + 581.9099999999999, + 0 + ], + [ + 1772924400000, + 581.89, + 0 + ], + [ + 1772928000000, + 581.9, + 0 + ], + [ + 1772931600000, + 581.92, + 0 + ], + [ + 1772935200000, + 581.92, + 0 + ], + [ + 1772938800000, + 581.92, + 0 + ], + [ + 1772942400000, + 581.9499999999999, + 0 + ], + [ + 1772946000000, + 581.9499999999999, + 0 + ], + [ + 1772949600000, + 581.9499999999999, + 0 + ], + [ + 1772953200000, + 581.9599999999999, + 0 + ], + [ + 1772956800000, + 581.9699999999999, + 0 + ], + [ + 1772960400000, + 581.9699999999999, + 0 + ], + [ + 1772964000000, + 581.9799999999999, + 0 + ], + [ + 1772967600000, + 581.9799999999999, + 0 + ], + [ + 1772971200000, + 581.9799999999999, + 0 + ], + [ + 1772974800000, + 581.99, + 0 + ], + [ + 1772978400000, + 581.9999999999999, + 0 + ], + [ + 1772982000000, + 582.01, + 0 + ], + [ + 1772985600000, + 582.01, + 0 + ], + [ + 1772989200000, + 582.03, + 0 + ], + [ + 1772992800000, + 582.04, + 0 + ], + [ + 1772996400000, + 582.03, + 0 + ], + [ + 1773000000000, + 582.04, + 0 + ], + [ + 1773003600000, + 582.04, + 0 + ], + [ + 1773007200000, + 582.04, + 0 + ], + [ + 1773010800000, + 582.04, + 0 + ], + [ + 1773014400000, + 582.04, + 0 + ], + [ + 1773018000000, + 582.04, + 0 + ], + [ + 1773021600000, + 582.05, + 0 + ], + [ + 1773025200000, + 582.06, + 0 + ], + [ + 1773028800000, + 582.06, + 0 + ], + [ + 1773032400000, + 582.06, + 0 + ], + [ + 1773036000000, + 582.06, + 0 + ], + [ + 1773039600000, + 582.0699999999999, + 0 + ], + [ + 1773043200000, + 582.0699999999999, + 0 + ], + [ + 1773046800000, + 582.0699999999999, + 0 + ], + [ + 1773050400000, + 582.0899999999999, + 0 + ], + [ + 1773054000000, + 582.11, + 0 + ], + [ + 1773057600000, + 582.1299999999999, + 0 + ], + [ + 1773061200000, + 582.1199999999999, + 0 + ], + [ + 1773064800000, + 582.1199999999999, + 0 + ], + [ + 1773068400000, + 582.1299999999999, + 0 + ], + [ + 1773072000000, + 582.1299999999999, + 0 + ], + [ + 1773075600000, + 582.1299999999999, + 0 + ], + [ + 1773079200000, + 582.135, + -2147481213 + ], + [ + 1773082800000, + 582.14, + 0 + ], + [ + 1773086400000, + 582.1599999999999, + 0 + ], + [ + 1773090000000, + 582.1599999999999, + 0 + ], + [ + 1773093600000, + 582.1599999999999, + 0 + ], + [ + 1773097200000, + 582.15, + 0 + ], + [ + 1773100800000, + 582.1599999999999, + 0 + ], + [ + 1773104400000, + 582.15, + 0 + ], + [ + 1773108000000, + 582.15, + 0 + ], + [ + 1773111600000, + 582.14, + 0 + ], + [ + 1773115200000, + 582.14, + 0 + ], + [ + 1773118800000, + 582.15, + 0 + ], + [ + 1773122400000, + 582.1599999999999, + 0 + ], + [ + 1773126000000, + 582.18, + 0 + ], + [ + 1773129600000, + 582.18, + 0 + ], + [ + 1773133200000, + 582.18, + 0 + ], + [ + 1773136800000, + 582.18, + 0 + ], + [ + 1773140400000, + 582.18, + 0 + ], + [ + 1773144000000, + 582.17, + 0 + ], + [ + 1773147600000, + 582.18, + 0 + ], + [ + 1773151200000, + 582.1899999999999, + 0 + ], + [ + 1773154800000, + 582.1899999999999, + 0 + ], + [ + 1773158400000, + 582.2099999999999, + 0 + ], + [ + 1773162000000, + 582.2099999999999, + 0 + ], + [ + 1773165600000, + 582.2099999999999, + 0 + ], + [ + 1773169200000, + 582.2099999999999, + 0 + ], + [ + 1773172800000, + 582.2199999999999, + 0 + ], + [ + 1773176400000, + 582.2299999999999, + 0 + ], + [ + 1773180000000, + 582.2299999999999, + 0 + ], + [ + 1773183600000, + 582.2299999999999, + 0 + ], + [ + 1773187200000, + 582.2199999999999, + 0 + ], + [ + 1773190800000, + 582.2199999999999, + 0 + ], + [ + 1773194400000, + 582.2099999999999, + 0 + ], + [ + 1773198000000, + 582.2099999999999, + 0 + ], + [ + 1773201600000, + 582.2099999999999, + 0 + ], + [ + 1773205200000, + 582.2499999999999, + 0 + ], + [ + 1773208800000, + 582.3299999999999, + 0 + ], + [ + 1773212400000, + 582.26, + 0 + ], + [ + 1773216000000, + 582.2499999999999, + 0 + ], + [ + 1773219600000, + 582.29, + 0 + ], + [ + 1773223200000, + 582.31, + 0 + ], + [ + 1773226800000, + 582.31, + 0 + ], + [ + 1773230400000, + 582.3699999999999, + 0 + ], + [ + 1773234000000, + 582.3499999999999, + 0 + ], + [ + 1773237600000, + 582.3199999999999, + 0 + ], + [ + 1773241200000, + 582.31, + 0 + ], + [ + 1773244800000, + 582.3399999999999, + 0 + ], + [ + 1773248400000, + 582.39, + 0 + ], + [ + 1773252000000, + 582.3699999999999, + 0 + ], + [ + 1773255600000, + 582.3699999999999, + 0 + ], + [ + 1773259200000, + 582.3399999999999, + 0 + ], + [ + 1773262800000, + 582.3499999999999, + 0 + ], + [ + 1773266400000, + 582.3199999999999, + 0 + ], + [ + 1773270000000, + 582.3299999999999, + 0 + ], + [ + 1773273600000, + 582.3499999999999, + 0 + ], + [ + 1773277200000, + 582.3299999999999, + 0 + ], + [ + 1773280800000, + 582.3299999999999, + 0 + ], + [ + 1773284400000, + 582.3499999999999, + 0 + ], + [ + 1773288000000, + 582.36, + 0 + ], + [ + 1773291600000, + 582.3699999999999, + 0 + ], + [ + 1773295200000, + 582.3799999999999, + 0 + ], + [ + 1773298800000, + 582.4, + 0 + ], + [ + 1773302400000, + 582.39, + 0 + ], + [ + 1773306000000, + 582.3799999999999, + 0 + ], + [ + 1773309600000, + 582.3799999999999, + 0 + ], + [ + 1773313200000, + 582.3799999999999, + 0 + ], + [ + 1773316800000, + 582.39, + 0 + ], + [ + 1773320400000, + 582.3799999999999, + 0 + ], + [ + 1773324000000, + 582.4099999999999, + 0 + ], + [ + 1773327600000, + 582.4099999999999, + 0 + ], + [ + 1773331200000, + 582.4, + 0 + ], + [ + 1773334800000, + 582.4, + 0 + ], + [ + 1773338400000, + 582.4099999999999, + 0 + ], + [ + 1773342000000, + 582.4, + 0 + ], + [ + 1773345600000, + 582.4, + 0 + ], + [ + 1773349200000, + 582.4099999999999, + 0 + ], + [ + 1773352800000, + 582.42, + 0 + ], + [ + 1773356400000, + 582.43, + 0 + ], + [ + 1773360000000, + 582.4399999999999, + 0 + ], + [ + 1773363600000, + 582.4399999999999, + 0 + ], + [ + 1773367200000, + 582.4399999999999, + 0 + ], + [ + 1773370800000, + 582.43, + 0 + ], + [ + 1773374400000, + 582.43, + 0 + ], + [ + 1773378000000, + 582.43, + 0 + ], + [ + 1773381600000, + 582.42, + 0 + ], + [ + 1773385200000, + 582.43, + 0 + ], + [ + 1773388800000, + 582.4399999999999, + 0 + ], + [ + 1773392400000, + 582.4499999999999, + 0 + ], + [ + 1773396000000, + 582.4599999999999, + 0 + ], + [ + 1773399600000, + 582.4699999999999, + 0 + ], + [ + 1773403200000, + 582.4599999999999, + 0 + ], + [ + 1773406800000, + 582.4599999999999, + 0 + ], + [ + 1773410400000, + 582.4599999999999, + 0 + ], + [ + 1773414000000, + 582.4499999999999, + 0 + ], + [ + 1773417600000, + 582.4499999999999, + 0 + ], + [ + 1773421200000, + 582.4499999999999, + 0 + ], + [ + 1773424800000, + 582.4399999999999, + 0 + ], + [ + 1773428400000, + 582.4499999999999, + 0 + ], + [ + 1773432000000, + 582.4699999999999, + 0 + ], + [ + 1773435600000, + 582.4699999999999, + 0 + ], + [ + 1773439200000, + 582.4699999999999, + 0 + ], + [ + 1773442800000, + 582.49, + 0 + ], + [ + 1773446400000, + 582.49, + 0 + ], + [ + 1773450000000, + 582.49, + 0 + ], + [ + 1773453600000, + 582.49, + 0 + ], + [ + 1773457200000, + 582.4999999999999, + 0 + ], + [ + 1773460800000, + 582.49, + 0 + ], + [ + 1773464400000, + 582.49, + 0 + ], + [ + 1773468000000, + 582.49, + 0 + ], + [ + 1773471600000, + 582.49, + 0 + ], + [ + 1773475200000, + 582.49, + 0 + ], + [ + 1773478800000, + 582.49, + 0 + ], + [ + 1773482400000, + 582.4999999999999, + 0 + ], + [ + 1773486000000, + 582.4999999999999, + 0 + ], + [ + 1773489600000, + 582.4999999999999, + 0 + ], + [ + 1773493200000, + 582.4999999999999, + 0 + ], + [ + 1773496800000, + 582.51, + 0 + ], + [ + 1773500400000, + 582.51, + 0 + ], + [ + 1773504000000, + 582.52, + 0 + ], + [ + 1773507600000, + 582.53, + 0 + ], + [ + 1773511200000, + 582.54, + 0 + ], + [ + 1773514800000, + 582.53, + 0 + ], + [ + 1773518400000, + 582.53, + 0 + ], + [ + 1773522000000, + 582.54, + 0 + ], + [ + 1773525600000, + 582.54, + 0 + ], + [ + 1773529200000, + 582.54, + 0 + ], + [ + 1773532800000, + 582.55, + 0 + ], + [ + 1773536400000, + 582.55, + 0 + ], + [ + 1773540000000, + 582.55, + 0 + ], + [ + 1773543600000, + 582.5699999999999, + 0 + ], + [ + 1773547200000, + 582.56, + 0 + ], + [ + 1773550800000, + 582.55, + 0 + ], + [ + 1773554400000, + 582.55, + 0 + ], + [ + 1773558000000, + 582.5699999999999, + 0 + ], + [ + 1773561600000, + 582.5699999999999, + 0 + ], + [ + 1773565200000, + 582.5999999999999, + 0 + ], + [ + 1773568800000, + 582.64, + 0 + ], + [ + 1773572400000, + 582.64, + 0 + ], + [ + 1773576000000, + 582.64, + 0 + ], + [ + 1773579600000, + 582.65, + 0 + ], + [ + 1773583200000, + 582.64, + 0 + ], + [ + 1773586800000, + 582.6199999999999, + 0 + ], + [ + 1773590400000, + 582.61, + 0 + ], + [ + 1773594000000, + 582.6199999999999, + 0 + ], + [ + 1773597600000, + 582.64, + 0 + ], + [ + 1773601200000, + 582.76, + 0 + ], + [ + 1773604800000, + 582.6999999999999, + 0 + ], + [ + 1773608400000, + 582.6999999999999, + 0 + ], + [ + 1773612000000, + 582.6599999999999, + 0 + ], + [ + 1773615600000, + 582.68, + 0 + ], + [ + 1773619200000, + 582.6299999999999, + 0 + ], + [ + 1773622800000, + 582.5899999999999, + 0 + ], + [ + 1773626400000, + 582.6899999999999, + 0 + ], + [ + 1773630000000, + 582.7099999999999, + 0 + ], + [ + 1773633600000, + 582.6599999999999, + 0 + ], + [ + 1773637200000, + 582.5799999999999, + 0 + ], + [ + 1773640800000, + 582.56, + 0 + ], + [ + 1773644400000, + 582.5799999999999, + 0 + ], + [ + 1773648000000, + 582.61, + 0 + ], + [ + 1773651600000, + 582.6199999999999, + 0 + ], + [ + 1773655200000, + 582.65, + 0 + ], + [ + 1773658800000, + 582.67, + 0 + ], + [ + 1773662400000, + 582.65, + 0 + ], + [ + 1773666000000, + 582.61, + 0 + ], + [ + 1773669600000, + 582.5999999999999, + 0 + ], + [ + 1773673200000, + 582.6199999999999, + 0 + ], + [ + 1773676800000, + 582.5799999999999, + 0 + ], + [ + 1773680400000, + 582.5799999999999, + 0 + ], + [ + 1773684000000, + 582.61, + 0 + ], + [ + 1773687600000, + 582.61, + 0 + ], + [ + 1773691200000, + 582.5899999999999, + 0 + ], + [ + 1773694800000, + 582.5899999999999, + 0 + ], + [ + 1773698400000, + 582.5899999999999, + 0 + ], + [ + 1773702000000, + 582.5699999999999, + 0 + ], + [ + 1773705600000, + 582.54, + 0 + ], + [ + 1773709200000, + 582.54, + 0 + ], + [ + 1773712800000, + 582.52, + 0 + ], + [ + 1773716400000, + 582.51, + 0 + ], + [ + 1773720000000, + 582.4999999999999, + 0 + ], + [ + 1773723600000, + 582.4999999999999, + 0 + ], + [ + 1773727200000, + 582.4999999999999, + 0 + ], + [ + 1773730800000, + 582.51, + 0 + ], + [ + 1773734400000, + 582.51, + 0 + ], + [ + 1773738000000, + 582.49, + 0 + ], + [ + 1773741600000, + 582.49, + 0 + ], + [ + 1773745200000, + 582.4699999999999, + 0 + ], + [ + 1773748800000, + 582.4699999999999, + 0 + ], + [ + 1773752400000, + 582.4599999999999, + 0 + ], + [ + 1773756000000, + 582.4499999999999, + 0 + ], + [ + 1773759600000, + 582.4699999999999, + 0 + ], + [ + 1773763200000, + 582.4799999999999, + 0 + ], + [ + 1773766800000, + 582.4799999999999, + 0 + ], + [ + 1773770400000, + 582.4999999999999, + 0 + ], + [ + 1773774000000, + 582.51, + 0 + ], + [ + 1773777600000, + 582.4999999999999, + 0 + ], + [ + 1773781200000, + 582.49, + 0 + ], + [ + 1773784800000, + 582.4999999999999, + 0 + ], + [ + 1773788400000, + 582.49, + 0 + ], + [ + 1773792000000, + 582.49, + 0 + ], + [ + 1773795600000, + 582.4999999999999, + 0 + ], + [ + 1773799200000, + 582.4799999999999, + 0 + ], + [ + 1773802800000, + 582.4699999999999, + 0 + ], + [ + 1773806400000, + 582.4599999999999, + 0 + ], + [ + 1773810000000, + 582.4599999999999, + 0 + ], + [ + 1773813600000, + 582.49, + 0 + ], + [ + 1773817200000, + 582.4999999999999, + 0 + ], + [ + 1773820800000, + 582.4999999999999, + 0 + ], + [ + 1773824400000, + 582.4999999999999, + 0 + ], + [ + 1773828000000, + 582.51, + 0 + ], + [ + 1773831600000, + 582.49, + 0 + ], + [ + 1773835200000, + 582.4799999999999, + 0 + ], + [ + 1773838800000, + 582.4599999999999, + 0 + ], + [ + 1773842400000, + 582.4999999999999, + 0 + ], + [ + 1773846000000, + 582.49, + 0 + ], + [ + 1773849600000, + 582.4999999999999, + 0 + ], + [ + 1773853200000, + 582.52, + 0 + ], + [ + 1773856800000, + 582.52, + 0 + ], + [ + 1773860400000, + 582.4799999999999, + 0 + ], + [ + 1773864000000, + 582.4699999999999, + 0 + ], + [ + 1773867600000, + 582.4499999999999, + 0 + ], + [ + 1773871200000, + 582.4399999999999, + 0 + ], + [ + 1773874800000, + 582.43, + 0 + ], + [ + 1773878400000, + 582.43, + 0 + ], + [ + 1773882000000, + 582.42, + 0 + ], + [ + 1773885600000, + 582.4499999999999, + 0 + ], + [ + 1773889200000, + 582.4399999999999, + 0 + ], + [ + 1773892800000, + 582.4399999999999, + 0 + ], + [ + 1773896400000, + 582.4499999999999, + 0 + ], + [ + 1773900000000, + 582.4599999999999, + 0 + ], + [ + 1773903600000, + 582.43, + 0 + ], + [ + 1773907200000, + 582.4399999999999, + 0 + ], + [ + 1773910800000, + 582.4499999999999, + 0 + ], + [ + 1773914400000, + 582.4399999999999, + 0 + ], + [ + 1773918000000, + 582.4399999999999, + 0 + ], + [ + 1773921600000, + 582.43, + 0 + ], + [ + 1773925200000, + 582.43, + 0 + ], + [ + 1773928800000, + 582.4399999999999, + 0 + ], + [ + 1773932400000, + 582.4499999999999, + 0 + ], + [ + 1773936000000, + 582.4599999999999, + 0 + ], + [ + 1773939600000, + 582.4599999999999, + 0 + ], + [ + 1773943200000, + 582.4599999999999, + 0 + ], + [ + 1773946800000, + 582.4499999999999, + 0 + ], + [ + 1773950400000, + 582.4399999999999, + 0 + ], + [ + 1773954000000, + 582.4399999999999, + 0 + ], + [ + 1773957600000, + 582.43, + 0 + ], + [ + 1773961200000, + 582.4099999999999, + 0 + ], + [ + 1773964800000, + 582.4, + 0 + ], + [ + 1773968400000, + 582.4, + 0 + ], + [ + 1773972000000, + 582.4099999999999, + 0 + ], + [ + 1773975600000, + 582.4, + 0 + ], + [ + 1773979200000, + 582.42, + 0 + ], + [ + 1773982800000, + 582.43, + 0 + ], + [ + 1773986400000, + 582.43, + 0 + ], + [ + 1773990000000, + 582.4099999999999, + 0 + ], + [ + 1773993600000, + 582.42, + 0 + ], + [ + 1773997200000, + 582.42, + 0 + ], + [ + 1774000800000, + 582.42, + 0 + ], + [ + 1774004400000, + 582.42, + 0 + ], + [ + 1774008000000, + 582.42, + 0 + ], + [ + 1774011600000, + 582.42, + 0 + ], + [ + 1774015200000, + 582.42, + 0 + ], + [ + 1774018800000, + 582.42, + 0 + ], + [ + 1774022400000, + 582.43, + 0 + ], + [ + 1774026000000, + 582.43, + 0 + ], + [ + 1774029600000, + 582.43, + 0 + ], + [ + 1774033200000, + 582.43, + 0 + ], + [ + 1774036800000, + 582.43, + 0 + ], + [ + 1774040400000, + 582.4, + 0 + ], + [ + 1774044000000, + 582.39, + 0 + ], + [ + 1774047600000, + 582.3699999999999, + 0 + ], + [ + 1774051200000, + 582.3799999999999, + 0 + ], + [ + 1774054800000, + 582.39, + 0 + ], + [ + 1774058400000, + 582.39, + 0 + ], + [ + 1774062000000, + 582.39, + 0 + ], + [ + 1774065600000, + 582.39, + 0 + ], + [ + 1774069200000, + 582.39, + 0 + ], + [ + 1774072800000, + 582.3799999999999, + 0 + ], + [ + 1774076400000, + 582.4, + 0 + ], + [ + 1774080000000, + 582.4, + 0 + ], + [ + 1774083600000, + 582.4, + 0 + ], + [ + 1774087200000, + 582.4, + 0 + ], + [ + 1774090800000, + 582.4, + 0 + ], + [ + 1774094400000, + 582.4, + 0 + ], + [ + 1774098000000, + 582.4, + 0 + ], + [ + 1774101600000, + 582.39, + 0 + ], + [ + 1774105200000, + 582.4, + 0 + ], + [ + 1774108800000, + 582.4, + 0 + ], + [ + 1774112400000, + 582.4, + 0 + ], + [ + 1774116000000, + 582.4, + 0 + ], + [ + 1774119600000, + 582.4, + 0 + ], + [ + 1774123200000, + 582.4, + 0 + ], + [ + 1774126800000, + 582.3799999999999, + 0 + ], + [ + 1774130400000, + 582.3799999999999, + 0 + ], + [ + 1774134000000, + 582.3799999999999, + 0 + ], + [ + 1774137600000, + 582.3799999999999, + 0 + ], + [ + 1774141200000, + 582.3799999999999, + 0 + ], + [ + 1774144800000, + 582.39, + 0 + ], + [ + 1774148400000, + 582.3799999999999, + 0 + ], + [ + 1774152000000, + 582.3799999999999, + 0 + ], + [ + 1774155600000, + 582.3799999999999, + 0 + ], + [ + 1774159200000, + 582.3799999999999, + 0 + ], + [ + 1774162800000, + 582.3799999999999, + 0 + ], + [ + 1774166400000, + 582.3799999999999, + 0 + ], + [ + 1774170000000, + 582.39, + 0 + ], + [ + 1774173600000, + 582.39, + 0 + ], + [ + 1774177200000, + 582.4, + 0 + ], + [ + 1774180800000, + 582.4, + 0 + ], + [ + 1774184400000, + 582.4, + 0 + ], + [ + 1774188000000, + 582.4, + 0 + ], + [ + 1774191600000, + 582.4099999999999, + 0 + ], + [ + 1774195200000, + 582.43, + 0 + ], + [ + 1774198800000, + 582.4499999999999, + 0 + ], + [ + 1774202400000, + 582.4499999999999, + 0 + ], + [ + 1774206000000, + 582.4499999999999, + 0 + ], + [ + 1774209600000, + 582.4399999999999, + 0 + ], + [ + 1774213200000, + 582.43, + 0 + ], + [ + 1774216800000, + 582.42, + 0 + ], + [ + 1774220400000, + 582.4399999999999, + 0 + ], + [ + 1774224000000, + 582.4099999999999, + 0 + ], + [ + 1774227600000, + 582.43, + 0 + ], + [ + 1774231200000, + 582.4, + 0 + ], + [ + 1774234800000, + 582.39, + 0 + ], + [ + 1774238400000, + 582.3799999999999, + 0 + ], + [ + 1774242000000, + 582.3799999999999, + 0 + ], + [ + 1774245600000, + 582.3699999999999, + 0 + ], + [ + 1774249200000, + 582.3699999999999, + 0 + ], + [ + 1774252800000, + 582.3799999999999, + 0 + ], + [ + 1774256400000, + 582.3799999999999, + 0 + ], + [ + 1774260000000, + 582.3699999999999, + 0 + ], + [ + 1774263600000, + 582.3699999999999, + 0 + ], + [ + 1774267200000, + 582.3699999999999, + 0 + ], + [ + 1774270800000, + 582.36, + 0 + ], + [ + 1774274400000, + 582.36, + 0 + ], + [ + 1774278000000, + 582.3499999999999, + 0 + ], + [ + 1774281600000, + 582.3699999999999, + 0 + ], + [ + 1774285200000, + 582.3699999999999, + 0 + ], + [ + 1774288800000, + 582.3699999999999, + 0 + ], + [ + 1774292400000, + 582.3699999999999, + 0 + ], + [ + 1774296000000, + 582.3799999999999, + 0 + ], + [ + 1774299600000, + 582.3699999999999, + 0 + ], + [ + 1774303200000, + 582.3699999999999, + 0 + ], + [ + 1774306800000, + 582.3699999999999, + 0 + ], + [ + 1774310400000, + 582.36, + 0 + ], + [ + 1774314000000, + 582.3499999999999, + 0 + ], + [ + 1774317600000, + 582.3499999999999, + 0 + ], + [ + 1774321200000, + 582.3499999999999, + 0 + ], + [ + 1774324800000, + 582.3399999999999, + 0 + ], + [ + 1774328400000, + 582.3399999999999, + 0 + ], + [ + 1774332000000, + 582.3499999999999, + 0 + ], + [ + 1774335600000, + 582.3499999999999, + 0 + ], + [ + 1774339200000, + 582.36, + 0 + ], + [ + 1774342800000, + 582.3699999999999, + 0 + ], + [ + 1774346400000, + 582.3699999999999, + 0 + ], + [ + 1774350000000, + 582.3699999999999, + 0 + ], + [ + 1774353600000, + 582.3699999999999, + 0 + ], + [ + 1774357200000, + 582.36, + 0 + ], + [ + 1774360800000, + 582.3699999999999, + 0 + ], + [ + 1774364400000, + 582.36, + 0 + ], + [ + 1774368000000, + 582.36, + 0 + ], + [ + 1774371600000, + 582.3699999999999, + 0 + ], + [ + 1774375200000, + 582.3799999999999, + 0 + ], + [ + 1774378800000, + 582.3799999999999, + 0 + ], + [ + 1774382400000, + 582.3799999999999, + 0 + ], + [ + 1774386000000, + 582.39, + 0 + ], + [ + 1774389600000, + 582.39, + 0 + ], + [ + 1774393200000, + 582.3799999999999, + 0 + ], + [ + 1774396800000, + 582.36, + 0 + ], + [ + 1774400400000, + 582.3699999999999, + 0 + ], + [ + 1774404000000, + 582.3699999999999, + 0 + ], + [ + 1774407600000, + 582.36, + 0 + ], + [ + 1774411200000, + 582.3699999999999, + 0 + ], + [ + 1774414800000, + 582.3799999999999, + 0 + ], + [ + 1774418400000, + 582.3699999999999, + 0 + ], + [ + 1774422000000, + 582.3699999999999, + 0 + ], + [ + 1774425600000, + 582.3799999999999, + 0 + ], + [ + 1774429200000, + 582.3799999999999, + 0 + ], + [ + 1774432800000, + 582.3799999999999, + 0 + ], + [ + 1774436400000, + 582.3799999999999, + 0 + ], + [ + 1774440000000, + 582.3799999999999, + 0 + ], + [ + 1774443600000, + 582.3699999999999, + 0 + ], + [ + 1774447200000, + 582.3699999999999, + 0 + ], + [ + 1774450800000, + 582.3799999999999, + 0 + ], + [ + 1774454400000, + 582.39, + 0 + ], + [ + 1774458000000, + 582.4, + 0 + ], + [ + 1774461600000, + 582.4099999999999, + 0 + ], + [ + 1774465200000, + 582.4099999999999, + 0 + ], + [ + 1774468800000, + 582.4099999999999, + 0 + ], + [ + 1774472400000, + 582.4099999999999, + 0 + ], + [ + 1774476000000, + 582.4, + 0 + ], + [ + 1774479600000, + 582.39, + 0 + ], + [ + 1774483200000, + 582.39, + 0 + ], + [ + 1774486800000, + 582.39, + 0 + ], + [ + 1774490400000, + 582.39, + 0 + ], + [ + 1774494000000, + 582.3799999999999, + 0 + ], + [ + 1774497600000, + 582.39, + 0 + ], + [ + 1774501200000, + 582.3799999999999, + 0 + ], + [ + 1774504800000, + 582.3799999999999, + 0 + ], + [ + 1774508400000, + 582.3799999999999, + 0 + ], + [ + 1774512000000, + 582.3799999999999, + 0 + ], + [ + 1774515600000, + 582.3799999999999, + 0 + ], + [ + 1774519200000, + 582.39, + 0 + ], + [ + 1774522800000, + 582.39, + 0 + ], + [ + 1774526400000, + 582.39, + 0 + ], + [ + 1774530000000, + 582.39, + 0 + ], + [ + 1774533600000, + 582.4, + 0 + ], + [ + 1774537200000, + 582.4, + 0 + ], + [ + 1774540800000, + 582.4099999999999, + 0 + ], + [ + 1774544400000, + 582.4099999999999, + 0 + ], + [ + 1774548000000, + 582.4099999999999, + 0 + ], + [ + 1774551600000, + 582.42, + 0 + ], + [ + 1774555200000, + 582.42, + 0 + ], + [ + 1774558800000, + 582.4099999999999, + 0 + ], + [ + 1774562400000, + 582.4099999999999, + 0 + ], + [ + 1774566000000, + 582.4, + 0 + ], + [ + 1774569600000, + 582.39, + 0 + ], + [ + 1774573200000, + 582.4, + 0 + ], + [ + 1774576800000, + 582.39, + 0 + ], + [ + 1774580400000, + 582.3799999999999, + 0 + ], + [ + 1774584000000, + 582.3799999999999, + 0 + ], + [ + 1774587600000, + 582.3699999999999, + 0 + ], + [ + 1774591200000, + 582.3699999999999, + 0 + ], + [ + 1774594800000, + 582.3699999999999, + 0 + ], + [ + 1774598400000, + 582.3699999999999, + 0 + ], + [ + 1774602000000, + 582.36, + 0 + ], + [ + 1774605600000, + 582.3699999999999, + 0 + ], + [ + 1774609200000, + 582.3699999999999, + 0 + ], + [ + 1774612800000, + 582.39, + 0 + ], + [ + 1774616400000, + 582.4099999999999, + 0 + ], + [ + 1774620000000, + 582.3799999999999, + 0 + ], + [ + 1774623600000, + 582.3499999999999, + 0 + ], + [ + 1774627200000, + 582.31, + 0 + ], + [ + 1774630800000, + 582.31, + 0 + ], + [ + 1774634400000, + 582.3199999999999, + 0 + ], + [ + 1774638000000, + 582.3299999999999, + 0 + ], + [ + 1774641600000, + 582.31, + 0 + ], + [ + 1774645200000, + 582.3, + 0 + ], + [ + 1774648800000, + 582.31, + 0 + ], + [ + 1774652400000, + 582.3, + 0 + ], + [ + 1774656000000, + 582.3, + 0 + ], + [ + 1774659600000, + 582.3199999999999, + 0 + ], + [ + 1774663200000, + 582.3299999999999, + 0 + ], + [ + 1774666800000, + 582.3499999999999, + 0 + ], + [ + 1774670400000, + 582.36, + 0 + ], + [ + 1774674000000, + 582.3399999999999, + 0 + ], + [ + 1774677600000, + 582.3299999999999, + 0 + ], + [ + 1774681200000, + 582.3199999999999, + 0 + ], + [ + 1774684800000, + 582.3199999999999, + 0 + ], + [ + 1774688400000, + 582.3199999999999, + 0 + ], + [ + 1774692000000, + 582.3299999999999, + 0 + ], + [ + 1774695600000, + 582.3399999999999, + 0 + ], + [ + 1774699200000, + 582.3499999999999, + 0 + ], + [ + 1774702800000, + 582.3499999999999, + 0 + ], + [ + 1774706400000, + 582.3399999999999, + 0 + ], + [ + 1774710000000, + 582.3199999999999, + 0 + ], + [ + 1774713600000, + 582.31, + 0 + ], + [ + 1774717200000, + 582.31, + 0 + ], + [ + 1774720800000, + 582.3399999999999, + 0 + ], + [ + 1774724400000, + 582.3399999999999, + 0 + ], + [ + 1774728000000, + 582.3499999999999, + 0 + ], + [ + 1774731600000, + 582.36, + 0 + ], + [ + 1774735200000, + 582.3699999999999, + 0 + ], + [ + 1774738800000, + 582.36, + 0 + ], + [ + 1774742400000, + 582.36, + 0 + ], + [ + 1774746000000, + 582.3699999999999, + 0 + ], + [ + 1774749600000, + 582.3699999999999, + 0 + ], + [ + 1774753200000, + 582.3699999999999, + 0 + ], + [ + 1774756800000, + 582.3699999999999, + 0 + ], + [ + 1774760400000, + 582.3699999999999, + 0 + ], + [ + 1774764000000, + 582.36, + 0 + ], + [ + 1774767600000, + 582.3499999999999, + 0 + ], + [ + 1774771200000, + 582.3499999999999, + 0 + ], + [ + 1774774800000, + 582.3499999999999, + 0 + ], + [ + 1774778400000, + 582.3499999999999, + 0 + ], + [ + 1774782000000, + 582.36, + 0 + ], + [ + 1774785600000, + 582.3699999999999, + 0 + ], + [ + 1774789200000, + 582.3699999999999, + 0 + ], + [ + 1774792800000, + 582.3699999999999, + 0 + ], + [ + 1774796400000, + 582.3699999999999, + 0 + ], + [ + 1774800000000, + 582.3799999999999, + 0 + ], + [ + 1774803600000, + 582.3699999999999, + 0 + ], + [ + 1774807200000, + 582.39, + 0 + ], + [ + 1774810800000, + 582.39, + 0 + ], + [ + 1774814400000, + 582.39, + 0 + ], + [ + 1774818000000, + 582.39, + 0 + ], + [ + 1774821600000, + 582.39, + 0 + ], + [ + 1774825200000, + 582.3699999999999, + 0 + ], + [ + 1774828800000, + 582.3699999999999, + 0 + ], + [ + 1774832400000, + 582.3699999999999, + 0 + ], + [ + 1774836000000, + 582.3699999999999, + 0 + ], + [ + 1774839600000, + 582.36, + 0 + ], + [ + 1774843200000, + 582.3499999999999, + 0 + ], + [ + 1774846800000, + 582.3399999999999, + 0 + ], + [ + 1774850400000, + 582.3399999999999, + 0 + ], + [ + 1774854000000, + 582.3199999999999, + 0 + ], + [ + 1774857600000, + 582.3399999999999, + 0 + ], + [ + 1774861200000, + 582.3399999999999, + 0 + ], + [ + 1774864800000, + 582.3499999999999, + 0 + ], + [ + 1774868400000, + 582.36, + 0 + ], + [ + 1774872000000, + 582.3699999999999, + 0 + ], + [ + 1774875600000, + 582.3699999999999, + 0 + ], + [ + 1774879200000, + 582.36, + 0 + ], + [ + 1774882800000, + 582.3699999999999, + 0 + ], + [ + 1774886400000, + 582.3799999999999, + 0 + ], + [ + 1774890000000, + 582.3799999999999, + 0 + ], + [ + 1774893600000, + 582.3799999999999, + 0 + ], + [ + 1774897200000, + 582.3699999999999, + 0 + ], + [ + 1774900800000, + 582.3499999999999, + 0 + ], + [ + 1774904400000, + 582.3399999999999, + 0 + ], + [ + 1774908000000, + 582.3499999999999, + 0 + ], + [ + 1774911600000, + 582.3499999999999, + 0 + ], + [ + 1774915200000, + 582.3399999999999, + 0 + ], + [ + 1774918800000, + 582.36, + 0 + ], + [ + 1774922400000, + 582.36, + 0 + ], + [ + 1774926000000, + 582.3499999999999, + 0 + ], + [ + 1774929600000, + 582.3499999999999, + 0 + ], + [ + 1774933200000, + 582.3499999999999, + 0 + ], + [ + 1774936800000, + 582.3399999999999, + 0 + ], + [ + 1774940400000, + 582.3299999999999, + 0 + ], + [ + 1774944000000, + 582.3299999999999, + 0 + ], + [ + 1774947600000, + 582.3399999999999, + 0 + ], + [ + 1774951200000, + 582.3699999999999, + 0 + ], + [ + 1774954800000, + 582.3799999999999, + 0 + ], + [ + 1774958400000, + 582.3799999999999, + 0 + ], + [ + 1774962000000, + 582.36, + 0 + ], + [ + 1774965600000, + 582.3499999999999, + 0 + ], + [ + 1774969200000, + 582.36, + 0 + ], + [ + 1774972800000, + 582.3699999999999, + 0 + ], + [ + 1774976400000, + 582.3699999999999, + 0 + ], + [ + 1774980000000, + 582.3699999999999, + 0 + ], + [ + 1774983600000, + 582.3799999999999, + 0 + ], + [ + 1774987200000, + 582.3799999999999, + 0 + ], + [ + 1774990800000, + 582.3699999999999, + 0 + ], + [ + 1774994400000, + 582.36, + 0 + ], + [ + 1774998000000, + 582.3499999999999, + 0 + ], + [ + 1775001600000, + 582.3499999999999, + 0 + ], + [ + 1775005200000, + 582.3499999999999, + 0 + ], + [ + 1775008800000, + 582.3499999999999, + 0 + ], + [ + 1775012400000, + 582.3399999999999, + 0 + ], + [ + 1775016000000, + 582.3399999999999, + 0 + ], + [ + 1775019600000, + 582.3299999999999, + 0 + ], + [ + 1775023200000, + 582.31, + 0 + ], + [ + 1775026800000, + 582.31, + 0 + ], + [ + 1775030400000, + 582.3199999999999, + 0 + ], + [ + 1775034000000, + 582.3399999999999, + 0 + ], + [ + 1775037600000, + 582.36, + 0 + ], + [ + 1775041200000, + 582.36, + 0 + ], + [ + 1775044800000, + 582.3399999999999, + 0 + ], + [ + 1775048400000, + 582.3499999999999, + 0 + ], + [ + 1775052000000, + 582.36, + 0 + ], + [ + 1775055600000, + 582.3499999999999, + 0 + ], + [ + 1775059200000, + 582.36, + 0 + ], + [ + 1775062800000, + 582.3699999999999, + 0 + ], + [ + 1775066400000, + 582.3699999999999, + 0 + ], + [ + 1775070000000, + 582.36, + 0 + ], + [ + 1775073600000, + 582.3499999999999, + 0 + ], + [ + 1775077200000, + 582.3399999999999, + 0 + ], + [ + 1775080800000, + 582.3399999999999, + 0 + ], + [ + 1775084400000, + 582.3399999999999, + 0 + ], + [ + 1775088000000, + 582.3299999999999, + 0 + ], + [ + 1775091600000, + 582.3399999999999, + 0 + ], + [ + 1775095200000, + 582.3399999999999, + 0 + ], + [ + 1775098800000, + 582.3399999999999, + 0 + ], + [ + 1775102400000, + 582.3399999999999, + 0 + ], + [ + 1775106000000, + 582.3499999999999, + 0 + ], + [ + 1775109600000, + 582.3699999999999, + 0 + ], + [ + 1775113200000, + 582.3699999999999, + 0 + ], + [ + 1775116800000, + 582.3699999999999, + 0 + ], + [ + 1775120400000, + 582.3799999999999, + 0 + ], + [ + 1775124000000, + 582.4, + 0 + ], + [ + 1775127600000, + 582.39, + 0 + ], + [ + 1775131200000, + 582.43, + 0 + ], + [ + 1775134800000, + 582.4699999999999, + 0 + ], + [ + 1775138400000, + 582.4499999999999, + 0 + ], + [ + 1775142000000, + 582.43, + 0 + ], + [ + 1775145600000, + 582.4399999999999, + 0 + ], + [ + 1775149200000, + 582.4499999999999, + 0 + ], + [ + 1775152800000, + 582.4399999999999, + 0 + ], + [ + 1775156400000, + 582.4599999999999, + 0 + ], + [ + 1775160000000, + 582.4599999999999, + 0 + ], + [ + 1775163600000, + 582.4399999999999, + 0 + ], + [ + 1775167200000, + 582.42, + 0 + ], + [ + 1775170800000, + 582.4099999999999, + 0 + ], + [ + 1775174400000, + 582.4, + 0 + ], + [ + 1775178000000, + 582.4, + 0 + ], + [ + 1775181600000, + 582.4, + 0 + ], + [ + 1775185200000, + 582.4, + 0 + ], + [ + 1775188800000, + 582.4, + 0 + ], + [ + 1775192400000, + 582.39, + 0 + ], + [ + 1775196000000, + 582.39, + 0 + ], + [ + 1775199600000, + 582.39, + 0 + ], + [ + 1775203200000, + 582.39, + 0 + ], + [ + 1775206800000, + 582.39, + 0 + ], + [ + 1775210400000, + 582.39, + 0 + ], + [ + 1775214000000, + 582.4, + 0 + ], + [ + 1775217600000, + 582.4, + 0 + ], + [ + 1775221200000, + 582.4099999999999, + 0 + ], + [ + 1775224800000, + 582.4099999999999, + 0 + ], + [ + 1775228400000, + 582.4099999999999, + 0 + ], + [ + 1775232000000, + 582.42, + 0 + ], + [ + 1775235600000, + 582.43, + 0 + ], + [ + 1775239200000, + 582.43, + 0 + ], + [ + 1775242800000, + 582.43, + 0 + ], + [ + 1775246400000, + 582.43, + 0 + ], + [ + 1775250000000, + 582.42, + 0 + ], + [ + 1775253600000, + 582.42, + 0 + ], + [ + 1775257200000, + 582.4, + 0 + ], + [ + 1775260800000, + 582.4, + 0 + ], + [ + 1775264400000, + 582.43, + 0 + ], + [ + 1775268000000, + 582.4099999999999, + 0 + ], + [ + 1775271600000, + 582.4, + 0 + ], + [ + 1775275200000, + 582.4, + 0 + ], + [ + 1775278800000, + 582.4, + 0 + ], + [ + 1775282400000, + 582.4999999999999, + 0 + ], + [ + 1775286000000, + 582.4999999999999, + 0 + ], + [ + 1775289600000, + 582.5799999999999, + 0 + ], + [ + 1775293200000, + 582.61, + 0 + ], + [ + 1775296800000, + 582.64, + 0 + ], + [ + 1775300400000, + 582.6599999999999, + 0 + ], + [ + 1775304000000, + 582.7099999999999, + 0 + ], + [ + 1775307600000, + 582.76, + 0 + ], + [ + 1775311200000, + 582.79, + 0 + ], + [ + 1775314800000, + 582.8699999999999, + 0 + ], + [ + 1775318400000, + 582.9399999999999, + 0 + ], + [ + 1775322000000, + 582.9999999999999, + 0 + ], + [ + 1775325600000, + 583.05, + 0 + ], + [ + 1775329200000, + 583.0799999999999, + 0 + ], + [ + 1775332800000, + 583.0999999999999, + 0 + ], + [ + 1775336400000, + 583.1299999999999, + 0 + ], + [ + 1775340000000, + 583.18, + 0 + ], + [ + 1775343600000, + 583.2199999999999, + 0 + ], + [ + 1775347200000, + 583.26, + 0 + ], + [ + 1775350800000, + 583.3, + 0 + ], + [ + 1775354400000, + 583.3399999999999, + 0 + ], + [ + 1775358000000, + 583.4, + 0 + ], + [ + 1775361600000, + 583.4499999999999, + 0 + ], + [ + 1775365200000, + 583.4799999999999, + 0 + ], + [ + 1775368800000, + 583.53, + 0 + ], + [ + 1775372400000, + 583.5899999999999, + 0 + ], + [ + 1775376000000, + 583.6599999999999, + 0 + ], + [ + 1775379600000, + 583.7199999999999, + 0 + ], + [ + 1775383200000, + 583.79, + 0 + ], + [ + 1775386800000, + 583.8499999999999, + 0 + ], + [ + 1775390400000, + 583.9099999999999, + 0 + ], + [ + 1775394000000, + 583.9699999999999, + 0 + ], + [ + 1775397600000, + 584.02, + 0 + ], + [ + 1775401200000, + 584.0799999999999, + 0 + ], + [ + 1775404800000, + 584.1199999999999, + 0 + ], + [ + 1775408400000, + 584.18, + 0 + ], + [ + 1775412000000, + 584.23, + 0 + ], + [ + 1775415600000, + 584.29, + 0 + ], + [ + 1775419200000, + 584.3399999999999, + 0 + ], + [ + 1775422800000, + 584.36, + 0 + ], + [ + 1775426400000, + 584.4099999999999, + 0 + ], + [ + 1775430000000, + 584.4499999999999, + 0 + ], + [ + 1775433600000, + 584.4699999999999, + 0 + ], + [ + 1775437200000, + 584.51, + 0 + ], + [ + 1775440800000, + 584.56, + 0 + ], + [ + 1775444400000, + 584.5899999999999, + 0 + ], + [ + 1775448000000, + 584.6199999999999, + 0 + ], + [ + 1775451600000, + 584.6599999999999, + 0 + ], + [ + 1775455200000, + 584.68, + 0 + ], + [ + 1775458800000, + 584.7099999999999, + 0 + ], + [ + 1775462400000, + 584.7399999999999, + 0 + ], + [ + 1775466000000, + 584.77, + 0 + ], + [ + 1775469600000, + 584.8, + 0 + ], + [ + 1775473200000, + 584.8199999999999, + 0 + ], + [ + 1775476800000, + 584.8499999999999, + 0 + ], + [ + 1775480400000, + 584.8799999999999, + 0 + ], + [ + 1775484000000, + 584.9, + 0 + ], + [ + 1775487600000, + 584.92, + 0 + ], + [ + 1775491200000, + 584.9499999999999, + 0 + ], + [ + 1775494800000, + 584.9699999999999, + 0 + ], + [ + 1775498400000, + 584.98, + 0 + ], + [ + 1775502000000, + 585.01, + 0 + ], + [ + 1775505600000, + 585.01, + 0 + ], + [ + 1775509200000, + 585.01, + 0 + ], + [ + 1775512800000, + 585.02, + 0 + ], + [ + 1775516400000, + 585.04, + 0 + ], + [ + 1775520000000, + 585.06, + 0 + ], + [ + 1775523600000, + 585.0699999999999, + 0 + ], + [ + 1775527200000, + 585.0999999999999, + 0 + ], + [ + 1775530800000, + 585.11, + 0 + ], + [ + 1775534400000, + 585.1199999999999, + 0 + ], + [ + 1775538000000, + 585.1299999999999, + 0 + ], + [ + 1775541600000, + 585.15, + 0 + ], + [ + 1775545200000, + 585.1599999999999, + 0 + ], + [ + 1775548800000, + 585.17, + 0 + ], + [ + 1775552400000, + 585.18, + 0 + ], + [ + 1775556000000, + 585.1899999999999, + 0 + ], + [ + 1775559600000, + 585.1999999999999, + 0 + ], + [ + 1775563200000, + 585.2099999999999, + 0 + ], + [ + 1775566800000, + 585.2199999999999, + 0 + ], + [ + 1775570400000, + 585.23, + 0 + ], + [ + 1775574000000, + 585.2499999999999, + 0 + ], + [ + 1775577600000, + 585.2499999999999, + 0 + ], + [ + 1775581200000, + 585.27, + 0 + ], + [ + 1775584800000, + 585.29, + 0 + ], + [ + 1775588400000, + 585.31, + 0 + ], + [ + 1775592000000, + 585.31, + 0 + ], + [ + 1775595600000, + 585.3199999999999, + 0 + ], + [ + 1775599200000, + 585.3299999999999, + 0 + ], + [ + 1775602800000, + 585.3299999999999, + 0 + ], + [ + 1775606400000, + 585.3299999999999, + 0 + ], + [ + 1775610000000, + 585.3399999999999, + 0 + ], + [ + 1775613600000, + 585.3399999999999, + 0 + ], + [ + 1775617200000, + 585.3399999999999, + 0 + ], + [ + 1775620800000, + 585.3499999999999, + 0 + ], + [ + 1775624400000, + 585.36, + 0 + ], + [ + 1775628000000, + 585.3699999999999, + 0 + ], + [ + 1775631600000, + 585.3699999999999, + 0 + ], + [ + 1775635200000, + 585.3799999999999, + 0 + ], + [ + 1775638800000, + 585.3799999999999, + 0 + ], + [ + 1775642400000, + 585.39, + 0 + ], + [ + 1775646000000, + 585.4, + 0 + ], + [ + 1775649600000, + 585.4, + 0 + ], + [ + 1775653200000, + 585.4, + 0 + ], + [ + 1775656800000, + 585.4, + 0 + ], + [ + 1775660400000, + 585.43, + 0 + ], + [ + 1775664000000, + 585.43, + 0 + ], + [ + 1775667600000, + 585.4699999999999, + 0 + ], + [ + 1775671200000, + 585.48, + 0 + ], + [ + 1775674800000, + 585.4999999999999, + 0 + ], + [ + 1775678400000, + 585.48, + 0 + ], + [ + 1775682000000, + 585.48, + 0 + ], + [ + 1775685600000, + 585.48, + 0 + ], + [ + 1775689200000, + 585.4599999999999, + 0 + ], + [ + 1775692800000, + 585.4599999999999, + 0 + ], + [ + 1775696400000, + 585.4599999999999, + 0 + ], + [ + 1775700000000, + 585.4699999999999, + 0 + ], + [ + 1775703600000, + 585.4599999999999, + 0 + ], + [ + 1775707200000, + 585.4599999999999, + 0 + ], + [ + 1775710800000, + 585.4599999999999, + 0 + ], + [ + 1775714400000, + 585.4699999999999, + 0 + ], + [ + 1775718000000, + 585.4699999999999, + 0 + ], + [ + 1775721600000, + 585.48, + 0 + ], + [ + 1775725200000, + 585.4899999999999, + 0 + ], + [ + 1775728800000, + 585.4899999999999, + 0 + ], + [ + 1775732400000, + 585.4899999999999, + 0 + ], + [ + 1775736000000, + 585.51, + 0 + ], + [ + 1775739600000, + 585.4999999999999, + 0 + ], + [ + 1775743200000, + 585.4999999999999, + 0 + ], + [ + 1775746800000, + 585.51, + 0 + ], + [ + 1775750400000, + 585.51, + 0 + ], + [ + 1775754000000, + 585.52, + 0 + ], + [ + 1775757600000, + 585.54, + 0 + ], + [ + 1775761200000, + 585.53, + 0 + ], + [ + 1775764800000, + 585.53, + 0 + ], + [ + 1775768400000, + 585.52, + 0 + ], + [ + 1775772000000, + 585.51, + 0 + ], + [ + 1775775600000, + 585.4999999999999, + 0 + ], + [ + 1775779200000, + 585.4899999999999, + 0 + ], + [ + 1775782800000, + 585.4899999999999, + 0 + ], + [ + 1775786400000, + 585.4899999999999, + 0 + ], + [ + 1775790000000, + 585.4899999999999, + 0 + ], + [ + 1775793600000, + 585.4899999999999, + 0 + ], + [ + 1775797200000, + 585.4999999999999, + 0 + ], + [ + 1775800800000, + 585.4999999999999, + 0 + ], + [ + 1775804400000, + 585.4999999999999, + 0 + ], + [ + 1775808000000, + 585.4999999999999, + 0 + ], + [ + 1775811600000, + 585.51, + 0 + ], + [ + 1775815200000, + 585.51, + 0 + ], + [ + 1775818800000, + 585.52, + 0 + ], + [ + 1775822400000, + 585.52, + 0 + ], + [ + 1775826000000, + 585.53, + 0 + ], + [ + 1775829600000, + 585.52, + 0 + ], + [ + 1775833200000, + 585.54, + 0 + ], + [ + 1775836800000, + 585.54, + 0 + ], + [ + 1775840400000, + 585.55, + 0 + ], + [ + 1775844000000, + 585.55, + 0 + ], + [ + 1775847600000, + 585.55, + 0 + ], + [ + 1775851200000, + 585.53, + 0 + ], + [ + 1775854800000, + 585.52, + 0 + ], + [ + 1775858400000, + 585.52, + 0 + ], + [ + 1775862000000, + 585.52, + 0 + ], + [ + 1775865600000, + 585.4599999999999, + 0 + ], + [ + 1775869200000, + 585.4599999999999, + 0 + ], + [ + 1775872800000, + 585.4699999999999, + 0 + ], + [ + 1775876400000, + 585.4899999999999, + 0 + ], + [ + 1775880000000, + 585.4899999999999, + 0 + ], + [ + 1775883600000, + 585.52, + 0 + ], + [ + 1775887200000, + 585.52, + 0 + ], + [ + 1775890800000, + 585.51, + 0 + ], + [ + 1775894400000, + 585.4999999999999, + 0 + ], + [ + 1775898000000, + 585.51, + 0 + ], + [ + 1775901600000, + 585.4999999999999, + 0 + ], + [ + 1775905200000, + 585.52, + 0 + ], + [ + 1775908800000, + 585.52, + 0 + ], + [ + 1775912400000, + 585.52, + 0 + ], + [ + 1775916000000, + 585.52, + 0 + ], + [ + 1775919600000, + 585.53, + 0 + ], + [ + 1775923200000, + 585.54, + 0 + ], + [ + 1775926800000, + 585.56, + 0 + ], + [ + 1775930400000, + 585.5699999999999, + 0 + ], + [ + 1775934000000, + 585.5799999999999, + 0 + ], + [ + 1775937600000, + 585.5799999999999, + 0 + ], + [ + 1775941200000, + 585.5799999999999, + 0 + ], + [ + 1775944800000, + 585.5799999999999, + 0 + ], + [ + 1775948400000, + 585.5799999999999, + 0 + ], + [ + 1775952000000, + 585.55, + 0 + ], + [ + 1775955600000, + 585.5699999999999, + 0 + ], + [ + 1775959200000, + 585.5799999999999, + 0 + ], + [ + 1775962800000, + 585.5699999999999, + 0 + ], + [ + 1775966400000, + 585.5699999999999, + 0 + ], + [ + 1775970000000, + 585.5799999999999, + 0 + ], + [ + 1775973600000, + 585.5699999999999, + 0 + ], + [ + 1775977200000, + 585.5699999999999, + 0 + ], + [ + 1775980800000, + 585.5699999999999, + 0 + ], + [ + 1775984400000, + 585.5799999999999, + 0 + ], + [ + 1775988000000, + 585.5999999999999, + 0 + ], + [ + 1775991600000, + 585.61, + 0 + ], + [ + 1775995200000, + 585.6299999999999, + 0 + ], + [ + 1775998800000, + 585.5999999999999, + 0 + ], + [ + 1776002400000, + 585.6199999999999, + 0 + ], + [ + 1776006000000, + 585.5999999999999, + 0 + ], + [ + 1776009600000, + 585.61, + 0 + ], + [ + 1776013200000, + 585.61, + 0 + ], + [ + 1776016800000, + 585.67, + 0 + ], + [ + 1776020400000, + 585.67, + 0 + ], + [ + 1776024000000, + 585.6899999999999, + 0 + ], + [ + 1776027600000, + 585.68, + 0 + ], + [ + 1776031200000, + 585.67, + 0 + ], + [ + 1776034800000, + 585.6599999999999, + 0 + ], + [ + 1776038400000, + 585.6299999999999, + 0 + ], + [ + 1776042000000, + 585.64, + 0 + ], + [ + 1776045600000, + 585.64, + 0 + ], + [ + 1776049200000, + 585.65, + 0 + ], + [ + 1776052800000, + 585.64, + 0 + ], + [ + 1776056400000, + 585.65, + 0 + ], + [ + 1776060000000, + 585.65, + 0 + ], + [ + 1776063600000, + 585.6599999999999, + 0 + ], + [ + 1776067200000, + 585.6599999999999, + 0 + ], + [ + 1776070800000, + 585.67, + 0 + ], + [ + 1776074400000, + 585.6999999999999, + 0 + ], + [ + 1776078000000, + 585.6999999999999, + 0 + ], + [ + 1776081600000, + 585.6999999999999, + 0 + ], + [ + 1776085200000, + 585.6999999999999, + 0 + ], + [ + 1776088800000, + 585.7099999999999, + 0 + ], + [ + 1776092400000, + 585.7099999999999, + 0 + ], + [ + 1776096000000, + 585.7099999999999, + 0 + ], + [ + 1776099600000, + 585.7199999999999, + 0 + ], + [ + 1776103200000, + 585.7099999999999, + 0 + ], + [ + 1776106800000, + 585.7099999999999, + 0 + ], + [ + 1776110400000, + 585.6999999999999, + 0 + ], + [ + 1776114000000, + 585.68, + 0 + ], + [ + 1776117600000, + 585.67, + 0 + ], + [ + 1776121200000, + 585.67, + 0 + ], + [ + 1776124800000, + 585.67, + 0 + ], + [ + 1776128400000, + 585.65, + 0 + ], + [ + 1776132000000, + 585.67, + 0 + ], + [ + 1776135600000, + 585.67, + 0 + ], + [ + 1776139200000, + 585.67, + 0 + ], + [ + 1776142800000, + 585.67, + 0 + ], + [ + 1776146400000, + 585.68, + 0 + ], + [ + 1776150000000, + 585.68, + 0 + ], + [ + 1776153600000, + 585.68, + 0 + ], + [ + 1776157200000, + 585.6899999999999, + 0 + ], + [ + 1776160800000, + 585.6999999999999, + 0 + ], + [ + 1776164400000, + 585.6999999999999, + 0 + ], + [ + 1776168000000, + 585.6899999999999, + 0 + ], + [ + 1776171600000, + 585.6999999999999, + 0 + ], + [ + 1776175200000, + 585.6899999999999, + 0 + ], + [ + 1776178800000, + 585.6999999999999, + 0 + ], + [ + 1776182400000, + 585.6999999999999, + 0 + ], + [ + 1776186000000, + 585.7099999999999, + 0 + ], + [ + 1776189600000, + 585.6999999999999, + 0 + ], + [ + 1776193200000, + 585.6899999999999, + 0 + ], + [ + 1776196800000, + 585.6599999999999, + 0 + ], + [ + 1776200400000, + 585.64, + 0 + ], + [ + 1776204000000, + 585.64, + 0 + ], + [ + 1776207600000, + 585.64, + 0 + ], + [ + 1776211200000, + 585.65, + 0 + ], + [ + 1776214800000, + 585.64, + 0 + ], + [ + 1776218400000, + 585.6299999999999, + 0 + ], + [ + 1776222000000, + 585.64, + 0 + ], + [ + 1776225600000, + 585.64, + 0 + ], + [ + 1776229200000, + 585.6599999999999, + -2147478653 + ], + [ + 1776232800000, + 585.67, + 0 + ], + [ + 1776236400000, + 585.65, + 0 + ], + [ + 1776240000000, + 585.6299999999999, + 0 + ], + [ + 1776243600000, + 585.6599999999999, + 0 + ], + [ + 1776247200000, + 585.65, + 0 + ], + [ + 1776250800000, + 585.6999999999999, + 0 + ], + [ + 1776254400000, + 585.7399999999999, + 0 + ], + [ + 1776258000000, + 585.7499999999999, + 0 + ], + [ + 1776261600000, + 585.73, + 0 + ], + [ + 1776265200000, + 585.7399999999999, + 0 + ], + [ + 1776268800000, + 585.7399999999999, + 0 + ], + [ + 1776272400000, + 585.7099999999999, + 0 + ], + [ + 1776276000000, + 585.7099999999999, + 0 + ], + [ + 1776279600000, + 585.7199999999999, + 0 + ], + [ + 1776283200000, + 585.7099999999999, + 0 + ], + [ + 1776286800000, + 585.7099999999999, + 0 + ], + [ + 1776290400000, + 585.73, + 0 + ], + [ + 1776294000000, + 585.7199999999999, + 0 + ], + [ + 1776297600000, + 585.6999999999999, + 0 + ], + [ + 1776301200000, + 585.6999999999999, + 0 + ], + [ + 1776304800000, + 585.6999999999999, + 0 + ], + [ + 1776308400000, + 585.68, + 0 + ], + [ + 1776312000000, + 585.6899999999999, + 0 + ], + [ + 1776315600000, + 585.7199999999999, + 0 + ], + [ + 1776319200000, + 585.7199999999999, + 0 + ], + [ + 1776322800000, + 585.7099999999999, + 0 + ], + [ + 1776326400000, + 585.7199999999999, + 0 + ], + [ + 1776330000000, + 585.6999999999999, + 0 + ], + [ + 1776333600000, + 585.6899999999999, + 0 + ], + [ + 1776337200000, + 585.6899999999999, + 0 + ], + [ + 1776340800000, + 585.7199999999999, + 0 + ], + [ + 1776344400000, + 585.7099999999999, + 0 + ], + [ + 1776348000000, + 585.7399999999999, + 0 + ], + [ + 1776351600000, + 585.77, + 0 + ], + [ + 1776355200000, + 585.79, + 0 + ], + [ + 1776358800000, + 585.79, + 0 + ], + [ + 1776362400000, + 585.79, + 0 + ], + [ + 1776366000000, + 585.79, + 0 + ], + [ + 1776369600000, + 585.79, + 0 + ], + [ + 1776373200000, + 585.79, + 0 + ], + [ + 1776376800000, + 585.79, + 0 + ], + [ + 1776380400000, + 585.79, + 0 + ], + [ + 1776384000000, + 585.79, + 0 + ], + [ + 1776387600000, + 585.8, + 0 + ], + [ + 1776391200000, + 585.8299999999999, + 0 + ], + [ + 1776394800000, + 585.8299999999999, + 0 + ], + [ + 1776398400000, + 585.8299999999999, + 0 + ], + [ + 1776402000000, + 585.8399999999999, + 0 + ], + [ + 1776405600000, + 585.8499999999999, + 0 + ], + [ + 1776409200000, + 585.8499999999999, + 0 + ], + [ + 1776412800000, + 585.8699999999999, + 0 + ], + [ + 1776416400000, + 585.8799999999999, + 0 + ], + [ + 1776420000000, + 585.89, + 0 + ], + [ + 1776423600000, + 585.9, + 0 + ], + [ + 1776427200000, + 585.9099999999999, + 0 + ], + [ + 1776430800000, + 585.92, + 0 + ], + [ + 1776434400000, + 585.93, + 0 + ], + [ + 1776438000000, + 585.9399999999999, + 0 + ], + [ + 1776441600000, + 585.9599999999999, + 0 + ], + [ + 1776445200000, + 585.9699999999999, + 0 + ], + [ + 1776448800000, + 585.9699999999999, + 0 + ], + [ + 1776452400000, + 585.9599999999999, + 0 + ], + [ + 1776456000000, + 585.9599999999999, + 0 + ], + [ + 1776459600000, + 585.9399999999999, + 0 + ], + [ + 1776463200000, + 585.93, + 0 + ], + [ + 1776466800000, + 585.93, + 0 + ], + [ + 1776470400000, + 585.9399999999999, + 0 + ], + [ + 1776474000000, + 585.9099999999999, + 0 + ], + [ + 1776477600000, + 585.9399999999999, + 0 + ], + [ + 1776481200000, + 585.9499999999999, + 0 + ], + [ + 1776484800000, + 585.9499999999999, + 0 + ], + [ + 1776488400000, + 585.9699999999999, + 0 + ], + [ + 1776492000000, + 586.0899999999999, + 0 + ], + [ + 1776495600000, + 586.04, + 0 + ], + [ + 1776499200000, + 585.98, + 0 + ], + [ + 1776502800000, + 585.9399999999999, + 0 + ], + [ + 1776506400000, + 585.98, + 0 + ], + [ + 1776510000000, + 585.9699999999999, + 0 + ], + [ + 1776513600000, + 585.9999999999999, + 0 + ], + [ + 1776517200000, + 585.9999999999999, + 0 + ], + [ + 1776520800000, + 586.03, + 0 + ], + [ + 1776524400000, + 585.9999999999999, + 0 + ], + [ + 1776528000000, + 586.01, + 0 + ], + [ + 1776531600000, + 585.9999999999999, + 0 + ], + [ + 1776535200000, + 585.9999999999999, + 0 + ], + [ + 1776538800000, + 585.9699999999999, + 0 + ], + [ + 1776542400000, + 585.9699999999999, + 0 + ], + [ + 1776546000000, + 585.9699999999999, + 0 + ], + [ + 1776549600000, + 585.9699999999999, + 0 + ], + [ + 1776553200000, + 585.9699999999999, + 0 + ], + [ + 1776556800000, + 585.9699999999999, + 0 + ], + [ + 1776560400000, + 585.9599999999999, + 0 + ], + [ + 1776564000000, + 585.9599999999999, + 0 + ], + [ + 1776567600000, + 585.9599999999999, + 0 + ], + [ + 1776571200000, + 585.9699999999999, + 0 + ], + [ + 1776574800000, + 585.98, + 0 + ], + [ + 1776578400000, + 585.9899999999999, + 0 + ], + [ + 1776582000000, + 585.9899999999999, + 0 + ], + [ + 1776585600000, + 585.9899999999999, + 0 + ], + [ + 1776589200000, + 585.98, + 0 + ], + [ + 1776592800000, + 585.9699999999999, + 0 + ], + [ + 1776596400000, + 585.9699999999999, + 0 + ], + [ + 1776600000000, + 585.98, + 0 + ], + [ + 1776603600000, + 585.98, + 0 + ], + [ + 1776607200000, + 585.9999999999999, + 0 + ], + [ + 1776610800000, + 585.9999999999999, + 0 + ], + [ + 1776614400000, + 585.9999999999999, + 0 + ], + [ + 1776618000000, + 585.9999999999999, + 0 + ], + [ + 1776621600000, + 585.9999999999999, + 0 + ], + [ + 1776625200000, + 585.98, + 0 + ], + [ + 1776628800000, + 585.9699999999999, + 0 + ], + [ + 1776632400000, + 585.9699999999999, + 0 + ], + [ + 1776636000000, + 585.9599999999999, + 0 + ], + [ + 1776639600000, + 585.9499999999999, + 0 + ], + [ + 1776643200000, + 585.9399999999999, + 0 + ], + [ + 1776646800000, + 585.9399999999999, + 0 + ], + [ + 1776650400000, + 585.93, + 0 + ], + [ + 1776654000000, + 585.93, + 0 + ], + [ + 1776657600000, + 585.93, + 0 + ], + [ + 1776661200000, + 585.9399999999999, + 0 + ], + [ + 1776664800000, + 585.9399999999999, + 0 + ], + [ + 1776668400000, + 585.9399999999999, + 0 + ], + [ + 1776672000000, + 585.9499999999999, + 0 + ], + [ + 1776675600000, + 585.9499999999999, + 0 + ], + [ + 1776679200000, + 585.9499999999999, + 0 + ], + [ + 1776682800000, + 585.9499999999999, + 0 + ], + [ + 1776686400000, + 585.9599999999999, + 0 + ], + [ + 1776690000000, + 585.9699999999999, + 0 + ], + [ + 1776693600000, + 585.9699999999999, + 0 + ], + [ + 1776697200000, + 585.9699999999999, + 0 + ], + [ + 1776700800000, + 585.9899999999999, + 0 + ], + [ + 1776704400000, + 585.9999999999999, + 0 + ], + [ + 1776708000000, + 586.01, + 0 + ], + [ + 1776711600000, + 585.9999999999999, + 0 + ], + [ + 1776715200000, + 585.9999999999999, + 0 + ], + [ + 1776718800000, + 585.9999999999999, + 0 + ], + [ + 1776722400000, + 585.9899999999999, + 0 + ], + [ + 1776726000000, + 585.9699999999999, + 0 + ], + [ + 1776729600000, + 585.9599999999999, + 0 + ], + [ + 1776733200000, + 585.9599999999999, + 0 + ], + [ + 1776736800000, + 585.9699999999999, + 0 + ], + [ + 1776740400000, + 585.9599999999999, + 0 + ], + [ + 1776744000000, + 585.9699999999999, + 0 + ], + [ + 1776747600000, + 585.9699999999999, + 0 + ], + [ + 1776751200000, + 585.9699999999999, + 0 + ], + [ + 1776754800000, + 585.9699999999999, + 0 + ], + [ + 1776758400000, + 585.98, + 0 + ], + [ + 1776762000000, + 585.98, + 0 + ], + [ + 1776765600000, + 585.9899999999999, + 0 + ], + [ + 1776769200000, + 585.98, + 0 + ], + [ + 1776772800000, + 585.98, + 0 + ], + [ + 1776776400000, + 585.98, + 0 + ], + [ + 1776780000000, + 585.9699999999999, + 0 + ], + [ + 1776783600000, + 585.98, + 0 + ], + [ + 1776787200000, + 586.02, + 0 + ], + [ + 1776790800000, + 586.03, + 0 + ], + [ + 1776794400000, + 586.01, + 0 + ], + [ + 1776798000000, + 585.9999999999999, + 0 + ], + [ + 1776801600000, + 585.9999999999999, + 0 + ], + [ + 1776805200000, + 585.9699999999999, + 0 + ], + [ + 1776808800000, + 585.9499999999999, + 0 + ], + [ + 1776812400000, + 585.9399999999999, + 0 + ], + [ + 1776816000000, + 585.93, + 0 + ], + [ + 1776819600000, + 585.93, + 0 + ], + [ + 1776823200000, + 585.93, + 0 + ], + [ + 1776826800000, + 585.9399999999999, + 0 + ], + [ + 1776830400000, + 585.9399999999999, + 0 + ], + [ + 1776834000000, + 585.93, + 0 + ], + [ + 1776837600000, + 585.93, + 0 + ], + [ + 1776841200000, + 585.92, + 0 + ], + [ + 1776844800000, + 585.9099999999999, + 0 + ], + [ + 1776848400000, + 585.9099999999999, + 0 + ], + [ + 1776852000000, + 585.9, + 0 + ], + [ + 1776855600000, + 585.89, + 0 + ], + [ + 1776859200000, + 585.89, + 0 + ], + [ + 1776862800000, + 585.89, + 0 + ], + [ + 1776866400000, + 585.89, + 0 + ], + [ + 1776870000000, + 585.89, + 0 + ], + [ + 1776873600000, + 585.89, + 0 + ], + [ + 1776877200000, + 585.8799999999999, + 0 + ], + [ + 1776880800000, + 585.8799999999999, + 0 + ], + [ + 1776884400000, + 585.8799999999999, + 0 + ], + [ + 1776888000000, + 585.8799999999999, + 0 + ], + [ + 1776891600000, + 585.8799999999999, + 0 + ], + [ + 1776895200000, + 585.8799999999999, + 0 + ], + [ + 1776898800000, + 585.8699999999999, + 0 + ], + [ + 1776902400000, + 585.86, + 0 + ], + [ + 1776906000000, + 585.8499999999999, + 0 + ], + [ + 1776909600000, + 585.8299999999999, + 0 + ], + [ + 1776913200000, + 585.8199999999999, + 0 + ], + [ + 1776916800000, + 585.8199999999999, + 0 + ], + [ + 1776920400000, + 585.8199999999999, + 0 + ], + [ + 1776924000000, + 585.8199999999999, + 0 + ], + [ + 1776927600000, + 585.8199999999999, + 0 + ], + [ + 1776931200000, + 585.8199999999999, + 0 + ], + [ + 1776934800000, + 585.81, + 0 + ], + [ + 1776938400000, + 585.81, + 0 + ], + [ + 1776942000000, + 585.81, + 0 + ], + [ + 1776945600000, + 585.81, + 0 + ], + [ + 1776949200000, + 585.8, + 0 + ], + [ + 1776952800000, + 585.79, + 0 + ], + [ + 1776956400000, + 585.79, + 0 + ], + [ + 1776960000000, + 585.79, + 0 + ], + [ + 1776963600000, + 585.8, + 0 + ], + [ + 1776967200000, + 585.8, + 0 + ], + [ + 1776970800000, + 585.79, + 0 + ], + [ + 1776974400000, + 585.78, + 0 + ], + [ + 1776978000000, + 585.79, + 0 + ], + [ + 1776981600000, + 585.79, + 0 + ], + [ + 1776985200000, + 585.77, + 0 + ], + [ + 1776988800000, + 585.76, + 0 + ], + [ + 1776992400000, + 585.7399999999999, + 0 + ], + [ + 1776996000000, + 585.7199999999999, + 0 + ], + [ + 1776999600000, + 585.7099999999999, + 0 + ], + [ + 1777003200000, + 585.7099999999999, + 0 + ], + [ + 1777006800000, + 585.7099999999999, + 0 + ], + [ + 1777010400000, + 585.7199999999999, + 0 + ], + [ + 1777014000000, + 585.73, + 0 + ], + [ + 1777017600000, + 585.73, + 0 + ], + [ + 1777021200000, + 585.76, + 0 + ], + [ + 1777024800000, + 585.76, + 0 + ], + [ + 1777028400000, + 585.6999999999999, + 0 + ], + [ + 1777032000000, + 585.7099999999999, + 0 + ], + [ + 1777035600000, + 585.73, + 0 + ], + [ + 1777039200000, + 585.7199999999999, + 0 + ], + [ + 1777042800000, + 585.6899999999999, + 0 + ], + [ + 1777046400000, + 585.73, + 0 + ], + [ + 1777050000000, + 585.7499999999999, + 0 + ], + [ + 1777053600000, + 585.7399999999999, + 0 + ], + [ + 1777057200000, + 585.7399999999999, + 0 + ], + [ + 1777060800000, + 585.7399999999999, + 0 + ], + [ + 1777064400000, + 585.7099999999999, + 0 + ], + [ + 1777068000000, + 585.6999999999999, + 0 + ], + [ + 1777071600000, + 585.68, + 0 + ], + [ + 1777075200000, + 585.68, + 0 + ], + [ + 1777078800000, + 585.67, + 0 + ], + [ + 1777082400000, + 585.6899999999999, + 0 + ], + [ + 1777086000000, + 585.68, + 0 + ], + [ + 1777089600000, + 585.6899999999999, + 0 + ], + [ + 1777093200000, + 585.68, + 0 + ], + [ + 1777096800000, + 585.68, + 0 + ], + [ + 1777100400000, + 585.67, + 0 + ], + [ + 1777104000000, + 585.67, + 0 + ], + [ + 1777107600000, + 585.67, + 0 + ], + [ + 1777111200000, + 585.67, + 0 + ], + [ + 1777114800000, + 585.67, + 0 + ], + [ + 1777118400000, + 585.67, + 0 + ], + [ + 1777122000000, + 585.6599999999999, + 0 + ], + [ + 1777125600000, + 585.65, + 0 + ], + [ + 1777129200000, + 585.65, + 0 + ], + [ + 1777132800000, + 585.64, + 0 + ], + [ + 1777136400000, + 585.6299999999999, + 0 + ], + [ + 1777140000000, + 585.61, + 0 + ], + [ + 1777143600000, + 585.61, + 0 + ], + [ + 1777147200000, + 585.61, + 0 + ], + [ + 1777150800000, + 585.6199999999999, + 0 + ], + [ + 1777154400000, + 585.64, + 0 + ], + [ + 1777158000000, + 585.64, + 0 + ], + [ + 1777161600000, + 585.64, + 0 + ], + [ + 1777165200000, + 585.64, + 0 + ], + [ + 1777168800000, + 585.61, + 0 + ], + [ + 1777172400000, + 585.5899999999999, + 0 + ], + [ + 1777176000000, + 585.5799999999999, + 0 + ], + [ + 1777179600000, + 585.56, + 0 + ], + [ + 1777183200000, + 585.53, + 0 + ], + [ + 1777186800000, + 585.52, + 0 + ], + [ + 1777190400000, + 585.55, + 0 + ], + [ + 1777194000000, + 585.56, + 0 + ], + [ + 1777197600000, + 585.5699999999999, + 0 + ], + [ + 1777201200000, + 585.5899999999999, + 0 + ], + [ + 1777204800000, + 585.5899999999999, + 0 + ], + [ + 1777208400000, + 585.5699999999999, + 0 + ], + [ + 1777212000000, + 585.56, + 0 + ], + [ + 1777215600000, + 585.56, + 0 + ], + [ + 1777219200000, + 585.55, + 0 + ], + [ + 1777222800000, + 585.54, + 0 + ], + [ + 1777226400000, + 585.55, + 0 + ], + [ + 1777230000000, + 585.55, + 0 + ], + [ + 1777233600000, + 585.56, + 0 + ], + [ + 1777237200000, + 585.55, + 0 + ], + [ + 1777240800000, + 585.54, + 0 + ], + [ + 1777244400000, + 585.54, + 0 + ], + [ + 1777248000000, + 585.54, + 0 + ], + [ + 1777251600000, + 585.52, + 0 + ], + [ + 1777255200000, + 585.52, + 0 + ], + [ + 1777258800000, + 585.52, + 0 + ], + [ + 1777262400000, + 585.4999999999999, + 0 + ], + [ + 1777266000000, + 585.4899999999999, + 0 + ], + [ + 1777269600000, + 585.4899999999999, + 0 + ], + [ + 1777273200000, + 585.4999999999999, + 0 + ], + [ + 1777276800000, + 585.4899999999999, + 0 + ], + [ + 1777280400000, + 585.4999999999999, + 0 + ], + [ + 1777284000000, + 585.51, + 0 + ], + [ + 1777287600000, + 585.52, + 0 + ], + [ + 1777291200000, + 585.52, + 0 + ], + [ + 1777294800000, + 585.52, + 0 + ], + [ + 1777298400000, + 585.4999999999999, + 0 + ], + [ + 1777302000000, + 585.54, + 0 + ], + [ + 1777305600000, + 585.54, + 0 + ], + [ + 1777309200000, + 585.55, + 0 + ], + [ + 1777312800000, + 585.55, + 0 + ], + [ + 1777316400000, + 585.54, + 0 + ], + [ + 1777320000000, + 585.52, + 0 + ], + [ + 1777323600000, + 585.4999999999999, + 0 + ], + [ + 1777327200000, + 585.4899999999999, + 0 + ], + [ + 1777330800000, + 585.51, + 0 + ], + [ + 1777334400000, + 585.4899999999999, + 0 + ], + [ + 1777338000000, + 585.4699999999999, + 0 + ], + [ + 1777341600000, + 585.4599999999999, + 0 + ], + [ + 1777345200000, + 585.4499999999999, + 0 + ], + [ + 1777348800000, + 585.43, + 0 + ], + [ + 1777352400000, + 585.43, + 0 + ], + [ + 1777356000000, + 585.4399999999999, + 0 + ], + [ + 1777359600000, + 585.4399999999999, + 0 + ], + [ + 1777363200000, + 585.43, + 0 + ], + [ + 1777366800000, + 585.43, + 0 + ], + [ + 1777370400000, + 585.43, + 0 + ], + [ + 1777374000000, + 585.43, + 0 + ], + [ + 1777377600000, + 585.43, + 0 + ], + [ + 1777381200000, + 585.43, + 0 + ], + [ + 1777384800000, + 585.4499999999999, + 0 + ], + [ + 1777388400000, + 585.4599999999999, + 0 + ], + [ + 1777392000000, + 585.4499999999999, + 0 + ], + [ + 1777395600000, + 585.4399999999999, + 0 + ], + [ + 1777399200000, + 585.43, + 0 + ], + [ + 1777402800000, + 585.4699999999999, + 0 + ], + [ + 1777406400000, + 585.4699999999999, + 0 + ], + [ + 1777410000000, + 585.4599999999999, + 0 + ], + [ + 1777413600000, + 585.4399999999999, + 0 + ], + [ + 1777417200000, + 585.4599999999999, + 0 + ], + [ + 1777420800000, + 585.42, + 0 + ], + [ + 1777424400000, + 585.4099999999999, + 0 + ], + [ + 1777428000000, + 585.4399999999999, + 0 + ], + [ + 1777431600000, + 585.43, + 0 + ], + [ + 1777435200000, + 585.42, + 0 + ], + [ + 1777438800000, + 585.4099999999999, + 0 + ], + [ + 1777442400000, + 585.4, + 0 + ], + [ + 1777446000000, + 585.4, + 0 + ], + [ + 1777449600000, + 585.4099999999999, + 0 + ], + [ + 1777453200000, + 585.4099999999999, + 0 + ], + [ + 1777456800000, + 585.39, + 0 + ], + [ + 1777460400000, + 585.4, + 0 + ], + [ + 1777464000000, + 585.3799999999999, + 0 + ], + [ + 1777467600000, + 585.3399999999999, + 0 + ], + [ + 1777471200000, + 585.3499999999999, + 0 + ], + [ + 1777474800000, + 585.3699999999999, + 0 + ], + [ + 1777478400000, + 585.36, + 0 + ], + [ + 1777482000000, + 585.3499999999999, + 0 + ], + [ + 1777485600000, + 585.3499999999999, + 0 + ], + [ + 1777489200000, + 585.3399999999999, + 0 + ], + [ + 1777492800000, + 585.3299999999999, + 0 + ], + [ + 1777496400000, + 585.3299999999999, + 0 + ], + [ + 1777500000000, + 585.3199999999999, + 0 + ], + [ + 1777503600000, + 585.3199999999999, + 0 + ], + [ + 1777507200000, + 585.31, + 0 + ], + [ + 1777510800000, + 585.31, + 0 + ], + [ + 1777514400000, + 585.3, + 0 + ], + [ + 1777518000000, + 585.31, + 0 + ], + [ + 1777521600000, + 585.31, + 0 + ], + [ + 1777525200000, + 585.3, + 0 + ], + [ + 1777528800000, + 585.3, + 0 + ], + [ + 1777532400000, + 585.29, + 0 + ], + [ + 1777536000000, + 585.28, + 0 + ], + [ + 1777539600000, + 585.27, + 0 + ], + [ + 1777543200000, + 585.28, + 0 + ], + [ + 1777546800000, + 585.27, + 0 + ], + [ + 1777550400000, + 585.28, + 0 + ], + [ + 1777554000000, + 585.26, + 0 + ], + [ + 1777557600000, + 585.2399999999999, + 0 + ], + [ + 1777561200000, + 585.23, + 0 + ], + [ + 1777564800000, + 585.23, + 0 + ], + [ + 1777568400000, + 585.2199999999999, + 0 + ], + [ + 1777572000000, + 585.2199999999999, + 0 + ], + [ + 1777575600000, + 585.2199999999999, + 0 + ], + [ + 1777579200000, + 585.2099999999999, + 0 + ], + [ + 1777582800000, + 585.1899999999999, + 0 + ], + [ + 1777586400000, + 585.1899999999999, + 0 + ], + [ + 1777590000000, + 585.1899999999999, + 0 + ], + [ + 1777593600000, + 585.18, + 0 + ], + [ + 1777597200000, + 585.1899999999999, + 0 + ], + [ + 1777600800000, + 585.1899999999999, + 0 + ], + [ + 1777604400000, + 585.1899999999999, + 0 + ], + [ + 1777608000000, + 585.1899999999999, + 0 + ], + [ + 1777611600000, + 585.1899999999999, + 0 + ], + [ + 1777615200000, + 585.1899999999999, + 0 + ], + [ + 1777618800000, + 585.18, + 0 + ], + [ + 1777622400000, + 585.17, + 0 + ], + [ + 1777626000000, + 585.18, + 0 + ], + [ + 1777629600000, + 585.17, + 0 + ], + [ + 1777633200000, + 585.17, + 0 + ], + [ + 1777636800000, + 585.17, + 0 + ], + [ + 1777640400000, + 585.18, + 0 + ], + [ + 1777644000000, + 585.1599999999999, + 0 + ], + [ + 1777647600000, + 585.1599999999999, + 0 + ], + [ + 1777651200000, + 585.1599999999999, + 0 + ], + [ + 1777654800000, + 585.15, + 0 + ], + [ + 1777658400000, + 585.14, + 0 + ], + [ + 1777662000000, + 585.1599999999999, + 0 + ], + [ + 1777665600000, + 585.14, + 0 + ], + [ + 1777669200000, + 585.1199999999999, + 0 + ], + [ + 1777672800000, + 585.1299999999999, + 0 + ], + [ + 1777676400000, + 585.11, + 0 + ], + [ + 1777680000000, + 585.11, + 0 + ], + [ + 1777683600000, + 585.11, + 0 + ], + [ + 1777687200000, + 585.0999999999999, + 0 + ], + [ + 1777690800000, + 585.11, + 0 + ], + [ + 1777694400000, + 585.11, + 0 + ], + [ + 1777698000000, + 585.11, + 0 + ], + [ + 1777701600000, + 585.1199999999999, + 0 + ], + [ + 1777705200000, + 585.1299999999999, + 0 + ], + [ + 1777708800000, + 585.11, + 0 + ], + [ + 1777712400000, + 585.11, + 0 + ], + [ + 1777716000000, + 585.1199999999999, + 0 + ], + [ + 1777719600000, + 585.1199999999999, + 0 + ], + [ + 1777723200000, + 585.1299999999999, + 0 + ], + [ + 1777726800000, + 585.1299999999999, + 0 + ], + [ + 1777730400000, + 585.1299999999999, + 0 + ], + [ + 1777734000000, + 585.1299999999999, + 0 + ], + [ + 1777737600000, + 585.1299999999999, + 0 + ], + [ + 1777741200000, + 585.1299999999999, + 0 + ], + [ + 1777744800000, + 585.1299999999999, + 0 + ], + [ + 1777748400000, + 585.1299999999999, + 0 + ], + [ + 1777752000000, + 585.1199999999999, + 0 + ], + [ + 1777755600000, + 585.1199999999999, + 0 + ], + [ + 1777759200000, + 585.1199999999999, + 0 + ], + [ + 1777762800000, + 585.1199999999999, + 0 + ], + [ + 1777766400000, + 585.0999999999999, + 0 + ], + [ + 1777770000000, + 585.0999999999999, + 0 + ], + [ + 1777773600000, + 585.0999999999999, + 0 + ], + [ + 1777777200000, + 585.0999999999999, + 0 + ], + [ + 1777780800000, + 585.0999999999999, + 0 + ], + [ + 1777784400000, + 585.11, + 0 + ], + [ + 1777788000000, + 585.11, + 0 + ], + [ + 1777791600000, + 585.0999999999999, + 0 + ], + [ + 1777795200000, + 585.0999999999999, + 0 + ], + [ + 1777798800000, + 585.0999999999999, + 0 + ], + [ + 1777802400000, + 585.0899999999999, + 0 + ], + [ + 1777806000000, + 585.0999999999999, + 0 + ], + [ + 1777809600000, + 585.0999999999999, + 0 + ], + [ + 1777813200000, + 585.0999999999999, + 0 + ], + [ + 1777816800000, + 585.1199999999999, + 0 + ], + [ + 1777820400000, + 585.1299999999999, + 0 + ], + [ + 1777824000000, + 585.14, + 0 + ], + [ + 1777827600000, + 585.14, + 0 + ], + [ + 1777831200000, + 585.15, + 0 + ], + [ + 1777834800000, + 585.14, + 0 + ], + [ + 1777838400000, + 585.1299999999999, + 0 + ], + [ + 1777842000000, + 585.1199999999999, + 0 + ], + [ + 1777845600000, + 585.1299999999999, + 0 + ], + [ + 1777849200000, + 585.1299999999999, + 0 + ], + [ + 1777852800000, + 585.1299999999999, + 0 + ], + [ + 1777856400000, + 585.1199999999999, + 0 + ], + [ + 1777860000000, + 585.1199999999999, + 0 + ], + [ + 1777863600000, + 585.0999999999999, + 0 + ], + [ + 1777867200000, + 585.0999999999999, + 0 + ], + [ + 1777870800000, + 585.0999999999999, + 0 + ], + [ + 1777874400000, + 585.0999999999999, + 0 + ], + [ + 1777878000000, + 585.1199999999999, + 0 + ], + [ + 1777881600000, + 585.1299999999999, + 0 + ], + [ + 1777885200000, + 585.1199999999999, + 0 + ], + [ + 1777888800000, + 585.1199999999999, + 0 + ], + [ + 1777892400000, + 585.1199999999999, + 0 + ], + [ + 1777896000000, + 585.1199999999999, + 0 + ], + [ + 1777899600000, + 585.1299999999999, + 0 + ], + [ + 1777903200000, + 585.1299999999999, + 0 + ], + [ + 1777906800000, + 585.14, + 0 + ], + [ + 1777910400000, + 585.15, + 0 + ], + [ + 1777914000000, + 585.1599999999999, + 0 + ], + [ + 1777917600000, + 585.1599999999999, + 0 + ], + [ + 1777921200000, + 585.1599999999999, + 0 + ], + [ + 1777924800000, + 585.15, + 0 + ], + [ + 1777928400000, + 585.1299999999999, + 0 + ], + [ + 1777932000000, + 585.11, + 0 + ], + [ + 1777935600000, + 585.0999999999999, + 0 + ], + [ + 1777939200000, + 585.0899999999999, + 0 + ], + [ + 1777942800000, + 585.0899999999999, + 0 + ], + [ + 1777946400000, + 585.0799999999999, + 0 + ], + [ + 1777950000000, + 585.06, + 0 + ], + [ + 1777953600000, + 585.06, + 0 + ], + [ + 1777957200000, + 585.0699999999999, + 0 + ], + [ + 1777960800000, + 585.0799999999999, + 0 + ], + [ + 1777964400000, + 585.0999999999999, + 0 + ], + [ + 1777968000000, + 585.1199999999999, + 0 + ], + [ + 1777971600000, + 585.1299999999999, + 0 + ], + [ + 1777975200000, + 585.1199999999999, + 0 + ], + [ + 1777978800000, + 585.0899999999999, + 0 + ], + [ + 1777982400000, + 585.0799999999999, + 0 + ], + [ + 1777986000000, + 585.06, + 0 + ], + [ + 1777989600000, + 585.06, + 0 + ], + [ + 1777993200000, + 585.05, + 0 + ], + [ + 1777996800000, + 585.05, + 0 + ], + [ + 1778000400000, + 585.0699999999999, + 0 + ], + [ + 1778004000000, + 585.0899999999999, + 0 + ], + [ + 1778007600000, + 585.0999999999999, + 0 + ], + [ + 1778011200000, + 585.15, + 0 + ], + [ + 1778014800000, + 585.15, + 0 + ], + [ + 1778018400000, + 585.1199999999999, + 0 + ], + [ + 1778022000000, + 585.0799999999999, + 0 + ], + [ + 1778025600000, + 585.0699999999999, + 0 + ], + [ + 1778029200000, + 585.0699999999999, + 0 + ], + [ + 1778032800000, + 585.06, + 0 + ], + [ + 1778036400000, + 585.06, + 0 + ], + [ + 1778040000000, + 585.0699999999999, + 0 + ], + [ + 1778043600000, + 585.0699999999999, + 0 + ], + [ + 1778047200000, + 585.06, + 0 + ], + [ + 1778050800000, + 585.05, + 0 + ], + [ + 1778054400000, + 585.04, + 0 + ], + [ + 1778058000000, + 585.03, + 0 + ], + [ + 1778061600000, + 585.04, + 0 + ], + [ + 1778065200000, + 585.04, + 0 + ], + [ + 1778068800000, + 585.03, + 0 + ], + [ + 1778072400000, + 585.03, + 0 + ], + [ + 1778076000000, + 585.01, + 0 + ], + [ + 1778079600000, + 584.98, + 0 + ], + [ + 1778083200000, + 584.98, + 0 + ], + [ + 1778086800000, + 585.01, + 0 + ], + [ + 1778090400000, + 585.03, + 0 + ], + [ + 1778094000000, + 585.03, + 0 + ], + [ + 1778097600000, + 585.04, + 0 + ], + [ + 1778101200000, + 585.04, + 0 + ], + [ + 1778104800000, + 585.03, + 0 + ], + [ + 1778108400000, + 585.03, + 0 + ], + [ + 1778112000000, + 585.01, + 0 + ], + [ + 1778115600000, + 585.02, + 0 + ], + [ + 1778119200000, + 585.02, + 0 + ], + [ + 1778122800000, + 585.04, + 0 + ], + [ + 1778126400000, + 585.03, + 0 + ], + [ + 1778130000000, + 585.04, + 0 + ], + [ + 1778133600000, + 585.04, + 0 + ], + [ + 1778137200000, + 585.03, + 0 + ], + [ + 1778140800000, + 585.02, + 0 + ], + [ + 1778144400000, + 585.02, + 0 + ], + [ + 1778148000000, + 585.02, + 0 + ], + [ + 1778151600000, + 585.02, + 0 + ], + [ + 1778155200000, + 585.03, + 0 + ], + [ + 1778158800000, + 585.03, + 0 + ], + [ + 1778162400000, + 585.03, + 0 + ], + [ + 1778166000000, + 585.04, + 0 + ], + [ + 1778169600000, + 585.04, + 0 + ], + [ + 1778173200000, + 585.04, + 0 + ], + [ + 1778176800000, + 585.04, + 0 + ], + [ + 1778180400000, + 585.04, + 0 + ], + [ + 1778184000000, + 585.03, + 0 + ], + [ + 1778187600000, + 585.02, + 0 + ], + [ + 1778191200000, + 585.02, + 0 + ], + [ + 1778194800000, + 584.9899999999999, + 0 + ], + [ + 1778198400000, + 584.9899999999999, + 0 + ], + [ + 1778202000000, + 584.98, + 0 + ], + [ + 1778205600000, + 584.9999999999999, + 0 + ], + [ + 1778209200000, + 584.9899999999999, + 0 + ], + [ + 1778212800000, + 584.9999999999999, + 0 + ], + [ + 1778216400000, + 584.9999999999999, + 0 + ], + [ + 1778220000000, + 584.9899999999999, + 0 + ], + [ + 1778223600000, + 584.98, + 0 + ], + [ + 1778227200000, + 584.9899999999999, + 0 + ], + [ + 1778230800000, + 584.9999999999999, + 0 + ], + [ + 1778234400000, + 584.9999999999999, + 0 + ], + [ + 1778238000000, + 585.01, + 0 + ], + [ + 1778241600000, + 585.01, + 0 + ], + [ + 1778245200000, + 585.01, + 0 + ], + [ + 1778248800000, + 585.01, + 0 + ], + [ + 1778252400000, + 585.01, + 0 + ], + [ + 1778256000000, + 585.01, + 0 + ], + [ + 1778259600000, + 585.01, + 0 + ], + [ + 1778263200000, + 585.01, + 0 + ], + [ + 1778266800000, + 585.01, + 0 + ], + [ + 1778270400000, + 585.01, + 0 + ], + [ + 1778274000000, + 585.01, + 0 + ], + [ + 1778277600000, + 585.01, + 0 + ], + [ + 1778281200000, + 584.9999999999999, + 0 + ], + [ + 1778284800000, + 584.98, + 0 + ], + [ + 1778288400000, + 585.01, + 0 + ], + [ + 1778292000000, + 584.9999999999999, + 0 + ], + [ + 1778295600000, + 584.9699999999999, + 0 + ], + [ + 1778299200000, + 584.9599999999999, + 0 + ], + [ + 1778302800000, + 584.9699999999999, + 0 + ], + [ + 1778306400000, + 584.9699999999999, + 0 + ], + [ + 1778310000000, + 584.9699999999999, + 0 + ], + [ + 1778313600000, + 584.9899999999999, + 0 + ], + [ + 1778317200000, + 584.9999999999999, + 0 + ], + [ + 1778320800000, + 585.01, + 0 + ], + [ + 1778324400000, + 584.9899999999999, + 0 + ], + [ + 1778328000000, + 584.9899999999999, + 0 + ], + [ + 1778331600000, + 584.98, + 0 + ], + [ + 1778335200000, + 584.98, + 0 + ], + [ + 1778338800000, + 584.98, + 0 + ], + [ + 1778342400000, + 584.9899999999999, + 0 + ], + [ + 1778346000000, + 584.9899999999999, + 0 + ], + [ + 1778349600000, + 584.9999999999999, + 0 + ], + [ + 1778353200000, + 584.9999999999999, + 0 + ], + [ + 1778356800000, + 584.9899999999999, + 0 + ], + [ + 1778360400000, + 584.98, + 0 + ], + [ + 1778364000000, + 584.98, + 0 + ], + [ + 1778367600000, + 584.9399999999999, + 0 + ], + [ + 1778371200000, + 584.9699999999999, + 0 + ], + [ + 1778374800000, + 584.9699999999999, + 0 + ], + [ + 1778378400000, + 584.9699999999999, + 0 + ], + [ + 1778382000000, + 584.9699999999999, + 0 + ], + [ + 1778385600000, + 584.9899999999999, + 0 + ], + [ + 1778389200000, + 584.98, + 0 + ], + [ + 1778392800000, + 584.9699999999999, + 0 + ], + [ + 1778396400000, + 584.9899999999999, + 0 + ], + [ + 1778400000000, + 585.01, + 0 + ], + [ + 1778403600000, + 584.98, + 0 + ], + [ + 1778407200000, + 584.9599999999999, + 0 + ], + [ + 1778410800000, + 584.9499999999999, + 0 + ], + [ + 1778414400000, + 584.9499999999999, + 0 + ], + [ + 1778418000000, + 584.9699999999999, + 0 + ], + [ + 1778421600000, + 584.9899999999999, + 0 + ], + [ + 1778425200000, + 585.01, + 0 + ], + [ + 1778428800000, + 584.9999999999999, + 0 + ], + [ + 1778432400000, + 584.98, + 0 + ], + [ + 1778436000000, + 585.01, + 0 + ], + [ + 1778439600000, + 585.01, + 0 + ], + [ + 1778443200000, + 585.02, + 0 + ], + [ + 1778446800000, + 585.01, + 0 + ], + [ + 1778450400000, + 585.04, + 0 + ], + [ + 1778454000000, + 585.02, + 0 + ], + [ + 1778457600000, + 585.01, + 0 + ], + [ + 1778461200000, + 584.98, + 0 + ], + [ + 1778464800000, + 584.9899999999999, + 0 + ], + [ + 1778468400000, + 584.98, + 0 + ], + [ + 1778472000000, + 584.98, + 0 + ], + [ + 1778475600000, + 584.98, + 0 + ], + [ + 1778479200000, + 584.98, + 0 + ], + [ + 1778482800000, + 584.98, + 0 + ], + [ + 1778486400000, + 584.9699999999999, + 0 + ], + [ + 1778490000000, + 584.9699999999999, + 0 + ], + [ + 1778493600000, + 584.98, + 0 + ], + [ + 1778497200000, + 584.9899999999999, + 0 + ], + [ + 1778500800000, + 584.98, + 0 + ], + [ + 1778504400000, + 584.9899999999999, + 0 + ], + [ + 1778508000000, + 584.98, + 0 + ], + [ + 1778511600000, + 584.98, + 0 + ], + [ + 1778515200000, + 584.98, + 0 + ], + [ + 1778518800000, + 584.98, + 0 + ], + [ + 1778522400000, + 584.98, + 0 + ], + [ + 1778526000000, + 584.98, + 0 + ], + [ + 1778529600000, + 584.98, + 0 + ], + [ + 1778533200000, + 584.9699999999999, + 0 + ], + [ + 1778536800000, + 584.9599999999999, + 0 + ], + [ + 1778540400000, + 584.9699999999999, + 0 + ], + [ + 1778544000000, + 584.9399999999999, + 0 + ], + [ + 1778547600000, + 584.9499999999999, + 0 + ], + [ + 1778551200000, + 584.9699999999999, + 0 + ], + [ + 1778554800000, + 584.9699999999999, + 0 + ], + [ + 1778558400000, + 584.9599999999999, + 0 + ], + [ + 1778562000000, + 584.9699999999999, + 0 + ], + [ + 1778565600000, + 584.9599999999999, + 0 + ], + [ + 1778569200000, + 584.9499999999999, + 0 + ], + [ + 1778572800000, + 584.9499999999999, + 0 + ], + [ + 1778576400000, + 584.9499999999999, + 0 + ], + [ + 1778580000000, + 584.9499999999999, + 0 + ], + [ + 1778583600000, + 584.9699999999999, + 0 + ], + [ + 1778587200000, + 584.9699999999999, + 0 + ], + [ + 1778590800000, + 584.9699999999999, + 0 + ], + [ + 1778594400000, + 584.9699999999999, + 0 + ], + [ + 1778598000000, + 584.9699999999999, + 0 + ], + [ + 1778601600000, + 584.9699999999999, + 0 + ], + [ + 1778605200000, + 584.9699999999999, + 0 + ], + [ + 1778608800000, + 584.9699999999999, + 0 + ], + [ + 1778612400000, + 584.9699999999999, + 0 + ], + [ + 1778616000000, + 584.9699999999999, + 0 + ], + [ + 1778619600000, + 584.9699999999999, + 0 + ], + [ + 1778623200000, + 584.9699999999999, + 0 + ], + [ + 1778626800000, + 584.9599999999999, + 0 + ], + [ + 1778630400000, + 584.9399999999999, + 0 + ], + [ + 1778634000000, + 584.93, + 0 + ], + [ + 1778637600000, + 584.93, + 0 + ], + [ + 1778641200000, + 584.9499999999999, + 0 + ], + [ + 1778644800000, + 584.93, + 0 + ], + [ + 1778648400000, + 584.9399999999999, + 0 + ], + [ + 1778652000000, + 584.93, + 0 + ], + [ + 1778655600000, + 584.93, + 0 + ], + [ + 1778659200000, + 584.92, + 0 + ], + [ + 1778662800000, + 584.93, + 0 + ], + [ + 1778666400000, + 584.93, + 0 + ], + [ + 1778670000000, + 584.9399999999999, + 0 + ], + [ + 1778673600000, + 584.9399999999999, + 0 + ], + [ + 1778677200000, + 584.9499999999999, + 0 + ], + [ + 1778680800000, + 584.9499999999999, + 0 + ], + [ + 1778684400000, + 584.9499999999999, + 0 + ], + [ + 1778688000000, + 584.9399999999999, + 0 + ], + [ + 1778691600000, + 584.9399999999999, + 0 + ], + [ + 1778695200000, + 584.93, + 0 + ], + [ + 1778698800000, + 584.92, + 0 + ], + [ + 1778702400000, + 584.89, + 0 + ], + [ + 1778706000000, + 584.89, + 0 + ], + [ + 1778709600000, + 584.89, + 0 + ], + [ + 1778713200000, + 584.89, + 0 + ], + [ + 1778716800000, + 584.8699999999999, + 0 + ], + [ + 1778720400000, + 584.8799999999999, + 0 + ], + [ + 1778724000000, + 584.89, + 0 + ], + [ + 1778727600000, + 584.8799999999999, + 0 + ], + [ + 1778731200000, + 584.8699999999999, + 0 + ], + [ + 1778734800000, + 584.8699999999999, + 0 + ], + [ + 1778738400000, + 584.86, + 0 + ], + [ + 1778742000000, + 584.8399999999999, + 0 + ], + [ + 1778745600000, + 584.8399999999999, + 0 + ], + [ + 1778749200000, + 584.8399999999999, + 0 + ], + [ + 1778752800000, + 584.8499999999999, + 0 + ], + [ + 1778756400000, + 584.86, + 0 + ], + [ + 1778760000000, + 584.86, + 0 + ], + [ + 1778763600000, + 584.86, + 0 + ], + [ + 1778767200000, + 584.86, + 0 + ], + [ + 1778770800000, + 584.86, + 0 + ], + [ + 1778774400000, + 584.86, + 0 + ], + [ + 1778778000000, + 584.86, + 0 + ], + [ + 1778781600000, + 584.8699999999999, + 0 + ], + [ + 1778785200000, + 584.86, + 0 + ], + [ + 1778788800000, + 584.86, + 0 + ], + [ + 1778792400000, + 584.8499999999999, + 0 + ], + [ + 1778796000000, + 584.8199999999999, + 0 + ], + [ + 1778799600000, + 584.8199999999999, + 0 + ], + [ + 1778803200000, + 584.8299999999999, + 0 + ], + [ + 1778806800000, + 584.8199999999999, + 0 + ], + [ + 1778810400000, + 584.8299999999999, + 0 + ], + [ + 1778814000000, + 584.8299999999999, + 0 + ], + [ + 1778817600000, + 584.8299999999999, + 0 + ], + [ + 1778821200000, + 584.8299999999999, + 0 + ], + [ + 1778824800000, + 584.8299999999999, + 0 + ], + [ + 1778828400000, + 584.8199999999999, + 0 + ], + [ + 1778832000000, + 584.81, + 0 + ], + [ + 1778835600000, + 584.8199999999999, + 0 + ], + [ + 1778839200000, + 584.8199999999999, + 0 + ], + [ + 1778842800000, + 584.8199999999999, + 0 + ], + [ + 1778846400000, + 584.8399999999999, + 0 + ], + [ + 1778850000000, + 584.86, + 0 + ], + [ + 1778853600000, + 584.8399999999999, + 0 + ], + [ + 1778857200000, + 584.8499999999999, + 0 + ], + [ + 1778860800000, + 584.8499999999999, + 0 + ], + [ + 1778864400000, + 584.8399999999999, + 0 + ], + [ + 1778868000000, + 584.8199999999999, + 0 + ], + [ + 1778871600000, + 584.79, + 0 + ], + [ + 1778875200000, + 584.77, + 0 + ], + [ + 1778878800000, + 584.78, + 0 + ], + [ + 1778882400000, + 584.79, + 0 + ], + [ + 1778886000000, + 584.78, + 0 + ], + [ + 1778889600000, + 584.79, + 0 + ], + [ + 1778893200000, + 584.79, + 0 + ], + [ + 1778896800000, + 584.8, + 0 + ], + [ + 1778900400000, + 584.77, + 0 + ], + [ + 1778904000000, + 584.77, + 0 + ], + [ + 1778907600000, + 584.77, + 0 + ], + [ + 1778911200000, + 584.8, + 0 + ], + [ + 1778914800000, + 584.77, + 0 + ], + [ + 1778918400000, + 584.77, + 0 + ], + [ + 1778922000000, + 584.77, + 0 + ], + [ + 1778925600000, + 584.79, + 0 + ], + [ + 1778929200000, + 584.78, + 0 + ], + [ + 1778932800000, + 584.79, + 0 + ], + [ + 1778936400000, + 584.8, + 0 + ], + [ + 1778940000000, + 584.8, + 0 + ], + [ + 1778943600000, + 584.8, + 0 + ], + [ + 1778947200000, + 584.8, + 0 + ], + [ + 1778950800000, + 584.8199999999999, + 0 + ], + [ + 1778954400000, + 584.81, + 0 + ], + [ + 1778958000000, + 584.8199999999999, + 0 + ], + [ + 1778961600000, + 584.79, + 0 + ], + [ + 1778965200000, + 584.7399999999999, + 0 + ], + [ + 1778968800000, + 584.7399999999999, + 0 + ], + [ + 1778972400000, + 584.73, + 0 + ], + [ + 1778976000000, + 584.7099999999999, + 0 + ], + [ + 1778979600000, + 584.7499999999999, + 0 + ], + [ + 1778983200000, + 584.77, + 0 + ], + [ + 1778986800000, + 584.7399999999999, + 0 + ], + [ + 1778990400000, + 584.7399999999999, + 0 + ], + [ + 1778994000000, + 584.7399999999999, + 0 + ], + [ + 1778997600000, + 584.7199999999999, + 0 + ], + [ + 1779001200000, + 584.7199999999999, + 0 + ], + [ + 1779004800000, + 584.7399999999999, + 0 + ], + [ + 1779008400000, + 584.73, + 0 + ], + [ + 1779012000000, + 584.7399999999999, + 0 + ], + [ + 1779015600000, + 584.7399999999999, + 0 + ], + [ + 1779019200000, + 584.7399999999999, + 0 + ], + [ + 1779022800000, + 584.73, + 0 + ], + [ + 1779026400000, + 584.7399999999999, + 0 + ], + [ + 1779030000000, + 584.7499999999999, + 0 + ], + [ + 1779033600000, + 584.7499999999999, + 0 + ], + [ + 1779037200000, + 584.77, + 0 + ], + [ + 1779040800000, + 584.78, + 0 + ], + [ + 1779044400000, + 584.77, + 0 + ], + [ + 1779048000000, + 584.76, + 0 + ], + [ + 1779051600000, + 584.7499999999999, + 0 + ], + [ + 1779055200000, + 584.7199999999999, + 0 + ], + [ + 1779058800000, + 584.7099999999999, + 0 + ], + [ + 1779062400000, + 584.7099999999999, + 0 + ], + [ + 1779066000000, + 584.7199999999999, + 0 + ], + [ + 1779069600000, + 584.7099999999999, + 0 + ], + [ + 1779073200000, + 584.7099999999999, + 0 + ], + [ + 1779076800000, + 584.7099999999999, + 0 + ], + [ + 1779080400000, + 584.7099999999999, + 0 + ], + [ + 1779084000000, + 584.7099999999999, + 0 + ], + [ + 1779087600000, + 584.7099999999999, + 0 + ], + [ + 1779091200000, + 584.7099999999999, + 0 + ], + [ + 1779094800000, + 584.7099999999999, + 0 + ], + [ + 1779098400000, + 584.7099999999999, + 0 + ], + [ + 1779102000000, + 584.7099999999999, + 0 + ], + [ + 1779105600000, + 584.73, + 0 + ], + [ + 1779109200000, + 584.73, + 0 + ], + [ + 1779112800000, + 584.73, + 0 + ], + [ + 1779116400000, + 584.7399999999999, + 0 + ], + [ + 1779120000000, + 584.7399999999999, + 0 + ], + [ + 1779123600000, + 584.7499999999999, + 0 + ], + [ + 1779127200000, + 584.7499999999999, + 0 + ], + [ + 1779130800000, + 584.7499999999999, + 0 + ], + [ + 1779134400000, + 584.7399999999999, + 0 + ], + [ + 1779138000000, + 584.73, + 0 + ], + [ + 1779141600000, + 584.7099999999999, + 0 + ], + [ + 1779145200000, + 584.7099999999999, + 0 + ], + [ + 1779148800000, + 584.6999999999999, + 0 + ], + [ + 1779152400000, + 584.6899999999999, + 0 + ], + [ + 1779156000000, + 584.6899999999999, + 0 + ], + [ + 1779159600000, + 584.68, + 0 + ], + [ + 1779163200000, + 584.68, + 0 + ], + [ + 1779166800000, + 584.68, + 0 + ], + [ + 1779170400000, + 584.67, + 0 + ], + [ + 1779174000000, + 584.68, + 0 + ], + [ + 1779177600000, + 584.67, + 0 + ], + [ + 1779181200000, + 584.68, + 0 + ], + [ + 1779184800000, + 584.6899999999999, + 0 + ], + [ + 1779188400000, + 584.6899999999999, + 0 + ], + [ + 1779192000000, + 584.6899999999999, + 0 + ], + [ + 1779195600000, + 584.73, + 0 + ], + [ + 1779199200000, + 584.77, + 0 + ], + [ + 1779202800000, + 584.79, + 0 + ], + [ + 1779206400000, + 584.81, + 0 + ], + [ + 1779210000000, + 584.8, + 0 + ], + [ + 1779213600000, + 584.8299999999999, + 0 + ], + [ + 1779217200000, + 584.8699999999999, + 0 + ], + [ + 1779220800000, + 584.8299999999999, + 0 + ], + [ + 1779224400000, + 584.89, + 0 + ], + [ + 1779228000000, + 584.8499999999999, + 0 + ], + [ + 1779231600000, + 584.8299999999999, + 0 + ], + [ + 1779235200000, + 584.8, + 0 + ], + [ + 1779238800000, + 584.8399999999999, + 0 + ], + [ + 1779242400000, + 584.8199999999999, + 0 + ], + [ + 1779246000000, + 584.8299999999999, + 0 + ], + [ + 1779249600000, + 584.8399999999999, + 0 + ], + [ + 1779253200000, + 584.8499999999999, + 0 + ], + [ + 1779256800000, + 584.8299999999999, + 0 + ], + [ + 1779260400000, + 584.8299999999999, + 0 + ], + [ + 1779264000000, + 584.8399999999999, + 0 + ], + [ + 1779267600000, + 584.8399999999999, + 0 + ], + [ + 1779271200000, + 584.8399999999999, + 0 + ], + [ + 1779274800000, + 584.8499999999999, + 0 + ], + [ + 1779278400000, + 584.8399999999999, + 0 + ], + [ + 1779282000000, + 584.8399999999999, + 0 + ], + [ + 1779285600000, + 584.8499999999999, + 0 + ], + [ + 1779289200000, + 584.86, + 0 + ], + [ + 1779292800000, + 584.86, + 0 + ], + [ + 1779296400000, + 584.8699999999999, + 0 + ], + [ + 1779300000000, + 584.8799999999999, + 0 + ], + [ + 1779303600000, + 584.8699999999999, + 0 + ], + [ + 1779307200000, + 584.86, + 0 + ], + [ + 1779310800000, + 584.86, + 0 + ], + [ + 1779314400000, + 584.8299999999999, + 0 + ], + [ + 1779318000000, + 584.8299999999999, + 0 + ], + [ + 1779321600000, + 584.8499999999999, + 0 + ], + [ + 1779325200000, + 584.8299999999999, + 0 + ], + [ + 1779328800000, + 584.8199999999999, + 0 + ], + [ + 1779332400000, + 584.8299999999999, + 0 + ], + [ + 1779336000000, + 584.8299999999999, + 0 + ], + [ + 1779339600000, + 584.8299999999999, + 0 + ], + [ + 1779343200000, + 584.8299999999999, + 0 + ], + [ + 1779346800000, + 584.8199999999999, + 0 + ], + [ + 1779350400000, + 584.8299999999999, + 0 + ], + [ + 1779354000000, + 584.8399999999999, + 0 + ], + [ + 1779357600000, + 584.8399999999999, + 0 + ], + [ + 1779361200000, + 584.8399999999999, + 0 + ], + [ + 1779364800000, + 584.8299999999999, + 0 + ], + [ + 1779368400000, + 584.8299999999999, + 0 + ], + [ + 1779372000000, + 584.8299999999999, + 0 + ], + [ + 1779375600000, + 584.8299999999999, + 0 + ], + [ + 1779379200000, + 584.8299999999999, + 0 + ], + [ + 1779382800000, + 584.8399999999999, + 0 + ], + [ + 1779386400000, + 584.8399999999999, + 0 + ], + [ + 1779390000000, + 584.8299999999999, + 0 + ], + [ + 1779393600000, + 584.8299999999999, + 0 + ], + [ + 1779397200000, + 584.8299999999999, + 0 + ], + [ + 1779400800000, + 584.8299999999999, + 0 + ], + [ + 1779404400000, + 584.8299999999999, + 0 + ], + [ + 1779408000000, + 584.8799999999999, + 0 + ], + [ + 1779411600000, + 584.86, + 0 + ], + [ + 1779415200000, + 584.8299999999999, + 0 + ], + [ + 1779418800000, + 584.8199999999999, + 0 + ], + [ + 1779422400000, + 584.81, + 0 + ], + [ + 1779426000000, + 584.8, + 0 + ], + [ + 1779429600000, + 584.8299999999999, + 0 + ], + [ + 1779433200000, + 584.86, + 0 + ], + [ + 1779436800000, + 584.8799999999999, + 0 + ], + [ + 1779440400000, + 584.89, + 0 + ], + [ + 1779444000000, + 584.9099999999999, + 0 + ], + [ + 1779447600000, + 584.9099999999999, + 0 + ], + [ + 1779451200000, + 584.9, + 0 + ], + [ + 1779454800000, + 584.9, + 0 + ], + [ + 1779458400000, + 584.9099999999999, + 0 + ], + [ + 1779462000000, + 584.9099999999999, + 0 + ], + [ + 1779465600000, + 584.92, + 0 + ], + [ + 1779469200000, + 584.92, + 0 + ], + [ + 1779472800000, + 584.92, + 0 + ], + [ + 1779476400000, + 584.93, + 0 + ], + [ + 1779480000000, + 584.9399999999999, + 0 + ], + [ + 1779483600000, + 584.9499999999999, + 0 + ], + [ + 1779487200000, + 584.92, + 0 + ], + [ + 1779490800000, + 584.92, + 0 + ], + [ + 1779494400000, + 584.93, + 0 + ], + [ + 1779498000000, + 584.92, + 0 + ], + [ + 1779501600000, + 584.92, + 0 + ], + [ + 1779505200000, + 584.9499999999999, + 0 + ], + [ + 1779508800000, + 584.9499999999999, + 0 + ], + [ + 1779512400000, + 584.9499999999999, + 0 + ], + [ + 1779516000000, + 584.9699999999999, + 0 + ], + [ + 1779519600000, + 584.9699999999999, + 0 + ], + [ + 1779523200000, + 584.98, + 0 + ], + [ + 1779526800000, + 584.98, + 0 + ], + [ + 1779530400000, + 584.98, + 0 + ], + [ + 1779534000000, + 584.9899999999999, + 0 + ], + [ + 1779537600000, + 585.03, + 0 + ], + [ + 1779541200000, + 585.0799999999999, + 0 + ], + [ + 1779544800000, + 585.1199999999999, + 0 + ], + [ + 1779548400000, + 585.11, + 0 + ], + [ + 1779552000000, + 585.0999999999999, + 0 + ], + [ + 1779555600000, + 585.0999999999999, + 0 + ], + [ + 1779559200000, + 585.11, + 0 + ], + [ + 1779562800000, + 585.1199999999999, + 0 + ], + [ + 1779566400000, + 585.1599999999999, + 0 + ], + [ + 1779570000000, + 585.1899999999999, + 0 + ], + [ + 1779573600000, + 585.18, + 0 + ], + [ + 1779577200000, + 585.18, + 0 + ], + [ + 1779580800000, + 585.1899999999999, + 0 + ], + [ + 1779584400000, + 585.1899999999999, + 0 + ], + [ + 1779588000000, + 585.1999999999999, + 0 + ], + [ + 1779591600000, + 585.2199999999999, + 0 + ], + [ + 1779595200000, + 585.2199999999999, + 0 + ], + [ + 1779598800000, + 585.2399999999999, + 0 + ], + [ + 1779602400000, + 585.2499999999999, + 0 + ], + [ + 1779606000000, + 585.27, + 0 + ], + [ + 1779609600000, + 585.28, + 0 + ], + [ + 1779613200000, + 585.31, + 0 + ], + [ + 1779616800000, + 585.3299999999999, + 0 + ], + [ + 1779620400000, + 585.3399999999999, + 0 + ], + [ + 1779624000000, + 585.3399999999999, + 0 + ], + [ + 1779627600000, + 585.3499999999999, + 0 + ], + [ + 1779631200000, + 585.3699999999999, + 0 + ], + [ + 1779634800000, + 585.3799999999999, + 0 + ], + [ + 1779638400000, + 585.39, + 0 + ], + [ + 1779642000000, + 585.4, + 0 + ], + [ + 1779645600000, + 585.4099999999999, + 0 + ], + [ + 1779649200000, + 585.4099999999999, + 0 + ], + [ + 1779652800000, + 585.42, + 0 + ], + [ + 1779656400000, + 585.43, + 0 + ], + [ + 1779660000000, + 585.43, + 0 + ], + [ + 1779663600000, + 585.43, + 0 + ], + [ + 1779667200000, + 585.4399999999999, + 0 + ], + [ + 1779670800000, + 585.4699999999999, + 0 + ], + [ + 1779674400000, + 585.48, + 0 + ], + [ + 1779678000000, + 585.48, + 0 + ], + [ + 1779681600000, + 585.4899999999999, + 0 + ], + [ + 1779685200000, + 585.4999999999999, + 0 + ], + [ + 1779688800000, + 585.4899999999999, + 0 + ], + [ + 1779692400000, + 585.4999999999999, + 0 + ], + [ + 1779696000000, + 585.51, + 0 + ], + [ + 1779699600000, + 585.52, + 0 + ], + [ + 1779703200000, + 585.52, + 0 + ], + [ + 1779706800000, + 585.53, + 0 + ], + [ + 1779710400000, + 585.54, + 0 + ], + [ + 1779714000000, + 585.55, + 0 + ], + [ + 1779717600000, + 585.55, + 0 + ], + [ + 1779721200000, + 585.55, + 0 + ], + [ + 1779724800000, + 585.55, + 0 + ], + [ + 1779728400000, + 585.55, + 0 + ], + [ + 1779732000000, + 585.55, + 0 + ], + [ + 1779735600000, + 585.56, + 0 + ], + [ + 1779739200000, + 585.5699999999999, + 0 + ], + [ + 1779742800000, + 585.55, + 0 + ], + [ + 1779746400000, + 585.55, + 0 + ], + [ + 1779750000000, + 585.56, + 0 + ], + [ + 1779753600000, + 585.55, + 0 + ], + [ + 1779757200000, + 585.56, + 0 + ], + [ + 1779760800000, + 585.5699999999999, + 0 + ], + [ + 1779764400000, + 585.5699999999999, + 0 + ], + [ + 1779768000000, + 585.56, + 0 + ], + [ + 1779771600000, + 585.5699999999999, + 0 + ], + [ + 1779775200000, + 585.56, + 0 + ], + [ + 1779778800000, + 585.56, + 0 + ], + [ + 1779782400000, + 585.5799999999999, + 0 + ], + [ + 1779786000000, + 585.5799999999999, + 0 + ], + [ + 1779789600000, + 585.5799999999999, + 0 + ], + [ + 1779793200000, + 585.5899999999999, + 0 + ], + [ + 1779796800000, + 585.5799999999999, + 0 + ], + [ + 1779800400000, + 585.5799999999999, + 0 + ], + [ + 1779804000000, + 585.5899999999999, + 0 + ], + [ + 1779807600000, + 585.5899999999999, + 0 + ], + [ + 1779811200000, + 585.5899999999999, + 0 + ], + [ + 1779814800000, + 585.5899999999999, + 0 + ], + [ + 1779818400000, + 585.5999999999999, + 0 + ], + [ + 1779822000000, + 585.5999999999999, + 0 + ], + [ + 1779825600000, + 585.5799999999999, + 0 + ], + [ + 1779829200000, + 585.5699999999999, + 0 + ], + [ + 1779832800000, + 585.56, + 0 + ], + [ + 1779836400000, + 585.55, + 0 + ], + [ + 1779840000000, + 585.55, + 0 + ], + [ + 1779843600000, + 585.55, + 0 + ], + [ + 1779847200000, + 585.55, + 0 + ], + [ + 1779850800000, + 585.56, + 0 + ], + [ + 1779854400000, + 585.55, + 0 + ], + [ + 1779858000000, + 585.54, + 0 + ], + [ + 1779861600000, + 585.54, + 0 + ], + [ + 1779865200000, + 585.54, + 0 + ], + [ + 1779868800000, + 585.53, + 0 + ], + [ + 1779872400000, + 585.53, + 0 + ], + [ + 1779876000000, + 585.52, + 0 + ], + [ + 1779879600000, + 585.52, + 0 + ], + [ + 1779883200000, + 585.51, + 0 + ], + [ + 1779886800000, + 585.4999999999999, + 0 + ], + [ + 1779890400000, + 585.4899999999999, + 0 + ], + [ + 1779894000000, + 585.4899999999999, + 0 + ], + [ + 1779897600000, + 585.4899999999999, + 0 + ], + [ + 1779901200000, + 585.4899999999999, + 0 + ], + [ + 1779904800000, + 585.48, + 0 + ], + [ + 1779908400000, + 585.4699999999999, + 0 + ], + [ + 1779912000000, + 585.4599999999999, + 0 + ], + [ + 1779915600000, + 585.4699999999999, + 0 + ], + [ + 1779919200000, + 585.48, + 0 + ], + [ + 1779922800000, + 585.4899999999999, + 0 + ], + [ + 1779926400000, + 585.4999999999999, + 0 + ], + [ + 1779930000000, + 585.4999999999999, + 0 + ], + [ + 1779933600000, + 585.4899999999999, + 0 + ], + [ + 1779937200000, + 585.52, + 0 + ], + [ + 1779940800000, + 585.51, + 0 + ], + [ + 1779944400000, + 585.51, + 0 + ], + [ + 1779948000000, + 585.51, + 0 + ], + [ + 1779951600000, + 585.53, + 0 + ], + [ + 1779955200000, + 585.53, + 0 + ], + [ + 1779958800000, + 585.55, + 0 + ], + [ + 1779962400000, + 585.55, + 0 + ], + [ + 1779966000000, + 585.56, + 0 + ], + [ + 1779969600000, + 585.5699999999999, + 0 + ], + [ + 1779973200000, + 585.5999999999999, + 0 + ], + [ + 1779976800000, + 585.64, + 0 + ], + [ + 1779980400000, + 585.64, + 0 + ], + [ + 1779984000000, + 585.64, + 0 + ], + [ + 1779987600000, + 585.67, + 0 + ], + [ + 1779991200000, + 585.68, + 0 + ], + [ + 1779994800000, + 585.67, + 0 + ], + [ + 1779998400000, + 585.7099999999999, + 0 + ], + [ + 1780002000000, + 585.68, + 0 + ], + [ + 1780005600000, + 585.68, + 0 + ], + [ + 1780009200000, + 585.7099999999999, + 0 + ], + [ + 1780012800000, + 585.6999999999999, + 0 + ], + [ + 1780016400000, + 585.68, + 0 + ], + [ + 1780020000000, + 585.7099999999999, + 0 + ], + [ + 1780023600000, + 585.73, + 0 + ], + [ + 1780027200000, + 585.73, + 0 + ], + [ + 1780030800000, + 585.7399999999999, + 0 + ], + [ + 1780034400000, + 585.77, + 0 + ], + [ + 1780038000000, + 585.76, + 0 + ], + [ + 1780041600000, + 585.76, + 0 + ], + [ + 1780045200000, + 585.79, + 0 + ], + [ + 1780048800000, + 585.8, + 0 + ], + [ + 1780052400000, + 585.8, + 0 + ], + [ + 1780056000000, + 585.8199999999999, + 0 + ], + [ + 1780059600000, + 585.8299999999999, + 0 + ], + [ + 1780063200000, + 585.8399999999999, + 0 + ], + [ + 1780066800000, + 585.8399999999999, + 0 + ], + [ + 1780070400000, + 585.8499999999999, + 0 + ], + [ + 1780074000000, + 585.86, + 0 + ], + [ + 1780077600000, + 585.86, + 0 + ], + [ + 1780081200000, + 585.86, + 0 + ], + [ + 1780084800000, + 585.86, + 0 + ], + [ + 1780088400000, + 585.8399999999999, + 0 + ], + [ + 1780092000000, + 585.8499999999999, + 0 + ], + [ + 1780095600000, + 585.8499999999999, + 0 + ], + [ + 1780099200000, + 585.8499999999999, + 0 + ], + [ + 1780102800000, + 585.86, + 0 + ], + [ + 1780106400000, + 585.8799999999999, + 0 + ], + [ + 1780110000000, + 585.8699999999999, + 0 + ], + [ + 1780113600000, + 585.8699999999999, + 0 + ], + [ + 1780117200000, + 585.8699999999999, + 0 + ], + [ + 1780120800000, + 585.8799999999999, + 0 + ], + [ + 1780124400000, + 585.86, + 0 + ], + [ + 1780128000000, + 585.8799999999999, + 0 + ], + [ + 1780131600000, + 585.89, + 0 + ], + [ + 1780135200000, + 585.89, + 0 + ], + [ + 1780138800000, + 585.8799999999999, + 0 + ], + [ + 1780142400000, + 585.89, + 0 + ], + [ + 1780146000000, + 585.9, + 0 + ], + [ + 1780149600000, + 585.9, + 0 + ], + [ + 1780153200000, + 585.9099999999999, + 0 + ], + [ + 1780156800000, + 585.92, + 0 + ], + [ + 1780160400000, + 585.92, + 0 + ], + [ + 1780164000000, + 585.92, + 0 + ], + [ + 1780167600000, + 585.93, + 0 + ], + [ + 1780171200000, + 585.93, + 0 + ], + [ + 1780174800000, + 585.9099999999999, + 0 + ], + [ + 1780178400000, + 585.92, + 0 + ], + [ + 1780182000000, + 585.92, + 0 + ], + [ + 1780185600000, + 585.92, + 0 + ], + [ + 1780189200000, + 585.9099999999999, + 0 + ], + [ + 1780192800000, + 585.93, + 0 + ], + [ + 1780196400000, + 585.9499999999999, + 0 + ], + [ + 1780200000000, + 585.93, + 0 + ], + [ + 1780203600000, + 585.92, + 0 + ], + [ + 1780207200000, + 585.9399999999999, + 0 + ], + [ + 1780210800000, + 585.9399999999999, + 0 + ], + [ + 1780214400000, + 585.9399999999999, + 0 + ], + [ + 1780218000000, + 585.92, + 0 + ], + [ + 1780221600000, + 585.9399999999999, + 0 + ], + [ + 1780225200000, + 585.9499999999999, + 0 + ], + [ + 1780228800000, + 585.9399999999999, + 0 + ], + [ + 1780232400000, + 585.9499999999999, + 0 + ], + [ + 1780236000000, + 585.9699999999999, + 0 + ], + [ + 1780239600000, + 585.9699999999999, + 0 + ], + [ + 1780243200000, + 585.98, + 0 + ], + [ + 1780246800000, + 585.9899999999999, + 0 + ], + [ + 1780250400000, + 585.9899999999999, + 0 + ], + [ + 1780254000000, + 585.98, + 0 + ], + [ + 1780257600000, + 585.98, + 0 + ], + [ + 1780261200000, + 585.9499999999999, + 0 + ], + [ + 1780264800000, + 585.9499999999999, + 0 + ], + [ + 1780268400000, + 585.9399999999999, + 0 + ], + [ + 1780272000000, + 585.93, + 0 + ], + [ + 1780275600000, + 585.9099999999999, + 0 + ], + [ + 1780279200000, + 585.93, + 0 + ], + [ + 1780282800000, + 585.92, + 0 + ], + [ + 1780286400000, + 585.92, + 0 + ], + [ + 1780290000000, + 585.93, + 0 + ], + [ + 1780293600000, + 585.92, + 0 + ], + [ + 1780297200000, + 585.9099999999999, + 0 + ], + [ + 1780300800000, + 585.9099999999999, + 0 + ], + [ + 1780304400000, + 585.9099999999999, + 0 + ], + [ + 1780308000000, + 585.9099999999999, + 0 + ], + [ + 1780311600000, + 585.9099999999999, + 0 + ], + [ + 1780315200000, + 585.9099999999999, + 0 + ], + [ + 1780318800000, + 585.9099999999999, + 0 + ], + [ + 1780322400000, + 585.89, + 0 + ], + [ + 1780326000000, + 585.8799999999999, + 0 + ], + [ + 1780329600000, + 585.8699999999999, + 0 + ], + [ + 1780333200000, + 585.8799999999999, + 0 + ], + [ + 1780336800000, + 585.8699999999999, + 0 + ], + [ + 1780340400000, + 585.8699999999999, + 0 + ], + [ + 1780344000000, + 585.86, + 0 + ], + [ + 1780347600000, + 585.8399999999999, + 0 + ], + [ + 1780351200000, + 585.8199999999999, + 0 + ], + [ + 1780354800000, + 585.8199999999999, + 0 + ], + [ + 1780358400000, + 585.81, + 0 + ], + [ + 1780362000000, + 585.81, + 0 + ], + [ + 1780365600000, + 585.81, + 0 + ], + [ + 1780369200000, + 585.81, + 0 + ], + [ + 1780372800000, + 585.8, + 0 + ], + [ + 1780376400000, + 585.8, + 0 + ], + [ + 1780380000000, + 585.8199999999999, + 0 + ], + [ + 1780383600000, + 585.8199999999999, + 0 + ], + [ + 1780387200000, + 585.81, + 0 + ], + [ + 1780390800000, + 585.81, + 0 + ], + [ + 1780394400000, + 585.8, + 0 + ], + [ + 1780398000000, + 585.79, + 0 + ], + [ + 1780401600000, + 585.8499999999999, + 0 + ], + [ + 1780405200000, + 585.8199999999999, + 0 + ], + [ + 1780408800000, + 585.8199999999999, + 0 + ], + [ + 1780412400000, + 585.78, + 0 + ], + [ + 1780416000000, + 585.79, + 0 + ], + [ + 1780419600000, + 585.78, + 0 + ], + [ + 1780423200000, + 585.8, + 0 + ], + [ + 1780426800000, + 585.79, + 0 + ], + [ + 1780430400000, + 585.79, + 0 + ], + [ + 1780434000000, + 585.79, + 0 + ], + [ + 1780437600000, + 585.79, + 0 + ], + [ + 1780441200000, + 585.76, + 0 + ], + [ + 1780444800000, + 585.77, + 0 + ], + [ + 1780448400000, + 585.79, + 0 + ], + [ + 1780452000000, + 585.78, + 0 + ], + [ + 1780455600000, + 585.78, + 0 + ], + [ + 1780459200000, + 585.79, + 0 + ], + [ + 1780462800000, + 585.81, + 0 + ], + [ + 1780466400000, + 585.7199999999999, + 0 + ], + [ + 1780470000000, + 585.79, + 0 + ], + [ + 1780473600000, + 585.8399999999999, + 0 + ], + [ + 1780477200000, + 585.78, + 0 + ], + [ + 1780480800000, + 585.8199999999999, + 0 + ], + [ + 1780484400000, + 585.8799999999999, + 0 + ], + [ + 1780488000000, + 585.8499999999999, + 0 + ], + [ + 1780491600000, + 585.8299999999999, + 0 + ], + [ + 1780495200000, + 585.8499999999999, + 0 + ], + [ + 1780498800000, + 585.8399999999999, + 0 + ], + [ + 1780502400000, + 585.8199999999999, + 0 + ], + [ + 1780506000000, + 585.8399999999999, + 0 + ], + [ + 1780509600000, + 585.8499999999999, + 0 + ], + [ + 1780513200000, + 585.8499999999999, + 0 + ], + [ + 1780516800000, + 585.8499999999999, + 0 + ], + [ + 1780520400000, + 585.8499999999999, + 0 + ], + [ + 1780524000000, + 585.8299999999999, + 0 + ], + [ + 1780527600000, + 585.8199999999999, + 0 + ], + [ + 1780531200000, + 585.81, + 0 + ], + [ + 1780534800000, + 585.8199999999999, + 0 + ], + [ + 1780538400000, + 585.8299999999999, + 0 + ], + [ + 1780542000000, + 585.8499999999999, + 0 + ], + [ + 1780545600000, + 585.8499999999999, + 0 + ], + [ + 1780549200000, + 585.86, + 0 + ], + [ + 1780552800000, + 585.86, + 0 + ], + [ + 1780556400000, + 585.8499999999999, + 0 + ], + [ + 1780560000000, + 585.8399999999999, + 0 + ], + [ + 1780563600000, + 585.8499999999999, + 0 + ], + [ + 1780567200000, + 585.8499999999999, + 0 + ], + [ + 1780570800000, + 585.8399999999999, + 0 + ], + [ + 1780574400000, + 585.8499999999999, + 0 + ], + [ + 1780578000000, + 585.8499999999999, + 0 + ], + [ + 1780581600000, + 585.8499999999999, + 0 + ], + [ + 1780585200000, + 585.8499999999999, + 0 + ], + [ + 1780588800000, + 585.8699999999999, + 0 + ], + [ + 1780592400000, + 585.8699999999999, + 0 + ], + [ + 1780596000000, + 585.8799999999999, + 0 + ], + [ + 1780599600000, + 585.8799999999999, + 0 + ], + [ + 1780603200000, + 585.8699999999999, + 0 + ], + [ + 1780606800000, + 585.86, + 0 + ], + [ + 1780610400000, + 585.8499999999999, + 0 + ], + [ + 1780614000000, + 585.8399999999999, + 0 + ], + [ + 1780617600000, + 585.8499999999999, + 0 + ], + [ + 1780621200000, + 585.8499999999999, + 0 + ], + [ + 1780624800000, + 585.8499999999999, + 0 + ], + [ + 1780628400000, + 585.8499999999999, + 0 + ], + [ + 1780632000000, + 585.86, + 0 + ], + [ + 1780635600000, + 585.8499999999999, + 0 + ], + [ + 1780639200000, + 585.8499999999999, + 0 + ], + [ + 1780642800000, + 585.8499999999999, + 0 + ], + [ + 1780646400000, + 585.86, + 0 + ], + [ + 1780650000000, + 585.86, + 0 + ], + [ + 1780653600000, + 585.86, + 0 + ], + [ + 1780657200000, + 585.86, + 0 + ], + [ + 1780660800000, + 585.8399999999999, + 0 + ], + [ + 1780664400000, + 585.8299999999999, + 0 + ], + [ + 1780668000000, + 585.8299999999999, + 0 + ], + [ + 1780671600000, + 585.8199999999999, + 0 + ], + [ + 1780675200000, + 585.81, + 0 + ], + [ + 1780678800000, + 585.81, + 0 + ], + [ + 1780682400000, + 585.8, + 0 + ], + [ + 1780686000000, + 585.78, + 0 + ], + [ + 1780689600000, + 585.76, + 0 + ], + [ + 1780693200000, + 585.7399999999999, + 0 + ], + [ + 1780696800000, + 585.73, + 0 + ], + [ + 1780700400000, + 585.73, + 0 + ], + [ + 1780704000000, + 585.7099999999999, + 0 + ], + [ + 1780707600000, + 585.7099999999999, + 0 + ], + [ + 1780711200000, + 585.6999999999999, + 0 + ], + [ + 1780714800000, + 585.6899999999999, + 0 + ], + [ + 1780718400000, + 585.6999999999999, + 0 + ], + [ + 1780722000000, + 585.6999999999999, + 0 + ], + [ + 1780725600000, + 585.6899999999999, + 0 + ], + [ + 1780729200000, + 585.6999999999999, + 0 + ], + [ + 1780732800000, + 585.6999999999999, + 0 + ], + [ + 1780736400000, + 585.68, + 0 + ], + [ + 1780740000000, + 585.68, + 0 + ], + [ + 1780743600000, + 585.68, + 0 + ], + [ + 1780747200000, + 585.67, + 0 + ], + [ + 1780750800000, + 585.67, + 0 + ], + [ + 1780754400000, + 585.68, + 0 + ], + [ + 1780758000000, + 585.6899999999999, + 0 + ], + [ + 1780761600000, + 585.78, + 0 + ], + [ + 1780765200000, + 585.79, + 0 + ], + [ + 1780768800000, + 585.86, + 0 + ], + [ + 1780772400000, + 585.89, + 0 + ], + [ + 1780776000000, + 585.8799999999999, + 0 + ], + [ + 1780779600000, + 585.93, + 0 + ], + [ + 1780783200000, + 585.9999999999999, + 0 + ], + [ + 1780786800000, + 586.02, + 0 + ], + [ + 1780790400000, + 585.9899999999999, + 0 + ], + [ + 1780794000000, + 586.06, + 0 + ], + [ + 1780797600000, + 586.0799999999999, + 0 + ], + [ + 1780801200000, + 586.06, + 0 + ], + [ + 1780804800000, + 586.0899999999999, + 0 + ], + [ + 1780808400000, + 586.1199999999999, + 0 + ], + [ + 1780812000000, + 586.11, + 0 + ], + [ + 1780815600000, + 586.1199999999999, + 0 + ], + [ + 1780819200000, + 586.14, + 0 + ], + [ + 1780822800000, + 586.15, + 0 + ], + [ + 1780826400000, + 586.15, + 0 + ], + [ + 1780830000000, + 586.17, + 0 + ], + [ + 1780833600000, + 586.18, + 0 + ], + [ + 1780837200000, + 586.1899999999999, + 0 + ], + [ + 1780840800000, + 586.2099999999999, + 0 + ], + [ + 1780844400000, + 586.2099999999999, + 0 + ], + [ + 1780848000000, + 586.23, + 0 + ], + [ + 1780851600000, + 586.2399999999999, + 0 + ], + [ + 1780855200000, + 586.2499999999999, + 0 + ], + [ + 1780858800000, + 586.2499999999999, + 0 + ], + [ + 1780862400000, + 586.3, + 0 + ], + [ + 1780866000000, + 586.29, + 0 + ], + [ + 1780869600000, + 586.29, + 0 + ], + [ + 1780873200000, + 586.3, + 0 + ], + [ + 1780876800000, + 586.31, + 0 + ], + [ + 1780880400000, + 586.28, + 0 + ], + [ + 1780884000000, + 586.3, + 0 + ], + [ + 1780887600000, + 586.3199999999999, + 0 + ], + [ + 1780891200000, + 586.3199999999999, + 0 + ], + [ + 1780894800000, + 586.3299999999999, + 0 + ], + [ + 1780898400000, + 586.3499999999999, + 0 + ], + [ + 1780902000000, + 586.3499999999999, + 0 + ], + [ + 1780905600000, + 586.36, + 0 + ], + [ + 1780909200000, + 586.39, + 0 + ], + [ + 1780912800000, + 586.39, + 0 + ], + [ + 1780916400000, + 586.4, + 0 + ], + [ + 1780920000000, + 586.42, + 0 + ], + [ + 1780923600000, + 586.42, + 0 + ], + [ + 1780927200000, + 586.42, + 0 + ], + [ + 1780930800000, + 586.43, + 0 + ], + [ + 1780934400000, + 586.43, + 0 + ], + [ + 1780938000000, + 586.4399999999999, + 0 + ], + [ + 1780941600000, + 586.4599999999999, + 0 + ], + [ + 1780945200000, + 586.4699999999999, + 0 + ], + [ + 1780948800000, + 586.4699999999999, + 0 + ], + [ + 1780952400000, + 586.4599999999999, + 0 + ], + [ + 1780956000000, + 586.4599999999999, + 0 + ], + [ + 1780959600000, + 586.4599999999999, + 0 + ], + [ + 1780963200000, + 586.4499999999999, + 0 + ], + [ + 1780966800000, + 586.4699999999999, + 0 + ], + [ + 1780970400000, + 586.4599999999999, + 0 + ], + [ + 1780974000000, + 586.4499999999999, + 0 + ], + [ + 1780977600000, + 586.4499999999999, + 0 + ], + [ + 1780981200000, + 586.4599999999999, + 0 + ], + [ + 1780984800000, + 586.4599999999999, + 0 + ], + [ + 1780988400000, + 586.4899999999999, + 0 + ], + [ + 1780992000000, + 586.51, + 0 + ], + [ + 1780995600000, + 586.51, + 0 + ], + [ + 1780999200000, + 586.51, + 0 + ], + [ + 1781002800000, + 586.51, + 0 + ], + [ + 1781006400000, + 586.52, + 0 + ], + [ + 1781010000000, + 586.53, + 0 + ], + [ + 1781013600000, + 586.54, + 0 + ], + [ + 1781017200000, + 586.56, + 0 + ], + [ + 1781020800000, + 586.5699999999999, + 0 + ], + [ + 1781024400000, + 586.5699999999999, + 0 + ], + [ + 1781028000000, + 586.5699999999999, + 0 + ], + [ + 1781031600000, + 586.5699999999999, + 0 + ], + [ + 1781035200000, + 586.54, + 0 + ], + [ + 1781038800000, + 586.54, + 0 + ], + [ + 1781042400000, + 586.54, + 0 + ], + [ + 1781046000000, + 586.53, + 0 + ], + [ + 1781049600000, + 586.52, + 0 + ], + [ + 1781053200000, + 586.52, + 0 + ], + [ + 1781056800000, + 586.51, + 0 + ], + [ + 1781060400000, + 586.54, + 0 + ], + [ + 1781064000000, + 586.52, + 0 + ], + [ + 1781067600000, + 586.51, + 0 + ], + [ + 1781071200000, + 586.51, + 0 + ], + [ + 1781074800000, + 586.51, + 0 + ], + [ + 1781078400000, + 586.51, + 0 + ], + [ + 1781082000000, + 586.52, + 0 + ], + [ + 1781085600000, + 586.54, + 0 + ], + [ + 1781089200000, + 586.5699999999999, + 0 + ], + [ + 1781092800000, + 586.5699999999999, + 0 + ], + [ + 1781096400000, + 586.5699999999999, + 0 + ], + [ + 1781100000000, + 586.5799999999999, + 0 + ], + [ + 1781103600000, + 586.5999999999999, + 0 + ], + [ + 1781107200000, + 586.5899999999999, + 0 + ], + [ + 1781110800000, + 586.5999999999999, + 0 + ], + [ + 1781114400000, + 586.5899999999999, + 0 + ], + [ + 1781118000000, + 586.5899999999999, + 0 + ], + [ + 1781121600000, + 586.5699999999999, + 0 + ], + [ + 1781125200000, + 586.5799999999999, + 0 + ], + [ + 1781128800000, + 586.5699999999999, + 0 + ], + [ + 1781132400000, + 586.54, + 0 + ], + [ + 1781136000000, + 586.54, + 0 + ], + [ + 1781139600000, + 586.54, + 0 + ], + [ + 1781143200000, + 586.53, + 0 + ], + [ + 1781146800000, + 586.51, + 0 + ], + [ + 1781150400000, + 586.51, + 0 + ], + [ + 1781154000000, + 586.51, + 0 + ], + [ + 1781157600000, + 586.51, + 0 + ], + [ + 1781161200000, + 586.51, + 0 + ], + [ + 1781164800000, + 586.53, + 0 + ], + [ + 1781168400000, + 586.53, + 0 + ], + [ + 1781172000000, + 586.54, + 0 + ], + [ + 1781175600000, + 586.55, + 0 + ], + [ + 1781179200000, + 586.56, + 0 + ], + [ + 1781182800000, + 586.5699999999999, + 0 + ], + [ + 1781186400000, + 586.5699999999999, + 0 + ], + [ + 1781190000000, + 586.5799999999999, + 0 + ], + [ + 1781193600000, + 586.5799999999999, + 0 + ], + [ + 1781197200000, + 586.5899999999999, + 0 + ], + [ + 1781200800000, + 586.5799999999999, + 0 + ], + [ + 1781204400000, + 586.5699999999999, + 0 + ], + [ + 1781208000000, + 586.54, + 0 + ], + [ + 1781211600000, + 586.54, + 0 + ], + [ + 1781215200000, + 586.52, + 0 + ], + [ + 1781218800000, + 586.51, + 0 + ], + [ + 1781222400000, + 586.4899999999999, + 0 + ], + [ + 1781226000000, + 586.48, + 0 + ], + [ + 1781229600000, + 586.48, + 0 + ], + [ + 1781233200000, + 586.4899999999999, + 0 + ], + [ + 1781236800000, + 586.48, + 0 + ], + [ + 1781240400000, + 586.48, + 0 + ], + [ + 1781244000000, + 586.4899999999999, + 0 + ], + [ + 1781247600000, + 586.48, + 0 + ], + [ + 1781251200000, + 586.48, + 0 + ], + [ + 1781254800000, + 586.4999999999999, + 0 + ], + [ + 1781258400000, + 586.4999999999999, + 0 + ], + [ + 1781262000000, + 586.54, + 0 + ], + [ + 1781265600000, + 586.5799999999999, + 0 + ], + [ + 1781269200000, + 586.5999999999999, + 0 + ], + [ + 1781272800000, + 586.6599999999999, + 0 + ], + [ + 1781276400000, + 586.7499999999999, + 0 + ], + [ + 1781280000000, + 586.78, + 0 + ], + [ + 1781283600000, + 586.81, + 0 + ], + [ + 1781287200000, + 586.86, + 0 + ], + [ + 1781290800000, + 586.8699999999999, + 0 + ], + [ + 1781294400000, + 586.89, + 0 + ], + [ + 1781298000000, + 586.9, + 0 + ], + [ + 1781301600000, + 586.93, + 0 + ], + [ + 1781305200000, + 586.93, + 0 + ], + [ + 1781308800000, + 586.9399999999999, + 0 + ], + [ + 1781312400000, + 586.9399999999999, + 0 + ], + [ + 1781316000000, + 586.98, + 0 + ], + [ + 1781319600000, + 586.98, + 0 + ], + [ + 1781323200000, + 586.9899999999999, + 0 + ], + [ + 1781326800000, + 586.9999999999999, + 0 + ], + [ + 1781330400000, + 587.02, + 0 + ], + [ + 1781334000000, + 587.02, + 0 + ], + [ + 1781337600000, + 587.04, + 0 + ], + [ + 1781341200000, + 587.06, + 0 + ], + [ + 1781344800000, + 587.06, + 0 + ], + [ + 1781348400000, + 587.0699999999999, + 0 + ], + [ + 1781352000000, + 587.0899999999999, + 0 + ], + [ + 1781355600000, + 587.0999999999999, + 0 + ], + [ + 1781359200000, + 587.14, + 0 + ], + [ + 1781362800000, + 587.11, + 0 + ], + [ + 1781366400000, + 587.0999999999999, + 0 + ], + [ + 1781370000000, + 587.1299999999999, + 0 + ], + [ + 1781373600000, + 587.15, + 0 + ], + [ + 1781377200000, + 587.14, + 0 + ], + [ + 1781380800000, + 587.15, + 0 + ], + [ + 1781384400000, + 587.17, + 0 + ], + [ + 1781388000000, + 587.1599999999999, + 0 + ], + [ + 1781391600000, + 587.1599999999999, + 0 + ], + [ + 1781395200000, + 587.17, + 0 + ], + [ + 1781398800000, + 587.1599999999999, + 0 + ], + [ + 1781402400000, + 587.15, + 0 + ], + [ + 1781406000000, + 587.15, + 0 + ], + [ + 1781409600000, + 587.1599999999999, + 0 + ], + [ + 1781413200000, + 587.17, + 0 + ], + [ + 1781416800000, + 587.18, + 0 + ], + [ + 1781420400000, + 587.2099999999999, + 0 + ], + [ + 1781424000000, + 587.3, + 0 + ], + [ + 1781427600000, + 587.2499999999999, + 0 + ], + [ + 1781431200000, + 587.2199999999999, + 0 + ], + [ + 1781434800000, + 587.2499999999999, + 0 + ], + [ + 1781438400000, + 587.3, + 0 + ], + [ + 1781442000000, + 587.29, + 0 + ], + [ + 1781445600000, + 587.36, + 0 + ], + [ + 1781449200000, + 587.4, + 0 + ], + [ + 1781452800000, + 587.4099999999999, + 0 + ], + [ + 1781456400000, + 587.4, + 0 + ], + [ + 1781460000000, + 587.43, + 0 + ], + [ + 1781463600000, + 587.4099999999999, + 0 + ], + [ + 1781467200000, + 587.4099999999999, + 0 + ], + [ + 1781470800000, + 587.42, + 0 + ], + [ + 1781474400000, + 587.4399999999999, + 0 + ], + [ + 1781478000000, + 587.4399999999999, + 0 + ], + [ + 1781481600000, + 587.4499999999999, + 0 + ], + [ + 1781485200000, + 587.4599999999999, + 0 + ], + [ + 1781488800000, + 587.4599999999999, + 0 + ], + [ + 1781492400000, + 587.4699999999999, + 0 + ], + [ + 1781496000000, + 587.48, + 0 + ], + [ + 1781499600000, + 587.4899999999999, + 0 + ], + [ + 1781503200000, + 587.4999999999999, + 0 + ], + [ + 1781506800000, + 587.51, + 0 + ], + [ + 1781510400000, + 587.52, + 0 + ], + [ + 1781514000000, + 587.52, + 0 + ], + [ + 1781517600000, + 587.52, + 0 + ], + [ + 1781521200000, + 587.53, + 0 + ], + [ + 1781524800000, + 587.53, + 0 + ], + [ + 1781528400000, + 587.54, + 0 + ], + [ + 1781532000000, + 587.56, + 0 + ], + [ + 1781535600000, + 587.56, + 0 + ], + [ + 1781539200000, + 587.5699999999999, + 0 + ], + [ + 1781542800000, + 587.5799999999999, + 0 + ], + [ + 1781546400000, + 587.5699999999999, + 0 + ], + [ + 1781550000000, + 587.5799999999999, + 0 + ], + [ + 1781553600000, + 587.5899999999999, + 0 + ], + [ + 1781557200000, + 587.5799999999999, + 0 + ], + [ + 1781560800000, + 587.5699999999999, + 0 + ], + [ + 1781564400000, + 587.5799999999999, + 0 + ], + [ + 1781568000000, + 587.56, + 0 + ], + [ + 1781571600000, + 587.5899999999999, + 0 + ], + [ + 1781575200000, + 587.5899999999999, + 0 + ], + [ + 1781578800000, + 587.5899999999999, + 0 + ], + [ + 1781582400000, + 587.61, + 0 + ], + [ + 1781586000000, + 587.6199999999999, + 0 + ], + [ + 1781589600000, + 587.61, + 0 + ], + [ + 1781593200000, + 587.61, + 0 + ], + [ + 1781596800000, + 587.6199999999999, + 0 + ], + [ + 1781600400000, + 587.6199999999999, + 0 + ], + [ + 1781604000000, + 587.6199999999999, + 0 + ], + [ + 1781607600000, + 587.6299999999999, + 0 + ], + [ + 1781611200000, + 587.64, + 0 + ], + [ + 1781614800000, + 587.65, + 0 + ], + [ + 1781618400000, + 587.65, + 0 + ], + [ + 1781622000000, + 587.6599999999999, + 0 + ], + [ + 1781625600000, + 587.67, + 0 + ], + [ + 1781629200000, + 587.67, + 0 + ], + [ + 1781632800000, + 587.6599999999999, + 0 + ], + [ + 1781636400000, + 587.64, + 0 + ], + [ + 1781640000000, + 587.64, + 0 + ], + [ + 1781643600000, + 587.6299999999999, + 0 + ], + [ + 1781647200000, + 587.6199999999999, + 0 + ], + [ + 1781650800000, + 587.61, + 0 + ], + [ + 1781654400000, + 587.61, + 0 + ], + [ + 1781658000000, + 587.5999999999999, + 0 + ], + [ + 1781661600000, + 587.6199999999999, + 0 + ], + [ + 1781665200000, + 587.6199999999999, + 0 + ], + [ + 1781668800000, + 587.61, + 0 + ], + [ + 1781672400000, + 587.61, + 0 + ], + [ + 1781676000000, + 587.5999999999999, + 0 + ], + [ + 1781679600000, + 587.5899999999999, + 0 + ], + [ + 1781683200000, + 587.5999999999999, + 0 + ], + [ + 1781686800000, + 587.5999999999999, + 0 + ], + [ + 1781690400000, + 587.5999999999999, + 0 + ], + [ + 1781694000000, + 587.61, + 0 + ], + [ + 1781697600000, + 587.5999999999999, + 0 + ], + [ + 1781701200000, + 587.5899999999999, + 0 + ], + [ + 1781704800000, + 587.61, + 0 + ], + [ + 1781708400000, + 587.61, + 0 + ], + [ + 1781712000000, + 587.6199999999999, + 0 + ], + [ + 1781715600000, + 587.6199999999999, + 0 + ], + [ + 1781719200000, + 587.6199999999999, + 0 + ], + [ + 1781722800000, + 587.5999999999999, + 0 + ], + [ + 1781726400000, + 587.5899999999999, + 0 + ], + [ + 1781730000000, + 587.5799999999999, + 0 + ], + [ + 1781733600000, + 587.5699999999999, + 0 + ], + [ + 1781737200000, + 587.56, + 0 + ], + [ + 1781740800000, + 587.53, + 0 + ], + [ + 1781744400000, + 587.52, + 0 + ], + [ + 1781748000000, + 587.4999999999999, + 0 + ], + [ + 1781751600000, + 587.48, + 0 + ], + [ + 1781755200000, + 587.48, + 0 + ], + [ + 1781758800000, + 587.4699999999999, + 0 + ], + [ + 1781762400000, + 587.4699999999999, + 0 + ], + [ + 1781766000000, + 587.48, + 0 + ], + [ + 1781769600000, + 587.4899999999999, + 0 + ], + [ + 1781773200000, + 587.4899999999999, + 0 + ], + [ + 1781776800000, + 587.4999999999999, + 0 + ], + [ + 1781780400000, + 587.4999999999999, + 0 + ], + [ + 1781784000000, + 587.4899999999999, + 0 + ], + [ + 1781787600000, + 587.4899999999999, + 0 + ], + [ + 1781791200000, + 587.4899999999999, + 0 + ], + [ + 1781794800000, + 587.4999999999999, + 0 + ], + [ + 1781798400000, + 587.51, + 0 + ], + [ + 1781802000000, + 587.4999999999999, + 0 + ], + [ + 1781805600000, + 587.4899999999999, + 0 + ], + [ + 1781809200000, + 587.4899999999999, + 0 + ], + [ + 1781812800000, + 587.4899999999999, + 0 + ], + [ + 1781816400000, + 587.4699999999999, + 0 + ], + [ + 1781820000000, + 587.4999999999999, + 0 + ], + [ + 1781823600000, + 587.4899999999999, + 0 + ], + [ + 1781827200000, + 587.4499999999999, + 0 + ], + [ + 1781830800000, + 587.4099999999999, + 0 + ], + [ + 1781834400000, + 587.4399999999999, + 0 + ], + [ + 1781838000000, + 587.4399999999999, + 0 + ], + [ + 1781841600000, + 587.4699999999999, + 0 + ], + [ + 1781845200000, + 587.4999999999999, + 0 + ], + [ + 1781848800000, + 587.52, + 0 + ], + [ + 1781852400000, + 587.4999999999999, + 0 + ], + [ + 1781856000000, + 587.4899999999999, + 0 + ], + [ + 1781859600000, + 587.4899999999999, + 0 + ], + [ + 1781863200000, + 587.4699999999999, + 0 + ], + [ + 1781866800000, + 587.48, + 0 + ], + [ + 1781870400000, + 587.4899999999999, + 0 + ], + [ + 1781874000000, + 587.4899999999999, + 0 + ], + [ + 1781877600000, + 587.4699999999999, + 0 + ], + [ + 1781881200000, + 587.4699999999999, + 0 + ], + [ + 1781884800000, + 587.4999999999999, + 0 + ], + [ + 1781888400000, + 587.4999999999999, + 0 + ], + [ + 1781892000000, + 587.4999999999999, + 0 + ], + [ + 1781895600000, + 587.4999999999999, + 0 + ], + [ + 1781899200000, + 587.4899999999999, + 0 + ], + [ + 1781902800000, + 587.48, + 0 + ], + [ + 1781906400000, + 587.4599999999999, + 0 + ], + [ + 1781910000000, + 587.4699999999999, + 0 + ], + [ + 1781913600000, + 587.4899999999999, + 0 + ], + [ + 1781917200000, + 587.4899999999999, + 0 + ], + [ + 1781920800000, + 587.4699999999999, + 0 + ], + [ + 1781924400000, + 587.48, + 0 + ], + [ + 1781928000000, + 587.48, + 0 + ], + [ + 1781931600000, + 587.4499999999999, + 0 + ], + [ + 1781935200000, + 587.4399999999999, + 0 + ], + [ + 1781938800000, + 587.4699999999999, + 0 + ], + [ + 1781942400000, + 587.48, + 0 + ], + [ + 1781946000000, + 587.48, + 0 + ], + [ + 1781949600000, + 587.48, + 0 + ], + [ + 1781953200000, + 587.4899999999999, + 0 + ], + [ + 1781956800000, + 587.4599999999999, + 0 + ], + [ + 1781960400000, + 587.4399999999999, + 0 + ], + [ + 1781964000000, + 587.4399999999999, + 0 + ], + [ + 1781967600000, + 587.43, + 0 + ], + [ + 1781971200000, + 587.43, + 0 + ], + [ + 1781974800000, + 587.43, + 0 + ], + [ + 1781978400000, + 587.4399999999999, + 0 + ], + [ + 1781982000000, + 587.43, + 0 + ], + [ + 1781985600000, + 587.42, + 0 + ], + [ + 1781989200000, + 587.4099999999999, + 0 + ], + [ + 1781992800000, + 587.39, + 0 + ], + [ + 1781996400000, + 587.3799999999999, + 0 + ], + [ + 1782000000000, + 587.3799999999999, + 0 + ], + [ + 1782003600000, + 587.3699999999999, + 0 + ], + [ + 1782007200000, + 587.36, + 0 + ], + [ + 1782010800000, + 587.3699999999999, + 0 + ], + [ + 1782014400000, + 587.36, + 0 + ], + [ + 1782018000000, + 587.3499999999999, + 0 + ], + [ + 1782021600000, + 587.3499999999999, + 0 + ], + [ + 1782025200000, + 587.3499999999999, + 0 + ], + [ + 1782028800000, + 587.3499999999999, + 0 + ], + [ + 1782032400000, + 587.3499999999999, + 0 + ], + [ + 1782036000000, + 587.36, + 0 + ], + [ + 1782039600000, + 587.3499999999999, + 0 + ], + [ + 1782043200000, + 587.3499999999999, + 0 + ], + [ + 1782046800000, + 587.3399999999999, + 0 + ], + [ + 1782050400000, + 587.3499999999999, + 0 + ], + [ + 1782054000000, + 587.3399999999999, + 0 + ], + [ + 1782057600000, + 587.3299999999999, + 0 + ], + [ + 1782061200000, + 587.31, + 0 + ], + [ + 1782064800000, + 587.29, + 0 + ], + [ + 1782068400000, + 587.29, + 0 + ], + [ + 1782072000000, + 587.29, + 0 + ], + [ + 1782075600000, + 587.29, + 0 + ], + [ + 1782079200000, + 587.29, + 0 + ], + [ + 1782082800000, + 587.28, + 0 + ], + [ + 1782086400000, + 587.26, + 0 + ], + [ + 1782090000000, + 587.2399999999999, + 0 + ], + [ + 1782093600000, + 587.2199999999999, + 0 + ], + [ + 1782097200000, + 587.2199999999999, + 0 + ], + [ + 1782100800000, + 587.2099999999999, + 0 + ], + [ + 1782104400000, + 587.1999999999999, + 0 + ], + [ + 1782108000000, + 587.1999999999999, + 0 + ], + [ + 1782111600000, + 587.2099999999999, + 0 + ], + [ + 1782115200000, + 587.2099999999999, + 0 + ], + [ + 1782118800000, + 587.2199999999999, + 0 + ], + [ + 1782122400000, + 587.36, + 0 + ], + [ + 1782126000000, + 587.43, + 0 + ], + [ + 1782129600000, + 587.3199999999999, + 0 + ], + [ + 1782133200000, + 587.27, + 0 + ], + [ + 1782136800000, + 587.3199999999999, + 0 + ], + [ + 1782140400000, + 587.29, + 0 + ], + [ + 1782144000000, + 587.2099999999999, + 0 + ], + [ + 1782147600000, + 587.2399999999999, + 0 + ] + ], + "vertical-datum-info": { + "office": "SWT", + "unit": "ft", + "location": "EUFA", + "native-datum": "NGVD-29", + "elevation": 497.999, + "offsets": [ + { + "estimate": true, + "to-datum": "NAVD-88", + "value": 0.3527 + } + ] + } +} \ No newline at end of file diff --git a/cda-etl/data/regi/regi.yml b/cda-etl/data/regi/regi.yml new file mode 100644 index 000000000..00c888dc8 --- /dev/null +++ b/cda-etl/data/regi/regi.yml @@ -0,0 +1,25 @@ +version: 1 + +settings: + startTime: "2026-01-01" + endTime: "now" + maxThreads: 10 + logLevel: INFO + path: "/data/regi" + +offices: + - id: SWT + enabled: true + projects: + - id: EUFA + enabled: true + locations: + - id: EUFA-Dam + enabled: true + timeseries: + - id: EUFA.Elev.Inst.1Hour.0.Ccp-Rev + enabled: true + outlets: [] + turbines: [] + embankments: [] + clobs: [] \ No newline at end of file diff --git a/cda-etl/docker-compose.yml b/cda-etl/docker-compose.yml deleted file mode 100644 index cffd17bfa..000000000 --- a/cda-etl/docker-compose.yml +++ /dev/null @@ -1,14 +0,0 @@ -services: - cda-etl: - build: . - volumes: - - ./cache:/app/cache - - ./logs:/app/logs - environment: - -SOURCE_CDA_URL: - -SOURCE_CDA_API_KEY: - -DEST_CDA_URL: - -DEST_CDA_API_KEY: - -START_TIME: - -END_TIME: - -LOOKBACK: diff --git a/cda-etl/etl.env.example b/cda-etl/etl.env.example index 9ad467be9..8d3e11c35 100644 --- a/cda-etl/etl.env.example +++ b/cda-etl/etl.env.example @@ -23,14 +23,3 @@ SOURCE_CDA_URL=https://cwms-data-test.cwbi.us/cwms-data/ SOURCE_CDA_API_KEY= DEST_CDA_URL=http://localhost:7000/cwms-data DEST_CDA_API_KEY= -START_TIME=2025-01-01 -END_TIME=2026-01-01 - -# Optional settings -MAX_THREADS=10 -LOG_LEVEL=INFO - -# Data retrieval -LOCATIONS=SWT.EUFA-Dam -PROJECTS=SWT.EUFA -TIMESERIES=SWT.EUFA.Elev.Inst.1Hour.0.Ccp-Rev \ No newline at end of file diff --git a/cda-etl/requirements.txt b/cda-etl/requirements.txt index 008f5b339..2ab3b6bc9 100644 --- a/cda-etl/requirements.txt +++ b/cda-etl/requirements.txt @@ -1,4 +1,5 @@ cwms-python +pyyaml pytest pytest-mock pytest-cov \ No newline at end of file diff --git a/cda-etl/src/cda_etl/config.py b/cda-etl/src/cda_etl/config.py index 43c74a006..977766fd2 100644 --- a/cda-etl/src/cda_etl/config.py +++ b/cda-etl/src/cda_etl/config.py @@ -15,65 +15,279 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -import os -import logging -from datetime import datetime - -logger = logging.getLogger(__name__) -DATE_TIME_FORMAT = "%Y-%m-%d" - - -class Config: - source_cda_url: str - source_cda_api_key: str - dest_cda_url: str - dest_cda_api_key: str - start_time: datetime - end_time: datetime - max_threads: int - locations: list[str] - projects: list[str] - timeseries: list[str] - - def __init__(self): - self.source_cda_url = os.getenv("SOURCE_CDA_URL") - self.source_cda_api_key = os.getenv("SOURCE_CDA_API_KEY") - self.dest_cda_url = os.getenv("DEST_CDA_URL") - self.dest_cda_api_key = os.getenv("DEST_CDA_API_KEY") - start_time = os.getenv("START_TIME") - end_time = os.getenv("END_TIME") - max_threads = os.getenv("MAX_THREADS", "1") - self.locations = os.getenv("LOCATIONS", "").split(",") - self.projects = os.getenv("PROJECTS", "").split(",") - self.timeseries = os.getenv("TIMESERIES", "").split(",") - - if not self.source_cda_url or not self.dest_cda_url: - raise ValueError("Missing required environment variables for CDA ETL configuration") - - if not self.source_cda_api_key: - logger.warning("Missing SOURCE_CDA_API_KEY environment variable.") - - if not self.dest_cda_api_key: - logger.warning("Missing DEST_CDA_API_KEY environment variable.") - - - if not start_time and not end_time: - raise ValueError("Must set both START_TIME and END_TIME in the format of %Y-%m-%d. Example:\n" - "START_TIME=2023-01-01\n" - "END_TIME=2023-01-31") - - try: - self.start_time = datetime.strptime(start_time, DATE_TIME_FORMAT) - except: - raise ValueError("START_TIME must be in the format of %Y-%m-%d") - try: - self.end_time = datetime.strptime(end_time, DATE_TIME_FORMAT) - except: - raise ValueError("END_TIME must be in the format of %Y-%m-%d") - - try: - self.max_threads = int(max_threads) - except ValueError: - raise ValueError("MAX_THREADS must be a number") - - logger.info(f"Configuration read: {str(self)}") \ No newline at end of file +from __future__ import annotations + +import yaml +from dataclasses import dataclass +from pathlib import Path +from typing import Any, Iterator + + +def _is_enabled(data: dict[str, Any]) -> bool: + """ + Treat missing enabled as true. + """ + return data.get("enabled", True) is True + + +@dataclass(frozen=True) +class SettingsConfig: + start_time: str | None = None + end_time: str | None = None + max_threads: int = 10 + log_level: str = "INFO" + path: str = "./data" + + @classmethod + def from_dict(cls, data: dict[str, Any] | None) -> SettingsConfig: + data = data or {} + + return cls( + start_time=data.get("startTime"), + end_time=data.get("endTime"), + max_threads=data.get("maxThreads", 10), + log_level=data.get("logLevel", "INFO"), + path=data.get("path", "./data"), + ) + + +@dataclass(frozen=True) +class LocationConfig: + id: str + enabled: bool + raw: dict[str, Any] + + @classmethod + def from_dict(cls, data: dict[str, Any]) -> LocationConfig: + return cls( + id=data["id"], + enabled=_is_enabled(data), + raw=data, + ) + + +@dataclass(frozen=True) +class TimeseriesConfig: + id: str + enabled: bool + raw: dict[str, Any] + + @classmethod + def from_dict(cls, data: dict[str, Any]) -> TimeseriesConfig: + return cls( + id=data["id"], + enabled=_is_enabled(data), + raw=data, + ) + + @property + def start_time(self) -> str | None: + download = self.raw.get("download", {}) + return download.get("startTime") + + @property + def end_time(self) -> str | None: + download = self.raw.get("download", {}) + return download.get("endTime") + + +@dataclass(frozen=True) +class ProjectConfig: + id: str + office_id: str + enabled: bool + raw: dict[str, Any] + + @classmethod + def from_dict(cls, office_id: str, data: dict[str, Any]) -> ProjectConfig: + return cls( + id=data["id"], + office_id=office_id, + enabled=_is_enabled(data), + raw=data, + ) + + @property + def qualified_id(self) -> str: + """ + Returns office-qualified project id. + + Example: + office_id = SWT + id = EUFA + qualified_id = SWT.EUFA + """ + if self.id.startswith(f"{self.office_id}."): + return self.id + + return f"{self.office_id}.{self.id}" + + def locations(self, enabled_only: bool = True) -> Iterator[LocationConfig]: + for data in self.raw.get("locations", []): + location = LocationConfig.from_dict(data) + + if enabled_only and not location.enabled: + continue + + yield location + + def timeseries(self, enabled_only: bool = True) -> Iterator[TimeseriesConfig]: + for data in self.raw.get("timeseries", []): + timeseries = TimeseriesConfig.from_dict(data) + + if enabled_only and not timeseries.enabled: + continue + + yield timeseries + + +@dataclass(frozen=True) +class OfficeConfig: + id: str + enabled: bool + raw: dict[str, Any] + + @classmethod + def from_dict(cls, data: dict[str, Any]) -> OfficeConfig: + return cls( + id=data["id"], + enabled=_is_enabled(data), + raw=data, + ) + + def projects(self, enabled_only: bool = True) -> Iterator[ProjectConfig]: + for data in self.raw.get("projects", []): + project = ProjectConfig.from_dict(self.id, data) + + if enabled_only and not project.enabled: + continue + + yield project + + +@dataclass(frozen=True) +class DownloadConfig: + version: int + settings: SettingsConfig + raw: dict[str, Any] + + @classmethod + def from_yaml(cls, config_path: str | Path) -> DownloadConfig: + path = Path(config_path) + + if not path.exists(): + raise FileNotFoundError(f"Config file does not exist: {path}") + + with path.open("r", encoding="utf-8") as file: + data = yaml.safe_load(file) + + if data is None: + raise ValueError(f"Config file is empty: {path}") + + if not isinstance(data, dict): + raise ValueError("Config root must be a YAML mapping/object.") + + _validate_config(data) + + return cls( + version=data["version"], + settings=SettingsConfig.from_dict(data.get("settings")), + raw=data, + ) + + def offices(self, enabled_only: bool = True) -> Iterator[OfficeConfig]: + for data in self.raw.get("offices", []): + office = OfficeConfig.from_dict(data) + + if enabled_only and not office.enabled: + continue + + yield office + + def find_office(self, office_id: str, enabled_only: bool = True) -> OfficeConfig | None: + for office in self.offices(enabled_only=enabled_only): + if office.id == office_id: + return office + + return None + + +def _validate_config(config: dict[str, Any]) -> None: + if config.get("version") != 1: + raise ValueError(f"Unsupported config version: {config.get('version')}") + + settings = config.get("settings", {}) + if settings is not None and not isinstance(settings, dict): + raise ValueError("Settings must be a mapping/object.") + + offices = config.get("offices") + if not isinstance(offices, list): + raise ValueError("Offices must be a list.") + + for office in offices: + _validate_office(office) + + +def _validate_office(office: dict[str, Any]) -> None: + if not isinstance(office, dict): + raise ValueError("Each office must be a mapping/object.") + + if not office.get("id"): + raise ValueError("Each office must have an id.") + + projects = office.get("projects", []) + if not isinstance(projects, list): + raise ValueError(f"Projects must be a list for office {office['id']}.") + + for project in projects: + _validate_project(office["id"], project) + + +def _validate_project(office_id: str, project: dict[str, Any]) -> None: + if not isinstance(project, dict): + raise ValueError(f"Each project under office {office_id} must be a mapping/object.") + + if not project.get("id"): + raise ValueError(f"Each project under office {office_id} must have an id.") + + project_id = project["id"] + _validate_locations(office_id, project_id, project.get("locations", [])) + _validate_timeseries_items(office_id, project_id, project.get("timeseries", [])) + + +def _validate_locations(office_id: str, project_id: str, locations: Any) -> None: + if not isinstance(locations, list): + raise ValueError(f"Locations must be a list for project {office_id}.{project_id}.") + + for location in locations: + if not isinstance(location, dict): + raise ValueError( + f"Each location under project {office_id}.{project_id} must be a mapping/object." + ) + + if not location.get("id"): + raise ValueError(f"Each location under project {office_id}.{project_id} must have an id.") + + +def _validate_timeseries_items(office_id: str, project_id: str, timeseries_items: Any) -> None: + if not isinstance(timeseries_items, list): + raise ValueError(f"Timeseries must be a list for project {office_id}.{project_id}.") + + for timeseries in timeseries_items: + if not isinstance(timeseries, dict): + raise ValueError( + f"Each timeseries under project {office_id}.{project_id} must be a mapping/object." + ) + + if not timeseries.get("id"): + raise ValueError(f"Each timeseries under project {office_id}.{project_id} must have an id.") + + +__all__ = [ + "DownloadConfig", + "LocationConfig", + "OfficeConfig", + "ProjectConfig", + "SettingsConfig", + "TimeseriesConfig", +] diff --git a/cda-etl/src/cda_etl/location.py b/cda-etl/src/cda_etl/location.py index b722141da..946ab235c 100644 --- a/cda-etl/src/cda_etl/location.py +++ b/cda-etl/src/cda_etl/location.py @@ -15,16 +15,18 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from concurrent.futures import ThreadPoolExecutor import logging +from typing import Iterable + import cwms -import utils.cache_util as cache_util +import utils.filesystem_store as filesystem_store import utils.threading_util as threading_util +from config import LocationConfig logger = logging.getLogger(__name__) -def get_valid_locations(locations): +def _get_valid_locations(locations): location_ids = [] index = 0 for location in locations: @@ -41,48 +43,75 @@ def get_valid_locations(locations): return location_ids -def cache_locations(locations): - # Validation - location_ids = get_valid_locations(locations) +def stage_locations(office_id: str, locations: Iterable[LocationConfig]) -> None: + locations = list(locations) + location_ids = [] + invalid_locations = [] + + for location in locations: + if not location.id: + invalid_locations.append(location.id) + continue + + location_ids.append([office_id, location.id]) + + for location_id in invalid_locations: + logger.warning(f"Invalid location id '{location_id}'. Expected '[office_id].[location_id]'.") if not location_ids: - logger.warning("No valid locations found for retrieving") + logger.warning("No valid locations found for staging") return - # Retrieval - threading_util.execute_tasks(_retrieve_one_location, location_ids) + logger.info("Staging %d location(s) for office %s", len(location_ids), office_id) + threading_util.execute_tasks(_download_one_location, location_ids) + logger.info("Completed staging locations for office %s", office_id) + +def publish_staged_locations(office_id: str, locations: Iterable[LocationConfig]) -> None: + locations = list(locations) + location_ids = [] + invalid_locations = [] + + for location in locations: + if not location.id: + invalid_locations.append(location.id) + continue + + location_ids.append([office_id, location.id]) -def store_cached_locations(locations): - location_ids = get_valid_locations(locations) + for location_id in invalid_locations: + logger.warning(f"Invalid location id '{location_id}'. Expected '[office_id].[location_id]'.") if not location_ids: - logger.warning("No valid locations found for retrieving") + logger.warning("No valid locations found for publishing") return - # Storage - threading_util.execute_tasks(_store_one_location, location_ids) + logger.info("Publishing %d staged location(s) for office %s", len(location_ids), office_id) + threading_util.execute_tasks(_upload_one_location, location_ids) + logger.info("Completed publishing locations for office %s", office_id) -def _retrieve_one_location(location): +def _download_one_location(location): office_id = location[0] location_id = location[1] - logger.debug(f"Retrieving location data for office {office_id} and location {location_id}") - cache_data = cache_util.get_from_cache(office_id, "Locations", location_id) - if cache_data: - logger.debug(f"Location data found in cache for office {office_id} and location {location_id}") - else: - logger.debug(f"Location data not found in cache for office {office_id} and location {location_id}") - location_data = cwms.get_location(location_id, office_id).json - cache_util.put_in_cache(location_data, office_id, "Locations", location_id) + logger.info("Refreshing staged location %s %s", office_id, location_id) + location_data = cwms.get_location(location_id, office_id).json + filesystem_store.write_json(location_data, office_id, "Locations", location_id) -def _store_one_location(location): +def _upload_one_location(location): office_id = location[0] location_id = location[1] - location_data = cache_util.get_from_cache(office_id, "Locations", location_id) - if location_data: - cwms.store_location(location_data) - else: - logger.warning(f"Location data not found in cache for office {office_id} and location {location_id}") + logger.info("Publishing location %s %s", office_id, location_id) + location_data = filesystem_store.read_json(office_id, "Locations", location_id) + if location_data is None: + raise FileNotFoundError( + f"No staged location data found for {office_id} {location_id}. " + "Location publish skipped for this item." + ) + + cwms.store_location(location_data, False) + + +__all__ = ["publish_staged_locations", "stage_locations"] diff --git a/cda-etl/src/cda_etl/main.py b/cda-etl/src/cda_etl/main.py index ddeb3d9e2..04271ecd2 100644 --- a/cda-etl/src/cda_etl/main.py +++ b/cda-etl/src/cda_etl/main.py @@ -15,63 +15,183 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -import traceback import sys import logging import os +import re import location import project import timeseries import utils.threading_util -from datetime import datetime -from config import Config +import utils.filesystem_store +from config import DownloadConfig, ProjectConfig from session_manager import SessionManager logger = logging.getLogger(__name__) -def pipeline(config, session_manager): - session_manager.use_source_session() +_RESPONSE_STATUS_PATTERN = re.compile(r"response=") +_NOT_CONFIGURED = "" - # Read and cache data - location.cache_locations(config.locations) - project.cache_projects(config.projects) - timeseries.cache_timeseries(config.timeseries, config.start_time, config.end_time) - session_manager.use_dest_session() - # Store cached data, so we're not keeping it all in memory - location.store_cached_locations(config.locations) - project.store_cached_projects(config.projects) - timeseries.store_cached_timeseries(config.timeseries, config.start_time, config.end_time) +def _read_env(name: str, default: str) -> str: + value = os.getenv(name) + if value is None: + return default + normalized = value.strip() + if not normalized: + return default + + return normalized + + +class _FriendlyCdaLogFilter(logging.Filter): + def filter(self, record: logging.LogRecord) -> bool: + message = record.getMessage() + + if "CDA Error: response=" in message: + match = _RESPONSE_STATUS_PATTERN.search(message) + status_code = match.group(1) if match else "unknown" + record.msg = ( + "CWMS API request returned HTTP %s. " + "See the next log line for endpoint and server details." + ) + record.args = (status_code,) + return True + + if message.startswith("chunk attempt") and "CWMS API Error" in message: + record.msg = ( + "Timeseries upload chunk failed and will be retried. " + "Details: %s" + ) + record.args = (message,) + return True + + return True + + +def pipeline(config: DownloadConfig, session_manager: SessionManager) -> None: + if session_manager.has_source_session: + with session_manager.source_session(): + for office in config.offices(enabled_only=True): + logger.info(f"Processing office {office.id}") + + for project_config in office.projects(enabled_only=True): + _stage_project_data(project_config, config) + else: + logger.info("SOURCE_CDA_URL is not configured; skipping source download and using staged files only.") + + with session_manager.dest_session(): + for office in config.offices(enabled_only=True): + logger.info(f"Publishing office {office.id}") + + for project_config in office.projects(enabled_only=True): + _publish_project_data(project_config, config) + + +def _stage_project_data(project_config: ProjectConfig, config: DownloadConfig) -> None: + logger.info(f"Staging project {project_config.qualified_id}") + + project_locations = list(project_config.locations(enabled_only=True)) + project_timeseries = list(project_config.timeseries(enabled_only=True)) + + logger.info( + "Stage inputs for %s: %d location(s), %d timeseries item(s)", + project_config.qualified_id, + len(project_locations), + len(project_timeseries), + ) + + logger.info("Staging locations for project %s", project_config.qualified_id) + location.stage_locations(project_config.office_id, project_locations) + logger.info("Staging project record for %s", project_config.qualified_id) + project.stage_projects([project_config]) + logger.info("Staging timeseries data for project %s", project_config.qualified_id) + timeseries.stage_timeseries( + project_config.office_id, + project_timeseries, + config.settings.start_time, + config.settings.end_time, + ) + logger.info("Completed staging for project %s", project_config.qualified_id) + + +def _log_startup_configuration(config: DownloadConfig, session_manager: SessionManager) -> None: + source_url = session_manager.endpoints.source_cda_url or _NOT_CONFIGURED + dest_url = session_manager.endpoints.dest_cda_url + start_time = config.settings.start_time or _NOT_CONFIGURED + end_time = config.settings.end_time or _NOT_CONFIGURED + + logger.info("Startup configuration") + logger.info(" Data source : %s", source_url) + logger.info(" Data destination : %s", dest_url) + logger.info(" Time window : start=%s end=%s", start_time, end_time) + + +def _publish_project_data(project_config: ProjectConfig, config: DownloadConfig) -> None: + logger.info(f"Publishing project {project_config.qualified_id}") + + project_locations = list(project_config.locations(enabled_only=True)) + project_timeseries = list(project_config.timeseries(enabled_only=True)) + + logger.info( + "Publish inputs for %s: %d location(s), %d timeseries item(s)", + project_config.qualified_id, + len(project_locations), + len(project_timeseries), + ) + + logger.info("Publishing locations for project %s", project_config.qualified_id) + location.publish_staged_locations(project_config.office_id, project_locations) + logger.info("Publishing project record for %s", project_config.qualified_id) + project.publish_staged_projects([project_config]) + logger.info("Publishing timeseries data for project %s", project_config.qualified_id) + timeseries.publish_staged_timeseries( + project_config.office_id, + project_timeseries, + config.settings.start_time, + config.settings.end_time, + ) + logger.info("Completed publish for project %s", project_config.qualified_id) + + +def _initialize_runtime(): + config_path = _read_env("REGI_CONFIG_PATH", "regi.yml") + config = DownloadConfig.from_yaml(config_path) + session_manager = SessionManager.from_env() + utils.threading_util.init_executor(config.settings.max_threads) + utils.filesystem_store.set_storage_root(config.settings.path) + + config_log_level = getattr(logging, config.settings.log_level.upper(), logging.INFO) + logging.getLogger().setLevel(config_log_level) + _log_startup_configuration(config, session_manager) -def init(): - config = Config() - session_manager = SessionManager(config) - utils.threading_util.init_executor(config.max_threads) return config, session_manager +__all__ = ["pipeline"] + + if __name__ == "__main__": - now = datetime.now() - log_level_str = os.getenv("LOG_LEVEL", "INFO").upper() + log_level_str = _read_env("LOG_LEVEL", "INFO").upper() log_level = getattr(logging, log_level_str, logging.INFO) - logging.basicConfig(filename=f'logs/cda-etl-{now.strftime("%Y%m%d%H%M%S")}.log', level=log_level) + logging.basicConfig(level=log_level) + for handler in logging.getLogger().handlers: + handler.addFilter(_FriendlyCdaLogFilter()) logger.debug(f"Using log level: {log_level_str}") try: - config, session_manager = init() + config, session_manager = _initialize_runtime() try: pipeline(config, session_manager) - except Exception as e: - logger.error(f"Unhandled exception occurred during ETL pipeline execution: {e}") - traceback.print_exc() + except Exception: + logger.exception("Unhandled exception occurred during ETL pipeline execution") sys.exit(1) - except Exception as e: - logger.error(f"Unhandled exception occurred during initialization: {e}") - traceback.print_exc() + except Exception: + logger.exception("Unhandled exception occurred during initialization") sys.exit(1) diff --git a/cda-etl/src/cda_etl/project.py b/cda-etl/src/cda_etl/project.py index 43681adfe..161247d29 100644 --- a/cda-etl/src/cda_etl/project.py +++ b/cda-etl/src/cda_etl/project.py @@ -16,66 +16,71 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. import logging +from typing import Iterable + import utils.threading_util as threading_util -import utils.cache_util as cache_util -import location +import utils.filesystem_store as filesystem_store import cwms -logger = logging.getLogger(__name__) +from config import ProjectConfig +logger = logging.getLogger(__name__) -def cache_projects(projects): - # Make sure we have project locations downloaded - location.cache_locations(projects) - # Validation - project_ids = location.get_valid_locations(projects) +def stage_projects(projects: Iterable[ProjectConfig]) -> None: + project_ids = [[project.office_id, project.id] for project in projects] if not project_ids: logger.warning("No valid project identifiers found for processing") return - # Retrieval - cwms.api.API_VERSION = 1 - threading_util.execute_tasks(_retrieve_one_project, project_ids) - cwms.api.API_VERSION = 2 + logger.info("Staging %d project record(s)", len(project_ids)) + threading_util.execute_tasks(_download_one_project, project_ids) + logger.info("Completed staging project records") -def store_cached_projects(projects): - # Validation - project_ids = location.get_valid_locations(projects) +def publish_staged_projects(projects: Iterable[ProjectConfig]) -> None: + project_ids = [[project.office_id, project.id] for project in projects] if not project_ids: logger.warning("No valid project identifiers found for processing") return - location.store_cached_locations(projects) - - # Storage - threading_util.execute_tasks(_store_one_project, project_ids) + logger.info("Publishing %d staged project record(s)", len(project_ids)) + threading_util.execute_tasks(_upload_one_project, project_ids) + logger.info("Completed publishing project records") -def _retrieve_one_project(project): +def _download_one_project(project): office_id = project[0] project_id = project[1] - logger.debug(f"API_VERSION before retrieving {project_id}: {cwms.api.API_VERSION}") - logger.debug(f"Retrieving project data for office {office_id} and project {project_id}") - cache_data = cache_util.get_from_cache(office_id, "Projects", project_id) - if cache_data: - logger.debug(f"Project data found in cache for office {office_id} and project {project_id}") - else: - logger.debug(f"Project data not found in cache for office {office_id} and project {project_id}, retrieving from CWMS") - project_data = cwms.get_project(office_id, project_id).json - cache_util.put_in_cache(project_data, office_id, "Projects", project_id) + logger.info("Refreshing staged project record %s %s", office_id, project_id) + project_data = cwms.api.get( + endpoint=f"projects/{project_id}", + params={"office": office_id}, + api_version=1, + ) + filesystem_store.write_json(project_data, office_id, "Projects", project_id) -def _store_one_project(project): +def _upload_one_project(project): office_id = project[0] project_id = project[1] - logger.debug(f"API_VERSION before retrieving {project_id}: {cwms.api.API_VERSION}") - project_data = cache_util.get_from_cache(office_id, "Projects", project_id) - if project_data: - cwms.store_project(project_data) - else: - logger.warning(f"Project data not found in cache for office {office_id} and location {project_id}") + logger.info("Publishing project record %s %s", office_id, project_id) + project_data = filesystem_store.read_json(office_id, "Projects", project_id) + if project_data is None: + raise FileNotFoundError( + f"No staged project data found for {office_id}.{project_id}. " + "Project publish skipped for this item." + ) + + cwms.api.post( + endpoint="projects", + data=project_data, + params={"fail-if-exists": True}, + api_version=1, + ) + + +__all__ = ["publish_staged_projects", "stage_projects"] diff --git a/cda-etl/src/cda_etl/session_manager.py b/cda-etl/src/cda_etl/session_manager.py index 2e41bf306..5efaf0261 100644 --- a/cda-etl/src/cda_etl/session_manager.py +++ b/cda-etl/src/cda_etl/session_manager.py @@ -17,20 +17,78 @@ # SOFTWARE. import cwms import logging +import os +from dataclasses import dataclass +from contextlib import contextmanager +from typing import Iterator + logger = logging.getLogger(__name__) -from config import Config + +def _read_env(name: str) -> str | None: + value = os.getenv(name) + if value is None: + return None + + normalized = value.strip() + return normalized or None + + +@dataclass(frozen=True) +class SessionEndpoints: + source_cda_url: str | None + source_cda_api_key: str | None + dest_cda_url: str + dest_cda_api_key: str | None + + @classmethod + def from_env(cls) -> "SessionEndpoints": + source_cda_url = _read_env("SOURCE_CDA_URL") + dest_cda_url = _read_env("DEST_CDA_URL") + + if not dest_cda_url: + raise ValueError("Missing required environment variable DEST_CDA_URL") + + return cls( + source_cda_url=source_cda_url, + source_cda_api_key=_read_env("SOURCE_CDA_API_KEY"), + dest_cda_url=dest_cda_url, + dest_cda_api_key=_read_env("DEST_CDA_API_KEY"), + ) + + @property + def has_source(self) -> bool: + return bool(self.source_cda_url) class SessionManager: - config: Config + endpoints: SessionEndpoints + + def __init__(self, endpoints: SessionEndpoints): + self.endpoints = endpoints + + @classmethod + def from_env(cls) -> "SessionManager": + return cls(SessionEndpoints.from_env()) + + @property + def has_source_session(self) -> bool: + return self.endpoints.has_source + + @contextmanager + def source_session(self) -> Iterator[None]: + if not self.endpoints.source_cda_url: + yield + return + + cwms.init_session(api_root=self.endpoints.source_cda_url, api_key=self.endpoints.source_cda_api_key) + yield - def __init__(self, config): - self.config = config + @contextmanager + def dest_session(self) -> Iterator[None]: + logger.debug(f"Initializing destination session with URL: {self.endpoints.dest_cda_url}") + cwms.init_session(api_root=self.endpoints.dest_cda_url, api_key=self.endpoints.dest_cda_api_key) + yield - def use_source_session(self): - cwms.init_session(api_root=self.config.source_cda_url, api_key=self.config.source_cda_api_key) - def use_dest_session(self): - logger.debug(f"Initializing destination session with URL: {self.config.dest_cda_url} and api_key: {self.config.dest_cda_api_key}") - cwms.init_session(api_root=self.config.dest_cda_url, api_key=self.config.dest_cda_api_key) \ No newline at end of file +__all__ = ["SessionEndpoints", "SessionManager"] \ No newline at end of file diff --git a/cda-etl/src/cda_etl/timeseries.py b/cda-etl/src/cda_etl/timeseries.py index 653775c6e..57e96964e 100644 --- a/cda-etl/src/cda_etl/timeseries.py +++ b/cda-etl/src/cda_etl/timeseries.py @@ -16,110 +16,129 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. import logging -import location +from datetime import datetime +from typing import Iterable + import utils.threading_util as threading_util -import utils.cache_util as cache_util +import utils.filesystem_store as filesystem_store import cwms +from config import TimeseriesConfig logger = logging.getLogger(__name__) DATE_TIME_FORMAT = "%Y-%m-%d %H.%M.%S" +TIMESERIES_FOLDER = "Timeseries" + + +def stage_timeseries( + office_id: str, + timeseries: Iterable[TimeseriesConfig], + default_start: str | None, + default_end: str | None, +) -> None: + ts_info = _build_timeseries_work_items(office_id, timeseries, default_start, default_end) + if not ts_info: + logger.warning(f"No valid time series items found for office {office_id}") + return + logger.info("Staging %d timeseries data item(s) for office %s", len(ts_info), office_id) + threading_util.execute_tasks(_download_one_ts_data, ts_info) + logger.info("Completed staging timeseries data for office %s", office_id) -def cache_timeseries(timeseries, begin, end): - locations, ts_info = _validate_and_split_timeseries(timeseries, begin, end) - - # Make sure we have project locations downloaded - location.cache_locations(locations) - - # Retrieval of Identifier - threading_util.execute_tasks(_retrieve_one_ts_identifier, ts_info) - - # Retrieval of Data - threading_util.execute_tasks(_retrieve_one_ts_data, ts_info) - - -def store_cached_timeseries(timeseries, begin, end): - locations, ts_info = _validate_and_split_timeseries(timeseries, begin, end) - location.store_cached_locations(locations) - # Storage of Identifier - threading_util.execute_tasks(_store_one_ts_id, ts_info) +def publish_staged_timeseries( + office_id: str, + timeseries: Iterable[TimeseriesConfig], + default_start: str | None, + default_end: str | None, +) -> None: + ts_info = _build_timeseries_work_items(office_id, timeseries, default_start, default_end) + if not ts_info: + logger.warning(f"No valid time series items found for office {office_id}") + return - # Storage of Data - threading_util.execute_tasks(_store_one_ts_data, ts_info) + logger.info("Publishing %d staged timeseries item(s) for office %s", len(ts_info), office_id) + threading_util.execute_tasks(_upload_one_ts_data, ts_info) + logger.info("Completed publishing timeseries data for office %s", office_id) -def _retrieve_one_ts_identifier(ts_info): +def _download_one_ts_data(ts_info): office_id = ts_info[0] ts_id = ts_info[1] - - cache_data = cache_util.get_from_cache(office_id, "Timeseries Identifiers", ts_id, "id") - if cache_data: - logger.debug(f"Cached Timeseries Identifier for {office_id}.{ts_id}") - else: - logger.debug(f"Fetching Timeseries Identifier for {office_id}.{ts_id}") - data = cwms.get_timeseries_identifier(ts_id, office_id).json - cache_util.put_in_cache(data, office_id, "Timeseries Identifiers", ts_id, "id") + begin = ts_info[2] + end = ts_info[3] + begin_str = begin.strftime(DATE_TIME_FORMAT) + end_str = end.strftime(DATE_TIME_FORMAT) + logger.info("Refreshing staged timeseries %s for office %s from %s to %s", ts_id, office_id, begin_str, end_str) + data = cwms.get_timeseries(ts_id, office_id, begin=begin, end=end).json + filesystem_store.write_json(data, office_id, TIMESERIES_FOLDER, ts_id, begin_str, end_str, "data") -def _retrieve_one_ts_data(ts_info): +def _upload_one_ts_data(ts_info): office_id = ts_info[0] ts_id = ts_info[1] begin = ts_info[2] end = ts_info[3] begin_str = begin.strftime(DATE_TIME_FORMAT) end_str = end.strftime(DATE_TIME_FORMAT) + logger.info("Publishing timeseries %s for office %s from %s to %s", ts_id, office_id, begin_str, end_str) - cache_data = cache_util.get_from_cache(office_id, "Timeseries", ts_id, begin_str, end_str, "data") - if cache_data: - logger.debug(f"Cached Timeseries Data for {office_id}.{ts_id} from {begin_str} to {end_str}") - else: - logger.debug(f"Fetching Timeseries Data for {office_id}.{ts_id} from {begin_str} to {end_str}") - data = cwms.get_timeseries(ts_id, office_id, begin=begin, end=end).json - cache_util.put_in_cache(data, office_id, "Timeseries", ts_id, begin_str, end_str, "data") + staged_data = filesystem_store.read_json(office_id, TIMESERIES_FOLDER, ts_id, begin_str, end_str, "data") + if staged_data is None: + raise FileNotFoundError( + f"No staged timeseries data found for {office_id}.{ts_id} " + f"for window {begin_str} to {end_str}. Timeseries data publish skipped for this item." + ) + cwms.store_timeseries(staged_data) -def _store_one_ts_id(ts_info): - office_id = ts_info[0] - ts_id = ts_info[1] +def _build_timeseries_work_items( + office_id: str, + timeseries_items: Iterable[TimeseriesConfig], + default_start: str | None, + default_end: str | None, +) -> list[list[object]]: + work_items: list[list[object]] = [] - cache_data = cache_util.get_from_cache(office_id, "Timeseries Identifiers", ts_id, "id") - cwms.store_timeseries_identifier(cache_data) + for timeseries in timeseries_items: + ts_id = _normalize_timeseries_id(office_id, timeseries.id) + if ts_id is None: + continue -def _store_one_ts_data(ts_info): - office_id = ts_info[0] - ts_id = ts_info[1] - begin = ts_info[2] - end = ts_info[3] - begin_str = begin.strftime(DATE_TIME_FORMAT) - end_str = end.strftime(DATE_TIME_FORMAT) + begin = _parse_timestamp(timeseries.start_time or default_start, "start") + end = _parse_timestamp(timeseries.end_time or default_end, "end") + work_items.append([office_id, ts_id, begin, end]) - cache_data = cache_util.get_from_cache(office_id, "Timeseries", ts_id, begin_str, end_str, "data") - cwms.store_timeseries(cache_data) - - -def _validate_and_split_timeseries(timeseries, begin, end): - # Validation - invalid_ts = [] - ts_ids_to_split = {} - for ts in timeseries: - splits = ts.split(".") - if len(splits) != 7: - logger.warning(f"Invalid time series identifier '{ts}' encountered. Expected format is '[office_id].[location].[parameter].[parameter_type].[interval].[duration].[version]'") - invalid_ts.append(ts) - else: - logger.debug(f"Valid time series identifier '{ts}'") - ts_ids_to_split[f"{splits[1]}.{splits[2]}.{splits[3]}.{splits[4]}.{splits[5]}.{splits[6]}"] = splits - - if not ts_ids_to_split: - logger.warning("No valid time series identifiers found for processing") - return + return work_items + + +def _normalize_timeseries_id(office_id: str, configured_id: str) -> str | None: + if configured_id.startswith(f"{office_id}."): + configured_id = configured_id[len(office_id) + 1 :] + + if len(configured_id.split(".")) != 6: + logger.warning( + "Invalid time series id '%s'. Expected '[location].[parameter].[parameter_type].[interval].[duration].[version]' or office-prefixed equivalent.", + configured_id, + ) + return None + + return configured_id + + +def _parse_timestamp(value: str | None, label: str) -> datetime: + if value is None: + raise ValueError(f"Missing {label} time for timeseries processing.") - locations = [] - ts_info = [] - for id, splits in ts_ids_to_split.items(): - locations.append(f"{splits[0]}.{splits[1]}") - ts_info.append([splits[0], id, begin, end]) + normalized = value.strip() + if normalized.lower() == "now": + return datetime.now() - return locations, ts_info + try: + return datetime.fromisoformat(normalized) + except ValueError as exc: + try: + return datetime.strptime(normalized, "%Y-%m-%d") + except ValueError: + raise ValueError(f"Invalid {label} time '{value}'. Use ISO-8601 or YYYY-MM-DD.") from exc +__all__ = ["publish_staged_timeseries", "stage_timeseries"] diff --git a/cda-etl/src/cda_etl/utils/filesystem_store.py b/cda-etl/src/cda_etl/utils/filesystem_store.py new file mode 100644 index 000000000..9e186e20f --- /dev/null +++ b/cda-etl/src/cda_etl/utils/filesystem_store.py @@ -0,0 +1,75 @@ +# MIT License +# Copyright (c) 2026 Hydrologic Engineering Center +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +from __future__ import annotations + +import json +from pathlib import Path +from typing import Any + +_STORAGE_ROOT = Path("./data") + + +def set_storage_root(path: str | Path) -> None: + global _STORAGE_ROOT + _STORAGE_ROOT = Path(path) + + +def read_json(*path_parts: str) -> Any | None: + path = _build_path(*path_parts) + if path is None: + return None + + if not path.exists(): + return None + + with path.open("r", encoding="utf-8") as file: + return json.load(file) + return None + + +def write_json(value: Any, *path_parts: str) -> None: + path = _build_path(*path_parts) + if path is None: + raise ValueError("At least one path component is required.") + + path.parent.mkdir(parents=True, exist_ok=True) + with path.open("w", encoding="utf-8") as file: + json.dump(value, file, indent=2) + + +def _build_path(*path_parts: str) -> Path | None: + if not path_parts: + return None + + normalized_parts = _normalize_path_parts(*path_parts) + if not normalized_parts[-1].endswith(".json"): + normalized_parts[-1] = f"{normalized_parts[-1]}.json" + + return _STORAGE_ROOT.joinpath(*normalized_parts) + + +def _normalize_path_parts(*path_parts: str) -> list[str]: + normalized_parts = list(path_parts) + + if len(normalized_parts) >= 6 and normalized_parts[-1] == "data": + normalized_parts = normalized_parts[:-4] + [normalized_parts[2]] + + return normalized_parts + + +__all__ = ["read_json", "set_storage_root", "write_json"] diff --git a/cda-etl/src/cda_etl/utils/threading_util.py b/cda-etl/src/cda_etl/utils/threading_util.py index 4d6aacc3f..864a117ef 100644 --- a/cda-etl/src/cda_etl/utils/threading_util.py +++ b/cda-etl/src/cda_etl/utils/threading_util.py @@ -21,11 +21,33 @@ logger = logging.getLogger(__name__) -EXECUTOR: ThreadPoolExecutor +_EXECUTOR: ThreadPoolExecutor def init_executor(max_workers): - global EXECUTOR - EXECUTOR = ThreadPoolExecutor(max_workers=max_workers) + global _EXECUTOR + _EXECUTOR = ThreadPoolExecutor(max_workers=max_workers) + + +def _format_item(item): + if isinstance(item, list): + return ", ".join(str(part) for part in item) + return str(item) + + +def _friendly_exception_message(item, exc): + item_str = _format_item(item) + details = str(exc) + + if isinstance(exc, FileNotFoundError): + return ( + f"Skipped '{item_str}' because staged data was not found. " + f"Run staging first or verify input configuration. Details: {details}" + ) + + if "CWMS API Error" in details: + return f"CWMS request failed for '{item_str}'. {details}" + + return f"Task failed for '{item_str}'. {details}" def execute_tasks(task_func, items): @@ -34,13 +56,16 @@ def execute_tasks(task_func, items): Returns a dictionary mapping futures to items. """ futures_to_items = { - EXECUTOR.submit(task_func, item): item + _EXECUTOR.submit(task_func, item): item for item in items } for future in as_completed(futures_to_items): item = futures_to_items[future] if future.exception(): - logger.warning(f"Exception occurred for {item}: {future.exception()}") + logger.warning(_friendly_exception_message(item, future.exception())) elif future.result(): logger.debug(f"No error on execution for {item}") + + +__all__ = ["execute_tasks", "init_executor"] diff --git a/cda-etl/tests/cda_etl/test_config.py b/cda-etl/tests/cda_etl/test_config.py index cdad0edcd..bb5c8f91c 100644 --- a/cda-etl/tests/cda_etl/test_config.py +++ b/cda-etl/tests/cda_etl/test_config.py @@ -15,36 +15,53 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. +from pathlib import Path -import os -import sys -from datetime import datetime -from config import Config - -def test_config(): - os.environ["SOURCE_CDA_URL"] = "http://source" - os.environ["DEST_CDA_URL"] = "http://dest" - os.environ["START_TIME"] = "2023-01-01" - os.environ["END_TIME"] = "2023-01-31" - - # Test valid MAX_THREADS - os.environ["MAX_THREADS"] = "5" - config = Config() - assert config.max_threads == 5 - print("Test valid MAX_THREADS passed") - - # Test default MAX_THREADS - del os.environ["MAX_THREADS"] - config = Config() - assert config.max_threads == 1 - print("Test default MAX_THREADS passed") - - # Test invalid MAX_THREADS - os.environ["MAX_THREADS"] = "abc" - try: - Config() - print("Test invalid MAX_THREADS failed (no exception raised)") - except ValueError as e: - assert str(e) == "MAX_THREADS must be a number" - print("Test invalid MAX_THREADS passed (exception raised)") +import pytest + +from config import DownloadConfig + + +def test_download_config_from_yaml(): + config_file = Path(__file__).resolve().parents[1] / "resources" / "download_config_valid.yml" + + config = DownloadConfig.from_yaml(config_file) + + assert config.version == 1 + assert config.settings.max_threads == 5 + assert config.settings.log_level == "DEBUG" + assert config.settings.path == "./stage" + + offices = list(config.offices()) + assert len(offices) == 2 + assert offices[0].id == "SWT" + assert offices[1].id == "FWR" + + swt_projects = list(offices[0].projects()) + assert len(swt_projects) == 2 + assert swt_projects[0].qualified_id == "SWT.EUFA" + assert swt_projects[1].qualified_id == "SWT.BEND" + + fwr_projects = list(offices[1].projects()) + assert len(fwr_projects) == 2 + assert fwr_projects[0].qualified_id == "FWR.RAYH" + assert fwr_projects[1].qualified_id == "FWR.LEWN" + + eufa_locations = list(swt_projects[0].locations()) + assert len(eufa_locations) == 2 + assert eufa_locations[0].id == "EUFA-Dam" + assert eufa_locations[1].id == "EUFA-Canal" + + eufa_timeseries = list(swt_projects[0].timeseries()) + assert len(eufa_timeseries) == 2 + assert eufa_timeseries[0].id == "EUFA.Elev.Inst.1Hour.0.Ccp-Rev" + assert eufa_timeseries[1].id == "EUFA.Flow.Inst.1Hour.0.Ccp-Rev" + + +def test_download_config_requires_offices(tmp_path): + config_file = tmp_path / "invalid.yml" + config_file.write_text("version: 1", encoding="utf-8") + + with pytest.raises(ValueError, match="Offices must be a list"): + DownloadConfig.from_yaml(config_file) diff --git a/cda-etl/src/cda_etl/utils/cache_util.py b/cda-etl/tests/cda_etl/test_filesystem_store.py similarity index 50% rename from cda-etl/src/cda_etl/utils/cache_util.py rename to cda-etl/tests/cda_etl/test_filesystem_store.py index 2facc71db..030472c63 100644 --- a/cda-etl/src/cda_etl/utils/cache_util.py +++ b/cda-etl/tests/cda_etl/test_filesystem_store.py @@ -15,53 +15,33 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. +import utils.filesystem_store as filesystem_store + + +def test_write_json_uses_timeseries_id_filename(tmp_path): + filesystem_store.set_storage_root(tmp_path) + + filesystem_store.write_json( + {"value": 1}, + "SWT", + "Timeseries", + "Loc.Flow.Inst.1Hour.0.Cda", + "2026-01-01 00.00.00", + "2026-01-02 00.00.00", + "data", + ) + + filesystem_store.write_json( + {"value": 2}, + "SWT", + "Timeseries", + "Loc.Flow.Inst.1Hour.0.Cda", + "2026-02-01 00.00.00", + "2026-02-02 00.00.00", + "data", + ) + + expected_path = tmp_path / "SWT" / "Timeseries" / "Loc.Flow.Inst.1Hour.0.Cda.json" + assert expected_path.exists() + assert expected_path.read_text(encoding="utf-8") == "{\n \"value\": 2\n}" -import os -import json - -__folder = "./cache" - -def get_from_cache(*args): - """ - :param args: Path components for cache file - :return: Cached json data or None if not found - """ - path = _get_cache_path(*args) - if not path: - return None - - if not os.path.exists(path): - return None - - with open(path, 'r') as f: - return f.read() - - - - -def _get_cache_path(*args): - ''' - :param args: Path components for cache file - :return: Full path to cache file or None if the file doesn't exist - ''' - if not args: - return None - - # Convert args to list and ensure last element has .json extension - path_parts = list(args) - if not path_parts[-1].endswith('.json'): - path_parts[-1] = path_parts[-1] + '.json' - - # Build full path starting with __folder - full_path = os.path.join(__folder, *path_parts) - return full_path - - -def put_in_cache(value, *args): - path = _get_cache_path(*args) - - if not os.path.exists(path): - os.makedirs(os.path.dirname(path), exist_ok=True) - - with open(path, "w", encoding="utf-8") as file: - json.dump(value, file, indent=2) \ No newline at end of file diff --git a/cda-etl/tests/cda_etl/test_location.py b/cda-etl/tests/cda_etl/test_location.py index 3e77242e5..82eae8914 100644 --- a/cda-etl/tests/cda_etl/test_location.py +++ b/cda-etl/tests/cda_etl/test_location.py @@ -15,84 +15,65 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -import pytest -from unittest.mock import MagicMock, patch +from unittest.mock import MagicMock + import location -from location import LocationData - -@pytest.fixture -def mock_config(): - config = MagicMock() - config.locations = ["SWT.TestLoc"] - return config - -@pytest.fixture -def mock_session_manager(): - return MagicMock() - -def test_process(mock_config, mock_session_manager, mocker): - mock_process_locations = mocker.patch("location.process_locations") - mock_process_locations.return_value = LocationData(["SWT.TestLoc"]) - - result = location.process(mock_config, mock_session_manager) - - mock_process_locations.assert_called_once_with(mock_config.locations, mock_session_manager) - assert result.location_ids == ["SWT.TestLoc"] - -def test_process_locations(mock_session_manager, mocker): +from config import LocationConfig + +def test_stage_locations(mocker): + mock_execute = mocker.patch("utils.threading_util.execute_tasks") + locations = [LocationConfig(id="TestLoc", enabled=True, raw={})] + + location.stage_locations("SWT", locations) + + mock_execute.assert_called_once_with(location._download_one_location, [["SWT", "TestLoc"]]) + + +def test_publish_staged_locations(mocker): mock_execute = mocker.patch("utils.threading_util.execute_tasks") - - # Mock retrieval results: [[location_str, location_data], ...] - retrieval_results = [["SWT.TestLoc", {"name": "TestLoc"}]] - # Mock storage results: [[retrieval_result, storage_result], ...] - # where retrieval_result is ["SWT.TestLoc", {"name": "TestLoc"}] - storage_results = [[retrieval_results[0], {"name": "TestLoc"}]] - - mock_execute.side_effect = [retrieval_results, storage_results] - - locations = ["SWT.TestLoc"] - result = location.cache_locations(locations, mock_session_manager) - - assert mock_session_manager.use_source_session.called - assert mock_session_manager.use_dest_session.called - assert len(mock_execute.call_args_list) == 2 - assert result.location_ids == storage_results + locations = [LocationConfig(id="TestLoc", enabled=True, raw={})] + + location.publish_staged_locations("SWT", locations) + + mock_execute.assert_called_once_with(location._upload_one_location, [["SWT", "TestLoc"]]) def test_retrieve_one_location_invalid_format(mocker): - logger_spy = mocker.spy(location.logger, "warning") - result = location._retrieve_one_location("invalid_location") - assert result is None - assert logger_spy.called - -def test_retrieve_one_location_from_cache(mocker): - mock_get_cache = mocker.patch("utils.cache_util.get_from_cache") - mock_get_cache.return_value = {"name": "CachedLoc"} - - result = location._retrieve_one_location("SWT.CachedLoc") - - assert result == {"name": "CachedLoc"} - mock_get_cache.assert_called_once_with("SWT", "CachedLoc") + mock_warning = mocker.patch.object(location.logger, "warning") + + location.stage_locations("SWT", [LocationConfig(id="", enabled=True, raw={})]) + + assert mock_warning.called + +def test_download_one_location_always_refreshes_from_cwms(mocker): + mock_write_json = mocker.patch("utils.filesystem_store.write_json") + mock_cwms_get = mocker.patch("cwms.get_location") + + mock_response = MagicMock() + mock_response.json = {"name": "FreshLoc"} + mock_cwms_get.return_value = mock_response + + location._download_one_location(["SWT", "CachedLoc"]) + + mock_cwms_get.assert_called_once_with("CachedLoc", "SWT") + mock_write_json.assert_called_once_with({"name": "FreshLoc"}, "SWT", "Locations", "CachedLoc") def test_retrieve_one_location_from_cwms(mocker): - mocker.patch("utils.cache_util.get_from_cache", return_value=None) - mock_put_cache = mocker.patch("utils.cache_util.put_in_cache") + mock_write_json = mocker.patch("utils.filesystem_store.write_json") mock_cwms_get = mocker.patch("cwms.get_location") - + mock_response = MagicMock() mock_response.json = {"name": "CwmsLoc"} mock_cwms_get.return_value = mock_response - - result = location._retrieve_one_location("SWT.CwmsLoc") - - assert result == {"name": "CwmsLoc"} + + location._download_one_location(["SWT", "CwmsLoc"]) + mock_cwms_get.assert_called_once_with("CwmsLoc", "SWT") - mock_put_cache.assert_called_once_with({"name": "CwmsLoc"}, "SWT", "CwmsLoc") + mock_write_json.assert_called_once_with({"name": "CwmsLoc"}, "SWT", "Locations", "CwmsLoc") def test_store_one_location(mocker): mock_cwms_store = mocker.patch("cwms.store_location") - location_data = {"name": "TestLoc"} - - result = location._store_one_location(location_data) - - assert result == location_data - mock_cwms_store.assert_called_once_with(location_data) + mocker.patch("utils.filesystem_store.read_json", return_value={"name": "TestLoc"}) + + location._upload_one_location(["SWT", "TestLoc"]) + + mock_cwms_store.assert_called_once_with({"name": "TestLoc"}, False) diff --git a/cda-etl/tests/cda_etl/test_project.py b/cda-etl/tests/cda_etl/test_project.py index e1e19fa09..bf238c253 100644 --- a/cda-etl/tests/cda_etl/test_project.py +++ b/cda-etl/tests/cda_etl/test_project.py @@ -15,82 +15,68 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -import pytest -from unittest.mock import MagicMock import project -from project import ProjectData - -@pytest.fixture -def mock_config(): - config = MagicMock() - config.projects = ["SWT.TestProj"] - return config - -@pytest.fixture -def mock_session_manager(): - return MagicMock() - -def test_process(mock_config, mock_session_manager, mocker): - mock_process_projects = mocker.patch("project.process_projects") - mock_process_projects.return_value = ProjectData(["SWT.TestProj"]) - - result = project.process(mock_config, mock_session_manager) - - mock_process_projects.assert_called_once_with(mock_config.projects, mock_session_manager) - assert result.project_ids == ["SWT.TestProj"] - -def test_process_projects(mock_session_manager, mocker): - mocker.patch("location.process_locations") +from config import ProjectConfig + +def test_stage_projects(mocker): + mock_execute = mocker.patch("utils.threading_util.execute_tasks") + projects = [ProjectConfig.from_dict("SWT", {"id": "TestProj"})] + + project.stage_projects(projects) + + mock_execute.assert_called_once_with(project._download_one_project, [["SWT", "TestProj"]]) + + +def test_publish_staged_projects(mocker): + mock_execute = mocker.patch("utils.threading_util.execute_tasks") + projects = [ProjectConfig.from_dict("SWT", {"id": "TestProj"})] + + project.publish_staged_projects(projects) + + mock_execute.assert_called_once_with(project._upload_one_project, [["SWT", "TestProj"]]) + +def test_stage_projects_empty_input(mocker): mock_execute = mocker.patch("utils.threading_util.execute_tasks") - - retrieval_results = [["SWT.TestProj", {"name": "TestProj"}]] - storage_results = [[retrieval_results[0], {"name": "TestProj"}]] - - mock_execute.side_effect = [retrieval_results, storage_results] - - projects = ["SWT.TestProj"] - result = project.cache_projects(projects, mock_session_manager) - - assert mock_session_manager.use_source_session.called - assert mock_session_manager.use_dest_session.called - assert len(mock_execute.call_args_list) == 2 - assert result.project_ids == storage_results - -def test_retrieve_one_project_invalid_format(mocker): - logger_spy = mocker.spy(project.logger, "warning") - result = project._retrieve_one_project("invalid_project") - assert result is None - assert logger_spy.called - -def test_retrieve_one_project_from_cache(mocker): - mock_get_cache = mocker.patch("utils.cache_util.get_from_cache") - mock_get_cache.return_value = {"name": "CachedProj"} - - result = project._retrieve_one_project("SWT.CachedProj") - - assert result == {"name": "CachedProj"} - mock_get_cache.assert_called_once_with("SWT", "CachedProj") + + project.stage_projects([]) + + mock_execute.assert_not_called() + +def test_download_one_project_always_refreshes_from_cwms(mocker): + mock_write_json = mocker.patch("utils.filesystem_store.write_json") + mock_api_get = mocker.patch("cwms.api.get", return_value={"name": "FreshProj"}) + + project._download_one_project(["SWT", "CachedProj"]) + + mock_api_get.assert_called_once_with( + endpoint="projects/CachedProj", + params={"office": "SWT"}, + api_version=1, + ) + mock_write_json.assert_called_once_with({"name": "FreshProj"}, "SWT", "Projects", "CachedProj") def test_retrieve_one_project_from_cwms(mocker): - mocker.patch("utils.cache_util.get_from_cache", return_value=None) - mock_put_cache = mocker.patch("utils.cache_util.put_in_cache") - mock_cwms_get = mocker.patch("cwms.get_project") - - mock_response = MagicMock() - mock_response.json = {"name": "CwmsProj"} - mock_cwms_get.return_value = mock_response - - result = project._retrieve_one_project("SWT.CwmsProj") - - assert result == {"name": "CwmsProj"} - mock_cwms_get.assert_called_once_with("SWT", "CwmsProj") - mock_put_cache.assert_called_once_with({"name": "CwmsProj"}, "SWT", "CwmsProj") + mock_write_json = mocker.patch("utils.filesystem_store.write_json") + mock_api_get = mocker.patch("cwms.api.get", return_value={"name": "CwmsProj"}) + + project._download_one_project(["SWT", "CwmsProj"]) + + mock_api_get.assert_called_once_with( + endpoint="projects/CwmsProj", + params={"office": "SWT"}, + api_version=1, + ) + mock_write_json.assert_called_once_with({"name": "CwmsProj"}, "SWT", "Projects", "CwmsProj") def test_store_one_project(mocker): - mock_cwms_store = mocker.patch("cwms.store_project") - project_data = {"name": "TestProj"} - - result = project._store_one_project(project_data) - - assert result == project_data - mock_cwms_store.assert_called_once_with(project_data) + mock_cwms_post = mocker.patch("cwms.api.post") + mocker.patch("utils.filesystem_store.read_json", return_value={"name": "TestProj"}) + + project._upload_one_project(["SWT", "TestProj"]) + + mock_cwms_post.assert_called_once_with( + endpoint="projects", + data={"name": "TestProj"}, + params={"fail-if-exists": True}, + api_version=1, + ) diff --git a/cda-etl/tests/cda_etl/test_timeseries.py b/cda-etl/tests/cda_etl/test_timeseries.py index b5bc43f23..32b990bfa 100644 --- a/cda-etl/tests/cda_etl/test_timeseries.py +++ b/cda-etl/tests/cda_etl/test_timeseries.py @@ -15,126 +15,78 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -import pytest from unittest.mock import MagicMock + import timeseries -from timeseries import TsCacheData - -@pytest.fixture -def mock_config(): - config = MagicMock() - config.timeseries = ["SWT.TestLoc.Flow.Inst.1Hour.0.Cda"] - config.start_time = "2026-01-01T00:00:00" - config.end_time = "2026-01-02T00:00:00" - return config - -@pytest.fixture -def mock_session_manager(): - return MagicMock() - -def test_process(mock_config, mock_session_manager, mocker): - mock_process_timeseries = mocker.patch("timeseries.process_timeseries") - mock_process_timeseries.return_value = TsCacheData([]) - - result = timeseries.process(mock_config, mock_session_manager) - - mock_process_timeseries.assert_called_once_with( - mock_config.timeseries, mock_config.start_time, mock_config.end_time, mock_session_manager - ) - assert isinstance(result, TsCacheData) - -def test_process_timeseries(mock_session_manager, mocker): - mocker.patch("location.process_locations") +from config import TimeseriesConfig + +def test_stage_timeseries(mocker): + mock_execute = mocker.patch("utils.threading_util.execute_tasks") + ts_items = [TimeseriesConfig(id="SWT.Loc.Flow.Inst.1Hour.0.Cda", enabled=True, raw={})] + + timeseries.stage_timeseries("SWT", ts_items, "2026-01-01", "2026-01-02") + + assert mock_execute.call_count == 1 + assert mock_execute.call_args_list[0].args[0] == timeseries._download_one_ts_data + + +def test_publish_staged_timeseries(mocker): + mock_execute = mocker.patch("utils.threading_util.execute_tasks") + ts_items = [TimeseriesConfig(id="SWT.Loc.Flow.Inst.1Hour.0.Cda", enabled=True, raw={})] + + timeseries.publish_staged_timeseries("SWT", ts_items, "2026-01-01", "2026-01-02") + + assert mock_execute.call_count == 1 + assert mock_execute.call_args_list[0].args[0] == timeseries._upload_one_ts_data + + +def test_stage_timeseries_invalid_format(mocker): mock_execute = mocker.patch("utils.threading_util.execute_tasks") - - # Mocking results for 3 calls to execute_tasks - # 1. Identifier retrieval - # 2. Identifier storage - # 3. Data retrieval - # 4. Data storage - mock_execute.side_effect = [[], [], [], ["success"]] - - ts_list = ["SWT.Loc.Flow.Inst.1Hour.0.Cda"] - begin = "2026-01-01" - end = "2026-01-02" - - result = timeseries.process_timeseries(ts_list, begin, end, mock_session_manager) - - assert mock_session_manager.use_source_session.called - assert mock_session_manager.use_dest_session.called - assert mock_execute.call_count == 4 - assert result.ts_data == ["success"] - -def test_process_timeseries_invalid_format(mock_session_manager, mocker): - mocker.patch("location.process_locations") - mocker.patch("utils.threading_util.execute_tasks", return_value=[]) - - ts_list = ["invalid.format"] - result = timeseries.process_timeseries(ts_list, "begin", "end", mock_session_manager) - assert result.ts_data == [] - -def test_retrieve_one_ts_identifier_cache(mocker): - mock_get_cache = mocker.patch("utils.cache_util.get_from_cache") - mock_get_cache.return_value = {"id": "CachedId"} - - ts_info = ["SWT", "Loc.Flow.Inst.1Hour.0.Cda", "begin", "end"] - result = timeseries._retrieve_one_ts_identifier(ts_info) - - assert result == {"id": "CachedId"} - mock_get_cache.assert_called_once_with("SWT", "Loc.Flow.Inst.1Hour.0.Cda", "id") - -def test_retrieve_one_ts_identifier_cwms(mocker): - mocker.patch("utils.cache_util.get_from_cache", return_value=None) - mock_put_cache = mocker.patch("utils.cache_util.put_in_cache") - mock_cwms_get = mocker.patch("cwms.get_timeseries_identifier") - + ts_items = [TimeseriesConfig(id="invalid.format", enabled=True, raw={})] + + timeseries.stage_timeseries("SWT", ts_items, "2026-01-01", "2026-01-02") + + mock_execute.assert_not_called() + +def test_download_one_ts_data_always_refreshes_from_cwms(mocker): + mock_write_json = mocker.patch("utils.filesystem_store.write_json") + mock_cwms_get = mocker.patch("cwms.get_timeseries") + mock_response = MagicMock() - mock_response.json = {"id": "CwmsId"} + mock_response.json = {"data": "FreshData"} mock_cwms_get.return_value = mock_response - - ts_info = ["SWT", "Loc.Flow.Inst.1Hour.0.Cda", "begin", "end"] - result = timeseries._retrieve_one_ts_identifier(ts_info) - - assert result == {"id": "CwmsId"} - mock_cwms_get.assert_called_once_with("SWT", "Loc.Flow.Inst.1Hour.0.Cda") - mock_put_cache.assert_called_once_with({"id": "CwmsId"}, "SWT", "Loc.Flow.Inst.1Hour.0.Cda", "id") - -def test_retrieve_one_ts_data_cache(mocker): - mock_get_cache = mocker.patch("utils.cache_util.get_from_cache") - mock_get_cache.return_value = {"data": "CachedData"} - - ts_info = ["SWT", "Loc.Flow.Inst.1Hour.0.Cda", "begin", "end"] - result = timeseries._retrieve_one_ts_data(ts_info) - - assert result == {"data": "CachedData"} - mock_get_cache.assert_called_once_with("SWT", "Loc.Flow.Inst.1Hour.0.Cda", "begin", "end", "data") + + begin = timeseries._parse_timestamp("2026-01-01", "start") + end = timeseries._parse_timestamp("2026-01-02", "end") + ts_info = ["SWT", "Loc.Flow.Inst.1Hour.0.Cda", begin, end] + timeseries._download_one_ts_data(ts_info) + + mock_cwms_get.assert_called_once_with("Loc.Flow.Inst.1Hour.0.Cda", "SWT", begin=begin, end=end) + mock_write_json.assert_called_once() def test_retrieve_one_ts_data_cwms(mocker): - mocker.patch("utils.cache_util.get_from_cache", return_value=None) - mock_put_cache = mocker.patch("utils.cache_util.put_in_cache") + mock_write_json = mocker.patch("utils.filesystem_store.write_json") mock_cwms_get = mocker.patch("cwms.get_timeseries") - + mock_response = MagicMock() mock_response.json = {"data": "CwmsData"} mock_cwms_get.return_value = mock_response - - ts_info = ["SWT", "Loc.Flow.Inst.1Hour.0.Cda", "begin", "end"] - result = timeseries._retrieve_one_ts_data(ts_info) - - assert result == {"data": "CwmsData"} - mock_cwms_get.assert_called_once_with("Loc.Flow.Inst.1Hour.0.Cda", "SWT", begin="begin", end="end") - mock_put_cache.assert_called_once_with({"data": "CwmsData"}, "SWT", "Loc.Flow.Inst.1Hour.0.Cda", "begin", "end", "data") - -def test_store_one_ts_id(mocker): - mock_cwms_store = mocker.patch("cwms.store_timeseries_identifier") - data = {"id": "TestId"} - result = timeseries._store_one_ts_id(data) - assert result == data - mock_cwms_store.assert_called_once_with(data) + + begin = timeseries._parse_timestamp("2026-01-01", "start") + end = timeseries._parse_timestamp("2026-01-02", "end") + ts_info = ["SWT", "Loc.Flow.Inst.1Hour.0.Cda", begin, end] + timeseries._download_one_ts_data(ts_info) + + mock_cwms_get.assert_called_once_with("Loc.Flow.Inst.1Hour.0.Cda", "SWT", begin=begin, end=end) + assert mock_write_json.called def test_store_one_ts_data(mocker): mock_cwms_store = mocker.patch("cwms.store_timeseries") - data = {"data": "TestData"} - result = timeseries._store_one_ts_data(data) - assert result == data - mock_cwms_store.assert_called_once_with(data) + mocker.patch("utils.filesystem_store.read_json", return_value={"data": "TestData"}) + begin = timeseries._parse_timestamp("2026-01-01", "start") + end = timeseries._parse_timestamp("2026-01-02", "end") + + ts_info = ["SWT", "Loc.Flow.Inst.1Hour.0.Cda", begin, end] + timeseries._upload_one_ts_data(ts_info) + + mock_cwms_store.assert_called_once_with({"data": "TestData"}) diff --git a/cda-etl/tests/resources/SWT/Locations/EUFA.json b/cda-etl/tests/resources/SWT/Locations/EUFA.json deleted file mode 100644 index 35c719afc..000000000 --- a/cda-etl/tests/resources/SWT/Locations/EUFA.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "office-id": "SWT", - "name": "EUFA", - "latitude": 35.3069444, - "longitude": -95.3625, - "active": true, - "public-name": "Eufaula Lake", - "long-name": "Eufaula Lake near Brooken, OK", - "description": "Eufaula Lake near Brooken, OK", - "timezone-name": "US/Central", - "location-type": "RESERVOIR", - "location-kind": "PROJECT", - "nation": "US", - "state-initial": "OK", - "county-name": "Haskell", - "nearest-city": "Hoyt, OK", - "horizontal-datum": "WGS84", - "published-longitude": 95.3625, - "published-latitude": 35.306944444444, - "vertical-datum": "NGVD29", - "elevation": 497.99868766404194, - "bounding-office-id": "SWT", - "elevation-units": "ft" -} \ No newline at end of file diff --git a/cda-etl/tests/resources/download_config_valid.yml b/cda-etl/tests/resources/download_config_valid.yml new file mode 100644 index 000000000..fcf96c7bb --- /dev/null +++ b/cda-etl/tests/resources/download_config_valid.yml @@ -0,0 +1,38 @@ +version: 1 +settings: + startTime: "2026-01-01" + endTime: "2026-06-01" + maxThreads: 5 + logLevel: DEBUG + path: "./stage" +offices: + - id: SWT + projects: + - id: EUFA + locations: + - id: EUFA-Dam + - id: EUFA-Canal + timeseries: + - id: EUFA.Elev.Inst.1Hour.0.Ccp-Rev + - id: EUFA.Flow.Inst.1Hour.0.Ccp-Rev + - id: BEND + locations: + - id: BEND-Outlet + - id: BEND-Dam + timeseries: + - id: BEND.Elev.Inst.1Hour.0.Ccp-Rev + - id: BEND.Flow.Inst.1Hour.0.Ccp-Rev + - id: FWR + projects: + - id: RAYH + locations: + - id: RAYH-Dam + - id: RAYH-Outlet + timeseries: + - id: RAYH.Elev.Inst.1Hour.0.Ccp-Rev + - id: RAYH.Flow.Inst.1Hour.0.Ccp-Rev + - id: LEWN + locations: + - id: LEWN-Dam + timeseries: + - id: LEWN.Elev.Inst.1Hour.0.Ccp-Rev diff --git a/docker-compose.yml b/docker-compose.yml index e8f93c542..22b6db31c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -211,3 +211,16 @@ services: /usr/bin/mc admin policy attach myminio readwrite --user cda_user; exit 0; " + cda-etl: + build: + context: ./cda-etl + dockerfile: Dockerfile + volumes: + - ./cda-etl/data/regi/regi.yml:/app/regi.yml + - ./cda-etl/data/regi:/data/regi + environment: + - REGI_CONFIG_PATH=/app/regi.yml + - SOURCE_CDA_URL=${SOURCE_CDA_URL:-https://cwms-data-test.cwbi.us/cwms-data/} + - SOURCE_CDA_API_KEY=${SOURCE_CDA_API_KEY:-} + - DEST_CDA_URL=${DEST_CDA_URL:-http://data-api:7000/cwms-data/} + - DEST_CDA_API_KEY=${DEST_CDA_API_KEY:-} \ No newline at end of file