{"_id":"@bonniernews/rolling-hash","_rev":"41-c9dd4873b6b92397e08aa92f551521a6","name":"@bonniernews/rolling-hash","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"@bonniernews/rolling-hash","version":"1.0.0","keywords":["Crypto","Cryptography","hash"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/rolling-hash@1.0.0","maintainers":[{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"bn-crehn","email":"christoffer.rehn@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"martindanielson","email":"martin@rocketblast.com"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"markusn","email":"markus@botten.org"},{"name":"linuss","email":"contact@linusskold.com"},{"name":"joelabrahamsson","email":"mail@joelabrahamsson.com"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"}],"dist":{"shasum":"a47394883a8e485796fde6471280828d21d563dd","tarball":"https://registry.npmjs.org/@bonniernews/rolling-hash/-/rolling-hash-1.0.0.tgz","fileCount":14,"integrity":"sha512-UpsBjEk9CRW+IiAdnPOjX3gQcorWNOLILizGeFr4uq69VgJnBilJjiKG+jeM04hpvhiv8pTHWuwPQni7YCYRmQ==","signatures":[{"sig":"MEUCIQCI/PM2wvfgw4zIqxz0R1xZ6G16Mk6C/ynPjtH/rll6vQIgJjkhmtlTLsJREh47uGChboMaU9uW+BMTbPdoDgZsa/0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14634},"main":"./dist/cjs/index.js","type":"module","types":"./dist/mjs/index.d.ts","module":"/dist/mjs/index.js","exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"gitHead":"46fb3cde69e270d4da99811282f33a248a9cb9bf","scripts":{"dev":"npm run build && node ./dist/mjs/index.js","test":"mocha","build":"rm -fr dist/* && tsc -p tsconfig-mjs.json && tsc -p tsconfig-cjs.json && ./add-package.sh"},"_npmUser":{"name":"amundsentb","email":"amundsentb@gmail.com"},"_npmVersion":"8.5.0","description":"When hashing an ID you might not want it to stay the same **forever** so this library solves that by making it rolling.","directories":{},"_nodeVersion":"16.14.2","_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.2.0","crypto-js":"^4.1.1","typescript":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/rolling-hash_1.0.0_1696926152698_0.014144995098014368","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@bonniernews/rolling-hash","version":"1.0.1","keywords":["Crypto","Cryptography","hash"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/rolling-hash@1.0.1","maintainers":[{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"bn-crehn","email":"christoffer.rehn@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"martindanielson","email":"martin@rocketblast.com"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"markusn","email":"markus@botten.org"},{"name":"linuss","email":"contact@linusskold.com"},{"name":"joelabrahamsson","email":"mail@joelabrahamsson.com"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"}],"dist":{"shasum":"9af36513a5e820650c3501fd7fc91ca9b2445865","tarball":"https://registry.npmjs.org/@bonniernews/rolling-hash/-/rolling-hash-1.0.1.tgz","fileCount":14,"integrity":"sha512-JwaHbjdEdkPaQHdbIWZTbO+CnBlSf/xVChw4iLklUBD7SmaDsWm2z91Mi5//949GgclVBCaOy0l98FdpaJxQ+Q==","signatures":[{"sig":"MEUCIChh47xXucVthTWB1bip9kmYMHpjnjQ9StIPkJx6bQC4AiEAvT5CQCVxNpipx2WAtYEI6JGpYwxbdVtJurM9gpYpTUk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14660},"main":"./dist/cjs/index.js","type":"module","types":"./dist/mjs/index.d.ts","module":"/dist/mjs/index.js","exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"gitHead":"e254d8b7cb28fe6f486b94de39f651e8292fc42d","scripts":{"dev":"npm run build && node ./dist/mjs/index.js","test":"mocha","build":"rm -fr dist/* && tsc -p tsconfig-mjs.json && tsc -p tsconfig-cjs.json && ./add-package.sh"},"_npmUser":{"name":"amundsentb","email":"amundsentb@gmail.com"},"_npmVersion":"8.5.0","description":"When hashing an ID you might not want it to stay the same **forever** so this library solves that by making it rolling.","directories":{},"_nodeVersion":"16.14.2","_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.2.0","crypto-js":"^4.1.1","typescript":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/rolling-hash_1.0.1_1696926918576_0.3699936016377232","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@bonniernews/rolling-hash","version":"1.0.2","keywords":["Crypto","Cryptography","hash"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/rolling-hash@1.0.2","maintainers":[{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"bn-crehn","email":"christoffer.rehn@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"martindanielson","email":"martin@rocketblast.com"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"markusn","email":"markus@botten.org"},{"name":"linuss","email":"contact@linusskold.com"},{"name":"joelabrahamsson","email":"mail@joelabrahamsson.com"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"}],"dist":{"shasum":"59fa83971855c56ee191e13562aa33ecd13f9908","tarball":"https://registry.npmjs.org/@bonniernews/rolling-hash/-/rolling-hash-1.0.2.tgz","fileCount":14,"integrity":"sha512-pl8xmqCsthYzmXiiyGonWhn1+d0zeoAeScB2jOQTc6FFxbtAqZCoAhzHzZcQlLKSXfSoUAGAy2RvODKfDX34Fg==","signatures":[{"sig":"MEYCIQDqN+klbCTSCRFLWN2qYUwRfOocSWTJKdvqqFMvyh7gCwIhAPxE+MrHcPLDp1KjQ1/PqduZMK/MBPrquYog1KItGNb8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14770},"main":"./dist/cjs/index.js","type":"module","types":"./dist/mjs/index.d.ts","module":"/dist/mjs/index.js","exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"gitHead":"6ccfb5cfdf528e6707fa466d63cfda6854e425aa","scripts":{"dev":"npm run build && node ./dist/mjs/index.js","test":"mocha","build":"rm -fr dist/* && tsc -p tsconfig-mjs.json && tsc -p tsconfig-cjs.json && ./add-package.sh"},"_npmUser":{"name":"amundsentb","email":"amundsentb@gmail.com"},"_npmVersion":"8.5.0","description":"When hashing an ID you might not want it to stay the same **forever** so this library solves that by making it rolling.","directories":{},"_nodeVersion":"16.14.2","_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.2.0","crypto-js":"^4.1.1","typescript":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/rolling-hash_1.0.2_1696927584097_0.6100881464525996","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@bonniernews/rolling-hash","version":"2.0.0","keywords":["Crypto","Cryptography","hash"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/rolling-hash@2.0.0","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.arola@bonniernews.se"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"liroliro","email":"basistoscar@gmail.com"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"torkelberget","email":"andreas.egneblad@bonniernews.se"},{"name":"johankasperi","email":"johan@kasperi.se"},{"name":"nblom","email":"niklas.blom@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"emilbjorklund","email":"emil@thatemil.com"},{"name":"lilianj","email":"japlilian@gmail.com"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"dist":{"shasum":"7d00cb8d6a222053b78f9087c3ad1ad1c924ed64","tarball":"https://registry.npmjs.org/@bonniernews/rolling-hash/-/rolling-hash-2.0.0.tgz","fileCount":18,"integrity":"sha512-x8BL6B3yY1+1KPyJhoj3WK+PfwFYd/A7OZDBSeCMJCUyMfmHVcOpWQvcS30cqSdDffrBDQdywNtDCFZ8v+bmhg==","signatures":[{"sig":"MEYCIQCWTlI8CC5rqcFe7wRCvCQWJ2mHE+f1LwF7oKMGk1njJQIhAMrkp38N+24I8b+DVCwSAHEDL2dgKv542L1+BtkaIdua","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16926},"main":"./dist/cjs/index.js","type":"module","types":"./dist/mjs/index.d.ts","module":"/dist/mjs/index.js","engines":{"node":">=20"},"exports":{".":{"import":"./dist/mjs/index.js","require":"./dist/cjs/index.js"}},"gitHead":"cd199294198aa3f5b40db95dd617bf3cd75d1649","scripts":{"dev":"npm run build && node ./dist/mjs/index.js","test":"mocha","build":"rm -fr dist/* && tsc -p tsconfig-mjs.json && tsc -p tsconfig-cjs.json && ./add-package.sh","lint:es6":"es-check es6 ./dist/cjs/index.js && es-check es6 --module ./dist/mjs/index.js"},"_npmUser":{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},"overrides":{"serialize-javascript":"^7.0.4"},"_npmVersion":"11.13.0","description":"When hashing an ID you might not want it to stay the same **forever** so this library solves that by making it rolling.","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.2.0","es-check":"^9.6.4","crypto-js":"^4.1.1","typescript":"^5.2.2"},"_npmOperationalInternal":{"tmp":"tmp/rolling-hash_2.0.0_1780407645493_0.9703425087221453","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2023-10-10T08:22:32.574Z","modified":"2026-08-26T12:06:56.608Z","1.0.0":"2023-10-10T08:22:32.983Z","1.0.1":"2023-10-10T08:35:18.806Z","1.0.2":"2023-10-10T08:46:24.308Z","2.0.0":"2026-06-02T13:40:45.633Z"},"author":{"name":"Bonnier News"},"license":"MIT","keywords":["Crypto","Cryptography","hash"],"description":"When hashing an ID you might not want it to stay the same **forever** so this library solves that by making it rolling.","maintainers":[{"email":"markus@botten.org","name":"markusn"},{"email":"max.olofsson@bonniernews.se","name":"mxtr"},{"email":"mats@rorbecker.com","name":"matsrorbecker"},{"email":"dan.arola@bonniernews.se","name":"dan.karlsson"},{"email":"adil.aboulkacim@bonniernews.se","name":"adil.aboulkacim"},{"email":"marie.winther@bonniernews.se","name":"marie-winther"},{"email":"marcus.gronblad@bonniernews.se","name":"marcusgronblad"},{"email":"axel.johansson@bonniernews.se","name":"axeljohanssonbonniernews"},{"email":"christoffer.karlberg@bonniernews.se","name":"karlbergc"},{"email":"chavah.forler@bonniernews.se","name":"chavah"},{"email":"joel.ekman@bonniernews.se","name":"joelekman"},{"email":"adam.hakansson@bonniernews.se","name":"adam.hakansson"},{"email":"marcus.hilleso@expressen.se","name":"hilleso"},{"email":"gusliden@gmail.com","name":"gusliden"},{"email":"andreas.samuelsson@bonniernews.se","name":"andreas.samuelsson"},{"email":"jesper.zachrisson@bonniernews.se","name":"jzachrisson"},{"email":"mattias.norlander@gmail.com","name":"norla"},{"email":"simon.varney@bonniernews.se","name":"varneynz"},{"email":"alice.boberg@bonniernews.se","name":"aliceboberg"},{"email":"johan.arkad@bonniernews.se","name":"johark"},{"email":"niklas.forsstrom@bonniernews.se","name":"nifo"},{"email":"herman.jansson@bonniernews.se","name":"herbola"},{"email":"andre.nordlund@bonniernews.se","name":"vitryssen"},{"email":"william.takolander@bonniernews.se","name":"takolander"},{"email":"marten.persson@hdsydsvenskan.se","name":"morre"},{"email":"mikael.mattsson@bonniernews.se","name":"mikael.mattsson"},{"email":"seb.christiansson@bonniernews.se","name":"schristianssonbn"},{"email":"mattias.olla@bonniernews.se","name":"mattiasobn"},{"email":"markus@daghall.se","name":"daghall"},{"email":"ericandersson1@gmail.com","name":"erandersson"},{"email":"jonathan.ek@bonniernews.se","name":"jonaek"},{"email":"amundsentb@gmail.com","name":"amundsentb"},{"email":"daniel.rasmussen@bonniernews.se","name":"drgeobn"},{"email":"oscar@tholander.nu","name":"oscartholander"},{"email":"peter.pettersson@bonniernews.se","name":"peterpettersson"},{"email":"basistoscar@gmail.com","name":"liroliro"},{"email":"andreas.egneblad@bonniernews.se","name":"torkelberget"},{"email":"johan@kasperi.se","name":"johankasperi"},{"email":"jon.eldeklint@bonniernews.se","name":"jon.eldeklint"},{"email":"niklas.blom@bonniernews.se","name":"nblom"},{"email":"jakob.pedersen@bonniernews.se","name":"jackesa"},{"email":"olle.nordin@bonniernews.se","name":"ollenolle"},{"email":"emil@thatemil.com","name":"emilbjorklund"},{"email":"japlilian@gmail.com","name":"lilianj"},{"email":"kristoffer.jansson@bonniernews.se","name":"kristofferjansson"},{"email":"kit.gustavsson@bonniernews.se","name":"kitgus"},{"email":"alexi.rahman@r76.se","name":"odynvolk"}],"readme":"# Rolling hash\n\nWhen hashing an ID you might not want it to stay the same **forever** so this library solves that by making it rolling.\n\nThe rolling occurs at a fixed date interval and in turn gives you a new fresh ID to use!\n\nThis rolling hash library is supposed to be able to work with all kinds of encryption libraries and still give a valid rolling ID.\n\n## Usage\n\n### Installing\n\n`npm install @bonniernews/rolling-hash`\n\n### Requirements\n\nNode.js 20 or newer.\n\n### running\n\nThe code is simple to use with any crypto Library.\n\nSimply input the given hashFunction, toBase64Function and toHexFunction and retrieve a rolledHash.\n\nexample with an async crypto library:\n\n```javascript\nimport rollingHash from \"@bonniernews/rolling-hash\";\nimport crypto from \"node:crypto\";\n\nasync function hashFunction(str) {\n  const arrayBuffer = await crypto.subtle.digest(\"SHA-256\", new TextEncoder().encode(str));\n\n  return Array.from(new Uint8Array(arrayBuffer));\n}\n\nfunction toBase64Function(hash) {\n  return Buffer.from(hash).toString(\"base64\");\n}\n\nfunction toHexFunction(hash) {\n  return hash.map((b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\nconst rolledHash = await rollingHash(\"foobar\", { hashFunction, toBase64Function, toHexFunction });\n\n// use rolledHash as you want\n```\n\nexample with a sync crypto library:\n\n```javascript\nimport rollingHash from \"@bonniernews/rolling-hash\";\nimport cryptoJs from \"crypto-js\";\n\nfunction hashFunction(str) {\n  return cryptoJs.SHA256(str);\n}\n\nfunction toBase64Function(hash) {\n  return hash.toString(cryptoJs.enc.Base64);\n}\n\nfunction toHexFunction(hash) {\n  return hash.toString(cryptoJs.enc.Hex);\n}\n\nconst rolledHash = rollingHash(\"foobar\", { hashFunction, toBase64Function, toHexFunction });\n\n// use rolledHash as you want\n```\n\nif using commonJS:\n\n```javascript\nconst { default: rollingHash } = require(\"@bonniernews/rolling-hash\");\n```\n\n## Disclaimer\n\nThe interval at which the rolling of the hash is performed may change.\n\nWe use the Date class to handle the hash, if this is modified in anyway we cannot guarantee that this will work a 100% of the time.\n","readmeFilename":"readme.md"}