From 2cf5f544b67a738ab83af1e07840e69014a01755 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Thu, 7 Mar 2024 11:23:03 +0100 Subject: [PATCH 001/105] 416, working with MarketDataSet objects instead of String. Fix for working with DateTime instead of String. Added mapping for Tuple2 in SettlementService (settlement history) Fix for marketDataTest to really test the object instead of String --- .../oracle/SmartDerivativeContractSettlementOracle.java | 4 +--- .../finmath/smartcontract/product/xml/SDCXMLParser.java | 7 ++++++- .../service/controllers/ValuationController.java | 9 +++++---- .../smartcontract/product/xml/SDCXMLParserTest.java | 2 +- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/oracle/SmartDerivativeContractSettlementOracle.java b/src/main/java/net/finmath/smartcontract/oracle/SmartDerivativeContractSettlementOracle.java index 11f619626..45f3f5175 100644 --- a/src/main/java/net/finmath/smartcontract/oracle/SmartDerivativeContractSettlementOracle.java +++ b/src/main/java/net/finmath/smartcontract/oracle/SmartDerivativeContractSettlementOracle.java @@ -44,8 +44,6 @@ public Double getMargin(final LocalDateTime marginPeriodStart, final LocalDateTi final double valuationChange = valueDerivativeCurrent - valueDerivativePrevious; - final double margin = valuationChange; - - return margin; + return valuationChange; } } diff --git a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java index af12ab480..b3f8d8726 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java @@ -87,7 +87,12 @@ public static SmartDerivativeContractDescriptor parse(String sdcxml) throws Pars // TODO The parser needs to check that the field receiverPartyID of the SDC matched the field in the FPML // TODO Support multiple underlyings - Node underlying = document.getElementsByTagName("underlying").item(0).getFirstChild().getNextSibling(); + + Node underlying = document + .getElementsByTagName("underlying") + .item(0) + .getFirstChild() + .getNextSibling(); return new SmartDerivativeContractDescriptor(uniqueTradeIdentifier, settlementDateInitial, parties, marginAccountInitialByPartyID, penaltyFeeInitialByPartyID, receiverPartyID, underlying, marketdataItems); } diff --git a/src/main/java/net/finmath/smartcontract/service/controllers/ValuationController.java b/src/main/java/net/finmath/smartcontract/service/controllers/ValuationController.java index bc07558ed..4806f74af 100644 --- a/src/main/java/net/finmath/smartcontract/service/controllers/ValuationController.java +++ b/src/main/java/net/finmath/smartcontract/service/controllers/ValuationController.java @@ -33,6 +33,7 @@ public class ValuationController implements ValuationApi { private final Logger logger = LoggerFactory.getLogger(ValuationController.class); + private final String FAILEDCALCULATION = "Failed to calculate value."; /** * Request mapping for the settlementvaluationForProductAsFPML @@ -80,7 +81,7 @@ public ResponseEntity legacyValue(LegacyValueRequest valueRequest) logger.info(value.toString()); return ResponseEntity.ok(value); } catch (Exception e) { - logger.error("Failed to calculate value."); + logger.error(FAILEDCALCULATION); logger.info(value.toString()); e.printStackTrace(); throw new RuntimeException(e); @@ -117,7 +118,7 @@ public ResponseEntity value(ValueRequest valueRequest) { logger.info(value.toString()); return ResponseEntity.ok(value); } catch (Exception e) { - logger.error("Failed to calculate value."); + logger.error(FAILEDCALCULATION); logger.info(value.toString()); e.printStackTrace(); throw new RuntimeException(e); @@ -137,7 +138,7 @@ public ResponseEntity testProductValue(MultipartFile tradeData) { logger.info(value.toString()); return ResponseEntity.ok(value); } catch (Exception e) { - logger.error("Failed to calculate value."); + logger.error(FAILEDCALCULATION); logger.info(value.toString()); e.printStackTrace(); throw new RuntimeException(e); @@ -156,7 +157,7 @@ public ResponseEntity test() { responseHeaders.add("Responded", "test"); String totalResult = "Connect successful"; - return new ResponseEntity(totalResult, responseHeaders, HttpStatus.OK); + return new ResponseEntity<>(totalResult, responseHeaders, HttpStatus.OK); } diff --git a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java index 692fe4bad..4aae983a1 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java @@ -28,7 +28,7 @@ void testParser() throws IOException, SAXException, ParserConfigurationException LocalDateTime date = sdc.getTradeDate(); System.out.println(date); - Assertions.assertEquals(sdc.getUniqueTradeIdentifier(), "UTI12345"); + Assertions.assertEquals("UTI12345", sdc.getUniqueTradeIdentifier()); // Get parties List parties = sdc.getCounterparties(); From 000798464235da729fc4931cd17bd8a512904d2e Mon Sep 17 00:00:00 2001 From: Alex Korpis Date: Fri, 8 Mar 2024 15:31:25 +0100 Subject: [PATCH 002/105] Fix version of custom-webpack --- frontend/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/package.json b/frontend/package.json index 1a59b7359..16ad7f0a9 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -35,7 +35,7 @@ "zone.js": "~0.13.0" }, "devDependencies": { - "@angular-builders/custom-webpack": "latest", + "@angular-builders/custom-webpack": "~16.0.0", "@angular-devkit/build-angular": "^16.1.0", "@angular/cli": "~16.1.0", "@angular/compiler-cli": "^16.1.0", From cb0e638ac87d1419e20eb0d536f15ebd64c35570 Mon Sep 17 00:00:00 2001 From: Alex Korpis Date: Fri, 8 Mar 2024 15:32:30 +0100 Subject: [PATCH 003/105] Add package-lock.json for reproducible builds --- frontend/package-lock.json | 14395 +++++++++++++++++++++++++++++++++++ 1 file changed, 14395 insertions(+) create mode 100644 frontend/package-lock.json diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 000000000..d367a778f --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,14395 @@ +{ + "name": "sdc-frontend", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "sdc-frontend", + "version": "1.0.0", + "dependencies": { + "@angular/animations": "^16.1.0", + "@angular/cdk": "^16.1.0", + "@angular/common": "^16.1.0", + "@angular/compiler": "^16.1.0", + "@angular/core": "^16.1.0", + "@angular/forms": "^16.1.0", + "@angular/material": "^16.1.0", + "@angular/platform-browser": "^16.1.0", + "@angular/platform-browser-dynamic": "^16.1.0", + "@angular/router": "^16.1.0", + "bootstrap": "^5.2.3", + "build": "^0.1.4", + "moment": "^2.29.4", + "rxjs": "~7.8.0", + "single-spa": ">=4.0.0", + "single-spa-angular": "^8.1.0", + "tslib": "^2.3.0", + "zone.js": "~0.13.0" + }, + "devDependencies": { + "@angular-builders/custom-webpack": "^16.0.0", + "@angular-devkit/build-angular": "^16.1.0", + "@angular/cli": "~16.1.0", + "@angular/compiler-cli": "^16.1.0", + "@openapitools/openapi-generator-cli": "^2.5.2", + "@types/jasmine": "~4.3.0", + "jasmine-core": "~4.6.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "style-loader": "^3.3.1", + "typescript": "~5.1.3" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-builders/custom-webpack": { + "version": "16.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular-builders/custom-webpack/-/custom-webpack-16.0.1.tgz", + "integrity": "sha512-C6INC8UOYDcp8LJwNhE0m66yp+nZX50JdgGI8oRn7fqw3gO58qhDgXrR/8BCrSeC8eOx8WxSuvBJ6u+9dozhyw==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": ">=0.1600.0 < 0.1700.0", + "@angular-devkit/build-angular": "^16.0.0", + "@angular-devkit/core": "^16.0.0", + "lodash": "^4.17.15", + "ts-node": "^10.0.0", + "tsconfig-paths": "^4.1.0", + "webpack-merge": "^5.7.3" + }, + "engines": { + "node": "^14.20.0 || ^16.13.0 || >=18.10.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^16.0.0" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1602.12", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular-devkit/architect/-/architect-0.1602.12.tgz", + "integrity": "sha512-19Fwwfx+KvJ01SyI6cstRgqT9+cwer8Ro1T27t1JqlGyOX8tY3pV78ulwxy2+wCzPjR18V6W7cb7Cv6fyK4xog==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "16.2.12", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular": { + "version": "16.2.12", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular-devkit/build-angular/-/build-angular-16.2.12.tgz", + "integrity": "sha512-VVGKZ0N3gyR0DP7VrcZl4io3ruWYT94mrlyJsJMLlrYy/EX8JCvqrJC9c+dscrtKjhZzjwdyhszkJQY4JfwACA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.2.1", + "@angular-devkit/architect": "0.1602.12", + "@angular-devkit/build-webpack": "0.1602.12", + "@angular-devkit/core": "16.2.12", + "@babel/core": "7.22.9", + "@babel/generator": "7.22.9", + "@babel/helper-annotate-as-pure": "7.22.5", + "@babel/helper-split-export-declaration": "7.22.6", + "@babel/plugin-proposal-async-generator-functions": "7.20.7", + "@babel/plugin-transform-async-to-generator": "7.22.5", + "@babel/plugin-transform-runtime": "7.22.9", + "@babel/preset-env": "7.22.9", + "@babel/runtime": "7.22.6", + "@babel/template": "7.22.5", + "@discoveryjs/json-ext": "0.5.7", + "@ngtools/webpack": "16.2.12", + "@vitejs/plugin-basic-ssl": "1.0.1", + "ansi-colors": "4.1.3", + "autoprefixer": "10.4.14", + "babel-loader": "9.1.3", + "babel-plugin-istanbul": "6.1.1", + "browserslist": "^4.21.5", + "chokidar": "3.5.3", + "copy-webpack-plugin": "11.0.0", + "critters": "0.0.20", + "css-loader": "6.8.1", + "esbuild-wasm": "0.18.17", + "fast-glob": "3.3.1", + "guess-parser": "0.4.22", + "https-proxy-agent": "5.0.1", + "inquirer": "8.2.4", + "jsonc-parser": "3.2.0", + "karma-source-map-support": "1.4.0", + "less": "4.1.3", + "less-loader": "11.1.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.2.1", + "magic-string": "0.30.1", + "mini-css-extract-plugin": "2.7.6", + "mrmime": "1.0.1", + "open": "8.4.2", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "2.3.1", + "piscina": "4.0.0", + "postcss": "8.4.31", + "postcss-loader": "7.3.3", + "resolve-url-loader": "5.0.0", + "rxjs": "7.8.1", + "sass": "1.64.1", + "sass-loader": "13.3.2", + "semver": "7.5.4", + "source-map-loader": "4.0.1", + "source-map-support": "0.5.21", + "terser": "5.19.2", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "tslib": "2.6.1", + "vite": "4.5.2", + "webpack": "5.88.2", + "webpack-dev-middleware": "6.1.1", + "webpack-dev-server": "4.15.1", + "webpack-merge": "5.9.0", + "webpack-subresource-integrity": "5.1.0" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.18.17" + }, + "peerDependencies": { + "@angular/compiler-cli": "^16.0.0", + "@angular/localize": "^16.0.0", + "@angular/platform-server": "^16.0.0", + "@angular/service-worker": "^16.0.0", + "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", + "karma": "^6.3.0", + "ng-packagr": "^16.0.0", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=4.9.3 <5.2" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "jest": { + "optional": true + }, + "jest-environment-jsdom": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@angular-devkit/build-angular/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/tslib": { + "version": "2.6.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "dev": true + }, + "node_modules/@angular-devkit/build-angular/node_modules/webpack": { + "version": "5.88.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/webpack/-/webpack-5.88.2.tgz", + "integrity": "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/webpack-merge": { + "version": "5.9.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/webpack-merge/-/webpack-merge-5.9.0.tgz", + "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1602.12", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular-devkit/build-webpack/-/build-webpack-0.1602.12.tgz", + "integrity": "sha512-1lmR4jCkxPJuAFXReesEY3CB+/5jSebGE5ry6qJJvNm6kuSc9bzfTytrcwosVY+Q7kAA2ij7kAYw0loGbTjLWA==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1602.12", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^4.0.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "16.2.12", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular-devkit/core/-/core-16.2.12.tgz", + "integrity": "sha512-o6ziQs+EcEonFezrsA46jbZqkQrs4ckS1bAQj93g5ZjGtieUz8l/U3lclvKpL/iEzWkGVViSYuP2KyW2oqTDiQ==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "picomatch": "2.3.1", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "16.1.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular-devkit/schematics/-/schematics-16.1.8.tgz", + "integrity": "sha512-6LyzMdFJs337RTxxkI2U1Ndw0CW5mMX/aXWl8d7cW2odiSrAg8IdlMqpc+AM8+CPfsB0FtS1aWkEZqJLT0jHOg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "16.1.8", + "jsonc-parser": "3.2.0", + "magic-string": "0.30.0", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": { + "version": "16.1.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular-devkit/core/-/core-16.1.8.tgz", + "integrity": "sha512-dSRD/+bGanArIXkj+kaU1kDFleZeQMzmBiOXX+pK0Ah9/0Yn1VmY3RZh1zcX9vgIQXV+t7UPrTpOjaERMUtVGw==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics/node_modules/magic-string": { + "version": "0.30.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/animations": { + "version": "16.2.12", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular/animations/-/animations-16.2.12.tgz", + "integrity": "sha512-MD0ElviEfAJY8qMOd6/jjSSvtqER2RDAi0lxe6EtUacC1DHCYkaPrKW4vLqY+tmZBg1yf+6n+uS77pXcHHcA3w==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0" + }, + "peerDependencies": { + "@angular/core": "16.2.12" + } + }, + "node_modules/@angular/cdk": { + "version": "16.2.14", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular/cdk/-/cdk-16.2.14.tgz", + "integrity": "sha512-n6PrGdiVeSTEmM/HEiwIyg6YQUUymZrb5afaNLGFRM5YL0Y8OBqd+XhCjb0OfD/AfgCUtedVEPwNqrfW8KzgGw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^7.1.2" + }, + "peerDependencies": { + "@angular/common": "^16.0.0 || ^17.0.0", + "@angular/core": "^16.0.0 || ^17.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cli": { + "version": "16.1.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular/cli/-/cli-16.1.8.tgz", + "integrity": "sha512-amOIHMq8EvixhnI+do5Bcy6IZSFAJx0njhhLM4ltDuNUczH8VH0hNegZKxhb8K87AMO8jITFM+NLrzccyghsDQ==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1601.8", + "@angular-devkit/core": "16.1.8", + "@angular-devkit/schematics": "16.1.8", + "@schematics/angular": "16.1.8", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.3", + "ini": "4.1.1", + "inquirer": "8.2.4", + "jsonc-parser": "3.2.0", + "npm-package-arg": "10.1.0", + "npm-pick-manifest": "8.0.1", + "open": "8.4.2", + "ora": "5.4.1", + "pacote": "15.2.0", + "resolve": "1.22.2", + "semver": "7.5.3", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { + "version": "0.1601.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular-devkit/architect/-/architect-0.1601.8.tgz", + "integrity": "sha512-kOXVGwsQnZvtz2UZNefcEy64Jiwq0eSoQUeozvDXOaYRJABLjPKI2YaarvKC9/Z1SGLuje0o/eRJO4T8aRk9rQ==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "16.1.8", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/@angular-devkit/core": { + "version": "16.1.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular-devkit/core/-/core-16.1.8.tgz", + "integrity": "sha512-dSRD/+bGanArIXkj+kaU1kDFleZeQMzmBiOXX+pK0Ah9/0Yn1VmY3RZh1zcX9vgIQXV+t7UPrTpOjaERMUtVGw==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular/cli/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cli/node_modules/semver": { + "version": "7.5.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cli/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@angular/common": { + "version": "16.2.12", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular/common/-/common-16.2.12.tgz", + "integrity": "sha512-B+WY/cT2VgEaz9HfJitBmgdk4I333XG/ybC98CMC4Wz8E49T8yzivmmxXB3OD6qvjcOB6ftuicl6WBqLbZNg2w==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0" + }, + "peerDependencies": { + "@angular/core": "16.2.12", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "16.2.12", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular/compiler/-/compiler-16.2.12.tgz", + "integrity": "sha512-6SMXUgSVekGM7R6l1Z9rCtUGtlg58GFmgbpMCsGf+VXxP468Njw8rjT2YZkf5aEPxEuRpSHhDYjqz7n14cwCXQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0" + }, + "peerDependencies": { + "@angular/core": "16.2.12" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + } + } + }, + "node_modules/@angular/compiler-cli": { + "version": "16.2.12", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular/compiler-cli/-/compiler-cli-16.2.12.tgz", + "integrity": "sha512-pWSrr152562ujh6lsFZR8NfNc5Ljj+zSTQO44DsuB0tZjwEpnRcjJEgzuhGXr+CoiBf+jTSPZKemtSktDk5aaA==", + "dev": true, + "dependencies": { + "@babel/core": "7.23.2", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/index.js" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0" + }, + "peerDependencies": { + "@angular/compiler": "16.2.12", + "typescript": ">=4.9.3 <5.2" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core": { + "version": "7.23.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/core/-/core-7.23.2.tgz", + "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular/core": { + "version": "16.2.12", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular/core/-/core-16.2.12.tgz", + "integrity": "sha512-GLLlDeke/NjroaLYOks0uyzFVo6HyLl7VOm0K1QpLXnYvW63W9Ql/T3yguRZa7tRkOAeFZ3jw+1wnBD4O8MoUA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.13.0" + } + }, + "node_modules/@angular/forms": { + "version": "16.2.12", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular/forms/-/forms-16.2.12.tgz", + "integrity": "sha512-1Eao89hlBgLR3v8tU91vccn21BBKL06WWxl7zLpQmG6Hun+2jrThgOE4Pf3os4fkkbH4Apj0tWL2fNIWe/blbw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0" + }, + "peerDependencies": { + "@angular/common": "16.2.12", + "@angular/core": "16.2.12", + "@angular/platform-browser": "16.2.12", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/material": { + "version": "16.2.14", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular/material/-/material-16.2.14.tgz", + "integrity": "sha512-zQIxUb23elPfiIvddqkIDYqQhAHa9ZwMblfbv+ug8bxr4D0Dw360jIarxCgMjAcLj7Ccl3GBqZMUnVeM6cjthw==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/auto-init": "15.0.0-canary.bc9ae6c9c.0", + "@material/banner": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/button": "15.0.0-canary.bc9ae6c9c.0", + "@material/card": "15.0.0-canary.bc9ae6c9c.0", + "@material/checkbox": "15.0.0-canary.bc9ae6c9c.0", + "@material/chips": "15.0.0-canary.bc9ae6c9c.0", + "@material/circular-progress": "15.0.0-canary.bc9ae6c9c.0", + "@material/data-table": "15.0.0-canary.bc9ae6c9c.0", + "@material/density": "15.0.0-canary.bc9ae6c9c.0", + "@material/dialog": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/drawer": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/fab": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/floating-label": "15.0.0-canary.bc9ae6c9c.0", + "@material/form-field": "15.0.0-canary.bc9ae6c9c.0", + "@material/icon-button": "15.0.0-canary.bc9ae6c9c.0", + "@material/image-list": "15.0.0-canary.bc9ae6c9c.0", + "@material/layout-grid": "15.0.0-canary.bc9ae6c9c.0", + "@material/line-ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/linear-progress": "15.0.0-canary.bc9ae6c9c.0", + "@material/list": "15.0.0-canary.bc9ae6c9c.0", + "@material/menu": "15.0.0-canary.bc9ae6c9c.0", + "@material/menu-surface": "15.0.0-canary.bc9ae6c9c.0", + "@material/notched-outline": "15.0.0-canary.bc9ae6c9c.0", + "@material/radio": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/segmented-button": "15.0.0-canary.bc9ae6c9c.0", + "@material/select": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/slider": "15.0.0-canary.bc9ae6c9c.0", + "@material/snackbar": "15.0.0-canary.bc9ae6c9c.0", + "@material/switch": "15.0.0-canary.bc9ae6c9c.0", + "@material/tab": "15.0.0-canary.bc9ae6c9c.0", + "@material/tab-bar": "15.0.0-canary.bc9ae6c9c.0", + "@material/tab-indicator": "15.0.0-canary.bc9ae6c9c.0", + "@material/tab-scroller": "15.0.0-canary.bc9ae6c9c.0", + "@material/textfield": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tooltip": "15.0.0-canary.bc9ae6c9c.0", + "@material/top-app-bar": "15.0.0-canary.bc9ae6c9c.0", + "@material/touch-target": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/animations": "^16.0.0 || ^17.0.0", + "@angular/cdk": "16.2.14", + "@angular/common": "^16.0.0 || ^17.0.0", + "@angular/core": "^16.0.0 || ^17.0.0", + "@angular/forms": "^16.0.0 || ^17.0.0", + "@angular/platform-browser": "^16.0.0 || ^17.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "16.2.12", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular/platform-browser/-/platform-browser-16.2.12.tgz", + "integrity": "sha512-NnH7ju1iirmVEsUq432DTm0nZBGQsBrU40M3ZeVHMQ2subnGiyUs3QyzDz8+VWLL/T5xTxWLt9BkDn65vgzlIQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0" + }, + "peerDependencies": { + "@angular/animations": "16.2.12", + "@angular/common": "16.2.12", + "@angular/core": "16.2.12" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "16.2.12", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.2.12.tgz", + "integrity": "sha512-ya54jerNgreCVAR278wZavwjrUWImMr2F8yM5n9HBvsMBbFaAQ83anwbOEiHEF2BlR+gJiEBLfpuPRMw20pHqw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0" + }, + "peerDependencies": { + "@angular/common": "16.2.12", + "@angular/compiler": "16.2.12", + "@angular/core": "16.2.12", + "@angular/platform-browser": "16.2.12" + } + }, + "node_modules/@angular/router": { + "version": "16.2.12", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular/router/-/router-16.2.12.tgz", + "integrity": "sha512-aU6QnYSza005V9P3W6PpkieL56O0IHps96DjqI1RS8yOJUl3THmokqYN4Fm5+HXy4f390FN9i6ftadYQDKeWmA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0" + }, + "peerDependencies": { + "@angular/common": "16.2.12", + "@angular/core": "16.2.12", + "@angular/platform-browser": "16.2.12", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@assemblyscript/loader": { + "version": "0.10.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.22.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/core/-/core-7.22.9.tgz", + "integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.8", + "@babel/types": "^7.22.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.22.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/generator/-/generator-7.22.9.tgz", + "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz", + "integrity": "sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name/node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", + "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", + "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties/node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", + "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz", + "integrity": "sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.22.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.9.tgz", + "integrity": "sha512-9KjBH61AGJetCPYp/IEyLEp47SyybZb0nDRpBvmtEkm+rUIwxdlKpyNHI1TmsGkeuLclJdleQHRZ8XLBnnh8CQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.4", + "babel-plugin-polyfill-corejs3": "^0.8.2", + "babel-plugin-polyfill-regenerator": "^0.5.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.22.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/preset-env/-/preset-env-7.22.9.tgz", + "integrity": "sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.7", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.5", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.5", + "@babel/plugin-transform-classes": "^7.22.6", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.5", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", + "@babel/plugin-transform-numeric-separator": "^7.22.5", + "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.6", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.5", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.5", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.4", + "babel-plugin-polyfill-corejs3": "^0.8.2", + "babel-plugin-polyfill-regenerator": "^0.5.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/preset-modules/-/preset-modules-0.1.6.tgz", + "integrity": "sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.22.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/runtime/-/runtime-7.22.6.tgz", + "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/android-arm/-/android-arm-0.18.17.tgz", + "integrity": "sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz", + "integrity": "sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/android-x64/-/android-x64-0.18.17.tgz", + "integrity": "sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz", + "integrity": "sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz", + "integrity": "sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz", + "integrity": "sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz", + "integrity": "sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz", + "integrity": "sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz", + "integrity": "sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz", + "integrity": "sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz", + "integrity": "sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz", + "integrity": "sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz", + "integrity": "sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz", + "integrity": "sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz", + "integrity": "sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz", + "integrity": "sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz", + "integrity": "sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz", + "integrity": "sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz", + "integrity": "sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz", + "integrity": "sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz", + "integrity": "sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz", + "integrity": "sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@lukeed/csprng": { + "version": "1.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@lukeed/csprng/-/csprng-1.1.0.tgz", + "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@material/animation": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/animation/-/animation-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-leRf+BcZTfC/iSigLXnYgcHAGvFVQveoJT5+2PIRdyPI/bIG7hhciRgacHRsCKC0sGya81dDblLgdkjSUemYLw==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/auto-init": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/auto-init/-/auto-init-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-uxzDq7q3c0Bu1pAsMugc1Ik9ftQYQqZY+5e2ybNplT8gTImJhNt4M2mMiMHbMANk2l3UgICmUyRSomgPBWCPIA==", + "dependencies": { + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/banner": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/banner/-/banner-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-SHeVoidCUFVhXANN6MNWxK9SZoTSgpIP8GZB7kAl52BywLxtV+FirTtLXkg/8RUkxZRyRWl7HvQ0ZFZa7QQAyA==", + "dependencies": { + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/button": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tokens": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/base": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/base/-/base-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-Fc3vGuOf+duGo22HTRP6dHdc+MUe0VqQfWOuKrn/wXKD62m0QQR2TqJd3rRhCumH557T5QUyheW943M3E+IGfg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/button": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/button/-/button-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-3AQgwrPZCTWHDJvwgKq7Cj+BurQ4wTjDdGL+FEnIGUAjJDskwi1yzx5tW2Wf/NxIi7IoPFyOY3UB41jwMiOrnw==", + "dependencies": { + "@material/density": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/focus-ring": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tokens": "15.0.0-canary.bc9ae6c9c.0", + "@material/touch-target": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/card": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/card/-/card-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-nPlhiWvbLmooTnBmV5gmzB0eLWSgLKsSRBYAbIBmO76Okgz1y+fQNLag+lpm/TDaHVsn5fmQJH8e0zIg0rYsQA==", + "dependencies": { + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tokens": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/checkbox": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/checkbox/-/checkbox-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-4tpNnO1L0IppoMF3oeQn8F17t2n0WHB0D7mdJK9rhrujen/fLbekkIC82APB3fdGtLGg3qeNqDqPsJm1YnmrwA==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/density": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/focus-ring": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/touch-target": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/chips": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/chips/-/chips-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-fqHKvE5bSWK0bXVkf57MWxZtytGqYBZvvHIOs4JI9HPHEhaJy4CpSw562BEtbm3yFxxALoQknvPW2KYzvADnmA==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/checkbox": "15.0.0-canary.bc9ae6c9c.0", + "@material/density": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/focus-ring": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tokens": "15.0.0-canary.bc9ae6c9c.0", + "@material/touch-target": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/circular-progress": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/circular-progress/-/circular-progress-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-Lxe8BGAxQwCQqrLhrYrIP0Uok10h7aYS3RBXP41ph+5GmwJd5zdyE2t93qm2dyThvU6qKuXw9726Dtq/N+wvZQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/progress-indicator": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/data-table": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/data-table/-/data-table-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-j/7qplT9+sUpfe4pyWhPbl01qJA+OoNAG3VMJruBBR461ZBKyTi7ssKH9yksFGZ8eCEPkOsk/+kDxsiZvRWkeQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/checkbox": "15.0.0-canary.bc9ae6c9c.0", + "@material/density": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/icon-button": "15.0.0-canary.bc9ae6c9c.0", + "@material/linear-progress": "15.0.0-canary.bc9ae6c9c.0", + "@material/list": "15.0.0-canary.bc9ae6c9c.0", + "@material/menu": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/select": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tokens": "15.0.0-canary.bc9ae6c9c.0", + "@material/touch-target": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/density": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/density/-/density-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-Zt3u07fXrBWLW06Tl5fgvjicxNQMkFdawLyNTzZ5TvbXfVkErILLePwwGaw8LNcvzqJP6ABLA8jiR+sKNoJQCg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/dialog": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/dialog/-/dialog-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-o+9a/fmwJ9+gY3Z/uhj/PMVJDq7it1NTWKJn2GwAKdB+fDkT4hb9qEdcxMPyvJJ5ups+XiKZo03+tZrD+38c1w==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/button": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/icon-button": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tokens": "15.0.0-canary.bc9ae6c9c.0", + "@material/touch-target": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/dom": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/dom/-/dom-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-ly78R7aoCJtundSUu0UROU+5pQD5Piae0Y1MkN6bs0724azeazX1KeXFeaf06JOXnlr5/41ol+fSUPowjoqnOg==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/drawer": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/drawer/-/drawer-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-PFL4cEFnt7VTxDsuspFVNhsFDYyumjU0VWfj3PWB7XudsEfQ3lo85D3HCEtTTbRsCainGN8bgYNDNafLBqiigw==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/list": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/elevation": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/elevation/-/elevation-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-Ro+Pk8jFuap+T0B0shA3xI1hs2b89dNQ2EIPCNjNMp87emHKAzJfhKb7EZGIwv3+gFLlVaLyIVkb94I89KLsyg==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/fab": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/fab/-/fab-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-dvU0KWMRglwJEQwmQtFAmJcAjzg9VFF6Aqj78bJYu/DAIGFJ1VTTTSgoXM/XCm1YyQEZ7kZRvxBO37CH54rSDg==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/focus-ring": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tokens": "15.0.0-canary.bc9ae6c9c.0", + "@material/touch-target": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/feature-targeting": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/feature-targeting/-/feature-targeting-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-wkDjVcoVEYYaJvun28IXdln/foLgPD7n9ZC9TY76GErGCwTq+HWpU6wBAAk+ePmpRFDayw4vI4wBlaWGxLtysQ==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/floating-label": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/floating-label/-/floating-label-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-bUWPtXzZITOD/2mkvLkEPO1ngDWmb74y0Kgbz6llHLOQBtycyJIpuoQJ1q2Ez0NM/tFLwPphhAgRqmL3YQ/Kzw==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/focus-ring": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/focus-ring/-/focus-ring-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-cZHThVose3GvAlJzpJoBI1iqL6d1/Jj9hXrR+r8Mwtb1hBIUEG3hxfsRd4vGREuzROPlf0OgNf/V+YHoSwgR5w==", + "dependencies": { + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0" + } + }, + "node_modules/@material/form-field": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/form-field/-/form-field-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-+JFXy5X44Gue1CbZZAQ6YejnI203lebYwL0i6k0ylDpWHEOdD5xkF2PyHR28r9/65Ebcbwbff6q7kI1SGoT7MA==", + "dependencies": { + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/icon-button": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/icon-button/-/icon-button-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-1a0MHgyIwOs4RzxrVljsqSizGYFlM1zY2AZaLDsgT4G3kzsplTx8HZQ022GpUCjAygW+WLvg4z1qAhQHvsbqlw==", + "dependencies": { + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/density": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/focus-ring": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/touch-target": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/image-list": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/image-list/-/image-list-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-WKWmiYap2iu4QdqmeUSliLlN4O2Ueqa0OuVAYHn/TCzmQ2xmnhZ1pvDLbs6TplpOmlki7vFfe+aSt5SU9gwfOQ==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/layout-grid": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/layout-grid/-/layout-grid-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-5GqmT6oTZhUGWIb+CLD0ZNyDyTiJsr/rm9oRIi3+vCujACwxFkON9tzBlZohdtFS16nuzUusthN6Jt9UrJcN6Q==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/line-ripple": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/line-ripple/-/line-ripple-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-8S30WXEuUdgDdBulzUDlPXD6qMzwCX9SxYb5mGDYLwl199cpSGdXHtGgEcCjokvnpLhdZhcT1Dsxeo1g2Evh5Q==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/linear-progress": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/linear-progress/-/linear-progress-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-6EJpjrz6aoH2/gXLg9iMe0yF2C42hpQyZoHpmcgTLKeci85ktDvJIjwup8tnk8ULQyFiGiIrhXw2v2RSsiFjvQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/progress-indicator": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/list": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/list/-/list-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-TQ1ppqiCMQj/P7bGD4edbIIv4goczZUoiUAaPq/feb1dflvrFMzYqJ7tQRRCyBL8nRhJoI2x99tk8Q2RXvlGUQ==", + "dependencies": { + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/density": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tokens": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/menu": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/menu/-/menu-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-IlAh61xzrzxXs38QZlt74UYt8J431zGznSzDtB1Fqs6YFNd11QPKoiRXn1J2Qu/lUxbFV7i8NBKMCKtia0n6/Q==", + "dependencies": { + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/list": "15.0.0-canary.bc9ae6c9c.0", + "@material/menu-surface": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tokens": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/menu-surface": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/menu-surface/-/menu-surface-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-dMtSPN+olTWE+08M5qe4ea1IZOhVryYqzK0Gyb2u1G75rSArUxCOB5rr6OC/ST3Mq3RS6zGuYo7srZt4534K9Q==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/notched-outline": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/notched-outline/-/notched-outline-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-WuurMg44xexkvLTBTnsO0A+qnzFjpcPdvgWBGstBepYozsvSF9zJGdb1x7Zv1MmqbpYh/Ohnuxtb/Y3jOh6irg==", + "dependencies": { + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/floating-label": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/progress-indicator": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/progress-indicator/-/progress-indicator-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-uOnsvqw5F2fkeTnTl4MrYzjI7KCLmmLyZaM0cgLNuLsWVlddQE+SGMl28tENx7DUK3HebWq0FxCP8f25LuDD+w==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/radio": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/radio/-/radio-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-ehzOK+U1IxQN+OQjgD2lsnf1t7t7RAwQzeO6Czkiuid29ookYbQynWuLWk7NW8H8ohl7lnmfqTP1xSNkkL/F0g==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/density": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/focus-ring": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/touch-target": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/ripple": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/ripple/-/ripple-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-JfLW+g3GMVDv4cruQ19+HUxpKVdWCldFlIPw1UYezz2h3WTNDy05S3uP2zUdXzZ01C3dkBFviv4nqZ0GCT16MA==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/rtl": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/rtl/-/rtl-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-SkKLNLFp5QtG7/JEFg9R92qq4MzTcZ5As6sWbH7rRg6ahTHoJEuqE+pOb9Vrtbj84k5gtX+vCYPvCILtSlr2uw==", + "dependencies": { + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/segmented-button": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/segmented-button/-/segmented-button-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-YDwkCWP9l5mIZJ7pZJZ2hMDxfBlIGVJ+deNzr8O+Z7/xC5LGXbl4R5aPtUVHygvXAXxpf5096ZD+dSXzYzvWlw==", + "dependencies": { + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/touch-target": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/select": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/select/-/select-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-unfOWVf7T0sixVG+3k3RTuATfzqvCF6QAzA6J9rlCh/Tq4HuIBNDdV4z19IVu4zwmgWYxY0iSvqWUvdJJYwakQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/density": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/floating-label": "15.0.0-canary.bc9ae6c9c.0", + "@material/line-ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/list": "15.0.0-canary.bc9ae6c9c.0", + "@material/menu": "15.0.0-canary.bc9ae6c9c.0", + "@material/menu-surface": "15.0.0-canary.bc9ae6c9c.0", + "@material/notched-outline": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tokens": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/shape": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/shape/-/shape-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-Dsvr771ZKC46ODzoixLdGwlLEQLfxfLrtnRojXABoZf5G3o9KtJU+J+5Ld5aa960OAsCzzANuaub4iR88b1guA==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/slider": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/slider/-/slider-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-3AEu+7PwW4DSNLndue47dh2u7ga4hDJRYmuu7wnJCIWJBnLCkp6C92kNc4Rj5iQY2ftJio5aj1gqryluh5tlYg==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tokens": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/snackbar": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/snackbar/-/snackbar-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-TwwQSYxfGK6mc03/rdDamycND6o+1p61WNd7ElZv1F1CLxB4ihRjbCoH7Qo+oVDaP8CTpjeclka+24RLhQq0mA==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/button": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/icon-button": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tokens": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/switch": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/switch/-/switch-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-OjUjtT0kRz1ASAsOS+dNzwMwvsjmqy5edK57692qmrP6bL4GblFfBDoiNJ6t0AN4OaKcmL5Hy/xNrTdOZW7Qqw==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/density": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/focus-ring": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tokens": "15.0.0-canary.bc9ae6c9c.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/tab/-/tab-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-s/L9otAwn/pZwVQZBRQJmPqYeNbjoEbzbjMpDQf/VBG/6dJ+aP03ilIBEkqo8NVnCoChqcdtVCoDNRtbU+yp6w==", + "dependencies": { + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/focus-ring": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/tab-indicator": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tokens": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-bar": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/tab-bar/-/tab-bar-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-Xmtq0wJGfu5k+zQeFeNsr4bUKv7L+feCmUp/gsapJ655LQKMXOUQZtSv9ZqWOfrCMy55hoF1CzGFV+oN3tyWWQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/density": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/tab": "15.0.0-canary.bc9ae6c9c.0", + "@material/tab-indicator": "15.0.0-canary.bc9ae6c9c.0", + "@material/tab-scroller": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tokens": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-indicator": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/tab-indicator/-/tab-indicator-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-despCJYi1GrDDq7F2hvLQkObHnSLZPPDxnOzU16zJ6FNYvIdszgfzn2HgAZ6pl5hLOexQ8cla6cAqjTDuaJBhQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-scroller": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/tab-scroller/-/tab-scroller-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-QWHG/EWxirj4V9u2IHz+OSY9XCWrnNrPnNgEufxAJVUKV/A8ma1DYeFSQqxhX709R8wKGdycJksg0Flkl7Gq7w==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/tab": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/textfield": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/textfield/-/textfield-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-R3qRex9kCaZIAK8DuxPnVC42R0OaW7AB7fsFknDKeTeVQvRcbnV8E+iWSdqTiGdsi6QQHifX8idUrXw+O45zPw==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/density": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/floating-label": "15.0.0-canary.bc9ae6c9c.0", + "@material/line-ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/notched-outline": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tokens": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/theme": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/theme/-/theme-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-CpUwXGE0dbhxQ45Hu9r9wbJtO/MAlv5ER4tBHA9tp/K+SU+lDgurBE2touFMg5INmdfVNtdumxb0nPPLaNQcUg==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tokens": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/tokens/-/tokens-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-nbEuGj05txWz6ZMUanpM47SaAD7soyjKILR+XwDell9Zg3bGhsnexCNXPEz2fD+YgomS+jM5XmIcaJJHg/H93Q==", + "dependencies": { + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0" + } + }, + "node_modules/@material/tooltip": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/tooltip/-/tooltip-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-UzuXp0b9NuWuYLYpPguxrjbJnCmT/Cco8CkjI/6JajxaeA3o2XEBbQfRMTq8PTafuBjCHTc0b0mQY7rtxUp1Gg==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/button": "15.0.0-canary.bc9ae6c9c.0", + "@material/dom": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/tokens": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/top-app-bar": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/top-app-bar/-/top-app-bar-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-vJWjsvqtdSD5+yQ/9vgoBtBSCvPJ5uF/DVssv8Hdhgs1PYaAcODUi77kdi0+sy/TaWyOsTkQixqmwnFS16zesA==", + "dependencies": { + "@material/animation": "15.0.0-canary.bc9ae6c9c.0", + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/elevation": "15.0.0-canary.bc9ae6c9c.0", + "@material/ripple": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/shape": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "@material/typography": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/touch-target": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/touch-target/-/touch-target-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-AqYh9fjt+tv4ZE0C6MeYHblS2H+XwLbDl2mtyrK0DOEnCVQk5/l5ImKDfhrUdFWHvS4a5nBM4AA+sa7KaroLoA==", + "dependencies": { + "@material/base": "15.0.0-canary.bc9ae6c9c.0", + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/rtl": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/typography": { + "version": "15.0.0-canary.bc9ae6c9c.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@material/typography/-/typography-15.0.0-canary.bc9ae6c9c.0.tgz", + "integrity": "sha512-CKsG1zyv34AKPNyZC8olER2OdPII64iR2SzQjpqh1UUvmIFiMPk23LvQ1OnC5aCB14pOXzmVgvJt31r9eNdZ6Q==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.bc9ae6c9c.0", + "@material/theme": "15.0.0-canary.bc9ae6c9c.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@nestjs/axios": { + "version": "3.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@nestjs/axios/-/axios-3.0.1.tgz", + "integrity": "sha512-VlOZhAGDmOoFdsmewn8AyClAdGpKXQQaY1+3PGB+g6ceurGIdTxZgRX3VXc1T6Zs60PedWjg3A82TDOB05mrzQ==", + "dev": true, + "peerDependencies": { + "@nestjs/common": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0", + "axios": "^1.3.1", + "reflect-metadata": "^0.1.12", + "rxjs": "^6.0.0 || ^7.0.0" + } + }, + "node_modules/@nestjs/common": { + "version": "10.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@nestjs/common/-/common-10.3.0.tgz", + "integrity": "sha512-DGv34UHsZBxCM3H5QGE2XE/+oLJzz5+714JQjBhjD9VccFlQs3LRxo/epso4l7nJIiNlZkPyIUC8WzfU/5RTsQ==", + "dev": true, + "dependencies": { + "iterare": "1.2.1", + "tslib": "2.6.2", + "uid": "2.0.2" + }, + "peerDependencies": { + "class-transformer": "*", + "class-validator": "*", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/core": { + "version": "10.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@nestjs/core/-/core-10.3.0.tgz", + "integrity": "sha512-N06P5ncknW/Pm8bj964WvLIZn2gNhHliCBoAO1LeBvNImYkecqKcrmLbY49Fa1rmMfEM3MuBHeDys3edeuYAOA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@nuxtjs/opencollective": "0.3.2", + "fast-safe-stringify": "2.1.1", + "iterare": "1.2.1", + "path-to-regexp": "3.2.0", + "tslib": "2.6.2", + "uid": "2.0.2" + }, + "peerDependencies": { + "@nestjs/common": "^10.0.0", + "@nestjs/microservices": "^10.0.0", + "@nestjs/platform-express": "^10.0.0", + "@nestjs/websockets": "^10.0.0", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + }, + "@nestjs/websockets": { + "optional": true + } + } + }, + "node_modules/@ngtools/webpack": { + "version": "16.2.12", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@ngtools/webpack/-/webpack-16.2.12.tgz", + "integrity": "sha512-f9R9Qsk8v+ffDxryl6PQ7Wnf2JCNd4dDXOH+d/AuF06VFiwcwGDRDZpmqkAXbFxQfcWTbT1FFvfoJ+SFcJgXLA==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^16.0.0", + "typescript": ">=4.9.3 <5.2", + "webpack": "^5.54.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git": { + "version": "4.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@npmcli/git/-/git-4.1.0.tgz", + "integrity": "sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==", + "dev": true, + "dependencies": { + "@npmcli/promise-spawn": "^6.0.0", + "lru-cache": "^7.4.4", + "npm-pick-manifest": "^8.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "3.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "2.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", + "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", + "dev": true, + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "lib/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "6.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", + "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", + "dev": true, + "dependencies": { + "which": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "3.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script": { + "version": "6.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@npmcli/run-script/-/run-script-6.0.2.tgz", + "integrity": "sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==", + "dev": true, + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/promise-spawn": "^6.0.0", + "node-gyp": "^9.0.0", + "read-package-json-fast": "^3.0.0", + "which": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "3.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@nuxtjs/opencollective": { + "version": "0.3.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", + "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.1" + }, + "bin": { + "opencollective": "bin/opencollective.js" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/@nuxtjs/opencollective/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nuxtjs/opencollective/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nuxtjs/opencollective/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@nuxtjs/opencollective/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@nuxtjs/opencollective/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nuxtjs/opencollective/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@openapitools/openapi-generator-cli": { + "version": "2.11.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.11.0.tgz", + "integrity": "sha512-oqTNvFARvhztEgMHoOvdwx148MM89/Ersa8KZTZxMVtLXCynIDyTqWnZqvCsBUZDc2Bl+N8pT6XWbLkz3JVh0w==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@nestjs/axios": "3.0.1", + "@nestjs/common": "10.3.0", + "@nestjs/core": "10.3.0", + "@nuxtjs/opencollective": "0.3.2", + "axios": "1.6.5", + "chalk": "4.1.2", + "commander": "8.3.0", + "compare-versions": "4.1.4", + "concurrently": "6.5.1", + "console.table": "0.10.0", + "fs-extra": "10.1.0", + "glob": "7.2.3", + "inquirer": "8.2.6", + "lodash": "4.17.21", + "reflect-metadata": "0.1.13", + "rxjs": "7.8.1", + "tslib": "2.6.2" + }, + "bin": { + "openapi-generator-cli": "main.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/inquirer": { + "version": "8.2.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "peer": true + }, + "node_modules/@schematics/angular": { + "version": "16.1.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@schematics/angular/-/angular-16.1.8.tgz", + "integrity": "sha512-gTHy1A/E9BCr0sj3VCr6eBYkgVkO96QWiZcFumedGnvstvp5wiCoIoJPLLfYaxVt1vt08xmnmS3OZ3r0qCLdpA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "16.1.8", + "@angular-devkit/schematics": "16.1.8", + "jsonc-parser": "3.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { + "version": "16.1.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@angular-devkit/core/-/core-16.1.8.tgz", + "integrity": "sha512-dSRD/+bGanArIXkj+kaU1kDFleZeQMzmBiOXX+pK0Ah9/0Yn1VmY3RZh1zcX9vgIQXV+t7UPrTpOjaERMUtVGw==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@sigstore/bundle": { + "version": "1.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@sigstore/bundle/-/bundle-1.1.0.tgz", + "integrity": "sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", + "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@sigstore/sign/-/sign-1.0.0.tgz", + "integrity": "sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^1.1.0", + "@sigstore/protobuf-specs": "^0.2.0", + "make-fetch-happen": "^11.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@sigstore/sign/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@sigstore/sign/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@sigstore/sign/node_modules/make-fetch-happen": { + "version": "11.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign/node_modules/minipass-fetch": { + "version": "3.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/@sigstore/sign/node_modules/minipass-fetch/node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@sigstore/tuf": { + "version": "1.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@sigstore/tuf/-/tuf-1.0.3.tgz", + "integrity": "sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.0", + "tuf-js": "^1.1.7" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@tufjs/canonical-json": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", + "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "1.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@tufjs/models/-/models-1.0.4.tgz", + "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", + "dev": true, + "dependencies": { + "@tufjs/canonical-json": "1.0.0", + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/eslint/-/eslint-8.56.5.tgz", + "integrity": "sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.43", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", + "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "4.3.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/jasmine/-/jasmine-4.3.6.tgz", + "integrity": "sha512-3N0FpQTeiWjm+Oo1WUYWguUS7E6JLceiGTriFrG8k5PU7zRLJCzLcWURU3wjMbZGS//a2/LgjsnO3QxIlwxt9g==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.11.25", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/node/-/node-20.11.25.tgz", + "integrity": "sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/qs": { + "version": "6.9.12", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/qs/-/qs-6.9.12.tgz", + "integrity": "sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==" + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", + "integrity": "sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==", + "dev": true, + "engines": { + "node": ">=14.6.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@wessberg/ts-evaluator": { + "version": "0.0.27", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@wessberg/ts-evaluator/-/ts-evaluator-0.0.27.tgz", + "integrity": "sha512-7gOpVm3yYojUp/Yn7F4ZybJRxyqfMNf0LXK5KJiawbPfL0XTsJV+0mgrEDjOIR6Bi0OYk2Cyg4tjFu1r8MCZaA==", + "deprecated": "this package has been renamed to ts-evaluator. Please install ts-evaluator instead", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "jsdom": "^16.4.0", + "object-path": "^0.11.5", + "tslib": "^2.0.3" + }, + "engines": { + "node": ">=10.1.0" + }, + "peerDependencies": { + "typescript": ">=3.2.x || >= 4.x" + } + }, + "node_modules/@wessberg/ts-evaluator/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wessberg/ts-evaluator/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@wessberg/ts-evaluator/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@wessberg/ts-evaluator/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@wessberg/ts-evaluator/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wessberg/ts-evaluator/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.5.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "dev": true, + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "node_modules/are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.14", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "1.6.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/axios/-/axios-1.6.5.tgz", + "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", + "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.5.0", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.4", + "core-js-compat": "^3.33.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/bonjour-service": { + "version": "1.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/bootstrap": { + "version": "5.3.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/bootstrap/-/bootstrap-5.3.3.tgz", + "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==", + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/build": { + "version": "0.1.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/build/-/build-0.1.4.tgz", + "integrity": "sha512-KwbDJ/zrsU8KZRRMfoURG14cKIAStUlS8D5jBDvtrZbwO5FEkYqc3oB8HIhRiyD64A48w1lc+sOmQ+mmBw5U/Q==", + "dependencies": { + "cssmin": "0.3.x", + "jsmin": "1.x", + "jxLoader": "*", + "moo-server": "*", + "promised-io": "*", + "timespan": "2.x", + "uglify-js": "1.x", + "walker": "1.x", + "winston": "*", + "wrench": "1.3.x" + }, + "engines": { + "node": ">v0.4.12" + } + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "17.1.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cacache/-/cacache-17.1.4.tgz", + "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^7.7.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/cacache/node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001596", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz", + "integrity": "sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ==" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/compare-versions": { + "version": "4.1.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/compare-versions/-/compare-versions-4.1.4.tgz", + "integrity": "sha512-FemMreK9xNyL8gQevsdRMrvO4lFCkQP7qbuktn1q8ndcNk1+0mz7lgE7b/sNvbhVgY4w6tMN1FDp6aADjqw2rw==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concurrently": { + "version": "6.5.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/concurrently/-/concurrently-6.5.1.tgz", + "integrity": "sha512-FlSwNpGjWQfRwPLXvJ/OgysbBxPkWpiVjy1042b0U7on7S7qwwMIILRj7WTN1mTgqa582bG6NFuScOoh6Zgdag==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "date-fns": "^2.16.1", + "lodash": "^4.17.21", + "rxjs": "^6.6.3", + "spawn-command": "^0.0.2-1", + "supports-color": "^8.1.0", + "tree-kill": "^1.2.2", + "yargs": "^16.2.0" + }, + "bin": { + "concurrently": "bin/concurrently.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/concurrently/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/concurrently/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/concurrently/node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/concurrently/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/concurrently/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/concurrently/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concurrently/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/concurrently/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/concurrently/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/concurrently/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/concurrently/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", + "dev": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true + }, + "node_modules/console.table": { + "version": "0.10.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/console.table/-/console.table-0.10.0.tgz", + "integrity": "sha512-dPyZofqggxuvSf7WXvNjuRfnsOk1YazkVP8FdxH4tcH2c37wc79/Yl6Bhr7Lsu00KMgy2ql/qCMuNu8xctZM8g==", + "dev": true, + "dependencies": { + "easy-table": "1.1.0" + }, + "engines": { + "node": "> 0.10" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "dependencies": { + "is-what": "^3.14.1" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/core-js-compat": { + "version": "3.36.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/core-js-compat/-/core-js-compat-3.36.0.tgz", + "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", + "dev": true, + "dependencies": { + "browserslist": "^4.22.3" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/critters": { + "version": "0.0.20", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/critters/-/critters-0.0.20.tgz", + "integrity": "sha512-CImNRorKOl5d8TWcnAz5n5izQ6HFsvz29k327/ELy6UFcmbiZNOsinaKvzv16WZR0P6etfSWYzE47C4/56B3Uw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "css-select": "^5.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.2", + "htmlparser2": "^8.0.2", + "postcss": "^8.4.23", + "pretty-bytes": "^5.3.0" + } + }, + "node_modules/critters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/critters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/critters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/critters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/critters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/critters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "6.8.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.21", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.3", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssmin": { + "version": "0.3.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cssmin/-/cssmin-0.3.2.tgz", + "integrity": "sha512-bynxGIAJ8ybrnFobjsQotIjA8HFDDgPwbeUWNXXXfR+B4f9kkxdcUyagJoQCSUOfMV+ZZ6bMn8bvbozlCzUGwQ==", + "bin": { + "cssmin": "bin/cssmin" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/custom-event": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", + "dev": true + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + } + }, + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/di/-/di-0.0.1.tgz", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", + "dev": true + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/easy-table": { + "version": "1.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/easy-table/-/easy-table-1.1.0.tgz", + "integrity": "sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==", + "dev": true, + "optionalDependencies": { + "wcwidth": ">=1.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.695", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/electron-to-chromium/-/electron-to-chromium-1.4.695.tgz", + "integrity": "sha512-eMijZmeqPtm774pCZIOrfUHMs/7ls++W1sLhxwqgu8KQ8E2WmMtzwyqOMt0XXUJ3HTIPfuwlfwF+I5cwnfItBA==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/engine.io": { + "version": "6.5.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/engine.io/-/engine.io-6.5.4.tgz", + "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", + "dev": true, + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/engine.io-parser/-/engine.io-parser-5.2.2.tgz", + "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/enhanced-resolve/-/enhanced-resolve-5.15.1.tgz", + "integrity": "sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ent/-/ent-2.2.0.tgz", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "devOptional": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==" + }, + "node_modules/esbuild": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/esbuild/-/esbuild-0.18.17.tgz", + "integrity": "sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.17", + "@esbuild/android-arm64": "0.18.17", + "@esbuild/android-x64": "0.18.17", + "@esbuild/darwin-arm64": "0.18.17", + "@esbuild/darwin-x64": "0.18.17", + "@esbuild/freebsd-arm64": "0.18.17", + "@esbuild/freebsd-x64": "0.18.17", + "@esbuild/linux-arm": "0.18.17", + "@esbuild/linux-arm64": "0.18.17", + "@esbuild/linux-ia32": "0.18.17", + "@esbuild/linux-loong64": "0.18.17", + "@esbuild/linux-mips64el": "0.18.17", + "@esbuild/linux-ppc64": "0.18.17", + "@esbuild/linux-riscv64": "0.18.17", + "@esbuild/linux-s390x": "0.18.17", + "@esbuild/linux-x64": "0.18.17", + "@esbuild/netbsd-x64": "0.18.17", + "@esbuild/openbsd-x64": "0.18.17", + "@esbuild/sunos-x64": "0.18.17", + "@esbuild/win32-arm64": "0.18.17", + "@esbuild/win32-ia32": "0.18.17", + "@esbuild/win32-x64": "0.18.17" + } + }, + "node_modules/esbuild-wasm": { + "version": "0.18.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/esbuild-wasm/-/esbuild-wasm-0.18.17.tgz", + "integrity": "sha512-9OHGcuRzy+I8ziF9FzjfKLWAPbvi0e/metACVg9k6bK+SI4FFxeV6PcZsz8RIVaMD4YNehw+qj6UMR3+qj/EuQ==", + "dev": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter-asyncresource": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", + "dev": true + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true + }, + "node_modules/express": { + "version": "4.18.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/express/-/express-4.18.3.tgz", + "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/express/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/finalhandler/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" + }, + "node_modules/follow-redirects": { + "version": "1.15.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "dev": true, + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + }, + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "dev": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "13.2.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/guess-parser": { + "version": "0.4.22", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/guess-parser/-/guess-parser-0.4.22.tgz", + "integrity": "sha512-KcUWZ5ACGaBM69SbqwVIuWGoSAgD+9iJnchR9j/IarVI1jHVeXv+bUXBIMeqVMSKt3zrn0Dgf9UpcOEpPBLbSg==", + "dev": true, + "dependencies": { + "@wessberg/ts-evaluator": "0.0.27" + }, + "peerDependencies": { + "typescript": ">=3.7.5" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hdr-histogram-js": { + "version": "2.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", + "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", + "dev": true, + "dependencies": { + "@assemblyscript/loader": "^0.10.1", + "base64-js": "^1.2.0", + "pako": "^1.0.3" + } + }, + "node_modules/hdr-histogram-percentiles-obj": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", + "dev": true + }, + "node_modules/hosted-git-info": { + "version": "6.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/hosted-git-info/-/hosted-git-info-6.1.1.tgz", + "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", + "dev": true, + "dependencies": { + "lru-cache": "^7.5.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "6.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ignore-walk/-/ignore-walk-6.0.4.tgz", + "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==", + "dev": true, + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "4.3.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "4.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/inquirer": { + "version": "8.2.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/inquirer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/inquirer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterare": { + "version": "1.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/iterare/-/iterare-1.2.1.tgz", + "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jasmine-core": { + "version": "4.6.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", + "dev": true + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jsdom/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jsmin": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/jsmin/-/jsmin-1.0.1.tgz", + "integrity": "sha512-OPuL5X/bFKgVdMvEIX3hnpx3jbVpFCrEM8pKPXjFkZUqg521r41ijdyTz7vACOhW6o1neVlcLyd+wkbK5fNHRg==", + "bin": { + "jsmin": "bin/jsmin" + }, + "engines": { + "node": ">=0.1.93" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/jxLoader": { + "version": "0.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/jxLoader/-/jxLoader-0.1.1.tgz", + "integrity": "sha512-ClEvAj3K68y8uKhub3RgTmcRPo5DfIWvtxqrKQdDPyZ1UVHIIKvVvjrAsJFSVL5wjv0rt5iH9SMCZ0XRKNzeUA==", + "dependencies": { + "js-yaml": "0.3.x", + "moo-server": "1.3.x", + "promised-io": "*", + "walker": "1.x" + }, + "engines": { + "node": ">v0.4.10" + } + }, + "node_modules/jxLoader/node_modules/js-yaml": { + "version": "0.3.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/js-yaml/-/js-yaml-0.3.7.tgz", + "integrity": "sha512-/7PsVDNP2tVe2Z1cF9kTEkjamIwz4aooDpRKmN1+g/9eePCgcxsv4QDvEbxO0EH+gdDD7MLyDoR6BASo3hH51g==", + "engines": { + "node": "> 0.4.11" + } + }, + "node_modules/karma": { + "version": "6.4.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/karma/-/karma-6.4.3.tgz", + "integrity": "sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q==", + "dev": true, + "dependencies": { + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.7.2", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", + "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-coverage": { + "version": "2.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/karma-coverage/-/karma-coverage-2.2.1.tgz", + "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/karma-jasmine": { + "version": "5.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", + "dev": true, + "dependencies": { + "jasmine-core": "^4.1.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "karma": "^6.0.0" + } + }, + "node_modules/karma-jasmine-html-reporter": { + "version": "2.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz", + "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==", + "dev": true, + "peerDependencies": { + "jasmine-core": "^4.0.0 || ^5.0.0", + "karma": "^6.0.0", + "karma-jasmine": "^5.0.0" + } + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/karma/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/karma/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma/node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/karma/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/karma/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" + }, + "node_modules/launch-editor": { + "version": "2.6.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/less": { + "version": "4.1.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/less/-/less-4.1.3.tgz", + "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "11.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/less-loader/-/less-loader-11.1.0.tgz", + "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/license-webpack-plugin": { + "version": "4.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", + "dev": true, + "dependencies": { + "webpack-sources": "^3.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": true + } + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/logform": { + "version": "2.6.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/logform/-/logform-2.6.0.tgz", + "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/logform/node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/magic-string/-/magic-string-0.30.1.tgz", + "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/make-fetch-happen": { + "version": "10.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/make-fetch-happen/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/cacache": { + "version": "16.1.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/make-fetch-happen/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-fetch-happen/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/make-fetch-happen/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/unique-filename": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dev": true, + "dependencies": { + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/unique-slug": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.7.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", + "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-collect/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-fetch": { + "version": "2.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-fetch/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-fetch/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-json-stream/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-json-stream/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "engines": { + "node": "*" + } + }, + "node_modules/moo-server": { + "version": "1.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/moo-server/-/moo-server-1.3.0.tgz", + "integrity": "sha512-9A8/eor2DXwpv1+a4pZAAydqLFVrWoKoO1fzdzqLUhYVXAO1Kgd1FR2gFZi7YdHzF0s4W8cDNwCfKJQrvLqxDw==", + "engines": { + "node": ">v0.4.10" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/nice-napi": { + "version": "1.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "dependencies": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "9.4.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/node-gyp/-/node-gyp-9.4.1.tgz", + "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^10.0.3", + "nopt": "^6.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^12.13 || ^14.13 || >=16" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/node-gyp-build/-/node-gyp-build-4.8.0.tgz", + "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "dev": true, + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "2.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "node_modules/nopt": { + "version": "6.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "dev": true, + "dependencies": { + "abbrev": "^1.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "5.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/normalize-package-data/-/normalize-package-data-5.0.0.tgz", + "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", + "dev": true, + "dependencies": { + "hosted-git-info": "^6.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-bundled": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/npm-bundled/-/npm-bundled-3.0.0.tgz", + "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg": { + "version": "10.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/npm-package-arg/-/npm-package-arg-10.1.0.tgz", + "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-packlist": { + "version": "7.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/npm-packlist/-/npm-packlist-7.0.4.tgz", + "integrity": "sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==", + "dev": true, + "dependencies": { + "ignore-walk": "^6.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "8.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/npm-pick-manifest/-/npm-pick-manifest-8.0.1.tgz", + "integrity": "sha512-mRtvlBjTsJvfCCdmPtiu2bdlx8d/KXtF7yNXNWe7G0Z36qWA9Ny5zXsI2PfBZEv7SXgoxTmNaTzGSbbzDZChoA==", + "dev": true, + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^10.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "14.0.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", + "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", + "dev": true, + "dependencies": { + "make-fetch-happen": "^11.0.0", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^10.0.0", + "proc-log": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm-registry-fetch/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm-registry-fetch/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { + "version": "11.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/minipass-fetch": { + "version": "3.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm-registry-fetch/node_modules/minipass-fetch/node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "dev": true, + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + } + }, + "node_modules/nwsapi": { + "version": "2.2.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true + }, + "node_modules/object-path": { + "version": "0.11.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/object-path/-/object-path-0.11.8.tgz", + "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", + "dev": true, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pacote": { + "version": "15.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/pacote/-/pacote-15.2.0.tgz", + "integrity": "sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==", + "dev": true, + "dependencies": { + "@npmcli/git": "^4.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^6.0.1", + "@npmcli/run-script": "^6.0.0", + "cacache": "^17.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^5.0.0", + "npm-package-arg": "^10.0.0", + "npm-packlist": "^7.0.0", + "npm-pick-manifest": "^8.0.0", + "npm-registry-fetch": "^14.0.0", + "proc-log": "^3.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^6.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^1.3.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "devOptional": true, + "dependencies": { + "entities": "^4.4.0" + } + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "7.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", + "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", + "dev": true, + "dependencies": { + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + } + }, + "node_modules/parse5-sax-parser": { + "version": "7.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", + "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", + "dev": true, + "dependencies": { + "parse5": "^7.0.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "3.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/path-to-regexp/-/path-to-regexp-3.2.0.tgz", + "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/piscina": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/piscina/-/piscina-4.0.0.tgz", + "integrity": "sha512-641nAmJS4k4iqpNUqfggqUBUMmlw0ZoM5VZKdQkV2e970Inn3Tk9kroCc1wpsYLD07vCwpys5iY0d3xI/9WkTg==", + "dev": true, + "dependencies": { + "eventemitter-asyncresource": "^1.0.0", + "hdr-histogram-js": "^2.0.1", + "hdr-histogram-percentiles-obj": "^3.0.0" + }, + "optionalDependencies": { + "nice-napi": "^1.0.2" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "dev": true, + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-loader": { + "version": "7.3.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/postcss-loader/-/postcss-loader-7.3.3.tgz", + "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", + "dev": true, + "dependencies": { + "cosmiconfig": "^8.2.0", + "jiti": "^1.18.2", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", + "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz", + "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/promised-io": { + "version": "0.3.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/promised-io/-/promised-io-0.3.6.tgz", + "integrity": "sha512-bNwZusuNIW4m0SPR8jooSyndD35ggirHlxVl/UhIaZD/F0OBv9ebfc6tNmbpZts3QXHggkjIBH8lvtnzhtcz0A==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-package-json": { + "version": "6.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/read-package-json/-/read-package-json-6.0.4.tgz", + "integrity": "sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==", + "dev": true, + "dependencies": { + "glob": "^10.2.2", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^5.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": { + "version": "3.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", + "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/read-package-json/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/read-package-json/node_modules/json-parse-even-better-errors": { + "version": "3.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", + "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.14", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/reflect-metadata/-/reflect-metadata-0.1.14.tgz", + "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/regex-parser/-/regex-parser-2.3.0.tgz", + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", + "dev": true + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "node_modules/safe-stable-stringify": { + "version": "2.4.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/safevalues": { + "version": "0.3.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/safevalues/-/safevalues-0.3.4.tgz", + "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" + }, + "node_modules/sass": { + "version": "1.64.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/sass/-/sass-1.64.1.tgz", + "integrity": "sha512-16rRACSOFEE8VN7SCgBu1MpYCyN7urj9At898tyzdXFhC+a+yOX5dXwAR7L8/IdPJ1NB8OYoXmD55DM30B2kEQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-loader": { + "version": "13.3.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/sass-loader/-/sass-loader-13.3.2.tgz", + "integrity": "sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==", + "dev": true, + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "dev": true, + "optional": true + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/set-function-length": { + "version": "1.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sigstore": { + "version": "1.9.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/sigstore/-/sigstore-1.9.0.tgz", + "integrity": "sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^1.1.0", + "@sigstore/protobuf-specs": "^0.2.0", + "@sigstore/sign": "^1.0.0", + "@sigstore/tuf": "^1.0.3", + "make-fetch-happen": "^11.0.1" + }, + "bin": { + "sigstore": "bin/sigstore.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/sigstore/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sigstore/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sigstore/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/sigstore/node_modules/make-fetch-happen": { + "version": "11.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/sigstore/node_modules/minipass-fetch": { + "version": "3.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/sigstore/node_modules/minipass-fetch/node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "node_modules/single-spa": { + "version": "6.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/single-spa/-/single-spa-6.0.1.tgz", + "integrity": "sha512-JsJSnjaeBJ+uZCqKwfI06AsaHlqfr2jvDqz+1we8tDxptYnDEi54C2M6W0XY2FLroro9Wnh3+ooEUEwcOileGg==" + }, + "node_modules/single-spa-angular": { + "version": "8.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/single-spa-angular/-/single-spa-angular-8.1.1.tgz", + "integrity": "sha512-UxIuMj0nL+eFMs1/deSdU3ayAlIwSEv9gixHiFyHbgDidn3RIsHJZMTcWlCher0O89GpeNHCq7znFP7TtARRxw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/core": ">=15.1.0", + "json5": "*", + "single-spa": ">=4.0.0", + "style-loader": "^3.3.1" + } + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socket.io": { + "version": "4.7.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/socket.io/-/socket.io-4.7.4.tgz", + "integrity": "sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz", + "integrity": "sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==", + "dev": true, + "dependencies": { + "debug": "~4.3.4", + "ws": "~8.11.0" + } + }, + "node_modules/socket.io-adapter/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.8.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/socks/-/socks-2.8.1.tgz", + "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==", + "dev": true, + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "4.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/source-map-loader/-/source-map-loader-4.0.1.tgz", + "integrity": "sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "webpack": "^5.72.1" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawn-command": { + "version": "0.0.2-1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.17", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/ssri": { + "version": "10.0.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ssri/node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "engines": { + "node": "*" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/streamroller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/streamroller/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/style-loader": { + "version": "3.3.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/terser": { + "version": "5.19.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/terser/-/terser-5.19.2.tgz", + "integrity": "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/terser": { + "version": "5.29.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/terser/-/terser-5.29.1.tgz", + "integrity": "sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/timespan": { + "version": "2.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/timespan/-/timespan-2.3.0.tgz", + "integrity": "sha512-0Jq9+58T2wbOyLth0EU+AUb6JMGCLaTWIykJFa7hyAybjVH9gpVMTfUAwo5fWAvtFt2Tjh/Elg8JtgNpnMnM8g==", + "engines": { + "node": ">= 0.2.0" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tuf-js": { + "version": "1.1.7", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/tuf-js/-/tuf-js-1.1.7.tgz", + "integrity": "sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==", + "dev": true, + "dependencies": { + "@tufjs/models": "1.0.4", + "debug": "^4.3.4", + "make-fetch-happen": "^11.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/tuf-js/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tuf-js/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tuf-js/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/tuf-js/node_modules/make-fetch-happen": { + "version": "11.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/tuf-js/node_modules/minipass-fetch": { + "version": "3.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/tuf-js/node_modules/minipass-fetch/node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-assert": { + "version": "1.0.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.1.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.37", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ua-parser-js/-/ua-parser-js-0.7.37.tgz", + "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/uglify-js": { + "version": "1.3.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/uglify-js/-/uglify-js-1.3.5.tgz", + "integrity": "sha512-YPX1DjKtom8l9XslmPFQnqWzTBkvI4N0pbkzLuPZZ4QTyig0uQqvZz9NgUdfEV+qccJzi7fVcGWdESvRIjWptQ==", + "bin": { + "uglifyjs": "bin/uglifyjs" + } + }, + "node_modules/uid": { + "version": "2.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/uid/-/uid-2.0.2.tgz", + "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", + "dev": true, + "dependencies": { + "@lukeed/csprng": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dev": true, + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "dev": true, + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "4.5.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/vite/-/vite-4.5.2.tgz", + "integrity": "sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.90.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "6.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/webpack-dev-middleware/-/webpack-dev-middleware-6.1.1.tgz", + "integrity": "sha512-y51HrHaFeeWir0YO4f0g+9GwZawuigzcAdRNon6jErXy/SqV/+O6eaVAzDqE6t3e3NpGeR5CS+cCDaTC+V3yEQ==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.12", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.16.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "5.1.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", + "dev": true, + "dependencies": { + "typed-assert": "^1.0.8" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", + "webpack": "^5.12.0" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { + "optional": true + } + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peer": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "peer": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/winston": { + "version": "3.12.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/winston/-/winston-3.12.0.tgz", + "integrity": "sha512-OwbxKaOlESDi01mC9rkM0dQqQt2I8DAUMRLZ/HpbwvDXm85IryEHgoogy5fziQy38PntgZsLlhAYHz//UPHZ5w==", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.7.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport": { + "version": "4.7.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/winston-transport/-/winston-transport-4.7.0.tgz", + "integrity": "sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==", + "dependencies": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston/node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/wrench": { + "version": "1.3.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/wrench/-/wrench-1.3.9.tgz", + "integrity": "sha512-srTJQmLTP5YtW+F5zDuqjMEZqLLr/eJOZfDI5ibfPfRMeDh3oBUefAscuH0q5wBKE339ptH/S/0D18ZkfOfmKQ==", + "deprecated": "wrench.js is deprecated! You should check out fs-extra (https://github.com/jprichardson/node-fs-extra) for any operations you were using wrench for. Thanks for all the usage over the years.", + "engines": { + "node": ">=0.1.97" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/zone.js": { + "version": "0.13.3", + "resolved": "https://artifactory.dzbank.services/artifactory/api/npm/npm-all/zone.js/-/zone.js-0.13.3.tgz", + "integrity": "sha512-MKPbmZie6fASC/ps4dkmIhaT5eonHkEt6eAy80K42tAm0G2W+AahLJjbfi6X9NPdciOE9GRFTTM8u2IiF6O3ww==", + "dependencies": { + "tslib": "^2.3.0" + } + } + } +} From 0c79fc77dda713fe8a6d6841d966d1eaa7c1403b Mon Sep 17 00:00:00 2001 From: Alex Korpis Date: Fri, 8 Mar 2024 15:33:30 +0100 Subject: [PATCH 004/105] Delete obsolete/malformed package-lock.json --- package-lock.json | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index c8b3bba48..000000000 --- a/package-lock.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "finmath-smart-derivative-contract", - "lockfileVersion": 3, - "requires": true, - "packages": {} -} From 9955c5414361fd63e86d62233b583971f7624d7d Mon Sep 17 00:00:00 2001 From: pekola Date: Tue, 12 Mar 2024 22:26:21 +0100 Subject: [PATCH 005/105] refactoring of marketdata adapters (now: generators), introduced a new simple data exchange format for xml and json transfers, added some unit tests --- pom.xml | 4 - src/main/java/module-info.javax | 2 +- .../implementation/reactive/DemoLauncher.java | 146 ------------------ .../marketdata/LaunchAGenerator.java | 70 +++++++++ .../adapters/MarketDataStreamInterface.java | 10 -- .../curvecalibration/CalibrationDataItem.java | 2 + .../curvecalibration/CalibrationDataset.java | 8 + .../marketdata/data/MarketDataPoint.java | 86 +++++++++++ .../MarketDataGeneratorInterface.java | 9 ++ .../MarketDataGeneratorRandomFeed.java} | 44 +----- .../MarketDataGeneratorScenarioList.java | 18 +++ .../MarketDataGeneratorWebsocket.java} | 101 ++++++------ .../WebSocketConnector.java | 65 ++++---- .../legacy}/LiveFeedAdapter.java | 2 +- .../legacy}/ReactiveMarketDataUpdater.java | 12 +- .../PlainSwapEditorController.java | 6 +- .../websocket/handler/ValuationHandler.java | 10 +- .../valuation/marketdata/DataFormatTests.java | 91 +++++++++++ .../valuation/marketdata/GeneratorTests.java | 97 ++++++++++++ .../marketdata/MarketDataImportTest.java | 50 ------ .../curvecalibration/CalibrationTests.java | 5 +- 21 files changed, 491 insertions(+), 347 deletions(-) delete mode 100644 src/main/java/net/finmath/smartcontract/valuation/implementation/reactive/DemoLauncher.java create mode 100644 src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java delete mode 100644 src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/MarketDataStreamInterface.java create mode 100644 src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataPoint.java create mode 100644 src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorInterface.java rename src/main/java/net/finmath/smartcontract/valuation/marketdata/{adapters/MarketDataRandomFeedAdapter.java => generators/MarketDataGeneratorRandomFeed.java} (53%) create mode 100644 src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java rename src/main/java/net/finmath/smartcontract/valuation/marketdata/{adapters/MarketDataWebSocketAdapter.java => generators/MarketDataGeneratorWebsocket.java} (64%) rename src/main/java/net/finmath/smartcontract/valuation/marketdata/{adapters => generators}/WebSocketConnector.java (79%) rename src/main/java/net/finmath/smartcontract/valuation/marketdata/{adapters => generators/legacy}/LiveFeedAdapter.java (95%) rename src/main/java/net/finmath/smartcontract/valuation/marketdata/{adapters => generators/legacy}/ReactiveMarketDataUpdater.java (95%) create mode 100644 src/test/java/net/finmath/smartcontract/valuation/marketdata/DataFormatTests.java create mode 100644 src/test/java/net/finmath/smartcontract/valuation/marketdata/GeneratorTests.java delete mode 100644 src/test/java/net/finmath/smartcontract/valuation/marketdata/MarketDataImportTest.java diff --git a/pom.xml b/pom.xml index 4a43fc45e..5ed2af921 100644 --- a/pom.xml +++ b/pom.xml @@ -298,10 +298,6 @@ ${jackson-databind-nullable.version} - - org.springframework.boot - spring-boot-starter-websocket - io.reactivex.rxjava3 diff --git a/src/main/java/module-info.javax b/src/main/java/module-info.javax index 1fe79e2a9..90d4767fd 100644 --- a/src/main/java/module-info.javax +++ b/src/main/java/module-info.javax @@ -11,7 +11,7 @@ module net.finmath.smartderivativecontract { exports net.finmath.smartcontract.valuation.oracle.interestrates; exports net.finmath.smartcontract.valuation.marketdata.curvecalibration; exports net.finmath.smartcontract.valuation.service.utils; - exports net.finmath.smartcontract.valuation.marketdata.adapters; + exports net.finmath.smartcontract.valuation.marketdata.generators; exports net.finmath.smartcontract.valuation.service.controllers; exports net.finmath.smartcontract.contract; diff --git a/src/main/java/net/finmath/smartcontract/valuation/implementation/reactive/DemoLauncher.java b/src/main/java/net/finmath/smartcontract/valuation/implementation/reactive/DemoLauncher.java deleted file mode 100644 index e386a0a26..000000000 --- a/src/main/java/net/finmath/smartcontract/valuation/implementation/reactive/DemoLauncher.java +++ /dev/null @@ -1,146 +0,0 @@ -package net.finmath.smartcontract.valuation.implementation.reactive; - - -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import io.reactivex.rxjava3.disposables.Disposable; -import io.reactivex.rxjava3.functions.Consumer; -import net.finmath.smartcontract.valuation.marketdata.adapters.LiveFeedAdapter; -import net.finmath.smartcontract.valuation.marketdata.adapters.MarketDataRandomFeedAdapter; -import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; -import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataset; -import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationParserDataItems; -import net.finmath.smartcontract.model.MarketDataSet; -import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; -import net.finmath.smartcontract.product.xml.SDCXMLParser; - -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.time.Period; -import java.time.format.DateTimeFormatter; -import java.util.*; -import java.util.concurrent.TimeUnit; - - -public class DemoLauncher { - - - public static void main(String[] args) throws Exception { - - String sdcXML = new String(DemoLauncher.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); - SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); - List mdItemList = sdc.getMarketdataItemList(); - - /* Load connection properties*/ - String connectionPropertiesFile = "Q:\\refinitiv_connect.properties"; - Properties properties = new Properties(); - properties.load(new FileInputStream(connectionPropertiesFile)); - InputStream marketDataMessageStream = DemoLauncher.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/nf_md_20230711-123529.json"); - final String marketDataMessageContents = new String(Objects.requireNonNull(marketDataMessageStream).readAllBytes(), StandardCharsets.UTF_8); - MarketDataSet marketData = new ObjectMapper().registerModule(new JavaTimeModule()) - .readValue(marketDataMessageContents, MarketDataSet.class); - - - /* Init Websockect Connection*/ - //final WebSocketConnector connector = new WebSocketConnector(properties); - //final WebSocket socket = connector.getWebSocket(); - - - /* Market Data Adapter */ - //final LiveFeedAdapter emitter = new MarketDataWebSocketAdapter(connector.getAuthJson(), connector.getPosition(), mdItemList); - final LiveFeedAdapter emitter = new MarketDataRandomFeedAdapter(Period.ofDays(1), new String(DemoLauncher.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.json").readAllBytes(), StandardCharsets.UTF_8)); - //final LiveFeedAdapter emitter2 = new MarketDataRandomFeedAdapter2(LocalDateTime.now(),1,marketData); - - //socket.addListener(emitter); - //socket.connect(); - - /* Write Market Data to File */ - final Consumer marketDataWriter = new Consumer() { - @Override - public void accept(CalibrationDataset s) throws Throwable { - String json = s.serializeToJson(); - String timeStamp = s.getDate().format(DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss")); - System.out.println("Consumer MarketDataStorage: Stored Market Data at: " + timeStamp); - Path path = Paths.get("C:\\Temp\\marketdata\\md_" + timeStamp + ".json"); - Files.write(path, json.getBytes()); - } - }; - - ObjectMapper mapper = new ObjectMapper(); - mapper.registerModule(new JavaTimeModule()); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) - .configure(SerializationFeature.INDENT_OUTPUT, true) - .configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); - final Consumer marketDataWriter2 = new Consumer() { - @Override - public void accept(MarketDataSet s) throws Throwable { - //s.values(s.getValues().stream().map(x -> this.overnightFixingPostProcessing(x, isOvernightFixing)).toList()); - File targetFile = new File("C:\\Temp\\marketdata\\x.json"); - mapper.writerFor(MarketDataSet.class).writeValue(targetFile, s); - - //Path path = Paths.get("C:\\Temp\\marketdata\\md_" + timeStamp + ".json"); - //Files.write(path, json.getBytes()); - } - }; - - - Disposable d = emitter.asObservable().throttleLast(5, TimeUnit.SECONDS).subscribe(marketDataWriter);//.subscribe(s->emitter.writeDataset("C:\\Temp\\marketdata\\",s,false)); - d.dispose(); - //emitter.writeDataset("C:\\Temp\\marketdata\\",emitter.asObservable().blockingFirst(),false); - Path dir = Paths.get("C:\\Temp\\marketdata\\"); // specify your directory - - Optional lastFilePath = Files.list(dir) // here we get the stream with full directory listing - .filter(f -> !Files.isDirectory(f)) // exclude subdirectories from listing - .max(Comparator.comparingLong(f -> f.toFile().lastModified())); - lastFilePath.get().toUri(); - String json = Files.readString(lastFilePath.get()); - CalibrationDataset lastStoredSet = CalibrationParserDataItems.getScenariosFromJsonString(json).get(0); - - final Consumer fixingHistoryCollector = new Consumer() { - CalibrationDataset fixingCollectorDataSet = lastStoredSet; - - @Override - public void accept(CalibrationDataset calibrationDataSet) throws Throwable { - //if (fixingCollectorDataSet == null || (fixingCollectorDataSet.getFixingDataItems().size() != calibrationDataSet.getFixingDataItems().size())){ - fixingCollectorDataSet = fixingCollectorDataSet == null ? calibrationDataSet : calibrationDataSet.getClonedFixingsAdded(fixingCollectorDataSet.getFixingDataItems()); - String json = fixingCollectorDataSet.serializeToJson(); - String timeStamp = fixingCollectorDataSet.getDate().format(DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss")); - System.out.println("Consumer MarketDataStorage: Stored Market Data at: " + timeStamp); - Path path = Paths.get("C:\\Temp\\marketdata\\md_" + timeStamp + ".json"); - Files.write(path, json.getBytes()); - //fixingCollectorDataSet = calibrationDataSet; - // - } - }; - //emitter.asObservable().throttleFirst(60,TimeUnit.MINUTES).subscribe(fixingHistoryCollector); - - /* Print Market Values */ - /*Consumer printValues = (ValueResult s) -> System.out.println("Consumer ValuationPrint: " + s.getValue().doubleValue()); - - final Observable observableValuation = emitter.asObservable().throttleLast(5, TimeUnit.SECONDS).map(marketData -> { - MarginCalculator calculator = new MarginCalculator(); - return calculator.getValue(marketData.serializeToJson(), sdcXML); - }); - observableValuation.subscribe(printValues);*/ - - /* Conditional Settlements */ - /*BigDecimal settlementTriggerValue = BigDecimal.valueOf(100.); - ConditionalSettlementCalculator marginCalculator = new ConditionalSettlementCalculator(sdcXML,settlementTriggerValue); - final Observable conditionalSettlementEmitter = emitter.asObservable() - .delay(1,TimeUnit.SECONDS) // Initial delay - .throttleLast(5,TimeUnit.SECONDS) // throttle a bit - backpressure - .map(marketdata->marginCalculator.apply(marketdata)) // map to margin results - .filter(result->result.getValue()!=null); // filter results - - - conditionalSettlementEmitter.subscribe();*/ - - } -} \ No newline at end of file diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java new file mode 100644 index 000000000..f318e6ef7 --- /dev/null +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java @@ -0,0 +1,70 @@ +package net.finmath.smartcontract.valuation.marketdata; + + +import com.neovisionaries.ws.client.WebSocket; +import io.reactivex.rxjava3.functions.Consumer; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.Marshaller; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; +import net.finmath.smartcontract.valuation.marketdata.generators.*; +import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; +import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; +import net.finmath.smartcontract.product.xml.SDCXMLParser; + +import java.io.File; +import java.io.FileInputStream; +import java.nio.charset.StandardCharsets; +import java.util.*; + + +public class LaunchAGenerator { + + + public static void main(String[] args) throws Exception { + + String sdcXML = new String(LaunchAGenerator.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); + List mdItemList = sdc.getMarketdataItemList(); + + /* Load connection properties*/ + String connectionPropertiesFile = ""; + Properties properties = new Properties(); + properties.load(new FileInputStream(connectionPropertiesFile)); + + + /* Init Websockect Connection*/ + final WebSocketConnector connector = new WebSocketConnector(properties); + final WebSocket socket = connector.getWebSocket(); + + + /* Market Data Adapter */ + final MarketDataGeneratorWebsocket emitter = new MarketDataGeneratorWebsocket(connector.getAuthJson(), connector.getPosition(), mdItemList); + + socket.addListener(emitter); + socket.connect(); + + /* Write Market Data to File */ + final Consumer marketDataWriter = new Consumer() { + + @Override + public void accept(MarketDataList s) throws Throwable { + + System.out.println("Consumer MarketDataStorage: Stored Market Data at: "); + System.out.println(socket.isOpen()); + File file = new File("C:\\Temp\\file.xml"); + JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); + Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); + jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + jaxbMarshaller.marshal(s, file); + emitter.closeStreamsAndLogoff(socket); + socket.sendClose(); + + } + }; + + + emitter.asObservable().take(1).subscribe(marketDataWriter); + + + } +} \ No newline at end of file diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/MarketDataStreamInterface.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/MarketDataStreamInterface.java deleted file mode 100644 index ba877e2ab..000000000 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/MarketDataStreamInterface.java +++ /dev/null @@ -1,10 +0,0 @@ -package net.finmath.smartcontract.valuation.marketdata.adapters; - -import io.reactivex.rxjava3.core.Observable; - -public interface MarketDataStreamInterface { - - public Observable asObservable(); - - public void closeStream(); -} diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataItem.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataItem.java index 66aaffe65..7468396e7 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataItem.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataItem.java @@ -123,6 +123,8 @@ public String getDateString() { public LocalDate getDate() {return dateTime.toLocalDate();} + public LocalDateTime getDateTime(){ return dateTime;} + @Override public boolean equals(Object o) { if (this == o) return true; diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java index cab7d32c7..aeeedd6ad 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java @@ -1,6 +1,8 @@ package net.finmath.smartcontract.valuation.marketdata.curvecalibration; import com.fasterxml.jackson.databind.ObjectMapper; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -56,6 +58,12 @@ public CalibrationDataset getClonedFixingsAdded(Set newFixi return new CalibrationDataset(clone, this.scenarioDate); } + public MarketDataList toMarketDataList(){ + List marketDataPointList = calibrationDataItems.stream().map(item->new MarketDataPoint(item.getSpec().getKey(),item.getSpec().getCurveName(),item.getSpec().getProductName(),item.getMaturity(), item.getQuote(), item.getDateTime())).collect(Collectors.toList()); + MarketDataList marketDataList = new MarketDataList(); + marketDataPointList.stream().forEach(point->marketDataList.add(point)); + return marketDataList; + } public String serializeToJson() { ObjectMapper mapper = new ObjectMapper(); diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataPoint.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataPoint.java new file mode 100644 index 000000000..976923b8d --- /dev/null +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataPoint.java @@ -0,0 +1,86 @@ +package net.finmath.smartcontract.valuation.marketdata.data; + +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import jakarta.xml.bind.annotation.*; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + +import java.time.LocalDateTime; + +@XmlRootElement +@XmlType(propOrder = {"id","curveKey","productKey","maturityKey","quoteValue","timeStamp"}) +@JsonPropertyOrder({ "id","curveKey","productKey","maturityKey","quoteValue","timeStamp" }) +public class MarketDataPoint { + + private LocalDateTime timeStamp; + private String id; + private String curveKey; + private String productKey; + + private String maturityKey; + private Double quoteValue; + + + + public MarketDataPoint(String id, String curveKey, String productKey, String maturityKey, Double quoteValue, LocalDateTime timeStamp) { + this.id = id; + this.curveKey = curveKey; + this.productKey = productKey; + this.maturityKey=maturityKey; + this.quoteValue = quoteValue; + this.timeStamp = timeStamp; + } + + public MarketDataPoint(){ + + } + + + public String getId() { + return id; + } + + public String getCurveKey() { + return curveKey; + } + + public String getProductKey() { + return productKey; + } + + public String getMaturityKey() { + return maturityKey; + } + + public Double getQuoteValue() { + return quoteValue; + } + + public void setId(String id) { + this.id = id; + } + + public void setCurveKey(String curveKey) { + this.curveKey = curveKey; + } + + public void setProductKey(String productKey) { + this.productKey = productKey; + } + + public void setMaturityKey(String maturityKey) { + this.maturityKey = maturityKey; + } + + public void setQuoteValue(Double quoteValue) { + this.quoteValue = quoteValue; + } + @XmlJavaTypeAdapter(LocalDateTimeAdapter.class) + public LocalDateTime getTimeStamp() { + return timeStamp; + } + public void setTimeStamp(LocalDateTime timeStamp) { + this.timeStamp = timeStamp; + } + + +} diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorInterface.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorInterface.java new file mode 100644 index 000000000..551b97a7c --- /dev/null +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorInterface.java @@ -0,0 +1,9 @@ +package net.finmath.smartcontract.valuation.marketdata.generators; + +import io.reactivex.rxjava3.core.Observable; + +public interface MarketDataGeneratorInterface { + + public Observable asObservable(); + +} diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/MarketDataRandomFeedAdapter.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java similarity index 53% rename from src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/MarketDataRandomFeedAdapter.java rename to src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java index e2b5654e7..11bd9966e 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/MarketDataRandomFeedAdapter.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java @@ -1,47 +1,42 @@ -package net.finmath.smartcontract.valuation.marketdata.adapters; +package net.finmath.smartcontract.valuation.marketdata.generators; -import com.neovisionaries.ws.client.WebSocket; import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.core.ObservableOnSubscribe; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataset; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationParserDataItems; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; import java.time.LocalDateTime; import java.time.Period; -import java.time.format.DateTimeFormatter; import java.util.Set; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; -public class MarketDataRandomFeedAdapter extends LiveFeedAdapter { +public class MarketDataGeneratorRandomFeed implements MarketDataGeneratorInterface { LocalDateTime endTime; CalibrationDataset referenceSet; - private static final Logger logger = LoggerFactory.getLogger(MarketDataRandomFeedAdapter.class); + private static final Logger logger = LoggerFactory.getLogger(MarketDataGeneratorRandomFeed.class); int simulationFrequencySec; - public MarketDataRandomFeedAdapter(Period processingPeriod, String referenceMarketDataJson) throws Exception { + public MarketDataGeneratorRandomFeed(Period processingPeriod, String referenceMarketDataJson) throws Exception { this.endTime = LocalDateTime.now().plus(processingPeriod); referenceSet = CalibrationParserDataItems.getScenariosFromJsonString(referenceMarketDataJson).get(0); simulationFrequencySec = 3; } - public Observable asObservable() { - ObservableOnSubscribe observable = emitter -> { + public Observable asObservable() { + ObservableOnSubscribe observable = emitter -> { while (LocalDateTime.now().isBefore(endTime)) { CalibrationDataset shiftedScenario = getShiftedReferenceSet(); - emitter.onNext(shiftedScenario); + emitter.onNext(shiftedScenario.toMarketDataList()); } emitter.onComplete(); }; @@ -52,29 +47,6 @@ public Observable asObservable() { // https://betterprogramming.pub/rxjava-different-ways-of-creating-observables-7ec3204f1e23 } - /*public void start() throws InterruptedException{ - // WE have two market data sets, just emit both of them on a frequent base - while (LocalDateTime.now().isBefore(endTime)){ - - IRMarketDataSet shiftedScenario = getShiftedReferenceSet(); - - IRMarketDataParser.serializeToJsonDatPoints(shiftedScenario.getDataPoints()); - - Thread.sleep(simulationFrequencySec); - } - }*/ - - public void writeDataset(String importDir, CalibrationDataset s, boolean isOvernightFixing) throws IOException { - String json = s.serializeToJson(); - String timeStamp = s.getDate().format(DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss")); - logger.info("Consumer MarketDataStorage: Stored Market Data at: " + timeStamp); - Path path = Paths.get("C:\\Temp\\marketdata\\md_" + timeStamp + ".json"); - Files.write(path, json.getBytes()); - } - - public void closeStreamsAndLogoff(WebSocket webSocket) { - logger.info("Virtual CLOSE sent."); - } private CalibrationDataset getShiftedReferenceSet() { double randomShiftBp = ThreadLocalRandom.current().nextDouble(-1, 1) / 10000; diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java new file mode 100644 index 000000000..b81f6b47d --- /dev/null +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java @@ -0,0 +1,18 @@ +package net.finmath.smartcontract.valuation.marketdata.generators; + +import io.reactivex.rxjava3.core.Observable; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; + +import java.util.List; + +public class MarketDataGeneratorScenarioList implements MarketDataGeneratorInterface { + + public MarketDataGeneratorScenarioList(List scenarioList){ + + } + + @Override + public Observable asObservable() { + return null; + } +} diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/MarketDataWebSocketAdapter.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java similarity index 64% rename from src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/MarketDataWebSocketAdapter.java rename to src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java index 186dbb4a9..f2237c266 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/MarketDataWebSocketAdapter.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java @@ -1,14 +1,17 @@ -package net.finmath.smartcontract.valuation.marketdata.adapters; +package net.finmath.smartcontract.valuation.marketdata.generators; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; import com.neovisionaries.ws.client.WebSocket; +import com.neovisionaries.ws.client.WebSocketAdapter; import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.subjects.PublishSubject; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; -import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataset; import net.finmath.time.businessdaycalendar.BusinessdayCalendarExcludingTARGETHolidays; +import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import reactor.core.publisher.Flux; @@ -17,36 +20,32 @@ import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.*; -import java.util.stream.Collectors; -public class MarketDataWebSocketAdapter extends LiveFeedAdapter {// implements Callable { +public class MarketDataGeneratorWebsocket extends WebSocketAdapter implements MarketDataGeneratorInterface {// implements Callable { private final BusinessdayCalendarExcludingTARGETHolidays bdCalendar = new BusinessdayCalendarExcludingTARGETHolidays(); - private final JsonNode authJson; + private final JSONObject authJson; - private static final Logger logger = LoggerFactory.getLogger(MarketDataWebSocketAdapter.class); + private static final Logger logger = LoggerFactory.getLogger(MarketDataGeneratorWebsocket.class); private final String position; private final Set calibrationSpecs; - private Set calibrationDataSet; + private MarketDataList marketDataList; - final private PublishSubject publishSubject; + final private PublishSubject publishSubject; - final private Sinks.Many sink; + final private Sinks.Many sink; boolean requestSent; - public MarketDataWebSocketAdapter(JsonNode authJson, String position, List itemList) { + public MarketDataGeneratorWebsocket(JSONObject authJson, String position, List itemList) { this.authJson = authJson; this.position = position; - this.calibrationSpecs = itemList.stream().collect(Collectors.toCollection(LinkedHashSet::new)); - this.calibrationDataSet = new LinkedHashSet<>(); + this.calibrationSpecs = new LinkedHashSet<>(itemList); + this.marketDataList = new MarketDataList(); requestSent = false; publishSubject = PublishSubject.create(); sink = Sinks.many().multicast().onBackpressureBuffer(); // https://prateek-ashtikar512.medium.com/projectreactor-sinks-bac6c88e5e69 @@ -58,30 +57,24 @@ private CalibrationDataItem.Spec getSpec(String key) { public boolean allQuotesRetrieved() { - return this.calibrationDataSet.size() >= this.calibrationSpecs.size(); + return this.marketDataList.getSize() >= this.calibrationSpecs.size(); } - public void reset() { - this.calibrationDataSet = new LinkedHashSet<>(); - } - - public Set getMarketDataItems() { - return calibrationDataSet.stream().collect(Collectors.toSet()); - } /** * Called when handshake is complete and websocket is open, send login */ public void onConnected(WebSocket websocket, Map> headers) throws Exception { System.out.println("WebSocket successfully connected!"); - sendLoginRequest(websocket, authJson.get("access_token").asText(), true); + sendLoginRequest(websocket, authJson.getString("access_token"), true); + } - public Observable asObservable() { + public Observable asObservable() { return this.publishSubject; } - public Flux asFlux() {return sink.asFlux();} + public Flux asFlux() {return sink.asFlux();} /** * Sends a close login stream message. Closing the login stream also closes and resets all data streams. @@ -94,12 +87,13 @@ public void closeStreamsAndLogoff(WebSocket webSocket) { } - public void writeDataset(String importDir, CalibrationDataset s, boolean isOvernightFixing) throws IOException { - String json = s.serializeToJson(); + public void writeDataset(String importDir, MarketDataList s, boolean isOvernightFixing) throws IOException { + throw new RuntimeException("Not implemented"); + /*String json = s.serializeToJson(); String timeStamp = s.getDate().format(DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss")); logger.info("Consumer MarketDataStorage: Stored Market Data at: " + timeStamp); Path path = Paths.get("C:\\Temp\\marketdata\\md_" + timeStamp + ".json"); - Files.write(path, json.getBytes()); + Files.write(path, json.getBytes());*/ } public void onTextMessage(WebSocket websocket, String message) throws Exception { @@ -118,27 +112,24 @@ public void onTextMessage(WebSocket websocket, String message) throws Exception try { for (int i = 0; i < responseJson.size(); i++) { if (responseJson.get(i).has("Fields")) { + if (this.marketDataList.getSize()== 0) + this.marketDataList.setRequestTimeStamp(LocalDateTime.now()); String ric = responseJson.get(i).get("Key").get("Name").asText(); JsonNode fields = responseJson.get(i).get("Fields"); Double BID = fields.has("BID") ? fields.get("BID").doubleValue() : null; Double ASK = fields.has("ASK") ? fields.get("ASK").doubleValue() : null; - Double quote = ASK == null ? BID : BID == null ? ASK : (BID + ASK) / 2.0; - quote = BigDecimal.valueOf(quote).setScale(3, RoundingMode.HALF_EVEN).divide(BigDecimal.valueOf(100.)).doubleValue(); + double midQuote = ASK == null ? BID : BID == null ? ASK : (BID + ASK) / 2.0; + Double quoteScaled = BigDecimal.valueOf(midQuote).setScale(3, RoundingMode.HALF_EVEN).divide(BigDecimal.valueOf(100.)).doubleValue(); String date = fields.get("VALUE_DT1").textValue(); String time = fields.get("VALUE_TS1").textValue(); /* Adjust Time on GMT */ LocalDateTime localDateTime = LocalDateTime.parse(date + "T" + time, DateTimeFormatter.ISO_LOCAL_DATE_TIME); - ZoneId zoneId = TimeZone.getDefault().toZoneId(); - ZoneId gmt = TimeZone.getTimeZone("GMT").toZoneId(); - LocalDateTime adjustedTime = localDateTime.atZone(gmt).withZoneSameInstant(zoneId).toLocalDateTime(); + LocalDateTime adjustedTime = this.adjustTimestampForOvernightFixing(localDateTime,ric); - if (this.getSpec(ric).getProductName().equals("Fixing")) { - if (ric.equals("EUROSTR=")) { // The euro short-term rate (€STR) is published on each TARGET2 business day based on transactions conducted and settled on the previous TARGET2 business day. - adjustedTime = bdCalendar.getRolledDate(adjustedTime.toLocalDate(), 1).atTime(adjustedTime.toLocalTime()); - } - } + CalibrationDataItem.Spec spec = this.getSpec(ric); + MarketDataPoint dataPoint = new MarketDataPoint(spec.getKey(),spec.getCurveName(),spec.getProductName(),spec.getMaturity(),quoteScaled,adjustedTime); - this.calibrationDataSet.add(new CalibrationDataItem(this.getSpec(ric), quote, adjustedTime)); + this.marketDataList.add(dataPoint); } } @@ -150,18 +141,36 @@ public void onTextMessage(WebSocket websocket, String message) throws Exception if (this.allQuotesRetrieved()) { - Set clone = new LinkedHashSet<>(); - clone.addAll(this.calibrationDataSet); - CalibrationDataset set = new CalibrationDataset(clone, LocalDateTime.now()); - this.calibrationDataSet.clear(); - this.publishSubject.onNext(set); - this.sink.tryEmitNext(set); + this.publishSubject.onNext(marketDataList); + this.sink.tryEmitNext(marketDataList); + this.reset(); requestSent = false; } } + private void reset() { + this.marketDataList = new MarketDataList(); + } + + private LocalDateTime adjustTimestampForOvernightFixing(LocalDateTime localDateTimeUnadjusted, String symbol){ + ZoneId zoneId = TimeZone.getDefault().toZoneId(); + ZoneId gmt = TimeZone.getTimeZone("GMT").toZoneId(); + LocalDateTime adjustedTime = localDateTimeUnadjusted.atZone(gmt).withZoneSameInstant(zoneId).toLocalDateTime(); + + if (this.getSpec(symbol).getProductName().equals("Fixing")) { + if (symbol.equals("EUROSTR=")) { // The euro short-term rate (€STR) is published on each TARGET2 business day based on transactions conducted and settled on the previous TARGET2 business day. + adjustedTime = bdCalendar.getRolledDate(adjustedTime.toLocalDate(), 1).atTime(adjustedTime.toLocalTime()); + } + } + + return adjustedTime; + + + } + + /** * Create and send simple Market Price request diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/WebSocketConnector.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/WebSocketConnector.java similarity index 79% rename from src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/WebSocketConnector.java rename to src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/WebSocketConnector.java index 2db46df11..c0f848d63 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/WebSocketConnector.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/WebSocketConnector.java @@ -1,14 +1,12 @@ -package net.finmath.smartcontract.valuation.marketdata.adapters;//|----------------------------------------------------------------------------- +package net.finmath.smartcontract.valuation.marketdata.generators;//|----------------------------------------------------------------------------- //| This source code is provided under the Apache 2.0 license -- //| and is provided AS IS with no warranty or guarantee of fit for purpose. -- //| See the project's LICENSE.md for details. -- //| Copyright (C) 2018-2021 Refinitiv. All rights reserved. -- //|----------------------------------------------------------------------------- - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; import com.neovisionaries.ws.client.*; + import org.apache.http.Header; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; @@ -21,6 +19,7 @@ import org.apache.http.message.BasicNameValuePair; import org.apache.http.ssl.SSLContextBuilder; import org.apache.http.util.EntityUtils; +import org.json.JSONObject; import javax.net.ssl.SSLParameters; import java.io.IOException; @@ -52,13 +51,7 @@ public class WebSocketConnector { Properties connectionProperties; - /*public final String hostName; - public final String port; - public final String user; - public final String password; - public final String clientid; //also known as app_key - public final String authUrl;*/ - public JsonNode authJson; + public JSONObject authJson; public String position; @@ -68,34 +61,31 @@ public class WebSocketConnector { public WebSocketConnector(Properties connectionProperties) throws Exception { - //String path = Thread.currentThread().getContextClassLoader().getResource("refinitiv_connect.properties").getPath(); - //connectionProperties = connectionProperties; //new Properties(); - //connectionProperties.load(new FileInputStream(path)); this.connectionProperties = connectionProperties; this.position = Inet4Address.getLocalHost().getHostAddress(); } - public WebSocket getWebSocket() throws Exception { + public WebSocket getWebSocket() throws Exception{ if (ws == null) { return initAuthJson().initWebSocketConnection(); } return ws; } - public JsonNode getAuthJson() { + public JSONObject getAuthJson() { return authJson; } - public String getPosition() { + public String getPosition(){ return this.position; } public WebSocketConnector initAuthJson() { try { - // Connect to Refinitiv Data Platform and authenticate (using our username and password) + // Connect to Live Market Data Platform and authenticate (using our username and password) this.authJson = getAuthenticationInfo(null, connectionProperties.get("AUTHURL").toString()); } catch (Exception e) { @@ -105,6 +95,7 @@ public WebSocketConnector initAuthJson() { } + /** * Connect to the Realtime Service over a WebSocket. */ @@ -117,9 +108,10 @@ public WebSocket initWebSocketConnection() throws IOException, WebSocketExceptio params.setProtocols(new String[]{"TLSv1.2"}); ProxySettings settings = factory.getProxySettings(); - settings.setHost(connectionProperties.get("PROXYHOST").toString()).setPort(Integer.parseInt(connectionProperties.get("PROXYPORT").toString())); - settings.setCredentials(connectionProperties.get("PROXYUSER").toString(), connectionProperties.get("PROXYPASS").toString()); - + if(connectionProperties.get("USEPROXY").equals("TRUE")) { + settings.setHost(connectionProperties.get("PROXYHOST").toString()).setPort(Integer.parseInt(connectionProperties.get("PROXYPORT").toString())); + settings.setCredentials(connectionProperties.get("PROXYUSER").toString(), connectionProperties.get("PROXYPASS").toString()); + } WebSocket webSocket = factory .createSocket(server) .addProtocol("tr_json2") @@ -129,17 +121,19 @@ public WebSocket initWebSocketConnection() throws IOException, WebSocketExceptio } + + /** * Authenticate to Refinitiv Data Platform via an HTTP post request. * Initially authenticates using the specified password. If information from a previous authentication response is provided, it instead authenticates using * the refresh token from that response. - * * @param previousAuthResponseJson Information from a previous authentication, if available - * @param url The HTTP post url + * @param url The HTTP post url * @return A JSONObject containing the authentication information from the response. */ - public JsonNode getAuthenticationInfo(JsonNode previousAuthResponseJson, String url) { - try { + public JSONObject getAuthenticationInfo(JSONObject previousAuthResponseJson, String url) { + try + { SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(new SSLContextBuilder().build()); HttpClient httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build(); @@ -177,26 +171,25 @@ public JsonNode getAuthenticationInfo(JsonNode previousAuthResponseJson, String int statusCode = response.getStatusLine().getStatusCode(); - switch (statusCode) { + switch ( statusCode ) { case HttpStatus.SC_OK: // 200 // Authentication was successful. Deserialize the response and return it. - ObjectMapper mapper = new ObjectMapper(); - String eUtils = EntityUtils.toString(response.getEntity()); - JsonNode responseJson = mapper.readTree(eUtils); - //JSONObject responseJson = new JSONObject(eUtils); - System.out.println("Refinitiv Data Platform Authentication succeeded. RECEIVED:"); - System.out.println(responseJson.toString()); + JSONObject responseJson = new JSONObject(EntityUtils.toString(response.getEntity())); +// System.out.println("Refinitiv Data Platform Authentication succeeded. RECEIVED:"); +// System.out.println(responseJson.toString(2)); return responseJson; case HttpStatus.SC_MOVED_PERMANENTLY: // 301 case HttpStatus.SC_MOVED_TEMPORARILY: // 302 case HttpStatus.SC_TEMPORARY_REDIRECT: // 307 case 308: // 308 HttpStatus.SC_PERMANENT_REDIRECT // Perform URL redirect - System.out.println("Refinitiv Data Platform authentication HTTP code: " + response.getStatusLine().getStatusCode() + " " + response.getStatusLine().getReasonPhrase()); +// System.out.println("Refinitiv Data Platform authentication HTTP code: " + response.getStatusLine().getStatusCode() + " " + response.getStatusLine().getReasonPhrase()); Header header = response.getFirstHeader("Location"); - if (header != null) { + if( header != null ) + { String newHost = header.getValue(); - if (newHost != null) { + if ( newHost != null ) + { System.out.println("Perform URL redirect to " + newHost); return getAuthenticationInfo(previousAuthResponseJson, newHost); } @@ -225,7 +218,7 @@ public JsonNode getAuthenticationInfo(JsonNode previousAuthResponseJson, String Thread.sleep(5000); // CAUTION: This is sample code with infinite retries. System.out.println("Retry the request to Refinitiv Data Platform"); - return getAuthenticationInfo(previousAuthResponseJson, connectionProperties.get("AUTHURL").toString()); + return getAuthenticationInfo(previousAuthResponseJson,connectionProperties.get("AUTHURL").toString()); } } catch (Exception e) { System.out.println("Refinitiv Data Platform authentication failure:"); diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/LiveFeedAdapter.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/legacy/LiveFeedAdapter.java similarity index 95% rename from src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/LiveFeedAdapter.java rename to src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/legacy/LiveFeedAdapter.java index 59c623466..334999a19 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/LiveFeedAdapter.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/legacy/LiveFeedAdapter.java @@ -1,4 +1,4 @@ -package net.finmath.smartcontract.valuation.marketdata.adapters; +package net.finmath.smartcontract.valuation.marketdata.generators.legacy; import com.neovisionaries.ws.client.WebSocket; import com.neovisionaries.ws.client.WebSocketAdapter; diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/ReactiveMarketDataUpdater.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/legacy/ReactiveMarketDataUpdater.java similarity index 95% rename from src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/ReactiveMarketDataUpdater.java rename to src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/legacy/ReactiveMarketDataUpdater.java index 50c44d24b..9ada6cef7 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/adapters/ReactiveMarketDataUpdater.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/legacy/ReactiveMarketDataUpdater.java @@ -1,8 +1,7 @@ -package net.finmath.smartcontract.valuation.marketdata.adapters; +package net.finmath.smartcontract.valuation.marketdata.generators.legacy; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.node.ObjectNode; @@ -13,6 +12,7 @@ import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.model.*; import net.finmath.time.businessdaycalendar.BusinessdayCalendarExcludingTARGETHolidays; +import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import reactor.core.publisher.Sinks; @@ -33,7 +33,7 @@ public class ReactiveMarketDataUpdater extends LiveFeedAdapter { private static final Logger logger = LoggerFactory.getLogger(ReactiveMarketDataUpdater.class); - private final JsonNode authJson; + private final JSONObject authJson; private final String position; private final Set calibrationSpecs; private final PublishSubject publishSubject; @@ -42,7 +42,7 @@ public class ReactiveMarketDataUpdater extends LiveFeedAdapter { boolean requestSent; private MarketDataSet marketDataSet; - public ReactiveMarketDataUpdater(JsonNode authJson, String position, List itemList) { + public ReactiveMarketDataUpdater(JSONObject authJson, String position, List itemList) { this.mapper = new ObjectMapper(); // Spring's default object mapper has some settings which are incompatible with this data pipeline, create a new one this.mapper.registerModule(new JavaTimeModule()); this.mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) @@ -71,11 +71,11 @@ private void reset() { * Called when handshake is complete and websocket is open, send login */ public void onConnected(WebSocket websocket, Map> headers) throws Exception { - this.sendLoginRequest(websocket, authJson.get("access_token").asText(), true); + this.sendLoginRequest(websocket, authJson.getString("access_token"), true); logger.info("WebSocket successfully connected! Resetting connection."); this.closeStreamsAndLogoff(websocket); logger.info("Connection reset. Reopening connection..."); - this.sendLoginRequest(websocket, authJson.get("access_token").asText(), true); + this.sendLoginRequest(websocket, authJson.getString("access_token"), true); logger.info("...done"); } diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java index 71a70f3ae..ea246508e 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java @@ -7,9 +7,9 @@ import jakarta.xml.bind.JAXBException; import net.finmath.rootfinder.BisectionSearch; import net.finmath.smartcontract.api.PlainSwapEditorApi; -import net.finmath.smartcontract.valuation.marketdata.adapters.LiveFeedAdapter; -import net.finmath.smartcontract.valuation.marketdata.adapters.ReactiveMarketDataUpdater; -import net.finmath.smartcontract.valuation.marketdata.adapters.WebSocketConnector; +import net.finmath.smartcontract.valuation.marketdata.generators.legacy.LiveFeedAdapter; +import net.finmath.smartcontract.valuation.marketdata.generators.legacy.ReactiveMarketDataUpdater; +import net.finmath.smartcontract.valuation.marketdata.generators.WebSocketConnector; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.valuation.marketdata.database.DatabaseConnector; import net.finmath.smartcontract.model.*; diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/websocket/handler/ValuationHandler.java b/src/main/java/net/finmath/smartcontract/valuation/service/websocket/handler/ValuationHandler.java index 2c02a2bb3..0dc42a6f3 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/websocket/handler/ValuationHandler.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/websocket/handler/ValuationHandler.java @@ -2,8 +2,8 @@ import com.neovisionaries.ws.client.WebSocket; import io.reactivex.rxjava3.core.Observable; -import net.finmath.smartcontract.valuation.marketdata.adapters.MarketDataWebSocketAdapter; -import net.finmath.smartcontract.valuation.marketdata.adapters.WebSocketConnector; +import net.finmath.smartcontract.valuation.marketdata.generators.MarketDataGeneratorWebsocket; +import net.finmath.smartcontract.valuation.marketdata.generators.WebSocketConnector; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.model.ValueResult; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; @@ -32,7 +32,7 @@ public class ValuationHandler implements WebSocketHandler { - private MarketDataWebSocketAdapter marketDataWebSocketAdapter; + private MarketDataGeneratorWebsocket marketDataWebSocketAdapter; @Override public void handleMessage(WebSocketSession session, WebSocketMessage message) throws Exception { @@ -47,7 +47,7 @@ public void handleMessage(WebSocketSession session, WebSocketMessage message) List mdItemList = sdc.getMarketdataItemList(); /* Load connection properties*/ - String connectionPropertiesFile = "Q:\\refinitiv_connect.properties"; + String connectionPropertiesFile = ""; Properties properties = new Properties(); properties.load(new FileInputStream(connectionPropertiesFile)); @@ -55,7 +55,7 @@ public void handleMessage(WebSocketSession session, WebSocketMessage message) final WebSocketConnector connector = new WebSocketConnector(properties); final WebSocket socket = connector.getWebSocket(); /* Market Data Adapter*/ - this.marketDataWebSocketAdapter = new MarketDataWebSocketAdapter(connector.getAuthJson(), connector.getPosition(), mdItemList); + this.marketDataWebSocketAdapter = new MarketDataGeneratorWebsocket(connector.getAuthJson(), connector.getPosition(), mdItemList); socket.addListener(marketDataWebSocketAdapter); socket.connect(); // emitter.asObservable().throttleFirst(2, TimeUnit.SECONDS).subscribe(s->session.sendMessage(new TextMessage(s.serializeToJson().substring(2,24)))); diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataFormatTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataFormatTests.java new file mode 100644 index 000000000..0452f0c64 --- /dev/null +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataFormatTests.java @@ -0,0 +1,91 @@ +package net.finmath.smartcontract.valuation.marketdata; + +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.Marshaller; +import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; +import net.finmath.smartcontract.product.xml.SDCXMLParser; +import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; +import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataset; +import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationParserDataItems; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.xml.sax.SAXException; + +import javax.xml.parsers.ParserConfigurationException; +import java.io.File; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +public class DataFormatTests { + + @Test + void testParseSymbols() { + try { + String sdcXML = new String(Objects.requireNonNull(DataFormatTests.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); + SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); + List marketdataItems = sdc.getMarketdataItemList(); + + Assertions.assertEquals(marketdataItems.size(), 72); + } + catch(IOException | SAXException | ParserConfigurationException exception){ + Assertions.assertFalse(false); + } + } + + + @Test + void testImportMarketDataJson(){ + try { + final String jsonStr = new String(Objects.requireNonNull(DataFormatTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.json")).readAllBytes(), StandardCharsets.UTF_8); + + List scenarioList = CalibrationParserDataItems.getScenariosFromJsonString(jsonStr); + int setSize = scenarioList.get(0).getDataPoints().size(); + Assertions.assertEquals(setSize, 71); + } + catch(IOException e){ + Assertions.assertFalse(false); + } + } + @Test + void xmlGenerationTest() throws Exception{ + MarketDataPoint point = new MarketDataPoint("test","curve","swap","10Y",0.0, LocalDateTime.now()); + MarketDataList set = new MarketDataList(); + set.add(point); + File file = new File("C:\\Temp\\file.xml"); + JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); + Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); + + jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + + jaxbMarshaller.marshal(set, file); + jaxbMarshaller.marshal(set, System.out); + + String json = set.serializeToJson(); + System.out.println(json); + + Assertions.assertTrue(Thread.currentThread().isAlive()); + } + + @Test + void readHistoricJsonScenariosIntoXML() throws Exception{ + final LocalDate startDate = LocalDate.of(2007, 1, 1); + final LocalDate maturity = LocalDate.of(2012, 1, 3); + final String fileName = "timeseriesdatamap.json"; + final List scenarioListRaw = CalibrationParserDataItems.getScenariosFromJsonFile(fileName).stream().filter(S -> S.getDate().toLocalDate().isAfter(startDate)).filter(S -> S.getDate().toLocalDate().isBefore(maturity)).collect(Collectors.toList()); + final List scenarioList = scenarioListRaw.stream().map(scenario -> scenario.getScaled(100)).toList(); + + final List ListOfMarketDataLists = scenarioList.stream().map(CalibrationDataset::toMarketDataList).toList(); + + Assertions.assertEquals(131,ListOfMarketDataLists.size()); + } + + + +} diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/GeneratorTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/GeneratorTests.java new file mode 100644 index 000000000..2eaceddc0 --- /dev/null +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/GeneratorTests.java @@ -0,0 +1,97 @@ +package net.finmath.smartcontract.valuation.marketdata; + +import com.neovisionaries.ws.client.WebSocket; +import io.reactivex.rxjava3.disposables.Disposable; +import io.reactivex.rxjava3.functions.Consumer; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.Marshaller; +import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; +import net.finmath.smartcontract.product.xml.SDCXMLParser; +import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; +import net.finmath.smartcontract.valuation.marketdata.generators.MarketDataGeneratorWebsocket; +import net.finmath.smartcontract.valuation.marketdata.generators.WebSocketConnector; +import org.junit.jupiter.api.*; + +import java.io.FileInputStream; +import java.io.StringWriter; +import java.nio.charset.StandardCharsets; +import java.util.List; +import java.util.Properties; +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +public class GeneratorTests { + + + Properties properties; + List mdItemList; // List of Calibration Item Definitions + + WebSocketConnector webSocketConnector; + + @BeforeAll + @Disabled + void init() throws Exception{ + String connectionPropertiesFile = ""; + properties = new Properties(); + properties.load(new FileInputStream(connectionPropertiesFile)); + String sdcXML = new String(LaunchAGenerator.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); + mdItemList = sdc.getMarketdataItemList(); + } + + + @Test + @Disabled + void testWebsocketConnection(){ + try { + /* Init Websockect Connection*/ + webSocketConnector = new WebSocketConnector(properties); + /*WebSocket webSocket = webSocketConnector.getWebSocket(); + webSocket.connect(); + boolean connect = webSocket.isOpen(); + webSocket.disconnect(); + Assertions.assertTrue(connect);*/ + } + catch (Exception e){ + Assertions.fail(); + } + + /* Market Data Adapter */ + // + + } + + @Test + @Disabled + void testMarketDataGeneration(){ + try { + final MarketDataGeneratorWebsocket generator = new MarketDataGeneratorWebsocket(webSocketConnector.getAuthJson(), webSocketConnector.getPosition(), mdItemList); + + WebSocket webSocket = webSocketConnector.getWebSocket(); + webSocket.addListener(generator); + webSocket.connect(); + + + final Consumer marketDataConsumer = s -> { + StringWriter writer = new StringWriter(); + JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); + Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); + jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + jaxbMarshaller.marshal(s, writer); + String outputXML = writer.toString(); + Assertions.assertTrue(true); + generator.closeStreamsAndLogoff(webSocket); + }; + + Disposable d = generator.asObservable().take(1).subscribe(marketDataConsumer); + //generator.closeStreamsAndLogoff(webSocket); + //webSocket.disconnect(); + + + + } + catch(Exception e){ + Assertions.fail(); + } + } + +} diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/MarketDataImportTest.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/MarketDataImportTest.java deleted file mode 100644 index d10960405..000000000 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/MarketDataImportTest.java +++ /dev/null @@ -1,50 +0,0 @@ -package net.finmath.smartcontract.valuation.marketdata; - - -import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; -import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataset; -import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationParserDataItems; -import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; -import net.finmath.smartcontract.product.xml.SDCXMLParser; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.xml.sax.SAXException; - -import javax.xml.parsers.ParserConfigurationException; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.List; -import java.util.Objects; - - -public class MarketDataImportTest { - - @Test - void testParseSymbols() { - try { - String sdcXML = new String(Objects.requireNonNull(MarketDataImportTest.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); - SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); - List marketdataItems = sdc.getMarketdataItemList(); - - Assertions.assertEquals(marketdataItems.size(), 72); - } - catch(IOException | SAXException | ParserConfigurationException exception){ - Assertions.assertFalse(false); - } - } - - - @Test - void testImportMarketDataJson(){ - try { - final String jsonStr = new String(Objects.requireNonNull(MarketDataImportTest.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.json")).readAllBytes(), StandardCharsets.UTF_8); - - List scenarioList = CalibrationParserDataItems.getScenariosFromJsonString(jsonStr); - int setSize = scenarioList.get(0).getDataPoints().size(); - Assertions.assertEquals(setSize, 71); - } - catch(IOException e){ - Assertions.assertFalse(false); - } - } -} diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java index 2f431adae..2e9b574f3 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java @@ -6,7 +6,6 @@ import net.finmath.marketdata.model.AnalyticModel; import net.finmath.marketdata.products.ForwardRateAgreement; import net.finmath.marketdata.products.Swap; -import net.finmath.smartcontract.valuation.marketdata.MarketDataImportTest; import net.finmath.smartcontract.model.MarketDataSet; import net.finmath.smartcontract.model.MarketDataSetValuesInner; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; @@ -44,10 +43,10 @@ void initializeTests() throws IOException, ParserConfigurationException, SAXExce MarketDataSet marketData; SmartDerivativeContractDescriptor product; try ( - InputStream marketDataMessageStream = MarketDataImportTest.class.getClassLoader().getResourceAsStream( + InputStream marketDataMessageStream = CalibrationTests.class.getClassLoader().getResourceAsStream( "net/finmath/smartcontract/valuation/client/nf_md_20230711-123529.json"); // data obtained from the new livefeed implementation. Contains several fixings. - InputStream sdcmlStream = MarketDataImportTest.class.getClassLoader() + InputStream sdcmlStream = CalibrationTests.class.getClassLoader() .getResourceAsStream( "net.finmath.smartcontract.product.xml/smartderivativecontract.xml") // standard plain swap template ) { From e71c22486f2329191ac0cf4dc54962cf0afa3928 Mon Sep 17 00:00:00 2001 From: Christian Fries Date: Wed, 13 Mar 2024 11:27:17 +0100 Subject: [PATCH 006/105] Added encrypted keys to events to allow that parties check cross-chain key consistency via event messages. --- solidity/contracts/dvp-impl/AssetContract.sol | 16 +- .../contracts/dvp-impl/PaymentContract.sol | 5 +- .../interface/IDecryptionContract.sol | 11 +- .../dvp-impl/interface/ILockingContract.sol | 21 +- .../contracts/IDecryptionContract.sol | 11 +- .../erc-7573/contracts/ILockingContract.sol | 21 +- solidity/ercs/erc-7573/erc-7573.md | 269 +++++++++++++++--- 7 files changed, 283 insertions(+), 71 deletions(-) diff --git a/solidity/contracts/dvp-impl/AssetContract.sol b/solidity/contracts/dvp-impl/AssetContract.sol index 4a9857dd2..a9c35e44c 100644 --- a/solidity/contracts/dvp-impl/AssetContract.sol +++ b/solidity/contracts/dvp-impl/AssetContract.sol @@ -6,11 +6,11 @@ import "@openzeppelin/contracts/utils/Strings.sol"; contract AssetContract is ILockingContract { - // DEFINED in INTERFACE - // event AssetTransferIncepted(address initiator, uint id); - // event AssetTransferConfirmed(address confirmer, uint id); - // event AssetClaimed(uint id, string key); - // event AssetReclaimed(uint id, string key); + // DEFINED in INTERFACE + // event TransferIncepted(bytes32 id, int amount, address from, string keyEncryptedSeller); + // event TransferConfirmed(bytes32 id, int amount, address to, string keyEncryptedBuyer); + // event TokenClaimed(bytes32 id, string key); + // event TokenReclaimed(bytes32 id, string key); event TradeIncepted(bytes32 tradeId, address inceptor); event TradeConfirmed(bytes32 tradeId, address confirmer); @@ -77,14 +77,14 @@ contract AssetContract is ILockingContract { emit TradeConfirmed(transactionHash,msg.sender); } - + // Implementation of Interface ILockingContract function inceptTransfer(bytes32 id, int amount, address from, string memory keyEncryptedSeller) external override { require(msg.sender == transactionSpecs[id].buyer, "You are not the Buyer."); require(transactionStates[id] == TransactionState.TradeConfirmed, "TransactionState State is not 'TradeConfirmed'"); transactionStates[id] = TransactionState.TransferIncepted; transactionKeys[id].encryptedKeySeller = keyEncryptedSeller; - emit TransferIncepted(transactionSpecs[id].buyer, id); + emit TransferIncepted(id, amount, from, transactionSpecs[id].buyer, keyEncryptedSeller); } @@ -96,7 +96,7 @@ contract AssetContract is ILockingContract { TransactionSpec memory txSpec = transactionSpecs[id]; bondHolderBalances[txSpec.seller] -= txSpec.notional; // Decrement Notional from Seller Holder Balance bondHolderBalances[address(this)] += txSpec.notional; // Transfer Bond to INTERNAL Balance and trigger transfer of the paymentAmount - emit TransferConfirmed(transactionSpecs[id].seller, id); + emit TransferConfirmed(id, amount, transactionSpecs[id].seller, to, keyEncryptedBuyer); } diff --git a/solidity/contracts/dvp-impl/PaymentContract.sol b/solidity/contracts/dvp-impl/PaymentContract.sol index 4727cc1e0..8691fd8c9 100644 --- a/solidity/contracts/dvp-impl/PaymentContract.sol +++ b/solidity/contracts/dvp-impl/PaymentContract.sol @@ -6,7 +6,6 @@ import "./interface/IDecryptionContract.sol"; contract PaymentContract is IDecryptionContract { - struct TransactionSpec { address from; address to; @@ -25,13 +24,13 @@ contract PaymentContract is IDecryptionContract { buyerAddress = _buyerAddress; } + // Implementation of the interface IDecryptionContract function inceptTransfer(bytes32 id, int amount, address from, string memory keyEncryptedSuccess, string memory keyEncryptedFailure) external override { transactionMap[id] = TransactionSpec(from, msg.sender, amount, keyEncryptedSuccess, keyEncryptedFailure); - emit TransferIncepted(msg.sender, id, amount); + emit TransferIncepted(id, amount, from, msg.sender, keyEncryptedSuccess, keyEncryptedFailure); } - function transferAndDecrypt(bytes32 id, int amount, address to, string memory keyEncryptedSuccess, string memory keyEncryptedFailure) external override { // verify transaction spec require(amount == transactionMap[id].amount); diff --git a/solidity/contracts/dvp-impl/interface/IDecryptionContract.sol b/solidity/contracts/dvp-impl/interface/IDecryptionContract.sol index 762ff2400..dae8c4424 100644 --- a/solidity/contracts/dvp-impl/interface/IDecryptionContract.sol +++ b/solidity/contracts/dvp-impl/interface/IDecryptionContract.sol @@ -24,11 +24,14 @@ interface IDecryptionContract { /** * @dev Emitted when the transfer is incepted. - * @param initiator is the address from which the transfer was incepted - * @param id the trade ID. - * @param amount to be transfered. + * @param id the trade identifier of the trade. + * @param amount the amount to be transferred. + * @param from The address of the sender of the payment. + * @param to The address of the receiver of the payment. + * @param keyEncryptedSuccess Encryption of the key that is emitted upon success. + * @param keyEncryptedFailure Encryption of the key that is emitted upon failure. */ - event TransferIncepted(address initiator, bytes32 id, int amount); + event TransferIncepted(bytes32 id, int amount, address from, address to, string keyEncryptedSuccess, string keyEncryptedFailure); /** * @dev Emitted when a the transfer has been performed with a success or failure. diff --git a/solidity/contracts/dvp-impl/interface/ILockingContract.sol b/solidity/contracts/dvp-impl/interface/ILockingContract.sol index 3516340d9..0dcc25107 100644 --- a/solidity/contracts/dvp-impl/interface/ILockingContract.sol +++ b/solidity/contracts/dvp-impl/interface/ILockingContract.sol @@ -28,17 +28,22 @@ interface ILockingContract { /** * @dev Emitted when the transfer for the token is incepted - * @param initiator is the address from which trade was incepted - * @param id the trade ID + * @param id the trade identifier of the trade. + * @param from The address of the seller. + * @param to The address of the buyer. + * @param keyEncryptedSeller Encryption of the key that can be used by the seller to (re-)claim the token. */ - event TransferIncepted(address initiator, bytes32 id); + event TransferIncepted(bytes32 id, int amount, address from, address to, string keyEncryptedSeller); /** * @dev Emitted when the transfer for the token is incepted - * @param confirmer is the address from which trade was incepted - * @param id the trade ID + * @param id the trade identifier of the trade. + * @param amount the number of tokens to be transfered. + * @param from The address of the seller. + * @param to The address of the buyer. + * @param keyEncryptedBuyer Encryption of the key that can be used by the buyer to claim the token. */ - event TransferConfirmed(address confirmer, bytes32 id); + event TransferConfirmed(bytes32 id, int amount, address from, address to, string keyEncryptedBuyer); /** * @dev Emitted when the token was successfully claimed (forward to buyer). @@ -60,6 +65,7 @@ interface ILockingContract { * @notice Called from the buyer of the token to initiate token transfer. * @dev emits a {TransferIncepted} * @param id the trade identifier of the trade. + * @param amount the number of tokens to be transfered. * @param from The address of the seller (the address of the buyer is message.sender). * @param keyEncryptedSeller Encryption of the key that can be used by the seller to (re-)claim the token. */ @@ -69,8 +75,9 @@ interface ILockingContract { * @notice Called from the seller of the token to confirm token transfer. Locks the token. * @dev emits a {TransferConfirmed} * @param id the trade identifier of the trade. + * @param amount the number of tokens to be transfered. * @param to The address of the buyer (the address of the seller is message.sender). - * @param keyEncryptedBuyer Encryption of the key that can be used by the seller to claim the token. + * @param keyEncryptedBuyer Encryption of the key that can be used by the buyer to claim the token. */ function confirmTransfer(bytes32 id, int amount, address to, string memory keyEncryptedBuyer) external; diff --git a/solidity/ercs/erc-7573/contracts/IDecryptionContract.sol b/solidity/ercs/erc-7573/contracts/IDecryptionContract.sol index 762ff2400..dae8c4424 100644 --- a/solidity/ercs/erc-7573/contracts/IDecryptionContract.sol +++ b/solidity/ercs/erc-7573/contracts/IDecryptionContract.sol @@ -24,11 +24,14 @@ interface IDecryptionContract { /** * @dev Emitted when the transfer is incepted. - * @param initiator is the address from which the transfer was incepted - * @param id the trade ID. - * @param amount to be transfered. + * @param id the trade identifier of the trade. + * @param amount the amount to be transferred. + * @param from The address of the sender of the payment. + * @param to The address of the receiver of the payment. + * @param keyEncryptedSuccess Encryption of the key that is emitted upon success. + * @param keyEncryptedFailure Encryption of the key that is emitted upon failure. */ - event TransferIncepted(address initiator, bytes32 id, int amount); + event TransferIncepted(bytes32 id, int amount, address from, address to, string keyEncryptedSuccess, string keyEncryptedFailure); /** * @dev Emitted when a the transfer has been performed with a success or failure. diff --git a/solidity/ercs/erc-7573/contracts/ILockingContract.sol b/solidity/ercs/erc-7573/contracts/ILockingContract.sol index 3516340d9..0dcc25107 100644 --- a/solidity/ercs/erc-7573/contracts/ILockingContract.sol +++ b/solidity/ercs/erc-7573/contracts/ILockingContract.sol @@ -28,17 +28,22 @@ interface ILockingContract { /** * @dev Emitted when the transfer for the token is incepted - * @param initiator is the address from which trade was incepted - * @param id the trade ID + * @param id the trade identifier of the trade. + * @param from The address of the seller. + * @param to The address of the buyer. + * @param keyEncryptedSeller Encryption of the key that can be used by the seller to (re-)claim the token. */ - event TransferIncepted(address initiator, bytes32 id); + event TransferIncepted(bytes32 id, int amount, address from, address to, string keyEncryptedSeller); /** * @dev Emitted when the transfer for the token is incepted - * @param confirmer is the address from which trade was incepted - * @param id the trade ID + * @param id the trade identifier of the trade. + * @param amount the number of tokens to be transfered. + * @param from The address of the seller. + * @param to The address of the buyer. + * @param keyEncryptedBuyer Encryption of the key that can be used by the buyer to claim the token. */ - event TransferConfirmed(address confirmer, bytes32 id); + event TransferConfirmed(bytes32 id, int amount, address from, address to, string keyEncryptedBuyer); /** * @dev Emitted when the token was successfully claimed (forward to buyer). @@ -60,6 +65,7 @@ interface ILockingContract { * @notice Called from the buyer of the token to initiate token transfer. * @dev emits a {TransferIncepted} * @param id the trade identifier of the trade. + * @param amount the number of tokens to be transfered. * @param from The address of the seller (the address of the buyer is message.sender). * @param keyEncryptedSeller Encryption of the key that can be used by the seller to (re-)claim the token. */ @@ -69,8 +75,9 @@ interface ILockingContract { * @notice Called from the seller of the token to confirm token transfer. Locks the token. * @dev emits a {TransferConfirmed} * @param id the trade identifier of the trade. + * @param amount the number of tokens to be transfered. * @param to The address of the buyer (the address of the seller is message.sender). - * @param keyEncryptedBuyer Encryption of the key that can be used by the seller to claim the token. + * @param keyEncryptedBuyer Encryption of the key that can be used by the buyer to claim the token. */ function confirmTransfer(bytes32 id, int amount, address to, string memory keyEncryptedBuyer) external; diff --git a/solidity/ercs/erc-7573/erc-7573.md b/solidity/ercs/erc-7573/erc-7573.md index 93c5c0491..5275bbb16 100644 --- a/solidity/ercs/erc-7573/erc-7573.md +++ b/solidity/ercs/erc-7573/erc-7573.md @@ -12,59 +12,95 @@ created: 2023-12-05 ## Abstract -The interfaces model the functional transaction scheme to establish a secure delivery-versus-payment +The interfaces in this proposal model a functional transaction scheme to establish a secure *delivery-versus-payment* across two blockchains, where a) no intermediary is required and b) one of the two chains -(e.g. the "payment chain") can securely interact with a stateless "decryption oracle". - -For convenience, we call the two chains "asset chain" and "payment chain". However, the concept is agnostic to the -nature of the tokens managed on the two chains. +can securely interact with a stateless "decryption oracle". Here, *delivery-versus-payment* refers to the exchange of, +e.g., an asset against a payment; however, the concept is generic to make a transfer of one token on one +chain (e.g., the payment) conditional to the successful transfer of another token on another chain (e.g., the asset). The scheme is realized by two smart contracts, one on each chain. One smart contract implements the `ILockingContract` interface on one chain (e.g. the "asset chain"), and another smart contract implements the `IDecryptionContract` interface on the other chain (e.g., the "payment chain"). +The smart contract implementing `ILockingContract` locks a token (e.g., the asset) on its chain until a key is presented +to encrypt to one of two given values. +The smart contract implementing `IDecryptionContract`, decrypts one of two keys (via the decryption oracle) conditional +to the success or failure of the token transfer (e.g., the payment). A stateless decryption oracle is attached to the +chain running `IDecryptionContract` for the decryption. + +## Motivation + +Within the domain of financial transactions and distributed ledger technology (DLT), the Hash-Linked Contract (HLC) +concept has been recognized as valuable and has been thoroughly investigated. +The concept may help to solve the challenge of delivery-versus-payment (DvP), especially in cases where the asset chain +and payment system (which may be a chain, too) are separated. +A prominent application of smart contracts realizing a secure DvP is that of buying an asset, where the asset is managed +on one chain (the asset chain), but the payments are executed on another chain (the payment chain). +Proposed solutions are based on an API-based interaction mechanism which bridges the communication between a so-called +asset chain and a corresponding +payment system or requires complex and problematic time-locks.[^1] -The smart contract on the asset chain, implementing `ILockingContract`, locks the asset until a key is presented that -will encrypt to a given value. +Here, we propose a protocol that facilitates secure delivery-versus-payment with less overhead, especially with a +stateless oracle.[^2] -The smart contract on the payment chain, implementing `IDecryptionContract`, decrypts one of two keys (via the -decryption oracle) conditional to the success or failure of the token transfer initiated -by the method +## Specification + +### Methods + +#### Smart Contract on the chain that performs the locking (e.g. the asset chain) + +The following methods specify the functionality of the smart contract implementing +the locking. For further information, please also look at the interface documentation `ILockingContract.sol`. + +##### Initiation of Transfer: `inceptTransfer` ```solidity -function transferAndDecrypt(bytes32 id, address to, string memory keyEncryptedSuccess, string memory keyEncryptedFailure) external; +function inceptTransfer(bytes32 id, int amount, address from, string memory keyEncryptedSeller) external; ``` -The contract on the asset chain, implementing `ILockingContract`, will lock the token until a key is presented -releasing the token by calling +Called from the buyer of the token to initiate token transfer. Emits a `TransferIncepted` event. +The parameter `id` is an identifier of the trade. The parameter `from` is the address of the seller (the address of the +buyer is `msg.sender`). +The parameter `keyEncryptedSeller` is an encryption of the key that can be used by the seller to (re-)claim the token. +See below on "encryption". + +##### Initiation of Transfer: `confirmTransfer` ```solidity -function transferWithKey(bytes32 id, string memory key) external; +function confirmTransfer(bytes32 id, int amount, address to, string memory keyEncryptedBuyer) external; ``` -where `key` is the decrypted `keyEncryptedSuccess` or `keyEncryptedFailure` +Called from the seller of the token to confirm token transfer. Emits a `TransferConfirmed` event. +The parameter `id` is an identifier of the trade. The parameter `to` is the address of the buyer (the address of the +seller is `msg.sender`). +The parameter `keyEncryptedBuyer` is an encryption of the key that can be used by the buyer to claim the token. -For the decryption, a stateless decryption oracle is attached to the chain running `IDecryptionContract`. +If the trade specification, that is, the quadruppel (`id`, `amount`, `from`, `to`), in a call to `confirmTransfer` +matches that of a previous call to `inceptTransfer`, and the balance is sufficient, the corresponding `amount` +of tokens is locked (transferred from `from` to the smart contract) and `TransferConfirmed` is emitted. -## Motivation +##### Transfer: `transferWithKey` -Within the domain of financial transactions and distributed ledger technology (DLT), the Hash-Linked Contract (HLC) -concept has been recognized as valuable and has been thoroughly investigated. -The concept may help to solve the challenge of delivery-versus-payment (DvP), especially in cases where the asset chain -and payment system (which may be a chain, too) are separated. The proposed solutions are based on an API-based -interaction mechanism which bridges the communication between a so-called Asset Chain and a corresponding Payment System -or requires complex and problematic time-locks (\cite{BancaItalia}). We believe an even more lightweight interaction -across both systems is possible, especially when the payment system is also based on a DLT infrastructure. +```solidity +function transferWithKey(bytes32 id, string memory key) external; +``` -## Specification +Called from either the buyer or the seller of the token +of the trade with id `id`. -### Methods +If the method is called from the buyer (`to`) *and* the encryption of `key` matches `keyEncryptedBuyer`, +then the locked tokens are transferred to the buyer (`to`). This emits `TokenClaimed`. + +If the method is called from the seller (`from`) *and* the encryption of `key` matches `keyEncryptedSeller`, +then the locked tokens are transferred (back) to the seller (`to`). This emits `TokenReclaimed`. + +##### Summary -#### Smart Contract on one chain (e.g. the asset chain) +The interface `ILockingContract`: ```solidity interface ILockingContract { - event TransferIncepted(address initiator, bytes32 id); - event TransferConfirmed(address confirmer, bytes32 id); + event TransferIncepted(bytes32 id, int amount, address from, address to, string keyEncryptedSeller); + event TransferConfirmed(bytes32 id, int amount, address from, address to, string keyEncryptedBuyer); event TokenClaimed(bytes32 id, string key); event TokenReclaimed(bytes32 id, string key); @@ -76,11 +112,61 @@ interface ILockingContract { } ``` -#### Smart Contract on the other chain (e.g. the payment chain) +#### Smart Contract on the other chain that performs the conditional decryption (e.g. the payment chain) + +The following methods specify the functionality of the smart contract implementing +the conditional decryption. For further information, please also look at the interface +documentation `IDecryptionContract.sol`. + +##### Initiation of Transfer: `inceptTransfer` + +```solidity +function inceptTransfer(bytes32 id, int amount, address from, string memory keyEncryptedSuccess, string memory keyEncryptedFailure) external; +``` + +Called from the receiver of the amount to initiate payment transfer. Emits a `PaymentTransferIncepted`. +The parameter `id` is an identifier of the trade. The parameter `from` is the address of the sender of the payment (the +address of the receiver is `msg.sender`). +The parameter `keyEncryptedSuccess` is an encryption of the key and will be decrypted if the transfer is successful in a +call to `transferAndDecrypt`. +The parameter `keyEncryptedFailure` is an encryption of the key and will be decrypted if the transfer fails in a call +to `transferAndDecrypt` or if `cancelAndDecrypt`is successful. + +##### Transfer: `transferAndDecrypt` + +```solidity +function transferAndDecrypt(bytes32 id, int amount, address to, string memory keyEncryptedSuccess, string memory keyEncryptedFailure) external; +``` + +Called from the sender of the amount to initiate completion of the payment transfer. Emits a `TransferKeyRequested` +and `TransferKeyReleased` with keys depending on completion success. +The parameter `id` is an identifier of the trade. The parameter `to` is the address of the receiver of the payment (the +sender of the payment (from) is implicitly the `msg.sender`). +The parameter `keyEncryptedSuccess` is an encryption of the key and will be decrypted if the transfer is successful. +The parameter `keyEncryptedFailure` is an encryption of the key and will be decrypted if the transfer failed. + +The method will not decrypt any key and not perfrom a transfer of a payment if the values (`id`, `amount`, `from` `to` +, `keyEncryptedSuccess`, `keyEncryptedFailure`) +do not match a previous call to `inceptTransfer`. + +##### Cancelation of Transfer: `cancelAndDecrypt` + +```solidity +function cancelAndDecrypt(bytes32 id, address from, string memory keyEncryptedSuccess, string memory keyEncryptedFailure) external; +``` + +Called from the receiver of the amount to cancel payment transfer (cancels the incept transfer). + +The method must be called from the caller of a previous call to `inceptTransfer` +with the exact same arguments and cancels this specific transfer. + +##### Summary + +The interface `IDecryptionContract`: ```solidity interface IDecryptionContract { - event TransferIncepted(address initiator, bytes32 id, int amount); + event TransferIncepted(bytes32 id, int amount, address from, address to, string keyEncryptedSuccess, string keyEncryptedFailure); event TransferKeyRequested(bytes32 id, string encryptedKey); event TransferKeyReleased(bytes32 id, bool success, string key); @@ -92,21 +178,37 @@ interface IDecryptionContract { } ``` -## Rationale +### Encryption and Decryption + +The linkage of the two smart contract relies on use of a `key` and `encryptedKey`. +The implementation is free to support several encryption methods for +as long as the decryption oracle supports it. -The rationale is described in the following sequence diagram. +The encryption is performed with the public key of +the decryption oracle, which is known to both parties. + +It is implicitly assumed that the two parties may check that +the strings `keyEncryptedBuyer` and `keyEncryptedSeller` are +in a valid format. ### Sequence diagram of delivery versus payment -![image info](../assets/eip-7573/doc/DvP-Seq-Diag.png) +The interplay of the two smart contracts is summarized +in the following sequence diagram: -## Test Cases +![image info](../assets/eip-7573/doc/DvP-Seq-Diag.png) -Test cases are provided in the finmath/finmath-smart-derivative-contract repository at GitHub. +## Rationale -## Reference Implementation +The protocol tries to be parsimonious. The transfer +is associated with a (preferable unique) `id` possibly +generated by some additional interaction of the trading +parties. -A reference implementation is provided in the finmath/finmath-smart-derivative-contract repository at GitHub. +The `key` and the `encryptedKey` arguments are strings to +allow the flexible use of different encryption schemes. +The decryption/encryption scheme should be inferable from the contents +of the `encryptedKey`. ## Security Considerations @@ -116,3 +218,94 @@ No known security issues up to now. Copyright and related rights waived via [CC0](../LICENSE.md). + +[^1]: +```csl-json + + { + "type": "article", + "id": 1, + "author": [ + { + "family": "La Rocca", + "given": "Rosario" + }, + { + "family": "Mancini", + "given": "Riccardo" + }, + { + "family": "Benedetti", + "given": "Marco" + }, + { + "family": "Caruso", + "given": "Matteo" + }, + { + "family": "Cossu", + "given": "Stefano" + }, + { + "family": "Galano", + "given": "Giuseppe" + }, + { + "family": "Mancini", + "given": "Simone" + }, + { + "family": "Marcelli", + "given": "Gabriele" + }, + { + "family": "Martella", + "given": "Piero" + }, + { + "family": "Nardelli", + "given": "Matteo" + }, + { + "family": "Oliviero", + "given": "Ciro" + } + ], + "DOI": "10.2139/ssrn.4386904", + "title": "Integrating DLTs with Market Infrastructures: Analysis and Proof-of-Concept for Secure DvP between TIPS and DLT Platforms", + "original-date": { + "date-parts": [ + [2022, 7, 19] + ] + }, + "URL": "http://dx.doi.org/10.2139/ssrn.4386904" + } + +``` + +[^2]: +```csl-json + { + "type": "article", + "id": 2, + "author": [ + { + "family": "Fries", + "given": "Christian" + }, + { + "family": "Kohl-Landgraf", + "given": "Peter" + } + ], + "DOI": "10.2139/ssrn.4628811", + "title": "A Proposal for a Lean and Functional Delivery versus Payment across two Blockchains", + "original-date": { + "date-parts": [ + [2023, 11, 9] + ] + }, + "URL": "http://dx.doi.org/10.2139/ssrn.4628811" + } +``` + From d8092db5a72b3ea5ed1c774e1a1c5db2cdbd7413 Mon Sep 17 00:00:00 2001 From: pekola Date: Wed, 13 Mar 2024 13:11:53 +0100 Subject: [PATCH 007/105] bugfix, added test for xml/json parsing of marketdata --- .../marketdata/LaunchAGenerator.java | 4 +-- .../generators/WebSocketConnector.java | 2 +- .../implementation/MarginCalculatorTest.java | 28 +++++++++++++++++++ .../valuation/marketdata/DataFormatTests.java | 2 +- .../valuation/marketdata/GeneratorTests.java | 12 ++++---- 5 files changed, 38 insertions(+), 10 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java index f318e6ef7..311748184 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java @@ -27,7 +27,7 @@ public static void main(String[] args) throws Exception { List mdItemList = sdc.getMarketdataItemList(); /* Load connection properties*/ - String connectionPropertiesFile = ""; + String connectionPropertiesFile = ""; Properties properties = new Properties(); properties.load(new FileInputStream(connectionPropertiesFile)); @@ -51,7 +51,7 @@ public void accept(MarketDataList s) throws Throwable { System.out.println("Consumer MarketDataStorage: Stored Market Data at: "); System.out.println(socket.isOpen()); - File file = new File("C:\\Temp\\file.xml"); + File file = new File("C:\\Temp\\marketdata.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/WebSocketConnector.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/WebSocketConnector.java index c0f848d63..9f86cabf4 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/WebSocketConnector.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/WebSocketConnector.java @@ -159,7 +159,7 @@ public JSONObject getAuthenticationInfo(JSONObject previousAuthResponseJson, Str } else { // Use the refresh token we got from the last authentication response. params.add(new BasicNameValuePair("grant_type", "refresh_token")); - params.add(new BasicNameValuePair("refresh_token", previousAuthResponseJson.get("refresh_token").textValue())); + params.add(new BasicNameValuePair("refresh_token", previousAuthResponseJson.getString("refresh_token"))); System.out.println("Sending authentication request with refresh token to " + url + "..."); } diff --git a/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java b/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java index f1c539c5e..34fe2faca 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java @@ -1,12 +1,25 @@ package net.finmath.smartcontract.valuation.implementation; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.Unmarshaller; +import net.finmath.smartcontract.product.xml.Document; import net.finmath.smartcontract.valuation.client.ValuationClient; import net.finmath.smartcontract.model.MarginResult; import net.finmath.smartcontract.model.ValueResult; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; +import org.assertj.core.util.Files; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; +import java.io.FileInputStream; +import java.io.FileReader; +import java.io.InputStreamReader; +import java.net.URL; import java.nio.charset.StandardCharsets; +import java.nio.file.Path; +import java.nio.file.Paths; public class MarginCalculatorTest { @@ -38,4 +51,19 @@ void testValue() throws Exception { Assertions.assertEquals(582165.72, value, 0.005, "Valuation"); System.out.println(valuationResult); } + + @Test + @Disabled + void testXMLMarketData() throws Exception{ + final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + + String s = "finmath-smart-derivative-contract\\src\\main\\resources\\net\\finmath\\smartcontract\\valuation\\client\\marketdata.xml"; + JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); + Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); + MarketDataList l = (MarketDataList) jaxbUnmarshaller.unmarshal(new FileInputStream( s )); + String json = l.serializeToJson(); + MarginCalculator marginCalculator = new MarginCalculator(); + ValueResult valuationResult = marginCalculator.getValue(json, product); + System.out.println(valuationResult.getValue()); + } } diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataFormatTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataFormatTests.java index 0452f0c64..9519d57f4 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataFormatTests.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataFormatTests.java @@ -58,7 +58,7 @@ void xmlGenerationTest() throws Exception{ MarketDataPoint point = new MarketDataPoint("test","curve","swap","10Y",0.0, LocalDateTime.now()); MarketDataList set = new MarketDataList(); set.add(point); - File file = new File("C:\\Temp\\file.xml"); + File file = new File("marketdata.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/GeneratorTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/GeneratorTests.java index 2eaceddc0..dc1774e32 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/GeneratorTests.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/GeneratorTests.java @@ -30,12 +30,12 @@ public class GeneratorTests { @BeforeAll @Disabled void init() throws Exception{ - String connectionPropertiesFile = ""; - properties = new Properties(); - properties.load(new FileInputStream(connectionPropertiesFile)); - String sdcXML = new String(LaunchAGenerator.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); - SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); - mdItemList = sdc.getMarketdataItemList(); + //String connectionPropertiesFile = ""; + //properties = new Properties(); + //properties.load(new FileInputStream(connectionPropertiesFile)); + //String sdcXML = new String(LaunchAGenerator.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + //SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); + //mdItemList = sdc.getMarketdataItemList(); } From c5b2f145e5e1963185d53d4ff560964cdddebcaa Mon Sep 17 00:00:00 2001 From: pekola Date: Wed, 13 Mar 2024 13:14:48 +0100 Subject: [PATCH 008/105] added pojo for marketdata --- .../marketdata/data/LocalDateTimeAdapter.java | 23 + .../marketdata/data/MarketDataList.java | 72 +++ .../valuation/client/marketdata.xml | 580 ++++++++++++++++++ 3 files changed, 675 insertions(+) create mode 100644 src/main/java/net/finmath/smartcontract/valuation/marketdata/data/LocalDateTimeAdapter.java create mode 100644 src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataList.java create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/client/marketdata.xml diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/LocalDateTimeAdapter.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/LocalDateTimeAdapter.java new file mode 100644 index 000000000..d47464abf --- /dev/null +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/LocalDateTimeAdapter.java @@ -0,0 +1,23 @@ +package net.finmath.smartcontract.valuation.marketdata.data; + +import jakarta.xml.bind.annotation.adapters.XmlAdapter; + +import java.text.ParseException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +public class LocalDateTimeAdapter extends XmlAdapter { + + + @Override + public String marshal(LocalDateTime v) { + return v.format(DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss")); + } + + @Override + public LocalDateTime unmarshal(String str) throws ParseException { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss"); + return LocalDateTime.parse(str, formatter); + } + +} \ No newline at end of file diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataList.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataList.java new file mode 100644 index 000000000..54d0e73db --- /dev/null +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataList.java @@ -0,0 +1,72 @@ +package net.finmath.smartcontract.valuation.marketdata.data; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataset; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +@XmlRootElement +@XmlType(propOrder = {"requestTimeStamp","points"}) +public class MarketDataList { + List points; + LocalDateTime requestTimeStamp; + + public MarketDataList(){ + requestTimeStamp = LocalDateTime.now(); + points = new ArrayList<>(); + } + + public void setRequestTimeStamp(LocalDateTime timestamp) { this.requestTimeStamp = timestamp; } + + public void add(MarketDataPoint point){ + this.points.add(point); + } + + public void setPoints(List points) { + this.points = points; + } + + public int getSize(){ + return this.points.size(); + } + + @XmlElement(name = "item") + public List getPoints() { + return points; + } + + @XmlJavaTypeAdapter(LocalDateTimeAdapter.class) + public LocalDateTime getRequestTimeStamp() { + return requestTimeStamp; + } + + public String serializeToJson() { + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new JavaTimeModule()); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .configure(SerializationFeature.INDENT_OUTPUT, true) + .configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); + + try { + String e = mapper.writerFor(MarketDataList.class).writeValueAsString(this); + return e; + } + catch (Exception e){ + return ""; + } + } + + CalibrationDataset mapToCalibrationDataSet(){ + return null; + } + +} diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/marketdata.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/marketdata.xml new file mode 100644 index 000000000..beeb3fc78 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/client/marketdata.xml @@ -0,0 +1,580 @@ + + + 20240301-102107 + + EURAB6E11Y= + Euribor6M + Swap-Rate + 11Y + 0.02581 + 20240301-102053 + + + EUR1X7F= + Euribor6M + Forward-Rate-Agreement + 7M + 0.03815 + 20240301-102021 + + + EUR9X15F= + Euribor6M + Forward-Rate-Agreement + 15M + 0.02937 + 20240301-102051 + + + EURAB6E7Y= + Euribor6M + Swap-Rate + 7Y + 0.02587 + 20240301-102101 + + + EURAB6E9Y= + Euribor6M + Swap-Rate + 9Y + 0.02571 + 20240301-102101 + + + EURAB6E16Y= + Euribor6M + Swap-Rate + 16Y + 0.02585 + 20240301-102043 + + + EURAB6E18Y= + Euribor6M + Swap-Rate + 18Y + 0.02558 + 20240301-102043 + + + EURAB6E30Y= + Euribor6M + Swap-Rate + 30Y + 0.02322 + 20240301-102102 + + + EUREST2W= + ESTR + Swap-Rate + 14D + 0.03907 + 20240301-111753 + + + EUREST3M= + ESTR + Swap-Rate + 3M + 0.03894 + 20240301-102011 + + + EUREST4M= + ESTR + Swap-Rate + 4M + 0.03856 + 20240301-102059 + + + EURAB6E23Y= + Euribor6M + Swap-Rate + 23Y + 0.02471 + 20240301-102044 + + + EURAB6E24Y= + Euribor6M + Swap-Rate + 24Y + 0.02446 + 20240301-102044 + + + EUREST7Y= + ESTR + Swap-Rate + 7Y + 0.02411 + 20240301-102043 + + + EUREST9Y= + ESTR + Swap-Rate + 9Y + 0.02417 + 20240301-102043 + + + EUROSTR= + ESTR + Fixing + 1D + 0.03905 + 20240301-080005 + + + EUREST7M= + ESTR + Swap-Rate + 7M + 0.03711 + 20240301-102102 + + + EUREST9M= + ESTR + Swap-Rate + 9M + 0.03603 + 20240301-102102 + + + EURESTSW= + ESTR + Swap-Rate + 7D + 0.03905 + 20240301-104125 + + + EUREST21M= + ESTR + Swap-Rate + 21M + 0.03024 + 20240301-102023 + + + EURAB6E3Y= + Euribor6M + Swap-Rate + 3Y + 0.02876 + 20240301-102101 + + + EURAB6E4Y= + Euribor6M + Swap-Rate + 4Y + 0.02737 + 20240301-102102 + + + EURAB6E20Y= + Euribor6M + Swap-Rate + 20Y + 0.02532 + 20240301-102100 + + + EURAB6E27Y= + Euribor6M + Swap-Rate + 27Y + 0.02379 + 20240301-102044 + + + EURAB6E29Y= + Euribor6M + Swap-Rate + 29Y + 0.0234 + 20240301-102044 + + + EUR6X12F= + Euribor6M + Forward-Rate-Agreement + 12M + 0.03239 + 20240301-102102 + + + EUR3X9F= + Euribor6M + Forward-Rate-Agreement + 9M + 0.03576 + 20240301-102035 + + + EURAB6E10Y= + Euribor6M + Swap-Rate + 10Y + 0.02574 + 20240301-102102 + + + EURAB6E17Y= + Euribor6M + Swap-Rate + 17Y + 0.02572 + 20240301-102043 + + + EURAB6E19Y= + Euribor6M + Swap-Rate + 19Y + 0.02545 + 20240301-102043 + + + EUREST20Y= + ESTR + Swap-Rate + 20Y + 0.02492 + 20240301-102104 + + + EURAB6E13Y= + Euribor6M + Swap-Rate + 13Y + 0.02597 + 20240301-102043 + + + EURAB6E14Y= + Euribor6M + Swap-Rate + 14Y + 0.02601 + 20240301-102043 + + + EURIBOR6MD= + Euribor6M + Fixing + 6M + 0.03892 + 20240301-110041 + + + EUR2X8F= + Euribor6M + Forward-Rate-Agreement + 8M + 0.03698 + 20240301-102021 + + + EURAB6E40Y= + Euribor6M + Swap-Rate + 40Y + 0.02159 + 20240301-102043 + + + EUREST30Y= + ESTR + Swap-Rate + 30Y + 0.02337 + 20240301-102045 + + + EUR4X10F= + Euribor6M + Forward-Rate-Agreement + 10M + 0.03469 + 20240301-102021 + + + EURAB6E2Y= + Euribor6M + Swap-Rate + 2Y + 0.03136 + 20240301-102101 + + + EURAB6E5Y= + Euribor6M + Swap-Rate + 5Y + 0.02658 + 20240301-102102 + + + EURAB6E21Y= + Euribor6M + Swap-Rate + 21Y + 0.02514 + 20240301-102044 + + + EURAB6E26Y= + Euribor6M + Swap-Rate + 26Y + 0.024 + 20240301-102044 + + + EURAB6E28Y= + Euribor6M + Swap-Rate + 28Y + 0.02359 + 20240301-102044 + + + EUREST1M= + ESTR + Swap-Rate + 1M + 0.03906 + 20240301-111753 + + + EUREST6M= + ESTR + Swap-Rate + 6M + 0.03762 + 20240301-102102 + + + EUREST8M= + ESTR + Swap-Rate + 8M + 0.03652 + 20240301-102105 + + + EUREST15M= + ESTR + Swap-Rate + 15M + 0.03278 + 20240301-102054 + + + EUREST2Y= + ESTR + Swap-Rate + 2Y + 0.02931 + 20240301-102102 + + + EUREST5Y= + ESTR + Swap-Rate + 5Y + 0.02463 + 20240301-102026 + + + EUREST11Y= + ESTR + Swap-Rate + 11Y + 0.0245 + 20240301-102026 + + + EUR6MD= + Euribor6M + Deposit + 6M + 0.0408 + 20240301-102101 + + + EURAB6E12Y= + Euribor6M + Swap-Rate + 12Y + 0.0259 + 20240301-102101 + + + EURAB6E15Y= + Euribor6M + Swap-Rate + 15Y + 0.02599 + 20240301-102102 + + + EUREST25Y= + ESTR + Swap-Rate + 25Y + 0.02415 + 20240301-102104 + + + EUREST3Y= + ESTR + Swap-Rate + 3Y + 0.02667 + 20240301-102028 + + + EUREST4Y= + ESTR + Swap-Rate + 4Y + 0.02534 + 20240301-102027 + + + EUREST10Y= + ESTR + Swap-Rate + 10Y + 0.0243 + 20240301-102044 + + + EUR12X18F= + Euribor6M + Forward-Rate-Agreement + 18M + 0.02702 + 20240301-102026 + + + EURAB6E6Y= + Euribor6M + Swap-Rate + 6Y + 0.02613 + 20240301-102102 + + + EURAB6E8Y= + Euribor6M + Swap-Rate + 8Y + 0.02575 + 20240301-102102 + + + EURAB6E22Y= + Euribor6M + Swap-Rate + 22Y + 0.02494 + 20240301-102044 + + + EURAB6E25Y= + Euribor6M + Swap-Rate + 25Y + 0.02423 + 20240301-102100 + + + EUREST3W= + ESTR + Swap-Rate + 21D + 0.03902 + 20240301-110741 + + + EUREST2M= + ESTR + Swap-Rate + 2M + 0.03902 + 20240301-111641 + + + EUREST5M= + ESTR + Swap-Rate + 5M + 0.03805 + 20240301-102059 + + + EUREST18M= + ESTR + Swap-Rate + 18M + 0.03141 + 20240301-102054 + + + EURAB6E50Y= + Euribor6M + Swap-Rate + 50Y + 0.02013 + 20240301-102043 + + + EUREST1Y= + ESTR + Swap-Rate + 1Y + 0.03446 + 20240301-102059 + + + EUREST6Y= + ESTR + Swap-Rate + 6Y + 0.02426 + 20240301-102026 + + + EUREST8Y= + ESTR + Swap-Rate + 8Y + 0.02407 + 20240301-102106 + + + EUREST12Y= + ESTR + Swap-Rate + 12Y + 0.02469 + 20240301-102044 + + + EUREST15Y= + ESTR + Swap-Rate + 15Y + 0.02513 + 20240301-102044 + + From 089fc27c558b198b5c1981d7ac0e33d960967486 Mon Sep 17 00:00:00 2001 From: Christian Fries Date: Wed, 13 Mar 2024 13:36:43 +0100 Subject: [PATCH 009/105] Added erc to site --- src/site/markdown/erc-6123/erc-6123.md | 273 ++++++++++++++++++++++ src/site/markdown/erc-7573/erc-7573.md | 311 +++++++++++++++++++++++++ src/site/markdown/index.md | 10 + 3 files changed, 594 insertions(+) create mode 100644 src/site/markdown/erc-6123/erc-6123.md create mode 100644 src/site/markdown/erc-7573/erc-7573.md diff --git a/src/site/markdown/erc-6123/erc-6123.md b/src/site/markdown/erc-6123/erc-6123.md new file mode 100644 index 000000000..64a2fa951 --- /dev/null +++ b/src/site/markdown/erc-6123/erc-6123.md @@ -0,0 +1,273 @@ +--- +eip: 6123 +title: Smart Derivative Contract +description: A deterministic protocol for frictionless trade processing of financial contracts +author: Christian Fries (@cfries), Peter Kohl-Landgraf (@pekola), Alexandros Korpis (@kourouta) +discussions-to: https://ethereum-magicians.org/t/eip-6123-smart-derivative-contract-frictionless-processing-of-financial-derivatives/12134 +status: Draft +type: Standards Track +category: ERC +created: 2022-12-13 +--- + +## Abstract + +The Smart Derivative Contract (SDC) allows fully automizing and securing a financial product's - e.g. a financial +derivative or bond - complete trade life cycle. +The SDC leverages the advantages of smart contracts to remove many of the frictions associated with the classical +derivative life cycle. Most notably, the protocol allows the removal of counterpart risk essentially. +The SDC can be implemented using a pre-agreed valuation oracle and valuation model, removing ambiguity in the settlement +amounts. The SDC provides methods and callbacks to enable fully automated and fully transactional settlements ( +delivery-versus-payment, payment-vs-payment). +Token-based settlement can be realized by any contract implementation implementing an [ERC-20](./eip-20.md) token. +Proof of concepts in terms of two legally binding digital Interest Rate Swaps were conducted in 2021 and 2022. + +## Motivation + +### Rethinking Financial Derivatives + +By their very nature, so-called "over-the-counter (OTC)" financial contracts are bilateral contractual agreements on +exchanging long-dated cash flow schedules. +Since these contracts change their intrinsic market value due to changing market environments, they are subject to +counterparty credit risk when one counterparty is subject to default. +The initial white paper describes the concept of a Smart Derivative Contract (SDC) with the central aim to detach +bilateral financial transactions from counterparty credit risk and to remove complexities +in bilateral post-trade processing by a complete redesign. + +### Concept of a Smart Derivative Contract + +A Smart Derivative Contract is a deterministic settlement protocol with the same economic behaviour as a Financial +Contract - e.g. an OTC-Derivative or a Bond. +Every process state is specified; therefore, the trade and post-trade process is known in advance and is deterministic +over the trade's life cycle. An [ERC-20](./eip-20.md) token can be used for frictionless decentralized settlement, see +reference implementation. We do provide a separate interface and implementation for a specific "Settlement Token" +derived from [ERC-20](./eip-20.md). +These features enable two or multiple trade parties to process their financial contracts fully decentralized without +relying on a third central intermediary agent. +The process logic of SDC can be implemented as a finite state machine on solidity. + +### Applications + +The interface's life cycle functionality applies to several use cases. + +#### Collateralized OTC Derivative + +In the case of a collateralized OTC derivative, an SDC settles the outstanding net present value of the underlying +financial contract on a frequent (e.g. daily) basis. With each settlement cycle, the net present value of the underlying +contract is exchanged, and the value of the contract is reset to zero. Pre-agreed margin buffers are locked at the +beginning of each settlement cycle so that settlement will be guaranteed up to a certain amount. +If a counterparty fails to obey contract rules, e.g. not providing sufficient pre-funding, SDC will terminate +automatically with the guaranteed transfer of a termination fee by the causing party. +We provide a Reference Implementation for this case. + +#### Defaultable OTC Derivative + +A defaultable OTC Derivative has no Collateral Process in place. In that case, a smart derivative will settle the +according cash flows as determined in the derivative contract specification. A defaultable OTC derivative might end in +a state 'Failure to Pay' if a settlement cannot be conducted. + +#### Smart Bond Contract + +The life cycle of a bond can also make use of the function catalogue below. The interface enables the issuer to allocate +and redeem the bond as well as settle coupon payments. On the other hand, it allows bondholders to interact with each +other, conducting secondary market trades. It all boils down to a settlement phase, which needs to be pre-agreed by both +parties or triggered by the issuer +which can be processed in a completely frictionless way. + +## Specification + +### Methods + +The following methods specify a Smart Derivative Contract's trade initiation and settlement life cycle. For further +information, please also look at the interface documentation ISDC.sol. + +#### Trade Initiation Phase: `inceptTrade` + +A party can initiate a trade by providing the party address to trade with, trade data, trade position, payment amount +for the trade and initial settlement data. Only registered counterparties are allowed to use that function. + +```solidity +function inceptTrade(address _withParty, string memory _tradeData, int _position, int256 _paymentAmount, string memory _initialSettlementData) external; +``` + +#### Trade Initiation Phase: `confirmTrade` + +A counterparty can confirm a trade by providing its trade specification data, which then gets matched against the data +stored from `inceptTrade` call. + +```solidity +function confirmTrade(address _withParty, string memory _tradeData, int _position, int256 _paymentAmount, string memory _initialSettlementData) external; +``` + +#### Trade Settlement Phase: `initiateSettlement` + +Allows eligible participants (such as counterparties or a delegated agent) to trigger a settlement phase. + +```solidity +function initiateSettlement() external; +``` + +#### Trade Settlement Phase: `performSettlement` + +Valuation may be provided on-chain or off-chain via an external oracle service that calculates the settlement or coupon +amounts and uses external market data. +This method serves as a callback called from an external oracle providing settlement amount and used settlement data, +which also get stored. +The settlement amount will be checked according to contract terms, resulting in either a regular settlement or a +termination of the trade. + +```solidity +function performSettlement(int256 settlementAmount, string memory settlementData) external; +``` + +#### Trade Settlement Phase: `afterTransfer` + +This method - either called back from the provided settlement token directly or from an eligible address - completes the +settlement transfer. +This might result in a termination or start of the next settlement phase, depending on the provided success flag. + +```solidity +function afterTransfer(uint256 transactionHash, bool success) external; +``` + +#### Trade Termination: `requestTermination` + +Allows an eligible party to request a mutual termination with a termination amount she is willing to pay + +```solidity +function requestTradeTermination(string memory tradeId, int256 _terminationPayment) external; +``` + +#### Trade Termination: `confirmTradeTermination` + +Allows an eligible party to confirm a previously requested (mutual) trade termination, including termination payment +value + +```solidity +function confirmTradeTermination(string memory tradeId, int256 _terminationPayment) external; +``` + +### Trade Events + +The following events are emitted during an SDC Trade life-cycle. + +#### TradeIncepted + +Emitted on trade inception - method 'inceptTrade' + +```solidity +event TradeIncepted(address initiator, string tradeId, string tradeData); +``` + +#### TradeConfirmed + +Emitted on trade confirmation - method 'confirmTrade' + +```solidity +event TradeConfirmed(address confirmer, string tradeId); +``` + +#### TradeActivated + +Emitted when a Trade is activated + +```solidity +event TradeActivated(string tradeId); +``` + +### TradeSettlementRequest + +Emitted when a settlement is requested. May trigger the settlement phase. + +```solidity +event TradeSettlementRequest(string tradeData, string lastSettlementData); +``` + +### TradeSettlementPhase + +Emitted when the settlement phase is started. + +```solidity +event TradeSettlementPhase(); +``` + +#### TradeTerminationRequest + +Emitted when termination request is initiated by a counterparty + +```solidity +event TradeTerminationRequest(address cpAddress, string tradeId); +``` + +#### TradeTerminationConfirmed + +Emitted when termination request is confirmed by a counterparty + +```solidity +event TradeTerminationConfirmed(address cpAddress, string tradeId); +``` + +#### TradeTerminated + +Emitted when trade is terminated + +```solidity +event TradeTerminated(string cause); +``` + +#### ProcessHalted + +Emitted when trade processing stops. + +```solidity +event ProcessHalted(); +``` + +## Rationale + +The interface design and reference implementation are based on the following considerations: + +- An SDC protocol enables interacting parties to initiate and process a financial transaction in a bilateral and + deterministic manner. Settlement and Counterparty Risk is managed by the contract. +- The provided interface specification is supposed to completely reflect the entire trade life cycle. +- The interface specification is generic enough to handle the case that parties process one or even multiple financial + transactions (on a netted base) +- Usually, the valuation of financial trades (e.g. OTC Derivatives) will require advanced valuation methodology to + determine the market value. This is why the concept might rely on an external market data source and hosted valuation + algorithms +- A pull-based valuation-based oracle pattern can be implemented by using the provided callback pattern ( + methods: `initiateSettlement`, `performSettlement`) +- The reference implementation `SDC.sol` is based on a state-machine pattern where the states also serve as guards (via + modifiers) to check which method is allowed to be called at a particular given process and trade state + +### State diagram of trade and process states + +![image info](../assets/eip-6123/doc/sdc_trade_states.png) + +### Sequence diagram of trade initiation and settlement life-cycle + +![image info](../assets/eip-6123/doc/sdc_lifecycle_sequence_diagram.png) + +## Test Cases + +Life-cycle unit tests based on the sample implementation and usage of [ERC-20](./eip-20.md) token is provided. See +file [test/SDCTests.js](../assets/eip-6123/test/SDCTests.js) +). + +## Reference Implementation + +An abstract contract class SDC.sol as well as a full reference implementation SDCPledgedBalance.sol for an +OTC-Derivative is provided and is based on the [ERC-20](./eip-20.md) token standard. +See folder `/assets/contracts`, more explanation on the implementation is provided inline. + +### Trade Data Specification (suggestion) + +Please take a look at the provided xml file as a suggestion on how trade parameters could be stored. + +## Security Considerations + +No known security issues up to now. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). diff --git a/src/site/markdown/erc-7573/erc-7573.md b/src/site/markdown/erc-7573/erc-7573.md new file mode 100644 index 000000000..5275bbb16 --- /dev/null +++ b/src/site/markdown/erc-7573/erc-7573.md @@ -0,0 +1,311 @@ +--- +eip: 7573 +title: Conditional-upon-Transfer-Decryption for DvP +description: A Proposal for a Lean and Functional Delivery versus Payment +author: Christian Fries (@cfries), Peter Kohl-Landgraf (@pekola) +discussions-to: https://ethereum-magicians.org/t/erc-7573-conditional-upon-transfer-decryption-for-delivery-versus-payment/17232 +status: Draft +type: Standards Track +category: ERC +created: 2023-12-05 +--- + +## Abstract + +The interfaces in this proposal model a functional transaction scheme to establish a secure *delivery-versus-payment* +across two blockchains, where a) no intermediary is required and b) one of the two chains +can securely interact with a stateless "decryption oracle". Here, *delivery-versus-payment* refers to the exchange of, +e.g., an asset against a payment; however, the concept is generic to make a transfer of one token on one +chain (e.g., the payment) conditional to the successful transfer of another token on another chain (e.g., the asset). + +The scheme is realized by two smart contracts, one on each chain. +One smart contract implements the `ILockingContract` interface on one chain (e.g. the "asset chain"), and another smart +contract implements the `IDecryptionContract` interface on the other chain (e.g., the "payment chain"). +The smart contract implementing `ILockingContract` locks a token (e.g., the asset) on its chain until a key is presented +to encrypt to one of two given values. +The smart contract implementing `IDecryptionContract`, decrypts one of two keys (via the decryption oracle) conditional +to the success or failure of the token transfer (e.g., the payment). A stateless decryption oracle is attached to the +chain running `IDecryptionContract` for the decryption. + +## Motivation + +Within the domain of financial transactions and distributed ledger technology (DLT), the Hash-Linked Contract (HLC) +concept has been recognized as valuable and has been thoroughly investigated. +The concept may help to solve the challenge of delivery-versus-payment (DvP), especially in cases where the asset chain +and payment system (which may be a chain, too) are separated. +A prominent application of smart contracts realizing a secure DvP is that of buying an asset, where the asset is managed +on one chain (the asset chain), but the payments are executed on another chain (the payment chain). +Proposed solutions are based on an API-based interaction mechanism which bridges the communication between a so-called +asset chain and a corresponding +payment system or requires complex and problematic time-locks.[^1] + +Here, we propose a protocol that facilitates secure delivery-versus-payment with less overhead, especially with a +stateless oracle.[^2] + +## Specification + +### Methods + +#### Smart Contract on the chain that performs the locking (e.g. the asset chain) + +The following methods specify the functionality of the smart contract implementing +the locking. For further information, please also look at the interface documentation `ILockingContract.sol`. + +##### Initiation of Transfer: `inceptTransfer` + +```solidity +function inceptTransfer(bytes32 id, int amount, address from, string memory keyEncryptedSeller) external; +``` + +Called from the buyer of the token to initiate token transfer. Emits a `TransferIncepted` event. +The parameter `id` is an identifier of the trade. The parameter `from` is the address of the seller (the address of the +buyer is `msg.sender`). +The parameter `keyEncryptedSeller` is an encryption of the key that can be used by the seller to (re-)claim the token. +See below on "encryption". + +##### Initiation of Transfer: `confirmTransfer` + +```solidity +function confirmTransfer(bytes32 id, int amount, address to, string memory keyEncryptedBuyer) external; +``` + +Called from the seller of the token to confirm token transfer. Emits a `TransferConfirmed` event. +The parameter `id` is an identifier of the trade. The parameter `to` is the address of the buyer (the address of the +seller is `msg.sender`). +The parameter `keyEncryptedBuyer` is an encryption of the key that can be used by the buyer to claim the token. + +If the trade specification, that is, the quadruppel (`id`, `amount`, `from`, `to`), in a call to `confirmTransfer` +matches that of a previous call to `inceptTransfer`, and the balance is sufficient, the corresponding `amount` +of tokens is locked (transferred from `from` to the smart contract) and `TransferConfirmed` is emitted. + +##### Transfer: `transferWithKey` + +```solidity +function transferWithKey(bytes32 id, string memory key) external; +``` + +Called from either the buyer or the seller of the token +of the trade with id `id`. + +If the method is called from the buyer (`to`) *and* the encryption of `key` matches `keyEncryptedBuyer`, +then the locked tokens are transferred to the buyer (`to`). This emits `TokenClaimed`. + +If the method is called from the seller (`from`) *and* the encryption of `key` matches `keyEncryptedSeller`, +then the locked tokens are transferred (back) to the seller (`to`). This emits `TokenReclaimed`. + +##### Summary + +The interface `ILockingContract`: + +```solidity +interface ILockingContract { + event TransferIncepted(bytes32 id, int amount, address from, address to, string keyEncryptedSeller); + event TransferConfirmed(bytes32 id, int amount, address from, address to, string keyEncryptedBuyer); + event TokenClaimed(bytes32 id, string key); + event TokenReclaimed(bytes32 id, string key); + + function inceptTransfer(bytes32 id, int amount, address from, string memory keyEncryptedSeller) external; + + function confirmTransfer(bytes32 id, int amount, address to, string memory keyEncryptedBuyer) external; + + function transferWithKey(bytes32 id, string memory key) external; +} +``` + +#### Smart Contract on the other chain that performs the conditional decryption (e.g. the payment chain) + +The following methods specify the functionality of the smart contract implementing +the conditional decryption. For further information, please also look at the interface +documentation `IDecryptionContract.sol`. + +##### Initiation of Transfer: `inceptTransfer` + +```solidity +function inceptTransfer(bytes32 id, int amount, address from, string memory keyEncryptedSuccess, string memory keyEncryptedFailure) external; +``` + +Called from the receiver of the amount to initiate payment transfer. Emits a `PaymentTransferIncepted`. +The parameter `id` is an identifier of the trade. The parameter `from` is the address of the sender of the payment (the +address of the receiver is `msg.sender`). +The parameter `keyEncryptedSuccess` is an encryption of the key and will be decrypted if the transfer is successful in a +call to `transferAndDecrypt`. +The parameter `keyEncryptedFailure` is an encryption of the key and will be decrypted if the transfer fails in a call +to `transferAndDecrypt` or if `cancelAndDecrypt`is successful. + +##### Transfer: `transferAndDecrypt` + +```solidity +function transferAndDecrypt(bytes32 id, int amount, address to, string memory keyEncryptedSuccess, string memory keyEncryptedFailure) external; +``` + +Called from the sender of the amount to initiate completion of the payment transfer. Emits a `TransferKeyRequested` +and `TransferKeyReleased` with keys depending on completion success. +The parameter `id` is an identifier of the trade. The parameter `to` is the address of the receiver of the payment (the +sender of the payment (from) is implicitly the `msg.sender`). +The parameter `keyEncryptedSuccess` is an encryption of the key and will be decrypted if the transfer is successful. +The parameter `keyEncryptedFailure` is an encryption of the key and will be decrypted if the transfer failed. + +The method will not decrypt any key and not perfrom a transfer of a payment if the values (`id`, `amount`, `from` `to` +, `keyEncryptedSuccess`, `keyEncryptedFailure`) +do not match a previous call to `inceptTransfer`. + +##### Cancelation of Transfer: `cancelAndDecrypt` + +```solidity +function cancelAndDecrypt(bytes32 id, address from, string memory keyEncryptedSuccess, string memory keyEncryptedFailure) external; +``` + +Called from the receiver of the amount to cancel payment transfer (cancels the incept transfer). + +The method must be called from the caller of a previous call to `inceptTransfer` +with the exact same arguments and cancels this specific transfer. + +##### Summary + +The interface `IDecryptionContract`: + +```solidity +interface IDecryptionContract { + event TransferIncepted(bytes32 id, int amount, address from, address to, string keyEncryptedSuccess, string keyEncryptedFailure); + event TransferKeyRequested(bytes32 id, string encryptedKey); + event TransferKeyReleased(bytes32 id, bool success, string key); + + function inceptTransfer(bytes32 id, int amount, address from, string memory keyEncryptedSuccess, string memory keyEncryptedFailure) external; + + function transferAndDecrypt(bytes32 id, int amount, address to, string memory keyEncryptedSuccess, string memory keyEncryptedFailure) external; + + function cancelAndDecrypt(bytes32 id, address from, string memory keyEncryptedSuccess, string memory keyEncryptedFailure) external; +} +``` + +### Encryption and Decryption + +The linkage of the two smart contract relies on use of a `key` and `encryptedKey`. +The implementation is free to support several encryption methods for +as long as the decryption oracle supports it. + +The encryption is performed with the public key of +the decryption oracle, which is known to both parties. + +It is implicitly assumed that the two parties may check that +the strings `keyEncryptedBuyer` and `keyEncryptedSeller` are +in a valid format. + +### Sequence diagram of delivery versus payment + +The interplay of the two smart contracts is summarized +in the following sequence diagram: + +![image info](../assets/eip-7573/doc/DvP-Seq-Diag.png) + +## Rationale + +The protocol tries to be parsimonious. The transfer +is associated with a (preferable unique) `id` possibly +generated by some additional interaction of the trading +parties. + +The `key` and the `encryptedKey` arguments are strings to +allow the flexible use of different encryption schemes. +The decryption/encryption scheme should be inferable from the contents +of the `encryptedKey`. + +## Security Considerations + +No known security issues up to now. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). + + +[^1]: +```csl-json + + { + "type": "article", + "id": 1, + "author": [ + { + "family": "La Rocca", + "given": "Rosario" + }, + { + "family": "Mancini", + "given": "Riccardo" + }, + { + "family": "Benedetti", + "given": "Marco" + }, + { + "family": "Caruso", + "given": "Matteo" + }, + { + "family": "Cossu", + "given": "Stefano" + }, + { + "family": "Galano", + "given": "Giuseppe" + }, + { + "family": "Mancini", + "given": "Simone" + }, + { + "family": "Marcelli", + "given": "Gabriele" + }, + { + "family": "Martella", + "given": "Piero" + }, + { + "family": "Nardelli", + "given": "Matteo" + }, + { + "family": "Oliviero", + "given": "Ciro" + } + ], + "DOI": "10.2139/ssrn.4386904", + "title": "Integrating DLTs with Market Infrastructures: Analysis and Proof-of-Concept for Secure DvP between TIPS and DLT Platforms", + "original-date": { + "date-parts": [ + [2022, 7, 19] + ] + }, + "URL": "http://dx.doi.org/10.2139/ssrn.4386904" + } + +``` + +[^2]: +```csl-json + { + "type": "article", + "id": 2, + "author": [ + { + "family": "Fries", + "given": "Christian" + }, + { + "family": "Kohl-Landgraf", + "given": "Peter" + } + ], + "DOI": "10.2139/ssrn.4628811", + "title": "A Proposal for a Lean and Functional Delivery versus Payment across two Blockchains", + "original-date": { + "date-parts": [ + [2023, 11, 9] + ] + }, + "URL": "http://dx.doi.org/10.2139/ssrn.4628811" + } +``` + diff --git a/src/site/markdown/index.md b/src/site/markdown/index.md index f28796b8b..2593e15cc 100644 --- a/src/site/markdown/index.md +++ b/src/site/markdown/index.md @@ -20,6 +20,16 @@ see https://ssrn.com/abstract=3163074 For non-technical description see the [articles](articles) section. +## Standards (Protocols) + +### ERC-6123 Smart Derivative Contract + +See https://eips.ethereum.org/EIPS/eip-6123 + +### ERC-7573 Secure Delivery-versus-Payment + +See [ERC 7573](erc-7573/ec-7573.md). + ## Visualization and Demonstration The package `net.finmath.smartcontract.demo`contains a visualization of a smart derivative contract. From 61c7bc5773634b4a33019e152527122295e945f5 Mon Sep 17 00:00:00 2001 From: pekola Date: Wed, 13 Mar 2024 22:33:44 +0100 Subject: [PATCH 010/105] refactored marketdata persistence format to XML, added a first settlementTests --- .../smartcontract/settlement/Settlement.java | 109 ++- .../settlement/ZonedDateTimeAdapter.java | 24 + .../valuation/client/ValuationClient.java | 4 +- .../implementation/MarginCalculator.java | 26 +- .../ConditionalSettlementCalculator.java | 5 - .../marketdata/LaunchAGenerator.java | 4 +- .../curvecalibration/CalibrationDataset.java | 11 +- .../CalibrationParserDataItems.java | 34 +- .../marketdata/data/MarketDataList.java | 2 +- .../marketdata/data/MarketDataPoint.java | 45 +- .../MarketDataGeneratorRandomFeed.java | 5 +- .../MarketDataGeneratorWebsocket.java | 2 +- .../controllers/ValuationController.java | 2 +- .../{ => legacy}/md_testset_newformat_1.json | 0 .../{ => legacy}/md_testset_with_fixings.json | 0 .../{marketdata.xml => md_testset0.xml} | 0 .../valuation/client/md_testset1.json | 91 --- .../valuation/client/md_testset1.xml | 354 ++++++++++ .../valuation/client/md_testset2.json | 91 --- .../valuation/client/md_testset2.xml | 354 ++++++++++ .../client/md_testset_with_fixings.xml | 404 +++++++++++ .../client/nf_md_20230711-123529.json | 510 -------------- .../smartderivativecontract-sample-swap.xml | 639 ------------------ .../smartcontract/product/xml/JAXBTests.java | 9 +- .../settlement/SettlementTests.java | 60 ++ .../implementation/MarginCalculatorTest.java | 22 +- ...taFormatTests.java => DataParseTests.java} | 54 +- .../curvecalibration/CalibrationTests.java | 2 +- .../service/ValuationControllerTest.java | 6 +- .../service/utils/MockResourceGovernor.java | 2 +- 30 files changed, 1421 insertions(+), 1450 deletions(-) create mode 100644 src/main/java/net/finmath/smartcontract/settlement/ZonedDateTimeAdapter.java rename src/main/resources/net/finmath/smartcontract/valuation/client/{ => legacy}/md_testset_newformat_1.json (100%) rename src/main/resources/net/finmath/smartcontract/valuation/client/{ => legacy}/md_testset_with_fixings.json (100%) rename src/main/resources/net/finmath/smartcontract/valuation/client/{marketdata.xml => md_testset0.xml} (100%) delete mode 100644 src/main/resources/net/finmath/smartcontract/valuation/client/md_testset1.json create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/client/md_testset1.xml delete mode 100644 src/main/resources/net/finmath/smartcontract/valuation/client/md_testset2.json create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/client/md_testset2.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml delete mode 100644 src/main/resources/net/finmath/smartcontract/valuation/client/nf_md_20230711-123529.json delete mode 100644 src/main/resources/net/finmath/smartcontract/valuation/client/smartderivativecontract-sample-swap.xml create mode 100644 src/test/java/net/finmath/smartcontract/settlement/SettlementTests.java rename src/test/java/net/finmath/smartcontract/valuation/marketdata/{DataFormatTests.java => DataParseTests.java} (62%) diff --git a/src/main/java/net/finmath/smartcontract/settlement/Settlement.java b/src/main/java/net/finmath/smartcontract/settlement/Settlement.java index c0820d976..5a27734cb 100644 --- a/src/main/java/net/finmath/smartcontract/settlement/Settlement.java +++ b/src/main/java/net/finmath/smartcontract/settlement/Settlement.java @@ -1,5 +1,10 @@ package net.finmath.smartcontract.settlement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import net.finmath.smartcontract.valuation.marketdata.data.LocalDateTimeAdapter; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; + import java.math.BigDecimal; import java.time.ZonedDateTime; import java.util.List; @@ -16,8 +21,14 @@ * * @author Christian Fries */ +@XmlRootElement public class Settlement { + + public Settlement(){ + + } + public enum SettlementType { INITIAL, REGULAR, @@ -38,7 +49,6 @@ public enum SettlementType { private ZonedDateTime settlementTime; - private String marketData; private BigDecimal settlementValue; @@ -52,6 +62,8 @@ public enum SettlementType { private BigDecimal settlementValueNext; + private MarketDataList marketData; + // Custom additional information (e.g. risk figures or szenario values) private Map info; @@ -63,5 +75,100 @@ public String getTradeId() { public void setTradeId(String tradeId) { this.tradeId = tradeId; } + + public SettlementType getSettlementType() { + return settlementType; + } + + public void setSettlementType(SettlementType settlementType) { + this.settlementType = settlementType; + } + + public String getCurrency() { + return currency; + } + + public void setCurrency(String currency) { + this.currency = currency; + } + + public BigDecimal getMarginValue() { + return marginValue; + } + + public void setMarginValue(BigDecimal marginValue) { + this.marginValue = marginValue; + } + + public List getMarginLimits() { + return marginLimits; + } + + public void setMarginLimits(List marginLimits) { + this.marginLimits = marginLimits; + } + @XmlJavaTypeAdapter(ZonedDateTimeAdapter.class) + public ZonedDateTime getSettlementTime() { + return settlementTime; + } + + public void setSettlementTime(ZonedDateTime settlementTime) { + this.settlementTime = settlementTime; + } + + public MarketDataList getMarketData() { + return marketData; + } + + public void setMarketData(MarketDataList marketData) { + this.marketData = marketData; + } + + public BigDecimal getSettlementValue() { + return settlementValue; + } + + public void setSettlementValue(BigDecimal settlementValue) { + this.settlementValue = settlementValue; + } + + public BigDecimal getSettlementValuePrevious() { + return settlementValuePrevious; + } + + public void setSettlementValuePrevious(BigDecimal settlementValuePrevious) { + this.settlementValuePrevious = settlementValuePrevious; + } + + public Settlement(String tradeId, SettlementType settlementType, String currency, BigDecimal marginValue, List marginLimits, ZonedDateTime settlementTime, MarketDataList marketData, BigDecimal settlementValue, BigDecimal settlementValuePrevious, ZonedDateTime settlementTimeNext, BigDecimal settlementValueNext) { + this.tradeId = tradeId; + this.settlementType = settlementType; + this.currency = currency; + this.marginValue = marginValue; + this.marginLimits = marginLimits; + this.settlementTime = settlementTime; + this.marketData = marketData; + this.settlementValue = settlementValue; + this.settlementValuePrevious = settlementValuePrevious; + this.settlementTimeNext = settlementTimeNext; + this.settlementValueNext = settlementValueNext; + } + + @XmlJavaTypeAdapter(ZonedDateTimeAdapter.class) + public ZonedDateTime getSettlementTimeNext() { + return settlementTimeNext; + } + + public void setSettlementTimeNext(ZonedDateTime settlementTimeNext) { + this.settlementTimeNext = settlementTimeNext; + } + + public BigDecimal getSettlementValueNext() { + return settlementValueNext; + } + + public void setSettlementValueNext(BigDecimal settlementValueNext) { + this.settlementValueNext = settlementValueNext; + } } diff --git a/src/main/java/net/finmath/smartcontract/settlement/ZonedDateTimeAdapter.java b/src/main/java/net/finmath/smartcontract/settlement/ZonedDateTimeAdapter.java new file mode 100644 index 000000000..026a4a7e3 --- /dev/null +++ b/src/main/java/net/finmath/smartcontract/settlement/ZonedDateTimeAdapter.java @@ -0,0 +1,24 @@ +package net.finmath.smartcontract.settlement; + +import jakarta.xml.bind.annotation.adapters.XmlAdapter; + +import java.text.ParseException; +import java.time.LocalDateTime; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; + +public class ZonedDateTimeAdapter extends XmlAdapter { + + + @Override + public String marshal(ZonedDateTime v) { + return v.format(DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss")); + } + + @Override + public ZonedDateTime unmarshal(String str) throws ParseException { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss"); + return ZonedDateTime.parse(str, formatter); + } + +} \ No newline at end of file diff --git a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java index 2960b476d..9bea47a5e 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java +++ b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java @@ -45,8 +45,8 @@ public static void main(String[] args) throws Exception { System.out.println("Using default endpoint " + url); } - final String marketDataStart = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.json").readAllBytes(), StandardCharsets.UTF_8); - final String marketDataEnd = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.json").readAllBytes(), StandardCharsets.UTF_8); + final String marketDataStart = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); + final String marketDataEnd = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml").readAllBytes(), StandardCharsets.UTF_8); final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); final LegacyMarginRequest marginRequest = new LegacyMarginRequest().marketDataStart(marketDataStart).marketDataEnd(marketDataEnd).tradeData(product).valuationDate(LocalDateTime.now().toString()); diff --git a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java index 98071662b..faf8b8b9f 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java @@ -64,18 +64,20 @@ public MarginCalculator() { public MarginResult getValue(String marketDataStart, String marketDataEnd, String productData) throws Exception { SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); - List marketDataSetsStart = CalibrationParserDataItems.getScenariosFromJsonString(marketDataStart); - Validate.isTrue(marketDataSetsStart.size() == 1, "Parameter marketDataStart should be only a single market data set"); + CalibrationDataset setStart = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketDataStart,productDescriptor.getMarketdataItemList()); + CalibrationDataset setEnd = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketDataEnd,productDescriptor.getMarketdataItemList()); +// List marketDataSetsStart = CalibrationParserDataItems.getScenariosFromJsonString(marketDataStart); +// Validate.isTrue(marketDataSetsStart.size() == 1, "Parameter marketDataStart should be only a single market data set"); - List marketDataSetsEnd = CalibrationParserDataItems.getScenariosFromJsonString(marketDataEnd); - Validate.isTrue(marketDataSetsEnd.size() == 1, "Parameter marketDataStart should be only a single market data set"); +// List marketDataSetsEnd = CalibrationParserDataItems.getScenariosFromJsonString(marketDataEnd); +// Validate.isTrue(marketDataSetsEnd.size() == 1, "Parameter marketDataStart should be only a single market data set"); String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); - LocalDateTime startDate = marketDataSetsStart.get(0).getDate(); - LocalDateTime endDate = marketDataSetsEnd.get(0).getDate(); - double value = calculateMargin(List.of(marketDataSetsStart.get(0), marketDataSetsEnd.get(0)), startDate, endDate, productDescriptor, underlying); + LocalDateTime startDate = setStart.getDate(); + LocalDateTime endDate = setEnd.getDate(); + double value = calculateMargin(List.of(setStart, setEnd), startDate, endDate, productDescriptor, underlying); String currency = "EUR"; LocalDateTime valuationDate = LocalDateTime.now(); @@ -133,14 +135,16 @@ public MarginResult getValue(MarketDataSet marketDataStart, MarketDataSet market public ValueResult getValue(String marketData, String productData) throws Exception { SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); - List marketDataSets = CalibrationParserDataItems.getScenariosFromJsonString(marketData); - Validate.isTrue(marketDataSets.size() == 1, "Parameter marketData should be only a single market data set"); +// List marketDataSets = CalibrationParserDataItems.getScenariosFromJsonString(marketData); +// Validate.isTrue(marketDataSets.size() == 1, "Parameter marketData should be only a single market data set"); String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); - LocalDateTime endDate = marketDataSets.get(0).getDate(); - double value = calculateMargin(marketDataSets, null, endDate, productDescriptor, underlying); +// LocalDateTime endDate = marketDataSets.get(0).getDate(); + + CalibrationDataset set = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketData,productDescriptor.getMarketdataItemList()); + double value = calculateMargin(List.of(set), null, set.getDate(), productDescriptor, underlying); String currency = "EUR"; LocalDateTime valuationDate = LocalDateTime.now(); diff --git a/src/main/java/net/finmath/smartcontract/valuation/implementation/reactive/ConditionalSettlementCalculator.java b/src/main/java/net/finmath/smartcontract/valuation/implementation/reactive/ConditionalSettlementCalculator.java index 18e47a8f4..57d74e681 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/implementation/reactive/ConditionalSettlementCalculator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/implementation/reactive/ConditionalSettlementCalculator.java @@ -31,14 +31,9 @@ public ValueResult apply(CalibrationDataset actualmarketdata) { String marketDataAsJson = actualmarketdata.serializeToJson(); try { if (previousmarketdata != null) { - String actualTime = CalibrationParserDataItems.getScenariosFromJsonString(marketDataAsJson).get(0).getDate().format(DateTimeFormatter.ofPattern("HH-mm-ss")); ValueResult marginResult = calculator.getValue(marketDataAsJson, sdcXML); - //if (Math.abs(marginResult.getValue().doubleValue()) > resultTriggerValue.doubleValue()) { - String previousTime = CalibrationParserDataItems.getScenariosFromJsonString(previousmarketdata).get(0).getDate().format(DateTimeFormatter.ofPattern("HH-mm-ss")); previousmarketdata = marketDataAsJson; finalResult = marginResult; -// System.out.println("ConditionalMarginCalculator: PreviousTime: " + previousTime + " - ActualTime: " + actualTime + " - SettlementValue: " + marginResult.getValue().doubleValue() ); - //} } else previousmarketdata = marketDataAsJson; diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java index 311748184..26a64a5f6 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java @@ -27,7 +27,7 @@ public static void main(String[] args) throws Exception { List mdItemList = sdc.getMarketdataItemList(); /* Load connection properties*/ - String connectionPropertiesFile = ""; + String connectionPropertiesFile = ""; Properties properties = new Properties(); properties.load(new FileInputStream(connectionPropertiesFile)); @@ -51,7 +51,7 @@ public void accept(MarketDataList s) throws Throwable { System.out.println("Consumer MarketDataStorage: Stored Market Data at: "); System.out.println(socket.isOpen()); - File file = new File("C:\\Temp\\marketdata.xml"); + File file = new File("md_testset0.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java index aeeedd6ad..800a3cc0d 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java @@ -59,9 +59,11 @@ public CalibrationDataset getClonedFixingsAdded(Set newFixi } public MarketDataList toMarketDataList(){ - List marketDataPointList = calibrationDataItems.stream().map(item->new MarketDataPoint(item.getSpec().getKey(),item.getSpec().getCurveName(),item.getSpec().getProductName(),item.getMaturity(), item.getQuote(), item.getDateTime())).collect(Collectors.toList()); + List marketDataPointList = calibrationDataItems.stream().map(item->new MarketDataPoint(item.getSpec().getKey(), item.getQuote(), item.getDateTime())).toList(); + List fixings = fixingDataItems.stream().map(item->new MarketDataPoint(item.getSpec().getKey(), item.getQuote(), item.getDateTime())).toList(); MarketDataList marketDataList = new MarketDataList(); - marketDataPointList.stream().forEach(point->marketDataList.add(point)); + marketDataPointList.forEach(marketDataList::add); + fixings.forEach(marketDataList::add); return marketDataList; } @@ -116,7 +118,10 @@ public Stream getDataAsCalibrationDataPointStream(final } public Set getDataPoints() { - return this.calibrationDataItems; + Set allItems = new HashSet<>(); + allItems.addAll(this.calibrationDataItems); + allItems.addAll(this.fixingDataItems); + return allItems; } public LocalDateTime getDate() { diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java index 9bb8f5193..98f997eac 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java @@ -1,9 +1,17 @@ package net.finmath.smartcontract.valuation.marketdata.curvecalibration; import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.Unmarshaller; +import net.finmath.smartcontract.model.ValueResult; +import net.finmath.smartcontract.valuation.implementation.MarginCalculator; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; import org.slf4j.LoggerFactory; +import java.io.FileInputStream; import java.io.IOException; +import java.io.StringReader; import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets; import java.time.LocalDate; @@ -68,7 +76,7 @@ private Optional parseDatapointIfPresent(final Calibrat * @throws IOException File not found * @throws UnsupportedEncodingException UnsupportedEncodingException */ - public static final List getScenariosFromJsonFile(final String fileName) throws IOException { + public static List getScenariosFromJsonFile(final String fileName) throws IOException { final String content; try { @@ -82,6 +90,7 @@ public static final List getScenariosFromJsonFile(final Stri } + /** * Static method which parses a json file from its string content and converts it to a list of market data scenarios * @@ -90,7 +99,7 @@ public static final List getScenariosFromJsonFile(final Stri * @throws IOException File not found * @throws UnsupportedEncodingException UnsupportedEncodingException */ - public static final List getScenariosFromJsonString(final String jsonString) throws UnsupportedEncodingException, IOException { + public static List getScenariosFromJsonString(final String jsonString) throws UnsupportedEncodingException, IOException { final String content; content = jsonString; @@ -98,6 +107,25 @@ public static final List getScenariosFromJsonString(final St } + public static CalibrationDataset getCalibrationDataSetFromXML(final String xmlString, List dataSpecs) throws Exception { + StringReader reader = new StringReader(xmlString); + JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); + Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); + MarketDataList marketDataList = (MarketDataList) jaxbUnmarshaller.unmarshal(reader); + + Set calibrationDataItems = new LinkedHashSet<>(); + + dataSpecs.stream().forEach(spec-> { + /* Can be more than one, if we have data points of type fixing*/ + Set calibrationDataItemSet = marketDataList.getPoints().stream().filter(marketDataPoint -> marketDataPoint.getId().equals(spec.getKey())).map(point-> new CalibrationDataItem(spec, point.getValue(), point.getTimeStamp())).collect(Collectors.toSet()); + calibrationDataItems.addAll(calibrationDataItemSet); + }); + + CalibrationDataset set = new CalibrationDataset(calibrationDataItems, marketDataList.getRequestTimeStamp()); + + return set; + } + /** * Static method which parses a csv file - using jackson csv mapper - and converts it to a list of market data scenarios * @@ -175,7 +203,7 @@ private static Set getFixingDataItemSet(final String curveK curvePointEntry -> { LocalDate fixingDate = LocalDate.parse(curvePointEntry.getKey(), DateTimeFormatter.ofPattern("yyyy-MM-dd")); String specKey = curveKey + "_" + entry.getKey() + "_" + curvePointEntry.getKey(); - CalibrationDataItem.Spec spec = new CalibrationDataItem.Spec(specKey, curveKey, entry.getKey(), "0D"); + CalibrationDataItem.Spec spec = new CalibrationDataItem.Spec(specKey, curveKey, entry.getKey(), "1D"); CalibrationDataItem dataItem = new CalibrationDataItem(spec, curvePointEntry.getValue(), fixingDate.atStartOfDay()); return dataItem; })).collect(Collectors.toCollection(LinkedHashSet::new)); diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataList.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataList.java index 54d0e73db..070f28467 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataList.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataList.java @@ -65,7 +65,7 @@ public String serializeToJson() { } } - CalibrationDataset mapToCalibrationDataSet(){ + public CalibrationDataset mapToCalibrationDataSet(){ return null; } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataPoint.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataPoint.java index 976923b8d..41db4173e 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataPoint.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataPoint.java @@ -7,26 +7,21 @@ import java.time.LocalDateTime; @XmlRootElement -@XmlType(propOrder = {"id","curveKey","productKey","maturityKey","quoteValue","timeStamp"}) -@JsonPropertyOrder({ "id","curveKey","productKey","maturityKey","quoteValue","timeStamp" }) +@XmlType(propOrder = {"id","value","timeStamp"}) +@JsonPropertyOrder({ "id","value","timeStamp" }) public class MarketDataPoint { private LocalDateTime timeStamp; private String id; - private String curveKey; - private String productKey; - private String maturityKey; - private Double quoteValue; + private Double value; - public MarketDataPoint(String id, String curveKey, String productKey, String maturityKey, Double quoteValue, LocalDateTime timeStamp) { + + public MarketDataPoint(String id, Double value, LocalDateTime timeStamp) { this.id = id; - this.curveKey = curveKey; - this.productKey = productKey; - this.maturityKey=maturityKey; - this.quoteValue = quoteValue; + this.value = value; this.timeStamp = timeStamp; } @@ -39,40 +34,20 @@ public String getId() { return id; } - public String getCurveKey() { - return curveKey; - } - public String getProductKey() { - return productKey; - } - - public String getMaturityKey() { - return maturityKey; - } - public Double getQuoteValue() { - return quoteValue; + public Double getValue() { + return value; } public void setId(String id) { this.id = id; } - public void setCurveKey(String curveKey) { - this.curveKey = curveKey; - } - - public void setProductKey(String productKey) { - this.productKey = productKey; - } - public void setMaturityKey(String maturityKey) { - this.maturityKey = maturityKey; - } - public void setQuoteValue(Double quoteValue) { - this.quoteValue = quoteValue; + public void setValue(Double value) { + this.value = value; } @XmlJavaTypeAdapter(LocalDateTimeAdapter.class) public LocalDateTime getTimeStamp() { diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java index 11bd9966e..e9d323517 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java @@ -11,6 +11,7 @@ import java.time.LocalDateTime; import java.time.Period; +import java.util.List; import java.util.Set; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; @@ -25,9 +26,9 @@ public class MarketDataGeneratorRandomFeed implements MarketDataGeneratorInterfa int simulationFrequencySec; - public MarketDataGeneratorRandomFeed(Period processingPeriod, String referenceMarketDataJson) throws Exception { + public MarketDataGeneratorRandomFeed(Period processingPeriod, String referenceMarketDataStr, List mdSpecs) throws Exception { this.endTime = LocalDateTime.now().plus(processingPeriod); - referenceSet = CalibrationParserDataItems.getScenariosFromJsonString(referenceMarketDataJson).get(0); + referenceSet = CalibrationParserDataItems.getCalibrationDataSetFromXML(referenceMarketDataStr,mdSpecs); simulationFrequencySec = 3; } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java index f2237c266..f1a3ae541 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java @@ -127,7 +127,7 @@ public void onTextMessage(WebSocket websocket, String message) throws Exception LocalDateTime adjustedTime = this.adjustTimestampForOvernightFixing(localDateTime,ric); CalibrationDataItem.Spec spec = this.getSpec(ric); - MarketDataPoint dataPoint = new MarketDataPoint(spec.getKey(),spec.getCurveName(),spec.getProductName(),spec.getMaturity(),quoteScaled,adjustedTime); + MarketDataPoint dataPoint = new MarketDataPoint(spec.getKey(),quoteScaled,adjustedTime); this.marketDataList.add(dataPoint); } diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java index 03be26a7f..2bed149fc 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java @@ -132,7 +132,7 @@ public ResponseEntity testProductValue(MultipartFile tradeData) { ValueResult value = null; try { MarginCalculator marginCalculator = new MarginCalculator(); - final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.json").readAllBytes(), StandardCharsets.UTF_8); + final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); value = marginCalculator.getValue(marketData, new String(tradeData.getInputStream().readAllBytes(), StandardCharsets.UTF_8)); logger.info(value.toString()); return ResponseEntity.ok(value); diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_newformat_1.json b/src/main/resources/net/finmath/smartcontract/valuation/client/legacy/md_testset_newformat_1.json similarity index 100% rename from src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_newformat_1.json rename to src/main/resources/net/finmath/smartcontract/valuation/client/legacy/md_testset_newformat_1.json diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_with_fixings.json b/src/main/resources/net/finmath/smartcontract/valuation/client/legacy/md_testset_with_fixings.json similarity index 100% rename from src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_with_fixings.json rename to src/main/resources/net/finmath/smartcontract/valuation/client/legacy/md_testset_with_fixings.json diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/marketdata.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset0.xml similarity index 100% rename from src/main/resources/net/finmath/smartcontract/valuation/client/marketdata.xml rename to src/main/resources/net/finmath/smartcontract/valuation/client/md_testset0.xml diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset1.json b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset1.json deleted file mode 100644 index 3807f58e2..000000000 --- a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset1.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "20230131-143523": { - "Quotes": { - "Euribor6M": { - "Deposit": { - "6M": 0.03 - }, - "Forward-Rate-Agreement": { - "7M": 0.03202, - "8M": 0.03359, - "9M": 0.03458, - "10M": 0.03538, - "12M": 0.03565, - "15M": 0.03471, - "18M": 0.03323 - }, - "Swap-Rate": { - "10Y": 0.028674999999999996, - "11Y": 0.02872, - "12Y": 0.028739999999999998, - "13Y": 0.02872, - "14Y": 0.028419999999999997, - "15Y": 0.02849, - "16Y": 0.028259999999999997, - "17Y": 0.027960000000000002, - "18Y": 0.027610000000000003, - "19Y": 0.02724, - "20Y": 0.026855000000000004, - "21Y": 0.026549999999999997, - "22Y": 0.02618, - "23Y": 0.0258, - "24Y": 0.02535, - "25Y": 0.025004999999999996, - "26Y": 0.024700000000000003, - "27Y": 0.02435, - "28Y": 0.02403, - "29Y": 0.02373, - "2Y": 0.03281, - "30Y": 0.023405, - "3Y": 0.03109, - "40Y": 0.02093, - "4Y": 0.029930000000000002, - "50Y": 0.01899, - "5Y": 0.029299999999999996, - "6Y": 0.028920000000000005, - "7Y": 0.0287, - "8Y": 0.028609999999999997, - "9Y": 0.028609999999999997 - } - }, - "ESTR": { - "Deposit": { - "1D": 1.904 - }, - "Swap-Rate": { - "10Y": 0.02609, - "11Y": 0.02624, - "12Y": 0.026325, - "14D": 0.021920000000000002, - "15M": 0.031799999999999995, - "15Y": 0.026365, - "18M": 0.031470000000000005, - "1M": 0.023009500000000002, - "1Y": 0.03175, - "20Y": 0.02535, - "21D": 0.022648, - "21M": 0.030990000000000004, - "25Y": 0.023905000000000003, - "2M": 0.024499, - "2Y": 0.03049, - "30Y": 0.022664999999999998, - "3M": 0.025866499999999997, - "3Y": 0.02852, - "4M": 0.0271695, - "4Y": 0.02732, - "5M": 0.028263999999999997, - "5Y": 0.026605, - "6M": 0.0291575, - "6Y": 0.026165000000000004, - "7D": 0.019761, - "7M": 0.03, - "7Y": 0.025925000000000004, - "8M": 0.030505, - "8Y": 0.025854999999999996, - "9M": 0.0309715, - "9Y": 0.025905 - } - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset1.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset1.xml new file mode 100644 index 000000000..5860a90ab --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset1.xml @@ -0,0 +1,354 @@ + + + 20230131-143523 + + EURESTSW= + 0.019761 + 20230131-143523 + + + EUREST2W= + 0.021920000000000002 + 20230131-143523 + + + EUREST3W= + 0.022648 + 20230131-143523 + + + EUREST1M= + 0.023009500000000002 + 20230131-143523 + + + EUREST2M= + 0.024499 + 20230131-143523 + + + EUREST3M= + 0.025866499999999997 + 20230131-143523 + + + EUREST4M= + 0.0271695 + 20230131-143523 + + + EUREST5M= + 0.028263999999999997 + 20230131-143523 + + + EUREST6M= + 0.0291575 + 20230131-143523 + + + EUR6MD= + 0.03 + 20230131-143523 + + + EUREST7M= + 0.03 + 20230131-143523 + + + EUR1X7F= + 0.03202 + 20230131-143523 + + + EUREST8M= + 0.030505 + 20230131-143523 + + + EUR2X8F= + 0.03359 + 20230131-143523 + + + EUR3X9F= + 0.03458 + 20230131-143523 + + + EUREST9M= + 0.0309715 + 20230131-143523 + + + EUR4X10F= + 0.03538 + 20230131-143523 + + + EUR6X12F= + 0.03565 + 20230131-143523 + + + EUREST1Y= + 0.03175 + 20230131-143523 + + + EUREST15M= + 0.031799999999999995 + 20230131-143523 + + + EUR9X15F= + 0.03471 + 20230131-143523 + + + EUREST18M= + 0.031470000000000005 + 20230131-143523 + + + EUR12X18F= + 0.03323 + 20230131-143523 + + + EUREST21M= + 0.030990000000000004 + 20230131-143523 + + + EURAB6E2Y= + 0.03281 + 20230131-143523 + + + EUREST2Y= + 0.03049 + 20230131-143523 + + + EURAB6E3Y= + 0.03109 + 20230131-143523 + + + EUREST3Y= + 0.02852 + 20230131-143523 + + + EURAB6E4Y= + 0.029930000000000002 + 20230131-143523 + + + EUREST4Y= + 0.02732 + 20230131-143523 + + + EURAB6E5Y= + 0.029299999999999996 + 20230131-143523 + + + EUREST5Y= + 0.026605 + 20230131-143523 + + + EURAB6E6Y= + 0.028920000000000005 + 20230131-143523 + + + EUREST6Y= + 0.026165000000000004 + 20230131-143523 + + + EUREST7Y= + 0.025925000000000004 + 20230131-143523 + + + EURAB6E7Y= + 0.0287 + 20230131-143523 + + + EUREST8Y= + 0.025854999999999996 + 20230131-143523 + + + EURAB6E8Y= + 0.028609999999999997 + 20230131-143523 + + + EURAB6E9Y= + 0.028609999999999997 + 20230131-143523 + + + EUREST9Y= + 0.025905 + 20230131-143523 + + + EUREST10Y= + 0.02609 + 20230131-143523 + + + EURAB6E10Y= + 0.028674999999999996 + 20230131-143523 + + + EUREST11Y= + 0.02624 + 20230131-143523 + + + EURAB6E11Y= + 0.02872 + 20230131-143523 + + + EUREST12Y= + 0.026325 + 20230131-143523 + + + EURAB6E12Y= + 0.028739999999999998 + 20230131-143523 + + + EURAB6E13Y= + 0.02872 + 20230131-143523 + + + EURAB6E14Y= + 0.028419999999999997 + 20230131-143523 + + + EUREST15Y= + 0.026365 + 20230131-143523 + + + EURAB6E15Y= + 0.02849 + 20230131-143523 + + + EURAB6E16Y= + 0.028259999999999997 + 20230131-143523 + + + EURAB6E17Y= + 0.027960000000000002 + 20230131-143523 + + + EURAB6E18Y= + 0.027610000000000003 + 20230131-143523 + + + EURAB6E19Y= + 0.02724 + 20230131-143523 + + + EUREST20Y= + 0.02535 + 20230131-143523 + + + EURAB6E20Y= + 0.026855000000000004 + 20230131-143523 + + + EURAB6E21Y= + 0.026549999999999997 + 20230131-143523 + + + EURAB6E22Y= + 0.02618 + 20230131-143523 + + + EURAB6E23Y= + 0.0258 + 20230131-143523 + + + EURAB6E24Y= + 0.02535 + 20230131-143523 + + + EURAB6E25Y= + 0.025004999999999996 + 20230131-143523 + + + EUREST25Y= + 0.023905000000000003 + 20230131-143523 + + + EURAB6E26Y= + 0.024700000000000003 + 20230131-143523 + + + EURAB6E27Y= + 0.02435 + 20230131-143523 + + + EURAB6E28Y= + 0.02403 + 20230131-143523 + + + EURAB6E29Y= + 0.02373 + 20230131-143523 + + + EUREST30Y= + 0.022664999999999998 + 20230131-143523 + + + EURAB6E30Y= + 0.023405 + 20230131-143523 + + + EURAB6E40Y= + 0.02093 + 20230131-143523 + + + EURAB6E50Y= + 0.01899 + 20230131-143523 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset2.json b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset2.json deleted file mode 100644 index 0aca20493..000000000 --- a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset2.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "20220908-170110": { - "Quotes": { - "Euribor6M": { - "Deposit": { - "6M": 0.01875 - }, - "Forward-Rate-Agreement": { - "9M": 0.02767, - "8M": 0.025230000000000002, - "18M": 0.03161, - "7M": 0.021630000000000003, - "15M": 0.03327, - "12M": 0.031920000000000004, - "10M": 0.02924 - }, - "Swap-Rate": { - "9Y": 0.028579999999999998, - "7Y": 0.02878, - "5Y": 0.02927, - "3Y": 0.0297, - "18Y": 0.026580000000000003, - "28Y": 0.022090000000000002, - "16Y": 0.027469999999999998, - "26Y": 0.0229, - "14Y": 0.028120000000000003, - "24Y": 0.02373, - "12Y": 0.028399999999999998, - "22Y": 0.024569999999999998, - "10Y": 0.02857, - "20Y": 0.025570000000000002, - "30Y": 0.021349999999999997, - "40Y": 0.01891, - "50Y": 0.01711, - "8Y": 0.02864, - "6Y": 0.02902, - "4Y": 0.029459999999999997, - "2Y": 0.029539999999999997, - "19Y": 0.026079999999999996, - "29Y": 0.021709999999999997, - "17Y": 0.02705, - "27Y": 0.022489999999999996, - "15Y": 0.02782, - "25Y": 0.0233, - "13Y": 0.028300000000000002, - "23Y": 0.024169999999999997, - "11Y": 0.028520000000000004, - "21Y": 0.02511 - } - }, - "ESTR": { - "Deposit": { - "1D": 0.661 - }, - "Swap-Rate": { - "9Y": 0.02565, - "14D": 0.0065595, - "7Y": 0.025774999999999996, - "5Y": 0.026304999999999995, - "3Y": 0.026760000000000003, - "18M": 0.0258, - "1Y": 0.023434999999999997, - "8M": 0.01992, - "6M": 0.017040000000000003, - "12Y": 0.025595, - "4M": 0.01361, - "10Y": 0.025670000000000002, - "20Y": 0.023715, - "2M": 0.009576, - "30Y": 0.020489999999999998, - "8Y": 0.02569, - "6Y": 0.026070000000000003, - "4Y": 0.026494999999999998, - "21D": 0.006567000000000001, - "2Y": 0.02681, - "15M": 0.024894999999999997, - "7D": 0.0064125, - "21M": 0.02642, - "9M": 0.020934999999999995, - "15Y": 0.02535, - "7M": 0.0186, - "25Y": 0.022010000000000002, - "5M": 0.01552, - "11Y": 0.02568, - "3M": 0.011339000000000002, - "1M": 0.006572 - } - } - } - } -} diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset2.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset2.xml new file mode 100644 index 000000000..701d0a114 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset2.xml @@ -0,0 +1,354 @@ + + + 20220908-170110 + + EURESTSW= + 0.0064125 + 20220908-170110 + + + EUREST2W= + 0.0065595 + 20220908-170110 + + + EUREST3W= + 0.006567000000000001 + 20220908-170110 + + + EUREST1M= + 0.006572 + 20220908-170110 + + + EUREST2M= + 0.009576 + 20220908-170110 + + + EUREST3M= + 0.011339000000000002 + 20220908-170110 + + + EUREST4M= + 0.01361 + 20220908-170110 + + + EUREST5M= + 0.01552 + 20220908-170110 + + + EUR6MD= + 0.01875 + 20220908-170110 + + + EUREST6M= + 0.017040000000000003 + 20220908-170110 + + + EUR1X7F= + 0.021630000000000003 + 20220908-170110 + + + EUREST7M= + 0.0186 + 20220908-170110 + + + EUR2X8F= + 0.025230000000000002 + 20220908-170110 + + + EUREST8M= + 0.01992 + 20220908-170110 + + + EUR3X9F= + 0.02767 + 20220908-170110 + + + EUREST9M= + 0.020934999999999995 + 20220908-170110 + + + EUR4X10F= + 0.02924 + 20220908-170110 + + + EUR6X12F= + 0.031920000000000004 + 20220908-170110 + + + EUREST1Y= + 0.023434999999999997 + 20220908-170110 + + + EUREST15M= + 0.024894999999999997 + 20220908-170110 + + + EUR9X15F= + 0.03327 + 20220908-170110 + + + EUR12X18F= + 0.03161 + 20220908-170110 + + + EUREST18M= + 0.0258 + 20220908-170110 + + + EUREST21M= + 0.02642 + 20220908-170110 + + + EUREST2Y= + 0.02681 + 20220908-170110 + + + EURAB6E2Y= + 0.029539999999999997 + 20220908-170110 + + + EURAB6E3Y= + 0.0297 + 20220908-170110 + + + EUREST3Y= + 0.026760000000000003 + 20220908-170110 + + + EUREST4Y= + 0.026494999999999998 + 20220908-170110 + + + EURAB6E4Y= + 0.029459999999999997 + 20220908-170110 + + + EUREST5Y= + 0.026304999999999995 + 20220908-170110 + + + EURAB6E5Y= + 0.02927 + 20220908-170110 + + + EUREST6Y= + 0.026070000000000003 + 20220908-170110 + + + EURAB6E6Y= + 0.02902 + 20220908-170110 + + + EUREST7Y= + 0.025774999999999996 + 20220908-170110 + + + EURAB6E7Y= + 0.02878 + 20220908-170110 + + + EURAB6E8Y= + 0.02864 + 20220908-170110 + + + EUREST8Y= + 0.02569 + 20220908-170110 + + + EURAB6E9Y= + 0.028579999999999998 + 20220908-170110 + + + EUREST9Y= + 0.02565 + 20220908-170110 + + + EUREST10Y= + 0.025670000000000002 + 20220908-170110 + + + EURAB6E10Y= + 0.02857 + 20220908-170110 + + + EURAB6E11Y= + 0.028520000000000004 + 20220908-170110 + + + EUREST11Y= + 0.02568 + 20220908-170110 + + + EURAB6E12Y= + 0.028399999999999998 + 20220908-170110 + + + EUREST12Y= + 0.025595 + 20220908-170110 + + + EURAB6E13Y= + 0.028300000000000002 + 20220908-170110 + + + EURAB6E14Y= + 0.028120000000000003 + 20220908-170110 + + + EURAB6E15Y= + 0.02782 + 20220908-170110 + + + EUREST15Y= + 0.02535 + 20220908-170110 + + + EURAB6E16Y= + 0.027469999999999998 + 20220908-170110 + + + EURAB6E17Y= + 0.02705 + 20220908-170110 + + + EURAB6E18Y= + 0.026580000000000003 + 20220908-170110 + + + EURAB6E19Y= + 0.026079999999999996 + 20220908-170110 + + + EURAB6E20Y= + 0.025570000000000002 + 20220908-170110 + + + EUREST20Y= + 0.023715 + 20220908-170110 + + + EURAB6E21Y= + 0.02511 + 20220908-170110 + + + EURAB6E22Y= + 0.024569999999999998 + 20220908-170110 + + + EURAB6E23Y= + 0.024169999999999997 + 20220908-170110 + + + EURAB6E24Y= + 0.02373 + 20220908-170110 + + + EURAB6E25Y= + 0.0233 + 20220908-170110 + + + EUREST25Y= + 0.022010000000000002 + 20220908-170110 + + + EURAB6E26Y= + 0.0229 + 20220908-170110 + + + EURAB6E27Y= + 0.022489999999999996 + 20220908-170110 + + + EURAB6E28Y= + 0.022090000000000002 + 20220908-170110 + + + EURAB6E29Y= + 0.021709999999999997 + 20220908-170110 + + + EURAB6E30Y= + 0.021349999999999997 + 20220908-170110 + + + EUREST30Y= + 0.020489999999999998 + 20220908-170110 + + + EURAB6E40Y= + 0.01891 + 20220908-170110 + + + EURAB6E50Y= + 0.01711 + 20220908-170110 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml new file mode 100644 index 000000000..5e527fc59 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml @@ -0,0 +1,404 @@ + + + 20230131-143523 + + EURESTSW= + 0.02397 + 20230131-143523 + + + EUREST2W= + 0.02398 + 20230131-143523 + + + EUREST3W= + 0.02422 + 20230131-143523 + + + EUREST1M= + 0.02583 + 20230131-143523 + + + EUREST2M= + 0.02731 + 20230131-143523 + + + EUREST3M= + 0.02888 + 20230131-143523 + + + EUREST4M= + 0.03019 + 20230131-143523 + + + EUREST5M= + 0.03128 + 20230131-143523 + + + EUREST6M= + 0.03239 + 20230131-143523 + + + EUR6MD= + 0.03445 + 20230131-143523 + + + EUREST7M= + 0.03311 + 20230131-143523 + + + EUR1X7F= + 0.03499 + 20230131-143523 + + + EUR2X8F= + 0.03659 + 20230131-143523 + + + EUREST8M= + 0.03379 + 20230131-143523 + + + EUREST9M= + 0.03437 + 20230131-143523 + + + EUR3X9F= + 0.0381 + 20230131-143523 + + + EUR4X10F= + 0.03883 + 20230131-143523 + + + EUREST1Y= + 0.03558 + 20230131-143523 + + + EUR6X12F= + 0.03988 + 20230131-143523 + + + EUREST15M= + 0.03596 + 20230131-143523 + + + EUR9X15F= + 0.03993 + 20230131-143523 + + + EUR12X18F= + 0.03908 + 20230131-143523 + + + EUREST18M= + 0.03607 + 20230131-143523 + + + EUREST21M= + 0.03595 + 20230131-143523 + + + EURAB6E2Y= + 0.03775 + 20230131-143523 + + + EUREST2Y= + 0.03568 + 20230131-143523 + + + EUREST3Y= + 0.03395 + 20230131-143523 + + + EURAB6E3Y= + 0.03624 + 20230131-143523 + + + EUREST4Y= + 0.03247 + 20230131-143523 + + + EURAB6E4Y= + 0.03482 + 20230131-143523 + + + EUREST5Y= + 0.03148 + 20230131-143523 + + + EURAB6E5Y= + 0.03393 + 20230131-143523 + + + EUREST6Y= + 0.0309 + 20230131-143523 + + + EURAB6E6Y= + 0.03333 + 20230131-143523 + + + EURAB6E7Y= + 0.03294 + 20230131-143523 + + + EUREST7Y= + 0.03051 + 20230131-143523 + + + EUREST8Y= + 0.03032 + 20230131-143523 + + + EURAB6E8Y= + 0.03272 + 20230131-143523 + + + EURAB6E9Y= + 0.0326 + 20230131-143523 + + + EUREST9Y= + 0.03025 + 20230131-143523 + + + EURAB6E10Y= + 0.03253 + 20230131-143523 + + + EUREST10Y= + 0.03026 + 20230131-143523 + + + EURAB6E11Y= + 0.03251 + 20230131-143523 + + + EUREST11Y= + 0.03032 + 20230131-143523 + + + EURAB6E12Y= + 0.03245 + 20230131-143523 + + + EUREST12Y= + 0.03037 + 20230131-143523 + + + EURAB6E13Y= + 0.03244 + 20230131-143523 + + + EURAB6E14Y= + 0.03236 + 20230131-143523 + + + EURAB6E15Y= + 0.03221 + 20230131-143523 + + + EUREST15Y= + 0.03036 + 20230131-143523 + + + EURAB6E16Y= + 0.03198 + 20230131-143523 + + + EURAB6E17Y= + 0.03169 + 20230131-143523 + + + EURAB6E18Y= + 0.03135 + 20230131-143523 + + + EURAB6E19Y= + 0.03098 + 20230131-143523 + + + EURAB6E20Y= + 0.0306 + 20230131-143523 + + + EUREST20Y= + 0.02924 + 20230131-143523 + + + EURAB6E21Y= + 0.03023 + 20230131-143523 + + + EURAB6E22Y= + 0.02986 + 20230131-143523 + + + EURAB6E23Y= + 0.0295 + 20230131-143523 + + + EURAB6E24Y= + 0.02913 + 20230131-143523 + + + EURAB6E25Y= + 0.0288 + 20230131-143523 + + + EUREST25Y= + 0.02783 + 20230131-143523 + + + EURAB6E26Y= + 0.02846 + 20230131-143523 + + + EURAB6E27Y= + 0.02813 + 20230131-143523 + + + EURAB6E28Y= + 0.02781 + 20230131-143523 + + + EURAB6E29Y= + 0.0275 + 20230131-143523 + + + EUREST30Y= + 0.02657 + 20230131-143523 + + + EURAB6E30Y= + 0.02722 + 20230131-143523 + + + EURAB6E40Y= + 0.02503 + 20230131-143523 + + + EURAB6E50Y= + 0.02339 + 20230131-143523 + + + EUROSTR= + 0.0235 + 20221214-000000 + + + EURIBOR6MD= + 0.0267 + 20221214-000000 + + + EUROSTR= + 0.0235 + 20221215-000000 + + + EURIBOR6MD= + 0.0275 + 20221215-000000 + + + EUROSTR= + 0.0235 + 20221218-000000 + + + EURIBOR6MD= + 0.0282 + 20221218-000000 + + + EUROSTR= + 0.0235 + 20221219-000000 + + + EURIBOR6MD= + 0.0285 + 20221219-000000 + + + EUROSTR= + 0.0235 + 20221220-000000 + + + EURIBOR6MD= + 0.0289 + 20221220-000000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/nf_md_20230711-123529.json b/src/main/resources/net/finmath/smartcontract/valuation/client/nf_md_20230711-123529.json deleted file mode 100644 index a68399da2..000000000 --- a/src/main/resources/net/finmath/smartcontract/valuation/client/nf_md_20230711-123529.json +++ /dev/null @@ -1,510 +0,0 @@ -{ - "requestTimestamp": "2023-07-11T12:35:55Z", - "values": [ - { - "dataTimestamp": "2023-07-11T12:35:29Z", - "symbol": "EUR12X18F=", - "value": 0.038579999999999996 - }, - { - "dataTimestamp": "2023-07-11T12:35:25Z", - "symbol": "EUR1X7F=", - "value": 0.04032 - }, - { - "dataTimestamp": "2023-07-11T12:35:37Z", - "symbol": "EUR2X8F=", - "value": 0.0409 - }, - { - "dataTimestamp": "2023-07-11T12:35:37Z", - "symbol": "EUR3X9F=", - "value": 0.04117 - }, - { - "dataTimestamp": "2023-07-11T12:35:37Z", - "symbol": "EUR4X10F=", - "value": 0.04131 - }, - { - "dataTimestamp": "2023-07-11T12:34:55Z", - "symbol": "EUR6MD=", - "value": 0.0388 - }, - { - "dataTimestamp": "2023-07-11T12:35:39Z", - "symbol": "EUR6X12F=", - "value": 0.041280000000000004 - }, - { - "dataTimestamp": "2023-07-11T12:35:39Z", - "symbol": "EUR9X15F=", - "value": 0.04029 - }, - { - "dataTimestamp": "2023-07-11T12:35:32Z", - "symbol": "EURAB6E10Y=", - "value": 0.03236 - }, - { - "dataTimestamp": "2023-07-11T12:35:32Z", - "symbol": "EURAB6E11Y=", - "value": 0.03229 - }, - { - "dataTimestamp": "2023-07-11T12:35:32Z", - "symbol": "EURAB6E12Y=", - "value": 0.03223 - }, - { - "dataTimestamp": "2023-07-11T12:35:32Z", - "symbol": "EURAB6E13Y=", - "value": 0.032170000000000004 - }, - { - "dataTimestamp": "2023-07-11T12:35:32Z", - "symbol": "EURAB6E14Y=", - "value": 0.03206 - }, - { - "dataTimestamp": "2023-07-11T12:35:32Z", - "symbol": "EURAB6E15Y=", - "value": 0.03189 - }, - { - "dataTimestamp": "2023-07-11T12:35:32Z", - "symbol": "EURAB6E16Y=", - "value": 0.03159 - }, - { - "dataTimestamp": "2023-07-11T12:35:32Z", - "symbol": "EURAB6E17Y=", - "value": 0.0313 - }, - { - "dataTimestamp": "2023-07-11T12:35:32Z", - "symbol": "EURAB6E18Y=", - "value": 0.03101 - }, - { - "dataTimestamp": "2023-07-11T12:35:32Z", - "symbol": "EURAB6E19Y=", - "value": 0.03072 - }, - { - "dataTimestamp": "2023-07-11T12:35:31Z", - "symbol": "EURAB6E20Y=", - "value": 0.030469999999999997 - }, - { - "dataTimestamp": "2023-07-11T12:35:29Z", - "symbol": "EURAB6E21Y=", - "value": 0.03013 - }, - { - "dataTimestamp": "2023-07-11T12:35:29Z", - "symbol": "EURAB6E22Y=", - "value": 0.02981 - }, - { - "dataTimestamp": "2023-07-11T12:35:30Z", - "symbol": "EURAB6E23Y=", - "value": 0.02943 - }, - { - "dataTimestamp": "2023-07-11T12:35:01Z", - "symbol": "EURAB6E24Y=", - "value": 0.029130000000000003 - }, - { - "dataTimestamp": "2023-07-11T12:35:32Z", - "symbol": "EURAB6E25Y=", - "value": 0.0288 - }, - { - "dataTimestamp": "2023-07-11T12:35:30Z", - "symbol": "EURAB6E26Y=", - "value": 0.02851 - }, - { - "dataTimestamp": "2023-07-11T12:35:32Z", - "symbol": "EURAB6E27Y=", - "value": 0.0282 - }, - { - "dataTimestamp": "2023-07-11T12:35:31Z", - "symbol": "EURAB6E28Y=", - "value": 0.02794 - }, - { - "dataTimestamp": "2023-07-11T12:35:30Z", - "symbol": "EURAB6E29Y=", - "value": 0.027679999999999996 - }, - { - "dataTimestamp": "2023-07-11T12:35:24Z", - "symbol": "EURAB6E2Y=", - "value": 0.03954 - }, - { - "dataTimestamp": "2023-07-11T12:35:31Z", - "symbol": "EURAB6E30Y=", - "value": 0.027474999999999996 - }, - { - "dataTimestamp": "2023-07-11T12:35:29Z", - "symbol": "EURAB6E3Y=", - "value": 0.03726 - }, - { - "dataTimestamp": "2023-07-11T12:35:31Z", - "symbol": "EURAB6E40Y=", - "value": 0.02553 - }, - { - "dataTimestamp": "2023-07-11T12:35:25Z", - "symbol": "EURAB6E4Y=", - "value": 0.0355 - }, - { - "dataTimestamp": "2023-07-11T12:35:31Z", - "symbol": "EURAB6E50Y=", - "value": 0.02406 - }, - { - "dataTimestamp": "2023-07-11T12:35:28Z", - "symbol": "EURAB6E5Y=", - "value": 0.03436 - }, - { - "dataTimestamp": "2023-07-11T12:35:30Z", - "symbol": "EURAB6E6Y=", - "value": 0.033600000000000005 - }, - { - "dataTimestamp": "2023-07-11T12:35:32Z", - "symbol": "EURAB6E7Y=", - "value": 0.03307 - }, - { - "dataTimestamp": "2023-07-11T12:35:28Z", - "symbol": "EURAB6E8Y=", - "value": 0.03276 - }, - { - "dataTimestamp": "2023-07-11T12:35:28Z", - "symbol": "EURAB6E9Y=", - "value": 0.03254 - }, - { - "dataTimestamp": "2023-07-11T12:35:32Z", - "symbol": "EUREST10Y=", - "value": 0.03036 - }, - { - "dataTimestamp": "2023-07-11T12:35:32Z", - "symbol": "EUREST11Y=", - "value": 0.03041 - }, - { - "dataTimestamp": "2023-07-11T12:35:32Z", - "symbol": "EUREST12Y=", - "value": 0.03048 - }, - { - "dataTimestamp": "2023-07-11T12:35:30Z", - "symbol": "EUREST15M=", - "value": 0.038650000000000004 - }, - { - "dataTimestamp": "2023-07-11T12:35:32Z", - "symbol": "EUREST15Y=", - "value": 0.03048 - }, - { - "dataTimestamp": "2023-07-11T12:35:31Z", - "symbol": "EUREST18M=", - "value": 0.038149999999999996 - }, - { - "dataTimestamp": "2023-07-11T12:34:59Z", - "symbol": "EUREST1M=", - "value": 0.0348735 - }, - { - "dataTimestamp": "2023-07-11T12:35:29Z", - "symbol": "EUREST1Y=", - "value": 0.03903 - }, - { - "dataTimestamp": "2023-07-11T12:35:29Z", - "symbol": "EUREST20Y=", - "value": 0.029515000000000003 - }, - { - "dataTimestamp": "2023-07-11T12:35:30Z", - "symbol": "EUREST21M=", - "value": 0.037599999999999995 - }, - { - "dataTimestamp": "2023-07-11T12:35:29Z", - "symbol": "EUREST25Y=", - "value": 0.028165 - }, - { - "dataTimestamp": "2023-07-11T12:08:57Z", - "symbol": "EUREST2M=", - "value": 0.0356675 - }, - { - "dataTimestamp": "2023-07-11T12:35:12Z", - "symbol": "EUREST2W=", - "value": 0.033964499999999995 - }, - { - "dataTimestamp": "2023-07-11T12:35:31Z", - "symbol": "EUREST2Y=", - "value": 0.0370125 - }, - { - "dataTimestamp": "2023-07-11T12:35:30Z", - "symbol": "EUREST30Y=", - "value": 0.027015 - }, - { - "dataTimestamp": "2023-07-11T12:35:28Z", - "symbol": "EUREST3M=", - "value": 0.03643 - }, - { - "dataTimestamp": "2023-07-11T12:35:19Z", - "symbol": "EUREST3W=", - "value": 0.034121 - }, - { - "dataTimestamp": "2023-07-11T12:35:30Z", - "symbol": "EUREST3Y=", - "value": 0.03473 - }, - { - "dataTimestamp": "2023-07-11T12:35:27Z", - "symbol": "EUREST4M=", - "value": 0.0370215 - }, - { - "dataTimestamp": "2023-07-11T12:35:31Z", - "symbol": "EUREST4Y=", - "value": 0.033045 - }, - { - "dataTimestamp": "2023-07-11T12:35:28Z", - "symbol": "EUREST5M=", - "value": 0.037489999999999996 - }, - { - "dataTimestamp": "2023-07-11T12:35:28Z", - "symbol": "EUREST5Y=", - "value": 0.031920000000000004 - }, - { - "dataTimestamp": "2023-07-11T12:35:25Z", - "symbol": "EUREST6M=", - "value": 0.0379375 - }, - { - "dataTimestamp": "2023-07-11T12:35:28Z", - "symbol": "EUREST6Y=", - "value": 0.03123 - }, - { - "dataTimestamp": "2023-07-11T12:35:31Z", - "symbol": "EUREST7M=", - "value": 0.0382655 - }, - { - "dataTimestamp": "2023-07-11T12:35:31Z", - "symbol": "EUREST7Y=", - "value": 0.0308 - }, - { - "dataTimestamp": "2023-07-11T12:35:13Z", - "symbol": "EUREST8M=", - "value": 0.038534 - }, - { - "dataTimestamp": "2023-07-11T12:35:30Z", - "symbol": "EUREST8Y=", - "value": 0.030585 - }, - { - "dataTimestamp": "2023-07-11T12:35:27Z", - "symbol": "EUREST9M=", - "value": 0.038763500000000006 - }, - { - "dataTimestamp": "2023-07-11T12:35:31Z", - "symbol": "EUREST9Y=", - "value": 0.030369999999999998 - }, - { - "dataTimestamp": "2023-07-11T12:35:19Z", - "symbol": "EURESTSW=", - "value": 0.0339485 - }, - { - "dataTimestamp": "2023-06-26T09:00:48Z", - "symbol": "EURIBOR6MD=", - "value": 0.03908 - }, - { - "dataTimestamp": "2023-01-31T09:00:23Z", - "symbol": "EURIBOR6MD=", - "value": 0.029499999999999996 - }, - { - "dataTimestamp": "2023-06-26T13:00:58Z", - "symbol": "EURIBOR6MD=", - "value": 0.03908 - }, - { - "dataTimestamp": "2023-06-27T09:00:58Z", - "symbol": "EURIBOR6MD=", - "value": 0.03915 - }, - { - "dataTimestamp": "2023-06-28T13:00:59Z", - "symbol": "EURIBOR6MD=", - "value": 0.0393 - }, - { - "dataTimestamp": "2023-06-21T13:00:59Z", - "symbol": "EURIBOR6MD=", - "value": 0.03886 - }, - { - "dataTimestamp": "2023-07-03T09:00:47Z", - "symbol": "EURIBOR6MD=", - "value": 0.03913 - }, - { - "dataTimestamp": "2023-07-10T09:00:52Z", - "symbol": "EURIBOR6MD=", - "value": 0.03931 - }, - { - "dataTimestamp": "2023-06-27T13:00:58Z", - "symbol": "EURIBOR6MD=", - "value": 0.03915 - }, - { - "dataTimestamp": "2023-07-11T09:00:49Z", - "symbol": "EURIBOR6MD=", - "value": 0.0394 - }, - { - "dataTimestamp": "2023-06-21T09:00:49Z", - "symbol": "EURIBOR6MD=", - "value": 0.03886 - }, - { - "dataTimestamp": "2023-01-30T09:00:23Z", - "symbol": "EURIBOR6MD=", - "value": 0.029 - }, - { - "dataTimestamp": "2023-07-05T13:00:58Z", - "symbol": "EURIBOR6MD=", - "value": 0.03895 - }, - { - "dataTimestamp": "2023-07-04T13:00:58Z", - "symbol": "EURIBOR6MD=", - "value": 0.03888 - }, - { - "dataTimestamp": "2023-06-20T13:00:57Z", - "symbol": "EURIBOR6MD=", - "value": 0.038919999999999996 - }, - { - "dataTimestamp": "2023-07-03T06:00:04Z", - "symbol": "EUROSTR=", - "value": 0.034 - }, - { - "dataTimestamp": "2023-07-04T06:00:04Z", - "symbol": "EUROSTR=", - "value": 0.03399 - }, - { - "dataTimestamp": "2023-07-05T06:00:03Z", - "symbol": "EUROSTR=", - "value": 0.03401 - }, - { - "dataTimestamp": "2023-06-16T06:00:05Z", - "symbol": "EUROSTR=", - "value": 0.03144 - }, - { - "dataTimestamp": "2023-06-21T06:00:04Z", - "symbol": "EUROSTR=", - "value": 0.03144 - }, - { - "dataTimestamp": "2023-06-26T06:00:11Z", - "symbol": "EUROSTR=", - "value": 0.034 - }, - { - "dataTimestamp": "2023-06-19T06:00:05Z", - "symbol": "EUROSTR=", - "value": 0.03144 - }, - { - "dataTimestamp": "2023-07-10T06:00:03Z", - "symbol": "EUROSTR=", - "value": 0.03406 - }, - { - "dataTimestamp": "2023-06-27T06:00:08Z", - "symbol": "EUROSTR=", - "value": 0.034 - }, - { - "dataTimestamp": "2023-06-23T06:00:11Z", - "symbol": "EUROSTR=", - "value": 0.034 - }, - { - "dataTimestamp": "2023-06-28T06:00:05Z", - "symbol": "EUROSTR=", - "value": 0.03397 - }, - { - "dataTimestamp": "2023-07-11T06:00:05Z", - "symbol": "EUROSTR=", - "value": 0.03402 - }, - { - "dataTimestamp": "2023-06-20T06:00:05Z", - "symbol": "EUROSTR=", - "value": 0.03144 - }, - { - "dataTimestamp": "2023-01-31T06:00:23Z", - "symbol": "EUROSTR=", - "value": 0.019040000000000002 - }, - { - "dataTimestamp": "2023-01-29T06:00:23Z", - "symbol": "EUROSTR=", - "value": 0.01778 - }, - { - "dataTimestamp": "2023-01-30T06:00:23Z", - "symbol": "EUROSTR=", - "value": 0.0189 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/smartderivativecontract-sample-swap.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/smartderivativecontract-sample-swap.xml deleted file mode 100644 index 71cee6b80..000000000 --- a/src/main/resources/net/finmath/smartcontract/valuation/client/smartderivativecontract-sample-swap.xml +++ /dev/null @@ -1,639 +0,0 @@ - - - - Counterparty 1 - party1 - - constant - 30000.0 - - - constant - 10000.0 - -
0x627306090abab3a6e1400e9345bc60c78a8bef57
- na -
- - Counterparty 2 - party2 - - constant - 30000.0 - - - constant - 10000.0 - -
0xf17f52151ebef6c7334fad080c5704d77216b732
- na -
-
- - - 2011-12-03T10:15:30 - - - daily - 17:00 - - - refinitiv - - - EUROSTR= - ESTR - Deposit - 1D - - - EUR6MD= - Euribor6M - Deposit - 6M - - - EUR1X7F= - Euribor6M - Forward-Rate-Agreement - 7M - - - EUR2X8F= - Euribor6M - Forward-Rate-Agreement - 8M - - - EUR3X9F= - Euribor6M - Forward-Rate-Agreement - 9M - - - EUR4X10F= - Euribor6M - Forward-Rate-Agreement - 10M - - - EUR6X12F= - Euribor6M - Forward-Rate-Agreement - 12M - - - EUR9X15F= - Euribor6M - Forward-Rate-Agreement - 15M - - - EUR12X18F= - Euribor6M - Forward-Rate-Agreement - 18M - - - EURAB6E2Y= - Euribor6M - Swap-Rate - 2Y - - - EURAB6E3Y= - Euribor6M - Swap-Rate - 3Y - - - EURAB6E4Y= - Euribor6M - Swap-Rate - 4Y - - - EURAB6E5Y= - Euribor6M - Swap-Rate - 5Y - - - EURAB6E6Y= - Euribor6M - Swap-Rate - 6Y - - - EURAB6E7Y= - Euribor6M - Swap-Rate - 7Y - - - EURAB6E8Y= - Euribor6M - Swap-Rate - 8Y - - - EURAB6E9Y= - Euribor6M - Swap-Rate - 9Y - - - EURAB6E10Y= - Euribor6M - Swap-Rate - 10Y - - - EURAB6E11Y= - Euribor6M - Swap-Rate - 11Y - - - EURAB6E12Y= - Euribor6M - Swap-Rate - 12Y - - - EURAB6E13Y= - Euribor6M - Swap-Rate - 13Y - - - EURAB6E14Y= - Euribor6M - Swap-Rate - 14Y - - - EURAB6E15Y= - Euribor6M - Swap-Rate - 15Y - - - EURAB6E16Y= - Euribor6M - Swap-Rate - 16Y - - - EURAB6E17Y= - Euribor6M - Swap-Rate - 17Y - - - EURAB6E18Y= - Euribor6M - Swap-Rate - 18Y - - - EURAB6E19Y= - Euribor6M - Swap-Rate - 19Y - - - EURAB6E20Y= - Euribor6M - Swap-Rate - 20Y - - - EURAB6E21Y= - Euribor6M - Swap-Rate - 21Y - - - EURAB6E22Y= - Euribor6M - Swap-Rate - 22Y - - - EURAB6E23Y= - Euribor6M - Swap-Rate - 23Y - - - EURAB6E24Y= - Euribor6M - Swap-Rate - 24Y - - - EURAB6E25Y= - Euribor6M - Swap-Rate - 25Y - - - EURAB6E26Y= - Euribor6M - Swap-Rate - 26Y - - - EURAB6E27Y= - Euribor6M - Swap-Rate - 27Y - - - EURAB6E28Y= - Euribor6M - Swap-Rate - 28Y - - - EURAB6E29Y= - Euribor6M - Swap-Rate - 29Y - - - EURAB6E30Y= - Euribor6M - Swap-Rate - 30Y - - - EURAB6E40Y= - Euribor6M - Swap-Rate - 40Y - - - EURAB6E50Y= - Euribor6M - Swap-Rate - 50Y - - - EURESTSW= - ESTR - Swap-Rate - 7D - - - EUREST2W= - ESTR - Swap-Rate - 14D - - - EUREST3W= - ESTR - Swap-Rate - 21D - - - EUREST1M= - ESTR - Swap-Rate - 1M - - - EUREST2M= - ESTR - Swap-Rate - 2M - - - EUREST3M= - ESTR - Swap-Rate - 3M - - - EUREST4M= - ESTR - Swap-Rate - 4M - - - EUREST5M= - ESTR - Swap-Rate - 5M - - - EUREST6M= - ESTR - Swap-Rate - 6M - - - EUREST7M= - ESTR - Swap-Rate - 7M - - - EUREST8M= - ESTR - Swap-Rate - 8M - - - EUREST9M= - ESTR - Swap-Rate - 9M - - - EUREST1Y= - ESTR - Swap-Rate - 1Y - - - EUREST15M= - ESTR - Swap-Rate - 15M - - - EUREST18M= - ESTR - Swap-Rate - 18M - - - EUREST21M= - ESTR - Swap-Rate - 21M - - - EUREST2Y= - ESTR - Swap-Rate - 2Y - - - EUREST3Y= - ESTR - Swap-Rate - 3Y - - - EUREST4Y= - ESTR - Swap-Rate - 4Y - - - EUREST5Y= - ESTR - Swap-Rate - 5Y - - - EUREST6Y= - ESTR - Swap-Rate - 6Y - - - EUREST7Y= - ESTR - Swap-Rate - 7Y - - - EUREST8Y= - ESTR - Swap-Rate - 8Y - - - EUREST9Y= - ESTR - Swap-Rate - 9Y - - - EUREST10Y= - ESTR - Swap-Rate - 10Y - - - EUREST11Y= - ESTR - Swap-Rate - 11Y - - - EUREST12Y= - ESTR - Swap-Rate - 12Y - - - EUREST15Y= - ESTR - Swap-Rate - 15Y - - - EUREST20Y= - ESTR - Swap-Rate - 20Y - - - EUREST25Y= - ESTR - Swap-Rate - 25Y - - - EUREST30Y= - ESTR - Swap-Rate - 30Y - - - - - - party1 - - - - - - - - CP1 - - - - CP2 - - 2022-09-05 - - - - - - - - - 2022-09-07 - - NONE - - - - 2032-09-07 - - MODFOLLOWING - - DEFR - - - - - MODFOLLOWING - - - - 6 - M - 14 - - - - - - 6 - M - - CalculationPeriodEndDate - - FOLLOWING - - - - - - CalculationPeriodStartDate - - -2 - D - Business - NONE - - GBLO - - - - - 6 - M - - - FOLLOWING - - - - - - - - 1000000.00 - - EUR - - - - - EUR-LIBOR-BBA - - 6 - M - - - ACT/360 - - - - - - - - - - 2022-09-07 - - NONE - - - - 2032-09-07 - - FOLLOWING - - - - - FOLLOWING - - - - 1 - Y - 14 - - - - - - 1 - Y - - CalculationPeriodEndDate - - MODFOLLOWING - - - - - - - - 1000000.00 - - EUR - - - - - 0.0395 - - 30E/360 - - - - - - - -
diff --git a/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java b/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java index f8904081d..c066954c6 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java @@ -49,7 +49,7 @@ void checkChangedTradeParams() throws java.lang.Exception { String marshalledXML = getMarshalledXMLfromObject(jaxbContext, sdc); MarginCalculator marginCalculator = new MarginCalculator(); - final String marketData = new String(JAXBTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset_with_fixings.json").readAllBytes(), StandardCharsets.UTF_8); + final String marketData = new String(JAXBTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml").readAllBytes(), StandardCharsets.UTF_8); ValueResult valuationResultOrig = marginCalculator.getValue(marketData, new String(url.openStream().readAllBytes(), StandardCharsets.UTF_8)); ValueResult valuationResultMarshalled = marginCalculator.getValue(marketData, marshalledXML); @@ -72,7 +72,7 @@ void checkValuation() throws java.lang.Exception { String marshalledXML = getMarshalledXMLfromObject(jaxbContext, sdc); MarginCalculator marginCalculator = new MarginCalculator(); - final String marketData = new String(JAXBTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset_with_fixings.json").readAllBytes(), StandardCharsets.UTF_8); + final String marketData = new String(JAXBTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml").readAllBytes(), StandardCharsets.UTF_8); ValueResult valuationResultOrig = marginCalculator.getValue(marketData, new String(url.openStream().readAllBytes(), StandardCharsets.UTF_8)); ValueResult valuationResultMarshalled = marginCalculator.getValue(marketData, marshalledXML); @@ -157,7 +157,6 @@ void jaxBPlainTest() throws java.lang.Exception { } - @Disabled @Test void handlerTest() throws java.lang.Exception { @@ -170,14 +169,14 @@ void handlerTest() throws java.lang.Exception { // String product = handler.getContractAsXmlString(); - final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset_with_fixings.json").readAllBytes(), StandardCharsets.UTF_8); + final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml").readAllBytes(), StandardCharsets.UTF_8); MarginCalculator marginCalculator = new MarginCalculator(); ValueResult valuationResult = marginCalculator.getValue(marketData, handler.getContractAsXmlString()); double value = valuationResult.getValue().doubleValue(); - Assertions.assertEquals(-549726.34, value, 0.005, "Valuation"); + Assertions.assertEquals(-549345.3, value, 0.005, "Valuation"); System.out.println(valuationResult); diff --git a/src/test/java/net/finmath/smartcontract/settlement/SettlementTests.java b/src/test/java/net/finmath/smartcontract/settlement/SettlementTests.java new file mode 100644 index 000000000..bc3e44c9a --- /dev/null +++ b/src/test/java/net/finmath/smartcontract/settlement/SettlementTests.java @@ -0,0 +1,60 @@ +package net.finmath.smartcontract.settlement; + +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.Marshaller; +import jakarta.xml.bind.Unmarshaller; +import net.bytebuddy.asm.Advice; +import net.finmath.smartcontract.valuation.client.ValuationClient; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.io.StringReader; +import java.io.StringWriter; +import java.math.BigDecimal; +import java.nio.charset.StandardCharsets; +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.util.List; +import java.util.Set; + +public class SettlementTests { + + @Test + void testGenerateSettlementXML() throws Exception{ + + String tradeID = "SDCTestTrade1"; + Settlement.SettlementType type = Settlement.SettlementType.REGULAR; + BigDecimal marginValue = BigDecimal.valueOf(-5000); + BigDecimal settlementValue = BigDecimal.valueOf(20000); + BigDecimal setttlementValuePrevious = BigDecimal.valueOf(25000); + BigDecimal settlementValueNext = BigDecimal.valueOf(20001); + List marginLimits = List.of(BigDecimal.valueOf(-50000),BigDecimal.valueOf(50000)); + ZoneId zone = ZoneId.of("Europe/Berlin"); + ZonedDateTime settlementTime = ZonedDateTime.of(LocalDate.now(), LocalTime.of(17,0,0), zone); + ZonedDateTime settlementTimeNext = settlementTime.plusDays(1); + + final String marketDataXMLStr = new String(SettlementTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset0.xml").readAllBytes(), StandardCharsets.UTF_8); + + StringReader reader = new StringReader(marketDataXMLStr); + JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); + Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); + MarketDataList marketData = (MarketDataList) jaxbUnmarshaller.unmarshal(reader); + + Settlement settlement = new Settlement(tradeID,type,"EUR",marginValue,marginLimits,settlementTime,marketData,settlementValue,setttlementValuePrevious,settlementTimeNext,settlementValueNext); + + JAXBContext jaxbContextSettlement = JAXBContext.newInstance(Settlement.class); + Marshaller jaxbMarshaller = jaxbContextSettlement.createMarshaller(); + jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + + StringWriter writer = new StringWriter(); + jaxbMarshaller.marshal(settlement, System.out); + jaxbMarshaller.marshal(settlement, writer); + String xmlStr = writer.toString(); + Assertions.assertFalse(xmlStr.isEmpty()); + + + } +} diff --git a/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java b/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java index 34fe2faca..40914624f 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java @@ -25,8 +25,8 @@ public class MarginCalculatorTest { @Test void testMargin() throws Exception { - final String marketDataStart = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.json").readAllBytes(), StandardCharsets.UTF_8); - final String marketDataEnd = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.json").readAllBytes(), StandardCharsets.UTF_8); + final String marketDataStart = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); + final String marketDataEnd = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml").readAllBytes(), StandardCharsets.UTF_8); final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); MarginCalculator marginCalculator = new MarginCalculator(); @@ -40,7 +40,7 @@ void testMargin() throws Exception { @Test void testValue() throws Exception { - final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset_with_fixings.json").readAllBytes(), StandardCharsets.UTF_8); + final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); MarginCalculator marginCalculator = new MarginCalculator(); @@ -48,22 +48,8 @@ void testValue() throws Exception { double value = valuationResult.getValue().doubleValue(); - Assertions.assertEquals(582165.72, value, 0.005, "Valuation"); + Assertions.assertEquals(926403.97, value, 0.005, "Valuation"); System.out.println(valuationResult); } - @Test - @Disabled - void testXMLMarketData() throws Exception{ - final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); - - String s = "finmath-smart-derivative-contract\\src\\main\\resources\\net\\finmath\\smartcontract\\valuation\\client\\marketdata.xml"; - JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); - Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); - MarketDataList l = (MarketDataList) jaxbUnmarshaller.unmarshal(new FileInputStream( s )); - String json = l.serializeToJson(); - MarginCalculator marginCalculator = new MarginCalculator(); - ValueResult valuationResult = marginCalculator.getValue(json, product); - System.out.println(valuationResult.getValue()); - } } diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataFormatTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java similarity index 62% rename from src/test/java/net/finmath/smartcontract/valuation/marketdata/DataFormatTests.java rename to src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java index 9519d57f4..c053a40f0 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataFormatTests.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java @@ -4,6 +4,7 @@ import jakarta.xml.bind.Marshaller; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; import net.finmath.smartcontract.product.xml.SDCXMLParser; +import net.finmath.smartcontract.valuation.client.ValuationClient; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; @@ -14,8 +15,7 @@ import org.xml.sax.SAXException; import javax.xml.parsers.ParserConfigurationException; -import java.io.File; -import java.io.IOException; +import java.io.*; import java.nio.charset.StandardCharsets; import java.time.LocalDate; import java.time.LocalDateTime; @@ -23,12 +23,17 @@ import java.util.Objects; import java.util.stream.Collectors; -public class DataFormatTests { +public class DataParseTests { + + + + + @Test void testParseSymbols() { try { - String sdcXML = new String(Objects.requireNonNull(DataFormatTests.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); + String sdcXML = new String(Objects.requireNonNull(DataParseTests.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); List marketdataItems = sdc.getMarketdataItemList(); @@ -40,41 +45,28 @@ void testParseSymbols() { } - @Test - void testImportMarketDataJson(){ - try { - final String jsonStr = new String(Objects.requireNonNull(DataFormatTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.json")).readAllBytes(), StandardCharsets.UTF_8); - - List scenarioList = CalibrationParserDataItems.getScenariosFromJsonString(jsonStr); - int setSize = scenarioList.get(0).getDataPoints().size(); - Assertions.assertEquals(setSize, 71); - } - catch(IOException e){ - Assertions.assertFalse(false); - } - } @Test void xmlGenerationTest() throws Exception{ - MarketDataPoint point = new MarketDataPoint("test","curve","swap","10Y",0.0, LocalDateTime.now()); + MarketDataPoint point = new MarketDataPoint("test",1.0, LocalDateTime.now()); MarketDataList set = new MarketDataList(); set.add(point); - File file = new File("marketdata.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); - jaxbMarshaller.marshal(set, file); - jaxbMarshaller.marshal(set, System.out); + StringWriter writer = new StringWriter(); + jaxbMarshaller.marshal(set, writer); + String xmlStr = writer.toString(); String json = set.serializeToJson(); - System.out.println(json); - Assertions.assertTrue(Thread.currentThread().isAlive()); + + Assertions.assertTrue(!xmlStr.isEmpty() && !json.isEmpty()); } @Test - void readHistoricJsonScenariosIntoXML() throws Exception{ + void readHistoricJsonScenariosIntoMarketDataListObjects() throws Exception{ final LocalDate startDate = LocalDate.of(2007, 1, 1); final LocalDate maturity = LocalDate.of(2012, 1, 3); final String fileName = "timeseriesdatamap.json"; @@ -84,8 +76,22 @@ void readHistoricJsonScenariosIntoXML() throws Exception{ final List ListOfMarketDataLists = scenarioList.stream().map(CalibrationDataset::toMarketDataList).toList(); Assertions.assertEquals(131,ListOfMarketDataLists.size()); + + /*Need */ } + @Test + void testXMLToCalibrationSet() throws Exception{ + final String productData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset0.xml").readAllBytes(), StandardCharsets.UTF_8); + SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); + + List specList = productDescriptor.getMarketdataItemList(); + CalibrationDataset set = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketData,specList); + Assertions.assertEquals(specList.size(), set.getDataPoints().size()); + + } + } diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java index 2e9b574f3..b1a12d84f 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java @@ -44,7 +44,7 @@ void initializeTests() throws IOException, ParserConfigurationException, SAXExce SmartDerivativeContractDescriptor product; try ( InputStream marketDataMessageStream = CalibrationTests.class.getClassLoader().getResourceAsStream( - "net/finmath/smartcontract/valuation/client/nf_md_20230711-123529.json"); + "net/finmath/smartcontract/valuation/client/legacy/md_testset_newformat_1.json"); // data obtained from the new livefeed implementation. Contains several fixings. InputStream sdcmlStream = CalibrationTests.class.getClassLoader() .getResourceAsStream( diff --git a/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java b/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java index ea9af3c83..afffc0af7 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java @@ -45,8 +45,8 @@ public class ValuationControllerTest { @WithUserDetails("user1") // testing now uses more of the server environment, including security. Tests would fail if requests are not authenticated. public void getMargin(@Autowired MockMvc mockMvc) throws Exception { - final String marketDataStart = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.json").readAllBytes(), StandardCharsets.UTF_8); - final String marketDataEnd = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.json").readAllBytes(), StandardCharsets.UTF_8); + final String marketDataStart = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); + final String marketDataEnd = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml").readAllBytes(), StandardCharsets.UTF_8); final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream(productXMLFile).readAllBytes(), StandardCharsets.UTF_8); final LegacyMarginRequest marginRequest = new LegacyMarginRequest().marketDataStart(marketDataStart).marketDataEnd(marketDataEnd).tradeData(product).valuationDate(LocalDateTime.now().toString()); @@ -68,7 +68,7 @@ public void getMargin(@Autowired MockMvc mockMvc) throws Exception { @WithUserDetails("user1") public void getValue(@Autowired MockMvc mockMvc) throws Exception { - final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.json").readAllBytes(), StandardCharsets.UTF_8); + final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream(productXMLFile).readAllBytes(), StandardCharsets.UTF_8); final LegacyValueRequest valueRequest = new LegacyValueRequest().marketData(marketData).tradeData(product).valuationDate(LocalDateTime.now().toString()); diff --git a/src/test/java/net/finmath/smartcontract/valuation/service/utils/MockResourceGovernor.java b/src/test/java/net/finmath/smartcontract/valuation/service/utils/MockResourceGovernor.java index d4370a8a8..f1f516937 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/service/utils/MockResourceGovernor.java +++ b/src/test/java/net/finmath/smartcontract/valuation/service/utils/MockResourceGovernor.java @@ -14,7 +14,7 @@ public class MockResourceGovernor extends ResourceGovernor { @Override public Resource getActiveDatasetAsResourceInReadMode(String username) { - return new ClassPathResource("net/finmath/smartcontract/valuation/client/md_testset_newformat_1.json"); + return new ClassPathResource("net/finmath/smartcontract/valuation/client/legacy/md_testset_newformat_1.json"); } @Override From 1389be795e49d242571cb3c24853adf83240f561 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Thu, 14 Mar 2024 11:26:12 +0100 Subject: [PATCH 011/105] fix for manually tested fpml xml in MarginRequest --- .../finmath/smartcontract/product/xml/SDCXMLParser.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java index d847f747d..02327557f 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java @@ -91,8 +91,11 @@ public static SmartDerivativeContractDescriptor parse(String sdcxml) throws Pars Node underlying = document .getElementsByTagName("underlying") .item(0) - .getFirstChild() - .getNextSibling(); + .getFirstChild(); + if(!underlying.getNodeName().equals("dataDocument")){ + underlying = underlying.getNextSibling(); + } + return new SmartDerivativeContractDescriptor(uniqueTradeIdentifier, settlementDateInitial, parties, marginAccountInitialByPartyID, penaltyFeeInitialByPartyID, receiverPartyID, underlying, marketdataItems); } From 4808e72ba30f9276119fc06e82c87dc85d5eea67 Mon Sep 17 00:00:00 2001 From: pekola Date: Thu, 14 Mar 2024 23:15:03 +0100 Subject: [PATCH 012/105] removed "legacy" of the restendpoints for value and and margin, removed refinitiv rics out of test market data files --- .../valuation/client/ValuationClient.java | 13 +- .../implementation/MarginCalculator.java | 85 --- .../marketdata/LaunchAGenerator.java | 4 +- .../PlainSwapEditorController.java | 14 +- .../controllers/ValuationController.java | 40 +- src/main/resources/api.yml | 87 +-- .../smartderivativecontract.xml | 148 ++-- .../smartderivativecontract_with_rics.xml | 663 ++++++++++++++++++ .../valuation/client/md_testset0.xml | 580 --------------- .../valuation/client/md_testset1.xml | 142 ++-- .../valuation/client/md_testset2.xml | 142 ++-- .../client/md_testset_with_fixings.xml | 162 ++--- ...acyMarginRequest.yml => MarginRequest.yml} | 0 ...egacyValueRequest.yml => ValueRequest.yml} | 0 .../smartcontract/product/xml/JAXBTests.java | 4 +- .../settlement/SettlementTests.java | 2 +- .../valuation/marketdata/DataParseTests.java | 74 +- .../curvecalibration/CalibrationTests.java | 2 +- .../PlainSwapEditorControllerTest.java | 1 + .../service/ValuationControllerTest.java | 12 +- 20 files changed, 1068 insertions(+), 1107 deletions(-) create mode 100644 src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract_with_rics.xml delete mode 100644 src/main/resources/net/finmath/smartcontract/valuation/client/md_testset0.xml rename src/main/resources/schemas/openapi-schemas/{LegacyMarginRequest.yml => MarginRequest.yml} (100%) rename src/main/resources/schemas/openapi-schemas/{LegacyValueRequest.yml => ValueRequest.yml} (100%) diff --git a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java index 9bea47a5e..9f3d75b8b 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java +++ b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java @@ -1,6 +1,6 @@ package net.finmath.smartcontract.valuation.client; -import net.finmath.smartcontract.model.LegacyMarginRequest; +import net.finmath.smartcontract.model.MarginRequest; import net.finmath.smartcontract.model.MarginResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -12,6 +12,7 @@ import java.nio.charset.StandardCharsets; import java.time.LocalDateTime; import java.util.Base64; +import java.util.Objects; /** * Spring-boot application to demonstrate the ReST service for the valuation oracle, @@ -45,11 +46,11 @@ public static void main(String[] args) throws Exception { System.out.println("Using default endpoint " + url); } - final String marketDataStart = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); - final String marketDataEnd = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml").readAllBytes(), StandardCharsets.UTF_8); - final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + final String marketDataStart = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml")).readAllBytes(), StandardCharsets.UTF_8); + final String marketDataEnd = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml")).readAllBytes(), StandardCharsets.UTF_8); + final String product = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); - final LegacyMarginRequest marginRequest = new LegacyMarginRequest().marketDataStart(marketDataStart).marketDataEnd(marketDataEnd).tradeData(product).valuationDate(LocalDateTime.now().toString()); + final MarginRequest marginRequest = new MarginRequest().marketDataStart(marketDataStart).marketDataEnd(marketDataEnd).tradeData(product).valuationDate(LocalDateTime.now().toString()); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); @@ -58,7 +59,7 @@ public static void main(String[] args) throws Exception { String base64Creds = Base64.getEncoder().encodeToString(authString.getBytes()); headers.add("Authorization", "Basic " + base64Creds); - RequestEntity requestEntity = new RequestEntity(marginRequest, headers, HttpMethod.POST, new URI(url + "/valuation/legacy/margin"), LegacyMarginRequest.class); + RequestEntity requestEntity = new RequestEntity(marginRequest, headers, HttpMethod.POST, new URI(url + "/valuation/legacy/margin"), MarginRequest.class); ResponseEntity response = new RestTemplate().exchange(requestEntity, MarginResult.class); MarginResult result = response.getBody(); diff --git a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java index faf8b8b9f..04b6361fa 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java @@ -66,11 +66,6 @@ public MarginResult getValue(String marketDataStart, String marketDataEnd, Strin CalibrationDataset setStart = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketDataStart,productDescriptor.getMarketdataItemList()); CalibrationDataset setEnd = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketDataEnd,productDescriptor.getMarketdataItemList()); -// List marketDataSetsStart = CalibrationParserDataItems.getScenariosFromJsonString(marketDataStart); -// Validate.isTrue(marketDataSetsStart.size() == 1, "Parameter marketDataStart should be only a single market data set"); - -// List marketDataSetsEnd = CalibrationParserDataItems.getScenariosFromJsonString(marketDataEnd); -// Validate.isTrue(marketDataSetsEnd.size() == 1, "Parameter marketDataStart should be only a single market data set"); String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); @@ -85,63 +80,12 @@ public MarginResult getValue(String marketDataStart, String marketDataEnd, Strin return new MarginResult().value(BigDecimal.valueOf(rounding.applyAsDouble(value))).currency(currency).valuationDate(valuationDate.toString()); } - public MarginResult getValue(MarketDataSet marketDataStart, MarketDataSet marketDataEnd, String productData) throws Exception { - SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); - - List marketdataItemList = productDescriptor.getMarketdataItemList(); - Set calibrationDataItemsStart = new HashSet<>(); - List marketDataValuesStart = marketDataStart.getValues(); - marketdataItemList.forEach(marketDataItemSpec -> marketDataValuesStart - .stream() - .filter( - marketDataValue -> marketDataValue.getSymbol().equals(marketDataItemSpec.getKey()) - ) - .map( - mdv -> new CalibrationDataItem(marketDataItemSpec, mdv.getValue(), mdv.getDataTimestamp().toLocalDateTime()) - ) - .forEach(calibrationDataItemsStart::add)); - - List marketDataSetsStart = new ArrayList<>(); - marketDataSetsStart.add(new CalibrationDataset(calibrationDataItemsStart, marketDataStart.getRequestTimestamp().toLocalDateTime())); - - Set calibrationDataItemsEnd = new HashSet<>(); - List marketDataValuesEnd = marketDataEnd.getValues(); - marketdataItemList.forEach(marketDataItemSpec -> marketDataValuesEnd - .stream() - .filter( - marketDataValue -> marketDataValue.getSymbol().equals(marketDataItemSpec.getKey()) - ) - .map( - mdv -> new CalibrationDataItem(marketDataItemSpec, mdv.getValue(), mdv.getDataTimestamp().toLocalDateTime()) - ) - .forEach(calibrationDataItemsEnd::add)); - - List marketDataSetsEnd = new ArrayList<>(); - marketDataSetsEnd.add(new CalibrationDataset(calibrationDataItemsEnd, marketDataEnd.getRequestTimestamp().toLocalDateTime())); - - String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); - InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); - - LocalDateTime startDate = marketDataSetsStart.get(0).getDate(); - LocalDateTime endDate = marketDataSetsEnd.get(0).getDate(); - double value = calculateMargin(List.of(marketDataSetsStart.get(0), marketDataSetsEnd.get(0)), startDate, endDate, productDescriptor, underlying); - - String currency = "EUR"; - LocalDateTime valuationDate = LocalDateTime.now(); - - return new MarginResult().value(BigDecimal.valueOf(rounding.applyAsDouble(value))).currency(currency).valuationDate(valuationDate.toString()); - } - public ValueResult getValue(String marketData, String productData) throws Exception { SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); -// List marketDataSets = CalibrationParserDataItems.getScenariosFromJsonString(marketData); -// Validate.isTrue(marketDataSets.size() == 1, "Parameter marketData should be only a single market data set"); - String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); -// LocalDateTime endDate = marketDataSets.get(0).getDate(); CalibrationDataset set = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketData,productDescriptor.getMarketdataItemList()); double value = calculateMargin(List.of(set), null, set.getDate(), productDescriptor, underlying); @@ -152,35 +96,6 @@ public ValueResult getValue(String marketData, String productData) throws Except return new ValueResult().value(BigDecimal.valueOf(value)).currency(currency).valuationDate(valuationDate.toString()); } - public ValueResult getValue(MarketDataSet marketData, String productData) throws Exception { - SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); - - Set calibrationDataItems = new HashSet<>(); - - List marketdataItemList = productDescriptor.getMarketdataItemList(); - List marketDataValues = marketData.getValues(); - marketdataItemList.forEach(marketDataItemSpec -> marketDataValues - .stream() - .filter( - marketDataValue -> marketDataValue.getSymbol().equals(marketDataItemSpec.getKey()) - ) - .map( - mdv -> new CalibrationDataItem(marketDataItemSpec, mdv.getValue(), mdv.getDataTimestamp().toLocalDateTime()) - ) - .forEach(calibrationDataItems::add)); - - List marketDataSets = new ArrayList<>(); - marketDataSets.add(new CalibrationDataset(calibrationDataItems, marketData.getRequestTimestamp().toLocalDateTime())); - String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); - InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); - - LocalDateTime endDate = marketDataSets.get(0).getDate(); - double value = calculateMargin(marketDataSets, null, endDate, productDescriptor, underlying); - - String currency = "EUR"; - - return new ValueResult().value(BigDecimal.valueOf(value)).currency(currency).valuationDate(marketData.getRequestTimestamp().toLocalDateTime().toString()); - } /** * Calculates the margin for a list of market data scenarios. diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java index 26a64a5f6..f2dbe33b6 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java @@ -27,7 +27,7 @@ public static void main(String[] args) throws Exception { List mdItemList = sdc.getMarketdataItemList(); /* Load connection properties*/ - String connectionPropertiesFile = ""; + String connectionPropertiesFile = ""; Properties properties = new Properties(); properties.load(new FileInputStream(connectionPropertiesFile)); @@ -51,7 +51,7 @@ public void accept(MarketDataList s) throws Throwable { System.out.println("Consumer MarketDataStorage: Stored Market Data at: "); System.out.println(socket.isOpen()); - File file = new File("md_testset0.xml"); + File file = new File("md_testset3.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java index ea246508e..be7742dd3 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java @@ -7,6 +7,8 @@ import jakarta.xml.bind.JAXBException; import net.finmath.rootfinder.BisectionSearch; import net.finmath.smartcontract.api.PlainSwapEditorApi; +import net.finmath.smartcontract.valuation.client.ValuationClient; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; import net.finmath.smartcontract.valuation.marketdata.generators.legacy.LiveFeedAdapter; import net.finmath.smartcontract.valuation.marketdata.generators.legacy.ReactiveMarketDataUpdater; import net.finmath.smartcontract.valuation.marketdata.generators.WebSocketConnector; @@ -142,9 +144,11 @@ public ResponseEntity evaluateFromPlainSwapEditor(PlainSwapOperatio MarketDataSet marketData; try { - marketDataString = resourceGovernor.getActiveDatasetAsResourceInReadMode(currentUserName) - .getContentAsString(StandardCharsets.UTF_8); - marketData = objectMapper.readValue(marketDataString, MarketDataSet.class); + //@TODO: where resourceGovenor retrieves the data from neeeds to be understood + marketDataString = new String(Objects.requireNonNull(PlainSwapEditorController.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/legacy/md_testset_refinitiv.xml")).readAllBytes(), StandardCharsets.UTF_8); + /* + marketDataString = resourceGovernor.getActiveDatasetAsResourceInReadMode(currentUserName).getContentAsString(StandardCharsets.UTF_8); + marketData = objectMapper.readValue(marketDataString, MarketDataList.class);*/ } catch (IOException e) { ProblemDetail pd = ProblemDetail.forStatusAndDetail(HttpStatus.INTERNAL_SERVER_ERROR, ErrorDetails.MARKET_DATA_ERROR_DETAIL); @@ -154,7 +158,7 @@ public ResponseEntity evaluateFromPlainSwapEditor(PlainSwapOperatio } ValueResult valueResult; try { - valueResult = (new MarginCalculator()).getValue(marketData, sdcmlBody); + valueResult = (new MarginCalculator()).getValue(marketDataString, sdcmlBody); } catch (Exception e) { ProblemDetail pd = ProblemDetail.forStatusAndDetail(HttpStatus.INTERNAL_SERVER_ERROR, "Valuation error."); pd.setType(URI.create(hostname + ErrorTypeURI.VALUATION_ERROR_URI)); @@ -439,7 +443,7 @@ public ResponseEntity getParRate(PlainSwapOperationRequest plainSwapOper DoubleUnaryOperator swapValue = (swapRate) -> { plainSwapOperationRequest.fixedRate(swapRate); try { - return (new MarginCalculator()).getValue(marketData, new PlainSwapEditorHandler( + return (new MarginCalculator()).getValue(marketDataString, new PlainSwapEditorHandler( plainSwapOperationRequest.notionalAmount(1E15), plainSwapOperationRequest.getCurrentGenerator(), schemaPath).getContractAsXmlString()) .getValue().doubleValue(); diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java index 2bed149fc..8d2d7d190 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java @@ -42,7 +42,7 @@ public class ValuationController implements ValuationApi { */ @Override @Deprecated - public ResponseEntity legacyMargin(LegacyMarginRequest marginRequest) { + public ResponseEntity margin(MarginRequest marginRequest) { HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.add("Responded", "margin"); @@ -68,7 +68,7 @@ public ResponseEntity legacyMargin(LegacyMarginRequest marginReque */ @Override @Deprecated - public ResponseEntity legacyValue(LegacyValueRequest valueRequest) { + public ResponseEntity value(ValueRequest valueRequest) { HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.add("Responded", "value"); @@ -87,42 +87,6 @@ public ResponseEntity legacyValue(LegacyValueRequest valueRequest) } } - @Override - public ResponseEntity margin(MarginRequest marginRequest) { - HttpHeaders responseHeaders = new HttpHeaders(); - responseHeaders.add("Responded", "margin"); - - MarginResult margin = null; - try { - MarginCalculator marginCalculator = new MarginCalculator(); - margin = marginCalculator.getValue(marginRequest.getMarketDataStart(), marginRequest.getMarketDataEnd(), marginRequest.getTradeData()); - logger.info(margin.toString()); - return ResponseEntity.ok(margin); - } catch (Exception e) { - logger.error("Failed to calculate margin."); - logger.info(marginRequest.toString()); - e.printStackTrace(); - throw new RuntimeException(e); - } - } - - @Override - public ResponseEntity value(ValueRequest valueRequest) { - HttpHeaders responseHeaders = new HttpHeaders(); - responseHeaders.add("Responded", "value"); - ValueResult value = null; - try { - MarginCalculator marginCalculator = new MarginCalculator(); - value = marginCalculator.getValue(valueRequest.getMarketData(), valueRequest.getTradeData()); - logger.info(value.toString()); - return ResponseEntity.ok(value); - } catch (Exception e) { - logger.error("Failed to calculate value."); - logger.info(value.toString()); - e.printStackTrace(); - throw new RuntimeException(e); - } - } public ResponseEntity testProductValue(MultipartFile tradeData) { diff --git a/src/main/resources/api.yml b/src/main/resources/api.yml index 768420c04..ce6ae348c 100644 --- a/src/main/resources/api.yml +++ b/src/main/resources/api.yml @@ -10,28 +10,6 @@ servers: - url: http://34.159.234.113:8080/ paths: - /valuation/legacy/value: - post: - summary: Request mapping for the value - operationId: legacyValue - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/LegacyValueRequest" - responses: - "200": - description: Value was calculated - content: - application/json: - schema: - $ref: "#/components/schemas/ValueResult" - default: - description: unexpected error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" /valuation/value: post: summary: Request mapping for the value @@ -40,19 +18,7 @@ paths: content: application/json: schema: - type: object - required: - - marketData - - tradeData - - valuationDate - properties: - marketData: - type: MarketDataSet - tradeData: - type: string - valuationDate: - type: string - format: date-time + $ref: "#/components/schemas/ValueRequest" responses: "200": description: Value was calculated @@ -66,53 +32,16 @@ paths: application/json: schema: $ref: "#/components/schemas/Error" - /valuation/margin: - post: - summary: Request mapping for the value - operationId: margin - requestBody: - content: - application/json: - schema: - type: object - required: - - marketDataStart - - marketDataEnd - - tradeData - - valuationDate - properties: - marketDataStart: - type: MarketDataSet - marketDataEnd: - type: MarketDataSet - tradeData: - type: string - valuationDate: - type: string - format: date-time - responses: - "200": - description: Margin was calculated - content: - application/json: - schema: - $ref: "#/components/schemas/MarginResult" - default: - description: unexpected error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - /valuation/legacy/margin: + /valuation/margin: post: summary: Request mapping for the margin - operationId: legacyMargin + operationId: margin requestBody: content: application/json: schema: - $ref: "#/components/schemas/LegacyMarginRequest" + $ref: "#/components/schemas/MarginRequest" responses: "200": description: Margin was calculated @@ -524,10 +453,10 @@ components: $ref: "schemas/openapi-schemas/Error.yml" PlainSwapOperationResponse: $ref: "schemas/openapi-schemas/PlainSwapOperationResponse.yml" - LegacyValueRequest: - $ref: "schemas/openapi-schemas/LegacyValueRequest.yml" - LegacyMarginRequest: - $ref: "schemas/openapi-schemas/LegacyMarginRequest.yml" + ValueRequest: + $ref: "schemas/openapi-schemas/ValueRequest.yml" + MarginRequest: + $ref: "schemas/openapi-schemas/MarginRequest.yml" PlainSwapOperationRequest: $ref: "schemas/openapi-schemas/PlainSwapOperationRequest.yml" CashflowPeriod: diff --git a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xml b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xml index abbfd4b6a..615834ab8 100644 --- a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xml +++ b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xml @@ -46,436 +46,436 @@ 17:00 - refinitiv + internal - EUROSTR= + ESTRFIX1D ESTR Fixing 1D - EURIBOR6MD= + EUB6FIX6M Euribor6M Fixing 6M - EUR6MD= + EUB6DEP6M Euribor6M Deposit 6M - EUR1X7F= + EUB6FRA7M Euribor6M Forward-Rate-Agreement 7M - EUR2X8F= + EUB6FRA8M Euribor6M Forward-Rate-Agreement 8M - EUR3X9F= + EUB6FRA9M Euribor6M Forward-Rate-Agreement 9M - EUR4X10F= + EUB6FRA10M Euribor6M Forward-Rate-Agreement 10M - EUR6X12F= + EUB6FRA12M Euribor6M Forward-Rate-Agreement 12M - EUR9X15F= + EUB6FRA15M Euribor6M Forward-Rate-Agreement 15M - EUR12X18F= + EUB6FRA18M Euribor6M Forward-Rate-Agreement 18M - EURAB6E2Y= + EUB6SWP2Y Euribor6M Swap-Rate 2Y - EURAB6E3Y= + EUB6SWP3Y Euribor6M Swap-Rate 3Y - EURAB6E4Y= + EUB6SWP4Y Euribor6M Swap-Rate 4Y - EURAB6E5Y= + EUB6SWP5Y Euribor6M Swap-Rate 5Y - EURAB6E6Y= + EUB6SWP6Y Euribor6M Swap-Rate 6Y - EURAB6E7Y= + EUB6SWP7Y Euribor6M Swap-Rate 7Y - EURAB6E8Y= + EUB6SWP8Y Euribor6M Swap-Rate 8Y - EURAB6E9Y= + EUB6SWP9Y Euribor6M Swap-Rate 9Y - EURAB6E10Y= + EUB6SWP10Y Euribor6M Swap-Rate 10Y - EURAB6E11Y= + EUB6SWP11Y Euribor6M Swap-Rate 11Y - EURAB6E12Y= + EUB6SWP12Y Euribor6M Swap-Rate 12Y - EURAB6E13Y= + EUB6SWP13Y Euribor6M Swap-Rate 13Y - EURAB6E14Y= + EUB6SWP14Y Euribor6M Swap-Rate 14Y - EURAB6E15Y= + EUB6SWP15Y Euribor6M Swap-Rate 15Y - EURAB6E16Y= + EUB6SWP16Y Euribor6M Swap-Rate 16Y - EURAB6E17Y= + EUB6SWP17Y Euribor6M Swap-Rate 17Y - EURAB6E18Y= + EUB6SWP18Y Euribor6M Swap-Rate 18Y - EURAB6E19Y= + EUB6SWP19Y Euribor6M Swap-Rate 19Y - EURAB6E20Y= + EUB6SWP20Y Euribor6M Swap-Rate 20Y - EURAB6E21Y= + EUB6SWP21Y Euribor6M Swap-Rate 21Y - EURAB6E22Y= + EUB6SWP22Y Euribor6M Swap-Rate 22Y - EURAB6E23Y= + EUB6SWP23Y Euribor6M Swap-Rate 23Y - EURAB6E24Y= + EUB6SWP24Y Euribor6M Swap-Rate 24Y - EURAB6E25Y= + EUB6SWP25Y Euribor6M Swap-Rate 25Y - EURAB6E26Y= + EUB6SWP26Y Euribor6M Swap-Rate 26Y - EURAB6E27Y= + EUB6SWP27Y Euribor6M Swap-Rate 27Y - EURAB6E28Y= + EUB6SWP28Y Euribor6M Swap-Rate 28Y - EURAB6E29Y= + EUB6SWP29Y Euribor6M Swap-Rate 29Y - EURAB6E30Y= + EUB6SWP30Y Euribor6M Swap-Rate 30Y - EURAB6E40Y= + EUB6SWP40Y Euribor6M Swap-Rate 40Y - EURAB6E50Y= + EUB6SWP50Y Euribor6M Swap-Rate 50Y - EURESTSW= + ESTRSWP7D ESTR Swap-Rate 7D - EUREST2W= + ESTRSWP14D ESTR Swap-Rate 14D - EUREST3W= + ESTRSWP21D ESTR Swap-Rate 21D - EUREST1M= + ESTRSWP1M ESTR Swap-Rate 1M - EUREST2M= + ESTRSWP2M ESTR Swap-Rate 2M - EUREST3M= + ESTRSWP3M ESTR Swap-Rate 3M - EUREST4M= + ESTRSWP4M ESTR Swap-Rate 4M - EUREST5M= + ESTRSWP5M ESTR Swap-Rate 5M - EUREST6M= + ESTRSWP6M ESTR Swap-Rate 6M - EUREST7M= + ESTRSWP7M ESTR Swap-Rate 7M - EUREST8M= + ESTRSWP8M ESTR Swap-Rate 8M - EUREST9M= + ESTRSWP9M ESTR Swap-Rate 9M - EUREST1Y= + ESTRSWP1Y ESTR Swap-Rate 1Y - EUREST15M= + ESTRSWP15M ESTR Swap-Rate 15M - EUREST18M= + ESTRSWP18M ESTR Swap-Rate 18M - EUREST21M= + ESTRSWP21M ESTR Swap-Rate 21M - EUREST2Y= + ESTRSWP2Y ESTR Swap-Rate 2Y - EUREST3Y= + ESTRSWP3Y ESTR Swap-Rate 3Y - EUREST4Y= + ESTRSWP4Y ESTR Swap-Rate 4Y - EUREST5Y= + ESTRSWP5Y ESTR Swap-Rate 5Y - EUREST6Y= + ESTRSWP6Y ESTR Swap-Rate 6Y - EUREST7Y= + ESTRSWP7Y ESTR Swap-Rate 7Y - EUREST8Y= + ESTRSWP8Y ESTR Swap-Rate 8Y - EUREST9Y= + ESTRSWP9Y ESTR Swap-Rate 9Y - EUREST10Y= + ESTRSWP10Y ESTR Swap-Rate 10Y - EUREST11Y= + ESTRSWP11Y ESTR Swap-Rate 11Y - EUREST12Y= + ESTRSWP12Y ESTR Swap-Rate 12Y - EUREST15Y= + ESTRSWP15Y ESTR Swap-Rate 15Y - EUREST20Y= + ESTRSWP20Y ESTR Swap-Rate 20Y - EUREST25Y= + ESTRSWP25Y ESTR Swap-Rate 25Y - EUREST30Y= + ESTRSWP30Y ESTR Swap-Rate 30Y @@ -660,4 +660,4 @@ - + \ No newline at end of file diff --git a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract_with_rics.xml b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract_with_rics.xml new file mode 100644 index 000000000..abbfd4b6a --- /dev/null +++ b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract_with_rics.xml @@ -0,0 +1,663 @@ + + UTI12345 + + + net.finmath + finmath-smart-derivative-contract + 0.1.8 + + + + + Counterparty 1 + party1 + + constant + 10000.0 + + + constant + 50000.0 + +
0x627306090abab3a6e1400e9345bc60c78a8bef57
+
+ + Counterparty 2 + party2 + + constant + 10000.0 + + + constant + 50000.0 + +
0xf17f52151ebef6c7334fad080c5704d77216b732
+
+
+ + + 2011-12-03T10:15:30 + + + daily + 17:00 + + + refinitiv + + + EUROSTR= + ESTR + Fixing + 1D + + + EURIBOR6MD= + Euribor6M + Fixing + 6M + + + EUR6MD= + Euribor6M + Deposit + 6M + + + EUR1X7F= + Euribor6M + Forward-Rate-Agreement + 7M + + + EUR2X8F= + Euribor6M + Forward-Rate-Agreement + 8M + + + EUR3X9F= + Euribor6M + Forward-Rate-Agreement + 9M + + + EUR4X10F= + Euribor6M + Forward-Rate-Agreement + 10M + + + EUR6X12F= + Euribor6M + Forward-Rate-Agreement + 12M + + + EUR9X15F= + Euribor6M + Forward-Rate-Agreement + 15M + + + EUR12X18F= + Euribor6M + Forward-Rate-Agreement + 18M + + + EURAB6E2Y= + Euribor6M + Swap-Rate + 2Y + + + EURAB6E3Y= + Euribor6M + Swap-Rate + 3Y + + + EURAB6E4Y= + Euribor6M + Swap-Rate + 4Y + + + EURAB6E5Y= + Euribor6M + Swap-Rate + 5Y + + + EURAB6E6Y= + Euribor6M + Swap-Rate + 6Y + + + EURAB6E7Y= + Euribor6M + Swap-Rate + 7Y + + + EURAB6E8Y= + Euribor6M + Swap-Rate + 8Y + + + EURAB6E9Y= + Euribor6M + Swap-Rate + 9Y + + + EURAB6E10Y= + Euribor6M + Swap-Rate + 10Y + + + EURAB6E11Y= + Euribor6M + Swap-Rate + 11Y + + + EURAB6E12Y= + Euribor6M + Swap-Rate + 12Y + + + EURAB6E13Y= + Euribor6M + Swap-Rate + 13Y + + + EURAB6E14Y= + Euribor6M + Swap-Rate + 14Y + + + EURAB6E15Y= + Euribor6M + Swap-Rate + 15Y + + + EURAB6E16Y= + Euribor6M + Swap-Rate + 16Y + + + EURAB6E17Y= + Euribor6M + Swap-Rate + 17Y + + + EURAB6E18Y= + Euribor6M + Swap-Rate + 18Y + + + EURAB6E19Y= + Euribor6M + Swap-Rate + 19Y + + + EURAB6E20Y= + Euribor6M + Swap-Rate + 20Y + + + EURAB6E21Y= + Euribor6M + Swap-Rate + 21Y + + + EURAB6E22Y= + Euribor6M + Swap-Rate + 22Y + + + EURAB6E23Y= + Euribor6M + Swap-Rate + 23Y + + + EURAB6E24Y= + Euribor6M + Swap-Rate + 24Y + + + EURAB6E25Y= + Euribor6M + Swap-Rate + 25Y + + + EURAB6E26Y= + Euribor6M + Swap-Rate + 26Y + + + EURAB6E27Y= + Euribor6M + Swap-Rate + 27Y + + + EURAB6E28Y= + Euribor6M + Swap-Rate + 28Y + + + EURAB6E29Y= + Euribor6M + Swap-Rate + 29Y + + + EURAB6E30Y= + Euribor6M + Swap-Rate + 30Y + + + EURAB6E40Y= + Euribor6M + Swap-Rate + 40Y + + + EURAB6E50Y= + Euribor6M + Swap-Rate + 50Y + + + EURESTSW= + ESTR + Swap-Rate + 7D + + + EUREST2W= + ESTR + Swap-Rate + 14D + + + EUREST3W= + ESTR + Swap-Rate + 21D + + + EUREST1M= + ESTR + Swap-Rate + 1M + + + EUREST2M= + ESTR + Swap-Rate + 2M + + + EUREST3M= + ESTR + Swap-Rate + 3M + + + EUREST4M= + ESTR + Swap-Rate + 4M + + + EUREST5M= + ESTR + Swap-Rate + 5M + + + EUREST6M= + ESTR + Swap-Rate + 6M + + + EUREST7M= + ESTR + Swap-Rate + 7M + + + EUREST8M= + ESTR + Swap-Rate + 8M + + + EUREST9M= + ESTR + Swap-Rate + 9M + + + EUREST1Y= + ESTR + Swap-Rate + 1Y + + + EUREST15M= + ESTR + Swap-Rate + 15M + + + EUREST18M= + ESTR + Swap-Rate + 18M + + + EUREST21M= + ESTR + Swap-Rate + 21M + + + EUREST2Y= + ESTR + Swap-Rate + 2Y + + + EUREST3Y= + ESTR + Swap-Rate + 3Y + + + EUREST4Y= + ESTR + Swap-Rate + 4Y + + + EUREST5Y= + ESTR + Swap-Rate + 5Y + + + EUREST6Y= + ESTR + Swap-Rate + 6Y + + + EUREST7Y= + ESTR + Swap-Rate + 7Y + + + EUREST8Y= + ESTR + Swap-Rate + 8Y + + + EUREST9Y= + ESTR + Swap-Rate + 9Y + + + EUREST10Y= + ESTR + Swap-Rate + 10Y + + + EUREST11Y= + ESTR + Swap-Rate + 11Y + + + EUREST12Y= + ESTR + Swap-Rate + 12Y + + + EUREST15Y= + ESTR + Swap-Rate + 15Y + + + EUREST20Y= + ESTR + Swap-Rate + 20Y + + + EUREST25Y= + ESTR + Swap-Rate + 25Y + + + EUREST30Y= + ESTR + Swap-Rate + 30Y + + + + + + party1 + + + + + + + + + CP1 + + + + CP2 + + 2022-09-05 + + + + + + + + + 2022-09-07 + + NONE + + + + 2032-09-07 + + MODFOLLOWING + + DEFR + + + + + MODFOLLOWING + + + + 6 + M + 14 + + + + + + 6 + M + + CalculationPeriodEndDate + + FOLLOWING + + + + + + CalculationPeriodStartDate + + -2 + D + Business + NONE + + GBLO + + + + + 6 + M + + + FOLLOWING + + + + + + + + 10000000.00 + + EUR + + + + + EUR-LIBOR-BBA + + 6 + M + + + ACT/360 + + + + + + + + + + 2022-09-07 + + NONE + + + + 2032-09-07 + + FOLLOWING + + + + + FOLLOWING + + + + 1 + Y + 14 + + + + + + 1 + Y + + CalculationPeriodEndDate + + MODFOLLOWING + + + + + + + + 10000000.00 + + EUR + + + + + 0.0395 + + 30E/360 + + + + + + + PARTXXXX + + + P2RTXXXX + + + + +
diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset0.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset0.xml deleted file mode 100644 index beeb3fc78..000000000 --- a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset0.xml +++ /dev/null @@ -1,580 +0,0 @@ - - - 20240301-102107 - - EURAB6E11Y= - Euribor6M - Swap-Rate - 11Y - 0.02581 - 20240301-102053 - - - EUR1X7F= - Euribor6M - Forward-Rate-Agreement - 7M - 0.03815 - 20240301-102021 - - - EUR9X15F= - Euribor6M - Forward-Rate-Agreement - 15M - 0.02937 - 20240301-102051 - - - EURAB6E7Y= - Euribor6M - Swap-Rate - 7Y - 0.02587 - 20240301-102101 - - - EURAB6E9Y= - Euribor6M - Swap-Rate - 9Y - 0.02571 - 20240301-102101 - - - EURAB6E16Y= - Euribor6M - Swap-Rate - 16Y - 0.02585 - 20240301-102043 - - - EURAB6E18Y= - Euribor6M - Swap-Rate - 18Y - 0.02558 - 20240301-102043 - - - EURAB6E30Y= - Euribor6M - Swap-Rate - 30Y - 0.02322 - 20240301-102102 - - - EUREST2W= - ESTR - Swap-Rate - 14D - 0.03907 - 20240301-111753 - - - EUREST3M= - ESTR - Swap-Rate - 3M - 0.03894 - 20240301-102011 - - - EUREST4M= - ESTR - Swap-Rate - 4M - 0.03856 - 20240301-102059 - - - EURAB6E23Y= - Euribor6M - Swap-Rate - 23Y - 0.02471 - 20240301-102044 - - - EURAB6E24Y= - Euribor6M - Swap-Rate - 24Y - 0.02446 - 20240301-102044 - - - EUREST7Y= - ESTR - Swap-Rate - 7Y - 0.02411 - 20240301-102043 - - - EUREST9Y= - ESTR - Swap-Rate - 9Y - 0.02417 - 20240301-102043 - - - EUROSTR= - ESTR - Fixing - 1D - 0.03905 - 20240301-080005 - - - EUREST7M= - ESTR - Swap-Rate - 7M - 0.03711 - 20240301-102102 - - - EUREST9M= - ESTR - Swap-Rate - 9M - 0.03603 - 20240301-102102 - - - EURESTSW= - ESTR - Swap-Rate - 7D - 0.03905 - 20240301-104125 - - - EUREST21M= - ESTR - Swap-Rate - 21M - 0.03024 - 20240301-102023 - - - EURAB6E3Y= - Euribor6M - Swap-Rate - 3Y - 0.02876 - 20240301-102101 - - - EURAB6E4Y= - Euribor6M - Swap-Rate - 4Y - 0.02737 - 20240301-102102 - - - EURAB6E20Y= - Euribor6M - Swap-Rate - 20Y - 0.02532 - 20240301-102100 - - - EURAB6E27Y= - Euribor6M - Swap-Rate - 27Y - 0.02379 - 20240301-102044 - - - EURAB6E29Y= - Euribor6M - Swap-Rate - 29Y - 0.0234 - 20240301-102044 - - - EUR6X12F= - Euribor6M - Forward-Rate-Agreement - 12M - 0.03239 - 20240301-102102 - - - EUR3X9F= - Euribor6M - Forward-Rate-Agreement - 9M - 0.03576 - 20240301-102035 - - - EURAB6E10Y= - Euribor6M - Swap-Rate - 10Y - 0.02574 - 20240301-102102 - - - EURAB6E17Y= - Euribor6M - Swap-Rate - 17Y - 0.02572 - 20240301-102043 - - - EURAB6E19Y= - Euribor6M - Swap-Rate - 19Y - 0.02545 - 20240301-102043 - - - EUREST20Y= - ESTR - Swap-Rate - 20Y - 0.02492 - 20240301-102104 - - - EURAB6E13Y= - Euribor6M - Swap-Rate - 13Y - 0.02597 - 20240301-102043 - - - EURAB6E14Y= - Euribor6M - Swap-Rate - 14Y - 0.02601 - 20240301-102043 - - - EURIBOR6MD= - Euribor6M - Fixing - 6M - 0.03892 - 20240301-110041 - - - EUR2X8F= - Euribor6M - Forward-Rate-Agreement - 8M - 0.03698 - 20240301-102021 - - - EURAB6E40Y= - Euribor6M - Swap-Rate - 40Y - 0.02159 - 20240301-102043 - - - EUREST30Y= - ESTR - Swap-Rate - 30Y - 0.02337 - 20240301-102045 - - - EUR4X10F= - Euribor6M - Forward-Rate-Agreement - 10M - 0.03469 - 20240301-102021 - - - EURAB6E2Y= - Euribor6M - Swap-Rate - 2Y - 0.03136 - 20240301-102101 - - - EURAB6E5Y= - Euribor6M - Swap-Rate - 5Y - 0.02658 - 20240301-102102 - - - EURAB6E21Y= - Euribor6M - Swap-Rate - 21Y - 0.02514 - 20240301-102044 - - - EURAB6E26Y= - Euribor6M - Swap-Rate - 26Y - 0.024 - 20240301-102044 - - - EURAB6E28Y= - Euribor6M - Swap-Rate - 28Y - 0.02359 - 20240301-102044 - - - EUREST1M= - ESTR - Swap-Rate - 1M - 0.03906 - 20240301-111753 - - - EUREST6M= - ESTR - Swap-Rate - 6M - 0.03762 - 20240301-102102 - - - EUREST8M= - ESTR - Swap-Rate - 8M - 0.03652 - 20240301-102105 - - - EUREST15M= - ESTR - Swap-Rate - 15M - 0.03278 - 20240301-102054 - - - EUREST2Y= - ESTR - Swap-Rate - 2Y - 0.02931 - 20240301-102102 - - - EUREST5Y= - ESTR - Swap-Rate - 5Y - 0.02463 - 20240301-102026 - - - EUREST11Y= - ESTR - Swap-Rate - 11Y - 0.0245 - 20240301-102026 - - - EUR6MD= - Euribor6M - Deposit - 6M - 0.0408 - 20240301-102101 - - - EURAB6E12Y= - Euribor6M - Swap-Rate - 12Y - 0.0259 - 20240301-102101 - - - EURAB6E15Y= - Euribor6M - Swap-Rate - 15Y - 0.02599 - 20240301-102102 - - - EUREST25Y= - ESTR - Swap-Rate - 25Y - 0.02415 - 20240301-102104 - - - EUREST3Y= - ESTR - Swap-Rate - 3Y - 0.02667 - 20240301-102028 - - - EUREST4Y= - ESTR - Swap-Rate - 4Y - 0.02534 - 20240301-102027 - - - EUREST10Y= - ESTR - Swap-Rate - 10Y - 0.0243 - 20240301-102044 - - - EUR12X18F= - Euribor6M - Forward-Rate-Agreement - 18M - 0.02702 - 20240301-102026 - - - EURAB6E6Y= - Euribor6M - Swap-Rate - 6Y - 0.02613 - 20240301-102102 - - - EURAB6E8Y= - Euribor6M - Swap-Rate - 8Y - 0.02575 - 20240301-102102 - - - EURAB6E22Y= - Euribor6M - Swap-Rate - 22Y - 0.02494 - 20240301-102044 - - - EURAB6E25Y= - Euribor6M - Swap-Rate - 25Y - 0.02423 - 20240301-102100 - - - EUREST3W= - ESTR - Swap-Rate - 21D - 0.03902 - 20240301-110741 - - - EUREST2M= - ESTR - Swap-Rate - 2M - 0.03902 - 20240301-111641 - - - EUREST5M= - ESTR - Swap-Rate - 5M - 0.03805 - 20240301-102059 - - - EUREST18M= - ESTR - Swap-Rate - 18M - 0.03141 - 20240301-102054 - - - EURAB6E50Y= - Euribor6M - Swap-Rate - 50Y - 0.02013 - 20240301-102043 - - - EUREST1Y= - ESTR - Swap-Rate - 1Y - 0.03446 - 20240301-102059 - - - EUREST6Y= - ESTR - Swap-Rate - 6Y - 0.02426 - 20240301-102026 - - - EUREST8Y= - ESTR - Swap-Rate - 8Y - 0.02407 - 20240301-102106 - - - EUREST12Y= - ESTR - Swap-Rate - 12Y - 0.02469 - 20240301-102044 - - - EUREST15Y= - ESTR - Swap-Rate - 15Y - 0.02513 - 20240301-102044 - - diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset1.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset1.xml index 5860a90ab..061ef9c25 100644 --- a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset1.xml +++ b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset1.xml @@ -2,353 +2,353 @@ 20230131-143523 - EURESTSW= + ESTRSWP7D 0.019761 20230131-143523 - EUREST2W= + ESTRSWP14D 0.021920000000000002 20230131-143523 - EUREST3W= + ESTRSWP21D 0.022648 20230131-143523 - EUREST1M= + ESTRSWP1M 0.023009500000000002 20230131-143523 - EUREST2M= + ESTRSWP2M 0.024499 20230131-143523 - EUREST3M= + ESTRSWP3M 0.025866499999999997 20230131-143523 - EUREST4M= + ESTRSWP4M 0.0271695 20230131-143523 - EUREST5M= + ESTRSWP5M 0.028263999999999997 20230131-143523 - EUREST6M= + ESTRSWP6M 0.0291575 20230131-143523 - EUR6MD= + EUB6DEP6M 0.03 20230131-143523 - EUREST7M= + ESTRSWP7M 0.03 20230131-143523 - EUR1X7F= + EUB6FRA7M 0.03202 20230131-143523 - EUREST8M= + ESTRSWP8M 0.030505 20230131-143523 - EUR2X8F= + EUB6FRA8M 0.03359 20230131-143523 - EUR3X9F= + EUB6FRA9M 0.03458 20230131-143523 - EUREST9M= + ESTRSWP9M 0.0309715 20230131-143523 - EUR4X10F= + EUB6FRA10M 0.03538 20230131-143523 - EUR6X12F= + EUB6FRA12M 0.03565 20230131-143523 - EUREST1Y= + ESTRSWP1Y 0.03175 20230131-143523 - EUREST15M= + ESTRSWP15M 0.031799999999999995 20230131-143523 - EUR9X15F= + EUB6FRA15M 0.03471 20230131-143523 - EUREST18M= + ESTRSWP18M 0.031470000000000005 20230131-143523 - EUR12X18F= + EUB6FRA18M 0.03323 20230131-143523 - EUREST21M= + ESTRSWP21M 0.030990000000000004 20230131-143523 - EURAB6E2Y= + EUB6SWP2Y 0.03281 20230131-143523 - EUREST2Y= + ESTRSWP2Y 0.03049 20230131-143523 - EURAB6E3Y= + EUB6SWP3Y 0.03109 20230131-143523 - EUREST3Y= + ESTRSWP3Y 0.02852 20230131-143523 - EURAB6E4Y= + EUB6SWP4Y 0.029930000000000002 20230131-143523 - EUREST4Y= + ESTRSWP4Y 0.02732 20230131-143523 - EURAB6E5Y= + EUB6SWP5Y 0.029299999999999996 20230131-143523 - EUREST5Y= + ESTRSWP5Y 0.026605 20230131-143523 - EURAB6E6Y= + EUB6SWP6Y 0.028920000000000005 20230131-143523 - EUREST6Y= + ESTRSWP6Y 0.026165000000000004 20230131-143523 - EUREST7Y= + ESTRSWP7Y 0.025925000000000004 20230131-143523 - EURAB6E7Y= + EUB6SWP7Y 0.0287 20230131-143523 - EUREST8Y= + ESTRSWP8Y 0.025854999999999996 20230131-143523 - EURAB6E8Y= + EUB6SWP8Y 0.028609999999999997 20230131-143523 - EURAB6E9Y= + EUB6SWP9Y 0.028609999999999997 20230131-143523 - EUREST9Y= + ESTRSWP9Y 0.025905 20230131-143523 - EUREST10Y= + ESTRSWP10Y 0.02609 20230131-143523 - EURAB6E10Y= + EUB6SWP10Y 0.028674999999999996 20230131-143523 - EUREST11Y= + ESTRSWP11Y 0.02624 20230131-143523 - EURAB6E11Y= + EUB6SWP11Y 0.02872 20230131-143523 - EUREST12Y= + ESTRSWP12Y 0.026325 20230131-143523 - EURAB6E12Y= + EUB6SWP12Y 0.028739999999999998 20230131-143523 - EURAB6E13Y= + EUB6SWP13Y 0.02872 20230131-143523 - EURAB6E14Y= + EUB6SWP14Y 0.028419999999999997 20230131-143523 - EUREST15Y= + ESTRSWP15Y 0.026365 20230131-143523 - EURAB6E15Y= + EUB6SWP15Y 0.02849 20230131-143523 - EURAB6E16Y= + EUB6SWP16Y 0.028259999999999997 20230131-143523 - EURAB6E17Y= + EUB6SWP17Y 0.027960000000000002 20230131-143523 - EURAB6E18Y= + EUB6SWP18Y 0.027610000000000003 20230131-143523 - EURAB6E19Y= + EUB6SWP19Y 0.02724 20230131-143523 - EUREST20Y= + ESTRSWP20Y 0.02535 20230131-143523 - EURAB6E20Y= + EUB6SWP20Y 0.026855000000000004 20230131-143523 - EURAB6E21Y= + EUB6SWP21Y 0.026549999999999997 20230131-143523 - EURAB6E22Y= + EUB6SWP22Y 0.02618 20230131-143523 - EURAB6E23Y= + EUB6SWP23Y 0.0258 20230131-143523 - EURAB6E24Y= + EUB6SWP24Y 0.02535 20230131-143523 - EURAB6E25Y= + EUB6SWP25Y 0.025004999999999996 20230131-143523 - EUREST25Y= + ESTRSWP25Y 0.023905000000000003 20230131-143523 - EURAB6E26Y= + EUB6SWP26Y 0.024700000000000003 20230131-143523 - EURAB6E27Y= + EUB6SWP27Y 0.02435 20230131-143523 - EURAB6E28Y= + EUB6SWP28Y 0.02403 20230131-143523 - EURAB6E29Y= + EUB6SWP29Y 0.02373 20230131-143523 - EUREST30Y= + ESTRSWP30Y 0.022664999999999998 20230131-143523 - EURAB6E30Y= + EUB6SWP30Y 0.023405 20230131-143523 - EURAB6E40Y= + EUB6SWP40Y 0.02093 20230131-143523 - EURAB6E50Y= + EUB6SWP50Y 0.01899 20230131-143523 - +
\ No newline at end of file diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset2.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset2.xml index 701d0a114..85cbf23bc 100644 --- a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset2.xml +++ b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset2.xml @@ -2,353 +2,353 @@ 20220908-170110 - EURESTSW= + ESTRSWP7D 0.0064125 20220908-170110 - EUREST2W= + ESTRSWP14D 0.0065595 20220908-170110 - EUREST3W= + ESTRSWP21D 0.006567000000000001 20220908-170110 - EUREST1M= + ESTRSWP1M 0.006572 20220908-170110 - EUREST2M= + ESTRSWP2M 0.009576 20220908-170110 - EUREST3M= + ESTRSWP3M 0.011339000000000002 20220908-170110 - EUREST4M= + ESTRSWP4M 0.01361 20220908-170110 - EUREST5M= + ESTRSWP5M 0.01552 20220908-170110 - EUR6MD= + EUB6DEP6M 0.01875 20220908-170110 - EUREST6M= + ESTRSWP6M 0.017040000000000003 20220908-170110 - EUR1X7F= + EUB6FRA7M 0.021630000000000003 20220908-170110 - EUREST7M= + ESTRSWP7M 0.0186 20220908-170110 - EUR2X8F= + EUB6FRA8M 0.025230000000000002 20220908-170110 - EUREST8M= + ESTRSWP8M 0.01992 20220908-170110 - EUR3X9F= + EUB6FRA9M 0.02767 20220908-170110 - EUREST9M= + ESTRSWP9M 0.020934999999999995 20220908-170110 - EUR4X10F= + EUB6FRA10M 0.02924 20220908-170110 - EUR6X12F= + EUB6FRA12M 0.031920000000000004 20220908-170110 - EUREST1Y= + ESTRSWP1Y 0.023434999999999997 20220908-170110 - EUREST15M= + ESTRSWP15M 0.024894999999999997 20220908-170110 - EUR9X15F= + EUB6FRA15M 0.03327 20220908-170110 - EUR12X18F= + EUB6FRA18M 0.03161 20220908-170110 - EUREST18M= + ESTRSWP18M 0.0258 20220908-170110 - EUREST21M= + ESTRSWP21M 0.02642 20220908-170110 - EUREST2Y= + ESTRSWP2Y 0.02681 20220908-170110 - EURAB6E2Y= + EUB6SWP2Y 0.029539999999999997 20220908-170110 - EURAB6E3Y= + EUB6SWP3Y 0.0297 20220908-170110 - EUREST3Y= + ESTRSWP3Y 0.026760000000000003 20220908-170110 - EUREST4Y= + ESTRSWP4Y 0.026494999999999998 20220908-170110 - EURAB6E4Y= + EUB6SWP4Y 0.029459999999999997 20220908-170110 - EUREST5Y= + ESTRSWP5Y 0.026304999999999995 20220908-170110 - EURAB6E5Y= + EUB6SWP5Y 0.02927 20220908-170110 - EUREST6Y= + ESTRSWP6Y 0.026070000000000003 20220908-170110 - EURAB6E6Y= + EUB6SWP6Y 0.02902 20220908-170110 - EUREST7Y= + ESTRSWP7Y 0.025774999999999996 20220908-170110 - EURAB6E7Y= + EUB6SWP7Y 0.02878 20220908-170110 - EURAB6E8Y= + EUB6SWP8Y 0.02864 20220908-170110 - EUREST8Y= + ESTRSWP8Y 0.02569 20220908-170110 - EURAB6E9Y= + EUB6SWP9Y 0.028579999999999998 20220908-170110 - EUREST9Y= + ESTRSWP9Y 0.02565 20220908-170110 - EUREST10Y= + ESTRSWP10Y 0.025670000000000002 20220908-170110 - EURAB6E10Y= + EUB6SWP10Y 0.02857 20220908-170110 - EURAB6E11Y= + EUB6SWP11Y 0.028520000000000004 20220908-170110 - EUREST11Y= + ESTRSWP11Y 0.02568 20220908-170110 - EURAB6E12Y= + EUB6SWP12Y 0.028399999999999998 20220908-170110 - EUREST12Y= + ESTRSWP12Y 0.025595 20220908-170110 - EURAB6E13Y= + EUB6SWP13Y 0.028300000000000002 20220908-170110 - EURAB6E14Y= + EUB6SWP14Y 0.028120000000000003 20220908-170110 - EURAB6E15Y= + EUB6SWP15Y 0.02782 20220908-170110 - EUREST15Y= + ESTRSWP15Y 0.02535 20220908-170110 - EURAB6E16Y= + EUB6SWP16Y 0.027469999999999998 20220908-170110 - EURAB6E17Y= + EUB6SWP17Y 0.02705 20220908-170110 - EURAB6E18Y= + EUB6SWP18Y 0.026580000000000003 20220908-170110 - EURAB6E19Y= + EUB6SWP19Y 0.026079999999999996 20220908-170110 - EURAB6E20Y= + EUB6SWP20Y 0.025570000000000002 20220908-170110 - EUREST20Y= + ESTRSWP20Y 0.023715 20220908-170110 - EURAB6E21Y= + EUB6SWP21Y 0.02511 20220908-170110 - EURAB6E22Y= + EUB6SWP22Y 0.024569999999999998 20220908-170110 - EURAB6E23Y= + EUB6SWP23Y 0.024169999999999997 20220908-170110 - EURAB6E24Y= + EUB6SWP24Y 0.02373 20220908-170110 - EURAB6E25Y= + EUB6SWP25Y 0.0233 20220908-170110 - EUREST25Y= + ESTRSWP25Y 0.022010000000000002 20220908-170110 - EURAB6E26Y= + EUB6SWP26Y 0.0229 20220908-170110 - EURAB6E27Y= + EUB6SWP27Y 0.022489999999999996 20220908-170110 - EURAB6E28Y= + EUB6SWP28Y 0.022090000000000002 20220908-170110 - EURAB6E29Y= + EUB6SWP29Y 0.021709999999999997 20220908-170110 - EURAB6E30Y= + EUB6SWP30Y 0.021349999999999997 20220908-170110 - EUREST30Y= + ESTRSWP30Y 0.020489999999999998 20220908-170110 - EURAB6E40Y= + EUB6SWP40Y 0.01891 20220908-170110 - EURAB6E50Y= + EUB6SWP50Y 0.01711 20220908-170110 - +
\ No newline at end of file diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml index 5e527fc59..4ccb470ff 100644 --- a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml +++ b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml @@ -2,403 +2,403 @@ 20230131-143523 - EURESTSW= + ESTRSWP7D 0.02397 20230131-143523 - EUREST2W= + ESTRSWP14D 0.02398 20230131-143523 - EUREST3W= + ESTRSWP21D 0.02422 20230131-143523 - EUREST1M= + ESTRSWP1M 0.02583 20230131-143523 - EUREST2M= + ESTRSWP2M 0.02731 20230131-143523 - EUREST3M= + ESTRSWP3M 0.02888 20230131-143523 - EUREST4M= + ESTRSWP4M 0.03019 20230131-143523 - EUREST5M= + ESTRSWP5M 0.03128 20230131-143523 - EUREST6M= + ESTRSWP6M 0.03239 20230131-143523 - EUR6MD= + EUB6DEP6M 0.03445 20230131-143523 - EUREST7M= + ESTRSWP7M 0.03311 20230131-143523 - EUR1X7F= + EUB6FRA7M 0.03499 20230131-143523 - EUR2X8F= + EUB6FRA8M 0.03659 20230131-143523 - EUREST8M= + ESTRSWP8M 0.03379 20230131-143523 - EUREST9M= + ESTRSWP9M 0.03437 20230131-143523 - EUR3X9F= + EUB6FRA9M 0.0381 20230131-143523 - EUR4X10F= + EUB6FRA10M 0.03883 20230131-143523 - EUREST1Y= + ESTRSWP1Y 0.03558 20230131-143523 - EUR6X12F= + EUB6FRA12M 0.03988 20230131-143523 - EUREST15M= + ESTRSWP15M 0.03596 20230131-143523 - EUR9X15F= + EUB6FRA15M 0.03993 20230131-143523 - EUR12X18F= + EUB6FRA18M 0.03908 20230131-143523 - EUREST18M= + ESTRSWP18M 0.03607 20230131-143523 - EUREST21M= + ESTRSWP21M 0.03595 20230131-143523 - EURAB6E2Y= + EUB6SWP2Y 0.03775 20230131-143523 - EUREST2Y= + ESTRSWP2Y 0.03568 20230131-143523 - EUREST3Y= + ESTRSWP3Y 0.03395 20230131-143523 - EURAB6E3Y= + EUB6SWP3Y 0.03624 20230131-143523 - EUREST4Y= + ESTRSWP4Y 0.03247 20230131-143523 - EURAB6E4Y= + EUB6SWP4Y 0.03482 20230131-143523 - EUREST5Y= + ESTRSWP5Y 0.03148 20230131-143523 - EURAB6E5Y= + EUB6SWP5Y 0.03393 20230131-143523 - EUREST6Y= + ESTRSWP6Y 0.0309 20230131-143523 - EURAB6E6Y= + EUB6SWP6Y 0.03333 20230131-143523 - EURAB6E7Y= + EUB6SWP7Y 0.03294 20230131-143523 - EUREST7Y= + ESTRSWP7Y 0.03051 20230131-143523 - EUREST8Y= + ESTRSWP8Y 0.03032 20230131-143523 - EURAB6E8Y= + EUB6SWP8Y 0.03272 20230131-143523 - EURAB6E9Y= + EUB6SWP9Y 0.0326 20230131-143523 - EUREST9Y= + ESTRSWP9Y 0.03025 20230131-143523 - EURAB6E10Y= + EUB6SWP10Y 0.03253 20230131-143523 - EUREST10Y= + ESTRSWP10Y 0.03026 20230131-143523 - EURAB6E11Y= + EUB6SWP11Y 0.03251 20230131-143523 - EUREST11Y= + ESTRSWP11Y 0.03032 20230131-143523 - EURAB6E12Y= + EUB6SWP12Y 0.03245 20230131-143523 - EUREST12Y= + ESTRSWP12Y 0.03037 20230131-143523 - EURAB6E13Y= + EUB6SWP13Y 0.03244 20230131-143523 - EURAB6E14Y= + EUB6SWP14Y 0.03236 20230131-143523 - EURAB6E15Y= + EUB6SWP15Y 0.03221 20230131-143523 - EUREST15Y= + ESTRSWP15Y 0.03036 20230131-143523 - EURAB6E16Y= + EUB6SWP16Y 0.03198 20230131-143523 - EURAB6E17Y= + EUB6SWP17Y 0.03169 20230131-143523 - EURAB6E18Y= + EUB6SWP18Y 0.03135 20230131-143523 - EURAB6E19Y= + EUB6SWP19Y 0.03098 20230131-143523 - EURAB6E20Y= + EUB6SWP20Y 0.0306 20230131-143523 - EUREST20Y= + ESTRSWP20Y 0.02924 20230131-143523 - EURAB6E21Y= + EUB6SWP21Y 0.03023 20230131-143523 - EURAB6E22Y= + EUB6SWP22Y 0.02986 20230131-143523 - EURAB6E23Y= + EUB6SWP23Y 0.0295 20230131-143523 - EURAB6E24Y= + EUB6SWP24Y 0.02913 20230131-143523 - EURAB6E25Y= + EUB6SWP25Y 0.0288 20230131-143523 - EUREST25Y= + ESTRSWP25Y 0.02783 20230131-143523 - EURAB6E26Y= + EUB6SWP26Y 0.02846 20230131-143523 - EURAB6E27Y= + EUB6SWP27Y 0.02813 20230131-143523 - EURAB6E28Y= + EUB6SWP28Y 0.02781 20230131-143523 - EURAB6E29Y= + EUB6SWP29Y 0.0275 20230131-143523 - EUREST30Y= + ESTRSWP30Y 0.02657 20230131-143523 - EURAB6E30Y= + EUB6SWP30Y 0.02722 20230131-143523 - EURAB6E40Y= + EUB6SWP40Y 0.02503 20230131-143523 - EURAB6E50Y= + EUB6SWP50Y 0.02339 20230131-143523 - EUROSTR= + ESTRFIX1D 0.0235 20221214-000000 - EURIBOR6MD= + EUB6FIX6M 0.0267 20221214-000000 - EUROSTR= + ESTRFIX1D 0.0235 20221215-000000 - EURIBOR6MD= + EUB6FIX6M 0.0275 20221215-000000 - EUROSTR= + ESTRFIX1D 0.0235 20221218-000000 - EURIBOR6MD= + EUB6FIX6M 0.0282 20221218-000000 - EUROSTR= + ESTRFIX1D 0.0235 20221219-000000 - EURIBOR6MD= + EUB6FIX6M 0.0285 20221219-000000 - EUROSTR= + ESTRFIX1D 0.0235 20221220-000000 - EURIBOR6MD= + EUB6FIX6M 0.0289 20221220-000000 - +
\ No newline at end of file diff --git a/src/main/resources/schemas/openapi-schemas/LegacyMarginRequest.yml b/src/main/resources/schemas/openapi-schemas/MarginRequest.yml similarity index 100% rename from src/main/resources/schemas/openapi-schemas/LegacyMarginRequest.yml rename to src/main/resources/schemas/openapi-schemas/MarginRequest.yml diff --git a/src/main/resources/schemas/openapi-schemas/LegacyValueRequest.yml b/src/main/resources/schemas/openapi-schemas/ValueRequest.yml similarity index 100% rename from src/main/resources/schemas/openapi-schemas/LegacyValueRequest.yml rename to src/main/resources/schemas/openapi-schemas/ValueRequest.yml diff --git a/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java b/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java index c066954c6..94aa5c59b 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java @@ -169,14 +169,14 @@ void handlerTest() throws java.lang.Exception { // String product = handler.getContractAsXmlString(); - final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml").readAllBytes(), StandardCharsets.UTF_8); + final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/legacy/md_testset_refinitiv.xml").readAllBytes(), StandardCharsets.UTF_8); MarginCalculator marginCalculator = new MarginCalculator(); ValueResult valuationResult = marginCalculator.getValue(marketData, handler.getContractAsXmlString()); double value = valuationResult.getValue().doubleValue(); - Assertions.assertEquals(-549345.3, value, 0.005, "Valuation"); + Assertions.assertEquals(-881079.11, value, 0.005, "Valuation"); System.out.println(valuationResult); diff --git a/src/test/java/net/finmath/smartcontract/settlement/SettlementTests.java b/src/test/java/net/finmath/smartcontract/settlement/SettlementTests.java index bc3e44c9a..827d1d563 100644 --- a/src/test/java/net/finmath/smartcontract/settlement/SettlementTests.java +++ b/src/test/java/net/finmath/smartcontract/settlement/SettlementTests.java @@ -36,7 +36,7 @@ void testGenerateSettlementXML() throws Exception{ ZonedDateTime settlementTime = ZonedDateTime.of(LocalDate.now(), LocalTime.of(17,0,0), zone); ZonedDateTime settlementTimeNext = settlementTime.plusDays(1); - final String marketDataXMLStr = new String(SettlementTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset0.xml").readAllBytes(), StandardCharsets.UTF_8); + final String marketDataXMLStr = new String(SettlementTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); StringReader reader = new StringReader(marketDataXMLStr); JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java index c053a40f0..1954745c4 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java @@ -2,8 +2,11 @@ import jakarta.xml.bind.JAXBContext; import jakarta.xml.bind.Marshaller; +import jakarta.xml.bind.Unmarshaller; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; +import net.finmath.smartcontract.product.xml.JAXBTests; import net.finmath.smartcontract.product.xml.SDCXMLParser; +import net.finmath.smartcontract.product.xml.Smartderivativecontract; import net.finmath.smartcontract.valuation.client.ValuationClient; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; @@ -11,6 +14,7 @@ import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataset; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationParserDataItems; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.xml.sax.SAXException; @@ -19,8 +23,7 @@ import java.nio.charset.StandardCharsets; import java.time.LocalDate; import java.time.LocalDateTime; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; public class DataParseTests { @@ -72,9 +75,26 @@ void readHistoricJsonScenariosIntoMarketDataListObjects() throws Exception{ final String fileName = "timeseriesdatamap.json"; final List scenarioListRaw = CalibrationParserDataItems.getScenariosFromJsonFile(fileName).stream().filter(S -> S.getDate().toLocalDate().isAfter(startDate)).filter(S -> S.getDate().toLocalDate().isBefore(maturity)).collect(Collectors.toList()); final List scenarioList = scenarioListRaw.stream().map(scenario -> scenario.getScaled(100)).toList(); + final String productData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); + List specList = productDescriptor.getMarketdataItemList(); - final List ListOfMarketDataLists = scenarioList.stream().map(CalibrationDataset::toMarketDataList).toList(); + Set items = scenarioList.get(0).getDataPoints().stream().map(point -> { + CalibrationDataItem.Spec spec_with_ric = specList.stream().filter(spec -> spec.getMaturity().equals(point.getMaturity()) && spec.getProductName().equals(point.getProductName()) && spec.getCurveName().equals(point.getCurveName())).findAny().orElse(null); + return spec_with_ric == null ? null : new CalibrationDataItem(spec_with_ric, point.getQuote(), point.getDateTime()); + }).filter(Objects::nonNull).collect(Collectors.toSet()); + + + + final List ListOfMarketDataLists = scenarioList.stream().map(CalibrationDataset::toMarketDataList).toList(); + JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); + Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); + jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + for(int i=0; i specList = productDescriptor.getMarketdataItemList(); CalibrationDataset set = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketData,specList); - Assertions.assertEquals(specList.size(), set.getDataPoints().size()); + Assertions.assertEquals(specList.size(), set.getDataPoints().size()+2); //Fixings are missing in this marketdataset } +//@Disabled + @Test + @Disabled + void changeSymbols() throws Exception{ + //String sdcXML = new String(DataParseTests.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + String sdcXML = new String(JAXBTests.class.getClassLoader().getResourceAsStream("generators/eur_euribor_y_s_with_fixings.xml").readAllBytes(), StandardCharsets.UTF_8); + + + String path = JAXBTests.class.getClassLoader().getResource("net.finmath.smartcontract.product.xml/smartderivativecontract_with_rics.xml").getPath(); + File file = new File(path); + + JAXBContext jaxbContext = JAXBContext.newInstance(Smartderivativecontract.class); + Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); + + + Smartderivativecontract sdc = (Smartderivativecontract) jaxbUnmarshaller.unmarshal(file); + + + Smartderivativecontract.Settlement.Marketdata.Marketdataitems items = sdc.getSettlement().getMarketdata().getMarketdataitems(); + List list = items.getItem(); + Map dict = new HashMap<>(); + list.stream().forEach(it->{ + String symbol = (it.getCurve().toString().replaceAll("Euribor6M","EUB6").replaceAll("ESTR","ESTR")+it.getType().toString().replaceAll("Fixing","FIX").replaceAll("Deposit","DEP").replaceAll("Forward-Rate-Agreement","FRA").replaceAll("Swap-Rate","SWP")+it.getTenor().toString()).replaceAll("\\[","").replaceAll("\\]",""); + dict.put(it.getSymbol().toString().replaceAll("\\[","").replaceAll("\\]",""),symbol); + }); + + + /*Marshaller marshaller = jaxbContext.createMarshaller(); + marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + marshaller.marshal(sdc, outputStream); + String xmlString = outputStream.toString().replaceAll("", "").replaceAll("fpml:", ""); + */ + + for(Map.Entry entry : dict.entrySet()) + sdcXML = sdcXML.replaceAll(entry.getKey().toString(), entry.getValue().toString()); + + + FileWriter writer = new FileWriter("xml_adj.xml"); + writer.write(sdcXML); + writer.close(); + } + } diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java index b1a12d84f..c76b5f66d 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java @@ -48,7 +48,7 @@ void initializeTests() throws IOException, ParserConfigurationException, SAXExce // data obtained from the new livefeed implementation. Contains several fixings. InputStream sdcmlStream = CalibrationTests.class.getClassLoader() .getResourceAsStream( - "net.finmath.smartcontract.product.xml/smartderivativecontract.xml") // standard plain swap template + "net.finmath.smartcontract.product.xml/smartderivativecontract_with_rics.xml") // standard plain swap template ) { final String marketDataMessageContents = new String( Objects.requireNonNull(marketDataMessageStream).readAllBytes(), StandardCharsets.UTF_8); diff --git a/src/test/java/net/finmath/smartcontract/valuation/service/PlainSwapEditorControllerTest.java b/src/test/java/net/finmath/smartcontract/valuation/service/PlainSwapEditorControllerTest.java index 8f252fe52..8bfee29b7 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/service/PlainSwapEditorControllerTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/service/PlainSwapEditorControllerTest.java @@ -7,6 +7,7 @@ import net.finmath.smartcontract.valuation.service.config.MockUserAuthConfig; import net.finmath.smartcontract.valuation.service.controllers.PlainSwapEditorController; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.extension.ExtendWith; diff --git a/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java b/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java index afffc0af7..78e568fb8 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java @@ -1,9 +1,9 @@ package net.finmath.smartcontract.valuation.service; import com.fasterxml.jackson.databind.ObjectMapper; +import net.finmath.smartcontract.model.MarginRequest; +import net.finmath.smartcontract.model.ValueRequest; import net.finmath.smartcontract.valuation.client.ValuationClient; -import net.finmath.smartcontract.model.LegacyMarginRequest; -import net.finmath.smartcontract.model.LegacyValueRequest; import net.finmath.smartcontract.valuation.service.config.BasicAuthWebSecurityConfiguration; import net.finmath.smartcontract.valuation.service.config.MockUserAuthConfig; import net.finmath.smartcontract.valuation.service.controllers.ValuationController; @@ -49,13 +49,13 @@ public void getMargin(@Autowired MockMvc mockMvc) throws Exception { final String marketDataEnd = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml").readAllBytes(), StandardCharsets.UTF_8); final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream(productXMLFile).readAllBytes(), StandardCharsets.UTF_8); - final LegacyMarginRequest marginRequest = new LegacyMarginRequest().marketDataStart(marketDataStart).marketDataEnd(marketDataEnd).tradeData(product).valuationDate(LocalDateTime.now().toString()); + final MarginRequest marginRequest = new MarginRequest().marketDataStart(marketDataStart).marketDataEnd(marketDataEnd).tradeData(product).valuationDate(LocalDateTime.now().toString()); ObjectMapper objectMapper = new ObjectMapper(); String json = objectMapper.writeValueAsString(marginRequest); mockMvc.perform(MockMvcRequestBuilders - .post("/valuation/legacy/margin") + .post("/valuation/margin") .contentType(MediaType.APPLICATION_JSON) .accept(MediaType.APPLICATION_JSON) .content(json) @@ -71,13 +71,13 @@ public void getValue(@Autowired MockMvc mockMvc) throws Exception { final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream(productXMLFile).readAllBytes(), StandardCharsets.UTF_8); - final LegacyValueRequest valueRequest = new LegacyValueRequest().marketData(marketData).tradeData(product).valuationDate(LocalDateTime.now().toString()); + final ValueRequest valueRequest = new ValueRequest().marketData(marketData).tradeData(product).valuationDate(LocalDateTime.now().toString()); ObjectMapper objectMapper = new ObjectMapper(); String json = objectMapper.writeValueAsString(valueRequest); mockMvc.perform(MockMvcRequestBuilders - .post("/valuation/legacy/value").contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON).content(json).characterEncoding("utf-8")) + .post("/valuation/value").contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON).content(json).characterEncoding("utf-8")) .andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print()); } From 73b669c7f8a11dd5a3fa69c9dcf30a9d1bb112a5 Mon Sep 17 00:00:00 2001 From: pekola Date: Thu, 14 Mar 2024 23:25:36 +0100 Subject: [PATCH 013/105] added an exception when calibrationitems-set is empty --- .../curvecalibration/CalibrationParserDataItems.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java index 98f997eac..bc5d92728 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java @@ -121,8 +121,13 @@ public static CalibrationDataset getCalibrationDataSetFromXML(final String xmlS calibrationDataItems.addAll(calibrationDataItemSet); }); + if(calibrationDataItems.isEmpty()) + throw new RuntimeException("No calibration items detected."); + CalibrationDataset set = new CalibrationDataset(calibrationDataItems, marketDataList.getRequestTimeStamp()); + + return set; } From dc943077d0e7d317eba7a50d645da6e05e091c29 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 15 Mar 2024 07:55:32 +0100 Subject: [PATCH 014/105] switch from MarketDataSet to MarketDataList --- .../data => model}/MarketDataList.java | 14 +- .../product/xml/SDCXMLParser.java | 20 +- .../smartcontract/settlement/Settlement.java | 3 +- .../implementation/MarginCalculator.java | 54 ++- .../marketdata/LaunchAGenerator.java | 2 +- .../curvecalibration/CalibrationDataset.java | 2 +- .../CalibrationParserDataItems.java | 6 +- .../marketdata/data/LocalDateTimeAdapter.java | 1 - .../marketdata/data/MarketDataPoint.java | 22 +- .../MarketDataGeneratorRandomFeed.java | 2 +- .../MarketDataGeneratorScenarioList.java | 2 +- .../MarketDataGeneratorWebsocket.java | 2 +- .../controllers/ValuationController.java | 9 +- .../valuation/client/settlement_testset_1.xml | 367 ++++++++++++++++++ .../client/settlement_testset_initial.xml | 367 ++++++++++++++++++ .../settlement/SettlementTests.java | 9 +- .../implementation/MarginCalculatorTest.java | 13 - .../valuation/marketdata/DataParseTests.java | 2 +- .../valuation/marketdata/GeneratorTests.java | 6 +- 19 files changed, 839 insertions(+), 64 deletions(-) rename src/main/java/net/finmath/smartcontract/{valuation/marketdata/data => model}/MarketDataList.java (81%) create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_1.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_initial.xml diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataList.java b/src/main/java/net/finmath/smartcontract/model/MarketDataList.java similarity index 81% rename from src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataList.java rename to src/main/java/net/finmath/smartcontract/model/MarketDataList.java index 070f28467..6100bd36a 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataList.java +++ b/src/main/java/net/finmath/smartcontract/model/MarketDataList.java @@ -1,4 +1,4 @@ -package net.finmath.smartcontract.valuation.marketdata.data; +package net.finmath.smartcontract.model; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; @@ -9,6 +9,8 @@ import jakarta.xml.bind.annotation.XmlType; import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataset; +import net.finmath.smartcontract.valuation.marketdata.data.LocalDateTimeAdapter; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; import java.time.LocalDateTime; import java.util.ArrayList; @@ -57,8 +59,7 @@ public String serializeToJson() { .configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); try { - String e = mapper.writerFor(MarketDataList.class).writeValueAsString(this); - return e; + return mapper.writerFor(MarketDataList.class).writeValueAsString(this); } catch (Exception e){ return ""; @@ -69,4 +70,11 @@ public CalibrationDataset mapToCalibrationDataSet(){ return null; } + @Override + public String toString() { + return "MarketDataList{" + + "points=" + points + + ", requestTimeStamp=" + requestTimeStamp + + '}'; + } } diff --git a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java index 02327557f..72f1b2098 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java @@ -1,7 +1,11 @@ package net.finmath.smartcontract.product.xml; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.Unmarshaller; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; +import net.finmath.smartcontract.model.MarketDataList; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; @@ -9,8 +13,10 @@ import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.stream.StreamSource; import java.io.ByteArrayInputStream; import java.io.IOException; +import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.time.LocalDateTime; import java.util.ArrayList; @@ -30,7 +36,6 @@ private SDCXMLParser() { public static SmartDerivativeContractDescriptor parse(String sdcxml) throws ParserConfigurationException, IOException, SAXException { - LocalDateTime settlementDateInitial; Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(sdcxml.getBytes(StandardCharsets.UTF_8))); @@ -149,4 +154,17 @@ private static T nodeValueByName(Node node, String name, Class type) { throw new IllegalArgumentException("Node not found"); } + + public static MarketDataList unmarshalMarketDataList(InputStream inputStream){ + + JAXBElement jaxbElement; + try { + JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); + Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); + jaxbElement = unmarshaller.unmarshal(new StreamSource(inputStream), MarketDataList.class); + } catch (java.lang.Exception e) { + throw new RuntimeException(e); + } + return jaxbElement.getValue(); + } } diff --git a/src/main/java/net/finmath/smartcontract/settlement/Settlement.java b/src/main/java/net/finmath/smartcontract/settlement/Settlement.java index 5a27734cb..426251261 100644 --- a/src/main/java/net/finmath/smartcontract/settlement/Settlement.java +++ b/src/main/java/net/finmath/smartcontract/settlement/Settlement.java @@ -2,8 +2,7 @@ import jakarta.xml.bind.annotation.XmlRootElement; import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; -import net.finmath.smartcontract.valuation.marketdata.data.LocalDateTimeAdapter; -import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; +import net.finmath.smartcontract.model.MarketDataList; import java.math.BigDecimal; import java.time.ZonedDateTime; diff --git a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java index faf8b8b9f..7a9d5baa2 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java @@ -8,18 +8,15 @@ import net.finmath.modelling.descriptor.InterestRateSwapProductDescriptor; import net.finmath.modelling.descriptor.xmlparser.FPMLParser; import net.finmath.modelling.productfactory.InterestRateAnalyticProductFactory; +import net.finmath.smartcontract.model.*; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataset; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationParserDataItems; -import net.finmath.smartcontract.model.MarginResult; -import net.finmath.smartcontract.model.MarketDataSet; -import net.finmath.smartcontract.model.MarketDataSetValuesInner; -import net.finmath.smartcontract.model.ValueResult; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; import net.finmath.smartcontract.valuation.oracle.SmartDerivativeContractSettlementOracle; import net.finmath.smartcontract.valuation.oracle.interestrates.ValuationOraclePlainSwap; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; import net.finmath.smartcontract.product.xml.SDCXMLParser; -import org.apache.commons.lang3.Validate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -132,6 +129,53 @@ public MarginResult getValue(MarketDataSet marketDataStart, MarketDataSet market return new MarginResult().value(BigDecimal.valueOf(rounding.applyAsDouble(value))).currency(currency).valuationDate(valuationDate.toString()); } + public MarginResult getValue(MarketDataList marketDataStart, MarketDataList marketDataEnd, String productData) throws Exception { + SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); + + List marketdataItemList = productDescriptor.getMarketdataItemList(); + Set calibrationDataItemsStart = new HashSet<>(); + List marketDataValuesStart = marketDataStart.getPoints(); + marketdataItemList.forEach(marketDataItemSpec -> marketDataValuesStart + .stream() + .filter( + marketDataValue -> marketDataValue.getId().equals(marketDataItemSpec.getKey()) + ) + .map( + mdv -> new CalibrationDataItem(marketDataItemSpec, mdv.getValue(), mdv.getTimeStamp()) + ) + .forEach(calibrationDataItemsStart::add)); + + List marketDataSetsStart = new ArrayList<>(); + marketDataSetsStart.add(new CalibrationDataset(calibrationDataItemsStart, marketDataStart.getRequestTimeStamp())); + + Set calibrationDataItemsEnd = new HashSet<>(); + List marketDataValuesEnd = marketDataEnd.getPoints(); + marketdataItemList.forEach(marketDataItemSpec -> marketDataValuesEnd + .stream() + .filter( + marketDataValue -> marketDataValue.getId().equals(marketDataItemSpec.getKey()) + ) + .map( + mdv -> new CalibrationDataItem(marketDataItemSpec, mdv.getValue(), mdv.getTimeStamp()) + ) + .forEach(calibrationDataItemsEnd::add)); + + List marketDataSetsEnd = new ArrayList<>(); + marketDataSetsEnd.add(new CalibrationDataset(calibrationDataItemsEnd, marketDataEnd.getRequestTimeStamp())); + + String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); + InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); + + LocalDateTime startDate = marketDataSetsStart.get(0).getDate(); + LocalDateTime endDate = marketDataSetsEnd.get(0).getDate(); + double value = calculateMargin(List.of(marketDataSetsStart.get(0), marketDataSetsEnd.get(0)), startDate, endDate, productDescriptor, underlying); + + String currency = "EUR"; + LocalDateTime valuationDate = LocalDateTime.now(); + + return new MarginResult().value(BigDecimal.valueOf(rounding.applyAsDouble(value))).currency(currency).valuationDate(valuationDate.toString()); + } + public ValueResult getValue(String marketData, String productData) throws Exception { SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java index 26a64a5f6..43fce6234 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java @@ -5,7 +5,7 @@ import io.reactivex.rxjava3.functions.Consumer; import jakarta.xml.bind.JAXBContext; import jakarta.xml.bind.Marshaller; -import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; +import net.finmath.smartcontract.model.MarketDataList; import net.finmath.smartcontract.valuation.marketdata.generators.*; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java index 800a3cc0d..240a2777b 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java @@ -1,7 +1,7 @@ package net.finmath.smartcontract.valuation.marketdata.curvecalibration; import com.fasterxml.jackson.databind.ObjectMapper; -import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; +import net.finmath.smartcontract.model.MarketDataList; import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; import java.time.LocalDateTime; diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java index 98f997eac..1dcfff562 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java @@ -3,13 +3,9 @@ import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.xml.bind.JAXBContext; import jakarta.xml.bind.Unmarshaller; -import net.finmath.smartcontract.model.ValueResult; -import net.finmath.smartcontract.valuation.implementation.MarginCalculator; -import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; -import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; +import net.finmath.smartcontract.model.MarketDataList; import org.slf4j.LoggerFactory; -import java.io.FileInputStream; import java.io.IOException; import java.io.StringReader; import java.io.UnsupportedEncodingException; diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/LocalDateTimeAdapter.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/LocalDateTimeAdapter.java index d47464abf..a0e811eb4 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/LocalDateTimeAdapter.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/LocalDateTimeAdapter.java @@ -8,7 +8,6 @@ public class LocalDateTimeAdapter extends XmlAdapter { - @Override public String marshal(LocalDateTime v) { return v.format(DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss")); diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataPoint.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataPoint.java index 41db4173e..7f5aa1917 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataPoint.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataPoint.java @@ -13,29 +13,20 @@ public class MarketDataPoint { private LocalDateTime timeStamp; private String id; - - private Double value; - - public MarketDataPoint(String id, Double value, LocalDateTime timeStamp) { this.id = id; this.value = value; this.timeStamp = timeStamp; } - public MarketDataPoint(){ - - } - + public MarketDataPoint(){} public String getId() { return id; } - - public Double getValue() { return value; } @@ -44,8 +35,6 @@ public void setId(String id) { this.id = id; } - - public void setValue(Double value) { this.value = value; } @@ -57,5 +46,12 @@ public void setTimeStamp(LocalDateTime timeStamp) { this.timeStamp = timeStamp; } - + @Override + public String toString() { + return "MarketDataPoint{" + + "timeStamp=" + timeStamp + + ", id='" + id + '\'' + + ", value=" + value + + '}'; + } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java index e9d323517..f719203d1 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java @@ -5,7 +5,7 @@ import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataset; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationParserDataItems; -import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; +import net.finmath.smartcontract.model.MarketDataList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java index b81f6b47d..7dfb46435 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java @@ -1,7 +1,7 @@ package net.finmath.smartcontract.valuation.marketdata.generators; import io.reactivex.rxjava3.core.Observable; -import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; +import net.finmath.smartcontract.model.MarketDataList; import java.util.List; diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java index f1a3ae541..e75cc09af 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java @@ -7,7 +7,7 @@ import com.neovisionaries.ws.client.WebSocketAdapter; import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.subjects.PublishSubject; -import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; +import net.finmath.smartcontract.model.MarketDataList; import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.time.businessdaycalendar.BusinessdayCalendarExcludingTARGETHolidays; diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java index b99eabff4..0b810b6ba 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java @@ -19,6 +19,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; +import org.xml.sax.SAXException; import java.nio.charset.StandardCharsets; @@ -99,10 +100,12 @@ public ResponseEntity margin(MarginRequest marginRequest) { margin = marginCalculator.getValue(marginRequest.getMarketDataStart(), marginRequest.getMarketDataEnd(), marginRequest.getTradeData()); logger.info(margin.toString()); return ResponseEntity.ok(margin); + } catch (SAXException e){ + logger.error("invalid trade data xml"); + throw new RuntimeException(e); } catch (Exception e) { - logger.error("Failed to calculate margin."); - logger.info(marginRequest.toString()); - e.printStackTrace(); + logger.error("Failed to calculate margin.", e); + logger.debug(marginRequest.toString()); throw new RuntimeException(e); } } diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_1.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_1.xml new file mode 100644 index 000000000..cb6bf4180 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_1.xml @@ -0,0 +1,367 @@ + + + EUR + -50000 + 50000 + -5000 + + 20230131-143523 + + EURESTSW= + 0.019761 + 20230131-143523 + + + EUREST2W= + 0.021920000000000002 + 20230131-143523 + + + EUREST3W= + 0.022648 + 20230131-143523 + + + EUREST1M= + 0.023009500000000002 + 20230131-143523 + + + EUREST2M= + 0.024499 + 20230131-143523 + + + EUREST3M= + 0.025866499999999997 + 20230131-143523 + + + EUREST4M= + 0.0271695 + 20230131-143523 + + + EUREST5M= + 0.028263999999999997 + 20230131-143523 + + + EUREST6M= + 0.0291575 + 20230131-143523 + + + EUR6MD= + 0.03 + 20230131-143523 + + + EUREST7M= + 0.03 + 20230131-143523 + + + EUR1X7F= + 0.03202 + 20230131-143523 + + + EUREST8M= + 0.030505 + 20230131-143523 + + + EUR2X8F= + 0.03359 + 20230131-143523 + + + EUR3X9F= + 0.03458 + 20230131-143523 + + + EUREST9M= + 0.0309715 + 20230131-143523 + + + EUR4X10F= + 0.03538 + 20230131-143523 + + + EUR6X12F= + 0.03565 + 20230131-143523 + + + EUREST1Y= + 0.03175 + 20230131-143523 + + + EUREST15M= + 0.031799999999999995 + 20230131-143523 + + + EUR9X15F= + 0.03471 + 20230131-143523 + + + EUREST18M= + 0.031470000000000005 + 20230131-143523 + + + EUR12X18F= + 0.03323 + 20230131-143523 + + + EUREST21M= + 0.030990000000000004 + 20230131-143523 + + + EURAB6E2Y= + 0.03281 + 20230131-143523 + + + EUREST2Y= + 0.03049 + 20230131-143523 + + + EURAB6E3Y= + 0.03109 + 20230131-143523 + + + EUREST3Y= + 0.02852 + 20230131-143523 + + + EURAB6E4Y= + 0.029930000000000002 + 20230131-143523 + + + EUREST4Y= + 0.02732 + 20230131-143523 + + + EURAB6E5Y= + 0.029299999999999996 + 20230131-143523 + + + EUREST5Y= + 0.026605 + 20230131-143523 + + + EURAB6E6Y= + 0.028920000000000005 + 20230131-143523 + + + EUREST6Y= + 0.026165000000000004 + 20230131-143523 + + + EUREST7Y= + 0.025925000000000004 + 20230131-143523 + + + EURAB6E7Y= + 0.0287 + 20230131-143523 + + + EUREST8Y= + 0.025854999999999996 + 20230131-143523 + + + EURAB6E8Y= + 0.028609999999999997 + 20230131-143523 + + + EURAB6E9Y= + 0.028609999999999997 + 20230131-143523 + + + EUREST9Y= + 0.025905 + 20230131-143523 + + + EUREST10Y= + 0.02609 + 20230131-143523 + + + EURAB6E10Y= + 0.028674999999999996 + 20230131-143523 + + + EUREST11Y= + 0.02624 + 20230131-143523 + + + EURAB6E11Y= + 0.02872 + 20230131-143523 + + + EUREST12Y= + 0.026325 + 20230131-143523 + + + EURAB6E12Y= + 0.028739999999999998 + 20230131-143523 + + + EURAB6E13Y= + 0.02872 + 20230131-143523 + + + EURAB6E14Y= + 0.028419999999999997 + 20230131-143523 + + + EUREST15Y= + 0.026365 + 20230131-143523 + + + EURAB6E15Y= + 0.02849 + 20230131-143523 + + + EURAB6E16Y= + 0.028259999999999997 + 20230131-143523 + + + EURAB6E17Y= + 0.027960000000000002 + 20230131-143523 + + + EURAB6E18Y= + 0.027610000000000003 + 20230131-143523 + + + EURAB6E19Y= + 0.02724 + 20230131-143523 + + + EUREST20Y= + 0.02535 + 20230131-143523 + + + EURAB6E20Y= + 0.026855000000000004 + 20230131-143523 + + + EURAB6E21Y= + 0.026549999999999997 + 20230131-143523 + + + EURAB6E22Y= + 0.02618 + 20230131-143523 + + + EURAB6E23Y= + 0.0258 + 20230131-143523 + + + EURAB6E24Y= + 0.02535 + 20230131-143523 + + + EURAB6E25Y= + 0.025004999999999996 + 20230131-143523 + + + EUREST25Y= + 0.023905000000000003 + 20230131-143523 + + + EURAB6E26Y= + 0.024700000000000003 + 20230131-143523 + + + EURAB6E27Y= + 0.02435 + 20230131-143523 + + + EURAB6E28Y= + 0.02403 + 20230131-143523 + + + EURAB6E29Y= + 0.02373 + 20230131-143523 + + + EUREST30Y= + 0.022664999999999998 + 20230131-143523 + + + EURAB6E30Y= + 0.023405 + 20230131-143523 + + + EURAB6E40Y= + 0.02093 + 20230131-143523 + + + EURAB6E50Y= + 0.01899 + 20230131-143523 + + + 20240314-170000 + 20240315-170000 + REGULAR + 20000 + 20001 + 25000 + SDCTestTrade1 + \ No newline at end of file diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_initial.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_initial.xml new file mode 100644 index 000000000..c476ec66b --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_initial.xml @@ -0,0 +1,367 @@ + + + EUR + -50000 + 50000 + -5000 + + 20230131-143523 + + EURESTSW= + 0.019761 + 20230131-143523 + + + EUREST2W= + 0.021920000000000002 + 20230131-143523 + + + EUREST3W= + 0.022648 + 20230131-143523 + + + EUREST1M= + 0.023009500000000002 + 20230131-143523 + + + EUREST2M= + 0.024499 + 20230131-143523 + + + EUREST3M= + 0.025866499999999997 + 20230131-143523 + + + EUREST4M= + 0.0271695 + 20230131-143523 + + + EUREST5M= + 0.028263999999999997 + 20230131-143523 + + + EUREST6M= + 0.0291575 + 20230131-143523 + + + EUR6MD= + 0.03 + 20230131-143523 + + + EUREST7M= + 0.03 + 20230131-143523 + + + EUR1X7F= + 0.03202 + 20230131-143523 + + + EUREST8M= + 0.030505 + 20230131-143523 + + + EUR2X8F= + 0.03359 + 20230131-143523 + + + EUR3X9F= + 0.03458 + 20230131-143523 + + + EUREST9M= + 0.0309715 + 20230131-143523 + + + EUR4X10F= + 0.03538 + 20230131-143523 + + + EUR6X12F= + 0.03565 + 20230131-143523 + + + EUREST1Y= + 0.03175 + 20230131-143523 + + + EUREST15M= + 0.031799999999999995 + 20230131-143523 + + + EUR9X15F= + 0.03471 + 20230131-143523 + + + EUREST18M= + 0.031470000000000005 + 20230131-143523 + + + EUR12X18F= + 0.03323 + 20230131-143523 + + + EUREST21M= + 0.030990000000000004 + 20230131-143523 + + + EURAB6E2Y= + 0.03281 + 20230131-143523 + + + EUREST2Y= + 0.03049 + 20230131-143523 + + + EURAB6E3Y= + 0.03109 + 20230131-143523 + + + EUREST3Y= + 0.02852 + 20230131-143523 + + + EURAB6E4Y= + 0.029930000000000002 + 20230131-143523 + + + EUREST4Y= + 0.02732 + 20230131-143523 + + + EURAB6E5Y= + 0.029299999999999996 + 20230131-143523 + + + EUREST5Y= + 0.026605 + 20230131-143523 + + + EURAB6E6Y= + 0.028920000000000005 + 20230131-143523 + + + EUREST6Y= + 0.026165000000000004 + 20230131-143523 + + + EUREST7Y= + 0.025925000000000004 + 20230131-143523 + + + EURAB6E7Y= + 0.0287 + 20230131-143523 + + + EUREST8Y= + 0.025854999999999996 + 20230131-143523 + + + EURAB6E8Y= + 0.028609999999999997 + 20230131-143523 + + + EURAB6E9Y= + 0.028609999999999997 + 20230131-143523 + + + EUREST9Y= + 0.025905 + 20230131-143523 + + + EUREST10Y= + 0.02609 + 20230131-143523 + + + EURAB6E10Y= + 0.028674999999999996 + 20230131-143523 + + + EUREST11Y= + 0.02624 + 20230131-143523 + + + EURAB6E11Y= + 0.02872 + 20230131-143523 + + + EUREST12Y= + 0.026325 + 20230131-143523 + + + EURAB6E12Y= + 0.028739999999999998 + 20230131-143523 + + + EURAB6E13Y= + 0.02872 + 20230131-143523 + + + EURAB6E14Y= + 0.028419999999999997 + 20230131-143523 + + + EUREST15Y= + 0.026365 + 20230131-143523 + + + EURAB6E15Y= + 0.02849 + 20230131-143523 + + + EURAB6E16Y= + 0.028259999999999997 + 20230131-143523 + + + EURAB6E17Y= + 0.027960000000000002 + 20230131-143523 + + + EURAB6E18Y= + 0.027610000000000003 + 20230131-143523 + + + EURAB6E19Y= + 0.02724 + 20230131-143523 + + + EUREST20Y= + 0.02535 + 20230131-143523 + + + EURAB6E20Y= + 0.026855000000000004 + 20230131-143523 + + + EURAB6E21Y= + 0.026549999999999997 + 20230131-143523 + + + EURAB6E22Y= + 0.02618 + 20230131-143523 + + + EURAB6E23Y= + 0.0258 + 20230131-143523 + + + EURAB6E24Y= + 0.02535 + 20230131-143523 + + + EURAB6E25Y= + 0.025004999999999996 + 20230131-143523 + + + EUREST25Y= + 0.023905000000000003 + 20230131-143523 + + + EURAB6E26Y= + 0.024700000000000003 + 20230131-143523 + + + EURAB6E27Y= + 0.02435 + 20230131-143523 + + + EURAB6E28Y= + 0.02403 + 20230131-143523 + + + EURAB6E29Y= + 0.02373 + 20230131-143523 + + + EUREST30Y= + 0.022664999999999998 + 20230131-143523 + + + EURAB6E30Y= + 0.023405 + 20230131-143523 + + + EURAB6E40Y= + 0.02093 + 20230131-143523 + + + EURAB6E50Y= + 0.01899 + 20230131-143523 + + + 20240314-170000 + 20240315-170000 + INITIAL + 20000 + 20001 + 25000 + SDCTestTrade1 + \ No newline at end of file diff --git a/src/test/java/net/finmath/smartcontract/settlement/SettlementTests.java b/src/test/java/net/finmath/smartcontract/settlement/SettlementTests.java index bc3e44c9a..4d17b09a5 100644 --- a/src/test/java/net/finmath/smartcontract/settlement/SettlementTests.java +++ b/src/test/java/net/finmath/smartcontract/settlement/SettlementTests.java @@ -3,9 +3,7 @@ import jakarta.xml.bind.JAXBContext; import jakarta.xml.bind.Marshaller; import jakarta.xml.bind.Unmarshaller; -import net.bytebuddy.asm.Advice; -import net.finmath.smartcontract.valuation.client.ValuationClient; -import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; +import net.finmath.smartcontract.model.MarketDataList; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -18,7 +16,6 @@ import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.List; -import java.util.Set; public class SettlementTests { @@ -36,7 +33,7 @@ void testGenerateSettlementXML() throws Exception{ ZonedDateTime settlementTime = ZonedDateTime.of(LocalDate.now(), LocalTime.of(17,0,0), zone); ZonedDateTime settlementTimeNext = settlementTime.plusDays(1); - final String marketDataXMLStr = new String(SettlementTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset0.xml").readAllBytes(), StandardCharsets.UTF_8); + final String marketDataXMLStr = new String(SettlementTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); StringReader reader = new StringReader(marketDataXMLStr); JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); @@ -54,7 +51,5 @@ void testGenerateSettlementXML() throws Exception{ jaxbMarshaller.marshal(settlement, writer); String xmlStr = writer.toString(); Assertions.assertFalse(xmlStr.isEmpty()); - - } } diff --git a/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java b/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java index 40914624f..5bf447a7e 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java @@ -1,25 +1,12 @@ package net.finmath.smartcontract.valuation.implementation; -import jakarta.xml.bind.JAXBContext; -import jakarta.xml.bind.JAXBElement; -import jakarta.xml.bind.Unmarshaller; -import net.finmath.smartcontract.product.xml.Document; import net.finmath.smartcontract.valuation.client.ValuationClient; import net.finmath.smartcontract.model.MarginResult; import net.finmath.smartcontract.model.ValueResult; -import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; -import org.assertj.core.util.Files; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import java.io.FileInputStream; -import java.io.FileReader; -import java.io.InputStreamReader; -import java.net.URL; import java.nio.charset.StandardCharsets; -import java.nio.file.Path; -import java.nio.file.Paths; public class MarginCalculatorTest { diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java index c053a40f0..83982c889 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java @@ -7,7 +7,7 @@ import net.finmath.smartcontract.valuation.client.ValuationClient; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; -import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; +import net.finmath.smartcontract.model.MarketDataList; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataset; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationParserDataItems; import org.junit.jupiter.api.Assertions; diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/GeneratorTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/GeneratorTests.java index dc1774e32..44aa7ded3 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/GeneratorTests.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/GeneratorTests.java @@ -5,17 +5,13 @@ import io.reactivex.rxjava3.functions.Consumer; import jakarta.xml.bind.JAXBContext; import jakarta.xml.bind.Marshaller; -import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; -import net.finmath.smartcontract.product.xml.SDCXMLParser; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; -import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; +import net.finmath.smartcontract.model.MarketDataList; import net.finmath.smartcontract.valuation.marketdata.generators.MarketDataGeneratorWebsocket; import net.finmath.smartcontract.valuation.marketdata.generators.WebSocketConnector; import org.junit.jupiter.api.*; -import java.io.FileInputStream; import java.io.StringWriter; -import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Properties; @TestInstance(TestInstance.Lifecycle.PER_CLASS) From 6f89c6e1c1ee6e1fd6d364ac2f1de270c6711f80 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 15 Mar 2024 08:02:44 +0100 Subject: [PATCH 015/105] switch from MarketDataSet to MarketDataList --- src/main/resources/api.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/api.yml b/src/main/resources/api.yml index 768420c04..5671c2bbe 100644 --- a/src/main/resources/api.yml +++ b/src/main/resources/api.yml @@ -82,9 +82,9 @@ paths: - valuationDate properties: marketDataStart: - type: MarketDataSet + type: MarketDataList marketDataEnd: - type: MarketDataSet + type: MarketDataList tradeData: type: string valuationDate: From 3e0c7599bcbd1ad455f10bfe30f4354b660dae84 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 15 Mar 2024 09:20:24 +0100 Subject: [PATCH 016/105] new testset out of settlement xml --- .../valuation/client/md_testset3.xml | 354 ++++++++++++++++++ 1 file changed, 354 insertions(+) create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/client/md_testset3.xml diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset3.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset3.xml new file mode 100644 index 000000000..ee0736d0f --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset3.xml @@ -0,0 +1,354 @@ + + + 20230131-143523 + + EURESTSW= + 0.019761 + 20230131-143523 + + + EUREST2W= + 0.021920000000000002 + 20230131-143523 + + + EUREST3W= + 0.022648 + 20230131-143523 + + + EUREST1M= + 0.023009500000000002 + 20230131-143523 + + + EUREST2M= + 0.024499 + 20230131-143523 + + + EUREST3M= + 0.025866499999999997 + 20230131-143523 + + + EUREST4M= + 0.0271695 + 20230131-143523 + + + EUREST5M= + 0.028263999999999997 + 20230131-143523 + + + EUREST6M= + 0.0291575 + 20230131-143523 + + + EUR6MD= + 0.03 + 20230131-143523 + + + EUREST7M= + 0.03 + 20230131-143523 + + + EUR1X7F= + 0.03202 + 20230131-143523 + + + EUREST8M= + 0.030505 + 20230131-143523 + + + EUR2X8F= + 0.03359 + 20230131-143523 + + + EUR3X9F= + 0.03458 + 20230131-143523 + + + EUREST9M= + 0.0309715 + 20230131-143523 + + + EUR4X10F= + 0.03538 + 20230131-143523 + + + EUR6X12F= + 0.03565 + 20230131-143523 + + + EUREST1Y= + 0.03175 + 20230131-143523 + + + EUREST15M= + 0.031799999999999995 + 20230131-143523 + + + EUR9X15F= + 0.03471 + 20230131-143523 + + + EUREST18M= + 0.031470000000000005 + 20230131-143523 + + + EUR12X18F= + 0.03323 + 20230131-143523 + + + EUREST21M= + 0.030990000000000004 + 20230131-143523 + + + EURAB6E2Y= + 0.03281 + 20230131-143523 + + + EUREST2Y= + 0.03049 + 20230131-143523 + + + EURAB6E3Y= + 0.03109 + 20230131-143523 + + + EUREST3Y= + 0.02852 + 20230131-143523 + + + EURAB6E4Y= + 0.029930000000000002 + 20230131-143523 + + + EUREST4Y= + 0.02732 + 20230131-143523 + + + EURAB6E5Y= + 0.029299999999999996 + 20230131-143523 + + + EUREST5Y= + 0.026605 + 20230131-143523 + + + EURAB6E6Y= + 0.028920000000000005 + 20230131-143523 + + + EUREST6Y= + 0.026165000000000004 + 20230131-143523 + + + EUREST7Y= + 0.025925000000000004 + 20230131-143523 + + + EURAB6E7Y= + 0.0287 + 20230131-143523 + + + EUREST8Y= + 0.025854999999999996 + 20230131-143523 + + + EURAB6E8Y= + 0.028609999999999997 + 20230131-143523 + + + EURAB6E9Y= + 0.028609999999999997 + 20230131-143523 + + + EUREST9Y= + 0.025905 + 20230131-143523 + + + EUREST10Y= + 0.02609 + 20230131-143523 + + + EURAB6E10Y= + 0.028674999999999996 + 20230131-143523 + + + EUREST11Y= + 0.02624 + 20230131-143523 + + + EURAB6E11Y= + 0.02872 + 20230131-143523 + + + EUREST12Y= + 0.026325 + 20230131-143523 + + + EURAB6E12Y= + 0.028739999999999998 + 20230131-143523 + + + EURAB6E13Y= + 0.02872 + 20230131-143523 + + + EURAB6E14Y= + 0.028419999999999997 + 20230131-143523 + + + EUREST15Y= + 0.026365 + 20230131-143523 + + + EURAB6E15Y= + 0.02849 + 20230131-143523 + + + EURAB6E16Y= + 0.028259999999999997 + 20230131-143523 + + + EURAB6E17Y= + 0.027960000000000002 + 20230131-143523 + + + EURAB6E18Y= + 0.027610000000000003 + 20230131-143523 + + + EURAB6E19Y= + 0.02724 + 20230131-143523 + + + EUREST20Y= + 0.02535 + 20230131-143523 + + + EURAB6E20Y= + 0.026855000000000004 + 20230131-143523 + + + EURAB6E21Y= + 0.026549999999999997 + 20230131-143523 + + + EURAB6E22Y= + 0.02618 + 20230131-143523 + + + EURAB6E23Y= + 0.0258 + 20230131-143523 + + + EURAB6E24Y= + 0.02535 + 20230131-143523 + + + EURAB6E25Y= + 0.025004999999999996 + 20230131-143523 + + + EUREST25Y= + 0.023905000000000003 + 20230131-143523 + + + EURAB6E26Y= + 0.024700000000000003 + 20230131-143523 + + + EURAB6E27Y= + 0.02435 + 20230131-143523 + + + EURAB6E28Y= + 0.02403 + 20230131-143523 + + + EURAB6E29Y= + 0.02373 + 20230131-143523 + + + EUREST30Y= + 0.022664999999999998 + 20230131-143523 + + + EURAB6E30Y= + 0.023405 + 20230131-143523 + + + EURAB6E40Y= + 0.02093 + 20230131-143523 + + + EURAB6E50Y= + 0.01899 + 20230131-143523 + + \ No newline at end of file From 4306b7536b11efc9074d3c3b09bc7aed0e0337d3 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 15 Mar 2024 09:27:28 +0100 Subject: [PATCH 017/105] replace MarketDataSet by MarketDataList, fixes, cleanup --- .../product/xml/PlainSwapEditorHandler.java | 4 +- .../product/xml/SDCXMLParser.java | 249 +++++++++--------- .../valuation/client/ValuationClient.java | 11 +- .../implementation/MarginCalculator.java | 59 ++--- .../PlainSwapEditorController.java | 6 +- .../controllers/ValuationController.java | 16 +- src/main/resources/api.yml | 24 +- .../smartcontract/product/xml/JAXBTests.java | 3 +- .../service/ValuationControllerTest.java | 14 +- 9 files changed, 186 insertions(+), 200 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java b/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java index 6a20c8d0d..30a162648 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java @@ -365,11 +365,11 @@ public String getContractAsXmlString() throws IOException, SAXException, JAXBExc } catch (SAXException e) { logger.error("Failed to validate the generated XML or some unrecoverable error occurred while validating."); - logger.error("Details: " + e.getMessage()); + logger.error("Details: {}", e.getMessage()); throw e; } catch (IOException e) { logger.error("Failed to marshall out the generated XML file."); - logger.error("Details: " + e.getMessage()); + logger.error("Details: {}", e.getMessage()); throw e; } diff --git a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java index 72f1b2098..c6fce9c7b 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java @@ -17,6 +17,7 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; +import java.io.StringReader; import java.nio.charset.StandardCharsets; import java.time.LocalDateTime; import java.util.ArrayList; @@ -31,140 +32,138 @@ */ public class SDCXMLParser { - private SDCXMLParser() { - } + private SDCXMLParser() { + } - public static SmartDerivativeContractDescriptor parse(String sdcxml) throws ParserConfigurationException, IOException, SAXException { + public static SmartDerivativeContractDescriptor parse(String sdcxml) throws ParserConfigurationException, IOException, SAXException { - LocalDateTime settlementDateInitial; + LocalDateTime settlementDateInitial; - Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(sdcxml.getBytes(StandardCharsets.UTF_8))); - document.getDocumentElement().normalize(); + Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(sdcxml.getBytes(StandardCharsets.UTF_8))); + document.getDocumentElement().normalize(); - String tradeDateString = document.getElementsByTagName("settlementDateInitial").item(0).getTextContent(); - settlementDateInitial = LocalDateTime.parse(tradeDateString.trim()); + String tradeDateString = document.getElementsByTagName("settlementDateInitial").item(0).getTextContent(); + settlementDateInitial = LocalDateTime.parse(tradeDateString.trim()); - String uniqueTradeIdentifier = document.getElementsByTagName("uniqueTradeIdentifier").item(0).getTextContent(); + String uniqueTradeIdentifier = document.getElementsByTagName("uniqueTradeIdentifier").item(0).getTextContent(); /* Market Data */ - List marketdataItems = new ArrayList<>(); - List itemNodes = nodeChildsByName(document.getElementsByTagName("marketdataitems").item(0), "item"); - for (Node itemNode : itemNodes) { - String symbol = nodeValueByName(itemNode, "symbol", String.class); - String curve = nodeValueByName(itemNode, "curve", String.class); - String type = nodeValueByName(itemNode, "type", String.class); - String tenor = nodeValueByName(itemNode, "tenor", String.class); - CalibrationDataItem.Spec spec = new CalibrationDataItem.Spec(symbol, curve, type, tenor); - marketdataItems.add(spec); - } - - /* - * Counterparties - */ - List parties = new ArrayList<>(); - Map marginAccountInitialByPartyID = new HashMap<>(); - Map penaltyFeeInitialByPartyID = new HashMap<>(); - - List partyNodes = nodeChildsByName(document.getElementsByTagName("parties").item(0), "party"); - for (Node partyNode : partyNodes) { - - SmartDerivativeContractDescriptor.Party party = new SmartDerivativeContractDescriptor.Party( - nodeValueByName(partyNode, "id", String.class), - nodeValueByName(partyNode, "name", String.class), - null, - nodeValueByName(partyNode, "address", String.class) - ); - - Double marginAccountInitial = nodeValueByName(nodeChildByName(partyNode, "marginAccount"), "value", Double.class); - Double penaltyFeeInitial = nodeValueByName(nodeChildByName(partyNode, "penaltyFee"), "value", Double.class); - - parties.add(party); - marginAccountInitialByPartyID.put(party.getId(), marginAccountInitial); - penaltyFeeInitialByPartyID.put(party.getId(), penaltyFeeInitial); - } - - - // Receiver party ID - String receiverPartyID = document.getElementsByTagName("receiverPartyID").item(0).getTextContent().trim(); - - // TODO The parser needs to check that the field receiverPartyID of the SDC matched the field in the FPML - - // TODO Support multiple underlyings - - Node underlying = document - .getElementsByTagName("underlying") - .item(0) - .getFirstChild(); - if(!underlying.getNodeName().equals("dataDocument")){ - underlying = underlying.getNextSibling(); - } - - return new SmartDerivativeContractDescriptor(uniqueTradeIdentifier, settlementDateInitial, parties, marginAccountInitialByPartyID, penaltyFeeInitialByPartyID, receiverPartyID, underlying, marketdataItems); - } - - /* - * Private helpers - */ - - private static List nodeChildsByName(Node node, String name) { - // Iterate - List nodes = new ArrayList<>(); - NodeList childs = node.getChildNodes(); - for (int i = 0; i < childs.getLength(); i++) { - Node childNode = childs.item(i); - if (name.equals(childNode.getNodeName())) { - nodes.add(childNode); - } - } - return nodes; - } - - private static Node nodeChildByName(Node node, String name) { - // Iterate - NodeList nodes = node.getChildNodes(); - for (int i = 0; i < nodes.getLength(); i++) { - Node childNode = nodes.item(i); - if (name.equals(childNode.getNodeName())) { - return childNode; - } - } - - throw new IllegalArgumentException("Node not found"); - } - - private static T nodeValueByName(Node node, String name, Class type) { - - // Iterate - NodeList nodes = node.getChildNodes(); - for (int i = 0; i < nodes.getLength(); i++) { - Node childNode = nodes.item(i); - if (name.equals(childNode.getNodeName())) { - String value = childNode.getTextContent(); - if (type.equals(String.class)) { - return type.cast(value); - } else if (type.equals(Double.class)) { - return type.cast(Double.valueOf(value)); - } else { - throw new IllegalArgumentException("Type not supported"); - } - } - } - - throw new IllegalArgumentException("Node not found"); - } - - public static MarketDataList unmarshalMarketDataList(InputStream inputStream){ - - JAXBElement jaxbElement; + List marketdataItems = new ArrayList<>(); + List itemNodes = nodeChildsByName(document.getElementsByTagName("marketdataitems").item(0), "item"); + for (Node itemNode : itemNodes) { + String symbol = nodeValueByName(itemNode, "symbol", String.class); + String curve = nodeValueByName(itemNode, "curve", String.class); + String type = nodeValueByName(itemNode, "type", String.class); + String tenor = nodeValueByName(itemNode, "tenor", String.class); + CalibrationDataItem.Spec spec = new CalibrationDataItem.Spec(symbol, curve, type, tenor); + marketdataItems.add(spec); + } + + /* + * Counterparties + */ + List parties = new ArrayList<>(); + Map marginAccountInitialByPartyID = new HashMap<>(); + Map penaltyFeeInitialByPartyID = new HashMap<>(); + + List partyNodes = nodeChildsByName(document.getElementsByTagName("parties").item(0), "party"); + for (Node partyNode : partyNodes) { + + SmartDerivativeContractDescriptor.Party party = new SmartDerivativeContractDescriptor.Party( + nodeValueByName(partyNode, "id", String.class), + nodeValueByName(partyNode, "name", String.class), + null, + nodeValueByName(partyNode, "address", String.class) + ); + + Double marginAccountInitial = nodeValueByName(nodeChildByName(partyNode, "marginAccount"), "value", Double.class); + Double penaltyFeeInitial = nodeValueByName(nodeChildByName(partyNode, "penaltyFee"), "value", Double.class); + + parties.add(party); + marginAccountInitialByPartyID.put(party.getId(), marginAccountInitial); + penaltyFeeInitialByPartyID.put(party.getId(), penaltyFeeInitial); + } + + + // Receiver party ID + String receiverPartyID = document.getElementsByTagName("receiverPartyID").item(0).getTextContent().trim(); + + // TODO The parser needs to check that the field receiverPartyID of the SDC matched the field in the FPML + + // TODO Support multiple underlyings + + Node underlying = document + .getElementsByTagName("underlying") + .item(0) + .getFirstChild(); + if (!underlying.getNodeName().equals("dataDocument")) { + underlying = underlying.getNextSibling(); + } + + return new SmartDerivativeContractDescriptor(uniqueTradeIdentifier, settlementDateInitial, parties, marginAccountInitialByPartyID, penaltyFeeInitialByPartyID, receiverPartyID, underlying, marketdataItems); + } + + /* + * Private helpers + */ + + private static List nodeChildsByName(Node node, String name) { + // Iterate + List nodes = new ArrayList<>(); + NodeList childs = node.getChildNodes(); + for (int i = 0; i < childs.getLength(); i++) { + Node childNode = childs.item(i); + if (name.equals(childNode.getNodeName())) { + nodes.add(childNode); + } + } + return nodes; + } + + private static Node nodeChildByName(Node node, String name) { + // Iterate + NodeList nodes = node.getChildNodes(); + for (int i = 0; i < nodes.getLength(); i++) { + Node childNode = nodes.item(i); + if (name.equals(childNode.getNodeName())) { + return childNode; + } + } + + throw new IllegalArgumentException("Node not found"); + } + + private static T nodeValueByName(Node node, String name, Class type) { + + // Iterate + NodeList nodes = node.getChildNodes(); + for (int i = 0; i < nodes.getLength(); i++) { + Node childNode = nodes.item(i); + if (name.equals(childNode.getNodeName())) { + String value = childNode.getTextContent(); + if (type.equals(String.class)) { + return type.cast(value); + } else if (type.equals(Double.class)) { + return type.cast(Double.valueOf(value)); + } else { + throw new IllegalArgumentException("Type not supported"); + } + } + } + + throw new IllegalArgumentException("Node not found"); + } + + public static MarketDataList unmarshalMarketDataList(String marketDataListXml) { try { + StringReader reader = new StringReader(marketDataListXml); JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); - Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); - jaxbElement = unmarshaller.unmarshal(new StreamSource(inputStream), MarketDataList.class); - } catch (java.lang.Exception e) { - throw new RuntimeException(e); - } - return jaxbElement.getValue(); - } + Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); + return (MarketDataList) unmarshaller.unmarshal(reader); + } catch (java.lang.Exception e) { + throw new RuntimeException(e); + } + } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java index 9f3d75b8b..720cb8172 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java +++ b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java @@ -2,6 +2,8 @@ import net.finmath.smartcontract.model.MarginRequest; import net.finmath.smartcontract.model.MarginResult; +import net.finmath.smartcontract.model.MarketDataList; +import net.finmath.smartcontract.product.xml.SDCXMLParser; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.*; @@ -11,6 +13,7 @@ import java.net.URISyntaxException; import java.nio.charset.StandardCharsets; import java.time.LocalDateTime; +import java.time.OffsetDateTime; import java.util.Base64; import java.util.Objects; @@ -46,11 +49,13 @@ public static void main(String[] args) throws Exception { System.out.println("Using default endpoint " + url); } - final String marketDataStart = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml")).readAllBytes(), StandardCharsets.UTF_8); - final String marketDataEnd = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml")).readAllBytes(), StandardCharsets.UTF_8); + final String marketDataStartXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml")).readAllBytes(), StandardCharsets.UTF_8); + final MarketDataList marketDataStart = SDCXMLParser.unmarshalMarketDataList(marketDataStartXml); + final String marketDataEndXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml")).readAllBytes(), StandardCharsets.UTF_8); + final MarketDataList marketDataEnd = SDCXMLParser.unmarshalMarketDataList(marketDataEndXml); final String product = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); - final MarginRequest marginRequest = new MarginRequest().marketDataStart(marketDataStart).marketDataEnd(marketDataEnd).tradeData(product).valuationDate(LocalDateTime.now().toString()); + final MarginRequest marginRequest = new MarginRequest().marketDataStart(marketDataStart).marketDataEnd(marketDataEnd).tradeData(product).valuationDate(OffsetDateTime.from(LocalDateTime.now())); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); diff --git a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java index e42846836..c6d917a91 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java @@ -8,18 +8,15 @@ import net.finmath.modelling.descriptor.InterestRateSwapProductDescriptor; import net.finmath.modelling.descriptor.xmlparser.FPMLParser; import net.finmath.modelling.productfactory.InterestRateAnalyticProductFactory; +import net.finmath.smartcontract.model.*; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataset; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationParserDataItems; -import net.finmath.smartcontract.model.MarginResult; -import net.finmath.smartcontract.model.MarketDataSet; -import net.finmath.smartcontract.model.MarketDataSetValuesInner; -import net.finmath.smartcontract.model.ValueResult; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; import net.finmath.smartcontract.valuation.oracle.SmartDerivativeContractSettlementOracle; import net.finmath.smartcontract.valuation.oracle.interestrates.ValuationOraclePlainSwap; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; import net.finmath.smartcontract.product.xml.SDCXMLParser; -import org.apache.commons.lang3.Validate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -85,46 +82,46 @@ public MarginResult getValue(String marketDataStart, String marketDataEnd, Strin return new MarginResult().value(BigDecimal.valueOf(rounding.applyAsDouble(value))).currency(currency).valuationDate(valuationDate.toString()); } - public MarginResult getValue(MarketDataSet marketDataStart, MarketDataSet marketDataEnd, String productData) throws Exception { + public MarginResult getValue(MarketDataList marketDataStart, MarketDataList marketDataEnd, String productData) throws Exception { SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); List marketdataItemList = productDescriptor.getMarketdataItemList(); Set calibrationDataItemsStart = new HashSet<>(); - List marketDataValuesStart = marketDataStart.getValues(); + List marketDataValuesStart = marketDataStart.getPoints(); marketdataItemList.forEach(marketDataItemSpec -> marketDataValuesStart .stream() .filter( - marketDataValue -> marketDataValue.getSymbol().equals(marketDataItemSpec.getKey()) + marketDataValue -> marketDataValue.getId().equals(marketDataItemSpec.getKey()) ) .map( - mdv -> new CalibrationDataItem(marketDataItemSpec, mdv.getValue(), mdv.getDataTimestamp().toLocalDateTime()) + mdv -> new CalibrationDataItem(marketDataItemSpec, mdv.getValue(), mdv.getTimeStamp()) ) .forEach(calibrationDataItemsStart::add)); - List marketDataSetsStart = new ArrayList<>(); - marketDataSetsStart.add(new CalibrationDataset(calibrationDataItemsStart, marketDataStart.getRequestTimestamp().toLocalDateTime())); + List marketDataListStart = new ArrayList<>(); + marketDataListStart.add(new CalibrationDataset(calibrationDataItemsStart, marketDataStart.getRequestTimeStamp())); Set calibrationDataItemsEnd = new HashSet<>(); - List marketDataValuesEnd = marketDataEnd.getValues(); + List marketDataValuesEnd = marketDataEnd.getPoints(); marketdataItemList.forEach(marketDataItemSpec -> marketDataValuesEnd .stream() .filter( - marketDataValue -> marketDataValue.getSymbol().equals(marketDataItemSpec.getKey()) + marketDataValue -> marketDataValue.getId().equals(marketDataItemSpec.getKey()) ) .map( - mdv -> new CalibrationDataItem(marketDataItemSpec, mdv.getValue(), mdv.getDataTimestamp().toLocalDateTime()) + mdv -> new CalibrationDataItem(marketDataItemSpec, mdv.getValue(), mdv.getTimeStamp()) ) .forEach(calibrationDataItemsEnd::add)); - List marketDataSetsEnd = new ArrayList<>(); - marketDataSetsEnd.add(new CalibrationDataset(calibrationDataItemsEnd, marketDataEnd.getRequestTimestamp().toLocalDateTime())); + List marketDataListEnd = new ArrayList<>(); + marketDataListEnd.add(new CalibrationDataset(calibrationDataItemsEnd, marketDataEnd.getRequestTimeStamp())); String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); - LocalDateTime startDate = marketDataSetsStart.get(0).getDate(); - LocalDateTime endDate = marketDataSetsEnd.get(0).getDate(); - double value = calculateMargin(List.of(marketDataSetsStart.get(0), marketDataSetsEnd.get(0)), startDate, endDate, productDescriptor, underlying); + LocalDateTime startDate = marketDataListStart.get(0).getDate(); + LocalDateTime endDate = marketDataListEnd.get(0).getDate(); + double value = calculateMargin(List.of(marketDataListStart.get(0), marketDataListEnd.get(0)), startDate, endDate, productDescriptor, underlying); String currency = "EUR"; LocalDateTime valuationDate = LocalDateTime.now(); @@ -148,46 +145,46 @@ public ValueResult getValue(String marketData, String productData) throws Except return new ValueResult().value(BigDecimal.valueOf(value)).currency(currency).valuationDate(valuationDate.toString()); } - public ValueResult getValue(MarketDataSet marketData, String productData) throws Exception { + public ValueResult getValue(MarketDataList marketData, String productData) throws Exception { SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); Set calibrationDataItems = new HashSet<>(); List marketdataItemList = productDescriptor.getMarketdataItemList(); - List marketDataValues = marketData.getValues(); + List marketDataValues = marketData.getPoints(); marketdataItemList.forEach(marketDataItemSpec -> marketDataValues .stream() .filter( - marketDataValue -> marketDataValue.getSymbol().equals(marketDataItemSpec.getKey()) + marketDataValue -> marketDataValue.getId().equals(marketDataItemSpec.getKey()) ) .map( - mdv -> new CalibrationDataItem(marketDataItemSpec, mdv.getValue(), mdv.getDataTimestamp().toLocalDateTime()) + mdv -> new CalibrationDataItem(marketDataItemSpec, mdv.getValue(), mdv.getTimeStamp()) ) .forEach(calibrationDataItems::add)); - List marketDataSets = new ArrayList<>(); - marketDataSets.add(new CalibrationDataset(calibrationDataItems, marketData.getRequestTimestamp().toLocalDateTime())); + List marketDataList = new ArrayList<>(); + marketDataList.add(new CalibrationDataset(calibrationDataItems, marketData.getRequestTimeStamp())); String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); - LocalDateTime endDate = marketDataSets.get(0).getDate(); - double value = calculateMargin(marketDataSets, null, endDate, productDescriptor, underlying); + LocalDateTime endDate = marketDataList.get(0).getDate(); + double value = calculateMargin(marketDataList, null, endDate, productDescriptor, underlying); String currency = "EUR"; - return new ValueResult().value(BigDecimal.valueOf(value)).currency(currency).valuationDate(marketData.getRequestTimestamp().toLocalDateTime().toString()); + return new ValueResult().value(BigDecimal.valueOf(value)).currency(currency).valuationDate(marketData.getRequestTimeStamp().toString()); } /** * Calculates the margin for a list of market data scenarios. * - * @param marketDataSets list of market data scenarios. + * @param marketDataList list of market data scenarios. * @param productDescriptor The product descriptor (wrapper to the product XML) * @param underlying The underlying descriptor (wrapper to the underlying XML) * @return The margin * @throws Exception Exception */ - private double calculateMargin(List marketDataSets, LocalDateTime startDate, LocalDateTime endState, SmartDerivativeContractDescriptor productDescriptor, InterestRateSwapProductDescriptor underlying) throws Exception { + private double calculateMargin(List marketDataList, LocalDateTime startDate, LocalDateTime endState, SmartDerivativeContractDescriptor productDescriptor, InterestRateSwapProductDescriptor underlying) throws Exception { // Build product LocalDate referenceDate = productDescriptor.getTradeDate().toLocalDate(); @@ -200,7 +197,7 @@ private double calculateMargin(List marketDataSets, LocalDat Swap swap = new Swap((SwapLeg) legReceiverProduct, (SwapLeg) legPayerProduct); // Build valuation oracle with given market data. - final ValuationOraclePlainSwap oracle = new ValuationOraclePlainSwap(swap, 1.0, marketDataSets); + final ValuationOraclePlainSwap oracle = new ValuationOraclePlainSwap(swap, 1.0, marketDataList); final SmartDerivativeContractSettlementOracle margin = new SmartDerivativeContractSettlementOracle(oracle); double marginCall = 0.0; diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java index be7742dd3..9f8e5895a 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java @@ -7,8 +7,6 @@ import jakarta.xml.bind.JAXBException; import net.finmath.rootfinder.BisectionSearch; import net.finmath.smartcontract.api.PlainSwapEditorApi; -import net.finmath.smartcontract.valuation.client.ValuationClient; -import net.finmath.smartcontract.valuation.marketdata.data.MarketDataList; import net.finmath.smartcontract.valuation.marketdata.generators.legacy.LiveFeedAdapter; import net.finmath.smartcontract.valuation.marketdata.generators.legacy.ReactiveMarketDataUpdater; import net.finmath.smartcontract.valuation.marketdata.generators.WebSocketConnector; @@ -145,7 +143,9 @@ public ResponseEntity evaluateFromPlainSwapEditor(PlainSwapOperatio try { //@TODO: where resourceGovenor retrieves the data from neeeds to be understood - marketDataString = new String(Objects.requireNonNull(PlainSwapEditorController.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/legacy/md_testset_refinitiv.xml")).readAllBytes(), StandardCharsets.UTF_8); + // TODO clarify why the controller needs a fixed testset out of resources + //marketDataString = new String(Objects.requireNonNull(PlainSwapEditorController.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/legacy/md_testset_refinitiv.xml")).readAllBytes(), StandardCharsets.UTF_8); + marketDataString = new String(Objects.requireNonNull(PlainSwapEditorController.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset3.xml")).readAllBytes(), StandardCharsets.UTF_8); /* marketDataString = resourceGovernor.getActiveDatasetAsResourceInReadMode(currentUserName).getContentAsString(StandardCharsets.UTF_8); marketData = objectMapper.readValue(marketDataString, MarketDataList.class);*/ diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java index 0b810b6ba..66de26693 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java @@ -39,10 +39,10 @@ public class ValuationController implements ValuationApi { /** * Request mapping for the settlementvaluationForProductAsFPML * - * @param marginRequest The request - * @return String Json representing the valuation. + //* @param marginRequest The request + //* @return String Json representing the valuation. */ - @Override + /*@Override @Deprecated public ResponseEntity legacyMargin(LegacyMarginRequest marginRequest) { HttpHeaders responseHeaders = new HttpHeaders(); @@ -60,15 +60,15 @@ public ResponseEntity legacyMargin(LegacyMarginRequest marginReque e.printStackTrace(); throw new RuntimeException(e); } - } + }*/ /** * Request mapping for the settlementvaluationForProductAsFPMLOneCurve * - * @param valueRequest The request - * @return String Json representing the valuation. + //* @param valueRequest The request + //* @return String Json representing the valuation. */ - @Override + /*@Override @Deprecated public ResponseEntity legacyValue(LegacyValueRequest valueRequest) { @@ -87,7 +87,7 @@ public ResponseEntity legacyValue(LegacyValueRequest valueRequest) e.printStackTrace(); throw new RuntimeException(e); } - } + }*/ @Override public ResponseEntity margin(MarginRequest marginRequest) { diff --git a/src/main/resources/api.yml b/src/main/resources/api.yml index cf45ef285..c04c1b59e 100644 --- a/src/main/resources/api.yml +++ b/src/main/resources/api.yml @@ -10,28 +10,6 @@ servers: - url: http://34.159.234.113:8080/ paths: - /valuation/legacy/value: - post: - summary: Request mapping for the value - operationId: legacyValue - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/LegacyValueRequest" - responses: - "200": - description: Value was calculated - content: - application/json: - schema: - $ref: "#/components/schemas/ValueResult" - default: - description: unexpected error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" /valuation/value: post: summary: Request mapping for the value @@ -96,7 +74,7 @@ paths: /valuation/legacy/margin: post: summary: Request mapping for the margin - operationId: margin + operationId: legacyMargin requestBody: content: application/json: diff --git a/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java b/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java index 94aa5c59b..32d4d6382 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java @@ -169,7 +169,8 @@ void handlerTest() throws java.lang.Exception { // String product = handler.getContractAsXmlString(); - final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/legacy/md_testset_refinitiv.xml").readAllBytes(), StandardCharsets.UTF_8); + //final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/legacy/md_testset_refinitiv.xml").readAllBytes(), StandardCharsets.UTF_8); + final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset3.xml").readAllBytes(), StandardCharsets.UTF_8); MarginCalculator marginCalculator = new MarginCalculator(); ValueResult valuationResult = marginCalculator.getValue(marketData, handler.getContractAsXmlString()); diff --git a/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java b/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java index 78e568fb8..f11efed50 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java @@ -1,8 +1,11 @@ package net.finmath.smartcontract.valuation.service; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import net.finmath.smartcontract.model.MarginRequest; +import net.finmath.smartcontract.model.MarketDataList; import net.finmath.smartcontract.model.ValueRequest; +import net.finmath.smartcontract.product.xml.SDCXMLParser; import net.finmath.smartcontract.valuation.client.ValuationClient; import net.finmath.smartcontract.valuation.service.config.BasicAuthWebSecurityConfiguration; import net.finmath.smartcontract.valuation.service.config.MockUserAuthConfig; @@ -24,6 +27,7 @@ import java.nio.charset.StandardCharsets; import java.time.LocalDateTime; +import java.time.OffsetDateTime; /** * Tests ValuationController / Valuation API Endpoint. @@ -45,13 +49,15 @@ public class ValuationControllerTest { @WithUserDetails("user1") // testing now uses more of the server environment, including security. Tests would fail if requests are not authenticated. public void getMargin(@Autowired MockMvc mockMvc) throws Exception { - final String marketDataStart = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); - final String marketDataEnd = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml").readAllBytes(), StandardCharsets.UTF_8); + final String marketDataStartXml = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); + final MarketDataList marketDataStart = SDCXMLParser.unmarshalMarketDataList(marketDataStartXml); + final String marketDataEndXml = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml").readAllBytes(), StandardCharsets.UTF_8); + final MarketDataList marketDataEnd = SDCXMLParser.unmarshalMarketDataList(marketDataEndXml); final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream(productXMLFile).readAllBytes(), StandardCharsets.UTF_8); - final MarginRequest marginRequest = new MarginRequest().marketDataStart(marketDataStart).marketDataEnd(marketDataEnd).tradeData(product).valuationDate(LocalDateTime.now().toString()); + final MarginRequest marginRequest = new MarginRequest().marketDataStart(marketDataStart).marketDataEnd(marketDataEnd).tradeData(product).valuationDate(OffsetDateTime.now()); - ObjectMapper objectMapper = new ObjectMapper(); + ObjectMapper objectMapper = new ObjectMapper().registerModule(new JavaTimeModule()); String json = objectMapper.writeValueAsString(marginRequest); mockMvc.perform(MockMvcRequestBuilders From fd16fc17a1dfd8b3ee72c9817ce89780b7ce1429 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 15 Mar 2024 10:40:26 +0100 Subject: [PATCH 018/105] generic marshaller and unmarshaller added to SDCXMLParser added them to different locations, added tests for them general cleanup, further replacing MarketDataSet by MarketDataList --- .../product/xml/SDCXMLParser.java | 33 ++++++++++------- .../valuation/client/ValuationClient.java | 4 +-- .../product/xml/SDCXMLParserTest.java | 35 +++++++++++++++++++ .../service/ValuationControllerTest.java | 4 +-- 4 files changed, 59 insertions(+), 17 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java index c6fce9c7b..df78519a2 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java @@ -1,11 +1,9 @@ package net.finmath.smartcontract.product.xml; -import jakarta.xml.bind.JAXBContext; -import jakarta.xml.bind.JAXBElement; -import jakarta.xml.bind.Unmarshaller; +import jakarta.xml.bind.*; +import net.finmath.smartcontract.settlement.Settlement; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; -import net.finmath.smartcontract.model.MarketDataList; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; @@ -13,11 +11,7 @@ import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.stream.StreamSource; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.StringReader; +import java.io.*; import java.nio.charset.StandardCharsets; import java.time.LocalDateTime; import java.util.ArrayList; @@ -156,14 +150,27 @@ private static T nodeValueByName(Node node, String name, Class type) { throw new IllegalArgumentException("Node not found"); } - public static MarketDataList unmarshalMarketDataList(String marketDataListXml) { + public static T unmarshalXml(String xml, Class t) { try { - StringReader reader = new StringReader(marketDataListXml); - JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); + StringReader reader = new StringReader(xml); + JAXBContext jaxbContext = JAXBContext.newInstance(t); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); - return (MarketDataList) unmarshaller.unmarshal(reader); + return (T) unmarshaller.unmarshal(reader); } catch (java.lang.Exception e) { throw new RuntimeException(e); } } + + public static String marshalClassToXMLString(T t) { + try { + JAXBContext jaxbContextSettlement = JAXBContext.newInstance(Settlement.class); + Marshaller jaxbMarshaller = jaxbContextSettlement.createMarshaller(); + jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + StringWriter writer = new StringWriter(); + jaxbMarshaller.marshal(t, writer); + return writer.toString(); + } catch (JAXBException e) { + throw new RuntimeException(e); + } + } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java index 720cb8172..cdb8a8aa5 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java +++ b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java @@ -50,9 +50,9 @@ public static void main(String[] args) throws Exception { } final String marketDataStartXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml")).readAllBytes(), StandardCharsets.UTF_8); - final MarketDataList marketDataStart = SDCXMLParser.unmarshalMarketDataList(marketDataStartXml); + final MarketDataList marketDataStart = SDCXMLParser.unmarshalXml(marketDataStartXml, MarketDataList.class); final String marketDataEndXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml")).readAllBytes(), StandardCharsets.UTF_8); - final MarketDataList marketDataEnd = SDCXMLParser.unmarshalMarketDataList(marketDataEndXml); + final MarketDataList marketDataEnd = SDCXMLParser.unmarshalXml(marketDataEndXml, MarketDataList.class); final String product = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); final MarginRequest marginRequest = new MarginRequest().marketDataStart(marketDataStart).marketDataEnd(marketDataEnd).tradeData(product).valuationDate(OffsetDateTime.from(LocalDateTime.now())); diff --git a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java index 4aae983a1..d0bb0e961 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java @@ -3,7 +3,11 @@ import net.finmath.modelling.ProductDescriptor; import net.finmath.modelling.descriptor.InterestRateSwapProductDescriptor; import net.finmath.modelling.descriptor.xmlparser.FPMLParser; +import net.finmath.smartcontract.model.MarketDataList; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; +import net.finmath.smartcontract.settlement.Settlement; +import net.finmath.smartcontract.valuation.client.ValuationClient; +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.w3c.dom.Node; @@ -14,6 +18,7 @@ import java.nio.charset.StandardCharsets; import java.time.LocalDateTime; import java.util.List; +import java.util.Objects; class SDCXMLParserTest { @@ -52,4 +57,34 @@ void testParser() throws IOException, SAXException, ParserConfigurationException System.out.println(irs.getLegPayer()); System.out.println(irs.getLegReceiver()); } + + @Test + void unmarshalXml() throws IOException { + final String marketDataXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml")).readAllBytes(), StandardCharsets.UTF_8); + final MarketDataList marketData = SDCXMLParser.unmarshalXml(marketDataXml, MarketDataList.class); + + Assertions.assertNotNull(marketData); + } + + @Test + void marshalClassToXMLString() { + Settlement newSettlement = new Settlement(); + + MarketDataList marketDataList = new MarketDataList(); + MarketDataPoint marketDataPoint = new MarketDataPoint(); + marketDataPoint.setValue(3.14); + marketDataPoint.setId("EUR example symbol"); + marketDataPoint.setTimeStamp(LocalDateTime.now().minusHours(2)); + marketDataList.getPoints().add(marketDataPoint); + marketDataList.setRequestTimeStamp(LocalDateTime.now()); + newSettlement.setMarketData(marketDataList); + newSettlement.setCurrency("EUR"); + newSettlement.setSettlementType(Settlement.SettlementType.REGULAR); + + String xmlString = SDCXMLParser.marshalClassToXMLString(newSettlement); + + Assertions.assertTrue(xmlString.contains("xml version")); + Assertions.assertTrue(xmlString.contains("")); + Assertions.assertTrue(xmlString.contains("")); + } } \ No newline at end of file diff --git a/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java b/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java index f11efed50..56cd49bbb 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java @@ -50,9 +50,9 @@ public class ValuationControllerTest { public void getMargin(@Autowired MockMvc mockMvc) throws Exception { final String marketDataStartXml = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); - final MarketDataList marketDataStart = SDCXMLParser.unmarshalMarketDataList(marketDataStartXml); + final MarketDataList marketDataStart = SDCXMLParser.unmarshalXml(marketDataStartXml, MarketDataList.class); final String marketDataEndXml = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml").readAllBytes(), StandardCharsets.UTF_8); - final MarketDataList marketDataEnd = SDCXMLParser.unmarshalMarketDataList(marketDataEndXml); + final MarketDataList marketDataEnd = SDCXMLParser.unmarshalXml(marketDataEndXml, MarketDataList.class); final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream(productXMLFile).readAllBytes(), StandardCharsets.UTF_8); final MarginRequest marginRequest = new MarginRequest().marketDataStart(marketDataStart).marketDataEnd(marketDataEnd).tradeData(product).valuationDate(OffsetDateTime.now()); From 69d80e078a3ddd35a22d480b8c1017e7a20288ce Mon Sep 17 00:00:00 2001 From: pekola Date: Fri, 15 Mar 2024 11:23:32 +0100 Subject: [PATCH 019/105] refactored CalibrationTests to new XML Format plus --- .../client/md_testset_with_fixings.xml | 20 ++--- .../curvecalibration/CalibrationTests.java | 74 +++++++++---------- 2 files changed, 43 insertions(+), 51 deletions(-) diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml index 4ccb470ff..ef082aaee 100644 --- a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml +++ b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml @@ -354,51 +354,51 @@ ESTRFIX1D 0.0235 - 20221214-000000 + 20221214-130000 EUB6FIX6M 0.0267 - 20221214-000000 + 20221214-130000 ESTRFIX1D 0.0235 - 20221215-000000 + 20221215-130000 EUB6FIX6M 0.0275 - 20221215-000000 + 20221215-130000 ESTRFIX1D 0.0235 - 20221218-000000 + 20221218-130000 EUB6FIX6M 0.0282 - 20221218-000000 + 20221218-130000 ESTRFIX1D 0.0235 - 20221219-000000 + 20221219-130000 EUB6FIX6M 0.0285 - 20221219-000000 + 20221219-130000 ESTRFIX1D 0.0235 - 20221220-000000 + 20221220-130000 EUB6FIX6M 0.0289 - 20221220-000000 + 20221220-130000 \ No newline at end of file diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java index c76b5f66d..1db0b5376 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java @@ -6,10 +6,12 @@ import net.finmath.marketdata.model.AnalyticModel; import net.finmath.marketdata.products.ForwardRateAgreement; import net.finmath.marketdata.products.Swap; +import net.finmath.smartcontract.model.MarginRequest; import net.finmath.smartcontract.model.MarketDataSet; import net.finmath.smartcontract.model.MarketDataSetValuesInner; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; import net.finmath.smartcontract.product.xml.SDCXMLParser; +import net.finmath.smartcontract.valuation.client.ValuationClient; import net.finmath.time.FloatingpointDate; import org.junit.jupiter.api.*; import org.xml.sax.SAXException; @@ -23,6 +25,8 @@ import java.util.*; import java.util.stream.Stream; +import static net.finmath.time.FloatingpointDate.getFloatingPointDateFromDate; + /** * Tests concerning the bootstrap procedure. Test relies on a valuation framework that can handle intraday data updates * (i.e. valuation time must not be forced at model-time 0). @@ -35,44 +39,20 @@ public class CalibrationTests { private CalibrationContext calibrationContext; private CalibratedCurves calibratedCurves; private CalibratedCurves.CalibrationSpec[] calibrationSpecs; - private HashSet calibrationDataItems; + private Set calibrationDataItems; private LocalDateTime referenceDateTime; @BeforeAll - void initializeTests() throws IOException, ParserConfigurationException, SAXException, CloneNotSupportedException { - MarketDataSet marketData; - SmartDerivativeContractDescriptor product; - try ( - InputStream marketDataMessageStream = CalibrationTests.class.getClassLoader().getResourceAsStream( - "net/finmath/smartcontract/valuation/client/legacy/md_testset_newformat_1.json"); - // data obtained from the new livefeed implementation. Contains several fixings. - InputStream sdcmlStream = CalibrationTests.class.getClassLoader() - .getResourceAsStream( - "net.finmath.smartcontract.product.xml/smartderivativecontract_with_rics.xml") // standard plain swap template - ) { - final String marketDataMessageContents = new String( - Objects.requireNonNull(marketDataMessageStream).readAllBytes(), StandardCharsets.UTF_8); - marketData = new ObjectMapper().registerModule(new JavaTimeModule()) - .readValue(marketDataMessageContents, MarketDataSet.class); - final String sdcmlFileContents = new String( - Objects.requireNonNull(sdcmlStream).readAllBytes(), - StandardCharsets.UTF_8); - product = SDCXMLParser.parse(sdcmlFileContents); - } - - final LocalDate referenceDate = marketData.getRequestTimestamp().toLocalDate(); // strip time info from request, model time 0.0 is at midnight, dataset day - referenceDateTime = marketData.getRequestTimestamp() - .toLocalDateTime(); // upgrade variable type for decimal time calculations - final List marketdataItemSpecList = product.getMarketdataItemList(); - final List marketDataValues = marketData.getValues(); - calibrationDataItems = new HashSet<>(); - marketdataItemSpecList.forEach(marketDataItemSpec -> marketDataValues.stream() - .filter(marketDataValue -> marketDataValue.getSymbol().equals(marketDataItemSpec.getKey())) - .map(marketDataValue -> new CalibrationDataItem(marketDataItemSpec, marketDataValue.getValue(), - marketDataValue.getDataTimestamp().toLocalDateTime())) - .forEach(calibrationDataItems::add)); - final CalibrationDataset calibrationDataset = new CalibrationDataset(calibrationDataItems, referenceDateTime); - calibrationContext = new CalibrationContextImpl(referenceDate, 1E-9); + void initializeTests() throws IOException, ParserConfigurationException, SAXException, CloneNotSupportedException, Exception { + + final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml").readAllBytes(), StandardCharsets.UTF_8); + final String productData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); + + + final CalibrationDataset calibrationDataset = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketData,productDescriptor.getMarketdataItemList()); + + calibrationContext = new CalibrationContextImpl(calibrationDataset.getDate().toLocalDate(), 1E-9); /* Recover calibration products spec */ Stream calibrationSpecsDataPointStream = @@ -81,6 +61,9 @@ void initializeTests() throws IOException, ParserConfigurationException, SAXExce calibrationSpecs = calibrationSpecsDataPointStream.map(c -> c.getCalibrationSpec(calibrationContext)) .toArray(CalibratedCurves.CalibrationSpec[]::new); + calibrationDataItems = calibrationDataset.getDataPoints(); + referenceDateTime = calibrationDataset.getDate(); + /* Actual calibration to be tested. These instructions are the ones used throughout the rest of the library*/ calibrationSpecsDataPointStream = @@ -150,12 +133,12 @@ void testFraBootstrap_whenParFraIsNotZeroValueFails() { @DisplayName("The spot EURIBOR rate should match the calibration data.") void testSpotEuriborRateRetrieval_whenSpotDoesNotMatchDataFails() { - Double spotRate = calibrationDataItems.stream().filter(i -> i.getSpec().getKey().equals("EUR6MD=")) + Double spotRate = calibrationDataItems.stream().filter(i -> i.getSpec().getKey().equals("EUB6DEP6M")) .findFirst() //in the test dataset EUR6MD is more recent than EURIBOR6MD (as it is usually the case) .orElseThrow().getQuote(); Assertions.assertEquals(spotRate, calibratedModel.getForwardCurve("forward-EUR-6M").getForward( calibratedModel, - FloatingpointDate.getFloatingPointDateFromDate( + getFloatingPointDateFromDate( calibrationContext.getReferenceDate().atStartOfDay(), // get decimal representation of the valuation time calibrationContext.getReferenceDate().atTime(referenceDateTime.toLocalTime()))), 1E-6, @@ -165,6 +148,15 @@ void testSpotEuriborRateRetrieval_whenSpotDoesNotMatchDataFails() { @Test @DisplayName("The past EURIBOR fixings should be copied to the forward curve.") void testEuriborFixingsRetrieval_whenCurveDoesNotMatchDataFails() { + + CalibrationDataItem item = calibrationDataItems.stream().filter(i -> i.getProductName().equals("Fixing") && i.getCurveName().equals("Euribor6M")).findAny().get(); + + double quote = calibratedModel.getForwardCurve("forward-EUR-6M") + .getForward( + calibratedModel, FloatingpointDate.getFloatingPointDateFromDate( + calibrationContext.getReferenceDate().atStartOfDay(), + item.getDate().atTime(13, 0, 0))); + calibrationDataItems.stream() .filter(i -> i.getProductName().equals("Fixing") && i.getCurveName().equals("Euribor6M")).forEach( f -> Assertions.assertEquals(0.0, Math.min( @@ -172,12 +164,12 @@ void testEuriborFixingsRetrieval_whenCurveDoesNotMatchDataFails() { .getForward( calibratedModel, FloatingpointDate.getFloatingPointDateFromDate( calibrationContext.getReferenceDate().atStartOfDay(), - f.getDate().atTime(9, 0, 0))) - f.getQuote()), Math.abs( + f.getDate().atTime(13, 0, 0))) - f.getQuote()), Math.abs( calibratedModel.getForwardCurve("forward-EUR-6M").getForward( calibratedModel, FloatingpointDate.getFloatingPointDateFromDate( calibrationContext.getReferenceDate().atStartOfDay(), - f.getDate().atTime(13, 0, 0))) - f.getQuote())), 5E-7, + f.getDate().atTime(13, 0, 0))) - f.getQuote())), 5E-5, /* EURIBOR is fixed at 09:00 UTC (11:00 CEST), or refixed at 13:00 UTC (15:00 CEST) So if testing at first fixing fails we check if the calibrator used a refixing. */ @@ -198,9 +190,9 @@ void testEstrFixingsRetrieval_whenCurveDoesNotMatchDataFails() { f -> Assertions.assertEquals( f.getQuote(), calibratedModel.getForwardCurve("forward-EUR-OIS") - .getForward(calibratedModel, FloatingpointDate.getFloatingPointDateFromDate( + .getForward(calibratedModel, getFloatingPointDateFromDate( calibrationContext.getReferenceDate().atStartOfDay(), - f.getDate().atTime(6, 0, 0))), + f.getDate().atTime(13, 0, 0))), // €STR is fixed at 06:00 UTC (08:00 CET), this test does not account for refixings 1E-5, "Error exceeded tolerance for fixing " + f.getDate() + ".")); From 3b0b00a47d112a526017cd3a1a8b5b4211fc5d59 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 15 Mar 2024 11:57:18 +0100 Subject: [PATCH 020/105] new testsets --- .../valuation/client/md_testset4.xml | 369 +++++++++++++++++ .../valuation/client/settlement_testset_2.xml | 371 ++++++++++++++++++ 2 files changed, 740 insertions(+) create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/client/md_testset4.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_2.xml diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset4.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset4.xml new file mode 100644 index 000000000..796eddde5 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset4.xml @@ -0,0 +1,369 @@ + + + 20240315-110941 + + EURAB6E50Y= + 0.02108 + 20240315-110941 + + + EUREST9Y= + 0.02543 + 20240315-110941 + + + EURAB6E10Y= + 0.027080000000000003 + 20240315-110941 + + + EUREST9M= + 0.036264500000000005 + 20240315-110941 + + + EURAB6E2Y= + 0.03241 + 20240315-110941 + + + EURAB6E27Y= + 0.02491 + 20240315-110941 + + + EUR12X18F= + 0.02846 + 20240315-110941 + + + EUREST6M= + 0.0377045 + 20240315-110941 + + + EURAB6E5Y= + 0.02793 + 20240315-110941 + + + EUREST15Y= + 0.026310000000000004 + 20240315-110941 + + + EUROSTR= + 3.908 + 20240315-110941 + + + EURAB6E20Y= + 0.026479999999999997 + 20240315-110941 + + + EUR1X7F= + 0.03825 + 20240315-110941 + + + EURAB6E4Y= + 0.02871 + 20240315-110941 + + + EUR3X9F= + 0.03619 + 20240315-110941 + + + EUREST8M= + 0.0366835 + 20240315-110941 + + + EUREST7Y= + 0.02537 + 20240315-110941 + + + EUREST2M= + 0.039016 + 20240315-110941 + + + EURAB6E30Y= + 0.0243 + 20240315-110941 + + + EUREST15M= + 0.0333605 + 20240315-110941 + + + EUREST10Y= + 0.02557 + 20240315-110941 + + + EUREST7M= + 0.0371895 + 20240315-110941 + + + EURAB6E19Y= + 0.026683 + 20240315-110941 + + + EUR6MD= + 0.0409 + 20240315-110941 + + + EUREST25Y= + 0.0252 + 20240315-110941 + + + EUREST12Y= + 0.025910000000000002 + 20240315-110941 + + + EURAB6E6Y= + 0.02748 + 20240315-110941 + + + EUR9X15F= + 0.030469999999999997 + 20240315-110941 + + + EUREST8Y= + 0.025355 + 20240315-110941 + + + EURESTSW= + 0.038992500000000006 + 20240315-110941 + + + EUREST2Y= + 0.030294999999999996 + 20240315-110941 + + + EURAB6E12Y= + 0.027190000000000002 + 20240315-110941 + + + EURAB6E13Y= + 0.027238 + 20240315-110941 + + + EURAB6E26Y= + 0.02512 + 20240315-110941 + + + EUREST4M= + 0.0385025 + 20240315-110941 + + + EURAB6E17Y= + 0.027028 + 20240315-110941 + + + EUREST3M= + 0.038901500000000006 + 20240315-110941 + + + EUR4X10F= + 0.035140000000000005 + 20240315-110941 + + + EURAB6E25Y= + 0.02535 + 20240315-110941 + + + EUROND= + 0.039900000000000005 + 20240315-110941 + + + EURAB6E7Y= + 0.02722 + 20240315-110941 + + + EUREST3Y= + 0.02795 + 20240315-110941 + + + EURAB6E21Y= + 0.02626 + 20240315-110941 + + + EUR6X12F= + 0.03307 + 20240315-110941 + + + EUREST20Y= + 0.02604 + 20240315-110941 + + + EUREST4Y= + 0.026619 + 20240315-110941 + + + EURAB6E22Y= + 0.02604 + 20240315-110941 + + + EUREST2W= + 0.038956 + 20240315-110941 + + + EURAB6E23Y= + 0.02581 + 20240315-110941 + + + EUREST30Y= + 0.024370000000000003 + 20240315-110941 + + + EUREST18M= + 0.03211 + 20240315-110941 + + + EURAB6E28Y= + 0.024700000000000003 + 20240315-110941 + + + EUREST21M= + 0.0311085 + 20240315-110941 + + + EUREST11Y= + 0.02572 + 20240315-110941 + + + EURAB6E16Y= + 0.027153 + 20240315-110941 + + + EURAB6E14Y= + 0.027256999999999997 + 20240315-110941 + + + EURAB6E3Y= + 0.030045000000000002 + 20240315-110941 + + + EURAB6E18Y= + 0.026868 + 20240315-110941 + + + EURAB6E9Y= + 0.02706 + 20240315-110941 + + + EUREST6Y= + 0.025544999999999998 + 20240315-110941 + + + EURSWD= + 0.039450000000000006 + 20240315-110941 + + + EURAB6E29Y= + 0.024489999999999998 + 20240315-110941 + + + EUREST1Y= + 0.03488 + 20240315-110941 + + + EUREST3W= + 0.0389805 + 20240315-110941 + + + EURAB6E24Y= + 0.02558 + 20240315-110941 + + + EURAB6E11Y= + 0.027128 + 20240315-110941 + + + EURAB6E15Y= + 0.027229999999999997 + 20240315-110941 + + + EUREST5Y= + 0.025905 + 20240315-110941 + + + EURAB6E40Y= + 0.02261 + 20240315-110941 + + + EUREST5M= + 0.038045999999999996 + 20240315-110941 + + + EUR2X8F= + 0.03722 + 20240315-110941 + + + EURAB6E8Y= + 0.0271 + 20240315-110941 + + + EUREST1M= + 0.0390015 + 20240315-110941 + + \ No newline at end of file diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_2.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_2.xml new file mode 100644 index 000000000..134d513e6 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_2.xml @@ -0,0 +1,371 @@ + + + + 20240315-110941 + + EURAB6E50Y= + 0.02108 + 20240315-110941 + + + EUREST9Y= + 0.02543 + 20240315-110941 + + + EURAB6E10Y= + 0.027080000000000003 + 20240315-110941 + + + EUREST9M= + 0.036264500000000005 + 20240315-110941 + + + EURAB6E2Y= + 0.03241 + 20240315-110941 + + + EURAB6E27Y= + 0.02491 + 20240315-110941 + + + EUR12X18F= + 0.02846 + 20240315-110941 + + + EUREST6M= + 0.0377045 + 20240315-110941 + + + EURAB6E5Y= + 0.02793 + 20240315-110941 + + + EUREST15Y= + 0.026310000000000004 + 20240315-110941 + + + EUROSTR= + 3.908 + 20240315-110941 + + + EURAB6E20Y= + 0.026479999999999997 + 20240315-110941 + + + EUR1X7F= + 0.03825 + 20240315-110941 + + + EURAB6E4Y= + 0.02871 + 20240315-110941 + + + EUR3X9F= + 0.03619 + 20240315-110941 + + + EUREST8M= + 0.0366835 + 20240315-110941 + + + EUREST7Y= + 0.02537 + 20240315-110941 + + + EUREST2M= + 0.039016 + 20240315-110941 + + + EURAB6E30Y= + 0.0243 + 20240315-110941 + + + EUREST15M= + 0.0333605 + 20240315-110941 + + + EUREST10Y= + 0.02557 + 20240315-110941 + + + EUREST7M= + 0.0371895 + 20240315-110941 + + + EURAB6E19Y= + 0.026683 + 20240315-110941 + + + EUR6MD= + 0.0409 + 20240315-110941 + + + EUREST25Y= + 0.0252 + 20240315-110941 + + + EUREST12Y= + 0.025910000000000002 + 20240315-110941 + + + EURAB6E6Y= + 0.02748 + 20240315-110941 + + + EUR9X15F= + 0.030469999999999997 + 20240315-110941 + + + EUREST8Y= + 0.025355 + 20240315-110941 + + + EURESTSW= + 0.038992500000000006 + 20240315-110941 + + + EUREST2Y= + 0.030294999999999996 + 20240315-110941 + + + EURAB6E12Y= + 0.027190000000000002 + 20240315-110941 + + + EURAB6E13Y= + 0.027238 + 20240315-110941 + + + EURAB6E26Y= + 0.02512 + 20240315-110941 + + + EUREST4M= + 0.0385025 + 20240315-110941 + + + EURAB6E17Y= + 0.027028 + 20240315-110941 + + + EUREST3M= + 0.038901500000000006 + 20240315-110941 + + + EUR4X10F= + 0.035140000000000005 + 20240315-110941 + + + EURAB6E25Y= + 0.02535 + 20240315-110941 + + + EUROND= + 0.039900000000000005 + 20240315-110941 + + + EURAB6E7Y= + 0.02722 + 20240315-110941 + + + EUREST3Y= + 0.02795 + 20240315-110941 + + + EURAB6E21Y= + 0.02626 + 20240315-110941 + + + EUR6X12F= + 0.03307 + 20240315-110941 + + + EUREST20Y= + 0.02604 + 20240315-110941 + + + EUREST4Y= + 0.026619 + 20240315-110941 + + + EURAB6E22Y= + 0.02604 + 20240315-110941 + + + EUREST2W= + 0.038956 + 20240315-110941 + + + EURAB6E23Y= + 0.02581 + 20240315-110941 + + + EUREST30Y= + 0.024370000000000003 + 20240315-110941 + + + EUREST18M= + 0.03211 + 20240315-110941 + + + EURAB6E28Y= + 0.024700000000000003 + 20240315-110941 + + + EUREST21M= + 0.0311085 + 20240315-110941 + + + EUREST11Y= + 0.02572 + 20240315-110941 + + + EURAB6E16Y= + 0.027153 + 20240315-110941 + + + EURAB6E14Y= + 0.027256999999999997 + 20240315-110941 + + + EURAB6E3Y= + 0.030045000000000002 + 20240315-110941 + + + EURAB6E18Y= + 0.026868 + 20240315-110941 + + + EURAB6E9Y= + 0.02706 + 20240315-110941 + + + EUREST6Y= + 0.025544999999999998 + 20240315-110941 + + + EURSWD= + 0.039450000000000006 + 20240315-110941 + + + EURAB6E29Y= + 0.024489999999999998 + 20240315-110941 + + + EUREST1Y= + 0.03488 + 20240315-110941 + + + EUREST3W= + 0.0389805 + 20240315-110941 + + + EURAB6E24Y= + 0.02558 + 20240315-110941 + + + EURAB6E11Y= + 0.027128 + 20240315-110941 + + + EURAB6E15Y= + 0.027229999999999997 + 20240315-110941 + + + EUREST5Y= + 0.025905 + 20240315-110941 + + + EURAB6E40Y= + 0.02261 + 20240315-110941 + + + EUREST5M= + 0.038045999999999996 + 20240315-110941 + + + EUR2X8F= + 0.03722 + 20240315-110941 + + + EURAB6E8Y= + 0.0271 + 20240315-110941 + + + EUREST1M= + 0.0390015 + 20240315-110941 + + + \ No newline at end of file From ad4b413f2ae2b3db187abede2b59d67289270def Mon Sep 17 00:00:00 2001 From: pekola Date: Fri, 15 Mar 2024 14:00:25 +0100 Subject: [PATCH 021/105] bugfix - corrected one endpoint / removed "legacy" --- .../finmath/smartcontract/valuation/client/ValuationClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java index 9f3d75b8b..16068b54c 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java +++ b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java @@ -59,7 +59,7 @@ public static void main(String[] args) throws Exception { String base64Creds = Base64.getEncoder().encodeToString(authString.getBytes()); headers.add("Authorization", "Basic " + base64Creds); - RequestEntity requestEntity = new RequestEntity(marginRequest, headers, HttpMethod.POST, new URI(url + "/valuation/legacy/margin"), MarginRequest.class); + RequestEntity requestEntity = new RequestEntity(marginRequest, headers, HttpMethod.POST, new URI(url + "/valuation/margin"), MarginRequest.class); ResponseEntity response = new RestTemplate().exchange(requestEntity, MarginResult.class); MarginResult result = response.getBody(); From f09bdac0f7fa4cf201b2e277b97bfb476d175adb Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 15 Mar 2024 19:59:11 +0100 Subject: [PATCH 022/105] trigger perform settlement via REST endpoint --- .../marketdata/LaunchAGenerator.java | 1 + .../PlainSwapEditorController.java | 2 +- .../valuation/client/md_testset4.xml | 369 --------------- .../{md_testset3.xml => md_testset_rics.xml} | 0 .../valuation/client/settlement_testset_2.xml | 437 +++++++++--------- .../client/settlement_testset_initial.xml | 422 ++++++++--------- .../smartcontract/product/xml/JAXBTests.java | 2 +- 7 files changed, 425 insertions(+), 808 deletions(-) delete mode 100644 src/main/resources/net/finmath/smartcontract/valuation/client/md_testset4.xml rename src/main/resources/net/finmath/smartcontract/valuation/client/{md_testset3.xml => md_testset_rics.xml} (100%) diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java index dba971a66..4475c11ec 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java @@ -51,6 +51,7 @@ public void accept(MarketDataList s) throws Throwable { System.out.println("Consumer MarketDataStorage: Stored Market Data at: "); System.out.println(socket.isOpen()); + //TODO replace file File file = new File("md_testset3.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java index 9f8e5895a..23207586a 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java @@ -145,7 +145,7 @@ public ResponseEntity evaluateFromPlainSwapEditor(PlainSwapOperatio //@TODO: where resourceGovenor retrieves the data from neeeds to be understood // TODO clarify why the controller needs a fixed testset out of resources //marketDataString = new String(Objects.requireNonNull(PlainSwapEditorController.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/legacy/md_testset_refinitiv.xml")).readAllBytes(), StandardCharsets.UTF_8); - marketDataString = new String(Objects.requireNonNull(PlainSwapEditorController.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset3.xml")).readAllBytes(), StandardCharsets.UTF_8); + marketDataString = new String(Objects.requireNonNull(PlainSwapEditorController.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset_rics.xml")).readAllBytes(), StandardCharsets.UTF_8); /* marketDataString = resourceGovernor.getActiveDatasetAsResourceInReadMode(currentUserName).getContentAsString(StandardCharsets.UTF_8); marketData = objectMapper.readValue(marketDataString, MarketDataList.class);*/ diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset4.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset4.xml deleted file mode 100644 index 796eddde5..000000000 --- a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset4.xml +++ /dev/null @@ -1,369 +0,0 @@ - - - 20240315-110941 - - EURAB6E50Y= - 0.02108 - 20240315-110941 - - - EUREST9Y= - 0.02543 - 20240315-110941 - - - EURAB6E10Y= - 0.027080000000000003 - 20240315-110941 - - - EUREST9M= - 0.036264500000000005 - 20240315-110941 - - - EURAB6E2Y= - 0.03241 - 20240315-110941 - - - EURAB6E27Y= - 0.02491 - 20240315-110941 - - - EUR12X18F= - 0.02846 - 20240315-110941 - - - EUREST6M= - 0.0377045 - 20240315-110941 - - - EURAB6E5Y= - 0.02793 - 20240315-110941 - - - EUREST15Y= - 0.026310000000000004 - 20240315-110941 - - - EUROSTR= - 3.908 - 20240315-110941 - - - EURAB6E20Y= - 0.026479999999999997 - 20240315-110941 - - - EUR1X7F= - 0.03825 - 20240315-110941 - - - EURAB6E4Y= - 0.02871 - 20240315-110941 - - - EUR3X9F= - 0.03619 - 20240315-110941 - - - EUREST8M= - 0.0366835 - 20240315-110941 - - - EUREST7Y= - 0.02537 - 20240315-110941 - - - EUREST2M= - 0.039016 - 20240315-110941 - - - EURAB6E30Y= - 0.0243 - 20240315-110941 - - - EUREST15M= - 0.0333605 - 20240315-110941 - - - EUREST10Y= - 0.02557 - 20240315-110941 - - - EUREST7M= - 0.0371895 - 20240315-110941 - - - EURAB6E19Y= - 0.026683 - 20240315-110941 - - - EUR6MD= - 0.0409 - 20240315-110941 - - - EUREST25Y= - 0.0252 - 20240315-110941 - - - EUREST12Y= - 0.025910000000000002 - 20240315-110941 - - - EURAB6E6Y= - 0.02748 - 20240315-110941 - - - EUR9X15F= - 0.030469999999999997 - 20240315-110941 - - - EUREST8Y= - 0.025355 - 20240315-110941 - - - EURESTSW= - 0.038992500000000006 - 20240315-110941 - - - EUREST2Y= - 0.030294999999999996 - 20240315-110941 - - - EURAB6E12Y= - 0.027190000000000002 - 20240315-110941 - - - EURAB6E13Y= - 0.027238 - 20240315-110941 - - - EURAB6E26Y= - 0.02512 - 20240315-110941 - - - EUREST4M= - 0.0385025 - 20240315-110941 - - - EURAB6E17Y= - 0.027028 - 20240315-110941 - - - EUREST3M= - 0.038901500000000006 - 20240315-110941 - - - EUR4X10F= - 0.035140000000000005 - 20240315-110941 - - - EURAB6E25Y= - 0.02535 - 20240315-110941 - - - EUROND= - 0.039900000000000005 - 20240315-110941 - - - EURAB6E7Y= - 0.02722 - 20240315-110941 - - - EUREST3Y= - 0.02795 - 20240315-110941 - - - EURAB6E21Y= - 0.02626 - 20240315-110941 - - - EUR6X12F= - 0.03307 - 20240315-110941 - - - EUREST20Y= - 0.02604 - 20240315-110941 - - - EUREST4Y= - 0.026619 - 20240315-110941 - - - EURAB6E22Y= - 0.02604 - 20240315-110941 - - - EUREST2W= - 0.038956 - 20240315-110941 - - - EURAB6E23Y= - 0.02581 - 20240315-110941 - - - EUREST30Y= - 0.024370000000000003 - 20240315-110941 - - - EUREST18M= - 0.03211 - 20240315-110941 - - - EURAB6E28Y= - 0.024700000000000003 - 20240315-110941 - - - EUREST21M= - 0.0311085 - 20240315-110941 - - - EUREST11Y= - 0.02572 - 20240315-110941 - - - EURAB6E16Y= - 0.027153 - 20240315-110941 - - - EURAB6E14Y= - 0.027256999999999997 - 20240315-110941 - - - EURAB6E3Y= - 0.030045000000000002 - 20240315-110941 - - - EURAB6E18Y= - 0.026868 - 20240315-110941 - - - EURAB6E9Y= - 0.02706 - 20240315-110941 - - - EUREST6Y= - 0.025544999999999998 - 20240315-110941 - - - EURSWD= - 0.039450000000000006 - 20240315-110941 - - - EURAB6E29Y= - 0.024489999999999998 - 20240315-110941 - - - EUREST1Y= - 0.03488 - 20240315-110941 - - - EUREST3W= - 0.0389805 - 20240315-110941 - - - EURAB6E24Y= - 0.02558 - 20240315-110941 - - - EURAB6E11Y= - 0.027128 - 20240315-110941 - - - EURAB6E15Y= - 0.027229999999999997 - 20240315-110941 - - - EUREST5Y= - 0.025905 - 20240315-110941 - - - EURAB6E40Y= - 0.02261 - 20240315-110941 - - - EUREST5M= - 0.038045999999999996 - 20240315-110941 - - - EUR2X8F= - 0.03722 - 20240315-110941 - - - EURAB6E8Y= - 0.0271 - 20240315-110941 - - - EUREST1M= - 0.0390015 - 20240315-110941 - - \ No newline at end of file diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset3.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_rics.xml similarity index 100% rename from src/main/resources/net/finmath/smartcontract/valuation/client/md_testset3.xml rename to src/main/resources/net/finmath/smartcontract/valuation/client/md_testset_rics.xml diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_2.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_2.xml index 134d513e6..34e9c5bb2 100644 --- a/src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_2.xml +++ b/src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_2.xml @@ -1,371 +1,356 @@ - 20240315-110941 + 20220908-170110 - EURAB6E50Y= - 0.02108 - 20240315-110941 + ESTRSWP7D + 0.0064125 + 20220908-170110 - EUREST9Y= - 0.02543 - 20240315-110941 + ESTRSWP14D + 0.0065595 + 20220908-170110 - EURAB6E10Y= - 0.027080000000000003 - 20240315-110941 + ESTRSWP21D + 0.006567000000000001 + 20220908-170110 - EUREST9M= - 0.036264500000000005 - 20240315-110941 + ESTRSWP1M + 0.006572 + 20220908-170110 - EURAB6E2Y= - 0.03241 - 20240315-110941 + ESTRSWP2M + 0.009576 + 20220908-170110 - EURAB6E27Y= - 0.02491 - 20240315-110941 + ESTRSWP3M + 0.011339000000000002 + 20220908-170110 - EUR12X18F= - 0.02846 - 20240315-110941 + ESTRSWP4M + 0.01361 + 20220908-170110 - EUREST6M= - 0.0377045 - 20240315-110941 + ESTRSWP5M + 0.01552 + 20220908-170110 - EURAB6E5Y= - 0.02793 - 20240315-110941 + EUB6DEP6M + 0.01875 + 20220908-170110 - EUREST15Y= - 0.026310000000000004 - 20240315-110941 + ESTRSWP6M + 0.017040000000000003 + 20220908-170110 - EUROSTR= - 3.908 - 20240315-110941 + EUB6FRA7M + 0.021630000000000003 + 20220908-170110 - EURAB6E20Y= - 0.026479999999999997 - 20240315-110941 + ESTRSWP7M + 0.0186 + 20220908-170110 - EUR1X7F= - 0.03825 - 20240315-110941 + EUB6FRA8M + 0.025230000000000002 + 20220908-170110 - EURAB6E4Y= - 0.02871 - 20240315-110941 + ESTRSWP8M + 0.01992 + 20220908-170110 - EUR3X9F= - 0.03619 - 20240315-110941 + EUB6FRA9M + 0.02767 + 20220908-170110 - EUREST8M= - 0.0366835 - 20240315-110941 + ESTRSWP9M + 0.020934999999999995 + 20220908-170110 - EUREST7Y= - 0.02537 - 20240315-110941 + EUB6FRA10M + 0.02924 + 20220908-170110 - EUREST2M= - 0.039016 - 20240315-110941 + EUB6FRA12M + 0.031920000000000004 + 20220908-170110 - EURAB6E30Y= - 0.0243 - 20240315-110941 + ESTRSWP1Y + 0.023434999999999997 + 20220908-170110 - EUREST15M= - 0.0333605 - 20240315-110941 + ESTRSWP15M + 0.024894999999999997 + 20220908-170110 - EUREST10Y= - 0.02557 - 20240315-110941 + EUB6FRA15M + 0.03327 + 20220908-170110 - EUREST7M= - 0.0371895 - 20240315-110941 + EUB6FRA18M + 0.03161 + 20220908-170110 - EURAB6E19Y= - 0.026683 - 20240315-110941 + ESTRSWP18M + 0.0258 + 20220908-170110 - EUR6MD= - 0.0409 - 20240315-110941 + ESTRSWP21M + 0.02642 + 20220908-170110 - EUREST25Y= - 0.0252 - 20240315-110941 + ESTRSWP2Y + 0.02681 + 20220908-170110 - EUREST12Y= - 0.025910000000000002 - 20240315-110941 + EUB6SWP2Y + 0.029539999999999997 + 20220908-170110 - EURAB6E6Y= - 0.02748 - 20240315-110941 + EUB6SWP3Y + 0.0297 + 20220908-170110 - EUR9X15F= - 0.030469999999999997 - 20240315-110941 + ESTRSWP3Y + 0.026760000000000003 + 20220908-170110 - EUREST8Y= - 0.025355 - 20240315-110941 + ESTRSWP4Y + 0.026494999999999998 + 20220908-170110 - EURESTSW= - 0.038992500000000006 - 20240315-110941 + EUB6SWP4Y + 0.029459999999999997 + 20220908-170110 - EUREST2Y= - 0.030294999999999996 - 20240315-110941 + ESTRSWP5Y + 0.026304999999999995 + 20220908-170110 - EURAB6E12Y= - 0.027190000000000002 - 20240315-110941 + EUB6SWP5Y + 0.02927 + 20220908-170110 - EURAB6E13Y= - 0.027238 - 20240315-110941 + ESTRSWP6Y + 0.026070000000000003 + 20220908-170110 - EURAB6E26Y= - 0.02512 - 20240315-110941 + EUB6SWP6Y + 0.02902 + 20220908-170110 - EUREST4M= - 0.0385025 - 20240315-110941 + ESTRSWP7Y + 0.025774999999999996 + 20220908-170110 - EURAB6E17Y= - 0.027028 - 20240315-110941 + EUB6SWP7Y + 0.02878 + 20220908-170110 - EUREST3M= - 0.038901500000000006 - 20240315-110941 + EUB6SWP8Y + 0.02864 + 20220908-170110 - EUR4X10F= - 0.035140000000000005 - 20240315-110941 + ESTRSWP8Y + 0.02569 + 20220908-170110 - EURAB6E25Y= - 0.02535 - 20240315-110941 - - - EUROND= - 0.039900000000000005 - 20240315-110941 - - - EURAB6E7Y= - 0.02722 - 20240315-110941 - - - EUREST3Y= - 0.02795 - 20240315-110941 + EUB6SWP9Y + 0.028579999999999998 + 20220908-170110 - EURAB6E21Y= - 0.02626 - 20240315-110941 + ESTRSWP9Y + 0.02565 + 20220908-170110 - EUR6X12F= - 0.03307 - 20240315-110941 + ESTRSWP10Y + 0.025670000000000002 + 20220908-170110 - EUREST20Y= - 0.02604 - 20240315-110941 + EUB6SWP10Y + 0.02857 + 20220908-170110 - EUREST4Y= - 0.026619 - 20240315-110941 + EUB6SWP11Y + 0.028520000000000004 + 20220908-170110 - EURAB6E22Y= - 0.02604 - 20240315-110941 + ESTRSWP11Y + 0.02568 + 20220908-170110 - EUREST2W= - 0.038956 - 20240315-110941 + EUB6SWP12Y + 0.028399999999999998 + 20220908-170110 - EURAB6E23Y= - 0.02581 - 20240315-110941 + ESTRSWP12Y + 0.025595 + 20220908-170110 - EUREST30Y= - 0.024370000000000003 - 20240315-110941 + EUB6SWP13Y + 0.028300000000000002 + 20220908-170110 - EUREST18M= - 0.03211 - 20240315-110941 + EUB6SWP14Y + 0.028120000000000003 + 20220908-170110 - EURAB6E28Y= - 0.024700000000000003 - 20240315-110941 + EUB6SWP15Y + 0.02782 + 20220908-170110 - EUREST21M= - 0.0311085 - 20240315-110941 + ESTRSWP15Y + 0.02535 + 20220908-170110 - EUREST11Y= - 0.02572 - 20240315-110941 + EUB6SWP16Y + 0.027469999999999998 + 20220908-170110 - EURAB6E16Y= - 0.027153 - 20240315-110941 + EUB6SWP17Y + 0.02705 + 20220908-170110 - EURAB6E14Y= - 0.027256999999999997 - 20240315-110941 + EUB6SWP18Y + 0.026580000000000003 + 20220908-170110 - EURAB6E3Y= - 0.030045000000000002 - 20240315-110941 + EUB6SWP19Y + 0.026079999999999996 + 20220908-170110 - EURAB6E18Y= - 0.026868 - 20240315-110941 + EUB6SWP20Y + 0.025570000000000002 + 20220908-170110 - EURAB6E9Y= - 0.02706 - 20240315-110941 + ESTRSWP20Y + 0.023715 + 20220908-170110 - EUREST6Y= - 0.025544999999999998 - 20240315-110941 + EUB6SWP21Y + 0.02511 + 20220908-170110 - EURSWD= - 0.039450000000000006 - 20240315-110941 + EUB6SWP22Y + 0.024569999999999998 + 20220908-170110 - EURAB6E29Y= - 0.024489999999999998 - 20240315-110941 + EUB6SWP23Y + 0.024169999999999997 + 20220908-170110 - EUREST1Y= - 0.03488 - 20240315-110941 + EUB6SWP24Y + 0.02373 + 20220908-170110 - EUREST3W= - 0.0389805 - 20240315-110941 + EUB6SWP25Y + 0.0233 + 20220908-170110 - EURAB6E24Y= - 0.02558 - 20240315-110941 + ESTRSWP25Y + 0.022010000000000002 + 20220908-170110 - EURAB6E11Y= - 0.027128 - 20240315-110941 + EUB6SWP26Y + 0.0229 + 20220908-170110 - EURAB6E15Y= - 0.027229999999999997 - 20240315-110941 + EUB6SWP27Y + 0.022489999999999996 + 20220908-170110 - EUREST5Y= - 0.025905 - 20240315-110941 + EUB6SWP28Y + 0.022090000000000002 + 20220908-170110 - EURAB6E40Y= - 0.02261 - 20240315-110941 + EUB6SWP29Y + 0.021709999999999997 + 20220908-170110 - EUREST5M= - 0.038045999999999996 - 20240315-110941 + EUB6SWP30Y + 0.021349999999999997 + 20220908-170110 - EUR2X8F= - 0.03722 - 20240315-110941 + ESTRSWP30Y + 0.020489999999999998 + 20220908-170110 - EURAB6E8Y= - 0.0271 - 20240315-110941 + EUB6SWP40Y + 0.01891 + 20220908-170110 - EUREST1M= - 0.0390015 - 20240315-110941 + EUB6SWP50Y + 0.01711 + 20220908-170110 \ No newline at end of file diff --git a/src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_initial.xml b/src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_initial.xml index c476ec66b..d19c957e9 100644 --- a/src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_initial.xml +++ b/src/main/resources/net/finmath/smartcontract/valuation/client/settlement_testset_initial.xml @@ -5,356 +5,356 @@ 50000 -5000 - 20230131-143523 + 20220908-170110 - EURESTSW= - 0.019761 - 20230131-143523 + ESTRSWP7D + 0.0064125 + 20220908-170110 - EUREST2W= - 0.021920000000000002 - 20230131-143523 + ESTRSWP14D + 0.0065595 + 20220908-170110 - EUREST3W= - 0.022648 - 20230131-143523 + ESTRSWP21D + 0.006567000000000001 + 20220908-170110 - EUREST1M= - 0.023009500000000002 - 20230131-143523 + ESTRSWP1M + 0.006572 + 20220908-170110 - EUREST2M= - 0.024499 - 20230131-143523 + ESTRSWP2M + 0.009576 + 20220908-170110 - EUREST3M= - 0.025866499999999997 - 20230131-143523 + ESTRSWP3M + 0.011339000000000002 + 20220908-170110 - EUREST4M= - 0.0271695 - 20230131-143523 + ESTRSWP4M + 0.01361 + 20220908-170110 - EUREST5M= - 0.028263999999999997 - 20230131-143523 + ESTRSWP5M + 0.01552 + 20220908-170110 - EUREST6M= - 0.0291575 - 20230131-143523 + EUB6DEP6M + 0.01875 + 20220908-170110 - EUR6MD= - 0.03 - 20230131-143523 + ESTRSWP6M + 0.017040000000000003 + 20220908-170110 - EUREST7M= - 0.03 - 20230131-143523 + EUB6FRA7M + 0.021630000000000003 + 20220908-170110 - EUR1X7F= - 0.03202 - 20230131-143523 + ESTRSWP7M + 0.0186 + 20220908-170110 - EUREST8M= - 0.030505 - 20230131-143523 + EUB6FRA8M + 0.025230000000000002 + 20220908-170110 - EUR2X8F= - 0.03359 - 20230131-143523 + ESTRSWP8M + 0.01992 + 20220908-170110 - EUR3X9F= - 0.03458 - 20230131-143523 + EUB6FRA9M + 0.02767 + 20220908-170110 - EUREST9M= - 0.0309715 - 20230131-143523 + ESTRSWP9M + 0.020934999999999995 + 20220908-170110 - EUR4X10F= - 0.03538 - 20230131-143523 + EUB6FRA10M + 0.02924 + 20220908-170110 - EUR6X12F= - 0.03565 - 20230131-143523 + EUB6FRA12M + 0.031920000000000004 + 20220908-170110 - EUREST1Y= - 0.03175 - 20230131-143523 + ESTRSWP1Y + 0.023434999999999997 + 20220908-170110 - EUREST15M= - 0.031799999999999995 - 20230131-143523 + ESTRSWP15M + 0.024894999999999997 + 20220908-170110 - EUR9X15F= - 0.03471 - 20230131-143523 + EUB6FRA15M + 0.03327 + 20220908-170110 - EUREST18M= - 0.031470000000000005 - 20230131-143523 + EUB6FRA18M + 0.03161 + 20220908-170110 - EUR12X18F= - 0.03323 - 20230131-143523 + ESTRSWP18M + 0.0258 + 20220908-170110 - EUREST21M= - 0.030990000000000004 - 20230131-143523 + ESTRSWP21M + 0.02642 + 20220908-170110 - EURAB6E2Y= - 0.03281 - 20230131-143523 + ESTRSWP2Y + 0.02681 + 20220908-170110 - EUREST2Y= - 0.03049 - 20230131-143523 + EUB6SWP2Y + 0.029539999999999997 + 20220908-170110 - EURAB6E3Y= - 0.03109 - 20230131-143523 + EUB6SWP3Y + 0.0297 + 20220908-170110 - EUREST3Y= - 0.02852 - 20230131-143523 + ESTRSWP3Y + 0.026760000000000003 + 20220908-170110 - EURAB6E4Y= - 0.029930000000000002 - 20230131-143523 + ESTRSWP4Y + 0.026494999999999998 + 20220908-170110 - EUREST4Y= - 0.02732 - 20230131-143523 + EUB6SWP4Y + 0.029459999999999997 + 20220908-170110 - EURAB6E5Y= - 0.029299999999999996 - 20230131-143523 + ESTRSWP5Y + 0.026304999999999995 + 20220908-170110 - EUREST5Y= - 0.026605 - 20230131-143523 + EUB6SWP5Y + 0.02927 + 20220908-170110 - EURAB6E6Y= - 0.028920000000000005 - 20230131-143523 + ESTRSWP6Y + 0.026070000000000003 + 20220908-170110 - EUREST6Y= - 0.026165000000000004 - 20230131-143523 + EUB6SWP6Y + 0.02902 + 20220908-170110 - EUREST7Y= - 0.025925000000000004 - 20230131-143523 + ESTRSWP7Y + 0.025774999999999996 + 20220908-170110 - EURAB6E7Y= - 0.0287 - 20230131-143523 + EUB6SWP7Y + 0.02878 + 20220908-170110 - EUREST8Y= - 0.025854999999999996 - 20230131-143523 + EUB6SWP8Y + 0.02864 + 20220908-170110 - EURAB6E8Y= - 0.028609999999999997 - 20230131-143523 + ESTRSWP8Y + 0.02569 + 20220908-170110 - EURAB6E9Y= - 0.028609999999999997 - 20230131-143523 + EUB6SWP9Y + 0.028579999999999998 + 20220908-170110 - EUREST9Y= - 0.025905 - 20230131-143523 + ESTRSWP9Y + 0.02565 + 20220908-170110 - EUREST10Y= - 0.02609 - 20230131-143523 + ESTRSWP10Y + 0.025670000000000002 + 20220908-170110 - EURAB6E10Y= - 0.028674999999999996 - 20230131-143523 + EUB6SWP10Y + 0.02857 + 20220908-170110 - EUREST11Y= - 0.02624 - 20230131-143523 + EUB6SWP11Y + 0.028520000000000004 + 20220908-170110 - EURAB6E11Y= - 0.02872 - 20230131-143523 + ESTRSWP11Y + 0.02568 + 20220908-170110 - EUREST12Y= - 0.026325 - 20230131-143523 + EUB6SWP12Y + 0.028399999999999998 + 20220908-170110 - EURAB6E12Y= - 0.028739999999999998 - 20230131-143523 + ESTRSWP12Y + 0.025595 + 20220908-170110 - EURAB6E13Y= - 0.02872 - 20230131-143523 + EUB6SWP13Y + 0.028300000000000002 + 20220908-170110 - EURAB6E14Y= - 0.028419999999999997 - 20230131-143523 + EUB6SWP14Y + 0.028120000000000003 + 20220908-170110 - EUREST15Y= - 0.026365 - 20230131-143523 + EUB6SWP15Y + 0.02782 + 20220908-170110 - EURAB6E15Y= - 0.02849 - 20230131-143523 + ESTRSWP15Y + 0.02535 + 20220908-170110 - EURAB6E16Y= - 0.028259999999999997 - 20230131-143523 + EUB6SWP16Y + 0.027469999999999998 + 20220908-170110 - EURAB6E17Y= - 0.027960000000000002 - 20230131-143523 + EUB6SWP17Y + 0.02705 + 20220908-170110 - EURAB6E18Y= - 0.027610000000000003 - 20230131-143523 + EUB6SWP18Y + 0.026580000000000003 + 20220908-170110 - EURAB6E19Y= - 0.02724 - 20230131-143523 + EUB6SWP19Y + 0.026079999999999996 + 20220908-170110 - EUREST20Y= - 0.02535 - 20230131-143523 + EUB6SWP20Y + 0.025570000000000002 + 20220908-170110 - EURAB6E20Y= - 0.026855000000000004 - 20230131-143523 + ESTRSWP20Y + 0.023715 + 20220908-170110 - EURAB6E21Y= - 0.026549999999999997 - 20230131-143523 + EUB6SWP21Y + 0.02511 + 20220908-170110 - EURAB6E22Y= - 0.02618 - 20230131-143523 + EUB6SWP22Y + 0.024569999999999998 + 20220908-170110 - EURAB6E23Y= - 0.0258 - 20230131-143523 + EUB6SWP23Y + 0.024169999999999997 + 20220908-170110 - EURAB6E24Y= - 0.02535 - 20230131-143523 + EUB6SWP24Y + 0.02373 + 20220908-170110 - EURAB6E25Y= - 0.025004999999999996 - 20230131-143523 + EUB6SWP25Y + 0.0233 + 20220908-170110 - EUREST25Y= - 0.023905000000000003 - 20230131-143523 + ESTRSWP25Y + 0.022010000000000002 + 20220908-170110 - EURAB6E26Y= - 0.024700000000000003 - 20230131-143523 + EUB6SWP26Y + 0.0229 + 20220908-170110 - EURAB6E27Y= - 0.02435 - 20230131-143523 + EUB6SWP27Y + 0.022489999999999996 + 20220908-170110 - EURAB6E28Y= - 0.02403 - 20230131-143523 + EUB6SWP28Y + 0.022090000000000002 + 20220908-170110 - EURAB6E29Y= - 0.02373 - 20230131-143523 + EUB6SWP29Y + 0.021709999999999997 + 20220908-170110 - EUREST30Y= - 0.022664999999999998 - 20230131-143523 + EUB6SWP30Y + 0.021349999999999997 + 20220908-170110 - EURAB6E30Y= - 0.023405 - 20230131-143523 + ESTRSWP30Y + 0.020489999999999998 + 20220908-170110 - EURAB6E40Y= - 0.02093 - 20230131-143523 + EUB6SWP40Y + 0.01891 + 20220908-170110 - EURAB6E50Y= - 0.01899 - 20230131-143523 + EUB6SWP50Y + 0.01711 + 20220908-170110 20240314-170000 diff --git a/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java b/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java index 32d4d6382..f6743f28a 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java @@ -170,7 +170,7 @@ void handlerTest() throws java.lang.Exception { // String product = handler.getContractAsXmlString(); //final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/legacy/md_testset_refinitiv.xml").readAllBytes(), StandardCharsets.UTF_8); - final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset3.xml").readAllBytes(), StandardCharsets.UTF_8); + final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset_rics.xml").readAllBytes(), StandardCharsets.UTF_8); MarginCalculator marginCalculator = new MarginCalculator(); ValueResult valuationResult = marginCalculator.getValue(marketData, handler.getContractAsXmlString()); From fdc459712db08cdb2244212d25796079f1599974 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Mon, 18 Mar 2024 10:43:25 +0100 Subject: [PATCH 023/105] dont need formatting in XML strings --- .../net/finmath/smartcontract/product/xml/SDCXMLParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java index df78519a2..dc9cdd83a 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java @@ -165,7 +165,7 @@ public static String marshalClassToXMLString(T t) { try { JAXBContext jaxbContextSettlement = JAXBContext.newInstance(Settlement.class); Marshaller jaxbMarshaller = jaxbContextSettlement.createMarshaller(); - jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + //jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); StringWriter writer = new StringWriter(); jaxbMarshaller.marshal(t, writer); return writer.toString(); From e6e0afe85d27a712e077a2961629aa84dccdc781 Mon Sep 17 00:00:00 2001 From: Christian Fries Date: Mon, 18 Mar 2024 14:06:48 +0100 Subject: [PATCH 024/105] Reorganized solidity documentation --- src/site/markdown/erc-6123/erc-6123.md | 273 ------------------ src/site/markdown/index.md | 4 +- .../{erc-7573 => solidity}/erc-7573.md | 0 src/site/markdown/solidity/index.md | 26 ++ 4 files changed, 29 insertions(+), 274 deletions(-) delete mode 100644 src/site/markdown/erc-6123/erc-6123.md rename src/site/markdown/{erc-7573 => solidity}/erc-7573.md (100%) create mode 100644 src/site/markdown/solidity/index.md diff --git a/src/site/markdown/erc-6123/erc-6123.md b/src/site/markdown/erc-6123/erc-6123.md deleted file mode 100644 index 64a2fa951..000000000 --- a/src/site/markdown/erc-6123/erc-6123.md +++ /dev/null @@ -1,273 +0,0 @@ ---- -eip: 6123 -title: Smart Derivative Contract -description: A deterministic protocol for frictionless trade processing of financial contracts -author: Christian Fries (@cfries), Peter Kohl-Landgraf (@pekola), Alexandros Korpis (@kourouta) -discussions-to: https://ethereum-magicians.org/t/eip-6123-smart-derivative-contract-frictionless-processing-of-financial-derivatives/12134 -status: Draft -type: Standards Track -category: ERC -created: 2022-12-13 ---- - -## Abstract - -The Smart Derivative Contract (SDC) allows fully automizing and securing a financial product's - e.g. a financial -derivative or bond - complete trade life cycle. -The SDC leverages the advantages of smart contracts to remove many of the frictions associated with the classical -derivative life cycle. Most notably, the protocol allows the removal of counterpart risk essentially. -The SDC can be implemented using a pre-agreed valuation oracle and valuation model, removing ambiguity in the settlement -amounts. The SDC provides methods and callbacks to enable fully automated and fully transactional settlements ( -delivery-versus-payment, payment-vs-payment). -Token-based settlement can be realized by any contract implementation implementing an [ERC-20](./eip-20.md) token. -Proof of concepts in terms of two legally binding digital Interest Rate Swaps were conducted in 2021 and 2022. - -## Motivation - -### Rethinking Financial Derivatives - -By their very nature, so-called "over-the-counter (OTC)" financial contracts are bilateral contractual agreements on -exchanging long-dated cash flow schedules. -Since these contracts change their intrinsic market value due to changing market environments, they are subject to -counterparty credit risk when one counterparty is subject to default. -The initial white paper describes the concept of a Smart Derivative Contract (SDC) with the central aim to detach -bilateral financial transactions from counterparty credit risk and to remove complexities -in bilateral post-trade processing by a complete redesign. - -### Concept of a Smart Derivative Contract - -A Smart Derivative Contract is a deterministic settlement protocol with the same economic behaviour as a Financial -Contract - e.g. an OTC-Derivative or a Bond. -Every process state is specified; therefore, the trade and post-trade process is known in advance and is deterministic -over the trade's life cycle. An [ERC-20](./eip-20.md) token can be used for frictionless decentralized settlement, see -reference implementation. We do provide a separate interface and implementation for a specific "Settlement Token" -derived from [ERC-20](./eip-20.md). -These features enable two or multiple trade parties to process their financial contracts fully decentralized without -relying on a third central intermediary agent. -The process logic of SDC can be implemented as a finite state machine on solidity. - -### Applications - -The interface's life cycle functionality applies to several use cases. - -#### Collateralized OTC Derivative - -In the case of a collateralized OTC derivative, an SDC settles the outstanding net present value of the underlying -financial contract on a frequent (e.g. daily) basis. With each settlement cycle, the net present value of the underlying -contract is exchanged, and the value of the contract is reset to zero. Pre-agreed margin buffers are locked at the -beginning of each settlement cycle so that settlement will be guaranteed up to a certain amount. -If a counterparty fails to obey contract rules, e.g. not providing sufficient pre-funding, SDC will terminate -automatically with the guaranteed transfer of a termination fee by the causing party. -We provide a Reference Implementation for this case. - -#### Defaultable OTC Derivative - -A defaultable OTC Derivative has no Collateral Process in place. In that case, a smart derivative will settle the -according cash flows as determined in the derivative contract specification. A defaultable OTC derivative might end in -a state 'Failure to Pay' if a settlement cannot be conducted. - -#### Smart Bond Contract - -The life cycle of a bond can also make use of the function catalogue below. The interface enables the issuer to allocate -and redeem the bond as well as settle coupon payments. On the other hand, it allows bondholders to interact with each -other, conducting secondary market trades. It all boils down to a settlement phase, which needs to be pre-agreed by both -parties or triggered by the issuer -which can be processed in a completely frictionless way. - -## Specification - -### Methods - -The following methods specify a Smart Derivative Contract's trade initiation and settlement life cycle. For further -information, please also look at the interface documentation ISDC.sol. - -#### Trade Initiation Phase: `inceptTrade` - -A party can initiate a trade by providing the party address to trade with, trade data, trade position, payment amount -for the trade and initial settlement data. Only registered counterparties are allowed to use that function. - -```solidity -function inceptTrade(address _withParty, string memory _tradeData, int _position, int256 _paymentAmount, string memory _initialSettlementData) external; -``` - -#### Trade Initiation Phase: `confirmTrade` - -A counterparty can confirm a trade by providing its trade specification data, which then gets matched against the data -stored from `inceptTrade` call. - -```solidity -function confirmTrade(address _withParty, string memory _tradeData, int _position, int256 _paymentAmount, string memory _initialSettlementData) external; -``` - -#### Trade Settlement Phase: `initiateSettlement` - -Allows eligible participants (such as counterparties or a delegated agent) to trigger a settlement phase. - -```solidity -function initiateSettlement() external; -``` - -#### Trade Settlement Phase: `performSettlement` - -Valuation may be provided on-chain or off-chain via an external oracle service that calculates the settlement or coupon -amounts and uses external market data. -This method serves as a callback called from an external oracle providing settlement amount and used settlement data, -which also get stored. -The settlement amount will be checked according to contract terms, resulting in either a regular settlement or a -termination of the trade. - -```solidity -function performSettlement(int256 settlementAmount, string memory settlementData) external; -``` - -#### Trade Settlement Phase: `afterTransfer` - -This method - either called back from the provided settlement token directly or from an eligible address - completes the -settlement transfer. -This might result in a termination or start of the next settlement phase, depending on the provided success flag. - -```solidity -function afterTransfer(uint256 transactionHash, bool success) external; -``` - -#### Trade Termination: `requestTermination` - -Allows an eligible party to request a mutual termination with a termination amount she is willing to pay - -```solidity -function requestTradeTermination(string memory tradeId, int256 _terminationPayment) external; -``` - -#### Trade Termination: `confirmTradeTermination` - -Allows an eligible party to confirm a previously requested (mutual) trade termination, including termination payment -value - -```solidity -function confirmTradeTermination(string memory tradeId, int256 _terminationPayment) external; -``` - -### Trade Events - -The following events are emitted during an SDC Trade life-cycle. - -#### TradeIncepted - -Emitted on trade inception - method 'inceptTrade' - -```solidity -event TradeIncepted(address initiator, string tradeId, string tradeData); -``` - -#### TradeConfirmed - -Emitted on trade confirmation - method 'confirmTrade' - -```solidity -event TradeConfirmed(address confirmer, string tradeId); -``` - -#### TradeActivated - -Emitted when a Trade is activated - -```solidity -event TradeActivated(string tradeId); -``` - -### TradeSettlementRequest - -Emitted when a settlement is requested. May trigger the settlement phase. - -```solidity -event TradeSettlementRequest(string tradeData, string lastSettlementData); -``` - -### TradeSettlementPhase - -Emitted when the settlement phase is started. - -```solidity -event TradeSettlementPhase(); -``` - -#### TradeTerminationRequest - -Emitted when termination request is initiated by a counterparty - -```solidity -event TradeTerminationRequest(address cpAddress, string tradeId); -``` - -#### TradeTerminationConfirmed - -Emitted when termination request is confirmed by a counterparty - -```solidity -event TradeTerminationConfirmed(address cpAddress, string tradeId); -``` - -#### TradeTerminated - -Emitted when trade is terminated - -```solidity -event TradeTerminated(string cause); -``` - -#### ProcessHalted - -Emitted when trade processing stops. - -```solidity -event ProcessHalted(); -``` - -## Rationale - -The interface design and reference implementation are based on the following considerations: - -- An SDC protocol enables interacting parties to initiate and process a financial transaction in a bilateral and - deterministic manner. Settlement and Counterparty Risk is managed by the contract. -- The provided interface specification is supposed to completely reflect the entire trade life cycle. -- The interface specification is generic enough to handle the case that parties process one or even multiple financial - transactions (on a netted base) -- Usually, the valuation of financial trades (e.g. OTC Derivatives) will require advanced valuation methodology to - determine the market value. This is why the concept might rely on an external market data source and hosted valuation - algorithms -- A pull-based valuation-based oracle pattern can be implemented by using the provided callback pattern ( - methods: `initiateSettlement`, `performSettlement`) -- The reference implementation `SDC.sol` is based on a state-machine pattern where the states also serve as guards (via - modifiers) to check which method is allowed to be called at a particular given process and trade state - -### State diagram of trade and process states - -![image info](../assets/eip-6123/doc/sdc_trade_states.png) - -### Sequence diagram of trade initiation and settlement life-cycle - -![image info](../assets/eip-6123/doc/sdc_lifecycle_sequence_diagram.png) - -## Test Cases - -Life-cycle unit tests based on the sample implementation and usage of [ERC-20](./eip-20.md) token is provided. See -file [test/SDCTests.js](../assets/eip-6123/test/SDCTests.js) -). - -## Reference Implementation - -An abstract contract class SDC.sol as well as a full reference implementation SDCPledgedBalance.sol for an -OTC-Derivative is provided and is based on the [ERC-20](./eip-20.md) token standard. -See folder `/assets/contracts`, more explanation on the implementation is provided inline. - -### Trade Data Specification (suggestion) - -Please take a look at the provided xml file as a suggestion on how trade parameters could be stored. - -## Security Considerations - -No known security issues up to now. - -## Copyright - -Copyright and related rights waived via [CC0](../LICENSE.md). diff --git a/src/site/markdown/index.md b/src/site/markdown/index.md index 2593e15cc..e14a45c95 100644 --- a/src/site/markdown/index.md +++ b/src/site/markdown/index.md @@ -22,13 +22,15 @@ For non-technical description see the [articles](articles) section. ## Standards (Protocols) +For details see the [solidity page](solidity). + ### ERC-6123 Smart Derivative Contract See https://eips.ethereum.org/EIPS/eip-6123 ### ERC-7573 Secure Delivery-versus-Payment -See [ERC 7573](erc-7573/ec-7573.md). +See [ERC 7573](solidity/erc-7573.md). ## Visualization and Demonstration diff --git a/src/site/markdown/erc-7573/erc-7573.md b/src/site/markdown/solidity/erc-7573.md similarity index 100% rename from src/site/markdown/erc-7573/erc-7573.md rename to src/site/markdown/solidity/erc-7573.md diff --git a/src/site/markdown/solidity/index.md b/src/site/markdown/solidity/index.md new file mode 100644 index 000000000..44ef1e55e --- /dev/null +++ b/src/site/markdown/solidity/index.md @@ -0,0 +1,26 @@ +# finmath smart derivative contracts + +--- + +## Smart Contract Specification (Solidity) + +### Smart Derivative Contract (ERC-6123) + +See https://eips.ethereum.org/EIPS/eip-6123 + +### Secure Delivery-versus-Payment (ERC-7573) + +See [ERC 7573](erc-7573.md). + +#### Unit Tests + +To run the unit tests, switch to directory `solidity`. Launch test nodes via hardhat (`npx hardhat node`). +Then run the unit test via hardhat (`npx hardhat test`). + +```shell +cd solidity +npm i +npx hardhat node +npx hardhat test +``` + From a0b691bdfc4d5604ead8187b0172c4313011269a Mon Sep 17 00:00:00 2001 From: Christian Fries Date: Mon, 18 Mar 2024 14:08:59 +0100 Subject: [PATCH 025/105] [maven-release-plugin] prepare release finmath-smart-derivative-contract-1.0.6 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5ed2af921..1e648354f 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ net.finmath finmath-smart-derivative-contract - 1.0.6-SNAPSHOT + 1.0.6 jar finmath-smart-derivative-contract From d8c12bbe4ee52fb678f924e8664df12b376abf95 Mon Sep 17 00:00:00 2001 From: Christian Fries Date: Mon, 18 Mar 2024 14:09:01 +0100 Subject: [PATCH 026/105] [maven-release-plugin] prepare for next development iteration --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1e648354f..a0a3d0d0d 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ net.finmath finmath-smart-derivative-contract - 1.0.6 + 1.0.7-SNAPSHOT jar finmath-smart-derivative-contract From 47a8c13ffb6c2e7496af64b2f8ec6bd8d1b60b8c Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Mon, 18 Mar 2024 16:04:57 +0100 Subject: [PATCH 027/105] add spring boot version to banner --- src/main/resources/banner.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/resources/banner.txt b/src/main/resources/banner.txt index 8419b8cb7..36cbded59 100644 --- a/src/main/resources/banner.txt +++ b/src/main/resources/banner.txt @@ -2,3 +2,5 @@ __ __ __ (_ _ _ _|_ | \ _ _. _ |_. _ / _ _ |_ _ _ _|_ __)|||(_|| |_ |__/(-| |\/(_||_|\/(- \__(_)| )|_| (_|(_|_ + +Powered by Spring Boot ${spring-boot.version} From 5b43f40caa9a0ac8c0feff85e2f337aff8ab5fe3 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Mon, 18 Mar 2024 16:41:49 +0100 Subject: [PATCH 028/105] cleanup, added some todos, small fixes --- .../finmath/smartcontract/product/xml/JAXBTests.java | 10 +--------- .../valuation/implementation/MarginCalculatorTest.java | 2 +- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java b/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java index f6743f28a..3180c8002 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java @@ -10,7 +10,6 @@ import net.finmath.smartcontract.model.*; import net.finmath.smartcontract.valuation.implementation.MarginCalculator; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.springframework.boot.test.autoconfigure.json.AutoConfigureJson; import org.springframework.boot.test.autoconfigure.json.AutoConfigureJsonTesters; @@ -31,7 +30,7 @@ @AutoConfigureJsonTesters // manually re-enable Spring Jackson auto-config @AutoConfigureJson -public class JAXBTests { +class JAXBTests { @Test void checkChangedTradeParams() throws java.lang.Exception { @@ -133,18 +132,13 @@ void jaxBTestWithValidation() { @Test void jaxBPlainTest() throws java.lang.Exception { - - String path = JAXBTests.class.getClassLoader().getResource("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").getPath(); File file = new File(path); JAXBContext jaxbContext = JAXBContext.newInstance(Smartderivativecontract.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); - Smartderivativecontract sdc = (Smartderivativecontract) jaxbUnmarshaller.unmarshal(file); - System.out.println(sdc.getParties().getParty().get(0).getAddress()); - Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); @@ -179,8 +173,6 @@ void handlerTest() throws java.lang.Exception { Assertions.assertEquals(-881079.11, value, 0.005, "Valuation"); System.out.println(valuationResult); - - } private PlainSwapOperationRequest generateRequest(String currentGeneratorFile) throws java.lang.Exception { diff --git a/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java b/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java index 5bf447a7e..54aa9ea5f 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java @@ -8,7 +8,7 @@ import java.nio.charset.StandardCharsets; -public class MarginCalculatorTest { +class MarginCalculatorTest { @Test void testMargin() throws Exception { From 7179bcac9014de7313dce6242cc9799aff75f47b Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Tue, 19 Mar 2024 11:11:15 +0100 Subject: [PATCH 029/105] SDC-436, added XMLRootElement and XMLElement annotations to Settlements class to create a XML containing a list of settlements --- .../net/finmath/smartcontract/settlement/Settlement.java | 2 -- .../net/finmath/smartcontract/settlement/Settlements.java | 5 +++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/settlement/Settlement.java b/src/main/java/net/finmath/smartcontract/settlement/Settlement.java index 426251261..74531787e 100644 --- a/src/main/java/net/finmath/smartcontract/settlement/Settlement.java +++ b/src/main/java/net/finmath/smartcontract/settlement/Settlement.java @@ -23,9 +23,7 @@ @XmlRootElement public class Settlement { - public Settlement(){ - } public enum SettlementType { diff --git a/src/main/java/net/finmath/smartcontract/settlement/Settlements.java b/src/main/java/net/finmath/smartcontract/settlement/Settlements.java index 69fff4f6d..2aa41134e 100644 --- a/src/main/java/net/finmath/smartcontract/settlement/Settlements.java +++ b/src/main/java/net/finmath/smartcontract/settlement/Settlements.java @@ -1,15 +1,20 @@ package net.finmath.smartcontract.settlement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; + import java.util.List; import java.util.Optional; /** * Collection of settlements. */ +@XmlRootElement public class Settlements { private List settlements; + @XmlElement(name = "settlement") public List getSettlements() { return settlements; } From 40ebb637c43dfaa9982eff0dfd52e6151d215cd5 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Tue, 19 Mar 2024 11:37:56 +0100 Subject: [PATCH 030/105] SDC-436, fix for pipeline error --- .../smartcontract/product/xml/JAXBTests.java | 3 +- .../valuation/marketdata/DataParseTests.java | 180 ++++++++---------- 2 files changed, 84 insertions(+), 99 deletions(-) diff --git a/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java b/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java index f6743f28a..68f454bfe 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java @@ -10,7 +10,6 @@ import net.finmath.smartcontract.model.*; import net.finmath.smartcontract.valuation.implementation.MarginCalculator; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.springframework.boot.test.autoconfigure.json.AutoConfigureJson; import org.springframework.boot.test.autoconfigure.json.AutoConfigureJsonTesters; @@ -31,7 +30,7 @@ @AutoConfigureJsonTesters // manually re-enable Spring Jackson auto-config @AutoConfigureJson -public class JAXBTests { +class JAXBTests { @Test void checkChangedTradeParams() throws java.lang.Exception { diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java index baf77ad22..08afd507e 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java @@ -4,10 +4,8 @@ import jakarta.xml.bind.Marshaller; import jakarta.xml.bind.Unmarshaller; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; -import net.finmath.smartcontract.product.xml.JAXBTests; import net.finmath.smartcontract.product.xml.SDCXMLParser; import net.finmath.smartcontract.product.xml.Smartderivativecontract; -import net.finmath.smartcontract.valuation.client.ValuationClient; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; import net.finmath.smartcontract.model.MarketDataList; @@ -26,118 +24,106 @@ import java.util.*; import java.util.stream.Collectors; -public class DataParseTests { +class DataParseTests { + @Test + void testParseSymbols() { + try { + String sdcXML = new String(Objects.requireNonNull(DataParseTests.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); + SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); + List marketdataItems = sdc.getMarketdataItemList(); + Assertions.assertEquals(marketdataItems.size(), 72); + } catch (IOException | SAXException | ParserConfigurationException exception) { + Assertions.assertFalse(false); + } + } + @Test + void xmlGenerationTest() throws Exception { + MarketDataPoint point = new MarketDataPoint("test", 1.0, LocalDateTime.now()); + MarketDataList set = new MarketDataList(); + set.add(point); + JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); + Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); + jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + StringWriter writer = new StringWriter(); + jaxbMarshaller.marshal(set, writer); + String xmlStr = writer.toString(); - @Test - void testParseSymbols() { - try { - String sdcXML = new String(Objects.requireNonNull(DataParseTests.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); - SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); - List marketdataItems = sdc.getMarketdataItemList(); + String json = set.serializeToJson(); - Assertions.assertEquals(marketdataItems.size(), 72); - } - catch(IOException | SAXException | ParserConfigurationException exception){ - Assertions.assertFalse(false); - } - } + Assertions.assertTrue(!xmlStr.isEmpty() && !json.isEmpty()); + } - @Test - void xmlGenerationTest() throws Exception{ - MarketDataPoint point = new MarketDataPoint("test",1.0, LocalDateTime.now()); - MarketDataList set = new MarketDataList(); - set.add(point); - JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); - Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); + @Test + void readHistoricJsonScenariosIntoMarketDataListObjects() throws Exception { + final LocalDate startDate = LocalDate.of(2007, 1, 1); + final LocalDate maturity = LocalDate.of(2012, 1, 3); + final String fileName = "timeseriesdatamap.json"; + final List scenarioListRaw = CalibrationParserDataItems.getScenariosFromJsonFile(fileName).stream().filter(S -> S.getDate().toLocalDate().isAfter(startDate)).filter(S -> S.getDate().toLocalDate().isBefore(maturity)).collect(Collectors.toList()); + final List scenarioList = scenarioListRaw.stream().map(scenario -> scenario.getScaled(100)).toList(); + final String productData = new String(DataParseTests.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); + List specList = productDescriptor.getMarketdataItemList(); - jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + Set items = scenarioList.get(0).getDataPoints().stream().map(point -> { + CalibrationDataItem.Spec spec_with_ric = specList.stream().filter(spec -> spec.getMaturity().equals(point.getMaturity()) && spec.getProductName().equals(point.getProductName()) && spec.getCurveName().equals(point.getCurveName())).findAny().orElse(null); + return spec_with_ric == null ? null : new CalibrationDataItem(spec_with_ric, point.getQuote(), point.getDateTime()); + }).filter(Objects::nonNull).collect(Collectors.toSet()); - StringWriter writer = new StringWriter(); - jaxbMarshaller.marshal(set, writer); - String xmlStr = writer.toString(); - String json = set.serializeToJson(); + final List ListOfMarketDataLists = scenarioList.stream().map(CalibrationDataset::toMarketDataList).toList(); + JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); + Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); + jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + for (int i = 0; i < scenarioList.size(); i++) { + // FileWriter fileWriter = new FileWriter("C:\\Temp\\marketdata_.xml"); + //jaxbMarshaller.marshal(md, fileWriter); + } + Assertions.assertEquals(131, ListOfMarketDataLists.size()); + /*Need */ + } - Assertions.assertTrue(!xmlStr.isEmpty() && !json.isEmpty()); - } + @Test + void testXMLToCalibrationSet() throws Exception { + final String productData = new String(DataParseTests.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + final String marketData = new String(DataParseTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); + SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); - @Test - void readHistoricJsonScenariosIntoMarketDataListObjects() throws Exception{ - final LocalDate startDate = LocalDate.of(2007, 1, 1); - final LocalDate maturity = LocalDate.of(2012, 1, 3); - final String fileName = "timeseriesdatamap.json"; - final List scenarioListRaw = CalibrationParserDataItems.getScenariosFromJsonFile(fileName).stream().filter(S -> S.getDate().toLocalDate().isAfter(startDate)).filter(S -> S.getDate().toLocalDate().isBefore(maturity)).collect(Collectors.toList()); - final List scenarioList = scenarioListRaw.stream().map(scenario -> scenario.getScaled(100)).toList(); - final String productData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); - SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); - List specList = productDescriptor.getMarketdataItemList(); + List specList = productDescriptor.getMarketdataItemList(); + CalibrationDataset set = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketData, specList); + Assertions.assertEquals(specList.size(), set.getDataPoints().size() + 2); //Fixings are missing in this marketdataset + } - Set items = scenarioList.get(0).getDataPoints().stream().map(point -> { - CalibrationDataItem.Spec spec_with_ric = specList.stream().filter(spec -> spec.getMaturity().equals(point.getMaturity()) && spec.getProductName().equals(point.getProductName()) && spec.getCurveName().equals(point.getCurveName())).findAny().orElse(null); - return spec_with_ric == null ? null : new CalibrationDataItem(spec_with_ric, point.getQuote(), point.getDateTime()); - }).filter(Objects::nonNull).collect(Collectors.toSet()); + @Test + @Disabled + void changeSymbols() throws Exception { + //String sdcXML = new String(DataParseTests.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + String sdcXML = new String(DataParseTests.class.getClassLoader().getResourceAsStream("generators/eur_euribor_y_s_with_fixings.xml").readAllBytes(), StandardCharsets.UTF_8); + String path = DataParseTests.class.getClassLoader().getResource("net.finmath.smartcontract.product.xml/smartderivativecontract_with_rics.xml").getPath(); + File file = new File(path); + JAXBContext jaxbContext = JAXBContext.newInstance(Smartderivativecontract.class); + Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); - final List ListOfMarketDataLists = scenarioList.stream().map(CalibrationDataset::toMarketDataList).toList(); - JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); - Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); - jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); - for(int i=0; i specList = productDescriptor.getMarketdataItemList(); - CalibrationDataset set = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketData,specList); - Assertions.assertEquals(specList.size(), set.getDataPoints().size()+2); //Fixings are missing in this marketdataset - - } - - -//@Disabled - @Test - @Disabled - void changeSymbols() throws Exception{ - //String sdcXML = new String(DataParseTests.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); - String sdcXML = new String(JAXBTests.class.getClassLoader().getResourceAsStream("generators/eur_euribor_y_s_with_fixings.xml").readAllBytes(), StandardCharsets.UTF_8); - - - String path = JAXBTests.class.getClassLoader().getResource("net.finmath.smartcontract.product.xml/smartderivativecontract_with_rics.xml").getPath(); - File file = new File(path); - - JAXBContext jaxbContext = JAXBContext.newInstance(Smartderivativecontract.class); - Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); - - - Smartderivativecontract sdc = (Smartderivativecontract) jaxbUnmarshaller.unmarshal(file); - - - Smartderivativecontract.Settlement.Marketdata.Marketdataitems items = sdc.getSettlement().getMarketdata().getMarketdataitems(); - List list = items.getItem(); - Map dict = new HashMap<>(); - list.stream().forEach(it->{ - String symbol = (it.getCurve().toString().replaceAll("Euribor6M","EUB6").replaceAll("ESTR","ESTR")+it.getType().toString().replaceAll("Fixing","FIX").replaceAll("Deposit","DEP").replaceAll("Forward-Rate-Agreement","FRA").replaceAll("Swap-Rate","SWP")+it.getTenor().toString()).replaceAll("\\[","").replaceAll("\\]",""); - dict.put(it.getSymbol().toString().replaceAll("\\[","").replaceAll("\\]",""),symbol); - }); + Smartderivativecontract.Settlement.Marketdata.Marketdataitems items = sdc.getSettlement().getMarketdata().getMarketdataitems(); + List list = items.getItem(); + Map dict = new HashMap<>(); + list.stream().forEach(it -> { + String symbol = (it.getCurve().toString().replaceAll("Euribor6M", "EUB6").replaceAll("ESTR", "ESTR") + it.getType().toString().replaceAll("Fixing", "FIX").replaceAll("Deposit", "DEP").replaceAll("Forward-Rate-Agreement", "FRA").replaceAll("Swap-Rate", "SWP") + it.getTenor().toString()).replaceAll("\\[", "").replaceAll("\\]", ""); + dict.put(it.getSymbol().toString().replaceAll("\\[", "").replaceAll("\\]", ""), symbol); + }); /*Marshaller marshaller = jaxbContext.createMarshaller(); @@ -148,14 +134,14 @@ void changeSymbols() throws Exception{ String xmlString = outputStream.toString().replaceAll("", "").replaceAll("fpml:", ""); */ - for(Map.Entry entry : dict.entrySet()) - sdcXML = sdcXML.replaceAll(entry.getKey().toString(), entry.getValue().toString()); + for (Map.Entry entry : dict.entrySet()) + sdcXML = sdcXML.replaceAll(entry.getKey().toString(), entry.getValue().toString()); - FileWriter writer = new FileWriter("xml_adj.xml"); - writer.write(sdcXML); - writer.close(); - } + FileWriter writer = new FileWriter("xml_adj.xml"); + writer.write(sdcXML); + writer.close(); + } } From 99a87a8823e9d443fd7ec32855b3f03aebe431c4 Mon Sep 17 00:00:00 2001 From: pekola Date: Wed, 20 Mar 2024 10:24:55 +0100 Subject: [PATCH 031/105] fixed frontend and request format --- .../valuation/client/ValuationClient.java | 2 +- .../implementation/MarginCalculator.java | 21 +++++++++++++------ .../CalibrationParserDataItems.java | 4 ++-- src/main/resources/api.yml | 6 +++--- .../resources/static/margin-valuation.html | 2 +- .../resources/static/product-valuation.html | 2 +- .../service/ValuationControllerTest.java | 6 +++--- 7 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java index e47507d05..f7ea68b33 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java +++ b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java @@ -55,7 +55,7 @@ public static void main(String[] args) throws Exception { final MarketDataList marketDataEnd = SDCXMLParser.unmarshalXml(marketDataEndXml, MarketDataList.class); final String product = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); - final MarginRequest marginRequest = new MarginRequest().marketDataStart(marketDataStart).marketDataEnd(marketDataEnd).tradeData(product).valuationDate(OffsetDateTime.from(LocalDateTime.now())); + final MarginRequest marginRequest = new MarginRequest().marketDataStart(marketDataStartXml).marketDataEnd(marketDataEndXml).tradeData(product).valuationDate(""); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); diff --git a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java index c6d917a91..db97df720 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java @@ -17,6 +17,7 @@ import net.finmath.smartcontract.valuation.oracle.interestrates.ValuationOraclePlainSwap; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; import net.finmath.smartcontract.product.xml.SDCXMLParser; +import org.apache.commons.lang3.Validate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -61,13 +62,21 @@ public MarginCalculator() { public MarginResult getValue(String marketDataStart, String marketDataEnd, String productData) throws Exception { SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); - CalibrationDataset setStart = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketDataStart,productDescriptor.getMarketdataItemList()); - CalibrationDataset setEnd = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketDataEnd,productDescriptor.getMarketdataItemList()); -// List marketDataSetsStart = CalibrationParserDataItems.getScenariosFromJsonString(marketDataStart); -// Validate.isTrue(marketDataSetsStart.size() == 1, "Parameter marketDataStart should be only a single market data set"); -// List marketDataSetsEnd = CalibrationParserDataItems.getScenariosFromJsonString(marketDataEnd); -// Validate.isTrue(marketDataSetsEnd.size() == 1, "Parameter marketDataStart should be only a single market data set"); + CalibrationDataset setStart = null; + CalibrationDataset setEnd = null; + try { + + setStart = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketDataStart, productDescriptor.getMarketdataItemList()); + setEnd = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketDataEnd, productDescriptor.getMarketdataItemList()); + } + catch(Exception e) { + List marketDataSetsStart = CalibrationParserDataItems.getScenariosFromJsonString(marketDataStart); + Validate.isTrue(marketDataSetsStart.size() == 1, "Parameter marketDataStart should be only a single market data set"); + + List marketDataSetsEnd = CalibrationParserDataItems.getScenariosFromJsonString(marketDataEnd); + Validate.isTrue(marketDataSetsEnd.size() == 1, "Parameter marketDataStart should be only a single market data set"); + } String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java index 01d0904fd..cf19a6f18 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java @@ -4,6 +4,7 @@ import jakarta.xml.bind.JAXBContext; import jakarta.xml.bind.Unmarshaller; import net.finmath.smartcontract.model.MarketDataList; +import net.finmath.smartcontract.product.xml.SDCXMLParser; import org.slf4j.LoggerFactory; import java.io.IOException; @@ -106,8 +107,7 @@ public static List getScenariosFromJsonString(final String j public static CalibrationDataset getCalibrationDataSetFromXML(final String xmlString, List dataSpecs) throws Exception { StringReader reader = new StringReader(xmlString); JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); - Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); - MarketDataList marketDataList = (MarketDataList) jaxbUnmarshaller.unmarshal(reader); + MarketDataList marketDataList = SDCXMLParser.unmarshalXml(xmlString, MarketDataList.class); Set calibrationDataItems = new LinkedHashSet<>(); diff --git a/src/main/resources/api.yml b/src/main/resources/api.yml index c04c1b59e..1e684edb8 100644 --- a/src/main/resources/api.yml +++ b/src/main/resources/api.yml @@ -49,14 +49,14 @@ paths: - valuationDate properties: marketDataStart: - type: MarketDataList + type: string marketDataEnd: - type: MarketDataList + type: string tradeData: type: string valuationDate: type: string - format: date-time + format: string responses: "200": description: Margin was calculated diff --git a/src/main/resources/static/margin-valuation.html b/src/main/resources/static/margin-valuation.html index c87bd4734..c9cf96198 100644 --- a/src/main/resources/static/margin-valuation.html +++ b/src/main/resources/static/margin-valuation.html @@ -131,7 +131,7 @@

Result

// Trigger Promises Promise.all(readers).then((values) => { - fetch('/valuation/legacy/margin', { + fetch('/valuation/margin', { method: 'POST', headers: { 'Accept': 'application/json', diff --git a/src/main/resources/static/product-valuation.html b/src/main/resources/static/product-valuation.html index c50fa1471..2236900c8 100644 --- a/src/main/resources/static/product-valuation.html +++ b/src/main/resources/static/product-valuation.html @@ -123,7 +123,7 @@

Result

// Trigger Promises Promise.all(readers).then((values) => { - fetch('/valuation/legacy/value', { + fetch('/valuation/value', { method: 'POST', headers: { 'Accept': 'application/json', diff --git a/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java b/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java index 56cd49bbb..b63788f04 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java @@ -50,12 +50,12 @@ public class ValuationControllerTest { public void getMargin(@Autowired MockMvc mockMvc) throws Exception { final String marketDataStartXml = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); - final MarketDataList marketDataStart = SDCXMLParser.unmarshalXml(marketDataStartXml, MarketDataList.class); +// final MarketDataList marketDataStart = SDCXMLParser.unmarshalXml(marketDataStartXml, MarketDataList.class); final String marketDataEndXml = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml").readAllBytes(), StandardCharsets.UTF_8); - final MarketDataList marketDataEnd = SDCXMLParser.unmarshalXml(marketDataEndXml, MarketDataList.class); +// final MarketDataList marketDataEnd = SDCXMLParser.unmarshalXml(marketDataEndXml, MarketDataList.class); final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream(productXMLFile).readAllBytes(), StandardCharsets.UTF_8); - final MarginRequest marginRequest = new MarginRequest().marketDataStart(marketDataStart).marketDataEnd(marketDataEnd).tradeData(product).valuationDate(OffsetDateTime.now()); + final MarginRequest marginRequest = new MarginRequest().marketDataStart(marketDataStartXml).marketDataEnd(marketDataEndXml).tradeData(product).valuationDate(OffsetDateTime.now().toString()); ObjectMapper objectMapper = new ObjectMapper().registerModule(new JavaTimeModule()); String json = objectMapper.writeValueAsString(marginRequest); From 67a14db40df1dfce4a4b6464d843b6f404aab49f Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 22 Mar 2024 14:40:41 +0100 Subject: [PATCH 032/105] SDC-436, set order of xml properties in Settlement --- .../smartcontract/settlement/Settlement.java | 219 +++++++++--------- 1 file changed, 112 insertions(+), 107 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/settlement/Settlement.java b/src/main/java/net/finmath/smartcontract/settlement/Settlement.java index 74531787e..8f63b3435 100644 --- a/src/main/java/net/finmath/smartcontract/settlement/Settlement.java +++ b/src/main/java/net/finmath/smartcontract/settlement/Settlement.java @@ -1,6 +1,7 @@ package net.finmath.smartcontract.settlement; import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import net.finmath.smartcontract.model.MarketDataList; @@ -21,151 +22,155 @@ * @author Christian Fries */ @XmlRootElement +@XmlType(propOrder = {"tradeId", "settlementType", "currency", "marginValue", + "marginLimits", "settlementTime", "settlementValue", "settlementValuePrevious", + "settlementTimeNext", "settlementValueNext", "marketData"}) public class Settlement { - public Settlement(){ - } + public Settlement() { + } - public enum SettlementType { - INITIAL, - REGULAR, - TERMINAL - } + public enum SettlementType { + INITIAL, + REGULAR, + TERMINAL + } - private String tradeId; + private String tradeId; - private SettlementType settlementType; + private SettlementType settlementType; - private String currency; + private String currency; - private BigDecimal marginValue; + private BigDecimal marginValue; - private List marginLimits; + private List marginLimits; - /// V(T1,M1) + /// V(T1,M1) - private ZonedDateTime settlementTime; + private ZonedDateTime settlementTime; - private BigDecimal settlementValue; + private BigDecimal settlementValue; - /// V(T1,M0) + /// V(T1,M0) - private BigDecimal settlementValuePrevious; + private BigDecimal settlementValuePrevious; - /// V(T2,M1) - indicative + /// V(T2,M1) - indicative - private ZonedDateTime settlementTimeNext; + private ZonedDateTime settlementTimeNext; - private BigDecimal settlementValueNext; + private BigDecimal settlementValueNext; - private MarketDataList marketData; + private MarketDataList marketData; - // Custom additional information (e.g. risk figures or szenario values) + // Custom additional information (e.g. risk figures or szenario values) - private Map info; + private Map info; - public String getTradeId() { - return tradeId; - } + public String getTradeId() { + return tradeId; + } - public void setTradeId(String tradeId) { - this.tradeId = tradeId; - } + public void setTradeId(String tradeId) { + this.tradeId = tradeId; + } - public SettlementType getSettlementType() { - return settlementType; - } + public SettlementType getSettlementType() { + return settlementType; + } - public void setSettlementType(SettlementType settlementType) { - this.settlementType = settlementType; - } + public void setSettlementType(SettlementType settlementType) { + this.settlementType = settlementType; + } - public String getCurrency() { - return currency; - } + public String getCurrency() { + return currency; + } - public void setCurrency(String currency) { - this.currency = currency; - } + public void setCurrency(String currency) { + this.currency = currency; + } - public BigDecimal getMarginValue() { - return marginValue; - } + public BigDecimal getMarginValue() { + return marginValue; + } - public void setMarginValue(BigDecimal marginValue) { - this.marginValue = marginValue; - } + public void setMarginValue(BigDecimal marginValue) { + this.marginValue = marginValue; + } - public List getMarginLimits() { - return marginLimits; - } + public List getMarginLimits() { + return marginLimits; + } - public void setMarginLimits(List marginLimits) { - this.marginLimits = marginLimits; - } - @XmlJavaTypeAdapter(ZonedDateTimeAdapter.class) - public ZonedDateTime getSettlementTime() { - return settlementTime; - } + public void setMarginLimits(List marginLimits) { + this.marginLimits = marginLimits; + } - public void setSettlementTime(ZonedDateTime settlementTime) { - this.settlementTime = settlementTime; - } + @XmlJavaTypeAdapter(ZonedDateTimeAdapter.class) + public ZonedDateTime getSettlementTime() { + return settlementTime; + } - public MarketDataList getMarketData() { - return marketData; - } + public void setSettlementTime(ZonedDateTime settlementTime) { + this.settlementTime = settlementTime; + } - public void setMarketData(MarketDataList marketData) { - this.marketData = marketData; - } + public MarketDataList getMarketData() { + return marketData; + } - public BigDecimal getSettlementValue() { - return settlementValue; - } + public void setMarketData(MarketDataList marketData) { + this.marketData = marketData; + } - public void setSettlementValue(BigDecimal settlementValue) { - this.settlementValue = settlementValue; - } + public BigDecimal getSettlementValue() { + return settlementValue; + } - public BigDecimal getSettlementValuePrevious() { - return settlementValuePrevious; - } + public void setSettlementValue(BigDecimal settlementValue) { + this.settlementValue = settlementValue; + } - public void setSettlementValuePrevious(BigDecimal settlementValuePrevious) { - this.settlementValuePrevious = settlementValuePrevious; - } + public BigDecimal getSettlementValuePrevious() { + return settlementValuePrevious; + } - public Settlement(String tradeId, SettlementType settlementType, String currency, BigDecimal marginValue, List marginLimits, ZonedDateTime settlementTime, MarketDataList marketData, BigDecimal settlementValue, BigDecimal settlementValuePrevious, ZonedDateTime settlementTimeNext, BigDecimal settlementValueNext) { - this.tradeId = tradeId; - this.settlementType = settlementType; - this.currency = currency; - this.marginValue = marginValue; - this.marginLimits = marginLimits; - this.settlementTime = settlementTime; - this.marketData = marketData; - this.settlementValue = settlementValue; - this.settlementValuePrevious = settlementValuePrevious; - this.settlementTimeNext = settlementTimeNext; - this.settlementValueNext = settlementValueNext; - } + public void setSettlementValuePrevious(BigDecimal settlementValuePrevious) { + this.settlementValuePrevious = settlementValuePrevious; + } - @XmlJavaTypeAdapter(ZonedDateTimeAdapter.class) - public ZonedDateTime getSettlementTimeNext() { - return settlementTimeNext; - } - - public void setSettlementTimeNext(ZonedDateTime settlementTimeNext) { - this.settlementTimeNext = settlementTimeNext; - } - - public BigDecimal getSettlementValueNext() { - return settlementValueNext; - } - - public void setSettlementValueNext(BigDecimal settlementValueNext) { - this.settlementValueNext = settlementValueNext; - } + public Settlement(String tradeId, SettlementType settlementType, String currency, BigDecimal marginValue, List marginLimits, ZonedDateTime settlementTime, MarketDataList marketData, BigDecimal settlementValue, BigDecimal settlementValuePrevious, ZonedDateTime settlementTimeNext, BigDecimal settlementValueNext) { + this.tradeId = tradeId; + this.settlementType = settlementType; + this.currency = currency; + this.marginValue = marginValue; + this.marginLimits = marginLimits; + this.settlementTime = settlementTime; + this.marketData = marketData; + this.settlementValue = settlementValue; + this.settlementValuePrevious = settlementValuePrevious; + this.settlementTimeNext = settlementTimeNext; + this.settlementValueNext = settlementValueNext; + } + + @XmlJavaTypeAdapter(ZonedDateTimeAdapter.class) + public ZonedDateTime getSettlementTimeNext() { + return settlementTimeNext; + } + + public void setSettlementTimeNext(ZonedDateTime settlementTimeNext) { + this.settlementTimeNext = settlementTimeNext; + } + + public BigDecimal getSettlementValueNext() { + return settlementValueNext; + } + + public void setSettlementValueNext(BigDecimal settlementValueNext) { + this.settlementValueNext = settlementValueNext; + } } From 2a14ea3e88016f3b598b809c34eea2e092f6cfea Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 22 Mar 2024 15:16:40 +0100 Subject: [PATCH 033/105] SDC-436, small adjustment for SDCXMLParser --- .../net/finmath/smartcontract/product/xml/SDCXMLParser.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java index dc9cdd83a..feed62dba 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java @@ -1,7 +1,7 @@ package net.finmath.smartcontract.product.xml; import jakarta.xml.bind.*; -import net.finmath.smartcontract.settlement.Settlement; +import net.finmath.smartcontract.settlement.Settlements; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; import org.w3c.dom.Document; @@ -163,7 +163,7 @@ public static T unmarshalXml(String xml, Class t) { public static String marshalClassToXMLString(T t) { try { - JAXBContext jaxbContextSettlement = JAXBContext.newInstance(Settlement.class); + JAXBContext jaxbContextSettlement = JAXBContext.newInstance(Settlements.class); Marshaller jaxbMarshaller = jaxbContextSettlement.createMarshaller(); //jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); StringWriter writer = new StringWriter(); From a2f4b21bb46ef321770b2e5370604196d7b9882f Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Tue, 26 Mar 2024 17:36:58 +0100 Subject: [PATCH 034/105] SDC-403, added historical market data provided by @pekola, generated out of timeseriesdatamap.json --- .../marketdata_2008-05-02.xml | 314 ++++++++++++++++ .../marketdata_2008-05-05.xml | 314 ++++++++++++++++ .../marketdata_2008-05-06.xml | 314 ++++++++++++++++ .../marketdata_2008-05-07.xml | 314 ++++++++++++++++ .../marketdata_2008-05-08.xml | 314 ++++++++++++++++ .../marketdata_2008-05-09.xml | 314 ++++++++++++++++ .../marketdata_2008-05-12.xml | 314 ++++++++++++++++ .../marketdata_2008-05-13.xml | 314 ++++++++++++++++ .../marketdata_2008-05-14.xml | 314 ++++++++++++++++ .../marketdata_2008-05-15.xml | 314 ++++++++++++++++ .../marketdata_2008-05-16.xml | 314 ++++++++++++++++ .../marketdata_2008-05-19.xml | 314 ++++++++++++++++ .../marketdata_2008-05-20.xml | 314 ++++++++++++++++ .../marketdata_2008-05-21.xml | 314 ++++++++++++++++ .../marketdata_2008-05-22.xml | 314 ++++++++++++++++ .../marketdata_2008-05-23.xml | 314 ++++++++++++++++ .../marketdata_2008-05-26.xml | 279 ++++++++++++++ .../marketdata_2008-05-27.xml | 314 ++++++++++++++++ .../marketdata_2008-05-28.xml | 344 ++++++++++++++++++ .../marketdata_2008-05-29.xml | 344 ++++++++++++++++++ .../marketdata_2008-05-30.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-02.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-03.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-04.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-05.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-06.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-09.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-10.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-11.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-12.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-13.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-16.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-17.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-18.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-19.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-20.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-23.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-24.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-25.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-26.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-27.xml | 344 ++++++++++++++++++ .../marketdata_2008-06-30.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-01.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-02.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-03.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-04.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-07.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-08.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-09.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-10.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-11.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-14.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-15.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-16.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-17.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-18.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-21.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-22.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-23.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-24.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-25.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-28.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-29.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-30.xml | 344 ++++++++++++++++++ .../marketdata_2008-07-31.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-01.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-04.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-05.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-06.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-07.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-08.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-11.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-12.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-13.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-14.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-15.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-18.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-19.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-20.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-21.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-22.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-25.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-26.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-27.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-28.xml | 344 ++++++++++++++++++ .../marketdata_2008-08-29.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-01.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-02.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-03.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-04.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-05.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-08.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-09.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-10.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-11.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-12.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-15.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-16.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-17.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-18.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-19.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-22.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-23.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-24.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-25.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-26.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-29.xml | 344 ++++++++++++++++++ .../marketdata_2008-09-30.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-01.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-02.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-03.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-06.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-07.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-08.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-09.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-10.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-13.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-14.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-15.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-16.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-17.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-20.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-21.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-22.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-23.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-24.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-27.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-28.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-29.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-30.xml | 344 ++++++++++++++++++ .../marketdata_2008-10-31.xml | 344 ++++++++++++++++++ 131 files changed, 44489 insertions(+) create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-02.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-05.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-06.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-07.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-08.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-09.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-12.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-13.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-14.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-15.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-16.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-19.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-20.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-21.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-22.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-23.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-26.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-27.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-28.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-29.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-30.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-02.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-03.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-04.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-05.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-06.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-09.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-10.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-11.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-12.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-13.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-16.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-17.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-18.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-19.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-20.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-23.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-24.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-25.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-26.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-27.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-30.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-01.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-02.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-03.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-04.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-07.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-08.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-09.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-10.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-11.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-14.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-15.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-16.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-17.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-18.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-21.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-22.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-23.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-24.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-25.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-28.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-29.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-30.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-31.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-01.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-04.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-05.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-06.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-07.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-08.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-11.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-12.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-13.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-14.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-15.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-18.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-19.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-20.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-21.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-22.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-25.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-26.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-27.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-28.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-29.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-01.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-02.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-03.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-04.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-05.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-08.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-09.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-10.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-11.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-12.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-15.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-16.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-17.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-18.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-19.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-22.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-23.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-24.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-25.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-26.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-29.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-30.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-01.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-02.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-03.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-06.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-07.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-08.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-09.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-10.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-13.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-14.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-15.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-16.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-17.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-20.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-21.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-22.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-23.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-24.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-27.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-28.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-29.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-30.xml create mode 100644 src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-31.xml diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-02.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-02.xml new file mode 100644 index 000000000..e0aecf72c --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-02.xml @@ -0,0 +1,314 @@ + + + 20080502-170000 + + EUB6FIX6M + 0.0484 + 20080502-170000 + + + ESTRSWP3W + 0.04 + 20080502-170000 + + + ESTRSWP1W + 0.0398 + 20080502-170000 + + + ESTRSWP2W + 0.04 + 20080502-170000 + + + ESTRSWP1M + 0.0404 + 20080502-170000 + + + ESTRSWP2M + 0.0407 + 20080502-170000 + + + ESTRSWP3M + 0.0401 + 20080502-170000 + + + ESTRSWP4M + 0.0407 + 20080502-170000 + + + ESTRSWP5M + 0.0406 + 20080502-170000 + + + ESTRSWP6M + 0.0403 + 20080502-170000 + + + ESTRSWP7M + 0.0407 + 20080502-170000 + + + ESTRSWP8M + 0.0404 + 20080502-170000 + + + ESTRSWP9M + 0.0401 + 20080502-170000 + + + ESTRSWP10M + 0.0406 + 20080502-170000 + + + ESTRSWP11M + 0.04 + 20080502-170000 + + + EUB6SWP1Y + 0.0483 + 20080502-170000 + + + ESTRSWP12M + 0.0408 + 20080502-170000 + + + ESTRSWP15M + 0.0402 + 20080502-170000 + + + ESTRSWP18M + 0.0396 + 20080502-170000 + + + EUB6SWP2Y + 0.0457 + 20080502-170000 + + + ESTRSWP2Y + 0.0398 + 20080502-170000 + + + EUB6SWP3Y + 0.0445 + 20080502-170000 + + + ESTRSWP3Y + 0.0399 + 20080502-170000 + + + EUB6SWP4Y + 0.0442 + 20080502-170000 + + + ESTRSWP4Y + 0.0406 + 20080502-170000 + + + EUB6SWP5Y + 0.0442 + 20080502-170000 + + + ESTRSWP5Y + 0.0406 + 20080502-170000 + + + EUB6SWP6Y + 0.0446 + 20080502-170000 + + + ESTRSWP6Y + 0.0407 + 20080502-170000 + + + EUB6SWP7Y + 0.0453 + 20080502-170000 + + + ESTRSWP7Y + 0.0414 + 20080502-170000 + + + EUB6SWP8Y + 0.0451 + 20080502-170000 + + + ESTRSWP8Y + 0.0419 + 20080502-170000 + + + EUB6SWP9Y + 0.0462 + 20080502-170000 + + + ESTRSWP9Y + 0.0422 + 20080502-170000 + + + EUB6SWP10Y + 0.0466 + 20080502-170000 + + + ESTRSWP10Y + 0.0427 + 20080502-170000 + + + EUB6SWP11Y + 0.0472 + 20080502-170000 + + + EUB6SWP12Y + 0.047 + 20080502-170000 + + + EUB6SWP13Y + 0.0481 + 20080502-170000 + + + EUB6SWP14Y + 0.0481 + 20080502-170000 + + + EUB6SWP15Y + 0.048 + 20080502-170000 + + + EUB6SWP16Y + 0.0483 + 20080502-170000 + + + EUB6SWP17Y + 0.0483 + 20080502-170000 + + + EUB6SWP18Y + 0.0483 + 20080502-170000 + + + EUB6SWP19Y + 0.0493 + 20080502-170000 + + + EUB6SWP20Y + 0.0489 + 20080502-170000 + + + EUB6SWP21Y + 0.0489 + 20080502-170000 + + + EUB6SWP22Y + 0.0488 + 20080502-170000 + + + EUB6SWP23Y + 0.0485 + 20080502-170000 + + + EUB6SWP24Y + 0.0487 + 20080502-170000 + + + EUB6SWP25Y + 0.0493 + 20080502-170000 + + + EUB6SWP26Y + 0.0491 + 20080502-170000 + + + EUB6SWP27Y + 0.0483 + 20080502-170000 + + + EUB6SWP28Y + 0.049 + 20080502-170000 + + + EUB6SWP29Y + 0.0485 + 20080502-170000 + + + EUB6SWP30Y + 0.0483 + 20080502-170000 + + + EUB6SWP35Y + 0.0485 + 20080502-170000 + + + EUB6SWP40Y + 0.0477 + 20080502-170000 + + + EUB6SWP45Y + 0.0474 + 20080502-170000 + + + EUB6SWP50Y + 0.0481 + 20080502-170000 + + + EUB6SWP60Y + 0.047 + 20080502-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-05.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-05.xml new file mode 100644 index 000000000..64d216fae --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-05.xml @@ -0,0 +1,314 @@ + + + 20080505-170000 + + EUB6FIX6M + 0.0484 + 20080505-170000 + + + ESTRSWP3W + 0.0403 + 20080505-170000 + + + ESTRSWP1W + 0.04 + 20080505-170000 + + + ESTRSWP2W + 0.0402 + 20080505-170000 + + + ESTRSWP1M + 0.0398 + 20080505-170000 + + + ESTRSWP2M + 0.0402 + 20080505-170000 + + + ESTRSWP3M + 0.0405 + 20080505-170000 + + + ESTRSWP4M + 0.041 + 20080505-170000 + + + ESTRSWP5M + 0.0404 + 20080505-170000 + + + ESTRSWP6M + 0.0405 + 20080505-170000 + + + ESTRSWP7M + 0.0403 + 20080505-170000 + + + ESTRSWP8M + 0.0409 + 20080505-170000 + + + ESTRSWP9M + 0.0412 + 20080505-170000 + + + ESTRSWP10M + 0.0405 + 20080505-170000 + + + ESTRSWP11M + 0.0405 + 20080505-170000 + + + EUB6SWP1Y + 0.049 + 20080505-170000 + + + ESTRSWP12M + 0.0408 + 20080505-170000 + + + ESTRSWP15M + 0.0403 + 20080505-170000 + + + ESTRSWP18M + 0.0397 + 20080505-170000 + + + EUB6SWP2Y + 0.0462 + 20080505-170000 + + + ESTRSWP2Y + 0.0401 + 20080505-170000 + + + EUB6SWP3Y + 0.0451 + 20080505-170000 + + + ESTRSWP3Y + 0.0398 + 20080505-170000 + + + EUB6SWP4Y + 0.044 + 20080505-170000 + + + ESTRSWP4Y + 0.0397 + 20080505-170000 + + + EUB6SWP5Y + 0.0444 + 20080505-170000 + + + ESTRSWP5Y + 0.0401 + 20080505-170000 + + + EUB6SWP6Y + 0.0442 + 20080505-170000 + + + ESTRSWP6Y + 0.0402 + 20080505-170000 + + + EUB6SWP7Y + 0.0445 + 20080505-170000 + + + ESTRSWP7Y + 0.0414 + 20080505-170000 + + + EUB6SWP8Y + 0.0452 + 20080505-170000 + + + ESTRSWP8Y + 0.0416 + 20080505-170000 + + + EUB6SWP9Y + 0.0461 + 20080505-170000 + + + ESTRSWP9Y + 0.0418 + 20080505-170000 + + + EUB6SWP10Y + 0.0457 + 20080505-170000 + + + ESTRSWP10Y + 0.0423 + 20080505-170000 + + + EUB6SWP11Y + 0.047 + 20080505-170000 + + + EUB6SWP12Y + 0.0466 + 20080505-170000 + + + EUB6SWP13Y + 0.0478 + 20080505-170000 + + + EUB6SWP14Y + 0.0477 + 20080505-170000 + + + EUB6SWP15Y + 0.0477 + 20080505-170000 + + + EUB6SWP16Y + 0.0486 + 20080505-170000 + + + EUB6SWP17Y + 0.0485 + 20080505-170000 + + + EUB6SWP18Y + 0.049 + 20080505-170000 + + + EUB6SWP19Y + 0.0486 + 20080505-170000 + + + EUB6SWP20Y + 0.0489 + 20080505-170000 + + + EUB6SWP21Y + 0.0482 + 20080505-170000 + + + EUB6SWP22Y + 0.0485 + 20080505-170000 + + + EUB6SWP23Y + 0.0484 + 20080505-170000 + + + EUB6SWP24Y + 0.0487 + 20080505-170000 + + + EUB6SWP25Y + 0.049 + 20080505-170000 + + + EUB6SWP26Y + 0.0485 + 20080505-170000 + + + EUB6SWP27Y + 0.0485 + 20080505-170000 + + + EUB6SWP28Y + 0.0481 + 20080505-170000 + + + EUB6SWP29Y + 0.0488 + 20080505-170000 + + + EUB6SWP30Y + 0.0488 + 20080505-170000 + + + EUB6SWP35Y + 0.048 + 20080505-170000 + + + EUB6SWP40Y + 0.0481 + 20080505-170000 + + + EUB6SWP45Y + 0.0477 + 20080505-170000 + + + EUB6SWP50Y + 0.0469 + 20080505-170000 + + + EUB6SWP60Y + 0.0464 + 20080505-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-06.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-06.xml new file mode 100644 index 000000000..c416dc615 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-06.xml @@ -0,0 +1,314 @@ + + + 20080506-170000 + + EUB6FIX6M + 0.0489 + 20080506-170000 + + + ESTRSWP3W + 0.0401 + 20080506-170000 + + + ESTRSWP1W + 0.0398 + 20080506-170000 + + + ESTRSWP2W + 0.0405 + 20080506-170000 + + + ESTRSWP1M + 0.0399 + 20080506-170000 + + + ESTRSWP2M + 0.0406 + 20080506-170000 + + + ESTRSWP3M + 0.0408 + 20080506-170000 + + + ESTRSWP4M + 0.0402 + 20080506-170000 + + + ESTRSWP5M + 0.0407 + 20080506-170000 + + + ESTRSWP6M + 0.0406 + 20080506-170000 + + + ESTRSWP7M + 0.0404 + 20080506-170000 + + + ESTRSWP8M + 0.0409 + 20080506-170000 + + + ESTRSWP9M + 0.0406 + 20080506-170000 + + + ESTRSWP10M + 0.0407 + 20080506-170000 + + + ESTRSWP11M + 0.0403 + 20080506-170000 + + + EUB6SWP1Y + 0.0481 + 20080506-170000 + + + ESTRSWP12M + 0.0407 + 20080506-170000 + + + ESTRSWP15M + 0.0396 + 20080506-170000 + + + ESTRSWP18M + 0.0394 + 20080506-170000 + + + EUB6SWP2Y + 0.0456 + 20080506-170000 + + + ESTRSWP2Y + 0.0394 + 20080506-170000 + + + EUB6SWP3Y + 0.0447 + 20080506-170000 + + + ESTRSWP3Y + 0.0396 + 20080506-170000 + + + EUB6SWP4Y + 0.0436 + 20080506-170000 + + + ESTRSWP4Y + 0.0396 + 20080506-170000 + + + EUB6SWP5Y + 0.0436 + 20080506-170000 + + + ESTRSWP5Y + 0.04 + 20080506-170000 + + + EUB6SWP6Y + 0.0438 + 20080506-170000 + + + ESTRSWP6Y + 0.0399 + 20080506-170000 + + + EUB6SWP7Y + 0.0441 + 20080506-170000 + + + ESTRSWP7Y + 0.0412 + 20080506-170000 + + + EUB6SWP8Y + 0.0449 + 20080506-170000 + + + ESTRSWP8Y + 0.0416 + 20080506-170000 + + + EUB6SWP9Y + 0.0451 + 20080506-170000 + + + ESTRSWP9Y + 0.0419 + 20080506-170000 + + + EUB6SWP10Y + 0.0463 + 20080506-170000 + + + ESTRSWP10Y + 0.0426 + 20080506-170000 + + + EUB6SWP11Y + 0.046 + 20080506-170000 + + + EUB6SWP12Y + 0.047 + 20080506-170000 + + + EUB6SWP13Y + 0.0476 + 20080506-170000 + + + EUB6SWP14Y + 0.047 + 20080506-170000 + + + EUB6SWP15Y + 0.0472 + 20080506-170000 + + + EUB6SWP16Y + 0.0483 + 20080506-170000 + + + EUB6SWP17Y + 0.0486 + 20080506-170000 + + + EUB6SWP18Y + 0.0482 + 20080506-170000 + + + EUB6SWP19Y + 0.0479 + 20080506-170000 + + + EUB6SWP20Y + 0.0481 + 20080506-170000 + + + EUB6SWP21Y + 0.0486 + 20080506-170000 + + + EUB6SWP22Y + 0.0484 + 20080506-170000 + + + EUB6SWP23Y + 0.0486 + 20080506-170000 + + + EUB6SWP24Y + 0.0481 + 20080506-170000 + + + EUB6SWP25Y + 0.048 + 20080506-170000 + + + EUB6SWP26Y + 0.0483 + 20080506-170000 + + + EUB6SWP27Y + 0.0485 + 20080506-170000 + + + EUB6SWP28Y + 0.048 + 20080506-170000 + + + EUB6SWP29Y + 0.048 + 20080506-170000 + + + EUB6SWP30Y + 0.0476 + 20080506-170000 + + + EUB6SWP35Y + 0.0477 + 20080506-170000 + + + EUB6SWP40Y + 0.0477 + 20080506-170000 + + + EUB6SWP45Y + 0.0472 + 20080506-170000 + + + EUB6SWP50Y + 0.0466 + 20080506-170000 + + + EUB6SWP60Y + 0.0462 + 20080506-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-07.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-07.xml new file mode 100644 index 000000000..1da1a7a32 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-07.xml @@ -0,0 +1,314 @@ + + + 20080507-170000 + + EUB6FIX6M + 0.0488 + 20080507-170000 + + + ESTRSWP3W + 0.0397 + 20080507-170000 + + + ESTRSWP1W + 0.0395 + 20080507-170000 + + + ESTRSWP2W + 0.0403 + 20080507-170000 + + + ESTRSWP1M + 0.0403 + 20080507-170000 + + + ESTRSWP2M + 0.0401 + 20080507-170000 + + + ESTRSWP3M + 0.0406 + 20080507-170000 + + + ESTRSWP4M + 0.0405 + 20080507-170000 + + + ESTRSWP5M + 0.0402 + 20080507-170000 + + + ESTRSWP6M + 0.0404 + 20080507-170000 + + + ESTRSWP7M + 0.0405 + 20080507-170000 + + + ESTRSWP8M + 0.0406 + 20080507-170000 + + + ESTRSWP9M + 0.0401 + 20080507-170000 + + + ESTRSWP10M + 0.0406 + 20080507-170000 + + + ESTRSWP11M + 0.0409 + 20080507-170000 + + + EUB6SWP1Y + 0.0476 + 20080507-170000 + + + ESTRSWP12M + 0.0407 + 20080507-170000 + + + ESTRSWP15M + 0.04 + 20080507-170000 + + + ESTRSWP18M + 0.0393 + 20080507-170000 + + + EUB6SWP2Y + 0.0457 + 20080507-170000 + + + ESTRSWP2Y + 0.0398 + 20080507-170000 + + + EUB6SWP3Y + 0.0439 + 20080507-170000 + + + ESTRSWP3Y + 0.039 + 20080507-170000 + + + EUB6SWP4Y + 0.0438 + 20080507-170000 + + + ESTRSWP4Y + 0.0398 + 20080507-170000 + + + EUB6SWP5Y + 0.0434 + 20080507-170000 + + + ESTRSWP5Y + 0.0401 + 20080507-170000 + + + EUB6SWP6Y + 0.0436 + 20080507-170000 + + + ESTRSWP6Y + 0.0401 + 20080507-170000 + + + EUB6SWP7Y + 0.0439 + 20080507-170000 + + + ESTRSWP7Y + 0.041 + 20080507-170000 + + + EUB6SWP8Y + 0.0451 + 20080507-170000 + + + ESTRSWP8Y + 0.0412 + 20080507-170000 + + + EUB6SWP9Y + 0.0451 + 20080507-170000 + + + ESTRSWP9Y + 0.0421 + 20080507-170000 + + + EUB6SWP10Y + 0.0457 + 20080507-170000 + + + ESTRSWP10Y + 0.0427 + 20080507-170000 + + + EUB6SWP11Y + 0.046 + 20080507-170000 + + + EUB6SWP12Y + 0.0466 + 20080507-170000 + + + EUB6SWP13Y + 0.0468 + 20080507-170000 + + + EUB6SWP14Y + 0.0477 + 20080507-170000 + + + EUB6SWP15Y + 0.0482 + 20080507-170000 + + + EUB6SWP16Y + 0.0482 + 20080507-170000 + + + EUB6SWP17Y + 0.0486 + 20080507-170000 + + + EUB6SWP18Y + 0.048 + 20080507-170000 + + + EUB6SWP19Y + 0.0489 + 20080507-170000 + + + EUB6SWP20Y + 0.0484 + 20080507-170000 + + + EUB6SWP21Y + 0.0486 + 20080507-170000 + + + EUB6SWP22Y + 0.0483 + 20080507-170000 + + + EUB6SWP23Y + 0.0488 + 20080507-170000 + + + EUB6SWP24Y + 0.0487 + 20080507-170000 + + + EUB6SWP25Y + 0.0484 + 20080507-170000 + + + EUB6SWP26Y + 0.0483 + 20080507-170000 + + + EUB6SWP27Y + 0.048 + 20080507-170000 + + + EUB6SWP28Y + 0.0485 + 20080507-170000 + + + EUB6SWP29Y + 0.0482 + 20080507-170000 + + + EUB6SWP30Y + 0.0485 + 20080507-170000 + + + EUB6SWP35Y + 0.0475 + 20080507-170000 + + + EUB6SWP40Y + 0.0476 + 20080507-170000 + + + EUB6SWP45Y + 0.0474 + 20080507-170000 + + + EUB6SWP50Y + 0.0469 + 20080507-170000 + + + EUB6SWP60Y + 0.047 + 20080507-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-08.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-08.xml new file mode 100644 index 000000000..da5fe1c24 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-08.xml @@ -0,0 +1,314 @@ + + + 20080508-170000 + + EUB6FIX6M + 0.0487 + 20080508-170000 + + + ESTRSWP3W + 0.0405 + 20080508-170000 + + + ESTRSWP1W + 0.0406 + 20080508-170000 + + + ESTRSWP2W + 0.0398 + 20080508-170000 + + + ESTRSWP1M + 0.0406 + 20080508-170000 + + + ESTRSWP2M + 0.0403 + 20080508-170000 + + + ESTRSWP3M + 0.0403 + 20080508-170000 + + + ESTRSWP4M + 0.0403 + 20080508-170000 + + + ESTRSWP5M + 0.0401 + 20080508-170000 + + + ESTRSWP6M + 0.0409 + 20080508-170000 + + + ESTRSWP7M + 0.0404 + 20080508-170000 + + + ESTRSWP8M + 0.0401 + 20080508-170000 + + + ESTRSWP9M + 0.0407 + 20080508-170000 + + + ESTRSWP10M + 0.0406 + 20080508-170000 + + + ESTRSWP11M + 0.0401 + 20080508-170000 + + + EUB6SWP1Y + 0.0473 + 20080508-170000 + + + ESTRSWP12M + 0.0397 + 20080508-170000 + + + ESTRSWP15M + 0.0393 + 20080508-170000 + + + ESTRSWP18M + 0.0397 + 20080508-170000 + + + EUB6SWP2Y + 0.045 + 20080508-170000 + + + ESTRSWP2Y + 0.0386 + 20080508-170000 + + + EUB6SWP3Y + 0.0435 + 20080508-170000 + + + ESTRSWP3Y + 0.0391 + 20080508-170000 + + + EUB6SWP4Y + 0.0428 + 20080508-170000 + + + ESTRSWP4Y + 0.0392 + 20080508-170000 + + + EUB6SWP5Y + 0.0431 + 20080508-170000 + + + ESTRSWP5Y + 0.0398 + 20080508-170000 + + + EUB6SWP6Y + 0.0432 + 20080508-170000 + + + ESTRSWP6Y + 0.04 + 20080508-170000 + + + EUB6SWP7Y + 0.044 + 20080508-170000 + + + ESTRSWP7Y + 0.0401 + 20080508-170000 + + + EUB6SWP8Y + 0.0438 + 20080508-170000 + + + ESTRSWP8Y + 0.0411 + 20080508-170000 + + + EUB6SWP9Y + 0.0447 + 20080508-170000 + + + ESTRSWP9Y + 0.0412 + 20080508-170000 + + + EUB6SWP10Y + 0.0452 + 20080508-170000 + + + ESTRSWP10Y + 0.0416 + 20080508-170000 + + + EUB6SWP11Y + 0.0459 + 20080508-170000 + + + EUB6SWP12Y + 0.0462 + 20080508-170000 + + + EUB6SWP13Y + 0.0466 + 20080508-170000 + + + EUB6SWP14Y + 0.0473 + 20080508-170000 + + + EUB6SWP15Y + 0.0471 + 20080508-170000 + + + EUB6SWP16Y + 0.0471 + 20080508-170000 + + + EUB6SWP17Y + 0.0476 + 20080508-170000 + + + EUB6SWP18Y + 0.048 + 20080508-170000 + + + EUB6SWP19Y + 0.0481 + 20080508-170000 + + + EUB6SWP20Y + 0.0478 + 20080508-170000 + + + EUB6SWP21Y + 0.0483 + 20080508-170000 + + + EUB6SWP22Y + 0.0477 + 20080508-170000 + + + EUB6SWP23Y + 0.0474 + 20080508-170000 + + + EUB6SWP24Y + 0.0479 + 20080508-170000 + + + EUB6SWP25Y + 0.0477 + 20080508-170000 + + + EUB6SWP26Y + 0.0475 + 20080508-170000 + + + EUB6SWP27Y + 0.0479 + 20080508-170000 + + + EUB6SWP28Y + 0.0478 + 20080508-170000 + + + EUB6SWP29Y + 0.0479 + 20080508-170000 + + + EUB6SWP30Y + 0.0478 + 20080508-170000 + + + EUB6SWP35Y + 0.0475 + 20080508-170000 + + + EUB6SWP40Y + 0.0468 + 20080508-170000 + + + EUB6SWP45Y + 0.047 + 20080508-170000 + + + EUB6SWP50Y + 0.0465 + 20080508-170000 + + + EUB6SWP60Y + 0.0459 + 20080508-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-09.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-09.xml new file mode 100644 index 000000000..fbe2a73da --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-09.xml @@ -0,0 +1,314 @@ + + + 20080509-170000 + + EUB6FIX6M + 0.0484 + 20080509-170000 + + + ESTRSWP3W + 0.04 + 20080509-170000 + + + ESTRSWP1W + 0.0397 + 20080509-170000 + + + ESTRSWP2W + 0.0406 + 20080509-170000 + + + ESTRSWP1M + 0.04 + 20080509-170000 + + + ESTRSWP2M + 0.0398 + 20080509-170000 + + + ESTRSWP3M + 0.0408 + 20080509-170000 + + + ESTRSWP4M + 0.0406 + 20080509-170000 + + + ESTRSWP5M + 0.0404 + 20080509-170000 + + + ESTRSWP6M + 0.0401 + 20080509-170000 + + + ESTRSWP7M + 0.0407 + 20080509-170000 + + + ESTRSWP8M + 0.0406 + 20080509-170000 + + + ESTRSWP9M + 0.04 + 20080509-170000 + + + ESTRSWP10M + 0.0401 + 20080509-170000 + + + ESTRSWP11M + 0.0406 + 20080509-170000 + + + EUB6SWP1Y + 0.0476 + 20080509-170000 + + + ESTRSWP12M + 0.0403 + 20080509-170000 + + + ESTRSWP15M + 0.039 + 20080509-170000 + + + ESTRSWP18M + 0.039 + 20080509-170000 + + + EUB6SWP2Y + 0.0446 + 20080509-170000 + + + ESTRSWP2Y + 0.0386 + 20080509-170000 + + + EUB6SWP3Y + 0.043 + 20080509-170000 + + + ESTRSWP3Y + 0.0385 + 20080509-170000 + + + EUB6SWP4Y + 0.0428 + 20080509-170000 + + + ESTRSWP4Y + 0.0391 + 20080509-170000 + + + EUB6SWP5Y + 0.0429 + 20080509-170000 + + + ESTRSWP5Y + 0.0392 + 20080509-170000 + + + EUB6SWP6Y + 0.0434 + 20080509-170000 + + + ESTRSWP6Y + 0.0394 + 20080509-170000 + + + EUB6SWP7Y + 0.0428 + 20080509-170000 + + + ESTRSWP7Y + 0.0397 + 20080509-170000 + + + EUB6SWP8Y + 0.0439 + 20080509-170000 + + + ESTRSWP8Y + 0.0403 + 20080509-170000 + + + EUB6SWP9Y + 0.0446 + 20080509-170000 + + + ESTRSWP9Y + 0.041 + 20080509-170000 + + + EUB6SWP10Y + 0.0444 + 20080509-170000 + + + ESTRSWP10Y + 0.0411 + 20080509-170000 + + + EUB6SWP11Y + 0.0455 + 20080509-170000 + + + EUB6SWP12Y + 0.0459 + 20080509-170000 + + + EUB6SWP13Y + 0.0461 + 20080509-170000 + + + EUB6SWP14Y + 0.0466 + 20080509-170000 + + + EUB6SWP15Y + 0.0462 + 20080509-170000 + + + EUB6SWP16Y + 0.047 + 20080509-170000 + + + EUB6SWP17Y + 0.0468 + 20080509-170000 + + + EUB6SWP18Y + 0.0466 + 20080509-170000 + + + EUB6SWP19Y + 0.0468 + 20080509-170000 + + + EUB6SWP20Y + 0.0474 + 20080509-170000 + + + EUB6SWP21Y + 0.0473 + 20080509-170000 + + + EUB6SWP22Y + 0.0467 + 20080509-170000 + + + EUB6SWP23Y + 0.0473 + 20080509-170000 + + + EUB6SWP24Y + 0.0475 + 20080509-170000 + + + EUB6SWP25Y + 0.0472 + 20080509-170000 + + + EUB6SWP26Y + 0.0468 + 20080509-170000 + + + EUB6SWP27Y + 0.0473 + 20080509-170000 + + + EUB6SWP28Y + 0.0465 + 20080509-170000 + + + EUB6SWP29Y + 0.0467 + 20080509-170000 + + + EUB6SWP30Y + 0.0468 + 20080509-170000 + + + EUB6SWP35Y + 0.0462 + 20080509-170000 + + + EUB6SWP40Y + 0.0466 + 20080509-170000 + + + EUB6SWP45Y + 0.0458 + 20080509-170000 + + + EUB6SWP50Y + 0.0454 + 20080509-170000 + + + EUB6SWP60Y + 0.0452 + 20080509-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-12.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-12.xml new file mode 100644 index 000000000..5d69f2780 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-12.xml @@ -0,0 +1,314 @@ + + + 20080512-170000 + + EUB6FIX6M + 0.0487 + 20080512-170000 + + + ESTRSWP3W + 0.0405 + 20080512-170000 + + + ESTRSWP1W + 0.0398 + 20080512-170000 + + + ESTRSWP2W + 0.0397 + 20080512-170000 + + + ESTRSWP1M + 0.0402 + 20080512-170000 + + + ESTRSWP2M + 0.0407 + 20080512-170000 + + + ESTRSWP3M + 0.0399 + 20080512-170000 + + + ESTRSWP4M + 0.0405 + 20080512-170000 + + + ESTRSWP5M + 0.0406 + 20080512-170000 + + + ESTRSWP6M + 0.0411 + 20080512-170000 + + + ESTRSWP7M + 0.0406 + 20080512-170000 + + + ESTRSWP8M + 0.0411 + 20080512-170000 + + + ESTRSWP9M + 0.0404 + 20080512-170000 + + + ESTRSWP10M + 0.041 + 20080512-170000 + + + ESTRSWP11M + 0.0403 + 20080512-170000 + + + EUB6SWP1Y + 0.0479 + 20080512-170000 + + + ESTRSWP12M + 0.0406 + 20080512-170000 + + + ESTRSWP15M + 0.0395 + 20080512-170000 + + + ESTRSWP18M + 0.0394 + 20080512-170000 + + + EUB6SWP2Y + 0.0444 + 20080512-170000 + + + ESTRSWP2Y + 0.0386 + 20080512-170000 + + + EUB6SWP3Y + 0.0436 + 20080512-170000 + + + ESTRSWP3Y + 0.0389 + 20080512-170000 + + + EUB6SWP4Y + 0.0432 + 20080512-170000 + + + ESTRSWP4Y + 0.0393 + 20080512-170000 + + + EUB6SWP5Y + 0.0433 + 20080512-170000 + + + ESTRSWP5Y + 0.0393 + 20080512-170000 + + + EUB6SWP6Y + 0.0432 + 20080512-170000 + + + ESTRSWP6Y + 0.0397 + 20080512-170000 + + + EUB6SWP7Y + 0.0435 + 20080512-170000 + + + ESTRSWP7Y + 0.0399 + 20080512-170000 + + + EUB6SWP8Y + 0.0439 + 20080512-170000 + + + ESTRSWP8Y + 0.0411 + 20080512-170000 + + + EUB6SWP9Y + 0.0443 + 20080512-170000 + + + ESTRSWP9Y + 0.0407 + 20080512-170000 + + + EUB6SWP10Y + 0.0449 + 20080512-170000 + + + ESTRSWP10Y + 0.0417 + 20080512-170000 + + + EUB6SWP11Y + 0.0451 + 20080512-170000 + + + EUB6SWP12Y + 0.0454 + 20080512-170000 + + + EUB6SWP13Y + 0.046 + 20080512-170000 + + + EUB6SWP14Y + 0.0465 + 20080512-170000 + + + EUB6SWP15Y + 0.0471 + 20080512-170000 + + + EUB6SWP16Y + 0.0468 + 20080512-170000 + + + EUB6SWP17Y + 0.047 + 20080512-170000 + + + EUB6SWP18Y + 0.0471 + 20080512-170000 + + + EUB6SWP19Y + 0.047 + 20080512-170000 + + + EUB6SWP20Y + 0.0473 + 20080512-170000 + + + EUB6SWP21Y + 0.0478 + 20080512-170000 + + + EUB6SWP22Y + 0.0478 + 20080512-170000 + + + EUB6SWP23Y + 0.0475 + 20080512-170000 + + + EUB6SWP24Y + 0.0477 + 20080512-170000 + + + EUB6SWP25Y + 0.0472 + 20080512-170000 + + + EUB6SWP26Y + 0.0475 + 20080512-170000 + + + EUB6SWP27Y + 0.0468 + 20080512-170000 + + + EUB6SWP28Y + 0.0471 + 20080512-170000 + + + EUB6SWP29Y + 0.0469 + 20080512-170000 + + + EUB6SWP30Y + 0.0471 + 20080512-170000 + + + EUB6SWP35Y + 0.0465 + 20080512-170000 + + + EUB6SWP40Y + 0.0462 + 20080512-170000 + + + EUB6SWP45Y + 0.0464 + 20080512-170000 + + + EUB6SWP50Y + 0.0458 + 20080512-170000 + + + EUB6SWP60Y + 0.0461 + 20080512-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-13.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-13.xml new file mode 100644 index 000000000..153c5b7bd --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-13.xml @@ -0,0 +1,314 @@ + + + 20080513-170000 + + EUB6FIX6M + 0.049 + 20080513-170000 + + + ESTRSWP3W + 0.0403 + 20080513-170000 + + + ESTRSWP1W + 0.0405 + 20080513-170000 + + + ESTRSWP2W + 0.0398 + 20080513-170000 + + + ESTRSWP1M + 0.0401 + 20080513-170000 + + + ESTRSWP2M + 0.0408 + 20080513-170000 + + + ESTRSWP3M + 0.0407 + 20080513-170000 + + + ESTRSWP4M + 0.0403 + 20080513-170000 + + + ESTRSWP5M + 0.041 + 20080513-170000 + + + ESTRSWP6M + 0.0404 + 20080513-170000 + + + ESTRSWP7M + 0.0408 + 20080513-170000 + + + ESTRSWP8M + 0.0406 + 20080513-170000 + + + ESTRSWP9M + 0.0403 + 20080513-170000 + + + ESTRSWP10M + 0.0411 + 20080513-170000 + + + ESTRSWP11M + 0.0405 + 20080513-170000 + + + EUB6SWP1Y + 0.0487 + 20080513-170000 + + + ESTRSWP12M + 0.0403 + 20080513-170000 + + + ESTRSWP15M + 0.0403 + 20080513-170000 + + + ESTRSWP18M + 0.04 + 20080513-170000 + + + EUB6SWP2Y + 0.045 + 20080513-170000 + + + ESTRSWP2Y + 0.0394 + 20080513-170000 + + + EUB6SWP3Y + 0.0446 + 20080513-170000 + + + ESTRSWP3Y + 0.039 + 20080513-170000 + + + EUB6SWP4Y + 0.0435 + 20080513-170000 + + + ESTRSWP4Y + 0.0392 + 20080513-170000 + + + EUB6SWP5Y + 0.0437 + 20080513-170000 + + + ESTRSWP5Y + 0.0394 + 20080513-170000 + + + EUB6SWP6Y + 0.0439 + 20080513-170000 + + + ESTRSWP6Y + 0.0402 + 20080513-170000 + + + EUB6SWP7Y + 0.0444 + 20080513-170000 + + + ESTRSWP7Y + 0.0407 + 20080513-170000 + + + EUB6SWP8Y + 0.0443 + 20080513-170000 + + + ESTRSWP8Y + 0.0414 + 20080513-170000 + + + EUB6SWP9Y + 0.0448 + 20080513-170000 + + + ESTRSWP9Y + 0.0415 + 20080513-170000 + + + EUB6SWP10Y + 0.0453 + 20080513-170000 + + + ESTRSWP10Y + 0.0425 + 20080513-170000 + + + EUB6SWP11Y + 0.0461 + 20080513-170000 + + + EUB6SWP12Y + 0.0462 + 20080513-170000 + + + EUB6SWP13Y + 0.0468 + 20080513-170000 + + + EUB6SWP14Y + 0.0466 + 20080513-170000 + + + EUB6SWP15Y + 0.047 + 20080513-170000 + + + EUB6SWP16Y + 0.0474 + 20080513-170000 + + + EUB6SWP17Y + 0.0479 + 20080513-170000 + + + EUB6SWP18Y + 0.0472 + 20080513-170000 + + + EUB6SWP19Y + 0.0481 + 20080513-170000 + + + EUB6SWP20Y + 0.0476 + 20080513-170000 + + + EUB6SWP21Y + 0.0478 + 20080513-170000 + + + EUB6SWP22Y + 0.0473 + 20080513-170000 + + + EUB6SWP23Y + 0.0482 + 20080513-170000 + + + EUB6SWP24Y + 0.0475 + 20080513-170000 + + + EUB6SWP25Y + 0.0481 + 20080513-170000 + + + EUB6SWP26Y + 0.0479 + 20080513-170000 + + + EUB6SWP27Y + 0.0472 + 20080513-170000 + + + EUB6SWP28Y + 0.0477 + 20080513-170000 + + + EUB6SWP29Y + 0.0476 + 20080513-170000 + + + EUB6SWP30Y + 0.0476 + 20080513-170000 + + + EUB6SWP35Y + 0.0471 + 20080513-170000 + + + EUB6SWP40Y + 0.0472 + 20080513-170000 + + + EUB6SWP45Y + 0.0469 + 20080513-170000 + + + EUB6SWP50Y + 0.0463 + 20080513-170000 + + + EUB6SWP60Y + 0.046 + 20080513-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-14.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-14.xml new file mode 100644 index 000000000..6599167b2 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-14.xml @@ -0,0 +1,314 @@ + + + 20080514-170000 + + EUB6FIX6M + 0.0486 + 20080514-170000 + + + ESTRSWP3W + 0.0405 + 20080514-170000 + + + ESTRSWP1W + 0.0398 + 20080514-170000 + + + ESTRSWP2W + 0.0402 + 20080514-170000 + + + ESTRSWP1M + 0.0407 + 20080514-170000 + + + ESTRSWP2M + 0.0403 + 20080514-170000 + + + ESTRSWP3M + 0.0406 + 20080514-170000 + + + ESTRSWP4M + 0.0402 + 20080514-170000 + + + ESTRSWP5M + 0.0404 + 20080514-170000 + + + ESTRSWP6M + 0.0408 + 20080514-170000 + + + ESTRSWP7M + 0.0403 + 20080514-170000 + + + ESTRSWP8M + 0.0405 + 20080514-170000 + + + ESTRSWP9M + 0.041 + 20080514-170000 + + + ESTRSWP10M + 0.041 + 20080514-170000 + + + ESTRSWP11M + 0.0414 + 20080514-170000 + + + EUB6SWP1Y + 0.0491 + 20080514-170000 + + + ESTRSWP12M + 0.041 + 20080514-170000 + + + ESTRSWP15M + 0.0406 + 20080514-170000 + + + ESTRSWP18M + 0.0408 + 20080514-170000 + + + EUB6SWP2Y + 0.0458 + 20080514-170000 + + + ESTRSWP2Y + 0.0402 + 20080514-170000 + + + EUB6SWP3Y + 0.045 + 20080514-170000 + + + ESTRSWP3Y + 0.0396 + 20080514-170000 + + + EUB6SWP4Y + 0.0444 + 20080514-170000 + + + ESTRSWP4Y + 0.0396 + 20080514-170000 + + + EUB6SWP5Y + 0.0444 + 20080514-170000 + + + ESTRSWP5Y + 0.04 + 20080514-170000 + + + EUB6SWP6Y + 0.0445 + 20080514-170000 + + + ESTRSWP6Y + 0.0412 + 20080514-170000 + + + EUB6SWP7Y + 0.0444 + 20080514-170000 + + + ESTRSWP7Y + 0.041 + 20080514-170000 + + + EUB6SWP8Y + 0.0453 + 20080514-170000 + + + ESTRSWP8Y + 0.0415 + 20080514-170000 + + + EUB6SWP9Y + 0.0452 + 20080514-170000 + + + ESTRSWP9Y + 0.0416 + 20080514-170000 + + + EUB6SWP10Y + 0.0465 + 20080514-170000 + + + ESTRSWP10Y + 0.0422 + 20080514-170000 + + + EUB6SWP11Y + 0.0463 + 20080514-170000 + + + EUB6SWP12Y + 0.0465 + 20080514-170000 + + + EUB6SWP13Y + 0.0471 + 20080514-170000 + + + EUB6SWP14Y + 0.048 + 20080514-170000 + + + EUB6SWP15Y + 0.0475 + 20080514-170000 + + + EUB6SWP16Y + 0.0476 + 20080514-170000 + + + EUB6SWP17Y + 0.0484 + 20080514-170000 + + + EUB6SWP18Y + 0.048 + 20080514-170000 + + + EUB6SWP19Y + 0.0485 + 20080514-170000 + + + EUB6SWP20Y + 0.0486 + 20080514-170000 + + + EUB6SWP21Y + 0.0484 + 20080514-170000 + + + EUB6SWP22Y + 0.0483 + 20080514-170000 + + + EUB6SWP23Y + 0.0486 + 20080514-170000 + + + EUB6SWP24Y + 0.0487 + 20080514-170000 + + + EUB6SWP25Y + 0.0485 + 20080514-170000 + + + EUB6SWP26Y + 0.0488 + 20080514-170000 + + + EUB6SWP27Y + 0.048 + 20080514-170000 + + + EUB6SWP28Y + 0.0479 + 20080514-170000 + + + EUB6SWP29Y + 0.0477 + 20080514-170000 + + + EUB6SWP30Y + 0.0479 + 20080514-170000 + + + EUB6SWP35Y + 0.0476 + 20080514-170000 + + + EUB6SWP40Y + 0.0472 + 20080514-170000 + + + EUB6SWP45Y + 0.0478 + 20080514-170000 + + + EUB6SWP50Y + 0.0476 + 20080514-170000 + + + EUB6SWP60Y + 0.0465 + 20080514-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-15.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-15.xml new file mode 100644 index 000000000..058bccaf9 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-15.xml @@ -0,0 +1,314 @@ + + + 20080515-170000 + + EUB6FIX6M + 0.0493 + 20080515-170000 + + + ESTRSWP3W + 0.0398 + 20080515-170000 + + + ESTRSWP1W + 0.0405 + 20080515-170000 + + + ESTRSWP2W + 0.0407 + 20080515-170000 + + + ESTRSWP1M + 0.0404 + 20080515-170000 + + + ESTRSWP2M + 0.0399 + 20080515-170000 + + + ESTRSWP3M + 0.0407 + 20080515-170000 + + + ESTRSWP4M + 0.0403 + 20080515-170000 + + + ESTRSWP5M + 0.041 + 20080515-170000 + + + ESTRSWP6M + 0.0412 + 20080515-170000 + + + ESTRSWP7M + 0.0406 + 20080515-170000 + + + ESTRSWP8M + 0.0411 + 20080515-170000 + + + ESTRSWP9M + 0.0414 + 20080515-170000 + + + ESTRSWP10M + 0.0409 + 20080515-170000 + + + ESTRSWP11M + 0.0416 + 20080515-170000 + + + EUB6SWP1Y + 0.049 + 20080515-170000 + + + ESTRSWP12M + 0.0415 + 20080515-170000 + + + ESTRSWP15M + 0.0416 + 20080515-170000 + + + ESTRSWP18M + 0.0412 + 20080515-170000 + + + EUB6SWP2Y + 0.0464 + 20080515-170000 + + + ESTRSWP2Y + 0.0409 + 20080515-170000 + + + EUB6SWP3Y + 0.0455 + 20080515-170000 + + + ESTRSWP3Y + 0.0405 + 20080515-170000 + + + EUB6SWP4Y + 0.0444 + 20080515-170000 + + + ESTRSWP4Y + 0.0401 + 20080515-170000 + + + EUB6SWP5Y + 0.0445 + 20080515-170000 + + + ESTRSWP5Y + 0.041 + 20080515-170000 + + + EUB6SWP6Y + 0.0452 + 20080515-170000 + + + ESTRSWP6Y + 0.0408 + 20080515-170000 + + + EUB6SWP7Y + 0.0453 + 20080515-170000 + + + ESTRSWP7Y + 0.041 + 20080515-170000 + + + EUB6SWP8Y + 0.045 + 20080515-170000 + + + ESTRSWP8Y + 0.0413 + 20080515-170000 + + + EUB6SWP9Y + 0.0457 + 20080515-170000 + + + ESTRSWP9Y + 0.0418 + 20080515-170000 + + + EUB6SWP10Y + 0.0466 + 20080515-170000 + + + ESTRSWP10Y + 0.0426 + 20080515-170000 + + + EUB6SWP11Y + 0.047 + 20080515-170000 + + + EUB6SWP12Y + 0.0474 + 20080515-170000 + + + EUB6SWP13Y + 0.0469 + 20080515-170000 + + + EUB6SWP14Y + 0.0476 + 20080515-170000 + + + EUB6SWP15Y + 0.0478 + 20080515-170000 + + + EUB6SWP16Y + 0.0482 + 20080515-170000 + + + EUB6SWP17Y + 0.0482 + 20080515-170000 + + + EUB6SWP18Y + 0.0482 + 20080515-170000 + + + EUB6SWP19Y + 0.0486 + 20080515-170000 + + + EUB6SWP20Y + 0.048 + 20080515-170000 + + + EUB6SWP21Y + 0.0481 + 20080515-170000 + + + EUB6SWP22Y + 0.0487 + 20080515-170000 + + + EUB6SWP23Y + 0.0486 + 20080515-170000 + + + EUB6SWP24Y + 0.0485 + 20080515-170000 + + + EUB6SWP25Y + 0.048 + 20080515-170000 + + + EUB6SWP26Y + 0.048 + 20080515-170000 + + + EUB6SWP27Y + 0.0477 + 20080515-170000 + + + EUB6SWP28Y + 0.0485 + 20080515-170000 + + + EUB6SWP29Y + 0.0483 + 20080515-170000 + + + EUB6SWP30Y + 0.0481 + 20080515-170000 + + + EUB6SWP35Y + 0.0479 + 20080515-170000 + + + EUB6SWP40Y + 0.0477 + 20080515-170000 + + + EUB6SWP45Y + 0.0469 + 20080515-170000 + + + EUB6SWP50Y + 0.0467 + 20080515-170000 + + + EUB6SWP60Y + 0.047 + 20080515-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-16.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-16.xml new file mode 100644 index 000000000..b6f6eeedf --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-16.xml @@ -0,0 +1,314 @@ + + + 20080516-170000 + + EUB6FIX6M + 0.0495 + 20080516-170000 + + + ESTRSWP3W + 0.0404 + 20080516-170000 + + + ESTRSWP1W + 0.0406 + 20080516-170000 + + + ESTRSWP2W + 0.0403 + 20080516-170000 + + + ESTRSWP1M + 0.04 + 20080516-170000 + + + ESTRSWP2M + 0.0405 + 20080516-170000 + + + ESTRSWP3M + 0.0403 + 20080516-170000 + + + ESTRSWP4M + 0.0404 + 20080516-170000 + + + ESTRSWP5M + 0.0408 + 20080516-170000 + + + ESTRSWP6M + 0.041 + 20080516-170000 + + + ESTRSWP7M + 0.0406 + 20080516-170000 + + + ESTRSWP8M + 0.0407 + 20080516-170000 + + + ESTRSWP9M + 0.0407 + 20080516-170000 + + + ESTRSWP10M + 0.0407 + 20080516-170000 + + + ESTRSWP11M + 0.0412 + 20080516-170000 + + + EUB6SWP1Y + 0.0489 + 20080516-170000 + + + ESTRSWP12M + 0.0412 + 20080516-170000 + + + ESTRSWP15M + 0.0413 + 20080516-170000 + + + ESTRSWP18M + 0.0409 + 20080516-170000 + + + EUB6SWP2Y + 0.0461 + 20080516-170000 + + + ESTRSWP2Y + 0.0405 + 20080516-170000 + + + EUB6SWP3Y + 0.0451 + 20080516-170000 + + + ESTRSWP3Y + 0.0397 + 20080516-170000 + + + EUB6SWP4Y + 0.0448 + 20080516-170000 + + + ESTRSWP4Y + 0.0402 + 20080516-170000 + + + EUB6SWP5Y + 0.0449 + 20080516-170000 + + + ESTRSWP5Y + 0.0403 + 20080516-170000 + + + EUB6SWP6Y + 0.0448 + 20080516-170000 + + + ESTRSWP6Y + 0.0412 + 20080516-170000 + + + EUB6SWP7Y + 0.0443 + 20080516-170000 + + + ESTRSWP7Y + 0.0416 + 20080516-170000 + + + EUB6SWP8Y + 0.0454 + 20080516-170000 + + + ESTRSWP8Y + 0.0414 + 20080516-170000 + + + EUB6SWP9Y + 0.0456 + 20080516-170000 + + + ESTRSWP9Y + 0.0416 + 20080516-170000 + + + EUB6SWP10Y + 0.0458 + 20080516-170000 + + + ESTRSWP10Y + 0.0429 + 20080516-170000 + + + EUB6SWP11Y + 0.0468 + 20080516-170000 + + + EUB6SWP12Y + 0.0466 + 20080516-170000 + + + EUB6SWP13Y + 0.047 + 20080516-170000 + + + EUB6SWP14Y + 0.0475 + 20080516-170000 + + + EUB6SWP15Y + 0.0475 + 20080516-170000 + + + EUB6SWP16Y + 0.0478 + 20080516-170000 + + + EUB6SWP17Y + 0.0476 + 20080516-170000 + + + EUB6SWP18Y + 0.0479 + 20080516-170000 + + + EUB6SWP19Y + 0.0482 + 20080516-170000 + + + EUB6SWP20Y + 0.048 + 20080516-170000 + + + EUB6SWP21Y + 0.0487 + 20080516-170000 + + + EUB6SWP22Y + 0.0479 + 20080516-170000 + + + EUB6SWP23Y + 0.0485 + 20080516-170000 + + + EUB6SWP24Y + 0.0484 + 20080516-170000 + + + EUB6SWP25Y + 0.0478 + 20080516-170000 + + + EUB6SWP26Y + 0.0482 + 20080516-170000 + + + EUB6SWP27Y + 0.0478 + 20080516-170000 + + + EUB6SWP28Y + 0.0477 + 20080516-170000 + + + EUB6SWP29Y + 0.0483 + 20080516-170000 + + + EUB6SWP30Y + 0.0483 + 20080516-170000 + + + EUB6SWP35Y + 0.0472 + 20080516-170000 + + + EUB6SWP40Y + 0.0478 + 20080516-170000 + + + EUB6SWP45Y + 0.0472 + 20080516-170000 + + + EUB6SWP50Y + 0.0474 + 20080516-170000 + + + EUB6SWP60Y + 0.0467 + 20080516-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-19.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-19.xml new file mode 100644 index 000000000..3dc185ad2 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-19.xml @@ -0,0 +1,314 @@ + + + 20080519-170000 + + EUB6FIX6M + 0.0486 + 20080519-170000 + + + ESTRSWP3W + 0.0407 + 20080519-170000 + + + ESTRSWP1W + 0.0404 + 20080519-170000 + + + ESTRSWP2W + 0.0407 + 20080519-170000 + + + ESTRSWP1M + 0.0406 + 20080519-170000 + + + ESTRSWP2M + 0.0408 + 20080519-170000 + + + ESTRSWP3M + 0.0406 + 20080519-170000 + + + ESTRSWP4M + 0.0409 + 20080519-170000 + + + ESTRSWP5M + 0.0412 + 20080519-170000 + + + ESTRSWP6M + 0.0409 + 20080519-170000 + + + ESTRSWP7M + 0.0408 + 20080519-170000 + + + ESTRSWP8M + 0.0417 + 20080519-170000 + + + ESTRSWP9M + 0.0417 + 20080519-170000 + + + ESTRSWP10M + 0.0419 + 20080519-170000 + + + ESTRSWP11M + 0.0415 + 20080519-170000 + + + EUB6SWP1Y + 0.0497 + 20080519-170000 + + + ESTRSWP12M + 0.0418 + 20080519-170000 + + + ESTRSWP15M + 0.0417 + 20080519-170000 + + + ESTRSWP18M + 0.041 + 20080519-170000 + + + EUB6SWP2Y + 0.047 + 20080519-170000 + + + ESTRSWP2Y + 0.0413 + 20080519-170000 + + + EUB6SWP3Y + 0.0453 + 20080519-170000 + + + ESTRSWP3Y + 0.0404 + 20080519-170000 + + + EUB6SWP4Y + 0.0453 + 20080519-170000 + + + ESTRSWP4Y + 0.0404 + 20080519-170000 + + + EUB6SWP5Y + 0.0449 + 20080519-170000 + + + ESTRSWP5Y + 0.0411 + 20080519-170000 + + + EUB6SWP6Y + 0.0454 + 20080519-170000 + + + ESTRSWP6Y + 0.0412 + 20080519-170000 + + + EUB6SWP7Y + 0.0451 + 20080519-170000 + + + ESTRSWP7Y + 0.0415 + 20080519-170000 + + + EUB6SWP8Y + 0.0453 + 20080519-170000 + + + ESTRSWP8Y + 0.042 + 20080519-170000 + + + EUB6SWP9Y + 0.0462 + 20080519-170000 + + + ESTRSWP9Y + 0.0428 + 20080519-170000 + + + EUB6SWP10Y + 0.0467 + 20080519-170000 + + + ESTRSWP10Y + 0.0431 + 20080519-170000 + + + EUB6SWP11Y + 0.0465 + 20080519-170000 + + + EUB6SWP12Y + 0.0471 + 20080519-170000 + + + EUB6SWP13Y + 0.0479 + 20080519-170000 + + + EUB6SWP14Y + 0.0475 + 20080519-170000 + + + EUB6SWP15Y + 0.0479 + 20080519-170000 + + + EUB6SWP16Y + 0.0484 + 20080519-170000 + + + EUB6SWP17Y + 0.0481 + 20080519-170000 + + + EUB6SWP18Y + 0.0489 + 20080519-170000 + + + EUB6SWP19Y + 0.0488 + 20080519-170000 + + + EUB6SWP20Y + 0.0483 + 20080519-170000 + + + EUB6SWP21Y + 0.0489 + 20080519-170000 + + + EUB6SWP22Y + 0.0484 + 20080519-170000 + + + EUB6SWP23Y + 0.0487 + 20080519-170000 + + + EUB6SWP24Y + 0.0488 + 20080519-170000 + + + EUB6SWP25Y + 0.0483 + 20080519-170000 + + + EUB6SWP26Y + 0.0485 + 20080519-170000 + + + EUB6SWP27Y + 0.0481 + 20080519-170000 + + + EUB6SWP28Y + 0.0488 + 20080519-170000 + + + EUB6SWP29Y + 0.0479 + 20080519-170000 + + + EUB6SWP30Y + 0.0487 + 20080519-170000 + + + EUB6SWP35Y + 0.0475 + 20080519-170000 + + + EUB6SWP40Y + 0.0479 + 20080519-170000 + + + EUB6SWP45Y + 0.0472 + 20080519-170000 + + + EUB6SWP50Y + 0.0476 + 20080519-170000 + + + EUB6SWP60Y + 0.0465 + 20080519-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-20.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-20.xml new file mode 100644 index 000000000..e80f3156e --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-20.xml @@ -0,0 +1,314 @@ + + + 20080520-170000 + + EUB6FIX6M + 0.0495 + 20080520-170000 + + + ESTRSWP3W + 0.0403 + 20080520-170000 + + + ESTRSWP1W + 0.04 + 20080520-170000 + + + ESTRSWP2W + 0.0399 + 20080520-170000 + + + ESTRSWP1M + 0.0403 + 20080520-170000 + + + ESTRSWP2M + 0.0408 + 20080520-170000 + + + ESTRSWP3M + 0.0403 + 20080520-170000 + + + ESTRSWP4M + 0.0404 + 20080520-170000 + + + ESTRSWP5M + 0.0406 + 20080520-170000 + + + ESTRSWP6M + 0.0408 + 20080520-170000 + + + ESTRSWP7M + 0.0413 + 20080520-170000 + + + ESTRSWP8M + 0.0411 + 20080520-170000 + + + ESTRSWP9M + 0.0411 + 20080520-170000 + + + ESTRSWP10M + 0.0416 + 20080520-170000 + + + ESTRSWP11M + 0.0421 + 20080520-170000 + + + EUB6SWP1Y + 0.0494 + 20080520-170000 + + + ESTRSWP12M + 0.0421 + 20080520-170000 + + + ESTRSWP15M + 0.0411 + 20080520-170000 + + + ESTRSWP18M + 0.0414 + 20080520-170000 + + + EUB6SWP2Y + 0.0466 + 20080520-170000 + + + ESTRSWP2Y + 0.0407 + 20080520-170000 + + + EUB6SWP3Y + 0.045 + 20080520-170000 + + + ESTRSWP3Y + 0.0401 + 20080520-170000 + + + EUB6SWP4Y + 0.0451 + 20080520-170000 + + + ESTRSWP4Y + 0.0405 + 20080520-170000 + + + EUB6SWP5Y + 0.0448 + 20080520-170000 + + + ESTRSWP5Y + 0.0408 + 20080520-170000 + + + EUB6SWP6Y + 0.0443 + 20080520-170000 + + + ESTRSWP6Y + 0.0409 + 20080520-170000 + + + EUB6SWP7Y + 0.0445 + 20080520-170000 + + + ESTRSWP7Y + 0.0414 + 20080520-170000 + + + EUB6SWP8Y + 0.0452 + 20080520-170000 + + + ESTRSWP8Y + 0.0417 + 20080520-170000 + + + EUB6SWP9Y + 0.0456 + 20080520-170000 + + + ESTRSWP9Y + 0.0427 + 20080520-170000 + + + EUB6SWP10Y + 0.0461 + 20080520-170000 + + + ESTRSWP10Y + 0.0428 + 20080520-170000 + + + EUB6SWP11Y + 0.047 + 20080520-170000 + + + EUB6SWP12Y + 0.0472 + 20080520-170000 + + + EUB6SWP13Y + 0.0471 + 20080520-170000 + + + EUB6SWP14Y + 0.0481 + 20080520-170000 + + + EUB6SWP15Y + 0.0476 + 20080520-170000 + + + EUB6SWP16Y + 0.0483 + 20080520-170000 + + + EUB6SWP17Y + 0.0483 + 20080520-170000 + + + EUB6SWP18Y + 0.0482 + 20080520-170000 + + + EUB6SWP19Y + 0.0483 + 20080520-170000 + + + EUB6SWP20Y + 0.0489 + 20080520-170000 + + + EUB6SWP21Y + 0.0483 + 20080520-170000 + + + EUB6SWP22Y + 0.0485 + 20080520-170000 + + + EUB6SWP23Y + 0.0483 + 20080520-170000 + + + EUB6SWP24Y + 0.0483 + 20080520-170000 + + + EUB6SWP25Y + 0.0483 + 20080520-170000 + + + EUB6SWP26Y + 0.048 + 20080520-170000 + + + EUB6SWP27Y + 0.0482 + 20080520-170000 + + + EUB6SWP28Y + 0.0484 + 20080520-170000 + + + EUB6SWP29Y + 0.0481 + 20080520-170000 + + + EUB6SWP30Y + 0.0476 + 20080520-170000 + + + EUB6SWP35Y + 0.0478 + 20080520-170000 + + + EUB6SWP40Y + 0.0475 + 20080520-170000 + + + EUB6SWP45Y + 0.0477 + 20080520-170000 + + + EUB6SWP50Y + 0.0467 + 20080520-170000 + + + EUB6SWP60Y + 0.0464 + 20080520-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-21.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-21.xml new file mode 100644 index 000000000..c94676066 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-21.xml @@ -0,0 +1,314 @@ + + + 20080521-170000 + + EUB6FIX6M + 0.0495 + 20080521-170000 + + + ESTRSWP3W + 0.0402 + 20080521-170000 + + + ESTRSWP1W + 0.0404 + 20080521-170000 + + + ESTRSWP2W + 0.0399 + 20080521-170000 + + + ESTRSWP1M + 0.04 + 20080521-170000 + + + ESTRSWP2M + 0.0401 + 20080521-170000 + + + ESTRSWP3M + 0.0411 + 20080521-170000 + + + ESTRSWP4M + 0.0406 + 20080521-170000 + + + ESTRSWP5M + 0.0409 + 20080521-170000 + + + ESTRSWP6M + 0.0413 + 20080521-170000 + + + ESTRSWP7M + 0.0414 + 20080521-170000 + + + ESTRSWP8M + 0.0418 + 20080521-170000 + + + ESTRSWP9M + 0.0418 + 20080521-170000 + + + ESTRSWP10M + 0.0422 + 20080521-170000 + + + ESTRSWP11M + 0.0425 + 20080521-170000 + + + EUB6SWP1Y + 0.0498 + 20080521-170000 + + + ESTRSWP12M + 0.042 + 20080521-170000 + + + ESTRSWP15M + 0.0426 + 20080521-170000 + + + ESTRSWP18M + 0.0418 + 20080521-170000 + + + EUB6SWP2Y + 0.0479 + 20080521-170000 + + + ESTRSWP2Y + 0.0415 + 20080521-170000 + + + EUB6SWP3Y + 0.0462 + 20080521-170000 + + + ESTRSWP3Y + 0.0418 + 20080521-170000 + + + EUB6SWP4Y + 0.0455 + 20080521-170000 + + + ESTRSWP4Y + 0.0416 + 20080521-170000 + + + EUB6SWP5Y + 0.0458 + 20080521-170000 + + + ESTRSWP5Y + 0.0419 + 20080521-170000 + + + EUB6SWP6Y + 0.0455 + 20080521-170000 + + + ESTRSWP6Y + 0.0415 + 20080521-170000 + + + EUB6SWP7Y + 0.0456 + 20080521-170000 + + + ESTRSWP7Y + 0.0426 + 20080521-170000 + + + EUB6SWP8Y + 0.0459 + 20080521-170000 + + + ESTRSWP8Y + 0.0429 + 20080521-170000 + + + EUB6SWP9Y + 0.0466 + 20080521-170000 + + + ESTRSWP9Y + 0.0428 + 20080521-170000 + + + EUB6SWP10Y + 0.0464 + 20080521-170000 + + + ESTRSWP10Y + 0.043 + 20080521-170000 + + + EUB6SWP11Y + 0.0466 + 20080521-170000 + + + EUB6SWP12Y + 0.0475 + 20080521-170000 + + + EUB6SWP13Y + 0.0476 + 20080521-170000 + + + EUB6SWP14Y + 0.0485 + 20080521-170000 + + + EUB6SWP15Y + 0.0484 + 20080521-170000 + + + EUB6SWP16Y + 0.0484 + 20080521-170000 + + + EUB6SWP17Y + 0.0486 + 20080521-170000 + + + EUB6SWP18Y + 0.0492 + 20080521-170000 + + + EUB6SWP19Y + 0.049 + 20080521-170000 + + + EUB6SWP20Y + 0.0494 + 20080521-170000 + + + EUB6SWP21Y + 0.0488 + 20080521-170000 + + + EUB6SWP22Y + 0.0492 + 20080521-170000 + + + EUB6SWP23Y + 0.0486 + 20080521-170000 + + + EUB6SWP24Y + 0.0492 + 20080521-170000 + + + EUB6SWP25Y + 0.0492 + 20080521-170000 + + + EUB6SWP26Y + 0.0484 + 20080521-170000 + + + EUB6SWP27Y + 0.0486 + 20080521-170000 + + + EUB6SWP28Y + 0.049 + 20080521-170000 + + + EUB6SWP29Y + 0.0486 + 20080521-170000 + + + EUB6SWP30Y + 0.0481 + 20080521-170000 + + + EUB6SWP35Y + 0.0478 + 20080521-170000 + + + EUB6SWP40Y + 0.0479 + 20080521-170000 + + + EUB6SWP45Y + 0.0474 + 20080521-170000 + + + EUB6SWP50Y + 0.0472 + 20080521-170000 + + + EUB6SWP60Y + 0.0473 + 20080521-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-22.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-22.xml new file mode 100644 index 000000000..4fdf757fc --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-22.xml @@ -0,0 +1,314 @@ + + + 20080522-170000 + + EUB6FIX6M + 0.0488 + 20080522-170000 + + + ESTRSWP3W + 0.0398 + 20080522-170000 + + + ESTRSWP1W + 0.0404 + 20080522-170000 + + + ESTRSWP2W + 0.0403 + 20080522-170000 + + + ESTRSWP1M + 0.0401 + 20080522-170000 + + + ESTRSWP2M + 0.0403 + 20080522-170000 + + + ESTRSWP3M + 0.0408 + 20080522-170000 + + + ESTRSWP4M + 0.0411 + 20080522-170000 + + + ESTRSWP5M + 0.0415 + 20080522-170000 + + + ESTRSWP6M + 0.0417 + 20080522-170000 + + + ESTRSWP7M + 0.0421 + 20080522-170000 + + + ESTRSWP8M + 0.0423 + 20080522-170000 + + + ESTRSWP9M + 0.0424 + 20080522-170000 + + + ESTRSWP10M + 0.0424 + 20080522-170000 + + + ESTRSWP11M + 0.0422 + 20080522-170000 + + + EUB6SWP1Y + 0.0501 + 20080522-170000 + + + ESTRSWP12M + 0.0433 + 20080522-170000 + + + ESTRSWP15M + 0.0431 + 20080522-170000 + + + ESTRSWP18M + 0.0426 + 20080522-170000 + + + EUB6SWP2Y + 0.0486 + 20080522-170000 + + + ESTRSWP2Y + 0.0426 + 20080522-170000 + + + EUB6SWP3Y + 0.0471 + 20080522-170000 + + + ESTRSWP3Y + 0.0417 + 20080522-170000 + + + EUB6SWP4Y + 0.0461 + 20080522-170000 + + + ESTRSWP4Y + 0.0417 + 20080522-170000 + + + EUB6SWP5Y + 0.046 + 20080522-170000 + + + ESTRSWP5Y + 0.0418 + 20080522-170000 + + + EUB6SWP6Y + 0.0461 + 20080522-170000 + + + ESTRSWP6Y + 0.042 + 20080522-170000 + + + EUB6SWP7Y + 0.046 + 20080522-170000 + + + ESTRSWP7Y + 0.0426 + 20080522-170000 + + + EUB6SWP8Y + 0.0467 + 20080522-170000 + + + ESTRSWP8Y + 0.0427 + 20080522-170000 + + + EUB6SWP9Y + 0.0469 + 20080522-170000 + + + ESTRSWP9Y + 0.043 + 20080522-170000 + + + EUB6SWP10Y + 0.0473 + 20080522-170000 + + + ESTRSWP10Y + 0.0434 + 20080522-170000 + + + EUB6SWP11Y + 0.0478 + 20080522-170000 + + + EUB6SWP12Y + 0.0477 + 20080522-170000 + + + EUB6SWP13Y + 0.0478 + 20080522-170000 + + + EUB6SWP14Y + 0.0486 + 20080522-170000 + + + EUB6SWP15Y + 0.0484 + 20080522-170000 + + + EUB6SWP16Y + 0.0485 + 20080522-170000 + + + EUB6SWP17Y + 0.0486 + 20080522-170000 + + + EUB6SWP18Y + 0.0487 + 20080522-170000 + + + EUB6SWP19Y + 0.0496 + 20080522-170000 + + + EUB6SWP20Y + 0.0492 + 20080522-170000 + + + EUB6SWP21Y + 0.0497 + 20080522-170000 + + + EUB6SWP22Y + 0.0492 + 20080522-170000 + + + EUB6SWP23Y + 0.0491 + 20080522-170000 + + + EUB6SWP24Y + 0.0494 + 20080522-170000 + + + EUB6SWP25Y + 0.0489 + 20080522-170000 + + + EUB6SWP26Y + 0.0494 + 20080522-170000 + + + EUB6SWP27Y + 0.0492 + 20080522-170000 + + + EUB6SWP28Y + 0.0487 + 20080522-170000 + + + EUB6SWP29Y + 0.0489 + 20080522-170000 + + + EUB6SWP30Y + 0.0483 + 20080522-170000 + + + EUB6SWP35Y + 0.0486 + 20080522-170000 + + + EUB6SWP40Y + 0.0483 + 20080522-170000 + + + EUB6SWP45Y + 0.0479 + 20080522-170000 + + + EUB6SWP50Y + 0.0482 + 20080522-170000 + + + EUB6SWP60Y + 0.0475 + 20080522-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-23.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-23.xml new file mode 100644 index 000000000..89c7d2ccb --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-23.xml @@ -0,0 +1,314 @@ + + + 20080523-170000 + + EUB6FIX6M + 0.0487 + 20080523-170000 + + + ESTRSWP3W + 0.0406 + 20080523-170000 + + + ESTRSWP1W + 0.0404 + 20080523-170000 + + + ESTRSWP2W + 0.0404 + 20080523-170000 + + + ESTRSWP1M + 0.0403 + 20080523-170000 + + + ESTRSWP2M + 0.0403 + 20080523-170000 + + + ESTRSWP3M + 0.0405 + 20080523-170000 + + + ESTRSWP4M + 0.0413 + 20080523-170000 + + + ESTRSWP5M + 0.0409 + 20080523-170000 + + + ESTRSWP6M + 0.0418 + 20080523-170000 + + + ESTRSWP7M + 0.0418 + 20080523-170000 + + + ESTRSWP8M + 0.0422 + 20080523-170000 + + + ESTRSWP9M + 0.0423 + 20080523-170000 + + + ESTRSWP10M + 0.0424 + 20080523-170000 + + + ESTRSWP11M + 0.0422 + 20080523-170000 + + + EUB6SWP1Y + 0.0505 + 20080523-170000 + + + ESTRSWP12M + 0.0425 + 20080523-170000 + + + ESTRSWP15M + 0.0431 + 20080523-170000 + + + ESTRSWP18M + 0.0429 + 20080523-170000 + + + EUB6SWP2Y + 0.0491 + 20080523-170000 + + + ESTRSWP2Y + 0.0432 + 20080523-170000 + + + EUB6SWP3Y + 0.0471 + 20080523-170000 + + + ESTRSWP3Y + 0.0428 + 20080523-170000 + + + EUB6SWP4Y + 0.0459 + 20080523-170000 + + + ESTRSWP4Y + 0.0414 + 20080523-170000 + + + EUB6SWP5Y + 0.0461 + 20080523-170000 + + + ESTRSWP5Y + 0.0418 + 20080523-170000 + + + EUB6SWP6Y + 0.0456 + 20080523-170000 + + + ESTRSWP6Y + 0.0415 + 20080523-170000 + + + EUB6SWP7Y + 0.0459 + 20080523-170000 + + + ESTRSWP7Y + 0.0422 + 20080523-170000 + + + EUB6SWP8Y + 0.0461 + 20080523-170000 + + + ESTRSWP8Y + 0.042 + 20080523-170000 + + + EUB6SWP9Y + 0.0466 + 20080523-170000 + + + ESTRSWP9Y + 0.0428 + 20080523-170000 + + + EUB6SWP10Y + 0.047 + 20080523-170000 + + + ESTRSWP10Y + 0.0431 + 20080523-170000 + + + EUB6SWP11Y + 0.0475 + 20080523-170000 + + + EUB6SWP12Y + 0.0475 + 20080523-170000 + + + EUB6SWP13Y + 0.0481 + 20080523-170000 + + + EUB6SWP14Y + 0.0479 + 20080523-170000 + + + EUB6SWP15Y + 0.0491 + 20080523-170000 + + + EUB6SWP16Y + 0.0486 + 20080523-170000 + + + EUB6SWP17Y + 0.049 + 20080523-170000 + + + EUB6SWP18Y + 0.0487 + 20080523-170000 + + + EUB6SWP19Y + 0.049 + 20080523-170000 + + + EUB6SWP20Y + 0.0496 + 20080523-170000 + + + EUB6SWP21Y + 0.0492 + 20080523-170000 + + + EUB6SWP22Y + 0.049 + 20080523-170000 + + + EUB6SWP23Y + 0.0489 + 20080523-170000 + + + EUB6SWP24Y + 0.0486 + 20080523-170000 + + + EUB6SWP25Y + 0.0491 + 20080523-170000 + + + EUB6SWP26Y + 0.0487 + 20080523-170000 + + + EUB6SWP27Y + 0.0489 + 20080523-170000 + + + EUB6SWP28Y + 0.0485 + 20080523-170000 + + + EUB6SWP29Y + 0.0487 + 20080523-170000 + + + EUB6SWP30Y + 0.0489 + 20080523-170000 + + + EUB6SWP35Y + 0.0488 + 20080523-170000 + + + EUB6SWP40Y + 0.048 + 20080523-170000 + + + EUB6SWP45Y + 0.0482 + 20080523-170000 + + + EUB6SWP50Y + 0.048 + 20080523-170000 + + + EUB6SWP60Y + 0.0473 + 20080523-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-26.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-26.xml new file mode 100644 index 000000000..e33a8bee3 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-26.xml @@ -0,0 +1,279 @@ + + + 20080526-170000 + + EUB6FIX6M + 0.0496 + 20080526-170000 + + + ESTRSWP3W + 0.0409 + 20080526-170000 + + + ESTRSWP2W + 0.0399 + 20080526-170000 + + + ESTRSWP1W + 0.0409 + 20080526-170000 + + + ESTRSWP1M + 0.0401 + 20080526-170000 + + + ESTRSWP2M + 0.0407 + 20080526-170000 + + + ESTRSWP3M + 0.0406 + 20080526-170000 + + + ESTRSWP4M + 0.0407 + 20080526-170000 + + + ESTRSWP5M + 0.041 + 20080526-170000 + + + ESTRSWP6M + 0.0418 + 20080526-170000 + + + ESTRSWP7M + 0.0417 + 20080526-170000 + + + ESTRSWP8M + 0.0417 + 20080526-170000 + + + ESTRSWP9M + 0.0427 + 20080526-170000 + + + ESTRSWP10M + 0.0429 + 20080526-170000 + + + ESTRSWP11M + 0.0426 + 20080526-170000 + + + EUB6SWP1Y + 0.0505 + 20080526-170000 + + + ESTRSWP12M + 0.0426 + 20080526-170000 + + + ESTRSWP15M + 0.0426 + 20080526-170000 + + + ESTRSWP18M + 0.0431 + 20080526-170000 + + + EUB6SWP2Y + 0.0487 + 20080526-170000 + + + ESTRSWP2Y + 0.0432 + 20080526-170000 + + + EUB6SWP3Y + 0.0479 + 20080526-170000 + + + ESTRSWP3Y + 0.0421 + 20080526-170000 + + + EUB6SWP4Y + 0.0468 + 20080526-170000 + + + EUB6SWP5Y + 0.0464 + 20080526-170000 + + + EUB6SWP6Y + 0.0459 + 20080526-170000 + + + EUB6SWP7Y + 0.0466 + 20080526-170000 + + + EUB6SWP8Y + 0.0468 + 20080526-170000 + + + EUB6SWP9Y + 0.047 + 20080526-170000 + + + EUB6SWP10Y + 0.0477 + 20080526-170000 + + + EUB6SWP11Y + 0.0475 + 20080526-170000 + + + EUB6SWP12Y + 0.0478 + 20080526-170000 + + + EUB6SWP13Y + 0.0485 + 20080526-170000 + + + EUB6SWP14Y + 0.0489 + 20080526-170000 + + + EUB6SWP15Y + 0.0491 + 20080526-170000 + + + EUB6SWP16Y + 0.0486 + 20080526-170000 + + + EUB6SWP17Y + 0.0494 + 20080526-170000 + + + EUB6SWP18Y + 0.049 + 20080526-170000 + + + EUB6SWP19Y + 0.049 + 20080526-170000 + + + EUB6SWP20Y + 0.0498 + 20080526-170000 + + + EUB6SWP21Y + 0.0493 + 20080526-170000 + + + EUB6SWP22Y + 0.0496 + 20080526-170000 + + + EUB6SWP23Y + 0.0497 + 20080526-170000 + + + EUB6SWP24Y + 0.0489 + 20080526-170000 + + + EUB6SWP25Y + 0.049 + 20080526-170000 + + + EUB6SWP26Y + 0.0495 + 20080526-170000 + + + EUB6SWP27Y + 0.0494 + 20080526-170000 + + + EUB6SWP28Y + 0.0494 + 20080526-170000 + + + EUB6SWP29Y + 0.049 + 20080526-170000 + + + EUB6SWP30Y + 0.0486 + 20080526-170000 + + + EUB6SWP35Y + 0.049 + 20080526-170000 + + + EUB6SWP40Y + 0.0483 + 20080526-170000 + + + EUB6SWP45Y + 0.048 + 20080526-170000 + + + EUB6SWP50Y + 0.0482 + 20080526-170000 + + + EUB6SWP60Y + 0.0481 + 20080526-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-27.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-27.xml new file mode 100644 index 000000000..6155074f7 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-27.xml @@ -0,0 +1,314 @@ + + + 20080527-170000 + + EUB6FIX6M + 0.0492 + 20080527-170000 + + + ESTRSWP3W + 0.0408 + 20080527-170000 + + + ESTRSWP1W + 0.0402 + 20080527-170000 + + + ESTRSWP2W + 0.0402 + 20080527-170000 + + + ESTRSWP1M + 0.0408 + 20080527-170000 + + + ESTRSWP2M + 0.0402 + 20080527-170000 + + + ESTRSWP3M + 0.0405 + 20080527-170000 + + + ESTRSWP4M + 0.0409 + 20080527-170000 + + + ESTRSWP5M + 0.0414 + 20080527-170000 + + + ESTRSWP6M + 0.0414 + 20080527-170000 + + + ESTRSWP7M + 0.0419 + 20080527-170000 + + + ESTRSWP8M + 0.0415 + 20080527-170000 + + + ESTRSWP9M + 0.0425 + 20080527-170000 + + + ESTRSWP10M + 0.042 + 20080527-170000 + + + ESTRSWP11M + 0.0424 + 20080527-170000 + + + EUB6SWP1Y + 0.0502 + 20080527-170000 + + + ESTRSWP12M + 0.0422 + 20080527-170000 + + + ESTRSWP15M + 0.0427 + 20080527-170000 + + + ESTRSWP18M + 0.0424 + 20080527-170000 + + + EUB6SWP2Y + 0.0484 + 20080527-170000 + + + ESTRSWP2Y + 0.0434 + 20080527-170000 + + + EUB6SWP3Y + 0.0474 + 20080527-170000 + + + ESTRSWP3Y + 0.0424 + 20080527-170000 + + + EUB6SWP4Y + 0.0467 + 20080527-170000 + + + ESTRSWP4Y + 0.0418 + 20080527-170000 + + + EUB6SWP5Y + 0.046 + 20080527-170000 + + + ESTRSWP5Y + 0.0423 + 20080527-170000 + + + EUB6SWP6Y + 0.0462 + 20080527-170000 + + + ESTRSWP6Y + 0.042 + 20080527-170000 + + + EUB6SWP7Y + 0.0461 + 20080527-170000 + + + ESTRSWP7Y + 0.0425 + 20080527-170000 + + + EUB6SWP8Y + 0.0471 + 20080527-170000 + + + ESTRSWP8Y + 0.0435 + 20080527-170000 + + + EUB6SWP9Y + 0.0467 + 20080527-170000 + + + ESTRSWP9Y + 0.0436 + 20080527-170000 + + + EUB6SWP10Y + 0.0473 + 20080527-170000 + + + ESTRSWP10Y + 0.0436 + 20080527-170000 + + + EUB6SWP11Y + 0.0479 + 20080527-170000 + + + EUB6SWP12Y + 0.0482 + 20080527-170000 + + + EUB6SWP13Y + 0.0489 + 20080527-170000 + + + EUB6SWP14Y + 0.0488 + 20080527-170000 + + + EUB6SWP15Y + 0.0489 + 20080527-170000 + + + EUB6SWP16Y + 0.0494 + 20080527-170000 + + + EUB6SWP17Y + 0.0496 + 20080527-170000 + + + EUB6SWP18Y + 0.0496 + 20080527-170000 + + + EUB6SWP19Y + 0.0498 + 20080527-170000 + + + EUB6SWP20Y + 0.0492 + 20080527-170000 + + + EUB6SWP21Y + 0.0493 + 20080527-170000 + + + EUB6SWP22Y + 0.0498 + 20080527-170000 + + + EUB6SWP23Y + 0.05 + 20080527-170000 + + + EUB6SWP24Y + 0.0491 + 20080527-170000 + + + EUB6SWP25Y + 0.0499 + 20080527-170000 + + + EUB6SWP26Y + 0.0497 + 20080527-170000 + + + EUB6SWP27Y + 0.0489 + 20080527-170000 + + + EUB6SWP28Y + 0.0488 + 20080527-170000 + + + EUB6SWP29Y + 0.0494 + 20080527-170000 + + + EUB6SWP30Y + 0.0487 + 20080527-170000 + + + EUB6SWP35Y + 0.0487 + 20080527-170000 + + + EUB6SWP40Y + 0.0482 + 20080527-170000 + + + EUB6SWP45Y + 0.0488 + 20080527-170000 + + + EUB6SWP50Y + 0.0484 + 20080527-170000 + + + EUB6SWP60Y + 0.0475 + 20080527-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-28.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-28.xml new file mode 100644 index 000000000..e4bd3d835 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-28.xml @@ -0,0 +1,344 @@ + + + 20080528-170000 + + EUB6FIX6M + 0.0497 + 20080528-170000 + + + ESTRSWP3W + 0.0402 + 20080528-170000 + + + ESTRSWP1W + 0.0408 + 20080528-170000 + + + ESTRSWP2W + 0.0407 + 20080528-170000 + + + ESTRSWP1M + 0.04 + 20080528-170000 + + + ESTRSWP2M + 0.0404 + 20080528-170000 + + + ESTRSWP3M + 0.0404 + 20080528-170000 + + + ESTRSWP4M + 0.0406 + 20080528-170000 + + + ESTRSWP5M + 0.0412 + 20080528-170000 + + + ESTRSWP6M + 0.0413 + 20080528-170000 + + + ESTRSWP7M + 0.0416 + 20080528-170000 + + + ESTRSWP8M + 0.0415 + 20080528-170000 + + + ESTRSWP9M + 0.0424 + 20080528-170000 + + + ESTRSWP10M + 0.0425 + 20080528-170000 + + + ESTRSWP11M + 0.0422 + 20080528-170000 + + + EUB6SWP1Y + 0.0505 + 20080528-170000 + + + ESTRSWP12M + 0.0427 + 20080528-170000 + + + ESTRSWP15M + 0.0425 + 20080528-170000 + + + ESTRSWP18M + 0.0431 + 20080528-170000 + + + EUB6SWP2Y + 0.0492 + 20080528-170000 + + + ESTRSWP2Y + 0.0432 + 20080528-170000 + + + EUB6SWP3Y + 0.0481 + 20080528-170000 + + + ESTRSWP3Y + 0.0423 + 20080528-170000 + + + EUB6SWP4Y + 0.0473 + 20080528-170000 + + + ESTRSWP4Y + 0.0425 + 20080528-170000 + + + EUB6SWP5Y + 0.047 + 20080528-170000 + + + ESTRSWP5Y + 0.0428 + 20080528-170000 + + + EUB6SWP6Y + 0.0467 + 20080528-170000 + + + ESTRSWP6Y + 0.0433 + 20080528-170000 + + + EUB6SWP7Y + 0.0469 + 20080528-170000 + + + ESTRSWP7Y + 0.0434 + 20080528-170000 + + + EUB6SWP8Y + 0.0474 + 20080528-170000 + + + ESTRSWP8Y + 0.0438 + 20080528-170000 + + + EUB6SWP9Y + 0.0473 + 20080528-170000 + + + ESTRSWP9Y + 0.0444 + 20080528-170000 + + + EUB6SWP10Y + 0.048 + 20080528-170000 + + + ESTRSWP10Y + 0.0451 + 20080528-170000 + + + EUB6SWP11Y + 0.048 + 20080528-170000 + + + ESTRSWP11Y + 0.0449 + 20080528-170000 + + + EUB6SWP12Y + 0.0482 + 20080528-170000 + + + ESTRSWP12Y + 0.0453 + 20080528-170000 + + + EUB6SWP13Y + 0.0494 + 20080528-170000 + + + EUB6SWP14Y + 0.0488 + 20080528-170000 + + + EUB6SWP15Y + 0.0492 + 20080528-170000 + + + ESTRSWP15Y + 0.0463 + 20080528-170000 + + + EUB6SWP16Y + 0.0494 + 20080528-170000 + + + EUB6SWP17Y + 0.0495 + 20080528-170000 + + + EUB6SWP18Y + 0.0498 + 20080528-170000 + + + EUB6SWP19Y + 0.0504 + 20080528-170000 + + + EUB6SWP20Y + 0.0502 + 20080528-170000 + + + ESTRSWP20Y + 0.0476 + 20080528-170000 + + + EUB6SWP21Y + 0.0504 + 20080528-170000 + + + EUB6SWP22Y + 0.05 + 20080528-170000 + + + EUB6SWP23Y + 0.0498 + 20080528-170000 + + + EUB6SWP24Y + 0.0505 + 20080528-170000 + + + EUB6SWP25Y + 0.0503 + 20080528-170000 + + + ESTRSWP25Y + 0.0478 + 20080528-170000 + + + EUB6SWP26Y + 0.0503 + 20080528-170000 + + + EUB6SWP27Y + 0.0496 + 20080528-170000 + + + EUB6SWP28Y + 0.0497 + 20080528-170000 + + + EUB6SWP29Y + 0.0493 + 20080528-170000 + + + EUB6SWP30Y + 0.0498 + 20080528-170000 + + + ESTRSWP30Y + 0.047 + 20080528-170000 + + + EUB6SWP35Y + 0.0488 + 20080528-170000 + + + EUB6SWP40Y + 0.0493 + 20080528-170000 + + + EUB6SWP45Y + 0.0489 + 20080528-170000 + + + EUB6SWP50Y + 0.0489 + 20080528-170000 + + + EUB6SWP60Y + 0.0484 + 20080528-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-29.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-29.xml new file mode 100644 index 000000000..408482cec --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-29.xml @@ -0,0 +1,344 @@ + + + 20080529-170000 + + EUB6FIX6M + 0.0492 + 20080529-170000 + + + ESTRSWP3W + 0.0403 + 20080529-170000 + + + ESTRSWP1W + 0.0395 + 20080529-170000 + + + ESTRSWP2W + 0.0404 + 20080529-170000 + + + ESTRSWP1M + 0.0408 + 20080529-170000 + + + ESTRSWP2M + 0.0404 + 20080529-170000 + + + ESTRSWP3M + 0.0404 + 20080529-170000 + + + ESTRSWP4M + 0.0413 + 20080529-170000 + + + ESTRSWP5M + 0.0414 + 20080529-170000 + + + ESTRSWP6M + 0.0416 + 20080529-170000 + + + ESTRSWP7M + 0.0424 + 20080529-170000 + + + ESTRSWP8M + 0.0425 + 20080529-170000 + + + ESTRSWP9M + 0.0428 + 20080529-170000 + + + ESTRSWP10M + 0.0428 + 20080529-170000 + + + ESTRSWP11M + 0.0436 + 20080529-170000 + + + EUB6SWP1Y + 0.0514 + 20080529-170000 + + + ESTRSWP12M + 0.0437 + 20080529-170000 + + + ESTRSWP15M + 0.0439 + 20080529-170000 + + + ESTRSWP18M + 0.0443 + 20080529-170000 + + + EUB6SWP2Y + 0.0499 + 20080529-170000 + + + ESTRSWP2Y + 0.0445 + 20080529-170000 + + + EUB6SWP3Y + 0.0487 + 20080529-170000 + + + ESTRSWP3Y + 0.0437 + 20080529-170000 + + + EUB6SWP4Y + 0.0482 + 20080529-170000 + + + ESTRSWP4Y + 0.0434 + 20080529-170000 + + + EUB6SWP5Y + 0.0473 + 20080529-170000 + + + ESTRSWP5Y + 0.0436 + 20080529-170000 + + + EUB6SWP6Y + 0.0476 + 20080529-170000 + + + ESTRSWP6Y + 0.0436 + 20080529-170000 + + + EUB6SWP7Y + 0.0479 + 20080529-170000 + + + ESTRSWP7Y + 0.0438 + 20080529-170000 + + + EUB6SWP8Y + 0.048 + 20080529-170000 + + + ESTRSWP8Y + 0.0445 + 20080529-170000 + + + EUB6SWP9Y + 0.0476 + 20080529-170000 + + + ESTRSWP9Y + 0.0442 + 20080529-170000 + + + EUB6SWP10Y + 0.0482 + 20080529-170000 + + + ESTRSWP10Y + 0.045 + 20080529-170000 + + + EUB6SWP11Y + 0.0494 + 20080529-170000 + + + ESTRSWP11Y + 0.0456 + 20080529-170000 + + + EUB6SWP12Y + 0.0496 + 20080529-170000 + + + ESTRSWP12Y + 0.0458 + 20080529-170000 + + + EUB6SWP13Y + 0.0491 + 20080529-170000 + + + EUB6SWP14Y + 0.0503 + 20080529-170000 + + + EUB6SWP15Y + 0.0502 + 20080529-170000 + + + ESTRSWP15Y + 0.0472 + 20080529-170000 + + + EUB6SWP16Y + 0.0497 + 20080529-170000 + + + EUB6SWP17Y + 0.0504 + 20080529-170000 + + + EUB6SWP18Y + 0.0507 + 20080529-170000 + + + EUB6SWP19Y + 0.0504 + 20080529-170000 + + + EUB6SWP20Y + 0.0504 + 20080529-170000 + + + ESTRSWP20Y + 0.0478 + 20080529-170000 + + + EUB6SWP21Y + 0.0501 + 20080529-170000 + + + EUB6SWP22Y + 0.0504 + 20080529-170000 + + + EUB6SWP23Y + 0.05 + 20080529-170000 + + + EUB6SWP24Y + 0.0503 + 20080529-170000 + + + EUB6SWP25Y + 0.0502 + 20080529-170000 + + + ESTRSWP25Y + 0.0481 + 20080529-170000 + + + EUB6SWP26Y + 0.0502 + 20080529-170000 + + + EUB6SWP27Y + 0.05 + 20080529-170000 + + + EUB6SWP28Y + 0.0508 + 20080529-170000 + + + EUB6SWP29Y + 0.0505 + 20080529-170000 + + + EUB6SWP30Y + 0.0502 + 20080529-170000 + + + ESTRSWP30Y + 0.0475 + 20080529-170000 + + + EUB6SWP35Y + 0.0501 + 20080529-170000 + + + EUB6SWP40Y + 0.0492 + 20080529-170000 + + + EUB6SWP45Y + 0.0497 + 20080529-170000 + + + EUB6SWP50Y + 0.0489 + 20080529-170000 + + + EUB6SWP60Y + 0.0489 + 20080529-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-30.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-30.xml new file mode 100644 index 000000000..8f8303459 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-30.xml @@ -0,0 +1,344 @@ + + + 20080530-170000 + + EUB6FIX6M + 0.0494 + 20080530-170000 + + + ESTRSWP3W + 0.0398 + 20080530-170000 + + + ESTRSWP1W + 0.0394 + 20080530-170000 + + + ESTRSWP2W + 0.0403 + 20080530-170000 + + + ESTRSWP1M + 0.04 + 20080530-170000 + + + ESTRSWP2M + 0.0402 + 20080530-170000 + + + ESTRSWP3M + 0.0411 + 20080530-170000 + + + ESTRSWP4M + 0.041 + 20080530-170000 + + + ESTRSWP5M + 0.0416 + 20080530-170000 + + + ESTRSWP6M + 0.0418 + 20080530-170000 + + + ESTRSWP7M + 0.0423 + 20080530-170000 + + + ESTRSWP8M + 0.0428 + 20080530-170000 + + + ESTRSWP9M + 0.0423 + 20080530-170000 + + + ESTRSWP10M + 0.0431 + 20080530-170000 + + + ESTRSWP11M + 0.0434 + 20080530-170000 + + + EUB6SWP1Y + 0.0514 + 20080530-170000 + + + ESTRSWP12M + 0.0433 + 20080530-170000 + + + ESTRSWP15M + 0.0434 + 20080530-170000 + + + ESTRSWP18M + 0.0443 + 20080530-170000 + + + EUB6SWP2Y + 0.0502 + 20080530-170000 + + + ESTRSWP2Y + 0.0441 + 20080530-170000 + + + EUB6SWP3Y + 0.0489 + 20080530-170000 + + + ESTRSWP3Y + 0.0429 + 20080530-170000 + + + EUB6SWP4Y + 0.048 + 20080530-170000 + + + ESTRSWP4Y + 0.0435 + 20080530-170000 + + + EUB6SWP5Y + 0.0475 + 20080530-170000 + + + ESTRSWP5Y + 0.0436 + 20080530-170000 + + + EUB6SWP6Y + 0.0472 + 20080530-170000 + + + ESTRSWP6Y + 0.0431 + 20080530-170000 + + + EUB6SWP7Y + 0.0477 + 20080530-170000 + + + ESTRSWP7Y + 0.0437 + 20080530-170000 + + + EUB6SWP8Y + 0.0479 + 20080530-170000 + + + ESTRSWP8Y + 0.0437 + 20080530-170000 + + + EUB6SWP9Y + 0.048 + 20080530-170000 + + + ESTRSWP9Y + 0.0444 + 20080530-170000 + + + EUB6SWP10Y + 0.0479 + 20080530-170000 + + + ESTRSWP10Y + 0.0448 + 20080530-170000 + + + EUB6SWP11Y + 0.0484 + 20080530-170000 + + + ESTRSWP11Y + 0.0459 + 20080530-170000 + + + EUB6SWP12Y + 0.0493 + 20080530-170000 + + + ESTRSWP12Y + 0.0465 + 20080530-170000 + + + EUB6SWP13Y + 0.0492 + 20080530-170000 + + + EUB6SWP14Y + 0.0494 + 20080530-170000 + + + EUB6SWP15Y + 0.0502 + 20080530-170000 + + + ESTRSWP15Y + 0.0465 + 20080530-170000 + + + EUB6SWP16Y + 0.0504 + 20080530-170000 + + + EUB6SWP17Y + 0.0503 + 20080530-170000 + + + EUB6SWP18Y + 0.0503 + 20080530-170000 + + + EUB6SWP19Y + 0.05 + 20080530-170000 + + + EUB6SWP20Y + 0.0501 + 20080530-170000 + + + ESTRSWP20Y + 0.0472 + 20080530-170000 + + + EUB6SWP21Y + 0.0505 + 20080530-170000 + + + EUB6SWP22Y + 0.0506 + 20080530-170000 + + + EUB6SWP23Y + 0.0498 + 20080530-170000 + + + EUB6SWP24Y + 0.0507 + 20080530-170000 + + + EUB6SWP25Y + 0.0506 + 20080530-170000 + + + ESTRSWP25Y + 0.0472 + 20080530-170000 + + + EUB6SWP26Y + 0.0504 + 20080530-170000 + + + EUB6SWP27Y + 0.0498 + 20080530-170000 + + + EUB6SWP28Y + 0.0504 + 20080530-170000 + + + EUB6SWP29Y + 0.0499 + 20080530-170000 + + + EUB6SWP30Y + 0.0497 + 20080530-170000 + + + ESTRSWP30Y + 0.0474 + 20080530-170000 + + + EUB6SWP35Y + 0.0497 + 20080530-170000 + + + EUB6SWP40Y + 0.0491 + 20080530-170000 + + + EUB6SWP45Y + 0.0492 + 20080530-170000 + + + EUB6SWP50Y + 0.0493 + 20080530-170000 + + + EUB6SWP60Y + 0.0486 + 20080530-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-02.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-02.xml new file mode 100644 index 000000000..985963cb7 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-02.xml @@ -0,0 +1,344 @@ + + + 20080602-170000 + + EUB6FIX6M + 0.0496 + 20080602-170000 + + + ESTRSWP3W + 0.0403 + 20080602-170000 + + + ESTRSWP1W + 0.0397 + 20080602-170000 + + + ESTRSWP2W + 0.04 + 20080602-170000 + + + ESTRSWP1M + 0.0405 + 20080602-170000 + + + ESTRSWP2M + 0.041 + 20080602-170000 + + + ESTRSWP3M + 0.0405 + 20080602-170000 + + + ESTRSWP4M + 0.0411 + 20080602-170000 + + + ESTRSWP5M + 0.0412 + 20080602-170000 + + + ESTRSWP6M + 0.0419 + 20080602-170000 + + + ESTRSWP7M + 0.0421 + 20080602-170000 + + + ESTRSWP8M + 0.042 + 20080602-170000 + + + ESTRSWP9M + 0.0426 + 20080602-170000 + + + ESTRSWP10M + 0.043 + 20080602-170000 + + + ESTRSWP11M + 0.0425 + 20080602-170000 + + + EUB6SWP1Y + 0.0505 + 20080602-170000 + + + ESTRSWP12M + 0.0427 + 20080602-170000 + + + ESTRSWP15M + 0.0431 + 20080602-170000 + + + ESTRSWP18M + 0.0428 + 20080602-170000 + + + EUB6SWP2Y + 0.0496 + 20080602-170000 + + + ESTRSWP2Y + 0.0429 + 20080602-170000 + + + EUB6SWP3Y + 0.0478 + 20080602-170000 + + + ESTRSWP3Y + 0.043 + 20080602-170000 + + + EUB6SWP4Y + 0.0469 + 20080602-170000 + + + ESTRSWP4Y + 0.0424 + 20080602-170000 + + + EUB6SWP5Y + 0.0467 + 20080602-170000 + + + ESTRSWP5Y + 0.0427 + 20080602-170000 + + + EUB6SWP6Y + 0.046 + 20080602-170000 + + + ESTRSWP6Y + 0.0424 + 20080602-170000 + + + EUB6SWP7Y + 0.0468 + 20080602-170000 + + + ESTRSWP7Y + 0.0425 + 20080602-170000 + + + EUB6SWP8Y + 0.0464 + 20080602-170000 + + + ESTRSWP8Y + 0.0434 + 20080602-170000 + + + EUB6SWP9Y + 0.0471 + 20080602-170000 + + + ESTRSWP9Y + 0.0439 + 20080602-170000 + + + EUB6SWP10Y + 0.0471 + 20080602-170000 + + + ESTRSWP10Y + 0.0445 + 20080602-170000 + + + EUB6SWP11Y + 0.0483 + 20080602-170000 + + + ESTRSWP11Y + 0.0448 + 20080602-170000 + + + EUB6SWP12Y + 0.0483 + 20080602-170000 + + + ESTRSWP12Y + 0.0457 + 20080602-170000 + + + EUB6SWP13Y + 0.0486 + 20080602-170000 + + + EUB6SWP14Y + 0.0485 + 20080602-170000 + + + EUB6SWP15Y + 0.0493 + 20080602-170000 + + + ESTRSWP15Y + 0.0461 + 20080602-170000 + + + EUB6SWP16Y + 0.0488 + 20080602-170000 + + + EUB6SWP17Y + 0.0489 + 20080602-170000 + + + EUB6SWP18Y + 0.0493 + 20080602-170000 + + + EUB6SWP19Y + 0.049 + 20080602-170000 + + + EUB6SWP20Y + 0.0498 + 20080602-170000 + + + ESTRSWP20Y + 0.0462 + 20080602-170000 + + + EUB6SWP21Y + 0.0491 + 20080602-170000 + + + EUB6SWP22Y + 0.0494 + 20080602-170000 + + + EUB6SWP23Y + 0.0499 + 20080602-170000 + + + EUB6SWP24Y + 0.049 + 20080602-170000 + + + EUB6SWP25Y + 0.0491 + 20080602-170000 + + + ESTRSWP25Y + 0.047 + 20080602-170000 + + + EUB6SWP26Y + 0.0498 + 20080602-170000 + + + EUB6SWP27Y + 0.0493 + 20080602-170000 + + + EUB6SWP28Y + 0.0489 + 20080602-170000 + + + EUB6SWP29Y + 0.0491 + 20080602-170000 + + + EUB6SWP30Y + 0.0489 + 20080602-170000 + + + ESTRSWP30Y + 0.0468 + 20080602-170000 + + + EUB6SWP35Y + 0.0486 + 20080602-170000 + + + EUB6SWP40Y + 0.0485 + 20080602-170000 + + + EUB6SWP45Y + 0.048 + 20080602-170000 + + + EUB6SWP50Y + 0.0481 + 20080602-170000 + + + EUB6SWP60Y + 0.0476 + 20080602-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-03.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-03.xml new file mode 100644 index 000000000..f6f309249 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-03.xml @@ -0,0 +1,344 @@ + + + 20080603-170000 + + EUB6FIX6M + 0.0494 + 20080603-170000 + + + ESTRSWP3W + 0.04 + 20080603-170000 + + + ESTRSWP1W + 0.0398 + 20080603-170000 + + + ESTRSWP2W + 0.0397 + 20080603-170000 + + + ESTRSWP1M + 0.04 + 20080603-170000 + + + ESTRSWP2M + 0.0409 + 20080603-170000 + + + ESTRSWP3M + 0.0409 + 20080603-170000 + + + ESTRSWP4M + 0.0412 + 20080603-170000 + + + ESTRSWP5M + 0.0418 + 20080603-170000 + + + ESTRSWP6M + 0.042 + 20080603-170000 + + + ESTRSWP7M + 0.0419 + 20080603-170000 + + + ESTRSWP8M + 0.0424 + 20080603-170000 + + + ESTRSWP9M + 0.0427 + 20080603-170000 + + + ESTRSWP10M + 0.0428 + 20080603-170000 + + + ESTRSWP11M + 0.0435 + 20080603-170000 + + + EUB6SWP1Y + 0.0512 + 20080603-170000 + + + ESTRSWP12M + 0.0434 + 20080603-170000 + + + ESTRSWP15M + 0.0442 + 20080603-170000 + + + ESTRSWP18M + 0.0443 + 20080603-170000 + + + EUB6SWP2Y + 0.0504 + 20080603-170000 + + + ESTRSWP2Y + 0.0438 + 20080603-170000 + + + EUB6SWP3Y + 0.0492 + 20080603-170000 + + + ESTRSWP3Y + 0.0436 + 20080603-170000 + + + EUB6SWP4Y + 0.0478 + 20080603-170000 + + + ESTRSWP4Y + 0.0437 + 20080603-170000 + + + EUB6SWP5Y + 0.047 + 20080603-170000 + + + ESTRSWP5Y + 0.0434 + 20080603-170000 + + + EUB6SWP6Y + 0.0468 + 20080603-170000 + + + ESTRSWP6Y + 0.0439 + 20080603-170000 + + + EUB6SWP7Y + 0.0472 + 20080603-170000 + + + ESTRSWP7Y + 0.0436 + 20080603-170000 + + + EUB6SWP8Y + 0.0473 + 20080603-170000 + + + ESTRSWP8Y + 0.0436 + 20080603-170000 + + + EUB6SWP9Y + 0.0477 + 20080603-170000 + + + ESTRSWP9Y + 0.0441 + 20080603-170000 + + + EUB6SWP10Y + 0.0479 + 20080603-170000 + + + ESTRSWP10Y + 0.0448 + 20080603-170000 + + + EUB6SWP11Y + 0.0488 + 20080603-170000 + + + ESTRSWP11Y + 0.045 + 20080603-170000 + + + EUB6SWP12Y + 0.049 + 20080603-170000 + + + ESTRSWP12Y + 0.0463 + 20080603-170000 + + + EUB6SWP13Y + 0.0488 + 20080603-170000 + + + EUB6SWP14Y + 0.0492 + 20080603-170000 + + + EUB6SWP15Y + 0.0496 + 20080603-170000 + + + ESTRSWP15Y + 0.0468 + 20080603-170000 + + + EUB6SWP16Y + 0.0496 + 20080603-170000 + + + EUB6SWP17Y + 0.0501 + 20080603-170000 + + + EUB6SWP18Y + 0.0499 + 20080603-170000 + + + EUB6SWP19Y + 0.0499 + 20080603-170000 + + + EUB6SWP20Y + 0.0503 + 20080603-170000 + + + ESTRSWP20Y + 0.0472 + 20080603-170000 + + + EUB6SWP21Y + 0.0505 + 20080603-170000 + + + EUB6SWP22Y + 0.0497 + 20080603-170000 + + + EUB6SWP23Y + 0.0496 + 20080603-170000 + + + EUB6SWP24Y + 0.0504 + 20080603-170000 + + + EUB6SWP25Y + 0.0502 + 20080603-170000 + + + ESTRSWP25Y + 0.0474 + 20080603-170000 + + + EUB6SWP26Y + 0.0503 + 20080603-170000 + + + EUB6SWP27Y + 0.0503 + 20080603-170000 + + + EUB6SWP28Y + 0.0496 + 20080603-170000 + + + EUB6SWP29Y + 0.0495 + 20080603-170000 + + + EUB6SWP30Y + 0.0498 + 20080603-170000 + + + ESTRSWP30Y + 0.0468 + 20080603-170000 + + + EUB6SWP35Y + 0.0495 + 20080603-170000 + + + EUB6SWP40Y + 0.0488 + 20080603-170000 + + + EUB6SWP45Y + 0.0494 + 20080603-170000 + + + EUB6SWP50Y + 0.0482 + 20080603-170000 + + + EUB6SWP60Y + 0.0481 + 20080603-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-04.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-04.xml new file mode 100644 index 000000000..c18bb808b --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-04.xml @@ -0,0 +1,344 @@ + + + 20080604-170000 + + EUB6FIX6M + 0.0489 + 20080604-170000 + + + ESTRSWP3W + 0.0401 + 20080604-170000 + + + ESTRSWP1W + 0.0395 + 20080604-170000 + + + ESTRSWP2W + 0.0395 + 20080604-170000 + + + ESTRSWP1M + 0.0402 + 20080604-170000 + + + ESTRSWP2M + 0.04 + 20080604-170000 + + + ESTRSWP3M + 0.0408 + 20080604-170000 + + + ESTRSWP4M + 0.0413 + 20080604-170000 + + + ESTRSWP5M + 0.0418 + 20080604-170000 + + + ESTRSWP6M + 0.042 + 20080604-170000 + + + ESTRSWP7M + 0.0423 + 20080604-170000 + + + ESTRSWP8M + 0.0424 + 20080604-170000 + + + ESTRSWP9M + 0.0428 + 20080604-170000 + + + ESTRSWP10M + 0.0426 + 20080604-170000 + + + ESTRSWP11M + 0.0429 + 20080604-170000 + + + EUB6SWP1Y + 0.0508 + 20080604-170000 + + + ESTRSWP12M + 0.0435 + 20080604-170000 + + + ESTRSWP15M + 0.0429 + 20080604-170000 + + + ESTRSWP18M + 0.0436 + 20080604-170000 + + + EUB6SWP2Y + 0.0494 + 20080604-170000 + + + ESTRSWP2Y + 0.0437 + 20080604-170000 + + + EUB6SWP3Y + 0.0485 + 20080604-170000 + + + ESTRSWP3Y + 0.0427 + 20080604-170000 + + + EUB6SWP4Y + 0.0476 + 20080604-170000 + + + ESTRSWP4Y + 0.043 + 20080604-170000 + + + EUB6SWP5Y + 0.0467 + 20080604-170000 + + + ESTRSWP5Y + 0.0431 + 20080604-170000 + + + EUB6SWP6Y + 0.0465 + 20080604-170000 + + + ESTRSWP6Y + 0.0428 + 20080604-170000 + + + EUB6SWP7Y + 0.0465 + 20080604-170000 + + + ESTRSWP7Y + 0.0435 + 20080604-170000 + + + EUB6SWP8Y + 0.0472 + 20080604-170000 + + + ESTRSWP8Y + 0.0434 + 20080604-170000 + + + EUB6SWP9Y + 0.0477 + 20080604-170000 + + + ESTRSWP9Y + 0.044 + 20080604-170000 + + + EUB6SWP10Y + 0.0478 + 20080604-170000 + + + ESTRSWP10Y + 0.0444 + 20080604-170000 + + + EUB6SWP11Y + 0.0479 + 20080604-170000 + + + ESTRSWP11Y + 0.0452 + 20080604-170000 + + + EUB6SWP12Y + 0.0485 + 20080604-170000 + + + ESTRSWP12Y + 0.0455 + 20080604-170000 + + + EUB6SWP13Y + 0.0487 + 20080604-170000 + + + EUB6SWP14Y + 0.0495 + 20080604-170000 + + + EUB6SWP15Y + 0.0495 + 20080604-170000 + + + ESTRSWP15Y + 0.0469 + 20080604-170000 + + + EUB6SWP16Y + 0.0498 + 20080604-170000 + + + EUB6SWP17Y + 0.0501 + 20080604-170000 + + + EUB6SWP18Y + 0.0495 + 20080604-170000 + + + EUB6SWP19Y + 0.0499 + 20080604-170000 + + + EUB6SWP20Y + 0.0498 + 20080604-170000 + + + ESTRSWP20Y + 0.0469 + 20080604-170000 + + + EUB6SWP21Y + 0.0494 + 20080604-170000 + + + EUB6SWP22Y + 0.0496 + 20080604-170000 + + + EUB6SWP23Y + 0.0497 + 20080604-170000 + + + EUB6SWP24Y + 0.0492 + 20080604-170000 + + + EUB6SWP25Y + 0.05 + 20080604-170000 + + + ESTRSWP25Y + 0.047 + 20080604-170000 + + + EUB6SWP26Y + 0.0491 + 20080604-170000 + + + EUB6SWP27Y + 0.0498 + 20080604-170000 + + + EUB6SWP28Y + 0.0498 + 20080604-170000 + + + EUB6SWP29Y + 0.0498 + 20080604-170000 + + + EUB6SWP30Y + 0.0491 + 20080604-170000 + + + ESTRSWP30Y + 0.0464 + 20080604-170000 + + + EUB6SWP35Y + 0.0485 + 20080604-170000 + + + EUB6SWP40Y + 0.0489 + 20080604-170000 + + + EUB6SWP45Y + 0.049 + 20080604-170000 + + + EUB6SWP50Y + 0.0486 + 20080604-170000 + + + EUB6SWP60Y + 0.0484 + 20080604-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-05.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-05.xml new file mode 100644 index 000000000..4c00aec44 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-05.xml @@ -0,0 +1,344 @@ + + + 20080605-170000 + + EUB6FIX6M + 0.049 + 20080605-170000 + + + ESTRSWP3W + 0.04 + 20080605-170000 + + + ESTRSWP1W + 0.0398 + 20080605-170000 + + + ESTRSWP2W + 0.0402 + 20080605-170000 + + + ESTRSWP1M + 0.04 + 20080605-170000 + + + ESTRSWP2M + 0.0409 + 20080605-170000 + + + ESTRSWP3M + 0.0423 + 20080605-170000 + + + ESTRSWP4M + 0.0425 + 20080605-170000 + + + ESTRSWP5M + 0.0431 + 20080605-170000 + + + ESTRSWP6M + 0.0433 + 20080605-170000 + + + ESTRSWP7M + 0.0438 + 20080605-170000 + + + ESTRSWP8M + 0.0444 + 20080605-170000 + + + ESTRSWP9M + 0.0451 + 20080605-170000 + + + ESTRSWP10M + 0.0458 + 20080605-170000 + + + ESTRSWP11M + 0.0459 + 20080605-170000 + + + EUB6SWP1Y + 0.0529 + 20080605-170000 + + + ESTRSWP12M + 0.046 + 20080605-170000 + + + ESTRSWP15M + 0.0465 + 20080605-170000 + + + ESTRSWP18M + 0.0468 + 20080605-170000 + + + EUB6SWP2Y + 0.0525 + 20080605-170000 + + + ESTRSWP2Y + 0.0461 + 20080605-170000 + + + EUB6SWP3Y + 0.0505 + 20080605-170000 + + + ESTRSWP3Y + 0.0455 + 20080605-170000 + + + EUB6SWP4Y + 0.0492 + 20080605-170000 + + + ESTRSWP4Y + 0.0444 + 20080605-170000 + + + EUB6SWP5Y + 0.0484 + 20080605-170000 + + + ESTRSWP5Y + 0.0439 + 20080605-170000 + + + EUB6SWP6Y + 0.0484 + 20080605-170000 + + + ESTRSWP6Y + 0.0441 + 20080605-170000 + + + EUB6SWP7Y + 0.0478 + 20080605-170000 + + + ESTRSWP7Y + 0.0442 + 20080605-170000 + + + EUB6SWP8Y + 0.0477 + 20080605-170000 + + + ESTRSWP8Y + 0.0447 + 20080605-170000 + + + EUB6SWP9Y + 0.048 + 20080605-170000 + + + ESTRSWP9Y + 0.0444 + 20080605-170000 + + + EUB6SWP10Y + 0.0487 + 20080605-170000 + + + ESTRSWP10Y + 0.0446 + 20080605-170000 + + + EUB6SWP11Y + 0.0487 + 20080605-170000 + + + ESTRSWP11Y + 0.0453 + 20080605-170000 + + + EUB6SWP12Y + 0.0489 + 20080605-170000 + + + ESTRSWP12Y + 0.0462 + 20080605-170000 + + + EUB6SWP13Y + 0.049 + 20080605-170000 + + + EUB6SWP14Y + 0.0493 + 20080605-170000 + + + EUB6SWP15Y + 0.0497 + 20080605-170000 + + + ESTRSWP15Y + 0.046 + 20080605-170000 + + + EUB6SWP16Y + 0.0493 + 20080605-170000 + + + EUB6SWP17Y + 0.0492 + 20080605-170000 + + + EUB6SWP18Y + 0.0493 + 20080605-170000 + + + EUB6SWP19Y + 0.0498 + 20080605-170000 + + + EUB6SWP20Y + 0.05 + 20080605-170000 + + + ESTRSWP20Y + 0.0464 + 20080605-170000 + + + EUB6SWP21Y + 0.0491 + 20080605-170000 + + + EUB6SWP22Y + 0.0494 + 20080605-170000 + + + EUB6SWP23Y + 0.0491 + 20080605-170000 + + + EUB6SWP24Y + 0.0496 + 20080605-170000 + + + EUB6SWP25Y + 0.0496 + 20080605-170000 + + + ESTRSWP25Y + 0.047 + 20080605-170000 + + + EUB6SWP26Y + 0.0493 + 20080605-170000 + + + EUB6SWP27Y + 0.0489 + 20080605-170000 + + + EUB6SWP28Y + 0.0486 + 20080605-170000 + + + EUB6SWP29Y + 0.0489 + 20080605-170000 + + + EUB6SWP30Y + 0.0484 + 20080605-170000 + + + ESTRSWP30Y + 0.0461 + 20080605-170000 + + + EUB6SWP35Y + 0.0486 + 20080605-170000 + + + EUB6SWP40Y + 0.0478 + 20080605-170000 + + + EUB6SWP45Y + 0.0488 + 20080605-170000 + + + EUB6SWP50Y + 0.0473 + 20080605-170000 + + + EUB6SWP60Y + 0.0471 + 20080605-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-06.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-06.xml new file mode 100644 index 000000000..34a7d38cf --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-06.xml @@ -0,0 +1,344 @@ + + + 20080606-170000 + + EUB6FIX6M + 0.0507 + 20080606-170000 + + + ESTRSWP3W + 0.0403 + 20080606-170000 + + + ESTRSWP1W + 0.0406 + 20080606-170000 + + + ESTRSWP2W + 0.0402 + 20080606-170000 + + + ESTRSWP1M + 0.0403 + 20080606-170000 + + + ESTRSWP2M + 0.0414 + 20080606-170000 + + + ESTRSWP3M + 0.042 + 20080606-170000 + + + ESTRSWP4M + 0.0426 + 20080606-170000 + + + ESTRSWP5M + 0.043 + 20080606-170000 + + + ESTRSWP6M + 0.0438 + 20080606-170000 + + + ESTRSWP7M + 0.0446 + 20080606-170000 + + + ESTRSWP8M + 0.0452 + 20080606-170000 + + + ESTRSWP9M + 0.0454 + 20080606-170000 + + + ESTRSWP10M + 0.0453 + 20080606-170000 + + + ESTRSWP11M + 0.0459 + 20080606-170000 + + + EUB6SWP1Y + 0.0541 + 20080606-170000 + + + ESTRSWP12M + 0.0467 + 20080606-170000 + + + ESTRSWP15M + 0.0464 + 20080606-170000 + + + ESTRSWP18M + 0.0469 + 20080606-170000 + + + EUB6SWP2Y + 0.0536 + 20080606-170000 + + + ESTRSWP2Y + 0.0469 + 20080606-170000 + + + EUB6SWP3Y + 0.0522 + 20080606-170000 + + + ESTRSWP3Y + 0.0465 + 20080606-170000 + + + EUB6SWP4Y + 0.0508 + 20080606-170000 + + + ESTRSWP4Y + 0.0461 + 20080606-170000 + + + EUB6SWP5Y + 0.0489 + 20080606-170000 + + + ESTRSWP5Y + 0.0449 + 20080606-170000 + + + EUB6SWP6Y + 0.0481 + 20080606-170000 + + + ESTRSWP6Y + 0.0448 + 20080606-170000 + + + EUB6SWP7Y + 0.0486 + 20080606-170000 + + + ESTRSWP7Y + 0.0442 + 20080606-170000 + + + EUB6SWP8Y + 0.0478 + 20080606-170000 + + + ESTRSWP8Y + 0.044 + 20080606-170000 + + + EUB6SWP9Y + 0.0479 + 20080606-170000 + + + ESTRSWP9Y + 0.0442 + 20080606-170000 + + + EUB6SWP10Y + 0.0479 + 20080606-170000 + + + ESTRSWP10Y + 0.0441 + 20080606-170000 + + + EUB6SWP11Y + 0.0482 + 20080606-170000 + + + ESTRSWP11Y + 0.0446 + 20080606-170000 + + + EUB6SWP12Y + 0.0481 + 20080606-170000 + + + ESTRSWP12Y + 0.0455 + 20080606-170000 + + + EUB6SWP13Y + 0.0485 + 20080606-170000 + + + EUB6SWP14Y + 0.0484 + 20080606-170000 + + + EUB6SWP15Y + 0.0485 + 20080606-170000 + + + ESTRSWP15Y + 0.0457 + 20080606-170000 + + + EUB6SWP16Y + 0.0482 + 20080606-170000 + + + EUB6SWP17Y + 0.0492 + 20080606-170000 + + + EUB6SWP18Y + 0.0486 + 20080606-170000 + + + EUB6SWP19Y + 0.0487 + 20080606-170000 + + + EUB6SWP20Y + 0.0481 + 20080606-170000 + + + ESTRSWP20Y + 0.0453 + 20080606-170000 + + + EUB6SWP21Y + 0.049 + 20080606-170000 + + + EUB6SWP22Y + 0.0482 + 20080606-170000 + + + EUB6SWP23Y + 0.0487 + 20080606-170000 + + + EUB6SWP24Y + 0.0486 + 20080606-170000 + + + EUB6SWP25Y + 0.0482 + 20080606-170000 + + + ESTRSWP25Y + 0.0458 + 20080606-170000 + + + EUB6SWP26Y + 0.048 + 20080606-170000 + + + EUB6SWP27Y + 0.0482 + 20080606-170000 + + + EUB6SWP28Y + 0.0484 + 20080606-170000 + + + EUB6SWP29Y + 0.0483 + 20080606-170000 + + + EUB6SWP30Y + 0.0472 + 20080606-170000 + + + ESTRSWP30Y + 0.045 + 20080606-170000 + + + EUB6SWP35Y + 0.0473 + 20080606-170000 + + + EUB6SWP40Y + 0.047 + 20080606-170000 + + + EUB6SWP45Y + 0.047 + 20080606-170000 + + + EUB6SWP50Y + 0.0462 + 20080606-170000 + + + EUB6SWP60Y + 0.046 + 20080606-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-09.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-09.xml new file mode 100644 index 000000000..216d3c02a --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-09.xml @@ -0,0 +1,344 @@ + + + 20080609-170000 + + EUB6FIX6M + 0.0515 + 20080609-170000 + + + ESTRSWP3W + 0.0406 + 20080609-170000 + + + ESTRSWP1W + 0.04 + 20080609-170000 + + + ESTRSWP2W + 0.0402 + 20080609-170000 + + + ESTRSWP1M + 0.0404 + 20080609-170000 + + + ESTRSWP2M + 0.0417 + 20080609-170000 + + + ESTRSWP3M + 0.042 + 20080609-170000 + + + ESTRSWP4M + 0.0427 + 20080609-170000 + + + ESTRSWP5M + 0.0436 + 20080609-170000 + + + ESTRSWP6M + 0.0441 + 20080609-170000 + + + ESTRSWP7M + 0.0448 + 20080609-170000 + + + ESTRSWP8M + 0.0452 + 20080609-170000 + + + ESTRSWP9M + 0.0459 + 20080609-170000 + + + ESTRSWP10M + 0.0458 + 20080609-170000 + + + ESTRSWP11M + 0.0462 + 20080609-170000 + + + EUB6SWP1Y + 0.0543 + 20080609-170000 + + + ESTRSWP12M + 0.0467 + 20080609-170000 + + + ESTRSWP15M + 0.0469 + 20080609-170000 + + + ESTRSWP18M + 0.0474 + 20080609-170000 + + + EUB6SWP2Y + 0.0552 + 20080609-170000 + + + ESTRSWP2Y + 0.0486 + 20080609-170000 + + + EUB6SWP3Y + 0.0538 + 20080609-170000 + + + ESTRSWP3Y + 0.0479 + 20080609-170000 + + + EUB6SWP4Y + 0.0526 + 20080609-170000 + + + ESTRSWP4Y + 0.0472 + 20080609-170000 + + + EUB6SWP5Y + 0.0509 + 20080609-170000 + + + ESTRSWP5Y + 0.0472 + 20080609-170000 + + + EUB6SWP6Y + 0.0498 + 20080609-170000 + + + ESTRSWP6Y + 0.0464 + 20080609-170000 + + + EUB6SWP7Y + 0.0495 + 20080609-170000 + + + ESTRSWP7Y + 0.0458 + 20080609-170000 + + + EUB6SWP8Y + 0.0488 + 20080609-170000 + + + ESTRSWP8Y + 0.0458 + 20080609-170000 + + + EUB6SWP9Y + 0.0486 + 20080609-170000 + + + ESTRSWP9Y + 0.0453 + 20080609-170000 + + + EUB6SWP10Y + 0.0485 + 20080609-170000 + + + ESTRSWP10Y + 0.0458 + 20080609-170000 + + + EUB6SWP11Y + 0.0488 + 20080609-170000 + + + ESTRSWP11Y + 0.0462 + 20080609-170000 + + + EUB6SWP12Y + 0.0492 + 20080609-170000 + + + ESTRSWP12Y + 0.0457 + 20080609-170000 + + + EUB6SWP13Y + 0.0485 + 20080609-170000 + + + EUB6SWP14Y + 0.0488 + 20080609-170000 + + + EUB6SWP15Y + 0.0489 + 20080609-170000 + + + ESTRSWP15Y + 0.0465 + 20080609-170000 + + + EUB6SWP16Y + 0.0492 + 20080609-170000 + + + EUB6SWP17Y + 0.049 + 20080609-170000 + + + EUB6SWP18Y + 0.049 + 20080609-170000 + + + EUB6SWP19Y + 0.0486 + 20080609-170000 + + + EUB6SWP20Y + 0.0487 + 20080609-170000 + + + ESTRSWP20Y + 0.0462 + 20080609-170000 + + + EUB6SWP21Y + 0.0486 + 20080609-170000 + + + EUB6SWP22Y + 0.049 + 20080609-170000 + + + EUB6SWP23Y + 0.0486 + 20080609-170000 + + + EUB6SWP24Y + 0.0483 + 20080609-170000 + + + EUB6SWP25Y + 0.0483 + 20080609-170000 + + + ESTRSWP25Y + 0.0457 + 20080609-170000 + + + EUB6SWP26Y + 0.0478 + 20080609-170000 + + + EUB6SWP27Y + 0.0483 + 20080609-170000 + + + EUB6SWP28Y + 0.048 + 20080609-170000 + + + EUB6SWP29Y + 0.0478 + 20080609-170000 + + + EUB6SWP30Y + 0.0471 + 20080609-170000 + + + ESTRSWP30Y + 0.0448 + 20080609-170000 + + + EUB6SWP35Y + 0.0473 + 20080609-170000 + + + EUB6SWP40Y + 0.0468 + 20080609-170000 + + + EUB6SWP45Y + 0.0465 + 20080609-170000 + + + EUB6SWP50Y + 0.0464 + 20080609-170000 + + + EUB6SWP60Y + 0.0457 + 20080609-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-10.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-10.xml new file mode 100644 index 000000000..4c2427516 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-10.xml @@ -0,0 +1,344 @@ + + + 20080610-170000 + + EUB6FIX6M + 0.0513 + 20080610-170000 + + + ESTRSWP3W + 0.0404 + 20080610-170000 + + + ESTRSWP1W + 0.0405 + 20080610-170000 + + + ESTRSWP2W + 0.0405 + 20080610-170000 + + + ESTRSWP1M + 0.0411 + 20080610-170000 + + + ESTRSWP2M + 0.042 + 20080610-170000 + + + ESTRSWP3M + 0.0422 + 20080610-170000 + + + ESTRSWP4M + 0.0428 + 20080610-170000 + + + ESTRSWP5M + 0.0437 + 20080610-170000 + + + ESTRSWP6M + 0.0436 + 20080610-170000 + + + ESTRSWP7M + 0.0438 + 20080610-170000 + + + ESTRSWP8M + 0.0449 + 20080610-170000 + + + ESTRSWP9M + 0.0453 + 20080610-170000 + + + ESTRSWP10M + 0.0451 + 20080610-170000 + + + ESTRSWP11M + 0.0456 + 20080610-170000 + + + EUB6SWP1Y + 0.0543 + 20080610-170000 + + + ESTRSWP12M + 0.0462 + 20080610-170000 + + + ESTRSWP15M + 0.0471 + 20080610-170000 + + + ESTRSWP18M + 0.0467 + 20080610-170000 + + + EUB6SWP2Y + 0.0542 + 20080610-170000 + + + ESTRSWP2Y + 0.0471 + 20080610-170000 + + + EUB6SWP3Y + 0.0536 + 20080610-170000 + + + ESTRSWP3Y + 0.0469 + 20080610-170000 + + + EUB6SWP4Y + 0.0521 + 20080610-170000 + + + ESTRSWP4Y + 0.0479 + 20080610-170000 + + + EUB6SWP5Y + 0.0515 + 20080610-170000 + + + ESTRSWP5Y + 0.0471 + 20080610-170000 + + + EUB6SWP6Y + 0.0505 + 20080610-170000 + + + ESTRSWP6Y + 0.0463 + 20080610-170000 + + + EUB6SWP7Y + 0.05 + 20080610-170000 + + + ESTRSWP7Y + 0.0466 + 20080610-170000 + + + EUB6SWP8Y + 0.0497 + 20080610-170000 + + + ESTRSWP8Y + 0.0461 + 20080610-170000 + + + EUB6SWP9Y + 0.0497 + 20080610-170000 + + + ESTRSWP9Y + 0.046 + 20080610-170000 + + + EUB6SWP10Y + 0.0499 + 20080610-170000 + + + ESTRSWP10Y + 0.0461 + 20080610-170000 + + + EUB6SWP11Y + 0.05 + 20080610-170000 + + + ESTRSWP11Y + 0.0463 + 20080610-170000 + + + EUB6SWP12Y + 0.0493 + 20080610-170000 + + + ESTRSWP12Y + 0.0467 + 20080610-170000 + + + EUB6SWP13Y + 0.0503 + 20080610-170000 + + + EUB6SWP14Y + 0.0497 + 20080610-170000 + + + EUB6SWP15Y + 0.0498 + 20080610-170000 + + + ESTRSWP15Y + 0.0467 + 20080610-170000 + + + EUB6SWP16Y + 0.0499 + 20080610-170000 + + + EUB6SWP17Y + 0.0496 + 20080610-170000 + + + EUB6SWP18Y + 0.0504 + 20080610-170000 + + + EUB6SWP19Y + 0.05 + 20080610-170000 + + + EUB6SWP20Y + 0.05 + 20080610-170000 + + + ESTRSWP20Y + 0.0472 + 20080610-170000 + + + EUB6SWP21Y + 0.05 + 20080610-170000 + + + EUB6SWP22Y + 0.0499 + 20080610-170000 + + + EUB6SWP23Y + 0.0491 + 20080610-170000 + + + EUB6SWP24Y + 0.0497 + 20080610-170000 + + + EUB6SWP25Y + 0.0497 + 20080610-170000 + + + ESTRSWP25Y + 0.0466 + 20080610-170000 + + + EUB6SWP26Y + 0.0488 + 20080610-170000 + + + EUB6SWP27Y + 0.0497 + 20080610-170000 + + + EUB6SWP28Y + 0.0486 + 20080610-170000 + + + EUB6SWP29Y + 0.0494 + 20080610-170000 + + + EUB6SWP30Y + 0.0483 + 20080610-170000 + + + ESTRSWP30Y + 0.0462 + 20080610-170000 + + + EUB6SWP35Y + 0.0486 + 20080610-170000 + + + EUB6SWP40Y + 0.0475 + 20080610-170000 + + + EUB6SWP45Y + 0.0479 + 20080610-170000 + + + EUB6SWP50Y + 0.0477 + 20080610-170000 + + + EUB6SWP60Y + 0.047 + 20080610-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-11.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-11.xml new file mode 100644 index 000000000..a21da8535 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-11.xml @@ -0,0 +1,344 @@ + + + 20080611-170000 + + EUB6FIX6M + 0.0507 + 20080611-170000 + + + ESTRSWP3W + 0.0404 + 20080611-170000 + + + ESTRSWP1W + 0.0405 + 20080611-170000 + + + ESTRSWP2W + 0.0408 + 20080611-170000 + + + ESTRSWP1M + 0.0398 + 20080611-170000 + + + ESTRSWP2M + 0.0416 + 20080611-170000 + + + ESTRSWP3M + 0.0421 + 20080611-170000 + + + ESTRSWP4M + 0.0422 + 20080611-170000 + + + ESTRSWP5M + 0.0433 + 20080611-170000 + + + ESTRSWP6M + 0.0437 + 20080611-170000 + + + ESTRSWP7M + 0.0441 + 20080611-170000 + + + ESTRSWP8M + 0.0441 + 20080611-170000 + + + ESTRSWP9M + 0.0447 + 20080611-170000 + + + ESTRSWP10M + 0.0447 + 20080611-170000 + + + ESTRSWP11M + 0.0453 + 20080611-170000 + + + EUB6SWP1Y + 0.0544 + 20080611-170000 + + + ESTRSWP12M + 0.0459 + 20080611-170000 + + + ESTRSWP15M + 0.0463 + 20080611-170000 + + + ESTRSWP18M + 0.0467 + 20080611-170000 + + + EUB6SWP2Y + 0.0538 + 20080611-170000 + + + ESTRSWP2Y + 0.0475 + 20080611-170000 + + + EUB6SWP3Y + 0.0525 + 20080611-170000 + + + ESTRSWP3Y + 0.0463 + 20080611-170000 + + + EUB6SWP4Y + 0.0511 + 20080611-170000 + + + ESTRSWP4Y + 0.0474 + 20080611-170000 + + + EUB6SWP5Y + 0.0507 + 20080611-170000 + + + ESTRSWP5Y + 0.0466 + 20080611-170000 + + + EUB6SWP6Y + 0.0505 + 20080611-170000 + + + ESTRSWP6Y + 0.0467 + 20080611-170000 + + + EUB6SWP7Y + 0.0493 + 20080611-170000 + + + ESTRSWP7Y + 0.0465 + 20080611-170000 + + + EUB6SWP8Y + 0.0498 + 20080611-170000 + + + ESTRSWP8Y + 0.0457 + 20080611-170000 + + + EUB6SWP9Y + 0.0499 + 20080611-170000 + + + ESTRSWP9Y + 0.0462 + 20080611-170000 + + + EUB6SWP10Y + 0.0503 + 20080611-170000 + + + ESTRSWP10Y + 0.0468 + 20080611-170000 + + + EUB6SWP11Y + 0.0503 + 20080611-170000 + + + ESTRSWP11Y + 0.0465 + 20080611-170000 + + + EUB6SWP12Y + 0.0499 + 20080611-170000 + + + ESTRSWP12Y + 0.0469 + 20080611-170000 + + + EUB6SWP13Y + 0.0505 + 20080611-170000 + + + EUB6SWP14Y + 0.0506 + 20080611-170000 + + + EUB6SWP15Y + 0.0505 + 20080611-170000 + + + ESTRSWP15Y + 0.0471 + 20080611-170000 + + + EUB6SWP16Y + 0.0507 + 20080611-170000 + + + EUB6SWP17Y + 0.051 + 20080611-170000 + + + EUB6SWP18Y + 0.051 + 20080611-170000 + + + EUB6SWP19Y + 0.0502 + 20080611-170000 + + + EUB6SWP20Y + 0.0509 + 20080611-170000 + + + ESTRSWP20Y + 0.0475 + 20080611-170000 + + + EUB6SWP21Y + 0.0503 + 20080611-170000 + + + EUB6SWP22Y + 0.0501 + 20080611-170000 + + + EUB6SWP23Y + 0.0504 + 20080611-170000 + + + EUB6SWP24Y + 0.0501 + 20080611-170000 + + + EUB6SWP25Y + 0.0501 + 20080611-170000 + + + ESTRSWP25Y + 0.0477 + 20080611-170000 + + + EUB6SWP26Y + 0.05 + 20080611-170000 + + + EUB6SWP27Y + 0.0502 + 20080611-170000 + + + EUB6SWP28Y + 0.0499 + 20080611-170000 + + + EUB6SWP29Y + 0.05 + 20080611-170000 + + + EUB6SWP30Y + 0.0499 + 20080611-170000 + + + ESTRSWP30Y + 0.0466 + 20080611-170000 + + + EUB6SWP35Y + 0.0498 + 20080611-170000 + + + EUB6SWP40Y + 0.049 + 20080611-170000 + + + EUB6SWP45Y + 0.0484 + 20080611-170000 + + + EUB6SWP50Y + 0.0489 + 20080611-170000 + + + EUB6SWP60Y + 0.0477 + 20080611-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-12.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-12.xml new file mode 100644 index 000000000..8a09dbe3c --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-12.xml @@ -0,0 +1,344 @@ + + + 20080612-170000 + + EUB6FIX6M + 0.0509 + 20080612-170000 + + + ESTRSWP3W + 0.0404 + 20080612-170000 + + + ESTRSWP1W + 0.0407 + 20080612-170000 + + + ESTRSWP2W + 0.0407 + 20080612-170000 + + + ESTRSWP1M + 0.0413 + 20080612-170000 + + + ESTRSWP2M + 0.0414 + 20080612-170000 + + + ESTRSWP3M + 0.0418 + 20080612-170000 + + + ESTRSWP4M + 0.0425 + 20080612-170000 + + + ESTRSWP5M + 0.0431 + 20080612-170000 + + + ESTRSWP6M + 0.0437 + 20080612-170000 + + + ESTRSWP7M + 0.0434 + 20080612-170000 + + + ESTRSWP8M + 0.0442 + 20080612-170000 + + + ESTRSWP9M + 0.0443 + 20080612-170000 + + + ESTRSWP10M + 0.0452 + 20080612-170000 + + + ESTRSWP11M + 0.0451 + 20080612-170000 + + + EUB6SWP1Y + 0.0541 + 20080612-170000 + + + ESTRSWP12M + 0.046 + 20080612-170000 + + + ESTRSWP15M + 0.0461 + 20080612-170000 + + + ESTRSWP18M + 0.0461 + 20080612-170000 + + + EUB6SWP2Y + 0.0537 + 20080612-170000 + + + ESTRSWP2Y + 0.0468 + 20080612-170000 + + + EUB6SWP3Y + 0.0531 + 20080612-170000 + + + ESTRSWP3Y + 0.0469 + 20080612-170000 + + + EUB6SWP4Y + 0.0512 + 20080612-170000 + + + ESTRSWP4Y + 0.0477 + 20080612-170000 + + + EUB6SWP5Y + 0.0504 + 20080612-170000 + + + ESTRSWP5Y + 0.0469 + 20080612-170000 + + + EUB6SWP6Y + 0.0504 + 20080612-170000 + + + ESTRSWP6Y + 0.0466 + 20080612-170000 + + + EUB6SWP7Y + 0.05 + 20080612-170000 + + + ESTRSWP7Y + 0.0463 + 20080612-170000 + + + EUB6SWP8Y + 0.0498 + 20080612-170000 + + + ESTRSWP8Y + 0.046 + 20080612-170000 + + + EUB6SWP9Y + 0.0502 + 20080612-170000 + + + ESTRSWP9Y + 0.0466 + 20080612-170000 + + + EUB6SWP10Y + 0.0503 + 20080612-170000 + + + ESTRSWP10Y + 0.0469 + 20080612-170000 + + + EUB6SWP11Y + 0.0499 + 20080612-170000 + + + ESTRSWP11Y + 0.0468 + 20080612-170000 + + + EUB6SWP12Y + 0.0504 + 20080612-170000 + + + ESTRSWP12Y + 0.0476 + 20080612-170000 + + + EUB6SWP13Y + 0.0506 + 20080612-170000 + + + EUB6SWP14Y + 0.0504 + 20080612-170000 + + + EUB6SWP15Y + 0.0506 + 20080612-170000 + + + ESTRSWP15Y + 0.0477 + 20080612-170000 + + + EUB6SWP16Y + 0.0504 + 20080612-170000 + + + EUB6SWP17Y + 0.0509 + 20080612-170000 + + + EUB6SWP18Y + 0.0506 + 20080612-170000 + + + EUB6SWP19Y + 0.0503 + 20080612-170000 + + + EUB6SWP20Y + 0.0501 + 20080612-170000 + + + ESTRSWP20Y + 0.0476 + 20080612-170000 + + + EUB6SWP21Y + 0.0506 + 20080612-170000 + + + EUB6SWP22Y + 0.0502 + 20080612-170000 + + + EUB6SWP23Y + 0.0499 + 20080612-170000 + + + EUB6SWP24Y + 0.0501 + 20080612-170000 + + + EUB6SWP25Y + 0.0497 + 20080612-170000 + + + ESTRSWP25Y + 0.0472 + 20080612-170000 + + + EUB6SWP26Y + 0.0498 + 20080612-170000 + + + EUB6SWP27Y + 0.05 + 20080612-170000 + + + EUB6SWP28Y + 0.0495 + 20080612-170000 + + + EUB6SWP29Y + 0.0495 + 20080612-170000 + + + EUB6SWP30Y + 0.0494 + 20080612-170000 + + + ESTRSWP30Y + 0.0482 + 20080612-170000 + + + EUB6SWP35Y + 0.0492 + 20080612-170000 + + + EUB6SWP40Y + 0.0492 + 20080612-170000 + + + EUB6SWP45Y + 0.0481 + 20080612-170000 + + + EUB6SWP50Y + 0.0486 + 20080612-170000 + + + EUB6SWP60Y + 0.0478 + 20080612-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-13.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-13.xml new file mode 100644 index 000000000..8bbe5153b --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-13.xml @@ -0,0 +1,344 @@ + + + 20080613-170000 + + EUB6FIX6M + 0.0517 + 20080613-170000 + + + ESTRSWP3W + 0.0409 + 20080613-170000 + + + ESTRSWP1W + 0.0397 + 20080613-170000 + + + ESTRSWP2W + 0.04 + 20080613-170000 + + + ESTRSWP1M + 0.0411 + 20080613-170000 + + + ESTRSWP2M + 0.0418 + 20080613-170000 + + + ESTRSWP3M + 0.0419 + 20080613-170000 + + + ESTRSWP4M + 0.0431 + 20080613-170000 + + + ESTRSWP5M + 0.0431 + 20080613-170000 + + + ESTRSWP6M + 0.0435 + 20080613-170000 + + + ESTRSWP7M + 0.0436 + 20080613-170000 + + + ESTRSWP8M + 0.0442 + 20080613-170000 + + + ESTRSWP9M + 0.0451 + 20080613-170000 + + + ESTRSWP10M + 0.0452 + 20080613-170000 + + + ESTRSWP11M + 0.0458 + 20080613-170000 + + + EUB6SWP1Y + 0.054 + 20080613-170000 + + + ESTRSWP12M + 0.046 + 20080613-170000 + + + ESTRSWP15M + 0.0468 + 20080613-170000 + + + ESTRSWP18M + 0.0472 + 20080613-170000 + + + EUB6SWP2Y + 0.0546 + 20080613-170000 + + + ESTRSWP2Y + 0.0475 + 20080613-170000 + + + EUB6SWP3Y + 0.0528 + 20080613-170000 + + + ESTRSWP3Y + 0.0467 + 20080613-170000 + + + EUB6SWP4Y + 0.0523 + 20080613-170000 + + + ESTRSWP4Y + 0.0475 + 20080613-170000 + + + EUB6SWP5Y + 0.0515 + 20080613-170000 + + + ESTRSWP5Y + 0.0478 + 20080613-170000 + + + EUB6SWP6Y + 0.0506 + 20080613-170000 + + + ESTRSWP6Y + 0.0469 + 20080613-170000 + + + EUB6SWP7Y + 0.051 + 20080613-170000 + + + ESTRSWP7Y + 0.047 + 20080613-170000 + + + EUB6SWP8Y + 0.0505 + 20080613-170000 + + + ESTRSWP8Y + 0.0467 + 20080613-170000 + + + EUB6SWP9Y + 0.0501 + 20080613-170000 + + + ESTRSWP9Y + 0.0465 + 20080613-170000 + + + EUB6SWP10Y + 0.0507 + 20080613-170000 + + + ESTRSWP10Y + 0.047 + 20080613-170000 + + + EUB6SWP11Y + 0.0502 + 20080613-170000 + + + ESTRSWP11Y + 0.0468 + 20080613-170000 + + + EUB6SWP12Y + 0.0503 + 20080613-170000 + + + ESTRSWP12Y + 0.0474 + 20080613-170000 + + + EUB6SWP13Y + 0.0505 + 20080613-170000 + + + EUB6SWP14Y + 0.0507 + 20080613-170000 + + + EUB6SWP15Y + 0.051 + 20080613-170000 + + + ESTRSWP15Y + 0.0476 + 20080613-170000 + + + EUB6SWP16Y + 0.0505 + 20080613-170000 + + + EUB6SWP17Y + 0.0508 + 20080613-170000 + + + EUB6SWP18Y + 0.0508 + 20080613-170000 + + + EUB6SWP19Y + 0.051 + 20080613-170000 + + + EUB6SWP20Y + 0.0502 + 20080613-170000 + + + ESTRSWP20Y + 0.0477 + 20080613-170000 + + + EUB6SWP21Y + 0.0501 + 20080613-170000 + + + EUB6SWP22Y + 0.0506 + 20080613-170000 + + + EUB6SWP23Y + 0.0502 + 20080613-170000 + + + EUB6SWP24Y + 0.0506 + 20080613-170000 + + + EUB6SWP25Y + 0.0496 + 20080613-170000 + + + ESTRSWP25Y + 0.0471 + 20080613-170000 + + + EUB6SWP26Y + 0.0497 + 20080613-170000 + + + EUB6SWP27Y + 0.0496 + 20080613-170000 + + + EUB6SWP28Y + 0.0497 + 20080613-170000 + + + EUB6SWP29Y + 0.05 + 20080613-170000 + + + EUB6SWP30Y + 0.0498 + 20080613-170000 + + + ESTRSWP30Y + 0.0472 + 20080613-170000 + + + EUB6SWP35Y + 0.0496 + 20080613-170000 + + + EUB6SWP40Y + 0.049 + 20080613-170000 + + + EUB6SWP45Y + 0.0486 + 20080613-170000 + + + EUB6SWP50Y + 0.0478 + 20080613-170000 + + + EUB6SWP60Y + 0.0475 + 20080613-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-16.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-16.xml new file mode 100644 index 000000000..343b87715 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-16.xml @@ -0,0 +1,344 @@ + + + 20080616-170000 + + EUB6FIX6M + 0.0508 + 20080616-170000 + + + ESTRSWP3W + 0.0408 + 20080616-170000 + + + ESTRSWP1W + 0.04 + 20080616-170000 + + + ESTRSWP2W + 0.0399 + 20080616-170000 + + + ESTRSWP1M + 0.0412 + 20080616-170000 + + + ESTRSWP2M + 0.0418 + 20080616-170000 + + + ESTRSWP3M + 0.0424 + 20080616-170000 + + + ESTRSWP4M + 0.0434 + 20080616-170000 + + + ESTRSWP5M + 0.0432 + 20080616-170000 + + + ESTRSWP6M + 0.0445 + 20080616-170000 + + + ESTRSWP7M + 0.0446 + 20080616-170000 + + + ESTRSWP8M + 0.0449 + 20080616-170000 + + + ESTRSWP9M + 0.0456 + 20080616-170000 + + + ESTRSWP10M + 0.0454 + 20080616-170000 + + + ESTRSWP11M + 0.0467 + 20080616-170000 + + + EUB6SWP1Y + 0.0546 + 20080616-170000 + + + ESTRSWP12M + 0.047 + 20080616-170000 + + + ESTRSWP15M + 0.0473 + 20080616-170000 + + + ESTRSWP18M + 0.0475 + 20080616-170000 + + + EUB6SWP2Y + 0.0552 + 20080616-170000 + + + ESTRSWP2Y + 0.0486 + 20080616-170000 + + + EUB6SWP3Y + 0.0539 + 20080616-170000 + + + ESTRSWP3Y + 0.0487 + 20080616-170000 + + + EUB6SWP4Y + 0.0533 + 20080616-170000 + + + ESTRSWP4Y + 0.0485 + 20080616-170000 + + + EUB6SWP5Y + 0.0517 + 20080616-170000 + + + ESTRSWP5Y + 0.0476 + 20080616-170000 + + + EUB6SWP6Y + 0.0516 + 20080616-170000 + + + ESTRSWP6Y + 0.0474 + 20080616-170000 + + + EUB6SWP7Y + 0.0506 + 20080616-170000 + + + ESTRSWP7Y + 0.0468 + 20080616-170000 + + + EUB6SWP8Y + 0.0501 + 20080616-170000 + + + ESTRSWP8Y + 0.0466 + 20080616-170000 + + + EUB6SWP9Y + 0.0502 + 20080616-170000 + + + ESTRSWP9Y + 0.0463 + 20080616-170000 + + + EUB6SWP10Y + 0.0507 + 20080616-170000 + + + ESTRSWP10Y + 0.0472 + 20080616-170000 + + + EUB6SWP11Y + 0.0503 + 20080616-170000 + + + ESTRSWP11Y + 0.0468 + 20080616-170000 + + + EUB6SWP12Y + 0.0505 + 20080616-170000 + + + ESTRSWP12Y + 0.0475 + 20080616-170000 + + + EUB6SWP13Y + 0.0501 + 20080616-170000 + + + EUB6SWP14Y + 0.0502 + 20080616-170000 + + + EUB6SWP15Y + 0.05 + 20080616-170000 + + + ESTRSWP15Y + 0.047 + 20080616-170000 + + + EUB6SWP16Y + 0.0505 + 20080616-170000 + + + EUB6SWP17Y + 0.0506 + 20080616-170000 + + + EUB6SWP18Y + 0.0497 + 20080616-170000 + + + EUB6SWP19Y + 0.05 + 20080616-170000 + + + EUB6SWP20Y + 0.0505 + 20080616-170000 + + + ESTRSWP20Y + 0.0471 + 20080616-170000 + + + EUB6SWP21Y + 0.0502 + 20080616-170000 + + + EUB6SWP22Y + 0.0496 + 20080616-170000 + + + EUB6SWP23Y + 0.0499 + 20080616-170000 + + + EUB6SWP24Y + 0.05 + 20080616-170000 + + + EUB6SWP25Y + 0.0499 + 20080616-170000 + + + ESTRSWP25Y + 0.0465 + 20080616-170000 + + + EUB6SWP26Y + 0.0492 + 20080616-170000 + + + EUB6SWP27Y + 0.0496 + 20080616-170000 + + + EUB6SWP28Y + 0.049 + 20080616-170000 + + + EUB6SWP29Y + 0.049 + 20080616-170000 + + + EUB6SWP30Y + 0.0491 + 20080616-170000 + + + ESTRSWP30Y + 0.0461 + 20080616-170000 + + + EUB6SWP35Y + 0.0481 + 20080616-170000 + + + EUB6SWP40Y + 0.0483 + 20080616-170000 + + + EUB6SWP45Y + 0.0475 + 20080616-170000 + + + EUB6SWP50Y + 0.0476 + 20080616-170000 + + + EUB6SWP60Y + 0.0472 + 20080616-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-17.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-17.xml new file mode 100644 index 000000000..eb7d8555b --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-17.xml @@ -0,0 +1,344 @@ + + + 20080617-170000 + + EUB6FIX6M + 0.0511 + 20080617-170000 + + + ESTRSWP3W + 0.0401 + 20080617-170000 + + + ESTRSWP1W + 0.0406 + 20080617-170000 + + + ESTRSWP2W + 0.0408 + 20080617-170000 + + + ESTRSWP1M + 0.0412 + 20080617-170000 + + + ESTRSWP2M + 0.0418 + 20080617-170000 + + + ESTRSWP3M + 0.0425 + 20080617-170000 + + + ESTRSWP4M + 0.0432 + 20080617-170000 + + + ESTRSWP5M + 0.0433 + 20080617-170000 + + + ESTRSWP6M + 0.0439 + 20080617-170000 + + + ESTRSWP7M + 0.0449 + 20080617-170000 + + + ESTRSWP8M + 0.0451 + 20080617-170000 + + + ESTRSWP9M + 0.0455 + 20080617-170000 + + + ESTRSWP10M + 0.0451 + 20080617-170000 + + + ESTRSWP11M + 0.0462 + 20080617-170000 + + + EUB6SWP1Y + 0.0537 + 20080617-170000 + + + ESTRSWP12M + 0.0458 + 20080617-170000 + + + ESTRSWP15M + 0.047 + 20080617-170000 + + + ESTRSWP18M + 0.0472 + 20080617-170000 + + + EUB6SWP2Y + 0.0533 + 20080617-170000 + + + ESTRSWP2Y + 0.0471 + 20080617-170000 + + + EUB6SWP3Y + 0.0528 + 20080617-170000 + + + ESTRSWP3Y + 0.0475 + 20080617-170000 + + + EUB6SWP4Y + 0.0522 + 20080617-170000 + + + ESTRSWP4Y + 0.0469 + 20080617-170000 + + + EUB6SWP5Y + 0.0508 + 20080617-170000 + + + ESTRSWP5Y + 0.0462 + 20080617-170000 + + + EUB6SWP6Y + 0.0506 + 20080617-170000 + + + ESTRSWP6Y + 0.0457 + 20080617-170000 + + + EUB6SWP7Y + 0.0497 + 20080617-170000 + + + ESTRSWP7Y + 0.0454 + 20080617-170000 + + + EUB6SWP8Y + 0.0499 + 20080617-170000 + + + ESTRSWP8Y + 0.0458 + 20080617-170000 + + + EUB6SWP9Y + 0.0497 + 20080617-170000 + + + ESTRSWP9Y + 0.0462 + 20080617-170000 + + + EUB6SWP10Y + 0.0497 + 20080617-170000 + + + ESTRSWP10Y + 0.0461 + 20080617-170000 + + + EUB6SWP11Y + 0.0503 + 20080617-170000 + + + ESTRSWP11Y + 0.046 + 20080617-170000 + + + EUB6SWP12Y + 0.0501 + 20080617-170000 + + + ESTRSWP12Y + 0.0465 + 20080617-170000 + + + EUB6SWP13Y + 0.05 + 20080617-170000 + + + EUB6SWP14Y + 0.0496 + 20080617-170000 + + + EUB6SWP15Y + 0.0501 + 20080617-170000 + + + ESTRSWP15Y + 0.0472 + 20080617-170000 + + + EUB6SWP16Y + 0.0501 + 20080617-170000 + + + EUB6SWP17Y + 0.0495 + 20080617-170000 + + + EUB6SWP18Y + 0.0498 + 20080617-170000 + + + EUB6SWP19Y + 0.0498 + 20080617-170000 + + + EUB6SWP20Y + 0.0494 + 20080617-170000 + + + ESTRSWP20Y + 0.047 + 20080617-170000 + + + EUB6SWP21Y + 0.0497 + 20080617-170000 + + + EUB6SWP22Y + 0.0494 + 20080617-170000 + + + EUB6SWP23Y + 0.0493 + 20080617-170000 + + + EUB6SWP24Y + 0.0494 + 20080617-170000 + + + EUB6SWP25Y + 0.049 + 20080617-170000 + + + ESTRSWP25Y + 0.0458 + 20080617-170000 + + + EUB6SWP26Y + 0.0493 + 20080617-170000 + + + EUB6SWP27Y + 0.0489 + 20080617-170000 + + + EUB6SWP28Y + 0.0484 + 20080617-170000 + + + EUB6SWP29Y + 0.0488 + 20080617-170000 + + + EUB6SWP30Y + 0.0488 + 20080617-170000 + + + ESTRSWP30Y + 0.0455 + 20080617-170000 + + + EUB6SWP35Y + 0.0484 + 20080617-170000 + + + EUB6SWP40Y + 0.0475 + 20080617-170000 + + + EUB6SWP45Y + 0.0476 + 20080617-170000 + + + EUB6SWP50Y + 0.0473 + 20080617-170000 + + + EUB6SWP60Y + 0.0472 + 20080617-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-18.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-18.xml new file mode 100644 index 000000000..68dabd2f9 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-18.xml @@ -0,0 +1,344 @@ + + + 20080618-170000 + + EUB6FIX6M + 0.0515 + 20080618-170000 + + + ESTRSWP3W + 0.0407 + 20080618-170000 + + + ESTRSWP1W + 0.0405 + 20080618-170000 + + + ESTRSWP2W + 0.0406 + 20080618-170000 + + + ESTRSWP1M + 0.0413 + 20080618-170000 + + + ESTRSWP2M + 0.0424 + 20080618-170000 + + + ESTRSWP3M + 0.0422 + 20080618-170000 + + + ESTRSWP4M + 0.0435 + 20080618-170000 + + + ESTRSWP5M + 0.0439 + 20080618-170000 + + + ESTRSWP6M + 0.044 + 20080618-170000 + + + ESTRSWP7M + 0.0439 + 20080618-170000 + + + ESTRSWP8M + 0.045 + 20080618-170000 + + + ESTRSWP9M + 0.0454 + 20080618-170000 + + + ESTRSWP10M + 0.0459 + 20080618-170000 + + + ESTRSWP11M + 0.0458 + 20080618-170000 + + + EUB6SWP1Y + 0.0536 + 20080618-170000 + + + ESTRSWP12M + 0.0461 + 20080618-170000 + + + ESTRSWP15M + 0.0468 + 20080618-170000 + + + ESTRSWP18M + 0.0464 + 20080618-170000 + + + EUB6SWP2Y + 0.0539 + 20080618-170000 + + + ESTRSWP2Y + 0.0475 + 20080618-170000 + + + EUB6SWP3Y + 0.0529 + 20080618-170000 + + + ESTRSWP3Y + 0.0468 + 20080618-170000 + + + EUB6SWP4Y + 0.0519 + 20080618-170000 + + + ESTRSWP4Y + 0.047 + 20080618-170000 + + + EUB6SWP5Y + 0.0511 + 20080618-170000 + + + ESTRSWP5Y + 0.0461 + 20080618-170000 + + + EUB6SWP6Y + 0.05 + 20080618-170000 + + + ESTRSWP6Y + 0.046 + 20080618-170000 + + + EUB6SWP7Y + 0.0504 + 20080618-170000 + + + ESTRSWP7Y + 0.0462 + 20080618-170000 + + + EUB6SWP8Y + 0.0499 + 20080618-170000 + + + ESTRSWP8Y + 0.0457 + 20080618-170000 + + + EUB6SWP9Y + 0.0497 + 20080618-170000 + + + ESTRSWP9Y + 0.0457 + 20080618-170000 + + + EUB6SWP10Y + 0.0499 + 20080618-170000 + + + ESTRSWP10Y + 0.0468 + 20080618-170000 + + + EUB6SWP11Y + 0.0495 + 20080618-170000 + + + ESTRSWP11Y + 0.0465 + 20080618-170000 + + + EUB6SWP12Y + 0.0499 + 20080618-170000 + + + ESTRSWP12Y + 0.0465 + 20080618-170000 + + + EUB6SWP13Y + 0.0501 + 20080618-170000 + + + EUB6SWP14Y + 0.0498 + 20080618-170000 + + + EUB6SWP15Y + 0.0496 + 20080618-170000 + + + ESTRSWP15Y + 0.0463 + 20080618-170000 + + + EUB6SWP16Y + 0.0501 + 20080618-170000 + + + EUB6SWP17Y + 0.05 + 20080618-170000 + + + EUB6SWP18Y + 0.0498 + 20080618-170000 + + + EUB6SWP19Y + 0.0499 + 20080618-170000 + + + EUB6SWP20Y + 0.0496 + 20080618-170000 + + + ESTRSWP20Y + 0.046 + 20080618-170000 + + + EUB6SWP21Y + 0.0493 + 20080618-170000 + + + EUB6SWP22Y + 0.0497 + 20080618-170000 + + + EUB6SWP23Y + 0.0492 + 20080618-170000 + + + EUB6SWP24Y + 0.0489 + 20080618-170000 + + + EUB6SWP25Y + 0.049 + 20080618-170000 + + + ESTRSWP25Y + 0.0466 + 20080618-170000 + + + EUB6SWP26Y + 0.0485 + 20080618-170000 + + + EUB6SWP27Y + 0.0492 + 20080618-170000 + + + EUB6SWP28Y + 0.0487 + 20080618-170000 + + + EUB6SWP29Y + 0.0486 + 20080618-170000 + + + EUB6SWP30Y + 0.0488 + 20080618-170000 + + + ESTRSWP30Y + 0.0455 + 20080618-170000 + + + EUB6SWP35Y + 0.0475 + 20080618-170000 + + + EUB6SWP40Y + 0.0479 + 20080618-170000 + + + EUB6SWP45Y + 0.0474 + 20080618-170000 + + + EUB6SWP50Y + 0.0471 + 20080618-170000 + + + EUB6SWP60Y + 0.0465 + 20080618-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-19.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-19.xml new file mode 100644 index 000000000..a622abcc3 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-19.xml @@ -0,0 +1,344 @@ + + + 20080619-170000 + + EUB6FIX6M + 0.0512 + 20080619-170000 + + + ESTRSWP3W + 0.0412 + 20080619-170000 + + + ESTRSWP1W + 0.0405 + 20080619-170000 + + + ESTRSWP2W + 0.0403 + 20080619-170000 + + + ESTRSWP1M + 0.0413 + 20080619-170000 + + + ESTRSWP2M + 0.0423 + 20080619-170000 + + + ESTRSWP3M + 0.0428 + 20080619-170000 + + + ESTRSWP4M + 0.0433 + 20080619-170000 + + + ESTRSWP5M + 0.0432 + 20080619-170000 + + + ESTRSWP6M + 0.0436 + 20080619-170000 + + + ESTRSWP7M + 0.0442 + 20080619-170000 + + + ESTRSWP8M + 0.0449 + 20080619-170000 + + + ESTRSWP9M + 0.0451 + 20080619-170000 + + + ESTRSWP10M + 0.0455 + 20080619-170000 + + + ESTRSWP11M + 0.046 + 20080619-170000 + + + EUB6SWP1Y + 0.0545 + 20080619-170000 + + + ESTRSWP12M + 0.0466 + 20080619-170000 + + + ESTRSWP15M + 0.0467 + 20080619-170000 + + + ESTRSWP18M + 0.0476 + 20080619-170000 + + + EUB6SWP2Y + 0.0545 + 20080619-170000 + + + ESTRSWP2Y + 0.0476 + 20080619-170000 + + + EUB6SWP3Y + 0.0537 + 20080619-170000 + + + ESTRSWP3Y + 0.0477 + 20080619-170000 + + + EUB6SWP4Y + 0.0528 + 20080619-170000 + + + ESTRSWP4Y + 0.0479 + 20080619-170000 + + + EUB6SWP5Y + 0.0521 + 20080619-170000 + + + ESTRSWP5Y + 0.0471 + 20080619-170000 + + + EUB6SWP6Y + 0.0507 + 20080619-170000 + + + ESTRSWP6Y + 0.0463 + 20080619-170000 + + + EUB6SWP7Y + 0.051 + 20080619-170000 + + + ESTRSWP7Y + 0.0465 + 20080619-170000 + + + EUB6SWP8Y + 0.0501 + 20080619-170000 + + + ESTRSWP8Y + 0.0464 + 20080619-170000 + + + EUB6SWP9Y + 0.0504 + 20080619-170000 + + + ESTRSWP9Y + 0.0462 + 20080619-170000 + + + EUB6SWP10Y + 0.0503 + 20080619-170000 + + + ESTRSWP10Y + 0.0464 + 20080619-170000 + + + EUB6SWP11Y + 0.0503 + 20080619-170000 + + + ESTRSWP11Y + 0.0474 + 20080619-170000 + + + EUB6SWP12Y + 0.0507 + 20080619-170000 + + + ESTRSWP12Y + 0.0472 + 20080619-170000 + + + EUB6SWP13Y + 0.0507 + 20080619-170000 + + + EUB6SWP14Y + 0.0503 + 20080619-170000 + + + EUB6SWP15Y + 0.0505 + 20080619-170000 + + + ESTRSWP15Y + 0.0471 + 20080619-170000 + + + EUB6SWP16Y + 0.05 + 20080619-170000 + + + EUB6SWP17Y + 0.0501 + 20080619-170000 + + + EUB6SWP18Y + 0.0508 + 20080619-170000 + + + EUB6SWP19Y + 0.0505 + 20080619-170000 + + + EUB6SWP20Y + 0.0503 + 20080619-170000 + + + ESTRSWP20Y + 0.0474 + 20080619-170000 + + + EUB6SWP21Y + 0.0499 + 20080619-170000 + + + EUB6SWP22Y + 0.0494 + 20080619-170000 + + + EUB6SWP23Y + 0.05 + 20080619-170000 + + + EUB6SWP24Y + 0.0497 + 20080619-170000 + + + EUB6SWP25Y + 0.0493 + 20080619-170000 + + + ESTRSWP25Y + 0.0462 + 20080619-170000 + + + EUB6SWP26Y + 0.0487 + 20080619-170000 + + + EUB6SWP27Y + 0.0488 + 20080619-170000 + + + EUB6SWP28Y + 0.0485 + 20080619-170000 + + + EUB6SWP29Y + 0.0489 + 20080619-170000 + + + EUB6SWP30Y + 0.0492 + 20080619-170000 + + + ESTRSWP30Y + 0.0456 + 20080619-170000 + + + EUB6SWP35Y + 0.0478 + 20080619-170000 + + + EUB6SWP40Y + 0.0473 + 20080619-170000 + + + EUB6SWP45Y + 0.0472 + 20080619-170000 + + + EUB6SWP50Y + 0.0467 + 20080619-170000 + + + EUB6SWP60Y + 0.0469 + 20080619-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-20.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-20.xml new file mode 100644 index 000000000..79adc8ee5 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-20.xml @@ -0,0 +1,344 @@ + + + 20080620-170000 + + EUB6FIX6M + 0.0512 + 20080620-170000 + + + ESTRSWP3W + 0.0414 + 20080620-170000 + + + ESTRSWP1W + 0.0412 + 20080620-170000 + + + ESTRSWP2W + 0.0398 + 20080620-170000 + + + ESTRSWP1M + 0.0413 + 20080620-170000 + + + ESTRSWP2M + 0.042 + 20080620-170000 + + + ESTRSWP3M + 0.0429 + 20080620-170000 + + + ESTRSWP4M + 0.043 + 20080620-170000 + + + ESTRSWP5M + 0.0441 + 20080620-170000 + + + ESTRSWP6M + 0.044 + 20080620-170000 + + + ESTRSWP7M + 0.0441 + 20080620-170000 + + + ESTRSWP8M + 0.0451 + 20080620-170000 + + + ESTRSWP9M + 0.0448 + 20080620-170000 + + + ESTRSWP10M + 0.0457 + 20080620-170000 + + + ESTRSWP11M + 0.0459 + 20080620-170000 + + + EUB6SWP1Y + 0.0538 + 20080620-170000 + + + ESTRSWP12M + 0.0464 + 20080620-170000 + + + ESTRSWP15M + 0.0466 + 20080620-170000 + + + ESTRSWP18M + 0.0471 + 20080620-170000 + + + EUB6SWP2Y + 0.0536 + 20080620-170000 + + + ESTRSWP2Y + 0.047 + 20080620-170000 + + + EUB6SWP3Y + 0.0536 + 20080620-170000 + + + ESTRSWP3Y + 0.0471 + 20080620-170000 + + + EUB6SWP4Y + 0.0528 + 20080620-170000 + + + ESTRSWP4Y + 0.0469 + 20080620-170000 + + + EUB6SWP5Y + 0.0515 + 20080620-170000 + + + ESTRSWP5Y + 0.0466 + 20080620-170000 + + + EUB6SWP6Y + 0.0511 + 20080620-170000 + + + ESTRSWP6Y + 0.0466 + 20080620-170000 + + + EUB6SWP7Y + 0.0507 + 20080620-170000 + + + ESTRSWP7Y + 0.0467 + 20080620-170000 + + + EUB6SWP8Y + 0.0503 + 20080620-170000 + + + ESTRSWP8Y + 0.0465 + 20080620-170000 + + + EUB6SWP9Y + 0.0505 + 20080620-170000 + + + ESTRSWP9Y + 0.0464 + 20080620-170000 + + + EUB6SWP10Y + 0.0505 + 20080620-170000 + + + ESTRSWP10Y + 0.0466 + 20080620-170000 + + + EUB6SWP11Y + 0.0503 + 20080620-170000 + + + ESTRSWP11Y + 0.047 + 20080620-170000 + + + EUB6SWP12Y + 0.05 + 20080620-170000 + + + ESTRSWP12Y + 0.0466 + 20080620-170000 + + + EUB6SWP13Y + 0.05 + 20080620-170000 + + + EUB6SWP14Y + 0.05 + 20080620-170000 + + + EUB6SWP15Y + 0.0506 + 20080620-170000 + + + ESTRSWP15Y + 0.0472 + 20080620-170000 + + + EUB6SWP16Y + 0.0505 + 20080620-170000 + + + EUB6SWP17Y + 0.0501 + 20080620-170000 + + + EUB6SWP18Y + 0.0499 + 20080620-170000 + + + EUB6SWP19Y + 0.0497 + 20080620-170000 + + + EUB6SWP20Y + 0.0496 + 20080620-170000 + + + ESTRSWP20Y + 0.0473 + 20080620-170000 + + + EUB6SWP21Y + 0.0498 + 20080620-170000 + + + EUB6SWP22Y + 0.0501 + 20080620-170000 + + + EUB6SWP23Y + 0.0495 + 20080620-170000 + + + EUB6SWP24Y + 0.0499 + 20080620-170000 + + + EUB6SWP25Y + 0.0496 + 20080620-170000 + + + ESTRSWP25Y + 0.0468 + 20080620-170000 + + + EUB6SWP26Y + 0.049 + 20080620-170000 + + + EUB6SWP27Y + 0.049 + 20080620-170000 + + + EUB6SWP28Y + 0.0485 + 20080620-170000 + + + EUB6SWP29Y + 0.049 + 20080620-170000 + + + EUB6SWP30Y + 0.0489 + 20080620-170000 + + + ESTRSWP30Y + 0.046 + 20080620-170000 + + + EUB6SWP35Y + 0.0486 + 20080620-170000 + + + EUB6SWP40Y + 0.0476 + 20080620-170000 + + + EUB6SWP45Y + 0.0477 + 20080620-170000 + + + EUB6SWP50Y + 0.0471 + 20080620-170000 + + + EUB6SWP60Y + 0.0468 + 20080620-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-23.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-23.xml new file mode 100644 index 000000000..66c0dedad --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-23.xml @@ -0,0 +1,344 @@ + + + 20080623-170000 + + EUB6FIX6M + 0.0516 + 20080623-170000 + + + ESTRSWP3W + 0.0407 + 20080623-170000 + + + ESTRSWP1W + 0.0402 + 20080623-170000 + + + ESTRSWP2W + 0.0405 + 20080623-170000 + + + ESTRSWP1M + 0.042 + 20080623-170000 + + + ESTRSWP2M + 0.042 + 20080623-170000 + + + ESTRSWP3M + 0.0425 + 20080623-170000 + + + ESTRSWP4M + 0.0429 + 20080623-170000 + + + ESTRSWP5M + 0.0435 + 20080623-170000 + + + ESTRSWP6M + 0.0442 + 20080623-170000 + + + ESTRSWP7M + 0.0445 + 20080623-170000 + + + ESTRSWP8M + 0.0448 + 20080623-170000 + + + ESTRSWP9M + 0.0447 + 20080623-170000 + + + ESTRSWP10M + 0.0453 + 20080623-170000 + + + ESTRSWP11M + 0.0453 + 20080623-170000 + + + EUB6SWP1Y + 0.0536 + 20080623-170000 + + + ESTRSWP12M + 0.0458 + 20080623-170000 + + + ESTRSWP15M + 0.0467 + 20080623-170000 + + + ESTRSWP18M + 0.0465 + 20080623-170000 + + + EUB6SWP2Y + 0.0541 + 20080623-170000 + + + ESTRSWP2Y + 0.0467 + 20080623-170000 + + + EUB6SWP3Y + 0.0526 + 20080623-170000 + + + ESTRSWP3Y + 0.0476 + 20080623-170000 + + + EUB6SWP4Y + 0.0524 + 20080623-170000 + + + ESTRSWP4Y + 0.0475 + 20080623-170000 + + + EUB6SWP5Y + 0.0519 + 20080623-170000 + + + ESTRSWP5Y + 0.047 + 20080623-170000 + + + EUB6SWP6Y + 0.0509 + 20080623-170000 + + + ESTRSWP6Y + 0.047 + 20080623-170000 + + + EUB6SWP7Y + 0.0503 + 20080623-170000 + + + ESTRSWP7Y + 0.046 + 20080623-170000 + + + EUB6SWP8Y + 0.0508 + 20080623-170000 + + + ESTRSWP8Y + 0.0462 + 20080623-170000 + + + EUB6SWP9Y + 0.0505 + 20080623-170000 + + + ESTRSWP9Y + 0.0461 + 20080623-170000 + + + EUB6SWP10Y + 0.0502 + 20080623-170000 + + + ESTRSWP10Y + 0.0467 + 20080623-170000 + + + EUB6SWP11Y + 0.0503 + 20080623-170000 + + + ESTRSWP11Y + 0.0468 + 20080623-170000 + + + EUB6SWP12Y + 0.0498 + 20080623-170000 + + + ESTRSWP12Y + 0.0469 + 20080623-170000 + + + EUB6SWP13Y + 0.0505 + 20080623-170000 + + + EUB6SWP14Y + 0.0508 + 20080623-170000 + + + EUB6SWP15Y + 0.0507 + 20080623-170000 + + + ESTRSWP15Y + 0.0469 + 20080623-170000 + + + EUB6SWP16Y + 0.0509 + 20080623-170000 + + + EUB6SWP17Y + 0.0507 + 20080623-170000 + + + EUB6SWP18Y + 0.0507 + 20080623-170000 + + + EUB6SWP19Y + 0.0506 + 20080623-170000 + + + EUB6SWP20Y + 0.0502 + 20080623-170000 + + + ESTRSWP20Y + 0.0474 + 20080623-170000 + + + EUB6SWP21Y + 0.0506 + 20080623-170000 + + + EUB6SWP22Y + 0.0496 + 20080623-170000 + + + EUB6SWP23Y + 0.0504 + 20080623-170000 + + + EUB6SWP24Y + 0.0497 + 20080623-170000 + + + EUB6SWP25Y + 0.0492 + 20080623-170000 + + + ESTRSWP25Y + 0.0471 + 20080623-170000 + + + EUB6SWP26Y + 0.0499 + 20080623-170000 + + + EUB6SWP27Y + 0.0495 + 20080623-170000 + + + EUB6SWP28Y + 0.0491 + 20080623-170000 + + + EUB6SWP29Y + 0.0489 + 20080623-170000 + + + EUB6SWP30Y + 0.0492 + 20080623-170000 + + + ESTRSWP30Y + 0.0462 + 20080623-170000 + + + EUB6SWP35Y + 0.049 + 20080623-170000 + + + EUB6SWP40Y + 0.0482 + 20080623-170000 + + + EUB6SWP45Y + 0.0473 + 20080623-170000 + + + EUB6SWP50Y + 0.047 + 20080623-170000 + + + EUB6SWP60Y + 0.0472 + 20080623-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-24.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-24.xml new file mode 100644 index 000000000..3d6765d2b --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-24.xml @@ -0,0 +1,344 @@ + + + 20080624-170000 + + EUB6FIX6M + 0.0509 + 20080624-170000 + + + ESTRSWP3W + 0.0413 + 20080624-170000 + + + ESTRSWP1W + 0.0407 + 20080624-170000 + + + ESTRSWP2W + 0.0401 + 20080624-170000 + + + ESTRSWP1M + 0.0413 + 20080624-170000 + + + ESTRSWP2M + 0.0426 + 20080624-170000 + + + ESTRSWP3M + 0.0424 + 20080624-170000 + + + ESTRSWP4M + 0.0435 + 20080624-170000 + + + ESTRSWP5M + 0.0434 + 20080624-170000 + + + ESTRSWP6M + 0.0441 + 20080624-170000 + + + ESTRSWP7M + 0.044 + 20080624-170000 + + + ESTRSWP8M + 0.0441 + 20080624-170000 + + + ESTRSWP9M + 0.0449 + 20080624-170000 + + + ESTRSWP10M + 0.0457 + 20080624-170000 + + + ESTRSWP11M + 0.0452 + 20080624-170000 + + + EUB6SWP1Y + 0.0537 + 20080624-170000 + + + ESTRSWP12M + 0.0457 + 20080624-170000 + + + ESTRSWP15M + 0.0456 + 20080624-170000 + + + ESTRSWP18M + 0.046 + 20080624-170000 + + + EUB6SWP2Y + 0.0527 + 20080624-170000 + + + ESTRSWP2Y + 0.0463 + 20080624-170000 + + + EUB6SWP3Y + 0.0526 + 20080624-170000 + + + ESTRSWP3Y + 0.0464 + 20080624-170000 + + + EUB6SWP4Y + 0.052 + 20080624-170000 + + + ESTRSWP4Y + 0.0468 + 20080624-170000 + + + EUB6SWP5Y + 0.0509 + 20080624-170000 + + + ESTRSWP5Y + 0.0465 + 20080624-170000 + + + EUB6SWP6Y + 0.051 + 20080624-170000 + + + ESTRSWP6Y + 0.0465 + 20080624-170000 + + + EUB6SWP7Y + 0.0504 + 20080624-170000 + + + ESTRSWP7Y + 0.0464 + 20080624-170000 + + + EUB6SWP8Y + 0.0498 + 20080624-170000 + + + ESTRSWP8Y + 0.0463 + 20080624-170000 + + + EUB6SWP9Y + 0.0497 + 20080624-170000 + + + ESTRSWP9Y + 0.0463 + 20080624-170000 + + + EUB6SWP10Y + 0.0507 + 20080624-170000 + + + ESTRSWP10Y + 0.0462 + 20080624-170000 + + + EUB6SWP11Y + 0.0507 + 20080624-170000 + + + ESTRSWP11Y + 0.0465 + 20080624-170000 + + + EUB6SWP12Y + 0.0503 + 20080624-170000 + + + ESTRSWP12Y + 0.0468 + 20080624-170000 + + + EUB6SWP13Y + 0.0505 + 20080624-170000 + + + EUB6SWP14Y + 0.0509 + 20080624-170000 + + + EUB6SWP15Y + 0.0505 + 20080624-170000 + + + ESTRSWP15Y + 0.0471 + 20080624-170000 + + + EUB6SWP16Y + 0.0511 + 20080624-170000 + + + EUB6SWP17Y + 0.0509 + 20080624-170000 + + + EUB6SWP18Y + 0.0508 + 20080624-170000 + + + EUB6SWP19Y + 0.0507 + 20080624-170000 + + + EUB6SWP20Y + 0.0507 + 20080624-170000 + + + ESTRSWP20Y + 0.0471 + 20080624-170000 + + + EUB6SWP21Y + 0.0501 + 20080624-170000 + + + EUB6SWP22Y + 0.0498 + 20080624-170000 + + + EUB6SWP23Y + 0.0502 + 20080624-170000 + + + EUB6SWP24Y + 0.0496 + 20080624-170000 + + + EUB6SWP25Y + 0.05 + 20080624-170000 + + + ESTRSWP25Y + 0.0474 + 20080624-170000 + + + EUB6SWP26Y + 0.05 + 20080624-170000 + + + EUB6SWP27Y + 0.0498 + 20080624-170000 + + + EUB6SWP28Y + 0.0498 + 20080624-170000 + + + EUB6SWP29Y + 0.0489 + 20080624-170000 + + + EUB6SWP30Y + 0.0492 + 20080624-170000 + + + ESTRSWP30Y + 0.0469 + 20080624-170000 + + + EUB6SWP35Y + 0.0486 + 20080624-170000 + + + EUB6SWP40Y + 0.0485 + 20080624-170000 + + + EUB6SWP45Y + 0.0485 + 20080624-170000 + + + EUB6SWP50Y + 0.0481 + 20080624-170000 + + + EUB6SWP60Y + 0.0476 + 20080624-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-25.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-25.xml new file mode 100644 index 000000000..4ee667eef --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-25.xml @@ -0,0 +1,344 @@ + + + 20080625-170000 + + EUB6FIX6M + 0.0511 + 20080625-170000 + + + ESTRSWP3W + 0.0406 + 20080625-170000 + + + ESTRSWP1W + 0.0405 + 20080625-170000 + + + ESTRSWP2W + 0.0408 + 20080625-170000 + + + ESTRSWP1M + 0.0418 + 20080625-170000 + + + ESTRSWP2M + 0.0423 + 20080625-170000 + + + ESTRSWP3M + 0.0429 + 20080625-170000 + + + ESTRSWP4M + 0.0428 + 20080625-170000 + + + ESTRSWP5M + 0.0431 + 20080625-170000 + + + ESTRSWP6M + 0.0436 + 20080625-170000 + + + ESTRSWP7M + 0.0438 + 20080625-170000 + + + ESTRSWP8M + 0.0449 + 20080625-170000 + + + ESTRSWP9M + 0.0449 + 20080625-170000 + + + ESTRSWP10M + 0.0458 + 20080625-170000 + + + ESTRSWP11M + 0.0453 + 20080625-170000 + + + EUB6SWP1Y + 0.0539 + 20080625-170000 + + + ESTRSWP12M + 0.0457 + 20080625-170000 + + + ESTRSWP15M + 0.0465 + 20080625-170000 + + + ESTRSWP18M + 0.0465 + 20080625-170000 + + + EUB6SWP2Y + 0.0531 + 20080625-170000 + + + ESTRSWP2Y + 0.0467 + 20080625-170000 + + + EUB6SWP3Y + 0.0524 + 20080625-170000 + + + ESTRSWP3Y + 0.0472 + 20080625-170000 + + + EUB6SWP4Y + 0.0514 + 20080625-170000 + + + ESTRSWP4Y + 0.0469 + 20080625-170000 + + + EUB6SWP5Y + 0.0508 + 20080625-170000 + + + ESTRSWP5Y + 0.0461 + 20080625-170000 + + + EUB6SWP6Y + 0.0503 + 20080625-170000 + + + ESTRSWP6Y + 0.0467 + 20080625-170000 + + + EUB6SWP7Y + 0.0502 + 20080625-170000 + + + ESTRSWP7Y + 0.0466 + 20080625-170000 + + + EUB6SWP8Y + 0.05 + 20080625-170000 + + + ESTRSWP8Y + 0.0461 + 20080625-170000 + + + EUB6SWP9Y + 0.0499 + 20080625-170000 + + + ESTRSWP9Y + 0.0456 + 20080625-170000 + + + EUB6SWP10Y + 0.0501 + 20080625-170000 + + + ESTRSWP10Y + 0.0464 + 20080625-170000 + + + EUB6SWP11Y + 0.0502 + 20080625-170000 + + + ESTRSWP11Y + 0.0472 + 20080625-170000 + + + EUB6SWP12Y + 0.0506 + 20080625-170000 + + + ESTRSWP12Y + 0.0468 + 20080625-170000 + + + EUB6SWP13Y + 0.0506 + 20080625-170000 + + + EUB6SWP14Y + 0.0507 + 20080625-170000 + + + EUB6SWP15Y + 0.051 + 20080625-170000 + + + ESTRSWP15Y + 0.0474 + 20080625-170000 + + + EUB6SWP16Y + 0.0509 + 20080625-170000 + + + EUB6SWP17Y + 0.0506 + 20080625-170000 + + + EUB6SWP18Y + 0.0509 + 20080625-170000 + + + EUB6SWP19Y + 0.0507 + 20080625-170000 + + + EUB6SWP20Y + 0.0504 + 20080625-170000 + + + ESTRSWP20Y + 0.0479 + 20080625-170000 + + + EUB6SWP21Y + 0.0506 + 20080625-170000 + + + EUB6SWP22Y + 0.0505 + 20080625-170000 + + + EUB6SWP23Y + 0.0498 + 20080625-170000 + + + EUB6SWP24Y + 0.0503 + 20080625-170000 + + + EUB6SWP25Y + 0.0501 + 20080625-170000 + + + ESTRSWP25Y + 0.0476 + 20080625-170000 + + + EUB6SWP26Y + 0.0499 + 20080625-170000 + + + EUB6SWP27Y + 0.0499 + 20080625-170000 + + + EUB6SWP28Y + 0.0497 + 20080625-170000 + + + EUB6SWP29Y + 0.0496 + 20080625-170000 + + + EUB6SWP30Y + 0.0497 + 20080625-170000 + + + ESTRSWP30Y + 0.0466 + 20080625-170000 + + + EUB6SWP35Y + 0.0493 + 20080625-170000 + + + EUB6SWP40Y + 0.0481 + 20080625-170000 + + + EUB6SWP45Y + 0.0478 + 20080625-170000 + + + EUB6SWP50Y + 0.048 + 20080625-170000 + + + EUB6SWP60Y + 0.0472 + 20080625-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-26.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-26.xml new file mode 100644 index 000000000..43a3093b7 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-26.xml @@ -0,0 +1,344 @@ + + + 20080626-170000 + + EUB6FIX6M + 0.0509 + 20080626-170000 + + + ESTRSWP3W + 0.0411 + 20080626-170000 + + + ESTRSWP1W + 0.0397 + 20080626-170000 + + + ESTRSWP2W + 0.0406 + 20080626-170000 + + + ESTRSWP1M + 0.0418 + 20080626-170000 + + + ESTRSWP2M + 0.0427 + 20080626-170000 + + + ESTRSWP3M + 0.0428 + 20080626-170000 + + + ESTRSWP4M + 0.0428 + 20080626-170000 + + + ESTRSWP5M + 0.0434 + 20080626-170000 + + + ESTRSWP6M + 0.0436 + 20080626-170000 + + + ESTRSWP7M + 0.0442 + 20080626-170000 + + + ESTRSWP8M + 0.0447 + 20080626-170000 + + + ESTRSWP9M + 0.0452 + 20080626-170000 + + + ESTRSWP10M + 0.0449 + 20080626-170000 + + + ESTRSWP11M + 0.0453 + 20080626-170000 + + + EUB6SWP1Y + 0.0534 + 20080626-170000 + + + ESTRSWP12M + 0.0457 + 20080626-170000 + + + ESTRSWP15M + 0.0456 + 20080626-170000 + + + ESTRSWP18M + 0.0463 + 20080626-170000 + + + EUB6SWP2Y + 0.0527 + 20080626-170000 + + + ESTRSWP2Y + 0.0465 + 20080626-170000 + + + EUB6SWP3Y + 0.0515 + 20080626-170000 + + + ESTRSWP3Y + 0.0462 + 20080626-170000 + + + EUB6SWP4Y + 0.051 + 20080626-170000 + + + ESTRSWP4Y + 0.0456 + 20080626-170000 + + + EUB6SWP5Y + 0.0501 + 20080626-170000 + + + ESTRSWP5Y + 0.0453 + 20080626-170000 + + + EUB6SWP6Y + 0.0502 + 20080626-170000 + + + ESTRSWP6Y + 0.0457 + 20080626-170000 + + + EUB6SWP7Y + 0.0497 + 20080626-170000 + + + ESTRSWP7Y + 0.0453 + 20080626-170000 + + + EUB6SWP8Y + 0.049 + 20080626-170000 + + + ESTRSWP8Y + 0.0452 + 20080626-170000 + + + EUB6SWP9Y + 0.0491 + 20080626-170000 + + + ESTRSWP9Y + 0.0453 + 20080626-170000 + + + EUB6SWP10Y + 0.0496 + 20080626-170000 + + + ESTRSWP10Y + 0.0455 + 20080626-170000 + + + EUB6SWP11Y + 0.0493 + 20080626-170000 + + + ESTRSWP11Y + 0.046 + 20080626-170000 + + + EUB6SWP12Y + 0.0502 + 20080626-170000 + + + ESTRSWP12Y + 0.0469 + 20080626-170000 + + + EUB6SWP13Y + 0.0499 + 20080626-170000 + + + EUB6SWP14Y + 0.0497 + 20080626-170000 + + + EUB6SWP15Y + 0.0497 + 20080626-170000 + + + ESTRSWP15Y + 0.0469 + 20080626-170000 + + + EUB6SWP16Y + 0.0499 + 20080626-170000 + + + EUB6SWP17Y + 0.0505 + 20080626-170000 + + + EUB6SWP18Y + 0.0497 + 20080626-170000 + + + EUB6SWP19Y + 0.0506 + 20080626-170000 + + + EUB6SWP20Y + 0.0497 + 20080626-170000 + + + ESTRSWP20Y + 0.0471 + 20080626-170000 + + + EUB6SWP21Y + 0.0504 + 20080626-170000 + + + EUB6SWP22Y + 0.0497 + 20080626-170000 + + + EUB6SWP23Y + 0.0494 + 20080626-170000 + + + EUB6SWP24Y + 0.0495 + 20080626-170000 + + + EUB6SWP25Y + 0.05 + 20080626-170000 + + + ESTRSWP25Y + 0.0467 + 20080626-170000 + + + EUB6SWP26Y + 0.0493 + 20080626-170000 + + + EUB6SWP27Y + 0.0497 + 20080626-170000 + + + EUB6SWP28Y + 0.0494 + 20080626-170000 + + + EUB6SWP29Y + 0.0489 + 20080626-170000 + + + EUB6SWP30Y + 0.0495 + 20080626-170000 + + + ESTRSWP30Y + 0.0464 + 20080626-170000 + + + EUB6SWP35Y + 0.0487 + 20080626-170000 + + + EUB6SWP40Y + 0.0478 + 20080626-170000 + + + EUB6SWP45Y + 0.0477 + 20080626-170000 + + + EUB6SWP50Y + 0.0472 + 20080626-170000 + + + EUB6SWP60Y + 0.0469 + 20080626-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-27.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-27.xml new file mode 100644 index 000000000..739e19468 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-27.xml @@ -0,0 +1,344 @@ + + + 20080627-170000 + + EUB6FIX6M + 0.0514 + 20080627-170000 + + + ESTRSWP3W + 0.0416 + 20080627-170000 + + + ESTRSWP1W + 0.04 + 20080627-170000 + + + ESTRSWP2W + 0.0408 + 20080627-170000 + + + ESTRSWP1M + 0.0421 + 20080627-170000 + + + ESTRSWP2M + 0.0423 + 20080627-170000 + + + ESTRSWP3M + 0.0426 + 20080627-170000 + + + ESTRSWP4M + 0.043 + 20080627-170000 + + + ESTRSWP5M + 0.0438 + 20080627-170000 + + + ESTRSWP6M + 0.044 + 20080627-170000 + + + ESTRSWP7M + 0.0438 + 20080627-170000 + + + ESTRSWP8M + 0.0448 + 20080627-170000 + + + ESTRSWP9M + 0.0445 + 20080627-170000 + + + ESTRSWP10M + 0.0447 + 20080627-170000 + + + ESTRSWP11M + 0.0456 + 20080627-170000 + + + EUB6SWP1Y + 0.0529 + 20080627-170000 + + + ESTRSWP12M + 0.0451 + 20080627-170000 + + + ESTRSWP15M + 0.0456 + 20080627-170000 + + + ESTRSWP18M + 0.0461 + 20080627-170000 + + + EUB6SWP2Y + 0.0523 + 20080627-170000 + + + ESTRSWP2Y + 0.0462 + 20080627-170000 + + + EUB6SWP3Y + 0.0516 + 20080627-170000 + + + ESTRSWP3Y + 0.0458 + 20080627-170000 + + + EUB6SWP4Y + 0.0505 + 20080627-170000 + + + ESTRSWP4Y + 0.0461 + 20080627-170000 + + + EUB6SWP5Y + 0.0506 + 20080627-170000 + + + ESTRSWP5Y + 0.0452 + 20080627-170000 + + + EUB6SWP6Y + 0.0501 + 20080627-170000 + + + ESTRSWP6Y + 0.0459 + 20080627-170000 + + + EUB6SWP7Y + 0.0493 + 20080627-170000 + + + ESTRSWP7Y + 0.0459 + 20080627-170000 + + + EUB6SWP8Y + 0.0498 + 20080627-170000 + + + ESTRSWP8Y + 0.0464 + 20080627-170000 + + + EUB6SWP9Y + 0.0495 + 20080627-170000 + + + ESTRSWP9Y + 0.0467 + 20080627-170000 + + + EUB6SWP10Y + 0.0495 + 20080627-170000 + + + ESTRSWP10Y + 0.0468 + 20080627-170000 + + + EUB6SWP11Y + 0.0502 + 20080627-170000 + + + ESTRSWP11Y + 0.0472 + 20080627-170000 + + + EUB6SWP12Y + 0.0503 + 20080627-170000 + + + ESTRSWP12Y + 0.0471 + 20080627-170000 + + + EUB6SWP13Y + 0.0503 + 20080627-170000 + + + EUB6SWP14Y + 0.0503 + 20080627-170000 + + + EUB6SWP15Y + 0.051 + 20080627-170000 + + + ESTRSWP15Y + 0.0473 + 20080627-170000 + + + EUB6SWP16Y + 0.0505 + 20080627-170000 + + + EUB6SWP17Y + 0.0507 + 20080627-170000 + + + EUB6SWP18Y + 0.0512 + 20080627-170000 + + + EUB6SWP19Y + 0.051 + 20080627-170000 + + + EUB6SWP20Y + 0.0502 + 20080627-170000 + + + ESTRSWP20Y + 0.0481 + 20080627-170000 + + + EUB6SWP21Y + 0.0508 + 20080627-170000 + + + EUB6SWP22Y + 0.0506 + 20080627-170000 + + + EUB6SWP23Y + 0.0509 + 20080627-170000 + + + EUB6SWP24Y + 0.0501 + 20080627-170000 + + + EUB6SWP25Y + 0.0501 + 20080627-170000 + + + ESTRSWP25Y + 0.0472 + 20080627-170000 + + + EUB6SWP26Y + 0.0496 + 20080627-170000 + + + EUB6SWP27Y + 0.0503 + 20080627-170000 + + + EUB6SWP28Y + 0.0496 + 20080627-170000 + + + EUB6SWP29Y + 0.0496 + 20080627-170000 + + + EUB6SWP30Y + 0.0499 + 20080627-170000 + + + ESTRSWP30Y + 0.0465 + 20080627-170000 + + + EUB6SWP35Y + 0.0494 + 20080627-170000 + + + EUB6SWP40Y + 0.0484 + 20080627-170000 + + + EUB6SWP45Y + 0.048 + 20080627-170000 + + + EUB6SWP50Y + 0.0485 + 20080627-170000 + + + EUB6SWP60Y + 0.0477 + 20080627-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-30.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-30.xml new file mode 100644 index 000000000..60c876635 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-06-30.xml @@ -0,0 +1,344 @@ + + + 20080630-170000 + + EUB6FIX6M + 0.0512 + 20080630-170000 + + + ESTRSWP3W + 0.0417 + 20080630-170000 + + + ESTRSWP1W + 0.0396 + 20080630-170000 + + + ESTRSWP2W + 0.0413 + 20080630-170000 + + + ESTRSWP1M + 0.0418 + 20080630-170000 + + + ESTRSWP2M + 0.0424 + 20080630-170000 + + + ESTRSWP3M + 0.0431 + 20080630-170000 + + + ESTRSWP4M + 0.0434 + 20080630-170000 + + + ESTRSWP5M + 0.0435 + 20080630-170000 + + + ESTRSWP6M + 0.044 + 20080630-170000 + + + ESTRSWP7M + 0.0441 + 20080630-170000 + + + ESTRSWP8M + 0.0445 + 20080630-170000 + + + ESTRSWP9M + 0.0453 + 20080630-170000 + + + ESTRSWP10M + 0.0455 + 20080630-170000 + + + ESTRSWP11M + 0.0465 + 20080630-170000 + + + EUB6SWP1Y + 0.0533 + 20080630-170000 + + + ESTRSWP12M + 0.0459 + 20080630-170000 + + + ESTRSWP15M + 0.047 + 20080630-170000 + + + ESTRSWP18M + 0.0469 + 20080630-170000 + + + EUB6SWP2Y + 0.0539 + 20080630-170000 + + + ESTRSWP2Y + 0.0472 + 20080630-170000 + + + EUB6SWP3Y + 0.0526 + 20080630-170000 + + + ESTRSWP3Y + 0.0475 + 20080630-170000 + + + EUB6SWP4Y + 0.0519 + 20080630-170000 + + + ESTRSWP4Y + 0.0474 + 20080630-170000 + + + EUB6SWP5Y + 0.0512 + 20080630-170000 + + + ESTRSWP5Y + 0.0469 + 20080630-170000 + + + EUB6SWP6Y + 0.0512 + 20080630-170000 + + + ESTRSWP6Y + 0.0469 + 20080630-170000 + + + EUB6SWP7Y + 0.0505 + 20080630-170000 + + + ESTRSWP7Y + 0.0468 + 20080630-170000 + + + EUB6SWP8Y + 0.0503 + 20080630-170000 + + + ESTRSWP8Y + 0.0467 + 20080630-170000 + + + EUB6SWP9Y + 0.0507 + 20080630-170000 + + + ESTRSWP9Y + 0.0465 + 20080630-170000 + + + EUB6SWP10Y + 0.051 + 20080630-170000 + + + ESTRSWP10Y + 0.0473 + 20080630-170000 + + + EUB6SWP11Y + 0.0504 + 20080630-170000 + + + ESTRSWP11Y + 0.0476 + 20080630-170000 + + + EUB6SWP12Y + 0.0505 + 20080630-170000 + + + ESTRSWP12Y + 0.0477 + 20080630-170000 + + + EUB6SWP13Y + 0.0508 + 20080630-170000 + + + EUB6SWP14Y + 0.0511 + 20080630-170000 + + + EUB6SWP15Y + 0.0506 + 20080630-170000 + + + ESTRSWP15Y + 0.0482 + 20080630-170000 + + + EUB6SWP16Y + 0.0508 + 20080630-170000 + + + EUB6SWP17Y + 0.0511 + 20080630-170000 + + + EUB6SWP18Y + 0.051 + 20080630-170000 + + + EUB6SWP19Y + 0.0505 + 20080630-170000 + + + EUB6SWP20Y + 0.0504 + 20080630-170000 + + + ESTRSWP20Y + 0.0478 + 20080630-170000 + + + EUB6SWP21Y + 0.051 + 20080630-170000 + + + EUB6SWP22Y + 0.0503 + 20080630-170000 + + + EUB6SWP23Y + 0.0508 + 20080630-170000 + + + EUB6SWP24Y + 0.0505 + 20080630-170000 + + + EUB6SWP25Y + 0.0505 + 20080630-170000 + + + ESTRSWP25Y + 0.0471 + 20080630-170000 + + + EUB6SWP26Y + 0.0498 + 20080630-170000 + + + EUB6SWP27Y + 0.0496 + 20080630-170000 + + + EUB6SWP28Y + 0.0502 + 20080630-170000 + + + EUB6SWP29Y + 0.0494 + 20080630-170000 + + + EUB6SWP30Y + 0.0496 + 20080630-170000 + + + ESTRSWP30Y + 0.0468 + 20080630-170000 + + + EUB6SWP35Y + 0.0491 + 20080630-170000 + + + EUB6SWP40Y + 0.0483 + 20080630-170000 + + + EUB6SWP45Y + 0.0488 + 20080630-170000 + + + EUB6SWP50Y + 0.0481 + 20080630-170000 + + + EUB6SWP60Y + 0.0477 + 20080630-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-01.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-01.xml new file mode 100644 index 000000000..5a945e5ae --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-01.xml @@ -0,0 +1,344 @@ + + + 20080701-170000 + + EUB6FIX6M + 0.0515 + 20080701-170000 + + + ESTRSWP3W + 0.0419 + 20080701-170000 + + + ESTRSWP1W + 0.0403 + 20080701-170000 + + + ESTRSWP2W + 0.0413 + 20080701-170000 + + + ESTRSWP1M + 0.0421 + 20080701-170000 + + + ESTRSWP2M + 0.0429 + 20080701-170000 + + + ESTRSWP3M + 0.0432 + 20080701-170000 + + + ESTRSWP4M + 0.043 + 20080701-170000 + + + ESTRSWP5M + 0.0438 + 20080701-170000 + + + ESTRSWP6M + 0.0446 + 20080701-170000 + + + ESTRSWP7M + 0.0449 + 20080701-170000 + + + ESTRSWP8M + 0.045 + 20080701-170000 + + + ESTRSWP9M + 0.0455 + 20080701-170000 + + + ESTRSWP10M + 0.046 + 20080701-170000 + + + ESTRSWP11M + 0.0464 + 20080701-170000 + + + EUB6SWP1Y + 0.0532 + 20080701-170000 + + + ESTRSWP12M + 0.0464 + 20080701-170000 + + + ESTRSWP15M + 0.047 + 20080701-170000 + + + ESTRSWP18M + 0.047 + 20080701-170000 + + + EUB6SWP2Y + 0.0535 + 20080701-170000 + + + ESTRSWP2Y + 0.0474 + 20080701-170000 + + + EUB6SWP3Y + 0.0529 + 20080701-170000 + + + ESTRSWP3Y + 0.0479 + 20080701-170000 + + + EUB6SWP4Y + 0.0525 + 20080701-170000 + + + ESTRSWP4Y + 0.0474 + 20080701-170000 + + + EUB6SWP5Y + 0.0511 + 20080701-170000 + + + ESTRSWP5Y + 0.0469 + 20080701-170000 + + + EUB6SWP6Y + 0.0507 + 20080701-170000 + + + ESTRSWP6Y + 0.0464 + 20080701-170000 + + + EUB6SWP7Y + 0.0507 + 20080701-170000 + + + ESTRSWP7Y + 0.0466 + 20080701-170000 + + + EUB6SWP8Y + 0.0504 + 20080701-170000 + + + ESTRSWP8Y + 0.0464 + 20080701-170000 + + + EUB6SWP9Y + 0.0504 + 20080701-170000 + + + ESTRSWP9Y + 0.0465 + 20080701-170000 + + + EUB6SWP10Y + 0.0507 + 20080701-170000 + + + ESTRSWP10Y + 0.0474 + 20080701-170000 + + + EUB6SWP11Y + 0.0502 + 20080701-170000 + + + ESTRSWP11Y + 0.0471 + 20080701-170000 + + + EUB6SWP12Y + 0.0505 + 20080701-170000 + + + ESTRSWP12Y + 0.047 + 20080701-170000 + + + EUB6SWP13Y + 0.051 + 20080701-170000 + + + EUB6SWP14Y + 0.0506 + 20080701-170000 + + + EUB6SWP15Y + 0.051 + 20080701-170000 + + + ESTRSWP15Y + 0.048 + 20080701-170000 + + + EUB6SWP16Y + 0.0505 + 20080701-170000 + + + EUB6SWP17Y + 0.0504 + 20080701-170000 + + + EUB6SWP18Y + 0.0509 + 20080701-170000 + + + EUB6SWP19Y + 0.0505 + 20080701-170000 + + + EUB6SWP20Y + 0.0509 + 20080701-170000 + + + ESTRSWP20Y + 0.0481 + 20080701-170000 + + + EUB6SWP21Y + 0.0509 + 20080701-170000 + + + EUB6SWP22Y + 0.0509 + 20080701-170000 + + + EUB6SWP23Y + 0.0506 + 20080701-170000 + + + EUB6SWP24Y + 0.05 + 20080701-170000 + + + EUB6SWP25Y + 0.0502 + 20080701-170000 + + + ESTRSWP25Y + 0.0469 + 20080701-170000 + + + EUB6SWP26Y + 0.0502 + 20080701-170000 + + + EUB6SWP27Y + 0.0495 + 20080701-170000 + + + EUB6SWP28Y + 0.0495 + 20080701-170000 + + + EUB6SWP29Y + 0.0498 + 20080701-170000 + + + EUB6SWP30Y + 0.0492 + 20080701-170000 + + + ESTRSWP30Y + 0.0462 + 20080701-170000 + + + EUB6SWP35Y + 0.0486 + 20080701-170000 + + + EUB6SWP40Y + 0.0483 + 20080701-170000 + + + EUB6SWP45Y + 0.0486 + 20080701-170000 + + + EUB6SWP50Y + 0.0474 + 20080701-170000 + + + EUB6SWP60Y + 0.0473 + 20080701-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-02.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-02.xml new file mode 100644 index 000000000..c89e50fc0 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-02.xml @@ -0,0 +1,344 @@ + + + 20080702-170000 + + EUB6FIX6M + 0.0518 + 20080702-170000 + + + ESTRSWP3W + 0.0423 + 20080702-170000 + + + ESTRSWP1W + 0.0403 + 20080702-170000 + + + ESTRSWP2W + 0.0419 + 20080702-170000 + + + ESTRSWP1M + 0.0422 + 20080702-170000 + + + ESTRSWP2M + 0.0431 + 20080702-170000 + + + ESTRSWP3M + 0.0434 + 20080702-170000 + + + ESTRSWP4M + 0.044 + 20080702-170000 + + + ESTRSWP5M + 0.0441 + 20080702-170000 + + + ESTRSWP6M + 0.0443 + 20080702-170000 + + + ESTRSWP7M + 0.0452 + 20080702-170000 + + + ESTRSWP8M + 0.0456 + 20080702-170000 + + + ESTRSWP9M + 0.0454 + 20080702-170000 + + + ESTRSWP10M + 0.0457 + 20080702-170000 + + + ESTRSWP11M + 0.0461 + 20080702-170000 + + + EUB6SWP1Y + 0.0541 + 20080702-170000 + + + ESTRSWP12M + 0.0469 + 20080702-170000 + + + ESTRSWP15M + 0.0468 + 20080702-170000 + + + ESTRSWP18M + 0.0476 + 20080702-170000 + + + EUB6SWP2Y + 0.0539 + 20080702-170000 + + + ESTRSWP2Y + 0.0476 + 20080702-170000 + + + EUB6SWP3Y + 0.0539 + 20080702-170000 + + + ESTRSWP3Y + 0.0481 + 20080702-170000 + + + EUB6SWP4Y + 0.0524 + 20080702-170000 + + + ESTRSWP4Y + 0.0479 + 20080702-170000 + + + EUB6SWP5Y + 0.0525 + 20080702-170000 + + + ESTRSWP5Y + 0.0475 + 20080702-170000 + + + EUB6SWP6Y + 0.051 + 20080702-170000 + + + ESTRSWP6Y + 0.0469 + 20080702-170000 + + + EUB6SWP7Y + 0.0511 + 20080702-170000 + + + ESTRSWP7Y + 0.047 + 20080702-170000 + + + EUB6SWP8Y + 0.0512 + 20080702-170000 + + + ESTRSWP8Y + 0.0469 + 20080702-170000 + + + EUB6SWP9Y + 0.0508 + 20080702-170000 + + + ESTRSWP9Y + 0.047 + 20080702-170000 + + + EUB6SWP10Y + 0.0512 + 20080702-170000 + + + ESTRSWP10Y + 0.0474 + 20080702-170000 + + + EUB6SWP11Y + 0.0515 + 20080702-170000 + + + ESTRSWP11Y + 0.0475 + 20080702-170000 + + + EUB6SWP12Y + 0.0515 + 20080702-170000 + + + ESTRSWP12Y + 0.0476 + 20080702-170000 + + + EUB6SWP13Y + 0.0516 + 20080702-170000 + + + EUB6SWP14Y + 0.0509 + 20080702-170000 + + + EUB6SWP15Y + 0.0508 + 20080702-170000 + + + ESTRSWP15Y + 0.0478 + 20080702-170000 + + + EUB6SWP16Y + 0.0511 + 20080702-170000 + + + EUB6SWP17Y + 0.0512 + 20080702-170000 + + + EUB6SWP18Y + 0.0515 + 20080702-170000 + + + EUB6SWP19Y + 0.0514 + 20080702-170000 + + + EUB6SWP20Y + 0.0508 + 20080702-170000 + + + ESTRSWP20Y + 0.048 + 20080702-170000 + + + EUB6SWP21Y + 0.0509 + 20080702-170000 + + + EUB6SWP22Y + 0.0507 + 20080702-170000 + + + EUB6SWP23Y + 0.0506 + 20080702-170000 + + + EUB6SWP24Y + 0.0507 + 20080702-170000 + + + EUB6SWP25Y + 0.0505 + 20080702-170000 + + + ESTRSWP25Y + 0.0471 + 20080702-170000 + + + EUB6SWP26Y + 0.0502 + 20080702-170000 + + + EUB6SWP27Y + 0.0503 + 20080702-170000 + + + EUB6SWP28Y + 0.0497 + 20080702-170000 + + + EUB6SWP29Y + 0.0494 + 20080702-170000 + + + EUB6SWP30Y + 0.0497 + 20080702-170000 + + + ESTRSWP30Y + 0.0473 + 20080702-170000 + + + EUB6SWP35Y + 0.0493 + 20080702-170000 + + + EUB6SWP40Y + 0.0485 + 20080702-170000 + + + EUB6SWP45Y + 0.0485 + 20080702-170000 + + + EUB6SWP50Y + 0.0475 + 20080702-170000 + + + EUB6SWP60Y + 0.0471 + 20080702-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-03.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-03.xml new file mode 100644 index 000000000..caa9804d5 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-03.xml @@ -0,0 +1,344 @@ + + + 20080703-170000 + + EUB6FIX6M + 0.0518 + 20080703-170000 + + + ESTRSWP3W + 0.0422 + 20080703-170000 + + + ESTRSWP1W + 0.0421 + 20080703-170000 + + + ESTRSWP2W + 0.0423 + 20080703-170000 + + + ESTRSWP1M + 0.0426 + 20080703-170000 + + + ESTRSWP2M + 0.0426 + 20080703-170000 + + + ESTRSWP3M + 0.0427 + 20080703-170000 + + + ESTRSWP4M + 0.0434 + 20080703-170000 + + + ESTRSWP5M + 0.0439 + 20080703-170000 + + + ESTRSWP6M + 0.0435 + 20080703-170000 + + + ESTRSWP7M + 0.0446 + 20080703-170000 + + + ESTRSWP8M + 0.0448 + 20080703-170000 + + + ESTRSWP9M + 0.045 + 20080703-170000 + + + ESTRSWP10M + 0.0446 + 20080703-170000 + + + ESTRSWP11M + 0.0455 + 20080703-170000 + + + EUB6SWP1Y + 0.0531 + 20080703-170000 + + + ESTRSWP12M + 0.0449 + 20080703-170000 + + + ESTRSWP15M + 0.0453 + 20080703-170000 + + + ESTRSWP18M + 0.0452 + 20080703-170000 + + + EUB6SWP2Y + 0.0527 + 20080703-170000 + + + ESTRSWP2Y + 0.0459 + 20080703-170000 + + + EUB6SWP3Y + 0.0521 + 20080703-170000 + + + ESTRSWP3Y + 0.0458 + 20080703-170000 + + + EUB6SWP4Y + 0.0509 + 20080703-170000 + + + ESTRSWP4Y + 0.0461 + 20080703-170000 + + + EUB6SWP5Y + 0.0501 + 20080703-170000 + + + ESTRSWP5Y + 0.0459 + 20080703-170000 + + + EUB6SWP6Y + 0.0503 + 20080703-170000 + + + ESTRSWP6Y + 0.046 + 20080703-170000 + + + EUB6SWP7Y + 0.0495 + 20080703-170000 + + + ESTRSWP7Y + 0.0459 + 20080703-170000 + + + EUB6SWP8Y + 0.0497 + 20080703-170000 + + + ESTRSWP8Y + 0.0456 + 20080703-170000 + + + EUB6SWP9Y + 0.0494 + 20080703-170000 + + + ESTRSWP9Y + 0.0461 + 20080703-170000 + + + EUB6SWP10Y + 0.0504 + 20080703-170000 + + + ESTRSWP10Y + 0.046 + 20080703-170000 + + + EUB6SWP11Y + 0.0498 + 20080703-170000 + + + ESTRSWP11Y + 0.0468 + 20080703-170000 + + + EUB6SWP12Y + 0.0507 + 20080703-170000 + + + ESTRSWP12Y + 0.0465 + 20080703-170000 + + + EUB6SWP13Y + 0.0503 + 20080703-170000 + + + EUB6SWP14Y + 0.0508 + 20080703-170000 + + + EUB6SWP15Y + 0.0502 + 20080703-170000 + + + ESTRSWP15Y + 0.0476 + 20080703-170000 + + + EUB6SWP16Y + 0.0503 + 20080703-170000 + + + EUB6SWP17Y + 0.0512 + 20080703-170000 + + + EUB6SWP18Y + 0.0504 + 20080703-170000 + + + EUB6SWP19Y + 0.0505 + 20080703-170000 + + + EUB6SWP20Y + 0.0507 + 20080703-170000 + + + ESTRSWP20Y + 0.0478 + 20080703-170000 + + + EUB6SWP21Y + 0.0504 + 20080703-170000 + + + EUB6SWP22Y + 0.0501 + 20080703-170000 + + + EUB6SWP23Y + 0.0504 + 20080703-170000 + + + EUB6SWP24Y + 0.0504 + 20080703-170000 + + + EUB6SWP25Y + 0.0498 + 20080703-170000 + + + ESTRSWP25Y + 0.0468 + 20080703-170000 + + + EUB6SWP26Y + 0.0502 + 20080703-170000 + + + EUB6SWP27Y + 0.0495 + 20080703-170000 + + + EUB6SWP28Y + 0.0498 + 20080703-170000 + + + EUB6SWP29Y + 0.0498 + 20080703-170000 + + + EUB6SWP30Y + 0.0499 + 20080703-170000 + + + ESTRSWP30Y + 0.0463 + 20080703-170000 + + + EUB6SWP35Y + 0.0486 + 20080703-170000 + + + EUB6SWP40Y + 0.0483 + 20080703-170000 + + + EUB6SWP45Y + 0.0484 + 20080703-170000 + + + EUB6SWP50Y + 0.0482 + 20080703-170000 + + + EUB6SWP60Y + 0.0469 + 20080703-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-04.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-04.xml new file mode 100644 index 000000000..76933d06b --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-04.xml @@ -0,0 +1,344 @@ + + + 20080704-170000 + + EUB6FIX6M + 0.0515 + 20080704-170000 + + + ESTRSWP3W + 0.043 + 20080704-170000 + + + ESTRSWP1W + 0.0425 + 20080704-170000 + + + ESTRSWP2W + 0.0427 + 20080704-170000 + + + ESTRSWP1M + 0.0424 + 20080704-170000 + + + ESTRSWP2M + 0.0424 + 20080704-170000 + + + ESTRSWP3M + 0.0431 + 20080704-170000 + + + ESTRSWP4M + 0.0434 + 20080704-170000 + + + ESTRSWP5M + 0.0434 + 20080704-170000 + + + ESTRSWP6M + 0.0439 + 20080704-170000 + + + ESTRSWP7M + 0.0447 + 20080704-170000 + + + ESTRSWP8M + 0.0475 + 20080704-170000 + + + ESTRSWP9M + 0.0471 + 20080704-170000 + + + ESTRSWP10M + 0.0478 + 20080704-170000 + + + ESTRSWP11M + 0.0476 + 20080704-170000 + + + EUB6SWP1Y + 0.0529 + 20080704-170000 + + + ESTRSWP12M + 0.0456 + 20080704-170000 + + + ESTRSWP15M + 0.0454 + 20080704-170000 + + + ESTRSWP18M + 0.0482 + 20080704-170000 + + + EUB6SWP2Y + 0.0522 + 20080704-170000 + + + ESTRSWP2Y + 0.0485 + 20080704-170000 + + + EUB6SWP3Y + 0.051 + 20080704-170000 + + + ESTRSWP3Y + 0.0482 + 20080704-170000 + + + EUB6SWP4Y + 0.0509 + 20080704-170000 + + + ESTRSWP4Y + 0.0456 + 20080704-170000 + + + EUB6SWP5Y + 0.0501 + 20080704-170000 + + + ESTRSWP5Y + 0.0456 + 20080704-170000 + + + EUB6SWP6Y + 0.0499 + 20080704-170000 + + + ESTRSWP6Y + 0.0455 + 20080704-170000 + + + EUB6SWP7Y + 0.0499 + 20080704-170000 + + + ESTRSWP7Y + 0.0452 + 20080704-170000 + + + EUB6SWP8Y + 0.0496 + 20080704-170000 + + + ESTRSWP8Y + 0.0453 + 20080704-170000 + + + EUB6SWP9Y + 0.0493 + 20080704-170000 + + + ESTRSWP9Y + 0.0449 + 20080704-170000 + + + EUB6SWP10Y + 0.0492 + 20080704-170000 + + + ESTRSWP10Y + 0.0451 + 20080704-170000 + + + EUB6SWP11Y + 0.05 + 20080704-170000 + + + ESTRSWP11Y + 0.0462 + 20080704-170000 + + + EUB6SWP12Y + 0.0496 + 20080704-170000 + + + ESTRSWP12Y + 0.0466 + 20080704-170000 + + + EUB6SWP13Y + 0.0503 + 20080704-170000 + + + EUB6SWP14Y + 0.0502 + 20080704-170000 + + + EUB6SWP15Y + 0.05 + 20080704-170000 + + + ESTRSWP15Y + 0.0478 + 20080704-170000 + + + EUB6SWP16Y + 0.0502 + 20080704-170000 + + + EUB6SWP17Y + 0.0509 + 20080704-170000 + + + EUB6SWP18Y + 0.0503 + 20080704-170000 + + + EUB6SWP19Y + 0.0509 + 20080704-170000 + + + EUB6SWP20Y + 0.0501 + 20080704-170000 + + + ESTRSWP20Y + 0.0479 + 20080704-170000 + + + EUB6SWP21Y + 0.0502 + 20080704-170000 + + + EUB6SWP22Y + 0.0504 + 20080704-170000 + + + EUB6SWP23Y + 0.0496 + 20080704-170000 + + + EUB6SWP24Y + 0.0495 + 20080704-170000 + + + EUB6SWP25Y + 0.0499 + 20080704-170000 + + + ESTRSWP25Y + 0.0475 + 20080704-170000 + + + EUB6SWP26Y + 0.0495 + 20080704-170000 + + + EUB6SWP27Y + 0.0497 + 20080704-170000 + + + EUB6SWP28Y + 0.0491 + 20080704-170000 + + + EUB6SWP29Y + 0.0493 + 20080704-170000 + + + EUB6SWP30Y + 0.0493 + 20080704-170000 + + + ESTRSWP30Y + 0.0474 + 20080704-170000 + + + EUB6SWP35Y + 0.0491 + 20080704-170000 + + + EUB6SWP40Y + 0.048 + 20080704-170000 + + + EUB6SWP45Y + 0.0473 + 20080704-170000 + + + EUB6SWP50Y + 0.0471 + 20080704-170000 + + + EUB6SWP60Y + 0.0477 + 20080704-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-07.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-07.xml new file mode 100644 index 000000000..6030fc9f6 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-07.xml @@ -0,0 +1,344 @@ + + + 20080707-170000 + + EUB6FIX6M + 0.0514 + 20080707-170000 + + + ESTRSWP3W + 0.0431 + 20080707-170000 + + + ESTRSWP1W + 0.0427 + 20080707-170000 + + + ESTRSWP2W + 0.0427 + 20080707-170000 + + + ESTRSWP1M + 0.0431 + 20080707-170000 + + + ESTRSWP2M + 0.043 + 20080707-170000 + + + ESTRSWP3M + 0.0426 + 20080707-170000 + + + ESTRSWP4M + 0.0436 + 20080707-170000 + + + ESTRSWP5M + 0.0431 + 20080707-170000 + + + ESTRSWP6M + 0.0439 + 20080707-170000 + + + ESTRSWP7M + 0.0444 + 20080707-170000 + + + ESTRSWP8M + 0.0444 + 20080707-170000 + + + ESTRSWP9M + 0.0443 + 20080707-170000 + + + ESTRSWP10M + 0.0446 + 20080707-170000 + + + ESTRSWP11M + 0.0451 + 20080707-170000 + + + EUB6SWP1Y + 0.0523 + 20080707-170000 + + + ESTRSWP12M + 0.0452 + 20080707-170000 + + + ESTRSWP15M + 0.0451 + 20080707-170000 + + + ESTRSWP18M + 0.0449 + 20080707-170000 + + + EUB6SWP2Y + 0.0507 + 20080707-170000 + + + ESTRSWP2Y + 0.0449 + 20080707-170000 + + + EUB6SWP3Y + 0.0505 + 20080707-170000 + + + ESTRSWP3Y + 0.0445 + 20080707-170000 + + + EUB6SWP4Y + 0.0494 + 20080707-170000 + + + ESTRSWP4Y + 0.0452 + 20080707-170000 + + + EUB6SWP5Y + 0.0491 + 20080707-170000 + + + ESTRSWP5Y + 0.0444 + 20080707-170000 + + + EUB6SWP6Y + 0.0487 + 20080707-170000 + + + ESTRSWP6Y + 0.0442 + 20080707-170000 + + + EUB6SWP7Y + 0.0484 + 20080707-170000 + + + ESTRSWP7Y + 0.0447 + 20080707-170000 + + + EUB6SWP8Y + 0.0485 + 20080707-170000 + + + ESTRSWP8Y + 0.0443 + 20080707-170000 + + + EUB6SWP9Y + 0.0487 + 20080707-170000 + + + ESTRSWP9Y + 0.0448 + 20080707-170000 + + + EUB6SWP10Y + 0.0488 + 20080707-170000 + + + ESTRSWP10Y + 0.045 + 20080707-170000 + + + EUB6SWP11Y + 0.0491 + 20080707-170000 + + + ESTRSWP11Y + 0.0459 + 20080707-170000 + + + EUB6SWP12Y + 0.0492 + 20080707-170000 + + + ESTRSWP12Y + 0.0459 + 20080707-170000 + + + EUB6SWP13Y + 0.0498 + 20080707-170000 + + + EUB6SWP14Y + 0.05 + 20080707-170000 + + + EUB6SWP15Y + 0.05 + 20080707-170000 + + + ESTRSWP15Y + 0.0463 + 20080707-170000 + + + EUB6SWP16Y + 0.05 + 20080707-170000 + + + EUB6SWP17Y + 0.0498 + 20080707-170000 + + + EUB6SWP18Y + 0.0496 + 20080707-170000 + + + EUB6SWP19Y + 0.0502 + 20080707-170000 + + + EUB6SWP20Y + 0.0501 + 20080707-170000 + + + ESTRSWP20Y + 0.0473 + 20080707-170000 + + + EUB6SWP21Y + 0.0501 + 20080707-170000 + + + EUB6SWP22Y + 0.05 + 20080707-170000 + + + EUB6SWP23Y + 0.0499 + 20080707-170000 + + + EUB6SWP24Y + 0.0495 + 20080707-170000 + + + EUB6SWP25Y + 0.0494 + 20080707-170000 + + + ESTRSWP25Y + 0.046 + 20080707-170000 + + + EUB6SWP26Y + 0.0494 + 20080707-170000 + + + EUB6SWP27Y + 0.049 + 20080707-170000 + + + EUB6SWP28Y + 0.0492 + 20080707-170000 + + + EUB6SWP29Y + 0.0492 + 20080707-170000 + + + EUB6SWP30Y + 0.0488 + 20080707-170000 + + + ESTRSWP30Y + 0.0459 + 20080707-170000 + + + EUB6SWP35Y + 0.0485 + 20080707-170000 + + + EUB6SWP40Y + 0.0478 + 20080707-170000 + + + EUB6SWP45Y + 0.0476 + 20080707-170000 + + + EUB6SWP50Y + 0.0472 + 20080707-170000 + + + EUB6SWP60Y + 0.0468 + 20080707-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-08.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-08.xml new file mode 100644 index 000000000..ea6a76cda --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-08.xml @@ -0,0 +1,344 @@ + + + 20080708-170000 + + EUB6FIX6M + 0.0516 + 20080708-170000 + + + ESTRSWP3W + 0.0429 + 20080708-170000 + + + ESTRSWP1W + 0.0428 + 20080708-170000 + + + ESTRSWP2W + 0.0424 + 20080708-170000 + + + ESTRSWP1M + 0.0432 + 20080708-170000 + + + ESTRSWP2M + 0.0431 + 20080708-170000 + + + ESTRSWP3M + 0.0435 + 20080708-170000 + + + ESTRSWP4M + 0.043 + 20080708-170000 + + + ESTRSWP5M + 0.0432 + 20080708-170000 + + + ESTRSWP6M + 0.0438 + 20080708-170000 + + + ESTRSWP7M + 0.0443 + 20080708-170000 + + + ESTRSWP8M + 0.0445 + 20080708-170000 + + + ESTRSWP9M + 0.0449 + 20080708-170000 + + + ESTRSWP10M + 0.0445 + 20080708-170000 + + + ESTRSWP11M + 0.0451 + 20080708-170000 + + + EUB6SWP1Y + 0.0525 + 20080708-170000 + + + ESTRSWP12M + 0.0454 + 20080708-170000 + + + ESTRSWP15M + 0.0447 + 20080708-170000 + + + ESTRSWP18M + 0.0446 + 20080708-170000 + + + EUB6SWP2Y + 0.0521 + 20080708-170000 + + + ESTRSWP2Y + 0.0454 + 20080708-170000 + + + EUB6SWP3Y + 0.0509 + 20080708-170000 + + + ESTRSWP3Y + 0.045 + 20080708-170000 + + + EUB6SWP4Y + 0.0502 + 20080708-170000 + + + ESTRSWP4Y + 0.0449 + 20080708-170000 + + + EUB6SWP5Y + 0.0497 + 20080708-170000 + + + ESTRSWP5Y + 0.045 + 20080708-170000 + + + EUB6SWP6Y + 0.0494 + 20080708-170000 + + + ESTRSWP6Y + 0.045 + 20080708-170000 + + + EUB6SWP7Y + 0.0494 + 20080708-170000 + + + ESTRSWP7Y + 0.0446 + 20080708-170000 + + + EUB6SWP8Y + 0.049 + 20080708-170000 + + + ESTRSWP8Y + 0.0446 + 20080708-170000 + + + EUB6SWP9Y + 0.0489 + 20080708-170000 + + + ESTRSWP9Y + 0.0443 + 20080708-170000 + + + EUB6SWP10Y + 0.0492 + 20080708-170000 + + + ESTRSWP10Y + 0.0446 + 20080708-170000 + + + EUB6SWP11Y + 0.0492 + 20080708-170000 + + + ESTRSWP11Y + 0.0453 + 20080708-170000 + + + EUB6SWP12Y + 0.0493 + 20080708-170000 + + + ESTRSWP12Y + 0.0459 + 20080708-170000 + + + EUB6SWP13Y + 0.05 + 20080708-170000 + + + EUB6SWP14Y + 0.0494 + 20080708-170000 + + + EUB6SWP15Y + 0.0498 + 20080708-170000 + + + ESTRSWP15Y + 0.0464 + 20080708-170000 + + + EUB6SWP16Y + 0.0495 + 20080708-170000 + + + EUB6SWP17Y + 0.0498 + 20080708-170000 + + + EUB6SWP18Y + 0.0501 + 20080708-170000 + + + EUB6SWP19Y + 0.0503 + 20080708-170000 + + + EUB6SWP20Y + 0.0501 + 20080708-170000 + + + ESTRSWP20Y + 0.0467 + 20080708-170000 + + + EUB6SWP21Y + 0.0496 + 20080708-170000 + + + EUB6SWP22Y + 0.0497 + 20080708-170000 + + + EUB6SWP23Y + 0.0493 + 20080708-170000 + + + EUB6SWP24Y + 0.0501 + 20080708-170000 + + + EUB6SWP25Y + 0.0498 + 20080708-170000 + + + ESTRSWP25Y + 0.0464 + 20080708-170000 + + + EUB6SWP26Y + 0.0493 + 20080708-170000 + + + EUB6SWP27Y + 0.0496 + 20080708-170000 + + + EUB6SWP28Y + 0.0493 + 20080708-170000 + + + EUB6SWP29Y + 0.0495 + 20080708-170000 + + + EUB6SWP30Y + 0.0494 + 20080708-170000 + + + ESTRSWP30Y + 0.0462 + 20080708-170000 + + + EUB6SWP35Y + 0.0481 + 20080708-170000 + + + EUB6SWP40Y + 0.048 + 20080708-170000 + + + EUB6SWP45Y + 0.0481 + 20080708-170000 + + + EUB6SWP50Y + 0.0476 + 20080708-170000 + + + EUB6SWP60Y + 0.0473 + 20080708-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-09.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-09.xml new file mode 100644 index 000000000..65af4ceaa --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-09.xml @@ -0,0 +1,344 @@ + + + 20080709-170000 + + EUB6FIX6M + 0.0512 + 20080709-170000 + + + ESTRSWP3W + 0.0427 + 20080709-170000 + + + ESTRSWP1W + 0.0427 + 20080709-170000 + + + ESTRSWP2W + 0.0423 + 20080709-170000 + + + ESTRSWP1M + 0.043 + 20080709-170000 + + + ESTRSWP2M + 0.0425 + 20080709-170000 + + + ESTRSWP3M + 0.0436 + 20080709-170000 + + + ESTRSWP4M + 0.043 + 20080709-170000 + + + ESTRSWP5M + 0.0439 + 20080709-170000 + + + ESTRSWP6M + 0.0441 + 20080709-170000 + + + ESTRSWP7M + 0.0438 + 20080709-170000 + + + ESTRSWP8M + 0.0446 + 20080709-170000 + + + ESTRSWP9M + 0.0447 + 20080709-170000 + + + ESTRSWP10M + 0.0447 + 20080709-170000 + + + ESTRSWP11M + 0.0446 + 20080709-170000 + + + EUB6SWP1Y + 0.0529 + 20080709-170000 + + + ESTRSWP12M + 0.0447 + 20080709-170000 + + + ESTRSWP15M + 0.0448 + 20080709-170000 + + + ESTRSWP18M + 0.0455 + 20080709-170000 + + + EUB6SWP2Y + 0.0516 + 20080709-170000 + + + ESTRSWP2Y + 0.0455 + 20080709-170000 + + + EUB6SWP3Y + 0.0509 + 20080709-170000 + + + ESTRSWP3Y + 0.0446 + 20080709-170000 + + + EUB6SWP4Y + 0.0505 + 20080709-170000 + + + ESTRSWP4Y + 0.0454 + 20080709-170000 + + + EUB6SWP5Y + 0.05 + 20080709-170000 + + + ESTRSWP5Y + 0.0452 + 20080709-170000 + + + EUB6SWP6Y + 0.0492 + 20080709-170000 + + + ESTRSWP6Y + 0.0452 + 20080709-170000 + + + EUB6SWP7Y + 0.0485 + 20080709-170000 + + + ESTRSWP7Y + 0.0452 + 20080709-170000 + + + EUB6SWP8Y + 0.0491 + 20080709-170000 + + + ESTRSWP8Y + 0.045 + 20080709-170000 + + + EUB6SWP9Y + 0.049 + 20080709-170000 + + + ESTRSWP9Y + 0.0451 + 20080709-170000 + + + EUB6SWP10Y + 0.049 + 20080709-170000 + + + ESTRSWP10Y + 0.0448 + 20080709-170000 + + + EUB6SWP11Y + 0.0489 + 20080709-170000 + + + ESTRSWP11Y + 0.0453 + 20080709-170000 + + + EUB6SWP12Y + 0.0495 + 20080709-170000 + + + ESTRSWP12Y + 0.0463 + 20080709-170000 + + + EUB6SWP13Y + 0.0496 + 20080709-170000 + + + EUB6SWP14Y + 0.0495 + 20080709-170000 + + + EUB6SWP15Y + 0.0499 + 20080709-170000 + + + ESTRSWP15Y + 0.0467 + 20080709-170000 + + + EUB6SWP16Y + 0.0501 + 20080709-170000 + + + EUB6SWP17Y + 0.0497 + 20080709-170000 + + + EUB6SWP18Y + 0.0498 + 20080709-170000 + + + EUB6SWP19Y + 0.0502 + 20080709-170000 + + + EUB6SWP20Y + 0.0503 + 20080709-170000 + + + ESTRSWP20Y + 0.0465 + 20080709-170000 + + + EUB6SWP21Y + 0.0497 + 20080709-170000 + + + EUB6SWP22Y + 0.0495 + 20080709-170000 + + + EUB6SWP23Y + 0.0496 + 20080709-170000 + + + EUB6SWP24Y + 0.0496 + 20080709-170000 + + + EUB6SWP25Y + 0.0489 + 20080709-170000 + + + ESTRSWP25Y + 0.0464 + 20080709-170000 + + + EUB6SWP26Y + 0.0494 + 20080709-170000 + + + EUB6SWP27Y + 0.049 + 20080709-170000 + + + EUB6SWP28Y + 0.0488 + 20080709-170000 + + + EUB6SWP29Y + 0.0492 + 20080709-170000 + + + EUB6SWP30Y + 0.0484 + 20080709-170000 + + + ESTRSWP30Y + 0.0461 + 20080709-170000 + + + EUB6SWP35Y + 0.0486 + 20080709-170000 + + + EUB6SWP40Y + 0.0483 + 20080709-170000 + + + EUB6SWP45Y + 0.0478 + 20080709-170000 + + + EUB6SWP50Y + 0.0469 + 20080709-170000 + + + EUB6SWP60Y + 0.0471 + 20080709-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-10.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-10.xml new file mode 100644 index 000000000..b2bccf52e --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-10.xml @@ -0,0 +1,344 @@ + + + 20080710-170000 + + EUB6FIX6M + 0.0509 + 20080710-170000 + + + ESTRSWP3W + 0.043 + 20080710-170000 + + + ESTRSWP1W + 0.0431 + 20080710-170000 + + + ESTRSWP2W + 0.0432 + 20080710-170000 + + + ESTRSWP1M + 0.0423 + 20080710-170000 + + + ESTRSWP2M + 0.0429 + 20080710-170000 + + + ESTRSWP3M + 0.0436 + 20080710-170000 + + + ESTRSWP4M + 0.0431 + 20080710-170000 + + + ESTRSWP5M + 0.0437 + 20080710-170000 + + + ESTRSWP6M + 0.0435 + 20080710-170000 + + + ESTRSWP7M + 0.0445 + 20080710-170000 + + + ESTRSWP8M + 0.0444 + 20080710-170000 + + + ESTRSWP9M + 0.0446 + 20080710-170000 + + + ESTRSWP10M + 0.0442 + 20080710-170000 + + + ESTRSWP11M + 0.0446 + 20080710-170000 + + + EUB6SWP1Y + 0.0523 + 20080710-170000 + + + ESTRSWP12M + 0.0451 + 20080710-170000 + + + ESTRSWP15M + 0.0443 + 20080710-170000 + + + ESTRSWP18M + 0.0444 + 20080710-170000 + + + EUB6SWP2Y + 0.0518 + 20080710-170000 + + + ESTRSWP2Y + 0.045 + 20080710-170000 + + + EUB6SWP3Y + 0.0507 + 20080710-170000 + + + ESTRSWP3Y + 0.0448 + 20080710-170000 + + + EUB6SWP4Y + 0.0505 + 20080710-170000 + + + ESTRSWP4Y + 0.0452 + 20080710-170000 + + + EUB6SWP5Y + 0.0495 + 20080710-170000 + + + ESTRSWP5Y + 0.0452 + 20080710-170000 + + + EUB6SWP6Y + 0.0498 + 20080710-170000 + + + ESTRSWP6Y + 0.0447 + 20080710-170000 + + + EUB6SWP7Y + 0.0496 + 20080710-170000 + + + ESTRSWP7Y + 0.0454 + 20080710-170000 + + + EUB6SWP8Y + 0.0491 + 20080710-170000 + + + ESTRSWP8Y + 0.0451 + 20080710-170000 + + + EUB6SWP9Y + 0.0491 + 20080710-170000 + + + ESTRSWP9Y + 0.0448 + 20080710-170000 + + + EUB6SWP10Y + 0.0491 + 20080710-170000 + + + ESTRSWP10Y + 0.0453 + 20080710-170000 + + + EUB6SWP11Y + 0.049 + 20080710-170000 + + + ESTRSWP11Y + 0.0461 + 20080710-170000 + + + EUB6SWP12Y + 0.05 + 20080710-170000 + + + ESTRSWP12Y + 0.0459 + 20080710-170000 + + + EUB6SWP13Y + 0.0496 + 20080710-170000 + + + EUB6SWP14Y + 0.05 + 20080710-170000 + + + EUB6SWP15Y + 0.0503 + 20080710-170000 + + + ESTRSWP15Y + 0.0463 + 20080710-170000 + + + EUB6SWP16Y + 0.0504 + 20080710-170000 + + + EUB6SWP17Y + 0.0503 + 20080710-170000 + + + EUB6SWP18Y + 0.05 + 20080710-170000 + + + EUB6SWP19Y + 0.0501 + 20080710-170000 + + + EUB6SWP20Y + 0.0497 + 20080710-170000 + + + ESTRSWP20Y + 0.0468 + 20080710-170000 + + + EUB6SWP21Y + 0.0497 + 20080710-170000 + + + EUB6SWP22Y + 0.0503 + 20080710-170000 + + + EUB6SWP23Y + 0.0499 + 20080710-170000 + + + EUB6SWP24Y + 0.0493 + 20080710-170000 + + + EUB6SWP25Y + 0.0491 + 20080710-170000 + + + ESTRSWP25Y + 0.047 + 20080710-170000 + + + EUB6SWP26Y + 0.0496 + 20080710-170000 + + + EUB6SWP27Y + 0.0495 + 20080710-170000 + + + EUB6SWP28Y + 0.0487 + 20080710-170000 + + + EUB6SWP29Y + 0.0486 + 20080710-170000 + + + EUB6SWP30Y + 0.0493 + 20080710-170000 + + + ESTRSWP30Y + 0.046 + 20080710-170000 + + + EUB6SWP35Y + 0.049 + 20080710-170000 + + + EUB6SWP40Y + 0.0485 + 20080710-170000 + + + EUB6SWP45Y + 0.0481 + 20080710-170000 + + + EUB6SWP50Y + 0.0473 + 20080710-170000 + + + EUB6SWP60Y + 0.0472 + 20080710-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-11.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-11.xml new file mode 100644 index 000000000..83b526391 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-11.xml @@ -0,0 +1,344 @@ + + + 20080711-170000 + + EUB6FIX6M + 0.051 + 20080711-170000 + + + ESTRSWP3W + 0.043 + 20080711-170000 + + + ESTRSWP1W + 0.043 + 20080711-170000 + + + ESTRSWP2W + 0.0427 + 20080711-170000 + + + ESTRSWP1M + 0.0432 + 20080711-170000 + + + ESTRSWP2M + 0.0431 + 20080711-170000 + + + ESTRSWP3M + 0.0433 + 20080711-170000 + + + ESTRSWP4M + 0.0429 + 20080711-170000 + + + ESTRSWP5M + 0.0436 + 20080711-170000 + + + ESTRSWP6M + 0.0438 + 20080711-170000 + + + ESTRSWP7M + 0.0439 + 20080711-170000 + + + ESTRSWP8M + 0.0437 + 20080711-170000 + + + ESTRSWP9M + 0.0442 + 20080711-170000 + + + ESTRSWP10M + 0.0447 + 20080711-170000 + + + ESTRSWP11M + 0.0444 + 20080711-170000 + + + EUB6SWP1Y + 0.0521 + 20080711-170000 + + + ESTRSWP12M + 0.0452 + 20080711-170000 + + + ESTRSWP15M + 0.0441 + 20080711-170000 + + + ESTRSWP18M + 0.0446 + 20080711-170000 + + + EUB6SWP2Y + 0.0516 + 20080711-170000 + + + ESTRSWP2Y + 0.0454 + 20080711-170000 + + + EUB6SWP3Y + 0.0509 + 20080711-170000 + + + ESTRSWP3Y + 0.0454 + 20080711-170000 + + + EUB6SWP4Y + 0.0503 + 20080711-170000 + + + ESTRSWP4Y + 0.045 + 20080711-170000 + + + EUB6SWP5Y + 0.0497 + 20080711-170000 + + + ESTRSWP5Y + 0.0459 + 20080711-170000 + + + EUB6SWP6Y + 0.0499 + 20080711-170000 + + + ESTRSWP6Y + 0.0457 + 20080711-170000 + + + EUB6SWP7Y + 0.0499 + 20080711-170000 + + + ESTRSWP7Y + 0.0456 + 20080711-170000 + + + EUB6SWP8Y + 0.049 + 20080711-170000 + + + ESTRSWP8Y + 0.0451 + 20080711-170000 + + + EUB6SWP9Y + 0.049 + 20080711-170000 + + + ESTRSWP9Y + 0.0461 + 20080711-170000 + + + EUB6SWP10Y + 0.0496 + 20080711-170000 + + + ESTRSWP10Y + 0.0459 + 20080711-170000 + + + EUB6SWP11Y + 0.0494 + 20080711-170000 + + + ESTRSWP11Y + 0.0459 + 20080711-170000 + + + EUB6SWP12Y + 0.0505 + 20080711-170000 + + + ESTRSWP12Y + 0.046 + 20080711-170000 + + + EUB6SWP13Y + 0.0503 + 20080711-170000 + + + EUB6SWP14Y + 0.0504 + 20080711-170000 + + + EUB6SWP15Y + 0.0504 + 20080711-170000 + + + ESTRSWP15Y + 0.0475 + 20080711-170000 + + + EUB6SWP16Y + 0.0499 + 20080711-170000 + + + EUB6SWP17Y + 0.0506 + 20080711-170000 + + + EUB6SWP18Y + 0.05 + 20080711-170000 + + + EUB6SWP19Y + 0.0502 + 20080711-170000 + + + EUB6SWP20Y + 0.0499 + 20080711-170000 + + + ESTRSWP20Y + 0.0478 + 20080711-170000 + + + EUB6SWP21Y + 0.0507 + 20080711-170000 + + + EUB6SWP22Y + 0.0503 + 20080711-170000 + + + EUB6SWP23Y + 0.0496 + 20080711-170000 + + + EUB6SWP24Y + 0.0501 + 20080711-170000 + + + EUB6SWP25Y + 0.05 + 20080711-170000 + + + ESTRSWP25Y + 0.0471 + 20080711-170000 + + + EUB6SWP26Y + 0.0498 + 20080711-170000 + + + EUB6SWP27Y + 0.0498 + 20080711-170000 + + + EUB6SWP28Y + 0.0501 + 20080711-170000 + + + EUB6SWP29Y + 0.0494 + 20080711-170000 + + + EUB6SWP30Y + 0.0496 + 20080711-170000 + + + ESTRSWP30Y + 0.047 + 20080711-170000 + + + EUB6SWP35Y + 0.0493 + 20080711-170000 + + + EUB6SWP40Y + 0.0487 + 20080711-170000 + + + EUB6SWP45Y + 0.0477 + 20080711-170000 + + + EUB6SWP50Y + 0.048 + 20080711-170000 + + + EUB6SWP60Y + 0.0473 + 20080711-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-14.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-14.xml new file mode 100644 index 000000000..db6e87580 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-14.xml @@ -0,0 +1,344 @@ + + + 20080714-170000 + + EUB6FIX6M + 0.051 + 20080714-170000 + + + ESTRSWP3W + 0.043 + 20080714-170000 + + + ESTRSWP1W + 0.0423 + 20080714-170000 + + + ESTRSWP2W + 0.0431 + 20080714-170000 + + + ESTRSWP1M + 0.0431 + 20080714-170000 + + + ESTRSWP2M + 0.0426 + 20080714-170000 + + + ESTRSWP3M + 0.0436 + 20080714-170000 + + + ESTRSWP4M + 0.0434 + 20080714-170000 + + + ESTRSWP5M + 0.0439 + 20080714-170000 + + + ESTRSWP6M + 0.0441 + 20080714-170000 + + + ESTRSWP7M + 0.0439 + 20080714-170000 + + + ESTRSWP8M + 0.0444 + 20080714-170000 + + + ESTRSWP9M + 0.0442 + 20080714-170000 + + + ESTRSWP10M + 0.0442 + 20080714-170000 + + + ESTRSWP11M + 0.0442 + 20080714-170000 + + + EUB6SWP1Y + 0.0523 + 20080714-170000 + + + ESTRSWP12M + 0.0449 + 20080714-170000 + + + ESTRSWP15M + 0.0448 + 20080714-170000 + + + ESTRSWP18M + 0.0446 + 20080714-170000 + + + EUB6SWP2Y + 0.0513 + 20080714-170000 + + + ESTRSWP2Y + 0.0442 + 20080714-170000 + + + EUB6SWP3Y + 0.0504 + 20080714-170000 + + + ESTRSWP3Y + 0.0444 + 20080714-170000 + + + EUB6SWP4Y + 0.0494 + 20080714-170000 + + + ESTRSWP4Y + 0.0451 + 20080714-170000 + + + EUB6SWP5Y + 0.0493 + 20080714-170000 + + + ESTRSWP5Y + 0.0445 + 20080714-170000 + + + EUB6SWP6Y + 0.0492 + 20080714-170000 + + + ESTRSWP6Y + 0.0443 + 20080714-170000 + + + EUB6SWP7Y + 0.0489 + 20080714-170000 + + + ESTRSWP7Y + 0.0438 + 20080714-170000 + + + EUB6SWP8Y + 0.0489 + 20080714-170000 + + + ESTRSWP8Y + 0.0448 + 20080714-170000 + + + EUB6SWP9Y + 0.0483 + 20080714-170000 + + + ESTRSWP9Y + 0.0449 + 20080714-170000 + + + EUB6SWP10Y + 0.049 + 20080714-170000 + + + ESTRSWP10Y + 0.0447 + 20080714-170000 + + + EUB6SWP11Y + 0.0493 + 20080714-170000 + + + ESTRSWP11Y + 0.045 + 20080714-170000 + + + EUB6SWP12Y + 0.0497 + 20080714-170000 + + + ESTRSWP12Y + 0.0454 + 20080714-170000 + + + EUB6SWP13Y + 0.0492 + 20080714-170000 + + + EUB6SWP14Y + 0.0498 + 20080714-170000 + + + EUB6SWP15Y + 0.0495 + 20080714-170000 + + + ESTRSWP15Y + 0.0463 + 20080714-170000 + + + EUB6SWP16Y + 0.0497 + 20080714-170000 + + + EUB6SWP17Y + 0.0501 + 20080714-170000 + + + EUB6SWP18Y + 0.0498 + 20080714-170000 + + + EUB6SWP19Y + 0.05 + 20080714-170000 + + + EUB6SWP20Y + 0.0494 + 20080714-170000 + + + ESTRSWP20Y + 0.0467 + 20080714-170000 + + + EUB6SWP21Y + 0.0498 + 20080714-170000 + + + EUB6SWP22Y + 0.0497 + 20080714-170000 + + + EUB6SWP23Y + 0.0497 + 20080714-170000 + + + EUB6SWP24Y + 0.0491 + 20080714-170000 + + + EUB6SWP25Y + 0.0489 + 20080714-170000 + + + ESTRSWP25Y + 0.0465 + 20080714-170000 + + + EUB6SWP26Y + 0.0496 + 20080714-170000 + + + EUB6SWP27Y + 0.049 + 20080714-170000 + + + EUB6SWP28Y + 0.0492 + 20080714-170000 + + + EUB6SWP29Y + 0.0485 + 20080714-170000 + + + EUB6SWP30Y + 0.0483 + 20080714-170000 + + + ESTRSWP30Y + 0.0459 + 20080714-170000 + + + EUB6SWP35Y + 0.0483 + 20080714-170000 + + + EUB6SWP40Y + 0.0477 + 20080714-170000 + + + EUB6SWP45Y + 0.0476 + 20080714-170000 + + + EUB6SWP50Y + 0.0468 + 20080714-170000 + + + EUB6SWP60Y + 0.0464 + 20080714-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-15.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-15.xml new file mode 100644 index 000000000..f823965e7 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-15.xml @@ -0,0 +1,344 @@ + + + 20080715-170000 + + EUB6FIX6M + 0.0516 + 20080715-170000 + + + ESTRSWP3W + 0.0432 + 20080715-170000 + + + ESTRSWP1W + 0.0424 + 20080715-170000 + + + ESTRSWP2W + 0.0427 + 20080715-170000 + + + ESTRSWP1M + 0.0422 + 20080715-170000 + + + ESTRSWP2M + 0.0432 + 20080715-170000 + + + ESTRSWP3M + 0.0432 + 20080715-170000 + + + ESTRSWP4M + 0.043 + 20080715-170000 + + + ESTRSWP5M + 0.0432 + 20080715-170000 + + + ESTRSWP6M + 0.0438 + 20080715-170000 + + + ESTRSWP7M + 0.0442 + 20080715-170000 + + + ESTRSWP8M + 0.0439 + 20080715-170000 + + + ESTRSWP9M + 0.0441 + 20080715-170000 + + + ESTRSWP10M + 0.0445 + 20080715-170000 + + + ESTRSWP11M + 0.0439 + 20080715-170000 + + + EUB6SWP1Y + 0.0523 + 20080715-170000 + + + ESTRSWP12M + 0.0448 + 20080715-170000 + + + ESTRSWP15M + 0.0439 + 20080715-170000 + + + ESTRSWP18M + 0.0443 + 20080715-170000 + + + EUB6SWP2Y + 0.0508 + 20080715-170000 + + + ESTRSWP2Y + 0.044 + 20080715-170000 + + + EUB6SWP3Y + 0.0505 + 20080715-170000 + + + ESTRSWP3Y + 0.0444 + 20080715-170000 + + + EUB6SWP4Y + 0.0499 + 20080715-170000 + + + ESTRSWP4Y + 0.0442 + 20080715-170000 + + + EUB6SWP5Y + 0.0489 + 20080715-170000 + + + ESTRSWP5Y + 0.0439 + 20080715-170000 + + + EUB6SWP6Y + 0.0492 + 20080715-170000 + + + ESTRSWP6Y + 0.044 + 20080715-170000 + + + EUB6SWP7Y + 0.0487 + 20080715-170000 + + + ESTRSWP7Y + 0.0446 + 20080715-170000 + + + EUB6SWP8Y + 0.0485 + 20080715-170000 + + + ESTRSWP8Y + 0.0443 + 20080715-170000 + + + EUB6SWP9Y + 0.0486 + 20080715-170000 + + + ESTRSWP9Y + 0.0441 + 20080715-170000 + + + EUB6SWP10Y + 0.0491 + 20080715-170000 + + + ESTRSWP10Y + 0.0445 + 20080715-170000 + + + EUB6SWP11Y + 0.0489 + 20080715-170000 + + + ESTRSWP11Y + 0.0457 + 20080715-170000 + + + EUB6SWP12Y + 0.0495 + 20080715-170000 + + + ESTRSWP12Y + 0.0455 + 20080715-170000 + + + EUB6SWP13Y + 0.0498 + 20080715-170000 + + + EUB6SWP14Y + 0.05 + 20080715-170000 + + + EUB6SWP15Y + 0.0493 + 20080715-170000 + + + ESTRSWP15Y + 0.0465 + 20080715-170000 + + + EUB6SWP16Y + 0.0503 + 20080715-170000 + + + EUB6SWP17Y + 0.0497 + 20080715-170000 + + + EUB6SWP18Y + 0.0499 + 20080715-170000 + + + EUB6SWP19Y + 0.0503 + 20080715-170000 + + + EUB6SWP20Y + 0.0496 + 20080715-170000 + + + ESTRSWP20Y + 0.0464 + 20080715-170000 + + + EUB6SWP21Y + 0.0498 + 20080715-170000 + + + EUB6SWP22Y + 0.0495 + 20080715-170000 + + + EUB6SWP23Y + 0.0496 + 20080715-170000 + + + EUB6SWP24Y + 0.049 + 20080715-170000 + + + EUB6SWP25Y + 0.0497 + 20080715-170000 + + + ESTRSWP25Y + 0.0462 + 20080715-170000 + + + EUB6SWP26Y + 0.0494 + 20080715-170000 + + + EUB6SWP27Y + 0.0491 + 20080715-170000 + + + EUB6SWP28Y + 0.0492 + 20080715-170000 + + + EUB6SWP29Y + 0.0492 + 20080715-170000 + + + EUB6SWP30Y + 0.0489 + 20080715-170000 + + + ESTRSWP30Y + 0.0455 + 20080715-170000 + + + EUB6SWP35Y + 0.0481 + 20080715-170000 + + + EUB6SWP40Y + 0.0481 + 20080715-170000 + + + EUB6SWP45Y + 0.0478 + 20080715-170000 + + + EUB6SWP50Y + 0.0469 + 20080715-170000 + + + EUB6SWP60Y + 0.0471 + 20080715-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-16.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-16.xml new file mode 100644 index 000000000..0ab1164a9 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-16.xml @@ -0,0 +1,344 @@ + + + 20080716-170000 + + EUB6FIX6M + 0.0509 + 20080716-170000 + + + ESTRSWP3W + 0.0428 + 20080716-170000 + + + ESTRSWP1W + 0.0424 + 20080716-170000 + + + ESTRSWP2W + 0.0424 + 20080716-170000 + + + ESTRSWP1M + 0.0425 + 20080716-170000 + + + ESTRSWP2M + 0.0427 + 20080716-170000 + + + ESTRSWP3M + 0.0427 + 20080716-170000 + + + ESTRSWP4M + 0.0433 + 20080716-170000 + + + ESTRSWP5M + 0.0431 + 20080716-170000 + + + ESTRSWP6M + 0.044 + 20080716-170000 + + + ESTRSWP7M + 0.044 + 20080716-170000 + + + ESTRSWP8M + 0.0434 + 20080716-170000 + + + ESTRSWP9M + 0.0444 + 20080716-170000 + + + ESTRSWP10M + 0.0438 + 20080716-170000 + + + ESTRSWP11M + 0.0446 + 20080716-170000 + + + EUB6SWP1Y + 0.0519 + 20080716-170000 + + + ESTRSWP12M + 0.044 + 20080716-170000 + + + ESTRSWP15M + 0.0443 + 20080716-170000 + + + ESTRSWP18M + 0.044 + 20080716-170000 + + + EUB6SWP2Y + 0.0511 + 20080716-170000 + + + ESTRSWP2Y + 0.0444 + 20080716-170000 + + + EUB6SWP3Y + 0.0504 + 20080716-170000 + + + ESTRSWP3Y + 0.0442 + 20080716-170000 + + + EUB6SWP4Y + 0.0502 + 20080716-170000 + + + ESTRSWP4Y + 0.0449 + 20080716-170000 + + + EUB6SWP5Y + 0.0499 + 20080716-170000 + + + ESTRSWP5Y + 0.0448 + 20080716-170000 + + + EUB6SWP6Y + 0.0492 + 20080716-170000 + + + ESTRSWP6Y + 0.0448 + 20080716-170000 + + + EUB6SWP7Y + 0.049 + 20080716-170000 + + + ESTRSWP7Y + 0.0446 + 20080716-170000 + + + EUB6SWP8Y + 0.0487 + 20080716-170000 + + + ESTRSWP8Y + 0.0444 + 20080716-170000 + + + EUB6SWP9Y + 0.0488 + 20080716-170000 + + + ESTRSWP9Y + 0.0453 + 20080716-170000 + + + EUB6SWP10Y + 0.0489 + 20080716-170000 + + + ESTRSWP10Y + 0.0453 + 20080716-170000 + + + EUB6SWP11Y + 0.0497 + 20080716-170000 + + + ESTRSWP11Y + 0.0456 + 20080716-170000 + + + EUB6SWP12Y + 0.0495 + 20080716-170000 + + + ESTRSWP12Y + 0.0458 + 20080716-170000 + + + EUB6SWP13Y + 0.0496 + 20080716-170000 + + + EUB6SWP14Y + 0.0493 + 20080716-170000 + + + EUB6SWP15Y + 0.0495 + 20080716-170000 + + + ESTRSWP15Y + 0.0462 + 20080716-170000 + + + EUB6SWP16Y + 0.05 + 20080716-170000 + + + EUB6SWP17Y + 0.0499 + 20080716-170000 + + + EUB6SWP18Y + 0.0502 + 20080716-170000 + + + EUB6SWP19Y + 0.0494 + 20080716-170000 + + + EUB6SWP20Y + 0.0502 + 20080716-170000 + + + ESTRSWP20Y + 0.0463 + 20080716-170000 + + + EUB6SWP21Y + 0.0502 + 20080716-170000 + + + EUB6SWP22Y + 0.0498 + 20080716-170000 + + + EUB6SWP23Y + 0.0492 + 20080716-170000 + + + EUB6SWP24Y + 0.0493 + 20080716-170000 + + + EUB6SWP25Y + 0.0495 + 20080716-170000 + + + ESTRSWP25Y + 0.0464 + 20080716-170000 + + + EUB6SWP26Y + 0.0497 + 20080716-170000 + + + EUB6SWP27Y + 0.049 + 20080716-170000 + + + EUB6SWP28Y + 0.0492 + 20080716-170000 + + + EUB6SWP29Y + 0.049 + 20080716-170000 + + + EUB6SWP30Y + 0.0492 + 20080716-170000 + + + ESTRSWP30Y + 0.0462 + 20080716-170000 + + + EUB6SWP35Y + 0.0484 + 20080716-170000 + + + EUB6SWP40Y + 0.048 + 20080716-170000 + + + EUB6SWP45Y + 0.0474 + 20080716-170000 + + + EUB6SWP50Y + 0.0472 + 20080716-170000 + + + EUB6SWP60Y + 0.0469 + 20080716-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-17.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-17.xml new file mode 100644 index 000000000..e699be3f3 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-17.xml @@ -0,0 +1,344 @@ + + + 20080717-170000 + + EUB6FIX6M + 0.0516 + 20080717-170000 + + + ESTRSWP3W + 0.0427 + 20080717-170000 + + + ESTRSWP1W + 0.0426 + 20080717-170000 + + + ESTRSWP2W + 0.0431 + 20080717-170000 + + + ESTRSWP1M + 0.0427 + 20080717-170000 + + + ESTRSWP2M + 0.0425 + 20080717-170000 + + + ESTRSWP3M + 0.0432 + 20080717-170000 + + + ESTRSWP4M + 0.0436 + 20080717-170000 + + + ESTRSWP5M + 0.044 + 20080717-170000 + + + ESTRSWP6M + 0.0438 + 20080717-170000 + + + ESTRSWP7M + 0.0438 + 20080717-170000 + + + ESTRSWP8M + 0.0442 + 20080717-170000 + + + ESTRSWP9M + 0.044 + 20080717-170000 + + + ESTRSWP10M + 0.0442 + 20080717-170000 + + + ESTRSWP11M + 0.0443 + 20080717-170000 + + + EUB6SWP1Y + 0.0523 + 20080717-170000 + + + ESTRSWP12M + 0.045 + 20080717-170000 + + + ESTRSWP15M + 0.0444 + 20080717-170000 + + + ESTRSWP18M + 0.0446 + 20080717-170000 + + + EUB6SWP2Y + 0.0508 + 20080717-170000 + + + ESTRSWP2Y + 0.0449 + 20080717-170000 + + + EUB6SWP3Y + 0.0512 + 20080717-170000 + + + ESTRSWP3Y + 0.045 + 20080717-170000 + + + EUB6SWP4Y + 0.0506 + 20080717-170000 + + + ESTRSWP4Y + 0.0447 + 20080717-170000 + + + EUB6SWP5Y + 0.0496 + 20080717-170000 + + + ESTRSWP5Y + 0.0449 + 20080717-170000 + + + EUB6SWP6Y + 0.0502 + 20080717-170000 + + + ESTRSWP6Y + 0.0454 + 20080717-170000 + + + EUB6SWP7Y + 0.0498 + 20080717-170000 + + + ESTRSWP7Y + 0.0451 + 20080717-170000 + + + EUB6SWP8Y + 0.0489 + 20080717-170000 + + + ESTRSWP8Y + 0.0452 + 20080717-170000 + + + EUB6SWP9Y + 0.0491 + 20080717-170000 + + + ESTRSWP9Y + 0.0452 + 20080717-170000 + + + EUB6SWP10Y + 0.0496 + 20080717-170000 + + + ESTRSWP10Y + 0.0452 + 20080717-170000 + + + EUB6SWP11Y + 0.05 + 20080717-170000 + + + ESTRSWP11Y + 0.0463 + 20080717-170000 + + + EUB6SWP12Y + 0.0498 + 20080717-170000 + + + ESTRSWP12Y + 0.046 + 20080717-170000 + + + EUB6SWP13Y + 0.0504 + 20080717-170000 + + + EUB6SWP14Y + 0.0498 + 20080717-170000 + + + EUB6SWP15Y + 0.0499 + 20080717-170000 + + + ESTRSWP15Y + 0.0469 + 20080717-170000 + + + EUB6SWP16Y + 0.05 + 20080717-170000 + + + EUB6SWP17Y + 0.0507 + 20080717-170000 + + + EUB6SWP18Y + 0.05 + 20080717-170000 + + + EUB6SWP19Y + 0.0504 + 20080717-170000 + + + EUB6SWP20Y + 0.0507 + 20080717-170000 + + + ESTRSWP20Y + 0.047 + 20080717-170000 + + + EUB6SWP21Y + 0.0504 + 20080717-170000 + + + EUB6SWP22Y + 0.0498 + 20080717-170000 + + + EUB6SWP23Y + 0.0503 + 20080717-170000 + + + EUB6SWP24Y + 0.0501 + 20080717-170000 + + + EUB6SWP25Y + 0.0495 + 20080717-170000 + + + ESTRSWP25Y + 0.0462 + 20080717-170000 + + + EUB6SWP26Y + 0.05 + 20080717-170000 + + + EUB6SWP27Y + 0.049 + 20080717-170000 + + + EUB6SWP28Y + 0.0494 + 20080717-170000 + + + EUB6SWP29Y + 0.0492 + 20080717-170000 + + + EUB6SWP30Y + 0.0497 + 20080717-170000 + + + ESTRSWP30Y + 0.0461 + 20080717-170000 + + + EUB6SWP35Y + 0.0488 + 20080717-170000 + + + EUB6SWP40Y + 0.0479 + 20080717-170000 + + + EUB6SWP45Y + 0.0473 + 20080717-170000 + + + EUB6SWP50Y + 0.0479 + 20080717-170000 + + + EUB6SWP60Y + 0.0467 + 20080717-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-18.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-18.xml new file mode 100644 index 000000000..8bf8f96a3 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-18.xml @@ -0,0 +1,344 @@ + + + 20080718-170000 + + EUB6FIX6M + 0.0514 + 20080718-170000 + + + ESTRSWP3W + 0.0427 + 20080718-170000 + + + ESTRSWP1W + 0.0432 + 20080718-170000 + + + ESTRSWP2W + 0.0434 + 20080718-170000 + + + ESTRSWP1M + 0.0424 + 20080718-170000 + + + ESTRSWP2M + 0.043 + 20080718-170000 + + + ESTRSWP3M + 0.0434 + 20080718-170000 + + + ESTRSWP4M + 0.0434 + 20080718-170000 + + + ESTRSWP5M + 0.0443 + 20080718-170000 + + + ESTRSWP6M + 0.0439 + 20080718-170000 + + + ESTRSWP7M + 0.0445 + 20080718-170000 + + + ESTRSWP8M + 0.0449 + 20080718-170000 + + + ESTRSWP9M + 0.0444 + 20080718-170000 + + + ESTRSWP10M + 0.0453 + 20080718-170000 + + + ESTRSWP11M + 0.0453 + 20080718-170000 + + + EUB6SWP1Y + 0.0531 + 20080718-170000 + + + ESTRSWP12M + 0.0452 + 20080718-170000 + + + ESTRSWP15M + 0.0451 + 20080718-170000 + + + ESTRSWP18M + 0.0455 + 20080718-170000 + + + EUB6SWP2Y + 0.0526 + 20080718-170000 + + + ESTRSWP2Y + 0.0456 + 20080718-170000 + + + EUB6SWP3Y + 0.0515 + 20080718-170000 + + + ESTRSWP3Y + 0.046 + 20080718-170000 + + + EUB6SWP4Y + 0.0513 + 20080718-170000 + + + ESTRSWP4Y + 0.0459 + 20080718-170000 + + + EUB6SWP5Y + 0.0509 + 20080718-170000 + + + ESTRSWP5Y + 0.0457 + 20080718-170000 + + + EUB6SWP6Y + 0.0505 + 20080718-170000 + + + ESTRSWP6Y + 0.0462 + 20080718-170000 + + + EUB6SWP7Y + 0.0503 + 20080718-170000 + + + ESTRSWP7Y + 0.0463 + 20080718-170000 + + + EUB6SWP8Y + 0.0498 + 20080718-170000 + + + ESTRSWP8Y + 0.0464 + 20080718-170000 + + + EUB6SWP9Y + 0.0505 + 20080718-170000 + + + ESTRSWP9Y + 0.0466 + 20080718-170000 + + + EUB6SWP10Y + 0.0506 + 20080718-170000 + + + ESTRSWP10Y + 0.0465 + 20080718-170000 + + + EUB6SWP11Y + 0.0503 + 20080718-170000 + + + ESTRSWP11Y + 0.0463 + 20080718-170000 + + + EUB6SWP12Y + 0.0503 + 20080718-170000 + + + ESTRSWP12Y + 0.0472 + 20080718-170000 + + + EUB6SWP13Y + 0.0505 + 20080718-170000 + + + EUB6SWP14Y + 0.0504 + 20080718-170000 + + + EUB6SWP15Y + 0.0509 + 20080718-170000 + + + ESTRSWP15Y + 0.0468 + 20080718-170000 + + + EUB6SWP16Y + 0.0508 + 20080718-170000 + + + EUB6SWP17Y + 0.0507 + 20080718-170000 + + + EUB6SWP18Y + 0.0507 + 20080718-170000 + + + EUB6SWP19Y + 0.0507 + 20080718-170000 + + + EUB6SWP20Y + 0.0506 + 20080718-170000 + + + ESTRSWP20Y + 0.0477 + 20080718-170000 + + + EUB6SWP21Y + 0.0501 + 20080718-170000 + + + EUB6SWP22Y + 0.0502 + 20080718-170000 + + + EUB6SWP23Y + 0.0507 + 20080718-170000 + + + EUB6SWP24Y + 0.0499 + 20080718-170000 + + + EUB6SWP25Y + 0.0501 + 20080718-170000 + + + ESTRSWP25Y + 0.0466 + 20080718-170000 + + + EUB6SWP26Y + 0.05 + 20080718-170000 + + + EUB6SWP27Y + 0.0496 + 20080718-170000 + + + EUB6SWP28Y + 0.0497 + 20080718-170000 + + + EUB6SWP29Y + 0.0494 + 20080718-170000 + + + EUB6SWP30Y + 0.0491 + 20080718-170000 + + + ESTRSWP30Y + 0.0464 + 20080718-170000 + + + EUB6SWP35Y + 0.0492 + 20080718-170000 + + + EUB6SWP40Y + 0.048 + 20080718-170000 + + + EUB6SWP45Y + 0.0483 + 20080718-170000 + + + EUB6SWP50Y + 0.0477 + 20080718-170000 + + + EUB6SWP60Y + 0.0476 + 20080718-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-21.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-21.xml new file mode 100644 index 000000000..46b790e43 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-21.xml @@ -0,0 +1,344 @@ + + + 20080721-170000 + + EUB6FIX6M + 0.0513 + 20080721-170000 + + + ESTRSWP3W + 0.0427 + 20080721-170000 + + + ESTRSWP1W + 0.0424 + 20080721-170000 + + + ESTRSWP2W + 0.0428 + 20080721-170000 + + + ESTRSWP1M + 0.0431 + 20080721-170000 + + + ESTRSWP2M + 0.0428 + 20080721-170000 + + + ESTRSWP3M + 0.0429 + 20080721-170000 + + + ESTRSWP4M + 0.0439 + 20080721-170000 + + + ESTRSWP5M + 0.0443 + 20080721-170000 + + + ESTRSWP6M + 0.0448 + 20080721-170000 + + + ESTRSWP7M + 0.0448 + 20080721-170000 + + + ESTRSWP8M + 0.0447 + 20080721-170000 + + + ESTRSWP9M + 0.0449 + 20080721-170000 + + + ESTRSWP10M + 0.0458 + 20080721-170000 + + + ESTRSWP11M + 0.0455 + 20080721-170000 + + + EUB6SWP1Y + 0.0532 + 20080721-170000 + + + ESTRSWP12M + 0.0456 + 20080721-170000 + + + ESTRSWP15M + 0.0456 + 20080721-170000 + + + ESTRSWP18M + 0.0463 + 20080721-170000 + + + EUB6SWP2Y + 0.0535 + 20080721-170000 + + + ESTRSWP2Y + 0.0465 + 20080721-170000 + + + EUB6SWP3Y + 0.0532 + 20080721-170000 + + + ESTRSWP3Y + 0.0474 + 20080721-170000 + + + EUB6SWP4Y + 0.052 + 20080721-170000 + + + ESTRSWP4Y + 0.047 + 20080721-170000 + + + EUB6SWP5Y + 0.0516 + 20080721-170000 + + + ESTRSWP5Y + 0.0465 + 20080721-170000 + + + EUB6SWP6Y + 0.0511 + 20080721-170000 + + + ESTRSWP6Y + 0.0465 + 20080721-170000 + + + EUB6SWP7Y + 0.0509 + 20080721-170000 + + + ESTRSWP7Y + 0.0462 + 20080721-170000 + + + EUB6SWP8Y + 0.051 + 20080721-170000 + + + ESTRSWP8Y + 0.0458 + 20080721-170000 + + + EUB6SWP9Y + 0.0511 + 20080721-170000 + + + ESTRSWP9Y + 0.0466 + 20080721-170000 + + + EUB6SWP10Y + 0.0507 + 20080721-170000 + + + ESTRSWP10Y + 0.0465 + 20080721-170000 + + + EUB6SWP11Y + 0.0511 + 20080721-170000 + + + ESTRSWP11Y + 0.0475 + 20080721-170000 + + + EUB6SWP12Y + 0.0513 + 20080721-170000 + + + ESTRSWP12Y + 0.0472 + 20080721-170000 + + + EUB6SWP13Y + 0.0507 + 20080721-170000 + + + EUB6SWP14Y + 0.051 + 20080721-170000 + + + EUB6SWP15Y + 0.0512 + 20080721-170000 + + + ESTRSWP15Y + 0.0477 + 20080721-170000 + + + EUB6SWP16Y + 0.051 + 20080721-170000 + + + EUB6SWP17Y + 0.0512 + 20080721-170000 + + + EUB6SWP18Y + 0.0507 + 20080721-170000 + + + EUB6SWP19Y + 0.051 + 20080721-170000 + + + EUB6SWP20Y + 0.0505 + 20080721-170000 + + + ESTRSWP20Y + 0.0478 + 20080721-170000 + + + EUB6SWP21Y + 0.0507 + 20080721-170000 + + + EUB6SWP22Y + 0.0508 + 20080721-170000 + + + EUB6SWP23Y + 0.05 + 20080721-170000 + + + EUB6SWP24Y + 0.0498 + 20080721-170000 + + + EUB6SWP25Y + 0.0502 + 20080721-170000 + + + ESTRSWP25Y + 0.0468 + 20080721-170000 + + + EUB6SWP26Y + 0.0504 + 20080721-170000 + + + EUB6SWP27Y + 0.0498 + 20080721-170000 + + + EUB6SWP28Y + 0.0498 + 20080721-170000 + + + EUB6SWP29Y + 0.0497 + 20080721-170000 + + + EUB6SWP30Y + 0.0494 + 20080721-170000 + + + ESTRSWP30Y + 0.0469 + 20080721-170000 + + + EUB6SWP35Y + 0.0488 + 20080721-170000 + + + EUB6SWP40Y + 0.0488 + 20080721-170000 + + + EUB6SWP45Y + 0.0486 + 20080721-170000 + + + EUB6SWP50Y + 0.0478 + 20080721-170000 + + + EUB6SWP60Y + 0.0474 + 20080721-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-22.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-22.xml new file mode 100644 index 000000000..d27b29a94 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-22.xml @@ -0,0 +1,344 @@ + + + 20080722-170000 + + EUB6FIX6M + 0.0519 + 20080722-170000 + + + ESTRSWP3W + 0.0431 + 20080722-170000 + + + ESTRSWP1W + 0.0427 + 20080722-170000 + + + ESTRSWP2W + 0.0428 + 20080722-170000 + + + ESTRSWP1M + 0.0424 + 20080722-170000 + + + ESTRSWP2M + 0.0433 + 20080722-170000 + + + ESTRSWP3M + 0.043 + 20080722-170000 + + + ESTRSWP4M + 0.0434 + 20080722-170000 + + + ESTRSWP5M + 0.0441 + 20080722-170000 + + + ESTRSWP6M + 0.0447 + 20080722-170000 + + + ESTRSWP7M + 0.0443 + 20080722-170000 + + + ESTRSWP8M + 0.0448 + 20080722-170000 + + + ESTRSWP9M + 0.0453 + 20080722-170000 + + + ESTRSWP10M + 0.0452 + 20080722-170000 + + + ESTRSWP11M + 0.0456 + 20080722-170000 + + + EUB6SWP1Y + 0.0533 + 20080722-170000 + + + ESTRSWP12M + 0.0457 + 20080722-170000 + + + ESTRSWP15M + 0.046 + 20080722-170000 + + + ESTRSWP18M + 0.0465 + 20080722-170000 + + + EUB6SWP2Y + 0.0529 + 20080722-170000 + + + ESTRSWP2Y + 0.0467 + 20080722-170000 + + + EUB6SWP3Y + 0.0525 + 20080722-170000 + + + ESTRSWP3Y + 0.0467 + 20080722-170000 + + + EUB6SWP4Y + 0.0527 + 20080722-170000 + + + ESTRSWP4Y + 0.0469 + 20080722-170000 + + + EUB6SWP5Y + 0.0517 + 20080722-170000 + + + ESTRSWP5Y + 0.0469 + 20080722-170000 + + + EUB6SWP6Y + 0.0511 + 20080722-170000 + + + ESTRSWP6Y + 0.0468 + 20080722-170000 + + + EUB6SWP7Y + 0.0514 + 20080722-170000 + + + ESTRSWP7Y + 0.0461 + 20080722-170000 + + + EUB6SWP8Y + 0.0507 + 20080722-170000 + + + ESTRSWP8Y + 0.0471 + 20080722-170000 + + + EUB6SWP9Y + 0.0505 + 20080722-170000 + + + ESTRSWP9Y + 0.0469 + 20080722-170000 + + + EUB6SWP10Y + 0.0513 + 20080722-170000 + + + ESTRSWP10Y + 0.0469 + 20080722-170000 + + + EUB6SWP11Y + 0.0512 + 20080722-170000 + + + ESTRSWP11Y + 0.0474 + 20080722-170000 + + + EUB6SWP12Y + 0.0509 + 20080722-170000 + + + ESTRSWP12Y + 0.0469 + 20080722-170000 + + + EUB6SWP13Y + 0.0506 + 20080722-170000 + + + EUB6SWP14Y + 0.0513 + 20080722-170000 + + + EUB6SWP15Y + 0.0514 + 20080722-170000 + + + ESTRSWP15Y + 0.0475 + 20080722-170000 + + + EUB6SWP16Y + 0.0514 + 20080722-170000 + + + EUB6SWP17Y + 0.0516 + 20080722-170000 + + + EUB6SWP18Y + 0.0506 + 20080722-170000 + + + EUB6SWP19Y + 0.0507 + 20080722-170000 + + + EUB6SWP20Y + 0.0511 + 20080722-170000 + + + ESTRSWP20Y + 0.0473 + 20080722-170000 + + + EUB6SWP21Y + 0.0503 + 20080722-170000 + + + EUB6SWP22Y + 0.0509 + 20080722-170000 + + + EUB6SWP23Y + 0.0507 + 20080722-170000 + + + EUB6SWP24Y + 0.0501 + 20080722-170000 + + + EUB6SWP25Y + 0.0503 + 20080722-170000 + + + ESTRSWP25Y + 0.0475 + 20080722-170000 + + + EUB6SWP26Y + 0.0504 + 20080722-170000 + + + EUB6SWP27Y + 0.05 + 20080722-170000 + + + EUB6SWP28Y + 0.0498 + 20080722-170000 + + + EUB6SWP29Y + 0.0499 + 20080722-170000 + + + EUB6SWP30Y + 0.0491 + 20080722-170000 + + + ESTRSWP30Y + 0.0463 + 20080722-170000 + + + EUB6SWP35Y + 0.0495 + 20080722-170000 + + + EUB6SWP40Y + 0.0482 + 20080722-170000 + + + EUB6SWP45Y + 0.0477 + 20080722-170000 + + + EUB6SWP50Y + 0.0473 + 20080722-170000 + + + EUB6SWP60Y + 0.0476 + 20080722-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-23.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-23.xml new file mode 100644 index 000000000..fc1a8b3e0 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-23.xml @@ -0,0 +1,344 @@ + + + 20080723-170000 + + EUB6FIX6M + 0.0513 + 20080723-170000 + + + ESTRSWP3W + 0.0431 + 20080723-170000 + + + ESTRSWP1W + 0.043 + 20080723-170000 + + + ESTRSWP2W + 0.0429 + 20080723-170000 + + + ESTRSWP1M + 0.0427 + 20080723-170000 + + + ESTRSWP2M + 0.0432 + 20080723-170000 + + + ESTRSWP3M + 0.0432 + 20080723-170000 + + + ESTRSWP4M + 0.0441 + 20080723-170000 + + + ESTRSWP5M + 0.0442 + 20080723-170000 + + + ESTRSWP6M + 0.0441 + 20080723-170000 + + + ESTRSWP7M + 0.0448 + 20080723-170000 + + + ESTRSWP8M + 0.0446 + 20080723-170000 + + + ESTRSWP9M + 0.0452 + 20080723-170000 + + + ESTRSWP10M + 0.0454 + 20080723-170000 + + + ESTRSWP11M + 0.046 + 20080723-170000 + + + EUB6SWP1Y + 0.0529 + 20080723-170000 + + + ESTRSWP12M + 0.0457 + 20080723-170000 + + + ESTRSWP15M + 0.0459 + 20080723-170000 + + + ESTRSWP18M + 0.0455 + 20080723-170000 + + + EUB6SWP2Y + 0.0533 + 20080723-170000 + + + ESTRSWP2Y + 0.0465 + 20080723-170000 + + + EUB6SWP3Y + 0.0522 + 20080723-170000 + + + ESTRSWP3Y + 0.0469 + 20080723-170000 + + + EUB6SWP4Y + 0.0522 + 20080723-170000 + + + ESTRSWP4Y + 0.0472 + 20080723-170000 + + + EUB6SWP5Y + 0.0518 + 20080723-170000 + + + ESTRSWP5Y + 0.0468 + 20080723-170000 + + + EUB6SWP6Y + 0.0512 + 20080723-170000 + + + ESTRSWP6Y + 0.0471 + 20080723-170000 + + + EUB6SWP7Y + 0.0511 + 20080723-170000 + + + ESTRSWP7Y + 0.0463 + 20080723-170000 + + + EUB6SWP8Y + 0.051 + 20080723-170000 + + + ESTRSWP8Y + 0.0467 + 20080723-170000 + + + EUB6SWP9Y + 0.0507 + 20080723-170000 + + + ESTRSWP9Y + 0.0468 + 20080723-170000 + + + EUB6SWP10Y + 0.0513 + 20080723-170000 + + + ESTRSWP10Y + 0.0462 + 20080723-170000 + + + EUB6SWP11Y + 0.0514 + 20080723-170000 + + + ESTRSWP11Y + 0.0467 + 20080723-170000 + + + EUB6SWP12Y + 0.0509 + 20080723-170000 + + + ESTRSWP12Y + 0.0474 + 20080723-170000 + + + EUB6SWP13Y + 0.051 + 20080723-170000 + + + EUB6SWP14Y + 0.0514 + 20080723-170000 + + + EUB6SWP15Y + 0.0516 + 20080723-170000 + + + ESTRSWP15Y + 0.0473 + 20080723-170000 + + + EUB6SWP16Y + 0.0516 + 20080723-170000 + + + EUB6SWP17Y + 0.0507 + 20080723-170000 + + + EUB6SWP18Y + 0.0512 + 20080723-170000 + + + EUB6SWP19Y + 0.0506 + 20080723-170000 + + + EUB6SWP20Y + 0.0509 + 20080723-170000 + + + ESTRSWP20Y + 0.048 + 20080723-170000 + + + EUB6SWP21Y + 0.0509 + 20080723-170000 + + + EUB6SWP22Y + 0.0509 + 20080723-170000 + + + EUB6SWP23Y + 0.0504 + 20080723-170000 + + + EUB6SWP24Y + 0.0509 + 20080723-170000 + + + EUB6SWP25Y + 0.0501 + 20080723-170000 + + + ESTRSWP25Y + 0.0473 + 20080723-170000 + + + EUB6SWP26Y + 0.0503 + 20080723-170000 + + + EUB6SWP27Y + 0.0501 + 20080723-170000 + + + EUB6SWP28Y + 0.0495 + 20080723-170000 + + + EUB6SWP29Y + 0.0503 + 20080723-170000 + + + EUB6SWP30Y + 0.0501 + 20080723-170000 + + + ESTRSWP30Y + 0.0471 + 20080723-170000 + + + EUB6SWP35Y + 0.0489 + 20080723-170000 + + + EUB6SWP40Y + 0.049 + 20080723-170000 + + + EUB6SWP45Y + 0.0484 + 20080723-170000 + + + EUB6SWP50Y + 0.0478 + 20080723-170000 + + + EUB6SWP60Y + 0.0471 + 20080723-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-24.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-24.xml new file mode 100644 index 000000000..06f455c59 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-24.xml @@ -0,0 +1,344 @@ + + + 20080724-170000 + + EUB6FIX6M + 0.0512 + 20080724-170000 + + + ESTRSWP3W + 0.0428 + 20080724-170000 + + + ESTRSWP1W + 0.0434 + 20080724-170000 + + + ESTRSWP2W + 0.043 + 20080724-170000 + + + ESTRSWP1M + 0.0433 + 20080724-170000 + + + ESTRSWP2M + 0.0435 + 20080724-170000 + + + ESTRSWP3M + 0.0431 + 20080724-170000 + + + ESTRSWP4M + 0.0436 + 20080724-170000 + + + ESTRSWP5M + 0.044 + 20080724-170000 + + + ESTRSWP6M + 0.0443 + 20080724-170000 + + + ESTRSWP7M + 0.0437 + 20080724-170000 + + + ESTRSWP8M + 0.0445 + 20080724-170000 + + + ESTRSWP9M + 0.0448 + 20080724-170000 + + + ESTRSWP10M + 0.0442 + 20080724-170000 + + + ESTRSWP11M + 0.0453 + 20080724-170000 + + + EUB6SWP1Y + 0.0525 + 20080724-170000 + + + ESTRSWP12M + 0.0452 + 20080724-170000 + + + ESTRSWP15M + 0.0448 + 20080724-170000 + + + ESTRSWP18M + 0.0446 + 20080724-170000 + + + EUB6SWP2Y + 0.0516 + 20080724-170000 + + + ESTRSWP2Y + 0.045 + 20080724-170000 + + + EUB6SWP3Y + 0.0516 + 20080724-170000 + + + ESTRSWP3Y + 0.0452 + 20080724-170000 + + + EUB6SWP4Y + 0.0505 + 20080724-170000 + + + ESTRSWP4Y + 0.0455 + 20080724-170000 + + + EUB6SWP5Y + 0.0508 + 20080724-170000 + + + ESTRSWP5Y + 0.0453 + 20080724-170000 + + + EUB6SWP6Y + 0.0499 + 20080724-170000 + + + ESTRSWP6Y + 0.0451 + 20080724-170000 + + + EUB6SWP7Y + 0.0504 + 20080724-170000 + + + ESTRSWP7Y + 0.0459 + 20080724-170000 + + + EUB6SWP8Y + 0.0505 + 20080724-170000 + + + ESTRSWP8Y + 0.0454 + 20080724-170000 + + + EUB6SWP9Y + 0.0501 + 20080724-170000 + + + ESTRSWP9Y + 0.046 + 20080724-170000 + + + EUB6SWP10Y + 0.0502 + 20080724-170000 + + + ESTRSWP10Y + 0.0461 + 20080724-170000 + + + EUB6SWP11Y + 0.05 + 20080724-170000 + + + ESTRSWP11Y + 0.0461 + 20080724-170000 + + + EUB6SWP12Y + 0.0504 + 20080724-170000 + + + ESTRSWP12Y + 0.0464 + 20080724-170000 + + + EUB6SWP13Y + 0.0507 + 20080724-170000 + + + EUB6SWP14Y + 0.051 + 20080724-170000 + + + EUB6SWP15Y + 0.0508 + 20080724-170000 + + + ESTRSWP15Y + 0.0468 + 20080724-170000 + + + EUB6SWP16Y + 0.0506 + 20080724-170000 + + + EUB6SWP17Y + 0.0506 + 20080724-170000 + + + EUB6SWP18Y + 0.0505 + 20080724-170000 + + + EUB6SWP19Y + 0.0502 + 20080724-170000 + + + EUB6SWP20Y + 0.0506 + 20080724-170000 + + + ESTRSWP20Y + 0.0469 + 20080724-170000 + + + EUB6SWP21Y + 0.0503 + 20080724-170000 + + + EUB6SWP22Y + 0.0503 + 20080724-170000 + + + EUB6SWP23Y + 0.0507 + 20080724-170000 + + + EUB6SWP24Y + 0.0498 + 20080724-170000 + + + EUB6SWP25Y + 0.0497 + 20080724-170000 + + + ESTRSWP25Y + 0.047 + 20080724-170000 + + + EUB6SWP26Y + 0.0498 + 20080724-170000 + + + EUB6SWP27Y + 0.0501 + 20080724-170000 + + + EUB6SWP28Y + 0.0498 + 20080724-170000 + + + EUB6SWP29Y + 0.0495 + 20080724-170000 + + + EUB6SWP30Y + 0.0495 + 20080724-170000 + + + ESTRSWP30Y + 0.0463 + 20080724-170000 + + + EUB6SWP35Y + 0.0494 + 20080724-170000 + + + EUB6SWP40Y + 0.0487 + 20080724-170000 + + + EUB6SWP45Y + 0.048 + 20080724-170000 + + + EUB6SWP50Y + 0.0473 + 20080724-170000 + + + EUB6SWP60Y + 0.0473 + 20080724-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-25.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-25.xml new file mode 100644 index 000000000..8efce0b45 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-25.xml @@ -0,0 +1,344 @@ + + + 20080725-170000 + + EUB6FIX6M + 0.0518 + 20080725-170000 + + + ESTRSWP3W + 0.043 + 20080725-170000 + + + ESTRSWP1W + 0.0429 + 20080725-170000 + + + ESTRSWP2W + 0.0432 + 20080725-170000 + + + ESTRSWP1M + 0.0432 + 20080725-170000 + + + ESTRSWP2M + 0.0433 + 20080725-170000 + + + ESTRSWP3M + 0.0438 + 20080725-170000 + + + ESTRSWP4M + 0.0432 + 20080725-170000 + + + ESTRSWP5M + 0.0441 + 20080725-170000 + + + ESTRSWP6M + 0.0439 + 20080725-170000 + + + ESTRSWP7M + 0.0443 + 20080725-170000 + + + ESTRSWP8M + 0.0445 + 20080725-170000 + + + ESTRSWP9M + 0.0448 + 20080725-170000 + + + ESTRSWP10M + 0.0454 + 20080725-170000 + + + ESTRSWP11M + 0.0455 + 20080725-170000 + + + EUB6SWP1Y + 0.0532 + 20080725-170000 + + + ESTRSWP12M + 0.0454 + 20080725-170000 + + + ESTRSWP15M + 0.0449 + 20080725-170000 + + + ESTRSWP18M + 0.0445 + 20080725-170000 + + + EUB6SWP2Y + 0.0514 + 20080725-170000 + + + ESTRSWP2Y + 0.0447 + 20080725-170000 + + + EUB6SWP3Y + 0.0513 + 20080725-170000 + + + ESTRSWP3Y + 0.0449 + 20080725-170000 + + + EUB6SWP4Y + 0.0509 + 20080725-170000 + + + ESTRSWP4Y + 0.0456 + 20080725-170000 + + + EUB6SWP5Y + 0.0513 + 20080725-170000 + + + ESTRSWP5Y + 0.0459 + 20080725-170000 + + + EUB6SWP6Y + 0.0505 + 20080725-170000 + + + ESTRSWP6Y + 0.0465 + 20080725-170000 + + + EUB6SWP7Y + 0.0503 + 20080725-170000 + + + ESTRSWP7Y + 0.0462 + 20080725-170000 + + + EUB6SWP8Y + 0.0507 + 20080725-170000 + + + ESTRSWP8Y + 0.0464 + 20080725-170000 + + + EUB6SWP9Y + 0.0509 + 20080725-170000 + + + ESTRSWP9Y + 0.0462 + 20080725-170000 + + + EUB6SWP10Y + 0.0507 + 20080725-170000 + + + ESTRSWP10Y + 0.0468 + 20080725-170000 + + + EUB6SWP11Y + 0.051 + 20080725-170000 + + + ESTRSWP11Y + 0.0471 + 20080725-170000 + + + EUB6SWP12Y + 0.0511 + 20080725-170000 + + + ESTRSWP12Y + 0.0471 + 20080725-170000 + + + EUB6SWP13Y + 0.0511 + 20080725-170000 + + + EUB6SWP14Y + 0.0512 + 20080725-170000 + + + EUB6SWP15Y + 0.0516 + 20080725-170000 + + + ESTRSWP15Y + 0.0474 + 20080725-170000 + + + EUB6SWP16Y + 0.0509 + 20080725-170000 + + + EUB6SWP17Y + 0.0509 + 20080725-170000 + + + EUB6SWP18Y + 0.0511 + 20080725-170000 + + + EUB6SWP19Y + 0.0508 + 20080725-170000 + + + EUB6SWP20Y + 0.0512 + 20080725-170000 + + + ESTRSWP20Y + 0.0478 + 20080725-170000 + + + EUB6SWP21Y + 0.0514 + 20080725-170000 + + + EUB6SWP22Y + 0.0511 + 20080725-170000 + + + EUB6SWP23Y + 0.0508 + 20080725-170000 + + + EUB6SWP24Y + 0.0507 + 20080725-170000 + + + EUB6SWP25Y + 0.0503 + 20080725-170000 + + + ESTRSWP25Y + 0.0472 + 20080725-170000 + + + EUB6SWP26Y + 0.05 + 20080725-170000 + + + EUB6SWP27Y + 0.0504 + 20080725-170000 + + + EUB6SWP28Y + 0.0498 + 20080725-170000 + + + EUB6SWP29Y + 0.0495 + 20080725-170000 + + + EUB6SWP30Y + 0.0501 + 20080725-170000 + + + ESTRSWP30Y + 0.0473 + 20080725-170000 + + + EUB6SWP35Y + 0.0494 + 20080725-170000 + + + EUB6SWP40Y + 0.0491 + 20080725-170000 + + + EUB6SWP45Y + 0.0491 + 20080725-170000 + + + EUB6SWP50Y + 0.0485 + 20080725-170000 + + + EUB6SWP60Y + 0.0473 + 20080725-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-28.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-28.xml new file mode 100644 index 000000000..5066b20ad --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-28.xml @@ -0,0 +1,344 @@ + + + 20080728-170000 + + EUB6FIX6M + 0.052 + 20080728-170000 + + + ESTRSWP3W + 0.043 + 20080728-170000 + + + ESTRSWP1W + 0.0429 + 20080728-170000 + + + ESTRSWP2W + 0.0432 + 20080728-170000 + + + ESTRSWP1M + 0.0434 + 20080728-170000 + + + ESTRSWP2M + 0.0434 + 20080728-170000 + + + ESTRSWP3M + 0.0437 + 20080728-170000 + + + ESTRSWP4M + 0.0436 + 20080728-170000 + + + ESTRSWP5M + 0.0439 + 20080728-170000 + + + ESTRSWP6M + 0.0439 + 20080728-170000 + + + ESTRSWP7M + 0.0444 + 20080728-170000 + + + ESTRSWP8M + 0.0446 + 20080728-170000 + + + ESTRSWP9M + 0.0444 + 20080728-170000 + + + ESTRSWP10M + 0.0445 + 20080728-170000 + + + ESTRSWP11M + 0.0447 + 20080728-170000 + + + EUB6SWP1Y + 0.0528 + 20080728-170000 + + + ESTRSWP12M + 0.0449 + 20080728-170000 + + + ESTRSWP15M + 0.044 + 20080728-170000 + + + ESTRSWP18M + 0.0451 + 20080728-170000 + + + EUB6SWP2Y + 0.0513 + 20080728-170000 + + + ESTRSWP2Y + 0.0448 + 20080728-170000 + + + EUB6SWP3Y + 0.0504 + 20080728-170000 + + + ESTRSWP3Y + 0.0441 + 20080728-170000 + + + EUB6SWP4Y + 0.0502 + 20080728-170000 + + + ESTRSWP4Y + 0.0446 + 20080728-170000 + + + EUB6SWP5Y + 0.0499 + 20080728-170000 + + + ESTRSWP5Y + 0.0448 + 20080728-170000 + + + EUB6SWP6Y + 0.0502 + 20080728-170000 + + + ESTRSWP6Y + 0.0448 + 20080728-170000 + + + EUB6SWP7Y + 0.0495 + 20080728-170000 + + + ESTRSWP7Y + 0.0453 + 20080728-170000 + + + EUB6SWP8Y + 0.0498 + 20080728-170000 + + + ESTRSWP8Y + 0.0452 + 20080728-170000 + + + EUB6SWP9Y + 0.0502 + 20080728-170000 + + + ESTRSWP9Y + 0.0454 + 20080728-170000 + + + EUB6SWP10Y + 0.0499 + 20080728-170000 + + + ESTRSWP10Y + 0.0453 + 20080728-170000 + + + EUB6SWP11Y + 0.0505 + 20080728-170000 + + + ESTRSWP11Y + 0.0463 + 20080728-170000 + + + EUB6SWP12Y + 0.0506 + 20080728-170000 + + + ESTRSWP12Y + 0.0463 + 20080728-170000 + + + EUB6SWP13Y + 0.0502 + 20080728-170000 + + + EUB6SWP14Y + 0.0505 + 20080728-170000 + + + EUB6SWP15Y + 0.0501 + 20080728-170000 + + + ESTRSWP15Y + 0.0474 + 20080728-170000 + + + EUB6SWP16Y + 0.0507 + 20080728-170000 + + + EUB6SWP17Y + 0.0504 + 20080728-170000 + + + EUB6SWP18Y + 0.0504 + 20080728-170000 + + + EUB6SWP19Y + 0.051 + 20080728-170000 + + + EUB6SWP20Y + 0.0503 + 20080728-170000 + + + ESTRSWP20Y + 0.0475 + 20080728-170000 + + + EUB6SWP21Y + 0.0507 + 20080728-170000 + + + EUB6SWP22Y + 0.0507 + 20080728-170000 + + + EUB6SWP23Y + 0.0507 + 20080728-170000 + + + EUB6SWP24Y + 0.05 + 20080728-170000 + + + EUB6SWP25Y + 0.0503 + 20080728-170000 + + + ESTRSWP25Y + 0.0468 + 20080728-170000 + + + EUB6SWP26Y + 0.0501 + 20080728-170000 + + + EUB6SWP27Y + 0.0494 + 20080728-170000 + + + EUB6SWP28Y + 0.0496 + 20080728-170000 + + + EUB6SWP29Y + 0.0491 + 20080728-170000 + + + EUB6SWP30Y + 0.0492 + 20080728-170000 + + + ESTRSWP30Y + 0.0477 + 20080728-170000 + + + EUB6SWP35Y + 0.0494 + 20080728-170000 + + + EUB6SWP40Y + 0.0486 + 20080728-170000 + + + EUB6SWP45Y + 0.0478 + 20080728-170000 + + + EUB6SWP50Y + 0.0476 + 20080728-170000 + + + EUB6SWP60Y + 0.0471 + 20080728-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-29.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-29.xml new file mode 100644 index 000000000..3100498b1 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-29.xml @@ -0,0 +1,344 @@ + + + 20080729-170000 + + EUB6FIX6M + 0.051 + 20080729-170000 + + + ESTRSWP3W + 0.0427 + 20080729-170000 + + + ESTRSWP1W + 0.0435 + 20080729-170000 + + + ESTRSWP2W + 0.0427 + 20080729-170000 + + + ESTRSWP1M + 0.0427 + 20080729-170000 + + + ESTRSWP2M + 0.0427 + 20080729-170000 + + + ESTRSWP3M + 0.0432 + 20080729-170000 + + + ESTRSWP4M + 0.0433 + 20080729-170000 + + + ESTRSWP5M + 0.0435 + 20080729-170000 + + + ESTRSWP6M + 0.0437 + 20080729-170000 + + + ESTRSWP7M + 0.0438 + 20080729-170000 + + + ESTRSWP8M + 0.0437 + 20080729-170000 + + + ESTRSWP9M + 0.0445 + 20080729-170000 + + + ESTRSWP10M + 0.0439 + 20080729-170000 + + + ESTRSWP11M + 0.0447 + 20080729-170000 + + + EUB6SWP1Y + 0.0524 + 20080729-170000 + + + ESTRSWP12M + 0.0438 + 20080729-170000 + + + ESTRSWP15M + 0.0443 + 20080729-170000 + + + ESTRSWP18M + 0.0435 + 20080729-170000 + + + EUB6SWP2Y + 0.0509 + 20080729-170000 + + + ESTRSWP2Y + 0.0441 + 20080729-170000 + + + EUB6SWP3Y + 0.0503 + 20080729-170000 + + + ESTRSWP3Y + 0.0445 + 20080729-170000 + + + EUB6SWP4Y + 0.0501 + 20080729-170000 + + + ESTRSWP4Y + 0.0441 + 20080729-170000 + + + EUB6SWP5Y + 0.0495 + 20080729-170000 + + + ESTRSWP5Y + 0.0449 + 20080729-170000 + + + EUB6SWP6Y + 0.0491 + 20080729-170000 + + + ESTRSWP6Y + 0.0443 + 20080729-170000 + + + EUB6SWP7Y + 0.0488 + 20080729-170000 + + + ESTRSWP7Y + 0.0451 + 20080729-170000 + + + EUB6SWP8Y + 0.0492 + 20080729-170000 + + + ESTRSWP8Y + 0.0445 + 20080729-170000 + + + EUB6SWP9Y + 0.0493 + 20080729-170000 + + + ESTRSWP9Y + 0.0451 + 20080729-170000 + + + EUB6SWP10Y + 0.0496 + 20080729-170000 + + + ESTRSWP10Y + 0.0451 + 20080729-170000 + + + EUB6SWP11Y + 0.0491 + 20080729-170000 + + + ESTRSWP11Y + 0.046 + 20080729-170000 + + + EUB6SWP12Y + 0.0502 + 20080729-170000 + + + ESTRSWP12Y + 0.0461 + 20080729-170000 + + + EUB6SWP13Y + 0.0498 + 20080729-170000 + + + EUB6SWP14Y + 0.0501 + 20080729-170000 + + + EUB6SWP15Y + 0.05 + 20080729-170000 + + + ESTRSWP15Y + 0.0464 + 20080729-170000 + + + EUB6SWP16Y + 0.0503 + 20080729-170000 + + + EUB6SWP17Y + 0.0499 + 20080729-170000 + + + EUB6SWP18Y + 0.0501 + 20080729-170000 + + + EUB6SWP19Y + 0.0497 + 20080729-170000 + + + EUB6SWP20Y + 0.0498 + 20080729-170000 + + + ESTRSWP20Y + 0.0472 + 20080729-170000 + + + EUB6SWP21Y + 0.0501 + 20080729-170000 + + + EUB6SWP22Y + 0.0496 + 20080729-170000 + + + EUB6SWP23Y + 0.0495 + 20080729-170000 + + + EUB6SWP24Y + 0.0498 + 20080729-170000 + + + EUB6SWP25Y + 0.05 + 20080729-170000 + + + ESTRSWP25Y + 0.0463 + 20080729-170000 + + + EUB6SWP26Y + 0.0497 + 20080729-170000 + + + EUB6SWP27Y + 0.049 + 20080729-170000 + + + EUB6SWP28Y + 0.0496 + 20080729-170000 + + + EUB6SWP29Y + 0.0487 + 20080729-170000 + + + EUB6SWP30Y + 0.0495 + 20080729-170000 + + + ESTRSWP30Y + 0.0462 + 20080729-170000 + + + EUB6SWP35Y + 0.0484 + 20080729-170000 + + + EUB6SWP40Y + 0.0481 + 20080729-170000 + + + EUB6SWP45Y + 0.0473 + 20080729-170000 + + + EUB6SWP50Y + 0.0478 + 20080729-170000 + + + EUB6SWP60Y + 0.0464 + 20080729-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-30.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-30.xml new file mode 100644 index 000000000..0e761272e --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-30.xml @@ -0,0 +1,344 @@ + + + 20080730-170000 + + EUB6FIX6M + 0.0517 + 20080730-170000 + + + ESTRSWP3W + 0.043 + 20080730-170000 + + + ESTRSWP1W + 0.043 + 20080730-170000 + + + ESTRSWP2W + 0.0429 + 20080730-170000 + + + ESTRSWP1M + 0.0427 + 20080730-170000 + + + ESTRSWP2M + 0.0429 + 20080730-170000 + + + ESTRSWP3M + 0.043 + 20080730-170000 + + + ESTRSWP4M + 0.0439 + 20080730-170000 + + + ESTRSWP5M + 0.0441 + 20080730-170000 + + + ESTRSWP6M + 0.044 + 20080730-170000 + + + ESTRSWP7M + 0.0442 + 20080730-170000 + + + ESTRSWP8M + 0.0441 + 20080730-170000 + + + ESTRSWP9M + 0.0444 + 20080730-170000 + + + ESTRSWP10M + 0.0441 + 20080730-170000 + + + ESTRSWP11M + 0.044 + 20080730-170000 + + + EUB6SWP1Y + 0.0518 + 20080730-170000 + + + ESTRSWP12M + 0.0438 + 20080730-170000 + + + ESTRSWP15M + 0.044 + 20080730-170000 + + + ESTRSWP18M + 0.0442 + 20080730-170000 + + + EUB6SWP2Y + 0.0502 + 20080730-170000 + + + ESTRSWP2Y + 0.0438 + 20080730-170000 + + + EUB6SWP3Y + 0.0501 + 20080730-170000 + + + ESTRSWP3Y + 0.0438 + 20080730-170000 + + + EUB6SWP4Y + 0.049 + 20080730-170000 + + + ESTRSWP4Y + 0.0435 + 20080730-170000 + + + EUB6SWP5Y + 0.0487 + 20080730-170000 + + + ESTRSWP5Y + 0.044 + 20080730-170000 + + + EUB6SWP6Y + 0.0483 + 20080730-170000 + + + ESTRSWP6Y + 0.0438 + 20080730-170000 + + + EUB6SWP7Y + 0.0486 + 20080730-170000 + + + ESTRSWP7Y + 0.044 + 20080730-170000 + + + EUB6SWP8Y + 0.0487 + 20080730-170000 + + + ESTRSWP8Y + 0.0438 + 20080730-170000 + + + EUB6SWP9Y + 0.0488 + 20080730-170000 + + + ESTRSWP9Y + 0.0439 + 20080730-170000 + + + EUB6SWP10Y + 0.049 + 20080730-170000 + + + ESTRSWP10Y + 0.0444 + 20080730-170000 + + + EUB6SWP11Y + 0.0488 + 20080730-170000 + + + ESTRSWP11Y + 0.0453 + 20080730-170000 + + + EUB6SWP12Y + 0.0491 + 20080730-170000 + + + ESTRSWP12Y + 0.046 + 20080730-170000 + + + EUB6SWP13Y + 0.0491 + 20080730-170000 + + + EUB6SWP14Y + 0.0494 + 20080730-170000 + + + EUB6SWP15Y + 0.0493 + 20080730-170000 + + + ESTRSWP15Y + 0.0462 + 20080730-170000 + + + EUB6SWP16Y + 0.0495 + 20080730-170000 + + + EUB6SWP17Y + 0.0494 + 20080730-170000 + + + EUB6SWP18Y + 0.0499 + 20080730-170000 + + + EUB6SWP19Y + 0.0501 + 20080730-170000 + + + EUB6SWP20Y + 0.0492 + 20080730-170000 + + + ESTRSWP20Y + 0.0468 + 20080730-170000 + + + EUB6SWP21Y + 0.0493 + 20080730-170000 + + + EUB6SWP22Y + 0.0492 + 20080730-170000 + + + EUB6SWP23Y + 0.0496 + 20080730-170000 + + + EUB6SWP24Y + 0.0487 + 20080730-170000 + + + EUB6SWP25Y + 0.0489 + 20080730-170000 + + + ESTRSWP25Y + 0.0466 + 20080730-170000 + + + EUB6SWP26Y + 0.0492 + 20080730-170000 + + + EUB6SWP27Y + 0.0487 + 20080730-170000 + + + EUB6SWP28Y + 0.049 + 20080730-170000 + + + EUB6SWP29Y + 0.0483 + 20080730-170000 + + + EUB6SWP30Y + 0.0482 + 20080730-170000 + + + ESTRSWP30Y + 0.0461 + 20080730-170000 + + + EUB6SWP35Y + 0.0483 + 20080730-170000 + + + EUB6SWP40Y + 0.0474 + 20080730-170000 + + + EUB6SWP45Y + 0.0475 + 20080730-170000 + + + EUB6SWP50Y + 0.0472 + 20080730-170000 + + + EUB6SWP60Y + 0.0463 + 20080730-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-31.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-31.xml new file mode 100644 index 000000000..ea5f87209 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-07-31.xml @@ -0,0 +1,344 @@ + + + 20080731-170000 + + EUB6FIX6M + 0.0518 + 20080731-170000 + + + ESTRSWP3W + 0.0428 + 20080731-170000 + + + ESTRSWP1W + 0.0422 + 20080731-170000 + + + ESTRSWP2W + 0.0426 + 20080731-170000 + + + ESTRSWP1M + 0.0428 + 20080731-170000 + + + ESTRSWP2M + 0.0431 + 20080731-170000 + + + ESTRSWP3M + 0.0431 + 20080731-170000 + + + ESTRSWP4M + 0.0433 + 20080731-170000 + + + ESTRSWP5M + 0.0433 + 20080731-170000 + + + ESTRSWP6M + 0.0442 + 20080731-170000 + + + ESTRSWP7M + 0.0439 + 20080731-170000 + + + ESTRSWP8M + 0.0439 + 20080731-170000 + + + ESTRSWP9M + 0.0442 + 20080731-170000 + + + ESTRSWP10M + 0.0445 + 20080731-170000 + + + ESTRSWP11M + 0.0437 + 20080731-170000 + + + EUB6SWP1Y + 0.0517 + 20080731-170000 + + + ESTRSWP12M + 0.0437 + 20080731-170000 + + + ESTRSWP15M + 0.0433 + 20080731-170000 + + + ESTRSWP18M + 0.0438 + 20080731-170000 + + + EUB6SWP2Y + 0.0494 + 20080731-170000 + + + ESTRSWP2Y + 0.0436 + 20080731-170000 + + + EUB6SWP3Y + 0.0487 + 20080731-170000 + + + ESTRSWP3Y + 0.0447 + 20080731-170000 + + + EUB6SWP4Y + 0.0486 + 20080731-170000 + + + ESTRSWP4Y + 0.0435 + 20080731-170000 + + + EUB6SWP5Y + 0.0487 + 20080731-170000 + + + ESTRSWP5Y + 0.0434 + 20080731-170000 + + + EUB6SWP6Y + 0.0479 + 20080731-170000 + + + ESTRSWP6Y + 0.044 + 20080731-170000 + + + EUB6SWP7Y + 0.0486 + 20080731-170000 + + + ESTRSWP7Y + 0.044 + 20080731-170000 + + + EUB6SWP8Y + 0.0482 + 20080731-170000 + + + ESTRSWP8Y + 0.0438 + 20080731-170000 + + + EUB6SWP9Y + 0.0484 + 20080731-170000 + + + ESTRSWP9Y + 0.0442 + 20080731-170000 + + + EUB6SWP10Y + 0.0487 + 20080731-170000 + + + ESTRSWP10Y + 0.0437 + 20080731-170000 + + + EUB6SWP11Y + 0.0482 + 20080731-170000 + + + ESTRSWP11Y + 0.0447 + 20080731-170000 + + + EUB6SWP12Y + 0.049 + 20080731-170000 + + + ESTRSWP12Y + 0.045 + 20080731-170000 + + + EUB6SWP13Y + 0.0494 + 20080731-170000 + + + EUB6SWP14Y + 0.0494 + 20080731-170000 + + + EUB6SWP15Y + 0.0497 + 20080731-170000 + + + ESTRSWP15Y + 0.0456 + 20080731-170000 + + + EUB6SWP16Y + 0.0493 + 20080731-170000 + + + EUB6SWP17Y + 0.0491 + 20080731-170000 + + + EUB6SWP18Y + 0.0492 + 20080731-170000 + + + EUB6SWP19Y + 0.0491 + 20080731-170000 + + + EUB6SWP20Y + 0.0489 + 20080731-170000 + + + ESTRSWP20Y + 0.0459 + 20080731-170000 + + + EUB6SWP21Y + 0.0494 + 20080731-170000 + + + EUB6SWP22Y + 0.0487 + 20080731-170000 + + + EUB6SWP23Y + 0.0492 + 20080731-170000 + + + EUB6SWP24Y + 0.0483 + 20080731-170000 + + + EUB6SWP25Y + 0.0489 + 20080731-170000 + + + ESTRSWP25Y + 0.0452 + 20080731-170000 + + + EUB6SWP26Y + 0.0483 + 20080731-170000 + + + EUB6SWP27Y + 0.048 + 20080731-170000 + + + EUB6SWP28Y + 0.0481 + 20080731-170000 + + + EUB6SWP29Y + 0.0487 + 20080731-170000 + + + EUB6SWP30Y + 0.0477 + 20080731-170000 + + + ESTRSWP30Y + 0.0454 + 20080731-170000 + + + EUB6SWP35Y + 0.0479 + 20080731-170000 + + + EUB6SWP40Y + 0.0476 + 20080731-170000 + + + EUB6SWP45Y + 0.0463 + 20080731-170000 + + + EUB6SWP50Y + 0.0463 + 20080731-170000 + + + EUB6SWP60Y + 0.0455 + 20080731-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-01.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-01.xml new file mode 100644 index 000000000..7f2de740c --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-01.xml @@ -0,0 +1,344 @@ + + + 20080801-170000 + + EUB6FIX6M + 0.0517 + 20080801-170000 + + + ESTRSWP3W + 0.0425 + 20080801-170000 + + + ESTRSWP1W + 0.0421 + 20080801-170000 + + + ESTRSWP2W + 0.0426 + 20080801-170000 + + + ESTRSWP1M + 0.0427 + 20080801-170000 + + + ESTRSWP2M + 0.0429 + 20080801-170000 + + + ESTRSWP3M + 0.0433 + 20080801-170000 + + + ESTRSWP4M + 0.0434 + 20080801-170000 + + + ESTRSWP5M + 0.0439 + 20080801-170000 + + + ESTRSWP6M + 0.0444 + 20080801-170000 + + + ESTRSWP7M + 0.044 + 20080801-170000 + + + ESTRSWP8M + 0.0437 + 20080801-170000 + + + ESTRSWP9M + 0.0439 + 20080801-170000 + + + ESTRSWP10M + 0.044 + 20080801-170000 + + + ESTRSWP11M + 0.0437 + 20080801-170000 + + + EUB6SWP1Y + 0.0514 + 20080801-170000 + + + ESTRSWP12M + 0.0437 + 20080801-170000 + + + ESTRSWP15M + 0.0438 + 20080801-170000 + + + ESTRSWP18M + 0.0438 + 20080801-170000 + + + EUB6SWP2Y + 0.0497 + 20080801-170000 + + + ESTRSWP2Y + 0.0429 + 20080801-170000 + + + EUB6SWP3Y + 0.0494 + 20080801-170000 + + + ESTRSWP3Y + 0.0436 + 20080801-170000 + + + EUB6SWP4Y + 0.0488 + 20080801-170000 + + + ESTRSWP4Y + 0.0435 + 20080801-170000 + + + EUB6SWP5Y + 0.0479 + 20080801-170000 + + + ESTRSWP5Y + 0.0434 + 20080801-170000 + + + EUB6SWP6Y + 0.0483 + 20080801-170000 + + + ESTRSWP6Y + 0.0433 + 20080801-170000 + + + EUB6SWP7Y + 0.0483 + 20080801-170000 + + + ESTRSWP7Y + 0.0435 + 20080801-170000 + + + EUB6SWP8Y + 0.0481 + 20080801-170000 + + + ESTRSWP8Y + 0.0438 + 20080801-170000 + + + EUB6SWP9Y + 0.0479 + 20080801-170000 + + + ESTRSWP9Y + 0.0442 + 20080801-170000 + + + EUB6SWP10Y + 0.0488 + 20080801-170000 + + + ESTRSWP10Y + 0.0446 + 20080801-170000 + + + EUB6SWP11Y + 0.0488 + 20080801-170000 + + + ESTRSWP11Y + 0.0448 + 20080801-170000 + + + EUB6SWP12Y + 0.049 + 20080801-170000 + + + ESTRSWP12Y + 0.0452 + 20080801-170000 + + + EUB6SWP13Y + 0.0486 + 20080801-170000 + + + EUB6SWP14Y + 0.0495 + 20080801-170000 + + + EUB6SWP15Y + 0.0493 + 20080801-170000 + + + ESTRSWP15Y + 0.0457 + 20080801-170000 + + + EUB6SWP16Y + 0.0496 + 20080801-170000 + + + EUB6SWP17Y + 0.0496 + 20080801-170000 + + + EUB6SWP18Y + 0.0495 + 20080801-170000 + + + EUB6SWP19Y + 0.0488 + 20080801-170000 + + + EUB6SWP20Y + 0.0494 + 20080801-170000 + + + ESTRSWP20Y + 0.0461 + 20080801-170000 + + + EUB6SWP21Y + 0.0488 + 20080801-170000 + + + EUB6SWP22Y + 0.0493 + 20080801-170000 + + + EUB6SWP23Y + 0.0486 + 20080801-170000 + + + EUB6SWP24Y + 0.0485 + 20080801-170000 + + + EUB6SWP25Y + 0.0486 + 20080801-170000 + + + ESTRSWP25Y + 0.0452 + 20080801-170000 + + + EUB6SWP26Y + 0.0485 + 20080801-170000 + + + EUB6SWP27Y + 0.0486 + 20080801-170000 + + + EUB6SWP28Y + 0.0486 + 20080801-170000 + + + EUB6SWP29Y + 0.0481 + 20080801-170000 + + + EUB6SWP30Y + 0.0484 + 20080801-170000 + + + ESTRSWP30Y + 0.0447 + 20080801-170000 + + + EUB6SWP35Y + 0.0479 + 20080801-170000 + + + EUB6SWP40Y + 0.0467 + 20080801-170000 + + + EUB6SWP45Y + 0.0465 + 20080801-170000 + + + EUB6SWP50Y + 0.0461 + 20080801-170000 + + + EUB6SWP60Y + 0.046 + 20080801-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-04.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-04.xml new file mode 100644 index 000000000..ef7753a9a --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-04.xml @@ -0,0 +1,344 @@ + + + 20080804-170000 + + EUB6FIX6M + 0.0515 + 20080804-170000 + + + ESTRSWP3W + 0.0427 + 20080804-170000 + + + ESTRSWP1W + 0.0429 + 20080804-170000 + + + ESTRSWP2W + 0.0432 + 20080804-170000 + + + ESTRSWP1M + 0.0431 + 20080804-170000 + + + ESTRSWP2M + 0.0431 + 20080804-170000 + + + ESTRSWP3M + 0.0438 + 20080804-170000 + + + ESTRSWP4M + 0.044 + 20080804-170000 + + + ESTRSWP5M + 0.0437 + 20080804-170000 + + + ESTRSWP6M + 0.0441 + 20080804-170000 + + + ESTRSWP7M + 0.0439 + 20080804-170000 + + + ESTRSWP8M + 0.0441 + 20080804-170000 + + + ESTRSWP9M + 0.0441 + 20080804-170000 + + + ESTRSWP10M + 0.044 + 20080804-170000 + + + ESTRSWP11M + 0.0445 + 20080804-170000 + + + EUB6SWP1Y + 0.0515 + 20080804-170000 + + + ESTRSWP12M + 0.0439 + 20080804-170000 + + + ESTRSWP15M + 0.0436 + 20080804-170000 + + + ESTRSWP18M + 0.0435 + 20080804-170000 + + + EUB6SWP2Y + 0.0495 + 20080804-170000 + + + ESTRSWP2Y + 0.043 + 20080804-170000 + + + EUB6SWP3Y + 0.0494 + 20080804-170000 + + + ESTRSWP3Y + 0.0435 + 20080804-170000 + + + EUB6SWP4Y + 0.0488 + 20080804-170000 + + + ESTRSWP4Y + 0.0439 + 20080804-170000 + + + EUB6SWP5Y + 0.0487 + 20080804-170000 + + + ESTRSWP5Y + 0.0438 + 20080804-170000 + + + EUB6SWP6Y + 0.0487 + 20080804-170000 + + + ESTRSWP6Y + 0.044 + 20080804-170000 + + + EUB6SWP7Y + 0.048 + 20080804-170000 + + + ESTRSWP7Y + 0.044 + 20080804-170000 + + + EUB6SWP8Y + 0.0482 + 20080804-170000 + + + ESTRSWP8Y + 0.0441 + 20080804-170000 + + + EUB6SWP9Y + 0.0485 + 20080804-170000 + + + ESTRSWP9Y + 0.0444 + 20080804-170000 + + + EUB6SWP10Y + 0.0489 + 20080804-170000 + + + ESTRSWP10Y + 0.0448 + 20080804-170000 + + + EUB6SWP11Y + 0.0484 + 20080804-170000 + + + ESTRSWP11Y + 0.0454 + 20080804-170000 + + + EUB6SWP12Y + 0.0491 + 20080804-170000 + + + ESTRSWP12Y + 0.0449 + 20080804-170000 + + + EUB6SWP13Y + 0.0494 + 20080804-170000 + + + EUB6SWP14Y + 0.0493 + 20080804-170000 + + + EUB6SWP15Y + 0.0494 + 20080804-170000 + + + ESTRSWP15Y + 0.0454 + 20080804-170000 + + + EUB6SWP16Y + 0.0492 + 20080804-170000 + + + EUB6SWP17Y + 0.0489 + 20080804-170000 + + + EUB6SWP18Y + 0.0496 + 20080804-170000 + + + EUB6SWP19Y + 0.0488 + 20080804-170000 + + + EUB6SWP20Y + 0.0491 + 20080804-170000 + + + ESTRSWP20Y + 0.0464 + 20080804-170000 + + + EUB6SWP21Y + 0.0496 + 20080804-170000 + + + EUB6SWP22Y + 0.0487 + 20080804-170000 + + + EUB6SWP23Y + 0.0494 + 20080804-170000 + + + EUB6SWP24Y + 0.0484 + 20080804-170000 + + + EUB6SWP25Y + 0.0492 + 20080804-170000 + + + ESTRSWP25Y + 0.0454 + 20080804-170000 + + + EUB6SWP26Y + 0.0483 + 20080804-170000 + + + EUB6SWP27Y + 0.0484 + 20080804-170000 + + + EUB6SWP28Y + 0.0485 + 20080804-170000 + + + EUB6SWP29Y + 0.0487 + 20080804-170000 + + + EUB6SWP30Y + 0.0486 + 20080804-170000 + + + ESTRSWP30Y + 0.045 + 20080804-170000 + + + EUB6SWP35Y + 0.0478 + 20080804-170000 + + + EUB6SWP40Y + 0.0476 + 20080804-170000 + + + EUB6SWP45Y + 0.0471 + 20080804-170000 + + + EUB6SWP50Y + 0.0469 + 20080804-170000 + + + EUB6SWP60Y + 0.0461 + 20080804-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-05.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-05.xml new file mode 100644 index 000000000..c5e79d84e --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-05.xml @@ -0,0 +1,344 @@ + + + 20080805-170000 + + EUB6FIX6M + 0.0518 + 20080805-170000 + + + ESTRSWP3W + 0.0426 + 20080805-170000 + + + ESTRSWP1W + 0.0426 + 20080805-170000 + + + ESTRSWP2W + 0.0425 + 20080805-170000 + + + ESTRSWP1M + 0.0434 + 20080805-170000 + + + ESTRSWP2M + 0.0431 + 20080805-170000 + + + ESTRSWP3M + 0.0432 + 20080805-170000 + + + ESTRSWP4M + 0.0434 + 20080805-170000 + + + ESTRSWP5M + 0.0436 + 20080805-170000 + + + ESTRSWP6M + 0.0434 + 20080805-170000 + + + ESTRSWP7M + 0.0437 + 20080805-170000 + + + ESTRSWP8M + 0.0438 + 20080805-170000 + + + ESTRSWP9M + 0.0439 + 20080805-170000 + + + ESTRSWP10M + 0.0447 + 20080805-170000 + + + ESTRSWP11M + 0.0437 + 20080805-170000 + + + EUB6SWP1Y + 0.0518 + 20080805-170000 + + + ESTRSWP12M + 0.0442 + 20080805-170000 + + + ESTRSWP15M + 0.0442 + 20080805-170000 + + + ESTRSWP18M + 0.0432 + 20080805-170000 + + + EUB6SWP2Y + 0.0501 + 20080805-170000 + + + ESTRSWP2Y + 0.0437 + 20080805-170000 + + + EUB6SWP3Y + 0.0494 + 20080805-170000 + + + ESTRSWP3Y + 0.0433 + 20080805-170000 + + + EUB6SWP4Y + 0.0491 + 20080805-170000 + + + ESTRSWP4Y + 0.0434 + 20080805-170000 + + + EUB6SWP5Y + 0.0486 + 20080805-170000 + + + ESTRSWP5Y + 0.0436 + 20080805-170000 + + + EUB6SWP6Y + 0.0478 + 20080805-170000 + + + ESTRSWP6Y + 0.043 + 20080805-170000 + + + EUB6SWP7Y + 0.0481 + 20080805-170000 + + + ESTRSWP7Y + 0.0431 + 20080805-170000 + + + EUB6SWP8Y + 0.0475 + 20080805-170000 + + + ESTRSWP8Y + 0.0437 + 20080805-170000 + + + EUB6SWP9Y + 0.0483 + 20080805-170000 + + + ESTRSWP9Y + 0.0443 + 20080805-170000 + + + EUB6SWP10Y + 0.0478 + 20080805-170000 + + + ESTRSWP10Y + 0.0442 + 20080805-170000 + + + EUB6SWP11Y + 0.0487 + 20080805-170000 + + + ESTRSWP11Y + 0.0449 + 20080805-170000 + + + EUB6SWP12Y + 0.0483 + 20080805-170000 + + + ESTRSWP12Y + 0.0453 + 20080805-170000 + + + EUB6SWP13Y + 0.049 + 20080805-170000 + + + EUB6SWP14Y + 0.0484 + 20080805-170000 + + + EUB6SWP15Y + 0.0494 + 20080805-170000 + + + ESTRSWP15Y + 0.0451 + 20080805-170000 + + + EUB6SWP16Y + 0.0488 + 20080805-170000 + + + EUB6SWP17Y + 0.049 + 20080805-170000 + + + EUB6SWP18Y + 0.0488 + 20080805-170000 + + + EUB6SWP19Y + 0.0489 + 20080805-170000 + + + EUB6SWP20Y + 0.0487 + 20080805-170000 + + + ESTRSWP20Y + 0.0454 + 20080805-170000 + + + EUB6SWP21Y + 0.0492 + 20080805-170000 + + + EUB6SWP22Y + 0.0489 + 20080805-170000 + + + EUB6SWP23Y + 0.049 + 20080805-170000 + + + EUB6SWP24Y + 0.0486 + 20080805-170000 + + + EUB6SWP25Y + 0.0484 + 20080805-170000 + + + ESTRSWP25Y + 0.0449 + 20080805-170000 + + + EUB6SWP26Y + 0.0485 + 20080805-170000 + + + EUB6SWP27Y + 0.0484 + 20080805-170000 + + + EUB6SWP28Y + 0.0485 + 20080805-170000 + + + EUB6SWP29Y + 0.0477 + 20080805-170000 + + + EUB6SWP30Y + 0.0482 + 20080805-170000 + + + ESTRSWP30Y + 0.0455 + 20080805-170000 + + + EUB6SWP35Y + 0.0478 + 20080805-170000 + + + EUB6SWP40Y + 0.0474 + 20080805-170000 + + + EUB6SWP45Y + 0.0467 + 20080805-170000 + + + EUB6SWP50Y + 0.0462 + 20080805-170000 + + + EUB6SWP60Y + 0.0456 + 20080805-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-06.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-06.xml new file mode 100644 index 000000000..858696744 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-06.xml @@ -0,0 +1,344 @@ + + + 20080806-170000 + + EUB6FIX6M + 0.0521 + 20080806-170000 + + + ESTRSWP3W + 0.0428 + 20080806-170000 + + + ESTRSWP1W + 0.0432 + 20080806-170000 + + + ESTRSWP2W + 0.0428 + 20080806-170000 + + + ESTRSWP1M + 0.0432 + 20080806-170000 + + + ESTRSWP2M + 0.0434 + 20080806-170000 + + + ESTRSWP3M + 0.0437 + 20080806-170000 + + + ESTRSWP4M + 0.0433 + 20080806-170000 + + + ESTRSWP5M + 0.0439 + 20080806-170000 + + + ESTRSWP6M + 0.0437 + 20080806-170000 + + + ESTRSWP7M + 0.0437 + 20080806-170000 + + + ESTRSWP8M + 0.0438 + 20080806-170000 + + + ESTRSWP9M + 0.0436 + 20080806-170000 + + + ESTRSWP10M + 0.0439 + 20080806-170000 + + + ESTRSWP11M + 0.0439 + 20080806-170000 + + + EUB6SWP1Y + 0.0519 + 20080806-170000 + + + ESTRSWP12M + 0.0437 + 20080806-170000 + + + ESTRSWP15M + 0.0441 + 20080806-170000 + + + ESTRSWP18M + 0.0431 + 20080806-170000 + + + EUB6SWP2Y + 0.0492 + 20080806-170000 + + + ESTRSWP2Y + 0.043 + 20080806-170000 + + + EUB6SWP3Y + 0.0487 + 20080806-170000 + + + ESTRSWP3Y + 0.0435 + 20080806-170000 + + + EUB6SWP4Y + 0.0486 + 20080806-170000 + + + ESTRSWP4Y + 0.0429 + 20080806-170000 + + + EUB6SWP5Y + 0.0485 + 20080806-170000 + + + ESTRSWP5Y + 0.0434 + 20080806-170000 + + + EUB6SWP6Y + 0.0478 + 20080806-170000 + + + ESTRSWP6Y + 0.0435 + 20080806-170000 + + + EUB6SWP7Y + 0.0478 + 20080806-170000 + + + ESTRSWP7Y + 0.0439 + 20080806-170000 + + + EUB6SWP8Y + 0.0484 + 20080806-170000 + + + ESTRSWP8Y + 0.0443 + 20080806-170000 + + + EUB6SWP9Y + 0.0485 + 20080806-170000 + + + ESTRSWP9Y + 0.0443 + 20080806-170000 + + + EUB6SWP10Y + 0.0488 + 20080806-170000 + + + ESTRSWP10Y + 0.0447 + 20080806-170000 + + + EUB6SWP11Y + 0.0487 + 20080806-170000 + + + ESTRSWP11Y + 0.0449 + 20080806-170000 + + + EUB6SWP12Y + 0.0485 + 20080806-170000 + + + ESTRSWP12Y + 0.045 + 20080806-170000 + + + EUB6SWP13Y + 0.0492 + 20080806-170000 + + + EUB6SWP14Y + 0.0493 + 20080806-170000 + + + EUB6SWP15Y + 0.0493 + 20080806-170000 + + + ESTRSWP15Y + 0.0456 + 20080806-170000 + + + EUB6SWP16Y + 0.0491 + 20080806-170000 + + + EUB6SWP17Y + 0.0493 + 20080806-170000 + + + EUB6SWP18Y + 0.049 + 20080806-170000 + + + EUB6SWP19Y + 0.0492 + 20080806-170000 + + + EUB6SWP20Y + 0.0493 + 20080806-170000 + + + ESTRSWP20Y + 0.0463 + 20080806-170000 + + + EUB6SWP21Y + 0.0493 + 20080806-170000 + + + EUB6SWP22Y + 0.0487 + 20080806-170000 + + + EUB6SWP23Y + 0.0485 + 20080806-170000 + + + EUB6SWP24Y + 0.0492 + 20080806-170000 + + + EUB6SWP25Y + 0.049 + 20080806-170000 + + + ESTRSWP25Y + 0.0457 + 20080806-170000 + + + EUB6SWP26Y + 0.0485 + 20080806-170000 + + + EUB6SWP27Y + 0.0489 + 20080806-170000 + + + EUB6SWP28Y + 0.0484 + 20080806-170000 + + + EUB6SWP29Y + 0.0487 + 20080806-170000 + + + EUB6SWP30Y + 0.0478 + 20080806-170000 + + + ESTRSWP30Y + 0.0455 + 20080806-170000 + + + EUB6SWP35Y + 0.0475 + 20080806-170000 + + + EUB6SWP40Y + 0.0472 + 20080806-170000 + + + EUB6SWP45Y + 0.0468 + 20080806-170000 + + + EUB6SWP50Y + 0.0466 + 20080806-170000 + + + EUB6SWP60Y + 0.046 + 20080806-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-07.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-07.xml new file mode 100644 index 000000000..53820bf75 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-07.xml @@ -0,0 +1,344 @@ + + + 20080807-170000 + + EUB6FIX6M + 0.0517 + 20080807-170000 + + + ESTRSWP3W + 0.0429 + 20080807-170000 + + + ESTRSWP1W + 0.0424 + 20080807-170000 + + + ESTRSWP2W + 0.0429 + 20080807-170000 + + + ESTRSWP1M + 0.0432 + 20080807-170000 + + + ESTRSWP2M + 0.0427 + 20080807-170000 + + + ESTRSWP3M + 0.0427 + 20080807-170000 + + + ESTRSWP4M + 0.0437 + 20080807-170000 + + + ESTRSWP5M + 0.0431 + 20080807-170000 + + + ESTRSWP6M + 0.0435 + 20080807-170000 + + + ESTRSWP7M + 0.0431 + 20080807-170000 + + + ESTRSWP8M + 0.0435 + 20080807-170000 + + + ESTRSWP9M + 0.0433 + 20080807-170000 + + + ESTRSWP10M + 0.0433 + 20080807-170000 + + + ESTRSWP11M + 0.0427 + 20080807-170000 + + + EUB6SWP1Y + 0.051 + 20080807-170000 + + + ESTRSWP12M + 0.0432 + 20080807-170000 + + + ESTRSWP15M + 0.0426 + 20080807-170000 + + + ESTRSWP18M + 0.0421 + 20080807-170000 + + + EUB6SWP2Y + 0.0484 + 20080807-170000 + + + ESTRSWP2Y + 0.0412 + 20080807-170000 + + + EUB6SWP3Y + 0.0474 + 20080807-170000 + + + ESTRSWP3Y + 0.0425 + 20080807-170000 + + + EUB6SWP4Y + 0.0468 + 20080807-170000 + + + ESTRSWP4Y + 0.0412 + 20080807-170000 + + + EUB6SWP5Y + 0.0461 + 20080807-170000 + + + ESTRSWP5Y + 0.0413 + 20080807-170000 + + + EUB6SWP6Y + 0.0466 + 20080807-170000 + + + ESTRSWP6Y + 0.0417 + 20080807-170000 + + + EUB6SWP7Y + 0.0468 + 20080807-170000 + + + ESTRSWP7Y + 0.0423 + 20080807-170000 + + + EUB6SWP8Y + 0.0466 + 20080807-170000 + + + ESTRSWP8Y + 0.0431 + 20080807-170000 + + + EUB6SWP9Y + 0.0469 + 20080807-170000 + + + ESTRSWP9Y + 0.0436 + 20080807-170000 + + + EUB6SWP10Y + 0.0476 + 20080807-170000 + + + ESTRSWP10Y + 0.0433 + 20080807-170000 + + + EUB6SWP11Y + 0.0476 + 20080807-170000 + + + ESTRSWP11Y + 0.0437 + 20080807-170000 + + + EUB6SWP12Y + 0.0481 + 20080807-170000 + + + ESTRSWP12Y + 0.0445 + 20080807-170000 + + + EUB6SWP13Y + 0.0487 + 20080807-170000 + + + EUB6SWP14Y + 0.0491 + 20080807-170000 + + + EUB6SWP15Y + 0.0492 + 20080807-170000 + + + ESTRSWP15Y + 0.0453 + 20080807-170000 + + + EUB6SWP16Y + 0.0489 + 20080807-170000 + + + EUB6SWP17Y + 0.0489 + 20080807-170000 + + + EUB6SWP18Y + 0.0498 + 20080807-170000 + + + EUB6SWP19Y + 0.0497 + 20080807-170000 + + + EUB6SWP20Y + 0.0499 + 20080807-170000 + + + ESTRSWP20Y + 0.0458 + 20080807-170000 + + + EUB6SWP21Y + 0.0491 + 20080807-170000 + + + EUB6SWP22Y + 0.0494 + 20080807-170000 + + + EUB6SWP23Y + 0.0493 + 20080807-170000 + + + EUB6SWP24Y + 0.0491 + 20080807-170000 + + + EUB6SWP25Y + 0.0494 + 20080807-170000 + + + ESTRSWP25Y + 0.0456 + 20080807-170000 + + + EUB6SWP26Y + 0.049 + 20080807-170000 + + + EUB6SWP27Y + 0.0492 + 20080807-170000 + + + EUB6SWP28Y + 0.0487 + 20080807-170000 + + + EUB6SWP29Y + 0.0487 + 20080807-170000 + + + EUB6SWP30Y + 0.0491 + 20080807-170000 + + + ESTRSWP30Y + 0.0454 + 20080807-170000 + + + EUB6SWP35Y + 0.0482 + 20080807-170000 + + + EUB6SWP40Y + 0.048 + 20080807-170000 + + + EUB6SWP45Y + 0.0474 + 20080807-170000 + + + EUB6SWP50Y + 0.0475 + 20080807-170000 + + + EUB6SWP60Y + 0.0471 + 20080807-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-08.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-08.xml new file mode 100644 index 000000000..567a8bbbe --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-08.xml @@ -0,0 +1,344 @@ + + + 20080808-170000 + + EUB6FIX6M + 0.0513 + 20080808-170000 + + + ESTRSWP3W + 0.0425 + 20080808-170000 + + + ESTRSWP1W + 0.0431 + 20080808-170000 + + + ESTRSWP2W + 0.0428 + 20080808-170000 + + + ESTRSWP1M + 0.0424 + 20080808-170000 + + + ESTRSWP2M + 0.0433 + 20080808-170000 + + + ESTRSWP3M + 0.0432 + 20080808-170000 + + + ESTRSWP4M + 0.0434 + 20080808-170000 + + + ESTRSWP5M + 0.0429 + 20080808-170000 + + + ESTRSWP6M + 0.0428 + 20080808-170000 + + + ESTRSWP7M + 0.0433 + 20080808-170000 + + + ESTRSWP8M + 0.0427 + 20080808-170000 + + + ESTRSWP9M + 0.0431 + 20080808-170000 + + + ESTRSWP10M + 0.0429 + 20080808-170000 + + + ESTRSWP11M + 0.0426 + 20080808-170000 + + + EUB6SWP1Y + 0.0512 + 20080808-170000 + + + ESTRSWP12M + 0.0427 + 20080808-170000 + + + ESTRSWP15M + 0.0421 + 20080808-170000 + + + ESTRSWP18M + 0.0415 + 20080808-170000 + + + EUB6SWP2Y + 0.0481 + 20080808-170000 + + + ESTRSWP2Y + 0.0411 + 20080808-170000 + + + EUB6SWP3Y + 0.0466 + 20080808-170000 + + + ESTRSWP3Y + -0.03 + 20080808-170000 + + + EUB6SWP4Y + 0.047 + 20080808-170000 + + + ESTRSWP4Y + 0.0409 + 20080808-170000 + + + EUB6SWP5Y + 0.046 + 20080808-170000 + + + ESTRSWP5Y + 0.0409 + 20080808-170000 + + + EUB6SWP6Y + 0.0463 + 20080808-170000 + + + ESTRSWP6Y + 0.0416 + 20080808-170000 + + + EUB6SWP7Y + 0.047 + 20080808-170000 + + + ESTRSWP7Y + 0.0419 + 20080808-170000 + + + EUB6SWP8Y + 0.0471 + 20080808-170000 + + + ESTRSWP8Y + 0.043 + 20080808-170000 + + + EUB6SWP9Y + 0.0471 + 20080808-170000 + + + ESTRSWP9Y + 0.0436 + 20080808-170000 + + + EUB6SWP10Y + 0.0473 + 20080808-170000 + + + ESTRSWP10Y + 0.0439 + 20080808-170000 + + + EUB6SWP11Y + 0.048 + 20080808-170000 + + + ESTRSWP11Y + 0.0438 + 20080808-170000 + + + EUB6SWP12Y + 0.0484 + 20080808-170000 + + + ESTRSWP12Y + 0.0449 + 20080808-170000 + + + EUB6SWP13Y + 0.0488 + 20080808-170000 + + + EUB6SWP14Y + 0.0493 + 20080808-170000 + + + EUB6SWP15Y + 0.0487 + 20080808-170000 + + + ESTRSWP15Y + 0.0457 + 20080808-170000 + + + EUB6SWP16Y + 0.0491 + 20080808-170000 + + + EUB6SWP17Y + 0.0493 + 20080808-170000 + + + EUB6SWP18Y + 0.049 + 20080808-170000 + + + EUB6SWP19Y + 0.0491 + 20080808-170000 + + + EUB6SWP20Y + 0.0499 + 20080808-170000 + + + ESTRSWP20Y + 0.0459 + 20080808-170000 + + + EUB6SWP21Y + 0.0496 + 20080808-170000 + + + EUB6SWP22Y + 0.0497 + 20080808-170000 + + + EUB6SWP23Y + 0.0493 + 20080808-170000 + + + EUB6SWP24Y + 0.049 + 20080808-170000 + + + EUB6SWP25Y + 0.0493 + 20080808-170000 + + + ESTRSWP25Y + 0.0463 + 20080808-170000 + + + EUB6SWP26Y + 0.049 + 20080808-170000 + + + EUB6SWP27Y + 0.0489 + 20080808-170000 + + + EUB6SWP28Y + 0.049 + 20080808-170000 + + + EUB6SWP29Y + 0.0488 + 20080808-170000 + + + EUB6SWP30Y + 0.0492 + 20080808-170000 + + + ESTRSWP30Y + 0.0452 + 20080808-170000 + + + EUB6SWP35Y + 0.048 + 20080808-170000 + + + EUB6SWP40Y + 0.0484 + 20080808-170000 + + + EUB6SWP45Y + 0.0474 + 20080808-170000 + + + EUB6SWP50Y + 0.0476 + 20080808-170000 + + + EUB6SWP60Y + 0.0473 + 20080808-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-11.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-11.xml new file mode 100644 index 000000000..91f6bd645 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-11.xml @@ -0,0 +1,344 @@ + + + 20080811-170000 + + EUB6FIX6M + 0.0514 + 20080811-170000 + + + ESTRSWP3W + 0.0432 + 20080811-170000 + + + ESTRSWP1W + 0.0429 + 20080811-170000 + + + ESTRSWP2W + 0.0429 + 20080811-170000 + + + ESTRSWP1M + 0.0426 + 20080811-170000 + + + ESTRSWP2M + 0.0436 + 20080811-170000 + + + ESTRSWP3M + 0.0428 + 20080811-170000 + + + ESTRSWP4M + 0.0431 + 20080811-170000 + + + ESTRSWP5M + 0.043 + 20080811-170000 + + + ESTRSWP6M + 0.0436 + 20080811-170000 + + + ESTRSWP7M + 0.0433 + 20080811-170000 + + + ESTRSWP8M + 0.0436 + 20080811-170000 + + + ESTRSWP9M + 0.0436 + 20080811-170000 + + + ESTRSWP10M + 0.0432 + 20080811-170000 + + + ESTRSWP11M + 0.0435 + 20080811-170000 + + + EUB6SWP1Y + 0.0509 + 20080811-170000 + + + ESTRSWP12M + 0.0426 + 20080811-170000 + + + ESTRSWP15M + 0.0424 + 20080811-170000 + + + ESTRSWP18M + 0.0417 + 20080811-170000 + + + EUB6SWP2Y + 0.0484 + 20080811-170000 + + + ESTRSWP2Y + 0.0417 + 20080811-170000 + + + EUB6SWP3Y + 0.0478 + 20080811-170000 + + + ESTRSWP3Y + 0.0417 + 20080811-170000 + + + EUB6SWP4Y + 0.0468 + 20080811-170000 + + + ESTRSWP4Y + 0.0417 + 20080811-170000 + + + EUB6SWP5Y + 0.0468 + 20080811-170000 + + + ESTRSWP5Y + 0.0419 + 20080811-170000 + + + EUB6SWP6Y + 0.0472 + 20080811-170000 + + + ESTRSWP6Y + 0.0422 + 20080811-170000 + + + EUB6SWP7Y + 0.047 + 20080811-170000 + + + ESTRSWP7Y + 0.0422 + 20080811-170000 + + + EUB6SWP8Y + 0.0471 + 20080811-170000 + + + ESTRSWP8Y + 0.0431 + 20080811-170000 + + + EUB6SWP9Y + 0.0476 + 20080811-170000 + + + ESTRSWP9Y + 0.0432 + 20080811-170000 + + + EUB6SWP10Y + 0.0473 + 20080811-170000 + + + ESTRSWP10Y + 0.044 + 20080811-170000 + + + EUB6SWP11Y + 0.0477 + 20080811-170000 + + + ESTRSWP11Y + 0.0439 + 20080811-170000 + + + EUB6SWP12Y + 0.048 + 20080811-170000 + + + ESTRSWP12Y + 0.0451 + 20080811-170000 + + + EUB6SWP13Y + 0.0487 + 20080811-170000 + + + EUB6SWP14Y + 0.0486 + 20080811-170000 + + + EUB6SWP15Y + 0.049 + 20080811-170000 + + + ESTRSWP15Y + 0.0461 + 20080811-170000 + + + EUB6SWP16Y + 0.0491 + 20080811-170000 + + + EUB6SWP17Y + 0.0492 + 20080811-170000 + + + EUB6SWP18Y + 0.049 + 20080811-170000 + + + EUB6SWP19Y + 0.0493 + 20080811-170000 + + + EUB6SWP20Y + 0.0491 + 20080811-170000 + + + ESTRSWP20Y + 0.0459 + 20080811-170000 + + + EUB6SWP21Y + 0.0494 + 20080811-170000 + + + EUB6SWP22Y + 0.0492 + 20080811-170000 + + + EUB6SWP23Y + 0.0491 + 20080811-170000 + + + EUB6SWP24Y + 0.0493 + 20080811-170000 + + + EUB6SWP25Y + 0.0494 + 20080811-170000 + + + ESTRSWP25Y + 0.0462 + 20080811-170000 + + + EUB6SWP26Y + 0.049 + 20080811-170000 + + + EUB6SWP27Y + 0.0493 + 20080811-170000 + + + EUB6SWP28Y + 0.049 + 20080811-170000 + + + EUB6SWP29Y + 0.0492 + 20080811-170000 + + + EUB6SWP30Y + 0.0488 + 20080811-170000 + + + ESTRSWP30Y + 0.0462 + 20080811-170000 + + + EUB6SWP35Y + 0.0488 + 20080811-170000 + + + EUB6SWP40Y + 0.0477 + 20080811-170000 + + + EUB6SWP45Y + 0.0478 + 20080811-170000 + + + EUB6SWP50Y + 0.0476 + 20080811-170000 + + + EUB6SWP60Y + 0.0472 + 20080811-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-12.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-12.xml new file mode 100644 index 000000000..df4614974 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-12.xml @@ -0,0 +1,344 @@ + + + 20080812-170000 + + EUB6FIX6M + 0.0516 + 20080812-170000 + + + ESTRSWP3W + 0.0427 + 20080812-170000 + + + ESTRSWP1W + 0.0428 + 20080812-170000 + + + ESTRSWP2W + 0.0427 + 20080812-170000 + + + ESTRSWP1M + 0.0433 + 20080812-170000 + + + ESTRSWP2M + 0.0431 + 20080812-170000 + + + ESTRSWP3M + 0.0433 + 20080812-170000 + + + ESTRSWP4M + 0.0437 + 20080812-170000 + + + ESTRSWP5M + 0.0431 + 20080812-170000 + + + ESTRSWP6M + 0.0436 + 20080812-170000 + + + ESTRSWP7M + 0.0433 + 20080812-170000 + + + ESTRSWP8M + 0.0432 + 20080812-170000 + + + ESTRSWP9M + 0.0425 + 20080812-170000 + + + ESTRSWP10M + 0.0432 + 20080812-170000 + + + ESTRSWP11M + 0.0424 + 20080812-170000 + + + EUB6SWP1Y + 0.0506 + 20080812-170000 + + + ESTRSWP12M + 0.0423 + 20080812-170000 + + + ESTRSWP15M + 0.0417 + 20080812-170000 + + + ESTRSWP18M + 0.0412 + 20080812-170000 + + + EUB6SWP2Y + 0.0478 + 20080812-170000 + + + ESTRSWP2Y + 0.0413 + 20080812-170000 + + + EUB6SWP3Y + 0.0473 + 20080812-170000 + + + ESTRSWP3Y + 0.0411 + 20080812-170000 + + + EUB6SWP4Y + 0.0462 + 20080812-170000 + + + ESTRSWP4Y + 0.0408 + 20080812-170000 + + + EUB6SWP5Y + 0.0465 + 20080812-170000 + + + ESTRSWP5Y + 0.0413 + 20080812-170000 + + + EUB6SWP6Y + 0.0458 + 20080812-170000 + + + ESTRSWP6Y + 0.0421 + 20080812-170000 + + + EUB6SWP7Y + 0.0467 + 20080812-170000 + + + ESTRSWP7Y + 0.0419 + 20080812-170000 + + + EUB6SWP8Y + 0.047 + 20080812-170000 + + + ESTRSWP8Y + 0.0428 + 20080812-170000 + + + EUB6SWP9Y + 0.0474 + 20080812-170000 + + + ESTRSWP9Y + 0.0426 + 20080812-170000 + + + EUB6SWP10Y + 0.0469 + 20080812-170000 + + + ESTRSWP10Y + 0.0436 + 20080812-170000 + + + EUB6SWP11Y + 0.0478 + 20080812-170000 + + + ESTRSWP11Y + 0.0441 + 20080812-170000 + + + EUB6SWP12Y + 0.0477 + 20080812-170000 + + + ESTRSWP12Y + 0.0444 + 20080812-170000 + + + EUB6SWP13Y + 0.0482 + 20080812-170000 + + + EUB6SWP14Y + 0.0486 + 20080812-170000 + + + EUB6SWP15Y + 0.0491 + 20080812-170000 + + + ESTRSWP15Y + 0.0452 + 20080812-170000 + + + EUB6SWP16Y + 0.0492 + 20080812-170000 + + + EUB6SWP17Y + 0.0486 + 20080812-170000 + + + EUB6SWP18Y + 0.049 + 20080812-170000 + + + EUB6SWP19Y + 0.049 + 20080812-170000 + + + EUB6SWP20Y + 0.0486 + 20080812-170000 + + + ESTRSWP20Y + 0.046 + 20080812-170000 + + + EUB6SWP21Y + 0.0491 + 20080812-170000 + + + EUB6SWP22Y + 0.0494 + 20080812-170000 + + + EUB6SWP23Y + 0.049 + 20080812-170000 + + + EUB6SWP24Y + 0.0491 + 20080812-170000 + + + EUB6SWP25Y + 0.0484 + 20080812-170000 + + + ESTRSWP25Y + 0.0453 + 20080812-170000 + + + EUB6SWP26Y + 0.0492 + 20080812-170000 + + + EUB6SWP27Y + 0.0486 + 20080812-170000 + + + EUB6SWP28Y + 0.0483 + 20080812-170000 + + + EUB6SWP29Y + 0.0487 + 20080812-170000 + + + EUB6SWP30Y + 0.0488 + 20080812-170000 + + + ESTRSWP30Y + 0.0449 + 20080812-170000 + + + EUB6SWP35Y + 0.048 + 20080812-170000 + + + EUB6SWP40Y + 0.048 + 20080812-170000 + + + EUB6SWP45Y + 0.0466 + 20080812-170000 + + + EUB6SWP50Y + 0.0468 + 20080812-170000 + + + EUB6SWP60Y + 0.0464 + 20080812-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-13.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-13.xml new file mode 100644 index 000000000..f72c020e8 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-13.xml @@ -0,0 +1,344 @@ + + + 20080813-170000 + + EUB6FIX6M + 0.0514 + 20080813-170000 + + + ESTRSWP3W + 0.0434 + 20080813-170000 + + + ESTRSWP1W + 0.043 + 20080813-170000 + + + ESTRSWP2W + 0.0426 + 20080813-170000 + + + ESTRSWP1M + 0.0427 + 20080813-170000 + + + ESTRSWP2M + 0.0431 + 20080813-170000 + + + ESTRSWP3M + 0.0437 + 20080813-170000 + + + ESTRSWP4M + 0.0433 + 20080813-170000 + + + ESTRSWP5M + 0.0431 + 20080813-170000 + + + ESTRSWP6M + 0.0432 + 20080813-170000 + + + ESTRSWP7M + 0.0435 + 20080813-170000 + + + ESTRSWP8M + 0.0433 + 20080813-170000 + + + ESTRSWP9M + 0.0427 + 20080813-170000 + + + ESTRSWP10M + 0.0427 + 20080813-170000 + + + ESTRSWP11M + 0.0426 + 20080813-170000 + + + EUB6SWP1Y + 0.051 + 20080813-170000 + + + ESTRSWP12M + 0.0423 + 20080813-170000 + + + ESTRSWP15M + 0.0416 + 20080813-170000 + + + ESTRSWP18M + 0.0414 + 20080813-170000 + + + EUB6SWP2Y + 0.0478 + 20080813-170000 + + + ESTRSWP2Y + 0.0411 + 20080813-170000 + + + EUB6SWP3Y + 0.0464 + 20080813-170000 + + + ESTRSWP3Y + 0.0402 + 20080813-170000 + + + EUB6SWP4Y + 0.0462 + 20080813-170000 + + + ESTRSWP4Y + 0.0408 + 20080813-170000 + + + EUB6SWP5Y + 0.0459 + 20080813-170000 + + + ESTRSWP5Y + 0.0412 + 20080813-170000 + + + EUB6SWP6Y + 0.0461 + 20080813-170000 + + + ESTRSWP6Y + 0.0414 + 20080813-170000 + + + EUB6SWP7Y + 0.0459 + 20080813-170000 + + + ESTRSWP7Y + 0.042 + 20080813-170000 + + + EUB6SWP8Y + 0.046 + 20080813-170000 + + + ESTRSWP8Y + 0.0422 + 20080813-170000 + + + EUB6SWP9Y + 0.0468 + 20080813-170000 + + + ESTRSWP9Y + 0.0422 + 20080813-170000 + + + EUB6SWP10Y + 0.0476 + 20080813-170000 + + + ESTRSWP10Y + 0.0428 + 20080813-170000 + + + EUB6SWP11Y + 0.048 + 20080813-170000 + + + ESTRSWP11Y + 0.0437 + 20080813-170000 + + + EUB6SWP12Y + 0.048 + 20080813-170000 + + + ESTRSWP12Y + 0.0438 + 20080813-170000 + + + EUB6SWP13Y + 0.0479 + 20080813-170000 + + + EUB6SWP14Y + 0.0483 + 20080813-170000 + + + EUB6SWP15Y + 0.0487 + 20080813-170000 + + + ESTRSWP15Y + 0.0451 + 20080813-170000 + + + EUB6SWP16Y + 0.0489 + 20080813-170000 + + + EUB6SWP17Y + 0.0488 + 20080813-170000 + + + EUB6SWP18Y + 0.0491 + 20080813-170000 + + + EUB6SWP19Y + 0.049 + 20080813-170000 + + + EUB6SWP20Y + 0.0486 + 20080813-170000 + + + ESTRSWP20Y + 0.0461 + 20080813-170000 + + + EUB6SWP21Y + 0.0493 + 20080813-170000 + + + EUB6SWP22Y + 0.0488 + 20080813-170000 + + + EUB6SWP23Y + 0.0491 + 20080813-170000 + + + EUB6SWP24Y + 0.0485 + 20080813-170000 + + + EUB6SWP25Y + 0.0492 + 20080813-170000 + + + ESTRSWP25Y + 0.0455 + 20080813-170000 + + + EUB6SWP26Y + 0.0485 + 20080813-170000 + + + EUB6SWP27Y + 0.0488 + 20080813-170000 + + + EUB6SWP28Y + 0.0484 + 20080813-170000 + + + EUB6SWP29Y + 0.0482 + 20080813-170000 + + + EUB6SWP30Y + 0.0479 + 20080813-170000 + + + ESTRSWP30Y + 0.0449 + 20080813-170000 + + + EUB6SWP35Y + 0.0481 + 20080813-170000 + + + EUB6SWP40Y + 0.0474 + 20080813-170000 + + + EUB6SWP45Y + 0.047 + 20080813-170000 + + + EUB6SWP50Y + 0.0469 + 20080813-170000 + + + EUB6SWP60Y + 0.0468 + 20080813-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-14.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-14.xml new file mode 100644 index 000000000..1f1a34253 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-14.xml @@ -0,0 +1,344 @@ + + + 20080814-170000 + + EUB6FIX6M + 0.0514 + 20080814-170000 + + + ESTRSWP3W + 0.0431 + 20080814-170000 + + + ESTRSWP1W + 0.0426 + 20080814-170000 + + + ESTRSWP2W + 0.0433 + 20080814-170000 + + + ESTRSWP1M + 0.0433 + 20080814-170000 + + + ESTRSWP2M + 0.0431 + 20080814-170000 + + + ESTRSWP3M + 0.0432 + 20080814-170000 + + + ESTRSWP4M + 0.0429 + 20080814-170000 + + + ESTRSWP5M + 0.0432 + 20080814-170000 + + + ESTRSWP6M + 0.0428 + 20080814-170000 + + + ESTRSWP7M + 0.0429 + 20080814-170000 + + + ESTRSWP8M + 0.0435 + 20080814-170000 + + + ESTRSWP9M + 0.0434 + 20080814-170000 + + + ESTRSWP10M + 0.0422 + 20080814-170000 + + + ESTRSWP11M + 0.0421 + 20080814-170000 + + + EUB6SWP1Y + 0.0504 + 20080814-170000 + + + ESTRSWP12M + 0.0421 + 20080814-170000 + + + ESTRSWP15M + 0.042 + 20080814-170000 + + + ESTRSWP18M + 0.0411 + 20080814-170000 + + + EUB6SWP2Y + 0.0477 + 20080814-170000 + + + ESTRSWP2Y + 0.0408 + 20080814-170000 + + + EUB6SWP3Y + 0.0463 + 20080814-170000 + + + ESTRSWP3Y + 0.0401 + 20080814-170000 + + + EUB6SWP4Y + 0.0463 + 20080814-170000 + + + ESTRSWP4Y + 0.0403 + 20080814-170000 + + + EUB6SWP5Y + 0.0461 + 20080814-170000 + + + ESTRSWP5Y + 0.0404 + 20080814-170000 + + + EUB6SWP6Y + 0.0455 + 20080814-170000 + + + ESTRSWP6Y + 0.0411 + 20080814-170000 + + + EUB6SWP7Y + 0.0455 + 20080814-170000 + + + ESTRSWP7Y + 0.0419 + 20080814-170000 + + + EUB6SWP8Y + 0.0464 + 20080814-170000 + + + ESTRSWP8Y + 0.0415 + 20080814-170000 + + + EUB6SWP9Y + 0.0467 + 20080814-170000 + + + ESTRSWP9Y + 0.0423 + 20080814-170000 + + + EUB6SWP10Y + 0.0465 + 20080814-170000 + + + ESTRSWP10Y + 0.0433 + 20080814-170000 + + + EUB6SWP11Y + 0.0472 + 20080814-170000 + + + ESTRSWP11Y + 0.0429 + 20080814-170000 + + + EUB6SWP12Y + 0.0473 + 20080814-170000 + + + ESTRSWP12Y + 0.0436 + 20080814-170000 + + + EUB6SWP13Y + 0.0479 + 20080814-170000 + + + EUB6SWP14Y + 0.0477 + 20080814-170000 + + + EUB6SWP15Y + 0.0487 + 20080814-170000 + + + ESTRSWP15Y + 0.0451 + 20080814-170000 + + + EUB6SWP16Y + 0.0486 + 20080814-170000 + + + EUB6SWP17Y + 0.0488 + 20080814-170000 + + + EUB6SWP18Y + 0.0487 + 20080814-170000 + + + EUB6SWP19Y + 0.0488 + 20080814-170000 + + + EUB6SWP20Y + 0.0491 + 20080814-170000 + + + ESTRSWP20Y + 0.0449 + 20080814-170000 + + + EUB6SWP21Y + 0.0487 + 20080814-170000 + + + EUB6SWP22Y + 0.0482 + 20080814-170000 + + + EUB6SWP23Y + 0.0491 + 20080814-170000 + + + EUB6SWP24Y + 0.0485 + 20080814-170000 + + + EUB6SWP25Y + 0.0482 + 20080814-170000 + + + ESTRSWP25Y + 0.0452 + 20080814-170000 + + + EUB6SWP26Y + 0.0489 + 20080814-170000 + + + EUB6SWP27Y + 0.0482 + 20080814-170000 + + + EUB6SWP28Y + 0.0485 + 20080814-170000 + + + EUB6SWP29Y + 0.0478 + 20080814-170000 + + + EUB6SWP30Y + 0.0477 + 20080814-170000 + + + ESTRSWP30Y + 0.0455 + 20080814-170000 + + + EUB6SWP35Y + 0.048 + 20080814-170000 + + + EUB6SWP40Y + 0.047 + 20080814-170000 + + + EUB6SWP45Y + 0.047 + 20080814-170000 + + + EUB6SWP50Y + 0.0469 + 20080814-170000 + + + EUB6SWP60Y + 0.0467 + 20080814-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-15.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-15.xml new file mode 100644 index 000000000..4cba105f7 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-15.xml @@ -0,0 +1,344 @@ + + + 20080815-170000 + + EUB6FIX6M + 0.0517 + 20080815-170000 + + + ESTRSWP3W + 0.0428 + 20080815-170000 + + + ESTRSWP1W + 0.043 + 20080815-170000 + + + ESTRSWP2W + 0.043 + 20080815-170000 + + + ESTRSWP1M + 0.0428 + 20080815-170000 + + + ESTRSWP2M + 0.0435 + 20080815-170000 + + + ESTRSWP3M + 0.0432 + 20080815-170000 + + + ESTRSWP4M + 0.0431 + 20080815-170000 + + + ESTRSWP5M + 0.0432 + 20080815-170000 + + + ESTRSWP6M + 0.043 + 20080815-170000 + + + ESTRSWP7M + 0.0429 + 20080815-170000 + + + ESTRSWP8M + 0.0429 + 20080815-170000 + + + ESTRSWP9M + 0.0432 + 20080815-170000 + + + ESTRSWP10M + 0.0422 + 20080815-170000 + + + ESTRSWP11M + 0.0422 + 20080815-170000 + + + EUB6SWP1Y + 0.0503 + 20080815-170000 + + + ESTRSWP12M + 0.0423 + 20080815-170000 + + + ESTRSWP15M + 0.0414 + 20080815-170000 + + + ESTRSWP18M + 0.0412 + 20080815-170000 + + + EUB6SWP2Y + 0.0473 + 20080815-170000 + + + ESTRSWP2Y + 0.0398 + 20080815-170000 + + + EUB6SWP3Y + 0.0463 + 20080815-170000 + + + ESTRSWP3Y + 0.0394 + 20080815-170000 + + + EUB6SWP4Y + 0.0459 + 20080815-170000 + + + ESTRSWP4Y + 0.0405 + 20080815-170000 + + + EUB6SWP5Y + 0.0457 + 20080815-170000 + + + ESTRSWP5Y + 0.04 + 20080815-170000 + + + EUB6SWP6Y + 0.0449 + 20080815-170000 + + + ESTRSWP6Y + 0.041 + 20080815-170000 + + + EUB6SWP7Y + 0.0454 + 20080815-170000 + + + ESTRSWP7Y + 0.0406 + 20080815-170000 + + + EUB6SWP8Y + 0.0453 + 20080815-170000 + + + ESTRSWP8Y + 0.0412 + 20080815-170000 + + + EUB6SWP9Y + 0.0463 + 20080815-170000 + + + ESTRSWP9Y + 0.0419 + 20080815-170000 + + + EUB6SWP10Y + 0.0462 + 20080815-170000 + + + ESTRSWP10Y + 0.0422 + 20080815-170000 + + + EUB6SWP11Y + 0.0472 + 20080815-170000 + + + ESTRSWP11Y + 0.0427 + 20080815-170000 + + + EUB6SWP12Y + 0.0473 + 20080815-170000 + + + ESTRSWP12Y + 0.0435 + 20080815-170000 + + + EUB6SWP13Y + 0.0478 + 20080815-170000 + + + EUB6SWP14Y + 0.0474 + 20080815-170000 + + + EUB6SWP15Y + 0.0474 + 20080815-170000 + + + ESTRSWP15Y + 0.0443 + 20080815-170000 + + + EUB6SWP16Y + 0.0476 + 20080815-170000 + + + EUB6SWP17Y + 0.0478 + 20080815-170000 + + + EUB6SWP18Y + 0.0484 + 20080815-170000 + + + EUB6SWP19Y + 0.0481 + 20080815-170000 + + + EUB6SWP20Y + 0.0487 + 20080815-170000 + + + ESTRSWP20Y + 0.0449 + 20080815-170000 + + + EUB6SWP21Y + 0.0479 + 20080815-170000 + + + EUB6SWP22Y + 0.0477 + 20080815-170000 + + + EUB6SWP23Y + 0.0477 + 20080815-170000 + + + EUB6SWP24Y + 0.0483 + 20080815-170000 + + + EUB6SWP25Y + 0.0479 + 20080815-170000 + + + ESTRSWP25Y + 0.0452 + 20080815-170000 + + + EUB6SWP26Y + 0.0481 + 20080815-170000 + + + EUB6SWP27Y + 0.0483 + 20080815-170000 + + + EUB6SWP28Y + 0.0481 + 20080815-170000 + + + EUB6SWP29Y + 0.0479 + 20080815-170000 + + + EUB6SWP30Y + 0.0477 + 20080815-170000 + + + ESTRSWP30Y + 0.0444 + 20080815-170000 + + + EUB6SWP35Y + 0.0473 + 20080815-170000 + + + EUB6SWP40Y + 0.0473 + 20080815-170000 + + + EUB6SWP45Y + 0.046 + 20080815-170000 + + + EUB6SWP50Y + 0.0467 + 20080815-170000 + + + EUB6SWP60Y + 0.0461 + 20080815-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-18.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-18.xml new file mode 100644 index 000000000..94f622b15 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-18.xml @@ -0,0 +1,344 @@ + + + 20080818-170000 + + EUB6FIX6M + 0.0515 + 20080818-170000 + + + ESTRSWP3W + 0.0427 + 20080818-170000 + + + ESTRSWP1W + 0.0433 + 20080818-170000 + + + ESTRSWP2W + 0.0432 + 20080818-170000 + + + ESTRSWP1M + 0.0427 + 20080818-170000 + + + ESTRSWP2M + 0.0433 + 20080818-170000 + + + ESTRSWP3M + 0.0432 + 20080818-170000 + + + ESTRSWP4M + 0.0437 + 20080818-170000 + + + ESTRSWP5M + 0.0431 + 20080818-170000 + + + ESTRSWP6M + 0.0435 + 20080818-170000 + + + ESTRSWP7M + 0.0435 + 20080818-170000 + + + ESTRSWP8M + 0.0428 + 20080818-170000 + + + ESTRSWP9M + 0.0426 + 20080818-170000 + + + ESTRSWP10M + 0.0429 + 20080818-170000 + + + ESTRSWP11M + 0.0424 + 20080818-170000 + + + EUB6SWP1Y + 0.0508 + 20080818-170000 + + + ESTRSWP12M + 0.0424 + 20080818-170000 + + + ESTRSWP15M + 0.0414 + 20080818-170000 + + + ESTRSWP18M + 0.0405 + 20080818-170000 + + + EUB6SWP2Y + 0.0466 + 20080818-170000 + + + ESTRSWP2Y + 0.0395 + 20080818-170000 + + + EUB6SWP3Y + 0.0458 + 20080818-170000 + + + ESTRSWP3Y + 0.0395 + 20080818-170000 + + + EUB6SWP4Y + 0.0453 + 20080818-170000 + + + ESTRSWP4Y + 0.0398 + 20080818-170000 + + + EUB6SWP5Y + 0.0457 + 20080818-170000 + + + ESTRSWP5Y + 0.0397 + 20080818-170000 + + + EUB6SWP6Y + 0.0456 + 20080818-170000 + + + ESTRSWP6Y + 0.0407 + 20080818-170000 + + + EUB6SWP7Y + 0.0454 + 20080818-170000 + + + ESTRSWP7Y + 0.0413 + 20080818-170000 + + + EUB6SWP8Y + 0.0455 + 20080818-170000 + + + ESTRSWP8Y + 0.0411 + 20080818-170000 + + + EUB6SWP9Y + 0.0456 + 20080818-170000 + + + ESTRSWP9Y + 0.042 + 20080818-170000 + + + EUB6SWP10Y + 0.0459 + 20080818-170000 + + + ESTRSWP10Y + 0.0422 + 20080818-170000 + + + EUB6SWP11Y + 0.0472 + 20080818-170000 + + + ESTRSWP11Y + 0.0429 + 20080818-170000 + + + EUB6SWP12Y + 0.0469 + 20080818-170000 + + + ESTRSWP12Y + 0.0436 + 20080818-170000 + + + EUB6SWP13Y + 0.0477 + 20080818-170000 + + + EUB6SWP14Y + 0.0477 + 20080818-170000 + + + EUB6SWP15Y + 0.0478 + 20080818-170000 + + + ESTRSWP15Y + 0.0439 + 20080818-170000 + + + EUB6SWP16Y + 0.0482 + 20080818-170000 + + + EUB6SWP17Y + 0.048 + 20080818-170000 + + + EUB6SWP18Y + 0.0478 + 20080818-170000 + + + EUB6SWP19Y + 0.0486 + 20080818-170000 + + + EUB6SWP20Y + 0.0483 + 20080818-170000 + + + ESTRSWP20Y + 0.0452 + 20080818-170000 + + + EUB6SWP21Y + 0.048 + 20080818-170000 + + + EUB6SWP22Y + 0.0482 + 20080818-170000 + + + EUB6SWP23Y + 0.0478 + 20080818-170000 + + + EUB6SWP24Y + 0.0484 + 20080818-170000 + + + EUB6SWP25Y + 0.0483 + 20080818-170000 + + + ESTRSWP25Y + 0.0445 + 20080818-170000 + + + EUB6SWP26Y + 0.048 + 20080818-170000 + + + EUB6SWP27Y + 0.0482 + 20080818-170000 + + + EUB6SWP28Y + 0.0473 + 20080818-170000 + + + EUB6SWP29Y + 0.0474 + 20080818-170000 + + + EUB6SWP30Y + 0.0477 + 20080818-170000 + + + ESTRSWP30Y + 0.0445 + 20080818-170000 + + + EUB6SWP35Y + 0.0472 + 20080818-170000 + + + EUB6SWP40Y + 0.0464 + 20080818-170000 + + + EUB6SWP45Y + 0.0465 + 20080818-170000 + + + EUB6SWP50Y + 0.0463 + 20080818-170000 + + + EUB6SWP60Y + 0.0456 + 20080818-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-19.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-19.xml new file mode 100644 index 000000000..04649466e --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-19.xml @@ -0,0 +1,344 @@ + + + 20080819-170000 + + EUB6FIX6M + 0.0513 + 20080819-170000 + + + ESTRSWP3W + 0.0434 + 20080819-170000 + + + ESTRSWP1W + 0.0434 + 20080819-170000 + + + ESTRSWP2W + 0.0436 + 20080819-170000 + + + ESTRSWP1M + 0.0429 + 20080819-170000 + + + ESTRSWP2M + 0.0431 + 20080819-170000 + + + ESTRSWP3M + 0.0429 + 20080819-170000 + + + ESTRSWP4M + 0.043 + 20080819-170000 + + + ESTRSWP5M + 0.0431 + 20080819-170000 + + + ESTRSWP6M + 0.0431 + 20080819-170000 + + + ESTRSWP7M + 0.0436 + 20080819-170000 + + + ESTRSWP8M + 0.0431 + 20080819-170000 + + + ESTRSWP9M + 0.0427 + 20080819-170000 + + + ESTRSWP10M + 0.0425 + 20080819-170000 + + + ESTRSWP11M + 0.0429 + 20080819-170000 + + + EUB6SWP1Y + 0.0511 + 20080819-170000 + + + ESTRSWP12M + 0.0426 + 20080819-170000 + + + ESTRSWP15M + 0.0421 + 20080819-170000 + + + ESTRSWP18M + 0.0408 + 20080819-170000 + + + EUB6SWP2Y + 0.0476 + 20080819-170000 + + + ESTRSWP2Y + 0.0402 + 20080819-170000 + + + EUB6SWP3Y + 0.0463 + 20080819-170000 + + + ESTRSWP3Y + 0.0401 + 20080819-170000 + + + EUB6SWP4Y + 0.0454 + 20080819-170000 + + + ESTRSWP4Y + 0.0405 + 20080819-170000 + + + EUB6SWP5Y + 0.0456 + 20080819-170000 + + + ESTRSWP5Y + 0.0409 + 20080819-170000 + + + EUB6SWP6Y + 0.0461 + 20080819-170000 + + + ESTRSWP6Y + 0.041 + 20080819-170000 + + + EUB6SWP7Y + 0.0456 + 20080819-170000 + + + ESTRSWP7Y + 0.0412 + 20080819-170000 + + + EUB6SWP8Y + 0.0463 + 20080819-170000 + + + ESTRSWP8Y + 0.0418 + 20080819-170000 + + + EUB6SWP9Y + 0.0468 + 20080819-170000 + + + ESTRSWP9Y + 0.0425 + 20080819-170000 + + + EUB6SWP10Y + 0.0471 + 20080819-170000 + + + ESTRSWP10Y + 0.0423 + 20080819-170000 + + + EUB6SWP11Y + 0.0469 + 20080819-170000 + + + ESTRSWP11Y + 0.0427 + 20080819-170000 + + + EUB6SWP12Y + 0.0472 + 20080819-170000 + + + ESTRSWP12Y + 0.0439 + 20080819-170000 + + + EUB6SWP13Y + 0.048 + 20080819-170000 + + + EUB6SWP14Y + 0.0481 + 20080819-170000 + + + EUB6SWP15Y + 0.0486 + 20080819-170000 + + + ESTRSWP15Y + 0.0441 + 20080819-170000 + + + EUB6SWP16Y + 0.0489 + 20080819-170000 + + + EUB6SWP17Y + 0.0486 + 20080819-170000 + + + EUB6SWP18Y + 0.0481 + 20080819-170000 + + + EUB6SWP19Y + 0.0488 + 20080819-170000 + + + EUB6SWP20Y + 0.0489 + 20080819-170000 + + + ESTRSWP20Y + 0.0448 + 20080819-170000 + + + EUB6SWP21Y + 0.0489 + 20080819-170000 + + + EUB6SWP22Y + 0.0484 + 20080819-170000 + + + EUB6SWP23Y + 0.0486 + 20080819-170000 + + + EUB6SWP24Y + 0.0481 + 20080819-170000 + + + EUB6SWP25Y + 0.0482 + 20080819-170000 + + + ESTRSWP25Y + 0.0449 + 20080819-170000 + + + EUB6SWP26Y + 0.0483 + 20080819-170000 + + + EUB6SWP27Y + 0.0479 + 20080819-170000 + + + EUB6SWP28Y + 0.0482 + 20080819-170000 + + + EUB6SWP29Y + 0.0478 + 20080819-170000 + + + EUB6SWP30Y + 0.0479 + 20080819-170000 + + + ESTRSWP30Y + 0.0452 + 20080819-170000 + + + EUB6SWP35Y + 0.0476 + 20080819-170000 + + + EUB6SWP40Y + 0.0476 + 20080819-170000 + + + EUB6SWP45Y + 0.0466 + 20080819-170000 + + + EUB6SWP50Y + 0.0464 + 20080819-170000 + + + EUB6SWP60Y + 0.0458 + 20080819-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-20.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-20.xml new file mode 100644 index 000000000..30afae366 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-20.xml @@ -0,0 +1,344 @@ + + + 20080820-170000 + + EUB6FIX6M + 0.0514 + 20080820-170000 + + + ESTRSWP3W + 0.0429 + 20080820-170000 + + + ESTRSWP1W + 0.0426 + 20080820-170000 + + + ESTRSWP2W + 0.0434 + 20080820-170000 + + + ESTRSWP1M + 0.0426 + 20080820-170000 + + + ESTRSWP2M + 0.0427 + 20080820-170000 + + + ESTRSWP3M + 0.0436 + 20080820-170000 + + + ESTRSWP4M + 0.0437 + 20080820-170000 + + + ESTRSWP5M + 0.0435 + 20080820-170000 + + + ESTRSWP6M + 0.043 + 20080820-170000 + + + ESTRSWP7M + 0.043 + 20080820-170000 + + + ESTRSWP8M + 0.0428 + 20080820-170000 + + + ESTRSWP9M + 0.0432 + 20080820-170000 + + + ESTRSWP10M + 0.0427 + 20080820-170000 + + + ESTRSWP11M + 0.0426 + 20080820-170000 + + + EUB6SWP1Y + 0.0507 + 20080820-170000 + + + ESTRSWP12M + 0.0424 + 20080820-170000 + + + ESTRSWP15M + 0.041 + 20080820-170000 + + + ESTRSWP18M + 0.0411 + 20080820-170000 + + + EUB6SWP2Y + 0.0478 + 20080820-170000 + + + ESTRSWP2Y + 0.0407 + 20080820-170000 + + + EUB6SWP3Y + 0.0457 + 20080820-170000 + + + ESTRSWP3Y + 0.0402 + 20080820-170000 + + + EUB6SWP4Y + 0.046 + 20080820-170000 + + + ESTRSWP4Y + 0.0401 + 20080820-170000 + + + EUB6SWP5Y + 0.0452 + 20080820-170000 + + + ESTRSWP5Y + 0.04 + 20080820-170000 + + + EUB6SWP6Y + 0.045 + 20080820-170000 + + + ESTRSWP6Y + 0.0403 + 20080820-170000 + + + EUB6SWP7Y + 0.0458 + 20080820-170000 + + + ESTRSWP7Y + 0.0412 + 20080820-170000 + + + EUB6SWP8Y + 0.0453 + 20080820-170000 + + + ESTRSWP8Y + 0.0415 + 20080820-170000 + + + EUB6SWP9Y + 0.0459 + 20080820-170000 + + + ESTRSWP9Y + 0.0417 + 20080820-170000 + + + EUB6SWP10Y + 0.0468 + 20080820-170000 + + + ESTRSWP10Y + 0.0422 + 20080820-170000 + + + EUB6SWP11Y + 0.0466 + 20080820-170000 + + + ESTRSWP11Y + 0.0425 + 20080820-170000 + + + EUB6SWP12Y + 0.0471 + 20080820-170000 + + + ESTRSWP12Y + 0.043 + 20080820-170000 + + + EUB6SWP13Y + 0.0469 + 20080820-170000 + + + EUB6SWP14Y + 0.0477 + 20080820-170000 + + + EUB6SWP15Y + 0.0478 + 20080820-170000 + + + ESTRSWP15Y + 0.0438 + 20080820-170000 + + + EUB6SWP16Y + 0.0479 + 20080820-170000 + + + EUB6SWP17Y + 0.0483 + 20080820-170000 + + + EUB6SWP18Y + 0.0485 + 20080820-170000 + + + EUB6SWP19Y + 0.0485 + 20080820-170000 + + + EUB6SWP20Y + 0.0484 + 20080820-170000 + + + ESTRSWP20Y + 0.0448 + 20080820-170000 + + + EUB6SWP21Y + 0.0478 + 20080820-170000 + + + EUB6SWP22Y + 0.0483 + 20080820-170000 + + + EUB6SWP23Y + 0.0485 + 20080820-170000 + + + EUB6SWP24Y + 0.0485 + 20080820-170000 + + + EUB6SWP25Y + 0.0483 + 20080820-170000 + + + ESTRSWP25Y + 0.0449 + 20080820-170000 + + + EUB6SWP26Y + 0.0475 + 20080820-170000 + + + EUB6SWP27Y + 0.0478 + 20080820-170000 + + + EUB6SWP28Y + 0.0482 + 20080820-170000 + + + EUB6SWP29Y + 0.0477 + 20080820-170000 + + + EUB6SWP30Y + 0.0478 + 20080820-170000 + + + ESTRSWP30Y + 0.0441 + 20080820-170000 + + + EUB6SWP35Y + 0.0472 + 20080820-170000 + + + EUB6SWP40Y + 0.0466 + 20080820-170000 + + + EUB6SWP45Y + 0.0467 + 20080820-170000 + + + EUB6SWP50Y + 0.0462 + 20080820-170000 + + + EUB6SWP60Y + 0.0462 + 20080820-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-21.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-21.xml new file mode 100644 index 000000000..85ebc766a --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-21.xml @@ -0,0 +1,344 @@ + + + 20080821-170000 + + EUB6FIX6M + 0.0515 + 20080821-170000 + + + ESTRSWP3W + 0.0428 + 20080821-170000 + + + ESTRSWP1W + 0.0434 + 20080821-170000 + + + ESTRSWP2W + 0.0425 + 20080821-170000 + + + ESTRSWP1M + 0.0429 + 20080821-170000 + + + ESTRSWP2M + 0.043 + 20080821-170000 + + + ESTRSWP3M + 0.0437 + 20080821-170000 + + + ESTRSWP4M + 0.043 + 20080821-170000 + + + ESTRSWP5M + 0.0431 + 20080821-170000 + + + ESTRSWP6M + 0.0434 + 20080821-170000 + + + ESTRSWP7M + 0.0431 + 20080821-170000 + + + ESTRSWP8M + 0.0432 + 20080821-170000 + + + ESTRSWP9M + 0.0433 + 20080821-170000 + + + ESTRSWP10M + 0.0434 + 20080821-170000 + + + ESTRSWP11M + 0.0425 + 20080821-170000 + + + EUB6SWP1Y + 0.051 + 20080821-170000 + + + ESTRSWP12M + 0.0432 + 20080821-170000 + + + ESTRSWP15M + 0.0419 + 20080821-170000 + + + ESTRSWP18M + 0.0418 + 20080821-170000 + + + EUB6SWP2Y + 0.0475 + 20080821-170000 + + + ESTRSWP2Y + 0.0411 + 20080821-170000 + + + EUB6SWP3Y + 0.0466 + 20080821-170000 + + + ESTRSWP3Y + 0.0403 + 20080821-170000 + + + EUB6SWP4Y + 0.0462 + 20080821-170000 + + + ESTRSWP4Y + 0.0409 + 20080821-170000 + + + EUB6SWP5Y + 0.0461 + 20080821-170000 + + + ESTRSWP5Y + 0.0409 + 20080821-170000 + + + EUB6SWP6Y + 0.0458 + 20080821-170000 + + + ESTRSWP6Y + 0.0416 + 20080821-170000 + + + EUB6SWP7Y + 0.0465 + 20080821-170000 + + + ESTRSWP7Y + 0.0417 + 20080821-170000 + + + EUB6SWP8Y + 0.0463 + 20080821-170000 + + + ESTRSWP8Y + 0.0421 + 20080821-170000 + + + EUB6SWP9Y + 0.0464 + 20080821-170000 + + + ESTRSWP9Y + 0.0428 + 20080821-170000 + + + EUB6SWP10Y + 0.0473 + 20080821-170000 + + + ESTRSWP10Y + 0.0427 + 20080821-170000 + + + EUB6SWP11Y + 0.0472 + 20080821-170000 + + + ESTRSWP11Y + 0.0436 + 20080821-170000 + + + EUB6SWP12Y + 0.0472 + 20080821-170000 + + + ESTRSWP12Y + 0.0438 + 20080821-170000 + + + EUB6SWP13Y + 0.0474 + 20080821-170000 + + + EUB6SWP14Y + 0.0475 + 20080821-170000 + + + EUB6SWP15Y + 0.0483 + 20080821-170000 + + + ESTRSWP15Y + 0.0442 + 20080821-170000 + + + EUB6SWP16Y + 0.0484 + 20080821-170000 + + + EUB6SWP17Y + 0.0481 + 20080821-170000 + + + EUB6SWP18Y + 0.0489 + 20080821-170000 + + + EUB6SWP19Y + 0.0485 + 20080821-170000 + + + EUB6SWP20Y + 0.0483 + 20080821-170000 + + + ESTRSWP20Y + 0.0452 + 20080821-170000 + + + EUB6SWP21Y + 0.048 + 20080821-170000 + + + EUB6SWP22Y + 0.0482 + 20080821-170000 + + + EUB6SWP23Y + 0.0483 + 20080821-170000 + + + EUB6SWP24Y + 0.0483 + 20080821-170000 + + + EUB6SWP25Y + 0.0481 + 20080821-170000 + + + ESTRSWP25Y + 0.0449 + 20080821-170000 + + + EUB6SWP26Y + 0.048 + 20080821-170000 + + + EUB6SWP27Y + 0.0476 + 20080821-170000 + + + EUB6SWP28Y + 0.0477 + 20080821-170000 + + + EUB6SWP29Y + 0.0478 + 20080821-170000 + + + EUB6SWP30Y + 0.0483 + 20080821-170000 + + + ESTRSWP30Y + 0.0448 + 20080821-170000 + + + EUB6SWP35Y + 0.0479 + 20080821-170000 + + + EUB6SWP40Y + 0.0475 + 20080821-170000 + + + EUB6SWP45Y + 0.0467 + 20080821-170000 + + + EUB6SWP50Y + 0.0469 + 20080821-170000 + + + EUB6SWP60Y + 0.0464 + 20080821-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-22.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-22.xml new file mode 100644 index 000000000..a993b7b20 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-22.xml @@ -0,0 +1,344 @@ + + + 20080822-170000 + + EUB6FIX6M + 0.0517 + 20080822-170000 + + + ESTRSWP3W + 0.0433 + 20080822-170000 + + + ESTRSWP1W + 0.0427 + 20080822-170000 + + + ESTRSWP2W + 0.0427 + 20080822-170000 + + + ESTRSWP1M + 0.0433 + 20080822-170000 + + + ESTRSWP2M + 0.0434 + 20080822-170000 + + + ESTRSWP3M + 0.0437 + 20080822-170000 + + + ESTRSWP4M + 0.0434 + 20080822-170000 + + + ESTRSWP5M + 0.0434 + 20080822-170000 + + + ESTRSWP6M + 0.0435 + 20080822-170000 + + + ESTRSWP7M + 0.0433 + 20080822-170000 + + + ESTRSWP8M + 0.0435 + 20080822-170000 + + + ESTRSWP9M + 0.0428 + 20080822-170000 + + + ESTRSWP10M + 0.043 + 20080822-170000 + + + ESTRSWP11M + 0.0426 + 20080822-170000 + + + EUB6SWP1Y + 0.051 + 20080822-170000 + + + ESTRSWP12M + 0.0426 + 20080822-170000 + + + ESTRSWP15M + 0.042 + 20080822-170000 + + + ESTRSWP18M + 0.041 + 20080822-170000 + + + EUB6SWP2Y + 0.0486 + 20080822-170000 + + + ESTRSWP2Y + 0.0413 + 20080822-170000 + + + EUB6SWP3Y + 0.048 + 20080822-170000 + + + ESTRSWP3Y + 0.0412 + 20080822-170000 + + + EUB6SWP4Y + 0.0474 + 20080822-170000 + + + ESTRSWP4Y + 0.0416 + 20080822-170000 + + + EUB6SWP5Y + 0.047 + 20080822-170000 + + + ESTRSWP5Y + 0.0419 + 20080822-170000 + + + EUB6SWP6Y + 0.047 + 20080822-170000 + + + ESTRSWP6Y + 0.042 + 20080822-170000 + + + EUB6SWP7Y + 0.0464 + 20080822-170000 + + + ESTRSWP7Y + 0.0424 + 20080822-170000 + + + EUB6SWP8Y + 0.0467 + 20080822-170000 + + + ESTRSWP8Y + 0.0424 + 20080822-170000 + + + EUB6SWP9Y + 0.047 + 20080822-170000 + + + ESTRSWP9Y + 0.0425 + 20080822-170000 + + + EUB6SWP10Y + 0.0471 + 20080822-170000 + + + ESTRSWP10Y + 0.0435 + 20080822-170000 + + + EUB6SWP11Y + 0.0475 + 20080822-170000 + + + ESTRSWP11Y + 0.0432 + 20080822-170000 + + + EUB6SWP12Y + 0.048 + 20080822-170000 + + + ESTRSWP12Y + 0.0444 + 20080822-170000 + + + EUB6SWP13Y + 0.0482 + 20080822-170000 + + + EUB6SWP14Y + 0.048 + 20080822-170000 + + + EUB6SWP15Y + 0.049 + 20080822-170000 + + + ESTRSWP15Y + 0.0451 + 20080822-170000 + + + EUB6SWP16Y + 0.0485 + 20080822-170000 + + + EUB6SWP17Y + 0.0486 + 20080822-170000 + + + EUB6SWP18Y + 0.0483 + 20080822-170000 + + + EUB6SWP19Y + 0.0485 + 20080822-170000 + + + EUB6SWP20Y + 0.0483 + 20080822-170000 + + + ESTRSWP20Y + 0.045 + 20080822-170000 + + + EUB6SWP21Y + 0.049 + 20080822-170000 + + + EUB6SWP22Y + 0.0488 + 20080822-170000 + + + EUB6SWP23Y + 0.0484 + 20080822-170000 + + + EUB6SWP24Y + 0.0486 + 20080822-170000 + + + EUB6SWP25Y + 0.0486 + 20080822-170000 + + + ESTRSWP25Y + 0.0451 + 20080822-170000 + + + EUB6SWP26Y + 0.0479 + 20080822-170000 + + + EUB6SWP27Y + 0.0485 + 20080822-170000 + + + EUB6SWP28Y + 0.0481 + 20080822-170000 + + + EUB6SWP29Y + 0.0486 + 20080822-170000 + + + EUB6SWP30Y + 0.0481 + 20080822-170000 + + + ESTRSWP30Y + 0.0443 + 20080822-170000 + + + EUB6SWP35Y + 0.0473 + 20080822-170000 + + + EUB6SWP40Y + 0.0468 + 20080822-170000 + + + EUB6SWP45Y + 0.0473 + 20080822-170000 + + + EUB6SWP50Y + 0.0471 + 20080822-170000 + + + EUB6SWP60Y + 0.0466 + 20080822-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-25.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-25.xml new file mode 100644 index 000000000..b8ebdb318 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-25.xml @@ -0,0 +1,344 @@ + + + 20080825-170000 + + EUB6FIX6M + 0.0517 + 20080825-170000 + + + ESTRSWP3W + 0.0434 + 20080825-170000 + + + ESTRSWP1W + 0.0431 + 20080825-170000 + + + ESTRSWP2W + 0.0428 + 20080825-170000 + + + ESTRSWP1M + 0.0433 + 20080825-170000 + + + ESTRSWP2M + 0.0435 + 20080825-170000 + + + ESTRSWP3M + 0.0428 + 20080825-170000 + + + ESTRSWP4M + 0.0435 + 20080825-170000 + + + ESTRSWP5M + 0.0435 + 20080825-170000 + + + ESTRSWP6M + 0.0436 + 20080825-170000 + + + ESTRSWP7M + 0.0426 + 20080825-170000 + + + ESTRSWP8M + 0.043 + 20080825-170000 + + + ESTRSWP9M + 0.0428 + 20080825-170000 + + + ESTRSWP10M + 0.0425 + 20080825-170000 + + + ESTRSWP11M + 0.043 + 20080825-170000 + + + EUB6SWP1Y + 0.051 + 20080825-170000 + + + ESTRSWP12M + 0.0427 + 20080825-170000 + + + ESTRSWP15M + 0.0417 + 20080825-170000 + + + ESTRSWP18M + 0.0415 + 20080825-170000 + + + EUB6SWP2Y + 0.0482 + 20080825-170000 + + + ESTRSWP2Y + 0.0408 + 20080825-170000 + + + EUB6SWP3Y + 0.0473 + 20080825-170000 + + + ESTRSWP3Y + 0.0407 + 20080825-170000 + + + EUB6SWP4Y + 0.0467 + 20080825-170000 + + + ESTRSWP4Y + 0.0408 + 20080825-170000 + + + EUB6SWP5Y + 0.0456 + 20080825-170000 + + + ESTRSWP5Y + 0.0411 + 20080825-170000 + + + EUB6SWP6Y + 0.0457 + 20080825-170000 + + + ESTRSWP6Y + 0.041 + 20080825-170000 + + + EUB6SWP7Y + 0.0454 + 20080825-170000 + + + ESTRSWP7Y + 0.0416 + 20080825-170000 + + + EUB6SWP8Y + 0.0463 + 20080825-170000 + + + ESTRSWP8Y + 0.0418 + 20080825-170000 + + + EUB6SWP9Y + 0.0463 + 20080825-170000 + + + ESTRSWP9Y + 0.0423 + 20080825-170000 + + + EUB6SWP10Y + 0.0468 + 20080825-170000 + + + ESTRSWP10Y + 0.0425 + 20080825-170000 + + + EUB6SWP11Y + 0.0468 + 20080825-170000 + + + ESTRSWP11Y + 0.0434 + 20080825-170000 + + + EUB6SWP12Y + 0.0469 + 20080825-170000 + + + ESTRSWP12Y + 0.043 + 20080825-170000 + + + EUB6SWP13Y + 0.0477 + 20080825-170000 + + + EUB6SWP14Y + 0.0473 + 20080825-170000 + + + EUB6SWP15Y + 0.0474 + 20080825-170000 + + + ESTRSWP15Y + 0.0437 + 20080825-170000 + + + EUB6SWP16Y + 0.0474 + 20080825-170000 + + + EUB6SWP17Y + 0.0482 + 20080825-170000 + + + EUB6SWP18Y + 0.0478 + 20080825-170000 + + + EUB6SWP19Y + 0.0476 + 20080825-170000 + + + EUB6SWP20Y + 0.0477 + 20080825-170000 + + + ESTRSWP20Y + 0.0441 + 20080825-170000 + + + EUB6SWP21Y + 0.0476 + 20080825-170000 + + + EUB6SWP22Y + 0.0477 + 20080825-170000 + + + EUB6SWP23Y + 0.0478 + 20080825-170000 + + + EUB6SWP24Y + 0.0478 + 20080825-170000 + + + EUB6SWP25Y + 0.0474 + 20080825-170000 + + + ESTRSWP25Y + 0.0442 + 20080825-170000 + + + EUB6SWP26Y + 0.0476 + 20080825-170000 + + + EUB6SWP27Y + 0.0478 + 20080825-170000 + + + EUB6SWP28Y + 0.0472 + 20080825-170000 + + + EUB6SWP29Y + 0.0475 + 20080825-170000 + + + EUB6SWP30Y + 0.0471 + 20080825-170000 + + + ESTRSWP30Y + 0.0437 + 20080825-170000 + + + EUB6SWP35Y + 0.0471 + 20080825-170000 + + + EUB6SWP40Y + 0.0463 + 20080825-170000 + + + EUB6SWP45Y + 0.0465 + 20080825-170000 + + + EUB6SWP50Y + 0.0459 + 20080825-170000 + + + EUB6SWP60Y + 0.046 + 20080825-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-26.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-26.xml new file mode 100644 index 000000000..717f2775b --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-26.xml @@ -0,0 +1,344 @@ + + + 20080826-170000 + + EUB6FIX6M + 0.0512 + 20080826-170000 + + + ESTRSWP3W + 0.0434 + 20080826-170000 + + + ESTRSWP1W + 0.0426 + 20080826-170000 + + + ESTRSWP2W + 0.0426 + 20080826-170000 + + + ESTRSWP1M + 0.0435 + 20080826-170000 + + + ESTRSWP2M + 0.043 + 20080826-170000 + + + ESTRSWP3M + 0.0433 + 20080826-170000 + + + ESTRSWP4M + 0.0434 + 20080826-170000 + + + ESTRSWP5M + 0.0432 + 20080826-170000 + + + ESTRSWP6M + 0.0433 + 20080826-170000 + + + ESTRSWP7M + 0.0429 + 20080826-170000 + + + ESTRSWP8M + 0.0432 + 20080826-170000 + + + ESTRSWP9M + 0.043 + 20080826-170000 + + + ESTRSWP10M + 0.0426 + 20080826-170000 + + + ESTRSWP11M + 0.0427 + 20080826-170000 + + + EUB6SWP1Y + 0.0511 + 20080826-170000 + + + ESTRSWP12M + 0.0418 + 20080826-170000 + + + ESTRSWP15M + 0.0411 + 20080826-170000 + + + ESTRSWP18M + 0.0406 + 20080826-170000 + + + EUB6SWP2Y + 0.0476 + 20080826-170000 + + + ESTRSWP2Y + 0.0407 + 20080826-170000 + + + EUB6SWP3Y + 0.0464 + 20080826-170000 + + + ESTRSWP3Y + 0.0404 + 20080826-170000 + + + EUB6SWP4Y + 0.0459 + 20080826-170000 + + + ESTRSWP4Y + 0.0406 + 20080826-170000 + + + EUB6SWP5Y + 0.046 + 20080826-170000 + + + ESTRSWP5Y + 0.0403 + 20080826-170000 + + + EUB6SWP6Y + 0.046 + 20080826-170000 + + + ESTRSWP6Y + 0.0406 + 20080826-170000 + + + EUB6SWP7Y + 0.046 + 20080826-170000 + + + ESTRSWP7Y + 0.0411 + 20080826-170000 + + + EUB6SWP8Y + 0.0465 + 20080826-170000 + + + ESTRSWP8Y + 0.0419 + 20080826-170000 + + + EUB6SWP9Y + 0.0466 + 20080826-170000 + + + ESTRSWP9Y + 0.0422 + 20080826-170000 + + + EUB6SWP10Y + 0.0468 + 20080826-170000 + + + ESTRSWP10Y + 0.0428 + 20080826-170000 + + + EUB6SWP11Y + 0.0464 + 20080826-170000 + + + ESTRSWP11Y + 0.0429 + 20080826-170000 + + + EUB6SWP12Y + 0.0468 + 20080826-170000 + + + ESTRSWP12Y + 0.0435 + 20080826-170000 + + + EUB6SWP13Y + 0.0472 + 20080826-170000 + + + EUB6SWP14Y + 0.0476 + 20080826-170000 + + + EUB6SWP15Y + 0.0478 + 20080826-170000 + + + ESTRSWP15Y + 0.0435 + 20080826-170000 + + + EUB6SWP16Y + 0.0477 + 20080826-170000 + + + EUB6SWP17Y + 0.048 + 20080826-170000 + + + EUB6SWP18Y + 0.0481 + 20080826-170000 + + + EUB6SWP19Y + 0.0479 + 20080826-170000 + + + EUB6SWP20Y + 0.0482 + 20080826-170000 + + + ESTRSWP20Y + 0.0444 + 20080826-170000 + + + EUB6SWP21Y + 0.0476 + 20080826-170000 + + + EUB6SWP22Y + 0.0483 + 20080826-170000 + + + EUB6SWP23Y + 0.0481 + 20080826-170000 + + + EUB6SWP24Y + 0.0482 + 20080826-170000 + + + EUB6SWP25Y + 0.0474 + 20080826-170000 + + + ESTRSWP25Y + 0.0444 + 20080826-170000 + + + EUB6SWP26Y + 0.0474 + 20080826-170000 + + + EUB6SWP27Y + 0.0475 + 20080826-170000 + + + EUB6SWP28Y + 0.0472 + 20080826-170000 + + + EUB6SWP29Y + 0.0474 + 20080826-170000 + + + EUB6SWP30Y + 0.0475 + 20080826-170000 + + + ESTRSWP30Y + 0.0438 + 20080826-170000 + + + EUB6SWP35Y + 0.0466 + 20080826-170000 + + + EUB6SWP40Y + 0.0466 + 20080826-170000 + + + EUB6SWP45Y + 0.0468 + 20080826-170000 + + + EUB6SWP50Y + 0.0459 + 20080826-170000 + + + EUB6SWP60Y + 0.0457 + 20080826-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-27.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-27.xml new file mode 100644 index 000000000..e8f2f0cf5 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-27.xml @@ -0,0 +1,344 @@ + + + 20080827-170000 + + EUB6FIX6M + 0.0516 + 20080827-170000 + + + ESTRSWP3W + 0.0429 + 20080827-170000 + + + ESTRSWP1W + 0.0437 + 20080827-170000 + + + ESTRSWP2W + 0.0428 + 20080827-170000 + + + ESTRSWP1M + 0.0433 + 20080827-170000 + + + ESTRSWP2M + 0.0435 + 20080827-170000 + + + ESTRSWP3M + 0.0434 + 20080827-170000 + + + ESTRSWP4M + 0.0433 + 20080827-170000 + + + ESTRSWP5M + 0.0434 + 20080827-170000 + + + ESTRSWP6M + 0.0434 + 20080827-170000 + + + ESTRSWP7M + 0.0426 + 20080827-170000 + + + ESTRSWP8M + 0.0432 + 20080827-170000 + + + ESTRSWP9M + 0.0426 + 20080827-170000 + + + ESTRSWP10M + 0.0428 + 20080827-170000 + + + ESTRSWP11M + 0.0423 + 20080827-170000 + + + EUB6SWP1Y + 0.0513 + 20080827-170000 + + + ESTRSWP12M + 0.043 + 20080827-170000 + + + ESTRSWP15M + 0.0418 + 20080827-170000 + + + ESTRSWP18M + 0.0411 + 20080827-170000 + + + EUB6SWP2Y + 0.0486 + 20080827-170000 + + + ESTRSWP2Y + 0.0408 + 20080827-170000 + + + EUB6SWP3Y + 0.0477 + 20080827-170000 + + + ESTRSWP3Y + 0.0408 + 20080827-170000 + + + EUB6SWP4Y + 0.0467 + 20080827-170000 + + + ESTRSWP4Y + 0.0405 + 20080827-170000 + + + EUB6SWP5Y + 0.0463 + 20080827-170000 + + + ESTRSWP5Y + 0.0414 + 20080827-170000 + + + EUB6SWP6Y + 0.0465 + 20080827-170000 + + + ESTRSWP6Y + 0.0413 + 20080827-170000 + + + EUB6SWP7Y + 0.0467 + 20080827-170000 + + + ESTRSWP7Y + 0.0413 + 20080827-170000 + + + EUB6SWP8Y + 0.0466 + 20080827-170000 + + + ESTRSWP8Y + 0.0424 + 20080827-170000 + + + EUB6SWP9Y + 0.0463 + 20080827-170000 + + + ESTRSWP9Y + 0.0421 + 20080827-170000 + + + EUB6SWP10Y + 0.047 + 20080827-170000 + + + ESTRSWP10Y + 0.0428 + 20080827-170000 + + + EUB6SWP11Y + 0.0473 + 20080827-170000 + + + ESTRSWP11Y + 0.0435 + 20080827-170000 + + + EUB6SWP12Y + 0.0472 + 20080827-170000 + + + ESTRSWP12Y + 0.0434 + 20080827-170000 + + + EUB6SWP13Y + 0.0473 + 20080827-170000 + + + EUB6SWP14Y + 0.0479 + 20080827-170000 + + + EUB6SWP15Y + 0.0478 + 20080827-170000 + + + ESTRSWP15Y + 0.0441 + 20080827-170000 + + + EUB6SWP16Y + 0.0481 + 20080827-170000 + + + EUB6SWP17Y + 0.0482 + 20080827-170000 + + + EUB6SWP18Y + 0.0483 + 20080827-170000 + + + EUB6SWP19Y + 0.0484 + 20080827-170000 + + + EUB6SWP20Y + 0.0481 + 20080827-170000 + + + ESTRSWP20Y + 0.0445 + 20080827-170000 + + + EUB6SWP21Y + 0.0478 + 20080827-170000 + + + EUB6SWP22Y + 0.0481 + 20080827-170000 + + + EUB6SWP23Y + 0.0481 + 20080827-170000 + + + EUB6SWP24Y + 0.0481 + 20080827-170000 + + + EUB6SWP25Y + 0.0481 + 20080827-170000 + + + ESTRSWP25Y + 0.0446 + 20080827-170000 + + + EUB6SWP26Y + 0.0484 + 20080827-170000 + + + EUB6SWP27Y + 0.048 + 20080827-170000 + + + EUB6SWP28Y + 0.0477 + 20080827-170000 + + + EUB6SWP29Y + 0.048 + 20080827-170000 + + + EUB6SWP30Y + 0.0473 + 20080827-170000 + + + ESTRSWP30Y + 0.0446 + 20080827-170000 + + + EUB6SWP35Y + 0.0471 + 20080827-170000 + + + EUB6SWP40Y + 0.0473 + 20080827-170000 + + + EUB6SWP45Y + 0.0467 + 20080827-170000 + + + EUB6SWP50Y + 0.0462 + 20080827-170000 + + + EUB6SWP60Y + 0.0454 + 20080827-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-28.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-28.xml new file mode 100644 index 000000000..234cedeaf --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-28.xml @@ -0,0 +1,344 @@ + + + 20080828-170000 + + EUB6FIX6M + 0.0514 + 20080828-170000 + + + ESTRSWP3W + 0.0431 + 20080828-170000 + + + ESTRSWP1W + 0.0428 + 20080828-170000 + + + ESTRSWP2W + 0.0428 + 20080828-170000 + + + ESTRSWP1M + 0.0433 + 20080828-170000 + + + ESTRSWP2M + 0.0433 + 20080828-170000 + + + ESTRSWP3M + 0.0434 + 20080828-170000 + + + ESTRSWP4M + 0.0437 + 20080828-170000 + + + ESTRSWP5M + 0.0428 + 20080828-170000 + + + ESTRSWP6M + 0.0432 + 20080828-170000 + + + ESTRSWP7M + 0.0429 + 20080828-170000 + + + ESTRSWP8M + 0.0431 + 20080828-170000 + + + ESTRSWP9M + 0.0431 + 20080828-170000 + + + ESTRSWP10M + 0.0431 + 20080828-170000 + + + ESTRSWP11M + 0.0433 + 20080828-170000 + + + EUB6SWP1Y + 0.0512 + 20080828-170000 + + + ESTRSWP12M + 0.0431 + 20080828-170000 + + + ESTRSWP15M + 0.0421 + 20080828-170000 + + + ESTRSWP18M + 0.0416 + 20080828-170000 + + + EUB6SWP2Y + 0.049 + 20080828-170000 + + + ESTRSWP2Y + 0.0417 + 20080828-170000 + + + EUB6SWP3Y + 0.0476 + 20080828-170000 + + + ESTRSWP3Y + 0.0411 + 20080828-170000 + + + EUB6SWP4Y + 0.0468 + 20080828-170000 + + + ESTRSWP4Y + 0.0419 + 20080828-170000 + + + EUB6SWP5Y + 0.0468 + 20080828-170000 + + + ESTRSWP5Y + 0.041 + 20080828-170000 + + + EUB6SWP6Y + 0.0463 + 20080828-170000 + + + ESTRSWP6Y + 0.0416 + 20080828-170000 + + + EUB6SWP7Y + 0.047 + 20080828-170000 + + + ESTRSWP7Y + 0.0415 + 20080828-170000 + + + EUB6SWP8Y + 0.0466 + 20080828-170000 + + + ESTRSWP8Y + 0.0426 + 20080828-170000 + + + EUB6SWP9Y + 0.0468 + 20080828-170000 + + + ESTRSWP9Y + 0.0423 + 20080828-170000 + + + EUB6SWP10Y + 0.0466 + 20080828-170000 + + + ESTRSWP10Y + 0.0432 + 20080828-170000 + + + EUB6SWP11Y + 0.0475 + 20080828-170000 + + + ESTRSWP11Y + 0.0425 + 20080828-170000 + + + EUB6SWP12Y + 0.0472 + 20080828-170000 + + + ESTRSWP12Y + 0.0435 + 20080828-170000 + + + EUB6SWP13Y + 0.0477 + 20080828-170000 + + + EUB6SWP14Y + 0.0474 + 20080828-170000 + + + EUB6SWP15Y + 0.0476 + 20080828-170000 + + + ESTRSWP15Y + 0.044 + 20080828-170000 + + + EUB6SWP16Y + 0.0483 + 20080828-170000 + + + EUB6SWP17Y + 0.0479 + 20080828-170000 + + + EUB6SWP18Y + 0.048 + 20080828-170000 + + + EUB6SWP19Y + 0.0482 + 20080828-170000 + + + EUB6SWP20Y + 0.0479 + 20080828-170000 + + + ESTRSWP20Y + 0.0437 + 20080828-170000 + + + EUB6SWP21Y + 0.0476 + 20080828-170000 + + + EUB6SWP22Y + 0.0482 + 20080828-170000 + + + EUB6SWP23Y + 0.0481 + 20080828-170000 + + + EUB6SWP24Y + 0.0471 + 20080828-170000 + + + EUB6SWP25Y + 0.047 + 20080828-170000 + + + ESTRSWP25Y + 0.0443 + 20080828-170000 + + + EUB6SWP26Y + 0.0469 + 20080828-170000 + + + EUB6SWP27Y + 0.0474 + 20080828-170000 + + + EUB6SWP28Y + 0.0468 + 20080828-170000 + + + EUB6SWP29Y + 0.0474 + 20080828-170000 + + + EUB6SWP30Y + 0.0473 + 20080828-170000 + + + ESTRSWP30Y + 0.0436 + 20080828-170000 + + + EUB6SWP35Y + 0.047 + 20080828-170000 + + + EUB6SWP40Y + 0.0465 + 20080828-170000 + + + EUB6SWP45Y + 0.0463 + 20080828-170000 + + + EUB6SWP50Y + 0.0451 + 20080828-170000 + + + EUB6SWP60Y + 0.0453 + 20080828-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-29.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-29.xml new file mode 100644 index 000000000..b6c106b1c --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-08-29.xml @@ -0,0 +1,344 @@ + + + 20080829-170000 + + EUB6FIX6M + 0.0519 + 20080829-170000 + + + ESTRSWP3W + 0.0431 + 20080829-170000 + + + ESTRSWP1W + 0.043 + 20080829-170000 + + + ESTRSWP2W + 0.0432 + 20080829-170000 + + + ESTRSWP1M + 0.0426 + 20080829-170000 + + + ESTRSWP2M + 0.0431 + 20080829-170000 + + + ESTRSWP3M + 0.0431 + 20080829-170000 + + + ESTRSWP4M + 0.0434 + 20080829-170000 + + + ESTRSWP5M + 0.0434 + 20080829-170000 + + + ESTRSWP6M + 0.0429 + 20080829-170000 + + + ESTRSWP7M + 0.043 + 20080829-170000 + + + ESTRSWP8M + 0.0433 + 20080829-170000 + + + ESTRSWP9M + 0.043 + 20080829-170000 + + + ESTRSWP10M + 0.0431 + 20080829-170000 + + + ESTRSWP11M + 0.0427 + 20080829-170000 + + + EUB6SWP1Y + 0.0511 + 20080829-170000 + + + ESTRSWP12M + 0.0426 + 20080829-170000 + + + ESTRSWP15M + 0.0422 + 20080829-170000 + + + ESTRSWP18M + 0.0414 + 20080829-170000 + + + EUB6SWP2Y + 0.0482 + 20080829-170000 + + + ESTRSWP2Y + 0.0414 + 20080829-170000 + + + EUB6SWP3Y + 0.0476 + 20080829-170000 + + + ESTRSWP3Y + 0.0415 + 20080829-170000 + + + EUB6SWP4Y + 0.047 + 20080829-170000 + + + ESTRSWP4Y + 0.0408 + 20080829-170000 + + + EUB6SWP5Y + 0.0465 + 20080829-170000 + + + ESTRSWP5Y + 0.0416 + 20080829-170000 + + + EUB6SWP6Y + 0.0471 + 20080829-170000 + + + ESTRSWP6Y + 0.0412 + 20080829-170000 + + + EUB6SWP7Y + 0.0462 + 20080829-170000 + + + ESTRSWP7Y + 0.0416 + 20080829-170000 + + + EUB6SWP8Y + 0.0465 + 20080829-170000 + + + ESTRSWP8Y + 0.0415 + 20080829-170000 + + + EUB6SWP9Y + 0.0464 + 20080829-170000 + + + ESTRSWP9Y + 0.0422 + 20080829-170000 + + + EUB6SWP10Y + 0.0465 + 20080829-170000 + + + ESTRSWP10Y + 0.0426 + 20080829-170000 + + + EUB6SWP11Y + 0.0468 + 20080829-170000 + + + ESTRSWP11Y + 0.0428 + 20080829-170000 + + + EUB6SWP12Y + 0.0469 + 20080829-170000 + + + ESTRSWP12Y + 0.0429 + 20080829-170000 + + + EUB6SWP13Y + 0.0474 + 20080829-170000 + + + EUB6SWP14Y + 0.0472 + 20080829-170000 + + + EUB6SWP15Y + 0.048 + 20080829-170000 + + + ESTRSWP15Y + 0.0436 + 20080829-170000 + + + EUB6SWP16Y + 0.0472 + 20080829-170000 + + + EUB6SWP17Y + 0.048 + 20080829-170000 + + + EUB6SWP18Y + 0.0472 + 20080829-170000 + + + EUB6SWP19Y + 0.0478 + 20080829-170000 + + + EUB6SWP20Y + 0.0471 + 20080829-170000 + + + ESTRSWP20Y + 0.0435 + 20080829-170000 + + + EUB6SWP21Y + 0.0477 + 20080829-170000 + + + EUB6SWP22Y + 0.0469 + 20080829-170000 + + + EUB6SWP23Y + 0.0469 + 20080829-170000 + + + EUB6SWP24Y + 0.0472 + 20080829-170000 + + + EUB6SWP25Y + 0.0467 + 20080829-170000 + + + ESTRSWP25Y + 0.0432 + 20080829-170000 + + + EUB6SWP26Y + 0.0472 + 20080829-170000 + + + EUB6SWP27Y + 0.0471 + 20080829-170000 + + + EUB6SWP28Y + 0.0471 + 20080829-170000 + + + EUB6SWP29Y + 0.0472 + 20080829-170000 + + + EUB6SWP30Y + 0.047 + 20080829-170000 + + + ESTRSWP30Y + 0.0434 + 20080829-170000 + + + EUB6SWP35Y + 0.046 + 20080829-170000 + + + EUB6SWP40Y + 0.0458 + 20080829-170000 + + + EUB6SWP45Y + 0.0456 + 20080829-170000 + + + EUB6SWP50Y + 0.0451 + 20080829-170000 + + + EUB6SWP60Y + 0.045 + 20080829-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-01.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-01.xml new file mode 100644 index 000000000..ac8ab8ac4 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-01.xml @@ -0,0 +1,344 @@ + + + 20080901-170000 + + EUB6FIX6M + 0.0513 + 20080901-170000 + + + ESTRSWP3W + 0.0427 + 20080901-170000 + + + ESTRSWP1W + 0.0432 + 20080901-170000 + + + ESTRSWP2W + 0.043 + 20080901-170000 + + + ESTRSWP1M + 0.043 + 20080901-170000 + + + ESTRSWP2M + 0.0432 + 20080901-170000 + + + ESTRSWP3M + 0.043 + 20080901-170000 + + + ESTRSWP4M + 0.0435 + 20080901-170000 + + + ESTRSWP5M + 0.0435 + 20080901-170000 + + + ESTRSWP6M + 0.0426 + 20080901-170000 + + + ESTRSWP7M + 0.0431 + 20080901-170000 + + + ESTRSWP8M + 0.0427 + 20080901-170000 + + + ESTRSWP9M + 0.0425 + 20080901-170000 + + + ESTRSWP10M + 0.043 + 20080901-170000 + + + ESTRSWP11M + 0.0422 + 20080901-170000 + + + EUB6SWP1Y + 0.0507 + 20080901-170000 + + + ESTRSWP12M + 0.0423 + 20080901-170000 + + + ESTRSWP15M + 0.0411 + 20080901-170000 + + + ESTRSWP18M + 0.0419 + 20080901-170000 + + + EUB6SWP2Y + 0.0484 + 20080901-170000 + + + ESTRSWP2Y + 0.0411 + 20080901-170000 + + + EUB6SWP3Y + 0.0468 + 20080901-170000 + + + ESTRSWP3Y + 0.0401 + 20080901-170000 + + + EUB6SWP4Y + 0.046 + 20080901-170000 + + + ESTRSWP4Y + 0.0402 + 20080901-170000 + + + EUB6SWP5Y + 0.0461 + 20080901-170000 + + + ESTRSWP5Y + 0.0408 + 20080901-170000 + + + EUB6SWP6Y + 0.0461 + 20080901-170000 + + + ESTRSWP6Y + 0.0407 + 20080901-170000 + + + EUB6SWP7Y + 0.0456 + 20080901-170000 + + + ESTRSWP7Y + 0.0416 + 20080901-170000 + + + EUB6SWP8Y + 0.0459 + 20080901-170000 + + + ESTRSWP8Y + 0.0413 + 20080901-170000 + + + EUB6SWP9Y + 0.0466 + 20080901-170000 + + + ESTRSWP9Y + 0.0418 + 20080901-170000 + + + EUB6SWP10Y + 0.0468 + 20080901-170000 + + + ESTRSWP10Y + 0.0419 + 20080901-170000 + + + EUB6SWP11Y + 0.047 + 20080901-170000 + + + ESTRSWP11Y + 0.0422 + 20080901-170000 + + + EUB6SWP12Y + 0.0468 + 20080901-170000 + + + ESTRSWP12Y + 0.0429 + 20080901-170000 + + + EUB6SWP13Y + 0.0471 + 20080901-170000 + + + EUB6SWP14Y + 0.0467 + 20080901-170000 + + + EUB6SWP15Y + 0.047 + 20080901-170000 + + + ESTRSWP15Y + 0.0429 + 20080901-170000 + + + EUB6SWP16Y + 0.047 + 20080901-170000 + + + EUB6SWP17Y + 0.0471 + 20080901-170000 + + + EUB6SWP18Y + 0.0477 + 20080901-170000 + + + EUB6SWP19Y + 0.0477 + 20080901-170000 + + + EUB6SWP20Y + 0.0475 + 20080901-170000 + + + ESTRSWP20Y + 0.0434 + 20080901-170000 + + + EUB6SWP21Y + 0.0472 + 20080901-170000 + + + EUB6SWP22Y + 0.0467 + 20080901-170000 + + + EUB6SWP23Y + 0.0469 + 20080901-170000 + + + EUB6SWP24Y + 0.0469 + 20080901-170000 + + + EUB6SWP25Y + 0.0468 + 20080901-170000 + + + ESTRSWP25Y + 0.0436 + 20080901-170000 + + + EUB6SWP26Y + 0.047 + 20080901-170000 + + + EUB6SWP27Y + 0.0471 + 20080901-170000 + + + EUB6SWP28Y + 0.0463 + 20080901-170000 + + + EUB6SWP29Y + 0.0466 + 20080901-170000 + + + EUB6SWP30Y + 0.0462 + 20080901-170000 + + + ESTRSWP30Y + 0.0427 + 20080901-170000 + + + EUB6SWP35Y + 0.0462 + 20080901-170000 + + + EUB6SWP40Y + 0.046 + 20080901-170000 + + + EUB6SWP45Y + 0.0456 + 20080901-170000 + + + EUB6SWP50Y + 0.0451 + 20080901-170000 + + + EUB6SWP60Y + 0.0447 + 20080901-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-02.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-02.xml new file mode 100644 index 000000000..ce45230d5 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-02.xml @@ -0,0 +1,344 @@ + + + 20080902-170000 + + EUB6FIX6M + 0.0514 + 20080902-170000 + + + ESTRSWP3W + 0.0428 + 20080902-170000 + + + ESTRSWP1W + 0.0427 + 20080902-170000 + + + ESTRSWP2W + 0.0428 + 20080902-170000 + + + ESTRSWP1M + 0.0426 + 20080902-170000 + + + ESTRSWP2M + 0.0427 + 20080902-170000 + + + ESTRSWP3M + 0.0434 + 20080902-170000 + + + ESTRSWP4M + 0.0428 + 20080902-170000 + + + ESTRSWP5M + 0.0431 + 20080902-170000 + + + ESTRSWP6M + 0.0431 + 20080902-170000 + + + ESTRSWP7M + 0.0432 + 20080902-170000 + + + ESTRSWP8M + 0.0425 + 20080902-170000 + + + ESTRSWP9M + 0.0428 + 20080902-170000 + + + ESTRSWP10M + 0.0423 + 20080902-170000 + + + ESTRSWP11M + 0.0427 + 20080902-170000 + + + EUB6SWP1Y + 0.051 + 20080902-170000 + + + ESTRSWP12M + 0.0427 + 20080902-170000 + + + ESTRSWP15M + 0.0421 + 20080902-170000 + + + ESTRSWP18M + 0.0414 + 20080902-170000 + + + EUB6SWP2Y + 0.0481 + 20080902-170000 + + + ESTRSWP2Y + 0.0407 + 20080902-170000 + + + EUB6SWP3Y + 0.0468 + 20080902-170000 + + + ESTRSWP3Y + 0.0402 + 20080902-170000 + + + EUB6SWP4Y + 0.0459 + 20080902-170000 + + + ESTRSWP4Y + 0.0407 + 20080902-170000 + + + EUB6SWP5Y + 0.0455 + 20080902-170000 + + + ESTRSWP5Y + 0.0408 + 20080902-170000 + + + EUB6SWP6Y + 0.0453 + 20080902-170000 + + + ESTRSWP6Y + 0.041 + 20080902-170000 + + + EUB6SWP7Y + 0.0458 + 20080902-170000 + + + ESTRSWP7Y + 0.0415 + 20080902-170000 + + + EUB6SWP8Y + 0.0463 + 20080902-170000 + + + ESTRSWP8Y + 0.0416 + 20080902-170000 + + + EUB6SWP9Y + 0.0465 + 20080902-170000 + + + ESTRSWP9Y + 0.0418 + 20080902-170000 + + + EUB6SWP10Y + 0.0464 + 20080902-170000 + + + ESTRSWP10Y + 0.0416 + 20080902-170000 + + + EUB6SWP11Y + 0.0462 + 20080902-170000 + + + ESTRSWP11Y + 0.0427 + 20080902-170000 + + + EUB6SWP12Y + 0.0465 + 20080902-170000 + + + ESTRSWP12Y + 0.0432 + 20080902-170000 + + + EUB6SWP13Y + 0.0474 + 20080902-170000 + + + EUB6SWP14Y + 0.0469 + 20080902-170000 + + + EUB6SWP15Y + 0.0471 + 20080902-170000 + + + ESTRSWP15Y + 0.0437 + 20080902-170000 + + + EUB6SWP16Y + 0.0474 + 20080902-170000 + + + EUB6SWP17Y + 0.047 + 20080902-170000 + + + EUB6SWP18Y + 0.0475 + 20080902-170000 + + + EUB6SWP19Y + 0.0475 + 20080902-170000 + + + EUB6SWP20Y + 0.0473 + 20080902-170000 + + + ESTRSWP20Y + 0.0435 + 20080902-170000 + + + EUB6SWP21Y + 0.0469 + 20080902-170000 + + + EUB6SWP22Y + 0.0469 + 20080902-170000 + + + EUB6SWP23Y + 0.0476 + 20080902-170000 + + + EUB6SWP24Y + 0.0469 + 20080902-170000 + + + EUB6SWP25Y + 0.047 + 20080902-170000 + + + ESTRSWP25Y + 0.0439 + 20080902-170000 + + + EUB6SWP26Y + 0.0466 + 20080902-170000 + + + EUB6SWP27Y + 0.047 + 20080902-170000 + + + EUB6SWP28Y + 0.0467 + 20080902-170000 + + + EUB6SWP29Y + 0.0467 + 20080902-170000 + + + EUB6SWP30Y + 0.0461 + 20080902-170000 + + + ESTRSWP30Y + 0.0436 + 20080902-170000 + + + EUB6SWP35Y + 0.0462 + 20080902-170000 + + + EUB6SWP40Y + 0.0452 + 20080902-170000 + + + EUB6SWP45Y + 0.0451 + 20080902-170000 + + + EUB6SWP50Y + 0.0447 + 20080902-170000 + + + EUB6SWP60Y + 0.0443 + 20080902-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-03.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-03.xml new file mode 100644 index 000000000..444e919f6 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-03.xml @@ -0,0 +1,344 @@ + + + 20080903-170000 + + EUB6FIX6M + 0.052 + 20080903-170000 + + + ESTRSWP3W + 0.0432 + 20080903-170000 + + + ESTRSWP1W + 0.0427 + 20080903-170000 + + + ESTRSWP2W + 0.0427 + 20080903-170000 + + + ESTRSWP1M + 0.0428 + 20080903-170000 + + + ESTRSWP2M + 0.043 + 20080903-170000 + + + ESTRSWP3M + 0.0434 + 20080903-170000 + + + ESTRSWP4M + 0.0434 + 20080903-170000 + + + ESTRSWP5M + 0.0436 + 20080903-170000 + + + ESTRSWP6M + 0.0433 + 20080903-170000 + + + ESTRSWP7M + 0.043 + 20080903-170000 + + + ESTRSWP8M + 0.0427 + 20080903-170000 + + + ESTRSWP9M + 0.0428 + 20080903-170000 + + + ESTRSWP10M + 0.0429 + 20080903-170000 + + + ESTRSWP11M + 0.0424 + 20080903-170000 + + + EUB6SWP1Y + 0.0507 + 20080903-170000 + + + ESTRSWP12M + 0.0423 + 20080903-170000 + + + ESTRSWP15M + 0.0414 + 20080903-170000 + + + ESTRSWP18M + 0.0417 + 20080903-170000 + + + EUB6SWP2Y + 0.0477 + 20080903-170000 + + + ESTRSWP2Y + 0.0403 + 20080903-170000 + + + EUB6SWP3Y + 0.0475 + 20080903-170000 + + + ESTRSWP3Y + 0.0408 + 20080903-170000 + + + EUB6SWP4Y + 0.0466 + 20080903-170000 + + + ESTRSWP4Y + 0.0401 + 20080903-170000 + + + EUB6SWP5Y + 0.0456 + 20080903-170000 + + + ESTRSWP5Y + 0.0408 + 20080903-170000 + + + EUB6SWP6Y + 0.0461 + 20080903-170000 + + + ESTRSWP6Y + 0.0406 + 20080903-170000 + + + EUB6SWP7Y + 0.0459 + 20080903-170000 + + + ESTRSWP7Y + 0.0408 + 20080903-170000 + + + EUB6SWP8Y + 0.0462 + 20080903-170000 + + + ESTRSWP8Y + 0.0417 + 20080903-170000 + + + EUB6SWP9Y + 0.0467 + 20080903-170000 + + + ESTRSWP9Y + 0.0415 + 20080903-170000 + + + EUB6SWP10Y + 0.0462 + 20080903-170000 + + + ESTRSWP10Y + 0.0422 + 20080903-170000 + + + EUB6SWP11Y + 0.0466 + 20080903-170000 + + + ESTRSWP11Y + 0.0428 + 20080903-170000 + + + EUB6SWP12Y + 0.0473 + 20080903-170000 + + + ESTRSWP12Y + 0.0428 + 20080903-170000 + + + EUB6SWP13Y + 0.047 + 20080903-170000 + + + EUB6SWP14Y + 0.0476 + 20080903-170000 + + + EUB6SWP15Y + 0.0473 + 20080903-170000 + + + ESTRSWP15Y + 0.044 + 20080903-170000 + + + EUB6SWP16Y + 0.0472 + 20080903-170000 + + + EUB6SWP17Y + 0.0478 + 20080903-170000 + + + EUB6SWP18Y + 0.0472 + 20080903-170000 + + + EUB6SWP19Y + 0.0475 + 20080903-170000 + + + EUB6SWP20Y + 0.048 + 20080903-170000 + + + ESTRSWP20Y + 0.044 + 20080903-170000 + + + EUB6SWP21Y + 0.0475 + 20080903-170000 + + + EUB6SWP22Y + 0.0471 + 20080903-170000 + + + EUB6SWP23Y + 0.0477 + 20080903-170000 + + + EUB6SWP24Y + 0.0469 + 20080903-170000 + + + EUB6SWP25Y + 0.047 + 20080903-170000 + + + ESTRSWP25Y + 0.0439 + 20080903-170000 + + + EUB6SWP26Y + 0.0475 + 20080903-170000 + + + EUB6SWP27Y + 0.0471 + 20080903-170000 + + + EUB6SWP28Y + 0.0471 + 20080903-170000 + + + EUB6SWP29Y + 0.047 + 20080903-170000 + + + EUB6SWP30Y + 0.0473 + 20080903-170000 + + + ESTRSWP30Y + 0.0437 + 20080903-170000 + + + EUB6SWP35Y + 0.0466 + 20080903-170000 + + + EUB6SWP40Y + 0.0457 + 20080903-170000 + + + EUB6SWP45Y + 0.0453 + 20080903-170000 + + + EUB6SWP50Y + 0.0452 + 20080903-170000 + + + EUB6SWP60Y + 0.0454 + 20080903-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-04.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-04.xml new file mode 100644 index 000000000..1409f3714 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-04.xml @@ -0,0 +1,344 @@ + + + 20080904-170000 + + EUB6FIX6M + 0.0518 + 20080904-170000 + + + ESTRSWP3W + 0.0433 + 20080904-170000 + + + ESTRSWP1W + 0.0433 + 20080904-170000 + + + ESTRSWP2W + 0.0428 + 20080904-170000 + + + ESTRSWP1M + 0.0435 + 20080904-170000 + + + ESTRSWP2M + 0.0431 + 20080904-170000 + + + ESTRSWP3M + 0.0437 + 20080904-170000 + + + ESTRSWP4M + 0.0431 + 20080904-170000 + + + ESTRSWP5M + 0.043 + 20080904-170000 + + + ESTRSWP6M + 0.0428 + 20080904-170000 + + + ESTRSWP7M + 0.0428 + 20080904-170000 + + + ESTRSWP8M + 0.0428 + 20080904-170000 + + + ESTRSWP9M + 0.0431 + 20080904-170000 + + + ESTRSWP10M + 0.0432 + 20080904-170000 + + + ESTRSWP11M + 0.0431 + 20080904-170000 + + + EUB6SWP1Y + 0.0511 + 20080904-170000 + + + ESTRSWP12M + 0.0425 + 20080904-170000 + + + ESTRSWP15M + 0.042 + 20080904-170000 + + + ESTRSWP18M + 0.041 + 20080904-170000 + + + EUB6SWP2Y + 0.0477 + 20080904-170000 + + + ESTRSWP2Y + 0.0403 + 20080904-170000 + + + EUB6SWP3Y + 0.0469 + 20080904-170000 + + + ESTRSWP3Y + 0.0394 + 20080904-170000 + + + EUB6SWP4Y + 0.0456 + 20080904-170000 + + + ESTRSWP4Y + 0.0398 + 20080904-170000 + + + EUB6SWP5Y + 0.0452 + 20080904-170000 + + + ESTRSWP5Y + 0.0401 + 20080904-170000 + + + EUB6SWP6Y + 0.0453 + 20080904-170000 + + + ESTRSWP6Y + 0.04 + 20080904-170000 + + + EUB6SWP7Y + 0.0454 + 20080904-170000 + + + ESTRSWP7Y + 0.0403 + 20080904-170000 + + + EUB6SWP8Y + 0.0459 + 20080904-170000 + + + ESTRSWP8Y + 0.0406 + 20080904-170000 + + + EUB6SWP9Y + 0.0459 + 20080904-170000 + + + ESTRSWP9Y + 0.0409 + 20080904-170000 + + + EUB6SWP10Y + 0.0465 + 20080904-170000 + + + ESTRSWP10Y + 0.0421 + 20080904-170000 + + + EUB6SWP11Y + 0.0463 + 20080904-170000 + + + ESTRSWP11Y + 0.0415 + 20080904-170000 + + + EUB6SWP12Y + 0.0466 + 20080904-170000 + + + ESTRSWP12Y + 0.0428 + 20080904-170000 + + + EUB6SWP13Y + 0.0467 + 20080904-170000 + + + EUB6SWP14Y + 0.0471 + 20080904-170000 + + + EUB6SWP15Y + 0.0474 + 20080904-170000 + + + ESTRSWP15Y + 0.0434 + 20080904-170000 + + + EUB6SWP16Y + 0.047 + 20080904-170000 + + + EUB6SWP17Y + 0.0473 + 20080904-170000 + + + EUB6SWP18Y + 0.0475 + 20080904-170000 + + + EUB6SWP19Y + 0.0478 + 20080904-170000 + + + EUB6SWP20Y + 0.0472 + 20080904-170000 + + + ESTRSWP20Y + 0.0438 + 20080904-170000 + + + EUB6SWP21Y + 0.0468 + 20080904-170000 + + + EUB6SWP22Y + 0.0476 + 20080904-170000 + + + EUB6SWP23Y + 0.0471 + 20080904-170000 + + + EUB6SWP24Y + 0.0468 + 20080904-170000 + + + EUB6SWP25Y + 0.0466 + 20080904-170000 + + + ESTRSWP25Y + 0.0429 + 20080904-170000 + + + EUB6SWP26Y + 0.047 + 20080904-170000 + + + EUB6SWP27Y + 0.0467 + 20080904-170000 + + + EUB6SWP28Y + 0.0469 + 20080904-170000 + + + EUB6SWP29Y + 0.0462 + 20080904-170000 + + + EUB6SWP30Y + 0.0464 + 20080904-170000 + + + ESTRSWP30Y + 0.0433 + 20080904-170000 + + + EUB6SWP35Y + 0.046 + 20080904-170000 + + + EUB6SWP40Y + 0.046 + 20080904-170000 + + + EUB6SWP45Y + 0.0453 + 20080904-170000 + + + EUB6SWP50Y + 0.0452 + 20080904-170000 + + + EUB6SWP60Y + 0.0446 + 20080904-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-05.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-05.xml new file mode 100644 index 000000000..f8bd4a144 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-05.xml @@ -0,0 +1,344 @@ + + + 20080905-170000 + + EUB6FIX6M + 0.052 + 20080905-170000 + + + ESTRSWP3W + 0.0435 + 20080905-170000 + + + ESTRSWP1W + 0.043 + 20080905-170000 + + + ESTRSWP2W + 0.0431 + 20080905-170000 + + + ESTRSWP1M + 0.0434 + 20080905-170000 + + + ESTRSWP2M + 0.0432 + 20080905-170000 + + + ESTRSWP3M + 0.0435 + 20080905-170000 + + + ESTRSWP4M + 0.0432 + 20080905-170000 + + + ESTRSWP5M + 0.0431 + 20080905-170000 + + + ESTRSWP6M + 0.0427 + 20080905-170000 + + + ESTRSWP7M + 0.043 + 20080905-170000 + + + ESTRSWP8M + 0.0432 + 20080905-170000 + + + ESTRSWP9M + 0.0427 + 20080905-170000 + + + ESTRSWP10M + 0.0427 + 20080905-170000 + + + ESTRSWP11M + 0.0428 + 20080905-170000 + + + EUB6SWP1Y + 0.0505 + 20080905-170000 + + + ESTRSWP12M + 0.042 + 20080905-170000 + + + ESTRSWP15M + 0.0412 + 20080905-170000 + + + ESTRSWP18M + 0.0406 + 20080905-170000 + + + EUB6SWP2Y + 0.0476 + 20080905-170000 + + + ESTRSWP2Y + 0.0401 + 20080905-170000 + + + EUB6SWP3Y + 0.0461 + 20080905-170000 + + + ESTRSWP3Y + 0.0392 + 20080905-170000 + + + EUB6SWP4Y + 0.0459 + 20080905-170000 + + + ESTRSWP4Y + 0.0387 + 20080905-170000 + + + EUB6SWP5Y + 0.0452 + 20080905-170000 + + + ESTRSWP5Y + 0.0394 + 20080905-170000 + + + EUB6SWP6Y + 0.0448 + 20080905-170000 + + + ESTRSWP6Y + 0.04 + 20080905-170000 + + + EUB6SWP7Y + 0.0455 + 20080905-170000 + + + ESTRSWP7Y + 0.0399 + 20080905-170000 + + + EUB6SWP8Y + 0.0458 + 20080905-170000 + + + ESTRSWP8Y + 0.0401 + 20080905-170000 + + + EUB6SWP9Y + 0.046 + 20080905-170000 + + + ESTRSWP9Y + 0.0411 + 20080905-170000 + + + EUB6SWP10Y + 0.0463 + 20080905-170000 + + + ESTRSWP10Y + 0.0416 + 20080905-170000 + + + EUB6SWP11Y + 0.0465 + 20080905-170000 + + + ESTRSWP11Y + 0.042 + 20080905-170000 + + + EUB6SWP12Y + 0.0466 + 20080905-170000 + + + ESTRSWP12Y + 0.0417 + 20080905-170000 + + + EUB6SWP13Y + 0.0464 + 20080905-170000 + + + EUB6SWP14Y + 0.0467 + 20080905-170000 + + + EUB6SWP15Y + 0.0475 + 20080905-170000 + + + ESTRSWP15Y + 0.0432 + 20080905-170000 + + + EUB6SWP16Y + 0.0469 + 20080905-170000 + + + EUB6SWP17Y + 0.0477 + 20080905-170000 + + + EUB6SWP18Y + 0.0473 + 20080905-170000 + + + EUB6SWP19Y + 0.0474 + 20080905-170000 + + + EUB6SWP20Y + 0.0472 + 20080905-170000 + + + ESTRSWP20Y + 0.0434 + 20080905-170000 + + + EUB6SWP21Y + 0.0476 + 20080905-170000 + + + EUB6SWP22Y + 0.0467 + 20080905-170000 + + + EUB6SWP23Y + 0.0473 + 20080905-170000 + + + EUB6SWP24Y + 0.0476 + 20080905-170000 + + + EUB6SWP25Y + 0.047 + 20080905-170000 + + + ESTRSWP25Y + 0.0437 + 20080905-170000 + + + EUB6SWP26Y + 0.0465 + 20080905-170000 + + + EUB6SWP27Y + 0.0466 + 20080905-170000 + + + EUB6SWP28Y + 0.0465 + 20080905-170000 + + + EUB6SWP29Y + 0.0465 + 20080905-170000 + + + EUB6SWP30Y + 0.0462 + 20080905-170000 + + + ESTRSWP30Y + 0.0427 + 20080905-170000 + + + EUB6SWP35Y + 0.0465 + 20080905-170000 + + + EUB6SWP40Y + 0.0457 + 20080905-170000 + + + EUB6SWP45Y + 0.0458 + 20080905-170000 + + + EUB6SWP50Y + 0.045 + 20080905-170000 + + + EUB6SWP60Y + 0.045 + 20080905-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-08.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-08.xml new file mode 100644 index 000000000..6cf80bf98 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-08.xml @@ -0,0 +1,344 @@ + + + 20080908-170000 + + EUB6FIX6M + 0.0513 + 20080908-170000 + + + ESTRSWP3W + 0.0429 + 20080908-170000 + + + ESTRSWP1W + 0.0432 + 20080908-170000 + + + ESTRSWP2W + 0.0434 + 20080908-170000 + + + ESTRSWP1M + 0.0431 + 20080908-170000 + + + ESTRSWP2M + 0.0433 + 20080908-170000 + + + ESTRSWP3M + 0.0431 + 20080908-170000 + + + ESTRSWP4M + 0.0435 + 20080908-170000 + + + ESTRSWP5M + 0.0427 + 20080908-170000 + + + ESTRSWP6M + 0.0432 + 20080908-170000 + + + ESTRSWP7M + 0.0432 + 20080908-170000 + + + ESTRSWP8M + 0.0436 + 20080908-170000 + + + ESTRSWP9M + 0.0434 + 20080908-170000 + + + ESTRSWP10M + 0.0432 + 20080908-170000 + + + ESTRSWP11M + 0.0422 + 20080908-170000 + + + EUB6SWP1Y + 0.0509 + 20080908-170000 + + + ESTRSWP12M + 0.0422 + 20080908-170000 + + + ESTRSWP15M + 0.042 + 20080908-170000 + + + ESTRSWP18M + 0.041 + 20080908-170000 + + + EUB6SWP2Y + 0.0476 + 20080908-170000 + + + ESTRSWP2Y + 0.0396 + 20080908-170000 + + + EUB6SWP3Y + 0.0458 + 20080908-170000 + + + ESTRSWP3Y + 0.0397 + 20080908-170000 + + + EUB6SWP4Y + 0.0461 + 20080908-170000 + + + ESTRSWP4Y + 0.0401 + 20080908-170000 + + + EUB6SWP5Y + 0.0458 + 20080908-170000 + + + ESTRSWP5Y + 0.0402 + 20080908-170000 + + + EUB6SWP6Y + 0.0448 + 20080908-170000 + + + ESTRSWP6Y + 0.0397 + 20080908-170000 + + + EUB6SWP7Y + 0.0455 + 20080908-170000 + + + ESTRSWP7Y + 0.0406 + 20080908-170000 + + + EUB6SWP8Y + 0.0459 + 20080908-170000 + + + ESTRSWP8Y + 0.0405 + 20080908-170000 + + + EUB6SWP9Y + 0.0454 + 20080908-170000 + + + ESTRSWP9Y + 0.0414 + 20080908-170000 + + + EUB6SWP10Y + 0.0465 + 20080908-170000 + + + ESTRSWP10Y + 0.0422 + 20080908-170000 + + + EUB6SWP11Y + 0.0469 + 20080908-170000 + + + ESTRSWP11Y + 0.0419 + 20080908-170000 + + + EUB6SWP12Y + 0.0469 + 20080908-170000 + + + ESTRSWP12Y + 0.042 + 20080908-170000 + + + EUB6SWP13Y + 0.0466 + 20080908-170000 + + + EUB6SWP14Y + 0.0476 + 20080908-170000 + + + EUB6SWP15Y + 0.047 + 20080908-170000 + + + ESTRSWP15Y + 0.0434 + 20080908-170000 + + + EUB6SWP16Y + 0.0477 + 20080908-170000 + + + EUB6SWP17Y + 0.0471 + 20080908-170000 + + + EUB6SWP18Y + 0.0476 + 20080908-170000 + + + EUB6SWP19Y + 0.0476 + 20080908-170000 + + + EUB6SWP20Y + 0.0475 + 20080908-170000 + + + ESTRSWP20Y + 0.0434 + 20080908-170000 + + + EUB6SWP21Y + 0.0478 + 20080908-170000 + + + EUB6SWP22Y + 0.0476 + 20080908-170000 + + + EUB6SWP23Y + 0.0472 + 20080908-170000 + + + EUB6SWP24Y + 0.047 + 20080908-170000 + + + EUB6SWP25Y + 0.047 + 20080908-170000 + + + ESTRSWP25Y + 0.0432 + 20080908-170000 + + + EUB6SWP26Y + 0.0473 + 20080908-170000 + + + EUB6SWP27Y + 0.0475 + 20080908-170000 + + + EUB6SWP28Y + 0.047 + 20080908-170000 + + + EUB6SWP29Y + 0.0469 + 20080908-170000 + + + EUB6SWP30Y + 0.0463 + 20080908-170000 + + + ESTRSWP30Y + 0.0429 + 20080908-170000 + + + EUB6SWP35Y + 0.0463 + 20080908-170000 + + + EUB6SWP40Y + 0.0462 + 20080908-170000 + + + EUB6SWP45Y + 0.0454 + 20080908-170000 + + + EUB6SWP50Y + 0.045 + 20080908-170000 + + + EUB6SWP60Y + 0.0453 + 20080908-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-09.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-09.xml new file mode 100644 index 000000000..c2261528f --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-09.xml @@ -0,0 +1,344 @@ + + + 20080909-170000 + + EUB6FIX6M + 0.0518 + 20080909-170000 + + + ESTRSWP3W + 0.0432 + 20080909-170000 + + + ESTRSWP1W + 0.0434 + 20080909-170000 + + + ESTRSWP2W + 0.0431 + 20080909-170000 + + + ESTRSWP1M + 0.0434 + 20080909-170000 + + + ESTRSWP2M + 0.0436 + 20080909-170000 + + + ESTRSWP3M + 0.0433 + 20080909-170000 + + + ESTRSWP4M + 0.0436 + 20080909-170000 + + + ESTRSWP5M + 0.0435 + 20080909-170000 + + + ESTRSWP6M + 0.0427 + 20080909-170000 + + + ESTRSWP7M + 0.0425 + 20080909-170000 + + + ESTRSWP8M + 0.0432 + 20080909-170000 + + + ESTRSWP9M + 0.0432 + 20080909-170000 + + + ESTRSWP10M + 0.043 + 20080909-170000 + + + ESTRSWP11M + 0.0423 + 20080909-170000 + + + EUB6SWP1Y + 0.0507 + 20080909-170000 + + + ESTRSWP12M + 0.0419 + 20080909-170000 + + + ESTRSWP15M + 0.0411 + 20080909-170000 + + + ESTRSWP18M + 0.0406 + 20080909-170000 + + + EUB6SWP2Y + 0.0472 + 20080909-170000 + + + ESTRSWP2Y + 0.0399 + 20080909-170000 + + + EUB6SWP3Y + 0.0465 + 20080909-170000 + + + ESTRSWP3Y + 0.0395 + 20080909-170000 + + + EUB6SWP4Y + 0.0449 + 20080909-170000 + + + ESTRSWP4Y + 0.0391 + 20080909-170000 + + + EUB6SWP5Y + 0.0451 + 20080909-170000 + + + ESTRSWP5Y + 0.0394 + 20080909-170000 + + + EUB6SWP6Y + 0.0453 + 20080909-170000 + + + ESTRSWP6Y + 0.0392 + 20080909-170000 + + + EUB6SWP7Y + 0.0456 + 20080909-170000 + + + ESTRSWP7Y + 0.0399 + 20080909-170000 + + + EUB6SWP8Y + 0.0455 + 20080909-170000 + + + ESTRSWP8Y + 0.0408 + 20080909-170000 + + + EUB6SWP9Y + 0.0458 + 20080909-170000 + + + ESTRSWP9Y + 0.041 + 20080909-170000 + + + EUB6SWP10Y + 0.0461 + 20080909-170000 + + + ESTRSWP10Y + 0.0418 + 20080909-170000 + + + EUB6SWP11Y + 0.0466 + 20080909-170000 + + + ESTRSWP11Y + 0.0417 + 20080909-170000 + + + EUB6SWP12Y + 0.0463 + 20080909-170000 + + + ESTRSWP12Y + 0.0427 + 20080909-170000 + + + EUB6SWP13Y + 0.0464 + 20080909-170000 + + + EUB6SWP14Y + 0.0473 + 20080909-170000 + + + EUB6SWP15Y + 0.0474 + 20080909-170000 + + + ESTRSWP15Y + 0.0426 + 20080909-170000 + + + EUB6SWP16Y + 0.0475 + 20080909-170000 + + + EUB6SWP17Y + 0.0472 + 20080909-170000 + + + EUB6SWP18Y + 0.0478 + 20080909-170000 + + + EUB6SWP19Y + 0.0477 + 20080909-170000 + + + EUB6SWP20Y + 0.0472 + 20080909-170000 + + + ESTRSWP20Y + 0.0436 + 20080909-170000 + + + EUB6SWP21Y + 0.0472 + 20080909-170000 + + + EUB6SWP22Y + 0.0478 + 20080909-170000 + + + EUB6SWP23Y + 0.0471 + 20080909-170000 + + + EUB6SWP24Y + 0.0468 + 20080909-170000 + + + EUB6SWP25Y + 0.0468 + 20080909-170000 + + + ESTRSWP25Y + 0.043 + 20080909-170000 + + + EUB6SWP26Y + 0.0466 + 20080909-170000 + + + EUB6SWP27Y + 0.0465 + 20080909-170000 + + + EUB6SWP28Y + 0.0465 + 20080909-170000 + + + EUB6SWP29Y + 0.0464 + 20080909-170000 + + + EUB6SWP30Y + 0.047 + 20080909-170000 + + + ESTRSWP30Y + 0.0428 + 20080909-170000 + + + EUB6SWP35Y + 0.0468 + 20080909-170000 + + + EUB6SWP40Y + 0.0462 + 20080909-170000 + + + EUB6SWP45Y + 0.046 + 20080909-170000 + + + EUB6SWP50Y + 0.045 + 20080909-170000 + + + EUB6SWP60Y + 0.0447 + 20080909-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-10.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-10.xml new file mode 100644 index 000000000..55a112782 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-10.xml @@ -0,0 +1,344 @@ + + + 20080910-170000 + + EUB6FIX6M + 0.0519 + 20080910-170000 + + + ESTRSWP3W + 0.0427 + 20080910-170000 + + + ESTRSWP1W + 0.0432 + 20080910-170000 + + + ESTRSWP2W + 0.0434 + 20080910-170000 + + + ESTRSWP1M + 0.0426 + 20080910-170000 + + + ESTRSWP2M + 0.0436 + 20080910-170000 + + + ESTRSWP3M + 0.043 + 20080910-170000 + + + ESTRSWP4M + 0.0431 + 20080910-170000 + + + ESTRSWP5M + 0.0434 + 20080910-170000 + + + ESTRSWP6M + 0.0429 + 20080910-170000 + + + ESTRSWP7M + 0.0429 + 20080910-170000 + + + ESTRSWP8M + 0.0433 + 20080910-170000 + + + ESTRSWP9M + 0.0429 + 20080910-170000 + + + ESTRSWP10M + 0.0423 + 20080910-170000 + + + ESTRSWP11M + 0.0421 + 20080910-170000 + + + EUB6SWP1Y + 0.0505 + 20080910-170000 + + + ESTRSWP12M + 0.0425 + 20080910-170000 + + + ESTRSWP15M + 0.0419 + 20080910-170000 + + + ESTRSWP18M + 0.0412 + 20080910-170000 + + + EUB6SWP2Y + 0.0473 + 20080910-170000 + + + ESTRSWP2Y + 0.0395 + 20080910-170000 + + + EUB6SWP3Y + 0.0464 + 20080910-170000 + + + ESTRSWP3Y + 0.0396 + 20080910-170000 + + + EUB6SWP4Y + 0.0461 + 20080910-170000 + + + ESTRSWP4Y + 0.0401 + 20080910-170000 + + + EUB6SWP5Y + 0.0456 + 20080910-170000 + + + ESTRSWP5Y + 0.0396 + 20080910-170000 + + + EUB6SWP6Y + 0.0458 + 20080910-170000 + + + ESTRSWP6Y + 0.0397 + 20080910-170000 + + + EUB6SWP7Y + 0.0459 + 20080910-170000 + + + ESTRSWP7Y + 0.0409 + 20080910-170000 + + + EUB6SWP8Y + 0.0456 + 20080910-170000 + + + ESTRSWP8Y + 0.0405 + 20080910-170000 + + + EUB6SWP9Y + 0.046 + 20080910-170000 + + + ESTRSWP9Y + 0.041 + 20080910-170000 + + + EUB6SWP10Y + 0.0462 + 20080910-170000 + + + ESTRSWP10Y + 0.0419 + 20080910-170000 + + + EUB6SWP11Y + 0.0466 + 20080910-170000 + + + ESTRSWP11Y + 0.0423 + 20080910-170000 + + + EUB6SWP12Y + 0.0464 + 20080910-170000 + + + ESTRSWP12Y + 0.0421 + 20080910-170000 + + + EUB6SWP13Y + 0.0475 + 20080910-170000 + + + EUB6SWP14Y + 0.0471 + 20080910-170000 + + + EUB6SWP15Y + 0.0475 + 20080910-170000 + + + ESTRSWP15Y + 0.043 + 20080910-170000 + + + EUB6SWP16Y + 0.0477 + 20080910-170000 + + + EUB6SWP17Y + 0.048 + 20080910-170000 + + + EUB6SWP18Y + 0.0475 + 20080910-170000 + + + EUB6SWP19Y + 0.0477 + 20080910-170000 + + + EUB6SWP20Y + 0.0481 + 20080910-170000 + + + ESTRSWP20Y + 0.0439 + 20080910-170000 + + + EUB6SWP21Y + 0.0475 + 20080910-170000 + + + EUB6SWP22Y + 0.0476 + 20080910-170000 + + + EUB6SWP23Y + 0.0479 + 20080910-170000 + + + EUB6SWP24Y + 0.0479 + 20080910-170000 + + + EUB6SWP25Y + 0.0476 + 20080910-170000 + + + ESTRSWP25Y + 0.0438 + 20080910-170000 + + + EUB6SWP26Y + 0.0471 + 20080910-170000 + + + EUB6SWP27Y + 0.0475 + 20080910-170000 + + + EUB6SWP28Y + 0.0473 + 20080910-170000 + + + EUB6SWP29Y + 0.047 + 20080910-170000 + + + EUB6SWP30Y + 0.0472 + 20080910-170000 + + + ESTRSWP30Y + 0.043 + 20080910-170000 + + + EUB6SWP35Y + 0.0467 + 20080910-170000 + + + EUB6SWP40Y + 0.0462 + 20080910-170000 + + + EUB6SWP45Y + 0.0455 + 20080910-170000 + + + EUB6SWP50Y + 0.0456 + 20080910-170000 + + + EUB6SWP60Y + 0.0453 + 20080910-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-11.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-11.xml new file mode 100644 index 000000000..6435085ae --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-11.xml @@ -0,0 +1,344 @@ + + + 20080911-170000 + + EUB6FIX6M + 0.0517 + 20080911-170000 + + + ESTRSWP3W + 0.0427 + 20080911-170000 + + + ESTRSWP1W + 0.0428 + 20080911-170000 + + + ESTRSWP2W + 0.0434 + 20080911-170000 + + + ESTRSWP1M + 0.043 + 20080911-170000 + + + ESTRSWP2M + 0.0431 + 20080911-170000 + + + ESTRSWP3M + 0.0435 + 20080911-170000 + + + ESTRSWP4M + 0.043 + 20080911-170000 + + + ESTRSWP5M + 0.0428 + 20080911-170000 + + + ESTRSWP6M + 0.0432 + 20080911-170000 + + + ESTRSWP7M + 0.0433 + 20080911-170000 + + + ESTRSWP8M + 0.0424 + 20080911-170000 + + + ESTRSWP9M + 0.0428 + 20080911-170000 + + + ESTRSWP10M + 0.0426 + 20080911-170000 + + + ESTRSWP11M + 0.042 + 20080911-170000 + + + EUB6SWP1Y + 0.0514 + 20080911-170000 + + + ESTRSWP12M + 0.0426 + 20080911-170000 + + + ESTRSWP15M + 0.0415 + 20080911-170000 + + + ESTRSWP18M + 0.0406 + 20080911-170000 + + + EUB6SWP2Y + 0.0479 + 20080911-170000 + + + ESTRSWP2Y + 0.0396 + 20080911-170000 + + + EUB6SWP3Y + 0.0459 + 20080911-170000 + + + ESTRSWP3Y + 0.0398 + 20080911-170000 + + + EUB6SWP4Y + 0.0456 + 20080911-170000 + + + ESTRSWP4Y + 0.0394 + 20080911-170000 + + + EUB6SWP5Y + 0.0456 + 20080911-170000 + + + ESTRSWP5Y + 0.0399 + 20080911-170000 + + + EUB6SWP6Y + 0.0457 + 20080911-170000 + + + ESTRSWP6Y + 0.04 + 20080911-170000 + + + EUB6SWP7Y + 0.0453 + 20080911-170000 + + + ESTRSWP7Y + 0.0406 + 20080911-170000 + + + EUB6SWP8Y + 0.0463 + 20080911-170000 + + + ESTRSWP8Y + 0.0413 + 20080911-170000 + + + EUB6SWP9Y + 0.0464 + 20080911-170000 + + + ESTRSWP9Y + 0.0418 + 20080911-170000 + + + EUB6SWP10Y + 0.0469 + 20080911-170000 + + + ESTRSWP10Y + 0.042 + 20080911-170000 + + + EUB6SWP11Y + 0.0465 + 20080911-170000 + + + ESTRSWP11Y + 0.0425 + 20080911-170000 + + + EUB6SWP12Y + 0.0472 + 20080911-170000 + + + ESTRSWP12Y + 0.0426 + 20080911-170000 + + + EUB6SWP13Y + 0.0476 + 20080911-170000 + + + EUB6SWP14Y + 0.0476 + 20080911-170000 + + + EUB6SWP15Y + 0.0475 + 20080911-170000 + + + ESTRSWP15Y + 0.0432 + 20080911-170000 + + + EUB6SWP16Y + 0.0478 + 20080911-170000 + + + EUB6SWP17Y + 0.0482 + 20080911-170000 + + + EUB6SWP18Y + 0.0483 + 20080911-170000 + + + EUB6SWP19Y + 0.0477 + 20080911-170000 + + + EUB6SWP20Y + 0.0482 + 20080911-170000 + + + ESTRSWP20Y + 0.0442 + 20080911-170000 + + + EUB6SWP21Y + 0.0482 + 20080911-170000 + + + EUB6SWP22Y + 0.0483 + 20080911-170000 + + + EUB6SWP23Y + 0.0482 + 20080911-170000 + + + EUB6SWP24Y + 0.0478 + 20080911-170000 + + + EUB6SWP25Y + 0.0481 + 20080911-170000 + + + ESTRSWP25Y + 0.0436 + 20080911-170000 + + + EUB6SWP26Y + 0.0475 + 20080911-170000 + + + EUB6SWP27Y + 0.0471 + 20080911-170000 + + + EUB6SWP28Y + 0.0475 + 20080911-170000 + + + EUB6SWP29Y + 0.047 + 20080911-170000 + + + EUB6SWP30Y + 0.0474 + 20080911-170000 + + + ESTRSWP30Y + 0.0435 + 20080911-170000 + + + EUB6SWP35Y + 0.047 + 20080911-170000 + + + EUB6SWP40Y + 0.0464 + 20080911-170000 + + + EUB6SWP45Y + 0.0467 + 20080911-170000 + + + EUB6SWP50Y + 0.0464 + 20080911-170000 + + + EUB6SWP60Y + 0.0458 + 20080911-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-12.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-12.xml new file mode 100644 index 000000000..e98d99083 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-12.xml @@ -0,0 +1,344 @@ + + + 20080912-170000 + + EUB6FIX6M + 0.0516 + 20080912-170000 + + + ESTRSWP3W + 0.0436 + 20080912-170000 + + + ESTRSWP1W + 0.0427 + 20080912-170000 + + + ESTRSWP2W + 0.0434 + 20080912-170000 + + + ESTRSWP1M + 0.0435 + 20080912-170000 + + + ESTRSWP2M + 0.0434 + 20080912-170000 + + + ESTRSWP3M + 0.0427 + 20080912-170000 + + + ESTRSWP4M + 0.0428 + 20080912-170000 + + + ESTRSWP5M + 0.0428 + 20080912-170000 + + + ESTRSWP6M + 0.0434 + 20080912-170000 + + + ESTRSWP7M + 0.0433 + 20080912-170000 + + + ESTRSWP8M + 0.0426 + 20080912-170000 + + + ESTRSWP9M + 0.0432 + 20080912-170000 + + + ESTRSWP10M + 0.0424 + 20080912-170000 + + + ESTRSWP11M + 0.0428 + 20080912-170000 + + + EUB6SWP1Y + 0.0511 + 20080912-170000 + + + ESTRSWP12M + 0.0425 + 20080912-170000 + + + ESTRSWP15M + 0.042 + 20080912-170000 + + + ESTRSWP18M + 0.0407 + 20080912-170000 + + + EUB6SWP2Y + 0.0484 + 20080912-170000 + + + ESTRSWP2Y + 0.0399 + 20080912-170000 + + + EUB6SWP3Y + 0.0472 + 20080912-170000 + + + ESTRSWP3Y + 0.04 + 20080912-170000 + + + EUB6SWP4Y + 0.0461 + 20080912-170000 + + + ESTRSWP4Y + 0.0402 + 20080912-170000 + + + EUB6SWP5Y + 0.0459 + 20080912-170000 + + + ESTRSWP5Y + 0.041 + 20080912-170000 + + + EUB6SWP6Y + 0.0465 + 20080912-170000 + + + ESTRSWP6Y + 0.0409 + 20080912-170000 + + + EUB6SWP7Y + 0.0467 + 20080912-170000 + + + ESTRSWP7Y + 0.0413 + 20080912-170000 + + + EUB6SWP8Y + 0.047 + 20080912-170000 + + + ESTRSWP8Y + 0.0416 + 20080912-170000 + + + EUB6SWP9Y + 0.0473 + 20080912-170000 + + + ESTRSWP9Y + 0.042 + 20080912-170000 + + + EUB6SWP10Y + 0.047 + 20080912-170000 + + + ESTRSWP10Y + 0.0432 + 20080912-170000 + + + EUB6SWP11Y + 0.0478 + 20080912-170000 + + + ESTRSWP11Y + 0.0435 + 20080912-170000 + + + EUB6SWP12Y + 0.0479 + 20080912-170000 + + + ESTRSWP12Y + 0.0437 + 20080912-170000 + + + EUB6SWP13Y + 0.0482 + 20080912-170000 + + + EUB6SWP14Y + 0.0488 + 20080912-170000 + + + EUB6SWP15Y + 0.0491 + 20080912-170000 + + + ESTRSWP15Y + 0.0446 + 20080912-170000 + + + EUB6SWP16Y + 0.049 + 20080912-170000 + + + EUB6SWP17Y + 0.0491 + 20080912-170000 + + + EUB6SWP18Y + 0.0487 + 20080912-170000 + + + EUB6SWP19Y + 0.0489 + 20080912-170000 + + + EUB6SWP20Y + 0.0485 + 20080912-170000 + + + ESTRSWP20Y + 0.045 + 20080912-170000 + + + EUB6SWP21Y + 0.0488 + 20080912-170000 + + + EUB6SWP22Y + 0.0486 + 20080912-170000 + + + EUB6SWP23Y + 0.0482 + 20080912-170000 + + + EUB6SWP24Y + 0.0481 + 20080912-170000 + + + EUB6SWP25Y + 0.0486 + 20080912-170000 + + + ESTRSWP25Y + 0.0451 + 20080912-170000 + + + EUB6SWP26Y + 0.0489 + 20080912-170000 + + + EUB6SWP27Y + 0.048 + 20080912-170000 + + + EUB6SWP28Y + 0.0485 + 20080912-170000 + + + EUB6SWP29Y + 0.0484 + 20080912-170000 + + + EUB6SWP30Y + 0.0482 + 20080912-170000 + + + ESTRSWP30Y + 0.0446 + 20080912-170000 + + + EUB6SWP35Y + 0.0477 + 20080912-170000 + + + EUB6SWP40Y + 0.0475 + 20080912-170000 + + + EUB6SWP45Y + 0.0471 + 20080912-170000 + + + EUB6SWP50Y + 0.0471 + 20080912-170000 + + + EUB6SWP60Y + 0.0465 + 20080912-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-15.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-15.xml new file mode 100644 index 000000000..e54e12d71 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-15.xml @@ -0,0 +1,344 @@ + + + 20080915-170000 + + EUB6FIX6M + 0.0517 + 20080915-170000 + + + ESTRSWP3W + 0.0433 + 20080915-170000 + + + ESTRSWP1W + 0.0423 + 20080915-170000 + + + ESTRSWP2W + 0.0426 + 20080915-170000 + + + ESTRSWP1M + 0.0424 + 20080915-170000 + + + ESTRSWP2M + 0.0429 + 20080915-170000 + + + ESTRSWP3M + 0.043 + 20080915-170000 + + + ESTRSWP4M + 0.0423 + 20080915-170000 + + + ESTRSWP5M + 0.0422 + 20080915-170000 + + + ESTRSWP6M + 0.0428 + 20080915-170000 + + + ESTRSWP7M + 0.0423 + 20080915-170000 + + + ESTRSWP8M + 0.0417 + 20080915-170000 + + + ESTRSWP9M + 0.0416 + 20080915-170000 + + + ESTRSWP10M + 0.0417 + 20080915-170000 + + + ESTRSWP11M + 0.0417 + 20080915-170000 + + + EUB6SWP1Y + 0.051 + 20080915-170000 + + + ESTRSWP12M + 0.0413 + 20080915-170000 + + + ESTRSWP15M + 0.0401 + 20080915-170000 + + + ESTRSWP18M + 0.0394 + 20080915-170000 + + + EUB6SWP2Y + 0.0468 + 20080915-170000 + + + ESTRSWP2Y + 0.0387 + 20080915-170000 + + + EUB6SWP3Y + 0.0461 + 20080915-170000 + + + ESTRSWP3Y + 0.0389 + 20080915-170000 + + + EUB6SWP4Y + 0.0462 + 20080915-170000 + + + ESTRSWP4Y + 0.0397 + 20080915-170000 + + + EUB6SWP5Y + 0.0461 + 20080915-170000 + + + ESTRSWP5Y + 0.0399 + 20080915-170000 + + + EUB6SWP6Y + 0.0464 + 20080915-170000 + + + ESTRSWP6Y + 0.0403 + 20080915-170000 + + + EUB6SWP7Y + 0.0462 + 20080915-170000 + + + ESTRSWP7Y + 0.0408 + 20080915-170000 + + + EUB6SWP8Y + 0.047 + 20080915-170000 + + + ESTRSWP8Y + 0.0418 + 20080915-170000 + + + EUB6SWP9Y + 0.0469 + 20080915-170000 + + + ESTRSWP9Y + 0.0426 + 20080915-170000 + + + EUB6SWP10Y + 0.0475 + 20080915-170000 + + + ESTRSWP10Y + 0.0424 + 20080915-170000 + + + EUB6SWP11Y + 0.0479 + 20080915-170000 + + + ESTRSWP11Y + 0.0429 + 20080915-170000 + + + EUB6SWP12Y + 0.0486 + 20080915-170000 + + + ESTRSWP12Y + 0.0437 + 20080915-170000 + + + EUB6SWP13Y + 0.0481 + 20080915-170000 + + + EUB6SWP14Y + 0.0484 + 20080915-170000 + + + EUB6SWP15Y + 0.0489 + 20080915-170000 + + + ESTRSWP15Y + 0.0447 + 20080915-170000 + + + EUB6SWP16Y + 0.0489 + 20080915-170000 + + + EUB6SWP17Y + 0.0486 + 20080915-170000 + + + EUB6SWP18Y + 0.0486 + 20080915-170000 + + + EUB6SWP19Y + 0.049 + 20080915-170000 + + + EUB6SWP20Y + 0.0492 + 20080915-170000 + + + ESTRSWP20Y + 0.0449 + 20080915-170000 + + + EUB6SWP21Y + 0.0492 + 20080915-170000 + + + EUB6SWP22Y + 0.0487 + 20080915-170000 + + + EUB6SWP23Y + 0.0484 + 20080915-170000 + + + EUB6SWP24Y + 0.0487 + 20080915-170000 + + + EUB6SWP25Y + 0.0482 + 20080915-170000 + + + ESTRSWP25Y + 0.0444 + 20080915-170000 + + + EUB6SWP26Y + 0.0489 + 20080915-170000 + + + EUB6SWP27Y + 0.0483 + 20080915-170000 + + + EUB6SWP28Y + 0.0487 + 20080915-170000 + + + EUB6SWP29Y + 0.0485 + 20080915-170000 + + + EUB6SWP30Y + 0.0483 + 20080915-170000 + + + ESTRSWP30Y + 0.044 + 20080915-170000 + + + EUB6SWP35Y + 0.0479 + 20080915-170000 + + + EUB6SWP40Y + 0.0473 + 20080915-170000 + + + EUB6SWP45Y + 0.0472 + 20080915-170000 + + + EUB6SWP50Y + 0.0463 + 20080915-170000 + + + EUB6SWP60Y + 0.0466 + 20080915-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-16.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-16.xml new file mode 100644 index 000000000..4b38d2c33 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-16.xml @@ -0,0 +1,344 @@ + + + 20080916-170000 + + EUB6FIX6M + 0.0519 + 20080916-170000 + + + ESTRSWP3W + 0.0426 + 20080916-170000 + + + ESTRSWP1W + 0.043 + 20080916-170000 + + + ESTRSWP2W + 0.0431 + 20080916-170000 + + + ESTRSWP1M + 0.0424 + 20080916-170000 + + + ESTRSWP2M + 0.0425 + 20080916-170000 + + + ESTRSWP3M + 0.0428 + 20080916-170000 + + + ESTRSWP4M + 0.042 + 20080916-170000 + + + ESTRSWP5M + 0.0417 + 20080916-170000 + + + ESTRSWP6M + 0.0419 + 20080916-170000 + + + ESTRSWP7M + 0.0419 + 20080916-170000 + + + ESTRSWP8M + 0.0416 + 20080916-170000 + + + ESTRSWP9M + 0.0409 + 20080916-170000 + + + ESTRSWP10M + 0.0404 + 20080916-170000 + + + ESTRSWP11M + 0.0403 + 20080916-170000 + + + EUB6SWP1Y + 0.0509 + 20080916-170000 + + + ESTRSWP12M + 0.0402 + 20080916-170000 + + + ESTRSWP15M + 0.0395 + 20080916-170000 + + + ESTRSWP18M + 0.0396 + 20080916-170000 + + + EUB6SWP2Y + 0.0474 + 20080916-170000 + + + ESTRSWP2Y + 0.0384 + 20080916-170000 + + + EUB6SWP3Y + 0.0465 + 20080916-170000 + + + ESTRSWP3Y + 0.0386 + 20080916-170000 + + + EUB6SWP4Y + 0.0466 + 20080916-170000 + + + ESTRSWP4Y + 0.0392 + 20080916-170000 + + + EUB6SWP5Y + 0.0462 + 20080916-170000 + + + ESTRSWP5Y + 0.0401 + 20080916-170000 + + + EUB6SWP6Y + 0.0468 + 20080916-170000 + + + ESTRSWP6Y + 0.0404 + 20080916-170000 + + + EUB6SWP7Y + 0.0462 + 20080916-170000 + + + ESTRSWP7Y + 0.0407 + 20080916-170000 + + + EUB6SWP8Y + 0.0468 + 20080916-170000 + + + ESTRSWP8Y + 0.041 + 20080916-170000 + + + EUB6SWP9Y + 0.0468 + 20080916-170000 + + + ESTRSWP9Y + 0.0413 + 20080916-170000 + + + EUB6SWP10Y + 0.0472 + 20080916-170000 + + + ESTRSWP10Y + 0.0423 + 20080916-170000 + + + EUB6SWP11Y + 0.0467 + 20080916-170000 + + + ESTRSWP11Y + 0.0424 + 20080916-170000 + + + EUB6SWP12Y + 0.0475 + 20080916-170000 + + + ESTRSWP12Y + 0.0422 + 20080916-170000 + + + EUB6SWP13Y + 0.048 + 20080916-170000 + + + EUB6SWP14Y + 0.0475 + 20080916-170000 + + + EUB6SWP15Y + 0.0479 + 20080916-170000 + + + ESTRSWP15Y + 0.0432 + 20080916-170000 + + + EUB6SWP16Y + 0.048 + 20080916-170000 + + + EUB6SWP17Y + 0.0481 + 20080916-170000 + + + EUB6SWP18Y + 0.0477 + 20080916-170000 + + + EUB6SWP19Y + 0.0474 + 20080916-170000 + + + EUB6SWP20Y + 0.0477 + 20080916-170000 + + + ESTRSWP20Y + 0.0433 + 20080916-170000 + + + EUB6SWP21Y + 0.048 + 20080916-170000 + + + EUB6SWP22Y + 0.0476 + 20080916-170000 + + + EUB6SWP23Y + 0.0473 + 20080916-170000 + + + EUB6SWP24Y + 0.0474 + 20080916-170000 + + + EUB6SWP25Y + 0.0469 + 20080916-170000 + + + ESTRSWP25Y + 0.0434 + 20080916-170000 + + + EUB6SWP26Y + 0.047 + 20080916-170000 + + + EUB6SWP27Y + 0.0468 + 20080916-170000 + + + EUB6SWP28Y + 0.0465 + 20080916-170000 + + + EUB6SWP29Y + 0.0468 + 20080916-170000 + + + EUB6SWP30Y + 0.047 + 20080916-170000 + + + ESTRSWP30Y + 0.0427 + 20080916-170000 + + + EUB6SWP35Y + 0.0459 + 20080916-170000 + + + EUB6SWP40Y + 0.0461 + 20080916-170000 + + + EUB6SWP45Y + 0.0456 + 20080916-170000 + + + EUB6SWP50Y + 0.0448 + 20080916-170000 + + + EUB6SWP60Y + 0.0452 + 20080916-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-17.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-17.xml new file mode 100644 index 000000000..9e9de55e0 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-17.xml @@ -0,0 +1,344 @@ + + + 20080917-170000 + + EUB6FIX6M + 0.0521 + 20080917-170000 + + + ESTRSWP3W + 0.0424 + 20080917-170000 + + + ESTRSWP1W + 0.0426 + 20080917-170000 + + + ESTRSWP2W + 0.0424 + 20080917-170000 + + + ESTRSWP1M + 0.0422 + 20080917-170000 + + + ESTRSWP2M + 0.0426 + 20080917-170000 + + + ESTRSWP3M + 0.0429 + 20080917-170000 + + + ESTRSWP4M + 0.0421 + 20080917-170000 + + + ESTRSWP5M + 0.0422 + 20080917-170000 + + + ESTRSWP6M + 0.0425 + 20080917-170000 + + + ESTRSWP7M + 0.0415 + 20080917-170000 + + + ESTRSWP8M + 0.0416 + 20080917-170000 + + + ESTRSWP9M + 0.0416 + 20080917-170000 + + + ESTRSWP10M + 0.041 + 20080917-170000 + + + ESTRSWP11M + 0.0412 + 20080917-170000 + + + EUB6SWP1Y + 0.0513 + 20080917-170000 + + + ESTRSWP12M + 0.0412 + 20080917-170000 + + + ESTRSWP15M + 0.0402 + 20080917-170000 + + + ESTRSWP18M + 0.0394 + 20080917-170000 + + + EUB6SWP2Y + 0.0481 + 20080917-170000 + + + ESTRSWP2Y + 0.0393 + 20080917-170000 + + + EUB6SWP3Y + 0.0468 + 20080917-170000 + + + ESTRSWP3Y + 0.0391 + 20080917-170000 + + + EUB6SWP4Y + 0.0469 + 20080917-170000 + + + ESTRSWP4Y + 0.0403 + 20080917-170000 + + + EUB6SWP5Y + 0.047 + 20080917-170000 + + + ESTRSWP5Y + 0.0406 + 20080917-170000 + + + EUB6SWP6Y + 0.0466 + 20080917-170000 + + + ESTRSWP6Y + 0.0408 + 20080917-170000 + + + EUB6SWP7Y + 0.0474 + 20080917-170000 + + + ESTRSWP7Y + 0.0416 + 20080917-170000 + + + EUB6SWP8Y + 0.0473 + 20080917-170000 + + + ESTRSWP8Y + 0.0415 + 20080917-170000 + + + EUB6SWP9Y + 0.0473 + 20080917-170000 + + + ESTRSWP9Y + 0.0423 + 20080917-170000 + + + EUB6SWP10Y + 0.0474 + 20080917-170000 + + + ESTRSWP10Y + 0.0422 + 20080917-170000 + + + EUB6SWP11Y + 0.048 + 20080917-170000 + + + ESTRSWP11Y + 0.0424 + 20080917-170000 + + + EUB6SWP12Y + 0.0478 + 20080917-170000 + + + ESTRSWP12Y + 0.0435 + 20080917-170000 + + + EUB6SWP13Y + 0.0483 + 20080917-170000 + + + EUB6SWP14Y + 0.0486 + 20080917-170000 + + + EUB6SWP15Y + 0.0488 + 20080917-170000 + + + ESTRSWP15Y + 0.0443 + 20080917-170000 + + + EUB6SWP16Y + 0.0488 + 20080917-170000 + + + EUB6SWP17Y + 0.0491 + 20080917-170000 + + + EUB6SWP18Y + 0.0483 + 20080917-170000 + + + EUB6SWP19Y + 0.0487 + 20080917-170000 + + + EUB6SWP20Y + 0.0491 + 20080917-170000 + + + ESTRSWP20Y + 0.0447 + 20080917-170000 + + + EUB6SWP21Y + 0.0484 + 20080917-170000 + + + EUB6SWP22Y + 0.0488 + 20080917-170000 + + + EUB6SWP23Y + 0.048 + 20080917-170000 + + + EUB6SWP24Y + 0.0488 + 20080917-170000 + + + EUB6SWP25Y + 0.0481 + 20080917-170000 + + + ESTRSWP25Y + 0.0437 + 20080917-170000 + + + EUB6SWP26Y + 0.0482 + 20080917-170000 + + + EUB6SWP27Y + 0.0478 + 20080917-170000 + + + EUB6SWP28Y + 0.0479 + 20080917-170000 + + + EUB6SWP29Y + 0.0478 + 20080917-170000 + + + EUB6SWP30Y + 0.0473 + 20080917-170000 + + + ESTRSWP30Y + 0.0435 + 20080917-170000 + + + EUB6SWP35Y + 0.0473 + 20080917-170000 + + + EUB6SWP40Y + 0.0472 + 20080917-170000 + + + EUB6SWP45Y + 0.0471 + 20080917-170000 + + + EUB6SWP50Y + 0.0461 + 20080917-170000 + + + EUB6SWP60Y + 0.0458 + 20080917-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-18.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-18.xml new file mode 100644 index 000000000..2044a929a --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-18.xml @@ -0,0 +1,344 @@ + + + 20080918-170000 + + EUB6FIX6M + 0.0521 + 20080918-170000 + + + ESTRSWP3W + 0.0422 + 20080918-170000 + + + ESTRSWP1W + 0.0423 + 20080918-170000 + + + ESTRSWP2W + 0.0421 + 20080918-170000 + + + ESTRSWP1M + 0.0427 + 20080918-170000 + + + ESTRSWP2M + 0.0421 + 20080918-170000 + + + ESTRSWP3M + 0.0422 + 20080918-170000 + + + ESTRSWP4M + 0.0423 + 20080918-170000 + + + ESTRSWP5M + 0.0424 + 20080918-170000 + + + ESTRSWP6M + 0.0421 + 20080918-170000 + + + ESTRSWP7M + 0.0423 + 20080918-170000 + + + ESTRSWP8M + 0.0417 + 20080918-170000 + + + ESTRSWP9M + 0.0423 + 20080918-170000 + + + ESTRSWP10M + 0.0412 + 20080918-170000 + + + ESTRSWP11M + 0.0418 + 20080918-170000 + + + EUB6SWP1Y + 0.0516 + 20080918-170000 + + + ESTRSWP12M + 0.0411 + 20080918-170000 + + + ESTRSWP15M + 0.0404 + 20080918-170000 + + + ESTRSWP18M + 0.039 + 20080918-170000 + + + EUB6SWP2Y + 0.0485 + 20080918-170000 + + + ESTRSWP2Y + 0.0394 + 20080918-170000 + + + EUB6SWP3Y + 0.0482 + 20080918-170000 + + + ESTRSWP3Y + 0.0395 + 20080918-170000 + + + EUB6SWP4Y + 0.0478 + 20080918-170000 + + + ESTRSWP4Y + 0.0409 + 20080918-170000 + + + EUB6SWP5Y + 0.048 + 20080918-170000 + + + ESTRSWP5Y + 0.0411 + 20080918-170000 + + + EUB6SWP6Y + 0.0471 + 20080918-170000 + + + ESTRSWP6Y + 0.0412 + 20080918-170000 + + + EUB6SWP7Y + 0.0475 + 20080918-170000 + + + ESTRSWP7Y + 0.0417 + 20080918-170000 + + + EUB6SWP8Y + 0.0477 + 20080918-170000 + + + ESTRSWP8Y + 0.042 + 20080918-170000 + + + EUB6SWP9Y + 0.0476 + 20080918-170000 + + + ESTRSWP9Y + 0.0419 + 20080918-170000 + + + EUB6SWP10Y + 0.0478 + 20080918-170000 + + + ESTRSWP10Y + 0.0434 + 20080918-170000 + + + EUB6SWP11Y + 0.0481 + 20080918-170000 + + + ESTRSWP11Y + 0.0432 + 20080918-170000 + + + EUB6SWP12Y + 0.0485 + 20080918-170000 + + + ESTRSWP12Y + 0.0434 + 20080918-170000 + + + EUB6SWP13Y + 0.0488 + 20080918-170000 + + + EUB6SWP14Y + 0.0492 + 20080918-170000 + + + EUB6SWP15Y + 0.0496 + 20080918-170000 + + + ESTRSWP15Y + 0.0448 + 20080918-170000 + + + EUB6SWP16Y + 0.0496 + 20080918-170000 + + + EUB6SWP17Y + 0.0498 + 20080918-170000 + + + EUB6SWP18Y + 0.0498 + 20080918-170000 + + + EUB6SWP19Y + 0.0496 + 20080918-170000 + + + EUB6SWP20Y + 0.0496 + 20080918-170000 + + + ESTRSWP20Y + 0.0446 + 20080918-170000 + + + EUB6SWP21Y + 0.0492 + 20080918-170000 + + + EUB6SWP22Y + 0.049 + 20080918-170000 + + + EUB6SWP23Y + 0.0493 + 20080918-170000 + + + EUB6SWP24Y + 0.0485 + 20080918-170000 + + + EUB6SWP25Y + 0.0492 + 20080918-170000 + + + ESTRSWP25Y + 0.0444 + 20080918-170000 + + + EUB6SWP26Y + 0.0492 + 20080918-170000 + + + EUB6SWP27Y + 0.0489 + 20080918-170000 + + + EUB6SWP28Y + 0.049 + 20080918-170000 + + + EUB6SWP29Y + 0.0481 + 20080918-170000 + + + EUB6SWP30Y + 0.0482 + 20080918-170000 + + + ESTRSWP30Y + 0.0442 + 20080918-170000 + + + EUB6SWP35Y + 0.048 + 20080918-170000 + + + EUB6SWP40Y + 0.0477 + 20080918-170000 + + + EUB6SWP45Y + 0.0477 + 20080918-170000 + + + EUB6SWP50Y + 0.0474 + 20080918-170000 + + + EUB6SWP60Y + 0.0469 + 20080918-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-19.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-19.xml new file mode 100644 index 000000000..7cd8a3edd --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-19.xml @@ -0,0 +1,344 @@ + + + 20080919-170000 + + EUB6FIX6M + 0.0528 + 20080919-170000 + + + ESTRSWP3W + 0.0427 + 20080919-170000 + + + ESTRSWP1W + 0.0425 + 20080919-170000 + + + ESTRSWP2W + 0.0422 + 20080919-170000 + + + ESTRSWP1M + 0.0429 + 20080919-170000 + + + ESTRSWP2M + 0.0427 + 20080919-170000 + + + ESTRSWP3M + 0.0429 + 20080919-170000 + + + ESTRSWP4M + 0.0429 + 20080919-170000 + + + ESTRSWP5M + 0.0423 + 20080919-170000 + + + ESTRSWP6M + 0.0428 + 20080919-170000 + + + ESTRSWP7M + 0.0426 + 20080919-170000 + + + ESTRSWP8M + 0.0428 + 20080919-170000 + + + ESTRSWP9M + 0.0423 + 20080919-170000 + + + ESTRSWP10M + 0.0428 + 20080919-170000 + + + ESTRSWP11M + 0.0427 + 20080919-170000 + + + EUB6SWP1Y + 0.0522 + 20080919-170000 + + + ESTRSWP12M + 0.0427 + 20080919-170000 + + + ESTRSWP15M + 0.0416 + 20080919-170000 + + + ESTRSWP18M + 0.0401 + 20080919-170000 + + + EUB6SWP2Y + 0.05 + 20080919-170000 + + + ESTRSWP2Y + 0.0414 + 20080919-170000 + + + EUB6SWP3Y + 0.0493 + 20080919-170000 + + + ESTRSWP3Y + 0.042 + 20080919-170000 + + + EUB6SWP4Y + 0.0486 + 20080919-170000 + + + ESTRSWP4Y + 0.0423 + 20080919-170000 + + + EUB6SWP5Y + 0.0489 + 20080919-170000 + + + ESTRSWP5Y + 0.0428 + 20080919-170000 + + + EUB6SWP6Y + 0.0484 + 20080919-170000 + + + ESTRSWP6Y + 0.0434 + 20080919-170000 + + + EUB6SWP7Y + 0.0488 + 20080919-170000 + + + ESTRSWP7Y + 0.0438 + 20080919-170000 + + + EUB6SWP8Y + 0.0492 + 20080919-170000 + + + ESTRSWP8Y + 0.0435 + 20080919-170000 + + + EUB6SWP9Y + 0.0489 + 20080919-170000 + + + ESTRSWP9Y + 0.0442 + 20080919-170000 + + + EUB6SWP10Y + 0.0497 + 20080919-170000 + + + ESTRSWP10Y + 0.0447 + 20080919-170000 + + + EUB6SWP11Y + 0.0498 + 20080919-170000 + + + ESTRSWP11Y + 0.0441 + 20080919-170000 + + + EUB6SWP12Y + 0.0496 + 20080919-170000 + + + ESTRSWP12Y + 0.0446 + 20080919-170000 + + + EUB6SWP13Y + 0.0495 + 20080919-170000 + + + EUB6SWP14Y + 0.0497 + 20080919-170000 + + + EUB6SWP15Y + 0.0506 + 20080919-170000 + + + ESTRSWP15Y + 0.0454 + 20080919-170000 + + + EUB6SWP16Y + 0.0501 + 20080919-170000 + + + EUB6SWP17Y + 0.0501 + 20080919-170000 + + + EUB6SWP18Y + 0.0505 + 20080919-170000 + + + EUB6SWP19Y + 0.0508 + 20080919-170000 + + + EUB6SWP20Y + 0.0503 + 20080919-170000 + + + ESTRSWP20Y + 0.046 + 20080919-170000 + + + EUB6SWP21Y + 0.0503 + 20080919-170000 + + + EUB6SWP22Y + 0.0499 + 20080919-170000 + + + EUB6SWP23Y + 0.0501 + 20080919-170000 + + + EUB6SWP24Y + 0.0498 + 20080919-170000 + + + EUB6SWP25Y + 0.0501 + 20080919-170000 + + + ESTRSWP25Y + 0.0455 + 20080919-170000 + + + EUB6SWP26Y + 0.0498 + 20080919-170000 + + + EUB6SWP27Y + 0.05 + 20080919-170000 + + + EUB6SWP28Y + 0.0498 + 20080919-170000 + + + EUB6SWP29Y + 0.0497 + 20080919-170000 + + + EUB6SWP30Y + 0.0491 + 20080919-170000 + + + ESTRSWP30Y + 0.0453 + 20080919-170000 + + + EUB6SWP35Y + 0.0496 + 20080919-170000 + + + EUB6SWP40Y + 0.0489 + 20080919-170000 + + + EUB6SWP45Y + 0.0481 + 20080919-170000 + + + EUB6SWP50Y + 0.0484 + 20080919-170000 + + + EUB6SWP60Y + 0.0477 + 20080919-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-22.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-22.xml new file mode 100644 index 000000000..b384668f3 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-22.xml @@ -0,0 +1,344 @@ + + + 20080922-170000 + + EUB6FIX6M + 0.0522 + 20080922-170000 + + + ESTRSWP3W + 0.0432 + 20080922-170000 + + + ESTRSWP1W + 0.0433 + 20080922-170000 + + + ESTRSWP2W + 0.0426 + 20080922-170000 + + + ESTRSWP1M + 0.0433 + 20080922-170000 + + + ESTRSWP2M + 0.0431 + 20080922-170000 + + + ESTRSWP3M + 0.0424 + 20080922-170000 + + + ESTRSWP4M + 0.0421 + 20080922-170000 + + + ESTRSWP5M + 0.0426 + 20080922-170000 + + + ESTRSWP6M + 0.0425 + 20080922-170000 + + + ESTRSWP7M + 0.0428 + 20080922-170000 + + + ESTRSWP8M + 0.0422 + 20080922-170000 + + + ESTRSWP9M + 0.0428 + 20080922-170000 + + + ESTRSWP10M + 0.042 + 20080922-170000 + + + ESTRSWP11M + 0.0427 + 20080922-170000 + + + EUB6SWP1Y + 0.0523 + 20080922-170000 + + + ESTRSWP12M + 0.0424 + 20080922-170000 + + + ESTRSWP15M + 0.0412 + 20080922-170000 + + + ESTRSWP18M + 3.0E-4 + 20080922-170000 + + + EUB6SWP2Y + 0.05 + 20080922-170000 + + + ESTRSWP2Y + 0.0416 + 20080922-170000 + + + EUB6SWP3Y + 0.0497 + 20080922-170000 + + + ESTRSWP3Y + 0.0417 + 20080922-170000 + + + EUB6SWP4Y + 0.0493 + 20080922-170000 + + + ESTRSWP4Y + 0.0425 + 20080922-170000 + + + EUB6SWP5Y + 0.0485 + 20080922-170000 + + + ESTRSWP5Y + 0.0428 + 20080922-170000 + + + EUB6SWP6Y + 0.0487 + 20080922-170000 + + + ESTRSWP6Y + 0.0433 + 20080922-170000 + + + EUB6SWP7Y + 0.0492 + 20080922-170000 + + + ESTRSWP7Y + 0.0436 + 20080922-170000 + + + EUB6SWP8Y + 0.0486 + 20080922-170000 + + + ESTRSWP8Y + 0.043 + 20080922-170000 + + + EUB6SWP9Y + 0.0491 + 20080922-170000 + + + ESTRSWP9Y + 0.0434 + 20080922-170000 + + + EUB6SWP10Y + 0.0494 + 20080922-170000 + + + ESTRSWP10Y + 0.0446 + 20080922-170000 + + + EUB6SWP11Y + 0.0492 + 20080922-170000 + + + ESTRSWP11Y + 0.0442 + 20080922-170000 + + + EUB6SWP12Y + 0.0501 + 20080922-170000 + + + ESTRSWP12Y + 0.045 + 20080922-170000 + + + EUB6SWP13Y + 0.0502 + 20080922-170000 + + + EUB6SWP14Y + 0.0501 + 20080922-170000 + + + EUB6SWP15Y + 0.0507 + 20080922-170000 + + + ESTRSWP15Y + 0.0457 + 20080922-170000 + + + EUB6SWP16Y + 0.0503 + 20080922-170000 + + + EUB6SWP17Y + 0.051 + 20080922-170000 + + + EUB6SWP18Y + 0.0505 + 20080922-170000 + + + EUB6SWP19Y + 0.0506 + 20080922-170000 + + + EUB6SWP20Y + 0.0509 + 20080922-170000 + + + ESTRSWP20Y + 0.0465 + 20080922-170000 + + + EUB6SWP21Y + 0.0503 + 20080922-170000 + + + EUB6SWP22Y + 0.0507 + 20080922-170000 + + + EUB6SWP23Y + 0.0507 + 20080922-170000 + + + EUB6SWP24Y + 0.0506 + 20080922-170000 + + + EUB6SWP25Y + 0.0501 + 20080922-170000 + + + ESTRSWP25Y + 0.0463 + 20080922-170000 + + + EUB6SWP26Y + 0.0501 + 20080922-170000 + + + EUB6SWP27Y + 0.0496 + 20080922-170000 + + + EUB6SWP28Y + 0.0499 + 20080922-170000 + + + EUB6SWP29Y + 0.0498 + 20080922-170000 + + + EUB6SWP30Y + 0.05 + 20080922-170000 + + + ESTRSWP30Y + 0.0455 + 20080922-170000 + + + EUB6SWP35Y + 0.0498 + 20080922-170000 + + + EUB6SWP40Y + 0.0489 + 20080922-170000 + + + EUB6SWP45Y + 0.0482 + 20080922-170000 + + + EUB6SWP50Y + 0.0486 + 20080922-170000 + + + EUB6SWP60Y + 0.0476 + 20080922-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-23.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-23.xml new file mode 100644 index 000000000..51498a2b9 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-23.xml @@ -0,0 +1,344 @@ + + + 20080923-170000 + + EUB6FIX6M + 0.0525 + 20080923-170000 + + + ESTRSWP3W + 0.0425 + 20080923-170000 + + + ESTRSWP1W + 0.0431 + 20080923-170000 + + + ESTRSWP2W + 0.0424 + 20080923-170000 + + + ESTRSWP1M + 0.0429 + 20080923-170000 + + + ESTRSWP2M + 0.0432 + 20080923-170000 + + + ESTRSWP3M + 0.0428 + 20080923-170000 + + + ESTRSWP4M + 0.0424 + 20080923-170000 + + + ESTRSWP5M + 0.0426 + 20080923-170000 + + + ESTRSWP6M + 0.0425 + 20080923-170000 + + + ESTRSWP7M + 0.0429 + 20080923-170000 + + + ESTRSWP8M + 0.042 + 20080923-170000 + + + ESTRSWP9M + 0.0423 + 20080923-170000 + + + ESTRSWP10M + 0.0426 + 20080923-170000 + + + ESTRSWP11M + 0.0424 + 20080923-170000 + + + EUB6SWP1Y + 0.0523 + 20080923-170000 + + + ESTRSWP12M + 0.0417 + 20080923-170000 + + + ESTRSWP15M + 0.0409 + 20080923-170000 + + + ESTRSWP18M + 0.041 + 20080923-170000 + + + EUB6SWP2Y + 0.0497 + 20080923-170000 + + + ESTRSWP2Y + 0.0411 + 20080923-170000 + + + EUB6SWP3Y + 0.0494 + 20080923-170000 + + + ESTRSWP3Y + 0.0416 + 20080923-170000 + + + EUB6SWP4Y + 0.0486 + 20080923-170000 + + + ESTRSWP4Y + 0.0411 + 20080923-170000 + + + EUB6SWP5Y + 0.0482 + 20080923-170000 + + + ESTRSWP5Y + 0.0416 + 20080923-170000 + + + EUB6SWP6Y + 0.0486 + 20080923-170000 + + + ESTRSWP6Y + 0.0422 + 20080923-170000 + + + EUB6SWP7Y + 0.0484 + 20080923-170000 + + + ESTRSWP7Y + 0.0426 + 20080923-170000 + + + EUB6SWP8Y + 0.0485 + 20080923-170000 + + + ESTRSWP8Y + 0.043 + 20080923-170000 + + + EUB6SWP9Y + 0.0494 + 20080923-170000 + + + ESTRSWP9Y + 0.0433 + 20080923-170000 + + + EUB6SWP10Y + 0.0495 + 20080923-170000 + + + ESTRSWP10Y + 0.0443 + 20080923-170000 + + + EUB6SWP11Y + 0.0499 + 20080923-170000 + + + ESTRSWP11Y + 0.0445 + 20080923-170000 + + + EUB6SWP12Y + 0.0495 + 20080923-170000 + + + ESTRSWP12Y + 0.0447 + 20080923-170000 + + + EUB6SWP13Y + 0.0503 + 20080923-170000 + + + EUB6SWP14Y + 0.0506 + 20080923-170000 + + + EUB6SWP15Y + 0.0506 + 20080923-170000 + + + ESTRSWP15Y + 0.0461 + 20080923-170000 + + + EUB6SWP16Y + 0.05 + 20080923-170000 + + + EUB6SWP17Y + 0.0503 + 20080923-170000 + + + EUB6SWP18Y + 0.0501 + 20080923-170000 + + + EUB6SWP19Y + 0.0503 + 20080923-170000 + + + EUB6SWP20Y + 0.0504 + 20080923-170000 + + + ESTRSWP20Y + 0.0461 + 20080923-170000 + + + EUB6SWP21Y + 0.0499 + 20080923-170000 + + + EUB6SWP22Y + 0.0498 + 20080923-170000 + + + EUB6SWP23Y + 0.05 + 20080923-170000 + + + EUB6SWP24Y + 0.0501 + 20080923-170000 + + + EUB6SWP25Y + 0.0502 + 20080923-170000 + + + ESTRSWP25Y + 0.0458 + 20080923-170000 + + + EUB6SWP26Y + 0.0498 + 20080923-170000 + + + EUB6SWP27Y + 0.0497 + 20080923-170000 + + + EUB6SWP28Y + 0.0501 + 20080923-170000 + + + EUB6SWP29Y + 0.0498 + 20080923-170000 + + + EUB6SWP30Y + 0.0497 + 20080923-170000 + + + ESTRSWP30Y + 0.0453 + 20080923-170000 + + + EUB6SWP35Y + 0.0494 + 20080923-170000 + + + EUB6SWP40Y + 0.0487 + 20080923-170000 + + + EUB6SWP45Y + 0.0491 + 20080923-170000 + + + EUB6SWP50Y + 0.0483 + 20080923-170000 + + + EUB6SWP60Y + 0.0483 + 20080923-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-24.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-24.xml new file mode 100644 index 000000000..d1ebc2aba --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-24.xml @@ -0,0 +1,344 @@ + + + 20080924-170000 + + EUB6FIX6M + 0.0532 + 20080924-170000 + + + ESTRSWP3W + 0.0426 + 20080924-170000 + + + ESTRSWP1W + 0.0421 + 20080924-170000 + + + ESTRSWP2W + 0.0427 + 20080924-170000 + + + ESTRSWP1M + 0.0425 + 20080924-170000 + + + ESTRSWP2M + 0.0422 + 20080924-170000 + + + ESTRSWP3M + 0.0426 + 20080924-170000 + + + ESTRSWP4M + 0.0421 + 20080924-170000 + + + ESTRSWP5M + 0.0419 + 20080924-170000 + + + ESTRSWP6M + 0.0419 + 20080924-170000 + + + ESTRSWP7M + 0.0421 + 20080924-170000 + + + ESTRSWP8M + 0.0418 + 20080924-170000 + + + ESTRSWP9M + 0.0418 + 20080924-170000 + + + ESTRSWP10M + 0.0411 + 20080924-170000 + + + ESTRSWP11M + 0.0415 + 20080924-170000 + + + EUB6SWP1Y + 0.052 + 20080924-170000 + + + ESTRSWP12M + 0.0411 + 20080924-170000 + + + ESTRSWP15M + 0.0406 + 20080924-170000 + + + ESTRSWP18M + 0.04 + 20080924-170000 + + + EUB6SWP2Y + 0.049 + 20080924-170000 + + + ESTRSWP2Y + 0.0393 + 20080924-170000 + + + EUB6SWP3Y + 0.0487 + 20080924-170000 + + + ESTRSWP3Y + 0.04 + 20080924-170000 + + + EUB6SWP4Y + 0.0485 + 20080924-170000 + + + ESTRSWP4Y + 0.0403 + 20080924-170000 + + + EUB6SWP5Y + 0.0478 + 20080924-170000 + + + ESTRSWP5Y + 0.0409 + 20080924-170000 + + + EUB6SWP6Y + 0.0483 + 20080924-170000 + + + ESTRSWP6Y + 0.041 + 20080924-170000 + + + EUB6SWP7Y + 0.0481 + 20080924-170000 + + + ESTRSWP7Y + 0.0417 + 20080924-170000 + + + EUB6SWP8Y + 0.0484 + 20080924-170000 + + + ESTRSWP8Y + 0.0429 + 20080924-170000 + + + EUB6SWP9Y + 0.0481 + 20080924-170000 + + + ESTRSWP9Y + 0.0425 + 20080924-170000 + + + EUB6SWP10Y + 0.0485 + 20080924-170000 + + + ESTRSWP10Y + 0.0427 + 20080924-170000 + + + EUB6SWP11Y + 0.0489 + 20080924-170000 + + + ESTRSWP11Y + 0.0429 + 20080924-170000 + + + EUB6SWP12Y + 0.049 + 20080924-170000 + + + ESTRSWP12Y + 0.0444 + 20080924-170000 + + + EUB6SWP13Y + 0.0496 + 20080924-170000 + + + EUB6SWP14Y + 0.0495 + 20080924-170000 + + + EUB6SWP15Y + 0.0497 + 20080924-170000 + + + ESTRSWP15Y + 0.0444 + 20080924-170000 + + + EUB6SWP16Y + 0.0498 + 20080924-170000 + + + EUB6SWP17Y + 0.0499 + 20080924-170000 + + + EUB6SWP18Y + 0.05 + 20080924-170000 + + + EUB6SWP19Y + 0.0496 + 20080924-170000 + + + EUB6SWP20Y + 0.0495 + 20080924-170000 + + + ESTRSWP20Y + 0.0453 + 20080924-170000 + + + EUB6SWP21Y + 0.0492 + 20080924-170000 + + + EUB6SWP22Y + 0.0495 + 20080924-170000 + + + EUB6SWP23Y + 0.0499 + 20080924-170000 + + + EUB6SWP24Y + 0.0498 + 20080924-170000 + + + EUB6SWP25Y + 0.0496 + 20080924-170000 + + + ESTRSWP25Y + 0.0448 + 20080924-170000 + + + EUB6SWP26Y + 0.0488 + 20080924-170000 + + + EUB6SWP27Y + 0.0486 + 20080924-170000 + + + EUB6SWP28Y + 0.0489 + 20080924-170000 + + + EUB6SWP29Y + 0.0485 + 20080924-170000 + + + EUB6SWP30Y + 0.0487 + 20080924-170000 + + + ESTRSWP30Y + 0.0442 + 20080924-170000 + + + EUB6SWP35Y + 0.0485 + 20080924-170000 + + + EUB6SWP40Y + 0.0483 + 20080924-170000 + + + EUB6SWP45Y + 0.048 + 20080924-170000 + + + EUB6SWP50Y + 0.0471 + 20080924-170000 + + + EUB6SWP60Y + 0.0475 + 20080924-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-25.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-25.xml new file mode 100644 index 000000000..3a27489bd --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-25.xml @@ -0,0 +1,344 @@ + + + 20080925-170000 + + EUB6FIX6M + 0.0533 + 20080925-170000 + + + ESTRSWP3W + 0.0423 + 20080925-170000 + + + ESTRSWP1W + 0.0419 + 20080925-170000 + + + ESTRSWP2W + 0.0417 + 20080925-170000 + + + ESTRSWP1M + 0.0426 + 20080925-170000 + + + ESTRSWP2M + 0.0418 + 20080925-170000 + + + ESTRSWP3M + 0.0417 + 20080925-170000 + + + ESTRSWP4M + 0.0417 + 20080925-170000 + + + ESTRSWP5M + 0.042 + 20080925-170000 + + + ESTRSWP6M + 0.0417 + 20080925-170000 + + + ESTRSWP7M + 0.0413 + 20080925-170000 + + + ESTRSWP8M + 0.0416 + 20080925-170000 + + + ESTRSWP9M + 0.0409 + 20080925-170000 + + + ESTRSWP10M + 0.0409 + 20080925-170000 + + + ESTRSWP11M + 0.0413 + 20080925-170000 + + + EUB6SWP1Y + 0.0524 + 20080925-170000 + + + ESTRSWP12M + 0.0413 + 20080925-170000 + + + ESTRSWP15M + 0.0406 + 20080925-170000 + + + ESTRSWP18M + 0.0401 + 20080925-170000 + + + EUB6SWP2Y + 0.0488 + 20080925-170000 + + + ESTRSWP2Y + 0.0398 + 20080925-170000 + + + EUB6SWP3Y + 0.049 + 20080925-170000 + + + ESTRSWP3Y + 0.0399 + 20080925-170000 + + + EUB6SWP4Y + 0.0482 + 20080925-170000 + + + ESTRSWP4Y + 0.0403 + 20080925-170000 + + + EUB6SWP5Y + 0.0484 + 20080925-170000 + + + ESTRSWP5Y + 0.0404 + 20080925-170000 + + + EUB6SWP6Y + 0.0483 + 20080925-170000 + + + ESTRSWP6Y + 0.041 + 20080925-170000 + + + EUB6SWP7Y + 0.0483 + 20080925-170000 + + + ESTRSWP7Y + 0.0419 + 20080925-170000 + + + EUB6SWP8Y + 0.0487 + 20080925-170000 + + + ESTRSWP8Y + 0.0424 + 20080925-170000 + + + EUB6SWP9Y + 0.0485 + 20080925-170000 + + + ESTRSWP9Y + 0.0421 + 20080925-170000 + + + EUB6SWP10Y + 0.0487 + 20080925-170000 + + + ESTRSWP10Y + 0.0431 + 20080925-170000 + + + EUB6SWP11Y + 0.0487 + 20080925-170000 + + + ESTRSWP11Y + 0.0431 + 20080925-170000 + + + EUB6SWP12Y + 0.0487 + 20080925-170000 + + + ESTRSWP12Y + 0.0435 + 20080925-170000 + + + EUB6SWP13Y + 0.0498 + 20080925-170000 + + + EUB6SWP14Y + 0.0497 + 20080925-170000 + + + EUB6SWP15Y + 0.0499 + 20080925-170000 + + + ESTRSWP15Y + 0.0442 + 20080925-170000 + + + EUB6SWP16Y + 0.0497 + 20080925-170000 + + + EUB6SWP17Y + 0.0499 + 20080925-170000 + + + EUB6SWP18Y + 0.05 + 20080925-170000 + + + EUB6SWP19Y + 0.0497 + 20080925-170000 + + + EUB6SWP20Y + 0.0494 + 20080925-170000 + + + ESTRSWP20Y + 0.0451 + 20080925-170000 + + + EUB6SWP21Y + 0.0498 + 20080925-170000 + + + EUB6SWP22Y + 0.0492 + 20080925-170000 + + + EUB6SWP23Y + 0.0497 + 20080925-170000 + + + EUB6SWP24Y + 0.0496 + 20080925-170000 + + + EUB6SWP25Y + 0.0493 + 20080925-170000 + + + ESTRSWP25Y + 0.0446 + 20080925-170000 + + + EUB6SWP26Y + 0.0487 + 20080925-170000 + + + EUB6SWP27Y + 0.0485 + 20080925-170000 + + + EUB6SWP28Y + 0.0487 + 20080925-170000 + + + EUB6SWP29Y + 0.0489 + 20080925-170000 + + + EUB6SWP30Y + 0.0491 + 20080925-170000 + + + ESTRSWP30Y + 0.0445 + 20080925-170000 + + + EUB6SWP35Y + 0.0477 + 20080925-170000 + + + EUB6SWP40Y + 0.0474 + 20080925-170000 + + + EUB6SWP45Y + 0.0479 + 20080925-170000 + + + EUB6SWP50Y + 0.0469 + 20080925-170000 + + + EUB6SWP60Y + 0.0466 + 20080925-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-26.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-26.xml new file mode 100644 index 000000000..5ffaa65b9 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-26.xml @@ -0,0 +1,344 @@ + + + 20080926-170000 + + EUB6FIX6M + 0.0531 + 20080926-170000 + + + ESTRSWP3W + 0.042 + 20080926-170000 + + + ESTRSWP1W + 0.0407 + 20080926-170000 + + + ESTRSWP2W + 0.0412 + 20080926-170000 + + + ESTRSWP1M + 0.0416 + 20080926-170000 + + + ESTRSWP2M + 0.0418 + 20080926-170000 + + + ESTRSWP3M + 0.042 + 20080926-170000 + + + ESTRSWP4M + 0.0419 + 20080926-170000 + + + ESTRSWP5M + 0.0417 + 20080926-170000 + + + ESTRSWP6M + 0.0412 + 20080926-170000 + + + ESTRSWP7M + 0.0407 + 20080926-170000 + + + ESTRSWP8M + 0.0407 + 20080926-170000 + + + ESTRSWP9M + 0.0404 + 20080926-170000 + + + ESTRSWP10M + 0.04 + 20080926-170000 + + + ESTRSWP11M + 0.0402 + 20080926-170000 + + + EUB6SWP1Y + 0.0509 + 20080926-170000 + + + ESTRSWP12M + 0.0398 + 20080926-170000 + + + ESTRSWP15M + 0.0388 + 20080926-170000 + + + ESTRSWP18M + 0.0384 + 20080926-170000 + + + EUB6SWP2Y + 0.0484 + 20080926-170000 + + + ESTRSWP2Y + 0.039 + 20080926-170000 + + + EUB6SWP3Y + 0.0472 + 20080926-170000 + + + ESTRSWP3Y + 0.0394 + 20080926-170000 + + + EUB6SWP4Y + 0.0472 + 20080926-170000 + + + ESTRSWP4Y + 0.0393 + 20080926-170000 + + + EUB6SWP5Y + 0.0479 + 20080926-170000 + + + ESTRSWP5Y + 0.0402 + 20080926-170000 + + + EUB6SWP6Y + 0.0478 + 20080926-170000 + + + ESTRSWP6Y + 0.0409 + 20080926-170000 + + + EUB6SWP7Y + 0.0472 + 20080926-170000 + + + ESTRSWP7Y + 0.0412 + 20080926-170000 + + + EUB6SWP8Y + 0.048 + 20080926-170000 + + + ESTRSWP8Y + 0.0414 + 20080926-170000 + + + EUB6SWP9Y + 0.0475 + 20080926-170000 + + + ESTRSWP9Y + 0.0424 + 20080926-170000 + + + EUB6SWP10Y + 0.0482 + 20080926-170000 + + + ESTRSWP10Y + 0.0427 + 20080926-170000 + + + EUB6SWP11Y + 0.0484 + 20080926-170000 + + + ESTRSWP11Y + 0.0427 + 20080926-170000 + + + EUB6SWP12Y + 0.0489 + 20080926-170000 + + + ESTRSWP12Y + 0.0426 + 20080926-170000 + + + EUB6SWP13Y + 0.0488 + 20080926-170000 + + + EUB6SWP14Y + 0.0492 + 20080926-170000 + + + EUB6SWP15Y + 0.0485 + 20080926-170000 + + + ESTRSWP15Y + 0.0437 + 20080926-170000 + + + EUB6SWP16Y + 0.0491 + 20080926-170000 + + + EUB6SWP17Y + 0.049 + 20080926-170000 + + + EUB6SWP18Y + 0.0487 + 20080926-170000 + + + EUB6SWP19Y + 0.0494 + 20080926-170000 + + + EUB6SWP20Y + 0.0486 + 20080926-170000 + + + ESTRSWP20Y + 0.0442 + 20080926-170000 + + + EUB6SWP21Y + 0.0484 + 20080926-170000 + + + EUB6SWP22Y + 0.0483 + 20080926-170000 + + + EUB6SWP23Y + 0.0484 + 20080926-170000 + + + EUB6SWP24Y + 0.0487 + 20080926-170000 + + + EUB6SWP25Y + 0.0486 + 20080926-170000 + + + ESTRSWP25Y + 0.0436 + 20080926-170000 + + + EUB6SWP26Y + 0.0478 + 20080926-170000 + + + EUB6SWP27Y + 0.0484 + 20080926-170000 + + + EUB6SWP28Y + 0.0477 + 20080926-170000 + + + EUB6SWP29Y + 0.0483 + 20080926-170000 + + + EUB6SWP30Y + 0.0478 + 20080926-170000 + + + ESTRSWP30Y + 0.0437 + 20080926-170000 + + + EUB6SWP35Y + 0.0474 + 20080926-170000 + + + EUB6SWP40Y + 0.0469 + 20080926-170000 + + + EUB6SWP45Y + 0.0466 + 20080926-170000 + + + EUB6SWP50Y + 0.0464 + 20080926-170000 + + + EUB6SWP60Y + 0.0456 + 20080926-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-29.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-29.xml new file mode 100644 index 000000000..7330c2a20 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-29.xml @@ -0,0 +1,344 @@ + + + 20080929-170000 + + EUB6FIX6M + 0.0527 + 20080929-170000 + + + ESTRSWP3W + 0.0412 + 20080929-170000 + + + ESTRSWP1W + 0.0386 + 20080929-170000 + + + ESTRSWP2W + 0.0402 + 20080929-170000 + + + ESTRSWP1M + 0.0412 + 20080929-170000 + + + ESTRSWP2M + 0.0409 + 20080929-170000 + + + ESTRSWP3M + 0.0404 + 20080929-170000 + + + ESTRSWP4M + 0.0408 + 20080929-170000 + + + ESTRSWP5M + 0.04 + 20080929-170000 + + + ESTRSWP6M + 0.0403 + 20080929-170000 + + + ESTRSWP7M + 0.039 + 20080929-170000 + + + ESTRSWP8M + 0.0393 + 20080929-170000 + + + ESTRSWP9M + 0.0389 + 20080929-170000 + + + ESTRSWP10M + 0.0387 + 20080929-170000 + + + ESTRSWP11M + 0.0377 + 20080929-170000 + + + EUB6SWP1Y + 0.0492 + 20080929-170000 + + + ESTRSWP12M + 0.0383 + 20080929-170000 + + + ESTRSWP15M + 0.0368 + 20080929-170000 + + + ESTRSWP18M + 0.0362 + 20080929-170000 + + + EUB6SWP2Y + 0.0459 + 20080929-170000 + + + ESTRSWP2Y + 0.0367 + 20080929-170000 + + + EUB6SWP3Y + 0.0463 + 20080929-170000 + + + ESTRSWP3Y + 0.037 + 20080929-170000 + + + EUB6SWP4Y + 0.0455 + 20080929-170000 + + + ESTRSWP4Y + 0.0379 + 20080929-170000 + + + EUB6SWP5Y + 0.0461 + 20080929-170000 + + + ESTRSWP5Y + 0.0388 + 20080929-170000 + + + EUB6SWP6Y + 0.0461 + 20080929-170000 + + + ESTRSWP6Y + 0.0391 + 20080929-170000 + + + EUB6SWP7Y + 0.0461 + 20080929-170000 + + + ESTRSWP7Y + 0.0403 + 20080929-170000 + + + EUB6SWP8Y + 0.0462 + 20080929-170000 + + + ESTRSWP8Y + 0.0405 + 20080929-170000 + + + EUB6SWP9Y + 0.0466 + 20080929-170000 + + + ESTRSWP9Y + 0.0408 + 20080929-170000 + + + EUB6SWP10Y + 0.047 + 20080929-170000 + + + ESTRSWP10Y + 0.0413 + 20080929-170000 + + + EUB6SWP11Y + 0.0468 + 20080929-170000 + + + ESTRSWP11Y + 0.0414 + 20080929-170000 + + + EUB6SWP12Y + 0.0474 + 20080929-170000 + + + ESTRSWP12Y + 0.0416 + 20080929-170000 + + + EUB6SWP13Y + 0.0469 + 20080929-170000 + + + EUB6SWP14Y + 0.0473 + 20080929-170000 + + + EUB6SWP15Y + 0.0476 + 20080929-170000 + + + ESTRSWP15Y + 0.0425 + 20080929-170000 + + + EUB6SWP16Y + 0.0469 + 20080929-170000 + + + EUB6SWP17Y + 0.0469 + 20080929-170000 + + + EUB6SWP18Y + 0.0476 + 20080929-170000 + + + EUB6SWP19Y + 0.047 + 20080929-170000 + + + EUB6SWP20Y + 0.0473 + 20080929-170000 + + + ESTRSWP20Y + 0.0425 + 20080929-170000 + + + EUB6SWP21Y + 0.0466 + 20080929-170000 + + + EUB6SWP22Y + 0.0472 + 20080929-170000 + + + EUB6SWP23Y + 0.0466 + 20080929-170000 + + + EUB6SWP24Y + 0.0461 + 20080929-170000 + + + EUB6SWP25Y + 0.0462 + 20080929-170000 + + + ESTRSWP25Y + 0.0421 + 20080929-170000 + + + EUB6SWP26Y + 0.0463 + 20080929-170000 + + + EUB6SWP27Y + 0.0457 + 20080929-170000 + + + EUB6SWP28Y + 0.0463 + 20080929-170000 + + + EUB6SWP29Y + 0.0457 + 20080929-170000 + + + EUB6SWP30Y + 0.0458 + 20080929-170000 + + + ESTRSWP30Y + 0.0417 + 20080929-170000 + + + EUB6SWP35Y + 0.045 + 20080929-170000 + + + EUB6SWP40Y + 0.0446 + 20080929-170000 + + + EUB6SWP45Y + 0.045 + 20080929-170000 + + + EUB6SWP50Y + 0.0448 + 20080929-170000 + + + EUB6SWP60Y + 0.0435 + 20080929-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-30.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-30.xml new file mode 100644 index 000000000..4cbb1f8ef --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-30.xml @@ -0,0 +1,344 @@ + + + 20080930-170000 + + EUB6FIX6M + 0.0533 + 20080930-170000 + + + ESTRSWP3W + 0.0408 + 20080930-170000 + + + ESTRSWP1W + 0.039 + 20080930-170000 + + + ESTRSWP2W + 0.0397 + 20080930-170000 + + + ESTRSWP1M + 0.0403 + 20080930-170000 + + + ESTRSWP2M + 0.041 + 20080930-170000 + + + ESTRSWP3M + 0.0407 + 20080930-170000 + + + ESTRSWP4M + 0.0401 + 20080930-170000 + + + ESTRSWP5M + 0.0407 + 20080930-170000 + + + ESTRSWP6M + 0.0394 + 20080930-170000 + + + ESTRSWP7M + 0.0394 + 20080930-170000 + + + ESTRSWP8M + 0.039 + 20080930-170000 + + + ESTRSWP9M + 0.0386 + 20080930-170000 + + + ESTRSWP10M + 0.0389 + 20080930-170000 + + + ESTRSWP11M + 0.0383 + 20080930-170000 + + + EUB6SWP1Y + 0.0497 + 20080930-170000 + + + ESTRSWP12M + 0.0382 + 20080930-170000 + + + ESTRSWP15M + 0.0368 + 20080930-170000 + + + ESTRSWP18M + 0.0367 + 20080930-170000 + + + EUB6SWP2Y + 0.046 + 20080930-170000 + + + ESTRSWP2Y + 0.0366 + 20080930-170000 + + + EUB6SWP3Y + 0.0462 + 20080930-170000 + + + ESTRSWP3Y + 0.0377 + 20080930-170000 + + + EUB6SWP4Y + 0.0466 + 20080930-170000 + + + ESTRSWP4Y + 0.0388 + 20080930-170000 + + + EUB6SWP5Y + 0.0469 + 20080930-170000 + + + ESTRSWP5Y + 0.0394 + 20080930-170000 + + + EUB6SWP6Y + 0.0468 + 20080930-170000 + + + ESTRSWP6Y + 0.0398 + 20080930-170000 + + + EUB6SWP7Y + 0.0463 + 20080930-170000 + + + ESTRSWP7Y + 0.0411 + 20080930-170000 + + + EUB6SWP8Y + 0.0463 + 20080930-170000 + + + ESTRSWP8Y + 0.0409 + 20080930-170000 + + + EUB6SWP9Y + 0.0469 + 20080930-170000 + + + ESTRSWP9Y + 0.0409 + 20080930-170000 + + + EUB6SWP10Y + 0.0471 + 20080930-170000 + + + ESTRSWP10Y + 0.0414 + 20080930-170000 + + + EUB6SWP11Y + 0.0474 + 20080930-170000 + + + ESTRSWP11Y + 0.0423 + 20080930-170000 + + + EUB6SWP12Y + 0.047 + 20080930-170000 + + + ESTRSWP12Y + 0.0419 + 20080930-170000 + + + EUB6SWP13Y + 0.0476 + 20080930-170000 + + + EUB6SWP14Y + 0.0469 + 20080930-170000 + + + EUB6SWP15Y + 0.0475 + 20080930-170000 + + + ESTRSWP15Y + 0.0427 + 20080930-170000 + + + EUB6SWP16Y + 0.0475 + 20080930-170000 + + + EUB6SWP17Y + 0.0468 + 20080930-170000 + + + EUB6SWP18Y + 0.0466 + 20080930-170000 + + + EUB6SWP19Y + 0.0465 + 20080930-170000 + + + EUB6SWP20Y + 0.0464 + 20080930-170000 + + + ESTRSWP20Y + 0.0427 + 20080930-170000 + + + EUB6SWP21Y + 0.0466 + 20080930-170000 + + + EUB6SWP22Y + 0.0467 + 20080930-170000 + + + EUB6SWP23Y + 0.0459 + 20080930-170000 + + + EUB6SWP24Y + 0.0458 + 20080930-170000 + + + EUB6SWP25Y + 0.0457 + 20080930-170000 + + + ESTRSWP25Y + 0.0416 + 20080930-170000 + + + EUB6SWP26Y + 0.0457 + 20080930-170000 + + + EUB6SWP27Y + 0.0453 + 20080930-170000 + + + EUB6SWP28Y + 0.0458 + 20080930-170000 + + + EUB6SWP29Y + 0.0454 + 20080930-170000 + + + EUB6SWP30Y + 0.0456 + 20080930-170000 + + + ESTRSWP30Y + 0.041 + 20080930-170000 + + + EUB6SWP35Y + 0.0447 + 20080930-170000 + + + EUB6SWP40Y + 0.0446 + 20080930-170000 + + + EUB6SWP45Y + 0.0443 + 20080930-170000 + + + EUB6SWP50Y + 0.0435 + 20080930-170000 + + + EUB6SWP60Y + 0.0436 + 20080930-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-01.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-01.xml new file mode 100644 index 000000000..5e72af2ff --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-01.xml @@ -0,0 +1,344 @@ + + + 20081001-170000 + + EUB6FIX6M + 0.0536 + 20081001-170000 + + + ESTRSWP3W + 0.0416 + 20081001-170000 + + + ESTRSWP1W + 0.0396 + 20081001-170000 + + + ESTRSWP2W + 0.0405 + 20081001-170000 + + + ESTRSWP1M + 0.0408 + 20081001-170000 + + + ESTRSWP2M + 0.0414 + 20081001-170000 + + + ESTRSWP3M + 0.041 + 20081001-170000 + + + ESTRSWP4M + 0.041 + 20081001-170000 + + + ESTRSWP5M + 0.0402 + 20081001-170000 + + + ESTRSWP6M + 0.0398 + 20081001-170000 + + + ESTRSWP7M + 0.0395 + 20081001-170000 + + + ESTRSWP8M + 0.0397 + 20081001-170000 + + + ESTRSWP9M + 0.0397 + 20081001-170000 + + + ESTRSWP10M + 0.0384 + 20081001-170000 + + + ESTRSWP11M + 0.0389 + 20081001-170000 + + + EUB6SWP1Y + 0.0497 + 20081001-170000 + + + ESTRSWP12M + 0.0387 + 20081001-170000 + + + ESTRSWP15M + 0.0373 + 20081001-170000 + + + ESTRSWP18M + 0.0369 + 20081001-170000 + + + EUB6SWP2Y + 0.0458 + 20081001-170000 + + + ESTRSWP2Y + 0.0365 + 20081001-170000 + + + EUB6SWP3Y + 0.0462 + 20081001-170000 + + + ESTRSWP3Y + 0.0373 + 20081001-170000 + + + EUB6SWP4Y + 0.0464 + 20081001-170000 + + + ESTRSWP4Y + 0.0389 + 20081001-170000 + + + EUB6SWP5Y + 0.0466 + 20081001-170000 + + + ESTRSWP5Y + 0.0396 + 20081001-170000 + + + EUB6SWP6Y + 0.0465 + 20081001-170000 + + + ESTRSWP6Y + 0.0403 + 20081001-170000 + + + EUB6SWP7Y + 0.0468 + 20081001-170000 + + + ESTRSWP7Y + 0.041 + 20081001-170000 + + + EUB6SWP8Y + 0.0466 + 20081001-170000 + + + ESTRSWP8Y + 0.0412 + 20081001-170000 + + + EUB6SWP9Y + 0.0465 + 20081001-170000 + + + ESTRSWP9Y + 0.0417 + 20081001-170000 + + + EUB6SWP10Y + 0.0466 + 20081001-170000 + + + ESTRSWP10Y + 0.0416 + 20081001-170000 + + + EUB6SWP11Y + 0.0472 + 20081001-170000 + + + ESTRSWP11Y + 0.0422 + 20081001-170000 + + + EUB6SWP12Y + 0.0474 + 20081001-170000 + + + ESTRSWP12Y + 0.042 + 20081001-170000 + + + EUB6SWP13Y + 0.0475 + 20081001-170000 + + + EUB6SWP14Y + 0.0469 + 20081001-170000 + + + EUB6SWP15Y + 0.0476 + 20081001-170000 + + + ESTRSWP15Y + 0.0423 + 20081001-170000 + + + EUB6SWP16Y + 0.0467 + 20081001-170000 + + + EUB6SWP17Y + 0.0474 + 20081001-170000 + + + EUB6SWP18Y + 0.0464 + 20081001-170000 + + + EUB6SWP19Y + 0.047 + 20081001-170000 + + + EUB6SWP20Y + 0.0466 + 20081001-170000 + + + ESTRSWP20Y + 0.0421 + 20081001-170000 + + + EUB6SWP21Y + 0.0463 + 20081001-170000 + + + EUB6SWP22Y + 0.0464 + 20081001-170000 + + + EUB6SWP23Y + 0.0456 + 20081001-170000 + + + EUB6SWP24Y + 0.0461 + 20081001-170000 + + + EUB6SWP25Y + 0.0453 + 20081001-170000 + + + ESTRSWP25Y + 0.0413 + 20081001-170000 + + + EUB6SWP26Y + 0.0455 + 20081001-170000 + + + EUB6SWP27Y + 0.0457 + 20081001-170000 + + + EUB6SWP28Y + 0.045 + 20081001-170000 + + + EUB6SWP29Y + 0.0447 + 20081001-170000 + + + EUB6SWP30Y + 0.0454 + 20081001-170000 + + + ESTRSWP30Y + 0.0407 + 20081001-170000 + + + EUB6SWP35Y + 0.044 + 20081001-170000 + + + EUB6SWP40Y + 0.0436 + 20081001-170000 + + + EUB6SWP45Y + 0.0438 + 20081001-170000 + + + EUB6SWP50Y + 0.0432 + 20081001-170000 + + + EUB6SWP60Y + 0.0424 + 20081001-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-02.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-02.xml new file mode 100644 index 000000000..e8bcae070 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-02.xml @@ -0,0 +1,344 @@ + + + 20081002-170000 + + EUB6FIX6M + 0.0539 + 20081002-170000 + + + ESTRSWP3W + 0.0415 + 20081002-170000 + + + ESTRSWP1W + 0.0407 + 20081002-170000 + + + ESTRSWP2W + 0.041 + 20081002-170000 + + + ESTRSWP1M + 0.0419 + 20081002-170000 + + + ESTRSWP2M + 0.0411 + 20081002-170000 + + + ESTRSWP3M + 0.0401 + 20081002-170000 + + + ESTRSWP4M + 0.0393 + 20081002-170000 + + + ESTRSWP5M + 0.0397 + 20081002-170000 + + + ESTRSWP6M + 0.0393 + 20081002-170000 + + + ESTRSWP7M + 0.0388 + 20081002-170000 + + + ESTRSWP8M + 0.0384 + 20081002-170000 + + + ESTRSWP9M + 0.0379 + 20081002-170000 + + + ESTRSWP10M + 0.0373 + 20081002-170000 + + + ESTRSWP11M + 0.0367 + 20081002-170000 + + + EUB6SWP1Y + 0.0484 + 20081002-170000 + + + ESTRSWP12M + 0.0363 + 20081002-170000 + + + ESTRSWP15M + 0.035 + 20081002-170000 + + + ESTRSWP18M + 0.0349 + 20081002-170000 + + + EUB6SWP2Y + 0.0445 + 20081002-170000 + + + ESTRSWP2Y + 0.0351 + 20081002-170000 + + + EUB6SWP3Y + 0.0445 + 20081002-170000 + + + ESTRSWP3Y + 0.0364 + 20081002-170000 + + + EUB6SWP4Y + 0.045 + 20081002-170000 + + + ESTRSWP4Y + 0.0373 + 20081002-170000 + + + EUB6SWP5Y + 0.045 + 20081002-170000 + + + ESTRSWP5Y + 0.0381 + 20081002-170000 + + + EUB6SWP6Y + 0.0457 + 20081002-170000 + + + ESTRSWP6Y + 0.0389 + 20081002-170000 + + + EUB6SWP7Y + 0.0449 + 20081002-170000 + + + ESTRSWP7Y + 0.039 + 20081002-170000 + + + EUB6SWP8Y + 0.0454 + 20081002-170000 + + + ESTRSWP8Y + 0.0394 + 20081002-170000 + + + EUB6SWP9Y + 0.0452 + 20081002-170000 + + + ESTRSWP9Y + 0.04 + 20081002-170000 + + + EUB6SWP10Y + 0.0455 + 20081002-170000 + + + ESTRSWP10Y + 0.0405 + 20081002-170000 + + + EUB6SWP11Y + 0.0457 + 20081002-170000 + + + ESTRSWP11Y + 0.0402 + 20081002-170000 + + + EUB6SWP12Y + 0.0453 + 20081002-170000 + + + ESTRSWP12Y + 0.0409 + 20081002-170000 + + + EUB6SWP13Y + 0.0459 + 20081002-170000 + + + EUB6SWP14Y + 0.0458 + 20081002-170000 + + + EUB6SWP15Y + 0.0459 + 20081002-170000 + + + ESTRSWP15Y + 0.0408 + 20081002-170000 + + + EUB6SWP16Y + 0.0459 + 20081002-170000 + + + EUB6SWP17Y + 0.0453 + 20081002-170000 + + + EUB6SWP18Y + 0.0454 + 20081002-170000 + + + EUB6SWP19Y + 0.0456 + 20081002-170000 + + + EUB6SWP20Y + 0.0453 + 20081002-170000 + + + ESTRSWP20Y + 0.0403 + 20081002-170000 + + + EUB6SWP21Y + 0.0451 + 20081002-170000 + + + EUB6SWP22Y + 0.0443 + 20081002-170000 + + + EUB6SWP23Y + 0.0439 + 20081002-170000 + + + EUB6SWP24Y + 0.0438 + 20081002-170000 + + + EUB6SWP25Y + 0.0439 + 20081002-170000 + + + ESTRSWP25Y + 0.04 + 20081002-170000 + + + EUB6SWP26Y + 0.0438 + 20081002-170000 + + + EUB6SWP27Y + 0.043 + 20081002-170000 + + + EUB6SWP28Y + 0.0432 + 20081002-170000 + + + EUB6SWP29Y + 0.0427 + 20081002-170000 + + + EUB6SWP30Y + 0.0425 + 20081002-170000 + + + ESTRSWP30Y + 0.0392 + 20081002-170000 + + + EUB6SWP35Y + 0.0426 + 20081002-170000 + + + EUB6SWP40Y + 0.0414 + 20081002-170000 + + + EUB6SWP45Y + 0.0413 + 20081002-170000 + + + EUB6SWP50Y + 0.0406 + 20081002-170000 + + + EUB6SWP60Y + 0.0401 + 20081002-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-03.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-03.xml new file mode 100644 index 000000000..bb748f7cb --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-03.xml @@ -0,0 +1,344 @@ + + + 20081003-170000 + + EUB6FIX6M + 0.0539 + 20081003-170000 + + + ESTRSWP3W + 0.041 + 20081003-170000 + + + ESTRSWP1W + 0.0413 + 20081003-170000 + + + ESTRSWP2W + 0.0408 + 20081003-170000 + + + ESTRSWP1M + 0.0415 + 20081003-170000 + + + ESTRSWP2M + 0.0408 + 20081003-170000 + + + ESTRSWP3M + 0.0396 + 20081003-170000 + + + ESTRSWP4M + 0.0395 + 20081003-170000 + + + ESTRSWP5M + 0.0386 + 20081003-170000 + + + ESTRSWP6M + 0.0384 + 20081003-170000 + + + ESTRSWP7M + 0.0377 + 20081003-170000 + + + ESTRSWP8M + 0.0372 + 20081003-170000 + + + ESTRSWP9M + 0.0375 + 20081003-170000 + + + ESTRSWP10M + 0.0371 + 20081003-170000 + + + ESTRSWP11M + 0.0368 + 20081003-170000 + + + EUB6SWP1Y + 0.0483 + 20081003-170000 + + + ESTRSWP12M + 0.0358 + 20081003-170000 + + + ESTRSWP15M + 0.0356 + 20081003-170000 + + + ESTRSWP18M + 0.0347 + 20081003-170000 + + + EUB6SWP2Y + 0.0446 + 20081003-170000 + + + ESTRSWP2Y + 0.0354 + 20081003-170000 + + + EUB6SWP3Y + 0.0441 + 20081003-170000 + + + ESTRSWP3Y + 0.0358 + 20081003-170000 + + + EUB6SWP4Y + 0.045 + 20081003-170000 + + + ESTRSWP4Y + 0.0375 + 20081003-170000 + + + EUB6SWP5Y + 0.0451 + 20081003-170000 + + + ESTRSWP5Y + 0.0389 + 20081003-170000 + + + EUB6SWP6Y + 0.0458 + 20081003-170000 + + + ESTRSWP6Y + 0.0393 + 20081003-170000 + + + EUB6SWP7Y + 0.0456 + 20081003-170000 + + + ESTRSWP7Y + 0.04 + 20081003-170000 + + + EUB6SWP8Y + 0.0456 + 20081003-170000 + + + ESTRSWP8Y + 0.0403 + 20081003-170000 + + + EUB6SWP9Y + 0.0457 + 20081003-170000 + + + ESTRSWP9Y + 0.0402 + 20081003-170000 + + + EUB6SWP10Y + 0.0457 + 20081003-170000 + + + ESTRSWP10Y + 0.0408 + 20081003-170000 + + + EUB6SWP11Y + 0.0463 + 20081003-170000 + + + ESTRSWP11Y + 0.0414 + 20081003-170000 + + + EUB6SWP12Y + 0.0456 + 20081003-170000 + + + ESTRSWP12Y + 0.0416 + 20081003-170000 + + + EUB6SWP13Y + 0.0463 + 20081003-170000 + + + EUB6SWP14Y + 0.0466 + 20081003-170000 + + + EUB6SWP15Y + 0.0465 + 20081003-170000 + + + ESTRSWP15Y + 0.0421 + 20081003-170000 + + + EUB6SWP16Y + 0.0464 + 20081003-170000 + + + EUB6SWP17Y + 0.0463 + 20081003-170000 + + + EUB6SWP18Y + 0.0457 + 20081003-170000 + + + EUB6SWP19Y + 0.0455 + 20081003-170000 + + + EUB6SWP20Y + 0.0449 + 20081003-170000 + + + ESTRSWP20Y + 0.0412 + 20081003-170000 + + + EUB6SWP21Y + 0.045 + 20081003-170000 + + + EUB6SWP22Y + 0.0453 + 20081003-170000 + + + EUB6SWP23Y + 0.0444 + 20081003-170000 + + + EUB6SWP24Y + 0.0449 + 20081003-170000 + + + EUB6SWP25Y + 0.0438 + 20081003-170000 + + + ESTRSWP25Y + 0.0405 + 20081003-170000 + + + EUB6SWP26Y + 0.0443 + 20081003-170000 + + + EUB6SWP27Y + 0.0439 + 20081003-170000 + + + EUB6SWP28Y + 0.0438 + 20081003-170000 + + + EUB6SWP29Y + 0.0432 + 20081003-170000 + + + EUB6SWP30Y + 0.0431 + 20081003-170000 + + + ESTRSWP30Y + 0.0396 + 20081003-170000 + + + EUB6SWP35Y + 0.0428 + 20081003-170000 + + + EUB6SWP40Y + 0.0417 + 20081003-170000 + + + EUB6SWP45Y + 0.0411 + 20081003-170000 + + + EUB6SWP50Y + 0.041 + 20081003-170000 + + + EUB6SWP60Y + 0.0406 + 20081003-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-06.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-06.xml new file mode 100644 index 000000000..96a2d35d6 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-06.xml @@ -0,0 +1,344 @@ + + + 20081006-170000 + + EUB6FIX6M + 0.0545 + 20081006-170000 + + + ESTRSWP3W + 0.0413 + 20081006-170000 + + + ESTRSWP1W + 0.0407 + 20081006-170000 + + + ESTRSWP2W + 0.0404 + 20081006-170000 + + + ESTRSWP1M + 0.041 + 20081006-170000 + + + ESTRSWP2M + 0.0394 + 20081006-170000 + + + ESTRSWP3M + 0.0385 + 20081006-170000 + + + ESTRSWP4M + 0.0377 + 20081006-170000 + + + ESTRSWP5M + 0.0374 + 20081006-170000 + + + ESTRSWP6M + 0.0364 + 20081006-170000 + + + ESTRSWP7M + 0.036 + 20081006-170000 + + + ESTRSWP8M + 0.0361 + 20081006-170000 + + + ESTRSWP9M + 0.0354 + 20081006-170000 + + + ESTRSWP10M + 0.0345 + 20081006-170000 + + + ESTRSWP11M + 0.0348 + 20081006-170000 + + + EUB6SWP1Y + 0.047 + 20081006-170000 + + + ESTRSWP12M + 0.0343 + 20081006-170000 + + + ESTRSWP15M + 0.0335 + 20081006-170000 + + + ESTRSWP18M + 0.033 + 20081006-170000 + + + EUB6SWP2Y + 0.0421 + 20081006-170000 + + + ESTRSWP2Y + 0.0338 + 20081006-170000 + + + EUB6SWP3Y + 0.0426 + 20081006-170000 + + + ESTRSWP3Y + 0.0348 + 20081006-170000 + + + EUB6SWP4Y + 0.0433 + 20081006-170000 + + + ESTRSWP4Y + 0.036 + 20081006-170000 + + + EUB6SWP5Y + 0.0431 + 20081006-170000 + + + ESTRSWP5Y + 0.037 + 20081006-170000 + + + EUB6SWP6Y + 0.0437 + 20081006-170000 + + + ESTRSWP6Y + 0.0374 + 20081006-170000 + + + EUB6SWP7Y + 0.0434 + 20081006-170000 + + + ESTRSWP7Y + 0.0385 + 20081006-170000 + + + EUB6SWP8Y + 0.0439 + 20081006-170000 + + + ESTRSWP8Y + 0.0384 + 20081006-170000 + + + EUB6SWP9Y + 0.0442 + 20081006-170000 + + + ESTRSWP9Y + 0.0394 + 20081006-170000 + + + EUB6SWP10Y + 0.0445 + 20081006-170000 + + + ESTRSWP10Y + 0.0399 + 20081006-170000 + + + EUB6SWP11Y + 0.0447 + 20081006-170000 + + + ESTRSWP11Y + 0.0395 + 20081006-170000 + + + EUB6SWP12Y + 0.0448 + 20081006-170000 + + + ESTRSWP12Y + 0.0399 + 20081006-170000 + + + EUB6SWP13Y + 0.0445 + 20081006-170000 + + + EUB6SWP14Y + 0.0444 + 20081006-170000 + + + EUB6SWP15Y + 0.0441 + 20081006-170000 + + + ESTRSWP15Y + 0.0405 + 20081006-170000 + + + EUB6SWP16Y + 0.0448 + 20081006-170000 + + + EUB6SWP17Y + 0.044 + 20081006-170000 + + + EUB6SWP18Y + 0.0443 + 20081006-170000 + + + EUB6SWP19Y + 0.0443 + 20081006-170000 + + + EUB6SWP20Y + 0.0439 + 20081006-170000 + + + ESTRSWP20Y + 0.0396 + 20081006-170000 + + + EUB6SWP21Y + 0.0436 + 20081006-170000 + + + EUB6SWP22Y + 0.043 + 20081006-170000 + + + EUB6SWP23Y + 0.0427 + 20081006-170000 + + + EUB6SWP24Y + 0.0421 + 20081006-170000 + + + EUB6SWP25Y + 0.0425 + 20081006-170000 + + + ESTRSWP25Y + 0.0389 + 20081006-170000 + + + EUB6SWP26Y + 0.0424 + 20081006-170000 + + + EUB6SWP27Y + 0.0417 + 20081006-170000 + + + EUB6SWP28Y + 0.0419 + 20081006-170000 + + + EUB6SWP29Y + 0.0417 + 20081006-170000 + + + EUB6SWP30Y + 0.0415 + 20081006-170000 + + + ESTRSWP30Y + 0.0373 + 20081006-170000 + + + EUB6SWP35Y + 0.0408 + 20081006-170000 + + + EUB6SWP40Y + 0.0398 + 20081006-170000 + + + EUB6SWP45Y + 0.0398 + 20081006-170000 + + + EUB6SWP50Y + 0.0385 + 20081006-170000 + + + EUB6SWP60Y + 0.0385 + 20081006-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-07.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-07.xml new file mode 100644 index 000000000..8a1a59465 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-07.xml @@ -0,0 +1,344 @@ + + + 20081007-170000 + + EUB6FIX6M + 0.0547 + 20081007-170000 + + + ESTRSWP3W + 0.0419 + 20081007-170000 + + + ESTRSWP1W + 0.0413 + 20081007-170000 + + + ESTRSWP2W + 0.041 + 20081007-170000 + + + ESTRSWP1M + 0.041 + 20081007-170000 + + + ESTRSWP2M + 0.0408 + 20081007-170000 + + + ESTRSWP3M + 0.0386 + 20081007-170000 + + + ESTRSWP4M + 0.0384 + 20081007-170000 + + + ESTRSWP5M + 0.0377 + 20081007-170000 + + + ESTRSWP6M + 0.0366 + 20081007-170000 + + + ESTRSWP7M + 0.036 + 20081007-170000 + + + ESTRSWP8M + 0.0355 + 20081007-170000 + + + ESTRSWP9M + 0.0354 + 20081007-170000 + + + ESTRSWP10M + 0.0349 + 20081007-170000 + + + ESTRSWP11M + 0.0342 + 20081007-170000 + + + EUB6SWP1Y + 0.0467 + 20081007-170000 + + + ESTRSWP12M + 0.0343 + 20081007-170000 + + + ESTRSWP15M + 0.0329 + 20081007-170000 + + + ESTRSWP18M + 0.0331 + 20081007-170000 + + + EUB6SWP2Y + 0.0423 + 20081007-170000 + + + ESTRSWP2Y + 0.0329 + 20081007-170000 + + + EUB6SWP3Y + 0.0424 + 20081007-170000 + + + ESTRSWP3Y + 0.0349 + 20081007-170000 + + + EUB6SWP4Y + 0.0426 + 20081007-170000 + + + ESTRSWP4Y + 0.0363 + 20081007-170000 + + + EUB6SWP5Y + 0.0426 + 20081007-170000 + + + ESTRSWP5Y + 0.0364 + 20081007-170000 + + + EUB6SWP6Y + 0.0433 + 20081007-170000 + + + ESTRSWP6Y + 0.0379 + 20081007-170000 + + + EUB6SWP7Y + 0.0435 + 20081007-170000 + + + ESTRSWP7Y + 0.0378 + 20081007-170000 + + + EUB6SWP8Y + 0.0437 + 20081007-170000 + + + ESTRSWP8Y + 0.0381 + 20081007-170000 + + + EUB6SWP9Y + 0.0438 + 20081007-170000 + + + ESTRSWP9Y + 0.0388 + 20081007-170000 + + + EUB6SWP10Y + 0.0442 + 20081007-170000 + + + ESTRSWP10Y + 0.0395 + 20081007-170000 + + + EUB6SWP11Y + 0.0437 + 20081007-170000 + + + ESTRSWP11Y + 0.0397 + 20081007-170000 + + + EUB6SWP12Y + 0.0441 + 20081007-170000 + + + ESTRSWP12Y + 0.0395 + 20081007-170000 + + + EUB6SWP13Y + 0.0438 + 20081007-170000 + + + EUB6SWP14Y + 0.0442 + 20081007-170000 + + + EUB6SWP15Y + 0.0443 + 20081007-170000 + + + ESTRSWP15Y + 0.04 + 20081007-170000 + + + EUB6SWP16Y + 0.0435 + 20081007-170000 + + + EUB6SWP17Y + 0.0433 + 20081007-170000 + + + EUB6SWP18Y + 0.0436 + 20081007-170000 + + + EUB6SWP19Y + 0.0428 + 20081007-170000 + + + EUB6SWP20Y + 0.0426 + 20081007-170000 + + + ESTRSWP20Y + 0.0385 + 20081007-170000 + + + EUB6SWP21Y + 0.0422 + 20081007-170000 + + + EUB6SWP22Y + 0.0415 + 20081007-170000 + + + EUB6SWP23Y + 0.0418 + 20081007-170000 + + + EUB6SWP24Y + 0.0409 + 20081007-170000 + + + EUB6SWP25Y + 0.0408 + 20081007-170000 + + + ESTRSWP25Y + 0.0375 + 20081007-170000 + + + EUB6SWP26Y + 0.0404 + 20081007-170000 + + + EUB6SWP27Y + 0.0401 + 20081007-170000 + + + EUB6SWP28Y + 0.0399 + 20081007-170000 + + + EUB6SWP29Y + 0.0395 + 20081007-170000 + + + EUB6SWP30Y + 0.0394 + 20081007-170000 + + + ESTRSWP30Y + 0.0356 + 20081007-170000 + + + EUB6SWP35Y + 0.0391 + 20081007-170000 + + + EUB6SWP40Y + 0.0376 + 20081007-170000 + + + EUB6SWP45Y + 0.0375 + 20081007-170000 + + + EUB6SWP50Y + 0.0368 + 20081007-170000 + + + EUB6SWP60Y + 0.0367 + 20081007-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-08.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-08.xml new file mode 100644 index 000000000..0bb577cd1 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-08.xml @@ -0,0 +1,344 @@ + + + 20081008-170000 + + EUB6FIX6M + 0.0548 + 20081008-170000 + + + ESTRSWP3W + 0.0388 + 20081008-170000 + + + ESTRSWP1W + 0.0399 + 20081008-170000 + + + ESTRSWP2W + 0.0383 + 20081008-170000 + + + ESTRSWP1M + 0.0387 + 20081008-170000 + + + ESTRSWP2M + 0.0375 + 20081008-170000 + + + ESTRSWP3M + 0.0357 + 20081008-170000 + + + ESTRSWP4M + 0.035 + 20081008-170000 + + + ESTRSWP5M + 0.0344 + 20081008-170000 + + + ESTRSWP6M + 0.034 + 20081008-170000 + + + ESTRSWP7M + 0.0331 + 20081008-170000 + + + ESTRSWP8M + 0.0324 + 20081008-170000 + + + ESTRSWP9M + 0.0328 + 20081008-170000 + + + ESTRSWP10M + 0.0324 + 20081008-170000 + + + ESTRSWP11M + 0.0322 + 20081008-170000 + + + EUB6SWP1Y + 0.046 + 20081008-170000 + + + ESTRSWP12M + 0.0313 + 20081008-170000 + + + ESTRSWP15M + 0.0308 + 20081008-170000 + + + ESTRSWP18M + 0.0306 + 20081008-170000 + + + EUB6SWP2Y + 0.0418 + 20081008-170000 + + + ESTRSWP2Y + 0.0311 + 20081008-170000 + + + EUB6SWP3Y + 0.0421 + 20081008-170000 + + + ESTRSWP3Y + 0.0334 + 20081008-170000 + + + EUB6SWP4Y + 0.043 + 20081008-170000 + + + ESTRSWP4Y + 0.036 + 20081008-170000 + + + EUB6SWP5Y + 0.0435 + 20081008-170000 + + + ESTRSWP5Y + 0.0366 + 20081008-170000 + + + EUB6SWP6Y + 0.0433 + 20081008-170000 + + + ESTRSWP6Y + 0.0376 + 20081008-170000 + + + EUB6SWP7Y + 0.0443 + 20081008-170000 + + + ESTRSWP7Y + 0.0393 + 20081008-170000 + + + EUB6SWP8Y + 0.0449 + 20081008-170000 + + + ESTRSWP8Y + 0.0389 + 20081008-170000 + + + EUB6SWP9Y + 0.0451 + 20081008-170000 + + + ESTRSWP9Y + 0.0397 + 20081008-170000 + + + EUB6SWP10Y + 0.0448 + 20081008-170000 + + + ESTRSWP10Y + 0.0407 + 20081008-170000 + + + EUB6SWP11Y + 0.045 + 20081008-170000 + + + ESTRSWP11Y + 0.0408 + 20081008-170000 + + + EUB6SWP12Y + 0.0452 + 20081008-170000 + + + ESTRSWP12Y + 0.0408 + 20081008-170000 + + + EUB6SWP13Y + 0.0457 + 20081008-170000 + + + EUB6SWP14Y + 0.0454 + 20081008-170000 + + + EUB6SWP15Y + 0.0458 + 20081008-170000 + + + ESTRSWP15Y + 0.041 + 20081008-170000 + + + EUB6SWP16Y + 0.0454 + 20081008-170000 + + + EUB6SWP17Y + 0.0452 + 20081008-170000 + + + EUB6SWP18Y + 0.0445 + 20081008-170000 + + + EUB6SWP19Y + 0.0445 + 20081008-170000 + + + EUB6SWP20Y + 0.0435 + 20081008-170000 + + + ESTRSWP20Y + 0.0399 + 20081008-170000 + + + EUB6SWP21Y + 0.044 + 20081008-170000 + + + EUB6SWP22Y + 0.043 + 20081008-170000 + + + EUB6SWP23Y + 0.0431 + 20081008-170000 + + + EUB6SWP24Y + 0.0422 + 20081008-170000 + + + EUB6SWP25Y + 0.0421 + 20081008-170000 + + + ESTRSWP25Y + 0.0383 + 20081008-170000 + + + EUB6SWP26Y + 0.0419 + 20081008-170000 + + + EUB6SWP27Y + 0.0418 + 20081008-170000 + + + EUB6SWP28Y + 0.0416 + 20081008-170000 + + + EUB6SWP29Y + 0.0413 + 20081008-170000 + + + EUB6SWP30Y + 0.0411 + 20081008-170000 + + + ESTRSWP30Y + 0.0372 + 20081008-170000 + + + EUB6SWP35Y + 0.0401 + 20081008-170000 + + + EUB6SWP40Y + 0.0385 + 20081008-170000 + + + EUB6SWP45Y + 0.0384 + 20081008-170000 + + + EUB6SWP50Y + 0.038 + 20081008-170000 + + + EUB6SWP60Y + 0.0371 + 20081008-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-09.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-09.xml new file mode 100644 index 000000000..1d188212c --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-09.xml @@ -0,0 +1,344 @@ + + + 20081009-170000 + + EUB6FIX6M + 0.0541 + 20081009-170000 + + + ESTRSWP3W + 0.0377 + 20081009-170000 + + + ESTRSWP1W + 0.0376 + 20081009-170000 + + + ESTRSWP2W + 0.0381 + 20081009-170000 + + + ESTRSWP1M + 0.0375 + 20081009-170000 + + + ESTRSWP2M + 0.0365 + 20081009-170000 + + + ESTRSWP3M + 0.0362 + 20081009-170000 + + + ESTRSWP4M + 0.0358 + 20081009-170000 + + + ESTRSWP5M + 0.0345 + 20081009-170000 + + + ESTRSWP6M + 0.0343 + 20081009-170000 + + + ESTRSWP7M + 0.0335 + 20081009-170000 + + + ESTRSWP8M + 0.0336 + 20081009-170000 + + + ESTRSWP9M + 0.0335 + 20081009-170000 + + + ESTRSWP10M + 0.0327 + 20081009-170000 + + + ESTRSWP11M + 0.0323 + 20081009-170000 + + + EUB6SWP1Y + 0.0468 + 20081009-170000 + + + ESTRSWP12M + 0.0329 + 20081009-170000 + + + ESTRSWP15M + 0.0319 + 20081009-170000 + + + ESTRSWP18M + 0.0319 + 20081009-170000 + + + EUB6SWP2Y + 0.0424 + 20081009-170000 + + + ESTRSWP2Y + 0.0328 + 20081009-170000 + + + EUB6SWP3Y + 0.043 + 20081009-170000 + + + ESTRSWP3Y + 0.0349 + 20081009-170000 + + + EUB6SWP4Y + 0.044 + 20081009-170000 + + + ESTRSWP4Y + 0.0364 + 20081009-170000 + + + EUB6SWP5Y + 0.0444 + 20081009-170000 + + + ESTRSWP5Y + 0.0378 + 20081009-170000 + + + EUB6SWP6Y + 0.044 + 20081009-170000 + + + ESTRSWP6Y + 0.039 + 20081009-170000 + + + EUB6SWP7Y + 0.0445 + 20081009-170000 + + + ESTRSWP7Y + 0.0389 + 20081009-170000 + + + EUB6SWP8Y + 0.0449 + 20081009-170000 + + + ESTRSWP8Y + 0.0396 + 20081009-170000 + + + EUB6SWP9Y + 0.045 + 20081009-170000 + + + ESTRSWP9Y + 0.04 + 20081009-170000 + + + EUB6SWP10Y + 0.0458 + 20081009-170000 + + + ESTRSWP10Y + 0.0403 + 20081009-170000 + + + EUB6SWP11Y + 0.0454 + 20081009-170000 + + + ESTRSWP11Y + 0.0407 + 20081009-170000 + + + EUB6SWP12Y + 0.0455 + 20081009-170000 + + + ESTRSWP12Y + 0.0409 + 20081009-170000 + + + EUB6SWP13Y + 0.0456 + 20081009-170000 + + + EUB6SWP14Y + 0.0456 + 20081009-170000 + + + EUB6SWP15Y + 0.0458 + 20081009-170000 + + + ESTRSWP15Y + 0.042 + 20081009-170000 + + + EUB6SWP16Y + 0.0459 + 20081009-170000 + + + EUB6SWP17Y + 0.0459 + 20081009-170000 + + + EUB6SWP18Y + 0.0455 + 20081009-170000 + + + EUB6SWP19Y + 0.0449 + 20081009-170000 + + + EUB6SWP20Y + 0.0444 + 20081009-170000 + + + ESTRSWP20Y + 0.0412 + 20081009-170000 + + + EUB6SWP21Y + 0.0443 + 20081009-170000 + + + EUB6SWP22Y + 0.0439 + 20081009-170000 + + + EUB6SWP23Y + 0.0432 + 20081009-170000 + + + EUB6SWP24Y + 0.0436 + 20081009-170000 + + + EUB6SWP25Y + 0.0434 + 20081009-170000 + + + ESTRSWP25Y + 0.0391 + 20081009-170000 + + + EUB6SWP26Y + 0.0428 + 20081009-170000 + + + EUB6SWP27Y + 0.0421 + 20081009-170000 + + + EUB6SWP28Y + 0.0422 + 20081009-170000 + + + EUB6SWP29Y + 0.0415 + 20081009-170000 + + + EUB6SWP30Y + 0.0415 + 20081009-170000 + + + ESTRSWP30Y + 0.038 + 20081009-170000 + + + EUB6SWP35Y + 0.0402 + 20081009-170000 + + + EUB6SWP40Y + 0.0396 + 20081009-170000 + + + EUB6SWP45Y + 0.0393 + 20081009-170000 + + + EUB6SWP50Y + 0.0385 + 20081009-170000 + + + EUB6SWP60Y + 0.0384 + 20081009-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-10.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-10.xml new file mode 100644 index 000000000..c6109ce73 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-10.xml @@ -0,0 +1,344 @@ + + + 20081010-170000 + + EUB6FIX6M + 0.0546 + 20081010-170000 + + + ESTRSWP3W + 0.0357 + 20081010-170000 + + + ESTRSWP1W + 0.0364 + 20081010-170000 + + + ESTRSWP2W + 0.036 + 20081010-170000 + + + ESTRSWP1M + 0.0354 + 20081010-170000 + + + ESTRSWP2M + 0.0333 + 20081010-170000 + + + ESTRSWP3M + 0.0347 + 20081010-170000 + + + ESTRSWP4M + 0.0335 + 20081010-170000 + + + ESTRSWP5M + 0.0332 + 20081010-170000 + + + ESTRSWP6M + 0.0317 + 20081010-170000 + + + ESTRSWP7M + 0.0317 + 20081010-170000 + + + ESTRSWP8M + 0.0317 + 20081010-170000 + + + ESTRSWP9M + 0.0313 + 20081010-170000 + + + ESTRSWP10M + 0.0317 + 20081010-170000 + + + ESTRSWP11M + 0.0313 + 20081010-170000 + + + EUB6SWP1Y + 0.046 + 20081010-170000 + + + ESTRSWP12M + 0.0314 + 20081010-170000 + + + ESTRSWP15M + 0.0315 + 20081010-170000 + + + ESTRSWP18M + 0.0319 + 20081010-170000 + + + EUB6SWP2Y + 0.0427 + 20081010-170000 + + + ESTRSWP2Y + 0.0324 + 20081010-170000 + + + EUB6SWP3Y + 0.0431 + 20081010-170000 + + + ESTRSWP3Y + 0.0347 + 20081010-170000 + + + EUB6SWP4Y + 0.0444 + 20081010-170000 + + + ESTRSWP4Y + 0.0365 + 20081010-170000 + + + EUB6SWP5Y + 0.0442 + 20081010-170000 + + + ESTRSWP5Y + 0.0378 + 20081010-170000 + + + EUB6SWP6Y + 0.0448 + 20081010-170000 + + + ESTRSWP6Y + 0.039 + 20081010-170000 + + + EUB6SWP7Y + 0.0454 + 20081010-170000 + + + ESTRSWP7Y + 0.0398 + 20081010-170000 + + + EUB6SWP8Y + 0.0456 + 20081010-170000 + + + ESTRSWP8Y + 0.0407 + 20081010-170000 + + + EUB6SWP9Y + 0.0463 + 20081010-170000 + + + ESTRSWP9Y + 0.0417 + 20081010-170000 + + + EUB6SWP10Y + 0.0465 + 20081010-170000 + + + ESTRSWP10Y + 0.0421 + 20081010-170000 + + + EUB6SWP11Y + 0.0476 + 20081010-170000 + + + ESTRSWP11Y + 0.0426 + 20081010-170000 + + + EUB6SWP12Y + 0.0472 + 20081010-170000 + + + ESTRSWP12Y + 0.0426 + 20081010-170000 + + + EUB6SWP13Y + 0.0473 + 20081010-170000 + + + EUB6SWP14Y + 0.0481 + 20081010-170000 + + + EUB6SWP15Y + 0.0477 + 20081010-170000 + + + ESTRSWP15Y + 0.0439 + 20081010-170000 + + + EUB6SWP16Y + 0.0476 + 20081010-170000 + + + EUB6SWP17Y + 0.0473 + 20081010-170000 + + + EUB6SWP18Y + 0.0479 + 20081010-170000 + + + EUB6SWP19Y + 0.0473 + 20081010-170000 + + + EUB6SWP20Y + 0.0467 + 20081010-170000 + + + ESTRSWP20Y + 0.0428 + 20081010-170000 + + + EUB6SWP21Y + 0.0471 + 20081010-170000 + + + EUB6SWP22Y + 0.0469 + 20081010-170000 + + + EUB6SWP23Y + 0.0458 + 20081010-170000 + + + EUB6SWP24Y + 0.0456 + 20081010-170000 + + + EUB6SWP25Y + 0.046 + 20081010-170000 + + + ESTRSWP25Y + 0.0414 + 20081010-170000 + + + EUB6SWP26Y + 0.0452 + 20081010-170000 + + + EUB6SWP27Y + 0.0446 + 20081010-170000 + + + EUB6SWP28Y + 0.0445 + 20081010-170000 + + + EUB6SWP29Y + 0.044 + 20081010-170000 + + + EUB6SWP30Y + 0.0438 + 20081010-170000 + + + ESTRSWP30Y + 0.0405 + 20081010-170000 + + + EUB6SWP35Y + 0.0431 + 20081010-170000 + + + EUB6SWP40Y + 0.0426 + 20081010-170000 + + + EUB6SWP45Y + 0.0421 + 20081010-170000 + + + EUB6SWP50Y + 0.0418 + 20081010-170000 + + + EUB6SWP60Y + 0.0412 + 20081010-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-13.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-13.xml new file mode 100644 index 000000000..6ba77bf14 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-13.xml @@ -0,0 +1,344 @@ + + + 20081013-170000 + + EUB6FIX6M + 0.0534 + 20081013-170000 + + + ESTRSWP3W + 0.0374 + 20081013-170000 + + + ESTRSWP1W + 0.0376 + 20081013-170000 + + + ESTRSWP2W + 0.0369 + 20081013-170000 + + + ESTRSWP1M + 0.0365 + 20081013-170000 + + + ESTRSWP2M + 0.0357 + 20081013-170000 + + + ESTRSWP3M + 0.0349 + 20081013-170000 + + + ESTRSWP4M + 0.0339 + 20081013-170000 + + + ESTRSWP5M + 0.0337 + 20081013-170000 + + + ESTRSWP6M + 0.0324 + 20081013-170000 + + + ESTRSWP7M + 0.0323 + 20081013-170000 + + + ESTRSWP8M + 0.0322 + 20081013-170000 + + + ESTRSWP9M + 0.0319 + 20081013-170000 + + + ESTRSWP10M + 0.032 + 20081013-170000 + + + ESTRSWP11M + 0.0321 + 20081013-170000 + + + EUB6SWP1Y + 0.0452 + 20081013-170000 + + + ESTRSWP12M + 0.0318 + 20081013-170000 + + + ESTRSWP15M + 0.0314 + 20081013-170000 + + + ESTRSWP18M + 0.0319 + 20081013-170000 + + + EUB6SWP2Y + 0.0427 + 20081013-170000 + + + ESTRSWP2Y + 0.0342 + 20081013-170000 + + + EUB6SWP3Y + 0.0441 + 20081013-170000 + + + ESTRSWP3Y + 0.0358 + 20081013-170000 + + + EUB6SWP4Y + 0.0449 + 20081013-170000 + + + ESTRSWP4Y + 0.038 + 20081013-170000 + + + EUB6SWP5Y + 0.0449 + 20081013-170000 + + + ESTRSWP5Y + 0.0391 + 20081013-170000 + + + EUB6SWP6Y + 0.0452 + 20081013-170000 + + + ESTRSWP6Y + 0.0402 + 20081013-170000 + + + EUB6SWP7Y + 0.0459 + 20081013-170000 + + + ESTRSWP7Y + 0.0408 + 20081013-170000 + + + EUB6SWP8Y + 0.0464 + 20081013-170000 + + + ESTRSWP8Y + 0.0412 + 20081013-170000 + + + EUB6SWP9Y + 0.0464 + 20081013-170000 + + + ESTRSWP9Y + 0.0416 + 20081013-170000 + + + EUB6SWP10Y + 0.0467 + 20081013-170000 + + + ESTRSWP10Y + 0.0423 + 20081013-170000 + + + EUB6SWP11Y + 0.0469 + 20081013-170000 + + + ESTRSWP11Y + 0.0428 + 20081013-170000 + + + EUB6SWP12Y + 0.047 + 20081013-170000 + + + ESTRSWP12Y + 0.0435 + 20081013-170000 + + + EUB6SWP13Y + 0.0478 + 20081013-170000 + + + EUB6SWP14Y + 0.0482 + 20081013-170000 + + + EUB6SWP15Y + 0.0473 + 20081013-170000 + + + ESTRSWP15Y + 0.0445 + 20081013-170000 + + + EUB6SWP16Y + 0.0474 + 20081013-170000 + + + EUB6SWP17Y + 0.0481 + 20081013-170000 + + + EUB6SWP18Y + 0.0476 + 20081013-170000 + + + EUB6SWP19Y + 0.0473 + 20081013-170000 + + + EUB6SWP20Y + 0.0469 + 20081013-170000 + + + ESTRSWP20Y + 0.0433 + 20081013-170000 + + + EUB6SWP21Y + 0.0463 + 20081013-170000 + + + EUB6SWP22Y + 0.046 + 20081013-170000 + + + EUB6SWP23Y + 0.0459 + 20081013-170000 + + + EUB6SWP24Y + 0.0453 + 20081013-170000 + + + EUB6SWP25Y + 0.045 + 20081013-170000 + + + ESTRSWP25Y + 0.0421 + 20081013-170000 + + + EUB6SWP26Y + 0.0456 + 20081013-170000 + + + EUB6SWP27Y + 0.0453 + 20081013-170000 + + + EUB6SWP28Y + 0.0445 + 20081013-170000 + + + EUB6SWP29Y + 0.0448 + 20081013-170000 + + + EUB6SWP30Y + 0.0438 + 20081013-170000 + + + ESTRSWP30Y + 0.041 + 20081013-170000 + + + EUB6SWP35Y + 0.0436 + 20081013-170000 + + + EUB6SWP40Y + 0.0424 + 20081013-170000 + + + EUB6SWP45Y + 0.042 + 20081013-170000 + + + EUB6SWP50Y + 0.0414 + 20081013-170000 + + + EUB6SWP60Y + 0.0406 + 20081013-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-14.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-14.xml new file mode 100644 index 000000000..c58f5ae8d --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-14.xml @@ -0,0 +1,344 @@ + + + 20081014-170000 + + EUB6FIX6M + 0.0531 + 20081014-170000 + + + ESTRSWP3W + 0.0372 + 20081014-170000 + + + ESTRSWP1W + 0.0375 + 20081014-170000 + + + ESTRSWP2W + 0.0368 + 20081014-170000 + + + ESTRSWP1M + 0.0374 + 20081014-170000 + + + ESTRSWP2M + 0.0363 + 20081014-170000 + + + ESTRSWP3M + 0.0359 + 20081014-170000 + + + ESTRSWP4M + 0.0348 + 20081014-170000 + + + ESTRSWP5M + 0.0347 + 20081014-170000 + + + ESTRSWP6M + 0.0339 + 20081014-170000 + + + ESTRSWP7M + 0.0335 + 20081014-170000 + + + ESTRSWP8M + 0.0337 + 20081014-170000 + + + ESTRSWP9M + 0.0333 + 20081014-170000 + + + ESTRSWP10M + 0.0329 + 20081014-170000 + + + ESTRSWP11M + 0.0326 + 20081014-170000 + + + EUB6SWP1Y + 0.0457 + 20081014-170000 + + + ESTRSWP12M + 0.0331 + 20081014-170000 + + + ESTRSWP15M + 0.0327 + 20081014-170000 + + + ESTRSWP18M + 0.0336 + 20081014-170000 + + + EUB6SWP2Y + 0.0429 + 20081014-170000 + + + ESTRSWP2Y + 0.0346 + 20081014-170000 + + + EUB6SWP3Y + 0.0442 + 20081014-170000 + + + ESTRSWP3Y + 0.0376 + 20081014-170000 + + + EUB6SWP4Y + 0.0454 + 20081014-170000 + + + ESTRSWP4Y + 0.0387 + 20081014-170000 + + + EUB6SWP5Y + 0.0453 + 20081014-170000 + + + ESTRSWP5Y + 0.0401 + 20081014-170000 + + + EUB6SWP6Y + 0.0458 + 20081014-170000 + + + ESTRSWP6Y + 0.041 + 20081014-170000 + + + EUB6SWP7Y + 0.0465 + 20081014-170000 + + + ESTRSWP7Y + 0.0418 + 20081014-170000 + + + EUB6SWP8Y + 0.0467 + 20081014-170000 + + + ESTRSWP8Y + 0.0418 + 20081014-170000 + + + EUB6SWP9Y + 0.0467 + 20081014-170000 + + + ESTRSWP9Y + 0.0428 + 20081014-170000 + + + EUB6SWP10Y + 0.0467 + 20081014-170000 + + + ESTRSWP10Y + 0.043 + 20081014-170000 + + + EUB6SWP11Y + 0.0474 + 20081014-170000 + + + ESTRSWP11Y + 0.0434 + 20081014-170000 + + + EUB6SWP12Y + 0.0476 + 20081014-170000 + + + ESTRSWP12Y + 0.0442 + 20081014-170000 + + + EUB6SWP13Y + 0.0482 + 20081014-170000 + + + EUB6SWP14Y + 0.048 + 20081014-170000 + + + EUB6SWP15Y + 0.0484 + 20081014-170000 + + + ESTRSWP15Y + 0.045 + 20081014-170000 + + + EUB6SWP16Y + 0.0482 + 20081014-170000 + + + EUB6SWP17Y + 0.0482 + 20081014-170000 + + + EUB6SWP18Y + 0.0485 + 20081014-170000 + + + EUB6SWP19Y + 0.0475 + 20081014-170000 + + + EUB6SWP20Y + 0.0474 + 20081014-170000 + + + ESTRSWP20Y + 0.0435 + 20081014-170000 + + + EUB6SWP21Y + 0.0473 + 20081014-170000 + + + EUB6SWP22Y + 0.0468 + 20081014-170000 + + + EUB6SWP23Y + 0.0464 + 20081014-170000 + + + EUB6SWP24Y + 0.0464 + 20081014-170000 + + + EUB6SWP25Y + 0.0459 + 20081014-170000 + + + ESTRSWP25Y + 0.0428 + 20081014-170000 + + + EUB6SWP26Y + 0.0462 + 20081014-170000 + + + EUB6SWP27Y + 0.0459 + 20081014-170000 + + + EUB6SWP28Y + 0.0452 + 20081014-170000 + + + EUB6SWP29Y + 0.0452 + 20081014-170000 + + + EUB6SWP30Y + 0.0445 + 20081014-170000 + + + ESTRSWP30Y + 0.0419 + 20081014-170000 + + + EUB6SWP35Y + 0.0442 + 20081014-170000 + + + EUB6SWP40Y + 0.0434 + 20081014-170000 + + + EUB6SWP45Y + 0.0426 + 20081014-170000 + + + EUB6SWP50Y + 0.0421 + 20081014-170000 + + + EUB6SWP60Y + 0.0422 + 20081014-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-15.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-15.xml new file mode 100644 index 000000000..f24a0f7b0 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-15.xml @@ -0,0 +1,344 @@ + + + 20081015-170000 + + EUB6FIX6M + 0.0524 + 20081015-170000 + + + ESTRSWP3W + 0.0372 + 20081015-170000 + + + ESTRSWP1W + 0.0367 + 20081015-170000 + + + ESTRSWP2W + 0.0367 + 20081015-170000 + + + ESTRSWP1M + 0.0364 + 20081015-170000 + + + ESTRSWP2M + 0.0359 + 20081015-170000 + + + ESTRSWP3M + 0.0346 + 20081015-170000 + + + ESTRSWP4M + 0.034 + 20081015-170000 + + + ESTRSWP5M + 0.0337 + 20081015-170000 + + + ESTRSWP6M + 0.0335 + 20081015-170000 + + + ESTRSWP7M + 0.0327 + 20081015-170000 + + + ESTRSWP8M + 0.033 + 20081015-170000 + + + ESTRSWP9M + 0.0323 + 20081015-170000 + + + ESTRSWP10M + 0.032 + 20081015-170000 + + + ESTRSWP11M + 0.0323 + 20081015-170000 + + + EUB6SWP1Y + 0.0448 + 20081015-170000 + + + ESTRSWP12M + 0.0318 + 20081015-170000 + + + ESTRSWP15M + 0.0321 + 20081015-170000 + + + ESTRSWP18M + 0.0324 + 20081015-170000 + + + EUB6SWP2Y + 0.0427 + 20081015-170000 + + + ESTRSWP2Y + 0.0332 + 20081015-170000 + + + EUB6SWP3Y + 0.0442 + 20081015-170000 + + + ESTRSWP3Y + 0.0362 + 20081015-170000 + + + EUB6SWP4Y + 0.044 + 20081015-170000 + + + ESTRSWP4Y + 0.0378 + 20081015-170000 + + + EUB6SWP5Y + 0.0451 + 20081015-170000 + + + ESTRSWP5Y + 0.0392 + 20081015-170000 + + + EUB6SWP6Y + 0.0452 + 20081015-170000 + + + ESTRSWP6Y + 0.0402 + 20081015-170000 + + + EUB6SWP7Y + 0.046 + 20081015-170000 + + + ESTRSWP7Y + 0.0411 + 20081015-170000 + + + EUB6SWP8Y + 0.0459 + 20081015-170000 + + + ESTRSWP8Y + 0.0418 + 20081015-170000 + + + EUB6SWP9Y + 0.0462 + 20081015-170000 + + + ESTRSWP9Y + 0.0424 + 20081015-170000 + + + EUB6SWP10Y + 0.0467 + 20081015-170000 + + + ESTRSWP10Y + 0.0427 + 20081015-170000 + + + EUB6SWP11Y + 0.0472 + 20081015-170000 + + + ESTRSWP11Y + 0.0434 + 20081015-170000 + + + EUB6SWP12Y + 0.0479 + 20081015-170000 + + + ESTRSWP12Y + 0.0437 + 20081015-170000 + + + EUB6SWP13Y + 0.0477 + 20081015-170000 + + + EUB6SWP14Y + 0.0482 + 20081015-170000 + + + EUB6SWP15Y + 0.0484 + 20081015-170000 + + + ESTRSWP15Y + 0.0444 + 20081015-170000 + + + EUB6SWP16Y + 0.0482 + 20081015-170000 + + + EUB6SWP17Y + 0.0478 + 20081015-170000 + + + EUB6SWP18Y + 0.0478 + 20081015-170000 + + + EUB6SWP19Y + 0.0477 + 20081015-170000 + + + EUB6SWP20Y + 0.048 + 20081015-170000 + + + ESTRSWP20Y + 0.0443 + 20081015-170000 + + + EUB6SWP21Y + 0.0478 + 20081015-170000 + + + EUB6SWP22Y + 0.047 + 20081015-170000 + + + EUB6SWP23Y + 0.047 + 20081015-170000 + + + EUB6SWP24Y + 0.0465 + 20081015-170000 + + + EUB6SWP25Y + 0.0463 + 20081015-170000 + + + ESTRSWP25Y + 0.0425 + 20081015-170000 + + + EUB6SWP26Y + 0.046 + 20081015-170000 + + + EUB6SWP27Y + 0.0456 + 20081015-170000 + + + EUB6SWP28Y + 0.0459 + 20081015-170000 + + + EUB6SWP29Y + 0.0456 + 20081015-170000 + + + EUB6SWP30Y + 0.0456 + 20081015-170000 + + + ESTRSWP30Y + 0.0418 + 20081015-170000 + + + EUB6SWP35Y + 0.0449 + 20081015-170000 + + + EUB6SWP40Y + 0.0442 + 20081015-170000 + + + EUB6SWP45Y + 0.044 + 20081015-170000 + + + EUB6SWP50Y + 0.0434 + 20081015-170000 + + + EUB6SWP60Y + 0.0431 + 20081015-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-16.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-16.xml new file mode 100644 index 000000000..c8d1987cc --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-16.xml @@ -0,0 +1,344 @@ + + + 20081016-170000 + + EUB6FIX6M + 0.0518 + 20081016-170000 + + + ESTRSWP3W + 0.036 + 20081016-170000 + + + ESTRSWP1W + 0.0357 + 20081016-170000 + + + ESTRSWP2W + 0.0363 + 20081016-170000 + + + ESTRSWP1M + 0.0359 + 20081016-170000 + + + ESTRSWP2M + 0.0344 + 20081016-170000 + + + ESTRSWP3M + 0.0337 + 20081016-170000 + + + ESTRSWP4M + 0.0331 + 20081016-170000 + + + ESTRSWP5M + 0.0332 + 20081016-170000 + + + ESTRSWP6M + 0.0329 + 20081016-170000 + + + ESTRSWP7M + 0.0325 + 20081016-170000 + + + ESTRSWP8M + 0.0319 + 20081016-170000 + + + ESTRSWP9M + 0.0312 + 20081016-170000 + + + ESTRSWP10M + 0.0312 + 20081016-170000 + + + ESTRSWP11M + 0.0312 + 20081016-170000 + + + EUB6SWP1Y + 0.044 + 20081016-170000 + + + ESTRSWP12M + 0.0308 + 20081016-170000 + + + ESTRSWP15M + 0.0307 + 20081016-170000 + + + ESTRSWP18M + 0.0315 + 20081016-170000 + + + EUB6SWP2Y + 0.0415 + 20081016-170000 + + + ESTRSWP2Y + 0.0328 + 20081016-170000 + + + EUB6SWP3Y + 0.0426 + 20081016-170000 + + + ESTRSWP3Y + 0.0349 + 20081016-170000 + + + EUB6SWP4Y + 0.0431 + 20081016-170000 + + + ESTRSWP4Y + 0.037 + 20081016-170000 + + + EUB6SWP5Y + 0.044 + 20081016-170000 + + + ESTRSWP5Y + 0.038 + 20081016-170000 + + + EUB6SWP6Y + 0.0449 + 20081016-170000 + + + ESTRSWP6Y + 0.0395 + 20081016-170000 + + + EUB6SWP7Y + 0.0447 + 20081016-170000 + + + ESTRSWP7Y + 0.0399 + 20081016-170000 + + + EUB6SWP8Y + 0.0458 + 20081016-170000 + + + ESTRSWP8Y + 0.0412 + 20081016-170000 + + + EUB6SWP9Y + 0.0464 + 20081016-170000 + + + ESTRSWP9Y + 0.0421 + 20081016-170000 + + + EUB6SWP10Y + 0.0465 + 20081016-170000 + + + ESTRSWP10Y + 0.0423 + 20081016-170000 + + + EUB6SWP11Y + 0.0471 + 20081016-170000 + + + ESTRSWP11Y + 0.0429 + 20081016-170000 + + + EUB6SWP12Y + 0.0476 + 20081016-170000 + + + ESTRSWP12Y + 0.0429 + 20081016-170000 + + + EUB6SWP13Y + 0.0482 + 20081016-170000 + + + EUB6SWP14Y + 0.0478 + 20081016-170000 + + + EUB6SWP15Y + 0.048 + 20081016-170000 + + + ESTRSWP15Y + 0.0445 + 20081016-170000 + + + EUB6SWP16Y + 0.0485 + 20081016-170000 + + + EUB6SWP17Y + 0.0485 + 20081016-170000 + + + EUB6SWP18Y + 0.0478 + 20081016-170000 + + + EUB6SWP19Y + 0.0481 + 20081016-170000 + + + EUB6SWP20Y + 0.0475 + 20081016-170000 + + + ESTRSWP20Y + 0.0438 + 20081016-170000 + + + EUB6SWP21Y + 0.0478 + 20081016-170000 + + + EUB6SWP22Y + 0.047 + 20081016-170000 + + + EUB6SWP23Y + 0.0464 + 20081016-170000 + + + EUB6SWP24Y + 0.0465 + 20081016-170000 + + + EUB6SWP25Y + 0.0468 + 20081016-170000 + + + ESTRSWP25Y + 0.0429 + 20081016-170000 + + + EUB6SWP26Y + 0.0455 + 20081016-170000 + + + EUB6SWP27Y + 0.0454 + 20081016-170000 + + + EUB6SWP28Y + 0.0457 + 20081016-170000 + + + EUB6SWP29Y + 0.0457 + 20081016-170000 + + + EUB6SWP30Y + 0.0455 + 20081016-170000 + + + ESTRSWP30Y + 0.0421 + 20081016-170000 + + + EUB6SWP35Y + 0.0447 + 20081016-170000 + + + EUB6SWP40Y + 0.0435 + 20081016-170000 + + + EUB6SWP45Y + 0.0434 + 20081016-170000 + + + EUB6SWP50Y + 0.0433 + 20081016-170000 + + + EUB6SWP60Y + 0.043 + 20081016-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-17.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-17.xml new file mode 100644 index 000000000..25f5bbb7c --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-17.xml @@ -0,0 +1,344 @@ + + + 20081017-170000 + + EUB6FIX6M + 0.0515 + 20081017-170000 + + + ESTRSWP3W + 0.0365 + 20081017-170000 + + + ESTRSWP1W + 0.036 + 20081017-170000 + + + ESTRSWP2W + 0.0357 + 20081017-170000 + + + ESTRSWP1M + 0.0352 + 20081017-170000 + + + ESTRSWP2M + 0.0341 + 20081017-170000 + + + ESTRSWP3M + 0.0329 + 20081017-170000 + + + ESTRSWP4M + 0.0322 + 20081017-170000 + + + ESTRSWP5M + 0.032 + 20081017-170000 + + + ESTRSWP6M + 0.0318 + 20081017-170000 + + + ESTRSWP7M + 0.0306 + 20081017-170000 + + + ESTRSWP8M + 0.0303 + 20081017-170000 + + + ESTRSWP9M + 0.0306 + 20081017-170000 + + + ESTRSWP10M + 0.0302 + 20081017-170000 + + + ESTRSWP11M + 0.0302 + 20081017-170000 + + + EUB6SWP1Y + 0.0435 + 20081017-170000 + + + ESTRSWP12M + 0.0308 + 20081017-170000 + + + ESTRSWP15M + 0.0298 + 20081017-170000 + + + ESTRSWP18M + 0.0308 + 20081017-170000 + + + EUB6SWP2Y + 0.0407 + 20081017-170000 + + + ESTRSWP2Y + 0.0324 + 20081017-170000 + + + EUB6SWP3Y + 0.0424 + 20081017-170000 + + + ESTRSWP3Y + 0.035 + 20081017-170000 + + + EUB6SWP4Y + 0.0436 + 20081017-170000 + + + ESTRSWP4Y + 0.0372 + 20081017-170000 + + + EUB6SWP5Y + 0.0441 + 20081017-170000 + + + ESTRSWP5Y + 0.0387 + 20081017-170000 + + + EUB6SWP6Y + 0.044 + 20081017-170000 + + + ESTRSWP6Y + 0.0398 + 20081017-170000 + + + EUB6SWP7Y + 0.0445 + 20081017-170000 + + + ESTRSWP7Y + 0.0406 + 20081017-170000 + + + EUB6SWP8Y + 0.0455 + 20081017-170000 + + + ESTRSWP8Y + 0.041 + 20081017-170000 + + + EUB6SWP9Y + 0.0461 + 20081017-170000 + + + ESTRSWP9Y + 0.0416 + 20081017-170000 + + + EUB6SWP10Y + 0.0461 + 20081017-170000 + + + ESTRSWP10Y + 0.0424 + 20081017-170000 + + + EUB6SWP11Y + 0.0469 + 20081017-170000 + + + ESTRSWP11Y + 0.0428 + 20081017-170000 + + + EUB6SWP12Y + 0.0476 + 20081017-170000 + + + ESTRSWP12Y + 0.0441 + 20081017-170000 + + + EUB6SWP13Y + 0.0478 + 20081017-170000 + + + EUB6SWP14Y + 0.0479 + 20081017-170000 + + + EUB6SWP15Y + 0.048 + 20081017-170000 + + + ESTRSWP15Y + 0.045 + 20081017-170000 + + + EUB6SWP16Y + 0.0478 + 20081017-170000 + + + EUB6SWP17Y + 0.0484 + 20081017-170000 + + + EUB6SWP18Y + 0.0483 + 20081017-170000 + + + EUB6SWP19Y + 0.0477 + 20081017-170000 + + + EUB6SWP20Y + 0.0476 + 20081017-170000 + + + ESTRSWP20Y + 0.0445 + 20081017-170000 + + + EUB6SWP21Y + 0.0475 + 20081017-170000 + + + EUB6SWP22Y + 0.047 + 20081017-170000 + + + EUB6SWP23Y + 0.0472 + 20081017-170000 + + + EUB6SWP24Y + 0.0468 + 20081017-170000 + + + EUB6SWP25Y + 0.0458 + 20081017-170000 + + + ESTRSWP25Y + 0.0433 + 20081017-170000 + + + EUB6SWP26Y + 0.0456 + 20081017-170000 + + + EUB6SWP27Y + 0.0461 + 20081017-170000 + + + EUB6SWP28Y + 0.0459 + 20081017-170000 + + + EUB6SWP29Y + 0.0454 + 20081017-170000 + + + EUB6SWP30Y + 0.0456 + 20081017-170000 + + + ESTRSWP30Y + 0.042 + 20081017-170000 + + + EUB6SWP35Y + 0.0443 + 20081017-170000 + + + EUB6SWP40Y + 0.0443 + 20081017-170000 + + + EUB6SWP45Y + 0.0428 + 20081017-170000 + + + EUB6SWP50Y + 0.0434 + 20081017-170000 + + + EUB6SWP60Y + 0.0426 + 20081017-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-20.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-20.xml new file mode 100644 index 000000000..4727dec69 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-20.xml @@ -0,0 +1,344 @@ + + + 20081020-170000 + + EUB6FIX6M + 0.0511 + 20081020-170000 + + + ESTRSWP3W + 0.0358 + 20081020-170000 + + + ESTRSWP1W + 0.0359 + 20081020-170000 + + + ESTRSWP2W + 0.0358 + 20081020-170000 + + + ESTRSWP1M + 0.035 + 20081020-170000 + + + ESTRSWP2M + 0.0341 + 20081020-170000 + + + ESTRSWP3M + 0.0332 + 20081020-170000 + + + ESTRSWP4M + 0.0326 + 20081020-170000 + + + ESTRSWP5M + 0.0324 + 20081020-170000 + + + ESTRSWP6M + 0.0318 + 20081020-170000 + + + ESTRSWP7M + 0.0314 + 20081020-170000 + + + ESTRSWP8M + 0.0314 + 20081020-170000 + + + ESTRSWP9M + 0.0307 + 20081020-170000 + + + ESTRSWP10M + 0.0305 + 20081020-170000 + + + ESTRSWP11M + 0.0306 + 20081020-170000 + + + EUB6SWP1Y + 0.0434 + 20081020-170000 + + + ESTRSWP12M + 0.0307 + 20081020-170000 + + + ESTRSWP15M + 0.0306 + 20081020-170000 + + + ESTRSWP18M + 0.0306 + 20081020-170000 + + + EUB6SWP2Y + 0.0413 + 20081020-170000 + + + ESTRSWP2Y + 0.0322 + 20081020-170000 + + + EUB6SWP3Y + 0.0424 + 20081020-170000 + + + ESTRSWP3Y + 0.0355 + 20081020-170000 + + + EUB6SWP4Y + 0.0426 + 20081020-170000 + + + ESTRSWP4Y + 0.037 + 20081020-170000 + + + EUB6SWP5Y + 0.0435 + 20081020-170000 + + + ESTRSWP5Y + 0.0384 + 20081020-170000 + + + EUB6SWP6Y + 0.044 + 20081020-170000 + + + ESTRSWP6Y + 0.0388 + 20081020-170000 + + + EUB6SWP7Y + 0.0445 + 20081020-170000 + + + ESTRSWP7Y + 0.0396 + 20081020-170000 + + + EUB6SWP8Y + 0.0453 + 20081020-170000 + + + ESTRSWP8Y + 0.041 + 20081020-170000 + + + EUB6SWP9Y + 0.0454 + 20081020-170000 + + + ESTRSWP9Y + 0.0419 + 20081020-170000 + + + EUB6SWP10Y + 0.046 + 20081020-170000 + + + ESTRSWP10Y + 0.0422 + 20081020-170000 + + + EUB6SWP11Y + 0.0461 + 20081020-170000 + + + ESTRSWP11Y + 0.0427 + 20081020-170000 + + + EUB6SWP12Y + 0.0465 + 20081020-170000 + + + ESTRSWP12Y + 0.0432 + 20081020-170000 + + + EUB6SWP13Y + 0.0476 + 20081020-170000 + + + EUB6SWP14Y + 0.0475 + 20081020-170000 + + + EUB6SWP15Y + 0.0481 + 20081020-170000 + + + ESTRSWP15Y + 0.0444 + 20081020-170000 + + + EUB6SWP16Y + 0.0485 + 20081020-170000 + + + EUB6SWP17Y + 0.0482 + 20081020-170000 + + + EUB6SWP18Y + 0.0478 + 20081020-170000 + + + EUB6SWP19Y + 0.0474 + 20081020-170000 + + + EUB6SWP20Y + 0.0472 + 20081020-170000 + + + ESTRSWP20Y + 0.0447 + 20081020-170000 + + + EUB6SWP21Y + 0.0475 + 20081020-170000 + + + EUB6SWP22Y + 0.0469 + 20081020-170000 + + + EUB6SWP23Y + 0.0463 + 20081020-170000 + + + EUB6SWP24Y + 0.0462 + 20081020-170000 + + + EUB6SWP25Y + 0.0459 + 20081020-170000 + + + ESTRSWP25Y + 0.0433 + 20081020-170000 + + + EUB6SWP26Y + 0.0455 + 20081020-170000 + + + EUB6SWP27Y + 0.0456 + 20081020-170000 + + + EUB6SWP28Y + 0.045 + 20081020-170000 + + + EUB6SWP29Y + 0.0456 + 20081020-170000 + + + EUB6SWP30Y + 0.045 + 20081020-170000 + + + ESTRSWP30Y + 0.0419 + 20081020-170000 + + + EUB6SWP35Y + 0.0444 + 20081020-170000 + + + EUB6SWP40Y + 0.0438 + 20081020-170000 + + + EUB6SWP45Y + 0.0431 + 20081020-170000 + + + EUB6SWP50Y + 0.0428 + 20081020-170000 + + + EUB6SWP60Y + 0.0429 + 20081020-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-21.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-21.xml new file mode 100644 index 000000000..c8ca83373 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-21.xml @@ -0,0 +1,344 @@ + + + 20081021-170000 + + EUB6FIX6M + 0.0502 + 20081021-170000 + + + ESTRSWP3W + 0.0358 + 20081021-170000 + + + ESTRSWP1W + 0.0359 + 20081021-170000 + + + ESTRSWP2W + 0.0357 + 20081021-170000 + + + ESTRSWP1M + 0.0349 + 20081021-170000 + + + ESTRSWP2M + 0.0339 + 20081021-170000 + + + ESTRSWP3M + 0.0336 + 20081021-170000 + + + ESTRSWP4M + 0.0322 + 20081021-170000 + + + ESTRSWP5M + 0.0317 + 20081021-170000 + + + ESTRSWP6M + 0.0318 + 20081021-170000 + + + ESTRSWP7M + 0.0315 + 20081021-170000 + + + ESTRSWP8M + 0.0309 + 20081021-170000 + + + ESTRSWP9M + 0.0302 + 20081021-170000 + + + ESTRSWP10M + 0.0307 + 20081021-170000 + + + ESTRSWP11M + 0.0297 + 20081021-170000 + + + EUB6SWP1Y + 0.043 + 20081021-170000 + + + ESTRSWP12M + 0.0303 + 20081021-170000 + + + ESTRSWP15M + 0.0291 + 20081021-170000 + + + ESTRSWP18M + 0.0296 + 20081021-170000 + + + EUB6SWP2Y + 0.0394 + 20081021-170000 + + + ESTRSWP2Y + 0.0316 + 20081021-170000 + + + EUB6SWP3Y + 0.041 + 20081021-170000 + + + ESTRSWP3Y + 0.0339 + 20081021-170000 + + + EUB6SWP4Y + 0.0416 + 20081021-170000 + + + ESTRSWP4Y + 0.0363 + 20081021-170000 + + + EUB6SWP5Y + 0.0418 + 20081021-170000 + + + ESTRSWP5Y + 0.0374 + 20081021-170000 + + + EUB6SWP6Y + 0.043 + 20081021-170000 + + + ESTRSWP6Y + 0.0377 + 20081021-170000 + + + EUB6SWP7Y + 0.0436 + 20081021-170000 + + + ESTRSWP7Y + 0.0392 + 20081021-170000 + + + EUB6SWP8Y + 0.0436 + 20081021-170000 + + + ESTRSWP8Y + 0.0396 + 20081021-170000 + + + EUB6SWP9Y + 0.0437 + 20081021-170000 + + + ESTRSWP9Y + 0.0401 + 20081021-170000 + + + EUB6SWP10Y + 0.0448 + 20081021-170000 + + + ESTRSWP10Y + 0.0413 + 20081021-170000 + + + EUB6SWP11Y + 0.0457 + 20081021-170000 + + + ESTRSWP11Y + 0.0415 + 20081021-170000 + + + EUB6SWP12Y + 0.0459 + 20081021-170000 + + + ESTRSWP12Y + 0.0429 + 20081021-170000 + + + EUB6SWP13Y + 0.0467 + 20081021-170000 + + + EUB6SWP14Y + 0.047 + 20081021-170000 + + + EUB6SWP15Y + 0.0469 + 20081021-170000 + + + ESTRSWP15Y + 0.0437 + 20081021-170000 + + + EUB6SWP16Y + 0.0466 + 20081021-170000 + + + EUB6SWP17Y + 0.0466 + 20081021-170000 + + + EUB6SWP18Y + 0.0465 + 20081021-170000 + + + EUB6SWP19Y + 0.0471 + 20081021-170000 + + + EUB6SWP20Y + 0.0465 + 20081021-170000 + + + ESTRSWP20Y + 0.0432 + 20081021-170000 + + + EUB6SWP21Y + 0.0458 + 20081021-170000 + + + EUB6SWP22Y + 0.0459 + 20081021-170000 + + + EUB6SWP23Y + 0.0459 + 20081021-170000 + + + EUB6SWP24Y + 0.0457 + 20081021-170000 + + + EUB6SWP25Y + 0.0447 + 20081021-170000 + + + ESTRSWP25Y + 0.0429 + 20081021-170000 + + + EUB6SWP26Y + 0.0446 + 20081021-170000 + + + EUB6SWP27Y + 0.0449 + 20081021-170000 + + + EUB6SWP28Y + 0.0442 + 20081021-170000 + + + EUB6SWP29Y + 0.0445 + 20081021-170000 + + + EUB6SWP30Y + 0.044 + 20081021-170000 + + + ESTRSWP30Y + 0.0414 + 20081021-170000 + + + EUB6SWP35Y + 0.0429 + 20081021-170000 + + + EUB6SWP40Y + 0.0431 + 20081021-170000 + + + EUB6SWP45Y + 0.0423 + 20081021-170000 + + + EUB6SWP50Y + 0.0424 + 20081021-170000 + + + EUB6SWP60Y + 0.0417 + 20081021-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-22.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-22.xml new file mode 100644 index 000000000..c5a0ec8bf --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-22.xml @@ -0,0 +1,344 @@ + + + 20081022-170000 + + EUB6FIX6M + 0.0499 + 20081022-170000 + + + ESTRSWP3W + 0.0357 + 20081022-170000 + + + ESTRSWP1W + 0.0356 + 20081022-170000 + + + ESTRSWP2W + 0.035 + 20081022-170000 + + + ESTRSWP1M + 0.0347 + 20081022-170000 + + + ESTRSWP2M + 0.0337 + 20081022-170000 + + + ESTRSWP3M + 0.033 + 20081022-170000 + + + ESTRSWP4M + 0.0317 + 20081022-170000 + + + ESTRSWP5M + 0.0312 + 20081022-170000 + + + ESTRSWP6M + 0.0315 + 20081022-170000 + + + ESTRSWP7M + 0.0304 + 20081022-170000 + + + ESTRSWP8M + 0.03 + 20081022-170000 + + + ESTRSWP9M + 0.0302 + 20081022-170000 + + + ESTRSWP10M + 0.0299 + 20081022-170000 + + + ESTRSWP11M + 0.0294 + 20081022-170000 + + + EUB6SWP1Y + 0.0417 + 20081022-170000 + + + ESTRSWP12M + 0.0289 + 20081022-170000 + + + ESTRSWP15M + 0.029 + 20081022-170000 + + + ESTRSWP18M + 0.0287 + 20081022-170000 + + + EUB6SWP2Y + 0.0391 + 20081022-170000 + + + ESTRSWP2Y + 0.0301 + 20081022-170000 + + + EUB6SWP3Y + 0.0404 + 20081022-170000 + + + ESTRSWP3Y + 0.0318 + 20081022-170000 + + + EUB6SWP4Y + 0.0406 + 20081022-170000 + + + ESTRSWP4Y + 0.035 + 20081022-170000 + + + EUB6SWP5Y + 0.0419 + 20081022-170000 + + + ESTRSWP5Y + 0.0359 + 20081022-170000 + + + EUB6SWP6Y + 0.0423 + 20081022-170000 + + + ESTRSWP6Y + 0.0378 + 20081022-170000 + + + EUB6SWP7Y + 0.0421 + 20081022-170000 + + + ESTRSWP7Y + 0.0382 + 20081022-170000 + + + EUB6SWP8Y + 0.0434 + 20081022-170000 + + + ESTRSWP8Y + 0.0388 + 20081022-170000 + + + EUB6SWP9Y + 0.0441 + 20081022-170000 + + + ESTRSWP9Y + 0.0399 + 20081022-170000 + + + EUB6SWP10Y + 0.0443 + 20081022-170000 + + + ESTRSWP10Y + 0.04 + 20081022-170000 + + + EUB6SWP11Y + 0.0442 + 20081022-170000 + + + ESTRSWP11Y + 0.0413 + 20081022-170000 + + + EUB6SWP12Y + 0.045 + 20081022-170000 + + + ESTRSWP12Y + 0.0419 + 20081022-170000 + + + EUB6SWP13Y + 0.0457 + 20081022-170000 + + + EUB6SWP14Y + 0.0462 + 20081022-170000 + + + EUB6SWP15Y + 0.0462 + 20081022-170000 + + + ESTRSWP15Y + 0.0431 + 20081022-170000 + + + EUB6SWP16Y + 0.0464 + 20081022-170000 + + + EUB6SWP17Y + 0.0462 + 20081022-170000 + + + EUB6SWP18Y + 0.0462 + 20081022-170000 + + + EUB6SWP19Y + 0.0455 + 20081022-170000 + + + EUB6SWP20Y + 0.0462 + 20081022-170000 + + + ESTRSWP20Y + 0.0425 + 20081022-170000 + + + EUB6SWP21Y + 0.0456 + 20081022-170000 + + + EUB6SWP22Y + 0.0447 + 20081022-170000 + + + EUB6SWP23Y + 0.0446 + 20081022-170000 + + + EUB6SWP24Y + 0.0444 + 20081022-170000 + + + EUB6SWP25Y + 0.0443 + 20081022-170000 + + + ESTRSWP25Y + 0.0418 + 20081022-170000 + + + EUB6SWP26Y + 0.0443 + 20081022-170000 + + + EUB6SWP27Y + 0.0442 + 20081022-170000 + + + EUB6SWP28Y + 0.0432 + 20081022-170000 + + + EUB6SWP29Y + 0.0438 + 20081022-170000 + + + EUB6SWP30Y + 0.0436 + 20081022-170000 + + + ESTRSWP30Y + 0.0407 + 20081022-170000 + + + EUB6SWP35Y + 0.0423 + 20081022-170000 + + + EUB6SWP40Y + 0.0424 + 20081022-170000 + + + EUB6SWP45Y + 0.0418 + 20081022-170000 + + + EUB6SWP50Y + 0.0416 + 20081022-170000 + + + EUB6SWP60Y + 0.0417 + 20081022-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-23.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-23.xml new file mode 100644 index 000000000..efbb38f66 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-23.xml @@ -0,0 +1,344 @@ + + + 20081023-170000 + + EUB6FIX6M + 0.0502 + 20081023-170000 + + + ESTRSWP3W + 0.0347 + 20081023-170000 + + + ESTRSWP1W + 0.0353 + 20081023-170000 + + + ESTRSWP2W + 0.0349 + 20081023-170000 + + + ESTRSWP1M + 0.0334 + 20081023-170000 + + + ESTRSWP2M + 0.0327 + 20081023-170000 + + + ESTRSWP3M + 0.0322 + 20081023-170000 + + + ESTRSWP4M + 0.0317 + 20081023-170000 + + + ESTRSWP5M + 0.0307 + 20081023-170000 + + + ESTRSWP6M + 0.03 + 20081023-170000 + + + ESTRSWP7M + 0.0302 + 20081023-170000 + + + ESTRSWP8M + 0.0292 + 20081023-170000 + + + ESTRSWP9M + 0.0292 + 20081023-170000 + + + ESTRSWP10M + 0.0289 + 20081023-170000 + + + ESTRSWP11M + 0.029 + 20081023-170000 + + + EUB6SWP1Y + 0.0419 + 20081023-170000 + + + ESTRSWP12M + 0.0288 + 20081023-170000 + + + ESTRSWP15M + 0.0285 + 20081023-170000 + + + ESTRSWP18M + 0.0282 + 20081023-170000 + + + EUB6SWP2Y + 0.0387 + 20081023-170000 + + + ESTRSWP2Y + 0.0295 + 20081023-170000 + + + EUB6SWP3Y + 0.0393 + 20081023-170000 + + + ESTRSWP3Y + 0.0325 + 20081023-170000 + + + EUB6SWP4Y + 0.0405 + 20081023-170000 + + + ESTRSWP4Y + 0.0345 + 20081023-170000 + + + EUB6SWP5Y + 0.0409 + 20081023-170000 + + + ESTRSWP5Y + 0.0358 + 20081023-170000 + + + EUB6SWP6Y + 0.0413 + 20081023-170000 + + + ESTRSWP6Y + 0.0369 + 20081023-170000 + + + EUB6SWP7Y + 0.0418 + 20081023-170000 + + + ESTRSWP7Y + 0.0378 + 20081023-170000 + + + EUB6SWP8Y + 0.042 + 20081023-170000 + + + ESTRSWP8Y + 0.0383 + 20081023-170000 + + + EUB6SWP9Y + 0.043 + 20081023-170000 + + + ESTRSWP9Y + 0.0386 + 20081023-170000 + + + EUB6SWP10Y + 0.0434 + 20081023-170000 + + + ESTRSWP10Y + 0.0395 + 20081023-170000 + + + EUB6SWP11Y + 0.0436 + 20081023-170000 + + + ESTRSWP11Y + 0.0401 + 20081023-170000 + + + EUB6SWP12Y + 0.0436 + 20081023-170000 + + + ESTRSWP12Y + 0.0407 + 20081023-170000 + + + EUB6SWP13Y + 0.0443 + 20081023-170000 + + + EUB6SWP14Y + 0.044 + 20081023-170000 + + + EUB6SWP15Y + 0.0446 + 20081023-170000 + + + ESTRSWP15Y + 0.0408 + 20081023-170000 + + + EUB6SWP16Y + 0.0445 + 20081023-170000 + + + EUB6SWP17Y + 0.0446 + 20081023-170000 + + + EUB6SWP18Y + 0.0438 + 20081023-170000 + + + EUB6SWP19Y + 0.044 + 20081023-170000 + + + EUB6SWP20Y + 0.0441 + 20081023-170000 + + + ESTRSWP20Y + 0.0407 + 20081023-170000 + + + EUB6SWP21Y + 0.0436 + 20081023-170000 + + + EUB6SWP22Y + 0.0431 + 20081023-170000 + + + EUB6SWP23Y + 0.0429 + 20081023-170000 + + + EUB6SWP24Y + 0.0425 + 20081023-170000 + + + EUB6SWP25Y + 0.0424 + 20081023-170000 + + + ESTRSWP25Y + 0.0398 + 20081023-170000 + + + EUB6SWP26Y + 0.0417 + 20081023-170000 + + + EUB6SWP27Y + 0.0415 + 20081023-170000 + + + EUB6SWP28Y + 0.0407 + 20081023-170000 + + + EUB6SWP29Y + 0.0406 + 20081023-170000 + + + EUB6SWP30Y + 0.041 + 20081023-170000 + + + ESTRSWP30Y + 0.0382 + 20081023-170000 + + + EUB6SWP35Y + 0.0397 + 20081023-170000 + + + EUB6SWP40Y + 0.0392 + 20081023-170000 + + + EUB6SWP45Y + 0.0394 + 20081023-170000 + + + EUB6SWP50Y + 0.0389 + 20081023-170000 + + + EUB6SWP60Y + 0.0387 + 20081023-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-24.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-24.xml new file mode 100644 index 000000000..bb9d85486 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-24.xml @@ -0,0 +1,344 @@ + + + 20081024-170000 + + EUB6FIX6M + 0.0497 + 20081024-170000 + + + ESTRSWP3W + 0.0332 + 20081024-170000 + + + ESTRSWP1W + 0.0337 + 20081024-170000 + + + ESTRSWP2W + 0.0338 + 20081024-170000 + + + ESTRSWP1M + 0.0326 + 20081024-170000 + + + ESTRSWP2M + 0.0317 + 20081024-170000 + + + ESTRSWP3M + 0.0314 + 20081024-170000 + + + ESTRSWP4M + 0.0304 + 20081024-170000 + + + ESTRSWP5M + 0.03 + 20081024-170000 + + + ESTRSWP6M + 0.029 + 20081024-170000 + + + ESTRSWP7M + 0.0291 + 20081024-170000 + + + ESTRSWP8M + 0.0287 + 20081024-170000 + + + ESTRSWP9M + 0.028 + 20081024-170000 + + + ESTRSWP10M + 0.0281 + 20081024-170000 + + + ESTRSWP11M + 0.0277 + 20081024-170000 + + + EUB6SWP1Y + 0.0418 + 20081024-170000 + + + ESTRSWP12M + 0.0271 + 20081024-170000 + + + ESTRSWP15M + 0.0269 + 20081024-170000 + + + ESTRSWP18M + 0.0276 + 20081024-170000 + + + EUB6SWP2Y + 0.0386 + 20081024-170000 + + + ESTRSWP2Y + 0.0285 + 20081024-170000 + + + EUB6SWP3Y + 0.0394 + 20081024-170000 + + + ESTRSWP3Y + 0.0322 + 20081024-170000 + + + EUB6SWP4Y + 0.0398 + 20081024-170000 + + + ESTRSWP4Y + 0.0338 + 20081024-170000 + + + EUB6SWP5Y + 0.0408 + 20081024-170000 + + + ESTRSWP5Y + 0.0351 + 20081024-170000 + + + EUB6SWP6Y + 0.0413 + 20081024-170000 + + + ESTRSWP6Y + 0.0362 + 20081024-170000 + + + EUB6SWP7Y + 0.0416 + 20081024-170000 + + + ESTRSWP7Y + 0.0373 + 20081024-170000 + + + EUB6SWP8Y + 0.0421 + 20081024-170000 + + + ESTRSWP8Y + 0.0379 + 20081024-170000 + + + EUB6SWP9Y + 0.0432 + 20081024-170000 + + + ESTRSWP9Y + 0.0384 + 20081024-170000 + + + EUB6SWP10Y + 0.0438 + 20081024-170000 + + + ESTRSWP10Y + 0.0394 + 20081024-170000 + + + EUB6SWP11Y + 0.0443 + 20081024-170000 + + + ESTRSWP11Y + 0.0397 + 20081024-170000 + + + EUB6SWP12Y + 0.0448 + 20081024-170000 + + + ESTRSWP12Y + 0.0411 + 20081024-170000 + + + EUB6SWP13Y + 0.0449 + 20081024-170000 + + + EUB6SWP14Y + 0.045 + 20081024-170000 + + + EUB6SWP15Y + 0.0449 + 20081024-170000 + + + ESTRSWP15Y + 0.0415 + 20081024-170000 + + + EUB6SWP16Y + 0.045 + 20081024-170000 + + + EUB6SWP17Y + 0.0446 + 20081024-170000 + + + EUB6SWP18Y + 0.0443 + 20081024-170000 + + + EUB6SWP19Y + 0.0438 + 20081024-170000 + + + EUB6SWP20Y + 0.0435 + 20081024-170000 + + + ESTRSWP20Y + 0.0406 + 20081024-170000 + + + EUB6SWP21Y + 0.044 + 20081024-170000 + + + EUB6SWP22Y + 0.0432 + 20081024-170000 + + + EUB6SWP23Y + 0.043 + 20081024-170000 + + + EUB6SWP24Y + 0.0422 + 20081024-170000 + + + EUB6SWP25Y + 0.042 + 20081024-170000 + + + ESTRSWP25Y + 0.0398 + 20081024-170000 + + + EUB6SWP26Y + 0.0423 + 20081024-170000 + + + EUB6SWP27Y + 0.0421 + 20081024-170000 + + + EUB6SWP28Y + 0.0419 + 20081024-170000 + + + EUB6SWP29Y + 0.0417 + 20081024-170000 + + + EUB6SWP30Y + 0.0405 + 20081024-170000 + + + ESTRSWP30Y + 0.0382 + 20081024-170000 + + + EUB6SWP35Y + 0.0408 + 20081024-170000 + + + EUB6SWP40Y + 0.0403 + 20081024-170000 + + + EUB6SWP45Y + 0.0393 + 20081024-170000 + + + EUB6SWP50Y + 0.0397 + 20081024-170000 + + + EUB6SWP60Y + 0.0389 + 20081024-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-27.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-27.xml new file mode 100644 index 000000000..5f731a099 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-27.xml @@ -0,0 +1,344 @@ + + + 20081027-170000 + + EUB6FIX6M + 0.0495 + 20081027-170000 + + + ESTRSWP3W + 0.0336 + 20081027-170000 + + + ESTRSWP1W + 0.0356 + 20081027-170000 + + + ESTRSWP2W + 0.0341 + 20081027-170000 + + + ESTRSWP1M + 0.0326 + 20081027-170000 + + + ESTRSWP2M + 0.0309 + 20081027-170000 + + + ESTRSWP3M + 0.0298 + 20081027-170000 + + + ESTRSWP4M + 0.0296 + 20081027-170000 + + + ESTRSWP5M + 0.0293 + 20081027-170000 + + + ESTRSWP6M + 0.0286 + 20081027-170000 + + + ESTRSWP7M + 0.0278 + 20081027-170000 + + + ESTRSWP8M + 0.0272 + 20081027-170000 + + + ESTRSWP9M + 0.0269 + 20081027-170000 + + + ESTRSWP10M + 0.0271 + 20081027-170000 + + + ESTRSWP11M + 0.0267 + 20081027-170000 + + + EUB6SWP1Y + 0.0411 + 20081027-170000 + + + ESTRSWP12M + 0.0264 + 20081027-170000 + + + ESTRSWP15M + 0.0263 + 20081027-170000 + + + ESTRSWP18M + 0.0271 + 20081027-170000 + + + EUB6SWP2Y + 0.0378 + 20081027-170000 + + + ESTRSWP2Y + 0.0281 + 20081027-170000 + + + EUB6SWP3Y + 0.0391 + 20081027-170000 + + + ESTRSWP3Y + 0.0308 + 20081027-170000 + + + EUB6SWP4Y + 0.0397 + 20081027-170000 + + + ESTRSWP4Y + 0.0333 + 20081027-170000 + + + EUB6SWP5Y + 0.0403 + 20081027-170000 + + + ESTRSWP5Y + 0.0349 + 20081027-170000 + + + EUB6SWP6Y + 0.0414 + 20081027-170000 + + + ESTRSWP6Y + 0.0365 + 20081027-170000 + + + EUB6SWP7Y + 0.042 + 20081027-170000 + + + ESTRSWP7Y + 0.0368 + 20081027-170000 + + + EUB6SWP8Y + 0.0426 + 20081027-170000 + + + ESTRSWP8Y + 0.0383 + 20081027-170000 + + + EUB6SWP9Y + 0.0428 + 20081027-170000 + + + ESTRSWP9Y + 0.0389 + 20081027-170000 + + + EUB6SWP10Y + 0.044 + 20081027-170000 + + + ESTRSWP10Y + 0.04 + 20081027-170000 + + + EUB6SWP11Y + 0.0446 + 20081027-170000 + + + ESTRSWP11Y + 0.0407 + 20081027-170000 + + + EUB6SWP12Y + 0.0444 + 20081027-170000 + + + ESTRSWP12Y + 0.0407 + 20081027-170000 + + + EUB6SWP13Y + 0.045 + 20081027-170000 + + + EUB6SWP14Y + 0.0457 + 20081027-170000 + + + EUB6SWP15Y + 0.0457 + 20081027-170000 + + + ESTRSWP15Y + 0.0417 + 20081027-170000 + + + EUB6SWP16Y + 0.0458 + 20081027-170000 + + + EUB6SWP17Y + 0.0451 + 20081027-170000 + + + EUB6SWP18Y + 0.045 + 20081027-170000 + + + EUB6SWP19Y + 0.0447 + 20081027-170000 + + + EUB6SWP20Y + 0.0444 + 20081027-170000 + + + ESTRSWP20Y + 0.0415 + 20081027-170000 + + + EUB6SWP21Y + 0.0448 + 20081027-170000 + + + EUB6SWP22Y + 0.0444 + 20081027-170000 + + + EUB6SWP23Y + 0.0436 + 20081027-170000 + + + EUB6SWP24Y + 0.043 + 20081027-170000 + + + EUB6SWP25Y + 0.0434 + 20081027-170000 + + + ESTRSWP25Y + 0.04 + 20081027-170000 + + + EUB6SWP26Y + 0.0428 + 20081027-170000 + + + EUB6SWP27Y + 0.0428 + 20081027-170000 + + + EUB6SWP28Y + 0.0421 + 20081027-170000 + + + EUB6SWP29Y + 0.0417 + 20081027-170000 + + + EUB6SWP30Y + 0.0418 + 20081027-170000 + + + ESTRSWP30Y + 0.0396 + 20081027-170000 + + + EUB6SWP35Y + 0.0413 + 20081027-170000 + + + EUB6SWP40Y + 0.0414 + 20081027-170000 + + + EUB6SWP45Y + 0.0402 + 20081027-170000 + + + EUB6SWP50Y + 0.0407 + 20081027-170000 + + + EUB6SWP60Y + 0.0401 + 20081027-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-28.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-28.xml new file mode 100644 index 000000000..f2d965100 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-28.xml @@ -0,0 +1,344 @@ + + + 20081028-170000 + + EUB6FIX6M + 0.0497 + 20081028-170000 + + + ESTRSWP3W + 0.0332 + 20081028-170000 + + + ESTRSWP1W + 0.0352 + 20081028-170000 + + + ESTRSWP2W + 0.0348 + 20081028-170000 + + + ESTRSWP1M + 0.0332 + 20081028-170000 + + + ESTRSWP2M + 0.0315 + 20081028-170000 + + + ESTRSWP3M + 0.03 + 20081028-170000 + + + ESTRSWP4M + 0.0293 + 20081028-170000 + + + ESTRSWP5M + 0.029 + 20081028-170000 + + + ESTRSWP6M + 0.0288 + 20081028-170000 + + + ESTRSWP7M + 0.0276 + 20081028-170000 + + + ESTRSWP8M + 0.0275 + 20081028-170000 + + + ESTRSWP9M + 0.0274 + 20081028-170000 + + + ESTRSWP10M + 0.0267 + 20081028-170000 + + + ESTRSWP11M + 0.0266 + 20081028-170000 + + + EUB6SWP1Y + 0.0401 + 20081028-170000 + + + ESTRSWP12M + 0.0267 + 20081028-170000 + + + ESTRSWP15M + 0.0261 + 20081028-170000 + + + ESTRSWP18M + 0.0264 + 20081028-170000 + + + EUB6SWP2Y + 0.0375 + 20081028-170000 + + + ESTRSWP2Y + 0.0275 + 20081028-170000 + + + EUB6SWP3Y + 0.0383 + 20081028-170000 + + + ESTRSWP3Y + 0.0305 + 20081028-170000 + + + EUB6SWP4Y + 0.0393 + 20081028-170000 + + + ESTRSWP4Y + 0.033 + 20081028-170000 + + + EUB6SWP5Y + 0.04 + 20081028-170000 + + + ESTRSWP5Y + 0.0345 + 20081028-170000 + + + EUB6SWP6Y + 0.041 + 20081028-170000 + + + ESTRSWP6Y + 0.0356 + 20081028-170000 + + + EUB6SWP7Y + 0.0409 + 20081028-170000 + + + ESTRSWP7Y + 0.0369 + 20081028-170000 + + + EUB6SWP8Y + 0.0424 + 20081028-170000 + + + ESTRSWP8Y + 0.0378 + 20081028-170000 + + + EUB6SWP9Y + 0.0428 + 20081028-170000 + + + ESTRSWP9Y + 0.0386 + 20081028-170000 + + + EUB6SWP10Y + 0.0433 + 20081028-170000 + + + ESTRSWP10Y + 0.0388 + 20081028-170000 + + + EUB6SWP11Y + 0.0431 + 20081028-170000 + + + ESTRSWP11Y + 0.0397 + 20081028-170000 + + + EUB6SWP12Y + 0.0436 + 20081028-170000 + + + ESTRSWP12Y + 0.0398 + 20081028-170000 + + + EUB6SWP13Y + 0.0444 + 20081028-170000 + + + EUB6SWP14Y + 0.0446 + 20081028-170000 + + + EUB6SWP15Y + 0.0443 + 20081028-170000 + + + ESTRSWP15Y + 0.041 + 20081028-170000 + + + EUB6SWP16Y + 0.0444 + 20081028-170000 + + + EUB6SWP17Y + 0.0446 + 20081028-170000 + + + EUB6SWP18Y + 0.0441 + 20081028-170000 + + + EUB6SWP19Y + 0.0439 + 20081028-170000 + + + EUB6SWP20Y + 0.0439 + 20081028-170000 + + + ESTRSWP20Y + 0.0402 + 20081028-170000 + + + EUB6SWP21Y + 0.0427 + 20081028-170000 + + + EUB6SWP22Y + 0.0426 + 20081028-170000 + + + EUB6SWP23Y + 0.042 + 20081028-170000 + + + EUB6SWP24Y + 0.0424 + 20081028-170000 + + + EUB6SWP25Y + 0.0415 + 20081028-170000 + + + ESTRSWP25Y + 0.0386 + 20081028-170000 + + + EUB6SWP26Y + 0.0411 + 20081028-170000 + + + EUB6SWP27Y + 0.0414 + 20081028-170000 + + + EUB6SWP28Y + 0.0412 + 20081028-170000 + + + EUB6SWP29Y + 0.0413 + 20081028-170000 + + + EUB6SWP30Y + 0.0403 + 20081028-170000 + + + ESTRSWP30Y + 0.0383 + 20081028-170000 + + + EUB6SWP35Y + 0.0404 + 20081028-170000 + + + EUB6SWP40Y + 0.0392 + 20081028-170000 + + + EUB6SWP45Y + 0.0388 + 20081028-170000 + + + EUB6SWP50Y + 0.0396 + 20081028-170000 + + + EUB6SWP60Y + 0.0383 + 20081028-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-29.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-29.xml new file mode 100644 index 000000000..40b28d5f0 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-29.xml @@ -0,0 +1,344 @@ + + + 20081029-170000 + + EUB6FIX6M + 0.0494 + 20081029-170000 + + + ESTRSWP3W + 0.033 + 20081029-170000 + + + ESTRSWP1W + 0.0347 + 20081029-170000 + + + ESTRSWP2W + 0.034 + 20081029-170000 + + + ESTRSWP1M + 0.0325 + 20081029-170000 + + + ESTRSWP2M + 0.0309 + 20081029-170000 + + + ESTRSWP3M + 0.03 + 20081029-170000 + + + ESTRSWP4M + 0.0295 + 20081029-170000 + + + ESTRSWP5M + 0.0292 + 20081029-170000 + + + ESTRSWP6M + 0.0278 + 20081029-170000 + + + ESTRSWP7M + 0.0278 + 20081029-170000 + + + ESTRSWP8M + 0.0277 + 20081029-170000 + + + ESTRSWP9M + 0.0266 + 20081029-170000 + + + ESTRSWP10M + 0.0266 + 20081029-170000 + + + ESTRSWP11M + 0.0263 + 20081029-170000 + + + EUB6SWP1Y + 0.0407 + 20081029-170000 + + + ESTRSWP12M + 0.0266 + 20081029-170000 + + + ESTRSWP15M + 0.0254 + 20081029-170000 + + + ESTRSWP18M + 0.0264 + 20081029-170000 + + + EUB6SWP2Y + 0.037 + 20081029-170000 + + + ESTRSWP2Y + 0.0272 + 20081029-170000 + + + EUB6SWP3Y + 0.0381 + 20081029-170000 + + + ESTRSWP3Y + 0.0302 + 20081029-170000 + + + EUB6SWP4Y + 0.0387 + 20081029-170000 + + + ESTRSWP4Y + 0.0325 + 20081029-170000 + + + EUB6SWP5Y + 0.0399 + 20081029-170000 + + + ESTRSWP5Y + 0.0342 + 20081029-170000 + + + EUB6SWP6Y + 0.0405 + 20081029-170000 + + + ESTRSWP6Y + 0.0349 + 20081029-170000 + + + EUB6SWP7Y + 0.0409 + 20081029-170000 + + + ESTRSWP7Y + 0.0364 + 20081029-170000 + + + EUB6SWP8Y + 0.0416 + 20081029-170000 + + + ESTRSWP8Y + 0.0377 + 20081029-170000 + + + EUB6SWP9Y + 0.0428 + 20081029-170000 + + + ESTRSWP9Y + 0.0382 + 20081029-170000 + + + EUB6SWP10Y + 0.0434 + 20081029-170000 + + + ESTRSWP10Y + 0.0397 + 20081029-170000 + + + EUB6SWP11Y + 0.0433 + 20081029-170000 + + + ESTRSWP11Y + 0.0399 + 20081029-170000 + + + EUB6SWP12Y + 0.044 + 20081029-170000 + + + ESTRSWP12Y + 0.04 + 20081029-170000 + + + EUB6SWP13Y + 0.0446 + 20081029-170000 + + + EUB6SWP14Y + 0.0444 + 20081029-170000 + + + EUB6SWP15Y + 0.0445 + 20081029-170000 + + + ESTRSWP15Y + 0.0407 + 20081029-170000 + + + EUB6SWP16Y + 0.0449 + 20081029-170000 + + + EUB6SWP17Y + 0.0443 + 20081029-170000 + + + EUB6SWP18Y + 0.0447 + 20081029-170000 + + + EUB6SWP19Y + 0.0441 + 20081029-170000 + + + EUB6SWP20Y + 0.0435 + 20081029-170000 + + + ESTRSWP20Y + 0.0408 + 20081029-170000 + + + EUB6SWP21Y + 0.0431 + 20081029-170000 + + + EUB6SWP22Y + 0.0432 + 20081029-170000 + + + EUB6SWP23Y + 0.0423 + 20081029-170000 + + + EUB6SWP24Y + 0.0426 + 20081029-170000 + + + EUB6SWP25Y + 0.0424 + 20081029-170000 + + + ESTRSWP25Y + 0.039 + 20081029-170000 + + + EUB6SWP26Y + 0.0416 + 20081029-170000 + + + EUB6SWP27Y + 0.041 + 20081029-170000 + + + EUB6SWP28Y + 0.0418 + 20081029-170000 + + + EUB6SWP29Y + 0.0409 + 20081029-170000 + + + EUB6SWP30Y + 0.0409 + 20081029-170000 + + + ESTRSWP30Y + 0.0379 + 20081029-170000 + + + EUB6SWP35Y + 0.0398 + 20081029-170000 + + + EUB6SWP40Y + 0.0402 + 20081029-170000 + + + EUB6SWP45Y + 0.0399 + 20081029-170000 + + + EUB6SWP50Y + 0.0395 + 20081029-170000 + + + EUB6SWP60Y + 0.039 + 20081029-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-30.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-30.xml new file mode 100644 index 000000000..0e2ec3815 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-30.xml @@ -0,0 +1,344 @@ + + + 20081030-170000 + + EUB6FIX6M + 0.0487 + 20081030-170000 + + + ESTRSWP3W + 0.0324 + 20081030-170000 + + + ESTRSWP1W + 0.0347 + 20081030-170000 + + + ESTRSWP2W + 0.0333 + 20081030-170000 + + + ESTRSWP1M + 0.0318 + 20081030-170000 + + + ESTRSWP2M + 0.0305 + 20081030-170000 + + + ESTRSWP3M + 0.0296 + 20081030-170000 + + + ESTRSWP4M + 0.0292 + 20081030-170000 + + + ESTRSWP5M + 0.0289 + 20081030-170000 + + + ESTRSWP6M + 0.0281 + 20081030-170000 + + + ESTRSWP7M + 0.0271 + 20081030-170000 + + + ESTRSWP8M + 0.027 + 20081030-170000 + + + ESTRSWP9M + 0.0268 + 20081030-170000 + + + ESTRSWP10M + 0.0263 + 20081030-170000 + + + ESTRSWP11M + 0.0256 + 20081030-170000 + + + EUB6SWP1Y + 0.0396 + 20081030-170000 + + + ESTRSWP12M + 0.0261 + 20081030-170000 + + + ESTRSWP15M + 0.0255 + 20081030-170000 + + + ESTRSWP18M + 0.0252 + 20081030-170000 + + + EUB6SWP2Y + 0.0365 + 20081030-170000 + + + ESTRSWP2Y + 0.0267 + 20081030-170000 + + + EUB6SWP3Y + 0.0377 + 20081030-170000 + + + ESTRSWP3Y + 0.0295 + 20081030-170000 + + + EUB6SWP4Y + 0.0381 + 20081030-170000 + + + ESTRSWP4Y + 0.0323 + 20081030-170000 + + + EUB6SWP5Y + 0.0394 + 20081030-170000 + + + ESTRSWP5Y + 0.033 + 20081030-170000 + + + EUB6SWP6Y + 0.0398 + 20081030-170000 + + + ESTRSWP6Y + 0.035 + 20081030-170000 + + + EUB6SWP7Y + 0.0411 + 20081030-170000 + + + ESTRSWP7Y + 0.0363 + 20081030-170000 + + + EUB6SWP8Y + 0.0418 + 20081030-170000 + + + ESTRSWP8Y + 0.0373 + 20081030-170000 + + + EUB6SWP9Y + 0.0428 + 20081030-170000 + + + ESTRSWP9Y + 0.0383 + 20081030-170000 + + + EUB6SWP10Y + 0.0434 + 20081030-170000 + + + ESTRSWP10Y + 0.0393 + 20081030-170000 + + + EUB6SWP11Y + 0.0441 + 20081030-170000 + + + ESTRSWP11Y + 0.0399 + 20081030-170000 + + + EUB6SWP12Y + 0.0444 + 20081030-170000 + + + ESTRSWP12Y + 0.0398 + 20081030-170000 + + + EUB6SWP13Y + 0.0443 + 20081030-170000 + + + EUB6SWP14Y + 0.0444 + 20081030-170000 + + + EUB6SWP15Y + 0.0445 + 20081030-170000 + + + ESTRSWP15Y + 0.0411 + 20081030-170000 + + + EUB6SWP16Y + 0.0446 + 20081030-170000 + + + EUB6SWP17Y + 0.044 + 20081030-170000 + + + EUB6SWP18Y + 0.0444 + 20081030-170000 + + + EUB6SWP19Y + 0.0436 + 20081030-170000 + + + EUB6SWP20Y + 0.0437 + 20081030-170000 + + + ESTRSWP20Y + 0.0399 + 20081030-170000 + + + EUB6SWP21Y + 0.0437 + 20081030-170000 + + + EUB6SWP22Y + 0.0426 + 20081030-170000 + + + EUB6SWP23Y + 0.0423 + 20081030-170000 + + + EUB6SWP24Y + 0.0419 + 20081030-170000 + + + EUB6SWP25Y + 0.0418 + 20081030-170000 + + + ESTRSWP25Y + 0.0389 + 20081030-170000 + + + EUB6SWP26Y + 0.0414 + 20081030-170000 + + + EUB6SWP27Y + 0.0417 + 20081030-170000 + + + EUB6SWP28Y + 0.0412 + 20081030-170000 + + + EUB6SWP29Y + 0.0413 + 20081030-170000 + + + EUB6SWP30Y + 0.0409 + 20081030-170000 + + + ESTRSWP30Y + 0.0378 + 20081030-170000 + + + EUB6SWP35Y + 0.0398 + 20081030-170000 + + + EUB6SWP40Y + 0.0397 + 20081030-170000 + + + EUB6SWP45Y + 0.0392 + 20081030-170000 + + + EUB6SWP50Y + 0.0389 + 20081030-170000 + + + EUB6SWP60Y + 0.0382 + 20081030-170000 + + diff --git a/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-31.xml b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-31.xml new file mode 100644 index 000000000..04565e55e --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-10-31.xml @@ -0,0 +1,344 @@ + + + 20081031-170000 + + EUB6FIX6M + 0.0479 + 20081031-170000 + + + ESTRSWP3W + 0.0319 + 20081031-170000 + + + ESTRSWP1W + 0.0348 + 20081031-170000 + + + ESTRSWP2W + 0.0329 + 20081031-170000 + + + ESTRSWP1M + 0.0313 + 20081031-170000 + + + ESTRSWP2M + 0.0298 + 20081031-170000 + + + ESTRSWP3M + 0.0296 + 20081031-170000 + + + ESTRSWP4M + 0.0284 + 20081031-170000 + + + ESTRSWP5M + 0.0281 + 20081031-170000 + + + ESTRSWP6M + 0.0279 + 20081031-170000 + + + ESTRSWP7M + 0.0277 + 20081031-170000 + + + ESTRSWP8M + 0.027 + 20081031-170000 + + + ESTRSWP9M + 0.0265 + 20081031-170000 + + + ESTRSWP10M + 0.0269 + 20081031-170000 + + + ESTRSWP11M + 0.0264 + 20081031-170000 + + + EUB6SWP1Y + 0.0402 + 20081031-170000 + + + ESTRSWP12M + 0.0263 + 20081031-170000 + + + ESTRSWP15M + 0.0263 + 20081031-170000 + + + ESTRSWP18M + 0.0262 + 20081031-170000 + + + EUB6SWP2Y + 0.0375 + 20081031-170000 + + + ESTRSWP2Y + 0.028 + 20081031-170000 + + + EUB6SWP3Y + 0.0382 + 20081031-170000 + + + ESTRSWP3Y + 0.0305 + 20081031-170000 + + + EUB6SWP4Y + 0.0392 + 20081031-170000 + + + ESTRSWP4Y + 0.0334 + 20081031-170000 + + + EUB6SWP5Y + 0.04 + 20081031-170000 + + + ESTRSWP5Y + 0.0346 + 20081031-170000 + + + EUB6SWP6Y + 0.0416 + 20081031-170000 + + + ESTRSWP6Y + 0.0357 + 20081031-170000 + + + EUB6SWP7Y + 0.0428 + 20081031-170000 + + + ESTRSWP7Y + 0.0375 + 20081031-170000 + + + EUB6SWP8Y + 0.0437 + 20081031-170000 + + + ESTRSWP8Y + 0.0381 + 20081031-170000 + + + EUB6SWP9Y + 0.0444 + 20081031-170000 + + + ESTRSWP9Y + 0.0392 + 20081031-170000 + + + EUB6SWP10Y + 0.0447 + 20081031-170000 + + + ESTRSWP10Y + 0.0402 + 20081031-170000 + + + EUB6SWP11Y + 0.0455 + 20081031-170000 + + + ESTRSWP11Y + 0.0414 + 20081031-170000 + + + EUB6SWP12Y + 0.0455 + 20081031-170000 + + + ESTRSWP12Y + 0.0416 + 20081031-170000 + + + EUB6SWP13Y + 0.0467 + 20081031-170000 + + + EUB6SWP14Y + 0.0462 + 20081031-170000 + + + EUB6SWP15Y + 0.0465 + 20081031-170000 + + + ESTRSWP15Y + 0.0426 + 20081031-170000 + + + EUB6SWP16Y + 0.0467 + 20081031-170000 + + + EUB6SWP17Y + 0.046 + 20081031-170000 + + + EUB6SWP18Y + 0.0458 + 20081031-170000 + + + EUB6SWP19Y + 0.0455 + 20081031-170000 + + + EUB6SWP20Y + 0.0458 + 20081031-170000 + + + ESTRSWP20Y + 0.0419 + 20081031-170000 + + + EUB6SWP21Y + 0.0452 + 20081031-170000 + + + EUB6SWP22Y + 0.0452 + 20081031-170000 + + + EUB6SWP23Y + 0.0447 + 20081031-170000 + + + EUB6SWP24Y + 0.0448 + 20081031-170000 + + + EUB6SWP25Y + 0.0437 + 20081031-170000 + + + ESTRSWP25Y + 0.0403 + 20081031-170000 + + + EUB6SWP26Y + 0.044 + 20081031-170000 + + + EUB6SWP27Y + 0.0437 + 20081031-170000 + + + EUB6SWP28Y + 0.0436 + 20081031-170000 + + + EUB6SWP29Y + 0.0435 + 20081031-170000 + + + EUB6SWP30Y + 0.0425 + 20081031-170000 + + + ESTRSWP30Y + 0.0396 + 20081031-170000 + + + EUB6SWP35Y + 0.0419 + 20081031-170000 + + + EUB6SWP40Y + 0.0414 + 20081031-170000 + + + EUB6SWP45Y + 0.0412 + 20081031-170000 + + + EUB6SWP50Y + 0.0413 + 20081031-170000 + + + EUB6SWP60Y + 0.0402 + 20081031-170000 + + From a0d76b548d4efb51c0bb5208d9083ed27881834e Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Wed, 27 Mar 2024 17:37:05 +0100 Subject: [PATCH 035/105] SDC-403, transform EventManagerLauncher to Spring Boot component, put configuration to separate Config class --- .../marketdata/generators/MarketDataGeneratorInterface.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorInterface.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorInterface.java index 551b97a7c..6355cc0d9 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorInterface.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorInterface.java @@ -4,6 +4,6 @@ public interface MarketDataGeneratorInterface { - public Observable asObservable(); + Observable asObservable(); -} +} \ No newline at end of file From db93752937f744754ccd9c65695d85fcf446efb8 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Wed, 27 Mar 2024 17:39:40 +0100 Subject: [PATCH 036/105] SDC-403, implemented MarketDataGeneratorScenarioList with given historical test XMLs. different cleanups --- .../MarketDataGeneratorScenarioList.java | 58 +++++++++++++++++-- .../MarketDataGeneratorWebsocket.java | 27 +++++---- 2 files changed, 68 insertions(+), 17 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java index 7dfb46435..a85aaef1d 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java @@ -1,18 +1,64 @@ package net.finmath.smartcontract.valuation.marketdata.generators; + import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.subjects.PublishSubject; import net.finmath.smartcontract.model.MarketDataList; +import net.finmath.smartcontract.product.xml.SDCXMLParser; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Service; +import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.util.List; +import java.util.Objects; +@Profile(value = {"dev", "test", "int", "default"}) +@Service public class MarketDataGeneratorScenarioList implements MarketDataGeneratorInterface { - public MarketDataGeneratorScenarioList(List scenarioList){ + private static final Logger logger = LoggerFactory.getLogger(MarketDataGeneratorScenarioList.class); + private Observable publishSubject; + private int counter = 0; + private final List files = List.of("marketdata_2008-05-02.xml", "marketdata_2008-05-05.xml", "marketdata_2008-05-06.xml", "marketdata_2008-05-07.xml", "marketdata_2008-05-08.xml", "marketdata_2008-05-09.xml", "marketdata_2008-05-12.xml", "marketdata_2008-05-13.xml", "marketdata_2008-05-14.xml", "marketdata_2008-05-15.xml", "marketdata_2008-05-16.xml", "marketdata_2008-05-19.xml", "marketdata_2008-05-20.xml", "marketdata_2008-05-21.xml", "marketdata_2008-05-22.xml", "marketdata_2008-05-23.xml", "marketdata_2008-05-26.xml", "marketdata_2008-05-27.xml", "marketdata_2008-05-28.xml", "marketdata_2008-05-29.xml", "marketdata_2008-05-30.xml", + "marketdata_2008-06-02.xml", "marketdata_2008-06-03.xml", "marketdata_2008-06-04.xml", "marketdata_2008-06-05.xml", "marketdata_2008-06-06.xml", "marketdata_2008-06-09.xml", "marketdata_2008-06-10.xml", "marketdata_2008-06-11.xml", "marketdata_2008-06-12.xml", "marketdata_2008-06-13.xml", "marketdata_2008-06-16.xml", "marketdata_2008-06-17.xml", "marketdata_2008-06-18.xml", "marketdata_2008-06-19.xml", "marketdata_2008-06-20.xml", "marketdata_2008-06-23.xml", "marketdata_2008-06-24.xml", "marketdata_2008-06-25.xml", "marketdata_2008-06-26.xml", "marketdata_2008-06-27.xml", "marketdata_2008-06-30.xml"); + + + /*public MarketDataGeneratorScenarioList(List scenarioList) { + publishSubject = PublishSubject.create(); + }*/ + + public MarketDataGeneratorScenarioList() { + publishSubject = PublishSubject.create(); + } + + @Override + public Observable asObservable() { + publishSubject = Observable.create(emitter -> { + emitter.onNext(getMarketDataCurve()); + emitter.onComplete(); + }); + + return this.publishSubject; + } + + private MarketDataList getMarketDataCurve() { + if (counter >= files.size()) counter = 0; + final String fileName = "net/finmath/smartcontract/valuation/historicalMarketData/" + files.get(counter); + + logger.info("counter: {}, file to retrieve: {}", counter, fileName); + + String marketDataXml; + try { + marketDataXml = new String(Objects.requireNonNull(MarketDataGeneratorScenarioList.class.getClassLoader().getResourceAsStream(fileName)).readAllBytes(), StandardCharsets.UTF_8); + } catch (IOException e) { + throw new RuntimeException(e); + } + counter++; + return SDCXMLParser.unmarshalXml(marketDataXml, MarketDataList.class); + } - } - @Override - public Observable asObservable() { - return null; - } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java index e75cc09af..af31a16a3 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java @@ -14,6 +14,8 @@ import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Service; import reactor.core.publisher.Flux; import reactor.core.publisher.Sinks; @@ -25,7 +27,9 @@ import java.time.format.DateTimeFormatter; import java.util.*; -public class MarketDataGeneratorWebsocket extends WebSocketAdapter implements MarketDataGeneratorInterface {// implements Callable { +@Profile("prod") +@Service +public class MarketDataGeneratorWebsocket extends WebSocketAdapter implements MarketDataGeneratorInterface {// implements Callable { private final BusinessdayCalendarExcludingTARGETHolidays bdCalendar = new BusinessdayCalendarExcludingTARGETHolidays(); private final JSONObject authJson; @@ -35,9 +39,9 @@ public class MarketDataGeneratorWebsocket extends WebSocketAdapter implements private final Set calibrationSpecs; private MarketDataList marketDataList; - final private PublishSubject publishSubject; + private final PublishSubject publishSubject; - final private Sinks.Many sink; + //final private Sinks.Many sink; boolean requestSent; @@ -48,7 +52,7 @@ public MarketDataGeneratorWebsocket(JSONObject authJson, String position, List> headers) throws Exception { System.out.println("WebSocket successfully connected!"); sendLoginRequest(websocket, authJson.getString("access_token"), true); - } + @Override public Observable asObservable() { return this.publishSubject; } - public Flux asFlux() {return sink.asFlux();} + //public Flux asFlux() {return sink.asFlux();} /** * Sends a close login stream message. Closing the login stream also closes and resets all data streams. @@ -84,6 +88,7 @@ public Observable asObservable() { public void closeStreamsAndLogoff(WebSocket webSocket) { String request = "{\"ID\":1, \"Type\": \"Close\", \"Domain\":\"Login\"}"; webSocket.sendText(request); + logger.info("WebSocket logged off"); } @@ -98,6 +103,8 @@ public void writeDataset(String importDir, MarketDataList s, boolean isOvernight public void onTextMessage(WebSocket websocket, String message) throws Exception { + System.out.println("message: " + message); + JsonNode responseJson = null; if (!message.isEmpty()) { @@ -141,8 +148,10 @@ public void onTextMessage(WebSocket websocket, String message) throws Exception if (this.allQuotesRetrieved()) { + logger.info("all quotes retrieved"); + logger.info(marketDataList.toString()); this.publishSubject.onNext(marketDataList); - this.sink.tryEmitNext(marketDataList); + //this.sink.tryEmitNext(marketDataList); this.reset(); requestSent = false; } @@ -166,8 +175,6 @@ private LocalDateTime adjustTimestampForOvernightFixing(LocalDateTime localDateT } return adjustedTime; - - } @@ -217,6 +224,4 @@ private String ricsToString() { } - - } \ No newline at end of file From 5dd2481eec011c8e90463fc92b8d52086a82e323 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Wed, 27 Mar 2024 17:44:28 +0100 Subject: [PATCH 037/105] SDC-403, code cleanup --- .../valuation/implementation/MarginCalculator.java | 2 -- .../marketdata/generators/MarketDataGeneratorScenarioList.java | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java index db97df720..fddc820b6 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java @@ -40,8 +40,6 @@ */ public class MarginCalculator { - private static final Logger logger = LoggerFactory.getLogger(MarginCalculator.class); - private final DoubleUnaryOperator rounding; public MarginCalculator(DoubleUnaryOperator rounding) {this.rounding = rounding;} diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java index a85aaef1d..31cdc9ab6 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java @@ -15,6 +15,7 @@ import java.util.List; import java.util.Objects; +@SuppressWarnings("java:S125") @Profile(value = {"dev", "test", "int", "default"}) @Service public class MarketDataGeneratorScenarioList implements MarketDataGeneratorInterface { From 19f85dedbf3261d82aa23025931a0ba2f84f1d4f Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Wed, 27 Mar 2024 18:16:40 +0100 Subject: [PATCH 038/105] SDC-403, MarketDataGeneratorScenarioList extended list of files --- .../valuation/marketdata/LaunchAGenerator.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java index 4475c11ec..0e2c6afee 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java @@ -27,9 +27,11 @@ public static void main(String[] args) throws Exception { List mdItemList = sdc.getMarketdataItemList(); /* Load connection properties*/ - String connectionPropertiesFile = ""; + //String connectionPropertiesFile = ""; + String connectionPropertiesFile = "./finmath-smart-derivative-contract/src/main/resources/refinitiv_connect.properties"; Properties properties = new Properties(); - properties.load(new FileInputStream(connectionPropertiesFile)); + properties.load(LaunchAGenerator.class.getClassLoader().getResourceAsStream("refinitiv_connect.properties")); + //properties.load(new FileInputStream(connectionPropertiesFile)); /* Init Websockect Connection*/ @@ -44,7 +46,7 @@ public static void main(String[] args) throws Exception { socket.connect(); /* Write Market Data to File */ - final Consumer marketDataWriter = new Consumer() { + final Consumer marketDataWriter = new Consumer<>() { @Override public void accept(MarketDataList s) throws Throwable { From b26cf8b3fc8eaecb5ba4a4538ba559cf2e5b1e67 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Wed, 27 Mar 2024 18:18:15 +0100 Subject: [PATCH 039/105] Revert "SDC-403, MarketDataGeneratorScenarioList extended list of files" This reverts commit 19f85dedbf3261d82aa23025931a0ba2f84f1d4f. --- .../valuation/marketdata/LaunchAGenerator.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java index 0e2c6afee..4475c11ec 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java @@ -27,11 +27,9 @@ public static void main(String[] args) throws Exception { List mdItemList = sdc.getMarketdataItemList(); /* Load connection properties*/ - //String connectionPropertiesFile = ""; - String connectionPropertiesFile = "./finmath-smart-derivative-contract/src/main/resources/refinitiv_connect.properties"; + String connectionPropertiesFile = ""; Properties properties = new Properties(); - properties.load(LaunchAGenerator.class.getClassLoader().getResourceAsStream("refinitiv_connect.properties")); - //properties.load(new FileInputStream(connectionPropertiesFile)); + properties.load(new FileInputStream(connectionPropertiesFile)); /* Init Websockect Connection*/ @@ -46,7 +44,7 @@ public static void main(String[] args) throws Exception { socket.connect(); /* Write Market Data to File */ - final Consumer marketDataWriter = new Consumer<>() { + final Consumer marketDataWriter = new Consumer() { @Override public void accept(MarketDataList s) throws Throwable { From b0e8dda9300144e09dfca1c8eee9baa936dd8029 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Wed, 27 Mar 2024 18:18:36 +0100 Subject: [PATCH 040/105] SDC-403, MarketDataGeneratorScenarioList extended list of files --- .../marketdata/generators/MarketDataGeneratorScenarioList.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java index 31cdc9ab6..9de41a20e 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java @@ -24,7 +24,8 @@ public class MarketDataGeneratorScenarioList implements MarketDataGeneratorInter private Observable publishSubject; private int counter = 0; private final List files = List.of("marketdata_2008-05-02.xml", "marketdata_2008-05-05.xml", "marketdata_2008-05-06.xml", "marketdata_2008-05-07.xml", "marketdata_2008-05-08.xml", "marketdata_2008-05-09.xml", "marketdata_2008-05-12.xml", "marketdata_2008-05-13.xml", "marketdata_2008-05-14.xml", "marketdata_2008-05-15.xml", "marketdata_2008-05-16.xml", "marketdata_2008-05-19.xml", "marketdata_2008-05-20.xml", "marketdata_2008-05-21.xml", "marketdata_2008-05-22.xml", "marketdata_2008-05-23.xml", "marketdata_2008-05-26.xml", "marketdata_2008-05-27.xml", "marketdata_2008-05-28.xml", "marketdata_2008-05-29.xml", "marketdata_2008-05-30.xml", - "marketdata_2008-06-02.xml", "marketdata_2008-06-03.xml", "marketdata_2008-06-04.xml", "marketdata_2008-06-05.xml", "marketdata_2008-06-06.xml", "marketdata_2008-06-09.xml", "marketdata_2008-06-10.xml", "marketdata_2008-06-11.xml", "marketdata_2008-06-12.xml", "marketdata_2008-06-13.xml", "marketdata_2008-06-16.xml", "marketdata_2008-06-17.xml", "marketdata_2008-06-18.xml", "marketdata_2008-06-19.xml", "marketdata_2008-06-20.xml", "marketdata_2008-06-23.xml", "marketdata_2008-06-24.xml", "marketdata_2008-06-25.xml", "marketdata_2008-06-26.xml", "marketdata_2008-06-27.xml", "marketdata_2008-06-30.xml"); + "marketdata_2008-06-02.xml", "marketdata_2008-06-03.xml", "marketdata_2008-06-04.xml", "marketdata_2008-06-05.xml", "marketdata_2008-06-06.xml", "marketdata_2008-06-09.xml", "marketdata_2008-06-10.xml", "marketdata_2008-06-11.xml", "marketdata_2008-06-12.xml", "marketdata_2008-06-13.xml", "marketdata_2008-06-16.xml", "marketdata_2008-06-17.xml", "marketdata_2008-06-18.xml", "marketdata_2008-06-19.xml", "marketdata_2008-06-20.xml", "marketdata_2008-06-23.xml", "marketdata_2008-06-24.xml", "marketdata_2008-06-25.xml", "marketdata_2008-06-26.xml", "marketdata_2008-06-27.xml", "marketdata_2008-06-30.xml", + "marketdata_2008-07-01.xml", "marketdata_2008-07-02.xml", "marketdata_2008-07-03.xml", "marketdata_2008-07-04.xml", "marketdata_2008-07-07.xml", "marketdata_2008-07-08.xml", "marketdata_2008-07-09.xml", "marketdata_2008-07-10.xml", "marketdata_2008-07-11.xml", "marketdata_2008-07-14.xml", "marketdata_2008-07-15.xml", "marketdata_2008-07-16.xml", "marketdata_2008-07-17.xml", "marketdata_2008-07-18.xml", "marketdata_2008-07-21.xml", "marketdata_2008-07-22.xml", "marketdata_2008-07-23.xml", "marketdata_2008-07-24.xml", "marketdata_2008-07-25.xml", "marketdata_2008-07-28.xml", "marketdata_2008-07-29.xml", "marketdata_2008-07-30.xml", "marketdata_2008-07-31.xml"); /*public MarketDataGeneratorScenarioList(List scenarioList) { From d285c2055c6f0777ec29b7edaaa0cfdd6b631ae3 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Thu, 28 Mar 2024 11:41:24 +0100 Subject: [PATCH 041/105] SDC-403, MarketDataGeneratorScenarioList extended list of files --- .../generators/MarketDataGeneratorScenarioList.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java index 9de41a20e..eca5f5c05 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java @@ -25,7 +25,10 @@ public class MarketDataGeneratorScenarioList implements MarketDataGeneratorInter private int counter = 0; private final List files = List.of("marketdata_2008-05-02.xml", "marketdata_2008-05-05.xml", "marketdata_2008-05-06.xml", "marketdata_2008-05-07.xml", "marketdata_2008-05-08.xml", "marketdata_2008-05-09.xml", "marketdata_2008-05-12.xml", "marketdata_2008-05-13.xml", "marketdata_2008-05-14.xml", "marketdata_2008-05-15.xml", "marketdata_2008-05-16.xml", "marketdata_2008-05-19.xml", "marketdata_2008-05-20.xml", "marketdata_2008-05-21.xml", "marketdata_2008-05-22.xml", "marketdata_2008-05-23.xml", "marketdata_2008-05-26.xml", "marketdata_2008-05-27.xml", "marketdata_2008-05-28.xml", "marketdata_2008-05-29.xml", "marketdata_2008-05-30.xml", "marketdata_2008-06-02.xml", "marketdata_2008-06-03.xml", "marketdata_2008-06-04.xml", "marketdata_2008-06-05.xml", "marketdata_2008-06-06.xml", "marketdata_2008-06-09.xml", "marketdata_2008-06-10.xml", "marketdata_2008-06-11.xml", "marketdata_2008-06-12.xml", "marketdata_2008-06-13.xml", "marketdata_2008-06-16.xml", "marketdata_2008-06-17.xml", "marketdata_2008-06-18.xml", "marketdata_2008-06-19.xml", "marketdata_2008-06-20.xml", "marketdata_2008-06-23.xml", "marketdata_2008-06-24.xml", "marketdata_2008-06-25.xml", "marketdata_2008-06-26.xml", "marketdata_2008-06-27.xml", "marketdata_2008-06-30.xml", - "marketdata_2008-07-01.xml", "marketdata_2008-07-02.xml", "marketdata_2008-07-03.xml", "marketdata_2008-07-04.xml", "marketdata_2008-07-07.xml", "marketdata_2008-07-08.xml", "marketdata_2008-07-09.xml", "marketdata_2008-07-10.xml", "marketdata_2008-07-11.xml", "marketdata_2008-07-14.xml", "marketdata_2008-07-15.xml", "marketdata_2008-07-16.xml", "marketdata_2008-07-17.xml", "marketdata_2008-07-18.xml", "marketdata_2008-07-21.xml", "marketdata_2008-07-22.xml", "marketdata_2008-07-23.xml", "marketdata_2008-07-24.xml", "marketdata_2008-07-25.xml", "marketdata_2008-07-28.xml", "marketdata_2008-07-29.xml", "marketdata_2008-07-30.xml", "marketdata_2008-07-31.xml"); + "marketdata_2008-07-01.xml", "marketdata_2008-07-02.xml", "marketdata_2008-07-03.xml", "marketdata_2008-07-04.xml", "marketdata_2008-07-07.xml", "marketdata_2008-07-08.xml", "marketdata_2008-07-09.xml", "marketdata_2008-07-10.xml", "marketdata_2008-07-11.xml", "marketdata_2008-07-14.xml", "marketdata_2008-07-15.xml", "marketdata_2008-07-16.xml", "marketdata_2008-07-17.xml", "marketdata_2008-07-18.xml", "marketdata_2008-07-21.xml", "marketdata_2008-07-22.xml", "marketdata_2008-07-23.xml", "marketdata_2008-07-24.xml", "marketdata_2008-07-25.xml", "marketdata_2008-07-28.xml", "marketdata_2008-07-29.xml", "marketdata_2008-07-30.xml", "marketdata_2008-07-31.xml", + "marketdata_2008-08-01.xml", "marketdata_2008-08-04.xml", "marketdata_2008-08-05.xml", "marketdata_2008-08-06.xml", "marketdata_2008-08-07.xml", "marketdata_2008-08-08.xml", "marketdata_2008-08-11.xml", "marketdata_2008-08-12.xml", "marketdata_2008-08-13.xml", "marketdata_2008-08-14.xml", "marketdata_2008-08-15.xml", "marketdata_2008-08-18.xml", "marketdata_2008-08-19.xml", "marketdata_2008-08-20.xml", "marketdata_2008-08-21.xml", "marketdata_2008-08-22.xml", "marketdata_2008-08-25.xml", "marketdata_2008-08-26.xml", "marketdata_2008-08-27.xml", "marketdata_2008-08-28.xml", "marketdata_2008-08-29.xml", + "marketdata_2008-09-01.xml", "marketdata_2008-09-02.xml", "marketdata_2008-09-03.xml", "marketdata_2008-09-04.xml", "marketdata_2008-09-05.xml", "marketdata_2008-09-08.xml", "marketdata_2008-09-09.xml", "marketdata_2008-09-10.xml", "marketdata_2008-09-11.xml", "marketdata_2008-09-12.xml", "marketdata_2008-09-15.xml", "marketdata_2008-09-16.xml", "marketdata_2008-09-17.xml", "marketdata_2008-09-18.xml", "marketdata_2008-09-19.xml", "marketdata_2008-09-22.xml", "marketdata_2008-09-23.xml", "marketdata_2008-09-24.xml", "marketdata_2008-09-25.xml", "marketdata_2008-09-26.xml", "marketdata_2008-09-29.xml", "marketdata_2008-09-30.xml", + "marketdata_2008-10-01.xml", "marketdata_2008-10-02.xml", "marketdata_2008-10-03.xml", "marketdata_2008-10-06.xml", "marketdata_2008-10-07.xml", "marketdata_2008-10-08.xml", "marketdata_2008-10-09.xml", "marketdata_2008-10-10.xml", "marketdata_2008-10-13.xml", "marketdata_2008-10-14.xml", "marketdata_2008-10-15.xml", "marketdata_2008-10-16.xml", "marketdata_2008-10-17.xml", "marketdata_2008-10-20.xml", "marketdata_2008-10-21.xml", "marketdata_2008-10-22.xml", "marketdata_2008-10-23.xml", "marketdata_2008-10-24.xml", "marketdata_2008-10-27.xml", "marketdata_2008-10-28.xml", "marketdata_2008-10-29.xml", "marketdata_2008-10-30.xml", "marketdata_2008-10-31.xml"); /*public MarketDataGeneratorScenarioList(List scenarioList) { From 8ffe4d7ec24968ca140db4a2bd1a5f971f335155 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Thu, 28 Mar 2024 13:50:24 +0100 Subject: [PATCH 042/105] SDC-403, reformat Settlement class --- .../smartcontract/settlement/Settlement.java | 218 +++++++++--------- 1 file changed, 109 insertions(+), 109 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/settlement/Settlement.java b/src/main/java/net/finmath/smartcontract/settlement/Settlement.java index 8f63b3435..3b1b69b8d 100644 --- a/src/main/java/net/finmath/smartcontract/settlement/Settlement.java +++ b/src/main/java/net/finmath/smartcontract/settlement/Settlement.java @@ -23,154 +23,154 @@ */ @XmlRootElement @XmlType(propOrder = {"tradeId", "settlementType", "currency", "marginValue", - "marginLimits", "settlementTime", "settlementValue", "settlementValuePrevious", - "settlementTimeNext", "settlementValueNext", "marketData"}) + "marginLimits", "settlementTime", "settlementValue", "settlementValuePrevious", + "settlementTimeNext", "settlementValueNext", "marketData"}) public class Settlement { - public Settlement() { - } + public Settlement() { + } - public enum SettlementType { - INITIAL, - REGULAR, - TERMINAL - } + public enum SettlementType { + INITIAL, + REGULAR, + TERMINAL + } - private String tradeId; + private String tradeId; - private SettlementType settlementType; + private SettlementType settlementType; - private String currency; + private String currency; - private BigDecimal marginValue; + private BigDecimal marginValue; - private List marginLimits; + private List marginLimits; - /// V(T1,M1) + /// V(T1,M1) - private ZonedDateTime settlementTime; + private ZonedDateTime settlementTime; - private BigDecimal settlementValue; + private BigDecimal settlementValue; - /// V(T1,M0) + /// V(T1,M0) - private BigDecimal settlementValuePrevious; + private BigDecimal settlementValuePrevious; - /// V(T2,M1) - indicative + /// V(T2,M1) - indicative - private ZonedDateTime settlementTimeNext; + private ZonedDateTime settlementTimeNext; - private BigDecimal settlementValueNext; + private BigDecimal settlementValueNext; - private MarketDataList marketData; + private MarketDataList marketData; - // Custom additional information (e.g. risk figures or szenario values) + // Custom additional information (e.g. risk figures or szenario values) - private Map info; + private Map info; - public String getTradeId() { - return tradeId; - } + public String getTradeId() { + return tradeId; + } - public void setTradeId(String tradeId) { - this.tradeId = tradeId; - } + public void setTradeId(String tradeId) { + this.tradeId = tradeId; + } - public SettlementType getSettlementType() { - return settlementType; - } + public SettlementType getSettlementType() { + return settlementType; + } - public void setSettlementType(SettlementType settlementType) { - this.settlementType = settlementType; - } + public void setSettlementType(SettlementType settlementType) { + this.settlementType = settlementType; + } - public String getCurrency() { - return currency; - } + public String getCurrency() { + return currency; + } - public void setCurrency(String currency) { - this.currency = currency; - } + public void setCurrency(String currency) { + this.currency = currency; + } - public BigDecimal getMarginValue() { - return marginValue; - } + public BigDecimal getMarginValue() { + return marginValue; + } - public void setMarginValue(BigDecimal marginValue) { - this.marginValue = marginValue; - } + public void setMarginValue(BigDecimal marginValue) { + this.marginValue = marginValue; + } - public List getMarginLimits() { - return marginLimits; - } + public List getMarginLimits() { + return marginLimits; + } - public void setMarginLimits(List marginLimits) { - this.marginLimits = marginLimits; - } + public void setMarginLimits(List marginLimits) { + this.marginLimits = marginLimits; + } - @XmlJavaTypeAdapter(ZonedDateTimeAdapter.class) - public ZonedDateTime getSettlementTime() { - return settlementTime; - } + @XmlJavaTypeAdapter(ZonedDateTimeAdapter.class) + public ZonedDateTime getSettlementTime() { + return settlementTime; + } - public void setSettlementTime(ZonedDateTime settlementTime) { - this.settlementTime = settlementTime; - } + public void setSettlementTime(ZonedDateTime settlementTime) { + this.settlementTime = settlementTime; + } - public MarketDataList getMarketData() { - return marketData; - } + public MarketDataList getMarketData() { + return marketData; + } - public void setMarketData(MarketDataList marketData) { - this.marketData = marketData; - } + public void setMarketData(MarketDataList marketData) { + this.marketData = marketData; + } - public BigDecimal getSettlementValue() { - return settlementValue; - } + public BigDecimal getSettlementValue() { + return settlementValue; + } - public void setSettlementValue(BigDecimal settlementValue) { - this.settlementValue = settlementValue; - } + public void setSettlementValue(BigDecimal settlementValue) { + this.settlementValue = settlementValue; + } - public BigDecimal getSettlementValuePrevious() { - return settlementValuePrevious; - } + public BigDecimal getSettlementValuePrevious() { + return settlementValuePrevious; + } - public void setSettlementValuePrevious(BigDecimal settlementValuePrevious) { - this.settlementValuePrevious = settlementValuePrevious; - } + public void setSettlementValuePrevious(BigDecimal settlementValuePrevious) { + this.settlementValuePrevious = settlementValuePrevious; + } - public Settlement(String tradeId, SettlementType settlementType, String currency, BigDecimal marginValue, List marginLimits, ZonedDateTime settlementTime, MarketDataList marketData, BigDecimal settlementValue, BigDecimal settlementValuePrevious, ZonedDateTime settlementTimeNext, BigDecimal settlementValueNext) { - this.tradeId = tradeId; - this.settlementType = settlementType; - this.currency = currency; - this.marginValue = marginValue; - this.marginLimits = marginLimits; - this.settlementTime = settlementTime; - this.marketData = marketData; - this.settlementValue = settlementValue; - this.settlementValuePrevious = settlementValuePrevious; - this.settlementTimeNext = settlementTimeNext; - this.settlementValueNext = settlementValueNext; - } + public Settlement(String tradeId, SettlementType settlementType, String currency, BigDecimal marginValue, List marginLimits, ZonedDateTime settlementTime, MarketDataList marketData, BigDecimal settlementValue, BigDecimal settlementValuePrevious, ZonedDateTime settlementTimeNext, BigDecimal settlementValueNext) { + this.tradeId = tradeId; + this.settlementType = settlementType; + this.currency = currency; + this.marginValue = marginValue; + this.marginLimits = marginLimits; + this.settlementTime = settlementTime; + this.marketData = marketData; + this.settlementValue = settlementValue; + this.settlementValuePrevious = settlementValuePrevious; + this.settlementTimeNext = settlementTimeNext; + this.settlementValueNext = settlementValueNext; + } - @XmlJavaTypeAdapter(ZonedDateTimeAdapter.class) - public ZonedDateTime getSettlementTimeNext() { - return settlementTimeNext; - } - - public void setSettlementTimeNext(ZonedDateTime settlementTimeNext) { - this.settlementTimeNext = settlementTimeNext; - } - - public BigDecimal getSettlementValueNext() { - return settlementValueNext; - } - - public void setSettlementValueNext(BigDecimal settlementValueNext) { - this.settlementValueNext = settlementValueNext; - } + @XmlJavaTypeAdapter(ZonedDateTimeAdapter.class) + public ZonedDateTime getSettlementTimeNext() { + return settlementTimeNext; + } + + public void setSettlementTimeNext(ZonedDateTime settlementTimeNext) { + this.settlementTimeNext = settlementTimeNext; + } + + public BigDecimal getSettlementValueNext() { + return settlementValueNext; + } + + public void setSettlementValueNext(BigDecimal settlementValueNext) { + this.settlementValueNext = settlementValueNext; + } } From cbb3240f4fb2aecd0b68d1be1de110e22860d15c Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Thu, 28 Mar 2024 13:51:27 +0100 Subject: [PATCH 043/105] NO_ISSUE, code cleanups --- .../ConditionalSettlementCalculator.java | 2 -- .../curvecalibration/CalibrationDataItem.java | 7 ++--- .../curvecalibration/CalibrationDataset.java | 20 ++++++------ .../CalibrationParserDataItems.java | 31 ++++++------------- .../CalibrationSpecProviderOis.java | 4 ++- .../BasicAuthWebSecurityConfiguration.java | 3 +- 6 files changed, 27 insertions(+), 40 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/valuation/implementation/reactive/ConditionalSettlementCalculator.java b/src/main/java/net/finmath/smartcontract/valuation/implementation/reactive/ConditionalSettlementCalculator.java index 57d74e681..cb5f101bb 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/implementation/reactive/ConditionalSettlementCalculator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/implementation/reactive/ConditionalSettlementCalculator.java @@ -1,13 +1,11 @@ package net.finmath.smartcontract.valuation.implementation.reactive; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataset; -import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationParserDataItems; import net.finmath.smartcontract.model.ValueResult; import net.finmath.smartcontract.valuation.implementation.MarginCalculator; import java.io.Serializable; import java.math.BigDecimal; -import java.time.format.DateTimeFormatter; import java.util.function.Function; public class ConditionalSettlementCalculator implements Function, Serializable { diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataItem.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataItem.java index 7468396e7..2907a7718 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataItem.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataItem.java @@ -7,8 +7,9 @@ import java.util.List; import java.util.Objects; +@SuppressWarnings("java:S125") public class CalibrationDataItem { - private static final String regex = "((?<=[a-zA-Z])(?=[0-9]))|((?<=[0-9])(?=[a-zA-Z]))"; + private static final String REGEX = "((?<=[a-zA-Z])(?=\\d))|((?<=\\d)(?=[a-zA-Z]))"; public static class Spec { @@ -22,10 +23,8 @@ public Spec(final String key, final String curveName, final String productName, this.curveName = curveName; this.productName = productName; this.maturity = maturity; - } - public String getKey() {return key;} public String getCurveName() { @@ -103,7 +102,7 @@ public Double getQuote() { public Integer getDaysToMaturity() { - List list = Arrays.asList(getSpec().getMaturity().split(regex)); + List list = Arrays.asList(getSpec().getMaturity().split(REGEX)); int nTimeUnits = Integer.parseInt(list.get(0)); String timeUnitKey = list.get(1); if (timeUnitKey.equals("D")) diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java index 240a2777b..c0afc7cb5 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java @@ -10,6 +10,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; +@SuppressWarnings("java:S125") /** * IR Market Data Scenario Class holds a SecnarioDate an a Map containing CurveData * @@ -17,15 +18,15 @@ */ public class CalibrationDataset { + private static final String FIXING = "Fixing"; LocalDateTime scenarioDate; Set calibrationDataItems; Set fixingDataItems; public CalibrationDataset(final Set curveDataPointSet, final LocalDateTime scenarioDate) { this.scenarioDate = scenarioDate; - this.fixingDataItems = curveDataPointSet.stream().filter(dataItem -> dataItem.getProductName().equals("Fixing")).sorted(Comparator.comparing(CalibrationDataItem::getDate)).collect(Collectors.toCollection(LinkedHashSet::new)); - this.calibrationDataItems = curveDataPointSet.stream().filter(dataItem -> !dataItem.getProductName().equals("Fixing")).sorted(Comparator.comparing(CalibrationDataItem::getDaysToMaturity)).collect(Collectors.toCollection(LinkedHashSet::new)); - + this.fixingDataItems = curveDataPointSet.stream().filter(dataItem -> dataItem.getProductName().equals(FIXING)).sorted(Comparator.comparing(CalibrationDataItem::getDate)).collect(Collectors.toCollection(LinkedHashSet::new)); + this.calibrationDataItems = curveDataPointSet.stream().filter(dataItem -> !dataItem.getProductName().equals(FIXING)).sorted(Comparator.comparing(CalibrationDataItem::getDaysToMaturity)).collect(Collectors.toCollection(LinkedHashSet::new)); } public CalibrationDataset getScaled(double scaleFactor) { @@ -50,7 +51,7 @@ public CalibrationDataset getClonedFixingsAdded(Set newFixi clone.addAll(this.calibrationDataItems); clone.addAll(this.fixingDataItems); newFixingDataItems.stream().forEach(newFixing -> { - if (newFixing.getProductName().equals("Fixing")) { + if (newFixing.getProductName().equals(FIXING)) { if (!this.fixingDataItems.stream().filter(fixing -> fixing.getCurveName().equals(newFixing.getCurveName()) && fixing.getDate().equals(newFixing.getDate())).findAny().isPresent()) clone.add(newFixing); } @@ -58,9 +59,9 @@ public CalibrationDataset getClonedFixingsAdded(Set newFixi return new CalibrationDataset(clone, this.scenarioDate); } - public MarketDataList toMarketDataList(){ - List marketDataPointList = calibrationDataItems.stream().map(item->new MarketDataPoint(item.getSpec().getKey(), item.getQuote(), item.getDateTime())).toList(); - List fixings = fixingDataItems.stream().map(item->new MarketDataPoint(item.getSpec().getKey(), item.getQuote(), item.getDateTime())).toList(); + public MarketDataList toMarketDataList() { + List marketDataPointList = calibrationDataItems.stream().map(item -> new MarketDataPoint(item.getSpec().getKey(), item.getQuote(), item.getDateTime())).toList(); + List fixings = fixingDataItems.stream().map(item -> new MarketDataPoint(item.getSpec().getKey(), item.getQuote(), item.getDateTime())).toList(); MarketDataList marketDataList = new MarketDataList(); marketDataPointList.forEach(marketDataList::add); fixings.forEach(marketDataList::add); @@ -95,8 +96,7 @@ public String serializeToJson() { nestedMap.get(date).get(fixingKey).get(item.getSpec().getCurveName()).get(item.getSpec().getProductName()).put(item.getDateString(), item.getQuote()); /*Date is mapped to Fixing*/ } try { - String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(nestedMap); - return json; + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(nestedMap); } catch (Exception e) { return null; } @@ -114,7 +114,7 @@ public String serializeToJson() { public Stream getDataAsCalibrationDataPointStream(final CalibrationParser parser) { // TODO There are possilby items that have maturity 0D. These are filteres out here. TODO - check why items with maturity 0D occure. /* Return only calibraiton specs EXCEPT Past Fixings and spot data */ - return parser.parse(calibrationDataItems.stream().filter(dataItem -> !dataItem.getProductName().equals("Fixing") && !dataItem.getProductName().equals("Deposit") && !dataItem.getSpec().getMaturity().equals("0D"))); + return parser.parse(calibrationDataItems.stream().filter(dataItem -> !dataItem.getProductName().equals(FIXING) && !dataItem.getProductName().equals("Deposit") && !dataItem.getSpec().getMaturity().equals("0D"))); } public Set getDataPoints() { diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java index cf19a6f18..d401a386a 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java @@ -1,14 +1,11 @@ package net.finmath.smartcontract.valuation.marketdata.curvecalibration; import com.fasterxml.jackson.databind.ObjectMapper; -import jakarta.xml.bind.JAXBContext; -import jakarta.xml.bind.Unmarshaller; import net.finmath.smartcontract.model.MarketDataList; import net.finmath.smartcontract.product.xml.SDCXMLParser; import org.slf4j.LoggerFactory; import java.io.IOException; -import java.io.StringReader; import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets; import java.time.LocalDate; @@ -79,7 +76,7 @@ public static List getScenariosFromJsonFile(final String fil try { content = new String(CalibrationParserDataItems.class.getResourceAsStream(fileName).readAllBytes(), StandardCharsets.UTF_8); } catch (IOException e) { - System.out.println("Please provide the market data file " + fileName); + logger.error("Please provide the market data file {}", fileName); throw e; } @@ -96,7 +93,7 @@ public static List getScenariosFromJsonFile(final String fil * @throws IOException File not found * @throws UnsupportedEncodingException UnsupportedEncodingException */ - public static List getScenariosFromJsonString(final String jsonString) throws UnsupportedEncodingException, IOException { + public static List getScenariosFromJsonString(final String jsonString) throws IOException { final String content; content = jsonString; @@ -104,14 +101,12 @@ public static List getScenariosFromJsonString(final String j } - public static CalibrationDataset getCalibrationDataSetFromXML(final String xmlString, List dataSpecs) throws Exception { - StringReader reader = new StringReader(xmlString); - JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); + public static CalibrationDataset getCalibrationDataSetFromXML(final String xmlString, List dataSpecs) { MarketDataList marketDataList = SDCXMLParser.unmarshalXml(xmlString, MarketDataList.class); Set calibrationDataItems = new LinkedHashSet<>(); - dataSpecs.stream().forEach(spec-> { + dataSpecs.forEach(spec-> { /* Can be more than one, if we have data points of type fixing*/ Set calibrationDataItemSet = marketDataList.getPoints().stream().filter(marketDataPoint -> marketDataPoint.getId().equals(spec.getKey())).map(point-> new CalibrationDataItem(spec, point.getValue(), point.getTimeStamp())).collect(Collectors.toSet()); calibrationDataItems.addAll(calibrationDataItemSet); @@ -120,11 +115,7 @@ public static CalibrationDataset getCalibrationDataSetFromXML(final String xmlS if(calibrationDataItems.isEmpty()) throw new RuntimeException("No calibration items detected."); - CalibrationDataset set = new CalibrationDataset(calibrationDataItems, marketDataList.getRequestTimeStamp()); - - - - return set; + return new CalibrationDataset(calibrationDataItems, marketDataList.getRequestTimeStamp()); } /** @@ -150,7 +141,7 @@ private static final List getScenariosFromJsonContent(final final ObjectMapper mapper = new ObjectMapper(); final Map>>>> timeSeriesDatamap = mapper.readValue(content, new LinkedHashMap>>>>().getClass()); - final List scenarioList = timeSeriesDatamap.entrySet().stream() + return timeSeriesDatamap.entrySet().stream() .map( scenarioData -> { final String timeStampStr = scenarioData.getKey(); @@ -165,9 +156,7 @@ private static final List getScenariosFromJsonContent(final return scenario; }) .sorted((scenario1, scenario2) -> scenario1.getDate().compareTo(scenario2.getDate())) - .collect(Collectors.toList()); - - return scenarioList; + .toList(); } private static LocalDateTime parseTimestampString(String timeStampString) { @@ -188,19 +177,18 @@ private static LocalDateTime parseTimestampString(String timeStampString) { private static Set getCalibrationDataItemSet(final String curveKey, final Map> typeCurveMap, final LocalDateTime timestamp) { - Set datapoints = typeCurveMap.entrySet().stream().flatMap(entry -> entry.getValue().entrySet().stream().map( + return typeCurveMap.entrySet().stream().flatMap(entry -> entry.getValue().entrySet().stream().map( curvePointEntry -> { String specKey = curveKey + "_" + entry.getKey() + "_" + curvePointEntry.getKey(); CalibrationDataItem.Spec spec = new CalibrationDataItem.Spec(specKey, curveKey, entry.getKey(), curvePointEntry.getKey()); CalibrationDataItem dataItem = new CalibrationDataItem(spec, curvePointEntry.getValue(), timestamp); return dataItem; })).collect(Collectors.toCollection(LinkedHashSet::new)); - return datapoints; } private static Set getFixingDataItemSet(final String curveKey, final Map> typeCurveMap, final LocalDateTime timestamp) { - Set datapoints = typeCurveMap.entrySet().stream().flatMap(entry -> entry.getValue().entrySet().stream().map( + return typeCurveMap.entrySet().stream().flatMap(entry -> entry.getValue().entrySet().stream().map( curvePointEntry -> { LocalDate fixingDate = LocalDate.parse(curvePointEntry.getKey(), DateTimeFormatter.ofPattern("yyyy-MM-dd")); String specKey = curveKey + "_" + entry.getKey() + "_" + curvePointEntry.getKey(); @@ -208,7 +196,6 @@ private static Set getFixingDataItemSet(final String curveK CalibrationDataItem dataItem = new CalibrationDataItem(spec, curvePointEntry.getValue(), fixingDate.atStartOfDay()); return dataItem; })).collect(Collectors.toCollection(LinkedHashSet::new)); - return datapoints; } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationSpecProviderOis.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationSpecProviderOis.java index 46131cfd0..d0bab102f 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationSpecProviderOis.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationSpecProviderOis.java @@ -5,6 +5,8 @@ import net.finmath.time.ScheduleGenerator; import net.finmath.time.businessdaycalendar.BusinessdayCalendarExcludingTARGETHolidays; +import static net.finmath.smartcontract.valuation.marketdata.curvecalibration.Calibrator.DISCOUNT_EUR_OIS; + /** * A calibration spec provider for OIS swaps. * @@ -29,6 +31,6 @@ public CalibratedCurves.CalibrationSpec getCalibrationSpec(final CalibrationCont final Schedule scheduleInterfacePay = ScheduleGenerator.createScheduleFromConventions(ctx.getReferenceDate(), 2, "0D", maturityLabel, frequency, "act/360", "first", "modified_following", new BusinessdayCalendarExcludingTARGETHolidays(), 0, 1); final double calibrationTime = scheduleInterfaceRec.getPayment(scheduleInterfaceRec.getNumberOfPeriods() - 1); - return new CalibratedCurves.CalibrationSpec(String.format("EUR-OIS-%1$s", maturityLabel), "Swap", scheduleInterfaceRec, "forward-EUR-OIS", 0.0, "discount-EUR-OIS", scheduleInterfacePay, "", swapRate, "discount-EUR-OIS", "discount-EUR-OIS", calibrationTime); + return new CalibratedCurves.CalibrationSpec(String.format("EUR-OIS-%1$s", maturityLabel), "Swap", scheduleInterfaceRec, "forward-EUR-OIS", 0.0, DISCOUNT_EUR_OIS, scheduleInterfacePay, "", swapRate, DISCOUNT_EUR_OIS, DISCOUNT_EUR_OIS, calibrationTime); } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/config/BasicAuthWebSecurityConfiguration.java b/src/main/java/net/finmath/smartcontract/valuation/service/config/BasicAuthWebSecurityConfiguration.java index d7f9567e4..9a44a1802 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/config/BasicAuthWebSecurityConfiguration.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/config/BasicAuthWebSecurityConfiguration.java @@ -51,6 +51,7 @@ public WebMvcConfigurer corsConfigurer() { logger.info("CORS filter has been loaded."); return new WebMvcConfigurer() { + @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/editor/**").allowedOrigins("http://localhost:4200", serviceUrl); // localhost:4200 is the angular dev server } @@ -71,7 +72,7 @@ public InMemoryUserDetailsManager userDetailsService(ApplicationProperties appli */ private List buildUserDetailsList(ApplicationProperties applicationProperties) { List userDetailsList = new ArrayList<>(); - applicationProperties.getUsers().forEach((sdcUser) -> userDetailsList.add(User + applicationProperties.getUsers().forEach(sdcUser -> userDetailsList.add(User .withUsername(sdcUser.getUsername()) .password("{noop}" + sdcUser.getPassword()) .roles(sdcUser.getRole()) From 7da03baad2a555a829780eb7e727eb745414b918 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Thu, 28 Mar 2024 13:52:17 +0100 Subject: [PATCH 044/105] SDC-403, reformat Settlement class --- .../smartcontract/settlement/Settlement.java | 218 +++++++++--------- 1 file changed, 109 insertions(+), 109 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/settlement/Settlement.java b/src/main/java/net/finmath/smartcontract/settlement/Settlement.java index 8f63b3435..3b1b69b8d 100644 --- a/src/main/java/net/finmath/smartcontract/settlement/Settlement.java +++ b/src/main/java/net/finmath/smartcontract/settlement/Settlement.java @@ -23,154 +23,154 @@ */ @XmlRootElement @XmlType(propOrder = {"tradeId", "settlementType", "currency", "marginValue", - "marginLimits", "settlementTime", "settlementValue", "settlementValuePrevious", - "settlementTimeNext", "settlementValueNext", "marketData"}) + "marginLimits", "settlementTime", "settlementValue", "settlementValuePrevious", + "settlementTimeNext", "settlementValueNext", "marketData"}) public class Settlement { - public Settlement() { - } + public Settlement() { + } - public enum SettlementType { - INITIAL, - REGULAR, - TERMINAL - } + public enum SettlementType { + INITIAL, + REGULAR, + TERMINAL + } - private String tradeId; + private String tradeId; - private SettlementType settlementType; + private SettlementType settlementType; - private String currency; + private String currency; - private BigDecimal marginValue; + private BigDecimal marginValue; - private List marginLimits; + private List marginLimits; - /// V(T1,M1) + /// V(T1,M1) - private ZonedDateTime settlementTime; + private ZonedDateTime settlementTime; - private BigDecimal settlementValue; + private BigDecimal settlementValue; - /// V(T1,M0) + /// V(T1,M0) - private BigDecimal settlementValuePrevious; + private BigDecimal settlementValuePrevious; - /// V(T2,M1) - indicative + /// V(T2,M1) - indicative - private ZonedDateTime settlementTimeNext; + private ZonedDateTime settlementTimeNext; - private BigDecimal settlementValueNext; + private BigDecimal settlementValueNext; - private MarketDataList marketData; + private MarketDataList marketData; - // Custom additional information (e.g. risk figures or szenario values) + // Custom additional information (e.g. risk figures or szenario values) - private Map info; + private Map info; - public String getTradeId() { - return tradeId; - } + public String getTradeId() { + return tradeId; + } - public void setTradeId(String tradeId) { - this.tradeId = tradeId; - } + public void setTradeId(String tradeId) { + this.tradeId = tradeId; + } - public SettlementType getSettlementType() { - return settlementType; - } + public SettlementType getSettlementType() { + return settlementType; + } - public void setSettlementType(SettlementType settlementType) { - this.settlementType = settlementType; - } + public void setSettlementType(SettlementType settlementType) { + this.settlementType = settlementType; + } - public String getCurrency() { - return currency; - } + public String getCurrency() { + return currency; + } - public void setCurrency(String currency) { - this.currency = currency; - } + public void setCurrency(String currency) { + this.currency = currency; + } - public BigDecimal getMarginValue() { - return marginValue; - } + public BigDecimal getMarginValue() { + return marginValue; + } - public void setMarginValue(BigDecimal marginValue) { - this.marginValue = marginValue; - } + public void setMarginValue(BigDecimal marginValue) { + this.marginValue = marginValue; + } - public List getMarginLimits() { - return marginLimits; - } + public List getMarginLimits() { + return marginLimits; + } - public void setMarginLimits(List marginLimits) { - this.marginLimits = marginLimits; - } + public void setMarginLimits(List marginLimits) { + this.marginLimits = marginLimits; + } - @XmlJavaTypeAdapter(ZonedDateTimeAdapter.class) - public ZonedDateTime getSettlementTime() { - return settlementTime; - } + @XmlJavaTypeAdapter(ZonedDateTimeAdapter.class) + public ZonedDateTime getSettlementTime() { + return settlementTime; + } - public void setSettlementTime(ZonedDateTime settlementTime) { - this.settlementTime = settlementTime; - } + public void setSettlementTime(ZonedDateTime settlementTime) { + this.settlementTime = settlementTime; + } - public MarketDataList getMarketData() { - return marketData; - } + public MarketDataList getMarketData() { + return marketData; + } - public void setMarketData(MarketDataList marketData) { - this.marketData = marketData; - } + public void setMarketData(MarketDataList marketData) { + this.marketData = marketData; + } - public BigDecimal getSettlementValue() { - return settlementValue; - } + public BigDecimal getSettlementValue() { + return settlementValue; + } - public void setSettlementValue(BigDecimal settlementValue) { - this.settlementValue = settlementValue; - } + public void setSettlementValue(BigDecimal settlementValue) { + this.settlementValue = settlementValue; + } - public BigDecimal getSettlementValuePrevious() { - return settlementValuePrevious; - } + public BigDecimal getSettlementValuePrevious() { + return settlementValuePrevious; + } - public void setSettlementValuePrevious(BigDecimal settlementValuePrevious) { - this.settlementValuePrevious = settlementValuePrevious; - } + public void setSettlementValuePrevious(BigDecimal settlementValuePrevious) { + this.settlementValuePrevious = settlementValuePrevious; + } - public Settlement(String tradeId, SettlementType settlementType, String currency, BigDecimal marginValue, List marginLimits, ZonedDateTime settlementTime, MarketDataList marketData, BigDecimal settlementValue, BigDecimal settlementValuePrevious, ZonedDateTime settlementTimeNext, BigDecimal settlementValueNext) { - this.tradeId = tradeId; - this.settlementType = settlementType; - this.currency = currency; - this.marginValue = marginValue; - this.marginLimits = marginLimits; - this.settlementTime = settlementTime; - this.marketData = marketData; - this.settlementValue = settlementValue; - this.settlementValuePrevious = settlementValuePrevious; - this.settlementTimeNext = settlementTimeNext; - this.settlementValueNext = settlementValueNext; - } + public Settlement(String tradeId, SettlementType settlementType, String currency, BigDecimal marginValue, List marginLimits, ZonedDateTime settlementTime, MarketDataList marketData, BigDecimal settlementValue, BigDecimal settlementValuePrevious, ZonedDateTime settlementTimeNext, BigDecimal settlementValueNext) { + this.tradeId = tradeId; + this.settlementType = settlementType; + this.currency = currency; + this.marginValue = marginValue; + this.marginLimits = marginLimits; + this.settlementTime = settlementTime; + this.marketData = marketData; + this.settlementValue = settlementValue; + this.settlementValuePrevious = settlementValuePrevious; + this.settlementTimeNext = settlementTimeNext; + this.settlementValueNext = settlementValueNext; + } - @XmlJavaTypeAdapter(ZonedDateTimeAdapter.class) - public ZonedDateTime getSettlementTimeNext() { - return settlementTimeNext; - } - - public void setSettlementTimeNext(ZonedDateTime settlementTimeNext) { - this.settlementTimeNext = settlementTimeNext; - } - - public BigDecimal getSettlementValueNext() { - return settlementValueNext; - } - - public void setSettlementValueNext(BigDecimal settlementValueNext) { - this.settlementValueNext = settlementValueNext; - } + @XmlJavaTypeAdapter(ZonedDateTimeAdapter.class) + public ZonedDateTime getSettlementTimeNext() { + return settlementTimeNext; + } + + public void setSettlementTimeNext(ZonedDateTime settlementTimeNext) { + this.settlementTimeNext = settlementTimeNext; + } + + public BigDecimal getSettlementValueNext() { + return settlementValueNext; + } + + public void setSettlementValueNext(BigDecimal settlementValueNext) { + this.settlementValueNext = settlementValueNext; + } } From 4a0a8bbffb515cf4755c151795e286eb3e40ad55 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Thu, 28 Mar 2024 14:01:25 +0100 Subject: [PATCH 045/105] SDC-403, reformat MarketDataGeneratorScenarioList class --- .../MarketDataGeneratorScenarioList.java | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java index eca5f5c05..dc61cfc57 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java @@ -20,50 +20,50 @@ @Service public class MarketDataGeneratorScenarioList implements MarketDataGeneratorInterface { - private static final Logger logger = LoggerFactory.getLogger(MarketDataGeneratorScenarioList.class); - private Observable publishSubject; - private int counter = 0; - private final List files = List.of("marketdata_2008-05-02.xml", "marketdata_2008-05-05.xml", "marketdata_2008-05-06.xml", "marketdata_2008-05-07.xml", "marketdata_2008-05-08.xml", "marketdata_2008-05-09.xml", "marketdata_2008-05-12.xml", "marketdata_2008-05-13.xml", "marketdata_2008-05-14.xml", "marketdata_2008-05-15.xml", "marketdata_2008-05-16.xml", "marketdata_2008-05-19.xml", "marketdata_2008-05-20.xml", "marketdata_2008-05-21.xml", "marketdata_2008-05-22.xml", "marketdata_2008-05-23.xml", "marketdata_2008-05-26.xml", "marketdata_2008-05-27.xml", "marketdata_2008-05-28.xml", "marketdata_2008-05-29.xml", "marketdata_2008-05-30.xml", - "marketdata_2008-06-02.xml", "marketdata_2008-06-03.xml", "marketdata_2008-06-04.xml", "marketdata_2008-06-05.xml", "marketdata_2008-06-06.xml", "marketdata_2008-06-09.xml", "marketdata_2008-06-10.xml", "marketdata_2008-06-11.xml", "marketdata_2008-06-12.xml", "marketdata_2008-06-13.xml", "marketdata_2008-06-16.xml", "marketdata_2008-06-17.xml", "marketdata_2008-06-18.xml", "marketdata_2008-06-19.xml", "marketdata_2008-06-20.xml", "marketdata_2008-06-23.xml", "marketdata_2008-06-24.xml", "marketdata_2008-06-25.xml", "marketdata_2008-06-26.xml", "marketdata_2008-06-27.xml", "marketdata_2008-06-30.xml", - "marketdata_2008-07-01.xml", "marketdata_2008-07-02.xml", "marketdata_2008-07-03.xml", "marketdata_2008-07-04.xml", "marketdata_2008-07-07.xml", "marketdata_2008-07-08.xml", "marketdata_2008-07-09.xml", "marketdata_2008-07-10.xml", "marketdata_2008-07-11.xml", "marketdata_2008-07-14.xml", "marketdata_2008-07-15.xml", "marketdata_2008-07-16.xml", "marketdata_2008-07-17.xml", "marketdata_2008-07-18.xml", "marketdata_2008-07-21.xml", "marketdata_2008-07-22.xml", "marketdata_2008-07-23.xml", "marketdata_2008-07-24.xml", "marketdata_2008-07-25.xml", "marketdata_2008-07-28.xml", "marketdata_2008-07-29.xml", "marketdata_2008-07-30.xml", "marketdata_2008-07-31.xml", - "marketdata_2008-08-01.xml", "marketdata_2008-08-04.xml", "marketdata_2008-08-05.xml", "marketdata_2008-08-06.xml", "marketdata_2008-08-07.xml", "marketdata_2008-08-08.xml", "marketdata_2008-08-11.xml", "marketdata_2008-08-12.xml", "marketdata_2008-08-13.xml", "marketdata_2008-08-14.xml", "marketdata_2008-08-15.xml", "marketdata_2008-08-18.xml", "marketdata_2008-08-19.xml", "marketdata_2008-08-20.xml", "marketdata_2008-08-21.xml", "marketdata_2008-08-22.xml", "marketdata_2008-08-25.xml", "marketdata_2008-08-26.xml", "marketdata_2008-08-27.xml", "marketdata_2008-08-28.xml", "marketdata_2008-08-29.xml", - "marketdata_2008-09-01.xml", "marketdata_2008-09-02.xml", "marketdata_2008-09-03.xml", "marketdata_2008-09-04.xml", "marketdata_2008-09-05.xml", "marketdata_2008-09-08.xml", "marketdata_2008-09-09.xml", "marketdata_2008-09-10.xml", "marketdata_2008-09-11.xml", "marketdata_2008-09-12.xml", "marketdata_2008-09-15.xml", "marketdata_2008-09-16.xml", "marketdata_2008-09-17.xml", "marketdata_2008-09-18.xml", "marketdata_2008-09-19.xml", "marketdata_2008-09-22.xml", "marketdata_2008-09-23.xml", "marketdata_2008-09-24.xml", "marketdata_2008-09-25.xml", "marketdata_2008-09-26.xml", "marketdata_2008-09-29.xml", "marketdata_2008-09-30.xml", - "marketdata_2008-10-01.xml", "marketdata_2008-10-02.xml", "marketdata_2008-10-03.xml", "marketdata_2008-10-06.xml", "marketdata_2008-10-07.xml", "marketdata_2008-10-08.xml", "marketdata_2008-10-09.xml", "marketdata_2008-10-10.xml", "marketdata_2008-10-13.xml", "marketdata_2008-10-14.xml", "marketdata_2008-10-15.xml", "marketdata_2008-10-16.xml", "marketdata_2008-10-17.xml", "marketdata_2008-10-20.xml", "marketdata_2008-10-21.xml", "marketdata_2008-10-22.xml", "marketdata_2008-10-23.xml", "marketdata_2008-10-24.xml", "marketdata_2008-10-27.xml", "marketdata_2008-10-28.xml", "marketdata_2008-10-29.xml", "marketdata_2008-10-30.xml", "marketdata_2008-10-31.xml"); + private static final Logger logger = LoggerFactory.getLogger(MarketDataGeneratorScenarioList.class); + private Observable publishSubject; + private int counter = 0; + private final List files = List.of("marketdata_2008-05-02.xml", "marketdata_2008-05-05.xml", "marketdata_2008-05-06.xml", "marketdata_2008-05-07.xml", "marketdata_2008-05-08.xml", "marketdata_2008-05-09.xml", "marketdata_2008-05-12.xml", "marketdata_2008-05-13.xml", "marketdata_2008-05-14.xml", "marketdata_2008-05-15.xml", "marketdata_2008-05-16.xml", "marketdata_2008-05-19.xml", "marketdata_2008-05-20.xml", "marketdata_2008-05-21.xml", "marketdata_2008-05-22.xml", "marketdata_2008-05-23.xml", "marketdata_2008-05-26.xml", "marketdata_2008-05-27.xml", "marketdata_2008-05-28.xml", "marketdata_2008-05-29.xml", "marketdata_2008-05-30.xml", + "marketdata_2008-06-02.xml", "marketdata_2008-06-03.xml", "marketdata_2008-06-04.xml", "marketdata_2008-06-05.xml", "marketdata_2008-06-06.xml", "marketdata_2008-06-09.xml", "marketdata_2008-06-10.xml", "marketdata_2008-06-11.xml", "marketdata_2008-06-12.xml", "marketdata_2008-06-13.xml", "marketdata_2008-06-16.xml", "marketdata_2008-06-17.xml", "marketdata_2008-06-18.xml", "marketdata_2008-06-19.xml", "marketdata_2008-06-20.xml", "marketdata_2008-06-23.xml", "marketdata_2008-06-24.xml", "marketdata_2008-06-25.xml", "marketdata_2008-06-26.xml", "marketdata_2008-06-27.xml", "marketdata_2008-06-30.xml", + "marketdata_2008-07-01.xml", "marketdata_2008-07-02.xml", "marketdata_2008-07-03.xml", "marketdata_2008-07-04.xml", "marketdata_2008-07-07.xml", "marketdata_2008-07-08.xml", "marketdata_2008-07-09.xml", "marketdata_2008-07-10.xml", "marketdata_2008-07-11.xml", "marketdata_2008-07-14.xml", "marketdata_2008-07-15.xml", "marketdata_2008-07-16.xml", "marketdata_2008-07-17.xml", "marketdata_2008-07-18.xml", "marketdata_2008-07-21.xml", "marketdata_2008-07-22.xml", "marketdata_2008-07-23.xml", "marketdata_2008-07-24.xml", "marketdata_2008-07-25.xml", "marketdata_2008-07-28.xml", "marketdata_2008-07-29.xml", "marketdata_2008-07-30.xml", "marketdata_2008-07-31.xml", + "marketdata_2008-08-01.xml", "marketdata_2008-08-04.xml", "marketdata_2008-08-05.xml", "marketdata_2008-08-06.xml", "marketdata_2008-08-07.xml", "marketdata_2008-08-08.xml", "marketdata_2008-08-11.xml", "marketdata_2008-08-12.xml", "marketdata_2008-08-13.xml", "marketdata_2008-08-14.xml", "marketdata_2008-08-15.xml", "marketdata_2008-08-18.xml", "marketdata_2008-08-19.xml", "marketdata_2008-08-20.xml", "marketdata_2008-08-21.xml", "marketdata_2008-08-22.xml", "marketdata_2008-08-25.xml", "marketdata_2008-08-26.xml", "marketdata_2008-08-27.xml", "marketdata_2008-08-28.xml", "marketdata_2008-08-29.xml", + "marketdata_2008-09-01.xml", "marketdata_2008-09-02.xml", "marketdata_2008-09-03.xml", "marketdata_2008-09-04.xml", "marketdata_2008-09-05.xml", "marketdata_2008-09-08.xml", "marketdata_2008-09-09.xml", "marketdata_2008-09-10.xml", "marketdata_2008-09-11.xml", "marketdata_2008-09-12.xml", "marketdata_2008-09-15.xml", "marketdata_2008-09-16.xml", "marketdata_2008-09-17.xml", "marketdata_2008-09-18.xml", "marketdata_2008-09-19.xml", "marketdata_2008-09-22.xml", "marketdata_2008-09-23.xml", "marketdata_2008-09-24.xml", "marketdata_2008-09-25.xml", "marketdata_2008-09-26.xml", "marketdata_2008-09-29.xml", "marketdata_2008-09-30.xml", + "marketdata_2008-10-01.xml", "marketdata_2008-10-02.xml", "marketdata_2008-10-03.xml", "marketdata_2008-10-06.xml", "marketdata_2008-10-07.xml", "marketdata_2008-10-08.xml", "marketdata_2008-10-09.xml", "marketdata_2008-10-10.xml", "marketdata_2008-10-13.xml", "marketdata_2008-10-14.xml", "marketdata_2008-10-15.xml", "marketdata_2008-10-16.xml", "marketdata_2008-10-17.xml", "marketdata_2008-10-20.xml", "marketdata_2008-10-21.xml", "marketdata_2008-10-22.xml", "marketdata_2008-10-23.xml", "marketdata_2008-10-24.xml", "marketdata_2008-10-27.xml", "marketdata_2008-10-28.xml", "marketdata_2008-10-29.xml", "marketdata_2008-10-30.xml", "marketdata_2008-10-31.xml"); /*public MarketDataGeneratorScenarioList(List scenarioList) { publishSubject = PublishSubject.create(); }*/ - public MarketDataGeneratorScenarioList() { - publishSubject = PublishSubject.create(); - } + public MarketDataGeneratorScenarioList() { + publishSubject = PublishSubject.create(); + } - @Override - public Observable asObservable() { - publishSubject = Observable.create(emitter -> { - emitter.onNext(getMarketDataCurve()); - emitter.onComplete(); - }); + @Override + public Observable asObservable() { + publishSubject = Observable.create(emitter -> { + emitter.onNext(getMarketDataCurve()); + emitter.onComplete(); + }); - return this.publishSubject; - } + return this.publishSubject; + } - private MarketDataList getMarketDataCurve() { - if (counter >= files.size()) counter = 0; - final String fileName = "net/finmath/smartcontract/valuation/historicalMarketData/" + files.get(counter); + private MarketDataList getMarketDataCurve() { + if (counter >= files.size()) counter = 0; + final String fileName = "net/finmath/smartcontract/valuation/historicalMarketData/" + files.get(counter); - logger.info("counter: {}, file to retrieve: {}", counter, fileName); + logger.info("counter: {}, file to retrieve: {}", counter, fileName); - String marketDataXml; - try { - marketDataXml = new String(Objects.requireNonNull(MarketDataGeneratorScenarioList.class.getClassLoader().getResourceAsStream(fileName)).readAllBytes(), StandardCharsets.UTF_8); - } catch (IOException e) { - throw new RuntimeException(e); - } - counter++; - return SDCXMLParser.unmarshalXml(marketDataXml, MarketDataList.class); - } + String marketDataXml; + try { + marketDataXml = new String(Objects.requireNonNull(MarketDataGeneratorScenarioList.class.getClassLoader().getResourceAsStream(fileName)).readAllBytes(), StandardCharsets.UTF_8); + } catch (IOException e) { + throw new RuntimeException(e); + } + counter++; + return SDCXMLParser.unmarshalXml(marketDataXml, MarketDataList.class); + } } From 97756daf7677ed8e3bd0b7bedfe91a2d11e92600 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Thu, 28 Mar 2024 14:08:18 +0100 Subject: [PATCH 046/105] SDC-403, replace sysout by logger in Application.java --- .../smartcontract/valuation/service/Application.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/Application.java b/src/main/java/net/finmath/smartcontract/valuation/service/Application.java index 3c41e31a3..8df62be4a 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/Application.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/Application.java @@ -2,6 +2,8 @@ import net.finmath.smartcontract.valuation.service.config.BasicAuthWebSecurityConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; @@ -19,13 +21,15 @@ @ComponentScan(basePackages = {"net.finmath.smartcontract.valuation.marketdata.database", "net.finmath.smartcontract.valuation.service"}) public class Application { + private static final Logger logger = LoggerFactory.getLogger(Application.class); + /** * Application entry point. * * @param args Program arguments (not used). */ public static void main(String[] args) { - System.out.println("Setting the timezone: " + TimeZone.getTimeZone("UTC").getID()); + logger.info("Setting the timezone: {}", TimeZone.getTimeZone("UTC").getID()); TimeZone.setDefault(TimeZone.getTimeZone("UTC")); SpringApplication.run(Application.class, args); } From 57a53fc504c4c362c602d2048deba573d63c80d6 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Thu, 28 Mar 2024 15:15:25 +0100 Subject: [PATCH 047/105] NO_ISSUE, code cleanups --- .../product/IRSwapGenerator.java | 7 ++- .../product/xml/PlainSwapEditorHandler.java | 63 ++++++++++--------- .../implementation/MarginCalculator.java | 12 ++-- .../MarketDataGeneratorRandomFeed.java | 5 +- .../legacy/ReactiveMarketDataUpdater.java | 6 +- .../PlainSwapEditorController.java | 26 ++++---- .../service/utils/ResourceGovernor.java | 1 - 7 files changed, 63 insertions(+), 57 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/product/IRSwapGenerator.java b/src/main/java/net/finmath/smartcontract/product/IRSwapGenerator.java index dbd2fff49..db908575a 100644 --- a/src/main/java/net/finmath/smartcontract/product/IRSwapGenerator.java +++ b/src/main/java/net/finmath/smartcontract/product/IRSwapGenerator.java @@ -19,7 +19,9 @@ */ public class IRSwapGenerator { - public static final Swap generateAnalyticSwapObject(final LocalDate startDate, final String maturityLabel, final double fixRate, final boolean isReceiveFix, final String forwardCurveName, final String discountCurveName) { + private IRSwapGenerator(){} + + public static Swap generateAnalyticSwapObject(final LocalDate startDate, final String maturityLabel, final double fixRate, final boolean isReceiveFix, final String forwardCurveName, final String discountCurveName) { final String frequencyLabel = forwardCurveName.contains("3M") ? "quarterly" : forwardCurveName.contains("6M") ? "semiannual" : forwardCurveName.contains("1M") ? "monthly" : "annual"; @@ -28,8 +30,7 @@ public static final Swap generateAnalyticSwapObject(final LocalDate startDate, f final SwapLeg floatLeg = new SwapLeg(Optional.of(LocalDateTime.of(startDate, LocalTime.of(0, 0))), scheduleFloat, forwardCurveName, 0.0, discountCurveName); final SwapLeg fixLeg = new SwapLeg(Optional.of(LocalDateTime.of(startDate, LocalTime.of(0, 0))), scheduleFix, "", fixRate, discountCurveName); - final Swap swap = isReceiveFix ? new Swap(fixLeg, floatLeg) : new Swap(floatLeg, fixLeg); - return swap; + return isReceiveFix ? new Swap(fixLeg, floatLeg) : new Swap(floatLeg, fixLeg); } diff --git a/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java b/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java index 30a162648..22eeae276 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java @@ -50,9 +50,12 @@ * @author Luca Bressan * @version alpha.1 */ +@SuppressWarnings("java:S125") public final class PlainSwapEditorHandler { //TODO: this code needs some cleaning up private static final Logger logger = LoggerFactory.getLogger(PlainSwapEditorHandler.class); + private static final String CONSTANT = "constant"; + private static final String FAILED_MODEL_CALIBRATION = "Failed to calibrate model."; private final Smartderivativecontract smartDerivativeContract; private final Schema sdcmlSchema; private final Marshaller marshaller; @@ -75,7 +78,7 @@ public PlainSwapEditorHandler(final PlainSwapOperationRequest plainSwapOperation final SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); sdcmlSchema = schemaFactory.newSchema((new ClassPathResource(schemaPath)).getURL()); } catch (IOException | SAXException e) { - logger.error("Failed to recover XSD schema. The file '" + schemaPath + "' is missing, unreachable or invalid."); + logger.error("Failed to recover XSD schema. The file '{}' is missing, unreachable or invalid.", schemaPath); throw e; } @@ -213,23 +216,23 @@ public PlainSwapEditorHandler(final PlainSwapOperationRequest plainSwapOperation floatingLeg.resetDates.fixingDates.periodMultiplier = BigInteger.valueOf(plainSwapOperationRequest.getFloatingFixingDayOffset().longValue()); - logger.info("Reading back floating fixing date offset: " + floatingLeg.resetDates.fixingDates.periodMultiplier); + logger.info("Reading back floating fixing date offset: {}", floatingLeg.resetDates.fixingDates.periodMultiplier); floatingLeg.calculationPeriodAmount.calculation.dayCountFraction.value = plainSwapOperationRequest.getFloatingDayCountFraction(); - logger.info("Reading back floating day count fraction: " + floatingLeg.calculationPeriodAmount.calculation.dayCountFraction.value); + logger.info("Reading back floating day count fraction: {}", floatingLeg.calculationPeriodAmount.calculation.dayCountFraction.value); floatingLeg.paymentDates.paymentFrequency.periodMultiplier = BigInteger.valueOf(plainSwapOperationRequest.getFloatingPaymentFrequency().getPeriodMultiplier().longValue()); - logger.info("Reading back floating payment frequency period multiplier: " + floatingLeg.paymentDates.paymentFrequency.periodMultiplier); + logger.info("Reading back floating payment frequency period multiplier: {}", floatingLeg.paymentDates.paymentFrequency.periodMultiplier); floatingLeg.paymentDates.paymentFrequency.setPeriod(plainSwapOperationRequest.getFloatingPaymentFrequency().getPeriod()); - logger.info("Reading back floating payment frequency period: " + floatingLeg.paymentDates.paymentFrequency.period); + logger.info("Reading back floating payment frequency period: {}", floatingLeg.paymentDates.paymentFrequency.period); ((FloatingRateCalculation) floatingLeg.calculationPeriodAmount.calculation.getRateCalculation().getValue()).floatingRateIndex.value = plainSwapOperationRequest.getFloatingRateIndex(); - logger.info("Reading back floating rate index: " + ((FloatingRateCalculation) floatingLeg.calculationPeriodAmount.calculation.getRateCalculation().getValue()).floatingRateIndex.value); + logger.info("Reading back floating rate index: {}", ((FloatingRateCalculation) floatingLeg.calculationPeriodAmount.calculation.getRateCalculation().getValue()).floatingRateIndex.value); fixedLeg.calculationPeriodAmount.calculation.dayCountFraction.value = plainSwapOperationRequest.getFixedDayCountFraction(); - logger.info("Reading back fixed day count fraction " + fixedLeg.calculationPeriodAmount.calculation.dayCountFraction.value); + logger.info("Reading back fixed day count fraction {}", fixedLeg.calculationPeriodAmount.calculation.dayCountFraction.value); fixedLeg.calculationPeriodAmount.calculation.fixedRateSchedule.initialValue = BigDecimal.valueOf(plainSwapOperationRequest.getFixedRate()).setScale(12, RoundingMode.HALF_EVEN).divide(BigDecimal.valueOf(100L).setScale(12, RoundingMode.HALF_EVEN), RoundingMode.HALF_EVEN); - logger.info("Reading back fixed rate: " + fixedLeg.calculationPeriodAmount.calculation.fixedRateSchedule.initialValue); + logger.info("Reading back fixed rate: {}", fixedLeg.calculationPeriodAmount.calculation.fixedRateSchedule.initialValue); fixedLeg.paymentDates.paymentFrequency.periodMultiplier = BigInteger.valueOf(plainSwapOperationRequest.getFixedPaymentFrequency().getPeriodMultiplier().longValue()); - logger.info("Reading back fixed period multiplier: " + fixedLeg.paymentDates.paymentFrequency.periodMultiplier); + logger.info("Reading back fixed period multiplier: {}", fixedLeg.paymentDates.paymentFrequency.periodMultiplier); fixedLeg.paymentDates.paymentFrequency.period = plainSwapOperationRequest.getFixedPaymentFrequency().getPeriod(); - logger.info("Reading back fixed period: " + fixedLeg.paymentDates.paymentFrequency.period); + logger.info("Reading back fixed period: {}", fixedLeg.paymentDates.paymentFrequency.period); //TODO: ask people who know more about FPmL if the next lines are actually needed fixedLeg.calculationPeriodDates.calculationPeriodFrequency.periodMultiplier = BigInteger.valueOf(plainSwapOperationRequest.getFixedPaymentFrequency().getPeriodMultiplier().longValue()); @@ -290,26 +293,26 @@ private static void setSdcPartiesHeader(final PlainSwapOperationRequest tradeDes List partyList = new ArrayList<>(); Smartderivativecontract.Parties.Party party1 = new Smartderivativecontract.Parties.Party(); - logger.info("Setting id party1 for party " + tradeDescriptor.getFirstCounterparty()); + logger.info("Setting id party1 for party {}", tradeDescriptor.getFirstCounterparty()); party1.setName(tradeDescriptor.getFirstCounterparty().getFullName()); party1.setId("party1"); Smartderivativecontract.Parties.Party.MarginAccount marginAccount1 = new Smartderivativecontract.Parties.Party.MarginAccount(); - marginAccount1.setType("constant"); + marginAccount1.setType(CONSTANT); marginAccount1.setValue(tradeDescriptor.getMarginBufferAmount().floatValue()); Smartderivativecontract.Parties.Party.PenaltyFee penaltyFee1 = new Smartderivativecontract.Parties.Party.PenaltyFee(); - penaltyFee1.setType("constant"); + penaltyFee1.setType(CONSTANT); penaltyFee1.setValue(tradeDescriptor.getTerminationFeeAmount().floatValue()); party1.setAddress("0x0"); - logger.info("Setting id party2 for party " + tradeDescriptor.getSecondCounterparty()); + logger.info("Setting id party2 for party {}", tradeDescriptor.getSecondCounterparty()); Smartderivativecontract.Parties.Party party2 = new Smartderivativecontract.Parties.Party(); party2.setName(tradeDescriptor.getSecondCounterparty().getFullName()); party2.setId("party2"); Smartderivativecontract.Parties.Party.MarginAccount marginAccount2 = new Smartderivativecontract.Parties.Party.MarginAccount(); - marginAccount2.setType("constant"); + marginAccount2.setType(CONSTANT); marginAccount2.setValue(tradeDescriptor.getMarginBufferAmount().floatValue()); Smartderivativecontract.Parties.Party.PenaltyFee penaltyFee2 = new Smartderivativecontract.Parties.Party.PenaltyFee(); - penaltyFee2.setType("constant"); + penaltyFee2.setType(CONSTANT); penaltyFee2.setValue(tradeDescriptor.getTerminationFeeAmount().floatValue()); party2.setAddress("0x0"); @@ -406,9 +409,9 @@ public List getSchedule(LegSelector legSelector, String marketDa default -> throw new IllegalArgumentException("Failed to detect leg type"); } final LocalDate startDate = swapLeg.getCalculationPeriodDates().getEffectiveDate().getUnadjustedDate().getValue().toGregorianCalendar().toZonedDateTime().toLocalDate(); - logger.info("Start date detected: " + startDate.toString()); + logger.info("Start date detected: {}", startDate.toString()); final LocalDate maturityDate = swapLeg.getCalculationPeriodDates().getTerminationDate().getUnadjustedDate().getValue().toGregorianCalendar().toZonedDateTime().toLocalDate(); - logger.info("Maturity date detected: " + maturityDate.toString()); + logger.info("Maturity date detected: {}", maturityDate.toString()); int fixingOffsetDays = 0; try { fixingOffsetDays = swapLeg.getResetDates().getFixingDates().getPeriodMultiplier().intValue(); @@ -435,13 +438,13 @@ public List getSchedule(LegSelector legSelector, String marketDa default -> throw new IllegalArgumentException("Unrecognized date roll convention: " + swapLeg.getPaymentDates().getPaymentDatesAdjustments().getBusinessDayConvention()); } - logger.info("Date roll convention detected: " + dateRollConvention); + logger.info("Date roll convention detected: {}", dateRollConvention); final ScheduleGenerator.DaycountConvention daycountConvention = ScheduleGenerator.DaycountConvention.getEnum(swapLeg.getCalculationPeriodAmount().getCalculation().getDayCountFraction().getValue()); ScheduleGenerator.Frequency frequency = null; final int multiplier = swapLeg.getPaymentDates().getPaymentFrequency().getPeriodMultiplier().intValue(); - logger.info("Reading period symbol: " + swapLeg.getPaymentDates().getPaymentFrequency().getPeriod()); + logger.info("Reading period symbol: {}", swapLeg.getPaymentDates().getPaymentFrequency().getPeriod()); switch (swapLeg.getPaymentDates().getPaymentFrequency().getPeriod()) { case "D" -> { if (multiplier == 1) { @@ -463,7 +466,7 @@ public List getSchedule(LegSelector legSelector, String marketDa } //build schedule - logger.info("Payment frequency detected: " + Objects.requireNonNull(frequency)); + logger.info("Payment frequency detected: {}", Objects.requireNonNull(frequency)); final ScheduleDescriptor scheduleDescriptor = new ScheduleDescriptor(startDate, maturityDate, frequency, daycountConvention, ScheduleGenerator.ShortPeriodConvention.LAST, dateRollConvention, new BusinessdayCalendarExcludingTARGETHolidays(), fixingOffsetDays, paymentOffsetDays); @@ -513,9 +516,9 @@ public List getSchedule(LegSelector legSelector, MarketDataSet m default -> throw new IllegalArgumentException("Failed to detect leg type"); } final LocalDate startDate = swapLeg.getCalculationPeriodDates().getEffectiveDate().getUnadjustedDate().getValue().toGregorianCalendar().toZonedDateTime().toLocalDate(); - logger.info("Start date detected: " + startDate.toString()); + logger.info("Start date detected: {}", startDate.toString()); final LocalDate maturityDate = swapLeg.getCalculationPeriodDates().getTerminationDate().getUnadjustedDate().getValue().toGregorianCalendar().toZonedDateTime().toLocalDate(); - logger.info("Maturity date detected: " + maturityDate.toString()); + logger.info("Maturity date detected: {}", maturityDate.toString()); int fixingOffsetDays = 0; try { fixingOffsetDays = swapLeg.getResetDates().getFixingDates().getPeriodMultiplier().intValue(); @@ -542,13 +545,13 @@ public List getSchedule(LegSelector legSelector, MarketDataSet m default -> throw new IllegalArgumentException("Unrecognized date roll convention: " + swapLeg.getPaymentDates().getPaymentDatesAdjustments().getBusinessDayConvention()); } - logger.info("Date roll convention detected: " + dateRollConvention); + logger.info("Date roll convention detected: {}", dateRollConvention); final ScheduleGenerator.DaycountConvention daycountConvention = ScheduleGenerator.DaycountConvention.getEnum(swapLeg.getCalculationPeriodAmount().getCalculation().getDayCountFraction().getValue()); ScheduleGenerator.Frequency frequency = null; final int multiplier = swapLeg.getPaymentDates().getPaymentFrequency().getPeriodMultiplier().intValue(); - logger.info("Reading period symbol: " + swapLeg.getPaymentDates().getPaymentFrequency().getPeriod()); + logger.info("Reading period symbol: {}", swapLeg.getPaymentDates().getPaymentFrequency().getPeriod()); switch (swapLeg.getPaymentDates().getPaymentFrequency().getPeriod()) { case "D" -> { if (multiplier == 1) { @@ -570,7 +573,7 @@ public List getSchedule(LegSelector legSelector, MarketDataSet m } //build schedule - logger.info("Payment frequency detected: " + Objects.requireNonNull(frequency)); + logger.info("Payment frequency detected: {}", Objects.requireNonNull(frequency)); final ScheduleDescriptor scheduleDescriptor = new ScheduleDescriptor(startDate, maturityDate, frequency, daycountConvention, ScheduleGenerator.ShortPeriodConvention.LAST, dateRollConvention, new BusinessdayCalendarExcludingTARGETHolidays(), fixingOffsetDays, paymentOffsetDays); @@ -633,13 +636,13 @@ private AnalyticModel getAnalyticModel(String marketData, Schedule schedule, Str try { optionalCalibrationResult = calibrator.calibrateModel(allCalibrationItems, new CalibrationContextImpl(referenceDate, 1E-9)); } catch (CloneNotSupportedException e) { - logger.error("Failed to calibrate model."); + logger.error(FAILED_MODEL_CALIBRATION); throw e; } AnalyticModel calibratedModel; if (optionalCalibrationResult.isPresent()) calibratedModel = optionalCalibrationResult.get().getCalibratedModel(); - else throw new IllegalStateException("Failed to calibrate model."); + else throw new IllegalStateException(FAILED_MODEL_CALIBRATION); Set pastFixings = scenario.getFixingDataItems(); @@ -705,13 +708,13 @@ private AnalyticModel getAnalyticModel(MarketDataSet marketData, Schedule schedu try { optionalCalibrationResult = calibrator.calibrateModel(allCalibrationItems, new CalibrationContextImpl(referenceDate, 1E-9)); } catch (CloneNotSupportedException e) { - logger.error("Failed to calibrate model."); + logger.error(FAILED_MODEL_CALIBRATION); throw e; } AnalyticModel calibratedModel; if (optionalCalibrationResult.isPresent()) calibratedModel = optionalCalibrationResult.get().getCalibratedModel(); - else throw new IllegalStateException("Failed to calibrate model."); + else throw new IllegalStateException(FAILED_MODEL_CALIBRATION); return calibratedModel; } diff --git a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java index db97df720..a848e6eaf 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java @@ -12,6 +12,7 @@ import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataset; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationParserDataItems; +import net.finmath.smartcontract.valuation.marketdata.curvecalibration.Calibrator; import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; import net.finmath.smartcontract.valuation.oracle.SmartDerivativeContractSettlementOracle; import net.finmath.smartcontract.valuation.oracle.interestrates.ValuationOraclePlainSwap; @@ -41,6 +42,7 @@ public class MarginCalculator { private static final Logger logger = LoggerFactory.getLogger(MarginCalculator.class); + private static final String FORWARD_EUR_6M = "forward-EUR-6M"; private final DoubleUnaryOperator rounding; @@ -79,7 +81,7 @@ public MarginResult getValue(String marketDataStart, String marketDataEnd, Strin } String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); - InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); + InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, FORWARD_EUR_6M, Calibrator.DISCOUNT_EUR_OIS).getProductDescriptor(productDescriptor.getUnderlying()); LocalDateTime startDate = setStart.getDate(); LocalDateTime endDate = setEnd.getDate(); @@ -126,7 +128,7 @@ public MarginResult getValue(MarketDataList marketDataStart, MarketDataList mark marketDataListEnd.add(new CalibrationDataset(calibrationDataItemsEnd, marketDataEnd.getRequestTimeStamp())); String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); - InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); + InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, FORWARD_EUR_6M, Calibrator.DISCOUNT_EUR_OIS).getProductDescriptor(productDescriptor.getUnderlying()); LocalDateTime startDate = marketDataListStart.get(0).getDate(); LocalDateTime endDate = marketDataListEnd.get(0).getDate(); @@ -142,7 +144,7 @@ public ValueResult getValue(String marketData, String productData) throws Except SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); - InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); + InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, FORWARD_EUR_6M, Calibrator.DISCOUNT_EUR_OIS).getProductDescriptor(productDescriptor.getUnderlying()); CalibrationDataset set = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketData,productDescriptor.getMarketdataItemList()); @@ -174,7 +176,7 @@ public ValueResult getValue(MarketDataList marketData, String productData) throw List marketDataList = new ArrayList<>(); marketDataList.add(new CalibrationDataset(calibrationDataItems, marketData.getRequestTimeStamp())); String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); - InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); + InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, FORWARD_EUR_6M, Calibrator.DISCOUNT_EUR_OIS).getProductDescriptor(productDescriptor.getUnderlying()); LocalDateTime endDate = marketDataList.get(0).getDate(); double value = calculateMargin(marketDataList, null, endDate, productDescriptor, underlying); @@ -193,7 +195,7 @@ public ValueResult getValue(MarketDataList marketData, String productData) throw * @return The margin * @throws Exception Exception */ - private double calculateMargin(List marketDataList, LocalDateTime startDate, LocalDateTime endState, SmartDerivativeContractDescriptor productDescriptor, InterestRateSwapProductDescriptor underlying) throws Exception { + private double calculateMargin(List marketDataList, LocalDateTime startDate, LocalDateTime endState, SmartDerivativeContractDescriptor productDescriptor, InterestRateSwapProductDescriptor underlying) { // Build product LocalDate referenceDate = productDescriptor.getTradeDate().toLocalDate(); diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java index f719203d1..6b72c419f 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java @@ -41,7 +41,7 @@ public Observable asObservable() { } emitter.onComplete(); }; - Period period; + //Period period; // Observable.interval(0,period.get(TimeUnit.SECONDS.toChronoUnit()),TimeUnit.SECONDS).map(i->...) return Observable.create(observable).delay(this.simulationFrequencySec, TimeUnit.SECONDS); @@ -52,8 +52,7 @@ public Observable asObservable() { private CalibrationDataset getShiftedReferenceSet() { double randomShiftBp = ThreadLocalRandom.current().nextDouble(-1, 1) / 10000; Set shifted = this.referenceSet.getDataPoints().stream().map(datapoint -> datapoint.getClonedShifted(1 + randomShiftBp)).collect(Collectors.toSet()); - CalibrationDataset set = new CalibrationDataset(shifted, this.referenceSet.getDate()); - return set; + return new CalibrationDataset(shifted, this.referenceSet.getDate()); } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/legacy/ReactiveMarketDataUpdater.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/legacy/ReactiveMarketDataUpdater.java index 9ada6cef7..4aec3d33d 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/legacy/ReactiveMarketDataUpdater.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/legacy/ReactiveMarketDataUpdater.java @@ -70,6 +70,7 @@ private void reset() { /** * Called when handshake is complete and websocket is open, send login */ + @Override public void onConnected(WebSocket websocket, Map> headers) throws Exception { this.sendLoginRequest(websocket, authJson.getString("access_token"), true); logger.info("WebSocket successfully connected! Resetting connection."); @@ -86,9 +87,8 @@ public Observable asObservable() { } + @Override public void onTextMessage(WebSocket websocket, String message) { - - if (!message.isEmpty()) { List marketDataValues; try { @@ -118,7 +118,7 @@ public void onTextMessage(WebSocket websocket, String message) { } catch (JsonProcessingException | NullPointerException | IllegalStateException e) { - logger.info("JSON mapper is failing silently in order to skip message:" + System.lineSeparator() + message + System.lineSeparator() + "as it is not a quote/fixing update."); + logger.info("JSON mapper is failing silently in order to skip message:{}{}{}as it is not a quote/fixing update.", System.lineSeparator(), message, System.lineSeparator()); } if (!requestSent) { sendRICRequest(websocket); diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java index 23207586a..44ac682ac 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java @@ -50,6 +50,7 @@ import java.util.*; import java.util.function.DoubleUnaryOperator; +@SuppressWarnings("java:S125") @RestController @CrossOrigin(origins = {"http://localhost:4200", "${serviceUrl}"}, allowCredentials = "true") public class PlainSwapEditorController implements PlainSwapEditorApi { @@ -71,18 +72,18 @@ public class PlainSwapEditorController implements PlainSwapEditorApi { }; private final String schemaPath = "schemas/sdc-schemas/sdcml-contract.xsd"; //may be changed to allow for different versions of the schema - @Autowired - private DatabaseConnector databaseConnector; - - @Autowired - private ResourceGovernor resourceGovernor; @Value("${hostname:localhost:8080}") private String hostname; - - - @Autowired - private ObjectMapper objectMapper; + private final DatabaseConnector databaseConnector; + private final ResourceGovernor resourceGovernor; + private final ObjectMapper objectMapper; + + public PlainSwapEditorController(DatabaseConnector databaseConnector, ResourceGovernor resourceGovernor, ObjectMapper objectMapper) { + this.databaseConnector = databaseConnector; + this.resourceGovernor = resourceGovernor; + this.objectMapper = objectMapper; + } /** @@ -440,7 +441,7 @@ public ResponseEntity getParRate(PlainSwapOperationRequest plainSwapOper TODO: this could be made faster by avoiding regeneration of the SDCml at every iteration. I just don't know how to keep into account business calendars and fixing dates in an elegant way */ - DoubleUnaryOperator swapValue = (swapRate) -> { + DoubleUnaryOperator swapValue = swapRate -> { plainSwapOperationRequest.fixedRate(swapRate); try { return (new MarginCalculator()).getValue(marketDataString, new PlainSwapEditorHandler( @@ -609,6 +610,7 @@ public ResponseEntity loadContract(String requestedFi public ResponseEntity saveContract(SaveContractRequest saveContractRequest) { String currentUserName = ((UserDetails) SecurityContextHolder.getContext().getAuthentication() .getPrincipal()).getUsername(); + //TODO clarify if regex should be A-Za-z String regex = "^[A-za-z0-9]{1,255}$"; // only alphanumerical characters allowed! LocalDate date = LocalDate.now(); if (saveContractRequest.getName().matches(regex)) { @@ -619,9 +621,9 @@ public ResponseEntity saveContract(SaveContractRequest saveContractReque .getFile(); boolean creationResult = targetFile.createNewFile(); if (creationResult) - logger.info("New file created at " + targetFile.getAbsolutePath()); + logger.info("New file created at {}", targetFile.getAbsolutePath()); else - logger.info("Attempting overwrite of file " + targetFile.getAbsolutePath()); + logger.info("Attempting overwrite of file {}", targetFile.getAbsolutePath()); objectMapper.writeValue(targetFile, saveContractRequest.getPlainSwapOperationRequest()); } catch (IOException e) { diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/utils/ResourceGovernor.java b/src/main/java/net/finmath/smartcontract/valuation/service/utils/ResourceGovernor.java index 9abff98fa..be67c489a 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/utils/ResourceGovernor.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/utils/ResourceGovernor.java @@ -20,7 +20,6 @@ @Profile("!test") public class ResourceGovernor { - private static final Logger logger = LoggerFactory.getLogger(ResourceGovernor.class); @Autowired private ResourcePatternResolver resourcePatternResolver; @Value("${storage.basedir}") From 36d764b57304f45f6f18e7cf695aabfe09b11cfc Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Thu, 28 Mar 2024 15:25:52 +0100 Subject: [PATCH 048/105] NO_ISSUE, code cleanups --- .../contract/SmartDerivativeContract.java | 21 ------------------- .../valuation/client/ValuationClient.java | 18 +++++----------- ...artDerivativeContractSettlementOracle.java | 5 +---- .../controllers/ValuationController.java | 17 ++++++++------- 4 files changed, 15 insertions(+), 46 deletions(-) delete mode 100644 src/main/java/net/finmath/smartcontract/contract/SmartDerivativeContract.java diff --git a/src/main/java/net/finmath/smartcontract/contract/SmartDerivativeContract.java b/src/main/java/net/finmath/smartcontract/contract/SmartDerivativeContract.java deleted file mode 100644 index b3c7942fd..000000000 --- a/src/main/java/net/finmath/smartcontract/contract/SmartDerivativeContract.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * (c) Copyright Christian P. Fries, Germany. All rights reserved. Contact: email@christianfries.com. - * - * Created on 7 Oct 2018 - */ - -package net.finmath.smartcontract.contract; - -/** - * @author Christian Fries - */ -public class SmartDerivativeContract { - - /** - * - */ - public SmartDerivativeContract() { - // TODO Auto-generated constructor stub - } - -} diff --git a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java index f7ea68b33..0bec4e7d3 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java +++ b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java @@ -2,18 +2,12 @@ import net.finmath.smartcontract.model.MarginRequest; import net.finmath.smartcontract.model.MarginResult; -import net.finmath.smartcontract.model.MarketDataList; -import net.finmath.smartcontract.product.xml.SDCXMLParser; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.http.*; import org.springframework.web.client.RestTemplate; import java.net.URI; import java.net.URISyntaxException; import java.nio.charset.StandardCharsets; -import java.time.LocalDateTime; -import java.time.OffsetDateTime; import java.util.Base64; import java.util.Objects; @@ -27,7 +21,7 @@ */ public class ValuationClient { - private static final Logger logger = LoggerFactory.getLogger(ValuationClient.class); + private static final String BASIC = "Basic "; public static void main(String[] args) throws Exception { String url = "http://localhost:8080"; @@ -50,9 +44,7 @@ public static void main(String[] args) throws Exception { } final String marketDataStartXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml")).readAllBytes(), StandardCharsets.UTF_8); - final MarketDataList marketDataStart = SDCXMLParser.unmarshalXml(marketDataStartXml, MarketDataList.class); final String marketDataEndXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml")).readAllBytes(), StandardCharsets.UTF_8); - final MarketDataList marketDataEnd = SDCXMLParser.unmarshalXml(marketDataEndXml, MarketDataList.class); final String product = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); final MarginRequest marginRequest = new MarginRequest().marketDataStart(marketDataStartXml).marketDataEnd(marketDataEndXml).tradeData(product).valuationDate(""); @@ -62,9 +54,9 @@ public static void main(String[] args) throws Exception { // create auth credentials String base64Creds = Base64.getEncoder().encodeToString(authString.getBytes()); - headers.add("Authorization", "Basic " + base64Creds); + headers.add(HttpHeaders.AUTHORIZATION, BASIC + base64Creds); - RequestEntity requestEntity = new RequestEntity(marginRequest, headers, HttpMethod.POST, new URI(url + "/valuation/margin"), MarginRequest.class); + RequestEntity requestEntity = new RequestEntity<>(marginRequest, headers, HttpMethod.POST, new URI(url + "/valuation/margin"), MarginRequest.class); ResponseEntity response = new RestTemplate().exchange(requestEntity, MarginResult.class); MarginResult result = response.getBody(); @@ -81,7 +73,7 @@ private static void printInfoGit(String url, String authString) throws URISyntax // create auth credentials String base64Creds = Base64.getEncoder().encodeToString(authString.getBytes()); - headers.add("Authorization", "Basic " + base64Creds); + headers.add(HttpHeaders.AUTHORIZATION, BASIC + base64Creds); RequestEntity requestEntity = new RequestEntity<>(null, headers, HttpMethod.GET, new URI(url + "/info/git"), String.class); @@ -98,7 +90,7 @@ private static void printInfoFinmath(String url, String authString) throws URISy // create auth credentials String base64Creds = Base64.getEncoder().encodeToString(authString.getBytes()); - headers.add("Authorization", "Basic " + base64Creds); + headers.add(HttpHeaders.AUTHORIZATION, BASIC + base64Creds); RequestEntity requestEntity = new RequestEntity<>(null, headers, HttpMethod.GET, new URI(url + "/info/finmath"), String.class); diff --git a/src/main/java/net/finmath/smartcontract/valuation/oracle/SmartDerivativeContractSettlementOracle.java b/src/main/java/net/finmath/smartcontract/valuation/oracle/SmartDerivativeContractSettlementOracle.java index 3ee45fb70..3a5f50362 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/oracle/SmartDerivativeContractSettlementOracle.java +++ b/src/main/java/net/finmath/smartcontract/valuation/oracle/SmartDerivativeContractSettlementOracle.java @@ -38,12 +38,9 @@ public SmartDerivativeContractSettlementOracle(final ValuationOracle derivativeV * @return The margin. */ public Double getMargin(final LocalDateTime marginPeriodStart, final LocalDateTime marginPeriodEnd) { - final double valueDerivativeCurrent = derivativeValuationOracle.getValue(marginPeriodEnd, marginPeriodEnd); final double valueDerivativePrevious = derivativeValuationOracle.getValue(marginPeriodEnd, marginPeriodStart); - final double valuationChange = valueDerivativeCurrent - valueDerivativePrevious; - - return valuationChange; + return valueDerivativeCurrent - valueDerivativePrevious; } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java index 66de26693..326ef5f41 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java @@ -34,7 +34,8 @@ public class ValuationController implements ValuationApi { private final Logger logger = LoggerFactory.getLogger(ValuationController.class); - private final String FAILEDCALCULATION = "Failed to calculate value."; + private static final String FAILED_CALCULATION = "Failed to calculate value."; + private static final String RESPONDED = "Responded"; /** * Request mapping for the settlementvaluationForProductAsFPML @@ -92,7 +93,7 @@ public ResponseEntity legacyValue(LegacyValueRequest valueRequest) @Override public ResponseEntity margin(MarginRequest marginRequest) { HttpHeaders responseHeaders = new HttpHeaders(); - responseHeaders.add("Responded", "margin"); + responseHeaders.add(RESPONDED, "margin"); MarginResult margin = null; try { @@ -113,7 +114,7 @@ public ResponseEntity margin(MarginRequest marginRequest) { @Override public ResponseEntity value(ValueRequest valueRequest) { HttpHeaders responseHeaders = new HttpHeaders(); - responseHeaders.add("Responded", "value"); + responseHeaders.add(RESPONDED, "value"); ValueResult value = null; try { MarginCalculator marginCalculator = new MarginCalculator(); @@ -121,17 +122,17 @@ public ResponseEntity value(ValueRequest valueRequest) { logger.info(value.toString()); return ResponseEntity.ok(value); } catch (Exception e) { - logger.error(FAILEDCALCULATION); + logger.error(FAILED_CALCULATION); logger.info(value.toString()); e.printStackTrace(); throw new RuntimeException(e); } } - + @Override public ResponseEntity testProductValue(MultipartFile tradeData) { HttpHeaders responseHeaders = new HttpHeaders(); - responseHeaders.add("Responded", "value"); + responseHeaders.add(RESPONDED, "value"); ValueResult value = null; try { @@ -141,7 +142,7 @@ public ResponseEntity testProductValue(MultipartFile tradeData) { logger.info(value.toString()); return ResponseEntity.ok(value); } catch (Exception e) { - logger.error(FAILEDCALCULATION); + logger.error(FAILED_CALCULATION); logger.info(value.toString()); e.printStackTrace(); throw new RuntimeException(e); @@ -157,7 +158,7 @@ public ResponseEntity test() { HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.setContentType(MediaType.APPLICATION_JSON); - responseHeaders.add("Responded", "test"); + responseHeaders.add(RESPONDED, "test"); String totalResult = "Connect successful"; return new ResponseEntity<>(totalResult, responseHeaders, HttpStatus.OK); From 512334b5d3bbd90c7b66c38cfefa20fce087fab2 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Sat, 6 Apr 2024 15:39:13 +0200 Subject: [PATCH 049/105] NO_ISSUE, smaller code issues --- ...rtDerivativeContractScheduleGenerator.java | 2 +- .../smartcontract/demo/VisualiserSDC.java | 52 ++++++------ .../smartcontract/model/ExceptionId.java | 17 ++++ .../smartcontract/model/SDCException.java | 36 +++++++++ .../product/IRSwapGenerator.java | 7 +- .../product/xml/PlainSwapEditorHandler.java | 80 ++++++++++--------- .../product/xml/SDCXMLParser.java | 7 +- .../smartcontract/settlement/Settlements.java | 1 + .../settlement/ZonedDateTimeAdapter.java | 3 +- .../valuation/client/ValuationClient.java | 11 +-- .../implementation/MarginCalculator.java | 16 ++-- .../ConditionalSettlementCalculator.java | 3 +- .../curvecalibration/CalibrationDataItem.java | 5 +- .../curvecalibration/CalibrationDataset.java | 13 +-- .../CalibrationParserDataItems.java | 40 ++++------ .../CalibrationSpecProviderOis.java | 2 +- .../MarketDataGeneratorRandomFeed.java | 7 +- .../legacy/ReactiveMarketDataUpdater.java | 5 +- ...artDerivativeContractSettlementOracle.java | 5 +- .../ValuationOraclePlainSwap.java | 7 +- ...ontinouslyCompoundedBankAccountOracle.java | 1 + .../BasicAuthWebSecurityConfiguration.java | 7 +- .../service/controllers/InfoController.java | 19 +++-- .../PlainSwapEditorController.java | 11 +-- .../controllers/ValuationController.java | 25 +++--- .../service/utils/ResourceGovernor.java | 3 - .../client/WebSocketClientEndpoint.java | 12 ++- .../curvecalibration/CalibrationTests.java | 2 +- 28 files changed, 220 insertions(+), 179 deletions(-) create mode 100644 src/main/java/net/finmath/smartcontract/model/ExceptionId.java create mode 100644 src/main/java/net/finmath/smartcontract/model/SDCException.java diff --git a/src/main/java/net/finmath/smartcontract/contract/SmartDerivativeContractScheduleGenerator.java b/src/main/java/net/finmath/smartcontract/contract/SmartDerivativeContractScheduleGenerator.java index 8f4b33f04..30748ff47 100644 --- a/src/main/java/net/finmath/smartcontract/contract/SmartDerivativeContractScheduleGenerator.java +++ b/src/main/java/net/finmath/smartcontract/contract/SmartDerivativeContractScheduleGenerator.java @@ -121,7 +121,7 @@ public static SmartDerivativeContractSchedule getScheduleForBusinessDays(final S final AbstractBusinessdayCalendar bdCalendar = new BusinessdayCalendarExcludingTARGETHolidays(); - final List eventTimesList = new ArrayList(); + final List eventTimesList = new ArrayList<>(); LocalDate settlementDate = startDate; while (!settlementDate.isAfter(maturity)) { final SmartDerivativeContractSchedule.EventTimes event = new EventTimesImpl( diff --git a/src/main/java/net/finmath/smartcontract/demo/VisualiserSDC.java b/src/main/java/net/finmath/smartcontract/demo/VisualiserSDC.java index 0ead35bb1..c163247d0 100644 --- a/src/main/java/net/finmath/smartcontract/demo/VisualiserSDC.java +++ b/src/main/java/net/finmath/smartcontract/demo/VisualiserSDC.java @@ -35,6 +35,7 @@ * @author Björn Paffen * @author Stefanie Weddigen */ +@SuppressWarnings("java:S125") public class VisualiserSDC { private List seriesMarketValues; @@ -53,8 +54,8 @@ public static void main(final String[] args) throws Exception { final LocalDate startDate = LocalDate.of(2008, 1, 1); final LocalDate maturity = LocalDate.of(2012, 1, 3); final String fileName = "timeseriesdatamap.json"; - final DateTimeFormatter providedDateFormat = DateTimeFormatter.ofPattern("yyyyMMdd"); - final List scenarioList = CalibrationParserDataItems.getScenariosFromJsonFile(fileName).stream().filter(S -> S.getDate().toLocalDate().isAfter(startDate)).filter(S -> S.getDate().toLocalDate().isBefore(maturity)).collect(Collectors.toList()); + //final DateTimeFormatter providedDateFormat = DateTimeFormatter.ofPattern("yyyyMMdd"); + final List scenarioList = CalibrationParserDataItems.getScenariosFromJsonFile(fileName).stream().filter(s -> s.getDate().toLocalDate().isAfter(startDate)).filter(s -> s.getDate().toLocalDate().isBefore(maturity)).toList(); // CSV Method returns same List // final List scenarioList = IRScenarioGenerator.getScenariosFromCSVFile(fileName,providedDateFormat).stream().filter(S->S.getDate().toLocalDate().isAfter(startDate)).filter(S->S.getDate().toLocalDate().isBefore(maturity)).collect(Collectors.toList()); @@ -96,7 +97,7 @@ public static void main(final String[] args) throws Exception { } } - public void start() throws Exception { + public void start() { seriesMarketValues = new ArrayList<>(); @@ -116,30 +117,27 @@ public void start() throws Exception { plotMarketValue.setXAxisLabel("Date"); plotMarketValue.setYAxisLabel("Market Value"); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - // This method is invoked on Swing thread - final JFrame frame = new JFrame("Smart Derivative Contract: Settlement Visualization"); - final JFXPanel fxPanel = new JFXPanel(); - frame.add(fxPanel); - frame.setVisible(true); - frame.setSize(1600, 600); - // frame.setSize(960, 540+22); - - Platform.runLater(new Runnable() { - @Override - public void run() { - - final FlowPane root = new FlowPane(); - root.getChildren().addAll(new Group(plotMarginAccounts.get()), plotMarketValue.get()); - - final Scene scene = new Scene(root, 1600, 600); - scene.getStylesheets().add("barchart.css"); - fxPanel.setScene(scene); - } - }); - } + SwingUtilities.invokeLater(() -> { + // This method is invoked on Swing thread + final JFrame frame = new JFrame("Smart Derivative Contract: Settlement Visualization"); + final JFXPanel fxPanel = new JFXPanel(); + frame.add(fxPanel); + frame.setVisible(true); + frame.setSize(1600, 600); + // frame.setSize(960, 540+22); + + Platform.runLater(new Runnable() { + @Override + public void run() { + + final FlowPane root = new FlowPane(); + root.getChildren().addAll(new Group(plotMarginAccounts.get()), plotMarketValue.get()); + + final Scene scene = new Scene(root, 1600, 600); + scene.getStylesheets().add("barchart.css"); + fxPanel.setScene(scene); + } + }); }); } diff --git a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java new file mode 100644 index 000000000..df40b72bf --- /dev/null +++ b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java @@ -0,0 +1,17 @@ +package net.finmath.smartcontract.model; + +public enum ExceptionId { + SDC_001, + SDC_002, + SDC_003, + SDC_004, + SDC_005, + SDC_006, + SDC_007, + SDC_008, + SDC_009, + SDC_010, + SDC_011, + SDC_012, + SDC_013, +} \ No newline at end of file diff --git a/src/main/java/net/finmath/smartcontract/model/SDCException.java b/src/main/java/net/finmath/smartcontract/model/SDCException.java new file mode 100644 index 000000000..8e6db95c7 --- /dev/null +++ b/src/main/java/net/finmath/smartcontract/model/SDCException.java @@ -0,0 +1,36 @@ +package net.finmath.smartcontract.model; + + +public class SDCException extends RuntimeException { + private final String message; + + private final ExceptionId id; + + private Integer statusCode; + + public SDCException(ExceptionId id, String message) { + this.id = id; + this.message = message; + } + + public SDCException(ExceptionId id, String message, int statusCode) { + this.id = id; + this.message = message; + this.statusCode = statusCode; + } + + public ExceptionId getId() { + return id; + } + + public Integer getStatusCode() { + return statusCode; + } + + @Override + public String getMessage() { + return id + " " + message; + } +} + + diff --git a/src/main/java/net/finmath/smartcontract/product/IRSwapGenerator.java b/src/main/java/net/finmath/smartcontract/product/IRSwapGenerator.java index dbd2fff49..db908575a 100644 --- a/src/main/java/net/finmath/smartcontract/product/IRSwapGenerator.java +++ b/src/main/java/net/finmath/smartcontract/product/IRSwapGenerator.java @@ -19,7 +19,9 @@ */ public class IRSwapGenerator { - public static final Swap generateAnalyticSwapObject(final LocalDate startDate, final String maturityLabel, final double fixRate, final boolean isReceiveFix, final String forwardCurveName, final String discountCurveName) { + private IRSwapGenerator(){} + + public static Swap generateAnalyticSwapObject(final LocalDate startDate, final String maturityLabel, final double fixRate, final boolean isReceiveFix, final String forwardCurveName, final String discountCurveName) { final String frequencyLabel = forwardCurveName.contains("3M") ? "quarterly" : forwardCurveName.contains("6M") ? "semiannual" : forwardCurveName.contains("1M") ? "monthly" : "annual"; @@ -28,8 +30,7 @@ public static final Swap generateAnalyticSwapObject(final LocalDate startDate, f final SwapLeg floatLeg = new SwapLeg(Optional.of(LocalDateTime.of(startDate, LocalTime.of(0, 0))), scheduleFloat, forwardCurveName, 0.0, discountCurveName); final SwapLeg fixLeg = new SwapLeg(Optional.of(LocalDateTime.of(startDate, LocalTime.of(0, 0))), scheduleFix, "", fixRate, discountCurveName); - final Swap swap = isReceiveFix ? new Swap(fixLeg, floatLeg) : new Swap(floatLeg, fixLeg); - return swap; + return isReceiveFix ? new Swap(fixLeg, floatLeg) : new Swap(floatLeg, fixLeg); } diff --git a/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java b/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java index 30a162648..8fdb15d69 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java @@ -50,9 +50,11 @@ * @author Luca Bressan * @version alpha.1 */ +@SuppressWarnings("java:S125") public final class PlainSwapEditorHandler { //TODO: this code needs some cleaning up private static final Logger logger = LoggerFactory.getLogger(PlainSwapEditorHandler.class); + private static final String CONSTANT = "constant"; private final Smartderivativecontract smartDerivativeContract; private final Schema sdcmlSchema; private final Marshaller marshaller; @@ -75,7 +77,7 @@ public PlainSwapEditorHandler(final PlainSwapOperationRequest plainSwapOperation final SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); sdcmlSchema = schemaFactory.newSchema((new ClassPathResource(schemaPath)).getURL()); } catch (IOException | SAXException e) { - logger.error("Failed to recover XSD schema. The file '" + schemaPath + "' is missing, unreachable or invalid."); + logger.error("Failed to recover XSD schema. The file '{}' is missing, unreachable or invalid.", schemaPath); throw e; } @@ -213,23 +215,23 @@ public PlainSwapEditorHandler(final PlainSwapOperationRequest plainSwapOperation floatingLeg.resetDates.fixingDates.periodMultiplier = BigInteger.valueOf(plainSwapOperationRequest.getFloatingFixingDayOffset().longValue()); - logger.info("Reading back floating fixing date offset: " + floatingLeg.resetDates.fixingDates.periodMultiplier); + logger.info("Reading back floating fixing date offset: {}", floatingLeg.resetDates.fixingDates.periodMultiplier); floatingLeg.calculationPeriodAmount.calculation.dayCountFraction.value = plainSwapOperationRequest.getFloatingDayCountFraction(); - logger.info("Reading back floating day count fraction: " + floatingLeg.calculationPeriodAmount.calculation.dayCountFraction.value); + logger.info("Reading back floating day count fraction: {}", floatingLeg.calculationPeriodAmount.calculation.dayCountFraction.value); floatingLeg.paymentDates.paymentFrequency.periodMultiplier = BigInteger.valueOf(plainSwapOperationRequest.getFloatingPaymentFrequency().getPeriodMultiplier().longValue()); - logger.info("Reading back floating payment frequency period multiplier: " + floatingLeg.paymentDates.paymentFrequency.periodMultiplier); + logger.info("Reading back floating payment frequency period multiplier: {}", floatingLeg.paymentDates.paymentFrequency.periodMultiplier); floatingLeg.paymentDates.paymentFrequency.setPeriod(plainSwapOperationRequest.getFloatingPaymentFrequency().getPeriod()); - logger.info("Reading back floating payment frequency period: " + floatingLeg.paymentDates.paymentFrequency.period); + logger.info("Reading back floating payment frequency period: {}", floatingLeg.paymentDates.paymentFrequency.period); ((FloatingRateCalculation) floatingLeg.calculationPeriodAmount.calculation.getRateCalculation().getValue()).floatingRateIndex.value = plainSwapOperationRequest.getFloatingRateIndex(); - logger.info("Reading back floating rate index: " + ((FloatingRateCalculation) floatingLeg.calculationPeriodAmount.calculation.getRateCalculation().getValue()).floatingRateIndex.value); + logger.info("Reading back floating rate index: {}", ((FloatingRateCalculation) floatingLeg.calculationPeriodAmount.calculation.getRateCalculation().getValue()).floatingRateIndex.value); fixedLeg.calculationPeriodAmount.calculation.dayCountFraction.value = plainSwapOperationRequest.getFixedDayCountFraction(); - logger.info("Reading back fixed day count fraction " + fixedLeg.calculationPeriodAmount.calculation.dayCountFraction.value); + logger.info("Reading back fixed day count fraction {}", fixedLeg.calculationPeriodAmount.calculation.dayCountFraction.value); fixedLeg.calculationPeriodAmount.calculation.fixedRateSchedule.initialValue = BigDecimal.valueOf(plainSwapOperationRequest.getFixedRate()).setScale(12, RoundingMode.HALF_EVEN).divide(BigDecimal.valueOf(100L).setScale(12, RoundingMode.HALF_EVEN), RoundingMode.HALF_EVEN); - logger.info("Reading back fixed rate: " + fixedLeg.calculationPeriodAmount.calculation.fixedRateSchedule.initialValue); + logger.info("Reading back fixed rate: {}", fixedLeg.calculationPeriodAmount.calculation.fixedRateSchedule.initialValue); fixedLeg.paymentDates.paymentFrequency.periodMultiplier = BigInteger.valueOf(plainSwapOperationRequest.getFixedPaymentFrequency().getPeriodMultiplier().longValue()); - logger.info("Reading back fixed period multiplier: " + fixedLeg.paymentDates.paymentFrequency.periodMultiplier); + logger.info("Reading back fixed period multiplier: {}", fixedLeg.paymentDates.paymentFrequency.periodMultiplier); fixedLeg.paymentDates.paymentFrequency.period = plainSwapOperationRequest.getFixedPaymentFrequency().getPeriod(); - logger.info("Reading back fixed period: " + fixedLeg.paymentDates.paymentFrequency.period); + logger.info("Reading back fixed period: {}", fixedLeg.paymentDates.paymentFrequency.period); //TODO: ask people who know more about FPmL if the next lines are actually needed fixedLeg.calculationPeriodDates.calculationPeriodFrequency.periodMultiplier = BigInteger.valueOf(plainSwapOperationRequest.getFixedPaymentFrequency().getPeriodMultiplier().longValue()); @@ -290,26 +292,26 @@ private static void setSdcPartiesHeader(final PlainSwapOperationRequest tradeDes List partyList = new ArrayList<>(); Smartderivativecontract.Parties.Party party1 = new Smartderivativecontract.Parties.Party(); - logger.info("Setting id party1 for party " + tradeDescriptor.getFirstCounterparty()); + logger.info("Setting id party1 for party {}", tradeDescriptor.getFirstCounterparty()); party1.setName(tradeDescriptor.getFirstCounterparty().getFullName()); party1.setId("party1"); Smartderivativecontract.Parties.Party.MarginAccount marginAccount1 = new Smartderivativecontract.Parties.Party.MarginAccount(); - marginAccount1.setType("constant"); + marginAccount1.setType(CONSTANT); marginAccount1.setValue(tradeDescriptor.getMarginBufferAmount().floatValue()); Smartderivativecontract.Parties.Party.PenaltyFee penaltyFee1 = new Smartderivativecontract.Parties.Party.PenaltyFee(); - penaltyFee1.setType("constant"); + penaltyFee1.setType(CONSTANT); penaltyFee1.setValue(tradeDescriptor.getTerminationFeeAmount().floatValue()); party1.setAddress("0x0"); - logger.info("Setting id party2 for party " + tradeDescriptor.getSecondCounterparty()); + logger.info("Setting id party2 for party {}", tradeDescriptor.getSecondCounterparty()); Smartderivativecontract.Parties.Party party2 = new Smartderivativecontract.Parties.Party(); party2.setName(tradeDescriptor.getSecondCounterparty().getFullName()); party2.setId("party2"); Smartderivativecontract.Parties.Party.MarginAccount marginAccount2 = new Smartderivativecontract.Parties.Party.MarginAccount(); - marginAccount2.setType("constant"); + marginAccount2.setType(CONSTANT); marginAccount2.setValue(tradeDescriptor.getMarginBufferAmount().floatValue()); Smartderivativecontract.Parties.Party.PenaltyFee penaltyFee2 = new Smartderivativecontract.Parties.Party.PenaltyFee(); - penaltyFee2.setType("constant"); + penaltyFee2.setType(CONSTANT); penaltyFee2.setValue(tradeDescriptor.getTerminationFeeAmount().floatValue()); party2.setAddress("0x0"); @@ -406,9 +408,9 @@ public List getSchedule(LegSelector legSelector, String marketDa default -> throw new IllegalArgumentException("Failed to detect leg type"); } final LocalDate startDate = swapLeg.getCalculationPeriodDates().getEffectiveDate().getUnadjustedDate().getValue().toGregorianCalendar().toZonedDateTime().toLocalDate(); - logger.info("Start date detected: " + startDate.toString()); + logger.info("Start date detected: {]", startDate.toString()); final LocalDate maturityDate = swapLeg.getCalculationPeriodDates().getTerminationDate().getUnadjustedDate().getValue().toGregorianCalendar().toZonedDateTime().toLocalDate(); - logger.info("Maturity date detected: " + maturityDate.toString()); + logger.info("Maturity date detected: {}", maturityDate.toString()); int fixingOffsetDays = 0; try { fixingOffsetDays = swapLeg.getResetDates().getFixingDates().getPeriodMultiplier().intValue(); @@ -432,16 +434,17 @@ public List getSchedule(LegSelector legSelector, String marketDa case FOLLOWING -> dateRollConvention = BusinessdayCalendar.DateRollConvention.FOLLOWING; case MODFOLLOWING -> dateRollConvention = BusinessdayCalendar.DateRollConvention.MODIFIED_FOLLOWING; case NONE -> dateRollConvention = BusinessdayCalendar.DateRollConvention.UNADJUSTED; - default -> throw new IllegalArgumentException("Unrecognized date roll convention: " + swapLeg.getPaymentDates().getPaymentDatesAdjustments().getBusinessDayConvention()); + default -> + throw new IllegalArgumentException("Unrecognized date roll convention: " + swapLeg.getPaymentDates().getPaymentDatesAdjustments().getBusinessDayConvention()); } - logger.info("Date roll convention detected: " + dateRollConvention); + logger.info("Date roll convention detected: {}", dateRollConvention); final ScheduleGenerator.DaycountConvention daycountConvention = ScheduleGenerator.DaycountConvention.getEnum(swapLeg.getCalculationPeriodAmount().getCalculation().getDayCountFraction().getValue()); ScheduleGenerator.Frequency frequency = null; final int multiplier = swapLeg.getPaymentDates().getPaymentFrequency().getPeriodMultiplier().intValue(); - logger.info("Reading period symbol: " + swapLeg.getPaymentDates().getPaymentFrequency().getPeriod()); + logger.info("Reading period symbol: {}", swapLeg.getPaymentDates().getPaymentFrequency().getPeriod()); switch (swapLeg.getPaymentDates().getPaymentFrequency().getPeriod()) { case "D" -> { if (multiplier == 1) { @@ -457,13 +460,15 @@ public List getSchedule(LegSelector legSelector, String marketDa case 1 -> ScheduleGenerator.Frequency.MONTHLY; case 3 -> ScheduleGenerator.Frequency.QUARTERLY; case 6 -> ScheduleGenerator.Frequency.SEMIANNUAL; - default -> throw new IllegalArgumentException("Unknown periodMultiplier " + swapLeg.getPaymentDates().getPaymentFrequency().getPeriodMultiplier().intValue() + "."); + default -> + throw new IllegalArgumentException("Unknown periodMultiplier " + swapLeg.getPaymentDates().getPaymentFrequency().getPeriodMultiplier().intValue() + "."); }; - default -> throw new IllegalArgumentException("Unknown period " + swapLeg.getPaymentDates().getPaymentFrequency().getPeriod() + "."); + default -> + throw new IllegalArgumentException("Unknown period " + swapLeg.getPaymentDates().getPaymentFrequency().getPeriod() + "."); } //build schedule - logger.info("Payment frequency detected: " + Objects.requireNonNull(frequency)); + logger.info("Payment frequency detected: {}", Objects.requireNonNull(frequency)); final ScheduleDescriptor scheduleDescriptor = new ScheduleDescriptor(startDate, maturityDate, frequency, daycountConvention, ScheduleGenerator.ShortPeriodConvention.LAST, dateRollConvention, new BusinessdayCalendarExcludingTARGETHolidays(), fixingOffsetDays, paymentOffsetDays); @@ -513,9 +518,9 @@ public List getSchedule(LegSelector legSelector, MarketDataSet m default -> throw new IllegalArgumentException("Failed to detect leg type"); } final LocalDate startDate = swapLeg.getCalculationPeriodDates().getEffectiveDate().getUnadjustedDate().getValue().toGregorianCalendar().toZonedDateTime().toLocalDate(); - logger.info("Start date detected: " + startDate.toString()); + logger.info("Start date detected: {}", startDate.toString()); final LocalDate maturityDate = swapLeg.getCalculationPeriodDates().getTerminationDate().getUnadjustedDate().getValue().toGregorianCalendar().toZonedDateTime().toLocalDate(); - logger.info("Maturity date detected: " + maturityDate.toString()); + logger.info("Maturity date detected: {}", maturityDate.toString()); int fixingOffsetDays = 0; try { fixingOffsetDays = swapLeg.getResetDates().getFixingDates().getPeriodMultiplier().intValue(); @@ -539,16 +544,17 @@ public List getSchedule(LegSelector legSelector, MarketDataSet m case FOLLOWING -> dateRollConvention = BusinessdayCalendar.DateRollConvention.FOLLOWING; case MODFOLLOWING -> dateRollConvention = BusinessdayCalendar.DateRollConvention.MODIFIED_FOLLOWING; case NONE -> dateRollConvention = BusinessdayCalendar.DateRollConvention.UNADJUSTED; - default -> throw new IllegalArgumentException("Unrecognized date roll convention: " + swapLeg.getPaymentDates().getPaymentDatesAdjustments().getBusinessDayConvention()); + default -> + throw new IllegalArgumentException("Unrecognized date roll convention: " + swapLeg.getPaymentDates().getPaymentDatesAdjustments().getBusinessDayConvention()); } - logger.info("Date roll convention detected: " + dateRollConvention); + logger.info("Date roll convention detected: {}", dateRollConvention); final ScheduleGenerator.DaycountConvention daycountConvention = ScheduleGenerator.DaycountConvention.getEnum(swapLeg.getCalculationPeriodAmount().getCalculation().getDayCountFraction().getValue()); ScheduleGenerator.Frequency frequency = null; final int multiplier = swapLeg.getPaymentDates().getPaymentFrequency().getPeriodMultiplier().intValue(); - logger.info("Reading period symbol: " + swapLeg.getPaymentDates().getPaymentFrequency().getPeriod()); + logger.info("Reading period symbol: {}", swapLeg.getPaymentDates().getPaymentFrequency().getPeriod()); switch (swapLeg.getPaymentDates().getPaymentFrequency().getPeriod()) { case "D" -> { if (multiplier == 1) { @@ -564,13 +570,15 @@ public List getSchedule(LegSelector legSelector, MarketDataSet m case 1 -> ScheduleGenerator.Frequency.MONTHLY; case 3 -> ScheduleGenerator.Frequency.QUARTERLY; case 6 -> ScheduleGenerator.Frequency.SEMIANNUAL; - default -> throw new IllegalArgumentException("Unknown periodMultiplier " + swapLeg.getPaymentDates().getPaymentFrequency().getPeriodMultiplier().intValue() + "."); + default -> + throw new IllegalArgumentException("Unknown periodMultiplier " + swapLeg.getPaymentDates().getPaymentFrequency().getPeriodMultiplier().intValue() + "."); }; - default -> throw new IllegalArgumentException("Unknown period " + swapLeg.getPaymentDates().getPaymentFrequency().getPeriod() + "."); + default -> + throw new IllegalArgumentException("Unknown period " + swapLeg.getPaymentDates().getPaymentFrequency().getPeriod() + "."); } //build schedule - logger.info("Payment frequency detected: " + Objects.requireNonNull(frequency)); + logger.info("Payment frequency detected: {}", Objects.requireNonNull(frequency)); final ScheduleDescriptor scheduleDescriptor = new ScheduleDescriptor(startDate, maturityDate, frequency, daycountConvention, ScheduleGenerator.ShortPeriodConvention.LAST, dateRollConvention, new BusinessdayCalendarExcludingTARGETHolidays(), fixingOffsetDays, paymentOffsetDays); @@ -657,12 +665,8 @@ private AnalyticModel getAnalyticModel(MarketDataSet marketData, Schedule schedu SmartDerivativeContractDescriptor productDescriptor = null; try { productDescriptor = SDCXMLParser.parse(this.getContractAsXmlString()); - } catch (ParserConfigurationException e) { - throw new RuntimeException(e); - } catch (SAXException e) { - throw new RuntimeException(e); - } catch (JAXBException e) { - throw new RuntimeException(e); + } catch (ParserConfigurationException | SAXException | JAXBException e) { + throw new SDCException(ExceptionId.SDC_005, e.getMessage()); } Set cdi = new HashSet<>(); diff --git a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java index feed62dba..4d8207ff6 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java @@ -1,6 +1,8 @@ package net.finmath.smartcontract.product.xml; import jakarta.xml.bind.*; +import net.finmath.smartcontract.model.ExceptionId; +import net.finmath.smartcontract.model.SDCException; import net.finmath.smartcontract.settlement.Settlements; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; @@ -157,7 +159,7 @@ public static T unmarshalXml(String xml, Class t) { Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); return (T) unmarshaller.unmarshal(reader); } catch (java.lang.Exception e) { - throw new RuntimeException(e); + throw new SDCException(ExceptionId.SDC_007, e.getMessage()); } } @@ -165,12 +167,11 @@ public static String marshalClassToXMLString(T t) { try { JAXBContext jaxbContextSettlement = JAXBContext.newInstance(Settlements.class); Marshaller jaxbMarshaller = jaxbContextSettlement.createMarshaller(); - //jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); StringWriter writer = new StringWriter(); jaxbMarshaller.marshal(t, writer); return writer.toString(); } catch (JAXBException e) { - throw new RuntimeException(e); + throw new SDCException(ExceptionId.SDC_006, e.getMessage()); } } } diff --git a/src/main/java/net/finmath/smartcontract/settlement/Settlements.java b/src/main/java/net/finmath/smartcontract/settlement/Settlements.java index 2aa41134e..487b32058 100644 --- a/src/main/java/net/finmath/smartcontract/settlement/Settlements.java +++ b/src/main/java/net/finmath/smartcontract/settlement/Settlements.java @@ -12,6 +12,7 @@ @XmlRootElement public class Settlements { + @SuppressWarnings("java:S1700") private List settlements; @XmlElement(name = "settlement") diff --git a/src/main/java/net/finmath/smartcontract/settlement/ZonedDateTimeAdapter.java b/src/main/java/net/finmath/smartcontract/settlement/ZonedDateTimeAdapter.java index 026a4a7e3..43e5e6763 100644 --- a/src/main/java/net/finmath/smartcontract/settlement/ZonedDateTimeAdapter.java +++ b/src/main/java/net/finmath/smartcontract/settlement/ZonedDateTimeAdapter.java @@ -3,7 +3,6 @@ import jakarta.xml.bind.annotation.adapters.XmlAdapter; import java.text.ParseException; -import java.time.LocalDateTime; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; @@ -16,7 +15,7 @@ public String marshal(ZonedDateTime v) { } @Override - public ZonedDateTime unmarshal(String str) throws ParseException { + public ZonedDateTime unmarshal(String str) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss"); return ZonedDateTime.parse(str, formatter); } diff --git a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java index f7ea68b33..5468bef3b 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java +++ b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java @@ -4,16 +4,12 @@ import net.finmath.smartcontract.model.MarginResult; import net.finmath.smartcontract.model.MarketDataList; import net.finmath.smartcontract.product.xml.SDCXMLParser; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.http.*; import org.springframework.web.client.RestTemplate; import java.net.URI; import java.net.URISyntaxException; import java.nio.charset.StandardCharsets; -import java.time.LocalDateTime; -import java.time.OffsetDateTime; import java.util.Base64; import java.util.Objects; @@ -25,10 +21,9 @@ * @author Peter Kohl-Landgraf * @author Dietmar Schnabel */ +@SuppressWarnings("java:S125") public class ValuationClient { - private static final Logger logger = LoggerFactory.getLogger(ValuationClient.class); - public static void main(String[] args) throws Exception { String url = "http://localhost:8080"; String authString = "user1:password1"; @@ -50,9 +45,9 @@ public static void main(String[] args) throws Exception { } final String marketDataStartXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml")).readAllBytes(), StandardCharsets.UTF_8); - final MarketDataList marketDataStart = SDCXMLParser.unmarshalXml(marketDataStartXml, MarketDataList.class); + //final MarketDataList marketDataStart = SDCXMLParser.unmarshalXml(marketDataStartXml, MarketDataList.class); final String marketDataEndXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml")).readAllBytes(), StandardCharsets.UTF_8); - final MarketDataList marketDataEnd = SDCXMLParser.unmarshalXml(marketDataEndXml, MarketDataList.class); + //final MarketDataList marketDataEnd = SDCXMLParser.unmarshalXml(marketDataEndXml, MarketDataList.class); final String product = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); final MarginRequest marginRequest = new MarginRequest().marketDataStart(marketDataStartXml).marketDataEnd(marketDataEndXml).tradeData(product).valuationDate(""); diff --git a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java index fddc820b6..a22b157cb 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java @@ -12,14 +12,13 @@ import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataset; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationParserDataItems; +import net.finmath.smartcontract.valuation.marketdata.curvecalibration.Calibrator; import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; import net.finmath.smartcontract.valuation.oracle.SmartDerivativeContractSettlementOracle; import net.finmath.smartcontract.valuation.oracle.interestrates.ValuationOraclePlainSwap; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; import net.finmath.smartcontract.product.xml.SDCXMLParser; import org.apache.commons.lang3.Validate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.math.BigDecimal; import java.time.LocalDate; @@ -41,6 +40,8 @@ public class MarginCalculator { private final DoubleUnaryOperator rounding; + private static final String FORWARD_EUR_6M = "forward-EUR-6M"; + private static final String DISCOUNT_EUR_OIS = Calibrator.DISCOUNT_EUR_OIS; public MarginCalculator(DoubleUnaryOperator rounding) {this.rounding = rounding;} @@ -77,7 +78,7 @@ public MarginResult getValue(String marketDataStart, String marketDataEnd, Strin } String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); - InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); + InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, FORWARD_EUR_6M, DISCOUNT_EUR_OIS).getProductDescriptor(productDescriptor.getUnderlying()); LocalDateTime startDate = setStart.getDate(); LocalDateTime endDate = setEnd.getDate(); @@ -124,7 +125,7 @@ public MarginResult getValue(MarketDataList marketDataStart, MarketDataList mark marketDataListEnd.add(new CalibrationDataset(calibrationDataItemsEnd, marketDataEnd.getRequestTimeStamp())); String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); - InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); + InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, FORWARD_EUR_6M, DISCOUNT_EUR_OIS).getProductDescriptor(productDescriptor.getUnderlying()); LocalDateTime startDate = marketDataListStart.get(0).getDate(); LocalDateTime endDate = marketDataListEnd.get(0).getDate(); @@ -140,7 +141,7 @@ public ValueResult getValue(String marketData, String productData) throws Except SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); - InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); + InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, FORWARD_EUR_6M, DISCOUNT_EUR_OIS).getProductDescriptor(productDescriptor.getUnderlying()); CalibrationDataset set = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketData,productDescriptor.getMarketdataItemList()); @@ -172,7 +173,7 @@ public ValueResult getValue(MarketDataList marketData, String productData) throw List marketDataList = new ArrayList<>(); marketDataList.add(new CalibrationDataset(calibrationDataItems, marketData.getRequestTimeStamp())); String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); - InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, "forward-EUR-6M", "discount-EUR-OIS").getProductDescriptor(productDescriptor.getUnderlying()); + InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, FORWARD_EUR_6M, DISCOUNT_EUR_OIS).getProductDescriptor(productDescriptor.getUnderlying()); LocalDateTime endDate = marketDataList.get(0).getDate(); double value = calculateMargin(marketDataList, null, endDate, productDescriptor, underlying); @@ -189,9 +190,8 @@ public ValueResult getValue(MarketDataList marketData, String productData) throw * @param productDescriptor The product descriptor (wrapper to the product XML) * @param underlying The underlying descriptor (wrapper to the underlying XML) * @return The margin - * @throws Exception Exception */ - private double calculateMargin(List marketDataList, LocalDateTime startDate, LocalDateTime endState, SmartDerivativeContractDescriptor productDescriptor, InterestRateSwapProductDescriptor underlying) throws Exception { + private double calculateMargin(List marketDataList, LocalDateTime startDate, LocalDateTime endState, SmartDerivativeContractDescriptor productDescriptor, InterestRateSwapProductDescriptor underlying) { // Build product LocalDate referenceDate = productDescriptor.getTradeDate().toLocalDate(); diff --git a/src/main/java/net/finmath/smartcontract/valuation/implementation/reactive/ConditionalSettlementCalculator.java b/src/main/java/net/finmath/smartcontract/valuation/implementation/reactive/ConditionalSettlementCalculator.java index 57d74e681..4c2089324 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/implementation/reactive/ConditionalSettlementCalculator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/implementation/reactive/ConditionalSettlementCalculator.java @@ -1,15 +1,14 @@ package net.finmath.smartcontract.valuation.implementation.reactive; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataset; -import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationParserDataItems; import net.finmath.smartcontract.model.ValueResult; import net.finmath.smartcontract.valuation.implementation.MarginCalculator; import java.io.Serializable; import java.math.BigDecimal; -import java.time.format.DateTimeFormatter; import java.util.function.Function; +//TODO check if needed, not used public class ConditionalSettlementCalculator implements Function, Serializable { private BigDecimal resultTriggerValue; diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataItem.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataItem.java index 7468396e7..ee3ddd5ee 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataItem.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataItem.java @@ -7,8 +7,9 @@ import java.util.List; import java.util.Objects; +@SuppressWarnings("java:S125") public class CalibrationDataItem { - private static final String regex = "((?<=[a-zA-Z])(?=[0-9]))|((?<=[0-9])(?=[a-zA-Z]))"; + private static final String REGEX = "((?<=[a-zA-Z])(?=[0-9]))|((?<=[0-9])(?=[a-zA-Z]))"; public static class Spec { @@ -103,7 +104,7 @@ public Double getQuote() { public Integer getDaysToMaturity() { - List list = Arrays.asList(getSpec().getMaturity().split(regex)); + List list = Arrays.asList(getSpec().getMaturity().split(REGEX)); int nTimeUnits = Integer.parseInt(list.get(0)); String timeUnitKey = list.get(1); if (timeUnitKey.equals("D")) diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java index 240a2777b..ea7e9d255 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java @@ -15,16 +15,18 @@ * * @author Peter Kohl-Landgraf */ +@SuppressWarnings("java:S125") public class CalibrationDataset { + private static final String FIXING = "Fixing"; LocalDateTime scenarioDate; Set calibrationDataItems; Set fixingDataItems; public CalibrationDataset(final Set curveDataPointSet, final LocalDateTime scenarioDate) { this.scenarioDate = scenarioDate; - this.fixingDataItems = curveDataPointSet.stream().filter(dataItem -> dataItem.getProductName().equals("Fixing")).sorted(Comparator.comparing(CalibrationDataItem::getDate)).collect(Collectors.toCollection(LinkedHashSet::new)); - this.calibrationDataItems = curveDataPointSet.stream().filter(dataItem -> !dataItem.getProductName().equals("Fixing")).sorted(Comparator.comparing(CalibrationDataItem::getDaysToMaturity)).collect(Collectors.toCollection(LinkedHashSet::new)); + this.fixingDataItems = curveDataPointSet.stream().filter(dataItem -> dataItem.getProductName().equals(FIXING)).sorted(Comparator.comparing(CalibrationDataItem::getDate)).collect(Collectors.toCollection(LinkedHashSet::new)); + this.calibrationDataItems = curveDataPointSet.stream().filter(dataItem -> !dataItem.getProductName().equals(FIXING)).sorted(Comparator.comparing(CalibrationDataItem::getDaysToMaturity)).collect(Collectors.toCollection(LinkedHashSet::new)); } @@ -50,7 +52,7 @@ public CalibrationDataset getClonedFixingsAdded(Set newFixi clone.addAll(this.calibrationDataItems); clone.addAll(this.fixingDataItems); newFixingDataItems.stream().forEach(newFixing -> { - if (newFixing.getProductName().equals("Fixing")) { + if (newFixing.getProductName().equals(FIXING)) { if (!this.fixingDataItems.stream().filter(fixing -> fixing.getCurveName().equals(newFixing.getCurveName()) && fixing.getDate().equals(newFixing.getDate())).findAny().isPresent()) clone.add(newFixing); } @@ -95,8 +97,7 @@ public String serializeToJson() { nestedMap.get(date).get(fixingKey).get(item.getSpec().getCurveName()).get(item.getSpec().getProductName()).put(item.getDateString(), item.getQuote()); /*Date is mapped to Fixing*/ } try { - String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(nestedMap); - return json; + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(nestedMap); } catch (Exception e) { return null; } @@ -114,7 +115,7 @@ public String serializeToJson() { public Stream getDataAsCalibrationDataPointStream(final CalibrationParser parser) { // TODO There are possilby items that have maturity 0D. These are filteres out here. TODO - check why items with maturity 0D occure. /* Return only calibraiton specs EXCEPT Past Fixings and spot data */ - return parser.parse(calibrationDataItems.stream().filter(dataItem -> !dataItem.getProductName().equals("Fixing") && !dataItem.getProductName().equals("Deposit") && !dataItem.getSpec().getMaturity().equals("0D"))); + return parser.parse(calibrationDataItems.stream().filter(dataItem -> !dataItem.getProductName().equals(FIXING) && !dataItem.getProductName().equals("Deposit") && !dataItem.getSpec().getMaturity().equals("0D"))); } public Set getDataPoints() { diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java index cf19a6f18..756757c81 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java @@ -1,14 +1,13 @@ package net.finmath.smartcontract.valuation.marketdata.curvecalibration; import com.fasterxml.jackson.databind.ObjectMapper; -import jakarta.xml.bind.JAXBContext; -import jakarta.xml.bind.Unmarshaller; +import net.finmath.smartcontract.model.ExceptionId; import net.finmath.smartcontract.model.MarketDataList; +import net.finmath.smartcontract.model.SDCException; import net.finmath.smartcontract.product.xml.SDCXMLParser; import org.slf4j.LoggerFactory; import java.io.IOException; -import java.io.StringReader; import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets; import java.time.LocalDate; @@ -21,6 +20,7 @@ /** * Parses calibration data points and converts it to calibration specs */ +@SuppressWarnings("java:S125") public class CalibrationParserDataItems implements CalibrationParser { @@ -96,7 +96,7 @@ public static List getScenariosFromJsonFile(final String fil * @throws IOException File not found * @throws UnsupportedEncodingException UnsupportedEncodingException */ - public static List getScenariosFromJsonString(final String jsonString) throws UnsupportedEncodingException, IOException { + public static List getScenariosFromJsonString(final String jsonString) throws IOException { final String content; content = jsonString; @@ -104,9 +104,9 @@ public static List getScenariosFromJsonString(final String j } - public static CalibrationDataset getCalibrationDataSetFromXML(final String xmlString, List dataSpecs) throws Exception { - StringReader reader = new StringReader(xmlString); - JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); + public static CalibrationDataset getCalibrationDataSetFromXML(final String xmlString, List dataSpecs) { + //StringReader reader = new StringReader(xmlString); + //JAXBContext jaxbContext = JAXBContext.newInstance(MarketDataList.class); MarketDataList marketDataList = SDCXMLParser.unmarshalXml(xmlString, MarketDataList.class); Set calibrationDataItems = new LinkedHashSet<>(); @@ -118,13 +118,9 @@ public static CalibrationDataset getCalibrationDataSetFromXML(final String xmlS }); if(calibrationDataItems.isEmpty()) - throw new RuntimeException("No calibration items detected."); + throw new SDCException(ExceptionId.SDC_002, "No calibration items detected."); - CalibrationDataset set = new CalibrationDataset(calibrationDataItems, marketDataList.getRequestTimeStamp()); - - - - return set; + return new CalibrationDataset(calibrationDataItems, marketDataList.getRequestTimeStamp()); } /** @@ -150,7 +146,7 @@ private static final List getScenariosFromJsonContent(final final ObjectMapper mapper = new ObjectMapper(); final Map>>>> timeSeriesDatamap = mapper.readValue(content, new LinkedHashMap>>>>().getClass()); - final List scenarioList = timeSeriesDatamap.entrySet().stream() + return timeSeriesDatamap.entrySet().stream() .map( scenarioData -> { final String timeStampStr = scenarioData.getKey(); @@ -165,9 +161,7 @@ private static final List getScenariosFromJsonContent(final return scenario; }) .sorted((scenario1, scenario2) -> scenario1.getDate().compareTo(scenario2.getDate())) - .collect(Collectors.toList()); - - return scenarioList; + .toList(); } private static LocalDateTime parseTimestampString(String timeStampString) { @@ -188,27 +182,23 @@ private static LocalDateTime parseTimestampString(String timeStampString) { private static Set getCalibrationDataItemSet(final String curveKey, final Map> typeCurveMap, final LocalDateTime timestamp) { - Set datapoints = typeCurveMap.entrySet().stream().flatMap(entry -> entry.getValue().entrySet().stream().map( + return typeCurveMap.entrySet().stream().flatMap(entry -> entry.getValue().entrySet().stream().map( curvePointEntry -> { String specKey = curveKey + "_" + entry.getKey() + "_" + curvePointEntry.getKey(); CalibrationDataItem.Spec spec = new CalibrationDataItem.Spec(specKey, curveKey, entry.getKey(), curvePointEntry.getKey()); - CalibrationDataItem dataItem = new CalibrationDataItem(spec, curvePointEntry.getValue(), timestamp); - return dataItem; + return new CalibrationDataItem(spec, curvePointEntry.getValue(), timestamp); })).collect(Collectors.toCollection(LinkedHashSet::new)); - return datapoints; } private static Set getFixingDataItemSet(final String curveKey, final Map> typeCurveMap, final LocalDateTime timestamp) { - Set datapoints = typeCurveMap.entrySet().stream().flatMap(entry -> entry.getValue().entrySet().stream().map( + return typeCurveMap.entrySet().stream().flatMap(entry -> entry.getValue().entrySet().stream().map( curvePointEntry -> { LocalDate fixingDate = LocalDate.parse(curvePointEntry.getKey(), DateTimeFormatter.ofPattern("yyyy-MM-dd")); String specKey = curveKey + "_" + entry.getKey() + "_" + curvePointEntry.getKey(); CalibrationDataItem.Spec spec = new CalibrationDataItem.Spec(specKey, curveKey, entry.getKey(), "1D"); - CalibrationDataItem dataItem = new CalibrationDataItem(spec, curvePointEntry.getValue(), fixingDate.atStartOfDay()); - return dataItem; + return new CalibrationDataItem(spec, curvePointEntry.getValue(), fixingDate.atStartOfDay()); })).collect(Collectors.toCollection(LinkedHashSet::new)); - return datapoints; } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationSpecProviderOis.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationSpecProviderOis.java index 46131cfd0..e6a50f09b 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationSpecProviderOis.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationSpecProviderOis.java @@ -29,6 +29,6 @@ public CalibratedCurves.CalibrationSpec getCalibrationSpec(final CalibrationCont final Schedule scheduleInterfacePay = ScheduleGenerator.createScheduleFromConventions(ctx.getReferenceDate(), 2, "0D", maturityLabel, frequency, "act/360", "first", "modified_following", new BusinessdayCalendarExcludingTARGETHolidays(), 0, 1); final double calibrationTime = scheduleInterfaceRec.getPayment(scheduleInterfaceRec.getNumberOfPeriods() - 1); - return new CalibratedCurves.CalibrationSpec(String.format("EUR-OIS-%1$s", maturityLabel), "Swap", scheduleInterfaceRec, "forward-EUR-OIS", 0.0, "discount-EUR-OIS", scheduleInterfacePay, "", swapRate, "discount-EUR-OIS", "discount-EUR-OIS", calibrationTime); + return new CalibratedCurves.CalibrationSpec(String.format("EUR-OIS-%1$s", maturityLabel), "Swap", scheduleInterfaceRec, "forward-EUR-OIS", 0.0, Calibrator.DISCOUNT_EUR_OIS, scheduleInterfacePay, "", swapRate, Calibrator.DISCOUNT_EUR_OIS, Calibrator.DISCOUNT_EUR_OIS, calibrationTime); } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java index f719203d1..2ba6b9f91 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java @@ -6,8 +6,6 @@ import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataset; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationParserDataItems; import net.finmath.smartcontract.model.MarketDataList; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.time.LocalDateTime; import java.time.Period; @@ -22,8 +20,6 @@ public class MarketDataGeneratorRandomFeed implements MarketDataGeneratorInterfa LocalDateTime endTime; CalibrationDataset referenceSet; - private static final Logger logger = LoggerFactory.getLogger(MarketDataGeneratorRandomFeed.class); - int simulationFrequencySec; public MarketDataGeneratorRandomFeed(Period processingPeriod, String referenceMarketDataStr, List mdSpecs) throws Exception { @@ -52,8 +48,7 @@ public Observable asObservable() { private CalibrationDataset getShiftedReferenceSet() { double randomShiftBp = ThreadLocalRandom.current().nextDouble(-1, 1) / 10000; Set shifted = this.referenceSet.getDataPoints().stream().map(datapoint -> datapoint.getClonedShifted(1 + randomShiftBp)).collect(Collectors.toSet()); - CalibrationDataset set = new CalibrationDataset(shifted, this.referenceSet.getDate()); - return set; + return new CalibrationDataset(shifted, this.referenceSet.getDate()); } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/legacy/ReactiveMarketDataUpdater.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/legacy/ReactiveMarketDataUpdater.java index 9ada6cef7..5335ada70 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/legacy/ReactiveMarketDataUpdater.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/legacy/ReactiveMarketDataUpdater.java @@ -70,6 +70,7 @@ private void reset() { /** * Called when handshake is complete and websocket is open, send login */ + @Override public void onConnected(WebSocket websocket, Map> headers) throws Exception { this.sendLoginRequest(websocket, authJson.getString("access_token"), true); logger.info("WebSocket successfully connected! Resetting connection."); @@ -85,7 +86,7 @@ public Observable asObservable() { return this.publishSubject; } - + @Override public void onTextMessage(WebSocket websocket, String message) { @@ -118,7 +119,7 @@ public void onTextMessage(WebSocket websocket, String message) { } catch (JsonProcessingException | NullPointerException | IllegalStateException e) { - logger.info("JSON mapper is failing silently in order to skip message:" + System.lineSeparator() + message + System.lineSeparator() + "as it is not a quote/fixing update."); + logger.info("JSON mapper is failing silently in order to skip message:{}{}{}as it is not a quote/fixing update.", System.lineSeparator(), message, System.lineSeparator()); } if (!requestSent) { sendRICRequest(websocket); diff --git a/src/main/java/net/finmath/smartcontract/valuation/oracle/SmartDerivativeContractSettlementOracle.java b/src/main/java/net/finmath/smartcontract/valuation/oracle/SmartDerivativeContractSettlementOracle.java index 3ee45fb70..3a5f50362 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/oracle/SmartDerivativeContractSettlementOracle.java +++ b/src/main/java/net/finmath/smartcontract/valuation/oracle/SmartDerivativeContractSettlementOracle.java @@ -38,12 +38,9 @@ public SmartDerivativeContractSettlementOracle(final ValuationOracle derivativeV * @return The margin. */ public Double getMargin(final LocalDateTime marginPeriodStart, final LocalDateTime marginPeriodEnd) { - final double valueDerivativeCurrent = derivativeValuationOracle.getValue(marginPeriodEnd, marginPeriodEnd); final double valueDerivativePrevious = derivativeValuationOracle.getValue(marginPeriodEnd, marginPeriodStart); - final double valuationChange = valueDerivativeCurrent - valueDerivativePrevious; - - return valuationChange; + return valueDerivativeCurrent - valueDerivativePrevious; } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/oracle/interestrates/ValuationOraclePlainSwap.java b/src/main/java/net/finmath/smartcontract/valuation/oracle/interestrates/ValuationOraclePlainSwap.java index 05332f338..47456f610 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/oracle/interestrates/ValuationOraclePlainSwap.java +++ b/src/main/java/net/finmath/smartcontract/valuation/oracle/interestrates/ValuationOraclePlainSwap.java @@ -2,6 +2,8 @@ import net.finmath.marketdata.model.AnalyticModel; import net.finmath.marketdata.products.Swap; +import net.finmath.smartcontract.model.ExceptionId; +import net.finmath.smartcontract.model.SDCException; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.*; import net.finmath.smartcontract.valuation.oracle.ValuationOracle; import net.finmath.time.FloatingpointDate; @@ -90,11 +92,10 @@ public Double getValue(final LocalDateTime evaluationDate, final LocalDateTime m referenceDate.atStartOfDay(), marketDataTime); final double valueWithCurves = product.getValue(evaluationTime, calibratedModel) * notionalAmount; - - + return rounding.applyAsDouble(valueWithCurves); } catch (final Exception e) { - throw new RuntimeException(e); + throw new SDCException(ExceptionId.SDC_012, e.getMessage()); } } else { return null; diff --git a/src/main/java/net/finmath/smartcontract/valuation/oracle/simulated/ContinouslyCompoundedBankAccountOracle.java b/src/main/java/net/finmath/smartcontract/valuation/oracle/simulated/ContinouslyCompoundedBankAccountOracle.java index 3d01a809b..e5baaa14b 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/oracle/simulated/ContinouslyCompoundedBankAccountOracle.java +++ b/src/main/java/net/finmath/smartcontract/valuation/oracle/simulated/ContinouslyCompoundedBankAccountOracle.java @@ -20,6 +20,7 @@ * * @author Christian Fries */ +//TODO check if needed, not used public class ContinouslyCompoundedBankAccountOracle implements StochasticValuationOracle { private final TimeDiscretization timeDiscretization; diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/config/BasicAuthWebSecurityConfiguration.java b/src/main/java/net/finmath/smartcontract/valuation/service/config/BasicAuthWebSecurityConfiguration.java index d7f9567e4..0b20ffd93 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/config/BasicAuthWebSecurityConfiguration.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/config/BasicAuthWebSecurityConfiguration.java @@ -1,5 +1,7 @@ package net.finmath.smartcontract.valuation.service.config; +import net.finmath.smartcontract.model.ExceptionId; +import net.finmath.smartcontract.model.SDCException; import net.finmath.smartcontract.valuation.service.utils.ApplicationProperties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -37,7 +39,7 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { try { authz.anyRequest().authenticated().and().httpBasic(); } catch (Exception e) { - throw new RuntimeException(e); + throw new SDCException(ExceptionId.SDC_001, e.getMessage()); } }) .cors(); @@ -51,6 +53,7 @@ public WebMvcConfigurer corsConfigurer() { logger.info("CORS filter has been loaded."); return new WebMvcConfigurer() { + @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/editor/**").allowedOrigins("http://localhost:4200", serviceUrl); // localhost:4200 is the angular dev server } @@ -71,7 +74,7 @@ public InMemoryUserDetailsManager userDetailsService(ApplicationProperties appli */ private List buildUserDetailsList(ApplicationProperties applicationProperties) { List userDetailsList = new ArrayList<>(); - applicationProperties.getUsers().forEach((sdcUser) -> userDetailsList.add(User + applicationProperties.getUsers().forEach(sdcUser -> userDetailsList.add(User .withUsername(sdcUser.getUsername()) .password("{noop}" + sdcUser.getPassword()) .roles(sdcUser.getRole()) diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/InfoController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/InfoController.java index b9d4af946..36f2eeb92 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/InfoController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/InfoController.java @@ -13,6 +13,8 @@ import com.fasterxml.jackson.dataformat.javaprop.JavaPropsMapper; import net.finmath.information.Library; import net.finmath.smartcontract.api.InfoApi; +import net.finmath.smartcontract.model.ExceptionId; +import net.finmath.smartcontract.model.SDCException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpHeaders; @@ -34,6 +36,7 @@ public class InfoController implements InfoApi { private final Logger logger = LoggerFactory.getLogger(InfoController.class); + private static final String GIT_ERROR = "Failed to get git info."; /** * @return String Json representing the info on Git @@ -50,10 +53,10 @@ public ResponseEntity infoGit() { String info = ow.writeValueAsString(node); return ResponseEntity.ok(info); - } catch (final Exception e) { - logger.error("Failed to get git info."); - e.printStackTrace(); - throw new RuntimeException(e); + } catch (Exception e) { + logger.error(GIT_ERROR); + logger.error(e.getMessage()); + throw new SDCException(ExceptionId.SDC_003, GIT_ERROR); } } @@ -73,10 +76,10 @@ public ResponseEntity infoFinmath() { String info = ow.writeValueAsString(node); return ResponseEntity.ok(info); - } catch (final Exception e) { - logger.error("Failed to get git info."); - e.printStackTrace(); - throw new RuntimeException(e); + } catch (Exception e) { + logger.error(GIT_ERROR); + logger.error(e.getMessage()); + throw new SDCException(ExceptionId.SDC_004, GIT_ERROR); } } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java index 23207586a..5b2048906 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java @@ -50,6 +50,7 @@ import java.util.*; import java.util.function.DoubleUnaryOperator; +@SuppressWarnings("java:S125") @RestController @CrossOrigin(origins = {"http://localhost:4200", "${serviceUrl}"}, allowCredentials = "true") public class PlainSwapEditorController implements PlainSwapEditorApi { @@ -421,11 +422,11 @@ public ResponseEntity getParRate(PlainSwapOperationRequest plainSwapOper String currentUserName = ((UserDetails) SecurityContextHolder.getContext().getAuthentication() .getPrincipal()).getUsername(); String marketDataString; - MarketDataSet marketData; + //MarketDataSet marketData; try { marketDataString = resourceGovernor.getActiveDatasetAsResourceInReadMode(currentUserName) .getContentAsString(StandardCharsets.UTF_8); - marketData = objectMapper.readValue(marketDataString, MarketDataSet.class); + //marketData = objectMapper.readValue(marketDataString, MarketDataSet.class); } catch (IOException e) { ProblemDetail pd = ProblemDetail.forStatusAndDetail(HttpStatus.INTERNAL_SERVER_ERROR, ErrorDetails.MARKET_DATA_ERROR_DETAIL); @@ -440,7 +441,7 @@ public ResponseEntity getParRate(PlainSwapOperationRequest plainSwapOper TODO: this could be made faster by avoiding regeneration of the SDCml at every iteration. I just don't know how to keep into account business calendars and fixing dates in an elegant way */ - DoubleUnaryOperator swapValue = (swapRate) -> { + DoubleUnaryOperator swapValue = swapRate -> { plainSwapOperationRequest.fixedRate(swapRate); try { return (new MarginCalculator()).getValue(marketDataString, new PlainSwapEditorHandler( @@ -619,9 +620,9 @@ public ResponseEntity saveContract(SaveContractRequest saveContractReque .getFile(); boolean creationResult = targetFile.createNewFile(); if (creationResult) - logger.info("New file created at " + targetFile.getAbsolutePath()); + logger.info("New file created at {}", targetFile.getAbsolutePath()); else - logger.info("Attempting overwrite of file " + targetFile.getAbsolutePath()); + logger.info("Attempting overwrite of file {}", targetFile.getAbsolutePath()); objectMapper.writeValue(targetFile, saveContractRequest.getPlainSwapOperationRequest()); } catch (IOException e) { diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java index 66de26693..03babe215 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java @@ -34,7 +34,8 @@ public class ValuationController implements ValuationApi { private final Logger logger = LoggerFactory.getLogger(ValuationController.class); - private final String FAILEDCALCULATION = "Failed to calculate value."; + private static final String FAILED_CALCULATION = "Failed to calculate value."; + private static final String RESPONDED = "Responded"; /** * Request mapping for the settlementvaluationForProductAsFPML @@ -92,7 +93,7 @@ public ResponseEntity legacyValue(LegacyValueRequest valueRequest) @Override public ResponseEntity margin(MarginRequest marginRequest) { HttpHeaders responseHeaders = new HttpHeaders(); - responseHeaders.add("Responded", "margin"); + responseHeaders.add(RESPONDED, "margin"); MarginResult margin = null; try { @@ -102,18 +103,18 @@ public ResponseEntity margin(MarginRequest marginRequest) { return ResponseEntity.ok(margin); } catch (SAXException e){ logger.error("invalid trade data xml"); - throw new RuntimeException(e); + throw new SDCException(ExceptionId.SDC_008, e.getMessage()); } catch (Exception e) { logger.error("Failed to calculate margin.", e); logger.debug(marginRequest.toString()); - throw new RuntimeException(e); + throw new SDCException(ExceptionId.SDC_009, e.getMessage()); } } @Override public ResponseEntity value(ValueRequest valueRequest) { HttpHeaders responseHeaders = new HttpHeaders(); - responseHeaders.add("Responded", "value"); + responseHeaders.add(RESPONDED, "value"); ValueResult value = null; try { MarginCalculator marginCalculator = new MarginCalculator(); @@ -121,17 +122,17 @@ public ResponseEntity value(ValueRequest valueRequest) { logger.info(value.toString()); return ResponseEntity.ok(value); } catch (Exception e) { - logger.error(FAILEDCALCULATION); + logger.error(FAILED_CALCULATION); logger.info(value.toString()); e.printStackTrace(); - throw new RuntimeException(e); + throw new SDCException(ExceptionId.SDC_010, e.getMessage()); } } - + @Override public ResponseEntity testProductValue(MultipartFile tradeData) { HttpHeaders responseHeaders = new HttpHeaders(); - responseHeaders.add("Responded", "value"); + responseHeaders.add(RESPONDED, "value"); ValueResult value = null; try { @@ -141,10 +142,10 @@ public ResponseEntity testProductValue(MultipartFile tradeData) { logger.info(value.toString()); return ResponseEntity.ok(value); } catch (Exception e) { - logger.error(FAILEDCALCULATION); + logger.error(FAILED_CALCULATION); logger.info(value.toString()); e.printStackTrace(); - throw new RuntimeException(e); + throw new SDCException(ExceptionId.SDC_011, e.getMessage()); } } @@ -157,7 +158,7 @@ public ResponseEntity test() { HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.setContentType(MediaType.APPLICATION_JSON); - responseHeaders.add("Responded", "test"); + responseHeaders.add(RESPONDED, "test"); String totalResult = "Connect successful"; return new ResponseEntity<>(totalResult, responseHeaders, HttpStatus.OK); diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/utils/ResourceGovernor.java b/src/main/java/net/finmath/smartcontract/valuation/service/utils/ResourceGovernor.java index 9abff98fa..cf853a001 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/utils/ResourceGovernor.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/utils/ResourceGovernor.java @@ -1,7 +1,5 @@ package net.finmath.smartcontract.valuation.service.utils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Profile; @@ -20,7 +18,6 @@ @Profile("!test") public class ResourceGovernor { - private static final Logger logger = LoggerFactory.getLogger(ResourceGovernor.class); @Autowired private ResourcePatternResolver resourcePatternResolver; @Value("${storage.basedir}") diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/WebSocketClientEndpoint.java b/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/WebSocketClientEndpoint.java index 28d7cfe46..be22e94c0 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/WebSocketClientEndpoint.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/WebSocketClientEndpoint.java @@ -3,6 +3,8 @@ import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.subjects.PublishSubject; import jakarta.websocket.*; +import net.finmath.smartcontract.model.ExceptionId; +import net.finmath.smartcontract.model.SDCException; import java.io.IOException; import java.net.URI; @@ -50,7 +52,7 @@ private void initSession() { container.setDefaultMaxBinaryMessageBufferSize(1024 * 1024); this.userSession = container.connectToServer(this, config, endpointURI); } catch (Exception e) { - throw new RuntimeException(e); + throw new SDCException(ExceptionId.SDC_013, e.getMessage()); } } @@ -63,12 +65,8 @@ public void sendTextMessage(String message) throws IOException { @Override public void onOpen(Session session, EndpointConfig config) { System.out.println("Opening websocket"); - session.addMessageHandler(new MessageHandler.Whole() { - @Override - public void onMessage(String message) { - System.out.println("Received message: " + message); - } - }); + session.addMessageHandler((MessageHandler.Whole) message + -> System.out.println("Received message: " + message)); } diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java index 1db0b5376..98cbd107a 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java @@ -34,7 +34,7 @@ * @author Luca Bressan */ @TestInstance(TestInstance.Lifecycle.PER_CLASS) -public class CalibrationTests { +class CalibrationTests { private AnalyticModel calibratedModel; private CalibrationContext calibrationContext; private CalibratedCurves calibratedCurves; From c9dc1deef2f92bc96ebe9f7ac8d60e194bae6a6f Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Mon, 8 Apr 2024 09:52:18 +0200 Subject: [PATCH 050/105] SDC-403, MarketDataGeneratorScenarioListTest and adjustments to classes for better testing --- .../smartcontract/model/ExceptionId.java | 1 + .../smartcontract/model/MarketDataList.java | 9 +++ .../marketdata/data/MarketDataPoint.java | 9 +++ .../MarketDataGeneratorScenarioList.java | 22 +++++-- .../MarketDataGeneratorScenarioListTest.java | 66 +++++++++++++++++++ 5 files changed, 101 insertions(+), 6 deletions(-) create mode 100644 src/test/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioListTest.java diff --git a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java index df40b72bf..867277a6f 100644 --- a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java +++ b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java @@ -14,4 +14,5 @@ public enum ExceptionId { SDC_011, SDC_012, SDC_013, + SDC_014, } \ No newline at end of file diff --git a/src/main/java/net/finmath/smartcontract/model/MarketDataList.java b/src/main/java/net/finmath/smartcontract/model/MarketDataList.java index 6100bd36a..b26b498ec 100644 --- a/src/main/java/net/finmath/smartcontract/model/MarketDataList.java +++ b/src/main/java/net/finmath/smartcontract/model/MarketDataList.java @@ -15,6 +15,7 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; +import java.util.Objects; @XmlRootElement @XmlType(propOrder = {"requestTimeStamp","points"}) @@ -77,4 +78,12 @@ public String toString() { ", requestTimeStamp=" + requestTimeStamp + '}'; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + MarketDataList that = (MarketDataList) o; + return Objects.equals(points, that.points) && Objects.equals(requestTimeStamp, that.requestTimeStamp); + } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataPoint.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataPoint.java index 7f5aa1917..fd4daf504 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataPoint.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/data/MarketDataPoint.java @@ -5,6 +5,7 @@ import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import java.time.LocalDateTime; +import java.util.Objects; @XmlRootElement @XmlType(propOrder = {"id","value","timeStamp"}) @@ -54,4 +55,12 @@ public String toString() { ", value=" + value + '}'; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + MarketDataPoint that = (MarketDataPoint) o; + return Objects.equals(timeStamp, that.timeStamp) && Objects.equals(id, that.id) && Objects.equals(value, that.value); + } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java index dc61cfc57..bfec47ee7 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java @@ -3,7 +3,9 @@ import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.subjects.PublishSubject; +import net.finmath.smartcontract.model.ExceptionId; import net.finmath.smartcontract.model.MarketDataList; +import net.finmath.smartcontract.model.SDCException; import net.finmath.smartcontract.product.xml.SDCXMLParser; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,7 +24,9 @@ public class MarketDataGeneratorScenarioList implements MarketDataGeneratorInter private static final Logger logger = LoggerFactory.getLogger(MarketDataGeneratorScenarioList.class); private Observable publishSubject; + private int counter = 0; + private final List files = List.of("marketdata_2008-05-02.xml", "marketdata_2008-05-05.xml", "marketdata_2008-05-06.xml", "marketdata_2008-05-07.xml", "marketdata_2008-05-08.xml", "marketdata_2008-05-09.xml", "marketdata_2008-05-12.xml", "marketdata_2008-05-13.xml", "marketdata_2008-05-14.xml", "marketdata_2008-05-15.xml", "marketdata_2008-05-16.xml", "marketdata_2008-05-19.xml", "marketdata_2008-05-20.xml", "marketdata_2008-05-21.xml", "marketdata_2008-05-22.xml", "marketdata_2008-05-23.xml", "marketdata_2008-05-26.xml", "marketdata_2008-05-27.xml", "marketdata_2008-05-28.xml", "marketdata_2008-05-29.xml", "marketdata_2008-05-30.xml", "marketdata_2008-06-02.xml", "marketdata_2008-06-03.xml", "marketdata_2008-06-04.xml", "marketdata_2008-06-05.xml", "marketdata_2008-06-06.xml", "marketdata_2008-06-09.xml", "marketdata_2008-06-10.xml", "marketdata_2008-06-11.xml", "marketdata_2008-06-12.xml", "marketdata_2008-06-13.xml", "marketdata_2008-06-16.xml", "marketdata_2008-06-17.xml", "marketdata_2008-06-18.xml", "marketdata_2008-06-19.xml", "marketdata_2008-06-20.xml", "marketdata_2008-06-23.xml", "marketdata_2008-06-24.xml", "marketdata_2008-06-25.xml", "marketdata_2008-06-26.xml", "marketdata_2008-06-27.xml", "marketdata_2008-06-30.xml", "marketdata_2008-07-01.xml", "marketdata_2008-07-02.xml", "marketdata_2008-07-03.xml", "marketdata_2008-07-04.xml", "marketdata_2008-07-07.xml", "marketdata_2008-07-08.xml", "marketdata_2008-07-09.xml", "marketdata_2008-07-10.xml", "marketdata_2008-07-11.xml", "marketdata_2008-07-14.xml", "marketdata_2008-07-15.xml", "marketdata_2008-07-16.xml", "marketdata_2008-07-17.xml", "marketdata_2008-07-18.xml", "marketdata_2008-07-21.xml", "marketdata_2008-07-22.xml", "marketdata_2008-07-23.xml", "marketdata_2008-07-24.xml", "marketdata_2008-07-25.xml", "marketdata_2008-07-28.xml", "marketdata_2008-07-29.xml", "marketdata_2008-07-30.xml", "marketdata_2008-07-31.xml", @@ -34,7 +38,6 @@ public class MarketDataGeneratorScenarioList implements MarketDataGeneratorInter /*public MarketDataGeneratorScenarioList(List scenarioList) { publishSubject = PublishSubject.create(); }*/ - public MarketDataGeneratorScenarioList() { publishSubject = PublishSubject.create(); } @@ -55,15 +58,22 @@ private MarketDataList getMarketDataCurve() { logger.info("counter: {}, file to retrieve: {}", counter, fileName); + String marketDataXml = getMarketDataString(fileName); + counter++; + return SDCXMLParser.unmarshalXml(marketDataXml, MarketDataList.class); + } + + public String getMarketDataString(String fileName) { String marketDataXml; try { marketDataXml = new String(Objects.requireNonNull(MarketDataGeneratorScenarioList.class.getClassLoader().getResourceAsStream(fileName)).readAllBytes(), StandardCharsets.UTF_8); - } catch (IOException e) { - throw new RuntimeException(e); + } catch (IOException | NullPointerException e) { + throw new SDCException(ExceptionId.SDC_014, "File not found", 404); } - counter++; - return SDCXMLParser.unmarshalXml(marketDataXml, MarketDataList.class); + return marketDataXml; } - + public int getCounter() { + return counter; + } } diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioListTest.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioListTest.java new file mode 100644 index 000000000..093934798 --- /dev/null +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioListTest.java @@ -0,0 +1,66 @@ +package net.finmath.smartcontract.valuation.marketdata.generators; + +import net.finmath.smartcontract.model.MarketDataList; +import net.finmath.smartcontract.model.SDCException; +import net.finmath.smartcontract.product.xml.SDCXMLParser; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import java.util.concurrent.atomic.AtomicReference; + +import static org.junit.jupiter.api.Assertions.*; + +class MarketDataGeneratorScenarioListTest { + + static MarketDataGeneratorScenarioList marketDataService; + @BeforeAll + static void before(){ + marketDataService = new MarketDataGeneratorScenarioList(); + } + + @Test + void asObservable() { + + // before all + assertEquals(0, marketDataService.getCounter()); + + //given + String filePath = "net/finmath/smartcontract/valuation/historicalMarketData/"; + AtomicReference observedMarketDataList = new AtomicReference<>(); + MarketDataList fileMarketDataList = new MarketDataList(); + + //iteration 1 + String fileName1 = filePath + "marketdata_2008-05-02.xml"; + fileMarketDataList = SDCXMLParser.unmarshalXml(marketDataService.getMarketDataString(fileName1), MarketDataList.class); + + marketDataService.asObservable().subscribe(observedMarketDataList::set, //onNext + throwable -> System.out.println(throwable.getMessage()), //onError + () -> System.out.println("on complete")); + + assertEquals(1, marketDataService.getCounter()); + assertNotNull(fileMarketDataList); + assertNotNull(observedMarketDataList); + + assertTrue(fileMarketDataList.equals(observedMarketDataList.get())); + + + //iteration 2 + String fileName2 = filePath + "marketdata_2008-05-05.xml"; + fileMarketDataList = SDCXMLParser.unmarshalXml(marketDataService.getMarketDataString(fileName2), MarketDataList.class); + + marketDataService.asObservable().subscribe(observedMarketDataList::set, //onNext + throwable -> System.out.println(throwable.getMessage()), //onError + () -> System.out.println("on complete")); + + assertEquals(2, marketDataService.getCounter()); + assertNotNull(fileMarketDataList); + assertNotNull(observedMarketDataList); + + assertTrue(fileMarketDataList.equals(observedMarketDataList.get())); + } + + @Test + void getMarketDataString_WrongFileNameSDCException(){ + assertThrows(SDCException.class, () -> marketDataService.getMarketDataString("wrongFileName")); + } +} \ No newline at end of file From 459b44b56e20c2523ff4e9883109ac1a41cf783b Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Tue, 9 Apr 2024 14:13:16 +0200 Subject: [PATCH 051/105] fabric-2, fabric contract executions after PaymentTriggerd event interception, intercept fabric events and call afterTransfer on trade, moved properties to yml file, --- src/main/java/net/finmath/smartcontract/model/ExceptionId.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java index 867277a6f..491a373f2 100644 --- a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java +++ b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java @@ -15,4 +15,6 @@ public enum ExceptionId { SDC_012, SDC_013, SDC_014, + SDC_015, + SDC_016, } \ No newline at end of file From 8bba9e540649adcabe89fc5695b2804811f91f72 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Tue, 9 Apr 2024 14:16:39 +0200 Subject: [PATCH 052/105] NO_ISSUE, new MarketDataListTest --- .../model/MarketDataListTest.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/test/java/net/finmath/smartcontract/model/MarketDataListTest.java diff --git a/src/test/java/net/finmath/smartcontract/model/MarketDataListTest.java b/src/test/java/net/finmath/smartcontract/model/MarketDataListTest.java new file mode 100644 index 000000000..d9acbe399 --- /dev/null +++ b/src/test/java/net/finmath/smartcontract/model/MarketDataListTest.java @@ -0,0 +1,26 @@ +package net.finmath.smartcontract.model; + +import net.finmath.smartcontract.valuation.marketdata.data.MarketDataPoint; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; + +class MarketDataListTest { + + @Test + void setPoints() { + MarketDataList marketDataList = new MarketDataList(); + + List points = new ArrayList<>(); + points.add(new MarketDataPoint()); + + marketDataList.setPoints(points); + + assertNotNull(marketDataList); + assertNotNull(marketDataList.toString()); + assertNotNull(marketDataList.getPoints()); + } +} \ No newline at end of file From 6b24fa8bab5fcb568102357b690e39d185fe6be1 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Tue, 9 Apr 2024 17:18:12 +0200 Subject: [PATCH 053/105] fabric-2, new ExceptionId entries --- src/main/java/net/finmath/smartcontract/model/ExceptionId.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java index 491a373f2..33e80ee38 100644 --- a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java +++ b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java @@ -17,4 +17,6 @@ public enum ExceptionId { SDC_014, SDC_015, SDC_016, + SDC_017, + SDC_018, } \ No newline at end of file From 48dcff9684aa445419510c17d0cde9533f0946fd Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Thu, 11 Apr 2024 12:28:03 +0200 Subject: [PATCH 054/105] fabric-2, new ExceptionId --- src/main/java/net/finmath/smartcontract/model/ExceptionId.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java index 33e80ee38..ad1b42d69 100644 --- a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java +++ b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java @@ -19,4 +19,5 @@ public enum ExceptionId { SDC_016, SDC_017, SDC_018, + SDC_019, } \ No newline at end of file From e616a1ca2e7f1b351af0e14b12d4a3db9c36ea7b Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 19 Apr 2024 16:00:41 +0200 Subject: [PATCH 055/105] fabric-2, new set of ExceptionIds --- .../smartcontract/model/ExceptionId.java | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java index ad1b42d69..0f6bda4eb 100644 --- a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java +++ b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java @@ -20,4 +20,56 @@ public enum ExceptionId { SDC_017, SDC_018, SDC_019, + SDC_020, + SDC_021, + SDC_022, + SDC_023, + SDC_024, + SDC_025, + SDC_026, + SDC_027, + SDC_028, + SDC_029, + SDC_030, + SDC_031, + SDC_032, + SDC_033, + SDC_034, + SDC_035, + SDC_036, + SDC_037, + SDC_038, + SDC_039, + SDC_040, + SDC_050, + SDC_051, + SDC_052, + SDC_053, + SDC_054, + SDC_055, + SDC_056, + SDC_057, + SDC_058, + SDC_059, + SDC_060, + SDC_061, + SDC_062, + SDC_063, + SDC_064, + SDC_065, + SDC_066, + SDC_067, + SDC_068, + SDC_069, + SDC_070, + SDC_071, + SDC_072, + SDC_073, + SDC_074, + SDC_075, + SDC_076, + SDC_077, + SDC_078, + SDC_079, + SDC_080, } \ No newline at end of file From 3ebb604d26063ee455678bba20fa32860aee9a50 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 19 Apr 2024 16:05:07 +0200 Subject: [PATCH 056/105] SDC-463, added new snapshotRepository entry into distributionManagement to upload automatically to the separate gitlab repo --- pom.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pom.xml b/pom.xml index a0a3d0d0d..c8907869b 100644 --- a/pom.xml +++ b/pom.xml @@ -962,6 +962,10 @@ + + gitlab + https://gitlab.com/api/v4/projects/33978063/packages/maven + From 7895bba38561a6973fa8ea17855bde2cd7ab0168 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 19 Apr 2024 16:15:10 +0200 Subject: [PATCH 057/105] SDC-463, new github actions for maven deploy and new maven settings xml --- .github/workflows/upload_snapshot.yml | 20 ++++++++++++++++++++ github_SNAPSHOT_settings.xml | 21 +++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 .github/workflows/upload_snapshot.yml create mode 100644 github_SNAPSHOT_settings.xml diff --git a/.github/workflows/upload_snapshot.yml b/.github/workflows/upload_snapshot.yml new file mode 100644 index 000000000..af4722e18 --- /dev/null +++ b/.github/workflows/upload_snapshot.yml @@ -0,0 +1,20 @@ +name: finmath smart derivative contract + +#only push new SNAPSHOTS from develop +on: + push: + branches: + - develop + +jobs: + bCP1ld: + name: Java 17 build and unit testing + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Java + uses: actions/setup-java@v1 + with: + java-version: 17 + - name: upload SNAPSHOT to GitLab + run: mvn -s github_SNAPSHOT_settings.xml clean install deploy \ No newline at end of file diff --git a/github_SNAPSHOT_settings.xml b/github_SNAPSHOT_settings.xml new file mode 100644 index 000000000..d4af1fa60 --- /dev/null +++ b/github_SNAPSHOT_settings.xml @@ -0,0 +1,21 @@ + + + + + + + gitlab + + + + Deploy-Token + ${DEPLOY_TOKEN} + + + + + + + From 173d2d681475ae1f06cb54c9e510c6b2b89269dc Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 19 Apr 2024 16:29:55 +0200 Subject: [PATCH 058/105] SDC-463, added private token possibility to maven settings xml for more flexibility --- github_SNAPSHOT_settings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/github_SNAPSHOT_settings.xml b/github_SNAPSHOT_settings.xml index d4af1fa60..08f708f3b 100644 --- a/github_SNAPSHOT_settings.xml +++ b/github_SNAPSHOT_settings.xml @@ -13,6 +13,10 @@ Deploy-Token ${DEPLOY_TOKEN} + + Private-Token + ${PRIVATE_TOKEN} + From c0a3d30a23508dbe7a6618e7d66d83c628b7c1ca Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 19 Apr 2024 17:47:28 +0200 Subject: [PATCH 059/105] SDC-463, small adjustment to the build job name --- .github/workflows/upload_snapshot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upload_snapshot.yml b/.github/workflows/upload_snapshot.yml index af4722e18..5c460fd29 100644 --- a/.github/workflows/upload_snapshot.yml +++ b/.github/workflows/upload_snapshot.yml @@ -8,7 +8,7 @@ on: jobs: bCP1ld: - name: Java 17 build and unit testing + name: SNAPSHOT, build and upload runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 From 4e17492c23da9fea50615f1b75eea91abbaefd51 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 19 Apr 2024 18:15:50 +0200 Subject: [PATCH 060/105] SDC-463, included GitHub Secrets in Actions --- .github/workflows/upload_snapshot.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/upload_snapshot.yml b/.github/workflows/upload_snapshot.yml index 5c460fd29..2568fb481 100644 --- a/.github/workflows/upload_snapshot.yml +++ b/.github/workflows/upload_snapshot.yml @@ -1,5 +1,6 @@ name: finmath smart derivative contract +#trigg #only push new SNAPSHOTS from develop on: push: @@ -17,4 +18,7 @@ jobs: with: java-version: 17 - name: upload SNAPSHOT to GitLab + env: + DEPLOY_TOKEN: ${{ secrets.DEPLOY_TOKEN }} + PRIVATE_TOKEN: ${{ secrets.PRIVATE_TOKEN }} run: mvn -s github_SNAPSHOT_settings.xml clean install deploy \ No newline at end of file From 3cae01870110f3970185337a2708f8f23cc81e11 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 3 May 2024 12:25:41 +0200 Subject: [PATCH 061/105] NO_ISSUE, updated Dockerfile --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0280c0389..633042364 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,5 +7,5 @@ RUN mvn -f /usr/src/app/pom.xml clean package spring-boot:repackage # Run Stage: Copy fat-jar and define Entrypoint FROM openjdk:17 as RunStage -COPY --from=BuildStage /usr/src/app/target/finmath-smart-derivative-contract-1.0.2-SNAPSHOT.jar /usr/app/finmath-smart-derivative-contract-1.0.2-SNAPSHOT.jar -ENTRYPOINT ["java", "-jar", "/usr/app/finmath-smart-derivative-contract-1.0.2-SNAPSHOT.jar"] +COPY --from=BuildStage /usr/src/app/target/finmath-smart-derivative-contract-1.0.7-SNAPSHOT.jar /usr/app/finmath-smart-derivative-contract-1.0.7-SNAPSHOT.jar +ENTRYPOINT ["java", "-jar", "/usr/app/finmath-smart-derivative-contract-1.0.7-SNAPSHOT.jar"] From 41e9b493c019449ab713ddf6e8a03ef019ef339c Mon Sep 17 00:00:00 2001 From: Christian Fries Date: Mon, 6 May 2024 21:57:12 +0200 Subject: [PATCH 062/105] Fixed startup scripts. --- scripts/start-margin-valuation-oracle.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/start-margin-valuation-oracle.sh b/scripts/start-margin-valuation-oracle.sh index 103897645..f10c9a7d7 100755 --- a/scripts/start-margin-valuation-oracle.sh +++ b/scripts/start-margin-valuation-oracle.sh @@ -8,4 +8,5 @@ cd $SCRIPT_PATH/../ echo $PWD # Start -mvn clean spring-boot:run \ No newline at end of file +mvn clean spring-boot:run + From ba39b6a647dfdf543fe1e24052c598bd214608c4 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Wed, 15 May 2024 09:11:15 +0200 Subject: [PATCH 063/105] changing ExceptionId from numbers to more meaningful enums --- .../smartcontract/model/ExceptionId.java | 101 ++++++------------ .../product/xml/PlainSwapEditorHandler.java | 2 +- .../product/xml/SDCXMLParser.java | 6 +- .../CalibrationParserDataItems.java | 2 +- .../MarketDataGeneratorScenarioList.java | 2 +- .../ValuationOraclePlainSwap.java | 2 +- .../BasicAuthWebSecurityConfiguration.java | 2 +- .../service/controllers/InfoController.java | 4 +- .../controllers/ValuationController.java | 16 ++- .../client/WebSocketClientEndpoint.java | 2 +- 10 files changed, 47 insertions(+), 92 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java index 0f6bda4eb..6a411718a 100644 --- a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java +++ b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java @@ -1,75 +1,34 @@ package net.finmath.smartcontract.model; public enum ExceptionId { - SDC_001, - SDC_002, - SDC_003, - SDC_004, - SDC_005, - SDC_006, - SDC_007, - SDC_008, - SDC_009, - SDC_010, - SDC_011, - SDC_012, - SDC_013, - SDC_014, - SDC_015, - SDC_016, - SDC_017, - SDC_018, - SDC_019, - SDC_020, - SDC_021, - SDC_022, - SDC_023, - SDC_024, - SDC_025, - SDC_026, - SDC_027, - SDC_028, - SDC_029, - SDC_030, - SDC_031, - SDC_032, - SDC_033, - SDC_034, - SDC_035, - SDC_036, - SDC_037, - SDC_038, - SDC_039, - SDC_040, - SDC_050, - SDC_051, - SDC_052, - SDC_053, - SDC_054, - SDC_055, - SDC_056, - SDC_057, - SDC_058, - SDC_059, - SDC_060, - SDC_061, - SDC_062, - SDC_063, - SDC_064, - SDC_065, - SDC_066, - SDC_067, - SDC_068, - SDC_069, - SDC_070, - SDC_071, - SDC_072, - SDC_073, - SDC_074, - SDC_075, - SDC_076, - SDC_077, - SDC_078, - SDC_079, - SDC_080, + SDC_AUTH_ERROR, + SDC_CALIBRATION_DATA_EMPTY, + SDC_TRADE_NOT_FOUND, + SDC_ALLOWANCE_ERROR, + SDC_GIT_ERROR, + SDC_GETTOKENADDRESS_ERROR, + SDC_TRADESTATE_ERROR, + SDC_XML_PARSE_ERROR, + SDC_JAXB_ERROR, + SDC_INVALID_TRADE_DATA, + SDC_MARGIN_CALCULATION_ERROR, + SDC_CALIBRATION_ERROR, + SDC_CERTIFICATE_ERROR, + SDC_FABRIC_GETALLPAYMENTS_ERROR, + SDC_FABRIC_CREATEPAYMENT_ERROR, + SDC_FABRIC_FETCHPAYMENT_ERROR, + SDC_FABRIC_CORRELATION_ID_ALREADY_IN_USE, + SDC_FABRIC_CORRELATION_ID_NULL, + SDC_FABRIC_PAYMENTEVENT_NULL, + SDC_WEBSOCKET_CONNECTION_ERROR, + SDC_JSONPROCESSING_ERROR, + SDC_AFTERTRANSFER_ERROR, + SDC_FILE_NOT_FOUND, + SDC_ENABLE_OFFCHAINCALLBACK_ERROR, + SDC_GETTRADEADDRESSBYID_ERROR, + SDC_GETTRADEID_ERROR, + SDC_GETTRADEDATA_ERROR, + SDC_SETTLEMENT_XML_ERROR, + SDC_PERFORM_SETTLEMENT_ERROR, + SDC_SETTLEMENTHISTORY_ERROR, } \ No newline at end of file diff --git a/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java b/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java index 8fdb15d69..a3484f935 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java @@ -666,7 +666,7 @@ private AnalyticModel getAnalyticModel(MarketDataSet marketData, Schedule schedu try { productDescriptor = SDCXMLParser.parse(this.getContractAsXmlString()); } catch (ParserConfigurationException | SAXException | JAXBException e) { - throw new SDCException(ExceptionId.SDC_005, e.getMessage()); + throw new SDCException(ExceptionId.SDC_XML_PARSE_ERROR, e.getMessage()); } Set cdi = new HashSet<>(); diff --git a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java index 4d8207ff6..a1d792271 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java @@ -158,8 +158,8 @@ public static T unmarshalXml(String xml, Class t) { JAXBContext jaxbContext = JAXBContext.newInstance(t); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); return (T) unmarshaller.unmarshal(reader); - } catch (java.lang.Exception e) { - throw new SDCException(ExceptionId.SDC_007, e.getMessage()); + } catch (JAXBException e) { + throw new SDCException(ExceptionId.SDC_JAXB_ERROR, e.getMessage()); } } @@ -171,7 +171,7 @@ public static String marshalClassToXMLString(T t) { jaxbMarshaller.marshal(t, writer); return writer.toString(); } catch (JAXBException e) { - throw new SDCException(ExceptionId.SDC_006, e.getMessage()); + throw new SDCException(ExceptionId.SDC_JAXB_ERROR, e.getMessage()); } } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java index 756757c81..5d7fc0b59 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java @@ -118,7 +118,7 @@ public static CalibrationDataset getCalibrationDataSetFromXML(final String xmlS }); if(calibrationDataItems.isEmpty()) - throw new SDCException(ExceptionId.SDC_002, "No calibration items detected."); + throw new SDCException(ExceptionId.SDC_CALIBRATION_DATA_EMPTY, "No calibration items detected."); return new CalibrationDataset(calibrationDataItems, marketDataList.getRequestTimeStamp()); } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java index bfec47ee7..1aaca31dc 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java @@ -68,7 +68,7 @@ public String getMarketDataString(String fileName) { try { marketDataXml = new String(Objects.requireNonNull(MarketDataGeneratorScenarioList.class.getClassLoader().getResourceAsStream(fileName)).readAllBytes(), StandardCharsets.UTF_8); } catch (IOException | NullPointerException e) { - throw new SDCException(ExceptionId.SDC_014, "File not found", 404); + throw new SDCException(ExceptionId.SDC_FILE_NOT_FOUND, "File not found", 404); } return marketDataXml; } diff --git a/src/main/java/net/finmath/smartcontract/valuation/oracle/interestrates/ValuationOraclePlainSwap.java b/src/main/java/net/finmath/smartcontract/valuation/oracle/interestrates/ValuationOraclePlainSwap.java index 47456f610..02a0422eb 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/oracle/interestrates/ValuationOraclePlainSwap.java +++ b/src/main/java/net/finmath/smartcontract/valuation/oracle/interestrates/ValuationOraclePlainSwap.java @@ -95,7 +95,7 @@ public Double getValue(final LocalDateTime evaluationDate, final LocalDateTime m return rounding.applyAsDouble(valueWithCurves); } catch (final Exception e) { - throw new SDCException(ExceptionId.SDC_012, e.getMessage()); + throw new SDCException(ExceptionId.SDC_CALIBRATION_ERROR, e.getMessage()); } } else { return null; diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/config/BasicAuthWebSecurityConfiguration.java b/src/main/java/net/finmath/smartcontract/valuation/service/config/BasicAuthWebSecurityConfiguration.java index 0b20ffd93..bf43df577 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/config/BasicAuthWebSecurityConfiguration.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/config/BasicAuthWebSecurityConfiguration.java @@ -39,7 +39,7 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { try { authz.anyRequest().authenticated().and().httpBasic(); } catch (Exception e) { - throw new SDCException(ExceptionId.SDC_001, e.getMessage()); + throw new SDCException(ExceptionId.SDC_AUTH_ERROR, e.getMessage()); } }) .cors(); diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/InfoController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/InfoController.java index 36f2eeb92..8c3836b7e 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/InfoController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/InfoController.java @@ -56,7 +56,7 @@ public ResponseEntity infoGit() { } catch (Exception e) { logger.error(GIT_ERROR); logger.error(e.getMessage()); - throw new SDCException(ExceptionId.SDC_003, GIT_ERROR); + throw new SDCException(ExceptionId.SDC_GIT_ERROR, GIT_ERROR); } } @@ -79,7 +79,7 @@ public ResponseEntity infoFinmath() { } catch (Exception e) { logger.error(GIT_ERROR); logger.error(e.getMessage()); - throw new SDCException(ExceptionId.SDC_004, GIT_ERROR); + throw new SDCException(ExceptionId.SDC_GIT_ERROR, GIT_ERROR); } } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java index 03babe215..3d69faaf0 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java @@ -103,11 +103,11 @@ public ResponseEntity margin(MarginRequest marginRequest) { return ResponseEntity.ok(margin); } catch (SAXException e){ logger.error("invalid trade data xml"); - throw new SDCException(ExceptionId.SDC_008, e.getMessage()); + throw new SDCException(ExceptionId.SDC_INVALID_TRADE_DATA, e.getMessage()); } catch (Exception e) { logger.error("Failed to calculate margin.", e); logger.debug(marginRequest.toString()); - throw new SDCException(ExceptionId.SDC_009, e.getMessage()); + throw new SDCException(ExceptionId.SDC_MARGIN_CALCULATION_ERROR, e.getMessage()); } } @@ -122,10 +122,8 @@ public ResponseEntity value(ValueRequest valueRequest) { logger.info(value.toString()); return ResponseEntity.ok(value); } catch (Exception e) { - logger.error(FAILED_CALCULATION); - logger.info(value.toString()); - e.printStackTrace(); - throw new SDCException(ExceptionId.SDC_010, e.getMessage()); + logger.error(FAILED_CALCULATION, e); + throw new SDCException(ExceptionId.SDC_MARGIN_CALCULATION_ERROR, e.getMessage()); } } @@ -142,10 +140,8 @@ public ResponseEntity testProductValue(MultipartFile tradeData) { logger.info(value.toString()); return ResponseEntity.ok(value); } catch (Exception e) { - logger.error(FAILED_CALCULATION); - logger.info(value.toString()); - e.printStackTrace(); - throw new SDCException(ExceptionId.SDC_011, e.getMessage()); + logger.error(FAILED_CALCULATION, e); + throw new SDCException(ExceptionId.SDC_MARGIN_CALCULATION_ERROR, e.getMessage()); } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/WebSocketClientEndpoint.java b/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/WebSocketClientEndpoint.java index be22e94c0..df2653ce8 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/WebSocketClientEndpoint.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/WebSocketClientEndpoint.java @@ -52,7 +52,7 @@ private void initSession() { container.setDefaultMaxBinaryMessageBufferSize(1024 * 1024); this.userSession = container.connectToServer(this, config, endpointURI); } catch (Exception e) { - throw new SDCException(ExceptionId.SDC_013, e.getMessage()); + throw new SDCException(ExceptionId.SDC_WEBSOCKET_CONNECTION_ERROR, e.getMessage()); } } From 3411303efb1da1c91599ec11d00478e1ce9a8351 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Wed, 15 May 2024 10:20:05 +0200 Subject: [PATCH 064/105] NO_ISSUE, code cleanup --- ...rtDerivativeContractScheduleGenerator.java | 2 + .../product/xml/PlainSwapEditorHandler.java | 17 ++--- .../smartcontract/settlement/Settlement.java | 3 +- .../valuation/client/ValuationClient.java | 33 +++++----- .../CalibrationParserDataItems.java | 10 +-- .../database/DatabaseConnector.java | 63 ++++++++++--------- .../MarketDataGeneratorRandomFeed.java | 2 +- .../MarketDataGeneratorWebsocket.java | 21 +++---- .../PlainSwapEditorController.java | 17 ++--- .../service/utils/ResourceGovernor.java | 8 ++- .../client/WebSocketClientEndpoint.java | 14 +++-- .../resources/patches/TradeIdentifier.java | 2 +- ...rivativeContractScheduleGeneratorTest.java | 4 +- .../finmath/smartcontract/demo/DemoTest.java | 4 +- .../settlement/SettlementTests.java | 2 +- .../valuation/marketdata/GeneratorTests.java | 2 +- .../database/MockDatabaseConnector.java | 6 ++ .../MarketDataGeneratorScenarioListTest.java | 4 +- .../GeometricBrownianMotionOracleTest.java | 4 +- .../PlainSwapEditorControllerTest.java | 2 +- .../service/ValuationControllerTest.java | 6 +- .../service/utils/MockResourceGovernor.java | 5 ++ .../simulation/HistoricalSimulationTest.java | 4 +- 23 files changed, 133 insertions(+), 102 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/contract/SmartDerivativeContractScheduleGenerator.java b/src/main/java/net/finmath/smartcontract/contract/SmartDerivativeContractScheduleGenerator.java index 30748ff47..7e3cbd601 100644 --- a/src/main/java/net/finmath/smartcontract/contract/SmartDerivativeContractScheduleGenerator.java +++ b/src/main/java/net/finmath/smartcontract/contract/SmartDerivativeContractScheduleGenerator.java @@ -25,6 +25,8 @@ */ public class SmartDerivativeContractScheduleGenerator { + private SmartDerivativeContractScheduleGenerator(){} + /** * Simple POJO implementation of SmartDerivativeContractSchedule.EventTimes. * diff --git a/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java b/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java index a3484f935..fd0d7c032 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/PlainSwapEditorHandler.java @@ -55,6 +55,7 @@ public final class PlainSwapEditorHandler { //TODO: this code needs some cleanin private static final Logger logger = LoggerFactory.getLogger(PlainSwapEditorHandler.class); private static final String CONSTANT = "constant"; + private static final String FAILED_MODEL_CALIBRATION = "Failed to calibrate model."; private final Smartderivativecontract smartDerivativeContract; private final Schema sdcmlSchema; private final Marshaller marshaller; @@ -408,9 +409,9 @@ public List getSchedule(LegSelector legSelector, String marketDa default -> throw new IllegalArgumentException("Failed to detect leg type"); } final LocalDate startDate = swapLeg.getCalculationPeriodDates().getEffectiveDate().getUnadjustedDate().getValue().toGregorianCalendar().toZonedDateTime().toLocalDate(); - logger.info("Start date detected: {]", startDate.toString()); + logger.info("Start date detected: {}", startDate); final LocalDate maturityDate = swapLeg.getCalculationPeriodDates().getTerminationDate().getUnadjustedDate().getValue().toGregorianCalendar().toZonedDateTime().toLocalDate(); - logger.info("Maturity date detected: {}", maturityDate.toString()); + logger.info("Maturity date detected: {}", maturityDate); int fixingOffsetDays = 0; try { fixingOffsetDays = swapLeg.getResetDates().getFixingDates().getPeriodMultiplier().intValue(); @@ -518,9 +519,9 @@ public List getSchedule(LegSelector legSelector, MarketDataSet m default -> throw new IllegalArgumentException("Failed to detect leg type"); } final LocalDate startDate = swapLeg.getCalculationPeriodDates().getEffectiveDate().getUnadjustedDate().getValue().toGregorianCalendar().toZonedDateTime().toLocalDate(); - logger.info("Start date detected: {}", startDate.toString()); + logger.info("Start date detected: {}", startDate); final LocalDate maturityDate = swapLeg.getCalculationPeriodDates().getTerminationDate().getUnadjustedDate().getValue().toGregorianCalendar().toZonedDateTime().toLocalDate(); - logger.info("Maturity date detected: {}", maturityDate.toString()); + logger.info("Maturity date detected: {}", maturityDate); int fixingOffsetDays = 0; try { fixingOffsetDays = swapLeg.getResetDates().getFixingDates().getPeriodMultiplier().intValue(); @@ -641,13 +642,13 @@ private AnalyticModel getAnalyticModel(String marketData, Schedule schedule, Str try { optionalCalibrationResult = calibrator.calibrateModel(allCalibrationItems, new CalibrationContextImpl(referenceDate, 1E-9)); } catch (CloneNotSupportedException e) { - logger.error("Failed to calibrate model."); + logger.error(FAILED_MODEL_CALIBRATION); throw e; } AnalyticModel calibratedModel; if (optionalCalibrationResult.isPresent()) calibratedModel = optionalCalibrationResult.get().getCalibratedModel(); - else throw new IllegalStateException("Failed to calibrate model."); + else throw new IllegalStateException(); Set pastFixings = scenario.getFixingDataItems(); @@ -709,13 +710,13 @@ private AnalyticModel getAnalyticModel(MarketDataSet marketData, Schedule schedu try { optionalCalibrationResult = calibrator.calibrateModel(allCalibrationItems, new CalibrationContextImpl(referenceDate, 1E-9)); } catch (CloneNotSupportedException e) { - logger.error("Failed to calibrate model."); + logger.error(FAILED_MODEL_CALIBRATION); throw e; } AnalyticModel calibratedModel; if (optionalCalibrationResult.isPresent()) calibratedModel = optionalCalibrationResult.get().getCalibratedModel(); - else throw new IllegalStateException("Failed to calibrate model."); + else throw new IllegalStateException(FAILED_MODEL_CALIBRATION); return calibratedModel; } diff --git a/src/main/java/net/finmath/smartcontract/settlement/Settlement.java b/src/main/java/net/finmath/smartcontract/settlement/Settlement.java index 3b1b69b8d..6774a027c 100644 --- a/src/main/java/net/finmath/smartcontract/settlement/Settlement.java +++ b/src/main/java/net/finmath/smartcontract/settlement/Settlement.java @@ -8,7 +8,6 @@ import java.math.BigDecimal; import java.time.ZonedDateTime; import java.util.List; -import java.util.Map; /** * Describes the result of a single settlement as reported by the valuation oracle. @@ -67,7 +66,7 @@ public enum SettlementType { // Custom additional information (e.g. risk figures or szenario values) - private Map info; + //private Map info; public String getTradeId() { return tradeId; diff --git a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java index 5468bef3b..3a1bb8c54 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java +++ b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java @@ -2,8 +2,8 @@ import net.finmath.smartcontract.model.MarginRequest; import net.finmath.smartcontract.model.MarginResult; -import net.finmath.smartcontract.model.MarketDataList; -import net.finmath.smartcontract.product.xml.SDCXMLParser; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.http.*; import org.springframework.web.client.RestTemplate; @@ -24,24 +24,27 @@ @SuppressWarnings("java:S125") public class ValuationClient { + private static final Logger logger = LoggerFactory.getLogger(ValuationClient.class); + private static final String BASIC = "Basic "; + public static void main(String[] args) throws Exception { String url = "http://localhost:8080"; String authString = "user1:password1"; if (args.length != 2) { - System.out.println("Usage: ValuationClient :"); + logger.info("Usage: ValuationClient :"); } if (args.length == 2) { authString = args[1]; } else { - System.out.println("Using default credentials " + authString); + logger.info("Using default credentials {}", authString); } if (args.length >= 1) { url = args[0]; } else { - System.out.println("Using default endpoint " + url); + logger.info("Using default endpoint {}", url); } final String marketDataStartXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml")).readAllBytes(), StandardCharsets.UTF_8); @@ -57,14 +60,14 @@ public static void main(String[] args) throws Exception { // create auth credentials String base64Creds = Base64.getEncoder().encodeToString(authString.getBytes()); - headers.add("Authorization", "Basic " + base64Creds); + headers.add(HttpHeaders.AUTHORIZATION, BASIC + base64Creds); - RequestEntity requestEntity = new RequestEntity(marginRequest, headers, HttpMethod.POST, new URI(url + "/valuation/margin"), MarginRequest.class); + RequestEntity requestEntity = new RequestEntity<>(marginRequest, headers, HttpMethod.POST, new URI(url + "/valuation/margin"), MarginRequest.class); ResponseEntity response = new RestTemplate().exchange(requestEntity, MarginResult.class); MarginResult result = response.getBody(); - System.out.println("Received the valuation result:\n" + result); + logger.info("Received the valuation result:\n{}", result); printInfoGit(url, authString); printInfoFinmath(url, authString); @@ -76,15 +79,14 @@ private static void printInfoGit(String url, String authString) throws URISyntax // create auth credentials String base64Creds = Base64.getEncoder().encodeToString(authString.getBytes()); - headers.add("Authorization", "Basic " + base64Creds); + headers.add(HttpHeaders.AUTHORIZATION, BASIC + base64Creds); RequestEntity requestEntity = new RequestEntity<>(null, headers, HttpMethod.GET, new URI(url + "/info/git"), String.class); ResponseEntity response = new RestTemplate().exchange(requestEntity, String.class); - System.out.println(); - System.out.println("git status"); - System.out.println(response.getBody()); + logger.info("git status"); + logger.info(response.getBody()); } private static void printInfoFinmath(String url, String authString) throws URISyntaxException { @@ -93,14 +95,13 @@ private static void printInfoFinmath(String url, String authString) throws URISy // create auth credentials String base64Creds = Base64.getEncoder().encodeToString(authString.getBytes()); - headers.add("Authorization", "Basic " + base64Creds); + headers.add(HttpHeaders.AUTHORIZATION, BASIC + base64Creds); RequestEntity requestEntity = new RequestEntity<>(null, headers, HttpMethod.GET, new URI(url + "/info/finmath"), String.class); ResponseEntity response = new RestTemplate().exchange(requestEntity, String.class); - System.out.println(); - System.out.println("finmath-lib version"); - System.out.println(response.getBody()); + logger.info("finmath-lib version"); + logger.info(response.getBody()); } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java index 5d7fc0b59..72ada74ea 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java @@ -6,8 +6,10 @@ import net.finmath.smartcontract.model.SDCException; import net.finmath.smartcontract.product.xml.SDCXMLParser; import org.slf4j.LoggerFactory; +import org.slf4j.Logger; import java.io.IOException; +import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets; import java.time.LocalDate; @@ -24,7 +26,7 @@ public class CalibrationParserDataItems implements CalibrationParser { - private static final org.slf4j.Logger logger = LoggerFactory.getLogger(CalibrationParserDataItems.class); + private static final Logger logger = LoggerFactory.getLogger(CalibrationParserDataItems.class); @Override public Stream parse(final Stream datapoints) { @@ -76,10 +78,10 @@ private Optional parseDatapointIfPresent(final Calibrat public static List getScenariosFromJsonFile(final String fileName) throws IOException { final String content; - try { - content = new String(CalibrationParserDataItems.class.getResourceAsStream(fileName).readAllBytes(), StandardCharsets.UTF_8); + try (InputStream inputStream = CalibrationParserDataItems.class.getResourceAsStream(fileName)) { + content = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8); } catch (IOException e) { - System.out.println("Please provide the market data file " + fileName); + logger.error("Please provide the market data file: {}.", fileName, e); throw e; } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/database/DatabaseConnector.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/database/DatabaseConnector.java index c765ca2cc..b9ddefd68 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/database/DatabaseConnector.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/database/DatabaseConnector.java @@ -33,8 +33,12 @@ public class DatabaseConnector { private static final Logger logger = LoggerFactory.getLogger(DatabaseConnector.class); private Connection connection; - @Autowired - private ResourceGovernor resourceGovernor; + + private final ResourceGovernor resourceGovernor; + + public DatabaseConnector(ResourceGovernor resourceGovernor) { + this.resourceGovernor = resourceGovernor; + } /** @@ -45,11 +49,11 @@ public void init() { try { Properties databaseConnectionProperties = new Properties(); databaseConnectionProperties.load(new StringReader( - resourceGovernor.getDatabasePropertiesAsResourceInReadMode() - .getContentAsString(StandardCharsets.UTF_8))); + resourceGovernor.getDatabasePropertiesAsResourceInReadMode() + .getContentAsString(StandardCharsets.UTF_8))); connection = DriverManager.getConnection(databaseConnectionProperties.getProperty("URL"), - databaseConnectionProperties.getProperty("USERNAME"), - databaseConnectionProperties.getProperty("PASSWORD")); + databaseConnectionProperties.getProperty("USERNAME"), + databaseConnectionProperties.getProperty("PASSWORD")); logger.info("Connected to the PostgreSQL server successfully."); } catch (SQLException | IOException e) { // Allow connection to be null - if we run without database @@ -67,8 +71,9 @@ public void init() { * @throws IOException when writing to the active dataset fails */ public void fetchFromDatabase(List fixingSymbols, String username) throws SQLException, IOException { - Statement fetchStatement = connection.createStatement(); - String rawOutput; + try (Statement fetchStatement = connection.createStatement()) { + + String rawOutput; /* Explaination of the query: SELECT the most recent quote/fixing for all symbols provided @@ -76,7 +81,7 @@ public void fetchFromDatabase(List fixingSymbols, String username) throw THEN order the results in chronological order THEN format the output as a JSON market data transfer message */ - if (fetchStatement.execute(""" + if (fetchStatement.execute(""" SELECT json_build_object('requestTimestamp',to_json((now() at time zone 'utc')::timestamptz(0)),'values',json_agg(t1)) FROM ( SELECT "dataTimestamp_"::timestamptz(0) as "dataTimestamp", "symbolId_" as "symbol", @@ -92,18 +97,18 @@ SELECT json_build_object('requestTimestamp',to_json((now() at time zone 'utc'):: ORDER BY "symbolId_") AS T5) AS T1; """.formatted(fixingSymbols.stream().collect(joining("','", "'", "'"))) .replaceFirst(".$", - ""))) { // PostgreSQL JSON parser won't parse multiline-JSONs correctly, remove all newline chars - if (fetchStatement.getResultSet().next()) { - rawOutput = fetchStatement.getResultSet().getString(1); - logger.info("Writing dataset..."); - logger.info(rawOutput); - try (OutputStream outputStream = resourceGovernor.getActiveDatasetAsResourceInWriteMode(username).getOutputStream()) { - outputStream.write(rawOutput.getBytes()); - logger.info("...done."); + ""))) { // PostgreSQL JSON parser won't parse multiline-JSONs correctly, remove all newline chars + if (fetchStatement.getResultSet().next()) { + rawOutput = fetchStatement.getResultSet().getString(1); + logger.info("Writing dataset..."); + logger.info(rawOutput); + try (OutputStream outputStream = resourceGovernor.getActiveDatasetAsResourceInWriteMode(username).getOutputStream()) { + outputStream.write(rawOutput.getBytes()); + logger.info("...done."); + } } } } - fetchStatement.close(); } /** @@ -113,10 +118,12 @@ SELECT json_build_object('requestTimestamp',to_json((now() at time zone 'utc'):: * @throws IOException if opening the import candidates file was not possible */ public void updateDatabase() throws SQLException, IOException { - Statement importTableCreationStatement = connection.createStatement(); - Statement importStatement = connection.createStatement(); - Statement clearAfterUpdateStatement = connection.createStatement(); - String importfileLocation = resourceGovernor.getImportCandidateAsResourceInReadMode().getFile().getAbsolutePath(); + try ( + Statement importTableCreationStatement = connection.createStatement(); + Statement importStatement = connection.createStatement(); + Statement clearAfterUpdateStatement = connection.createStatement();) { + + String importfileLocation = resourceGovernor.getImportCandidateAsResourceInReadMode().getFile().getAbsolutePath(); /* @@ -125,18 +132,18 @@ public void updateDatabase() throws SQLException, IOException { CLEAR the table COPY the import candidates to the table */ - String sql = """ + String sql = """ CREATE UNLOGGED TABLE IF NOT EXISTS import_helper (import_helper text); DELETE FROM import_helper; COPY import_helper FROM '%s'; """.formatted(importfileLocation); - importTableCreationStatement.execute(sql); + importTableCreationStatement.execute(sql); /* Explaination of the query: parse the import candidate from the temporary table if there are conflict with already imported quotes, do nothing and keep the old version */ - importStatement.execute(""" + importStatement.execute(""" INSERT INTO public."MarketDataPoints" SELECT (dataPoints_ ->> 'dataTimestamp')::timestamp without time zone AS dataTimestamp_, (dataPoints_ ->> 'symbol')::varchar AS symbolId_, @@ -153,9 +160,7 @@ SELECT string_agg(import_helper, '')::json -> 'values' AS values_ FROM import_he Explaination of the query: remove the temporary table */ - clearAfterUpdateStatement.execute("DROP TABLE IF EXISTS import_helper;"); - importTableCreationStatement.close(); - importStatement.close(); - clearAfterUpdateStatement.close(); + clearAfterUpdateStatement.execute("DROP TABLE IF EXISTS import_helper;"); + } } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java index 2ba6b9f91..66ba01d89 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorRandomFeed.java @@ -37,7 +37,7 @@ public Observable asObservable() { } emitter.onComplete(); }; - Period period; + // Period period; // Observable.interval(0,period.get(TimeUnit.SECONDS.toChronoUnit()),TimeUnit.SECONDS).map(i->...) return Observable.create(observable).delay(this.simulationFrequencySec, TimeUnit.SECONDS); diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java index af31a16a3..49036edd0 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorWebsocket.java @@ -16,8 +16,6 @@ import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Service; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Sinks; import java.io.IOException; import java.math.BigDecimal; @@ -27,6 +25,7 @@ import java.time.format.DateTimeFormatter; import java.util.*; +@SuppressWarnings("java:S125") @Profile("prod") @Service public class MarketDataGeneratorWebsocket extends WebSocketAdapter implements MarketDataGeneratorInterface {// implements Callable { @@ -101,9 +100,10 @@ public void writeDataset(String importDir, MarketDataList s, boolean isOvernight Files.write(path, json.getBytes());*/ } + @Override public void onTextMessage(WebSocket websocket, String message) throws Exception { - System.out.println("message: " + message); + logger.info("message: {}", message); JsonNode responseJson = null; if (!message.isEmpty()) { @@ -141,7 +141,7 @@ public void onTextMessage(WebSocket websocket, String message) throws Exception } } catch (Exception e) { - System.out.println("Fetching Quote Error:" + e); + logger.error("Fetching Quote Error:", e); } } @@ -183,9 +183,8 @@ private LocalDateTime adjustTimestampForOvernightFixing(LocalDateTime localDateT * Create and send simple Market Price request * * @param websocket Websocket to send the message on - * @throws Exception */ - public void sendRICRequest(WebSocket websocket) throws Exception { + public void sendRICRequest(WebSocket websocket) { String requestJsonString; String keyString1 = ricsToString(); //;+ ",\"Service\":\""; // + "\"}}"; // requestJsonString = "{\"ID\":2," + keyString1 + ",\"View\":[\"MID\",\"BID\",\"ASK\",\"VALUE_DT1\",\"VALUE_TS1\"]}"; @@ -213,14 +212,14 @@ public void sendLoginRequest(WebSocket websocket, String authToken, boolean isFi private String ricsToString() { - String ricsAsString = "\"Key\":{\"Name\":["; + StringBuilder ricsAsString = new StringBuilder("\"Key\":{\"Name\":["); for (CalibrationDataItem.Spec item : this.calibrationSpecs) - ricsAsString += "\"" + item.getKey() + "\","; - ricsAsString = ricsAsString.substring(0, ricsAsString.length() - 1); - ricsAsString += "]}"; + ricsAsString.append("\"").append(item.getKey()).append("\","); + ricsAsString = new StringBuilder(ricsAsString.substring(0, ricsAsString.length() - 1)); + ricsAsString.append("]}"); - return ricsAsString; + return ricsAsString.toString(); } diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java index 5b2048906..fa20ed5bd 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java @@ -72,18 +72,21 @@ public class PlainSwapEditorController implements PlainSwapEditorApi { }; private final String schemaPath = "schemas/sdc-schemas/sdcml-contract.xsd"; //may be changed to allow for different versions of the schema - @Autowired - private DatabaseConnector databaseConnector; - - @Autowired - private ResourceGovernor resourceGovernor; @Value("${hostname:localhost:8080}") private String hostname; + private final DatabaseConnector databaseConnector; + + private final ResourceGovernor resourceGovernor; - @Autowired - private ObjectMapper objectMapper; + private final ObjectMapper objectMapper; + + public PlainSwapEditorController(DatabaseConnector databaseConnector, ResourceGovernor resourceGovernor, ObjectMapper objectMapper) { + this.databaseConnector = databaseConnector; + this.resourceGovernor = resourceGovernor; + this.objectMapper = objectMapper; + } /** diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/utils/ResourceGovernor.java b/src/main/java/net/finmath/smartcontract/valuation/service/utils/ResourceGovernor.java index cf853a001..35b89a3a9 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/utils/ResourceGovernor.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/utils/ResourceGovernor.java @@ -18,8 +18,8 @@ @Profile("!test") public class ResourceGovernor { - @Autowired - private ResourcePatternResolver resourcePatternResolver; + private final ResourcePatternResolver resourcePatternResolver; + @Value("${storage.basedir}") private String storageBaseDir; @Value("${storage.importdir}") @@ -30,6 +30,10 @@ public class ResourceGovernor { @Value("${storage.internals.databaseConnectionPropertiesFile}") private String databaseConnectionPropertiesFile; + public ResourceGovernor(ResourcePatternResolver resourcePatternResolver) { + this.resourcePatternResolver = resourcePatternResolver; + } + public Resource getActiveDatasetAsResourceInReadMode(String username) { return resourcePatternResolver.getResource( diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/WebSocketClientEndpoint.java b/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/WebSocketClientEndpoint.java index df2653ce8..a27573f82 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/WebSocketClientEndpoint.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/WebSocketClientEndpoint.java @@ -5,6 +5,8 @@ import jakarta.websocket.*; import net.finmath.smartcontract.model.ExceptionId; import net.finmath.smartcontract.model.SDCException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; import java.net.URI; @@ -21,11 +23,12 @@ @ClientEndpoint public class WebSocketClientEndpoint extends Endpoint { + private static final Logger logger = LoggerFactory.getLogger(WebSocketClientEndpoint.class); private final PublishSubject messageSubject = PublishSubject.create(); - private URI endpointURI; + private final URI endpointURI; private Session userSession; - private ClientEndpointConfig config; + private final ClientEndpointConfig config; public WebSocketClientEndpoint(URI endpointURI, String user, String password) { @@ -64,15 +67,16 @@ public void sendTextMessage(String message) throws IOException { @Override public void onOpen(Session session, EndpointConfig config) { - System.out.println("Opening websocket"); + logger.info("Opening websocket"); session.addMessageHandler((MessageHandler.Whole) message - -> System.out.println("Received message: " + message)); + -> logger.info("Received message: {}", message)); } + @Override @OnClose public void onClose(Session userSession, CloseReason reason) { - System.out.println("Closing websocket"); + logger.info("Closing websocket"); this.messageSubject.onComplete(); this.userSession = null; } diff --git a/src/main/resources/patches/TradeIdentifier.java b/src/main/resources/patches/TradeIdentifier.java index 7fe146db3..8a4aa4f1f 100644 --- a/src/main/resources/patches/TradeIdentifier.java +++ b/src/main/resources/patches/TradeIdentifier.java @@ -181,7 +181,7 @@ public void setAccountReference(AccountReference value) { */ public List getTradeIdOrVersionedTradeId() { if (tradeIdOrVersionedTradeId == null) { - tradeIdOrVersionedTradeId = new ArrayList(); + tradeIdOrVersionedTradeId = new ArrayList<>(); } return this.tradeIdOrVersionedTradeId; } diff --git a/src/test/java/net/finmath/smartcontract/contract/SmartDerivativeContractScheduleGeneratorTest.java b/src/test/java/net/finmath/smartcontract/contract/SmartDerivativeContractScheduleGeneratorTest.java index 1d278729c..ea83590e3 100644 --- a/src/test/java/net/finmath/smartcontract/contract/SmartDerivativeContractScheduleGeneratorTest.java +++ b/src/test/java/net/finmath/smartcontract/contract/SmartDerivativeContractScheduleGeneratorTest.java @@ -18,10 +18,10 @@ /** * @author Christian Fries */ -public class SmartDerivativeContractScheduleGeneratorTest { +class SmartDerivativeContractScheduleGeneratorTest { @Test - public void test() { + void test() { final LocalDate startDate = LocalDate.of(2018, 9, 15); final LocalDate maturity = LocalDate.of(2028, 9, 15); final LocalTime settlementTime = LocalTime.of(17, 30); diff --git a/src/test/java/net/finmath/smartcontract/demo/DemoTest.java b/src/test/java/net/finmath/smartcontract/demo/DemoTest.java index dc37520ef..014d163ce 100644 --- a/src/test/java/net/finmath/smartcontract/demo/DemoTest.java +++ b/src/test/java/net/finmath/smartcontract/demo/DemoTest.java @@ -3,10 +3,10 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -public class DemoTest { +class DemoTest { @Test - public void test() { + void test() { // Try fail here to test the build in the integration server. boolean isShouldFail = false; diff --git a/src/test/java/net/finmath/smartcontract/settlement/SettlementTests.java b/src/test/java/net/finmath/smartcontract/settlement/SettlementTests.java index 4d17b09a5..c765b430e 100644 --- a/src/test/java/net/finmath/smartcontract/settlement/SettlementTests.java +++ b/src/test/java/net/finmath/smartcontract/settlement/SettlementTests.java @@ -17,7 +17,7 @@ import java.time.ZonedDateTime; import java.util.List; -public class SettlementTests { +class SettlementTests { @Test void testGenerateSettlementXML() throws Exception{ diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/GeneratorTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/GeneratorTests.java index 44aa7ded3..a5b2780ab 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/GeneratorTests.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/GeneratorTests.java @@ -15,7 +15,7 @@ import java.util.List; import java.util.Properties; @TestInstance(TestInstance.Lifecycle.PER_CLASS) -public class GeneratorTests { +class GeneratorTests { Properties properties; diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/database/MockDatabaseConnector.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/database/MockDatabaseConnector.java index 9963ec9d0..24fc9d50b 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/database/MockDatabaseConnector.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/database/MockDatabaseConnector.java @@ -1,5 +1,6 @@ package net.finmath.smartcontract.valuation.marketdata.database; +import net.finmath.smartcontract.valuation.service.utils.ResourceGovernor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Profile; @@ -15,6 +16,11 @@ public class MockDatabaseConnector extends DatabaseConnector { private static final Logger logger = LoggerFactory.getLogger(MockDatabaseConnector.class); + public MockDatabaseConnector(ResourceGovernor resourceGovernor) { + super(resourceGovernor); + } + + @Override public void init() { logger.info("Initialized mock connection."); diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioListTest.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioListTest.java index 093934798..c59ae352b 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioListTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioListTest.java @@ -41,7 +41,7 @@ void asObservable() { assertNotNull(fileMarketDataList); assertNotNull(observedMarketDataList); - assertTrue(fileMarketDataList.equals(observedMarketDataList.get())); + assertEquals(fileMarketDataList, observedMarketDataList.get()); //iteration 2 @@ -56,7 +56,7 @@ void asObservable() { assertNotNull(fileMarketDataList); assertNotNull(observedMarketDataList); - assertTrue(fileMarketDataList.equals(observedMarketDataList.get())); + assertEquals(fileMarketDataList, observedMarketDataList.get()); } @Test diff --git a/src/test/java/net/finmath/smartcontract/valuation/oracle/GeometricBrownianMotionOracleTest.java b/src/test/java/net/finmath/smartcontract/valuation/oracle/GeometricBrownianMotionOracleTest.java index 826487ce4..1e49e5d84 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/oracle/GeometricBrownianMotionOracleTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/oracle/GeometricBrownianMotionOracleTest.java @@ -14,10 +14,10 @@ /** * @author Christian Fries */ -public class GeometricBrownianMotionOracleTest { +class GeometricBrownianMotionOracleTest { @Test - public void test() { + void test() { final LocalDateTime initialTime = LocalDateTime.of(2018, 8, 12, 12, 00); final LocalDateTime finalTime = LocalDateTime.of(2028, 8, 12, 12, 00); final int path = 0; diff --git a/src/test/java/net/finmath/smartcontract/valuation/service/PlainSwapEditorControllerTest.java b/src/test/java/net/finmath/smartcontract/valuation/service/PlainSwapEditorControllerTest.java index 8bfee29b7..f8110868a 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/service/PlainSwapEditorControllerTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/service/PlainSwapEditorControllerTest.java @@ -51,7 +51,7 @@ @AutoConfigureJson @TestInstance(TestInstance.Lifecycle.PER_CLASS) @ActiveProfiles("test") -public class PlainSwapEditorControllerTest { +class PlainSwapEditorControllerTest { private static final Logger logger = LoggerFactory.getLogger(PlainSwapEditorControllerTest.class); diff --git a/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java b/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java index b63788f04..0b4611620 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java @@ -41,13 +41,13 @@ @AutoConfigureMockMvc @WebAppConfiguration @ActiveProfiles("test") -public class ValuationControllerTest { +class ValuationControllerTest { final String productXMLFile = "net.finmath.smartcontract.product.xml/smartderivativecontract.xml"; @Test @WithUserDetails("user1") // testing now uses more of the server environment, including security. Tests would fail if requests are not authenticated. - public void getMargin(@Autowired MockMvc mockMvc) throws Exception { + void getMargin(@Autowired MockMvc mockMvc) throws Exception { final String marketDataStartXml = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); // final MarketDataList marketDataStart = SDCXMLParser.unmarshalXml(marketDataStartXml, MarketDataList.class); @@ -72,7 +72,7 @@ public void getMargin(@Autowired MockMvc mockMvc) throws Exception { @Test @WithUserDetails("user1") - public void getValue(@Autowired MockMvc mockMvc) throws Exception { + void getValue(@Autowired MockMvc mockMvc) throws Exception { final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream(productXMLFile).readAllBytes(), StandardCharsets.UTF_8); diff --git a/src/test/java/net/finmath/smartcontract/valuation/service/utils/MockResourceGovernor.java b/src/test/java/net/finmath/smartcontract/valuation/service/utils/MockResourceGovernor.java index f1f516937..ae19c8706 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/service/utils/MockResourceGovernor.java +++ b/src/test/java/net/finmath/smartcontract/valuation/service/utils/MockResourceGovernor.java @@ -4,6 +4,7 @@ import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.core.io.WritableResource; +import org.springframework.core.io.support.ResourcePatternResolver; import org.springframework.stereotype.Service; import java.io.IOException; @@ -12,6 +13,10 @@ @Profile("test") public class MockResourceGovernor extends ResourceGovernor { + public MockResourceGovernor(ResourcePatternResolver resourcePatternResolver) { + super(resourcePatternResolver); + } + @Override public Resource getActiveDatasetAsResourceInReadMode(String username) { return new ClassPathResource("net/finmath/smartcontract/valuation/client/legacy/md_testset_newformat_1.json"); diff --git a/src/test/java/net/simulation/HistoricalSimulationTest.java b/src/test/java/net/simulation/HistoricalSimulationTest.java index ad6837981..11ab6aefd 100644 --- a/src/test/java/net/simulation/HistoricalSimulationTest.java +++ b/src/test/java/net/simulation/HistoricalSimulationTest.java @@ -12,10 +12,10 @@ import java.util.List; import java.util.stream.Collectors; -public class HistoricalSimulationTest { +class HistoricalSimulationTest { @Test - public void testHistoricalSimulation() { + void testHistoricalSimulation() { try { From 881ae7e021fb1c2ec81816e93701873975124646 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Wed, 15 May 2024 10:54:56 +0200 Subject: [PATCH 065/105] NO_ISSUE, code cleanup --- .../smartcontract/demo/VisualiserSDC.java | 27 +++++++------------ .../valuation/client/ValuationClient.java | 4 --- .../curvecalibration/CalibrationDataItem.java | 2 -- .../curvecalibration/CalibrationDataset.java | 1 - .../CalibrationParserDataItems.java | 3 --- .../MarketDataGeneratorScenarioList.java | 6 ----- .../PlainSwapEditorController.java | 1 - 7 files changed, 10 insertions(+), 34 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/demo/VisualiserSDC.java b/src/main/java/net/finmath/smartcontract/demo/VisualiserSDC.java index c163247d0..9ec195552 100644 --- a/src/main/java/net/finmath/smartcontract/demo/VisualiserSDC.java +++ b/src/main/java/net/finmath/smartcontract/demo/VisualiserSDC.java @@ -37,9 +37,8 @@ */ @SuppressWarnings("java:S125") public class VisualiserSDC { - + private static final String COUNTERPART = "Counterpart"; private List seriesMarketValues; - private Plot2DBarFX plotMarginAccounts; private Plot2DFX plotMarketValue; @@ -54,12 +53,10 @@ public static void main(final String[] args) throws Exception { final LocalDate startDate = LocalDate.of(2008, 1, 1); final LocalDate maturity = LocalDate.of(2012, 1, 3); final String fileName = "timeseriesdatamap.json"; - //final DateTimeFormatter providedDateFormat = DateTimeFormatter.ofPattern("yyyyMMdd"); final List scenarioList = CalibrationParserDataItems.getScenariosFromJsonFile(fileName).stream().filter(s -> s.getDate().toLocalDate().isAfter(startDate)).filter(s -> s.getDate().toLocalDate().isBefore(maturity)).toList(); // CSV Method returns same List // final List scenarioList = IRScenarioGenerator.getScenariosFromCSVFile(fileName,providedDateFormat).stream().filter(S->S.getDate().toLocalDate().isAfter(startDate)).filter(S->S.getDate().toLocalDate().isBefore(maturity)).collect(Collectors.toList()); - final double notional = 1.0E7; final String maturityKey = "5Y"; final String forwardCurveKey = "forward-EUR-6M"; @@ -126,17 +123,13 @@ public void start() { frame.setSize(1600, 600); // frame.setSize(960, 540+22); - Platform.runLater(new Runnable() { - @Override - public void run() { - - final FlowPane root = new FlowPane(); - root.getChildren().addAll(new Group(plotMarginAccounts.get()), plotMarketValue.get()); + Platform.runLater(() -> { + final FlowPane root = new FlowPane(); + root.getChildren().addAll(new Group(plotMarginAccounts.get()), plotMarketValue.get()); - final Scene scene = new Scene(root, 1600, 600); - scene.getStylesheets().add("barchart.css"); - fxPanel.setScene(scene); - } + final Scene scene = new Scene(root, 1600, 600); + scene.getStylesheets().add("barchart.css"); + fxPanel.setScene(scene); }); }); } @@ -144,15 +137,15 @@ public void run() { void updateWithValue(final LocalDateTime date, final double base, final double x, final Double value, final double increment) throws InterruptedException { final List marginBase = new ArrayList<>(); marginBase.add(new Category2D("We", base + Math.min(0, +increment))); - marginBase.add(new Category2D("Counterpart", base + Math.min(0, -increment))); + marginBase.add(new Category2D(COUNTERPART, base + Math.min(0, -increment))); final List marginRemoved = new ArrayList<>(); marginRemoved.add(new Category2D("We", -Math.min(0, +increment))); - marginRemoved.add(new Category2D("Counterpart", -Math.min(0, -increment))); + marginRemoved.add(new Category2D(COUNTERPART, -Math.min(0, -increment))); final List marginExcessed = new ArrayList<>(); marginExcessed.add(new Category2D("We", Math.max(0, +increment))); - marginExcessed.add(new Category2D("Counterpart", Math.max(0, -increment))); + marginExcessed.add(new Category2D(COUNTERPART, Math.max(0, -increment))); final List plotables = new ArrayList<>(); plotables.add(new PlotableCategories() { diff --git a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java index 3a1bb8c54..df705a969 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java +++ b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java @@ -21,9 +21,7 @@ * @author Peter Kohl-Landgraf * @author Dietmar Schnabel */ -@SuppressWarnings("java:S125") public class ValuationClient { - private static final Logger logger = LoggerFactory.getLogger(ValuationClient.class); private static final String BASIC = "Basic "; @@ -48,9 +46,7 @@ public static void main(String[] args) throws Exception { } final String marketDataStartXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml")).readAllBytes(), StandardCharsets.UTF_8); - //final MarketDataList marketDataStart = SDCXMLParser.unmarshalXml(marketDataStartXml, MarketDataList.class); final String marketDataEndXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml")).readAllBytes(), StandardCharsets.UTF_8); - //final MarketDataList marketDataEnd = SDCXMLParser.unmarshalXml(marketDataEndXml, MarketDataList.class); final String product = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); final MarginRequest marginRequest = new MarginRequest().marketDataStart(marketDataStartXml).marketDataEnd(marketDataEndXml).tradeData(product).valuationDate(""); diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataItem.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataItem.java index 195e0dd58..84f02b1a6 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataItem.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataItem.java @@ -11,7 +11,6 @@ public class CalibrationDataItem { private static final String REGEX = "((?<=[a-zA-Z])(?=[0-9]))|((?<=[0-9])(?=[a-zA-Z]))"; - public static class Spec { private final String key; private final String curveName; @@ -119,7 +118,6 @@ public String getDateString() { return this.dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); } - public LocalDate getDate() {return dateTime.toLocalDate();} public LocalDateTime getDateTime(){ return dateTime;} diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java index e3a9066c8..f054c115c 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationDataset.java @@ -35,7 +35,6 @@ public CalibrationDataset getScaled(double scaleFactor) { return new CalibrationDataset(scaledSet, scenarioDate); } - public Set getFixingDataItems() { return this.fixingDataItems; } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java index cd60cd22c..2bcd404a0 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationParserDataItems.java @@ -25,7 +25,6 @@ @SuppressWarnings("java:S125") public class CalibrationParserDataItems implements CalibrationParser { - private static final Logger logger = LoggerFactory.getLogger(CalibrationParserDataItems.class); @Override @@ -200,6 +199,4 @@ private static Set getFixingDataItemSet(final String curveK return new CalibrationDataItem(spec, curvePointEntry.getValue(), fixingDate.atStartOfDay()); })).collect(Collectors.toCollection(LinkedHashSet::new)); } - - } diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java index 1aaca31dc..8196301ad 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorScenarioList.java @@ -17,14 +17,11 @@ import java.util.List; import java.util.Objects; -@SuppressWarnings("java:S125") @Profile(value = {"dev", "test", "int", "default"}) @Service public class MarketDataGeneratorScenarioList implements MarketDataGeneratorInterface { - private static final Logger logger = LoggerFactory.getLogger(MarketDataGeneratorScenarioList.class); private Observable publishSubject; - private int counter = 0; private final List files = List.of("marketdata_2008-05-02.xml", "marketdata_2008-05-05.xml", "marketdata_2008-05-06.xml", "marketdata_2008-05-07.xml", "marketdata_2008-05-08.xml", "marketdata_2008-05-09.xml", "marketdata_2008-05-12.xml", "marketdata_2008-05-13.xml", "marketdata_2008-05-14.xml", "marketdata_2008-05-15.xml", "marketdata_2008-05-16.xml", "marketdata_2008-05-19.xml", "marketdata_2008-05-20.xml", "marketdata_2008-05-21.xml", "marketdata_2008-05-22.xml", "marketdata_2008-05-23.xml", "marketdata_2008-05-26.xml", "marketdata_2008-05-27.xml", "marketdata_2008-05-28.xml", "marketdata_2008-05-29.xml", "marketdata_2008-05-30.xml", @@ -35,9 +32,6 @@ public class MarketDataGeneratorScenarioList implements MarketDataGeneratorInter "marketdata_2008-10-01.xml", "marketdata_2008-10-02.xml", "marketdata_2008-10-03.xml", "marketdata_2008-10-06.xml", "marketdata_2008-10-07.xml", "marketdata_2008-10-08.xml", "marketdata_2008-10-09.xml", "marketdata_2008-10-10.xml", "marketdata_2008-10-13.xml", "marketdata_2008-10-14.xml", "marketdata_2008-10-15.xml", "marketdata_2008-10-16.xml", "marketdata_2008-10-17.xml", "marketdata_2008-10-20.xml", "marketdata_2008-10-21.xml", "marketdata_2008-10-22.xml", "marketdata_2008-10-23.xml", "marketdata_2008-10-24.xml", "marketdata_2008-10-27.xml", "marketdata_2008-10-28.xml", "marketdata_2008-10-29.xml", "marketdata_2008-10-30.xml", "marketdata_2008-10-31.xml"); - /*public MarketDataGeneratorScenarioList(List scenarioList) { - publishSubject = PublishSubject.create(); - }*/ public MarketDataGeneratorScenarioList() { publishSubject = PublishSubject.create(); } diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java index 3586544f6..fbceb85e9 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java @@ -84,7 +84,6 @@ public PlainSwapEditorController(DatabaseConnector databaseConnector, ResourceGo this.objectMapper = objectMapper; } - /** * Controller that handles requests for generation of a SDCmL document. * From f3899c3fd84547904c24ad2d2506212f1e8f5e37 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Wed, 15 May 2024 14:38:23 +0200 Subject: [PATCH 066/105] NO_ISSUE, fix for ZonedDateTimeAdapter --- .../smartcontract/settlement/ZonedDateTimeAdapter.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/settlement/ZonedDateTimeAdapter.java b/src/main/java/net/finmath/smartcontract/settlement/ZonedDateTimeAdapter.java index 43e5e6763..007476ef9 100644 --- a/src/main/java/net/finmath/smartcontract/settlement/ZonedDateTimeAdapter.java +++ b/src/main/java/net/finmath/smartcontract/settlement/ZonedDateTimeAdapter.java @@ -3,12 +3,13 @@ import jakarta.xml.bind.annotation.adapters.XmlAdapter; import java.text.ParseException; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; public class ZonedDateTimeAdapter extends XmlAdapter { - @Override public String marshal(ZonedDateTime v) { return v.format(DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss")); @@ -17,7 +18,8 @@ public String marshal(ZonedDateTime v) { @Override public ZonedDateTime unmarshal(String str) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss"); - return ZonedDateTime.parse(str, formatter); + LocalDateTime ldt = LocalDateTime.parse(str, formatter); + //return ZonedDateTime.parse(str, formatter); + return ZonedDateTime.of(ldt, ZoneId.systemDefault()); } - } \ No newline at end of file From a045f1d8a23d0708060251001ce748b0405d7597 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Wed, 15 May 2024 19:11:42 +0200 Subject: [PATCH 067/105] SDC-510, new ExceptionId --- src/main/java/net/finmath/smartcontract/model/ExceptionId.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java index 6a411718a..5cb6b0fea 100644 --- a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java +++ b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java @@ -31,4 +31,5 @@ public enum ExceptionId { SDC_SETTLEMENT_XML_ERROR, SDC_PERFORM_SETTLEMENT_ERROR, SDC_SETTLEMENTHISTORY_ERROR, + SDC_NO_DATA_FOUND, } \ No newline at end of file From d8d7c628b15e97f08b575f0e845ab1f43d17ea7e Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Tue, 21 May 2024 09:12:51 +0200 Subject: [PATCH 068/105] NO_ISSUE, new ExceptionId --- src/main/java/net/finmath/smartcontract/model/ExceptionId.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java index 5cb6b0fea..201152a3a 100644 --- a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java +++ b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java @@ -30,6 +30,7 @@ public enum ExceptionId { SDC_GETTRADEDATA_ERROR, SDC_SETTLEMENT_XML_ERROR, SDC_PERFORM_SETTLEMENT_ERROR, + SDC_WEB3J_SEND_ERROR, SDC_SETTLEMENTHISTORY_ERROR, SDC_NO_DATA_FOUND, } \ No newline at end of file From a3dee889240e3d8c49653a11ea4ac73005b1a251 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 24 May 2024 10:58:20 +0200 Subject: [PATCH 069/105] SDC-325, new TradeUtils to create unique TradeIDs --- .../finmath/smartcontract/util/TradeUtils.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/main/java/net/finmath/smartcontract/util/TradeUtils.java diff --git a/src/main/java/net/finmath/smartcontract/util/TradeUtils.java b/src/main/java/net/finmath/smartcontract/util/TradeUtils.java new file mode 100644 index 000000000..77f5e1297 --- /dev/null +++ b/src/main/java/net/finmath/smartcontract/util/TradeUtils.java @@ -0,0 +1,17 @@ +package net.finmath.smartcontract.util; + +import java.util.UUID; + +public class TradeUtils { + + private TradeUtils(){} + + /** + * create a unique trade id as a substring of a java.util.UUID.randomUUID + * @return unique trade id + */ + public static String getUniqueTradeId(){ + String uniqueID = UUID.randomUUID().toString().replace("-", "").substring(0, 17); + return "ID_" + uniqueID; + } +} From 0de9703f51653d3e7d30b68e81e0558f65364b84 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 24 May 2024 11:53:26 +0200 Subject: [PATCH 070/105] SDC-325, test for TradeUtils --- .../smartcontract/util/TradeUtilsTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/test/java/net/finmath/smartcontract/util/TradeUtilsTest.java diff --git a/src/test/java/net/finmath/smartcontract/util/TradeUtilsTest.java b/src/test/java/net/finmath/smartcontract/util/TradeUtilsTest.java new file mode 100644 index 000000000..1b52de9bd --- /dev/null +++ b/src/test/java/net/finmath/smartcontract/util/TradeUtilsTest.java @@ -0,0 +1,32 @@ +package net.finmath.smartcontract.util; + +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Pattern; + +import static org.junit.jupiter.api.Assertions.*; + +class TradeUtilsTest { + + @Test + void getUniqueTradeId() { + List ids = new ArrayList<>(); + for (int i = 1; i <= 200 ; i++){ + String id = TradeUtils.getUniqueTradeId(); + System.out.println(i + ". " +id); + assertTrue(id.contains("ID_")); + + //max length 20 + assertEquals(20, id.length()); + + //id only contains letters and numbers (and the leading underscore) + assertTrue(Pattern.matches("ID_[a-zA-Z0-9]+", id)); + + //check on uniqueness + assertFalse(ids.contains(id)); + ids.add(id); + } + } +} \ No newline at end of file From 7e0e744f0be9c25c095537f8544b30e64d83c095 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 24 May 2024 15:34:50 +0200 Subject: [PATCH 071/105] NO_ISSUE, cleanup --- .../SmartDerivativeContractEvent.java | 58 ------------- .../settlement/SettlementsTest.java | 87 +++++++++++++++++++ 2 files changed, 87 insertions(+), 58 deletions(-) delete mode 100644 src/main/java/net/finmath/smartcontract/contract/SmartDerivativeContractEvent.java create mode 100644 src/test/java/net/finmath/smartcontract/settlement/SettlementsTest.java diff --git a/src/main/java/net/finmath/smartcontract/contract/SmartDerivativeContractEvent.java b/src/main/java/net/finmath/smartcontract/contract/SmartDerivativeContractEvent.java deleted file mode 100644 index fde3eb288..000000000 --- a/src/main/java/net/finmath/smartcontract/contract/SmartDerivativeContractEvent.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * (c) Copyright Christian P. Fries, Germany. Contact: email@christianfries.com. - * - * Created on 7 Oct 2018 - */ - -package net.finmath.smartcontract.contract; - -import java.time.LocalDateTime; - -/** - * Observable smart derivative contract event. - * - * @author Christian Fries - */ -public class SmartDerivativeContractEvent { - - public enum EventsTypes { - INIT, - SETTLEMENT, - ACCOUNTS_ACCESSIBLE_START, - ACCOUNTS_ACCESSIBLE_END, - CHECK_MARGIN, - MATURED, - } - - private final EventsTypes eventType; - private final LocalDateTime eventTime; - private final Object eventData; - - public SmartDerivativeContractEvent(final EventsTypes eventType, final LocalDateTime eventTime, final Object eventData) { - super(); - this.eventType = eventType; - this.eventTime = eventTime; - this.eventData = eventData; - } - - /** - * @return the eventType - */ - public EventsTypes getEventType() { - return eventType; - } - - /** - * @return the eventTime - */ - public LocalDateTime getEventTime() { - return eventTime; - } - - /** - * @return the eventData - */ - public Object getEventData() { - return eventData; - } -} diff --git a/src/test/java/net/finmath/smartcontract/settlement/SettlementsTest.java b/src/test/java/net/finmath/smartcontract/settlement/SettlementsTest.java new file mode 100644 index 000000000..9602b47b8 --- /dev/null +++ b/src/test/java/net/finmath/smartcontract/settlement/SettlementsTest.java @@ -0,0 +1,87 @@ +package net.finmath.smartcontract.settlement; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.time.ZonedDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.*; + +class SettlementsTest { + + Settlements settlements; + + String tradeId1, tradeId2, tradeId3, tradeId4; + Settlement s1, s2, s3, s4; + + @BeforeEach + void setup() { + settlements = new Settlements(); + generateSettlementList(); + } + + @Test + void getPrevious() { + Optional optionalSettlement = settlements.getPrevious(s3); + Settlement settlement = null; + if (optionalSettlement.isPresent()) + settlement = optionalSettlement.get(); + + assertNotNull(settlement); + assertEquals(s2, settlement); + assertEquals(tradeId2, settlement.getTradeId()); + } + + @Test + void getNext() { + Optional optionalSettlement = settlements.getNext(s3); + Settlement settlement = null; + if (optionalSettlement.isPresent()) { + settlement = optionalSettlement.get(); + } + + assertNotNull(settlement); + assertEquals(s4, settlement); + assertEquals(tradeId4, settlement.getTradeId()); + } + + @Test + void getSettlements() { + List list = settlements.getSettlements(); + + assertNotNull(list); + assertEquals(tradeId1, list.get(list.indexOf(s1)).getTradeId()); + } + + + private void generateSettlementList() { + tradeId1 = "ID_1"; + tradeId2 = "ID_2"; + tradeId3 = "ID_3"; + tradeId4 = "ID_4"; + + List list = new ArrayList<>(); + + s1 = new Settlement(); + s1.setTradeId(tradeId1); + list.add(s1); + + s2 = new Settlement(); + s2.setTradeId(tradeId2); + list.add(s2); + + s3 = new Settlement(); + s3.setTradeId(tradeId3); + list.add(s3); + + s4 = new Settlement(); + s4.setTradeId(tradeId4); + list.add(s4); + + settlements.setSettlements(list); + } + +} \ No newline at end of file From 5726c75e8d5d5db7117f00a5cdf2942dd22fe0e0 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Wed, 12 Jun 2024 12:23:24 +0200 Subject: [PATCH 072/105] SDCXMLParser more generic in regard to marshalling classes to xml string --- .../finmath/smartcontract/product/xml/SDCXMLParser.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java index a1d792271..f81c05613 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java @@ -3,9 +3,10 @@ import jakarta.xml.bind.*; import net.finmath.smartcontract.model.ExceptionId; import net.finmath.smartcontract.model.SDCException; -import net.finmath.smartcontract.settlement.Settlements; import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; @@ -28,6 +29,8 @@ */ public class SDCXMLParser { + private static final Logger logger = LoggerFactory.getLogger(SDCXMLParser.class); + private SDCXMLParser() { } @@ -165,12 +168,13 @@ public static T unmarshalXml(String xml, Class t) { public static String marshalClassToXMLString(T t) { try { - JAXBContext jaxbContextSettlement = JAXBContext.newInstance(Settlements.class); + JAXBContext jaxbContextSettlement = JAXBContext.newInstance(t.getClass()); Marshaller jaxbMarshaller = jaxbContextSettlement.createMarshaller(); StringWriter writer = new StringWriter(); jaxbMarshaller.marshal(t, writer); return writer.toString(); } catch (JAXBException e) { + logger.error("jaxb error, ", e); throw new SDCException(ExceptionId.SDC_JAXB_ERROR, e.getMessage()); } } From 6f893ecfe9568ff13a5c1169e8f2b9882b9fb934 Mon Sep 17 00:00:00 2001 From: Christian Fries Date: Tue, 18 Jun 2024 13:12:48 +0200 Subject: [PATCH 073/105] Moved resource file to folder structure. --- .../valuation/client/ValuationClient.java | 2 +- .../marketdata/LaunchAGenerator.java | 2 +- .../service/websocket/client/DemoStarter.java | 2 +- .../smartderivativecontract.xsd | 2 +- .../product/xml/smartderivativecontract.xml | 663 ++++++++++++++++++ .../product/xml/smartderivativecontract.xsd | 118 ++++ .../xml/smartderivativecontract_with_rics.xml | 663 ++++++++++++++++++ .../smartcontract/product/xml/JAXBTests.java | 10 +- .../product/xml/SDCXMLParserTest.java | 2 +- .../implementation/MarginCalculatorTest.java | 4 +- .../valuation/marketdata/DataParseTests.java | 8 +- .../curvecalibration/CalibrationTests.java | 9 +- .../service/ValuationControllerTest.java | 4 +- 13 files changed, 1462 insertions(+), 27 deletions(-) create mode 100644 src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract.xml create mode 100644 src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract.xsd create mode 100644 src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract_with_rics.xml diff --git a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java index df705a969..381aea222 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java +++ b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java @@ -47,7 +47,7 @@ public static void main(String[] args) throws Exception { final String marketDataStartXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml")).readAllBytes(), StandardCharsets.UTF_8); final String marketDataEndXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml")).readAllBytes(), StandardCharsets.UTF_8); - final String product = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); + final String product = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); final MarginRequest marginRequest = new MarginRequest().marketDataStart(marketDataStartXml).marketDataEnd(marketDataEndXml).tradeData(product).valuationDate(""); diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java index 4475c11ec..2adb8b029 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java @@ -22,7 +22,7 @@ public class LaunchAGenerator { public static void main(String[] args) throws Exception { - String sdcXML = new String(LaunchAGenerator.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + String sdcXML = new String(LaunchAGenerator.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); List mdItemList = sdc.getMarketdataItemList(); diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/DemoStarter.java b/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/DemoStarter.java index 54954fe2e..454171750 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/DemoStarter.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/DemoStarter.java @@ -15,7 +15,7 @@ public class DemoStarter { public static void main(String[] args) throws Exception { - String sdcXML = new String(DemoStarter.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + String sdcXML = new String(DemoStarter.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); WebSocketClientEndpoint client = new WebSocketClientEndpoint(new URI("ws://localhost:443/valuationfeed"), "user1", "password1"); long timeout = client.getUserSession().getMaxIdleTimeout(); client.sendTextMessage(sdcXML); diff --git a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd index bac40edd3..19afc79df 100644 --- a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd +++ b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd @@ -4,7 +4,7 @@ xmlns="uri:sdc" targetNamespace="uri:sdc"> + schemaLocation="../../../../../schemas/fpml-schemas/fpml-main-5-9.xsd"/> diff --git a/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract.xml b/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract.xml new file mode 100644 index 000000000..615834ab8 --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract.xml @@ -0,0 +1,663 @@ + + UTI12345 + + + net.finmath + finmath-smart-derivative-contract + 0.1.8 + + + + + Counterparty 1 + party1 + + constant + 10000.0 + + + constant + 50000.0 + +
0x627306090abab3a6e1400e9345bc60c78a8bef57
+
+ + Counterparty 2 + party2 + + constant + 10000.0 + + + constant + 50000.0 + +
0xf17f52151ebef6c7334fad080c5704d77216b732
+
+
+ + + 2011-12-03T10:15:30 + + + daily + 17:00 + + + internal + + + ESTRFIX1D + ESTR + Fixing + 1D + + + EUB6FIX6M + Euribor6M + Fixing + 6M + + + EUB6DEP6M + Euribor6M + Deposit + 6M + + + EUB6FRA7M + Euribor6M + Forward-Rate-Agreement + 7M + + + EUB6FRA8M + Euribor6M + Forward-Rate-Agreement + 8M + + + EUB6FRA9M + Euribor6M + Forward-Rate-Agreement + 9M + + + EUB6FRA10M + Euribor6M + Forward-Rate-Agreement + 10M + + + EUB6FRA12M + Euribor6M + Forward-Rate-Agreement + 12M + + + EUB6FRA15M + Euribor6M + Forward-Rate-Agreement + 15M + + + EUB6FRA18M + Euribor6M + Forward-Rate-Agreement + 18M + + + EUB6SWP2Y + Euribor6M + Swap-Rate + 2Y + + + EUB6SWP3Y + Euribor6M + Swap-Rate + 3Y + + + EUB6SWP4Y + Euribor6M + Swap-Rate + 4Y + + + EUB6SWP5Y + Euribor6M + Swap-Rate + 5Y + + + EUB6SWP6Y + Euribor6M + Swap-Rate + 6Y + + + EUB6SWP7Y + Euribor6M + Swap-Rate + 7Y + + + EUB6SWP8Y + Euribor6M + Swap-Rate + 8Y + + + EUB6SWP9Y + Euribor6M + Swap-Rate + 9Y + + + EUB6SWP10Y + Euribor6M + Swap-Rate + 10Y + + + EUB6SWP11Y + Euribor6M + Swap-Rate + 11Y + + + EUB6SWP12Y + Euribor6M + Swap-Rate + 12Y + + + EUB6SWP13Y + Euribor6M + Swap-Rate + 13Y + + + EUB6SWP14Y + Euribor6M + Swap-Rate + 14Y + + + EUB6SWP15Y + Euribor6M + Swap-Rate + 15Y + + + EUB6SWP16Y + Euribor6M + Swap-Rate + 16Y + + + EUB6SWP17Y + Euribor6M + Swap-Rate + 17Y + + + EUB6SWP18Y + Euribor6M + Swap-Rate + 18Y + + + EUB6SWP19Y + Euribor6M + Swap-Rate + 19Y + + + EUB6SWP20Y + Euribor6M + Swap-Rate + 20Y + + + EUB6SWP21Y + Euribor6M + Swap-Rate + 21Y + + + EUB6SWP22Y + Euribor6M + Swap-Rate + 22Y + + + EUB6SWP23Y + Euribor6M + Swap-Rate + 23Y + + + EUB6SWP24Y + Euribor6M + Swap-Rate + 24Y + + + EUB6SWP25Y + Euribor6M + Swap-Rate + 25Y + + + EUB6SWP26Y + Euribor6M + Swap-Rate + 26Y + + + EUB6SWP27Y + Euribor6M + Swap-Rate + 27Y + + + EUB6SWP28Y + Euribor6M + Swap-Rate + 28Y + + + EUB6SWP29Y + Euribor6M + Swap-Rate + 29Y + + + EUB6SWP30Y + Euribor6M + Swap-Rate + 30Y + + + EUB6SWP40Y + Euribor6M + Swap-Rate + 40Y + + + EUB6SWP50Y + Euribor6M + Swap-Rate + 50Y + + + ESTRSWP7D + ESTR + Swap-Rate + 7D + + + ESTRSWP14D + ESTR + Swap-Rate + 14D + + + ESTRSWP21D + ESTR + Swap-Rate + 21D + + + ESTRSWP1M + ESTR + Swap-Rate + 1M + + + ESTRSWP2M + ESTR + Swap-Rate + 2M + + + ESTRSWP3M + ESTR + Swap-Rate + 3M + + + ESTRSWP4M + ESTR + Swap-Rate + 4M + + + ESTRSWP5M + ESTR + Swap-Rate + 5M + + + ESTRSWP6M + ESTR + Swap-Rate + 6M + + + ESTRSWP7M + ESTR + Swap-Rate + 7M + + + ESTRSWP8M + ESTR + Swap-Rate + 8M + + + ESTRSWP9M + ESTR + Swap-Rate + 9M + + + ESTRSWP1Y + ESTR + Swap-Rate + 1Y + + + ESTRSWP15M + ESTR + Swap-Rate + 15M + + + ESTRSWP18M + ESTR + Swap-Rate + 18M + + + ESTRSWP21M + ESTR + Swap-Rate + 21M + + + ESTRSWP2Y + ESTR + Swap-Rate + 2Y + + + ESTRSWP3Y + ESTR + Swap-Rate + 3Y + + + ESTRSWP4Y + ESTR + Swap-Rate + 4Y + + + ESTRSWP5Y + ESTR + Swap-Rate + 5Y + + + ESTRSWP6Y + ESTR + Swap-Rate + 6Y + + + ESTRSWP7Y + ESTR + Swap-Rate + 7Y + + + ESTRSWP8Y + ESTR + Swap-Rate + 8Y + + + ESTRSWP9Y + ESTR + Swap-Rate + 9Y + + + ESTRSWP10Y + ESTR + Swap-Rate + 10Y + + + ESTRSWP11Y + ESTR + Swap-Rate + 11Y + + + ESTRSWP12Y + ESTR + Swap-Rate + 12Y + + + ESTRSWP15Y + ESTR + Swap-Rate + 15Y + + + ESTRSWP20Y + ESTR + Swap-Rate + 20Y + + + ESTRSWP25Y + ESTR + Swap-Rate + 25Y + + + ESTRSWP30Y + ESTR + Swap-Rate + 30Y + + + + + + party1 + + + + + + + + + CP1 + + + + CP2 + + 2022-09-05 + + + + + + + + + 2022-09-07 + + NONE + + + + 2032-09-07 + + MODFOLLOWING + + DEFR + + + + + MODFOLLOWING + + + + 6 + M + 14 + + + + + + 6 + M + + CalculationPeriodEndDate + + FOLLOWING + + + + + + CalculationPeriodStartDate + + -2 + D + Business + NONE + + GBLO + + + + + 6 + M + + + FOLLOWING + + + + + + + + 10000000.00 + + EUR + + + + + EUR-LIBOR-BBA + + 6 + M + + + ACT/360 + + + + + + + + + + 2022-09-07 + + NONE + + + + 2032-09-07 + + FOLLOWING + + + + + FOLLOWING + + + + 1 + Y + 14 + + + + + + 1 + Y + + CalculationPeriodEndDate + + MODFOLLOWING + + + + + + + + 10000000.00 + + EUR + + + + + 0.0395 + + 30E/360 + + + + + + + PARTXXXX + + + P2RTXXXX + + + + +
\ No newline at end of file diff --git a/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract.xsd b/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract.xsd new file mode 100644 index 000000000..19afc79df --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract.xsd @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract_with_rics.xml b/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract_with_rics.xml new file mode 100644 index 000000000..abbfd4b6a --- /dev/null +++ b/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract_with_rics.xml @@ -0,0 +1,663 @@ + + UTI12345 + + + net.finmath + finmath-smart-derivative-contract + 0.1.8 + + + + + Counterparty 1 + party1 + + constant + 10000.0 + + + constant + 50000.0 + +
0x627306090abab3a6e1400e9345bc60c78a8bef57
+
+ + Counterparty 2 + party2 + + constant + 10000.0 + + + constant + 50000.0 + +
0xf17f52151ebef6c7334fad080c5704d77216b732
+
+
+ + + 2011-12-03T10:15:30 + + + daily + 17:00 + + + refinitiv + + + EUROSTR= + ESTR + Fixing + 1D + + + EURIBOR6MD= + Euribor6M + Fixing + 6M + + + EUR6MD= + Euribor6M + Deposit + 6M + + + EUR1X7F= + Euribor6M + Forward-Rate-Agreement + 7M + + + EUR2X8F= + Euribor6M + Forward-Rate-Agreement + 8M + + + EUR3X9F= + Euribor6M + Forward-Rate-Agreement + 9M + + + EUR4X10F= + Euribor6M + Forward-Rate-Agreement + 10M + + + EUR6X12F= + Euribor6M + Forward-Rate-Agreement + 12M + + + EUR9X15F= + Euribor6M + Forward-Rate-Agreement + 15M + + + EUR12X18F= + Euribor6M + Forward-Rate-Agreement + 18M + + + EURAB6E2Y= + Euribor6M + Swap-Rate + 2Y + + + EURAB6E3Y= + Euribor6M + Swap-Rate + 3Y + + + EURAB6E4Y= + Euribor6M + Swap-Rate + 4Y + + + EURAB6E5Y= + Euribor6M + Swap-Rate + 5Y + + + EURAB6E6Y= + Euribor6M + Swap-Rate + 6Y + + + EURAB6E7Y= + Euribor6M + Swap-Rate + 7Y + + + EURAB6E8Y= + Euribor6M + Swap-Rate + 8Y + + + EURAB6E9Y= + Euribor6M + Swap-Rate + 9Y + + + EURAB6E10Y= + Euribor6M + Swap-Rate + 10Y + + + EURAB6E11Y= + Euribor6M + Swap-Rate + 11Y + + + EURAB6E12Y= + Euribor6M + Swap-Rate + 12Y + + + EURAB6E13Y= + Euribor6M + Swap-Rate + 13Y + + + EURAB6E14Y= + Euribor6M + Swap-Rate + 14Y + + + EURAB6E15Y= + Euribor6M + Swap-Rate + 15Y + + + EURAB6E16Y= + Euribor6M + Swap-Rate + 16Y + + + EURAB6E17Y= + Euribor6M + Swap-Rate + 17Y + + + EURAB6E18Y= + Euribor6M + Swap-Rate + 18Y + + + EURAB6E19Y= + Euribor6M + Swap-Rate + 19Y + + + EURAB6E20Y= + Euribor6M + Swap-Rate + 20Y + + + EURAB6E21Y= + Euribor6M + Swap-Rate + 21Y + + + EURAB6E22Y= + Euribor6M + Swap-Rate + 22Y + + + EURAB6E23Y= + Euribor6M + Swap-Rate + 23Y + + + EURAB6E24Y= + Euribor6M + Swap-Rate + 24Y + + + EURAB6E25Y= + Euribor6M + Swap-Rate + 25Y + + + EURAB6E26Y= + Euribor6M + Swap-Rate + 26Y + + + EURAB6E27Y= + Euribor6M + Swap-Rate + 27Y + + + EURAB6E28Y= + Euribor6M + Swap-Rate + 28Y + + + EURAB6E29Y= + Euribor6M + Swap-Rate + 29Y + + + EURAB6E30Y= + Euribor6M + Swap-Rate + 30Y + + + EURAB6E40Y= + Euribor6M + Swap-Rate + 40Y + + + EURAB6E50Y= + Euribor6M + Swap-Rate + 50Y + + + EURESTSW= + ESTR + Swap-Rate + 7D + + + EUREST2W= + ESTR + Swap-Rate + 14D + + + EUREST3W= + ESTR + Swap-Rate + 21D + + + EUREST1M= + ESTR + Swap-Rate + 1M + + + EUREST2M= + ESTR + Swap-Rate + 2M + + + EUREST3M= + ESTR + Swap-Rate + 3M + + + EUREST4M= + ESTR + Swap-Rate + 4M + + + EUREST5M= + ESTR + Swap-Rate + 5M + + + EUREST6M= + ESTR + Swap-Rate + 6M + + + EUREST7M= + ESTR + Swap-Rate + 7M + + + EUREST8M= + ESTR + Swap-Rate + 8M + + + EUREST9M= + ESTR + Swap-Rate + 9M + + + EUREST1Y= + ESTR + Swap-Rate + 1Y + + + EUREST15M= + ESTR + Swap-Rate + 15M + + + EUREST18M= + ESTR + Swap-Rate + 18M + + + EUREST21M= + ESTR + Swap-Rate + 21M + + + EUREST2Y= + ESTR + Swap-Rate + 2Y + + + EUREST3Y= + ESTR + Swap-Rate + 3Y + + + EUREST4Y= + ESTR + Swap-Rate + 4Y + + + EUREST5Y= + ESTR + Swap-Rate + 5Y + + + EUREST6Y= + ESTR + Swap-Rate + 6Y + + + EUREST7Y= + ESTR + Swap-Rate + 7Y + + + EUREST8Y= + ESTR + Swap-Rate + 8Y + + + EUREST9Y= + ESTR + Swap-Rate + 9Y + + + EUREST10Y= + ESTR + Swap-Rate + 10Y + + + EUREST11Y= + ESTR + Swap-Rate + 11Y + + + EUREST12Y= + ESTR + Swap-Rate + 12Y + + + EUREST15Y= + ESTR + Swap-Rate + 15Y + + + EUREST20Y= + ESTR + Swap-Rate + 20Y + + + EUREST25Y= + ESTR + Swap-Rate + 25Y + + + EUREST30Y= + ESTR + Swap-Rate + 30Y + + + + + + party1 + + + + + + + + + CP1 + + + + CP2 + + 2022-09-05 + + + + + + + + + 2022-09-07 + + NONE + + + + 2032-09-07 + + MODFOLLOWING + + DEFR + + + + + MODFOLLOWING + + + + 6 + M + 14 + + + + + + 6 + M + + CalculationPeriodEndDate + + FOLLOWING + + + + + + CalculationPeriodStartDate + + -2 + D + Business + NONE + + GBLO + + + + + 6 + M + + + FOLLOWING + + + + + + + + 10000000.00 + + EUR + + + + + EUR-LIBOR-BBA + + 6 + M + + + ACT/360 + + + + + + + + + + 2022-09-07 + + NONE + + + + 2032-09-07 + + FOLLOWING + + + + + FOLLOWING + + + + 1 + Y + 14 + + + + + + 1 + Y + + CalculationPeriodEndDate + + MODFOLLOWING + + + + + + + + 10000000.00 + + EUR + + + + + 0.0395 + + 30E/360 + + + + + + + PARTXXXX + + + P2RTXXXX + + + + +
diff --git a/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java b/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java index 3180c8002..0726c8061 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java @@ -35,7 +35,7 @@ class JAXBTests { @Test void checkChangedTradeParams() throws java.lang.Exception { - final URL url = JAXBTests.class.getClassLoader().getResource("net.finmath.smartcontract.product.xml/smartderivativecontract.xml"); + final URL url = JAXBTests.class.getClassLoader().getResource("net/finmath/smartcontract/product/xml/smartderivativecontract.xml"); final JAXBContext jaxbContext = JAXBContext.newInstance(Smartderivativecontract.class); Smartderivativecontract sdc = getUnmarshalledObjectFromXML(jaxbContext, url); @@ -63,7 +63,7 @@ void checkChangedTradeParams() throws java.lang.Exception { @Test void checkValuation() throws java.lang.Exception { - final URL url = JAXBTests.class.getClassLoader().getResource("net.finmath.smartcontract.product.xml/smartderivativecontract.xml"); + final URL url = JAXBTests.class.getClassLoader().getResource("net/finmath/smartcontract/product/xml/smartderivativecontract.xml"); final JAXBContext jaxbContext = JAXBContext.newInstance(Smartderivativecontract.class); Smartderivativecontract sdc = getUnmarshalledObjectFromXML(jaxbContext, url); @@ -101,11 +101,11 @@ private String getMarshalledXMLfromObject(final JAXBContext jaxbContext, final S @Test void jaxBTestWithValidation() { try { - String xsdFile = JAXBTests.class.getClassLoader().getResource("net.finmath.smartcontract.product.xml/smartderivativecontract.xsd").getPath(); + String xsdFile = JAXBTests.class.getClassLoader().getResource("net/finmath/smartcontract/product/xml/smartderivativecontract.xsd").getPath(); SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema sdcSchema = sf.newSchema(new File(xsdFile)); - String path = JAXBTests.class.getClassLoader().getResource("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").getPath(); + String path = JAXBTests.class.getClassLoader().getResource("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").getPath(); File file = new File(path); JAXBContext jaxbContext = JAXBContext.newInstance(Smartderivativecontract.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); @@ -132,7 +132,7 @@ void jaxBTestWithValidation() { @Test void jaxBPlainTest() throws java.lang.Exception { - String path = JAXBTests.class.getClassLoader().getResource("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").getPath(); + String path = JAXBTests.class.getClassLoader().getResource("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").getPath(); File file = new File(path); JAXBContext jaxbContext = JAXBContext.newInstance(Smartderivativecontract.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); diff --git a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java index d0bb0e961..5284f499f 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java @@ -25,7 +25,7 @@ class SDCXMLParserTest { @Test void testParser() throws IOException, SAXException, ParserConfigurationException { - String sdcXML = new String(SDCXMLParserTest.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + String sdcXML = new String(SDCXMLParserTest.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); diff --git a/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java b/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java index 54aa9ea5f..5ece73876 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java @@ -14,7 +14,7 @@ class MarginCalculatorTest { void testMargin() throws Exception { final String marketDataStart = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); final String marketDataEnd = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml").readAllBytes(), StandardCharsets.UTF_8); - final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); MarginCalculator marginCalculator = new MarginCalculator(); MarginResult valuationResult = marginCalculator.getValue(marketDataStart, marketDataEnd, product); @@ -28,7 +28,7 @@ void testMargin() throws Exception { @Test void testValue() throws Exception { final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); - final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); MarginCalculator marginCalculator = new MarginCalculator(); ValueResult valuationResult = marginCalculator.getValue(marketData, product); diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java index 08afd507e..5d8e7c65e 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java @@ -29,7 +29,7 @@ class DataParseTests { @Test void testParseSymbols() { try { - String sdcXML = new String(Objects.requireNonNull(DataParseTests.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); + String sdcXML = new String(Objects.requireNonNull(DataParseTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); List marketdataItems = sdc.getMarketdataItemList(); @@ -66,7 +66,7 @@ void readHistoricJsonScenariosIntoMarketDataListObjects() throws Exception { final String fileName = "timeseriesdatamap.json"; final List scenarioListRaw = CalibrationParserDataItems.getScenariosFromJsonFile(fileName).stream().filter(S -> S.getDate().toLocalDate().isAfter(startDate)).filter(S -> S.getDate().toLocalDate().isBefore(maturity)).collect(Collectors.toList()); final List scenarioList = scenarioListRaw.stream().map(scenario -> scenario.getScaled(100)).toList(); - final String productData = new String(DataParseTests.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + final String productData = new String(DataParseTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); List specList = productDescriptor.getMarketdataItemList(); @@ -91,7 +91,7 @@ void readHistoricJsonScenariosIntoMarketDataListObjects() throws Exception { @Test void testXMLToCalibrationSet() throws Exception { - final String productData = new String(DataParseTests.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + final String productData = new String(DataParseTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); final String marketData = new String(DataParseTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); @@ -107,7 +107,7 @@ void changeSymbols() throws Exception { String sdcXML = new String(DataParseTests.class.getClassLoader().getResourceAsStream("generators/eur_euribor_y_s_with_fixings.xml").readAllBytes(), StandardCharsets.UTF_8); - String path = DataParseTests.class.getClassLoader().getResource("net.finmath.smartcontract.product.xml/smartderivativecontract_with_rics.xml").getPath(); + String path = DataParseTests.class.getClassLoader().getResource("net/finmath/smartcontract/product/xml/smartderivativecontract_with_rics.xml").getPath(); File file = new File(path); JAXBContext jaxbContext = JAXBContext.newInstance(Smartderivativecontract.class); diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java index 98cbd107a..447d71e71 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java @@ -1,14 +1,9 @@ package net.finmath.smartcontract.valuation.marketdata.curvecalibration; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import net.finmath.marketdata.calibration.CalibratedCurves; import net.finmath.marketdata.model.AnalyticModel; import net.finmath.marketdata.products.ForwardRateAgreement; import net.finmath.marketdata.products.Swap; -import net.finmath.smartcontract.model.MarginRequest; -import net.finmath.smartcontract.model.MarketDataSet; -import net.finmath.smartcontract.model.MarketDataSetValuesInner; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; import net.finmath.smartcontract.product.xml.SDCXMLParser; import net.finmath.smartcontract.valuation.client.ValuationClient; @@ -18,9 +13,7 @@ import javax.xml.parsers.ParserConfigurationException; import java.io.IOException; -import java.io.InputStream; import java.nio.charset.StandardCharsets; -import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Stream; @@ -46,7 +39,7 @@ class CalibrationTests { void initializeTests() throws IOException, ParserConfigurationException, SAXException, CloneNotSupportedException, Exception { final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml").readAllBytes(), StandardCharsets.UTF_8); - final String productData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + final String productData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); diff --git a/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java b/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java index 0b4611620..2692f4702 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java @@ -3,9 +3,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import net.finmath.smartcontract.model.MarginRequest; -import net.finmath.smartcontract.model.MarketDataList; import net.finmath.smartcontract.model.ValueRequest; -import net.finmath.smartcontract.product.xml.SDCXMLParser; import net.finmath.smartcontract.valuation.client.ValuationClient; import net.finmath.smartcontract.valuation.service.config.BasicAuthWebSecurityConfiguration; import net.finmath.smartcontract.valuation.service.config.MockUserAuthConfig; @@ -43,7 +41,7 @@ @ActiveProfiles("test") class ValuationControllerTest { - final String productXMLFile = "net.finmath.smartcontract.product.xml/smartderivativecontract.xml"; + final String productXMLFile = "net/finmath/smartcontract/product/xml/smartderivativecontract.xml"; @Test @WithUserDetails("user1") // testing now uses more of the server environment, including security. Tests would fail if requests are not authenticated. From e9d6b4792808b3bf9e4428d235ce18cf41fedfe6 Mon Sep 17 00:00:00 2001 From: Christian Fries Date: Tue, 18 Jun 2024 13:37:53 +0200 Subject: [PATCH 074/105] Revert "Moved resource file to folder structure." This reverts commit 6f893ecfe9568ff13a5c1169e8f2b9882b9fb934. --- .../valuation/client/ValuationClient.java | 2 +- .../marketdata/LaunchAGenerator.java | 2 +- .../service/websocket/client/DemoStarter.java | 2 +- .../smartderivativecontract.xsd | 2 +- .../product/xml/smartderivativecontract.xml | 663 ------------------ .../product/xml/smartderivativecontract.xsd | 118 ---- .../xml/smartderivativecontract_with_rics.xml | 663 ------------------ .../smartcontract/product/xml/JAXBTests.java | 10 +- .../product/xml/SDCXMLParserTest.java | 2 +- .../implementation/MarginCalculatorTest.java | 4 +- .../valuation/marketdata/DataParseTests.java | 8 +- .../curvecalibration/CalibrationTests.java | 9 +- .../service/ValuationControllerTest.java | 4 +- 13 files changed, 27 insertions(+), 1462 deletions(-) delete mode 100644 src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract.xml delete mode 100644 src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract.xsd delete mode 100644 src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract_with_rics.xml diff --git a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java index 381aea222..df705a969 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java +++ b/src/main/java/net/finmath/smartcontract/valuation/client/ValuationClient.java @@ -47,7 +47,7 @@ public static void main(String[] args) throws Exception { final String marketDataStartXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml")).readAllBytes(), StandardCharsets.UTF_8); final String marketDataEndXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml")).readAllBytes(), StandardCharsets.UTF_8); - final String product = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); + final String product = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); final MarginRequest marginRequest = new MarginRequest().marketDataStart(marketDataStartXml).marketDataEnd(marketDataEndXml).tradeData(product).valuationDate(""); diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java index 2adb8b029..4475c11ec 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/LaunchAGenerator.java @@ -22,7 +22,7 @@ public class LaunchAGenerator { public static void main(String[] args) throws Exception { - String sdcXML = new String(LaunchAGenerator.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + String sdcXML = new String(LaunchAGenerator.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); List mdItemList = sdc.getMarketdataItemList(); diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/DemoStarter.java b/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/DemoStarter.java index 454171750..54954fe2e 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/DemoStarter.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/websocket/client/DemoStarter.java @@ -15,7 +15,7 @@ public class DemoStarter { public static void main(String[] args) throws Exception { - String sdcXML = new String(DemoStarter.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + String sdcXML = new String(DemoStarter.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); WebSocketClientEndpoint client = new WebSocketClientEndpoint(new URI("ws://localhost:443/valuationfeed"), "user1", "password1"); long timeout = client.getUserSession().getMaxIdleTimeout(); client.sendTextMessage(sdcXML); diff --git a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd index 19afc79df..bac40edd3 100644 --- a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd +++ b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd @@ -4,7 +4,7 @@ xmlns="uri:sdc" targetNamespace="uri:sdc"> + schemaLocation="../schemas/fpml-schemas/fpml-main-5-9.xsd"/> diff --git a/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract.xml b/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract.xml deleted file mode 100644 index 615834ab8..000000000 --- a/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract.xml +++ /dev/null @@ -1,663 +0,0 @@ - - UTI12345 - - - net.finmath - finmath-smart-derivative-contract - 0.1.8 - - - - - Counterparty 1 - party1 - - constant - 10000.0 - - - constant - 50000.0 - -
0x627306090abab3a6e1400e9345bc60c78a8bef57
-
- - Counterparty 2 - party2 - - constant - 10000.0 - - - constant - 50000.0 - -
0xf17f52151ebef6c7334fad080c5704d77216b732
-
-
- - - 2011-12-03T10:15:30 - - - daily - 17:00 - - - internal - - - ESTRFIX1D - ESTR - Fixing - 1D - - - EUB6FIX6M - Euribor6M - Fixing - 6M - - - EUB6DEP6M - Euribor6M - Deposit - 6M - - - EUB6FRA7M - Euribor6M - Forward-Rate-Agreement - 7M - - - EUB6FRA8M - Euribor6M - Forward-Rate-Agreement - 8M - - - EUB6FRA9M - Euribor6M - Forward-Rate-Agreement - 9M - - - EUB6FRA10M - Euribor6M - Forward-Rate-Agreement - 10M - - - EUB6FRA12M - Euribor6M - Forward-Rate-Agreement - 12M - - - EUB6FRA15M - Euribor6M - Forward-Rate-Agreement - 15M - - - EUB6FRA18M - Euribor6M - Forward-Rate-Agreement - 18M - - - EUB6SWP2Y - Euribor6M - Swap-Rate - 2Y - - - EUB6SWP3Y - Euribor6M - Swap-Rate - 3Y - - - EUB6SWP4Y - Euribor6M - Swap-Rate - 4Y - - - EUB6SWP5Y - Euribor6M - Swap-Rate - 5Y - - - EUB6SWP6Y - Euribor6M - Swap-Rate - 6Y - - - EUB6SWP7Y - Euribor6M - Swap-Rate - 7Y - - - EUB6SWP8Y - Euribor6M - Swap-Rate - 8Y - - - EUB6SWP9Y - Euribor6M - Swap-Rate - 9Y - - - EUB6SWP10Y - Euribor6M - Swap-Rate - 10Y - - - EUB6SWP11Y - Euribor6M - Swap-Rate - 11Y - - - EUB6SWP12Y - Euribor6M - Swap-Rate - 12Y - - - EUB6SWP13Y - Euribor6M - Swap-Rate - 13Y - - - EUB6SWP14Y - Euribor6M - Swap-Rate - 14Y - - - EUB6SWP15Y - Euribor6M - Swap-Rate - 15Y - - - EUB6SWP16Y - Euribor6M - Swap-Rate - 16Y - - - EUB6SWP17Y - Euribor6M - Swap-Rate - 17Y - - - EUB6SWP18Y - Euribor6M - Swap-Rate - 18Y - - - EUB6SWP19Y - Euribor6M - Swap-Rate - 19Y - - - EUB6SWP20Y - Euribor6M - Swap-Rate - 20Y - - - EUB6SWP21Y - Euribor6M - Swap-Rate - 21Y - - - EUB6SWP22Y - Euribor6M - Swap-Rate - 22Y - - - EUB6SWP23Y - Euribor6M - Swap-Rate - 23Y - - - EUB6SWP24Y - Euribor6M - Swap-Rate - 24Y - - - EUB6SWP25Y - Euribor6M - Swap-Rate - 25Y - - - EUB6SWP26Y - Euribor6M - Swap-Rate - 26Y - - - EUB6SWP27Y - Euribor6M - Swap-Rate - 27Y - - - EUB6SWP28Y - Euribor6M - Swap-Rate - 28Y - - - EUB6SWP29Y - Euribor6M - Swap-Rate - 29Y - - - EUB6SWP30Y - Euribor6M - Swap-Rate - 30Y - - - EUB6SWP40Y - Euribor6M - Swap-Rate - 40Y - - - EUB6SWP50Y - Euribor6M - Swap-Rate - 50Y - - - ESTRSWP7D - ESTR - Swap-Rate - 7D - - - ESTRSWP14D - ESTR - Swap-Rate - 14D - - - ESTRSWP21D - ESTR - Swap-Rate - 21D - - - ESTRSWP1M - ESTR - Swap-Rate - 1M - - - ESTRSWP2M - ESTR - Swap-Rate - 2M - - - ESTRSWP3M - ESTR - Swap-Rate - 3M - - - ESTRSWP4M - ESTR - Swap-Rate - 4M - - - ESTRSWP5M - ESTR - Swap-Rate - 5M - - - ESTRSWP6M - ESTR - Swap-Rate - 6M - - - ESTRSWP7M - ESTR - Swap-Rate - 7M - - - ESTRSWP8M - ESTR - Swap-Rate - 8M - - - ESTRSWP9M - ESTR - Swap-Rate - 9M - - - ESTRSWP1Y - ESTR - Swap-Rate - 1Y - - - ESTRSWP15M - ESTR - Swap-Rate - 15M - - - ESTRSWP18M - ESTR - Swap-Rate - 18M - - - ESTRSWP21M - ESTR - Swap-Rate - 21M - - - ESTRSWP2Y - ESTR - Swap-Rate - 2Y - - - ESTRSWP3Y - ESTR - Swap-Rate - 3Y - - - ESTRSWP4Y - ESTR - Swap-Rate - 4Y - - - ESTRSWP5Y - ESTR - Swap-Rate - 5Y - - - ESTRSWP6Y - ESTR - Swap-Rate - 6Y - - - ESTRSWP7Y - ESTR - Swap-Rate - 7Y - - - ESTRSWP8Y - ESTR - Swap-Rate - 8Y - - - ESTRSWP9Y - ESTR - Swap-Rate - 9Y - - - ESTRSWP10Y - ESTR - Swap-Rate - 10Y - - - ESTRSWP11Y - ESTR - Swap-Rate - 11Y - - - ESTRSWP12Y - ESTR - Swap-Rate - 12Y - - - ESTRSWP15Y - ESTR - Swap-Rate - 15Y - - - ESTRSWP20Y - ESTR - Swap-Rate - 20Y - - - ESTRSWP25Y - ESTR - Swap-Rate - 25Y - - - ESTRSWP30Y - ESTR - Swap-Rate - 30Y - - - - - - party1 - - - - - - - - - CP1 - - - - CP2 - - 2022-09-05 - - - - - - - - - 2022-09-07 - - NONE - - - - 2032-09-07 - - MODFOLLOWING - - DEFR - - - - - MODFOLLOWING - - - - 6 - M - 14 - - - - - - 6 - M - - CalculationPeriodEndDate - - FOLLOWING - - - - - - CalculationPeriodStartDate - - -2 - D - Business - NONE - - GBLO - - - - - 6 - M - - - FOLLOWING - - - - - - - - 10000000.00 - - EUR - - - - - EUR-LIBOR-BBA - - 6 - M - - - ACT/360 - - - - - - - - - - 2022-09-07 - - NONE - - - - 2032-09-07 - - FOLLOWING - - - - - FOLLOWING - - - - 1 - Y - 14 - - - - - - 1 - Y - - CalculationPeriodEndDate - - MODFOLLOWING - - - - - - - - 10000000.00 - - EUR - - - - - 0.0395 - - 30E/360 - - - - - - - PARTXXXX - - - P2RTXXXX - - - - -
\ No newline at end of file diff --git a/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract.xsd b/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract.xsd deleted file mode 100644 index 19afc79df..000000000 --- a/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract.xsd +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract_with_rics.xml b/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract_with_rics.xml deleted file mode 100644 index abbfd4b6a..000000000 --- a/src/main/resources/net/finmath/smartcontract/product/xml/smartderivativecontract_with_rics.xml +++ /dev/null @@ -1,663 +0,0 @@ - - UTI12345 - - - net.finmath - finmath-smart-derivative-contract - 0.1.8 - - - - - Counterparty 1 - party1 - - constant - 10000.0 - - - constant - 50000.0 - -
0x627306090abab3a6e1400e9345bc60c78a8bef57
-
- - Counterparty 2 - party2 - - constant - 10000.0 - - - constant - 50000.0 - -
0xf17f52151ebef6c7334fad080c5704d77216b732
-
-
- - - 2011-12-03T10:15:30 - - - daily - 17:00 - - - refinitiv - - - EUROSTR= - ESTR - Fixing - 1D - - - EURIBOR6MD= - Euribor6M - Fixing - 6M - - - EUR6MD= - Euribor6M - Deposit - 6M - - - EUR1X7F= - Euribor6M - Forward-Rate-Agreement - 7M - - - EUR2X8F= - Euribor6M - Forward-Rate-Agreement - 8M - - - EUR3X9F= - Euribor6M - Forward-Rate-Agreement - 9M - - - EUR4X10F= - Euribor6M - Forward-Rate-Agreement - 10M - - - EUR6X12F= - Euribor6M - Forward-Rate-Agreement - 12M - - - EUR9X15F= - Euribor6M - Forward-Rate-Agreement - 15M - - - EUR12X18F= - Euribor6M - Forward-Rate-Agreement - 18M - - - EURAB6E2Y= - Euribor6M - Swap-Rate - 2Y - - - EURAB6E3Y= - Euribor6M - Swap-Rate - 3Y - - - EURAB6E4Y= - Euribor6M - Swap-Rate - 4Y - - - EURAB6E5Y= - Euribor6M - Swap-Rate - 5Y - - - EURAB6E6Y= - Euribor6M - Swap-Rate - 6Y - - - EURAB6E7Y= - Euribor6M - Swap-Rate - 7Y - - - EURAB6E8Y= - Euribor6M - Swap-Rate - 8Y - - - EURAB6E9Y= - Euribor6M - Swap-Rate - 9Y - - - EURAB6E10Y= - Euribor6M - Swap-Rate - 10Y - - - EURAB6E11Y= - Euribor6M - Swap-Rate - 11Y - - - EURAB6E12Y= - Euribor6M - Swap-Rate - 12Y - - - EURAB6E13Y= - Euribor6M - Swap-Rate - 13Y - - - EURAB6E14Y= - Euribor6M - Swap-Rate - 14Y - - - EURAB6E15Y= - Euribor6M - Swap-Rate - 15Y - - - EURAB6E16Y= - Euribor6M - Swap-Rate - 16Y - - - EURAB6E17Y= - Euribor6M - Swap-Rate - 17Y - - - EURAB6E18Y= - Euribor6M - Swap-Rate - 18Y - - - EURAB6E19Y= - Euribor6M - Swap-Rate - 19Y - - - EURAB6E20Y= - Euribor6M - Swap-Rate - 20Y - - - EURAB6E21Y= - Euribor6M - Swap-Rate - 21Y - - - EURAB6E22Y= - Euribor6M - Swap-Rate - 22Y - - - EURAB6E23Y= - Euribor6M - Swap-Rate - 23Y - - - EURAB6E24Y= - Euribor6M - Swap-Rate - 24Y - - - EURAB6E25Y= - Euribor6M - Swap-Rate - 25Y - - - EURAB6E26Y= - Euribor6M - Swap-Rate - 26Y - - - EURAB6E27Y= - Euribor6M - Swap-Rate - 27Y - - - EURAB6E28Y= - Euribor6M - Swap-Rate - 28Y - - - EURAB6E29Y= - Euribor6M - Swap-Rate - 29Y - - - EURAB6E30Y= - Euribor6M - Swap-Rate - 30Y - - - EURAB6E40Y= - Euribor6M - Swap-Rate - 40Y - - - EURAB6E50Y= - Euribor6M - Swap-Rate - 50Y - - - EURESTSW= - ESTR - Swap-Rate - 7D - - - EUREST2W= - ESTR - Swap-Rate - 14D - - - EUREST3W= - ESTR - Swap-Rate - 21D - - - EUREST1M= - ESTR - Swap-Rate - 1M - - - EUREST2M= - ESTR - Swap-Rate - 2M - - - EUREST3M= - ESTR - Swap-Rate - 3M - - - EUREST4M= - ESTR - Swap-Rate - 4M - - - EUREST5M= - ESTR - Swap-Rate - 5M - - - EUREST6M= - ESTR - Swap-Rate - 6M - - - EUREST7M= - ESTR - Swap-Rate - 7M - - - EUREST8M= - ESTR - Swap-Rate - 8M - - - EUREST9M= - ESTR - Swap-Rate - 9M - - - EUREST1Y= - ESTR - Swap-Rate - 1Y - - - EUREST15M= - ESTR - Swap-Rate - 15M - - - EUREST18M= - ESTR - Swap-Rate - 18M - - - EUREST21M= - ESTR - Swap-Rate - 21M - - - EUREST2Y= - ESTR - Swap-Rate - 2Y - - - EUREST3Y= - ESTR - Swap-Rate - 3Y - - - EUREST4Y= - ESTR - Swap-Rate - 4Y - - - EUREST5Y= - ESTR - Swap-Rate - 5Y - - - EUREST6Y= - ESTR - Swap-Rate - 6Y - - - EUREST7Y= - ESTR - Swap-Rate - 7Y - - - EUREST8Y= - ESTR - Swap-Rate - 8Y - - - EUREST9Y= - ESTR - Swap-Rate - 9Y - - - EUREST10Y= - ESTR - Swap-Rate - 10Y - - - EUREST11Y= - ESTR - Swap-Rate - 11Y - - - EUREST12Y= - ESTR - Swap-Rate - 12Y - - - EUREST15Y= - ESTR - Swap-Rate - 15Y - - - EUREST20Y= - ESTR - Swap-Rate - 20Y - - - EUREST25Y= - ESTR - Swap-Rate - 25Y - - - EUREST30Y= - ESTR - Swap-Rate - 30Y - - - - - - party1 - - - - - - - - - CP1 - - - - CP2 - - 2022-09-05 - - - - - - - - - 2022-09-07 - - NONE - - - - 2032-09-07 - - MODFOLLOWING - - DEFR - - - - - MODFOLLOWING - - - - 6 - M - 14 - - - - - - 6 - M - - CalculationPeriodEndDate - - FOLLOWING - - - - - - CalculationPeriodStartDate - - -2 - D - Business - NONE - - GBLO - - - - - 6 - M - - - FOLLOWING - - - - - - - - 10000000.00 - - EUR - - - - - EUR-LIBOR-BBA - - 6 - M - - - ACT/360 - - - - - - - - - - 2022-09-07 - - NONE - - - - 2032-09-07 - - FOLLOWING - - - - - FOLLOWING - - - - 1 - Y - 14 - - - - - - 1 - Y - - CalculationPeriodEndDate - - MODFOLLOWING - - - - - - - - 10000000.00 - - EUR - - - - - 0.0395 - - 30E/360 - - - - - - - PARTXXXX - - - P2RTXXXX - - - - -
diff --git a/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java b/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java index 0726c8061..3180c8002 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/JAXBTests.java @@ -35,7 +35,7 @@ class JAXBTests { @Test void checkChangedTradeParams() throws java.lang.Exception { - final URL url = JAXBTests.class.getClassLoader().getResource("net/finmath/smartcontract/product/xml/smartderivativecontract.xml"); + final URL url = JAXBTests.class.getClassLoader().getResource("net.finmath.smartcontract.product.xml/smartderivativecontract.xml"); final JAXBContext jaxbContext = JAXBContext.newInstance(Smartderivativecontract.class); Smartderivativecontract sdc = getUnmarshalledObjectFromXML(jaxbContext, url); @@ -63,7 +63,7 @@ void checkChangedTradeParams() throws java.lang.Exception { @Test void checkValuation() throws java.lang.Exception { - final URL url = JAXBTests.class.getClassLoader().getResource("net/finmath/smartcontract/product/xml/smartderivativecontract.xml"); + final URL url = JAXBTests.class.getClassLoader().getResource("net.finmath.smartcontract.product.xml/smartderivativecontract.xml"); final JAXBContext jaxbContext = JAXBContext.newInstance(Smartderivativecontract.class); Smartderivativecontract sdc = getUnmarshalledObjectFromXML(jaxbContext, url); @@ -101,11 +101,11 @@ private String getMarshalledXMLfromObject(final JAXBContext jaxbContext, final S @Test void jaxBTestWithValidation() { try { - String xsdFile = JAXBTests.class.getClassLoader().getResource("net/finmath/smartcontract/product/xml/smartderivativecontract.xsd").getPath(); + String xsdFile = JAXBTests.class.getClassLoader().getResource("net.finmath.smartcontract.product.xml/smartderivativecontract.xsd").getPath(); SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema sdcSchema = sf.newSchema(new File(xsdFile)); - String path = JAXBTests.class.getClassLoader().getResource("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").getPath(); + String path = JAXBTests.class.getClassLoader().getResource("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").getPath(); File file = new File(path); JAXBContext jaxbContext = JAXBContext.newInstance(Smartderivativecontract.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); @@ -132,7 +132,7 @@ void jaxBTestWithValidation() { @Test void jaxBPlainTest() throws java.lang.Exception { - String path = JAXBTests.class.getClassLoader().getResource("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").getPath(); + String path = JAXBTests.class.getClassLoader().getResource("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").getPath(); File file = new File(path); JAXBContext jaxbContext = JAXBContext.newInstance(Smartderivativecontract.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); diff --git a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java index 5284f499f..d0bb0e961 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java @@ -25,7 +25,7 @@ class SDCXMLParserTest { @Test void testParser() throws IOException, SAXException, ParserConfigurationException { - String sdcXML = new String(SDCXMLParserTest.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + String sdcXML = new String(SDCXMLParserTest.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); diff --git a/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java b/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java index 5ece73876..54aa9ea5f 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/implementation/MarginCalculatorTest.java @@ -14,7 +14,7 @@ class MarginCalculatorTest { void testMargin() throws Exception { final String marketDataStart = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); final String marketDataEnd = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset2.xml").readAllBytes(), StandardCharsets.UTF_8); - final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); MarginCalculator marginCalculator = new MarginCalculator(); MarginResult valuationResult = marginCalculator.getValue(marketDataStart, marketDataEnd, product); @@ -28,7 +28,7 @@ void testMargin() throws Exception { @Test void testValue() throws Exception { final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); - final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + final String product = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); MarginCalculator marginCalculator = new MarginCalculator(); ValueResult valuationResult = marginCalculator.getValue(marketData, product); diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java index 5d8e7c65e..08afd507e 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/DataParseTests.java @@ -29,7 +29,7 @@ class DataParseTests { @Test void testParseSymbols() { try { - String sdcXML = new String(Objects.requireNonNull(DataParseTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); + String sdcXML = new String(Objects.requireNonNull(DataParseTests.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml")).readAllBytes(), StandardCharsets.UTF_8); SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(sdcXML); List marketdataItems = sdc.getMarketdataItemList(); @@ -66,7 +66,7 @@ void readHistoricJsonScenariosIntoMarketDataListObjects() throws Exception { final String fileName = "timeseriesdatamap.json"; final List scenarioListRaw = CalibrationParserDataItems.getScenariosFromJsonFile(fileName).stream().filter(S -> S.getDate().toLocalDate().isAfter(startDate)).filter(S -> S.getDate().toLocalDate().isBefore(maturity)).collect(Collectors.toList()); final List scenarioList = scenarioListRaw.stream().map(scenario -> scenario.getScaled(100)).toList(); - final String productData = new String(DataParseTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + final String productData = new String(DataParseTests.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); List specList = productDescriptor.getMarketdataItemList(); @@ -91,7 +91,7 @@ void readHistoricJsonScenariosIntoMarketDataListObjects() throws Exception { @Test void testXMLToCalibrationSet() throws Exception { - final String productData = new String(DataParseTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + final String productData = new String(DataParseTests.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); final String marketData = new String(DataParseTests.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml").readAllBytes(), StandardCharsets.UTF_8); SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); @@ -107,7 +107,7 @@ void changeSymbols() throws Exception { String sdcXML = new String(DataParseTests.class.getClassLoader().getResourceAsStream("generators/eur_euribor_y_s_with_fixings.xml").readAllBytes(), StandardCharsets.UTF_8); - String path = DataParseTests.class.getClassLoader().getResource("net/finmath/smartcontract/product/xml/smartderivativecontract_with_rics.xml").getPath(); + String path = DataParseTests.class.getClassLoader().getResource("net.finmath.smartcontract.product.xml/smartderivativecontract_with_rics.xml").getPath(); File file = new File(path); JAXBContext jaxbContext = JAXBContext.newInstance(Smartderivativecontract.class); diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java index 447d71e71..98cbd107a 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/curvecalibration/CalibrationTests.java @@ -1,9 +1,14 @@ package net.finmath.smartcontract.valuation.marketdata.curvecalibration; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import net.finmath.marketdata.calibration.CalibratedCurves; import net.finmath.marketdata.model.AnalyticModel; import net.finmath.marketdata.products.ForwardRateAgreement; import net.finmath.marketdata.products.Swap; +import net.finmath.smartcontract.model.MarginRequest; +import net.finmath.smartcontract.model.MarketDataSet; +import net.finmath.smartcontract.model.MarketDataSetValuesInner; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; import net.finmath.smartcontract.product.xml.SDCXMLParser; import net.finmath.smartcontract.valuation.client.ValuationClient; @@ -13,7 +18,9 @@ import javax.xml.parsers.ParserConfigurationException; import java.io.IOException; +import java.io.InputStream; import java.nio.charset.StandardCharsets; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Stream; @@ -39,7 +46,7 @@ class CalibrationTests { void initializeTests() throws IOException, ParserConfigurationException, SAXException, CloneNotSupportedException, Exception { final String marketData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset_with_fixings.xml").readAllBytes(), StandardCharsets.UTF_8); - final String productData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/product/xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + final String productData = new String(ValuationClient.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); diff --git a/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java b/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java index 2692f4702..0b4611620 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/service/ValuationControllerTest.java @@ -3,7 +3,9 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import net.finmath.smartcontract.model.MarginRequest; +import net.finmath.smartcontract.model.MarketDataList; import net.finmath.smartcontract.model.ValueRequest; +import net.finmath.smartcontract.product.xml.SDCXMLParser; import net.finmath.smartcontract.valuation.client.ValuationClient; import net.finmath.smartcontract.valuation.service.config.BasicAuthWebSecurityConfiguration; import net.finmath.smartcontract.valuation.service.config.MockUserAuthConfig; @@ -41,7 +43,7 @@ @ActiveProfiles("test") class ValuationControllerTest { - final String productXMLFile = "net/finmath/smartcontract/product/xml/smartderivativecontract.xml"; + final String productXMLFile = "net.finmath.smartcontract.product.xml/smartderivativecontract.xml"; @Test @WithUserDetails("user1") // testing now uses more of the server environment, including security. Tests would fail if requests are not authenticated. From 61d7d1a949be38b6dd8237b21acf3e29b3b71963 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Wed, 3 Jul 2024 08:59:58 +0200 Subject: [PATCH 075/105] NO_ISSUE, new entry in ExceptionId --- src/main/java/net/finmath/smartcontract/model/ExceptionId.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java index 201152a3a..8314f6115 100644 --- a/src/main/java/net/finmath/smartcontract/model/ExceptionId.java +++ b/src/main/java/net/finmath/smartcontract/model/ExceptionId.java @@ -33,4 +33,5 @@ public enum ExceptionId { SDC_WEB3J_SEND_ERROR, SDC_SETTLEMENTHISTORY_ERROR, SDC_NO_DATA_FOUND, + SDC_WRONG_INPUT, } \ No newline at end of file From 85e7be0dab0824a7da597428c64511521e414014 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 12 Jul 2024 10:56:27 +0200 Subject: [PATCH 076/105] SDC-325, tradeID using hyphen instead of underscore --- src/main/java/net/finmath/smartcontract/util/TradeUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/finmath/smartcontract/util/TradeUtils.java b/src/main/java/net/finmath/smartcontract/util/TradeUtils.java index 77f5e1297..740c1c186 100644 --- a/src/main/java/net/finmath/smartcontract/util/TradeUtils.java +++ b/src/main/java/net/finmath/smartcontract/util/TradeUtils.java @@ -12,6 +12,6 @@ private TradeUtils(){} */ public static String getUniqueTradeId(){ String uniqueID = UUID.randomUUID().toString().replace("-", "").substring(0, 17); - return "ID_" + uniqueID; + return "ID-" + uniqueID; } } From a0812d510680885756d8f63ad4ea83295c8c42a7 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 12 Jul 2024 12:09:43 +0200 Subject: [PATCH 077/105] SDC-325, TradeUtilsTest adjusted --- .../java/net/finmath/smartcontract/util/TradeUtilsTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/net/finmath/smartcontract/util/TradeUtilsTest.java b/src/test/java/net/finmath/smartcontract/util/TradeUtilsTest.java index 1b52de9bd..d5d4b1945 100644 --- a/src/test/java/net/finmath/smartcontract/util/TradeUtilsTest.java +++ b/src/test/java/net/finmath/smartcontract/util/TradeUtilsTest.java @@ -22,7 +22,7 @@ void getUniqueTradeId() { assertEquals(20, id.length()); //id only contains letters and numbers (and the leading underscore) - assertTrue(Pattern.matches("ID_[a-zA-Z0-9]+", id)); + assertTrue(Pattern.matches("ID-[a-zA-Z0-9]+", id)); //check on uniqueness assertFalse(ids.contains(id)); From d9059a79f7e7d1da63535679124f03097dd2cdcc Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 12 Jul 2024 12:18:14 +0200 Subject: [PATCH 078/105] SDC-325, TradeUtilsTest adjusted --- .../net/finmath/smartcontract/util/TradeUtilsTest.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/test/java/net/finmath/smartcontract/util/TradeUtilsTest.java b/src/test/java/net/finmath/smartcontract/util/TradeUtilsTest.java index d5d4b1945..4abec6acd 100644 --- a/src/test/java/net/finmath/smartcontract/util/TradeUtilsTest.java +++ b/src/test/java/net/finmath/smartcontract/util/TradeUtilsTest.java @@ -12,17 +12,18 @@ class TradeUtilsTest { @Test void getUniqueTradeId() { + String idPrefix = "ID-"; List ids = new ArrayList<>(); - for (int i = 1; i <= 200 ; i++){ + for (int i = 1; i <= 200; i++) { String id = TradeUtils.getUniqueTradeId(); - System.out.println(i + ". " +id); - assertTrue(id.contains("ID_")); + System.out.println(i + ". " + id); + assertTrue(id.contains(idPrefix)); //max length 20 assertEquals(20, id.length()); //id only contains letters and numbers (and the leading underscore) - assertTrue(Pattern.matches("ID-[a-zA-Z0-9]+", id)); + assertTrue(Pattern.matches(idPrefix + "[a-zA-Z0-9]+", id)); //check on uniqueness assertFalse(ids.contains(id)); From d5ddffdc2628725850002a8c2f454b8fbab6ad50 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 12 Jul 2024 12:24:40 +0200 Subject: [PATCH 079/105] SDC-325, security adjustment of github actions checkout --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6e75fb805..8c891cce3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,7 +7,7 @@ jobs: name: Java 17 build and unit testing runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Java uses: actions/setup-java@v1 with: From c93a42cdb52a61c4e35dc629e1af192b2b96a801 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 12 Jul 2024 12:27:54 +0200 Subject: [PATCH 080/105] SDC-325, security adjustment of github actions checkout --- .github/workflows/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8c891cce3..5fee5cb59 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,8 +9,9 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Java - uses: actions/setup-java@v1 + uses: actions/setup-java@v2 with: + distribution: 'zulu' java-version: 17 - name: Build with Maven run: mvn -B package --file pom.xml From d6e2ed6f5ec10c8d2a84e1c34ae41b6a94bace83 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Wed, 24 Jul 2024 14:29:31 +0200 Subject: [PATCH 081/105] NO_ISSUE, adding http status 400 to XML parsing errors cause it reflects wrong input data --- .../net/finmath/smartcontract/product/xml/SDCXMLParser.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java index f81c05613..eb55af879 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java @@ -162,7 +162,7 @@ public static T unmarshalXml(String xml, Class t) { Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); return (T) unmarshaller.unmarshal(reader); } catch (JAXBException e) { - throw new SDCException(ExceptionId.SDC_JAXB_ERROR, e.getMessage()); + throw new SDCException(ExceptionId.SDC_JAXB_ERROR, e.getMessage(), 400); } } @@ -175,7 +175,7 @@ public static String marshalClassToXMLString(T t) { return writer.toString(); } catch (JAXBException e) { logger.error("jaxb error, ", e); - throw new SDCException(ExceptionId.SDC_JAXB_ERROR, e.getMessage()); + throw new SDCException(ExceptionId.SDC_JAXB_ERROR, e.getMessage(), 400); } } } From 4f2274f3fdbbdb46e3672688e07de2e9cb6171a7 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Wed, 24 Jul 2024 14:35:40 +0200 Subject: [PATCH 082/105] NO_ISSUE, added test for SDCXMLParser --- .../smartcontract/product/xml/SDCXMLParserTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java index d0bb0e961..5aa3a45e8 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java @@ -4,6 +4,7 @@ import net.finmath.modelling.descriptor.InterestRateSwapProductDescriptor; import net.finmath.modelling.descriptor.xmlparser.FPMLParser; import net.finmath.smartcontract.model.MarketDataList; +import net.finmath.smartcontract.model.SDCException; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; import net.finmath.smartcontract.settlement.Settlement; import net.finmath.smartcontract.valuation.client.ValuationClient; @@ -20,6 +21,8 @@ import java.util.List; import java.util.Objects; +import static org.junit.jupiter.api.Assertions.assertThrows; + class SDCXMLParserTest { @Test @@ -66,6 +69,12 @@ void unmarshalXml() throws IOException { Assertions.assertNotNull(marketData); } + @Test + void unmarshalXml_wrongInput() throws IOException { + final String marketDataXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml")).readAllBytes(), StandardCharsets.UTF_8); + assertThrows(SDCException.class, () -> SDCXMLParser.unmarshalXml(marketDataXml, Object.class)); + } + @Test void marshalClassToXMLString() { Settlement newSettlement = new Settlement(); @@ -87,4 +96,5 @@ void marshalClassToXMLString() { Assertions.assertTrue(xmlString.contains("")); Assertions.assertTrue(xmlString.contains("")); } + } \ No newline at end of file From c241fab484cd68284ac2fe8ea31d83a83fed726d Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 2 Aug 2024 15:38:52 +0200 Subject: [PATCH 083/105] SDC-543, new MarketDataCheck, comparing product data with delivered marketdata --- .../marketdata/utils/MarketDataCheck.java | 56 +++++++++++++++++++ .../marketdata/utils/MarketDataErrors.java | 48 ++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 src/main/java/net/finmath/smartcontract/valuation/marketdata/utils/MarketDataCheck.java create mode 100644 src/main/java/net/finmath/smartcontract/valuation/marketdata/utils/MarketDataErrors.java diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/utils/MarketDataCheck.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/utils/MarketDataCheck.java new file mode 100644 index 000000000..78e5f723f --- /dev/null +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/utils/MarketDataCheck.java @@ -0,0 +1,56 @@ +package net.finmath.smartcontract.valuation.marketdata.utils; + +import net.finmath.smartcontract.model.MarketDataList; +import net.finmath.smartcontract.product.xml.Smartderivativecontract; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class MarketDataCheck { + + private static final Logger logger = LoggerFactory.getLogger(MarketDataCheck.class); + + private MarketDataCheck(){} + + public static MarketDataErrors checkMarketData(MarketDataList marketDataList, Smartderivativecontract sdc) { + int counter = 0; + + // check if no data provided + if (marketDataList.getPoints().equals(new MarketDataList().getPoints())) { + logger.error("marketData: {}", marketDataList); + logger.error("trade will be suspended, no settlement will be performed"); + MarketDataErrors errors = new MarketDataErrors(true); + errors.setErrorMessage("error in marketData service - no data generated"); + errors.addMissingData("all, no data provided"); + return errors; + } + + // check missing data points + boolean hasAllIDs = true; + MarketDataErrors errors = new MarketDataErrors(true); + for (Smartderivativecontract.Settlement.Marketdata.Marketdataitems.Item spec : sdc.getSettlement().getMarketdata().getMarketdataitems().getItem()) { + + String id = spec.getSymbol().get(0); + boolean present = marketDataList.getPoints().stream().anyMatch(marketDataPoint -> marketDataPoint.getId().equals(id)); + if (!present) { + hasAllIDs = false; + errors.addMissingData(id); + logger.error("marketData invalid - marketDataPoint with id '{}' is missing", id); + counter++; + } + } + + if (!hasAllIDs) { + String reason = "error in marketData service - missing points in marketData"; + logger.error(reason); + logger.error("'{}' marketDataItems are missing", counter); + errors.setErrorMessage(reason); + return errors; + } + + //TODO add checks for + // data distortion => return false + // add suspended because invalid data + logger.info("marketdata is fine"); + return new MarketDataErrors(false); + } +} diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/utils/MarketDataErrors.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/utils/MarketDataErrors.java new file mode 100644 index 000000000..9ae841ae3 --- /dev/null +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/utils/MarketDataErrors.java @@ -0,0 +1,48 @@ +package net.finmath.smartcontract.valuation.marketdata.utils; + +import java.util.ArrayList; +import java.util.List; + +public class MarketDataErrors { + + private final boolean hasErrors; + private List missingDataPoints = new ArrayList<>(); + private String errorMessage; + + public MarketDataErrors(boolean hasErrors) { + this.hasErrors = hasErrors; + } + + public boolean hasErrors() { + return hasErrors; + } + + public List getMissingDataPoints() { + return missingDataPoints; + } + + public void setMissingDataPoints(List missingDataPoints) { + this.missingDataPoints = missingDataPoints; + } + + public void addMissingData(String missingDataPoint) { + this.missingDataPoints.add(missingDataPoint); + } + + public String getErrorMessage() { + return errorMessage; + } + + public void setErrorMessage(String errorMessage) { + this.errorMessage = errorMessage; + } + + @Override + public String toString() { + return "MarketDataErrors{" + + "hasErrors=" + hasErrors + + ", missingDataPoints=" + missingDataPoints + + ", errorMessage='" + errorMessage + '\'' + + '}'; + } +} From 66b4e25bc4fdbf4af0db5f223333bc22362d52b7 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 2 Aug 2024 15:39:10 +0200 Subject: [PATCH 084/105] SDC-543, new product xml corresponding to historical marketdata xmls --- ...ntract_simulated_historical_marketdata.xml | 603 ++++++++++++++++++ 1 file changed, 603 insertions(+) create mode 100644 src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract_simulated_historical_marketdata.xml diff --git a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract_simulated_historical_marketdata.xml b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract_simulated_historical_marketdata.xml new file mode 100644 index 000000000..22be54fe8 --- /dev/null +++ b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract_simulated_historical_marketdata.xml @@ -0,0 +1,603 @@ + + UTI12345 + + + net.finmath + finmath-smart-derivative-contract + 0.1.8 + + + + + Counterparty 1 + party1 + + constant + 10000.0 + + + constant + 50000.0 + +
0x627306090abab3a6e1400e9345bc60c78a8bef57
+
+ + Counterparty 2 + party2 + + constant + 10000.0 + + + constant + 50000.0 + +
0xf17f52151ebef6c7334fad080c5704d77216b732
+
+
+ + + 2008-05-05T00:15:30 + + + daily + 17:00 + + + internal + + + EUB6FIX6M + Euribor6M + Fixing + 6M + + + EUB6SWP1Y + Euribor6M + Swap-Rate + 1Y + + + EUB6SWP2Y + Euribor6M + Swap-Rate + 2Y + + + EUB6SWP3Y + Euribor6M + Swap-Rate + 3Y + + + EUB6SWP4Y + Euribor6M + Swap-Rate + 4Y + + + EUB6SWP5Y + Euribor6M + Swap-Rate + 5Y + + + EUB6SWP6Y + Euribor6M + Swap-Rate + 6Y + + + EUB6SWP7Y + Euribor6M + Swap-Rate + 7Y + + + EUB6SWP8Y + Euribor6M + Swap-Rate + 8Y + + + EUB6SWP9Y + Euribor6M + Swap-Rate + 9Y + + + EUB6SWP10Y + Euribor6M + Swap-Rate + 10Y + + + EUB6SWP11Y + Euribor6M + Swap-Rate + 11Y + + + EUB6SWP12Y + Euribor6M + Swap-Rate + 12Y + + + EUB6SWP13Y + Euribor6M + Swap-Rate + 13Y + + + EUB6SWP14Y + Euribor6M + Swap-Rate + 14Y + + + EUB6SWP15Y + Euribor6M + Swap-Rate + 15Y + + + EUB6SWP16Y + Euribor6M + Swap-Rate + 16Y + + + EUB6SWP17Y + Euribor6M + Swap-Rate + 17Y + + + EUB6SWP18Y + Euribor6M + Swap-Rate + 18Y + + + EUB6SWP19Y + Euribor6M + Swap-Rate + 19Y + + + EUB6SWP20Y + Euribor6M + Swap-Rate + 20Y + + + EUB6SWP21Y + Euribor6M + Swap-Rate + 21Y + + + EUB6SWP22Y + Euribor6M + Swap-Rate + 22Y + + + EUB6SWP23Y + Euribor6M + Swap-Rate + 23Y + + + EUB6SWP24Y + Euribor6M + Swap-Rate + 24Y + + + EUB6SWP25Y + Euribor6M + Swap-Rate + 25Y + + + EUB6SWP26Y + Euribor6M + Swap-Rate + 26Y + + + EUB6SWP27Y + Euribor6M + Swap-Rate + 27Y + + + EUB6SWP28Y + Euribor6M + Swap-Rate + 28Y + + + EUB6SWP29Y + Euribor6M + Swap-Rate + 29Y + + + EUB6SWP30Y + Euribor6M + Swap-Rate + 30Y + + + EUB6SWP35Y + Euribor6M + Swap-Rate + 35Y + + + EUB6SWP40Y + Euribor6M + Swap-Rate + 40Y + + + EUB6SWP45Y + Euribor6M + Swap-Rate + 45Y + + + EUB6SWP50Y + Euribor6M + Swap-Rate + 50Y + + + EUB6SWP60Y + Euribor6M + Swap-Rate + 60Y + + + ESTRSWP1W + ESTR + Swap-Rate + 1W + + + ESTRSWP2W + ESTR + Swap-Rate + 2W + + + ESTRSWP3W + ESTR + Swap-Rate + 3W + + + ESTRSWP1M + ESTR + Swap-Rate + 1M + + + ESTRSWP2M + ESTR + Swap-Rate + 2M + + + ESTRSWP3M + ESTR + Swap-Rate + 3M + + + ESTRSWP4M + ESTR + Swap-Rate + 4M + + + ESTRSWP5M + ESTR + Swap-Rate + 5M + + + ESTRSWP6M + ESTR + Swap-Rate + 6M + + + ESTRSWP7M + ESTR + Swap-Rate + 7M + + + ESTRSWP8M + ESTR + Swap-Rate + 8M + + + ESTRSWP9M + ESTR + Swap-Rate + 9M + + + ESTRSWP10M + ESTR + Swap-Rate + 10M + + + ESTRSWP11M + ESTR + Swap-Rate + 11M + + + ESTRSWP12M + ESTR + Swap-Rate + 12M + + + ESTRSWP15M + ESTR + Swap-Rate + 15M + + + ESTRSWP18M + ESTR + Swap-Rate + 18M + + + ESTRSWP2Y + ESTR + Swap-Rate + 2Y + + + ESTRSWP3Y + ESTR + Swap-Rate + 3Y + + + ESTRSWP4Y + ESTR + Swap-Rate + 4Y + + + ESTRSWP5Y + ESTR + Swap-Rate + 5Y + + + ESTRSWP6Y + ESTR + Swap-Rate + 6Y + + + ESTRSWP7Y + ESTR + Swap-Rate + 7Y + + + ESTRSWP8Y + ESTR + Swap-Rate + 8Y + + + ESTRSWP9Y + ESTR + Swap-Rate + 9Y + + + ESTRSWP10Y + ESTR + Swap-Rate + 10Y + + + + + + party1 + + + + + + + + + CP1 + + + + CP2 + + 2008-05-05 + + + + + + + + + 2008-05-07 + + NONE + + + + 2018-05-05 + + MODFOLLOWING + + DEFR + + + + + MODFOLLOWING + + + + 6 + M + 14 + + + + + + 6 + M + + CalculationPeriodEndDate + + FOLLOWING + + + + + + CalculationPeriodStartDate + + -2 + D + Business + NONE + + GBLO + + + + + 6 + M + + + FOLLOWING + + + + + + + + 10000000.00 + + EUR + + + + + EUR-LIBOR-BBA + + 6 + M + + + ACT/360 + + + + + + + + + + 2008-05-07 + + NONE + + + + 2018-05-05 + + FOLLOWING + + + + + FOLLOWING + + + + 1 + Y + 14 + + + + + + 1 + Y + + CalculationPeriodEndDate + + MODFOLLOWING + + + + + + + + 10000000.00 + + EUR + + + + + 0.0466 + + 30E/360 + + + + + + + PARTXXXX + + + P2RTXXXX + + + + +
\ No newline at end of file From 227fe4eafe3627e3d7f74214276df4b829b1236d Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 2 Aug 2024 15:39:16 +0200 Subject: [PATCH 085/105] SDC-543, added tests for MarketDataCheck --- .../marketdata/utils/MarketDataCheckTest.java | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/test/java/net/finmath/smartcontract/valuation/marketdata/utils/MarketDataCheckTest.java diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/utils/MarketDataCheckTest.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/utils/MarketDataCheckTest.java new file mode 100644 index 000000000..bce33fb68 --- /dev/null +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/utils/MarketDataCheckTest.java @@ -0,0 +1,56 @@ +package net.finmath.smartcontract.valuation.marketdata.utils; + +import net.finmath.smartcontract.model.MarketDataList; +import net.finmath.smartcontract.product.xml.SDCXMLParser; +import net.finmath.smartcontract.product.xml.Smartderivativecontract; +import net.finmath.smartcontract.settlement.Settlement; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; + +import static org.junit.jupiter.api.Assertions.*; + +class MarketDataCheckTest { + + @Test + void checkMarketData_negativeCase() throws IOException { + final String fpml = new String(MarketDataCheckTest.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + final String md = new String(MarketDataCheckTest.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-01.xml").readAllBytes(), StandardCharsets.UTF_8); + + MarketDataList mdl = SDCXMLParser.unmarshalXml(md, MarketDataList.class); + Smartderivativecontract sdc = SDCXMLParser.unmarshalXml(fpml, Smartderivativecontract.class); + + MarketDataErrors errors = MarketDataCheck.checkMarketData(mdl, sdc); + assertTrue(errors.hasErrors()); + assertEquals(14, errors.getMissingDataPoints().size()); + } + + @Disabled("check format, two fixings are not included in product xml") + @Test + void checkMarketData_positiveCase_newFormat() throws IOException { + final String fpml = new String(MarketDataCheckTest.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + final String md = new String(MarketDataCheckTest.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/settlement_testset_initial.xml").readAllBytes(), StandardCharsets.UTF_8); + + Settlement settlement = SDCXMLParser.unmarshalXml(md, Settlement.class); + Smartderivativecontract sdc = SDCXMLParser.unmarshalXml(fpml, Smartderivativecontract.class); + + MarketDataErrors errors = MarketDataCheck.checkMarketData(settlement.getMarketData(), sdc); + assertFalse(errors.hasErrors()); + assertEquals(0, errors.getMissingDataPoints().size()); + } + + @Test + void checkMarketData_positiveCase_historical() throws IOException { + final String fpml = new String(MarketDataCheckTest.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract_simulated_historical_marketdata.xml").readAllBytes(), StandardCharsets.UTF_8); + final String md = new String(MarketDataCheckTest.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-01.xml").readAllBytes(), StandardCharsets.UTF_8); + + MarketDataList mdl = SDCXMLParser.unmarshalXml(md, MarketDataList.class); + Smartderivativecontract sdc = SDCXMLParser.unmarshalXml(fpml, Smartderivativecontract.class); + + MarketDataErrors errors = MarketDataCheck.checkMarketData(mdl, sdc); + assertFalse(errors.hasErrors()); + assertEquals(0, errors.getMissingDataPoints().size()); + } +} \ No newline at end of file From 92a0d5d6151e55f6bd33fa0e23dc97827c0d04ae Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 2 Aug 2024 15:39:22 +0200 Subject: [PATCH 086/105] SDC-543, new tests for parsing sdc xml with SDCXMLParser --- .../product/xml/SDCXMLParserTest.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java index 5aa3a45e8..b8743f7ce 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Objects; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; class SDCXMLParserTest { @@ -61,6 +62,19 @@ void testParser() throws IOException, SAXException, ParserConfigurationException System.out.println(irs.getLegReceiver()); } + @Test + void parseFpmlByGenericParser() throws IOException { + final String fpml = new String(net.finmath.smartcontract.Test.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + + Smartderivativecontract sdc = SDCXMLParser.unmarshalXml(fpml, Smartderivativecontract.class); + + System.out.println(sdc.getSettlement().getSettlementDateInitial().trim()); + + assertEquals("net.finmath", sdc.getValuation().getArtefact().getGroupId().trim()); + assertEquals("UTI12345", sdc.getUniqueTradeIdentifier().trim()); + assertEquals("party1", sdc.getReceiverPartyID().trim()); + } + @Test void unmarshalXml() throws IOException { final String marketDataXml = new String(Objects.requireNonNull(ValuationClient.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/client/md_testset1.xml")).readAllBytes(), StandardCharsets.UTF_8); From 22037b45baf054abc682810d49095c7a3904983b Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 2 Aug 2024 15:39:27 +0200 Subject: [PATCH 087/105] SDC-543, extended one MarketDataCheckTest with multiple files --- .../marketdata/utils/MarketDataCheckTest.java | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/src/test/java/net/finmath/smartcontract/valuation/marketdata/utils/MarketDataCheckTest.java b/src/test/java/net/finmath/smartcontract/valuation/marketdata/utils/MarketDataCheckTest.java index bce33fb68..020d68e7c 100644 --- a/src/test/java/net/finmath/smartcontract/valuation/marketdata/utils/MarketDataCheckTest.java +++ b/src/test/java/net/finmath/smartcontract/valuation/marketdata/utils/MarketDataCheckTest.java @@ -6,14 +6,23 @@ import net.finmath.smartcontract.settlement.Settlement; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.util.List; import static org.junit.jupiter.api.Assertions.*; class MarketDataCheckTest { + private static final Logger logger = LoggerFactory.getLogger(MarketDataCheckTest.class); + + private final List files = List.of("marketdata_2008-05-02.xml", "marketdata_2008-05-05.xml", "marketdata_2008-05-06.xml", "marketdata_2008-05-07.xml", "marketdata_2008-05-08.xml", "marketdata_2008-05-09.xml", "marketdata_2008-06-18.xml", "marketdata_2008-06-19.xml", "marketdata_2008-06-20.xml", "marketdata_2008-06-23.xml", "marketdata_2008-06-24.xml", "marketdata_2008-06-25.xml", "marketdata_2008-06-26.xml", "marketdata_2008-06-27.xml", "marketdata_2008-06-30.xml", + "marketdata_2008-07-01.xml", "marketdata_2008-07-02.xml", "marketdata_2008-09-09.xml", "marketdata_2008-09-10.xml", "marketdata_2008-10-10.xml", "marketdata_2008-10-13.xml", "marketdata_2008-10-14.xml", "marketdata_2008-10-15.xml"); + + @Test void checkMarketData_negativeCase() throws IOException { final String fpml = new String(MarketDataCheckTest.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); @@ -44,13 +53,23 @@ void checkMarketData_positiveCase_newFormat() throws IOException { @Test void checkMarketData_positiveCase_historical() throws IOException { final String fpml = new String(MarketDataCheckTest.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract_simulated_historical_marketdata.xml").readAllBytes(), StandardCharsets.UTF_8); - final String md = new String(MarketDataCheckTest.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-09-01.xml").readAllBytes(), StandardCharsets.UTF_8); - MarketDataList mdl = SDCXMLParser.unmarshalXml(md, MarketDataList.class); - Smartderivativecontract sdc = SDCXMLParser.unmarshalXml(fpml, Smartderivativecontract.class); + for(String fileName : files){ - MarketDataErrors errors = MarketDataCheck.checkMarketData(mdl, sdc); - assertFalse(errors.hasErrors()); - assertEquals(0, errors.getMissingDataPoints().size()); + String mdPath = "net/finmath/smartcontract/valuation/historicalMarketData/" + fileName; + final String md = new String(MarketDataCheckTest.class.getClassLoader().getResourceAsStream(mdPath).readAllBytes(), StandardCharsets.UTF_8); + + logger.info("checking file: {}", fileName); + + MarketDataList mdl = SDCXMLParser.unmarshalXml(md, MarketDataList.class); + Smartderivativecontract sdc = SDCXMLParser.unmarshalXml(fpml, Smartderivativecontract.class); + + MarketDataErrors errors = MarketDataCheck.checkMarketData(mdl, sdc); + assertFalse(errors.hasErrors()); + assertEquals(0, errors.getMissingDataPoints().size()); + } } + + + } \ No newline at end of file From 87c61fb65b2dce65da3001a371f95b314fa5aa9d Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 2 Aug 2024 15:39:33 +0200 Subject: [PATCH 088/105] SDC-543, fix for SDCXMLParserTest --- .../net/finmath/smartcontract/product/xml/SDCXMLParserTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java index b8743f7ce..34dec10a1 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java @@ -64,7 +64,7 @@ void testParser() throws IOException, SAXException, ParserConfigurationException @Test void parseFpmlByGenericParser() throws IOException { - final String fpml = new String(net.finmath.smartcontract.Test.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); + final String fpml = new String(SDCXMLParserTest.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract.xml").readAllBytes(), StandardCharsets.UTF_8); Smartderivativecontract sdc = SDCXMLParser.unmarshalXml(fpml, Smartderivativecontract.class); From 3c7997c8b3369592a22eb0b36b2f5a4ac0b8c614 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Tue, 6 Aug 2024 10:54:32 +0200 Subject: [PATCH 089/105] SDC-513, added trade ID and trade address to the fpml xsd and xml --- .../smartderivativecontract.xml | 2 ++ .../smartderivativecontract.xsd | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xml b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xml index 615834ab8..49023694b 100644 --- a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xml +++ b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xml @@ -1,6 +1,8 @@ + ID-Test123 + 0x000000001 UTI12345 diff --git a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd index bac40edd3..0361e9511 100644 --- a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd +++ b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd @@ -8,6 +8,8 @@ + + From a6167463adaf8b4a55adfbfaea40fbf33c1c441b Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Tue, 6 Aug 2024 12:17:41 +0200 Subject: [PATCH 090/105] SDC-513, added checks on SDCXMLParserTest for new trade id and address --- .../net/finmath/smartcontract/product/xml/SDCXMLParserTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java index 34dec10a1..6ffefa6d5 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java @@ -38,6 +38,8 @@ void testParser() throws IOException, SAXException, ParserConfigurationException System.out.println(date); Assertions.assertEquals("UTI12345", sdc.getUniqueTradeIdentifier()); + Assertions.assertEquals("ID-Test123", sdc.getDltTradeId()); + Assertions.assertEquals("0x000000001", sdc.getDltAddress()); // Get parties List parties = sdc.getCounterparties(); From 7584cc75f5485c6e7fbcc9a0ef86c8d28dbaedc1 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Tue, 6 Aug 2024 12:19:24 +0200 Subject: [PATCH 091/105] SDC-513, added new items to descriptor and SDCXMLParser, changed marginAccount and penaltyFee from float to int --- .../SmartDerivativeContractDescriptor.java | 14 +++++- .../product/xml/SDCXMLParser.java | 48 ++++++++++--------- .../smartderivativecontract.xsd | 4 +- 3 files changed, 40 insertions(+), 26 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/product/SmartDerivativeContractDescriptor.java b/src/main/java/net/finmath/smartcontract/product/SmartDerivativeContractDescriptor.java index cd99a398d..e5398fa6c 100644 --- a/src/main/java/net/finmath/smartcontract/product/SmartDerivativeContractDescriptor.java +++ b/src/main/java/net/finmath/smartcontract/product/SmartDerivativeContractDescriptor.java @@ -16,6 +16,8 @@ */ public class SmartDerivativeContractDescriptor { + private final String dltTradeId; + private final String dltAddress; private final String uniqueTradeIdentifier; private final LocalDateTime tradeDate; private final List counterparties; @@ -69,7 +71,9 @@ public String toString() { } } - public SmartDerivativeContractDescriptor(String uniqueTradeIdentifier, LocalDateTime tradeDate, List counterparties, Map marginAccountInitialByPartyID, Map penaltyFeeInitialByPartyID, String recervicePartyID, Node underlying, List marketdataItems) { + public SmartDerivativeContractDescriptor(String dltTradeId, String dltAddress, String uniqueTradeIdentifier, LocalDateTime tradeDate, List counterparties, Map marginAccountInitialByPartyID, Map penaltyFeeInitialByPartyID, String recervicePartyID, Node underlying, List marketdataItems) { + this.dltTradeId = dltTradeId; + this.dltAddress = dltAddress; this.uniqueTradeIdentifier = uniqueTradeIdentifier; this.tradeDate = tradeDate; this.counterparties = counterparties; @@ -85,6 +89,14 @@ public SmartDerivativeContractDescriptor(String uniqueTradeIdentifier, LocalDate Validate.notNull(underlying, "Underlying must not be null."); } + public String getDltTradeId() { + return dltTradeId; + } + + public String getDltAddress() { + return dltAddress; + } + public String getUniqueTradeIdentifier() { return uniqueTradeIdentifier; } diff --git a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java index eb55af879..a1e251928 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java @@ -36,26 +36,34 @@ private SDCXMLParser() { public static SmartDerivativeContractDescriptor parse(String sdcxml) throws ParserConfigurationException, IOException, SAXException { + Smartderivativecontract sdc = unmarshalXml(sdcxml, Smartderivativecontract.class); + LocalDateTime settlementDateInitial; Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(sdcxml.getBytes(StandardCharsets.UTF_8))); document.getDocumentElement().normalize(); - String tradeDateString = document.getElementsByTagName("settlementDateInitial").item(0).getTextContent(); - settlementDateInitial = LocalDateTime.parse(tradeDateString.trim()); + settlementDateInitial = LocalDateTime.parse(sdc.getSettlement().settlementDateInitial.trim()); - String uniqueTradeIdentifier = document.getElementsByTagName("uniqueTradeIdentifier").item(0).getTextContent(); + String uniqueTradeIdentifier = sdc.getUniqueTradeIdentifier().trim(); + String dltAddress = sdc.getDltAddress() == null ? "" : sdc.getDltAddress().trim(); + String dltTradeId = sdc.getDltTradeId() == null ? "" : sdc.getDltTradeId().trim(); /* Market Data */ List marketdataItems = new ArrayList<>(); - List itemNodes = nodeChildsByName(document.getElementsByTagName("marketdataitems").item(0), "item"); - for (Node itemNode : itemNodes) { - String symbol = nodeValueByName(itemNode, "symbol", String.class); - String curve = nodeValueByName(itemNode, "curve", String.class); - String type = nodeValueByName(itemNode, "type", String.class); - String tenor = nodeValueByName(itemNode, "tenor", String.class); + //List itemNodes = nodeChildsByName(document.getElementsByTagName("marketdataitems").item(0), "item"); + //for (Node itemNode : itemNodes) { + for(Smartderivativecontract.Settlement.Marketdata.Marketdataitems.Item item : sdc.getSettlement().getMarketdata().getMarketdataitems().getItem()){ + //String symbol = nodeValueByName(itemNode, "symbol", String.class); + String symbol = item.getSymbol().get(0).trim(); + //String curve = nodeValueByName(itemNode, "curve", String.class); + String curve = item.getCurve().get(0).trim(); + //String type = nodeValueByName(itemNode, "type", String.class); + String type = item.getType().get(0).trim(); + //String tenor = nodeValueByName(itemNode, "tenor", String.class); + String tenor = item.getTenor().get(0).trim(); CalibrationDataItem.Spec spec = new CalibrationDataItem.Spec(symbol, curve, type, tenor); marketdataItems.add(spec); } @@ -67,27 +75,21 @@ public static SmartDerivativeContractDescriptor parse(String sdcxml) throws Pars Map marginAccountInitialByPartyID = new HashMap<>(); Map penaltyFeeInitialByPartyID = new HashMap<>(); - List partyNodes = nodeChildsByName(document.getElementsByTagName("parties").item(0), "party"); - for (Node partyNode : partyNodes) { - + for(Smartderivativecontract.Parties.Party p : sdc.getParties().getParty()){ SmartDerivativeContractDescriptor.Party party = new SmartDerivativeContractDescriptor.Party( - nodeValueByName(partyNode, "id", String.class), - nodeValueByName(partyNode, "name", String.class), + p.getId().trim(), + p.getName().trim(), null, - nodeValueByName(partyNode, "address", String.class) + p.getAddress().trim() ); - - Double marginAccountInitial = nodeValueByName(nodeChildByName(partyNode, "marginAccount"), "value", Double.class); - Double penaltyFeeInitial = nodeValueByName(nodeChildByName(partyNode, "penaltyFee"), "value", Double.class); - parties.add(party); - marginAccountInitialByPartyID.put(party.getId(), marginAccountInitial); - penaltyFeeInitialByPartyID.put(party.getId(), penaltyFeeInitial); + marginAccountInitialByPartyID.put(party.getId(), p.getMarginAccount().getValue()); + penaltyFeeInitialByPartyID.put(party.getId(), p.getPenaltyFee().getValue()); } // Receiver party ID - String receiverPartyID = document.getElementsByTagName("receiverPartyID").item(0).getTextContent().trim(); + String receiverPartyID = sdc.getReceiverPartyID().trim(); // TODO The parser needs to check that the field receiverPartyID of the SDC matched the field in the FPML @@ -101,7 +103,7 @@ public static SmartDerivativeContractDescriptor parse(String sdcxml) throws Pars underlying = underlying.getNextSibling(); } - return new SmartDerivativeContractDescriptor(uniqueTradeIdentifier, settlementDateInitial, parties, marginAccountInitialByPartyID, penaltyFeeInitialByPartyID, receiverPartyID, underlying, marketdataItems); + return new SmartDerivativeContractDescriptor(dltTradeId, dltAddress, uniqueTradeIdentifier, settlementDateInitial, parties, marginAccountInitialByPartyID, penaltyFeeInitialByPartyID, receiverPartyID, underlying, marketdataItems); } /* diff --git a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd index 0361e9511..79d66e2b8 100644 --- a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd +++ b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract.xsd @@ -38,7 +38,7 @@ - + @@ -46,7 +46,7 @@ - + From 99010dc3a25311d82b9c7f845b346ec0522d6a23 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Tue, 6 Aug 2024 12:26:00 +0200 Subject: [PATCH 092/105] SDC-513, removed unused methods, general cleanup on SDCXMLParser, added error logger in PlainSwapEditorController --- .../product/xml/SDCXMLParser.java | 69 ++----------------- .../PlainSwapEditorController.java | 1 + 2 files changed, 5 insertions(+), 65 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java index a1e251928..99081fb62 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java @@ -9,7 +9,6 @@ import org.slf4j.LoggerFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; -import org.w3c.dom.NodeList; import org.xml.sax.SAXException; import javax.xml.parsers.DocumentBuilderFactory; @@ -38,12 +37,7 @@ public static SmartDerivativeContractDescriptor parse(String sdcxml) throws Pars Smartderivativecontract sdc = unmarshalXml(sdcxml, Smartderivativecontract.class); - LocalDateTime settlementDateInitial; - - Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(sdcxml.getBytes(StandardCharsets.UTF_8))); - document.getDocumentElement().normalize(); - - settlementDateInitial = LocalDateTime.parse(sdc.getSettlement().settlementDateInitial.trim()); + LocalDateTime settlementDateInitial = LocalDateTime.parse(sdc.getSettlement().settlementDateInitial.trim()); String uniqueTradeIdentifier = sdc.getUniqueTradeIdentifier().trim(); String dltAddress = sdc.getDltAddress() == null ? "" : sdc.getDltAddress().trim(); @@ -53,16 +47,10 @@ public static SmartDerivativeContractDescriptor parse(String sdcxml) throws Pars Market Data */ List marketdataItems = new ArrayList<>(); - //List itemNodes = nodeChildsByName(document.getElementsByTagName("marketdataitems").item(0), "item"); - //for (Node itemNode : itemNodes) { for(Smartderivativecontract.Settlement.Marketdata.Marketdataitems.Item item : sdc.getSettlement().getMarketdata().getMarketdataitems().getItem()){ - //String symbol = nodeValueByName(itemNode, "symbol", String.class); String symbol = item.getSymbol().get(0).trim(); - //String curve = nodeValueByName(itemNode, "curve", String.class); String curve = item.getCurve().get(0).trim(); - //String type = nodeValueByName(itemNode, "type", String.class); String type = item.getType().get(0).trim(); - //String tenor = nodeValueByName(itemNode, "tenor", String.class); String tenor = item.getTenor().get(0).trim(); CalibrationDataItem.Spec spec = new CalibrationDataItem.Spec(symbol, curve, type, tenor); marketdataItems.add(spec); @@ -87,7 +75,6 @@ public static SmartDerivativeContractDescriptor parse(String sdcxml) throws Pars penaltyFeeInitialByPartyID.put(party.getId(), p.getPenaltyFee().getValue()); } - // Receiver party ID String receiverPartyID = sdc.getReceiverPartyID().trim(); @@ -95,6 +82,9 @@ public static SmartDerivativeContractDescriptor parse(String sdcxml) throws Pars // TODO Support multiple underlyings + Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(sdcxml.getBytes(StandardCharsets.UTF_8))); + document.getDocumentElement().normalize(); + Node underlying = document .getElementsByTagName("underlying") .item(0) @@ -106,57 +96,6 @@ public static SmartDerivativeContractDescriptor parse(String sdcxml) throws Pars return new SmartDerivativeContractDescriptor(dltTradeId, dltAddress, uniqueTradeIdentifier, settlementDateInitial, parties, marginAccountInitialByPartyID, penaltyFeeInitialByPartyID, receiverPartyID, underlying, marketdataItems); } - /* - * Private helpers - */ - - private static List nodeChildsByName(Node node, String name) { - // Iterate - List nodes = new ArrayList<>(); - NodeList childs = node.getChildNodes(); - for (int i = 0; i < childs.getLength(); i++) { - Node childNode = childs.item(i); - if (name.equals(childNode.getNodeName())) { - nodes.add(childNode); - } - } - return nodes; - } - - private static Node nodeChildByName(Node node, String name) { - // Iterate - NodeList nodes = node.getChildNodes(); - for (int i = 0; i < nodes.getLength(); i++) { - Node childNode = nodes.item(i); - if (name.equals(childNode.getNodeName())) { - return childNode; - } - } - - throw new IllegalArgumentException("Node not found"); - } - - private static T nodeValueByName(Node node, String name, Class type) { - - // Iterate - NodeList nodes = node.getChildNodes(); - for (int i = 0; i < nodes.getLength(); i++) { - Node childNode = nodes.item(i); - if (name.equals(childNode.getNodeName())) { - String value = childNode.getTextContent(); - if (type.equals(String.class)) { - return type.cast(value); - } else if (type.equals(Double.class)) { - return type.cast(Double.valueOf(value)); - } else { - throw new IllegalArgumentException("Type not supported"); - } - } - } - - throw new IllegalArgumentException("Node not found"); - } - public static T unmarshalXml(String xml, Class t) { try { StringReader reader = new StringReader(xml); diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java index fbceb85e9..4bb926170 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/PlainSwapEditorController.java @@ -159,6 +159,7 @@ public ResponseEntity evaluateFromPlainSwapEditor(PlainSwapOperatio try { valueResult = (new MarginCalculator()).getValue(marketDataString, sdcmlBody); } catch (Exception e) { + logger.error("error in valuation, ", e); ProblemDetail pd = ProblemDetail.forStatusAndDetail(HttpStatus.INTERNAL_SERVER_ERROR, "Valuation error."); pd.setType(URI.create(hostname + ErrorTypeURI.VALUATION_ERROR_URI)); pd.setTitle(ErrorDetails.VALUATION_ERROR_DETAIL); From 521ce8729d7a51bd3a18b6e6e2b62d1ab596f7a6 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Tue, 6 Aug 2024 13:41:16 +0200 Subject: [PATCH 093/105] SDC-513, added trade id and address to historical sdc fpml --- .../smartderivativecontract_simulated_historical_marketdata.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract_simulated_historical_marketdata.xml b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract_simulated_historical_marketdata.xml index 22be54fe8..1d42e096d 100644 --- a/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract_simulated_historical_marketdata.xml +++ b/src/main/resources/net.finmath.smartcontract.product.xml/smartderivativecontract_simulated_historical_marketdata.xml @@ -1,6 +1,8 @@ + ID-historical123 + 0x000000002 UTI12345 From 2b5c1066cc3fa00395727dad4bd6a6990846b801 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Thu, 8 Aug 2024 08:40:41 +0200 Subject: [PATCH 094/105] github action snapshot: security update analog to test action --- .github/workflows/upload_snapshot.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/upload_snapshot.yml b/.github/workflows/upload_snapshot.yml index 2568fb481..9fe81ec04 100644 --- a/.github/workflows/upload_snapshot.yml +++ b/.github/workflows/upload_snapshot.yml @@ -12,10 +12,11 @@ jobs: name: SNAPSHOT, build and upload runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Java - uses: actions/setup-java@v1 + uses: actions/setup-java@v2 with: + distribution: 'zulu' java-version: 17 - name: upload SNAPSHOT to GitLab env: From 160080777fef81e8f7a28c712fe979d3258ea329 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Thu, 8 Aug 2024 08:46:15 +0200 Subject: [PATCH 095/105] github actions: test with new actions/setup-java@v4 --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5fee5cb59..530985204 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Java - uses: actions/setup-java@v2 + uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: 17 From c7eb865718082cc00038a576294ad6a6c99c44ae Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Thu, 8 Aug 2024 08:48:54 +0200 Subject: [PATCH 096/105] github actions snapshot: test with new actions/setup-java@v4 --- .github/workflows/upload_snapshot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upload_snapshot.yml b/.github/workflows/upload_snapshot.yml index 9fe81ec04..e695c844b 100644 --- a/.github/workflows/upload_snapshot.yml +++ b/.github/workflows/upload_snapshot.yml @@ -14,7 +14,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Java - uses: actions/setup-java@v2 + uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: 17 From 3325c0ce07fa8fc99fca5a051cd32920f45958a3 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 9 Aug 2024 08:44:03 +0200 Subject: [PATCH 097/105] continue on error for snapshot --- .github/workflows/upload_snapshot.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/upload_snapshot.yml b/.github/workflows/upload_snapshot.yml index e695c844b..d6263004e 100644 --- a/.github/workflows/upload_snapshot.yml +++ b/.github/workflows/upload_snapshot.yml @@ -22,4 +22,5 @@ jobs: env: DEPLOY_TOKEN: ${{ secrets.DEPLOY_TOKEN }} PRIVATE_TOKEN: ${{ secrets.PRIVATE_TOKEN }} - run: mvn -s github_SNAPSHOT_settings.xml clean install deploy \ No newline at end of file + run: mvn -s github_SNAPSHOT_settings.xml clean install deploy + continue-on-error: true \ No newline at end of file From 675aa6c2139ed355a827b510f19e2df151aae2fb Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 9 Aug 2024 09:16:03 +0200 Subject: [PATCH 098/105] SDC-526, parse currency out of FPML --- .../product/SmartDerivativeContractDescriptor.java | 8 +++++++- .../finmath/smartcontract/product/xml/SDCXMLParser.java | 4 +++- .../smartcontract/product/xml/SDCXMLParserTest.java | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/product/SmartDerivativeContractDescriptor.java b/src/main/java/net/finmath/smartcontract/product/SmartDerivativeContractDescriptor.java index e5398fa6c..af5dd6590 100644 --- a/src/main/java/net/finmath/smartcontract/product/SmartDerivativeContractDescriptor.java +++ b/src/main/java/net/finmath/smartcontract/product/SmartDerivativeContractDescriptor.java @@ -26,6 +26,7 @@ public class SmartDerivativeContractDescriptor { private final String recervicePartyID; private final Node underlying; private final List marketdataItemList; + private final String currency; /** * Descriptor for a smart derivative contract counterparty. Unified access to a party definition in an XML. @@ -71,7 +72,7 @@ public String toString() { } } - public SmartDerivativeContractDescriptor(String dltTradeId, String dltAddress, String uniqueTradeIdentifier, LocalDateTime tradeDate, List counterparties, Map marginAccountInitialByPartyID, Map penaltyFeeInitialByPartyID, String recervicePartyID, Node underlying, List marketdataItems) { + public SmartDerivativeContractDescriptor(String dltTradeId, String dltAddress, String uniqueTradeIdentifier, LocalDateTime tradeDate, List counterparties, Map marginAccountInitialByPartyID, Map penaltyFeeInitialByPartyID, String recervicePartyID, Node underlying, List marketdataItems, String currency) { this.dltTradeId = dltTradeId; this.dltAddress = dltAddress; this.uniqueTradeIdentifier = uniqueTradeIdentifier; @@ -82,6 +83,7 @@ public SmartDerivativeContractDescriptor(String dltTradeId, String dltAddress, S this.recervicePartyID = recervicePartyID; this.marketdataItemList = marketdataItems; this.underlying = underlying; + this.currency = currency; Validate.isTrue(counterparties.size() == 2, "Number of counterparties must be 2."); Validate.isTrue(marginAccountInitialByPartyID.size() == 2, "Number of margin accounts values must be 2."); @@ -142,4 +144,8 @@ public String getUnderlyingReceiverPartyID() { } public List getMarketdataItemList() {return marketdataItemList;} + + public String getCurrency() { + return currency; + } } diff --git a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java index 99081fb62..f005c6580 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java @@ -92,8 +92,10 @@ public static SmartDerivativeContractDescriptor parse(String sdcxml) throws Pars if (!underlying.getNodeName().equals("dataDocument")) { underlying = underlying.getNextSibling(); } + Swap swap = (Swap) sdc.getUnderlyings().getUnderlying().getDataDocument().getTrade().get(0).getProduct().getValue(); + String currency = swap.getSwapStream().get(0).getCalculationPeriodAmount().getCalculation().getNotionalSchedule().getNotionalStepSchedule().getCurrency().getValue().trim(); - return new SmartDerivativeContractDescriptor(dltTradeId, dltAddress, uniqueTradeIdentifier, settlementDateInitial, parties, marginAccountInitialByPartyID, penaltyFeeInitialByPartyID, receiverPartyID, underlying, marketdataItems); + return new SmartDerivativeContractDescriptor(dltTradeId, dltAddress, uniqueTradeIdentifier, settlementDateInitial, parties, marginAccountInitialByPartyID, penaltyFeeInitialByPartyID, receiverPartyID, underlying, marketdataItems, currency); } public static T unmarshalXml(String xml, Class t) { diff --git a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java index 6ffefa6d5..b9f4a45e3 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java @@ -40,6 +40,7 @@ void testParser() throws IOException, SAXException, ParserConfigurationException Assertions.assertEquals("UTI12345", sdc.getUniqueTradeIdentifier()); Assertions.assertEquals("ID-Test123", sdc.getDltTradeId()); Assertions.assertEquals("0x000000001", sdc.getDltAddress()); + Assertions.assertEquals("EUR", sdc.getCurrency()); // Get parties List parties = sdc.getCounterparties(); From 9c9c391aefedb0c292bf8e91ecd0157ae8a656f6 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Wed, 28 Aug 2024 09:55:08 +0200 Subject: [PATCH 099/105] SDC-581, parse marketDataProvider out of fpml --- .../product/SmartDerivativeContractDescriptor.java | 8 +++++++- .../finmath/smartcontract/product/xml/SDCXMLParser.java | 4 +++- .../smartcontract/product/xml/SDCXMLParserTest.java | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/product/SmartDerivativeContractDescriptor.java b/src/main/java/net/finmath/smartcontract/product/SmartDerivativeContractDescriptor.java index af5dd6590..d81964d0b 100644 --- a/src/main/java/net/finmath/smartcontract/product/SmartDerivativeContractDescriptor.java +++ b/src/main/java/net/finmath/smartcontract/product/SmartDerivativeContractDescriptor.java @@ -27,6 +27,7 @@ public class SmartDerivativeContractDescriptor { private final Node underlying; private final List marketdataItemList; private final String currency; + private final String marketDataProvider; /** * Descriptor for a smart derivative contract counterparty. Unified access to a party definition in an XML. @@ -72,7 +73,7 @@ public String toString() { } } - public SmartDerivativeContractDescriptor(String dltTradeId, String dltAddress, String uniqueTradeIdentifier, LocalDateTime tradeDate, List counterparties, Map marginAccountInitialByPartyID, Map penaltyFeeInitialByPartyID, String recervicePartyID, Node underlying, List marketdataItems, String currency) { + public SmartDerivativeContractDescriptor(String dltTradeId, String dltAddress, String uniqueTradeIdentifier, LocalDateTime tradeDate, List counterparties, Map marginAccountInitialByPartyID, Map penaltyFeeInitialByPartyID, String recervicePartyID, Node underlying, List marketdataItems, String currency, String marketDataProvider) { this.dltTradeId = dltTradeId; this.dltAddress = dltAddress; this.uniqueTradeIdentifier = uniqueTradeIdentifier; @@ -84,6 +85,7 @@ public SmartDerivativeContractDescriptor(String dltTradeId, String dltAddress, S this.marketdataItemList = marketdataItems; this.underlying = underlying; this.currency = currency; + this.marketDataProvider = marketDataProvider; Validate.isTrue(counterparties.size() == 2, "Number of counterparties must be 2."); Validate.isTrue(marginAccountInitialByPartyID.size() == 2, "Number of margin accounts values must be 2."); @@ -148,4 +150,8 @@ public String getUnderlyingReceiverPartyID() { public String getCurrency() { return currency; } + + public String getMarketDataProvider() { + return marketDataProvider; + } } diff --git a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java index f005c6580..7b236e728 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java @@ -95,7 +95,9 @@ public static SmartDerivativeContractDescriptor parse(String sdcxml) throws Pars Swap swap = (Swap) sdc.getUnderlyings().getUnderlying().getDataDocument().getTrade().get(0).getProduct().getValue(); String currency = swap.getSwapStream().get(0).getCalculationPeriodAmount().getCalculation().getNotionalSchedule().getNotionalStepSchedule().getCurrency().getValue().trim(); - return new SmartDerivativeContractDescriptor(dltTradeId, dltAddress, uniqueTradeIdentifier, settlementDateInitial, parties, marginAccountInitialByPartyID, penaltyFeeInitialByPartyID, receiverPartyID, underlying, marketdataItems, currency); + String marketDataProvider = sdc.getSettlement().getMarketdata().getProvider().trim(); + + return new SmartDerivativeContractDescriptor(dltTradeId, dltAddress, uniqueTradeIdentifier, settlementDateInitial, parties, marginAccountInitialByPartyID, penaltyFeeInitialByPartyID, receiverPartyID, underlying, marketdataItems, currency, marketDataProvider); } public static T unmarshalXml(String xml, Class t) { diff --git a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java index b9f4a45e3..a9d3045c3 100644 --- a/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java +++ b/src/test/java/net/finmath/smartcontract/product/xml/SDCXMLParserTest.java @@ -41,6 +41,7 @@ void testParser() throws IOException, SAXException, ParserConfigurationException Assertions.assertEquals("ID-Test123", sdc.getDltTradeId()); Assertions.assertEquals("0x000000001", sdc.getDltAddress()); Assertions.assertEquals("EUR", sdc.getCurrency()); + Assertions.assertEquals("internal", sdc.getMarketDataProvider()); // Get parties List parties = sdc.getCounterparties(); From 198342dca4c3e5faeba24ea2c1f78e2e37b5a01e Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Thu, 29 Aug 2024 12:20:14 +0200 Subject: [PATCH 100/105] SDC-619, new Settlement builder object --- .../settlement/SettlementGenerator.java | 89 +++++++++++++++++++ .../settlement/SettlementGeneratorTest.java | 47 ++++++++++ 2 files changed, 136 insertions(+) create mode 100644 src/main/java/net/finmath/smartcontract/settlement/SettlementGenerator.java create mode 100644 src/test/java/net/finmath/smartcontract/settlement/SettlementGeneratorTest.java diff --git a/src/main/java/net/finmath/smartcontract/settlement/SettlementGenerator.java b/src/main/java/net/finmath/smartcontract/settlement/SettlementGenerator.java new file mode 100644 index 000000000..c5f324bfb --- /dev/null +++ b/src/main/java/net/finmath/smartcontract/settlement/SettlementGenerator.java @@ -0,0 +1,89 @@ +package net.finmath.smartcontract.settlement; + +import net.finmath.smartcontract.model.ExceptionId; +import net.finmath.smartcontract.model.MarketDataList; +import net.finmath.smartcontract.model.SDCException; +import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; +import net.finmath.smartcontract.product.xml.SDCXMLParser; + +import java.lang.reflect.Field; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.time.ZonedDateTime; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +public class SettlementGenerator { + + private Settlement settlement; + + public SettlementGenerator generateInitialSettlementXml(String marketDataXml, SmartDerivativeContractDescriptor sdc){ + generateSettlement(marketDataXml, Settlement.SettlementType.INITIAL, sdc, BigDecimal.ZERO); + return this.settlementValuePrevious(BigDecimal.ZERO); + } + + public SettlementGenerator generateRegularSettlementXml(String marketDataXml, SmartDerivativeContractDescriptor sdc, BigDecimal marginValue){ + return generateSettlement(marketDataXml, Settlement.SettlementType.REGULAR, sdc, marginValue); + } + + private SettlementGenerator generateSettlement(String marketDataXml, Settlement.SettlementType settlementType, SmartDerivativeContractDescriptor sdc, BigDecimal marginValue){ + MarketDataList marketDataList = SDCXMLParser.unmarshalXml(marketDataXml, MarketDataList.class); + settlement = new Settlement(); + settlement.setTradeId(sdc.getDltTradeId()); + settlement.setSettlementType(settlementType); + settlement.setCurrency(sdc.getCurrency()); + settlement.setMarginValue(marginValue); + settlement.setSettlementTime(ZonedDateTime.now()); + settlement.setMarketData(marketDataList); + + return this; + } + + public SettlementGenerator marginLimits(List marginLimits){ + settlement.setMarginLimits(marginLimits); + return this; + } + + public SettlementGenerator settlementValue(BigDecimal settlementValue){ + settlement.setSettlementValue(settlementValue); + return this; + } + + public SettlementGenerator settlementValuePrevious(BigDecimal settlementValuePrevious){ + settlement.setSettlementValuePrevious(settlementValuePrevious); + return this; + } + + public SettlementGenerator settlementTimeNext(ZonedDateTime settlementTimeNext){ + settlement.setSettlementTimeNext(settlementTimeNext); + return this; + } + + public SettlementGenerator settlementValueNext(BigDecimal settlementValueNext){ + settlement.setSettlementValueNext(settlementValueNext); + return this; + } + + public String build(){ + if(allFieldsSet(settlement)) + return SDCXMLParser.marshalClassToXMLString(settlement); + else + throw new SDCException(ExceptionId.SDC_WRONG_INPUT, "settlement input incomplete", 400); + } + + private static boolean allFieldsSet(Settlement settlement){ + return Arrays.stream(settlement.getClass().getDeclaredFields()) + .peek(f -> f.setAccessible(true)) + .map(f -> getFieldValue(f, settlement)) + .allMatch(Objects::nonNull); + } + + private static Object getFieldValue(Field field, Object target) { + try { + return field.get(target); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/test/java/net/finmath/smartcontract/settlement/SettlementGeneratorTest.java b/src/test/java/net/finmath/smartcontract/settlement/SettlementGeneratorTest.java new file mode 100644 index 000000000..1e8c2a350 --- /dev/null +++ b/src/test/java/net/finmath/smartcontract/settlement/SettlementGeneratorTest.java @@ -0,0 +1,47 @@ +package net.finmath.smartcontract.settlement; + +import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; +import net.finmath.smartcontract.product.xml.SDCXMLParser; +import org.junit.jupiter.api.Test; +import org.xml.sax.SAXException; + +import javax.xml.parsers.ParserConfigurationException; +import java.io.IOException; +import java.io.InputStream; +import java.math.BigDecimal; +import java.time.ZonedDateTime; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; + +class SettlementGeneratorTest { + + @Test + void generateInitialSettlement() throws IOException, ParserConfigurationException, SAXException { + InputStream inputStream = SettlementGeneratorTest.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-02.xml"); + String marketDataString = new String(inputStream.readAllBytes()); + + inputStream = SettlementGeneratorTest.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract_with_rics.xml"); + String productString = new String(inputStream.readAllBytes()); + SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(productString); + + String settlementString = new SettlementGenerator().generateInitialSettlementXml(marketDataString, sdc) + .marginLimits(List.of(BigDecimal.ONE, BigDecimal.ZERO)) + .settlementValue(BigDecimal.ZERO) + //.settlementValuePrevious(BigDecimal.ZERO) + .settlementTimeNext(ZonedDateTime.now()) + .settlementValueNext(BigDecimal.ZERO) + .build(); + + System.out.println(settlementString); + + assertTrue(settlementString.contains("ESTRSWP3Y")); + assertTrue(settlementString.contains("ESTRSWP1W")); + assertTrue(settlementString.contains("INITIAL")); + assertTrue(settlementString.contains("0")); + assertTrue(settlementString.contains("")); + assertTrue(settlementString.contains("")); + assertTrue(settlementString.contains("")); + assertTrue(settlementString.contains("")); + } +} \ No newline at end of file From 8784329695e71dd26c9fe8603331a5770522ec22 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Thu, 29 Aug 2024 13:42:44 +0200 Subject: [PATCH 101/105] SDC-619, increased test coverage on SettlementGenerator --- .../settlement/SettlementGenerator.java | 12 +++- .../settlement/SettlementGeneratorTest.java | 61 +++++++++++++++++++ 2 files changed, 70 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/finmath/smartcontract/settlement/SettlementGenerator.java b/src/main/java/net/finmath/smartcontract/settlement/SettlementGenerator.java index c5f324bfb..b0b225820 100644 --- a/src/main/java/net/finmath/smartcontract/settlement/SettlementGenerator.java +++ b/src/main/java/net/finmath/smartcontract/settlement/SettlementGenerator.java @@ -5,10 +5,11 @@ import net.finmath.smartcontract.model.SDCException; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; import net.finmath.smartcontract.product.xml.SDCXMLParser; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.lang.reflect.Field; import java.math.BigDecimal; -import java.math.BigInteger; import java.time.ZonedDateTime; import java.util.Arrays; import java.util.List; @@ -16,6 +17,8 @@ public class SettlementGenerator { + private static final Logger logger = LoggerFactory.getLogger(SettlementGenerator.class); + private Settlement settlement; public SettlementGenerator generateInitialSettlementXml(String marketDataXml, SmartDerivativeContractDescriptor sdc){ @@ -66,10 +69,13 @@ public SettlementGenerator settlementValueNext(BigDecimal settlementValueNext){ } public String build(){ + String settlementString = SDCXMLParser.marshalClassToXMLString(settlement); if(allFieldsSet(settlement)) - return SDCXMLParser.marshalClassToXMLString(settlement); - else + return settlementString; + else{ + logger.error("missing input for settlement, settlement string so far: {}", settlementString); throw new SDCException(ExceptionId.SDC_WRONG_INPUT, "settlement input incomplete", 400); + } } private static boolean allFieldsSet(Settlement settlement){ diff --git a/src/test/java/net/finmath/smartcontract/settlement/SettlementGeneratorTest.java b/src/test/java/net/finmath/smartcontract/settlement/SettlementGeneratorTest.java index 1e8c2a350..61b3670fa 100644 --- a/src/test/java/net/finmath/smartcontract/settlement/SettlementGeneratorTest.java +++ b/src/test/java/net/finmath/smartcontract/settlement/SettlementGeneratorTest.java @@ -1,5 +1,6 @@ package net.finmath.smartcontract.settlement; +import net.finmath.smartcontract.model.SDCException; import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; import net.finmath.smartcontract.product.xml.SDCXMLParser; import org.junit.jupiter.api.Test; @@ -38,10 +39,70 @@ void generateInitialSettlement() throws IOException, ParserConfigurationExceptio assertTrue(settlementString.contains("ESTRSWP3Y")); assertTrue(settlementString.contains("ESTRSWP1W")); assertTrue(settlementString.contains("INITIAL")); + assertFalse(settlementString.contains("REGULAR")); assertTrue(settlementString.contains("0")); assertTrue(settlementString.contains("")); assertTrue(settlementString.contains("")); assertTrue(settlementString.contains("")); assertTrue(settlementString.contains("")); + assertTrue(settlementString.contains("")); + assertTrue(settlementString.contains("")); + assertTrue(settlementString.contains("")); + assertTrue(settlementString.contains("")); + assertTrue(settlementString.contains("")); + } + + @Test + void generateRegularSettlement() throws IOException, ParserConfigurationException, SAXException { + InputStream inputStream = SettlementGeneratorTest.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-02.xml"); + String marketDataString = new String(inputStream.readAllBytes()); + + inputStream = SettlementGeneratorTest.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract_with_rics.xml"); + String productString = new String(inputStream.readAllBytes()); + SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(productString); + + String settlementString = new SettlementGenerator().generateRegularSettlementXml(marketDataString, sdc, BigDecimal.ONE) + .marginLimits(List.of(BigDecimal.ONE, BigDecimal.ZERO)) + .settlementValue(BigDecimal.ZERO) + .settlementValuePrevious(BigDecimal.ZERO) + .settlementTimeNext(ZonedDateTime.now()) + .settlementValueNext(BigDecimal.ZERO) + .build(); + + System.out.println(settlementString); + + assertTrue(settlementString.contains("ESTRSWP3Y")); + assertTrue(settlementString.contains("ESTRSWP1W")); + assertTrue(settlementString.contains("REGULAR")); + assertFalse(settlementString.contains("INITIAL")); + assertTrue(settlementString.contains("1")); + assertTrue(settlementString.contains("")); + assertTrue(settlementString.contains("")); + assertTrue(settlementString.contains("")); + assertTrue(settlementString.contains("")); + assertTrue(settlementString.contains("")); + assertTrue(settlementString.contains("")); + assertTrue(settlementString.contains("")); + assertTrue(settlementString.contains("")); + assertTrue(settlementString.contains("")); + } + + @Test + void generateIncompleteSettlement_Exception() throws IOException, ParserConfigurationException, SAXException { + InputStream inputStream = SettlementGeneratorTest.class.getClassLoader().getResourceAsStream("net/finmath/smartcontract/valuation/historicalMarketData/marketdata_2008-05-02.xml"); + String marketDataString = new String(inputStream.readAllBytes()); + + inputStream = SettlementGeneratorTest.class.getClassLoader().getResourceAsStream("net.finmath.smartcontract.product.xml/smartderivativecontract_with_rics.xml"); + String productString = new String(inputStream.readAllBytes()); + SmartDerivativeContractDescriptor sdc = SDCXMLParser.parse(productString); + + SettlementGenerator generator = new SettlementGenerator().generateRegularSettlementXml(marketDataString, sdc, BigDecimal.ONE) + .marginLimits(List.of(BigDecimal.ONE, BigDecimal.ZERO)) + .settlementValue(BigDecimal.ZERO) + .settlementValuePrevious(BigDecimal.ZERO) + .settlementTimeNext(ZonedDateTime.now()); + //.settlementValueNext(BigDecimal.ZERO); + + assertThrows(SDCException.class, generator::build); } } \ No newline at end of file From 90379ce6fb37388afd8c18a7ce1bf36f69ed7716 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Fri, 30 Aug 2024 14:40:38 +0200 Subject: [PATCH 102/105] SDC-619, launcher for online MarketData --- .../MarketDataGeneratorLauncher.java | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorLauncher.java diff --git a/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorLauncher.java b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorLauncher.java new file mode 100644 index 000000000..731f75ec0 --- /dev/null +++ b/src/main/java/net/finmath/smartcontract/valuation/marketdata/generators/MarketDataGeneratorLauncher.java @@ -0,0 +1,62 @@ +package net.finmath.smartcontract.valuation.marketdata.generators; + +import com.neovisionaries.ws.client.WebSocket; +import io.reactivex.rxjava3.functions.Consumer; +import net.finmath.smartcontract.model.MarketDataList; +import net.finmath.smartcontract.product.SmartDerivativeContractDescriptor; +import net.finmath.smartcontract.valuation.marketdata.curvecalibration.CalibrationDataItem; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.util.List; +import java.util.Properties; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicReference; + +public class MarketDataGeneratorLauncher { + + private static final Logger logger = LoggerFactory.getLogger(MarketDataGeneratorLauncher.class); + + private MarketDataGeneratorLauncher() {} + + public static MarketDataList instantiateMarketDataGeneratorWebsocket(Properties connectionProperties, SmartDerivativeContractDescriptor sdc) { + AtomicReference marketDataList = new AtomicReference<>(new MarketDataList()); + AtomicBoolean finished = new AtomicBoolean(false); + + logger.info("launching MarketDataGeneratorWebsocket"); + List mdItemList; + WebSocketConnector connector; + WebSocket socket; + MarketDataGeneratorWebsocket emitter; + try { + mdItemList = sdc.getMarketdataItemList(); + + // Init Websockect Connection + connector = new WebSocketConnector(connectionProperties); + socket = connector.getWebSocket(); + emitter = new MarketDataGeneratorWebsocket(connector.getAuthJson(), connector.getPosition(), mdItemList); + socket.addListener(emitter); + socket.connect(); + + final Consumer marketDataWriter = s -> { + logger.info("websocket open: {}", socket.isOpen()); + marketDataList.set(s); + finished.set(true); + + emitter.closeStreamsAndLogoff(socket); + socket.sendClose(); + }; + emitter.asObservable().take(1).subscribe(marketDataWriter); + while (!finished.get()) { + logger.info("Waiting for Market Data List to finish retrieving"); + Thread.sleep(1000); + } + return marketDataList.get(); + } catch (IOException e) { + throw new RuntimeException(e); + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} From e8307822536a6e46730d9c38eae050df83f398dd Mon Sep 17 00:00:00 2001 From: pekola Date: Mon, 2 Sep 2024 15:15:12 +0200 Subject: [PATCH 103/105] implemented new endpoint to perform valuation of a product at evaluation times different from marketdatatime --- .../implementation/MarginCalculator.java | 44 +++++++++++++++++++ .../ValuationOraclePlainSwap.java | 3 +- .../controllers/ValuationController.java | 21 +++++++++ src/main/resources/api.yml | 23 ++++++++++ 4 files changed, 90 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java index a22b157cb..4e8d42235 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java +++ b/src/main/java/net/finmath/smartcontract/valuation/implementation/MarginCalculator.java @@ -153,6 +153,21 @@ public ValueResult getValue(String marketData, String productData) throws Except return new ValueResult().value(BigDecimal.valueOf(value)).currency(currency).valuationDate(valuationDate.toString()); } + public ValueResult getValueAtEvaluationTime(String marketData, String productData, LocalDateTime evaluationTime) throws Exception { + SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); + + String ownerPartyID = productDescriptor.getUnderlyingReceiverPartyID(); + InterestRateSwapProductDescriptor underlying = (InterestRateSwapProductDescriptor) new FPMLParser(ownerPartyID, FORWARD_EUR_6M, DISCOUNT_EUR_OIS).getProductDescriptor(productDescriptor.getUnderlying()); + + + CalibrationDataset set = CalibrationParserDataItems.getCalibrationDataSetFromXML(marketData,productDescriptor.getMarketdataItemList()); + double value = calculateValueAtTime(List.of(set),evaluationTime,set.getDate(),productDescriptor,underlying); + + String currency = "EUR"; + + return new ValueResult().value(BigDecimal.valueOf(value)).currency(currency).valuationDate(evaluationTime.toString()); + } + public ValueResult getValue(MarketDataList marketData, String productData) throws Exception { SmartDerivativeContractDescriptor productDescriptor = SDCXMLParser.parse(productData); @@ -217,4 +232,33 @@ private double calculateMargin(List marketDataList, LocalDat return marginCall; } + + /** + * Calculates values at different valuation times + * + * @param marketDataList list of market data scenarios. + * @param evaluationTime the evaluation time + * @param marketDataTime the marketdata time + * @param productDescriptor The product descriptor (wrapper to the product XML) + * @param underlying The underlying descriptor (wrapper to the underlying XML) + */ + private double calculateValueAtTime(List marketDataList, LocalDateTime evaluationTime, LocalDateTime marketDataTime, SmartDerivativeContractDescriptor productDescriptor, InterestRateSwapProductDescriptor underlying) { + + // Build product + LocalDate referenceDate = productDescriptor.getTradeDate().toLocalDate(); + InterestRateSwapLegProductDescriptor legReceiver = (InterestRateSwapLegProductDescriptor) underlying.getLegReceiver(); + InterestRateSwapLegProductDescriptor legPayer = (InterestRateSwapLegProductDescriptor) underlying.getLegPayer(); + InterestRateAnalyticProductFactory productFactory = new InterestRateAnalyticProductFactory(referenceDate); + DescribedProduct legReceiverProduct = productFactory.getProductFromDescriptor(legReceiver); + DescribedProduct legPayerProduct = productFactory.getProductFromDescriptor(legPayer); + + Swap swap = new Swap((SwapLeg) legReceiverProduct, (SwapLeg) legPayerProduct); + + // Build valuation oracle with given market data. + final ValuationOraclePlainSwap oracle = new ValuationOraclePlainSwap(swap, 1.0, marketDataList); + + double value = oracle.getValue(evaluationTime,marketDataTime); + + return value; + } } diff --git a/src/main/java/net/finmath/smartcontract/valuation/oracle/interestrates/ValuationOraclePlainSwap.java b/src/main/java/net/finmath/smartcontract/valuation/oracle/interestrates/ValuationOraclePlainSwap.java index 02a0422eb..be473e790 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/oracle/interestrates/ValuationOraclePlainSwap.java +++ b/src/main/java/net/finmath/smartcontract/valuation/oracle/interestrates/ValuationOraclePlainSwap.java @@ -15,8 +15,10 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.function.DoubleUnaryOperator; +import java.util.stream.Collectors; import java.util.stream.Stream; /** @@ -101,5 +103,4 @@ public Double getValue(final LocalDateTime evaluationDate, final LocalDateTime m return null; } } - } \ No newline at end of file diff --git a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java index 3d69faaf0..a58e57e30 100644 --- a/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java +++ b/src/main/java/net/finmath/smartcontract/valuation/service/controllers/ValuationController.java @@ -22,6 +22,8 @@ import org.xml.sax.SAXException; import java.nio.charset.StandardCharsets; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; /** * Controller for the settlement valuation REST service. @@ -127,6 +129,25 @@ public ResponseEntity value(ValueRequest valueRequest) { } } + @Override + public ResponseEntity valueAtTime(ValueRequest valueRequest) { + HttpHeaders responseHeaders = new HttpHeaders(); + responseHeaders.add(RESPONDED, "valueAtTime"); + ValueResult value = null; + try { + MarginCalculator marginCalculator = new MarginCalculator(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss"); + LocalDateTime evaluationTime = LocalDateTime.parse(valueRequest.getValuationDate(), formatter); + value = marginCalculator.getValueAtEvaluationTime(valueRequest.getMarketData(), valueRequest.getTradeData(),evaluationTime); + logger.info(value.toString()); + return ResponseEntity.ok(value); + } catch (Exception e) { + logger.error(FAILED_CALCULATION, e); + throw new SDCException(ExceptionId.SDC_MARGIN_CALCULATION_ERROR, e.getMessage()); + } + } + + @Override public ResponseEntity testProductValue(MultipartFile tradeData) { HttpHeaders responseHeaders = new HttpHeaders(); diff --git a/src/main/resources/api.yml b/src/main/resources/api.yml index 1e684edb8..0cb03b656 100644 --- a/src/main/resources/api.yml +++ b/src/main/resources/api.yml @@ -33,6 +33,29 @@ paths: schema: $ref: "#/components/schemas/Error" + /valuation/valueAtTime: + post: + summary: Request mapping for the value at specific evaluationTime + operationId: valueAtTime + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/ValueRequest" + responses: + "200": + description: Value was calculated + content: + application/json: + schema: + $ref: "#/components/schemas/ValueResult" + default: + description: unexpected error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /valuation/margin: post: summary: Request mapping for the value From b653e42292987a4b64c79528e1d5f05d15c25332 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Mon, 2 Sep 2024 15:42:34 +0200 Subject: [PATCH 104/105] SDC-618, new SettlementGenerator build for building the object instead of the xml String --- .../settlement/SettlementGenerator.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/finmath/smartcontract/settlement/SettlementGenerator.java b/src/main/java/net/finmath/smartcontract/settlement/SettlementGenerator.java index b0b225820..2b7d9d676 100644 --- a/src/main/java/net/finmath/smartcontract/settlement/SettlementGenerator.java +++ b/src/main/java/net/finmath/smartcontract/settlement/SettlementGenerator.java @@ -68,12 +68,26 @@ public SettlementGenerator settlementValueNext(BigDecimal settlementValueNext){ return this; } + public Settlement buildObject(){ + String settlementString = SDCXMLParser.marshalClassToXMLString(settlement); + if(allFieldsSet(settlement)) + return settlement; + else{ + logger.error("buildObject: missing input for settlement, settlement string so far: {}", settlementString); + throw new SDCException(ExceptionId.SDC_WRONG_INPUT, "settlement input incomplete", 400); + } + } + + /** + * + * @return settlement xml String + */ public String build(){ String settlementString = SDCXMLParser.marshalClassToXMLString(settlement); if(allFieldsSet(settlement)) return settlementString; else{ - logger.error("missing input for settlement, settlement string so far: {}", settlementString); + logger.error("buildString: missing input for settlement, settlement string so far: {}", settlementString); throw new SDCException(ExceptionId.SDC_WRONG_INPUT, "settlement input incomplete", 400); } } From e761b578b09d56f21360816503ec01e78fb3ea06 Mon Sep 17 00:00:00 2001 From: Julius Lauterbach Date: Mon, 2 Sep 2024 16:28:25 +0200 Subject: [PATCH 105/105] improved logging on SDCXMLParser --- .../net/finmath/smartcontract/product/xml/SDCXMLParser.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java index 7b236e728..f8d2e5818 100644 --- a/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java +++ b/src/main/java/net/finmath/smartcontract/product/xml/SDCXMLParser.java @@ -107,6 +107,7 @@ public static T unmarshalXml(String xml, Class t) { Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); return (T) unmarshaller.unmarshal(reader); } catch (JAXBException e) { + logger.error("unmarshalXml: jaxb error, ", e); throw new SDCException(ExceptionId.SDC_JAXB_ERROR, e.getMessage(), 400); } } @@ -119,7 +120,7 @@ public static String marshalClassToXMLString(T t) { jaxbMarshaller.marshal(t, writer); return writer.toString(); } catch (JAXBException e) { - logger.error("jaxb error, ", e); + logger.error("marshalClassToXMLString: jaxb error, ", e); throw new SDCException(ExceptionId.SDC_JAXB_ERROR, e.getMessage(), 400); } }