{"id":16371274,"url":"https://github.com/unional/domture","last_synced_at":"2026-01-18T18:32:42.271Z","repository":{"id":19224920,"uuid":"86540718","full_name":"unional/domture","owner":"unional","description":"Create jsdom environment to load NodeJS modules","archived":false,"fork":false,"pushed_at":"2025-08-21T15:57:02.000Z","size":4539,"stargazers_count":2,"open_issues_count":30,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-29T01:36:51.629Z","etag":null,"topics":["fixture","fixtures","jsdom","systemjs","test","test-framework","testing","testing-tools"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/unional.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"ko_fi":"unional"}},"created_at":"2017-03-29T05:10:15.000Z","updated_at":"2019-11-24T12:34:11.000Z","dependencies_parsed_at":"2024-10-11T03:07:33.222Z","dependency_job_id":"099372de-c626-4fcc-99b5-cf05e8c023d9","html_url":"https://github.com/unional/domture","commit_stats":{"total_commits":126,"total_committers":4,"mean_commits":31.5,"dds":0.2142857142857143,"last_synced_commit":"c7ba8bfc3e6aad9bf3c37ba9531294259ea5a505"},"previous_names":["unional/jsdom-systemjs"],"tags_count":35,"template":false,"template_full_name":null,"purl":"pkg:github/unional/domture","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unional%2Fdomture","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unional%2Fdomture/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unional%2Fdomture/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unional%2Fdomture/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unional","download_url":"https://codeload.github.com/unional/domture/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unional%2Fdomture/sbom","scorecard":{"id":910037,"data":{"date":"2025-08-11","repo":{"name":"github.com/unional/domture","commit":"c7ba8bfc3e6aad9bf3c37ba9531294259ea5a505"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/12 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/unional/.github/.github/SECURITY.md:1","Info: Found linked content: github.com/unional/.github/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/unional/.github/.github/SECURITY.md:1","Info: Found text in security policy: github.com/unional/.github/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 25 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"107 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-rmvr-2pp2-xj38","Warn: Project is vulnerable to: GHSA-xx4v-prfh-6cgc","Warn: Project is vulnerable to: GHSA-6chw-6frg-f759","Warn: Project is vulnerable to: GHSA-v88g-cgmw-v5xw","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-2mj8-pj3j-h362","Warn: Project is vulnerable to: GHSA-gqf6-75v8-vr26","Warn: Project is vulnerable to: GHSA-v45m-2wcp-gg98","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-x9w5-v3q2-3rhw","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-ff7x-qrg7-qggm","Warn: Project is vulnerable to: GHSA-vh7m-p724-62c2","Warn: Project is vulnerable to: GHSA-r9p9-mrjm-926w","Warn: Project is vulnerable to: GHSA-434g-2637-qmqr","Warn: Project is vulnerable to: GHSA-49q7-c7j4-3p7m","Warn: Project is vulnerable to: GHSA-977x-g7h5-7qgw","Warn: Project is vulnerable to: GHSA-f7q4-pwc6-w24p","Warn: Project is vulnerable to: GHSA-fc9h-whq2-v747","Warn: Project is vulnerable to: GHSA-vjh7-7g9h-fjfh","Warn: Project is vulnerable to: GHSA-3gx7-xhv7-5mx3","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-8r6j-v8pm-fqw3","Warn: Project is vulnerable to: MAL-2023-462","Warn: Project is vulnerable to: GHSA-xf7w-r453-m56c","Warn: Project is vulnerable to: GHSA-ww39-953v-wcq6","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-w457-6q6x-cgp9","Warn: Project is vulnerable to: GHSA-62gr-4qp9-h98f","Warn: Project is vulnerable to: GHSA-f52g-6jhx-586p","Warn: Project is vulnerable to: GHSA-2cf5-4w76-r9qv","Warn: Project is vulnerable to: GHSA-3cqr-58rm-57f8","Warn: Project is vulnerable to: GHSA-g9r4-xpmj-mj65","Warn: Project is vulnerable to: GHSA-q2c6-c6pm-g3gh","Warn: Project is vulnerable to: GHSA-765h-qjxv-5f44","Warn: Project is vulnerable to: GHSA-f2jv-r9rf-7988","Warn: Project is vulnerable to: GHSA-43f8-2h32-f4cj","Warn: Project is vulnerable to: GHSA-rc47-6667-2j5j","Warn: Project is vulnerable to: GHSA-pc5p-h8pf-mvwp","Warn: Project is vulnerable to: GHSA-qqgx-2p2h-9c37","Warn: Project is vulnerable to: GHSA-78xj-cgh5-2h22","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-896r-f27r-55mw","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-6c8f-qphg-qjgp","Warn: Project is vulnerable to: GHSA-76p3-8jx3-jpfq","Warn: Project is vulnerable to: GHSA-3rfm-jhwj-7488","Warn: Project is vulnerable to: GHSA-hhq3-ff78-jv3g","Warn: Project is vulnerable to: GHSA-jf85-cpcp-j695","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-h726-x36v-rx45","Warn: Project is vulnerable to: GHSA-ch52-vgq2-943f","Warn: Project is vulnerable to: GHSA-5v2h-r2cx-5xgj","Warn: Project is vulnerable to: GHSA-rrrm-qjm4-v8hf","Warn: Project is vulnerable to: GHSA-4xcv-9jjx-gfj3","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-fhjf-83wg-r2j9","Warn: Project is vulnerable to: GHSA-w7rc-rwvf-8q5r","Warn: Project is vulnerable to: GHSA-r683-j2x4-v87g","Warn: Project is vulnerable to: GHSA-px4h-xg32-q955","Warn: Project is vulnerable to: GHSA-m6cx-g6qm-p2cx","Warn: Project is vulnerable to: GHSA-x8qc-rrcw-4r46","Warn: Project is vulnerable to: GHSA-4328-8hgf-7wjr","Warn: Project is vulnerable to: GHSA-93f3-23rq-pjfp","Warn: Project is vulnerable to: GHSA-jmqm-f2gx-4fjv","Warn: Project is vulnerable to: GHSA-pw54-mh39-w3hc","Warn: Project is vulnerable to: GHSA-xgh6-85xh-479p","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-h7cp-r72f-jxh6","Warn: Project is vulnerable to: GHSA-v62p-rq8g-8h59","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-r2j6-p67h-q639","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-44c6-4v22-4mhx","Warn: Project is vulnerable to: GHSA-4x5v-gmq8-25ch","Warn: Project is vulnerable to: GHSA-h9rv-jmmf-4pgx","Warn: Project is vulnerable to: GHSA-hxcc-f52p-wc94","Warn: Project is vulnerable to: GHSA-4g88-fppr-53pp","Warn: Project is vulnerable to: GHSA-4jqc-8m5r-9rpr","Warn: Project is vulnerable to: GHSA-vx3p-948g-6vhq","Warn: Project is vulnerable to: GHSA-j44m-qm6p-hp7m","Warn: Project is vulnerable to: GHSA-3jfq-g458-7qm9","Warn: Project is vulnerable to: GHSA-5955-9wpr-37jh","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-r628-mhmh-qjhw","Warn: Project is vulnerable to: GHSA-9r2w-394v-53qc","Warn: Project is vulnerable to: GHSA-qq89-hq3f-393p","Warn: Project is vulnerable to: GHSA-4wf5-vphf-c2xc","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-7p7h-4mm5-852v","Warn: Project is vulnerable to: GHSA-38fc-wpqx-33j7","Warn: Project is vulnerable to: GHSA-6fc8-4gx4-v693","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-c4w7-xm78-47vh","Warn: Project is vulnerable to: GHSA-p9pc-299p-vxgp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-24T18:46:47.829Z","repository_id":19224920,"created_at":"2025-08-24T18:46:47.829Z","updated_at":"2025-08-24T18:46:47.829Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28547229,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T14:59:57.589Z","status":"ssl_error","status_checked_at":"2026-01-18T14:59:46.540Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fixture","fixtures","jsdom","systemjs","test","test-framework","testing","testing-tools"],"created_at":"2024-10-11T03:07:30.835Z","updated_at":"2026-01-18T18:32:42.236Z","avatar_url":"https://github.com/unional.png","language":"TypeScript","funding_links":["https://ko-fi.com/unional"],"categories":[],"sub_categories":[],"readme":"# domture\n\n[![NPM version][npm-image]][npm-url]\n[![NPM downloads][downloads-image]][downloads-url]\n[![Build status][travis-image]][travis-url]\n[![Codecov][codecov-image]][codecov-url]\n[![Coverage Status][coveralls-image]][coveralls-url]\n\n[![Greenkeeper][greenkeeper-image]][greenkeeper-url]\n[![Semantic Release][semantic-release-image]][semantic-release-url]\n\n[![Visual Studio Code][vscode-image]][vscode-url]\n[![Wallaby.js][wallaby-image]][wallaby-url]\n\n`domture` allows you to load packages and scripts directly on a `jsdom` instance for testing purpose.\n\nYou can load `npm` packages as well as local files (by default relative to current working directory `.`).\n\n`domture` supports two loaders: `systemjs` and `webpack`.\n\nWhen using `systemjs`, it leveages `systemjs` magic to load any type of module files.\nHowever, certain NodeJS resolution does not work currently, and also code coverage is not available.\n\nWhen using `webpack`, it bundles the files you try to import with `webpack` and load them into `jsdom` through script tags.\nThe NodeJS resolution is complete and code coverage is (will be) available.\nHowever, additional bundle time is needed and bundles management still need to be planned out and implemented in the future.\nYou also lost the magic from `systemjs`.\n\nBy default, `webpack` will be used as the default loader.\n\nFor projects using `webpack@4`, please use `domture@2`. For `webpack@3`, please use `domture@1`\n\n## Usage\n\n```ts\nimport test from 'ava' // or your favorite test runner\nimport { createDomture } from 'domture'\n\ntest('basic usage', async t =\u003e {\n  const domture = await createDomture()\n\n  // load package `foo`\n  const foo = await domture.import('foo')\n\n  // load by relative path\n  const config = await domture.import('./config')\n})\n\ntest('customize', async t =\u003e {\n  const domture = await createDomture({\n    // Where to resolve relative path.\n    rootDir: './lib',\n    // Preload some scripts ahead of time.\n    preloadScripts: ['a-package', './someCode.js', './index'],\n    // Able to load TypeScript code directly\n    transpiler: 'typescript',\n    // configure jsdom.\n    // Can't set `url` and `runScripts`.\n    // They are used internally.\n    jsdomConstructorOptions: { ... }\n  })\n})\ntest('customize with webpack', async t =\u003e {\n  const domture = await createDomture({\n    /**\n     * devtool, entry, and output are preserved\n     */\n    webpackConfig: {\n      // ...\n    }\n  })\n})\n\ntest('customize with systemjs', async t =\u003e {\n  const domture = await createDomture({\n    loader: 'systemjs',\n    // Indicates which extension to try during `import()`\n    // This is needed only if you need to do something special,\n    // e.g. `allowJs` with TypeScirpt project.\n    // By default, `domture` will look for 'js' and 'jsx` for JavaScript projects,\n    // 'ts', 'tsx' for TypeScript projects.\n    moduleFileExtensions: ['ts', 'js']\n    systemjsConfig: {\n      packages: {\n        // This is need for some packages due to https://github.com/systemjs/systemjs/issues/1603\n        'make-error': {\n          main: 'index'\n        }\n      },\n      meta: {\n        // Do this if `some-global-script.js` is not detected correctly as global script when using `import()`.\n        'some-global-script.js': {\n          format: 'global'\n        }\n      }\n    }\n  })\n})\n```\n\n## Contribute\n\n```sh\n# right after clone\nnpm install\n\n# begin making changes\ngit checkout -b \u003cbranch\u003e\nnpm run watch\n\n# edit `webpack.config.es5.js` and `rollup.config.es2015.js` to exclude dependencies for the bundle if needed\n\n# after making change(s)\ngit commit -m \"\u003ccommit message\u003e\"\ngit push\n\n# create PR\n```\n\n## Npm Commands\n\nThere are a few useful commands you can use during development.\n\n```sh\n# Run tests (and lint) automatically whenever you save a file.\nnpm run watch\n\n# Run tests with coverage stats (but won't fail you if coverage does not meet criteria)\nnpm run test\n\n# Manually verify the project.\n# This will be ran during 'npm preversion' so you normally don't need to run this yourself.\nnpm run verify\n\n# Build the project.\n# You normally don't need to do this.\nnpm run build\n\n# Run tslint\n# You normally don't need to do this as `npm run watch` and `npm version` will automatically run lint for you.\nnpm run lint\n```\n\nGenerated by [`unional-cli@0.0.0`](https://github.com/unional/unional-cli)\n\n[npm-image]: https://img.shields.io/npm/v/domture.svg?style=flat\n[npm-url]: https://npmjs.org/package/domture\n[downloads-image]: https://img.shields.io/npm/dm/domture.svg?style=flat\n[downloads-url]: https://npmjs.org/package/domture\n[travis-image]: https://img.shields.io/travis/unional/domture/master.svg?style=flat\n[travis-url]: https://travis-ci.org/unional/domture?branch=master\n[codecov-image]: https://codecov.io/gh/unional/satisfier/branch/master/graph/badge.svg\n[codecov-url]: https://codecov.io/gh/unional/satisfier\n[coveralls-image]: https://coveralls.io/repos/github/unional/domture/badge.svg\n[coveralls-url]: https://coveralls.io/github/unional/domture\n[greenkeeper-image]: https://badges.greenkeeper.io/unional/domture.svg\n[greenkeeper-url]: https://greenkeeper.io/\n[semantic-release-image]: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\n[semantic-release-url]: https://github.com/semantic-release/semantic-release\n[wallaby-image]: https://img.shields.io/badge/wallaby.js-configured-green.svg\n[wallaby-url]: https://wallabyjs.com\n[vscode-image]: https://img.shields.io/badge/vscode-ready-green.svg\n[vscode-url]: https://code.visualstudio.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funional%2Fdomture","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funional%2Fdomture","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funional%2Fdomture/lists"}